처리 장치
DESCRIPTION
처리 장치. 처리장치의 구성과 동작 원리 마이크로 연산 처리장치 구성요소들의 역할 산술논리연산장치의 구조와 연산종류 쉬프트장치의 구조와 연산종류 제어단어의 개념. 처리장치의 개요. 컴퓨터 시스템에서 인간의 신경망에 해당하는 부분 중앙처리장치 = 처리장치 + 제어장치 처리장치 : 데이터 처리 연산을 실행 제어장치 : 연산의 실행 순서를 결정 제어신호 : 다양한 데이터 처리 연산을 구동하는 2 진신호 상태신호 : 처리장치의 여러 상태를 나타내며 실행할 연산의 순서를 제어장치가 정할 때 이용 - PowerPoint PPT PresentationTRANSCRIPT
처리 장치
처리장치의 구성과 동작 원리마이크로 연산처리장치 구성요소들의 역할산술논리연산장치의 구조와 연산종류쉬프트장치의 구조와 연산종류제어단어의 개념
처리장치의 개요
• 컴퓨터 시스템에서 인간의 신경망에 해당하는 부분– 중앙처리장치 = 처리장치 + 제어장치
• 처리장치 : 데이터 처리 연산을 실행• 제어장치 : 연산의 실행 순서를 결정
– 제어신호 : 다양한 데이터 처리 연산을 구동하는 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레지스터 R
7 6 5 4 3 2 1 08bit 레지스터의 개별 비트
R16bit 레지스터의 순서
15 0 PC(H) PC(L)
16bit 레지스터의 분할
15 8 7 0
레지스터 R1 에서 R2 로의 전송
• 레지스터 전송– R2 R1
• 연산자 로 표시• R1 을 출발 레지스터 , R2 를 도착 레지스터• R1 의 내용은 불변이고 R2 만 R1 의 값을 가짐
• 레지스터 전송 표기– 클럭 펄스가 발생할 때마다 실행되지 않고 특정
제어 신호가 가해질 때만 실행– If (T1 = 1) then (R2 R1) --- 조건문 표현
• T1 은 제어장치에서 발생시키는 제어신호
– T1 : R2 R1 --- 부울식• 콜론 (:) 은 T1=1 일 때만 해당 하드웨어에서 전송이 실행
레지스터 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) 타이밍도
제어 입력신호 클럭의 천이
클럭
• 클럭– 디지털 시스템의 논리를 순차적으로 변화시키는 것– 주기적이고 안정한 구형파이어야 함
• 클럭 사이클 시간– 클럭 파형의 한 주기– 모든 논리소자들은 한 클럭 사이클보다 적은 시간 내에
상태전이를 마쳐야 함
동기 동작
• 상태의 변화– 클럭의 전이가 low 에서 high 로 또는 high 에서 low 로 될 때
발생– + 전이 (PT, Positive Transition) : low high– - 전이 (NT, Negative Transition) : high low
• 비동기 동작– 클럭과 관계없이 푸시 버튼을 누르면 즉시 동작
레지스터 전송 마이크로 연산
• 레지스터 전송문장에서 사용하는 기본 기호– M : 기억장치 단어를 표시– [ ] : 기억장치에 있는 단어의 주소를 표시
기호 의미 예
영문자 ( 숫자 ) 레지스터 AR, R2, IR
괄호 레지스터의 일부분 R2(1)
화살표 자료의 이동 R1 <- R2
쉼표 동시에 실행되는 연산을 구분 R1 <- R2,PC <- PC + 1
대괄호 메모리에서의 주소 DR <- M[AR]
산술 마이크로 연산
• 기본적인 산술 연산– 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
산술 마이크로 연산의 표시
기호 의미
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 뺌 ( 하강 카운트 )
논리 마이크로 연산
• 레지스터에 저장되어 있는 비트의 데이터를 조작하는데 유용– 비트 값을 바꾸거나 소거– 새로운 비트 값을 레지스터에 저장
• AND 마이크로 연산 ( )– 하나 이상의 비트를 0 으로 만드는데 사용 – X0 = 0, X1=X 를 이용
• 한 비트나 여러 개의 비트는 0 으로 AND 하면 클리어 됨• 11001010 01010011 R0 ( 데이터 )• 11110000 00001111 R1 ( 마스크 )• 11000000 00000011 R0 <- R0 AND R1
논리 마이크로 연산
• 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
쉬프트 마이크로연산
• 데이터의 측면이동에 사용– 데이터를 순차적으로 이동하는데 사용– 산술 , 논리 연산이나 제어 과정에서 레지스터의
내용을 변경하는데 사용• 표준 기호
– shl, shr 로 표시• 연산 결과
– 출발 레지스터에 있는 내용을 왼쪽 / 오른쪽으로 쉬프트
– 출발 레지스터의 내용은 변하지 않음• R0 <- sr R1, R0 <- sl R1• 입력 비트는 0 으로 가정하고 출력 비트는 버림
쉬프트 마이크로연산
유형 기호표시8 비트 데이터의 경우
출발지 R2 쉬프트 후 : 목적지 R1
왼쪽 쉬프트 R1 shl R2 10011110 00111100
오른쪽 쉬프트 R1 shr R2 11100101 01110010
입력 비트는 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 쉬프터 , 디코더 등에 있음
• 제어단어– 선택 신호의 묶음
내부버스
• 내부버스– CPU 내부에서 정보를 전달할 수 있는 신호의 경로를 의미하며
레지스터간의 연결 통로가 됨– 내부버스를 구성하는 방법 (pp.68)
• 멀티플렉서와 디코더를 이용– 멀티플렉서는 출발 레지스터 선택– 디코더는 도착 레지스터를 선택
• 외부버스– 시스템 버스로서 컴퓨터 시스템의 각 구성 요소간의 통신이
가능하도록 하는 기능
레지스터 세트 ALU
입력버스
출력버스
산술 / 논리 연산장치 (ALU)
• 본적인 산술연산과 논리연산을 실행하는 조합논리회로(pp.69)– 선택 입력선
• K 개의 선택 입력으로 2k 에 해당하는 연산 표시– 데이터 입력선
• A 와 B 에서 n 개의 데이터가 입력– 데이터 출력
• G 의 출력으로 n 개의 데이터가 출력– 방식 선택입력
• S2 : 산술 연산과 논리 연산을 구분하는데 이용– 연산 선택입력
• S0, S1 : 실행할 산술연산 혹은 논리 연산을 지정– 입출력 캐리
• 산술 연산을 수행할 때만 의미를 가짐
N 비트 ALU 블럭도
데이터 입력 A
데이터 입력 B
캐리 입력
연산 선택
방식 선택
……
… 데이터 출력 G
출력 캐리
n 비트
산술 / 논리연산장치
(ALU)
A0
A1
An-1
B0
B1
Bn-1
G0
G1
Gn-1
Cin Cout
S0
S1
S2
산술연산회로
• 가장 기본적인 요소는 여러 개의 병렬 가산기– 여러 개의 전가산기를 연속적으로 연결하여 만듬– 병렬 가산기로 들어가는 제어 입력값을 선택하여
여러 형태의 산술 연산을 실행
• 2 개의 입력 (A,B) 과 출력 (G) 가 n 비트로 구성– G = X + Y + Cin
• X : 입력으로부터 오는 n 비트의 값• Y : 입력논리회로 B로부터 오는 n 비트의 값• Cin : 입력 캐리로 0Eh 는 1 을 가짐• + : 산술가산
– Cout 출력 : 전가산기의 최상위 비트에서 구해짐
산술연산회로의 블럭도
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 : 선택 신호
입력출력
선택신호
입력 캐리
출력 캐리
산술연산에 대한 연산표
• 병렬 가산기의 출력값– 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 값을 제어함에 따라 얻어질 수 있는 여러 산술 연산
선택신호 입력값 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( 전송 )
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
논리연산회로
• 레지스터에 있는 각 비트를 독립된 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) 함수표
산술 / 논리연산장치
• 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
쉬프터
• 쉬프트 연산– ALU 에는 비트 단위로 이동시키는 쉬프트 기능이
없음 ALU 출력단에 쉬프터를 연결하여 수행– 좌측 쉬프트 , 우측 쉬프트
• 조합회로 쉬프터– 4개의 멀티플렉서를 이용하여 구성– 선택신호 H0, H1 은 연산 종류를 선택하기 위하여 4개의 멀티플렉서에 연결
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 을 전송
제어단어
• 선택신호– 처리장치 내에서 수행되는 마이크로 연산을 선택하는 변수– 처리장치의 버스 , ALU, 쉬프터 , 도착 레지스터 등을 제어– 제어변수로 표현
• 마이크로 연산을 제어하기 때문에
• 제어단어– 처리장치에 있는 16 개의 2 진 제어변수 (16 비트 ) 들의 집합
• A : ALU 로 입력되는 A 버스 선택 (3비트 ) - 출발레지스터• B : ALU 로 입력되는 B 버스 선택 (3비트 ) - 출발레지스터• F : ALU 마이크로 연산 선택 (4비트 ) – 12 가지 연산 중 선택• H : 쉬프터 마이크로 연산 선택 (3비트 ) – 쉬프트 유형 선택• D : 도착 레지스터 선택 (3비트 )
처리장치의 블록도
레지스터 세트(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
제어단어를 표기한 처리장치의 구조 및 내역
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 - -
감산 마이크로 연산의 예
• 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 참조 )
제어단어를 생성시키는 방법
• 제어단어를 이용하면 마이크로 연산의 수행이 가능• 제어 단어를 생성시키는 효과적인 방법
– 제어단어를 기억장치에 저장– 기억장치의 출력을 처리장치의 각 구성요소의 선택신호로
연결 기억장치로부터 연속적인 제어단어를 읽음으로써
처리장치에서의 마이크로 연산이 정해진 순서대로 , 연속적으로 수행됨
• 마이크로 프로그램에 의한 제어– 처리장치의 제어를 위해 제어장치가 따로 구성된 형태의
제어구조