본 카테고리는 "혼자 공부하는 컴퓨터구조 + 운영체제 (강민철 저)" 책과 강의를 기반으로 작성하였습니다.
레지스터의 역할
레지스터는 CPU 내부에 있는 작은 임시저장 장치로 컴퓨터가 실행하는 프로그램 속 명령어와 데이터를 일시적으로 저장하고 전달한다. 레지스터는 컴퓨터 프로세서 내에서 자료를 보관하는 아주 빠른 기억장소이며, 메모리 계층의 최상위에 위차한다. 속도가 가장 빠른 만큼 비싸기 때문에 속도 측면에서 중요할 때와 꼭 사용해야되는 값들이 저장된다.
이렇게 빠르고 비싼 레지스터는 다양한 종류가 있고 각기 다른 역할을 가진다. CPU마다 사용하는 레지스터의 개수나 종류들은 다르지만, 공통적으로 사용하는 레지스터들이 있다. 이번 포스팅에서 공통적으로 사용하는 주요 레지스터의 종류와 역할에 대해 알아본다.
레지스터 종류
▶︎ 프로그램 카운터( Program count, PC)
- CPU가 다음에 실행할 명령어의 메모리 주소를 일시적으로 저장하는데 사용
- CPU는 매번 프로그램 카운터가 가리키는 메모리 위치의 명령을 처리한다.
- 명령어 포인터 (Instruction Pointer, IP) 라고도 한다.
▶︎ 명령어 레지스터 (Instruction resister, IR)
- 메모리에서 수행할 명령을 가져오면 명령어 레지스터에 저장된다.
- 명령어 레지스터가 제어 장치에게 지시하여 저장된 명령어를 해석한다.
▶︎ 메모리 주소 레지스터 (Memory Address Register, MAR)
- CPU가 데이터를 읽거나 쓰려는 메모리 주소를 일시적으로 저장
- 메모리의 주소, 주소를 주소 버스로 보낼 때 거치는 레지스터
▶︎ 메모리 버퍼 레지스터
- 메모리와 주고받을 데이터와 명령어, 데이터 버스로 주고 받을 때 거치는 레지스터
▶︎ 플래그 레지스터
- 연산 결과 또는 CPU 상태에 대한 부가적인 정보
- 어떤 연산을 하고 있었는지, CPU 상태는 어땠는지
▶︎ 범용 레지스터
- 다양하고 일반적인 상황에서 자유롭게 사용
- 거의 모두 담을 수 있다 (명령어, 데이터 등)
▶︎ 스택 포인터
- 스택 주소 지정 방식에 사용한다
- 스택포인터 : 스택의 꼭대기를 가리키는 레지스터
- 메모리 안에 스택 영역이 있다. 거기에서 사용
▶︎ 베이스 레지스터
- 변위 주소 지정 방식에 사용한다
변위 주소 지정 방식
▶︎ PC 레지스터 이용
- 오퍼랜드 필드의 값과 프로그램 카운터의 값을 더하여 유효 주소 얻음
- 다음 명령어부터 3번지 떨어져있는 곳이 유효주소
▶︎ 베이스 레지스터 이용
- 오퍼랜드 필드의 값과 베이스 레지스터의 값을 더하여 유휴 주소 얻음
- 기준 주소 역할.
'CS > 컴퓨터 구조' 카테고리의 다른 글
컴퓨터 구조 #9 - 빠른 CPU를 위한 설계 기법 (0) | 2024.01.29 |
---|---|
컴퓨터 구조 #8 - 명령어 사이클과 인터럽트 (0) | 2024.01.28 |
컴퓨터 구조 #6 - CPU 내부 구성(ALU, 제어 장치) (0) | 2024.01.27 |
컴퓨터 구조 #5 - 명령의 구조와 주소 지정 방식 (0) | 2024.01.26 |
컴퓨터 구조 #4 - 저급언어와 고급언어 (1) | 2024.01.26 |