Notice
Recent Posts
Recent Comments
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Archives
Today
Total
관리 메뉴

SYDev

Chapter 04-2 : 레지스터 본문

Computer Architecture + Operating System/Computer Architecture

Chapter 04-2 : 레지스터

시데브 2023. 7. 25. 01:04

학습 목표

  • 프로그램 속 명령어와 데이터는 실행 전후로 레지스터에 저장되므로, 레지스터만 잘 관찰해도 CPU가 돌아가는 상황을 어느정도 파악할 수 있다.
  • 이런 레지스터의 종류와 역할을 학습하고, 각 레지스터를 통해 명령어가 처리되는 과정을 이해해보자.

 

주요 레지스터 8종

  • 프로그램 카운터: 메모리에서 가져올 명령어의 주소를 저장, 명령어 포인터(IP; Instruction Pointer)라고도 불림
  • 명령어 레지스터: 메모리에서 가져온 명령어를 저장
  • 메모리 주소 레지스터: 메모리의 주소를 저장, CPU에서 주소 버스로 보내기 전 거치는 레지스터
  • 메모리 버퍼 레지스터: 메모리와 주고받을 데이터와 명령어를 저장, 데이터 버스로 이동하기 전 거치는 레지스터

프로그램 카운터에 저장된 명령어의 주소 -> 메모리 주소 레지스터 --(주소 버스)--> 메모리 --(데이터 버스)--> 메모리 버퍼 레지스터 -> 명령어 레지스터 

 

  • 플래그 레지스터: 연산 결과 or CPU 상태에 대한 부가적인 정보(플래그)를 저장
  • 범용 레지스터: 다양하고 일반적인 상황에서 자유롭게 사용할 수 있는 레지스터
  • 스택 포인터: 스택(LIFO) 영역을 이용한 스택 주소 지정 방식에 사용
  • 베이스 레지스터: 오퍼랜드와 함께 베이스 레지스터 주소 지정 방식에 사용

 

특정 레지스터를 이용한 주소 지정 방식(1): 스택 주소 지정 방식

  • 스택(LIFO) 포인터: 스택에 데이터가 어디까지 채워져 있는지 표시, 스택의 Last In 데이터의 주소
  • 메모리 내부에 특정 영역을 잡고 스택처럼 사용하기로 약속
  • 스택 주소 지정 방식: 스택 포인터로 지정된 주소를 통해 데이터에 접근하는 방식

 

특정 레지스터를 이용한 주소 지정 방식(2): 변위 주소 지정 방식

  • 변위 주소 지정 방식(displacement addressing mode): 오퍼랜드 필드의 값과 특정 레지스터의 값을 더하여 유효주소를 얻어내는 주소 지정 방식
  • 변위 주소 지정 방식은 상대 주소 지정 방식 베이스 레지스터 지정 방식으로 나뉜다.

상대 주소 지정 방식

  • 오퍼랜드 + 프로그램 카운터 -> 유효 주소
  • 프로그램 카운터에 저장된 명령어 주소로부터 오퍼랜드에 있는 값만큼 떨어진 명령어에 접근
  • 예를 들어 오퍼랜드에 -3 값이 저장되어있으면, 프로그램 카운터에 저장된 명령어 주소로부터 '세 번째 이전' 번지로 접근
  • if문과 유사하게 모든 코드를 실행하는 것이 아닌, 분기하여 특정 주소의 코들르 실행할 때 사용됨

베이스 레지스터 주 지정 방식

  • 오퍼랜드 + 베이스 레지스터 -> 유효 주소
  • 베이스 레지스터는 '기준 주소', 오퍼랜드는 '기준 주소로부터 떨어진 거리'
  • 주로 기억장치 내의 프로그램의 위치를 지정할 때 사용됨

참고자료

 

#3 컴퓨터 구조 - 명령어를 효과적으로 처리하기 위한 기법

지난 시간에는 명령어의 형식에 대해 공부하였다. 이번에는 명령어를 효과적으로 실행하기 위한 기법 3가지(주소 지정 방식 / 파이프라인 / 인터럽트)를 살펴보도록 하자 주소 지정 방식 주소 지

hyk0425.tistory.com

  • 강민철, <혼자 공부하는 컴퓨터구조 + 운영체제>, 한빛미디어(주), 2022.08.16