Transcript 전산일반 제 5 장
I am Computer
5장 CPU
5.1 논리연산과 논리회로
5.2 CPU의 구성과 동작
5.3 명령어의 처리방식
5.4 CPU의 종류
컴퓨터의 기본 구조
입력장치
CPU
주기억장치
저장장치
출력장치
I am Computer
저장장치
입력장치
CPU
(중앙처리장치)
주기억장치
출력장치
CPU의 기본 구조
CPU (Central Processing Unit)
중앙처리장치
데이터의 처리를 담당
대수의 사칙연산 및 논리연산
메모리는 데이터 및 명령을 저장
명령 및 데이터의 이동(메모리 >> CPU)
프로그램 카운터, 명령 레지스터, 명령 디코더, 버스
명령의 수행(연산부)
레지스터 뱅크, 멀티플렉서, ALU, 쉬프터 등
모든 CPU의 부분들은 논리회로로 구성
논리연산 : 논리회로
사칙연산 : 논리연산으로 구성 >> 논리회로
이외의 모든 CPU 구성부들은 논리회로로 구성됨
I am Computer
CPU의 기본 구조
주 메모리
외부버스
명령 디코더
명령
레지스터
프로그램
카운터
메모리
인터페이스
내부버스
연산부
CPU
레지스터(뱅크)
디코더
MUX-A
MUX-B
연산장치(ALU)
쉬프터(shifter)
I am Computer
I am Computer
5장 CPU
5.1 논리연산과 논리회로
- 논리회로
-진리표, 논리식, 조합 논리회로
- 순서 논리회로
- 논리회로와 IC, 컴퓨터
논리회로
‘0’, ‘1’의 전기적 표현
논리회로 : 논리연산을 수행하는 전기 장치
참(1), 거짓(0)이 전기적으로 표현되어야 함
전압(V)
거짓
0
없다
0
시간
전압(V)
참
1
있다
1, 3.3, 5
0
시간
I am Computer
논리연산과 논리회로
논리회로
논리회로
전기적 입력(0,1)에 대하여 논리연산의 결과를 전기(0,1)
적으로 출력
논리합 회로 : OR 회로(OR gate)
논리곱 회로 : AND 회로(AND gate)
논리부정 회로 : NOT 회로(NOT gate)
논리식과 논리회로
논리식은 피연산자와 논리연산으로 구성됨
논리회로는 피연산자(0, 1 또는 전압의 있고 없음)를 입
력으로 갖는 논리회로들의 조합으로 구성됨
논리식과 논리회로는 1:1의 대응 가능
I am Computer
논리연산과 논리회로
논리회로
X
Z
OR
Y
X
Z
AND
Y
NOT
I am Computer
X
Y
논리연산과 논리회로
진리표, 논리식, 조합 논리회로
CPU의 구성부
레지스터, 쉬프터, 멀티플렉서, 연산장치 등
진리표로 기능이 정의 되고, 논리회로로 구현된다.
설계과정
BCD 디코더(decoder)를 이용하여 설계과정을 살펴본다.
장치의 기능
I am Computer
진리표
논리식
논리회로
논리연산과 논리회로
진리표, 논리식, 조합 논리회로
기능의 분석
LED 숫자판 : 0 ~ 9까지의 숫자 표시
1 : on
a
f
b
g
e
c
d
0 : off
I am Computer
논리연산과 논리회로
진리표, 논리식, 조합 논리회로
기능의 분석
BCD 코드 : 0~9까지의 숫자를 4 비트로 표시
(1010)b 부터는 사용하지 않는다.
4 비트 입력에 따라 7개의 LED를 on/off
입력이 4, 출력이 7인 진리표로 구성가능
a
X
Y
BCD
Z
디코더
W
I am Computer
a
b
c
d
e
f
g
f
g
e
b
c
d
논리연산과 논리회로
진리표, 논리식, 조합 논리회로
진리표 작성
입력
LEDs
10 진
수
X
Y
Z
W
a
b
c
d
e
f
g
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
2
0
0
1
0
1
1
0
1
1
0
1
3
0
0
1
1
1
1
1
1
0
0
1
4
0
1
0
0
0
1
1
0
0
1
1
5
0
1
0
1
1
0
1
1
0
1
1
6
0
1
1
0
1
0
1
1
1
1
1
7
0
1
1
1
1
1
1
0
0
0
0
8
1
0
0
0
1
1
1
1
1
1
1
9
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
기 타
I am Computer
논리연산과 논리회로
진리표, 논리식, 조합 논리회로
논리식의 생성
하나의 진리표에 에 다수개의 논리식 존재
카르노프맵(karnaugh map)
이중 가장 간단한 논리식을 찾는 방법
논리식의 축약이 가능
a = XZ + XYW + YZW + XYZ
b = XY + XZW + XZW + XYZ
c = XY + XW + YZW + XYZ
d = XZW + XYZ + YZW + XYZ + XYZW
e = XZW + YZW
f = XYZ + XZW + XYW + XYZ
g = XZW + XYZ + XYZ + XYZ
I am Computer
논리연산과 논리회로
진리표, 논리식, 조합 논리회로
논리회로의 생성
논리식은 논리회로로 1:1 대응됨
이때 연산의 우선순위가 사용됨 : 논리부정, 논리곱, 논리합
e번 LED에 대한 논리회로 : e = XZW + YZW
X
Z
W
e
Y
Z
W
나머지 LED에 대한 논리회로도 같은 방법으로
논리식에 해당하는 조합논리회로 생성
I am Computer
논리연산과 논리회로
순서 논리회로
D 플립플롭
1 비트 정보를 저장할 수 있다.
클록에 의해 기억되는 순간이 결정
A
기억
B
C
Q
D
C : 클럭
D 플립플롭
Q
D
Q
C : 클럭
I am Computer
Q
논리연산과 논리회로
순서 논리회로
조합논리회로 : 저장 능력이 없음(memoryless)
현재의 입력이 현재의 출력 결정
순서논리회로 : 저장 능력이 있음
현재의 입력 및 과거의 입력이 현재의 출력을 결정
플립플롭과 조합논리회로로 구성
입력
출력
조합 논리회로
(combinational
circuit)
플립플롭
클록 : clock
I am Computer
논리연산과 논리회로
논리회로, IC, 컴퓨터
컴퓨터 > IC > 논리회로 > 저항, 캐패시터, 트랜지스터
I am Computer
커패시터
트랜지스터
저항
논리연산과 논리회로
I am Computer
5장 CPU
5.2 CPU의 구성과 동작
- CPU의 구성
- CPU의 동작
- CPU의 동작과 프로그램
CPU의 개념적 구성 및 동작
명령 레지스터에 현재 실행할 명령을 복사
프로그램 카운터는 현재 실행될 명령의 어드레스를 지시
메모리의 해당 어드레스로부터 명령을 명령 레지스터로 이동
명령의 해석
명령을 해석하여 데이터를 메모리로부터 레지스터 이동
연산을 수행하기 위해 필요한 제어신호 생성
명령의 수행 및 저장
2)에서 얻어진 데이터 및 제어신호를 이용하여 명령을 수행
수행된 결과를 레지스터뱅크 또는 주 메모리에 기억시킨다
I am Computer
CPU의 구성과 동작
CPU의 구성
주 메모리
외부버스
명령 디코더
2
명령
레지스터
1
프로그램
카운터
1
메모리
인터페이스
내부버스
레지스터(뱅크)
연산부
2
디코더
CPU
MUX-A
3
MUX-B
연산장치(ALU)
쉬프터(shifter)
I am Computer
CPU의 구성과 동작
레지스터 및 레지스터 뱅크
CPU에서 처리될 데이터는 임시로 CPU내에 저장
N 비트 레지스터는 N 개의 플립플롭으로 구성
N 비트 저장 가능
load로 입력 조절
R0
load
입력 8 비트
8
레지스터
n
출력
8
R1
n
R2
n
n
load 0
load 1
레지스터 뱅크
load 2
load 3
4 N 비트 레지스터
C : 클럭
C : 클럭
I am Computer
R3
N 비트
입력
CPU의 구성과 동작
연산의 분석
R0 = R1 + R2
레지스터 뱅크에 있는 레지스터들 중 R1과 R2를 선택
멀티플렉서
선택된 레지스터에 보관된 값의 덧셈을 수행
연산장치
그 결과를 레지스터 뱅크의 레지스터들 중 R0에 저장
디코더
I am Computer
CPU의 구성과 동작
M 비트 멀티플렉서
M 비트 입력 중 1 비트만 선택하여 출력
선택을 위해 log2M 비트의 선택 비트(A, B) 필요
R0 R1 R2 R3
N
S0
N
N
M (N 비트)
N
멀티플렉서
M
Load
S1
(N 비트)
N
레지스터 뱅크
MN
비트 레지스터
C : 클럭
A
멀티플렉서
멀티플렉서
MUX-A
MUX-B
N 비트
MP
N 비트
N 비트
입력
I am Computer
B
출력
출력
CPU의 구성과 동작
연산장치
ALU : arithmetic logic unit
대수 및 논리연산을 수행하는 장치
덧셈기, 곱셈기, 나눗셈기, 논리합, 곱, 부정 등으로 구성
모든 연산은 논리식으로 치환되고
논리식은 앞서의 설계 방법에 따라 논리회로로 구성됨
덧셈기의 예
덧셈기는 한 비트씩 볼 때 진리표로 정의 가능
이를 논리회로로 구성
한 비트 덧셈기 N개를 사용하여 N 비트 덧셈기 구성
I am Computer
CPU의 구성과 동작
한 비트 덧셈기에 대한 진리표
X
Y
CL
S
CH
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
I am Computer
CPU의 구성과 동작
4비트 덧셈기
X3
C3
Y3
1 비트
덧셈기
S3
I am Computer
X2
C2
Y2
1 비트
덧셈기
S2
X1
C1
Y1
1 비트
덧셈기
S1
X0
C0
Y0
1 비트
덧셈기
0
S0
CPU의 구성과 동작
연산부의 구성
나머지 연산장치도 마찬가지로 구성 가능
ALU는 여러 연산을 수행하므로 선택 비트(F) 필요
연산의 종류가 L개 일 때 log2 L 비트 필요
M (N 비트)
M
레지스터 뱅크
멀티플렉서
멀티플렉서
MUX-A
MUX-B
Load
M N 비트 레지스터
C : 클럭
A
N 비트
N 비트
N 비트
출력
출력
입력
연산장치
ALU
출력
I am Computer
B
F
N 비트
CPU의 구성과 동작
디코더(Decoder)
연산기의 출력을 특정 레지스터에만 공급
해당 레지스터의 load만 ‘0’, 나머지는 ‘0’
선택비트(D) 필요 : log2 M (M은 레지스터의 수)
D2
D1
D0
L(R0)
L(R1)
L(R2)
L(R3)
L(R4)
L(R5)
L(6)
L(R7)
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
I am Computer
CPU의 구성과 동작
디코더를 포함한 연산부의 구성
M (N 비트)
Load
M
D
디코더
레지스터 뱅크
M N 비트 레지스터 C : 클럭
A
멀티플렉서
멀티플렉서
MUX-A
MUX-B
N 비트
N 비트
N 비트
입력
출력
출력
연산장치
ALU
출력
I am Computer
B
F
N 비트
CPU의 구성과 동작
쉬프터와 카운터
쉬프터(shifter)
(0010)b =2를 1 비트만큼 오른쪽으로 이동(shift) :
(0001)b =1
(0010)b =2를 1 비트만큼 왼쪽으로 이동(shift) :
(0100)b =4
효율적인 연산 가능
카운터(counter)
시 간
C3
C2
C1
C0
10 진수
T
0
0
1
0
2
T+1
0
0
1
1
3
T+2
0
1
0
0
4
I am Computer
CPU의 구성과 동작
쉬프터를 포함한 연산부의 구성
M (N 비트)
Loa
d
D
디코더
M
레지스터 뱅크
M N 비트 레지스터 C : 클럭
A
멀티플렉서
멀티프렉서
MUX-A
MUX-B
N 비트
N 비트
N 비트
입력
B
출력
출력
연산장치
F
ALU
쉬프터 (shifter)
S
출력
I am Computer
N 비트
CPU의 구성과 동작
간단한 CPU의 예 : 하드웨어 구성
멀티플렉스 A, B
연산장치(ALU)
디코더
쉬프터
A2
A1
A0
선택
F3
F1
F0
연산
S2
S1
S0
동작
D2
D1
D0
선택
0
0
0
R0
0
0
0
+
0
0
0
NOP
0
0
0
R0
0
0
1
R1
0
0
1
-
0
0
1
R1
0
0
1
R1
0
1
0
R2
0
1
0
0
1
0
R2
0
1
0
R2
0
1
1
R3
0
1
1
0
1
1
R3
0
1
1
R3
1
0
0
R4
1
0
0
OR
1
0
0
L1
1
0
0
R4
1
0
1
R5
1
0
1
AND
1
0
1
L2
1
0
1
R5
1
1
0
R6
1
1
0
NOT
1
1
0
L3
1
1
0
R6
1
1
1
X
1
1
1
NOP
1
1
1
NOP
1
1
1
NOP
NOP : No operation
I am Computer
CPU의 구성과 동작
간단한 CPU의 예 : 명령어 구성
연 산
A
B
F
S
D
Opcode
R0 = R1 + R2
001
010
001
000
000
001010001000000
R6 = (R2 – R4)2
010
100
010
001
110
010100010001110
R6 = R5 AND R4
101
100
110
000
110
101100110000110
R0 = R3
011
111
000
000
000
011111000000000
명령 또한 ‘0’, ‘1’ 형태의 선택비트로 H/W에 입력
I am Computer
CPU의 구성과 동작
CPU의 동작
음성신호
정지영상
데이터
사용자의
요구사항
수치화
(샘플링)
동영상
숫자
이진수 변환
문자
이진 코드
01010011
처리방식
I am Computer
알고리즘
연산
컴퓨터
명령
‘0’/’1’
CPU의 구성과 동작
CPU의 동작과 프로그램
알고리즘
요구사항을 연산의 형태로 바꾸는 작업
프로그래밍
연산을 컴퓨터가 이해하는 언어로 바꾸는 과정
앞장에서는 ‘0’, ‘1’의 조합
프로그램
언어로 변환된 연산의 집합
프로그램 언어
언어 그 자체
I am Computer
CPU의 구성과 동작
CPU의 동작과 프로그램
프로그램 언어
기계어
연산부 제어신호의 집합 : 0, 1 로 구성
컴퓨터가 이해하는 궁극적인 언어
프로그래밍 및 해독이 어렵다
어셈블리 언어
기계어와 1:1 대응관계가 성립하는 심벌
어셈블러가 기계어로 변환
기계어에 비하여 프로그래밍 및 해독이 쉽다
고급언어 : Fortran, C/C++, Pascal
R0 = R1 + R2
ADD R1 R2 R0
001010001000000
R6 = R5 AND R4
ADD R5 R4 R6
101100110000110
I am Computer
CPU의 구성과 동작
I am Computer
5장 CPU
5.3 명령어의 처리방식
- 메모리와 CPU의 결합
-명령어의 처리단계
- CPU와 명령어 세트
메모리와 CPU의 결합
컴퓨터와 탁상용 계산기의 차이
“1부터 100까지의 수 중 짝수의 합을 구하라”
1.
2.
3.
4.
5.
6.
대수
대수
논리
대수
대수
논리
i=1
Sum = 0
i/2의 나머지가 0이면 4)를 수행, 아니면 5)를 수행
sum = sum + i
i=i+1
i가 100이하면 3)-6) 반복, 아니면 종료
연산과정을 메모리에 저장하고 이를 순차적으로 실행
1945년 폰 노이만(Von Neuman) 보고서
프로그램 내장방식의 컴퓨터 제안
현대의 모든 컴퓨터는 프로그램 내장방식의 컴퓨터임
I am Computer
명령어의 처리방식
메모리와 CPU의 결합
폰 노이만형 프로그램 내장방식의 컴퓨터 구조
보조기억장치
입력장치
CPU
(중앙처리장치)
출력장치
주기억장치
메모리 : ‘0’, ‘1’을 저장하는 전기 장치
일반적으로 8비트(1 바이트) 단위로 어드레스싱
I am Computer
명령어의 처리방식
메모리와 CPU의 결합
ADD R0 R1 R2
ADD M[ADDR1] R1 M[ADDR2]
어드레스
내 용
참 고
ADD M[ADDR1] R1 M[ADDR2]
명 령
10
11
ADDR1
데이터
ADDR2
데이터
I am Computer
명령어의 처리방식
명령어 처리의 단계
명령어 처리의 단계
1) 페치(fetch)
명령 카운터가 지시하는 어드레스로부터
명령을 명령 레지스터로 이동
2) 해석(decode)
명령으로부터 제어신호 생성
명령에 포함된 주소의 데이터를 레지스터로 이동
3) 실행 및 저장(execute/store)
제어신호와 레지스터의 데이터를 이용하여 연산을 수행
결과를 주 메모리에 저장한다
다음 명령을 위해 명령 카운터의 값이 증가
I am Computer
명령어의 처리방식
명령어 처리의 단계
CPU
명령 (1)
명령 레지스터
명령 디코더
A, B, F, S, D (2)
CPU의 일부분
데이터 (2)
(그림 5-27)
실행 (3)
메모리
프로그램 카운터
명령의 어드레스 (1)
I am Computer
명령어의 처리방식
CPU와 명령어 세트
명령(instruction)
연산(operation)부와 피연산자(operand)로 구성
ADD M[ADDR1] R1 M[ADDR2]
연산 피연산자
피연산자
명령은 명령 레지스터에서 해석됨
Opcode
데이터 또는 데이터가 저장된 어드레스
프로그램을 위해서는 모든 명령어를 알고 있어야 함
명령어 세트
CPU설계에 대한 정보 (기계어), 또는 어셈블러 형태로 제공
명령어 세트 (instruction set)
I am Computer
명령어의 처리방식
I am Computer
5장 CPU
5.4 CPU의 종류
- CPU의 성능
- CPU의 종류
CPU의 성능
CPU의 성능
MIPS (Million Instructions per Second)
FLOPS (Floating-Point Operations per Second)
CPU성능에 영향을 주는 요소
레지스터 비트의 수
CPU에서 사용되는 클럭의 수
CPU성능 개선 기법
파이프 라인
수퍼스칼라
캐쉬
I am Computer
CPU의 종류
파이프 라인(Pipeline)
명령처리의 각 단계(페치, 해석, 실행 및 저장)는 독
립적
여러 명령을 각 단계별로 동시에 실행
각 단계에 레지스터가 관여 하므로 실행속도 개선
페치
명령 1
해석
실행 및 저장
I am Computer
명령 2
명령 3
명령 4
명령 1
명령 2
명령 3
명령 1
명령 2
CPU의 종류
수퍼스칼라(Superscalar)
CPU내에 ALU가 2개 이상으로 구성됨
동시에 한 개 이상의 명령을 수행
ADD R1 R0 R3
ADD R2 R5 R4
경우에 따라 하나만 실행되기도 함
ADD R3 R0 R1
ADD R2 R1 R4
CPU내에 predictor가 내장되어 명령들을 분석
I am Computer
CPU의 종류
캐쉬(cache) 메모리
CPU와 메모리간 속도차 발생
CPU 1GHz, 메모리(DRAM) 133 MHz : 펜티엄 컴퓨터의
경우
고속의 SRAM을 사용
당장 수행할 명령 및 데이터를 SRAM에 일시 저장
Cache라고 함
CPU와 주 메모리 사이에 위치
CPU
CPU
(그림 5-30)
I am Computer
캐쉬
메모리
(SRAM)
주 메모리
(DRAM)
CPU의 종류
CISC/RISC
CISC(Complex Instruction Set Computer)
RISC(Reduced Instruction Set Computer)
설계기법상의 차이
CPU의 발전에 따라 점점 더 복잡한 명령이 요구됨
N 1
W
n 0
n
Sn
CISC 복잡한 명령을 한번에 처리할 수 있는 명령을 추가
기능이 강력해짐
명령어 길이가 길어짐, 해석이 복잡해짐, CPU 설계가 어려움
Intel 계열
RISC 기존 명령어를 이용하여 효율적으로 명령 수행
명령어 길이가 짧음, 해석 간단, CPU 설계 용이
SPARC, Power PC 계열
I am Computer
CPU의 종류
CPU의 종류
인텔 (Intel)
모델명
연도
레지스터
비트수
성능
(MIPS)
클럭
(MHz)
추가된 주요 기술
8088
1979
16
0.5
8
-
80286
1982
16
1.5
12
파이프라인
80386
1985
32
10
33
캐쉬
80486
1989
32
70
100
-
펜티엄
1993
32
125
200
수퍼스칼라, MMX
펜티엄 II
1997
64
-
400
-
펜티엄 III
1999
64/128
-
1,000
SSE
Zeon, Celeron
I am Computer
CPU의 종류
CPU의 종류
AMD
K6, Athlon
Intel CPU compatible
모토롤라 (Motorola)
68000 시리즈 및 PowerPC 계열
Mac(Apple 컴퓨터)시리즈에 사용됨
RISC계열
파이프라인, 수퍼스칼라, 캐쉬메모리 등 사용
I am Computer
CPU의 종류
CPU의 종류
선 마이크로시스템즈 (Sun Microsystems)
SPARC 계열
Ultra SPARC 계열 : 수퍼스칼라 기법 사용
RISC형
PC보다는 Workstation급 컴퓨터에 주로 사용됨
I am Computer
CPU의 종류