임석구, 홍경호 저자의 '최신 컴퓨터 구조'를 참고하였음을 알립니다.
1. 프로세서 구성과 동작
2. 산술 논리 연산 장치
3. 레지스터
프로세서(CPU) 구성과 동작
컴퓨터의 3가지 핵심 장치 : 프로세서(CPU), 메모리, 입출력 장치
버스 : 장치간 주소, 데이터, 제어 신호를 전송하기 위한 연결 통로
1) 버스 구성
- 내부 버스 : 프로세서 내부의 장치 연결
- 시스템 버스 : 핵심장치 및 주변 장치 연결
2) CPU 구성
- 산술 논리 연산 장치(ALU) : 산술 논리 연산 등 기본 연산을 수행, 그 결과를 누산기(AC)에 저장
- 제어 장치 : 메모리에서 명령을 가져와 해독하고 실행에 필요한 장치들을 제어하는 신호를 발생
- 레지스터 세트 : CPU 내에 존재하는 용량은 작지만 속도가 매우 빠른 메모리, ALU 연산과 관련된 데이터, 특정 제어 정보 저장
- 목적에 따라 특수 레지스터, 범용 레지스터로 분류, 일반적으로 1~32개의 레지스터 존재
- 내부 버스
3) CPU(프로세서)의 명령 분류
- 레지스터-메모리 명령 : 메모리 워드를 레지스터로 가져올 때(LOAD), 레지스터의 데이터를 메모리에 저장할 때(STORE)
- 레지스터-레지스터 명령 : 레지스터에서 오퍼랜드 2개를 ALU의 입력 레지스터로 불러와 연산을 수행하고 결과를 레지스터에 저장
4) CPU(프로세서)의 명령 실행
- 프로세서는 더 작은 마이크로 명령들로 나누어 실행한다.
- 주 사이클 : 인출 - 해독 - 실행
1단계 : 다음 실행될 명령어를 메모리에서 읽어 명령 레지스터(IR)로 가져온다
2단계 : 프로그램 카운터(PC)는 그 다음에 읽어올 명령어의 주소로 변경된다.
3단계 : 제어 장치는 방금 가져온 명령어를 해독(decode)하고 유형을 결정한다.
4단계 : 명령어가 메모리에 있는 데이터를 사용하는 경우 그 위치를 결정한다.
5단계 : 필요한 경우 데이터를 메모리에서 레지스터로 가져온다.
6단계 : 명령어를 실행한다.
7단계 : 1단계로 이동하여 다음 명령어 실행을 시작한다.
5) 해독기
- 하드웨어가 아닌 소프트웨어.
- 해독기 접근 방법은 제어 기억 장치(control memory)라는 빠른 읽기 전용 메모리를 사용하기에 가능
산술 논리 연산 장치(ALU)
산술 연산
- 주로 정수 연산을 처리하지만 최근에는 ALU가 부동 소수 연산까지 처리한다.
- 덧셈, 뺄셈, 곱셈, 나눗셈, 증가, 감소, 보수
- 가산기 기반 동작
- 캐리 전파로 인한 속도를 개선하기 위해 가산기 대신 캐리 예측 가산기를 이용하기도 한다.
- 2진수 곱셈은 부스 알고리즘을 사용한다.
부스 알고리즘 (부호가 있을 때 사용)
부호가 없을 때 사용
(" 승수를 오른쪽부터 차례대로 1이면 피승수를 그대로 작성, 0 이면 0000을 작성 후 작성한 수들을 더한다. ")
부호 없는 곱셈의 하드웨어 구조
M 레지스터 : 피승수 저장
Q 레지스터 : 승수 저장
A 레지스터, Q 레지스터 : 두배 길이의 결과값 저장
C 플래그 : 덧셈과정에서 발생한 올림수 저장
-> C-A-Q는 직렬로 연결되어 시프트 연산이 가능하다.
논리 연산
- AND, OR, NOT, XOR, SHIFT(산술, 논리, 회전, 캐리와 함께 회전 시프트)
레지스터
- 레지스터는 CPU가 사용하는 명령어나 데이터를 가져오고 저장하고 전송하는데 사용
- 메모리 계층의 최상위에 있으며 가장 빠르다.
- 매우 단순한 마이크로 프로세서는 레지스터로 누산기 하나만 가지고 있는 경우도 있음.
레지스터 용도에 따른종류
- 누산기
- 프로그램 카운터
- 명령 레지스터
- 인덱스 레지스터
- 스택 포인터
- 메모리 데이터 레지스터
- 메모리 주소 레지스터
레지스터 종류
데이터 관련
- 메모리 주소 레지스터 : 데이터의 메모리 주소를 저장
- 메모리 버퍼 레지스터 : 메모리에서 데이터를 읽거나 메모리에 저장될 데이터를 일시적으로 저장
- 입출력 주소 레지스터 : 특정 I/O 장치의 주소를 지정하는데 사용
- 입출력 버퍼 레지스터 : I/O 모듈과 CPU간에 데이터를 교환하는데 사용
명령어 관련
- 프로그램 카운터 : 실행을 위해 인출한 다음 명령어의 주소를 저장
- 명령 레지스터 : 주기억 장치에서 인출한 명령어 저장
연산 관련
- 누산기 : ALU내부에 위치하여 산술연산과 논리연산 과정에 사용한다.
그 외
- 스택 제어 레지스터 : 메모리 스택을 관리하는데 사용(후입선출)
- 플래그 레지스터(상태 레지스터) : CPU가 동작하는 동안 특정 조건의 발생을 표시하는데 사용
- 데이터 레지스터 : CPU내에 데이터를 일시적으로 저장하는데 사용하는 레지스터
레지스터의 명령어
LOAD : 주기억 장치에서 레지스터로 데이터를 읽음
STORE : 레지스터에서 주기억장치로 데이터를 저장
MOVE : 레지스터에서 레지스터로 데이터를 이동
'CS Knowledge > Computer Structure' 카테고리의 다른 글
Computer Structure - Controller (0) | 2023.04.18 |
---|---|
Computer Structure - CPU(2) (0) | 2023.04.18 |
Computer Structure - Digital Logic Circuits(2) (0) | 2023.04.17 |
Computer Structure - Digital Logic Circuits(1) (0) | 2023.04.17 |
Computer Structure - Data Expression (1) | 2023.04.16 |