440 likes | 1.21k Views
처리 장치. 처리장치의 구성과 동작 원리 마이크로 연산 처리장치 구성요소들의 역할 산술논리연산장치의 구조와 연산종류 쉬프트장치의 구조와 연산종류 제어단어의 개념. 처리장치의 개요. 컴퓨터 시스템에서 인간의 신경망에 해당하는 부분 중앙처리장치 = 처리장치 + 제어장치 처리장치 : 데이터 처리 연산을 실행 제어장치 : 연산의 실행 순서를 결정 제어신호 : 다양한 데이터 처리 연산을 구동하는 2 진신호 상태신호 : 처리장치의 여러 상태를 나타내며 실행할 연산의 순서를 제어장치가 정할 때 이용
E N D
처리 장치 처리장치의 구성과 동작 원리 마이크로 연산 처리장치 구성요소들의 역할 산술논리연산장치의 구조와 연산종류 쉬프트장치의 구조와 연산종류 제어단어의 개념
처리장치의 개요 • 컴퓨터 시스템에서 인간의 신경망에 해당하는 부분 • 중앙처리장치 = 처리장치 + 제어장치 • 처리장치: 데이터 처리 연산을 실행 • 제어장치: 연산의 실행 순서를 결정 • 제어신호 : 다양한 데이터 처리 연산을 구동하는 2진신호 • 상태신호 : 처리장치의 여러 상태를 나타내며 실행할 연산의 순서를 제어장치가 정할 때 이용 • 처리장치 • 산술/논리 연산장치와 레지스터로 구성 • ALU는 독립적으로 데이터를 처리하지 못하며 반드시 레지스터와 조합해 데이터를 처리 • 마이크로 연산 • 레지스터에 저장되어 있는 데이터에 대해 실행하는 기본 연산
CPU에서의 처리장치 중앙 처리 장치 처리 장치 레 지 스 터 세 트 산 술 / 논 리 장 치 데이터출력 제어장치 제어신호 제어입력 상태신호 제어출력 데이터입력
마이크로 연산의 정의 • 마이크로 연산의 정의 • 레지스터나 기억장치에 있는 데이터에 가해지는 기본적인 연산 • 마이크로 연산의 종류 • 레지스터 전송 마이크로연산(register transfer micro-operation) • 한 레지스터에서 다른 레지스터로 2진 데이터를 전송하는 연산 • 산술 마이크로 연산(arithmetic micro-operation) • 레지스터 내의 데이터에 대해서 실행되는 산술연산 • 논리 마이크로 연산(logic micro-operation) • 레지스터 내의 데이터에 대한 비트를 조작하는 연산 • 쉬프트 마이크로 연산(shift micro-operation): • 레지스터 내의 데이터를 쉬프트시키는 연산
기본 기호 및 개념 • 레지스터 이름 • 자신의 기능을 나타내는 대문자로 표시 • AR (Address Register), PC, R1, … • 플립플롭(Flip-Flop) • 0부터 n-1번까지 번호를 부여 • 0 : 최하위 비트(가장 오른쪽)의 위치 • 레지스터의 블록도 R 7 6 5 4 3 2 1 0 레지스터 R 8bit 레지스터의 개별 비트 15 0 15 8 7 0 R PC(H) PC(L) 16bit 레지스터의 순서 16bit 레지스터의 분할
레지스터 R1에서 R2로의 전송 • 레지스터 전송 • R2 R1 • 연산자 로 표시 • R1을 출발 레지스터, R2를 도착 레지스터 • R1의 내용은 불변이고 R2만 R1의 값을 가짐 • 레지스터 전송 표기 • 클럭 펄스가 발생할 때마다 실행되지 않고 특정 제어 신호가 가해질 때만 실행 • If (T1 = 1) then (R2 R1) --- 조건문 표현 • T1은 제어장치에서 발생시키는 제어신호 • T1 : R2 R1 --- 부울식 • 콜론(:)은 T1=1일 때만 해당 하드웨어에서 전송이 실행
여기서 전송이 일어난다 t+1 t 클럭 K 1 ( a) 블록도 ( b) 타이밍도 레지스터 R1에서 R2로의 전송 블록도 제어 입력신호 클럭의 천이 • R1의 n개(비트 수)의 출력은 R2의 입력으로 연결 • R2는 T1에 의해서 구동되는 제어입력신호를 가짐 • 클럭과 동기화된 신호로 가정 • 타이밍도 설명 • 시점 t+1에서 T1 =1이 되고 R2의 입력은 병렬로 레지스터에 적재 • T1이 t+1 클럭의 상승 천이 시점에서 0으로 리셋 • R1에서 R2로 단 한번 값의 전송이 발생 T 1 load load R1 R1 R2 R2 클럭
클럭 • 클럭 • 디지털 시스템의 논리를 순차적으로 변화시키는것 • 주기적이고 안정한 구형파이어야 함 • 클럭 사이클 시간 • 클럭 파형의 한 주기 • 모든 논리소자들은 한 클럭 사이클보다 적은 시간 내에 상태전이를 마쳐야 함
동기 동작 • 상태의 변화 • 클럭의 전이가 low에서 high로 또는 high에서 low로 될 때 발생 • + 전이(PT, Positive Transition) : low high • - 전이(NT, Negative Transition) : high low • 비동기 동작 • 클럭과 관계없이 푸시 버튼을 누르면 즉시 동작
레지스터 전송 마이크로 연산 • 레지스터 전송문장에서 사용하는 기본 기호 • M : 기억장치 단어를 표시 • [ ] : 기억장치에 있는 단어의 주소를 표시
산술 마이크로 연산 • 기본적인 산술 연산 • 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
논리 마이크로 연산 • 레지스터에 저장되어 있는 비트의 데이터를 조작하는데 유용 • 비트 값을 바꾸거나 소거 • 새로운 비트 값을 레지스터에 저장 • AND 마이크로 연산 ( ) • 하나 이상의 비트를 0으로 만드는데 사용 • X0 = 0, X1=X를 이용 • 한 비트나 여러 개의 비트는 0으로 AND하면 클리어 됨 • 1100101001010011 R0 (데이터) • 1111000000001111 R1 (마스크) • 1100000000000011 R0 <- R0 AND R1
논리 마이크로 연산 • OR 마이크로 연산(V) • 하나 이상의 비트를 1로 설정하는데 사용 • X + 1=1과 X + 0=X 이용 • 2진 값 X가 0과 OR를 취했을 때 값이 변하지 않음 • 1100101001010011 R0 (데이터) • 1111000000001111 R1 (마스크) • 1111101001011111 R0 <- RO OR R1 • XOR 마이크로 연산(+ ) • 하나 이상의 비트를 반전시키는데 사용. • 0과 XOR를 취했을 때 값이 변하지 않음 • 1100101001010011 R0 (데이터) • 1111000000001111 R1 (마스크) • 0011101001011100 R0 <- RO XOR R1
쉬프트 마이크로연산 • 데이터의 측면이동에 사용 • 데이터를 순차적으로 이동하는데 사용 • 산술, 논리 연산이나 제어 과정에서 레지스터의 내용을 변경하는데 사용 • 표준 기호 • shl, shr로 표시 • 연산 결과 • 출발 레지스터에 있는 내용을 왼쪽/오른쪽으로 쉬프트 • 출발 레지스터의 내용은 변하지 않음 • R0 <- sr R1, R0 <- sl R1 • 입력 비트는 0으로 가정하고 출력 비트는 버림
쉬프트 마이크로연산 입력 비트는 0으로 가정하고 출력 비트는 버림
처리 장치의 구성 요소 • 처리 장치의 내부 구성 (pp. 65) • 여러 개의 레지스터, ALU, 내부 버스로 구성 • ALU(Arithmetic Logic Unit) • 여러 개의 레지스터를 공용으로 사용하는 구조의 산술/논리장치 • 내부 버스 • 레지스터들간의 데이터 전송을 위한 공용선로의 집합 • ALU와 레지스터를 연결 • 하나의 마이크로 연산 실행 방법 • 지정된 출발 레지스터의 내용이 ALU의 입력으로 전달 • ALU에서 그 연산을 실행한 후 • 그 결과가 도착 레지스터로 전송
처리장치의 구성 요소 설명(1) • 멀티플렉서 (2개 사용) • 선택 신호를 이용하여 특정 Reg를 선택 • 선택된 연산은 ALU에 의해 산술/논리연산 실행 • 쉬프터(쉬프트 레지스터) • ALU에서 실행된 마이크로 연산의 결과를 선택 신호에 의해 디코더에 전달 • 디코더 • 선택 신호에 따라 도착 Reg를 결정 • 도착 Reg • 수행된 마이크로 연산의 결과가 저장
처리장치의 구성 요소 설명(2) • 상태 비트 • ALU에서의 연산 결과에 대한 정보가 저장된 것 • CPU의 제어장치가 다음 동작을 결정하는데 사용 • 캐리(C), 오버플로(V), 부호(S), 제로(Z) • 상태 레지스터(status/flag Reg.) • 상태 비트가 저장되는 특수 레지스터 • 선택 신호 • 처리장치에서 수행되는 각종 마이크로 연산을 제어하는 신호로 제어장치에서 발생 • 멀티플렉서, ALU 쉬프터, 디코더 등에 있음 • 제어단어 • 선택 신호의 묶음
입력버스 레지스터 세트 ALU 출력버스 내부버스 • 내부버스 • CPU 내부에서 정보를 전달할 수 있는 신호의 경로를 의미하며 레지스터간의 연결 통로가 됨 • 내부버스를 구성하는 방법 (pp.68) • 멀티플렉서와 디코더를 이용 • 멀티플렉서는 출발 레지스터 선택 • 디코더는 도착 레지스터를 선택 • 외부버스 • 시스템 버스로서 컴퓨터 시스템의 각 구성 요소간의 통신이 가능하도록 하는 기능
산술/논리 연산장치(ALU) • 본적인 산술연산과 논리연산을 실행하는 조합논리회로(pp.69) • 선택 입력선 • K개의 선택 입력으로 2k에 해당하는 연산 표시 • 데이터 입력선 • A와 B에서 n개의 데이터가 입력 • 데이터 출력 • G의 출력으로 n개의 데이터가 출력 • 방식 선택입력 • S2 : 산술 연산과 논리 연산을 구분하는데 이용 • 연산 선택입력 • S0, S1 : 실행할 산술연산 혹은 논리 연산을 지정 • 입출력 캐리 • 산술 연산을 수행할 때만 의미를 가짐
A0 A1 데이터 입력 A … G0 An-1 G1 데이터 출력 G B0 … n비트 산술/논리연산장치 (ALU) B1 Gn-1 데이터 입력 B … Bn-1 캐리 입력 Cin Cout 출력 캐리 S0 연산 선택 S1 방식 선택 S2 N비트 ALU 블럭도
산술연산회로 • 가장 기본적인 요소는 여러 개의 병렬 가산기 • 여러 개의 전가산기를 연속적으로 연결하여 만듬 • 병렬 가산기로 들어가는 제어 입력값을 선택하여 여러 형태의 산술 연산을 실행 • 2개의 입력(A,B)과 출력(G)가 n비트로 구성 • G = X + Y + Cin • X : 입력으로부터 오는 n비트의 값 • Y : 입력논리회로 B로부터 오는 n 비트의 값 • Cin : 입력 캐리로 0Eh는 1을 가짐 • + : 산술가산 • Cout 출력 : 전가산기의 최상위 비트에서 구해짐
Cin n X A n비트 병렬가산기 n B 입력변환 논리회로 B n n Y G=X+Y+Cin S0 S1 Cout 산술연산회로의 블럭도 입력 캐리 • G = A + B + Cin • A : 입력으로부터 오는 n비트의 값 • B : 입력논리회로 B로부터 오는 n 비트의 값 • Cin : 입력 캐리로 0 또는 1을 가짐 • + : 산술가산 • Cout 출력 : 전가산기의 최상위 비트에서 구해짐 • S0, S1 : 선택 신호 입력 출력 선택신호 출력 캐리
산술연산에 대한 연산표 • 병렬 가산기의 출력값 • 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)를 더하는 것으로 감산의 결과를 얻음
산술연산에 대한 연산표의 정리 • 2개의 선택입력 S0과 S1을 조절하여 Y값을 제어함에 따라 얻어질 수 있는 여러 산술 연산
Cin S1 C0 S0 A0 X0 B0 FA G0 Y0 C1 A1 X1 B1 FA G1 Y1 … C3 A3 X1 B3 FA G3 Y1 C4 Gout 4비트 산술연산회로 • 4개의 전가산기(병렬가산기) • 선택변수 : S0, S1, Cin로 구성
S S 0 0 S S 1 1 4 - to - 1 MUX A i 0 B S S 출 력 연 산 i 0 1 G i G = A ∧ B AND 0 0 1 G = A ∨ B OR 0 1 2 Å G = A B XOR 1 0 3 G = A NOT 1 1 (a) 논리도 (b) 함수표 논리연산회로 • 레지스터에 있는 각 비트를 독립된 2진 변수로 간주하여 비트별 연산을 실행 • AND, OR, XOR, NOT 등이 있음 • 4개의 게이트와 4X1 멀티플렉서로 구성
산술/논리연산장치 • ALU는 산술연산회로와 논리연산회로를 결합 • S2=1(논리연산) Vs S2=0(산술연산) 출력이 선택 • ALU의 한 단계 구성(pp.74)
쉬프터 • 쉬프트 연산 • ALU에는 비트 단위로 이동시키는 쉬프트 기능이 없음 ALU 출력단에 쉬프터를 연결하여 수행 • 좌측 쉬프트, 우측 쉬프트 • 조합회로 쉬프터 • 4개의 멀티플렉서를 이용하여 구성 • 선택신호 H0, H1은 연산 종류를 선택하기 위하여 4개의 멀티플렉서에 연결
직접출력 G3 G3 G3 G3 직접출력 IL IR 0 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 H1 H0 MUX MUX MUX MUX S3 S2 S1 S0 4비트 쉬프터
제어단어 • 선택신호 • 처리장치 내에서 수행되는 마이크로 연산을 선택하는 변수 • 처리장치의 버스, ALU, 쉬프터, 도착 레지스터 등을 제어 • 제어변수로 표현 • 마이크로 연산을 제어하기 때문에 • 제어단어 • 처리장치에 있는 16개의 2진 제어변수(16비트)들의 집합 • A : ALU로 입력되는 A 버스 선택(3비트) - 출발레지스터 • B : ALU로 입력되는 B 버스 선택(3비트) - 출발레지스터 • F : ALU 마이크로 연산 선택(4비트) – 12가지 연산 중 선택 • H : 쉬프터 마이크로 연산 선택(3비트) –쉬프트 유형 선택 • D : 도착 레지스터 선택(3비트)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 A B D F H 입력 데이터 레지스터 세트 (R1~R7) 클럭 4 1 B 버스 선택 A 버스 선택 B 5 2 A 7 도착 레지스터 선택 6 3 D 8 9 10 ALU 11 S Z V C 클럭 F 12 13 14 쉬프터 15 H 16 출력 데이터 처리장치의 블록도
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 A B D F H 제어단어를 표기한 처리장치의 구조 및 내역 제 어 단 어
감산 마이크로 연산의 예 • R1 R2 – R3 (pp.80) • A : ALU의 A 버스 입력으로 R2의 내용을 내보냄 • B : ALU의 B 버스 입력으로 R3의 내용을 내보냄 • D : 연산 결과를 도착 레지스터 R1으로 보냄 • F : ALU에서 감산 연산(G=A-B)을 수행 • H : 쉬프트 없음 • 기타 다른 예 (pp. 81 참조)
제어단어를 생성시키는 방법 • 제어단어를 이용하면 마이크로 연산의 수행이 가능 • 제어 단어를 생성시키는 효과적인 방법 • 제어단어를 기억장치에 저장 • 기억장치의 출력을 처리장치의 각 구성요소의 선택신호로 연결 기억장치로부터 연속적인 제어단어를 읽음으로써 처리장치에서의 마이크로 연산이 정해진 순서대로, 연속적으로 수행됨 • 마이크로 프로그램에 의한 제어 • 처리장치의 제어를 위해 제어장치가 따로 구성된 형태의 제어구조