본문 바로가기

CS/컴퓨터구조(Mano)

[컴퓨터구조] ch.5 기본 컴퓨터의 구조와 설계 (5) 명령어 사이클 (fetch, decode)

Mano의 컴퓨터시스템구조 제3판, 프로텍 미디어, 김종상 옮김 도서를 정리, 요약하는 글입니다.

 

1. 명령어 사이클

- 기본 컴퓨터에서 명령어 사이클은 다음과 같다.

(1) Fetch : 명령어를 메모리에서 가져온다.

(2) Decode : 명령어를 디코딩(해석)한다.

(3) Effective address reading : 간접 주소 방식 명령어일 경우 메모리로부터 유효주소를 읽어온다.

(4) Excution : 명령어를 실행한다.

이 네가지 단계를 계속해서 반복한다. 이 반복은 HALT(중지) 명령을 만날 때까지 반복한다.

 

2. Fetch와 디코드

- 프로그램의 명령어 시작 주소는 PC(프로그램 카운터)에 들어 있다. 맨 처음에는 PC에서 첫 번째 명령어를 가져온다. 순차 카운터(SC)는 0으로 T0이다. 매 클럭마다 타이밍 변수는 T0, T1, T2... 순서로 변한다. fetch의 마이크로 연산은 다음과 같다.

 

T0 : AR  PC

T1 : IR  M[AR], PC  PC + 1

T2 : D0..., D7 Decode IR(12-14), AR  IR(0-11), I  IR(15)

 

- 위의 마이크로 명령을 자세히 살펴보면 다음과 같다.

 

 

(1) T0 : AR ← PC

- 모든 레지스터 중 AR(Address Register)만이 메모리의 주소 입력에 연결되어 있다. T0 시간에 PC의 내용을 버스를 타고 AR로 전송한다. 맨 처음에 버스 선택 입력(S2S1S0)를 010으로 한다.(PC와 연결된 2번 버스를 타고 나가야 하니까) 그리고 AR의 LD 입력을 인에이블시켜 버스를 타고 오는 PC의 내용을 AR에 전송한다.

 

 

(2) T1 : IR  M[AR], PC  PC + 1

T1 시간에 메모리로부터 읽어온 명령어는 IR(Instruction register)에 저장된다. 맨 처음, 메모리의 읽기 입력을 인에이블한다. S2S1S0를 111로 두어 메모리의 내용이 버스를 타고 LD 입력을 인에이블 시킨 상태인 IR로 전송한다. 동시에 PC는 1이 증가된다. PC는 다음 명령어를 가져와야 하므로 자동으로 1씩 증가한다.(INC는 버스를 사용할 필요가 없기 때문에 T1 시간에 동시에 두 마이크로 명령이 실행이 가능하다.)

 

(3) T2 : D0..., D7 Decode IR(12-14), AR  IR(0-11), I  IR(15)

T2 시간에는 IR에 든 명령어를 디코드하고, 간접 비트가 플립플롭 I에 전달되고 주소 부분은 AR로 전송된다.