개발자꿈나무

중앙처리장치(CPU) - 제어장치 본문

CS/전자계산기구조론

중앙처리장치(CPU) - 제어장치

망재이 2024. 1. 22. 15:55
  • 중앙처리장치의 구성요소와 역할
    - 산술 논리 연산장치 (ALU) : 각종 연산을 실행
    - 레지스터 세트 : 데이터를 임시 저장하는 기능 수행
    - 제어 장치 : 명령을 해독하고 제어신호를 발생하여 제어 기능 수행
    - 내부 CPU 버스 : 데이터를 전달하는 기능

  • 제어장치
  • 명령어

 

- 연산 코드는 수행될 연산은 지정해주며 비트 수가 증가하면 실행 가능한 연산이 증가

- 오퍼랜드는 연산을 수행하는 데 필요한 데이터 혹은 데이터의 주소, 레지스터 번호 등을 표현

- 연산코드가 수행하는 연산에 따라 함수 연산 기능, 전달 기능, 입출력 기능, 제어 기능을 가짐

  • 오퍼랜드 수에 따른 명령어의 분류
  1. 0-주소 명령어

 

- 오퍼랜드 없이 연산자만으로 명령어가 구성되며 스택구조의 컴퓨터에서 사용
- 인스트럭션의 길이가 짧아서 연산속도가 빠름

- PUSH, POP 명령어 사용

- 수식은 역 폴리시 형태(후위표기법)으로 바꾸어야 함

- 주소부가 없으나 무조건 스택을 사용하므로 묵시적 주소라 함

2.  1-주소 명령어

 

- 모든 데이터 처리가 내장되어 있는 누산기에 의해 이루어지는 형식

- 누산기로 데이터를 전달하는 LOAD, 누산기의 데이터를 주기억장치에 저장하는 STORE 명령어를 사용

 

3.  2-주소 명령어

- 범용 레지스터 구조에서 사용

- Operand1이 주기억장치에서 가져온 데이터와 Operand2이 가져온 데이터를 연산에 사용하여 Operand1에 기억시키는 명령어 형식

- 계산 결과를 시험할 필요가 있을 때 CPU 내에서 직접 시험이 가능하므로 시간 절약 가능

- Move 명령어 사용

 

4.  3-주소 명령어

 

- 범용 레지스터 구조에서 사용

- 프로그램 길이를 짧게 할 수 있고 연산 후 입력자료가 보존

- Operand2와 Operand3에 의해 주기억장치에서 가져온 데이터를 연산 후 Operand1이 가리키는 주기억장치에 저장

- 하나의 명령을 수행하기 위해 최소한 4번의 기억장치 접근이 필요하므로 수행시간이 길어 특수목적용 외에는 별로 사용되지 않음

 

  • 주소지정 방식

1.  즉시 주소지정 방식

 

- 오퍼랜드 필드의 내용이 연산에 사용할 실제 데이터

- 데이터의 인출을 위해 주기억장치 접근이 필요 없으므로 실행 사이클이 짧아짐

- 오퍼랜드의 크기에 따라 사용 가능한 데이터의 범위가 정해짐

 

2. 직접 주소지정 방식

 

- 명령어 내의 오퍼랜드 필드의 내용이 데이터의 유효 주소

- 데이터 인출을 위해 한 번의 기억장치 접근만 필요

- 오퍼랜드 필드의 비트 수에 의해 직접 접근할 수 있는 기억장치 주소 공간이 제한

 

3. 간접 주소지정 방식

 

- 명령어의 오퍼랜드 필드에 유효주소가 저장된 주소가 있고, 그 주소가 가리키는 기억 장소에 유효 주소가 저장

- 실행 사이클 동안에 두 번의 기억장치 접근이 필요

- 기억장치의 단어 길이가 n 비트라면 최대 2^n개의 주소 공간을 가질 수 있음

 

4. 레지스터 주소지정 방식

 

- 연산에 사용될 데이터가 레지스터에 저장되어 있고 오퍼랜드가 저장한 유효주소는 레지스터 번호

- 오퍼랜드 필드의 비트 수에 의해 접근 가능한 레지스터의 개수가 정해짐

- 레지스터 크기가 데이터의 범위를 결정

- 데이터 인출을 위해 기억장치에 접근할 필요 없음

 

5. 레지스터 간접 주소지정 방식

- 오퍼랜드 필드가 가리키는 레지스터의 내용이 유효 주소가 됨

- 주소가 지정될 수 있는 주기억장치 범위는 레지스터의 비트 수에 의해 결정

 

6. 변위 주소지정 방식

 

- 변위를 나타내는 오퍼랜드와 레지스터 번호 R을 가짐

- 유효주소는 R이 가리키는 레지스터의 내용가 변위 A가 더해져 결정

- 다음에 실행할 명령어의 주소를 기억하는 PC (Program Counter)와 오퍼랜드에 저장된 변위를 더해 유효주소를 결정

- PC의 내용은 다음에 실행할 명령어의 주소이고, 변위는 그 명령어의 위치를 기준으로 한 상대적인 값

728x90