7장 중앙 처리 장치

Download Report

Transcript 7장 중앙 처리 장치

7장. 중앙 처리 장치
Lecture #7
7.1 중앙처리장치의 기본 구조 (1)

중앙처리장치(Central Processing Unit: CPU)


컴퓨터를 구성하고 있는 여러 가지 장치 중에서 연산장치와 제어
장치로 구성
컴퓨터의 기본적인 구조
입출력 겸용
장치
입력장치
중앙처리장치
(CPU)
출력장치
기억장치
컴퓨터 구조론
1
7.1 중앙처리장치의 기본 구조 (2)

중앙처리장치의 구성요소






연산
범용
일시
특수
제어
내부
장치(ALU: Arithmetic Logical Unit)
레지스터(GPR: General Purpose Register) : 처리 할 데이터
기억
레지스터(SFR: Special Function Register) : 특수 기능 수행
장치(CU: control unit) : 제어 기능 수행
버스(internal bus) : 데이터 전달 기능 수행
중앙처리장치 구조
중앙 처리 장치(CPU)
처리기(Processor unit)
연산 장치
(arithmetic unit)
internal data bus
컴퓨터 구조론
internal control bus
제어장치
(control unit)
internal address bus
레지스터 그룹
(registers)
2
7.1 중앙처리장치의 기본 구조 (3)

중앙 처리 장치와 시스템 버스의 접속
처리기
범 용
레지스터
CPU 내부버스
제어장치
명령어
레지스터
특 수
레지스터
명령어
해독기
연산장치
P C
주소버스
데이터 버스
제어 버스
입출력 장치
컴퓨터 구조론
기억 장치
3
7.1 중앙처리장치의 기본 구조 (4)

범용 레지스터



프로그램의 진행도중 가까운 시간내에 사용할 데이터나 연산결
과를 일시적으로 기억시키는데 사용.
데이터를 연산할 때 메모리로부터 데이터를 인출할 경우 호출시
간이 많이 걸리기 때문에 CPU내부의 레지스터에 데이터를 기억
시켜두고 연산한다.
Register 0
범용 레지스터 형태 분류

레지스터 구조
Register 1
Register 2
Register 3
0 1 2 3
Decoder
D1
컴퓨터 구조론
D0
AMS 0
AMS 1 0 1 2 3
M U X
0 1 2 3
M U X
BMS 0
BMS 1
A L U
연산 제어
신호
Shifter
자리 이동
제어 신호
4
7.1 중앙처리장치의 기본 구조 (5)

범용 레지스터

범용 레지스터 형태 분류
(계속)

스크래치 패드




컴퓨터 구조론
논리 회로와 거의 같은 속
도로 동작하는 고속 기억
장치
작업용 데이터의 일시적
기억이나 주기억 장치의
카피(copy)로서 사용되는
소용량 기억 장치의 총칭
레지스터 기억 장치, 캐시
기억 장치 등이 이에 포함
됨
작업용 기억 장치라고도
한다.
A 번지선택
WE
WE
A
0:메모리 쓰기
1:A, B로
데이터 읽기
A
B 번지선택
Scratchpad
memory
ME
메모리
엔에이블
A
A L U
연산 제어
신호
Shifter
자리 이동
제어 신호
5
7.1 중앙처리장치의 기본 구조 (6)

특수 레지스터


CPU 내의 특수한 동작을 전담하는 레지스터
프로그램 카운터(Program Counter : PC)

메모리 번지를 지정해 주기 위해 메모리 주소 정보를 MAR로 전송
data bus
Load
Increment
Program Counter
MAR
프로그램 카운터의 개략도
컴퓨터 구조론
6
7.1 중앙처리장치의 기본 구조 (7)

특수 레지스터

명령어 레지스터(Instruction Register)


CPU가 명령어를 메모리로부터 인출하여 그 명령어가 무슨 내용인가를
판독하기 위하여 기억하고 있는 레지스터.
누산기(Accumulator)



산술 및 논리 연산에서 오퍼랜드나 연산 결과를 일시적으로 기억하는
레지스터.
CPU가 연산을 수행 한 후 그 결과는 누산기에 저장.
누산기와 연산장치 구조
누산기
레지스터
[ 누산기와 연산 장치 ]
A L U
컴퓨터 구조론
7
7.1 중앙처리장치의 기본 구조 (8)

특수 레지스터

스택 포인터(SP)



CPU가 범용 레지스터나, 프로그램 카운터 등의 내용을 잠시 피신시
켜 둘 필요가 있을 때 이들을 피신시켜 두는 장치.
구조 : LIFO(Last In First Out) 구조.
스택포인터와 스택 영역
CPU
Memory
Stack Pointer
FF00
컴퓨터 구조론
F3
FF00
12
FEFF
56
FEFE
82
FEFD
73
FEFC
6E
FEFB
F0
FEFA
E1
35
Stack area
8
7.1 중앙처리장치의 기본 구조 (9)

명령어 수행

명령어 처리과정

명령어 인출단계


실행 단계


기억장치로부터 한번에 하나씩 명령어를 읽어 옴
읽어 온 명령어를 수행
명령어 사이클(Instruction Cycle)



한 개의 명령어를 실행하는 데 필요한 전체 처리 과정
인출과 실행단계
간접 사이클


인터럽트 사이클

컴퓨터 구조론
명령어가 간접 주소 지정 방식일 때 유효 주소를 기억 장치에서 읽어들이
는 사이클
명령어 실행 도중에 입.출력 장치와 같은 다른 장치에 의해 인터럽트가 들
어오면 그에 합당한 서비스를 제공하는 사이클
9
7.1 중앙처리장치의 기본 구조 (10)

Instruction Cycle = Instruction fetch cycle + Instruction execution cycle
시작
메모리로 부터명령어 인출 및 해석
인출 사이클
명령어 실행
실행 사이클
NO
END ?
YES
종료
<기본 명령어 사이클>
컴퓨터 구조론
10
7.1 중앙처리장치의 기본 구조 (11)

명령어 사이클(Instruction Cycle)

한 개 명령어의 수행과정
①
②
③
④

명령어 인출 사이클
①
②
③
④
컴퓨터 구조론
중앙처리장치는 기억 장치로부터 명령어를 인출.
중앙처리장치는 프로그램 카운터의 내용을 1 증가시킴.
기억장치로부터 인출된 명령어는 MBR을 경유해 IR에 저장.
IR에 저장된 명령어는 명령어 해독기에서 해석하고 필요한 동작을 수행.
t0 주기 : 프로그램 카운터의 내용을 MAR로 전송.
MAR에 저장된 번지의 내용이 t1 주기에서 MBR로 읽힌다.
프로그램 카운터의 내용이 자동으로 1 증가.
t2 주기에서 MBR로 읽혀온 명령어가 명령어 레지스터 IR로 전송.
11
7.1 중앙처리장치의 기본 구조 (12)
Address Data Control
PC
t0
t1
MAR
ALU
address
IR
M
E
M
O
R
Y
t2
Acc
명령어 해석기
t1
MBR
System CLK
컴퓨터 구조론
data
[ 명령어 흐름 ]
12
7.1 중앙처리장치의 기본 구조 (13)
t0
t1
t2
t3
t4
Clock
address bus
address
data bus
명령어
MAR
PC MBR
PC
[M] IR
PC+1
MBR
[ 타이밍도 ]
명령어 인출 사이클



t0 : MAR<- PC
t1 : MBR<-M[MAR]
PC<-PC+1
t2 : IR <- MBR
컴퓨터 구조론
13
7.1 중앙처리장치의 기본 구조 (14)
인출 사이클
기억 장치 또는
입/출력 장치
접근
내부 CPU 연산
명령어
인출
명령어
주소 계산
실행 사이클
오퍼랜드
저장
오퍼랜드
인출
명령어
동작 해독
다음 명령어
오퍼랜드
주소 계산
데이터
연산
오퍼랜드
주소 계산
스트링
[ 명령어 사이클의 상태도 ]
컴퓨터 구조론
14
7.2 레지스터 전송 (1)

마이크로 오퍼레이션(micro operation)



레지스터 데이터 전송 - 레지스터 혹은 메모리에 저장되어있는 2
진 데이터를 전송하는 것
하나의 레지스터 전송 실행 동작을 마이크로 오퍼레이션이라 함.
용어 정리




2진수 정보 : 레지스터 내부에 저장되는 2진수.
마이크로 오퍼레이션 : 한 개의 클럭펄스에 실행되는 동작.
제어함수 : 한번에 한 개의 오퍼레이션을 순차적으로 실행하는
기능.
레지스터 전송언어(RTL: Register Transfer Language) 혹은 컴
퓨터 하드웨어 기술언어(HDL: Hardware Description
language) : 레지스터의 마이크로 동작 전송을 보다 간단 명료하
게 표시하기 위한 기호들.
컴퓨터 구조론
15
7.2 레지스터 전송 (2)

레지스터 전송 언어를 위한 기본 기호
기호
설명
예
문자와 숫자
레지스터를 나타냄
A, MBR, R3
첨자
레지스트의 비트 표시
A2, Bi
괄호 ( )
레지스트의 부분 표시
I(1-5), MBR(AD)
화살표 ←
정보의 전송
A← B
콜론( : )
제어 함수의 끝 표시
P: 혹은 X'T0 :
콤마( , )
두 마이크로 동작 구분
A←B, B←A
대괄호 [ ]
메모리 전송에 쓰이는 번지를 표시
MBR ← M[MAR]
컴퓨터 구조론
16
7.2 레지스터 전송 (3)

직렬전송


레지스터들의 내용을 시프트하면서 한번에 한 비트씩 전송.
예)

A1 ←B4, B1 ←B4, Ai ←Ai-1, Bi ←Bi-1, …. i=2,3,4
Word time
공급기
S
Shift-right control signal
LOAD
1
RegisterB
4
1
LOAD
Serial output
RegisterA
Serial input
4
Clock
[ 직렬 전송 블럭도 ]
컴퓨터 구조론
17
7.2 레지스터 전송 (4)

직렬전송

단점


직렬 전송방식의 특징은 정보를 전송할 때 많은 시간이 요구되므로
느리게 동작된다.
장점


컴퓨터 구조론
시프트 레지스터에서 순차적으로 전송되어 나오는 비트들을 처리할
때 하나의 회로를 반복해서 사용할 수 있으므로 하드웨어 규모를 줄
일 수 있다.
전화선과 같이 전송선로가 2라인이면 가능하고 전송 거리가 길다.
18
7.2 레지스터 전송 (5)

병렬전송


레지스터의 모든 비트가 한 클럭 펄스 동안 동시에 병렬로 전송
분류



Point to Point 전송 방법
버스 전송 방법
제어 함수 : 전송 제어 조건들을 말한다.
컴퓨터 구조론
19
7.2 레지스터 전송 (6)

병렬전송

Point to Point transfer

특정한 레지스트에서 지정된 레지스터로 단일 전송로를 지정하여 전
송하는 방식
Register B
(Source)
Register A
(Destination)
제어신호
x
T1
LOAD
xT1
제어함수
:
A ← B
함수
[ 레지스터 병렬 전송 블록도 ]
컴퓨터 구조론
20
7.2 레지스터 전송 (7)

병렬전송

Multi Point transfer


여러 개의 레지스터들로부터 특정한 레지스터로 데이터를 전송하는
방법
레지스터의 수가 증가함에 따라 멀티플렉서와 연결선 수는 크게 증가
되어 비경제적이다.
Register
RegisterAA
Select
Enable
Register
BB
Register
S
00
1 1
MUX
MUX
Enable
F
T1 : C ←A
T2 : C ←B
T1
T2
컴퓨터 구조론
Load
Register
RegisterCC
21
7.2 레지스터 전송 (8)
Load
Load
Register
Register AA
M1
0
Register B
B
Register
1
0
Load
Register C
1
2
Load
0
1
2
Register D
D
Register
M0
2
3
MUX
MUX
F
3
3
Decoder
D1
D0
[ 4개 레지스터의 point to point 전송 ]
컴퓨터 구조론
22
7.2 레지스터 전송 (9)

버스 전송(bus transfer)


어떤 레지스터에서 다른 레지스터로 정보를 전송하기 위해서는 데
이터 전송통로가 필요한데 이때 공통 버스선을 공유하고 상호간의
전송하는 방법.
공통 버스선을 사용하여 한번에 하나씩 전송할 수 있도록 제어하게
되면 각 레지스터 사이의 전송로 수는 상당히 감소시킬 수 있다.
Register
RegisterA A
Register
RegisterB B
Register
RegisterC C
Register
RegisterD D
BUS line
컴퓨터 구조론
23
7.2 레지스터 전송 (10)

버스 전송(bus transfer)

레지스터들과의 충돌을 방지하기 위해 내부에 3-상태 버퍼로 구성
Load
BUFFER
INPUT
R
OUTPUT
n/
n/
I/O
n/
n/
Enable
Enable
Load
0
0
1
0
I/O ← ( R )
레지스터 내용이 출력
0
1
( R ) ← I/O
외부 버스선의 데이터가 레지스터에 로드
컴퓨터 구조론
I/O 단자
기능
High-Impedance 고 임피던스
24
7.2 레지스터 전송 (11)
1
Decoder
0
E1
Enable 제어신호
2
E0
3
A
1
2
L0
3
A
RegisterLdA En
RegisterA
n/
Decoder
0
L1
Load 제어신호
RegisterLdB En
RegisterB
LdC En
Register
RegisterC
n/
n/
BUS line
Ld En
Register
D
RegisterD
n/
n/
[ 4개 레지스터 간의 버스 전송 ]
컴퓨터 구조론
25
7.2 레지스터 전송 (12)

메모리 전송(memory transfer)



읽기(read) : 메모리에서 외부장치로 데이터를 전송하는 것
쓰기(write) : 새로운 정보를 메모리에 저장하기 위해 데이터
를 메모리 내부로 전송하는 것.
메모리 주소 레지스터에 의하여 주소가 지정되고 메모리 버퍼에
의하여 읽혀지거나 쓰여지는 동작을 나타냄.


메모리 Read R : MBR ← M 또는 MBR ← M[MAR]
메모리 Write W: M ← MBR 또는 M[MAR] ← MBR
MAR MAR
Memory unit
Memory
unit
address
data
Load
MBR
MBR
컴퓨터 구조론
Write
Read
26
7.2 레지스터 전송 (13)
address
m/
PC
MAR
n/
0 1 2 3
/W
/R
MBR
MA
Load
MEMORY
Register
RegisterAA
n/
RegisterB
n/
Register
RegisterCC
n/
MBR
Load
data
0 1 2 3
MUX
MUX
M1
M0
n/
DECODER
D1
D0
[ 레지스터와 메모리간의 데이터 전송 회로 ]
컴퓨터 구조론
27
7.2 레지스터 전송 (14)

명령어 세트(Instruction Set)

명령어 형식(instruction format)



명령어 세트(instruction set) : 명령어 들의 집합. 연산을 수행할 데이
터 길이, 수의 표현 방식 등에 따라 결정.
오퍼랜드(번지부) : 명령을 수행하기 위하여 필요한 자료의 개수와 주
기억장치나 보조 기억 장치에 위치한 자료의 저장된 번지를 표시하는
부분.
일반적인 명령형식
명령코드
(operation code)


컴퓨터 구조론
오퍼랜드
(operand)
명령어 코드 : 오퍼랜드 번지 지정 방식을 구분
오퍼랜드 : 명령을 실행하기 위해 필요한 자료가 저장된 번지를 표시
28
7.2 레지스터 전송 (15)

명령어 형식(instruction format)

가변길이 명령어 형식


1바이트, 2바이트, 3바이트, 4바이트 명령어 형식으로 나누어진다.
주로 CISC에서 사용되는 명령어 형식.
1Byte
2Byte
3Byte
4Byte
컴퓨터 구조론
OP-CODE
OP-CODE
OP-CODE
OP-CODE
OPERAND
OP-CODE
OP-CODE
OPERAND
OP-CODE
OPERAND
OPERAND
OP-CODE
OP_COCE
OPERAND
OPERAND
29
7.2 레지스터 전송 (16)

명령어 형식(instruction format)

고정길이 명령어 형식



컴퓨터의 워드(word)길이와 동일하게 구성된 명령어 형식으로 주로 RISC
에 사용되는 형식.
주로 RISC에서 사용되는 형식.
16비트 컴퓨터에서 워드 길이가 16비트이므로 명령어의 길이도 16비트이
다.
4 비트
OP-CODE
4 비트
OPERAND1
8 비트
OPERAND2
16 비트

컴퓨터 구조론
오퍼랜드 필드의 비트 수에 따라 명령어를 분류하면 다음과 같다.
30
7.2 레지스터 전송 (17)

명령어 형식(instruction format)

3-번지 명령어(three-address instruction)




세 개의 오퍼랜드로 구성. 여러 개의 범용 레지스터를 가진 컴퓨터에서 사
용할 수 있는 형식으로 특수 목적에만 제한적으로 사용.
장점
 수식계산의 연산후에도 입력 자료가 변하지 않고 보존됨.
 레지스터 번지를 사용하면 프로그램 길이를 짧게 할 수 있다.
단점
 2진 코드로 명령을 나타낼 때 너무 많은 비트가 필요하다.
 수행 시간이 길다.
형식
OP-CODE

컴퓨터 구조론
REGISTER 1
REGISTER 2
REGISTER 3
예) ADD R1, R2, R3 : R1  R2 + R3
31
7.2 레지스터 전송 (18)

명령어 형식(instruction format)

2-번지 명령어




두 개의 오퍼랜드를 가지고 있으며 두 가지 형식이 있다.
OP-CODE
REGISTER 1
OP-CODE
REGISTER 1
REGISTER 2
미사용
예) ADD R1, X : R1 ← R1 + M[X]
예) ADD R1, R2 : R1 ← R1 + R2
1-번지 명령어


오퍼랜드를 1개 포함하고있는 명령어 형식.
모든 명령은 누산기에 기억되어 있는 자료를 사용함.
OP-CODE

컴퓨터 구조론
MEMORY ADDRESS
MEMORY ADDRESS
예) ADD X : ACC ← ACC+ M[X]
32
7.2 레지스터 전송 (19)

명령어 형식(instruction format)

0-번지 명령어



연산을 위하여 스택(stack)을 갖고 있으며 모든 연산의 수행, 결과, 보존은
이 스택을 이용.
스택 구조 컴퓨터는 모든 연산 명령어들을 스택에 기억 시켜두고 하나씩
가지고 와서 연산처리를 하고 연산 결과도 스택에 기억시킴.
예) PUSH X : SP ← SP + 1
S[SP] ← M[X]
POP X : M[X] ← S[SP]
SP ← SP -1
컴퓨터 구조론
33
7.2 레지스터 전송 (20)

명령어 형식(instruction format)

예) 사칙 연산 명령 : ADD, SUB, MUL, DIV






수식 : X=(A + B)×(C + D)




컴퓨터 구조론
데이터 이동 : MOV
기억 장치에서 누산기로의 데이터 저장 : LOAD
누산기에서 기억 장치로의 데이터 저장 : STORE
각 오퍼랜드는 기억 장치의 번지 A, B, C, D 에 존재
연산 결과는 X 번지에 기억
3-번지 명령어 형식
ADD R1, C, D R1 ←M[C] + M[D]
ADD R2, A, B R2← M[A] + M[B]
MUL X, R1, R2 M[X] ← R1×R2
34
7.2 레지스터 전송 (21)

명령어 형식(instruction format)

수식 : X=(A + B)×(C + D)














컴퓨터 구조론

2-번지 명령어
MOV R1, C
ADD R1, D
MOV R2, A
ADD R2, B
MUL R1, R2
MOV X, R1
형식
R1←M[C]
R1 ← R1 + M[D]
R2 ←M[A]
R2 ← R2 + M[B]
R1 ← R 1 × R2
M[X] ← R1
1-번지 명령어
LOAD A
ADD B
STORE T
LOAD C
ADD D
MUL T
STORE X
형식
Acc ← M[A]
Acc ←Acc + M[B]
M[T] ←Acc
Acc ← M[C]
Acc ←Acc + M[D]
Acc ←Acc × M[T]
M[X] ←Acc
35
7.2 레지스터 전송 (22)

명령어 형식(instruction format)

수식 : X=(A + B)×(C + D)










컴퓨터 구조론
0-번지 명령어 형식
스택 구조를 사용할 경우 수식을 후위 연산식(postfix) 형식으로 변환하면
AB+CD+*
PUSH A
TOS ← A
PUSH B
TOS ← B
ADD
TOS ← (A+B)
PUSH C
TOS ← C
PUSH D
TOS ← D
ADD
TOS ← (C+D)
MUL
TOS ← (C+D) × (A+B)
POP X
M[X] ← TOS
36
7.2 레지스터 전송 (23)

주소지정 방식(addressing mode)

명령어를 실행하기 위하여 명령 실행에 필요한 데이터를 찾을 수
있는 주소를 계산하는 방법.










컴퓨터 구조론
즉치 주소지정 방식(immediate addressing mode)
직접 주소지정 방식(direct addressing mode)
간접 주소지정 방식(indirect addressing mode)
함축 주소지정 방식(implied addressing mode mode)
레지스터 주소지정 방식(register addressing mode mode)
레지스터 간접 주소지정 방식(register indirect addressing)
변위 주소지정 방식(displacement addressing mode)
상대 주소지정 방식(relative addressing mode)
베이스 레지스터 주소지정 방식(base register addressing)
인덱스 주소지정 방식(indexed register addressing mode)
37
7.2 레지스터 전송 (24)

주소지정 방식(addressing mode)

즉치 주소지정방식(immediate addressing mode)





오퍼랜드에 연산에 필요한 숫자 데이터를 직접 넣어주는 방식.
명령어 자신이 데이터를 직접 포함하고 있어 명령어의 실행이 바로
이루어지는 방법.
데이터를 구하기 위해 메모리를 액세스할 필요가 없다.
상수를 정의하거나 변수값을 초기화하는데 편리하게 사용.
사용할 수 있는 수의 크기가 오퍼랜드 필드의 크기로 제한.
Memory
Op-code
Op-code
Operation(Data)
(a) 고정길이 명령어
컴퓨터 구조론
유효번지
Data
(b) 가변길이 명령어(8-비트 CPU 경우)
38
7.2 레지스터 전송 (25)

주소지정 방식(addressing mode)

직접 주소지정방식(direct addressing mode)




오퍼랜드 필드의 내용이 실제 데이터가 들어 있는 메모리 주소를 지
정하고 있는 유효주소가 되는 방식.
메모리에 저장되어 있는 데이터를 인출하기 위해 한번만 메모리에
접근하면 되므로 유효주소 결정을 위한 다른 절차나 계산이 필요없다.
장점 : 오퍼랜드가 메모리의 번지가 되기 때문에 간단함.
단점 : 오퍼랜드의 비트 수가 제한되어 있기 때문에 직접 접근할 수
있는 기억장치 주소 공간이 제한.
Memory
Op-code
Memory
Op-code
A(address)
하위주소
상위주소
Data
EA
유효주소
컴퓨터 구조론
(a) 고정길이 명령어
Data
(b) 가변길이 명령어(8-비트 CPU 경우) 39
7.2 레지스터 전송 (26)

주소지정 방식(addressing mode)

간접 주소지정방식(indirect addressing mode)




오퍼랜드 필드의 값이 해당하는 주기억장치 주소를 찾아 간 후 그 주
소의 내용으로 다시 한 번 더 주기억장치의 주소를 지정하는 방식.
직접 주소지정방식에서 주소를 지정할 수 있는 기억장치 용량이 제한
되는 단점을 해결하기 위한 방법.
장점 : 메모리의 번지지정을 더 크게 할 수 있다.
단점 : 명령어 실행 과정에서 두 번씩 메모리를 참조함으로써 시간이
많이 걸린다.
Memory
Op-code
A(address)
Address
EA
Data
컴퓨터 구조론
40
7.2 레지스터 전송 (27)

주소지정 방식(addressing mode)

함축 주소지정 방식(implied addressing mode)




명령어 실행에 필요한 오퍼랜드를 지정하지 않아도 묵시적으로 수행
하는 방식.
메모리를 참조하지 않고 레지스터 단독으로 수행하는 방법.
장점 : 명령어 길이가 짧다.
예)


컴퓨터 구조론
SHL : 누산기의 내용을 좌측으로 시프트하는 명령어
CPL : Acc의 내용을 1의 보수하여 다시 누산기에 로드하는 명령
41
7.2 레지스터 전송 (28)

주소지정 방식(addressing mode)

레지스터 주소지정 방식(register addressing mode)




연산에 사용할 데이터가 레지스터에 저장되어 있으며 레지스터를 참
조하는 지정 방식.
오퍼랜드 필드의 내용은 레지스터 번호이며 그 번호가 가리키는 내용
이 명령어 실행 데이터로 사용.
장점 : 명령어에서 오퍼랜드 필드의 길이가 적어도 되고 데이터 인출
을 위한 메모리 접근이 필요 없다.
유효주소는 레지스터의 번지가 된다.
Register Group
Op-code
R
Data
EA
컴퓨터 구조론
42
7.2 레지스터 전송 (29)

주소지정 방식(addressing mode)

레지스터 간접 주소지정 방식(register indirect addressing
mode)



오퍼랜드 필드가 레지스터의 번호(레지스터의 내용이 가리키는 메모
리가 유효 주소)이다.
지정 레지스터의 내용은 실제 데이터를 인출함.
기억장치 영역은 레지스터의 길이에 달려 있다.
Register Group
Op-code
Memory
R
Address
Data
EA
컴퓨터 구조론
43
7.2 레지스터 전송 (30)

주소지정 방식(addressing mode)

변위 주소지정 방식(displacement addressing mode)



두개의 오퍼랜드를 가지며 직접 주소지정방식과 레지스터 간접 주소
지정방식을 조합하여 수행.
첫 번째 오퍼랜드는 레지스터의 번호, 두 번째 오퍼랜드는 변위를 나
타내는 주소.
유효 주소= 변위 + 레지스터의 내용
Op-code
R
변위
Address
Data
EA
컴퓨터 구조론
Register Group
Memory
44
7.2 레지스터 전송 (31)

주소지정 방식(addressing mode)

상대 주소지정 방식(relative addressing mode)


Op-code
유효주소 = (현재 명령어의 오퍼랜드 내용) + (프로그램 카운터의 내
용)
장점 : 전체 메모리 주소가 명령어에 포함되어야 하는 일반적인 분기
명령어보다 적은 수의 비트만 있으면 된다.
변위
Op-code
변위
Address
Program Counter
Instruction
EA
Program Counter
Memory
(a) 고정길이 명령어
컴퓨터 구조론
Address
Instruction
EA
Memory
(b) 가변길이 명령어(8-비트 CPU 경우)
45
7.2 레지스터 전송 (32)

주소지정 방식(addressing mode)

베이스 레지스터 주소 지정 방식(base register addressing
mode)


유효주소 = 베이스 레지스터의 내용 + 변위
프로그램 전체를 재배치에 사용.
Op-code
R
변위
Base
Register
Address
Data
EA
Register Group
컴퓨터 구조론
Memory
46
7.2 레지스터 전송 (33)

주소지정 방식(addressing mode)

인덱스 주소지정 방식(indexed register addressing mode)




유효주소 = 인덱스 레지스터의 내용 + 변위
인덱스 레지스터는 인덱스 값을 저장하는 특수 레지스터.
변위는 기억장치에 저장된 데이터 배열의 시작 주소를 가리킨다.
인덱스 레지스터의 내용은 그 배열의 시작주소로부터 각 데이터까지
의 거리를 나타낸다.
Op-code
R
변위
Data
Index Register 의 내용
Index
Register
Data
Index Register 의 내용+변위
Address
Data
EA
Register Group
컴퓨터 구조론
Memory
47
7.3 데이터 전송을 위한 간단한 컴퓨터 설계 (1)

컴퓨터 구성요소 정의
Symbol
Program counter
MAR
MBR
IR
A
R
T
<CPU 장치부호>
컴퓨터 구조론
비트수
8
8
8
8
8
8
3
Program Counter
M
A
R
IR
Memory
unit
MBR
해석기
A
Timing Decoder
R
Counter
<컴퓨터 구성요소>
48
7.3 데이터 전송을 위한 간단한 컴퓨터 설계 (2)

명령어 설계




레지스터 주소지정방식 : LD A,R 명령어
즉치 주소지정방식 : LD A,n
직접 주소지정방식 : LD A,(n)
명령어 정의
Control
Function
Op-code
q1
q2
q3
00000001(01)
00000010(02)
00000011(03)
컴퓨터 구조론
Mnemonic
LD A,R
LD A,n
LD A,(n)
Description
Function
Load R to A
Load n to A
Load (n) to A
AR
An
A  (n)
49
7.3 데이터 전송을 위한 간단한 컴퓨터 설계 (3)

명령어 분석

명령어 인출 사이클 분석




t0 : MAR ← PC.
프로그램 카운터의 주소 데이터를 MAR로 전송.
t1 : MBR ← [M], PC ← PC+1
메모리내용을 MBR로 읽어오며 프로그램카운터는 1증가.
t2 : IR ← MBR.
MBR로 읽어온 명령어를 명령어 레지스터로 전송,해석.
명령어 실행사이클 분석-명령어에 따라 다름.

컴퓨터 구조론
LD A, R
q1t3: A ← R, T ← 0 : R의 내용을 A로 전송, 타이밍을 클리
어하여 다음 명령어를 읽어들인다.
50
7.3 데이터 전송을 위한 간단한 컴퓨터 설계 (4)

명령어 실행사이클 분석

LD A, n




LD A, (n)





컴퓨터 구조론
q2t3 : MAR← PC : 프로그램카운터 데이터를 MAR로 전송.
q2t4 : MBR ← [M], PC ← PC+1 : 메모리 내용을 MBR로
읽어오고 프로그램 카운터는 1증가.
q3t7 : A ← MBR, T ← 0 : MBR로 읽어온 데이터를 A로
전송하고 종료한다.
q3t3 : MAR ← PC
q3t4 : MBR ← [M], PC ← PC+1
q3t5 : MAR ← MBR : 주소데이터 n을 다시 MAR로 전송.
((n)번지 내용)
q3t6 : MBR ← [M] : 메모리 내용을 MBR로 읽어옴.
(PC는 증가하지 않는다)
q3t7 : A ← MBR, T ← 0
51
7.3 데이터 전송을 위한 간단한 컴퓨터 설계 (5)

명령어 분류 : 각 제어 기능별 분류







MBR ← [M]
PC ← PC+1
IR ← MBR
A←R
A ← MBR
MAR ← MBR
T←0
컴퓨터 구조론
x2 : t1 + q2t4 + q3t4 + q3t6
x3 : t1 + q2t4 + q3t4
x4 : t2
x5 : q1t3
x6 : q2t4 + q3t7
x7 : q3t5
x8 : q1t3 + q2t5 + q3t7
52
7.3 데이터 전송을 위한 간단한 컴퓨터 설계 (6)
0
PC
M
MUX
1
Increment
A
s
load
Memory
256byte
Read
R
MBR
load
Load
IR
R
Decoder
x1
x2
x3
x4
q 1 q2
q3
해석기
x5
s
MUX
x6
x7
t0 t1 t2 t3 t4 t5 t6 t7
1
0
x8
A
Load
Timing Decoder
컴퓨터 구조론
CLOCK
Counter
clear
53
7.3 데이터 전송을 위한 간단한 컴퓨터 설계 (7)
q1 q2
q3
t0
t1
t2
t3
t4
t5
t6
t7
x1
x2
x3
x4
x5
x6
x7
x8
컴퓨터 구조론
54
7.4 RISC와 CISC (1)

RISC (단축 명령어 컴퓨터:Reduced Instruction Set
Computer)

CISC의 복잡한 명령어를 단순화하여 명령어의 수를 줄이고 하
드웨어를 간단하게 개선함.

주로 워크스테이션 및 중, 대형 컴퓨터의 성능을 개선하기 위하
여 도입되기 시작.

최근에는 개인용 컴퓨터 뿐만 아니라 간단한 원 칩 컨트롤로
(one chip controller)에 이르기까지 RISC 구조를 이용한 제품
들이 많이 출시되고 있다.
컴퓨터 구조론
55
7.4 RISC와 CISC (2)

구조적인 차이점

CISC :


폰노이만 형식인 프로그램 내장방식의 구조를 기반으로 설계된
컴퓨터.
프로그램 내장방식 : CPU가 프로그램을 실행하는데 주기억장치에 명
령어와 데이터(오퍼랜드)를 같이 저장한 후에 수행하는 방법.

RISC :


컴퓨터 구조론
하버드 구조(harvard architecture)을 기반으로 설계된 방식.
하버드 구조 : 프로그램 메모리와 데이터 memory를 분리시켜서
명령어들은 프로그램메모리에 저장하고 데이터들은 데이터 메모
리에 저장한 후에 프로그램을 수행하는 방식.
56
7.4 RISC와 CISC (3)
Program Memory
Memory
Op-code
Op-code
Op-code
Operand
CPU
CPU
Op-code
Operand
Data Memory
Operand
Operand
프로그램 내장 방식 구조
컴퓨터 구조론
하버드 구조
57
7.4 RISC와 CISC (4)

명령어 세트(instruction set)와 형식

CISC




RISC



컴퓨터 구조론
가변 길이 명령어 형식을 사용하므로 명령어 세트의 크기가 크며
명령어 형식이 다양하다.
실제로 많이 사용되는 명령어의 수는 그리 많지 않다.
CISC의 명령어 길이는 가변길이 명령어로서 명령어에 따라서 여
러 번 메모리를 참조해야 되는 경우가 발생.
약 30여개의 명령어밖에 가지고 있지 않다.
고정 길이 명령어 형식을 사용하므로 명령어 형식이 간단하다.
RISC는 모든 명령어가 2바이트 혹은 4바이트 워드 단위로 고정
되어 있기 때문에 명령어 인출은 항상 메모리를 한번만 참조함으
로써 명령어 인출 단계의 속도를 향상시킬 수 있다.
58
7.4 RISC와 CISC (5)

명령어 수행시간(instruction execution time)


한 개의 명령어를 수행하는데 걸리는 시간
CISC


명령어에 따라 가변적이며 짧은 명령어는 1클럭 만에 수행되는 것도
있고 최대 300 클럭이 소요되는 명령어들이 있다.
RISC

컴퓨터 구조론
고정길이 명령어로서 1개 명령어를 수행하는데 1개 클럭이면 실행된
다.
59
7.4 RISC와 CISC (6)

제어장치의 구성

CISC




제어장치를 구성할 때 복잡한 마이크로 코드를 기반으로 한 마이크로
프로그램 방식으로 구성하였다.
먼저 명령어 코드를 해석한 후에 실행한다.
초기 반도체기술이 낙후되었을 때 하드웨어의 가격을 절감하기 위하
여 이 방법을 이용하여 설계하였다.
RISC

컴퓨터 구조론
제어장치들을 모두 하드와이어(hard wire)로 구성함으로써 하드웨어
에 의한 직접적인 실행에 의해 명령어 처리속도가 급격히 상승하게
되었다.
60
7.4 RISC와 CISC (7)

파이프라인의 적용효율



CISC : 명령어의 길이가 가변적이어서 파이프라인 실
행시 비효율적.
RISC : 명령어가 고정길이 명령어이기 때문에 파이프
라인 구조에 효율적으로 적용.
레지스터 구조

RISC



컴퓨터 구조론
CPU 내부에 많은 범용 레지스터를 내장. 데이터들을 미리 내부
레지스터로 가지고 와서 실행함으로써 처리속도가 향상된다.
장점 : 기존의 CISC보다 2배 이상의 처리속도가 빠름.
단점 : 컴파일러 설계가 어렵다는 것이다.
61
7.4 RISC와 CISC (8)

RISC의 특징.









상대적으로 적은 수의 명령어세트를 가지고 있다.
상대적으로 적은 수의 주소지정방식을 가지고 있다.
메모리참조 명령어는 Load와 Store명령만 있다
고정된 길이의 명령어로 구성되었다.
단일 사이클에 한 개 명령어를 수행한다.
제어장치가 하드와이어 방식으로 설계되었다.
상대적으로 CPU 내부의 레지스터가 많다.
파이프라인 수행에 효율적이다.
상대적으로 CPU속도가 빠르다.
컴퓨터 구조론
62
7.5 파이프라인 (1)

파이프라인(Pipeline)

하나의 프로세서(processor)를 여러 개의 부 프로세서(subprocessor)로 나누어 각의 프로세서가 동시에 서로 다른 데이터
를 처리하는 하는 구조.

CPU의 처리속도 향상을 위한 설계.

명령어 파이프라인은 한 개의 명령어를 수행하는데 각 단계별로
병렬처리하기 위하여 구성.
컴퓨터 구조론
63
7.5 파이프라인 (2)

2-단계 명령어 파이프라인




명령어를 실행하는 하드웨어 명령어 인출단계와 실행단계라는 두 개의
독립적인 파이프라인 모듈을 분리하여 수행하는 방법.
첫 번째 클럭주기 : 명령어 인출단계.
두 번째 클럭주기 : 인출된 명령어 실행 단계, 다음 명령어 인출단계.
2-단계 명령어 파이프 라인 타이밍 흐름도
명령어 인출 단계
1
명령어 실행 단계
2
3
실행 결과
4
Clock 주기
명령어1
명령어2
명령어3
컴퓨터 구조론
인출
실행
인출
실행
인출
실행
64
7.5 파이프라인 (3)

2-단계 명령어 파이프라인

2-단계 명령어 파이프 라인 타이밍 흐름도 설명
① 첫 번째 클럭주기에 명령어 인출을 한다.
② 두 번째 클럭주기에 인출해온 명령어를 실행함과 동시에
두 번째 명령어를 인출해온다.
③ 세 번째 클럭에서 두 번째 명령어가 실행됨과 동시에 세 번
째 명령어를 인출해 온다.
④ 이런 방법으로 프로그램을 수행하게 되면 프로그램 수행
속도가 2배 향상될 수 있다.

문제점 : 두 단계의 처리시간이 항상 동일하지 않았을 경우 속도저하의
요인이 된다.

해결방법 : 파이프 라인 처리 단계 수를 증가 시켜 각 단계의 처리 시간
을 동일하게 한다.
컴퓨터 구조론
65
7.5 파이프라인 (4)

4-단계 파이프라인

명령어 수행 단계를 4단계로 나누어 수행하는 구조의 각 기능
① 명령어 인출단계(IF : Instruction Fetch stage) : 명령어를 기억장치
로부터 인출해오는 단계.
② 명령어 해독단계(ID : instruction Decoding stage) : 인출된 명령어
를 해석하는 단계.
③ 오퍼랜드 인출단계(OF : Operand Fetch stage) : 해석된 명령어에
의해 메모리 참조가 필요하면 오퍼랜드를 인출해 오고 만약 해석된
결과가 오퍼랜드를 인출할 필요가 없으면 이 스텝은 실행되지 않고
단지 OF스텝 시간동안 비워둔다.
④ 명령어 실행단계(EX : Execution stage) : 해석된 결과를 수행한다.
컴퓨터 구조론
66
7.5 파이프라인 (5)
명령어
IF
ID
OF
EX
1
2
3
4
IF
ID
OF
EX
IF
ID
OF
EX
IF
ID
OF
EX
IF
ID
OF
EX
IF
ID
OF
EX
ID
OF
5
6
실행 결과
7
8
상태 단계
명령어 1
명령어 2
명령어 3
명령어 4
명령어 5
명령어 6
IF
4-단계 명령어 파이프 라인의 타이밍 흐름도
컴퓨터 구조론
67
7.5 파이프라인 (6)

파이프라인 속도 향상
T = k + (N-1)
* K : 파이프라인 단계수
* N : 실행할 명령어 수
* T : 수행시간
예제) 파이프라인의 단계수가 4단계, 클럭이 1MHz(각 단계는
1μs) ,100개의 명령어를 실행하는데 걸리는 시간
T = 4 + ( 100 - 1) = 103 μs
컴퓨터 구조론
68