전산일반 제 5 장

Download Report

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
레지스터 뱅크
MN
비트 레지스터
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의 종류