본문 바로가기
2.1 CS/컴퓨터구조 & 논리

[CS/컴퓨터구조] 레지스터

by Dohi._. 2024. 8. 21.
728x90

프로그램의 명령어와 데이터는 실행전 후에 레지스터에 저장됩니다

그럼 이 레지스터는 무엇일까

 

레지스터

CPU(Central Processing Unit)가 요청을 처리하는 데 필요한 데이터를 일시적으로 저장하는 기억장치로

CPU안에 다양한 레지스터들이 있습니다.

 

대표적인 레지스터

레지스터에는 다양한 레지스터들이 있지만 간단하게 대표적인 레지스터들만 거론해보겠습니다.

 

  1. PC(프로그램 카운터 / Program Counter)
    • 다음에 실행될 명령어의 주소를 가지고 있어 실행할 기계어 코드의 위치를 저장 
    • 명령어 포인터(IP : Instruction Point)라고도 한다
  2. IR ( 명령어 레지스터 / Instruction Register)
    • 현재 실행 중인 명령어를 저장
    • CPU는 IR에 저장된 명령어를 해석하고 실행합니다.
  3.   메모리 주소 레지스터 (MAR)
    • 메모리의 주소를 저장.
    • 즉, CPU가 메모리에 데이터를 읽거나 쓸 때, MAR은 해당 데이터의 위치를 가리키는 주소를 저장합니다.
    • MAR은 CPU가 메모리로부터 데이터를 읽거나 메모리에 데이터를 쓸 때 사용되는 주소 정보를 보관합니다.
    • MAR은 메모리 연산에서 데이터의 정확한 위치를 지정하는 데 중요한 역할로 즉, 어떤 데이터가 어디에 있는지를 나타내는 주소 정보를 제공합니다.
  4. 메모리 버퍼 레지스터 (MBR)
    • 메모리와 CPU 사이에서 데이터 전송을 중개하는 역할
    • 즉,메모리에서 읽은 데이터를 임시로 저장하거나, 메모리에 쓸 데이터를 임시보관합니다.
    • CPU가 메모리로부터 데이터를 읽을 때나 데이터를 쓸 때 해당 데이터는 먼저 MBR에 저장혹은 거쳐 메모리로 전송되는데  이는 메모리 읽기/쓰기 연산의 중간 단계에서 메모리와 CPU 사이의 데이터 교환에서 중요한 역할한다.
  5. 범용 레지스터 (General-Purpose Registers)
    • 범용 레지스터는 다양한 상황에 쓸 수 있는 레지스터 (임시저장소느낌)
    • MAR은 메모리 주소값만 MBR는 데이터버스로 주고 받을 값만 저장하지만
    • 범용레지스터는 데이터와 주소를 모두 저장할 수 있습니다.
  6.  플래그 레지스터(Flag Register)
    • ALU 연산 결과에 따른 플래그를 저장하거나 CPU 상태에 대한 부가적인 정보를 저장한다.
  7. 스택 포인터(SP Stack Pointer)
    •  스택 영역의 시작 주소를 저장(스택 최상단 위치)
  8. 베이스 레지스터(base register)
    •  데이터용 메모리 영역의 시작 주소를 저장한다. 
    • 저장된 주소는 기준 주소의 역할을 함
  9.  인덱스 레지스터(index register)
    •  베이스 레지스터를 기준으로 한 상대 주소를 저장

 

이외로 다양하게 많이 있지만 EAX등등 많지만 각 이름도 다르고 역할도 조금씩 다르기 때문에 이정도가 많이 사용하는 레지스터들이므로 알고 있으면 좋을 것 같습니다:)

728x90

댓글