Search

04-2 레지스터

Last update: @1/7/2023
혼자 공부하는 컴퓨터구조 + 운영체제

컴퓨터 구조

01 컴퓨터 구조 시작하기

02 데이터

03 명령어

04 CPU의 작동 원리

05 CPU 성능 향상 기법

06 메모리와 캐시 메모리

07 보조기억장치

08 입출력장치

레지스터

프로그램 속 명령어와 데이터는 실행 전후로 반드시 레지스터에 저장됨. 따라서 레지스터에 저 장된 값만 잘 관찰해도 프로그램의 실행 흐름을 파악할 수 있음
많은 종류의 CPU에서 공통적으로 사용되는 레지스터 종류
프로그램 카운터(PC; Program Counter = IP; Instruction Pointer) : 메모리에서 가져올 명령어의 주소, 즉 메모리에서 읽어 들일 명령어의 주소를 저장
명령어 레지스터(IR; Instruction Register) : 방금 메모리에서 읽어들인 명령어를 저장
메모리 주소 레지스터(MAR; Memory Address Register) : 메모리의 주소를 저장하는 레지스터. CPU가 읽어 들이고자 하는 주소 값을 주소 버스로 보낼 때 메모리 주소 레지스터를 거치게 됨(PC → MAR → address bus → memory)
메모리 버퍼 레지스터(MBR; Memory Buffer Register = MDR; Memory Data Register) : 메모리와 주고받을 값(데이터와 명령어)을 저장하는 레지스터. 즉, 메모리에 쓰고 싶은 값이나 메모리로부터 전달받은 값은 메모리 버퍼 레지스터를 거침
범용 레지스터(general purpose register) : 이름 그대로 다양하고 일반적인 상황에서 자유롭게 사용할 수 있는 레지스터. 데이터와 주소를 모두 저장할 수 있음
플래그 레지스터(flag register) : 연산 결과 또는 CPU 상태에 대한 부가적인 정보를 저장하는 레지스터
스택 포인터(stack pointer) : 스택 주소 지정 방식에 쓰이는 레지스터. 스택에 마지막으로 저장한 값의 위치를 저장함
베이스 레지스터 : 베이스 레지스터 주소 지정 방식에 쓰이는 레지스터