1. fetch
먼저 프로그램카운터의 초기주소값이 결정되고 주소에 의하여 명령어가 기억장치로부터 읽혀진다. 이것을 인출이라 한다.
PC를 참조하여 실행할 명령을 기억장체치에서 읽어와 IR로 전송
디코딩
다음명령을 위하여 PC 갱신
t0 : MAR ← PC : 명령의 번지를 전송
t1 : MBR ← M(MAR), PC ← PC+1 : 명령을 읽고, PC하나 증가
t2 : OPR ← MBR(OP), I ← MBR(I) : OP코드와 mode 비트를 전송
2. indirect
인출해 온 오퍼랜드르 주소값으로 하여 기억장치로 부터 내용을 다시 읽어와야 하는데 이러한 과정을 간접사이클이라 한다.fetch사이클에서 읽어드린 명령의 모드비트가 간접주소인 경우에는 이 indirect사이클로 변이되며, 유효주소를 얻기 위하여 기억장치에 접근한다.
t0 : MAR ← MBR(AD) : 명령의 번지를 전송
t1 : MBR ← M(MAR) : 명령을 읽고, PC하나 증가
3. execute
AND (q0)
ADD (q1) : AC와 MBR의 가산결과가 AC 에 저장되고 캐르는 E에 저장
t0 : MAR ← MBR(AD)
t1 : MBR ← M[MAR]
t2 : AC ← AC+MBR
LDA (q3)
STA (q4)
BUN (q5) :Branch unconditionally : 프로그램흐름을 지정된 유효번지로 옮기는 명령 (goto, 서브루틴 return)
t0 : PC← MBR(AD)
BSA (q6) : Branch and Save return address : 서브루틴 프로그램으로 분기하기위해 사용되는 명령 (서브루틴 call)
t0 : MAR ← MBR(AD), MBR(AD) ← PC, PC ← MBR(AD)
t1 : M ← MBR
t2 : PC ← PC+1
ISZ (q7)
4. interrupt
명령의 실행 도중에 입출력 장치나 그 밖의 동작에 의하여 인터럽트가 발생되면 해당 서비스를 하게 되는 데 이것을 인터럽트 사이클이라 한다. 즉, 명령 실행 과정을 계속 할 수 없는경우에 응급조치를 취한 수에 계속 실행할 수 잇도록 중앙 상태를 보관하고 외부 인터럽트를 실행하는 사이클이다.
현재 실행중인 프로그램상태(다음명령주소PC와 관련 레지스터 내용)를 기억장치에 저장하고 인터럽트를 처리하기 위한 루틴으로 분기
t0 : MBR(AD) ← PC, PC ← 0 : 복귀 번지를 전송, PC clear
t1 : MAR ← PC, PC ← PC+1 : MAR에 0을 전송, PC에 1 set
t2 : M ← MBR, IEN ← 0 : 복기 번지를 저장, 인터럽트 인에이블 clear
Go to fetch cycle!!
'Computer Science > 컴퓨터 구조' 카테고리의 다른 글
파이프라인 (0) | 2012.10.25 |
---|---|
7. 제어장치 ( micro programming ) (0) | 2012.10.23 |
5. 주소지정 방식(Adressing mode) (0) | 2012.10.15 |
4. 명령어의 형식과 CPU구조 ( 0-3주소 ) (0) | 2012.10.15 |
3. 명령어의 종류 (0) | 2012.10.13 |