Search
🏫

[컴퓨터 구조] 2. 처리 장치

[컴퓨터 구조] 4. 중앙처리장치
CS
Computer Architecture
2023/11/28 08:27
[컴퓨터 구조] 4. 중앙처리장치
CS
Computer Architecture
2023/11/28 08:27

1. 처리장치의 개요

1.1. 중앙처리장치

중앙처리장치
CPU: Central Processing Unit
처리 장치와 제어장치가 결합된 형태
처리장치 - 데이터를 처리하는 연산 실행
제어장치 - 연산의 실행순서를 결정
처리장치와 제어장치의 관계

1.2. 처리장치의 구성

산술논리연산장치와 레지스터들로 구성
산술논리연산장치 (ALU: Arithmetic and LogicUnit)
산술,논리,비트연산 등의 연산을 수행
레지스터(Register)
연산에 사용되는 데이터나 연산의 결과를 저장
RAM 보다 속도가 빠름. 빠른 성능을 위해 CPU 내 데이터 저장
산술논리연산장치(ALU)는 독립적으로 데이터를 처리하지 못하며, 반드시 레지스터들과 조합하여 데이터를 처리

2. 마이크로 연산

2.1. 마이크로 연산

레지스터에 저장되어 있는 데이터에 대해 이루어지는 기본적인 연산
한 레지스터의 내용을 다른 레지스터로 옮기는 것
두 레지스터의 내용을 합하는 것
레지스터의 내용을 1만큼 증가시키는 것 등
처리장치의 동작원리를 이해하기 위해서는 마이크로 연산을 이해해야 함

2.2. 레지스터 전송 마이크로 연산

레지스터 전송 마이크로 연산 (register transfer micro-operation)
레지스터의 표현
레지스터 전송 마이크로 연산
한 레지스터에서 다른 레지스터로 2진 데이터를 전송하는 연산
레지스터 사이의 데이터 전송은 연산자 ‘←’ 로표시
하드웨어적인 측면에서의 레지스터 전송
레지스터 전송문
레지스터 전송문장에서 사용되는 기본적인 기호

2.3. 산술 마이크로 연산

산술 마이크로 연산 (arithmetic micro-operation)
레지스터 내의 데이터에 대해서 실행되는 산술연산
기본적인 산술 연산으로는 덧셈, 뺄셈, 1증가, 1감소, 그리고 보수연산이 있다.

2.4. 논리 마이크로 연산

논리 마이크로 연산 (logic micro-operation)
레지스터 내의 데이터에 대한 비트를 조작하는 연산
기본적인 논리연산으로는 AND, OR, XOR, NOT연산이 있음

2.5. 시프트 마이크로 연산

시프트 마이크로 연산 (shift micro-operation)
레지스터 내의 데이터를 시프트(shift) 시키는 연산
데이터의 측면 이동에 사용
시프트 연산을 수행 하더라도 R2 의 값은 변하지 않는다.
sr 이나 sl 에대해서 입력 비트는 0으로 가정한다.
출력 비트의 값은 버려진다.

3. 처리장치의 구성요소

구성요소
여러개의 레지스터 (레지스터 세트)
산술논리연산장치 (ALU)
내부 버스 (internal bus)
간단한 처리장치의 내부 구성도

3.1. 처리장치에서 마이크로 연산의 수행 과정

처리장치의 동작
마이크로 연산의 수행과정을 통해 처리장치가 동작
마이크로 연산의 수행 과정
1.
지정된 출발 레지스터의 내용이 ALU의 입력으로 전달
2.
ALU에서 그 연산을 실행
3.
그 결과가 도착 레지스터에 전송
처리장치에서 마이크로 연산의 수행 과정
처리장치의 구성요소들의 선택신호에 의해 제어됨
예) R0 ← R1 + R2
1.
선택신호 A는 R1의 내용을 버스 A로 적재
2.
선택신호 B는 R2의 내용을 버스 B로 적재
3.
선택신호 F는 ALU에서 산술연산 A+B를 수행
4.
선택신호 H는 시프터에서 시프트 연산을 수행
5.
선택신호 D는 연산 결과를 R0로 적재

4. 처리장치 구성요소 (1) - 내부 버스

내부 버스
레지스터들 간의 데이터 전송을 위한 공통선로의 집합
내부 버스의 개념도
내부 버스를 구성하는 방법
멀티플렉서와 디코더를 이용
멀티플렉서 - 출발 레지스터 선택
디코더 - 도착 레지스터 선택
네 레지스터의 버스시스템
간단한 내부버스의 구성 및 동작 예시
마이크로 연산: R1 ← R9
R0,R1 이 4비트 레지스터 인 경우
내부버스 구성을 위해 2×1 MUX 4개, 1×2 디코더 1개필요
마이크로 연산을위해 MUX의 선택 신호는 0(2진수), 디코더의 선택 신호는 1(2진수)부여

5. 처리장치 구성요소 (2) - 내부 버스산술논리연산장치(ALU)

5.1. 산술논리연산장치

산술연산과 논리연산을 실행하는 조합논리회로
산술연산회로와 논리연산회로의 결합

5.2. 산술연산회로

여러 개의 전가산기(FA)를 연속적으로 연결한 병렬가산기로 구성
병렬가산기로 들어가는 제어입력 값을 선택하여 여러 가지 형태의 산술연산을 실행
산술연산의 종류
예)
A + B 덧셈 가산
선택비트 010
산술연산회로로 옮겨질수 있는 선택비트가 0일경우 → 0010 4비트 선택신호 필요
산술연산회로 경우의 수 8가지, 논리연산회로 경우의 수 4가지 → 12가지 연산 수행 가능
입력으로 들어오는 A,B 2개에 있어 각종 연산을 수행하려면 (12가지 중 1개), ALU에서의 선택비트는 4비트가 있어야함

5.3. 논리연산회로

레지스터에 있는 각 비트를 독립된 2진 변수로 간주하여 비트별 연산을 실행
AND, OR, XOR, NOT 연산 등이 있으며, 이를 이용하여 복잡한 연산을 유도

5.4. 산술논리연산회로

산술연산장치와 논리연산장치를 결합
ALU에 대한 연산표
선택신호의 비트 수는 산술논리연산장치의 연산 종류의 수와 연관됨

6. 처리장치 구성요소 (3) - 상태 레지스터(flag register)

ALU에서 산술연산이 수행된 후 연산결과에 의해 나타나는 상태 값을 저장
상태 레지스터의 구성
C(carry bit) - 캐리 발생 유무
S(sign bit) - 부호 변화 발생 유무
Z(zero bit) - 제로 발생 유무
V(overflow bit) - 오버플로우 발생 유무
처리 장치 → 제어 장치로 보내는 상태 신호가 상태 레지스터 값을 의미
예) 10 - 5 연산 수행
10 + (5의 2의 보수)
10 = 1010
5의 2의 보수 → 0101 → 1010 → 1011
1010 + 1011 → 10101
1의 캐리 발생 → 상태 변화 → 제어할 때 필요 → 보관 필요 → 상태 레지스터에 보관

7. 처리장치 구성요소 (4) - 시프터(shifter)

입력 데이터의 모든 비트들을 각각 서로 이웃한 비트로 자리를 옮기는 시프트 연산을 수행
비트 단위의 이동 수행
시프터 연산의 종류

7. 제어단어

7.1. 제어단어

제어단어
제어변수(선택신호)들의 묶음
선택신호
처리장치내에서 수행되는 마이크로 연산을 선택하는 변수
처리장치의 버스, ALU, 시프터, 도착 레지스터 등을 제어
선택신호 즉 제어변수가 특정한 마이크로 연산을 선택
이러한 제어변수들의 묶음을 제어단어 라고 함

7.2. 제어단어의 내역

예를 들어 처리장치의 구성이 다음과 같다면
레지스터 세트: 7개의 레지스터(R1 ~ R7)
산술논리연산장치: 12가지 연산을 수행
시프터: 6가지 연산을 수행
처리장치의 구조에서 선택신호와 제어단어의 구성
각 필드
A필드: ALU로 입력되는 A버스 선택(3비트)
내부 레지스터 (7개)에서 입력데이터가 들어올 수도 있고, 외부 기억장치 (1개)에서도 들아올 수 있음
따라서 8개 주소가 필요 → 3비트 선택신호 필요
B필드: ALU로 입력되는 B버스 선택(3비트)
위와 동일
D필드: 도착레지스터 선택(3비트)
계산된 결과를 어디에 보낼건지? 내부레지스터 (7개) or 외부 기억장치(1개)
8개의 출력 필요 → 3비트 선택신호 필요
F필드: ALU의 연산 선택(4비트)
12개의 연산 → 4비트 선택 신호 필요
H필드: 시프터의 연산 선택(3비트)
6가지 연산 → 3비트 선택 신호 필요

7.3. 제어단어 각 필드의 동작

A와 B 필드의 3비트
ALU로 입력되는 각각의 출발 레지스터를 선택
D필드의 3비트
ALU의 결과가 저장될 도착 레지스터를 선택
F필드의 4비트
ALU에서 이루어지는 12가지 연산 중 하나를 선택
H필드의 3비트
시프터에서의 시프트 연산중 하나를선택
전체 16비트로 구성된 선택신호들의 모임(제어단어)을 처리장치의 각 구성요소에 가하면 해당 마이크로 연산이 수행됨

7.3. 제어단어의 내역표

제어단어의 내역표 예시

7.4. 제어단어 작성 예

R1 ← R2 − R3
A 필드 : ALU의 A 버스 입력으로 R2 의 내용을 보낸다.
B 필드 : ALU의 B 버스 입력으로 R3 의 내용을 보낸다.
D 필드 : 연산 결과를 도착 레지스터 R1으로 보낸다.
F 필드 : ALU에서 감산 연산 (F=A-B)을 수행한다.
H 필드 : 시프터에서 연산을 수행하지 않는다.(시프트 없음)
여러 가지 마이크로 연산에 대한 제어단어의 예

7.5. 제어단어 생성을 위한 효과적인 방법

작성된 제어단어를 기억장치에 저장하고 기억장치의 출력을 처리장치의 각 구성요소의 선택신호로 연결
기억장치로부터 연속적인 제어단어를 읽음으로써 처리장치에서의 마이크로 연산이 정해진 순서대로, 연속적으로 수행
→ 제어장치의 역할