교재 내용을 학습한 걸 그대로 쓰기 보단, 내가 이해한 대로 다시 작성하기로 해서 2주차~3주차 내용이 좀 늦게 올라가게 되었습니다.. 죄송합니다
위 그림은 CPU(Central Processing Unit)의 간단한 구조를 나타냄.
ALU, 제어장치, 레지스터로 이루어짐
레지스터는 CPU 내부의 작은 임시 저장 장치
-> 프로그램 속 명령어&데이터가 실행 전후로(일시적으로) 저장되는 곳이 레지스터!
그림을 보면,
Set of Registers 라고 나와있는데, CPU 내부에는 다양한 레지스터가 있고, 각기 다른 역할을 가짐
CPU 종류마다 레지스터의 갯수, 종류는 다 다른데, 여기서 반드시 알아야 할 레지스터 8개만 짚고 넘어가기로 함
1. 프로그램 카운터 Program Counter (PC)
CPU가 메모리에서 가져올(읽어들일) 명령어의 주소를 담고 있음.
-> 다음에 실행시켜야 할 명령어의 주소!
프로그램 카운터는 계속 증가함(1씩) -> 다음 명령어 읽을 준비!
2. 명령어 레지스터 Instruction Register (IR)
제어장치가 해석해야할 명령어 (방금 메모리에서 읽어들인 명령어)를 잠시 보관해 두는 특수 목적 레지스터.
3. 메모리 주소 레지스터 Memory Address Register (MAR)
CPU가 읽어 들이고자 하는 주소를 주소 버스로 보낼 때 거치는 레지스터
-> CPU가 읽거나/쓰려고 하는 메모리 주소를 일시적으로 저장
4. 메모리 버퍼 레지스터 Memory Buffer Register (MBR)
메모리와 주고받을 값(메모리에 읽거나 쓰려는 데이터/명령어)을 일시적으로 저장 (데이터&명령어)
(명령어 흐름) PC 레지스터 -> MAR 레지스터 -> MBR 레지스터 -> IR 레지스터
프로그램 카운터의 순차적 흐름이 끊기는 경우
- 특정 메모리 주소로 실행 흐름을 이동하는 명령어 실행 시
- 인터럽트 발생시
- 등...
5. 플래그 레지스터 Flag Register, Status Register, or Condition Code Register (CCR)
산술 연산 결과의 상태를 보여주는 flag bit이 모인 레지스터. 연산 결과 or CPU 상태에 대한 부가적인 정보 저장
6. 범용 레지스터 General Purpose Register
다양, 일반적 상황에서 자유롭게 사용하는 레지스터
7. 스택 포인터 Stack Pointer (SP)
스택의 꼭대기를 가리키는 레지스터 (스택이 어디까지 차 있냐에 대한 표시)
8. 베이스 레지스터 Base Register
(복습)
명령어 -> 연산 코드 & 오퍼랜드로 이루어짐
주소지정 방식 : 명령어 실행에 필요한 오퍼랜드의 주소를 결정하는 방식
스택 주소 지정 방식 : 스택, 스택 포인터를 이용한 주소 지정 방식
-> 스택 포인터가 n번지를 가리키면, 지금 스택이 n번지까지 채워져 있다는 것
변위 주소 지정 방식 : 오퍼랜드 필드의 값(변위) + 특정 레지스터의 값을 더하여 유효 주소를 얻어내는 주소 지정 방식
연산 코드 | 레지스터 | 오퍼랜드 |
- 상대 주소 지정 방식 : 오퍼랜드 + 프로그램 카운터
-> 주로 분기 명령어에서 사용, 오퍼랜드 필드의 값(변위)은 양수/음수 값 가질 수 있음
- 베이스 레지스터 주소 지정 방식 : 오퍼랜드 + 베이스 레지스터
-> 베이스 레지스터의 내용 + 변위(오퍼랜드 필드 값) 더하여 유효주소 결정
베이스 레지스터 : 300, 오퍼랜드 : 10 =>> 기준 주소 300으로부터 10 떨어진 310번지로 접근하라
마무리
확인문제1 / 2101
확인문제2 / 플래그 레지스터, 프로그램 카운터, 범용 레지스터, 명령어 레지스터
확인문제3 / 6번지
확인문제4 / 4번
'CS지식' 카테고리의 다른 글
[혼공학습단 10기 - 컴퓨터 구조 + 운영체제] 2주차 / Chapter 04-1. ALU와 제어장치 (0) | 2023.07.23 |
---|---|
[혼공학습단 10기 - 컴퓨터 구조 + 운영체제] 1주차 / Chapter 03. 명령어 (0) | 2023.07.09 |
[혼공학습단 10기 - 컴퓨터 구조 + 운영체제] 1주차 / Chapter 02. 데이터 (0) | 2023.07.05 |
[혼공학습단 10기 - 컴퓨터 구조 + 운영체제] 1주차 / Chapter 01. 컴퓨터 구조 시작하기 (0) | 2023.07.01 |