Presentation is loading. Please wait.

Presentation is loading. Please wait.

6장 연산 장치 6.1 개요 6.2 연산장치의 구성요소 6.3 처리기 6.4 기타 연산장치.

Similar presentations


Presentation on theme: "6장 연산 장치 6.1 개요 6.2 연산장치의 구성요소 6.3 처리기 6.4 기타 연산장치."— Presentation transcript:

1 6장 연산 장치 6.1 개요 6.2 연산장치의 구성요소 6.3 처리기 6.4 기타 연산장치

2 6.1 개 요 중앙 처리 장치는 제어 장치와 연산 장치로 구성되어 있고 데이터를 연산, 처리하기 위한 필요한 레지스터들을 포함. 처리기(processing unit) : 연산 장치와 레지스터로 구성 연산장치는 산술, 논리, 비트, 수의 대소 판단 등의 연산을 처리하는 기능을 가지고 있다. 연산장치는 독립적으로 데이터 처리를 수행하지 못하며 반드시 레지스터들과 조합하여 데이터를 처리해야 한다. 중앙 처리 장치(=연산장치+제어장치)의 구조 처리기 레지스터 연산장치 제어장치 6장 연산장치

3 6.2 연산 장치의 구성 요소(1) ALU의 구성 요소 입력데이터 A 산술 연산 장치 입력데이터 B 논리 연산 장치 출력데이터
보 수 기 출력데이터 시프트 레지스터 플래그 상태 레지스터 제어 신호 6장 연산장치

4 6.2 연산 장치의 구성 요소(2) 산술연산장치 : 산술 연산인 +, -, ×, ÷을 수행하는 연산 회로.
논리 연산 장치 : 논리 연산인 AND, OR, XOR, NOT을 수행하는 연산 회로. 시프트 레지스터 : 비트들을 좌측 혹은 우측으로 이동시키는 기능 을 가진 레지스터. 보수기(complement) : 2진 데이터의 보수를 취하는 회로. 상태 레지스터 : 연산 결과의 상태를 나타내는 플래그들을 저장하는 레지스터. 6장 연산장치

5 6.2 연산 장치의 구성 요소(3) 산술 연산 장치 내부는 기본적으로 전 가산기(full adder)로 구성되어 있으며, 이를 이용하여 가산 및 감산을 수행함. 산술 연산 장치 구성 : 전 가산기 회로를 이용한 병렬 가산기로 구성됨, 입력 : A1 ,A2 ,A3 ,A4와 B1 ,B2 ,B3 ,B4 출력 : S1 ,S2 ,S3 ,S4 상태비트 : 오버플로우 비트(overflow bit), 제로 비트(zero it), 부호 비트(sign bit), 캐리 비트(carry bit) 6장 연산장치

6 6.2 연산 장치의 구성 요소(4) 전 가산기를 이용한 가,감산기 가감산기 내부 구조 Ci Xi X Ai Bi 조합논리회로
전가산기 Fi Yi Ci+1 6장 연산장치

7 6.2 연산 장치의 구성 요소(5) 감산을 위해 보수기를 포함한 회로 B register 보 수 기 A register
보 수 기 A register 8비트 병렬 가산기 Flag register 6장 연산장치

8 6.2 연산 장치의 구성 요소(6) 병렬 가산기에 의한 산술 연산 가산 가산 + Carry A B A B Cout Cin=0
* 캐리 비트 Cin을 0으로 하고 A와 B를 가산하여 합이 F로 구해진다. 가산 + Carry * Cin을 1로 하여 F=A+B+1 을 구한다. A B A B Cout Cin=0 Cout Cin=1 병렬 가산기 병렬 가산기 F=A+B F=A+B+1 6장 연산장치

9 6.2 연산 장치의 구성 요소(7) A+B의 보수 감산 A B보수 A B보수 Cout Cin=0 Cout Cin=1
* 감산의 경우에는 B에 1의 보수를 입력해서 F=A+B를 연산한다. 감산 * Cin을 1로 하면 F=A+ B+1로 되어 A와 B의 2의 보수를 가산. A B보수 A B보수 Cout Cin=0 Cout Cin=1 병렬 가산기 병렬 가산기 F=A+B보수 F=A+B+1 6장 연산장치

10 6.2 연산 장치의 구성 요소(8) A 전송 A 증가 A A Cout Cin=0 Cout Cin=1 병렬 가산기 병렬 가산기
* B의 입력을 모두 0 을 입력하면 F=A+0 이 되어 F=A가 된다. A 증가 * F=A+1이 되어 1 증가 연산이 된다. A A Cout Cin=0 Cout Cin=1 병렬 가산기 병렬 가산기 F=A F=A+1 6장 연산장치

11 6.2 연산 장치의 구성 요소(9) A감소 A전송 A All 1’s A All 1’s Cout Cin=0 Cout Cin=1
* B의 입력이 모두 1이면 F=A (b)가 되어 F=A-1연산한다. A전송 * Cin을 1로 하였기 때문에 F = A 이 되어 F = A가 된다. A All 1’s A All 1’s Cout Cin=0 Cout Cin=1 병렬 가산기 병렬 가산기 F=A-1 F=A 6장 연산장치

12 6.2 연산 장치의 구성 요소(10) 상태 레지스터(Status register or Flag register)
연산 결과에 의해 상태 레지스터를 세트. 비트 단위로 되어 있으며 C, S, Z, V들로 구성. * C(Carry bit) : 두 수를 가산하여 자리 올림수가 발생하면 1로 세 트되고 아니면 0이 된다. 산술 연산 장치의 최상 위 비트의 전 가산기 carry out 신호를 받아서 세 트되고 감산에서 자리 내림이 발생하였을 때에 도 1로 세트됨. * S(Sign bit) : 최상위 비트가 0이면 양수를 나타내고, 1이면 음 수를 나타내는 비트. * Z(Zero bit) : 두 수를 연산한 후 결과 값이 0이면 1로 세트. * V(Overflow bit) : 산술 연산에 두 수를 가산할 때 결과를 저장할 수 있는 레지스터의 자리수가 모자랄 때 발생 하는 에러(error)로서 오버플로우가 발생하면 오버플로우 비트가 1로 세트된다. 6장 연산장치

13 6.2 연산 장치의 구성 요소(11) A L U 상태 레지스터 구조 A B Flag register V Z S C S2 S1
Cin A L U Cin+1 Cout F V : Overflow Z : Zero S : Sign C : Carry 6장 연산장치

14 6.2 연산 장치의 구성 요소(12) 캐리 예측 발생기 병렬 가산을 보다 빨리 수행하기 위해서는 하위 전 가산기로부터의 캐리를 미리 예측하여 계산할 필요가 있다. 각 단의 캐리들은 전단의 가산기들이 연산이 끝난 후에 캐리가 발생하고 발생된 캐리에 의해 다음 단의 연산이 수행. 전파 시간(propagation time) : 캐리들이 전파되는 데 필요한 시간. 캐리 예측 발생기(look-ahead carry generator) - 전파 시간을 줄이기 위한 회로. 6장 연산장치

15 6.2 연산 장치의 구성 요소(13) 논리 연산 장치 OR, AND, XOR, NOT의 논리 연산을 수행하는 장치 : 비트 단위로 연산 연산 장치 제어 신호 S2, S1, S0, Cin에서 S2가 1일 때 논리 연산 처리가 된다. : 표 6-1 참조 논리 연산 장치의 예 4X1 MUX 1 F1 2 3 6장 연산장치

16 산술 연산 장치와 논리 연산 장치의 조합 : 그림 6-12
6.2 연산 장치의 구성 요소(14) 논리 연산 제어 신호 S S0 논리 연산 출력 OR Fi = Ai + Bi XOR Fi = Ai  Bi AND Fi = Ai  Bi NOT Fi = Ai 산술 연산 장치와 논리 연산 장치의 조합 : 그림 6-12 6장 연산장치

17 6.2 연산 장치의 구성 요소(15) 시프터 레지스터 입력 데이터의 모든 비트들을 각각 서로 이웃한 비트로 자리를 옮겨가는 연산. 연산 장치 내부에는 데이터들을 시프트하는 기능이 없으므로 연산기 출력단에 시프트 레지스터를 연결하여 수행. 논리적 시프트에서 자리 이동을 할 때 캐리를 포함하지 않는 경우의 시프트는 시프트한 결과 밀려나가는 비트는 잃어버리게 되며, 새로 들어오는 비트는 항상 0이 된다. 그림 6-13 참조 6장 연산장치

18 6.2 연산 장치의 구성 요소(16) 시프트 레지스터 제어신호 H1 H0 Operation Function 0 0 Y  F
Y  F Transfer F to S Y  shr F Shift-right F into S Y  shl F Shift-left F into S Y  0 Transfer 0’s into S 6장 연산장치

19 6.3 처리기 처리기 : 연산장치 + 레지스터 연산처리를 하기 위해서는 CPU가 레지스터나 메모리에 저장되어 있는 데이터를 가지고 와서 연산을 수행 8비트 연산처리기 설계시 필요한 장치 : 그림 6-14 8비트 레지스터 7개. 레지스터를 선택하기 위한 로드 제어 신호 공급 : 3 × 8 디코더 1개 연산 장치의 입력 채널에서 연산 데이터를 선택하기 위한 3 × 8 멀티플렉서 2개. 8비트 병렬 연산 장치 1개, 8비트 시프트 레지스터 1개. 상태 레지스터를 구성하기 위하여 D 플립플롭 4개. 6장 연산장치

20 6.4 기타 연산 장치(1) 승산 : 가산을 기본으로 이루어짐 Booth 알고리즘 – 2진수 승산에 사용
최하위 비트로부터 피승수가 1에서 0으로 바뀌는 비트 2k에서 0에서 1로 바뀌기 자릿수 2m을 감산하는 알고리즘.( ) 부호가 있는 2진수 승산에 많이 사용. 예) 승수 : 0110(+6d) K+1 m 0110 (피승수) X (승수) 0000 0110 K+1 m 3 1 : =8-2=6 6장 연산장치

21 6.4 기타 연산 장치(2) 승산 Booth 알고리즘 수행회로 Qn Qn+1 Acc(결과) QR register 가 산 기
승수 레지스터 가 산 기 BR register SC : Sequence Counter 피승수 레지스터 QR register를 한자리씩 우측으로 이동하여 Q 로 들어감 = 1 : BR register + Acc=>Acc 저장 후 한자리 우측으로 이동 = 0 : Acc 내용을 한자리 우측으로 이동 n+1 Q n+1 Q n+1 6장 연산장치

22 6.4 기타 연산 장치(3) 배열 승산기(Array Multiplier) 승산기의 특별한 형태로서 고속 소수점 승산에 사용
승산 비트들을 조합 회로로 설계하여 하나의 마이크로 연산으로 곱셈이 실행될 수 있도록 설계 22 배열 승산 회로 : ( ) X ( )=( ) b1 b0 a1 a0 C3 C2 C1 C0 b0 a0 b1 a1 b0 b1 HA2 c02 s2 HA1 c s1 c3 c2 c1 c0 6장 연산장치

23 6.4 기타 연산 장치(4) 제산 제산은 감산을 기본으로 이루어진다. 제산회로 예) 100010(피제수) / 1100(제수)
입력 register(IR) (제수) Shift pulse Shift left B 감산 회로 A 논리 (몫) Shift pulse(SP) (피제수) Accumulator 확장 register(MQ) accumulator register(AR) (제산의 결과) 6장 연산장치

24 6.4 기타 연산 장치(5) 비수치 연산 비트나 바이트 단위로 처리하는 것.
논리 연산 : 기본 논리 함수와 복잡한 논리 함수의 계산, 논리적 시프트, 로테이트 등을 포함한 것. 연산의 종류 비수치 연산 (논리 연산) 단항 move complement shift rotate clear increment decrement 이항 AND XOR Compare 수치연산 수치 (산술 정수 표현 언팩십진법 팩 십진법 고정 소수점 연산 기타형식 코드표현 실수 부동소수점 표현 6장 연산장치

25 6.4 기타 연산 장치(6) 단항논리 연산 이동 연산 : transfer
* 연산 장치의 입력 데이터를 받아들여 그대로 출력하는 단항 연산 * 하나의 레지스터에 기억된 데이터를 다른 레지스터로 옮길 때 이용. 6장 연산장치

26 6.4 기타 연산 장치(7) 보수(COMPLEMENT) 연산 : 인버터 기능 수행
* 보수 연산은 단항 연산으로 출력이 연산장치를 통하여 입력 데이터에 대하여 1의 보수 형태로 나타나는 연산. * 음수의 표현에서 1의 보수, 2의 보수를 구하는데 필요. 6장 연산장치

27 6.4 기타 연산 장치(8) 시프트(SHIFT) 연산
* 입력 데이터의 모든 비트들을 각각 서로 이웃한 비트로 자리를 옮 겨서 연산 장치의 출력 측에 나타내는 연산. * 우측 시프트와 좌측 시프트가 있다. * 논리적 시프트는 자리 이동을 의미한다. * 올림수가 있을 경우의 시프트는 시프트한 결과 밀려나가는 비트 는 잃어버리게 되며, 새로 들어오는 비트는 항상 0이다. 6장 연산장치

28 6.4 기타 연산 장치(9) * 논리적 스프트 연산 올림수 레지스터 올림수 레지스터 (b) 올림수 포함 좌측 시트프
X X X X 1 (a) 올림수 포함 우측 시프트 (b) 올림수 포함 좌측 시트프 올림수 레지스터 올림수 레지스터 X X X X (c) 우측 시프트 (d) 좌측 시트프 6장 연산장치

29 6.4 기타 연산 장치(10) 로테이트 연산 * 로테이트 연산은 시프트와 유사한 연산으로 한쪽 끝에서 밀려나가는 비트가 다시 반대편 끝으로 들어오게 되는 것으로 회전을 의미. * 데이터의 특정한 비트의 검색이나 비수치적 데이터에서 문자의 위치를 교환하는데 사용. 올림수 레지스터 올림수 레지스터 X X X 1 X (a) 올림수 포함 우측 로테이트 (b) 올림수 포함 좌측 로테이트 올림수 레지스터 올림수 레지스터 X X X X (c) 우측 로테이트 (d) 좌측 로테이트 6장 연산장치

30 6.4 기타 연산 장치(11) 이항 논리 연산 논리 곱(AND) 연산
* 지우고 싶은 특정한 비트나 문자를 삭제하여 0으로 만들 때 사용되는 연산. * 마스크(mask) : 어느 비트 혹은 어느 문자를 지울 것인가를 결정하는 내용. 6장 연산장치

31 6.4 기타 연산 장치(12) 논리 합(OR) 연산 * 논리 합 연산은 필요한 비트나 문자를 삽입할 때 사용. 6장 연산장치

32 6.4 기타 연산 장치(13) 논리 비교 연산 : 그림 6-26 배타적 논리 합(XOR) 연산
* 2개의 입력이 비교되어서 출력에 나타나는 연산으로 크고(>), 작음(<)과 같음(=)을 판단하여 여러 조건 flag에 결과를 기억시킴. 배타적 논리 합(XOR) 연산 * 배타적 논리합 연산은 2개의 입력이 XOR 연산을 해서 결과를 출력에 나타내는 연산 6장 연산장치


Download ppt "6장 연산 장치 6.1 개요 6.2 연산장치의 구성요소 6.3 처리기 6.4 기타 연산장치."

Similar presentations


Ads by Google