서버

마이크로 오퍼레이션 (Micro Operation) LOAD 마이크로 동작

스토리훈 2020. 8. 7. 08:11

 

마이크로 오퍼레이션이란 하나의 명령을 처리하기 위해 짧은시간에 처리되는 명령이다

 

레지스터에 저장된 데이터에 의해 이루어지며 클록펄스에 기준을 두고 실행됨

 

명령어가 실행되는 과정을 크게 인출단계, 간접단계, 실행단계, 인터럽트 단계로 나눌수 있다.

 

각 단계에서 실행되는 마이크로 오퍼레이션에 대해 알아보자

 

 

1. 인출 단계 (Fetch Cycle)

 - 주기억 장치에서 명령을 불러오는 단계

 

 - MAR <- PC 

  : 하나의 마이크로 오퍼레이션이 실행될때 가장 먼저 실행되는 명령

 

 - MBR <- M[MAR]

  : 메모리 주소 레지스터 값을 읽어 메모리 버퍼 레지스터로 전송하여 프로그램 카운터 값을 1 증가 시킴

 

 - IR <- MBR, I <- MBR[I]

  : 메모리 버퍼 레지스터 값을 명령어 레지스터로 전송

 

 

2. 간접 단계 (Indirect Cycle)

 - 인트스럭션 수행 시 유효 주소를 구하기 위한 메이저 상태로 Fet단계에서 해적된 명령이 간접주소인 경우 수행

 - 간접 단계 동안 기억장치로부터 데이터의 번지를 인출

 

 

3. 실행 단계 (Execute Cycle)

 - 실제로 명령을 수행하는 단계

 

 - AND : AC <- AC + MBR

 

 - LDA(Load to C) : AC <- 0

  : 주기억장치(메모리)의 내용을 AC로 가져오는 명령

 

 - STA(Store AC) :  ( M <- MBR)

  : AC의 내용을 메모리에 저장하는 명령

 

 - ISZ(Increment and Skip if Zero)  : THEN (PC<- PC+1)
  : 메모리의 값을 읽고 그 값을 1증가시킨 후 음수에서 시작한 값이 0이면 현재 명령을 건너 띄고 다음 명령으로 이동

 

4. 인터럽트 단계 (Interrupt Cycle)

 - 예기치 못한 상황에 서브루틴을 호출하여 복귀주소로 복귀

 - IEN(Interrupt Enable) <- 0

  : 현재 인터럽트를 처리중이니 다른 인터럽트를 받지 않겠다는 뜻
   PC <- 0

 

 

 

끝.