본문 바로가기

CS-Study

컴퓨터 구조 : 레지스터

728x90

📗 레지스터

프로그램 속 명령어와 데이터는 실행 전후로 레지스터에 저장된다.

레지스터의 종류는 다양하며 전부 역할이 다르다.

 

 

💻프로그램 카운터 (PC)

다음에 메모리에서 가져온 올 명령어의 주소를 저장하는 레지스터이다.

프로그램 카운터가 있기 때문에 프로그램이 순차적으로 실행할 수 있게 된다.

 

💻명령어 레지스터

방금 메모리에서 읽어들인 해석할 명령어가 저장되는 레지스터 이다.

 

💻메모리 주소 레지스터

메모리의 주소를 저장하고 CPU가 읽어들이고자 하는 주소를 

주소버스로 보낼 때 거쳐가는 레지스터 이다.

 

💻메모리 버퍼 레지스터

메모리와 주고받을 데이터, 명령어가 저장되는 레지스터 이다.

 

✔ 왜 데이터나 명령어를 메모리에 바로 보내지 않고 메모리 버퍼 레지스터를 거치는 걸까?

메모리는 CPU보다 속도가 느리기 때문에, CPU는 상대적으로 빠른 레지스터에 데이터를 먼저 저장하고,

나중에 메모리로 전송하는 방식으로 속도를 맞춘다.

버퍼 레지스터에 임시 저장하는 것으로 CPU와 메모리 간의 속도 차이로 인해 발생하는 지연을 줄일 수 있다.

또한 메모리 버퍼 레지스터를 사용하면 데이터를 일괄적으로 처리할 수 있다. 여러 개의 데이터나 명령어를

메모리로 한 번에 보내는 것으로 효율적인 작업을 할 수 있다.

 

💻플래그 레지스터

연산 결과, CPU상태에 대한 부가 정보를 저장하는 레지스터이다.

 

💻범용 레지스터

다양하고 일반적인 상황에서 자유롭게 사용하는 레지스터이다. 여러개가 존재한다.

 

💻 스택 포인터 레지스터 & 베이스 레지스터

각각 스택 주소 지정 방식, 변위 주소 지정 방식에 사용되는 레지스터 이다.

 

📗 스택 주소 지정 방식

스택과 스택 포인터를 이용한 주소 지정 방식이다.

스택 포인터는 스택이 어디까지 차 있는지 표시한다.

 

 

📗 변위 주소 지정 방식

변위 주소 지정 방식은 메모리 주소를 나타낼 때, 특정한 기준 주소에서 얼마나 떨어져 있는지를

나타내는 주소 지정 방식이다. 기준 주소와 변위를 더하거나 뺌으로써 목표 주소를 계산한다.

 

프로그램 카운터나 베이스 레지스터 등을 사용하여 기준 주소를 나타내고,

명령어나 데이터에 대한 주소를 해당 기준 주소에 더하거나 빼서 실제 주소를 얻는다.

 

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

오퍼랜드 필드 값과 베이스 레지스터의 주소값을 더해 유효주소를 얻는 방식이다.

 

💻 상대 주소 지정 방식

오퍼랜드 필드 값과 프로그램 카운터의 주소값을 더해 유효주소를 얻는 방식이다.

 

✔ 두 주소 지정 방식의 차이점

베이스 레지스터 주소 지정 방식은 특정 레지스터의 값이 목표 주소를 결정하는 데 사용되는 반면,

상대 주소 지정 방식은 현재 위치를 기준으로 이동하는 상대적인 주소를 사용한다.

 

 

 

학습 출처 :https://www.youtube.com/watch?v=fSCHizcezTs&list=PLVsNizTWUw7FCS83JhC1vflK8OcLRG0Hl&index=12

728x90
반응형