이 바로 전에 포스팅했던 'CPU의 내부구조'에서 나왔던 ALU를 건너뛰고 레지스터를 바로 설명하는 이유는 ALU는 '산술 연산을 한다' 정도가 중요하지 그 안에 어떤 구성요소가 있는지는 아직까지 중요하지 않아보인다. 그러기에 나중에 연산 작업이 나올 때 등장할 것이고, ALU를 건너뛰고 레지스터의 구성부터 설명을 시작하려고 한다.
대체적으로 이 CPU 부분은 '어떤 것이 어떤 역할을 한다' 구분해서 설명하기가 까다로운 것이 구성요소 모두가 상호작용을 하기에 모든 것을 한 글로 설명하자니 너무 길어질 것 같아서 내용이 많은 부분만 조금씩 잘라서 하나씩 설명하려고 한다.
2. 레지스터(Register Set)
① CPU 내부의 다양한 레지스터들의 집합
② 액세스 속도가 기억장치 중에서 가장 빠르다.
③ (용량이)제한적이다.
A. 특수기능레지스터(SPR)
1) Program Counter(PC)
① 다음에 인출할(= 다음에 진행할 명령어) 주소값을 가지고 있는 레지스터
② 각 명령어가 인출된 후에는 자동적으로 일정 크기(명령어 길이 : 워드)만큼 증가한다.
③ 분기(Branch) 또는 조건(Conditional) 명령어가 실행되는 경우에는 해당 명령어가 있는 목적지 주소값으로 갱신된다.
2) Accumulator(AC)
① 처리할 데이터를 일시적으로 저장하는 레지스터
② 레지스터의 길이 : CPU가 한 번에 처리할 수 있느 데이터 비트수(워드의 길이)
3) Instruction Register(IR) : 가장 최근에 지정된 주소 번지의 주기억장치로붵 CPU로 인출된 명령어 코드가 저장되는 레지스터
4) Stackpointer Register(SP)
: 이미 메모리에 설정된 stack의 시작 번지의 주소값을 가지고 있으며, 스택에 정보가 쌓이거나 줄어듦에 따라 그 값이 증가/감소하는 레지스터
5) Memory Address Register(MAR)
: 다음 번에 일출될 명령어의 주소정보는 PC(Program Counter)에 있고, 현재 CPU 내부로 부러올 명령어의 주소값을 메모리로 전달되기 전에
그것을 일시적으로 저장하는 레지스터(주소값이 CPU 밖으로 나갈 때 임시로 들리는 문)
6) Memory Data Register(MDR) : 주기억장치로부터 Read/Write(읽혀지거나 쓰여질) 데이터를 일시적으로 저장하는 레지스터
B. 범용레지스터(GPR)
'컴퓨터구조 > CPU' 카테고리의 다른 글
명령어 (0) | 2016.11.09 |
---|---|
제어 유닛(Control Unit) (0) | 2016.11.05 |
내부구조(구성) (0) | 2016.11.05 |