제1절 명령 실행과 제어
제1항 마이크로 오퍼레이션
(1) 마이크로 오퍼레이션과 제어장치의 관계
1) 제어장치는 CPU의 마이크로 오퍼레이션을 순차적으로 수행하는데 필요한 신호를 생성하는 장치이다즉 제어장치는 레지스터 상호간에 데이터를 전송한다거나 ALU에서 임의의 지정된 연산을 수행시킨다거나 혹은 기억장치와 입출력 장치와의 데이터 전송에 필요한 제어신호를 발생시킨다제어장치의 기능은 다음과 같다.
① 명령어의 해독
② 명령어 실행에 필요한 제어 신호의 발생
 

 
(2) 마이크로 명령어
1) 프로그램은 일련의 명령어의 집합으로 구성된다.
2) 하나의 명령어는 Fetch, Indirect, Execute, Interrupt cycle 등의 부-사이클로 구성된다
3) 명령어의 각 부사이클은 마이크로 오퍼레이션의 동작을 제어하는 마이크로 명령어(micro instruction)로 이루어져 있다.

 
(3) 마이크로 오퍼레이션 (micro operation: 마이크로 동작)
1) 마이크로 오퍼레이션이란 레지스터 혹은 메모리에 저장된 정보에 작용되는 기본 동작이다. CPU의 각 명령어를 실행하기 위해서는 일련의 마이크로 오퍼레이션이 필요하며각 마이크로 오퍼레이션은 한 클럭펄스 동안 수행된다
2) 마이크로 오퍼레이션의 종류
① 전송 마이크로 오퍼레이션
• 레지스터 전송 : R2  R1

• 메모리 전송 : MDR  M[MAR] or M[MAR]  MDR

 
② 산술 마이크로 오퍼레이션
• R0 ← R1 + R2
 
③ 논리 마이크로 오퍼레이션
• R0 ← R1 ^ R2
 
④ 시프트 마이크로 오퍼레이션
• R0  shl R1 or R0 ← shr R1
 

마이크로로 오퍼레이션에 대한 설명 중 옳지 않은 것은?
 
.마이크로로 오퍼레이션은 CPU 내의 레지스터들과 연산 장치에 의해서 이루어진다.
프로그램에 의한 명령의 수행은 마이크로 오퍼레이션의 수행으로 이루어진다.
마이크로 오퍼레이션 중에 CPU 내부의 연산 레지스터인덱스 레지스터는 프로그램으로 레지스터의 내용을 변경할 수 없다.
마이크로로 오퍼레이션은 실행될 때마다 CPU 내부의 상태는 변하게 된다.

다음음 중 마이크로 오퍼레이션은 어디에 기준을 두고서 실행되나?
 
Flag
Clock
Memory
RAM

중앙연산 처리장치에서 micro-operation이 순서적으로 일어나게 하려면 무엇이 필요한가?
 
스위치 (switch)
레지스터 (register)
누산기 (accumulator)
제어신호 (control signal)

명령을 수행하기 위해 CPU내의 레지스터와 플래그의 상태 변환을 일으키는 작업을 무엇이라 하는가?
 
fetch
program operation
micro operation
count operation

 
제2항 명령어 사이클

(1) CPU에서 한 개의 명령어를 실행하는데 필요한 처리과정을 명령어 사이클 (instruction cycle)이라고 한다명령어 사이클은 다음 4단계의 부사이클로 이루어진다.
1) 페치 사이클
2) 간접 사이클
3) 실행 사이클
4) 인터럽트 사이클
(2) 명령어 사이클을 상기 4단계의 부사이클로 구분할 때는 이들 상태를 나타내기 위해 일반적으로 F와 플립플롭의 두 비트를 사용한다.

F
R
부 사이클
0
0
Fetch cycle
0
1
Indirect cycle
1
0
Execute cycle
1
1
Interrupt cycle

 
(3) Micro cycle time : 한 개의 Micro operation을 수행에 필요한 시간
 
제3항 Micro cycle time 부여방식
(1) 동기 고정식 (Synchronous fixed)
1) 모든 Micro operation의 동작시간이 같다고 가정하여 CPU clock의 주기를 Micro cycle time과 같도록 정의한 방식이다.
2) 모든 Micro operation 중에서 동작시간이 가장 긴 Micro operation의 동작시간을 Micro cycle time으로 정한다.
3) 동기고정식은 모든 Micro operation의 동작시간이 비슷할 때 유리한 방식이다.
4) 장점제어기의 구현이 단순하다.
5) 단점: CPU의 시간 낭비가 심하다.
 
(2) 동기 가변식 (Synchronous variable)
1) 수행시간이 유사한 Micro operation끼리 그룹을 만들어각 그룹별로 서로 다른 Micro cycle time을 정의하는 방식이다.
2) Micro operation 수행시간이 현저한 차이를 나타낼 때 사용한다.
3) 동기 고정식에 비해 CPU 시간 낭비를 줄일 수 있지만제어기 구현이 복잡하다.
 
(3) 비동기식 (Asynchronous)
1) 모든 Micro operation에 대하여 서로 다른 Micro cycle time을 정의하는 방식이다.
2) CPU 시간 낭비가 없으니제어기 구현이 매우 복잡하기 때문에 거의 사용되지 않는다.
 

다음 마이크로 사이클에 대한 내용 중 가장 관계가 적은 것은?
 
마이크로 오퍼레이션 수행에 필요한 시간을 마이크로 사이클 타임이라 한다.
마이크로 오퍼레이션 중에서 수행 시간이 가장 긴 것을 정의한 방식이 동기 고정식이다.
마이크로 오퍼레이션에 따라서 수행시간을 다르게 하는 것을 동기 가변식이라 한다.
마이크로 오퍼레이션 중에서 수행시간의 차이가 큰 것을 약 30개로 구분해서 사용한다.

동기 가변식(Synchronous variable) 동작에 대한 설명 중 옳지 않은 것은?
 
각각 마이크로 오퍼레이션의 사이클 타임이 현저한 차이가 나타날 때 사용한다.
모든 마이크로 오퍼레이션의 수행 시간이 유사한 경우에 사용된다.
중앙처리장치의 시간을 효율적으로 이용할 수 있다.
마이크로 오퍼레이션에 대하여 서로 다른 사이클을 정의할 수 있다.
F
R
부 사이클
0
0
Fetch cycle
0
1
Indirect cycle
1
0
Execute cycle
1
1
Interrupt cycle

 
 
(1) 인출 단계 (Fetch Cycle)

 

T1
MAR ← PC
PC에 있는 번지를 MAR에 전송
T2
MBR  M[MAR], PC  PC+1
ü  메모리에서 MAR이 지정하는 위치의 값을 MBR로 전송
ü  다음에 실행할 명령의 위치를 지정하기 위해 PC의 값을 증가시킴
T3
IR  MBR[OP], I ← MBR[I]
ü  명령어의 OPERATION 부분을 명령 레지스터에 전송
ü  명령어의 모드 비트를 플립플롭 I에 전송
T4
 1 or R  1
ü  F(0), R(1)  indirect or F(1), R(0)  execute

 
1) 주기억장치의 지정 장소로부터 명령을 읽어서 중앙처리장치에 가지고 오는 단계
2) 명령의 오퍼레이션(Operation)부를 명령 레지스터(Instruction Register)에 세트시켜 해독시킴
 
(2) 간접 단계 (Indirect Cycle)
1) 인스트럭션의 수행 시 유효 주소를 구하기 위한 상태를 말한다.
2) Fetch 단계에서 해석된 명령의 주소부가 간접주소인 경우 수행된다.
 

T1
MAR  MBR[AD]
MBR에 명령어의 번지부분을 MAR에 전송
T2
MBR ← M[MAR]
MAR이 지정하는 위치의 값을 MBR로 전송
T3
No Operation
동작 없음.
T4
 1 or R ← 0
F(1), R(0)  execute

 
 
(3) 실행 단계 (Execute Cycle)
* ADD, AND 명령어

T1
MAR  MBR[AD]
MBR에 번지부분을 MAR에 전송
T2
MBR ← M[MAR]
MAR이 지정하는 위치의 값을 MBR로 전송
T3
AC  AC + MBR (ADD 명령)
AC  AC AND MBR (AND 명령)
 
T4
← 0 or R ← 1
F(1), R(1)  interrupt or F(0), R(0)  fetch

 
* LDA (Load accumulator) 명령

T1
MAR  MBR[AD]
MBR에 번지부분을 MAR에 전송
T2
MBR ← M[MAR], AC  0
피연산자를 읽음누산기를 클리어 함
T3
AC  AC + MBR 
누산기와 덧셈 연산함
T4
← 0 or R ← 1
F(1), R(1)  interrupt or F(0), R(0)  fetch

 
* STA (Store accumulator) 명령

T1
MAR  MBR[AD]
MBR에 번지부분을 MAR에 전송
T2
MBR ← AC
피연산자를 읽음누산기를 클리어 함
T3
M[MAR]  MBR 
누산기와 덧셈 연산함
T4
← 0 or R ← 1
F(1), R(1)  interrupt or F(0), R(0)  fetch

 
1) 실제로 명령을 실행하는 단계
2) Execute 단계에서는 Interrupt 요청 신호를 나타내는 플래그 레지스터의 상태변화를 검사하여 Interrupt 상태로 진입할지 아니면 Fetch 단계로 진입할지를 판단한다.
 
(4) 인터럽트 단계 (Interrupt Cycle)
1) 인터럽트는 프로그램 실행 중에 돌발적인 사태에 의해 수행중인 정상적인 처리를 중단하고 요구된 인터럽트를 위한 서비스 프로그램을 수행한다.
2) 복귀 주소를 저장하고제어 순서를 인터럽트 처리 프로그램의 첫 명령으로 옮기는 단계이다.
3) 인터럽트 단계를 마친 후에는 Fetch로 진입한다.

T1
MBR[AD] ← PC, PC  0
ü  PC가 가지고 있는 주소를 MBR의 주소 부분으로 전송
ü  복귀 주소를 저장할 0번지를 PC에 전송
T2
MAR  PC, PC  PC+1
ü  PC가 가지고 있는 값 0번지를 MAR로 전송
ü  인터럽트 처리 루틴으로 이동할 수 있는 인터럽트 벡터의 위치를 지정하기 위해 PC의 값을 증가시킴
T3
M[MAR]  MBR, IEN  0
ü  MBR에 있는 주소를 메모리의 MAR이 가르키는 위치에 저장
ü  인터럽트 단계가 끝날 때까지 다른 인터럽트가 방생하지 않게 IEN에 0을 전송
T4
← 0, R ← 0
ü  F플립플롭에 0을 전송 또는 R플립플롭에 0을 전송
ü  F에 0을 전송하면 F=0, R=0이 되어 Fetch cycle로 천이

 


 

CPU의 명령어 사이클 (instruction cycle) 4단계에 해당되지 않는 것은?
 
Fetch cycle
Control cycle
Indirect cycle
Interrupt cycle

CPU가 인스트럭션을 수행하는 순서는?
 
1. 인터럽트 조사 2. 인스트럭션 디코딩 3. 인스트럭션 fetch 4. Operand fetch 5. execution
 
3-1-2-4-5
3-2-4-5-1
2-3-4-5-1
4-3-2-5-1

명령(instruction)이 실행되기 위해 가장 우선적으로 처리되어야 하는 마이크로 오퍼레이션은?
 
PC  MAR
PC  MBR
PC  CPU
PC  M

기억장치에서 instruction을 읽어서 CPU로 가져오는 상태를 무엇이라 하는가?
 
interrupt 상태
indirect 상태
execute 상태
fetch 상태

다음의 마이크로 오퍼레이션 (micro-operation)은 무엇을 수행하는 것인가?
 
MAR  MBR(AD)
MBR  M, ACC  0
ACC  ACC + MBR
 
store ACC
load to ACC
AND to ACC
ADD to ACC

다음과 같은 마이크로 오퍼레이션이 일어나는 상태는?
 
MBR(AD)  PC, PC  0
MAR ← PC, PC ← PC+1
 MBR, IEN  0
 0, R  0
 
fetch
indirect
interrupt
execute

Interrupt cycle에 대한 micro-operation 중에서 관계가 없는 것은?
(, MAR: Memory Address Register, PC: Program Counter, M: Memory, MBR: Memory Buffer Register, IEN: Interrupt Enable 이며, Interrupt Handler 0번지에 저장되어 있다.)
 
MAR  PC, PC  PC +1
MBR  MAR, PC  0
 MBR, IEN  0
GO TO fetch cycle
 

 


'정보처리기사 > 전자계산기구조' 카테고리의 다른 글

07. 기억장치  (0) 2017.08.02
05. 프로세서 - 명령어  (0) 2017.08.02
04. 프로세서 - 중앙처리장치 구성요소  (0) 2017.08.02
03. 순서논리회로  (0) 2017.08.02
02. 조합논리회로  (0) 2017.08.02

+ Recent posts