본문 바로가기
Major Review (학부)/Computer Architecture

2. CPU의 구조와 기능 (3)

by 삼준 2023. 2. 21.
반응형

- Read Me는 읽어보셨나요? -

2023.02.17 - [HakBu Review (학부)/Computer Architecture] - Read Me

 

명령어 세트

 

명령어 세트(Instruction Set) : CPU를 위해 정의되어 있는 명령어들의 집합, CPU마다 약간씩 다름.

 

- 명령어 세트 설계를 위한 고려 사항 : 연산 종류, 데이터 유형, 명령어 형식, 주소지정 방식

1. 연산의 종류

필수적인 연산으로는 데이터 전송, 산술 연산, 논리 연산, 입출력, 프로그램 제어(분기, 서브루틴 호출 등)가 있음.

 

2. 데이터 유형

이후 자세히 설명

 

3. 명령어 형식

명령어는 CPU에 의해 실행될 때 제공해야 할 모든 정보를 포함 해야 함. 또한 명령어는 일련의 비트로 표현되고 용도에 따라 몇개의 필드로 나뉨. 필드의 수와 배치 방식 및 각 필드에 포함되는 비트 수를 정의한 것을 명령어 형식이라고 함. 각 필드에 배정되는 비트들의 수에 따라 각각의 범위가 결정됨.

   연산코드 : 수행될 연산 지정

   오퍼랜드 : 데이터 또는 데이터의 주소

   다음 명령어 주소 : 실행 순서를 변경하는 경우에만 필요함

 

ㄴ 1주소 명령어

   명령어가 한 개의 오퍼랜드만 포함.

   ex) ADD X ( ==  AC ← AC + M[X] )

 

ㄴ 2주소 명령어

   명령어가 두 개의 오퍼랜드를 포함.

   ex) ADD R1 R2 (레지스터 주소 두 개) ( ==  R1 ← R1 + R2 ) / ADD R1 X (레지스터 주소, 기억장치 주소)

 

ㄴ 3주소 명령어

   명령어가 세 개의 오퍼랜드를 포함.

   ex) ADD R1, R2, R3 ( ==  R1 ← R2 + R3 )

 

오퍼랜드가 많아질수록 프로그램이 짧아지지만 (레지스터 수와 기억장치 용량이 고정된 경우) 명령어의 비트 수가 늘어나기 때문에 프로그램을 저장하기 위한 기억장치 용량은 그대로이고, 해독 과정이 더 복잡해짐.

 

4. 주소지정 방식

제한된 명령어 비트를 이용해 더 큰 용량의 기억장치를 사용할 수 있도록 여러 주소지정 방식이 제안되어 왔음.

 + 설명을 위해 필요한 표기

   EA : 데이터가 저장된 기억장치의 실제 주소, 유효 주소

   A : 명령어 내 주소 필드 내용

   R : 명령어 내 레지스터 번호

   ( ) : 해당 주소/레지스터의 내용

 

ㄴ 직접 주소지정 (Direct Addressing Mode)

   EA = A , 오퍼랜드 필드의 내용이 곧 데이터의 유효 주소.

   EA의 결정을 위해 다른 절차나 계산이 필요 없지만, 액세스 가능한 주소 공간이 필드 비트 수에 의해 제한됨.

 

ㄴ 간접 주소지정 (Indirect Addressing Mode)

   EA = (A), 오퍼랜드 필드의 내용이 가르키는 장소에 EA를 저장해두는 방법.

   실행 사이클 동안 두 번의 기억장치 액세스가 필요하지만, 기억장치 단어 길이에 따라 주소 지정될 수 있는 용량이 결정됨. 여러 단계의 간접 지정도 가능하며 다단계 혹은 연속적 간접 주소 지정 방식이라고 부름.

 

ㄴ 묵시적 주소지정 (Implied Addressing Mode)

   명령어 실행에 필요한 데이터의 위치가 이미 정해져 있음.

   명령어 길이가 짧지만, 종류가 제한적임.

 

ㄴ 즉시 주소지정 (Immediate Addressing Mode)

   명령어 실행에 필요한 데이터가 명령어 내에 포함되어 있음.

   기억장치 액세스가 필요없어서 실행 사이클이 짧아지지만, 사용할 수 있는 수의 크기가 오퍼랜드 필드 비트 수에 의해 제한 됨.

 

ㄴ 레지스터 주소지정 (Register Addressing Mode)

   EA = R, 오퍼랜드 필드의 내용은 레지스터 번호로 사용됨.

   레지스터 액세스 시간이 주기억장치 액세스 시간보다 짧기 때문에 명령어 실행 시간이 짧아지지만, 데이터가 저장될 수 있는 위치가 레지스터로 제한됨.

 

ㄴ 레지스터 간접 주소지정 (Register-indirect Addressing Mode)

   EA = (R), 오퍼랜드 필드의 내용이 가르키는 레지스터의 내용이 유효 주소.

   주소를 지정 가능한 기억장치 영역은 레지스터의 길이에 제한됨.

 

ㄴ 변위 주소지정 (Displacement Addressing Mode)

   EA = A + (R), 직접 주소지정과 레지스터 간접 주소지정의 조합. 유효 주소 결정을 위해 사용되는 레지스터에 따라 명칭이 달라짐.

   + 상대 주소지정 (Relative Addressing Mode)

   EA = A + (PC), 레지스터로 프로그램 카운터(PC)가 사용됨. PC에는 다음에 실행할 명령어의 주소가 있으므로, 결과적으로 다음 실행 명령어의 주소를 기준으로 A만큼 이동한 곳에 있는 명령어를 실행하게 됨. A는 일반적으로 2의 보수로 표현.

   변수의 범위가 오퍼랜드 필드의 비트 수에 의해 제한되지만, 일반적인 분기 명령어보다 적은 수의 비트만 있으면 됨.

   + 인덱스 주소지정 (Indexed Addressing Mode)

   EA = A + (IX), 인덱스 레지스터의 내용이 사용됨. 일반적으로 주소 A는 기억장치에 저장된 데이터 배열의 시작 주소를 가리키며, 인덱스 레지스터의 내용을 증가,감소 시킨다면 동일한 명령어를 사용해 배열 내 데이터들을 순차적으로 액세스하는 것이 가능해짐. 차례대로 액세스 하는 경우를 위해 (IX)를 자동적으로 증가, 감소 시킬 수 잇는데, 이를 자동 인덱싱 이라고 함.

   + 베이스 레지스터 주소지정 (Base-register Addressing Mode)

   EA = A + (BR), 인덱스 주소지정과 비슷하지만, 기준이 되는 주소가 A가 아니라 (BR)이라는 점에서 다름. 프로그램의 시작 위치를 지정하는데 주로 사용됨.

   ex) 다중프로그래밍 시스템에서, 기억장치의 어떤 위치에 저장되어 있는 프로그램들과 데이터들을 다른 위치로 이동시켜야 하는 경우, 분기 명령어나 데이터 액세스 명령어의 주소 필드 값을 일일이 바꿀 필요 없이, 베이스 레지스터의 내용만 바꿔주면 됨.

 

- 상용 프로세서들의 명령어 형식

컴퓨터가 발전하면서 명령어의 종류과 길이가 계속 증가하고 주소지정 방식도 복잡해졌음. 이에 따라 명령어 수를 최소화하고 명령어 길이를 고정하고 주소지정 방식의 종류도 단순화한 RISC(Reduced Instruction Set Computer) 프로세서가 등장함. 기존의 복잡한 명령어 형식은 CISC(Complex Instruction Set Computer) 분류함.

반응형

댓글