Backend/OS★

주 상태(Major State)

petitCoding 2011. 5. 26. 11:24




주 상태(Major State)


: 현재 CPU가 무엇을 하고 있는가를 나타내는 상태로 Fetch Cycle, Indirect Cycle, Excute Cycle, Interrupt Cycle등이 있으며 이를 제어하기 위해서 제어 장치가 필요하다. 제어 장치는 세 개의 사이클을 구분하기 위해서 2개의 플립플롭(F, R)을 사용한다. 

1) 인출 사이클(Fetch Cycle)
메모리로부터 실행하기 위한 다음 명령의 번지를 결정한 후 메모리로부터 명령을 CPU로 읽어들인다. 수행하기 위한 동작과 사용되는 번지의 유형을 결정하기 위해 명령어들을 디코딩해서 분석하는 과정을 말한다. 
MAR <-  PC  :  다음에 실행될 명령을 주소 레지스터로 이동한다.
MBR <- M(MAR)  :  메모리로부터 명령을 읽어들인다.
PC <- PC+1  :  프로그램 카운터를 증가한다.
IR <- MBR  :  간접 사이클에 대비한다.
R <- 1 OR F <- 1 : R이 1이면 간접 사이클로 전이, F = 1이면 실행사이클로 전이한다.

2) 간접 사이클 (Indirect Cycle)
인출 사이클로 읽어들인 명령어가 간접 주소 방식의 명령어일 경우 메모리로부터 유효 번지를 읽어오는 과정이다.
MAR <- MBR(AD) : 명령어의 주소 부분을 MAR로 이동한다.
MBR <- M(MAR) : 오퍼랜드의 주소를 읽는다.
NOP  :  No Operation
R<- 0 AND F <-1 : 실행 사이클로 전이한다. 

3) 인터럽트 사이클(Interrupt Cycle)
CPU의 일반적인 처리 과정중 프로그램이나 타이머, I/O장치나 하드웨어적인 결함으로 인해 인터럽트가 발생한다. 이런 예기치 않는 오류 발생에 대처하고 CPU의 처리 효율을 향상시키기 위해 인터럽트 핸들러 루틴을 가진다. 인터럽트가 발생하면 CPU는 현재 수행 중이던 처리 과정을 저장한 후, 인터럽트 사이클을 시작한다. 인터럽트가 발생하면 현재 수행중인 프로그램 카운터(PC)를 주기억 장치의 0번지에 기억시킨다.

4) 실행 사이클(Excute Cycle)
인출 사이클을 통해 읽어들인 번지(Operand)를 이용하여 명령을 실행하는 과정을 말한다. 직접 명령어를 실행하는 단계로 실행 사이클의 연산은 컴퓨터가 가진 연산 코드에 따라 달라진다.





'Backend > OS★' 카테고리의 다른 글

프로세스 (Process)  (0) 2011.05.26
인터럽트  (0) 2011.05.26
명령어 형식(Instruction Format)  (0) 2011.05.26
주소 지정 방식(Addressing Mode)  (0) 2011.05.26
Critical System  (0) 2011.05.23