2024. 7. 14. 18:01ㆍ혼공_컴구+운체
과제
p125 확인 문제 2번
p155 확인 문제 4번
개념 정리
04 CPU의 작동 원리
05 CPU 성능 향상 기법
과제
p125 확인 문제 2번
( 플래스 레지스터 ): 연산 결과 혹은 CPU 상태에 대한 부가 정보를 저장하는 레지스터
( 프로그램 카운터 ): 메모리에서 가져올 명령어의 주소를 저장하는 레지스터터
( 범용 레지스터 ): 데이터와 주소를 모두 저장할 수 있는 레지스터
( 명령어 레지스터 ): 해석할 명령어를 저장하는 레지스터
p155 확인 문제 4번
코어
04 CPU의 작동 원리
0. CPU
: 메모리에 저장된 명령어를 읽기 / 해석 / 실행하는 장치
CPU 구성 부품
- ALU(산술논리연산장치): 계산 담당
- 제어장치: 명령어를 읽어 들이고 해석함
- 레지스터: 임시 저장 장치
1. ALU
CPU의 부품 1: 계산하는 부품
ALU의 계산에 필요한 필요조건
(1) 피연산자, (2) 수행할 연산
모든 연산 과정이 그러하듯, ALU의 연산에도 피연산자와 수행할 연산이 필요하다.
ALU의 연산 수행 로직
ALU는 레지스터에게 피연산자를 받고, 제어장치로 부터 제어 신호를 받아 산술/논리 연산 등 다양한 연산을 수행함
(제어 신호: 수행할 연산을 알려줌)
ALU는 연산한 결과값과 플래그를 내보낸다.
ALU가 내보내는 정보
(1) 결과값
형식: 숫자 ot 문자 or 메모리 주소
연산 결과 저장 위치: 레지스터(일시적으로 저장됨)
연산한 결과값을 메모리가 아닌 레지스터에 임시 저장하는 이유!
CPU가 메모리에 접근하는 속도보다 레지스터에 접근하는 속도가 더 빨라서
(매 연산마다 결과값을 메모리에 저장하면 메모리에 더더욱 많이 접근하게됨 → 프로그램 실행 속도 저하)
(2) 플래그: ALU 연산(결과값)에 대한 추가적인 상태 정보
(CPU가 프로그램을 실행하는 도중 반드시 기억해야 하는 참고 정보임)
플래그 저장 위치: 플래그 레지스터
플래그 종류 | 역할 | 예시 |
부호 플래그 | 연산 결과의 부호를 나타냄 | 1: 음수 0: 양수 |
제로 플래그 | 연산 결과가 0인지 여부 | 1: 연산 결과가 0 0: 결과가 0이 아님 |
캐리 플래그 | 올림수나 빌림수의 발생 여부 | 1: 올림수 or 빌림수가 발생했음 0: 발생하지 않았음 |
오버플로우 플래그 | 오버플로우 발생 여부 | 1: 오버플로우 발생 0: 발생하지 않았음 |
인터럽트 플래그 | 인터럽트가 가능한지 여부 | 1: 인터럽트 가능 0: 불가능 |
슈퍼바이저 플래그 | 커널 모드로 실행중인지, 사용자 모드로 실행 중인지 여부 | 1: 커널 모드로 실행 중임 0: 사용자 모드로 실행 중임 |
연산 수행 직후, 플래그 레지스터의 상태값으로 결과값을 유추할 수 있다.
2. 제어장치
# 2.1 제어장치가 받는 정보들
① 클럭 신호
② 해석해야 할 명령어(in 명령어 레지스터)
③ 플래그값(in 플래그 레지스터)
④ 제어버스로 전달된 제어 신호
클럭
컴퓨터의 모든 부품의 시간 단위
컴퓨터의 모든 부품은 클럭 신호에 맞춰 작동한다
(but 주기는 각자 다름. 아래 그림처럼 하나의 명령어가 여러 클럭에 걸쳐 실행될 수 있다)
명령어 레지스터
CPU가 해석해야하는 명령어들이 저장되어 있음
제어장치는 명령어 레지스터로부터 해석할 명령어를 받아 해석한 뒤, 제어신호를 발생시킴
제어신호 발생 → to 컴퓨터 부품들(각 부품들이 수행할 내용을 알려줌)
플래그값
제어장치는 연산에 대한 추가 정보가 담긴 플래그값 또한 받아들인다.
제어신호 발생시킬 때 플래그값을 참고한다
제어 신호
제어신호는 CPU뿐 아니라 입출력장치를 비롯한 CPU 외부장치도 발생시킬 수 있음
제어장치는 제어 버스를 통해 외부에서 전달된 제어 신호도 받아들인다
# 2.2 제어장치가 내보내는 정보들
① CPU 외부에 전달하는 제어 신호
② CPU 내부에 전달하는 제어 신호
CPU 외부에 전달하는 제어 신호
제어 버스로 제어 신호를 내보냄
CPU 외부에 전달하는 제어 신호 | 메모리 에 전달하는 제어 신호 | 메모리에 저장된 값 읽기 / 새로운 값 쓰기 |
입출력장치 에 전달하는 제어 신호 | 입출력장치에 저장된 값 읽기 / 새로운 값 쓰기 | |
CPU 내부에 전달하는 제어 신호 | ALU 에 전달하는 제어 신호 | ALU에 수행할 연산을 지시 |
레지스터 에 전달하는 제어 신호 | 레지스터 간 데이터를 이동시키거나, 레지스터에 저장된 명령어를 해석 |
2. 레지스터
프로그램 속 명령어와 데이터는 실행 전후로 반드시 레지스터에 저장된다.
→ 레지스터 값 관찰을 통해 프로그램 실행 시 CPU 내에서 어떤 명령어가 어떻게 수행되는지 알 수 있다.
'혼공_컴구+운체' 카테고리의 다른 글
[혼공컴운] 1주차 | 컴퓨터 구조 시작하기 (0) | 2024.07.07 |
---|