명령어 인출 사이클(fetch cycle)의 마이크로 연산 과정에서 필요한 레지스터들을 정리해보자. 우선 기억장치 주소 레지스터(MAR: Memory Address Register)는 주소 데이터를 전달하는 주소 버스와 접속하여 읽거나 쓰는 데 사용되는 주소를 임시로 저장한다. 기억장치 버퍼 레지스터(MBR: Memory Buffer Register)는 데이터를 전송하는 데이터 버스와 접속되며, 읽기 또는 쓰기 동작을 수행할 데이터를 임시로 저장한다. 인출 과정에서는 다음에 인출될 명령어의 주소를 가지고 있는 프로그램 카운터(PC: Program Counter)와 인출된 명령을 임시로 저장하는 명령어 레지스터(IR: Instruction Register)를 이용한다. 인출 과정을 마이크로 연산으로 표현하면 다음과 같다.

[ 표 14-2 ]

첫 번째 클록 t0에서는 다음 명령어의 주소가 저장된 PC 내용을 MAR로 이동시킨다. 두 번째 클록 t1에서는 MAR에 저장된 주소에 근거하여, 해당 기억장치에 저장되어 있는 명령어를 MBR로 이동시키낟. 이와 동시에 PC를 명령어 바이트 수만큼 증가시켜서 다음 명령어의 주소를 표시해준다. 마지막으로 MBR에 저장된 명령어 내용을 실행하기 위해서 IR로 이동하고 명령어 인출 단계를 완료한다. 그런데 인출 사이클에서 PC의 증가 단계는 세 번째 클록에서 수행될 수도 있다. 다음의 마이크로 연산은 다음 명령어의 주소를 저장하기 위해서 PC가 증가하는 과정이 마지막 클록에 포함되어 있다.

[ 표 14-3 ]

인출 사이클은 세 개의 클록으로 수행되어, 명령이 최종적으로 명령어 레지스터에 저장된다.

마이크로 연산은 클록에 따라서 적절한 순서로 수행되어야만 올바른 동작을 수행할 수 있다. 즉, 첫 번째 클록의 'MAR←PC' 가 두 번째 클록의 'MBR←M(MAR)'보다 선행되어야 한다. 다음 명령어의 주소가 먼저 정해져야 기억장치에 접근할 수 있기 떄문에 이런 순서가 꼭 유지되어야 한다. 다음으로 동일한 레지스터를 동시에 읽거나 쓰는 과정이 없어야 한다. 즉, 충돌이 발생하는 것을 막아야 한다. 두 번째 클록의 'MBR←M(MAR)'과 세 번쨰 클록의 'IR←MBR'은 같은 주기에 수행되지 않아야 한다. 이 경우 동일 클록에서 수행된다면 MBR의 읽고 쓰기가 동시에 이루어지므로 MBR이 정확하게 명령어 레지스터를 전달할 수 없다. 다음으로 'PC←PC+1'의 마이크로 연산은 덧셈 연산을 포함하고 있다. 따라서 산술논리연산장치를 사용해서 덧셈을 수행하는 추가적인 마이크로 연산이 포함되어야 한다. 인출 사이클에서 프로그램 카운터를 증가하는 덧셈의 마이크로 연산이 수행되는 동안에 다른 마이크로 연산( 'MBR←M(MAR)' 또는 'IR←MBR' )이 동시에 수행되기 때문에 자원 충돌이나 순서를 잘 고려해야 할 것이다.