이 바로 전에 포스팅했던 '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

+ Recent posts