39
제 6 제 제제제제제제 제제제 제제제제 제제 제제 제제제제 (ALU) 제제제 제제제 CISC 제 RISC 제제

제 6 장 중앙처리장치

  • Upload
    aquila

  • View
    165

  • Download
    0

Embed Size (px)

DESCRIPTION

제 6 장 중앙처리장치. 구성. 컴퓨터 레지스터 산술 논리 연산장치( ALU) 컴퓨터 명령어 CISC 와 RISC. 제 6 장 중앙처리장치. 중앙처리장치 3가지 주요 구성 요소 (1) Register Set (2) ALU (3) Control 명령어 수행 기능 + 수행 순서를 제어. 제 6 장 컴퓨터 레지스터. 레지스터 종류 레지스터 영숫자로 표기(대문자) - PowerPoint PPT Presentation

Citation preview

Page 1: 제 6 장 중앙처리장치

제 6 장 중앙처리장치

컴퓨터 레지스터 산술 논리 연산장치 (ALU) 컴퓨터 명령어 CISC 와 RISC

구성

Page 2: 제 6 장 중앙처리장치

중앙처리장치 3 가지 주요 구성 요소 (1) Register Set

(2) ALU

(3) Control 명령어 수행 기능 + 수행 순서를 제어

제 6 장 중앙처리장치

제어 장치

레지스터 집합

산술 논리 연산장치(ALU)

Page 3: 제 6 장 중앙처리장치

레지스터 종류 레지스터

영숫자로 표기 ( 대문자 ) MAR(Memory Address Register), PC(Program Counter), IR(Instruction

Register), R1(Processor Register) n 비트 레지스터의 각 플립플롭은 맨 오른쪽의 최하위 비트를 0 ~ n-1 까지 순번

레지스터 전송 : 레지스터들 사이의 정보 전송 레지스터 사이의 정보 전송 동작 : 마이크로 연산 (micro-operation) 마이크로 연산 : 레지스터에 저장된 데이터를 가지고 실행되는 동작으로

하나의 클록펄스 동안에 실행되는 기본적인 동작이다 .

제 6 장 컴퓨터 레지스터

R1 MAR

015

(a) R1레지스터 (b) 비트 수의 표시

Fig. 6-2

레지스터의 블록도

Page 4: 제 6 장 중앙처리장치

레지스터 전송 병렬 전송

한 클록 펄스 동안 레지스터의 모든 비트가 동시에 전송

: 레지스터 전송 언어

R1 레지스터 : 목적지 레지스터 , R2 레지스터 : 근원지 레지스터

제어 함수 (control function) : 레지스터 전송이 정해진 조건일 때만 발생하도록 결정하는 이진 상태 (0/1)

제 6 장 컴퓨터 레지스터

R1 ← R2

P : R1 ← R2

레지스터 전송을 위한 기본 기호

Page 5: 제 6 장 중앙처리장치

레지스터 전송 병렬 전송

제 6 장 컴퓨터 레지스터

P : R1 ← R2

제어 장치 R1

R2

n

PLoad

Clock

(a) 블록도

Clock

t t+1

Load

(b) 타이밍도

실제적인 전송

Page 6: 제 6 장 중앙처리장치

레지스터 전송 직렬 전송

클록과 동기되어 한 번에 한 비트씩 전송

비트 타임 (bit time) : 인접한 두 비트 사이의 전송에 걸리는 시간 워드 타임 (word time) : 레지스터의 머든 내용이 전송되는데 걸리는 시간

제 6 장 컴퓨터 레지스터

S : B3←A0, A3←A0, Ai-1←Ai, Bi-1←Bi, i=1, 2, 3

레지스터 A 레지스터 B

우측 시프트 제어 입력

입력

S

출력

S

CP

3 0 3 0

워드 타임

Page 7: 제 6 장 중앙처리장치

버스 전송과 기억장치 전송 버스 전송

공통 버스를 통한 정보 전송 한 번에 하나의 레지스터만이 데이터를 전송

기억장치 전송 읽기 (READ) : 기억장치 외부장치로 정보 전송 쓰기 (WRITE) : 외부 장치 기억장치로 정보 전송

제 6 장 컴퓨터 레지스터

A레지스터 B레지스터 C레지스터 D레지스터

공통 버스

주기억장치MAR

MBR

읽기

쓰기

Page 8: 제 6 장 중앙처리장치

공통 버스 구조 공통 버스 (Common Bus)

레지스터 상호간의 연결선수가 너무 많음 회선 비용 증가 , 제어 복잡 예 각 레지스터가 1 비트 : 6 개의 데이터 경로 (path) 가 필요 각 레지스터가 n 비트인 경우 : 6n 개의 회선이 요구

한 번에 하나의 레지스터만이 정보 전송이 가능하게끔 회선사용에 제한 n 개의 공통선으로 회선 수를 감소 버스를 이용한 정보 전달은 병렬 전송

제 6 장 컴퓨터 레지스터

R1 R2 R3 F1

F2

F3

S1 S2 S3

S6 S5 S4

Page 9: 제 6 장 중앙처리장치

공통 버스 구조 내부 버스

산술 연산장치와 레지스터 사이의 정보 전송 경로 외부 버스 : CPU 와 CPU 외부의 장치 사이의 정보 전송 경로

» 주기억장치 버스 : CPU 와 주기억장치 사이» 입출력 버스 : 입출력장치와 CPU 사이

범용 레지스터 CPU 구조의 내부 버스

제 6 장 컴퓨터 레지스터

PCMARMBRACDR

TR 등

연산 장치(ALU)

입력 버스

출력 버스

PCMAR

MBR 등 연산 장치

(ALU)

입력 버스

출력 버스

AC

단일 누산기 CPU 구조의 내부 버스

버스

버스에 연결된 부속 시스템

Page 10: 제 6 장 중앙처리장치

공통 버스 구조 버스의 구현 : 멀티플렉서

예 : 4 개의 4 비트 레지스터에 대한 버스 시스템

제 6 장 컴퓨터 레지스터

4×1MUX 0

4×1MUX 3

4×1MUX 2

4×1MUX 1

D0 C0 B0 A0D1 C1 B1 A1D2 C2 B2 A2

3 2 1 03 2 1 03 2 1 03 2 1 0

A2 A1 A0A2 A1 A0B2 B1 B0C2 C1 C0D2 D1 D0

3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0

레지스터 A 레지스터 B 레지스터 C

레지스터 D

D3 D2 D1 D0

2×4 디코더E(Enable)

x

y선택선

S0

S1선택선

4- line common bus

C 레지스의 내용을 버스에 전달

S1S0 : BUS ← C

버스의 내용을 D 레지스터에 전달

X Y : D ← BUS

Page 11: 제 6 장 중앙처리장치

공통 버스 구조 버스의 구현 : 3- 상태 버퍼 게이트

3- 상태 : 0, 1, 고저항 상태 (high-impedance state)

제 6 장 컴퓨터 레지스터

C제어 입력

A입력A C

0 00 11 01 1

0

1

Y출력Y

고저항 상태

고저항 상태

2 X 4디코더

SS

1

0

E

선택선

Enable

0123

Bus line for bit 3

3210

3210

3210

3210

A레지스터

B레지스터

C레지스터

D레지스터

A3

B3

C3

D3

3- 상태 버퍼를 이용한 버스 시스템

디코더의 인에이블 입력이 1 이고선택선의 입력 S1S0=01 이라면

버스에는 B 레지스터의 내용이 전송

Page 12: 제 6 장 중앙처리장치

산술 논리 연산 장치 산술 마이크로 연산 (arithmetic micro-operation) : 덧셈 , 뺄셈 , 증가

(increment), 감소 (decrement) 논리 마이크로 연산 (logical micro operation) : AND, OR, XOR, 보수

(Complement) 등의 논리 마이크로 연산및 시프트 마이크로 연산 (shift micro operation) 등을 수행하는 장치

제 6 장 산술 논리 연산 장치

ALU의 구성

산술 연산 회로 논리 연산 회로

Shifter

내부 입력 버스

내부 출력 버스

Fig. 6-15

Page 13: 제 6 장 중앙처리장치

산술 연산 회로 병렬 가산기로 구성

병렬 가산기의 입력 제어 다양한 산술 마이크로 연산을 수행

제 6 장 산술 논리 연산 장치

Fig. 6-16

n 비트 이진 병렬 가산기

A B

S

출력 캐리 입력 캐리

병렬 가산기

A B

C1 = 0

F = A + B

(a) add

병렬 가산기

A B

C1 = 1

F = A + B + 1

(b) add with carry

병렬 가산기

A B

C1 = 0

F = A + B

(c) subtract with borrow

병렬 가산기

A B

C1 = 1

F = A + B + 1

(d) subtract

병렬 가산기

A 0

F = A

(e) transfer A

C1 = 0 병렬 가산기

A 0

F = A + 1

(f) increment A

C1 = 1

병렬 가산기

A All 1's

F = A · 1

(g) decrement A

C1 = 0 병렬 가산기

A All 1's

F = A

(h) transfer A

C1 = 1

Page 14: 제 6 장 중앙처리장치

산술 연산 회로

제 6 장 산술 논리 연산 장치

4×1MUX

S1

S0

3210

FA

Xi

Yi

Ci

Ci+1

S1

S0

01

Cout

Cin

A i

Bi

Fi

산술 연산회로 한 단위 (one stage)

S1S0 과 Cin 의 값 제어

8 가지 산술 마이크로 연산 수행

Page 15: 제 6 장 중앙처리장치

산술 연산 회로 상태 레지스터 (Status register)와 플래그

» ALU에서의 연산 수행 후 상태 플래그가 세트» 상태 플래그 : C(carry bit), S(sign bit), Z(zero bit), V(overflow

bit)

제 6 장 산술 논리 연산 장치

V Z S C

C1

F

Statusregister

C9

C8

A8비트

B8비트

C 캐리S 부호Z 0V 범람

8- bitALU

ALU의 상태 레지스터 세팅

Fig. 6-19

Page 16: 제 6 장 중앙처리장치

논리 연산 회로 레지스터에 저장된 각 비트들에 대한 이진 연산 논리 마이크로 연산 : AND, OR, XOR, Complement 연산 수행 논리 연산회로 한 단위 (one stage) : Fig. 6-20

제 6 장 산술 논리 연산 장치

4×1MUX

0

1

2

3

AB

L i

S1

S0

i

i

논리 연산 함수표

Page 17: 제 6 장 중앙처리장치

시프트 연산 회로 시프트 마이크로 연산 수행 : 좌측 /우측 시프트 , 순환 시프트 시프트 장치 (조합회로 ) : 산술 연산회로와 논리 연산 회로의 출력단에

연결» 하나의 클록펄스 기간 동안에 연산의 수행을 완료

4 비트 조합 회로 시프트 : Fig. 6-21

제 6 장 산술 논리 연산 장치

함수표

2×1MUX

2×1MUX

2×1MUX

2×1MUX

10S 10S 10S 10S

H0 H1 H2 H3

(I직렬 입력 R)

A0 A1 A2 A3

(I직렬 출력 L)

Select

0 for shift right1 for shift left

Page 18: 제 6 장 중앙처리장치

산술 논리 시프트 장치 산술 연산 논리 회로 (Fig.6-18), 논리 연산 회로 (Fig.6-20), 시프트

회로 (Fig.6-21)의 한 단위 회로 (one stage)

제 6 장 산술 논리 연산 장치

ALU의 한 단위 회로

Fig. 6-22

Ci+1Ci

하나의 논리 연산회로 단위

(그림 6-20)

하나의 산술 연산회로 단위

(그림 6-18)

선택선

4 X 1MUX

0 1 2 3

A Bi i

S0S1S2S3

A i-1

i+1A

shr

shl

Fi Li

Yi

Page 19: 제 6 장 중앙처리장치

컴퓨터 명령어 컴퓨터에게 어떤 일을 수행해야 하는지를 나타내는 비트들의 집합 명령어와 이의 수행에 필요한 데이터는 주기억장치에 연속적으로 위치 CPU에 의하여 하나씩 순차적으로 수행되는 “내장 프로그램” 구조

기억장치에 저장된 명령과 데이터를 읽어내어 명령어의 2 진 코드를 해석한 후 , 명령의 수행을 위한 일련의 마이크로 연산이 이루어지도록 필요한 제어 함수를 발생시켜 명령을 실행

제 6 장 컴퓨터 명령어

내장 프로그램 구조

Fig. 6-23명령어(프로그램)

오퍼랜드(데이터)

4096 X 16RAM

누산기(Accumulator)

15 1211 0

op code Address

Page 20: 제 6 장 중앙처리장치

명령어 형식 (Instruction Format) CPU의 구조와 밀접한 관계 필드 : 모드 필드 , 연산 코드 필드 , 주소 필드 (최대 3 개 )

» 모드 필드 : 긱접 번지와 간접 번지 구분 (I=0 : 직접 번지 , I=1 : 간접 번지 )

» 연산 코드 필드 : 수행하여야 할 연산의 종류 ( 함수 연산 , 전달 , 제어 , 입출력 기능)

» 주소 필드 : 피연산자의 주소

모드 필드 유효 주소 : 실제 피연산자가 저장되어 있는 번지

그림 (b) 에서 유효 주소 (EA) : 458

그림 (c) 에서 유효 주소 (EA) : 1360

제 6 장 컴퓨터 명령어

Fig. 6-25

op code Address(operand)I

op code Address(operand)I

1114 1215 0

(a) 명령어 형식

주기억장치

0 ADD 45812

458 76(Operand)

주기억장치

1 ADD 24515

1360 176(Operand)

245 1360

(b) 직접 번지 (c) 간접 번지

Page 21: 제 6 장 중앙처리장치

연산 코드 (operation code) 함수 연산 , 전달 , 제어 , 입출력 기능

제 6 장 컴퓨터 명령어

기본 컴퓨터 명령어

Page 22: 제 6 장 중앙처리장치

주소 필드 피연산자 (operand) 나 유효 주소가 결정되는 방법 CPU 의 구조에 따라 주소 필드의 수 결정 0- 주소 명령어 , 1- 주소 명령어 , 2- 주소 명령어 , 3- 주소 명령어

명령어의 길이 컴퓨터의 성능에 여러 가지 영향 명령어의 길이 ≥ 주기억장치 워드 (word)

» 한 번 이상의 주기억장치 접근 요구 오버헤드가 큼 명령어의 길이 ≤ 주기억장치 워드 (word)

» 주기억장치 밴드 폭을 효율적으로 사용 연산 (operation)

동작 수행을 위해 주기억장치나 레지스터에 기억되어 있는 데이터를 필요

두 개의 피연산자 (operand) : 모두 레지스터에 저장 , 레지스터 주소에 의해 지정

하나의 피연산자 : 레지스터 , 다른 하나의 피연산자 : 주기억장치

제 6 장 컴퓨터 명령어

ADD R1, R2 의미 : R1 ← R1 + R2

ADD R1, X 의미 : R1 ← R1 + M[X]

K 비트의 레지스터 주소

2k 개의 레지스터 중 하나를 지정

Page 23: 제 6 장 중앙처리장치

0- 주소 명령어 스택 구조 컴퓨터 명령의 수행에 필요한 두 개의 피연산자가 스택에 저장

예외 : push, pop 연산 , 하나의 주소 필드가 필요 예 : Y = (A + B)* + (C + D)

제 6 장 컴퓨터 명령어

op code 0- 주소 명령어 형식

Page 24: 제 6 장 중앙처리장치

1- 주소 명령어 단일 누산기 구조 컴퓨터 명령의 수행에 누산기 (AC) 사용 , 하나의 주소 필드

연산 결과 : 누산기에 저장 예 : Y = (A + B)* + (C + D)

제 6 장 컴퓨터 명령어

1- 주소 명령어 형식op code Address(operand)

Page 25: 제 6 장 중앙처리장치

2- 주소 명령어 벙용 레지스터 구조 컴퓨터 주소 필드 : 레지스터 주소 혹은 주기억장치의 주소를 지정

두 개의 주소 필드 예 : Y = (A + B)* + (C + D)

제 6 장 컴퓨터 명령어

2- 주소 명령어 형식op code Address1 Address2

Page 26: 제 6 장 중앙처리장치

3- 주소 명령어 벙용 레지스터 구조 컴퓨터 주소 필드 : 레지스터 주소 혹은 주기억장치의 주소를 지정

3 개의 주소 필드 예 : Y = (A + B)* + (C + D)

제 6 장 컴퓨터 명령어

3- 주소 명령어 형식op code Address1 Address2 Address3

Page 27: 제 6 장 중앙처리장치

명령어 형식에 의한 컴퓨터 구조 단일 누산기 구조 , 방용 레지스터 구조 , 스택 구조

단일 누산기 구조 1 개의 프로세서 레지스터 ( 누산기 ) 1- 주소 명령어 사용

제 6 장 컴퓨터 명령어

주기억장치4096 X 16

MBR

AC

MAR

PC

IR

015

015

15 0

0

0

11

11

ALU

주소

16 bit common bus

CMA (AC ← AC)

CLA ( AC ← 0)

ADD X (AC ← AC + M[X])

LDA X (AC ← M[X])

STA X (M[X] ← AC)

Page 28: 제 6 장 중앙처리장치

범용 레지스터 구조

제 6 장 컴퓨터 명령어

R1

R2

R3

R4

R5

R6

R7

MUX MUX

InputClock

Arithmetic Logic Unit(ALU)

OPR(Function Select)

Select A Select B

3 X 8Decoder

Load(7 lines)

Output

Select D

A bus B bus

D bus

2 개 이상의 범용 레지스터 사용 2- 주소 /3- 주소 명령어 사용

ADD R1, R2, R3

(R1 ← R2 + R3)

ADD R1, R2

(R1 ← R1 + R2)

ADD R1, X

(R1 ← R1 + M[X])

LD R1, X (R1 ← M[X])

ST R1, X (M[X] ← R1)

MOV R1, R2 (R1 ← R2)

Page 29: 제 6 장 중앙처리장치

마이크로 연산 (micro-operation) 의 예 R1 ← R2 + R3

» 제어 장치가 그림 6-30 에 있는 여러 가지 선택선들의 입력 조합에 대한 제어 신호를 발생시켜 ALU 를 통한 정보 흐름 지시

» 네 개의 제어 선택 변수에 대한 제어 신호가 동시에 얻어져야 하고 , 하나의 클록펄스 간격 동안 수행

하나의 클록 펄스 동안에 두 개의 근원지 레지스터 (R2, R3) 로부터 정보가 멀티플렉서 , ALU, 목적지 버스를 통하여 목적지 레지스터 R1 에 전달된다 ( 그림 6-3 참조 )

제 6 장 컴퓨터 명령어

(1) MUX A 선택선 (Select A) : R2 의 내용을 A 버스에 놓는다 .

(2) MUX B 선택선 (Select B) : R3 의 내용을 B 버스에 놓는다 .

(3) ALU Function 선택선 (OPR) : R2 + R3 를 위한 덧셈 연산을 하게 한다 .

(4) 디코더의 선택선 (Select D) : 목적지 버스 D 를 통하여 연산 결과를 R1 에 전송한다 .

Page 30: 제 6 장 중앙처리장치

마이크로 연산 (micro-operation) 의 예

제어 워드 (control word)

제 6 장 컴퓨터 명령어

레지스터 선택의 인코딩 (Tab. 6-10) ALU 연산의 인코딩 (Tab. 6-11)

Select A Select B Select DOPR

3 3 5 3

(a) 제어 워드

010 011 00100010

(b) R1←R2+R3를 위한 제어 워드

Page 31: 제 6 장 중앙처리장치

스택 구조 0- 주소 명령어 함수 연산 기능 ADD 전달 기능

제 6 장 컴퓨터 명령어

SP

FULL EMPTY

4

3

ALU3

2

1

0

63

주소

*

MBR

PUSH X

(M[SP] ← MBR)

POP X (MBR ← M[SP])

Page 32: 제 6 장 중앙처리장치

레지스터 스택과 메모리 스택 레지스터 스택 : Fig. 6-33 메모리 스택 : Fig. 6-34

제 6 장 컴퓨터 명령어

SP

2000

3000(Upper stack limit)

4000(Lower stack limit)

1000

주소

MBR

주기억장치

Program(Instructions)

Data(operands)

Stack

PC

MAR

RU

RL

프로그램 , 데이터 , 스택을 가진 컴퓨터의 메모리

Fig. 6-34

Page 33: 제 6 장 중앙처리장치

수식 표기법 중위 표기법 (Infix) : A + B 전위 표기법 (Prefix 혹은 Polish) : +AB 후위 표기법 (Postfix 혹은 reverse Polish) : AB+, 스택 연산에 적합 예 : A * B + C * D 를 후위 표기법

AB * CD * +

연산의 예 : (3*4) + (5*6) 34*56*+

제 6 장 컴퓨터 명령어

3*4 + 5*6 을 계산하는 스택 동작

Fig. 6-35

3

3

4

3

4

12

5 6 * +

12

5

12

5

6

12

30

42

Page 34: 제 6 장 중앙처리장치

주소 지정 방식 묵시적 주소 지정 방식 (implied addressing mode)

명령어의 정의에 따라 피연산가 묵시적으로 정의 단일 누산기 컴퓨터 구조에서 많이 사용 예 : CMA, CLA 등 0- 주소 명령어 : 묵시적 모드 명령

즉치 주소 지정 방식 (immediate addressing mode) 명령어 자체 내에 데이터가 포함 주소 필드의 값 = 데이터

직접 번지와 간접 번지 주소 지정 방식 Fig. 6-25 참조

레지스터 주소 지정 방식 (register addressing mode) 피연산자 : CPU 내의 레지스터에 저장

제 6 장 컴퓨터 명령어

operandop code

registerop code Address

R1

R2

R3

operand

10

20

Page 35: 제 6 장 중앙처리장치

주소 지정 방식 레지스터 간접 주소 지정 방식 (register indirect addressing mode)

주소 필드 : 피연산자의 유효 주소를 가지고 있는 레지스터를 지정 직접 번지 지정 방식으로 주기억장치의 주소를 지정하는 것보다 적은 비트

소요

자동 증가 / 자동 감소 주소 지정 방식 (auto-increment/decrement) 레지스터 간접 번지 지정 방식과 동일 자동 증가 : 기억장치 접근 후 레지스터의 값 , 1 증가 자동 감소 : 기억장치 접근 전에 1 감소 후 기억장치를 엑세스

제 6 장 컴퓨터 명령어

registerop code Address

R1Address주기억장치

operand

Page 36: 제 6 장 중앙처리장치

주소 지정 방식 상대 주소 지정 방식 (relative addressing mode)

유효 주소 = 주소 필드 + 프로그램 카운터 값 (PC)» 기준 주소 : 명령어의 주소 필드 값» 상대적 변위 (displacement) : PC 의 값

베이스 레지스터 주소 지정 방식 (base register addressing mode) 기준 주소 : 베이스 레지스터의 값 명령어의 주소 필드 : 변위 값

제 6 장 컴퓨터 명령어

Addressop code

PC 값

주기억장치

operand+

Page 37: 제 6 장 중앙처리장치

주소 지정 방식 베이스 레지스터 주소 지정 방식 (base register addressing mode)

인덱스 주소 지정 방식 (index addressing mode) 베이스 레지스터 주소 지정 방식과 반대 주소 필드 : 기준 주소 인덱스 레지스터 : 변위 값

제 6 장 컴퓨터 명령어

Address( )변위op code

베이스 레지스터 기준주소

주기억장치

operand+

Address( )기준주소op code

인덱스 레지스터 ( )주소 변위

주기억장치

operand+

Page 38: 제 6 장 중앙처리장치

주소 지정 방식 실제 예

PC = 100, R1 = 300, XR = 100

제 6 장 컴퓨터 명령어

PC

R1

XR

AC

주기억장치주소

100 LDA Mode 400

101 Next Instruction

100

300

100 299

300

500

501

700

400 700

300

375

800

600

325

Page 39: 제 6 장 중앙처리장치

CISC(Complex instruction set computer) 다양한 데이터 형태와 주소 지정 방식 제공 CISC 구조 블록도

RISC(Reduced instruction set computer) 고정된 명령어 형식 사용 주소 지정 방식도 간단

» 레지스터 주소 지정 명령어 세트와 제어 장치 간단

CISC 와 RISC 의 비교 Tab. 6-14 참조

제 6 장 CISC 와 RISC

하드와이어 제어 장치

명령 캐시

/ 명령 데이터 경로

데이터 캐시

( )데이터주기억장치

( )명령주기억장치

제어 장치

제어 기억장치

명령/데이터 경로

캐시

주기억장치