본문 바로가기
서버

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

by 스토리훈 2020. 8. 7.

 

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

 

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

 

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

 

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

 

 

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

 

 

 

끝.

 

 

댓글