12.07.2015 Views

제어장치 - 한국기술교육대학교

제어장치 - 한국기술교육대학교

제어장치 - 한국기술교육대학교

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

©copyright 2006컴퓨터구조(INA210) 강의노트 13제어장치한국기술교육대학교 정보미디어공학부 김상진교육목표명령어 주기의 각 세부 주기인 인출, 간접, 실행, 인터럽트는 각각일련의 마이크로 연산으로 구성되어 있다.마이크로 연산은 레지스터 간 데이터 이동, 외부 버스와 레지스터간 데이터 이동, 단순 ALU 연산 등을 말한다.제어장치는 프로세서가 이런 마이크로 연산을 올바른 순서로수행하도록 한다.제어장치는 하드웨어 배선 형태로 구현될 수있고, 마이크로프로그램된 방식으로 구현될수있다.2/26


제어장치 동작 – 마이크로 연산CPU는 명령어 주기를 반복한다.한 명령어 주기 동안에 하나의 기계 명령어를 실행한다.명령어 주기는 인출, 실행, 간접, 인트럽트 주기로 세분화되며,이 중 인출과 실행 주기만 항상 일어난다.각세부주기는몇개의마이크로연산(micro-operation)으로구성된다.3/26인출 주기다음과 같은 세 단계로 구성된다.t 1 : MAR PCt 2 : MBR M(MAR)PC PC + 1t 3 : IR MBR위 예는 마이크로 연산의 형태를 보여주기 위한 예일 뿐이다.실제는 보다 더 복잡할 수 있음t 2 에서 두 개의 마이크로 연산을 동시할 수 있는 것은 서로 간섭하지않기 때문이다.PC를 증가하는 마이크로 연산은 t 3 때 하여도 상관없다.인출 주기는 총 세 단계로 구성되며, 총 네 개의 마이크로 연산이필요하다.마이크로 연산의 타이밍을 위해 클럭을 사용한다.따라서 한 클럭 주기에 하나의 마이크로 연산이 수행된다.4/26


인출 주기 – 계속마이크로 연산의 그룹핑은 다음을 만족해야 한다.사건 순서가 지켜져야 한다.충돌을 피해야 한다. 한 클럭 주기동안 하나의 레지스터로부터읽기와쓰기를동시에할수없다.PC 값을 증가하기 위해 덧셈 연산이 필요하다.이를 위해 ALU를 사용할수있다.ALU를 사용할 경우에는 추가적인 마이크로 연산이 필요할 수 있다.5/26간접 주기/인터럽트 주기간접주기t 1 : MAR [IR(address)]t 2 : MBR M(MAR)t 3 : IR(address) MBR위 세 단계를 수행하게 되면 IR은 간접 주기를 하지 않은 것과동일한 상태가 된다.인터럽트 주기t 1 : MBR PCt 2 : MAR PC를 저장할 위치PC 인터럽트 루틴의 주소t 3 : M(MAR) MBR아주 단순화한 예이다.6/26


실행 주기각 다른 명령어마다 일련의 다른 마이크로 연산을 사용한다.예13. 13.1) 1) ADD R1, Xt 1 : MAR [IR(address)]t 2 : MBR M(MAR)t 3 : R1 [R1]+[MBR]실제로는 MBR의 내용을 ALU가 사용하는 레지스터로 옮기고덧셈을 한다.예13. 13.2)ISZ X (increment-and-skip-if-zero)t 1 : MAR [IR(address)]t 2 : MBR M(MAR)t 3 : MBR [MBR]+1t 4 : M(MAR) [MBR][MBR] == 0이면 PC [PC]+1검사와 행동은 한 마이크로 연산에서 할 수 있다.7/26명령어 주기2비트 ICC(Instruction Cycle Code) 레지스터를 이용하여 세부 주기간에 변경을 제어한다.8/26


프로세서의 제어 – 기능적 요구사항제어 장치의 기능적 요구사항을 살펴보기 위해서는 다음을 알아야 한다.프로세서의 구성요소: ALU, 레지스터, 내부 데이터 경로,외부 데이터 경로, 제어 장치프로세서가 수행하는 마이크로 연산마이크로 연산이 수행되기 위해 제어장치가 제공해야 하는 기능순서 제어: 일련의 마이크로 연산의 순서를 제어하는 기능실행: 마이크로 연산을 수행하는 기능마이크로 연산의 분류레지스터 간에 데이터 이동레지스터와 버스 간에 데이터 이동레지스터를 입력과 출력으로 사용하는 산술 또는 논리 연산 실행9/26프로세서의 제어 – 제어 신호제어 장치의 입력클럭: 순서 제어와 타이밍을 위해 필요명령어 레지스터: 명령어를 분석하여 실행할 일련의 마이크로연산을 결정해야 한다.플래그: 프로세서의 상태와 ALU 연산의 결과를 알기 위해 필요하다.제어 버스로부터 입력되는 제어 신호: 외부 장치가 보내는신호(예: 인터럽트 신호)를 수신하기 위해 필요하다.제어 장치의 출력CPU 내로 전달되는 제어 신호레지스터 간에 데이터 이동을 위한 신호레지스터와 버스 간에 데이터 이동을 위한 신호ALU의 특정 기능을 활성화하기 위한 신호로 구성된다.제어 버스로 출력되는 제어 신호: 예) 주기억장치 읽기10/26


프로세서의 제어 – 제어 신호신호의 전달을 통해 게이트의 열림과 닫힘을 제어한다.게이트가 열리면 신호가 통과된다고 생각하면 된다.예13.3) 인출 주기에서는 다음과 같은 신호가 필요하다.MAR에 있는 데이터가 주소 버스에 실리도록 신호를 보내야 한다.제어 버스에 주기억장치 읽기 신호를 보내야 한다.데이터 버스에 있는 데이터를 MBR로 읽어 들여야 한다.PC 값을 하나 증가시키도록 신호를 보내야 한다.11/26내부 프로세서 조직보통 CPU 내에도 내부 버스가 있다.레지스터 간에 전용선으로 연결되어 있지 않고내부 버스를 사용한다.옆 그림에서 Z와 Y 레지스터는 ALU의 입력과출력을 위해 사용된다.예13.4)메모리에 있는 값을 AC에 더하는명령어의 세부 마이크로 연산의 구성t 1 : MAR [IR(address)]t 2 : MBR M(MAR)t 3 : Y [MBR]t 4 : Z [AC] + [Y]t 5 : AC [Z]ALU12/26


하드웨어 배선에 의한 구현제어 장치를 구현하는 방법하드웨어 배선에 의한 구현마이크로프로그램된 구현13/26제어장치의 입력명령어 레지스터제어 장치는 명령어 레지스터를 입력 받아 그것의 연산 코드를 해석하여야 한다.이를 위해 하나의 입력을 받아 하나의 출력을 발생하는 해독기(decoder)를 사용할수있다.일반적으로 해독기는 n 비트를 입력받아 2 n 비트를 출력한다.14/26


클럭 주기한 주기 내에 신호가 데이터 경로를 통해 목적지에 도달할 수 있도록충분히 길어야 한다.제어 장치는 한 명령어를 실행하는 동안 각기 다른 순간에 다른 신호를발생한다.이들 순간을 정의하기 위한 카운터가 필요하다.신호의 정의 예) C 5 신호가 인출과 간접 주기의 T 2 에 필요하고,ICC의 두 비트를 각 P와 Q라고 하면 C 5 는 다음과 같이 정의된다.C = P⋅Q⋅ T + P⋅Q⋅T5 2 2물론 실행 주기 때에 이 신호가 필요하면 불식이 더 복잡해진다.이것을 회로로 배선하여 구현하면 하드웨어 배선 방식의 제어 장치가된다.하드웨어 배선 방식은 경우의 수가 적은 경우에만 효율적으로 사용할수있다.15/26

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!