CPU의 핵심 구성 요소 세 가지
- ALU (산술논리연산장치): 연산을 수행하는 장치(계산을 담당하는 회로)
- 제어 장치: 명령어를 해석하고 제어 신호(컴퓨터 부품한테 어떤 동작을 할지 알려주는 일종의 전기 신호)를 내보내는 장치,
- 레지스터(들): 명령어 처리 전후로 값을 임시 저장하는 장치
로우 레벨(보안)을 개발하는 직군이면 레지스터와 친해져야 한다.
ALU
레지스터로부터 피연산자를 받아들이고, 제어 장치로부터 제어 신호(연산할 작업)를 받아들인다. 그리고 연산의 결과를 레지스터, 연산에 대한 부가 정보를 플래그 레지스터에 저장한다.
플래그 레지스터
연산의 결과에 대한 부가 정보
부호 플래그, 제로 플래그, 캐리 플래그, 오버플로우 플래그, 인터럽트 플래그(인터럽트가 가능한지 여부), 슈퍼바이저 플래그 총 여섯 개가 있다.
제어 장치
클럭 신호
부품을 일사불란하게 움직일 수 있게 하는 시간 단위
부품이 움직이는 '박자'
그러나 일정하게 반복되는 건 아니다. 사람이 인위적으로 끌어올릴 수도 있고, 끊을 수도 있다.
레지스터
프로그램의 실행 전후로 값을 임시 저장하는 작은 저장장치
레지스터에 어떤 값이 저장되는지만 관찰해도 프로그램의 가장 저수준의 흐름을 볼 수 있다.
cpu마다 레지스터의 이름, 크기, 종류가 다양하다.
1. 프로그램 카운터(특별한 용도)
(다음으로) 메모리에서 가져올 명령어 주소(메모리에서 읽어 들일 주소)
특별한 경우를 제외하고 일반적으로 프로그램 카운터는 1씩 증가되며 메모리의 프로그램이 순차적으로 증가된다. 특별한 경우는 JUMP 같은 명령어 발생 또는 인터럽트 발생할 때를 말한다.
2. 명령어 레지스터
해석할 명령어(메모리에서 읽어 들인 주소), 해석은 제어장치가 해석한다.
3. 메모리 주소 레지스터
메모리의 주소(읽어 들일 주소 값), 시스템 버스를 통해 주소 정보를 주고받을 때 여기에 담긴다.
4. 메모리 버퍼 레지스터
메모리와 주고받을 명령어와 데이터(시스템 버스 안에는 주소, 데이터, 제어가 있는데 여기서 말하는 명령어와 데이터는 데이터 버스를 통해 주고받을 수 있는 정보를 뜻한다.)
5. 플래그 레지스터
연산 결과에 대한 부가 정보 저장
6. 범용 레지스터
범용적으로 사용 가능한 레지스터(주소나 버퍼 등), 여러 개 있다.
7. 스택(FILO) 포인터
스택 주소 지정 방식에서 사용되는, '스택의 꼭대기'를 가리키는 레지스터 (스택은 메모리 내에 있다.)
8. 베이스 레지스터
변위 주소 지정 방식에서 사용되는, '떨어진 거리'를 가리키는 레지스터
변위 주소 지정 방식
오퍼랜드 필드의 값을 변위 삼아, 특정 레지스터 값을 더해 유효 주소를 얻는 주소 지정
상대 주소 지정
여기서 레지스터가 프로그램 카운터가 된다면 '상대 주소 지정',
오퍼랜드 + 프로그램 카운터 == 유효 주소
베이스 레지스터 주소 지정
오퍼랜드 + 베이스 레지스터(기준 주소) == 유효 주소
'Upstage AI Lab 4기 > 컴퓨터 공학' 카테고리의 다른 글
[컴퓨터 구조] CPU 성능 (1) | 2024.07.24 |
---|---|
[컴퓨터 구조] 명령어 사이클과 인터럽트 (0) | 2024.07.17 |
[컴퓨터 구조] 2의 보수법, 부동 소수점, 문자 인코딩과 디코딩 (0) | 2024.07.17 |
[컴퓨터 구조] 명령어 오퍼랜드 필드에서의 주소 지정 방법 (0) | 2024.07.17 |
[컴퓨터 구조] 컴퓨터 구조 (0) | 2024.07.17 |