Transcript 8,9장

Chapter 08
제어장치와 마이크로 오퍼레이션
제어장치의 구성
Computer Architecture
제어장치 – P254
–제어장치의 역할
주기억장치에서 기억된 명령을
하나씩 가져와서 해독하고 해당
명령이 수행되도록 제어신호를
생성해서 보냄
–제어장치의 주요 레지스터
프로그램 카운터
명령 레지스터
기억 레지스터
번지 레지스터
누산기
2/36
명령어 해독과 실행 사이클
Computer Architecture
직접 번지 형식
주기억 장치
4
가산,직접,3
6
13
1번지
3
3번지
12
명령어 인출 사이클
주기억장치에서 명령 한 개를 가져오는 사이클
연산 결과
2+6=8
5
제어 장치
6 15
14
2
MBR
가산 직접
3
OP
M6 ADD
8
가산
IR
실행 사이클
주기억장치에서 필요한 데이터를 가져와서 처리하는 사이클
11
MAR
10
1
1번지
9
직접
I
PC
명령인출
사이클
실행 사이클
+1 7
16
PC(프로그램 카운터): 시작 명령의 번지를 지정
MAR(번지 레지스터): 접근할 기억 장치의 번지를 지시
MBR(기억 레지스터): 선택된 기억 장치 번지의 내용을 저장
IR(명령 레지스터): 명령의 동작 코드 부분을 저장하고 해석
I(형식 레지스터): 명령의 번지 지정 방식을 저장하고 해석
ALU(연산회로): 산술 및 논리 연산을 수행
AC(누산기): 연산 처리 후 최종 결과를 누적시켜 저장
연산 장치
2 +ALU
6=8
17
(2)8
AC =
18
3/36
명령어 해독과 실행 사이클
Computer Architecture
간접 번지 형식
주기억 장치
4
가산,간접,3
6
10
13
19
5
제어 장치
6 15
14 20
MBR
6 ADD
가산 간접
3
M10
21 OP
8
가산
IR
1번지
3
3번지
12
6번지
18
2
11 17
명령어 인출 사이클
주기억장치에서 명령 한 개를 가져오는 사이클
연산 결과
2 + 10 = 12
간접 번지 사이클
주기억장치에서 유효주소를 가져오는 사이클
실행 사이클
주기억장치에서 필요한 데이터를 가져와서 처리하는 사이클
MAR
10 16
1
1번지
9
간접
I
PC
간접
명령인출
사이클
실행사이클
사이클
+1 7
22
PC(프로그램 카운터): 시작 명령의 번지를 지정
MAR(번지 레지스터): 접근할 기억 장치의 번지를 지시
MBR(기억 레지스터): 선택된 기억 장치 번지의 내용을 저장
IR(명령 레지스터): 명령의 동작 코드 부분을 저장하고 해석
I(형식 레지스터): 명령의 번지 지정 방식을 저장하고 해석
ALU(연산회로): 산술 및 논리 연산을 수행
AC(누산기): 연산 처리 후 최종 결과를 누적시켜 저장
연산 장치
2 + ALU
10 = 12
23
AC=(2)
AC
12
24
4/36
마이크로 오퍼레이션
Computer Architecture
마이크로 오퍼레이션(Micro operation) – P260
–1개의 명령을 구성하는 여러 단계의 단위 명령 (단위 동작)
마이크로 오퍼레이션을 위한 제어신호 처리는 제어장치가 담당
–마이크로 오퍼레이션의 표현 기호
마이크로 오퍼레이션을 표현하기 위해 정해 놓은 기호 및 사용법
조건
동시 실행
5/36
마이크로 오퍼레이션
Computer Architecture
–마이크로 오퍼레이션의 표현 기호
A 레지스터 (8비트)
A7
A6
A5
A4
A(4-6)
A3
A2
A2
P:A←B
제어 조건
A1
A0
A0
P: A←B, C←D+E
전송
동시 실행
6/36
마이크로 오퍼레이션
Computer Architecture
마이크로 오퍼레이션의 종류 – P262
–연산 형태에 따른 종류
논리 마이크로 오퍼레이션
시프트 마이크로 오퍼레이션
레지스터 전송 마이크로 오퍼레이션
산술 마이크로 오퍼레이션
7/36
논리 마이크로 오퍼레이션
Computer Architecture
논리 마이크로 오퍼레이션 – P263
선택적 비트 설정(Selective-set) 동작
–레지스터 B의 1에 대응하는 레지스터 A의 비트를 선택하여 1로 설정
하는 것으로 OR 연산을 수행한 것과 동일함
선택적 보수화(Selective-complement) 동작
–레지스터 B의 1에 대응하는 레지스터 A의 비트를 선택하여 1의 보수를
만드는 것으로 XOR 연산을 수행한 것과 동일함
8/36
논리 마이크로 오퍼레이션
Computer Architecture
선택적 지움(Selective-clear) 동작
–레지스터 B의 1에 대응하는 레지스터 A의 비트를 선택하여 0으로 지움
A ← A ∧ B’
마스크(Mask) 동작
–레지스터 B와 레지스터 A의 내용을 대응시켜서 B의 비트 1에 대한 A의
부분은 값을 통과시키고, 비트 0에 대한 부분은 0이 되도록 하는 것으로
AND 연산을 수행한 것과 동일함
9/36
논리 마이크로 오퍼레이션
Computer Architecture
삽입 동작(Insert)
–임의의 비트 묶음에서 특정 위치의 비트를 새로운 내용으로 변경
먼저 대상이 되는 레지스터의 해당 비트 부분을 MASK 동작을 통해 0으로 지운
다음, 변경 대상 비트를 Selective-Set 동작에 의해 새로운 내용으로 교체
이 동작을 위해서 대상 부분을 지울 때 교체대상 부분은 0, 그 외는 1인 마스크
동작을 수행한 다음, 그 결과에 새로운 내용 삽입을 OR를 이용하여 처리
–마스크 동작
A*0=0
–삽입 동작
A+0=A
A+1=1
10/36
논리 마이크로 오퍼레이션
Computer Architecture
비교 동작(Compare)
–레지스터 A와 레지스터 B를 비교해 두 개의 워드가 일치하면 0을 설정
하는 것으로 XOR 연산을 수행한 것과 동일함
11/36
마이크로 사이클
Computer Architecture
마이크로 사이클 시간 – P269
–마이크로 사이클 시간(micro cycle time) 또는 CPU 사이클 시간
마이크로 오퍼레이션을 수행하는데 필요한 시간
–동기식(Synchronous)
동기 고정식(Synchronous fixed)
–모든 마이크로 오퍼레이션들 중에서 수행시간이 가장 긴 것으로 정하는 방식
–수행 시간의 차이가 비슷한 경우 제어가 간단한 장점이 있음
–수행 시간의 차이가 큰 경우라면 중앙처리장치의 시간이 낭비되는 단점이 발생
동기 가변식(Synchronous variable)
–수행시간이 유사한 것끼리 모아서 그룹을 형성하고 그룹 단위로 정하는 방식
–이 방법은 마이크로 오퍼레이션들의 수행 시간 차이가 클 때 효과적임
–비동기식(Asynchronous)
모든 마이크로 오퍼레이션에 대해 서로 다른 각각의 시간을 할당하는 방식
효율은 좋으나 제어가 복잡하므로 거의 사용되지 않음
12/36
마이크로 사이클
Computer Architecture
마이크로 사이클 시간
비동기식
동기 고정식
동기 가변식
AND
10초
10초
10초
10초
OR
15초
15초
15초
15초
NOT
20초
20초
20초
20초
XOR
30초
30초
30초
30초
덧셈
100초
100초
100초
100초
뺄셈
110초
110초
110초
110초
곱셈
120초
120초
120초
120초
나눗셈
180초
180초
180초
180초
13/36
Chapter 09
제어 메모리와 메이저 상태
제어 메모리
Computer Architecture
제어 메모리(control memory) – P278
–명령 수행을 위한 일련의 제어 워드(마이크로 명령)가 저장된 메모리
–제어 워드는 마이크로 오퍼레이션 수행을 위한 비트들의 모임
–제어 메모리는 ROM, PROM, WCM(Writable Control Memory)을 이용
15/36
제어 메모리의 구현
Computer Architecture
마이크로 프로그램(Micro programmed)
중앙처리장치
제어 처리기
제어
장치
명령
데이터
제어 메모리
MBR
OP M ADD
IR
연산
장치
주 기억 장치
I
MAR
PC
ALU
ACC
16/36
제어 메모리의 구현
Computer Architecture
제어 메모리의 구현 – P278
–제어 메모리의 구현 방법은 하드 와이어드 (Hard wired) 제어 방식과
마이크로 프로그램(Micro programmed) 제어 방식이 있음
하드 와이어드(Hard wired) 제어 방식
–논리게이트와 플립플롭의 순서논리회로로 구현한 방식
메모리가 없는 제어장치 설계 방식
–장점
순서논리회로로 구성되어 빠른 연산 처리 속도를 제공
–단점
비교적 간단한 명령 세트를 가진 시스템으로 사용이 제한
하드웨어 제작시 소요 시간과 비용을 고려해야 함
대규모로 접적화하는 경우에는 비경제적임
17/36
제어 메모리의 구현
Computer Architecture
마이크로 프로그램(Micro programmed) 제어 방식
–제어 워드(제어 정보)를 기억장치에 0과 1로 저장시켜 구현한 방식
–장점
기억장치의 내용을 바꿈으로 수정이 쉽고 유지보수가 용이
변경이 쉽고 경제적이며 시스템의 설계비용을 줄일 수 있음
구조화된 제어구조를 제공
CAD(computer aided design)에 의한 설계가 가능함
–단점
하드와이어 제어 방식에 비해 상대적으로 속도가 느림
복잡한 명령어 세트를 가진 시스템에서 사용됨
18/36
제어 메모리의 구현
Computer Architecture
마이크로 프로그램(Micro programmed) 제어 방식
–마이크로 프로그램 제어 구조
다음 번지 생성기 : 하나의 마이크로 오퍼레이션이 수행될 동안 제어 메모리에
보관된 다음 수행할 마이크로 프로그램의 저장 번지를 계산
제어 번지 레지스터 (CAR) : 계산된 실행 번지의 제어 메모리를 지정
제어 메모리 (Control memory) : 주로 ROM을 사용하여 구성되며, 이것의
출력은 마이크로 오퍼레이션을 수행하고, 다음 번지의 정보를 제공
19/36
마이크로 프로그램의 동작과 기능
Computer Architecture
마이크로 프로그램 – P286
–마이크로 명령의 구성-1
Micro operation
Condition
Branch
Address
마이크로 오퍼레이션(micro operation) 필드
–수행할 동작을 나타내는 필드로 각 3비트의 서브필드 F1, F2, F3로 구성
–하나의 마이크로 명령은 3개 다른 기능을 지시할 수 있고, 이들은 7가지로 표현
CD (condition) 필드
–현재 상태 조건에 따라 분기할 수 있는 4가지 경우를 표현하는 2비트의 조건 필드
BR (branch) 필드
–분기할 형식을 나타내는 필드로 2비트로 구성
–분기는 조건에 따라 서브루틴 처리의 경우와 마이크로 명령 사상의 경우가 있음
ADF (address field)
–다음 실행 명령어의 번지를 지시
–다음의 번지는 분기 비트와 상태 비트에서 실행 형식을 지정
20/36
마이크로 프로그램 명령 형식
Computer Architecture
마이크로 프로그램 명령 형식 – P287
수평 마이크로 명령 형식
–n비트를 사용하여 n개의 마이크로 오퍼레이션을 나타낼 수 있음
–가장 간단한 방식으로 1비트가 하나의 마이크로 오퍼레이션을 관할
–여러 개의 하드웨어 요소를 동시에 제어가 가능해 수행 속도가 빠름
–제어워드 길이가 길어지기 때문에 제어메모리 비용이 커지는 것이 단점
–하드웨어를 효율적으로 사용할 수 있다는 것이 장점
다중 워드 형식
–비슷한 계통의 명령 그룹을 묶어서 그룹별 제어워드 형식을 할당
–제어 워드의 길이가 감소되는 만큼 수행 속도는 느려짐
+ -
x
수평
/
G +
* /
다중워드
21/36
x
x
수직
마이크로 프로그램 명령 형식
Computer Architecture
수직 마이크로 명령 형식
–n 비트를 사용하여 2n개의 마이크로 오퍼레이션을 나타낼 수 있음
–제어워드의 길이를 줄이기 위해 디코딩 회로를 필요로 하는 형식
–적은 비트 수로 많은 마이크로 오퍼레이션의 표현이 가능
–제어 신호 출력을 위한 디코더 사용으로 지연 시간 발생이 단점
수평마이크로 명령형식
수직마이크로 명령형식
x
x
x
x
x
x
+
0
0
1
1
0
1
0
1
*
0
0
0
1
/
0
0
0
0
0
0
1
1
0
1
0
1
none
+
+, -, *
2X4
디코더
22/36
+
*
/
메이저 상태
Computer Architecture
메이저 상태 – P290
–컴퓨터 프로세서의 명령 처리 과정의 주요 상태
–메이저 상태(major state)
CPU(중앙처리장치)가 주 기억 장치에 접근하여 무엇을 처리하는지를 표시
4개의 인출 사이클, 실행 사이클, 간접 사이클, 인터럽트 사이클이 있음
–타이밍 상태(timing state)
각 메이저 상태의 단위 동작 수행을 위한 타이밍 펄스 기준의 동작 상태
4개의 메이저 상태 내의 각 타이밍 상태에서 일련의 단위 동작을 수행
23/36
명령어 해독과 실행 사이클
Computer Architecture
직접 번지 형식
주기억 장치
메이저 상태
가산,직접,3
6
1번지
* 인출 상태
3번지
t0 : MAR  PC
t1 : MBR  M , PC  PC+1
t2: IR  MBR(OP) , I  MBR(I)
제어 장치
MBR
가산 직접
3
OP
M6 ADD
MAR
* 실행 상태
t0 : MAR  MBR(AD)
t1 : MBR  M
t2 : AC  AC 연산자 MBR
1번지
가산
IR
직접
I
PC
+1
연산 장치
2 +ALU
6=8
2
AC = 8
24/36
타이밍 상태
메이저 상태
Computer Architecture
메이저 상태
–메이저 상태의 변환
프로그램 진행은 명령어를 인출하고
해석해서 처리하는 과정을 반복
–명령어 인출 사이클
–간접 번지 사이클
–실행 사이클
–인터럽트 사이클
명령어 인출
실행
간접
인터럽트
* 인터럽트란 프로그램 실행 중 예기치 않은 상황 발생시 이를 처리하는 과정
25/36
메이저 상태
Computer Architecture
명령어 인출 상태 – P293
–메모리에서 명령을 읽어서 CPU로 가져와 해독하는 상태
t0:
t1:
t2:
t3:
MARPC (명령의 번지 전송)
MBRM, PCPC+1 (명령어를 읽고, PC를 하나 증가)
IRMBR(OP), IMBR(I) (op code와 Mode 비트 전송)
R1, F1 (R=1이면 간접 상태로 전이, F=1이면 실행 상태로 전이)
실행 상태(execution state) – P294
–유효 번지를 이용해서 오퍼랜드를 가져와 명령을 실행하는 상태
t0:
t1:
t2:
t3:
MARMBR(AD) (연산자의 번지 전송)
MBRM (연산자를 가져옴)
ACAC (해당 오퍼레이션 연산) MBR
F0, R0 (인출 상태로 전이)
26/36
메이저 상태
Computer Architecture
간접 상태(Indirect state) – P294
–번지부에 표현된 내용이 간접 번지인 경우, 인출 상태에서 간접 상태로
이동하여 유효 번지를 얻기 위해 기억장치를 다시 액세스하는 상태
t0: MARMBR(AD) (명령의 번지 부분 전송)
t1: MBRM (오퍼랜드의 번지에 있는 데이터를 MBR에 저장)
t2: F1, R0 (실행 상태로 전이)
27/36
메이저 상태
Computer Architecture
인터럽트 상태(interrupt state) – P294
–정상적인 명령 실행을 계속할 수 없을 때 (정전, 고장, 입출력 요구 등)
응급 처리 후 다시 재실행되도록 현재의 CPU 정보를 보관하는 상태
t0:
t1:
t2:
t3:
MBR(AD)PC, PC0 (복귀 번지를 전송하고, PC를 0으로 초기화)
MARPC, PCPC+1 (인터럽트 서비스처리 루틴의 시작 번지를 지정)
MMBR, IEN0 (복귀 정보를 보관하고, 인터럽트 서비스 루틴을 시작)
F0, R0 (인출 상태로 전이)
28/36
명령어 실행 사이클
Computer Architecture
명령어 실행 사이클 – P296
–인출한 명령을 제어 신호 지시에 의해 실행하는 사이클
–명령어 실행은 각 명령어의 특성 때문에 일정하지 않음
–아래의 표에 주요 명령어들의 실행 마이크로 오퍼레이션을 요약
29/36
명령어 실행 사이클
Computer Architecture
덧셈(ADD)
–덧셈을 위한 마이크로 오퍼레이션
기억 레지스터의 번지부를 번지 레지스터에 옮기고 가수를 가져옴
누산기에 기억된 피가수와 기억 레지스터 가수와의 덧셈을 수행
덧셈후 결과는 누산기 AC에, 끝자리 올림은 E에 각각 기억시킴
뺄셈(SUB)
–뺄셈은 MBR의 가수를 2의 보수를 취하여 AC에 더해서 계산
30/36
명령어 실행 사이클
Computer Architecture
덧셈(ADD)




중앙처리장치
주기억장치
MAR
MAR
AD
AD

ALU
op code
M(MAR)
MBR AD
MBR


AC
31/36

M(MAR)
명령어 실행 사이클
Computer Architecture
논리곱(AND)
–누산기에 기억된 값에 MBR의 내용을 논리곱으로 논리 연산
로드(LDA)
–주기억장치의 내용을 누산기로 가져오는 동작
AC
 MBR
32/36
명령어 실행 사이클
Computer Architecture
스토어(STA)
–누산기의 내용을 주기억장치에 기억시키는 것
무조건 분기(Branch UNconditionally)
–무조건 분기는 번지부에 표현된 곳으로 실행 순서를 이동시키는 것이며
이것은 PC에 저장된 값을 변경하여 특정 번지로 분기하도록 함
JUMP
33/36
명령어 실행 사이클
Computer Architecture
서브루틴 분기(Branch and Save return Address)
–서브루틴 호출 시, CALL 명령은 RETURN 명령에 의해서 되돌아올 수
있도록 복귀번지를 저장시킨 후에 분기해야 함
–CALL 명령에서 호출한 서브루틴 번지가 254번지라면 복귀번지는 서브
루틴의 시작번지인 254번지에 기억됨
–실제 명령은 255번지부터 인출하여 실행되도록 해야 함
Call 준비
복귀주소 저장
복귀주소 대피
서브루틴 시작
34/36
Call
명령어 실행 사이클
Computer Architecture
분기(Branch and Save return Address)
분기 
Branch
복귀주소 대피 
복귀주소 저장 
Call

Save Return Address
서브루틴 시작 
Subroutine Start
중앙처리장치
PC

254
100
255
PC


주기억장치
CALL 254
복귀시점
MAR
254
MAR

ALU
CALL
100+1
MBR
MBR
254
MBR
AC
35/36

100+1
서브루틴
:
100번지
101번지
254번지
255번지
명령어 실행 사이클
Computer Architecture
ISZ (Increment and Skip if Zero)
–유효 번지를 전송하고, 메모리 워드를 읽은 다음, 워드 내용에 1을 증가
시켜서 증가된 워드를 저장장치에 보관한 뒤 이 내용이 0이면 스킵하고
그렇지 않으면 다음 명령을 실행
36/36