ADVERTISEMENT

쉽게 배우는 마이크로프로세서 구조 [3]

중앙일보

입력

일반적으로 마이크로프로세서는 대략 다음과 같은 4단계를 거쳐 인스트럭션을 실행시킨다. (필요에 따라 4단계는 더욱 세분화될 수 있다.)

인스트럭션 펫치(IF, Instruction Fetch)
: 프로그램 카운터가 가리키는 메모리 번지의 인스트럭션을 메모리로부터 읽어서 인스트럭션 레지스터(IR, Instruction Register)에 저장한다.

인스트럭션 디코딩(ID, Instruction Decoding) 및 레지스터 펫치(Register Fetch)
: 메모리로부터 펫치해온 인스트럭션을 디코드해서 어떤 내용의 인스트럭션인지 판단하여 필요하다면 레지스터로부터 인스트럭션의 실행에 필요한 값을 읽어온다.

실행(EX, Execution)
: 디코딩된 인스트럭션을 ALU(Arithmatical and Logical Unit)을 이용하여 실행한다.

메모리/레지스터 액세스(MA, Memory Access)
: 메모리 읽기 명령의 경우 메모리 값을 읽어서 레지스터에 저장하고, 쓰기 명령의 경우에는 레지스터의 값을 메모리에 저장한다. 그리고 논리 및 산술 연산 인스트럭션에서는 ALU를 통해 계산된 값을 레지스터에 저장하고, 분기 연산에서는 주어진 조건에 따라 ALU를 통해 계산된 주소 혹은 다음 실행할 인스트럭션의 주소를 PC에 저장한다.

인스트럭션의 실행 과정을 이해하기 쉽도록 레스토랑에서 요리를 주문해서 먹는 일로 비유해보겠다. 아마 무작정 이해하려는 것 보다는 도움이 되리라 생각한다.

인스트럭션 펫치(안내) : 종업원이 손님을 받아 자리로 안내한다.

인스트럭션 디코딩(주문) : 종업원이 손님의 주문을 받는다.

실행(조리) : 손님의 주문을 받아 주방에서 음식을 조리한다.

메모리/레지스터 액세스(서빙) : 조리된 음식을 손님에게 서빙한다.

파이프라인이 적용되지 않은 CPU는 안내, 주문, 요리, 서빙 담당 종업원이 각각 1명씩 있지만 테이블이 1개 밖에 없어서 늘 1명만 일하고, 3명은 놀고 있는 레스토랑과 같은 셈이다. (이렇게 장사하다가는 금새 망한다. )

이성희
자료제공:pcBee(http://www.pcbee.co.kr)

ADVERTISEMENT
ADVERTISEMENT