❗️Review : CPU
▶️ 메모리에 저장된 명령어를 읽어들이고, 해석, 실행하는 부품
▶️ 컴퓨터의 두뇌
▶️ 굉장히 복잡하고 정교하게 설계되어 있음
▶️ 핵심 내부 구성 부분
▶️ CPU는 명령어 사이클에 맞춰 명령어들을 실행
1️⃣ ALU(산술 논리 연산 장치): 계산기
2️⃣ 레지스터: CPU 내부의 작은 임시 저장 장치, 여러 개로 존재함, 프로그램 속 명령어&데이터가 실행 전후에 저장됨
3️⃣ 제어장치: 제어 신호를 내보내고 명령어를 해석하는 장치
(+) 제어 신호: 컴퓨터 부품들을 관리하고 작동시키기 위한 전기 신호 ex) 메모리 읽기, 메모리 쓰기, 입출력장치 읽기
4️⃣ 캐시 메모리
5️⃣ 시스템 버스: 컴퓨터의 4가지 핵심 부품 간 정보 교환 통로
1. CPU의 내부 구성
ALU
⬅️ input 피연산자, 제어 신호 from 레지스터, 제어장치
➡️ output 결과값, 플래그 to 레지스터(임시), 플래그 레지스터
(CPU의 레지스터 접근 시간 < CPU의 메모리 접근 시간)
(플래그: 연산 결과에 따른 부가 정보 ex) 양수/음수 여부)
플래그
1) 부호 플래그 ex) 음수 1 양수 0
2) 제로 플래그 ex) 계산 결과0 1 계산결과!0 0
3) 캐리 플래그 ex) 올림수/발림수O 1 올림수/발림수X 0
4) 오버플로우 플래그 ex) O 1 X 0
5) 인터럽트 플래그 ex) O 1 X 0
6) 슈퍼바이저 플래그 ex) 커널 모드 실행 1 사용자모드 실행 0
제어 장치
⬅️ 클럭 신호, 해석할 명령어, 플래그, 제어 신호 from 명령어 레지스터, 플래그 레지스터, 외부
➡️ 제어 신호 to CPU 내부(레지스터, ALU), CPU 외부(메모리, 입출력장치)
클럭 신호
- 컴퓨터의 모든 부품을 일사불란하게 움직일 수 있게 하는 시간 단위
- 클럭 속도(Hz) ≒ CPU 속도
- 헤르츠(Hz) : 1초에 클럭이 반복되는 횟수
- 필요 이상으로 높이면 발열 발생
레지스터
▶️ 레지스터에 담긴 값을 보는 경우 ⭕️ → 프로그래머에게 더 중요
▶️ 각 레지스터마다 역할이 다름
▶️ CPU에 따라 레지스터 종류, 갯수가 다름
1️⃣ 프로그램 카운터(=명령어 포인터) : 메모리에서 가져올 명령어의 주소 저장, 실행될 때마다 1씩 증가
2️⃣ 명령어 레지스터 : 해석할 명령어 to 제어 장치
3️⃣ 메모리 주소 레지스터 : 메모리의 주소 to 주소 버스
4️⃣ 메모리 버퍼 레지스터 : 메모리와 주고 받은 값 through 데이터 버스
5️⃣ 플래그 레지스터: 연산 결과, CPU 상태에 대한 추가 정보
ex) 부호 플래그, 제로 플래그, 캐리 플래그, 오버플로우 플래그, 인터럽트 플래그, 슈퍼바이저 플래그
6️⃣ 범용 레지스터: 주소, 명령어, 데이터 등, 여러 개 존재
7️⃣ 스택 포인터 : 스택 스택 포인터 주소 지정 방식에 사용, 스택의 최상위 부분 지칭(얼마나 채워져 있는가)
8️⃣ 베이스 레지스터 : 기존 주소 저장, 변위 주소 지정 방식에서 오퍼랜드 필드 값(변위)과 해당 값을 더해서 유효 주소 획득
예외 : 순차적 실행 흐름이 끊기는 경우
- 특정 메모리 주소로 실행 흐름을 이동하는 명령어 ex) JUMP, CALL
- 인터럽트
'공부(TIL) > 스터디' 카테고리의 다른 글
[컴퓨터 구조] CPU 속도 향상 조건 (2) | 2024.04.12 |
---|---|
[컴퓨터 구조] 인터럽트(interrupt) (0) | 2024.04.11 |
[컴퓨터 구조] 명령어 (0) | 2024.04.05 |
[컴퓨터 구조] 데이터 (0) | 2024.04.05 |
[컴퓨터 구조] 전반적인 흐름과 내용 (0) | 2024.04.04 |