컴퓨터구조

컴퓨터구조_08.제어장치

강용민 2021. 12. 15. 04:31

제어장치는 순서 제어와 동작 제어를 담당하며 컴퓨터의 모든 제어 신호를 생성한다.

 

제어장치 기능

컴퓨터 시스템을 포함한 모든 디지털 시스템은 제어부와 실행부로 나누어 구현된다.

  • 실행부(Control Path)
    • 외부에서 입력된 데이터를 처리하여 출력 데이터를 생성한다.
    • 프로그래머 모델, 레지스터, 연산기, 외부(기억장치, 입출력장치)
    • 입력 신호 : 명령어 레지스터, 상태 레지스터, 제어 버스 중 일부
    • 출력 신호 : 실행부의 모든 소자를 제어
  • 제어부(Data Path)
    • 실행부에서 상태 신호를 입력으로 받고 실행부의 동작을 제어하기 위한 제어 신호를 생성한다.

제어장치는 명령어 사이클이 돌아가도록 만들고 마이크로 오퍼레이션을 수행하기 위한 제어신호를 생성해야 한다.

  • 순서 제어 : 프로그램을 실행하도록 명령어 사이클을 진행시킨다.
  • 동작 제어  명령어 사이클의 각 단계에서 실행해야 할 마이크로 오퍼레이션을 수행하도록 만든다.

제어장치는 조합 논리소자와 순서 논리소자를 사용하는 하드와이어드 방식과 기억장치를 사용하는 마이크로프로그램 방식으로 구현될 수 있다.

  • 하드와이어드 방식
    • 상태 머신을 구동하여 순서 제어
    • 동작 제어는 조합논리회로를 이용한다.
  • 마이크로프로그램 방식
    • 순서 제어기를 사용하여 순서 제어를 처리
    • 동작 제어는 기억장치에서 제어한다.

제어장치 종류

논리회로를 논리소자 또는 기억장치로 구현할 수 있다. 이때 사용되는 기억장치를 제어 기억장치라고 부른다.

제어 기억장치의 주소는 회로의 입력 신호에 해당하고, 제어 기억장치에 저장된 데이터는 출력 신호에 해당한다.

 

조합 논리회로와 순차 논리회로를 제어 기억장치로 구현할 수 있다.

조합 논리회로 구현

전가산기를 논리회로로 구현하려면, 전가산기 진리표를 구한 후, 각 출력 신호를 논리식으로 표현하고 논리식에 대한 논리 회로도를 구한다.

전가산기에 대한 진리표를 직접 기억장치에 구현함으로써, 전가산기를 기억장치로 구현할 수 있다.

 

순차 논리회로 구현

기억장치를 사용하여 순차 논리회로를 구현할 수 있다.

6진카운터 회로

기억장치 + 레지스터(CAR,CAB) + 피드백 경로

기억장치는 상태표를 구현한다.

 

특성비교

구분 하드와이어드 마이크로프로그램 제어장치
구현 방법 조합, 순서 논리소자 제어 기억장치, 순서 제어기
구현 과정 간소화, 상태도.복잡하고 어렵다. 마이크로프로그래밍. 간단하고 쉽다.
동작 속도 빠르다. 느리다.
회로 수정 복잡하다. 하드웨어는 항상 동일하다. 간단하다.
적용 분야 RISC CISC

하드와어드 제어장치

하드와어드 제어장치 구조를 봤을 때, 외부에서 보면 명령어 레지스터, 상태 레지스터, 그리고 시스템 클럭이 입력으로 제공되고, 여러 개의 제어 신호를 출력한다. 하드와이어드 제어장치는 내부에 타이밍 신호 발생기, 명령어 디코더, 그리고 제어신호 발생기를 포함하고 있다.

 

제어 신호 발생기는 다음과 같은 세 가지 구성요소가 제공하는 바탕으로 제어 신호를 생성한다.

  • 타이밍 신호 발생기는 명령어 사이클에 포함되어 있는 단계를 구분하고 신호와 각 단계 안에서 몇 번째 클럭이 진행되고 있는지 나타내는 타이밍 신호를 생성한다.
  • 명령어 디코더는 명령어 레지스터에포함되어 있는 동작코드와 부동작 코드를 디코드하여 현재 처리하고 있는 명령어가 어떤 종류인지 구별한다.
  • 명령어 실행부인 프로그래머 모델에서 전달되는 상태 레지스터는  제어장치에게 분기 명령어를 다룰 수 있도록 조건 코드를 제공한다.

제어장치의 두 가지 기능 중에서 순서 제어는 타이밍 발생기가 담당하고, 제어 신호 발생기가 생성한 제어 신호가 동작 제어를 담당한다.

 

타이밍 신호 발생기

는 명령어 사이클 단계를 구별하는 명령어 사이클 코드(ICC,Instruction Cycle Code)와 명령어 사이클 단계 안에서 몇 번째 클럭이 진행되고 있는지 나타내는 시퀀스 카운트(SCNT,Sequenc Count)를 생성한다.

 

명령어 디코더

는 명령어 레지스터의 명령어를 디코드하여 제어 신호 발생기가 명령어를 구분할 수 있게 만든다.

 

제어 신호 발생기

명령어 디코더, 타이밍 발생기, 상태 레지스터를 입력으로 받고, 제어신호를 출력한다.


마이크로프로그램 제어장치

제어장치 외부에서 본 제어장치의 입출력 신호는 하드와어드 제어장치의 입출력 신호와 같다.즉, 명령어 레지스터와 상태 레지스터를 입력으로 받아 제어 신호를 생성한다.

다만 제어장치의 내부 구조가 하드와이어드 제어장치와 다르다. 마이크로프로그램 제어기는 순서 제어기, 제어주소 레지스터(CAR), 제어기억장치, 그리고 제어버퍼 레지스터(CBR)로 구성되며, 각 구성 요소의 역할은 다음과 같다.

  • 제어 기억장치  제어 신호 저장
    • 제어 단어  한 개의 주소에 저장되어 있는 제어 신호
    • {제어신호 필드, 다음주소 선택 필드}
  • 제어주소 레지스터(CAR) : 제어 기억장치의 주소 공급
  • 제어버퍼 레지스터(CBR) : 제어신호 필드를 동기화하여 실행부로 제어 신호 전달
  • 순서 제어기 : 제어주소 레지스터로 적재할 다음주소 결정
    • {명령어 레지스터, 상태 레지스터, 제어 단어의 다음주소 선택 필드}중 하나

 

마이크로프로그램 제어장치 순서 제어와 동작제어를 수행한다. 제어 단어의 제어신호필드가 동작 제어를 담당하고 순서 제어기가 순서 제어를 담당한다. 이 제어 방식의 순서 제어는 제어주소 레지스터의 값을 변경하는 것을 의미한다.

  • 마이크로프로그래밍 : 제어 기억장치의 제어 단어를 작성하는 작업
  • 마이크로프로그램 : 작업 결과
  • 제어 단어 = 마이크로 명령어 = 마이크로 코드

 

마이크로프로그램 동작 제어

  • 순서 제어 : 순서 제어기(마이크로프로그램 시퀀서), CAR의 주소 결정
  • 동작 제어 : 제어단어 (제어신호 필드)

마이크로프로그램 제어기는 제어 단어에 저장되어 있는 제어신호 필드에 의하여 프로세서의 동작을 제어한다.

제어단어는 {제어신호 필드, 다음주소 선택 필드}로 이뤄져있다.

 

제어 신호 부호화

제어 기억장치의 용량은 명령어 사이클의 단계와 명령어수가 많아질수록 제어 기억장치의 용량이 증가하고, 제어 신호의 수가 많아질수록 제어기억장치의 폭이 길어진다.

 

제어 신호의 폭을 줄이기 위하여, 제어 신호의 일부를 부호화 할 수 있다.

  • 수평적 마이크로프로그래밍 : 제어 신호를 부호화하지 않은 방법이다. 제어 신호마다 한 비트를 할당하여 제어 단어를 구성하므로 필연적으로 제어 단어의 폭이 증가한다.
  • 수직적 마이크로프로그래밍 : 제어 신호를 서로 동시에 사용하지 않는 그룹으로 구분하고, 그룹별로 제어 신호를 부호화한다.

마이크로프로그램 순서 제어

마이크로프로그램 순서 제어는 제어주소레지스터(CAR)의 값을 결정한다.

'컴퓨터구조' 카테고리의 다른 글

컴퓨터구조_09.기억장치  (0) 2021.12.15
컴퓨터구조_07.중앙처리장치 설계  (0) 2021.12.14
컴퓨터구조_05.연산기  (0) 2021.10.06
컴퓨터구조_04.중앙처리장치  (1) 2021.10.05