처리 장치

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

description

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

Transcript of 처리 장치

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: 처리 장치

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

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

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

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

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

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

제어구조