처리 장치

36
처처 처처 처처처처처 처처처 처처 처처 처처처처 처처 처처처처 처처처처처처 처처 처처처처처처처처처 처처처 처처처처 처처처처처처 처처처 처처처처 처처처처처 처처

Upload: caldwell-douglas

Post on 31-Dec-2015

51 views

Category:

Documents


6 download

DESCRIPTION

처리 장치. 처리장치의 구성과 동작 원리 마이크로 연산 처리장치 구성요소들의 역할 산술논리연산장치의 구조와 연산종류 쉬프트장치의 구조와 연산종류 제어단어의 개념. 처리장치의 개요. 컴퓨터 시스템에서 인간의 신경망에 해당하는 부분 중앙처리장치 = 처리장치 + 제어장치 처리장치 : 데이터 처리 연산을 실행 제어장치 : 연산의 실행 순서를 결정 제어신호 : 다양한 데이터 처리 연산을 구동하는 2 진신호 상태신호 : 처리장치의 여러 상태를 나타내며 실행할 연산의 순서를 제어장치가 정할 때 이용 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 처리 장치

처리 장치

처리장치의 구성과 동작 원리마이크로 연산처리장치 구성요소들의 역할산술논리연산장치의 구조와 연산종류쉬프트장치의 구조와 연산종류제어단어의 개념

Page 2: 처리 장치

처리장치의 개요

• 컴퓨터 시스템에서 인간의 신경망에 해당하는 부분– 중앙처리장치 = 처리장치 + 제어장치

• 처리장치 : 데이터 처리 연산을 실행• 제어장치 : 연산의 실행 순서를 결정

– 제어신호 : 다양한 데이터 처리 연산을 구동하는 2 진신호– 상태신호 : 처리장치의 여러 상태를 나타내며 실행할 연산의

순서를 제어장치가 정할 때 이용• 처리장치

– 산술 / 논리 연산장치와 레지스터로 구성• ALU 는 독립적으로 데이터를 처리하지 못하며 반드시 레지스터와

조합해 데이터를 처리– 마이크로 연산

• 레지스터에 저장되어 있는 데이터에 대해 실행하는 기본 연산

Page 3: 처리 장치

CPU 에서의 처리장치

제어장치제어장치

처리 장치중앙 처리 장치

레지스터

세트

레지스터

세트

산술/

논리

장치

산술/

논리

장치

제어신호

상태신호

제어입력

제어출력

데이터출력

데이터입력

Page 4: 처리 장치

마이크로 연산의 정의

• 마이크로 연산의 정의– 레지스터나 기억장치에 있는 데이터에 가해지는

기본적인 연산

• 마이크로 연산의 종류• 레지스터 전송 마이크로연산 (register transfer micro-operation)

– 한 레지스터에서 다른 레지스터로 2 진 데이터를 전송하는 연산

• 산술 마이크로 연산 (arithmetic micro-operation)– 레지스터 내의 데이터에 대해서 실행되는 산술연산

• 논리 마이크로 연산 (logic micro-operation)– 레지스터 내의 데이터에 대한 비트를 조작하는 연산

• 쉬프트 마이크로 연산 (shift micro-operation):– 레지스터 내의 데이터를 쉬프트시키는 연산

Page 5: 처리 장치

기본 기호 및 개념

• 레지스터 이름– 자신의 기능을 나타내는 대문자로 표시– AR (Address Register), PC, R1, …

• 플립플롭 (Flip-Flop)– 0 부터 n-1 번까지 번호를 부여

• 0 : 최하위 비트 ( 가장 오른쪽 ) 의 위치

• 레지스터의 블록도

R레지스터 R

7 6 5 4 3 2 1 08bit 레지스터의 개별 비트

R16bit 레지스터의 순서

15 0 PC(H) PC(L)

16bit 레지스터의 분할

15 8 7 0

Page 6: 처리 장치

레지스터 R1 에서 R2 로의 전송

• 레지스터 전송– R2 R1

• 연산자 로 표시• R1 을 출발 레지스터 , R2 를 도착 레지스터• R1 의 내용은 불변이고 R2 만 R1 의 값을 가짐

• 레지스터 전송 표기– 클럭 펄스가 발생할 때마다 실행되지 않고 특정

제어 신호가 가해질 때만 실행– If (T1 = 1) then (R2 R1) --- 조건문 표현

• T1 은 제어장치에서 발생시키는 제어신호

– T1 : R2 R1 --- 부울식• 콜론 (:) 은 T1=1 일 때만 해당 하드웨어에서 전송이 실행

Page 7: 처리 장치

레지스터 R1 에서 R2 로의 전송 블록도

• R1 의 n 개 ( 비트 수 ) 의 출력은 R2 의 입력으로 연결• R2 는 T1 에 의해서 구동되는 제어입력신호를 가짐

– 클럭과 동기화된 신호로 가정• 타이밍도 설명

– 시점 t+1 에서 T1 =1 이 되고 R2 의 입력은 병렬로 레지스터에 적재• T1 이 t+1 클럭의 상승 천이 시점에서 0 으로 리셋• R1 에서 R2 로 단 한번 값의 전송이 발생

T1

클럭

R1 R2

load

R1 R2

load

K1

클럭

t t+1

여기서전송이일어난다

(a) 블록도 (b) 타이밍도

제어 입력신호 클럭의 천이

Page 8: 처리 장치

클럭

• 클럭– 디지털 시스템의 논리를 순차적으로 변화시키는 것– 주기적이고 안정한 구형파이어야 함

• 클럭 사이클 시간– 클럭 파형의 한 주기– 모든 논리소자들은 한 클럭 사이클보다 적은 시간 내에

상태전이를 마쳐야 함

Page 9: 처리 장치

동기 동작

• 상태의 변화– 클럭의 전이가 low 에서 high 로 또는 high 에서 low 로 될 때

발생– + 전이 (PT, Positive Transition) : low high– - 전이 (NT, Negative Transition) : high low

• 비동기 동작– 클럭과 관계없이 푸시 버튼을 누르면 즉시 동작

Page 10: 처리 장치

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

• 레지스터 전송문장에서 사용하는 기본 기호– M : 기억장치 단어를 표시– [ ] : 기억장치에 있는 단어의 주소를 표시

기호 의미 예

영문자 ( 숫자 ) 레지스터 AR, R2, IR

괄호 레지스터의 일부분 R2(1)

화살표 자료의 이동 R1 <- R2

쉼표 동시에 실행되는 연산을 구분 R1 <- R2,PC <- PC + 1

대괄호 메모리에서의 주소 DR <- M[AR]

Page 11: 처리 장치

산술 마이크로 연산

• 기본적인 산술 연산– 1 증가 : R1 <- R1 + 1 ( 상승 카운트 )– 1 감소– 보수 : 1 의 보수와 2 의 보수– 덧셈

• 기타 연산– 뺄셈 연산

• 보수 연산과 가산으로 구성• R2 <- R0 + R1 + 1

– R1 : R1 의 1 의 보수– R2 <- R0 – R1

– 곱셈 : * 로 표시• 5 * 3 5 + 5 + 5

– 나눗셈 : / 로 표시

R1 의 2 의 보수 = R1+1

Page 12: 처리 장치

산술 마이크로 연산의 표시

기호 의미

R0 R1+R2 R1 과 R2 의 합을 R0 에 저장

R2 R2 R2 의 보수 (1 의 보수 ) 를 R2 에 저장

R2 R2 + 1 R2 에 2 의 보수를 계산 후 저장

R0 R1 + R2 + 1

R1 에 R2 의 2 의 보수를 더한 후 R0 에 저장

R1 R1 + 1 R1 에 1 더함 ( 상승 카운트 )

R1 R1 - 1 R1 에서 1 뺌 ( 하강 카운트 )

Page 13: 처리 장치

논리 마이크로 연산

• 레지스터에 저장되어 있는 비트의 데이터를 조작하는데 유용– 비트 값을 바꾸거나 소거– 새로운 비트 값을 레지스터에 저장

• AND 마이크로 연산 ( )– 하나 이상의 비트를 0 으로 만드는데 사용 – X0 = 0, X1=X 를 이용

• 한 비트나 여러 개의 비트는 0 으로 AND 하면 클리어 됨• 11001010 01010011 R0 ( 데이터 )• 11110000 00001111 R1 ( 마스크 )• 11000000 00000011 R0 <- R0 AND R1

Page 14: 처리 장치

논리 마이크로 연산

• OR 마이크로 연산 (V)– 하나 이상의 비트를 1 로 설정하는데 사용– X + 1=1 과 X + 0=X 이용

• 2 진 값 X 가 0 과 OR 를 취했을 때 값이 변하지 않음• 11001010 01010011 R0 ( 데이터 )• 11110000 00001111 R1 ( 마스크 )• 11111010 01011111 R0 <- RO OR R1

• XOR 마이크로 연산 (+ )– 하나 이상의 비트를 반전시키는데 사용 .– 0 과 XOR 를 취했을 때 값이 변하지 않음

• 11001010 01010011 R0 ( 데이터 )• 11110000 00001111 R1 ( 마스크 )• 00111010 01011100 R0 <- RO XOR R1

Page 15: 처리 장치

쉬프트 마이크로연산

• 데이터의 측면이동에 사용– 데이터를 순차적으로 이동하는데 사용– 산술 , 논리 연산이나 제어 과정에서 레지스터의

내용을 변경하는데 사용• 표준 기호

– shl, shr 로 표시• 연산 결과

– 출발 레지스터에 있는 내용을 왼쪽 / 오른쪽으로 쉬프트

– 출발 레지스터의 내용은 변하지 않음• R0 <- sr R1, R0 <- sl R1• 입력 비트는 0 으로 가정하고 출력 비트는 버림

Page 16: 처리 장치

쉬프트 마이크로연산

 

유형 기호표시8 비트 데이터의 경우

출발지 R2 쉬프트 후 : 목적지 R1

왼쪽 쉬프트 R1 shl R2 10011110 00111100

오른쪽 쉬프트 R1 shr R2 11100101 01110010

입력 비트는 0 으로 가정하고 출력 비트는 버림

Page 17: 처리 장치

처리 장치의 구성 요소

• 처리 장치의 내부 구성 (pp. 65)– 여러 개의 레지스터 , ALU, 내부 버스로 구성– ALU(Arithmetic Logic Unit)

• 여러 개의 레지스터를 공용으로 사용하는 구조의 산술 /논리장치

– 내부 버스 • 레지스터들간의 데이터 전송을 위한 공용선로의 집합• ALU 와 레지스터를 연결

– 하나의 마이크로 연산 실행 방법• 지정된 출발 레지스터의 내용이 ALU 의 입력으로 전달• ALU 에서 그 연산을 실행한 후• 그 결과가 도착 레지스터로 전송

Page 18: 처리 장치

처리장치의 구성 요소 설명 (1)

• 멀티플렉서 (2 개 사용 )– 선택 신호를 이용하여 특정 Reg 를 선택– 선택된 연산은 ALU 에 의해 산술 / 논리연산 실행

• 쉬프터 ( 쉬프트 레지스터 )– ALU 에서 실행된 마이크로 연산의 결과를 선택

신호에 의해 디코더에 전달

• 디코더– 선택 신호에 따라 도착 Reg 를 결정

• 도착 Reg– 수행된 마이크로 연산의 결과가 저장

Page 19: 처리 장치

처리장치의 구성 요소 설명 (2)

• 상태 비트– ALU 에서의 연산 결과에 대한 정보가 저장된 것– CPU 의 제어장치가 다음 동작을 결정하는데 사용– 캐리 (C), 오버플로 (V), 부호 (S), 제로 (Z)

• 상태 레지스터 (status/flag Reg.)– 상태 비트가 저장되는 특수 레지스터

• 선택 신호– 처리장치에서 수행되는 각종 마이크로 연산을

제어하는 신호로 제어장치에서 발생– 멀티플렉서 , ALU 쉬프터 , 디코더 등에 있음

• 제어단어– 선택 신호의 묶음

Page 20: 처리 장치

내부버스

• 내부버스– CPU 내부에서 정보를 전달할 수 있는 신호의 경로를 의미하며

레지스터간의 연결 통로가 됨– 내부버스를 구성하는 방법 (pp.68)

• 멀티플렉서와 디코더를 이용– 멀티플렉서는 출발 레지스터 선택– 디코더는 도착 레지스터를 선택

• 외부버스– 시스템 버스로서 컴퓨터 시스템의 각 구성 요소간의 통신이

가능하도록 하는 기능

레지스터 세트 ALU

입력버스

출력버스

Page 21: 처리 장치

산술 / 논리 연산장치 (ALU)

• 본적인 산술연산과 논리연산을 실행하는 조합논리회로(pp.69)– 선택 입력선

• K 개의 선택 입력으로 2k 에 해당하는 연산 표시– 데이터 입력선

• A 와 B 에서 n 개의 데이터가 입력– 데이터 출력

• G 의 출력으로 n 개의 데이터가 출력– 방식 선택입력

• S2 : 산술 연산과 논리 연산을 구분하는데 이용– 연산 선택입력

• S0, S1 : 실행할 산술연산 혹은 논리 연산을 지정– 입출력 캐리

• 산술 연산을 수행할 때만 의미를 가짐

Page 22: 처리 장치

N 비트 ALU 블럭도

데이터 입력 A

데이터 입력 B

캐리 입력

연산 선택

방식 선택

……

… 데이터 출력 G

출력 캐리

n 비트

산술 / 논리연산장치

(ALU)

A0

A1

An-1

B0

B1

Bn-1

G0

G1

Gn-1

Cin Cout

S0

S1

S2

Page 23: 처리 장치

산술연산회로

• 가장 기본적인 요소는 여러 개의 병렬 가산기– 여러 개의 전가산기를 연속적으로 연결하여 만듬– 병렬 가산기로 들어가는 제어 입력값을 선택하여

여러 형태의 산술 연산을 실행

• 2 개의 입력 (A,B) 과 출력 (G) 가 n 비트로 구성– G = X + Y + Cin

• X : 입력으로부터 오는 n 비트의 값• Y : 입력논리회로 B로부터 오는 n 비트의 값• Cin : 입력 캐리로 0Eh 는 1 을 가짐• + : 산술가산

– Cout 출력 : 전가산기의 최상위 비트에서 구해짐

Page 24: 처리 장치

산술연산회로의 블럭도

G=X+Y+Cin

n 비트

병렬가산기

XA

Bn

Cin

Cout

S0S1

Y

n

n

B 입력변환논리회로

B 입력변환논리회로

n

– G = A + B + Cin• A : 입력으로부터 오는 n 비트의 값• B : 입력논리회로 B로부터 오는 n 비트의 값• Cin : 입력 캐리로 0 또는 1 을 가짐• + : 산술가산

– Cout 출력 : 전가산기의 최상위 비트에서 구해짐– S0, S1 : 선택 신호

입력출력

선택신호

입력 캐리

출력 캐리

Page 25: 처리 장치

산술연산에 대한 연산표

• 병렬 가산기의 출력값– G = X + Y + Cin

• B의 입력 값이 무시되고 Y=0 을 입력• 출력값 G = X + 0 + Cin

– Cin = 0 G=A : 입력 A 에서 출력 G로 직접 전송– Cin = 1 G=A+1 : 입력 A 의 값이 1 만큼 증가

– 산술 가산• 입력 B는 병렬 가산기의 Y로 입력• Cin=0 G=A+B

– 산술감산• 입력 B의 보수를 병렬 가산기의 Y로 입력• Cin=1 G=A+B+1

– 2 의 보수 (B+1) 를 더하는 것으로 감산의 결과를 얻음

Page 26: 처리 장치

산술연산에 대한 연산표의 정리

• 2 개의 선택입력 S0 과 S1 을 조절하여 Y 값을 제어함에 따라 얻어질 수 있는 여러 산술 연산

선택신호 입력값 G+A+B+Cin

S1 S0 Y Cin=0 Cin=1

0 0 모두 0 G=A( 전송 ) G=A+1( 증가 )

0 1 B G+A+B( 가산 ) G=A+B+1

1 0 B G+A+B G=A+B+1( 감산 )

1 1 모두 1 G+A-1( 감소 ) G=A( 전송 )

Page 27: 처리 장치

4 비트 산술연산회로

• 4개의 전가산기( 병렬가산기 )

• 선택변수 : S0, S1, Cin 로 구성

X0

Y0

FA

C0

G0

Cin

S1S0A0B0

X1

Y1

FA

C1

G1

A1B1

X1

Y1

FA

C3

G3

A3B3

C4 Gou

t

Page 28: 처리 장치

논리연산회로

• 레지스터에 있는 각 비트를 독립된 2 진 변수로 간주하여 비트별 연산을 실행

• AND, OR, XOR, NOT 등이 있음• 4개의 게이트와 4X1 멀티플렉서로 구성

S0

S1

0

1

2

3

S0

S1

Ai

Bi

4-to-1

MUX

Gi

S0 S1

0 0

0 1

1 0

1 1

출 력

G = A ∧ B

G = A ∨ B

G = A B

G = A

연 산

AND

OR

XOR

NOT

(a) 논리도 (b) 함수표

Page 29: 처리 장치

산술 / 논리연산장치

• ALU 는 산술연산회로와 논리연산회로를 결합– S2=1( 논리연산 ) Vs S2=0( 산술연산 ) 출력이 선택

• ALU 의 한 단계 구성 (pp.74)

산술회로의

한 상태

논리회로의

한 상태

2- to- 1 MUX

Ci

Ai

Bi

S0

S1

S2

Ci+1

Gi

S

0

1

Page 30: 처리 장치

쉬프터

• 쉬프트 연산– ALU 에는 비트 단위로 이동시키는 쉬프트 기능이

없음 ALU 출력단에 쉬프터를 연결하여 수행– 좌측 쉬프트 , 우측 쉬프트

• 조합회로 쉬프터– 4개의 멀티플렉서를 이용하여 구성– 선택신호 H0, H1 은 연산 종류를 선택하기 위하여 4개의 멀티플렉서에 연결

Page 31: 처리 장치

4비트 쉬프터

0 1 2 3

MUXS3

G3

0 1 2 3

MUXS2

G3

0 1 2 3

MUXS1

G3

0 1 2 3

MUXS0

G3직접출력

IR

직접출력 IL

0

H1

H0

H1 H0 연산 기능0 0 S G 쉬프트 없이 전송0 1 S shr G 우측 쉬프트하여 전송1 0 S shl G 좌측 쉬프트하여 전송1 1 S 0 모든 출력비트에 0 을 전송

Page 32: 처리 장치

제어단어

• 선택신호– 처리장치 내에서 수행되는 마이크로 연산을 선택하는 변수– 처리장치의 버스 , ALU, 쉬프터 , 도착 레지스터 등을 제어– 제어변수로 표현

• 마이크로 연산을 제어하기 때문에

• 제어단어– 처리장치에 있는 16 개의 2 진 제어변수 (16 비트 ) 들의 집합

• A : ALU 로 입력되는 A 버스 선택 (3비트 ) - 출발레지스터• B : ALU 로 입력되는 B 버스 선택 (3비트 ) - 출발레지스터• F : ALU 마이크로 연산 선택 (4비트 ) – 12 가지 연산 중 선택• H : 쉬프터 마이크로 연산 선택 (3비트 ) – 쉬프트 유형 선택• D : 도착 레지스터 선택 (3비트 )

Page 33: 처리 장치

처리장치의 블록도

레지스터 세트(R1~R7)

레지스터 세트(R1~R7)

도착 레지스터선택

도착 레지스터선택

S Z V C

789

D

클럭

클럭

B 버스선택

B 버스선택

456

BA 버스

선택A 버스

선택123

A

입력데이터

ALUALU101112

F

13

쉬프터쉬프터141516

H

출력 데이터

A1 2 3 B

4 5 6 D

7 8 9 F

10 11 12 13 H

14 15 16

Page 34: 처리 장치

제어단어를 표기한 처리장치의 구조 및 내역

A1 2 3 B

4 5 6 D

7 8 9 F

10 11 12 13 H

14 15 16

제 어 단 어

2 진코드 A B DF

HCin=0 Cout=0

000 외부입력 외부입력 없음 F=A F=A+1 쉬프트 없음

001 R1 R1 R1 F=A+B F=A+B+1

SHR

010 R2 R2 R2 F=A+B F=A-B SHL

011 R3 R3 R3 F=A-1 F=A bus=0

100 R4 R4 R4 F=A^B - -

101 R5 R5 R5 F=AVB - ROR

110 R6 R6 R6 F=A+B - ROL

111 R7 R7 R7 F=A - -

Page 35: 처리 장치

감산 마이크로 연산의 예

• R1 R2 – R3 (pp.80)– A : ALU 의 A 버스 입력으로 R2 의 내용을 내보냄– B : ALU 의 B 버스 입력으로 R3의 내용을 내보냄– D : 연산 결과를 도착 레지스터 R1 으로 보냄– F : ALU 에서 감산 연산 (G=A-B) 을 수행– H : 쉬프트 없음

필드 A B D F H

기호 R2 R3 R1 G=A-B 쉬프트 없음

2 진 코드 010 011 001 010 000

• 기타 다른 예 (pp. 81 참조 )

Page 36: 처리 장치

제어단어를 생성시키는 방법

• 제어단어를 이용하면 마이크로 연산의 수행이 가능• 제어 단어를 생성시키는 효과적인 방법

– 제어단어를 기억장치에 저장– 기억장치의 출력을 처리장치의 각 구성요소의 선택신호로

연결 기억장치로부터 연속적인 제어단어를 읽음으로써

처리장치에서의 마이크로 연산이 정해진 순서대로 , 연속적으로 수행됨

• 마이크로 프로그램에 의한 제어– 처리장치의 제어를 위해 제어장치가 따로 구성된 형태의

제어구조