1. CPU의 구조
1-1. ALU
- 계산을 담당
- 동작 과정
1. 레지스터를 통해 피연산자를 받아들임
2. 제어장치로부터 수행할 연산을 알려주는 제어 신호를 받아들임
3. 레지스터와 제어장치로부터 받아 들인 피연산자와 제어 신호로 산술 연산, 논리 연산등을 수행
4-1. 연산 결과는 바로 메모리에 저장하지 않고 일시적으로 레지스터에 저장
- 연산 결과는 특정 숫자나 문자, 메모리 주소 등으로 표현됨
- 연산 결과를 레지스터에 저장하는 이유는 메모리 접근 횟수를 줄여 속도를 향상 시키기 위함

4-2. 플래그 레지스터를 내보냄
- 음수 양수 구분 등 연간 결과에 대한 추가적인 정보를 담음
- 연산을 실행한 직후 플래그를 합쳐 연산 결과를 확인함
1-2. 제어장치
- 제어장치는 제어 신호를 내보내고, 명령어를 해석
- 컴퓨터 부품들을 관리하고 작동시키기 위한 일종의 전기 신호
- 작동 방식
1. 클럭 신호를 받음
- 클럭 : 컴퓨터의 시간 단위
- 컴퓨터의 부품들은 클럭 신호에 맞춰 작동
2. 해석해야할 명령어를 받음
- 명령어 레지스터로부터 해석할 명령어를 받고 해석, 제어 신호를 발생
3. 플래그 레지스터 속 플래그 값을 받음
- 플래그 레지스터의 값을 참고해서 제어 신호 발생
4. 제어 버스로 전달된 신호를 받음
- 제어 버스를 통해 CPU 외부로 부터 전달된 신호를 받기도함
4-1. 제어버스로 전달되는 신호 구분
- 외부
- 메모리, 입출력 장치에 전달하는 제어 신호
- 내부
- ALU, 레지스터에 전달하는 제어 신호
- ALU에는 수행할 연산을 지시
- 레지스터에는 레지스터 간에 데이터를 이동시키거나 레지스터에 저장된 명령어를 해석하기 위한 제어 신호를 보냄
1-3. 레지스터
- 대표적인 레지스터
- 프로그램 카운터 (PC)
- 메모리에서 읽어 들일 명령어의 주소 저장
- 명령어 레지스터 (IR)
- 메모리에서 읽어 들인 명령어를 저장
- 제어 장치가 이를 받아들이고 이를 해석한 뒤 제어신호 발생
- 메모리 주소 레지스터 (MAR)
- 메모리의 주소를 저장
- CPU가 읽어들이고자 하는 주소를 주소 버스에 내보낼 때 사용
- 메모리 버퍼 레지스터 (MBR)
- 메모리와 주고받을 값을 저장하는 레지스터
- 메모리에 쓰고 싶은 값이나, 전달 받은 값이 거치는 레지스터
- 사용 이유
- CPU가 메모리에서 직접 값을 읽으면 CPU와 메모리의 처리 속도 차이 때문에 CPU가 대기상태로 들어감
- 메모리 버퍼 레지스터를 통해, CPU는 메모리에 직접 접근하지 않고 MBR에 데이터를 읽거나 씀으로써 이러한 대기시간을 줄임
- 캐시 메모리와 다른 점
- MBR은 CPU 내부에서 CPU와 메모리 사이의 데이터 전송을 임시로 저장하고 관리
- 캐시 메모리는 CPU와 메인 메모리 사이에 위치하여 CPU가 자주 사용하는 데이터를 빠르게 접근하고 재사용할 수 있도록 보관
- 범용 레지스터
- 다양하고 일반적인 상황에서 자유롭게 사용할 수 있는 레지스터
- 데이터와 주소 모두 저장 가능
- 일반적으로 현대 대다수 CPU는 모두 범용 레지스터를 여러개 가지고 있음
- 플래그 레지스터
- 연산 결과 또는 CPU 상태에 대한 부가적인 정보를 저장
- 스택 포인터
- 스택 주소 지정 방식에 사용
- 스택의 꼭대기를 가리키는 레지스터
- 베이스 레지스터
- 베이스 레지스터 주소 지정 방식에 사용
- 베이스 레지스터 주소 지정 방식의 기준 주소를 저장함.
'CS > 컴퓨터 구조' 카테고리의 다른 글
명령어 병렬 처리 기법 [혼공컴구] (0) | 2023.11.22 |
---|---|
컴퓨터 구조 - 클럭, 코어, 스레드 [혼공컴구] (0) | 2023.11.17 |
컴퓨터 구조 - 명령어 사이클과 인터럽트 [혼공컴구] (1) | 2023.11.17 |
컴퓨터 구조 - 명령어 [혼공컴구] (0) | 2023.11.17 |
컴퓨터 구조 - 데이터 [혼공컴구] (0) | 2023.11.17 |