728x90
프로그램의 명령어와 데이터는 실행전 후에 레지스터에 저장됩니다
그럼 이 레지스터는 무엇일까
레지스터
CPU(Central Processing Unit)가 요청을 처리하는 데 필요한 데이터를 일시적으로 저장하는 기억장치로
CPU안에 다양한 레지스터들이 있습니다.
대표적인 레지스터
레지스터에는 다양한 레지스터들이 있지만 간단하게 대표적인 레지스터들만 거론해보겠습니다.
- PC(프로그램 카운터 / Program Counter)
- 다음에 실행될 명령어의 주소를 가지고 있어 실행할 기계어 코드의 위치를 저장
- 명령어 포인터(IP : Instruction Point)라고도 한다
- IR ( 명령어 레지스터 / Instruction Register)
- 현재 실행 중인 명령어를 저장
- CPU는 IR에 저장된 명령어를 해석하고 실행합니다.
- 메모리 주소 레지스터 (MAR)
- 메모리의 주소를 저장.
- 즉, CPU가 메모리에 데이터를 읽거나 쓸 때, MAR은 해당 데이터의 위치를 가리키는 주소를 저장합니다.
- MAR은 CPU가 메모리로부터 데이터를 읽거나 메모리에 데이터를 쓸 때 사용되는 주소 정보를 보관합니다.
- MAR은 메모리 연산에서 데이터의 정확한 위치를 지정하는 데 중요한 역할로 즉, 어떤 데이터가 어디에 있는지를 나타내는 주소 정보를 제공합니다.
- 메모리 버퍼 레지스터 (MBR)
- 메모리와 CPU 사이에서 데이터 전송을 중개하는 역할
- 즉,메모리에서 읽은 데이터를 임시로 저장하거나, 메모리에 쓸 데이터를 임시보관합니다.
- CPU가 메모리로부터 데이터를 읽을 때나 데이터를 쓸 때 해당 데이터는 먼저 MBR에 저장혹은 거쳐 메모리로 전송되는데 이는 메모리 읽기/쓰기 연산의 중간 단계에서 메모리와 CPU 사이의 데이터 교환에서 중요한 역할한다.
- 범용 레지스터 (General-Purpose Registers)
- 범용 레지스터는 다양한 상황에 쓸 수 있는 레지스터 (임시저장소느낌)
- MAR은 메모리 주소값만 MBR는 데이터버스로 주고 받을 값만 저장하지만
- 범용레지스터는 데이터와 주소를 모두 저장할 수 있습니다.
- 플래그 레지스터(Flag Register)
- ALU 연산 결과에 따른 플래그를 저장하거나 CPU 상태에 대한 부가적인 정보를 저장한다.
- 스택 포인터(SP Stack Pointer)
- 스택 영역의 시작 주소를 저장(스택 최상단 위치)
- 베이스 레지스터(base register)
- 데이터용 메모리 영역의 시작 주소를 저장한다.
- 저장된 주소는 기준 주소의 역할을 함
- 인덱스 레지스터(index register)
- 베이스 레지스터를 기준으로 한 상대 주소를 저장
이외로 다양하게 많이 있지만 EAX등등 많지만 각 이름도 다르고 역할도 조금씩 다르기 때문에 이정도가 많이 사용하는 레지스터들이므로 알고 있으면 좋을 것 같습니다:)
728x90
'2.1 CS > 컴퓨터구조 & 논리' 카테고리의 다른 글
[CS/컴퓨터구조] 컴퓨터구조 기본구조 (0) | 2024.08.19 |
---|---|
[cs/컴퓨터구조&논리] Accumulator (0) | 2024.08.19 |
[cs/컴퓨터구조&논리] Multiplexer, Demultiplexer, Encoder, Decoder (0) | 2024.08.19 |
[CS/논리] 플립플롭 (0) | 2024.08.19 |
[CS/논리] Logic gate(논리게이트) (0) | 2024.08.13 |
댓글