[컴퓨터 구조] 레지스터 (CPU)

2023. 3. 13. 23:40기술 창고/CS 지식

728x90
반응형
SMALL

레지스터

  • CPU 내부의 작은 임시저장장치
  • 프로그램 속 명령어 와 데이터는 실행 전후로 레지스터에 저장된다.
  • 레지스터는 다양한 레지스터들이 존재하고 각자 다른 역할을 가진다.
    • 프로그램 카운터
      • 메모리에서 가져올 명령어의 주소 (메모리에서 읽어들일 다음 명령어 주소)
    • 명령어 레지스터
      • 해석할 명령어 (CPU에 읽어들인 명령어)
    • 메모리 주소 레지스터
      • 메모리 주소
    • 메모리 버퍼 레지스터
      • 메모리와 주고받을 값 (데이터와 명령어)
  • 프로그램 카운터 ~ 레지스터 간의 흐름 과정
    1. 프로그램 카운터에서 수행될 다음 명령어 주소를 가져온다.
    2. 프로그램 카운터에서 가져온 다음 명령어 주소를 메모리 주소 레지스터에 그대로 복사한다.(저장된다.)
    3. 주소 버스를 통해 메모리 주소 레지스터에 저장되어있는 다음 명령어 주소로 찾아간다.
    4. 다음 명령어 주소에 저장되어있는 데이터를 데이터 버스를 통해 메모리 버퍼 레지스터에 저장한다.
    5. 메모리 버퍼 레지스터에 데이터를 저장함과 동시에 프로그램 카운터에서는 그 다음 수행될 명령어 주소를 가져온다.
    6. 메모리 버퍼 레지스터에 저장된 데이터 혹은 명령어를 명령어 레지스터에 읽어들인다.
  • # 보통 프로그램 카운터와 레지스터로 인한 동작은 순차적으로 실행되나 JUMP, CONDITIONAL JUMP, CALL 과 같은 명령어를 수행하여 실행 흐름을 이동할 수 있다.
    • 플래그 레지스터
      • 연산 결과 또는 CPU 상태에 대한 부가적인 정보
    • 범용 레지스터
      • 다양하고 일반적인 상황에서 자유롭게 사용가능한 레지스터
    • 스택 포인터
      • # 스택 주소 지정 방식 : 스택과 스택 포인터를 이용한 주소 지정 방식
      • 스택 포인터는 스택 자료구조 형태에서 가장 맨 위에 있는 데이터를 가리키는 포인터
    • 베이스 레지스터
      • 기준 주소 저장 
      • 베이스 레지스터 주소 지정 방식 : 오퍼랜드 필드의 값과 베이스 레지스터의 값을 더하여 유효 주소를 얻는 방식 
      • 변위 주소 지정 방식 : 오퍼랜드 필드의 값과 특정 레지스터의 값을 더하여 유효 주소를 얻는 방식 
      • 상대 주소 지정 방식 : 오퍼랜드 필드의 값과 프로그램 카운터의 값을 더하여 유효 주소를 얻는 방식
      • # 스택 포인터와 베이스 레지스터는 특정한 주소를 지정할 떄 사용된다.
728x90
반응형
LIST