프로그래밍[Univ]/아키텍처

[Architecture] 명령 수행

Cloud Travel 2013. 4. 14. 11:45

이번엔 어떻게 작성된 보드가 일을 수행하는지 알아보도록 한다.

이를 이용하여 시스템의 구성 및 프로그램의 수행과정을 이해하도록 한다.


* Program 실행 과정

 - 프로그램 변화 및 CPU실행까지의 경로  

  

 - 프로그램 실행

  1. 메모리에서 명령어 및 데이터를 읽어온다.(Fetch)

  2. 명령어를 해독한다.(Decode)

  3. 명령어를 실행한다.(Execute) // 실행 작업의 속도가 빠르기 때문에 clock 표시시 생략된다.

 - 세부 실행 

  1. CPU는 PC(Program Counter Register)에 시작 위치를 저장한다.

  2. CPU는 PC값을 이용하여 Address Bus에 시작 주소를 보낸다. 한편으로 Controller에 Read 명령어를 보낸다.

  3. Memory는 주소를 해석(Decode)한다.

  4. Memory는 주소의 내용을 output buffer에 저장한 후 CPU에게 Data valid limit time을 알려준다.

  5. CPU는 output buffer 내용을 가져와(Fetch) 해석(Decode)한다.

  6. 명령어를 실행한다.

  7. PC값을 증가시켜 다음명령을 실행하기위해 "2."단계로 간다.

   >> ( 2~4단계에 걸리는 시간을 Access time이라고 한다)


* 명령 수행 사이클

 - Instruction Fetch

 - Instruction decode

 - Operand fetch : 생략가능

 - Instruction execution


* CPU 구조