제어장치
1. 제어장치
- 컴퓨터시스템의 모든 장치들을 유기적으로 제어하는 장치
- 요구되는 마이크로 연산을 연속적으로 수행하도록 신호를 보내어 명령어를 수행하게 함
- 기억장치에 저장된 프로그램으로부터 명령어를 순차적으로 읽어 연산코드부분을 해독,
시스템의 각 요소를 동작시키는 제어신호를 발생시켜 명령어 수행
- 하나의 명령어는 한 클럭동안 수행되는 마이크로 연산의 집합,
명령의 실행은 마이크로 연산의 연속적인 반복
(1) 제어장치 구성요소
명령어 레지스터, 명령어 해독기, 순서제어기, 주소처리기
▷ 제어장치의 동작(명령어 수행과정)
(2) 제어장치의 유형
▷ 마이크로프로그램에 의한 제어장치 (일반 컴퓨터)
- 프로그램에 의한 제어방식(제어단어와 같은 제어정보를 특별한 기억장치에 기억시킨 구조)
- 융통성이 뛰어남 (제어신호를 수정하고자 할때), 속도 느림(기억장치에서 명령인출시에 시간소요)
▷ 하드웨어에 의한 제어장치 (특수 컴퓨터)
- 순서회로와 같은 게이트와 플립플롭으로 구성
- 고속 동작(순서회로로 구성)가능, 회로의 동작방법이 바뀌면 재설계
2. 마이크로프로그램에 의한 제어
- 제어변수 값들을 여러개의 단어로 결합하여 표현, 연속적으로 읽어 제어논리회로에 공급하여 동작
- 일련의 마이크로 연산을 순차적으로 수행하도록 제어, 제어변수로서 제어단어를 사용
(1) 제어단어
- 0과 1의 스트링으로 표현
- 각 제어단어는 마이크로명령어(microinstruction)포함, 마이크로 명령어는 하나 혹은 다수의 마이크로 연산
- 제어단어로서 처리장치의 구성요소들이 특정시점에서 연산을 시작하도록 프로그래밍 가능
(2) 구성요소의 동작원리
▷ 제어기억장치
- 마이크로 명령어(하나 혹은 다수 마이크로 연산을 나타내는 제어단어포함)저장
- 마이크로 명령어 수행한 뒤 이후 수행할 마이크로 명령어의 주소를 결정
- 주소를 결정하기 위해 주소 정보가 마이크로 명령어의 한비트/여러비트로 존재
▷ 다음주소 생성기(순서기)
다음에 수행될 마이크로 명령어의 주소가 생성되면
클럭펄스가 입력될때 CAR로 이동되어
ROM으로부터 다음 마이크로 명령어를 읽어내는데,
이 명령어는 처리장치의 마이크로 연산을 실행시키는 제어비트와
실행될 마이크로 명령어의 순서를 정하는 비트포함
다음 마이크로 명령어의 주소는 순서기 입력에 따라 다양한 방법으로 결정
- CAR의 1증가
- 제어기억장치의 주소를 CAR로 적재
- 외부로부터 온 주소를 CAR로 적재
- 제어동작을 시작하는 초기주소 적재
▷ 제어주소레지스터 (CAR)
다음에 읽을 마이크로명령어의 주소를 제어하는 레지스터(다음주소 저장)
▷ 제어데이터레지스터 (생략가)
다음주소가 계산되어 명령어가 제어기억장치로부터 읽혀질때까지 현재 명령어 저장
(2) 구성요소의 동작
제어기억장치에 보관된 마이크로명령어(제어단어포함)에 의해 동작
▷ 마이크로 명령어의 내역(제어신호) : 모두 26비트로 구성
- 처리장치 제어를 위한 16비트(제어단어)
- 다음주소 선택을 위한 10비트
▷ 제어신호 16비트의 구체적인 내역
16비트(1~16) : 처리장치 제어를 위한 제어단어
1비트(17) : MUX1에서 외부입력 주소 혹은 내부마이크로명령어주소 중 택1
3비트(18~20): MUX2의 8개 입력중 하나를 선택 (상태 레지스터)
6비트(21~26): ROM의 64단어를 선택하기 위한 주소비트
▷ 제어장치의 동작 (아래의 과정을 각 클럭의 천이때마다 반복)
CAR에 새로운 주소가 들어오면, 26비트 마이크로 명령어를 제어기억장치에서 인출
→ 마이크로명령어의 제어단어는 CAR의 다음 동작을 결정
→ 처리장치에서 해당 상태비트를 새로운 값으로 갱신, 다음주소를 CAR에 전송
(MUX2에서 CAR값을 그대로 두어 현재주소로 할지 +1증가로 다음주소로 할지 결정)
3. 마이크로프로그램
마이크로명령어 (제어신호)
마이크로프로그램에 의한 제어방식에서 제어기억장치에 있는 제어단어의 내역
마이크로 명령어의 구성의 예 (26비트)
마이크로 명령어 구체화
(1)마이크로 프로그램
제어기억장치에 저장된 일련의 마이크로명령어의 집합
≫ 마이크로 프로그램 루틴 (micoprogram routine)
마이크로 프로그램을 이용한 제어장치 구현
≫ 마이크로프로그램에 의한 제어장치
▷ 마이크로 프로그램의 개념
- 제어장치 설계를 위한 시스템적인 접근과정
- 마이크로명령어 형식을 설정하면 마이크로프로그램의 작성과정은 컴퓨터프로그램작성과정과 유사
- 이러한 이유로 펌웨어(firmware)라고 함 (소프트웨어와 하드웨어의 중간이라는 의미, 전원이 껴져도 저장되는 프로그램)
3. 하드웨어에 의한 제어장치
하드웨어에 의한 제어장치
주어진 시간에 처리장치에서 수행할 마이크로 연산을 결정해주는 제어상태를 갖는 순서회로 '
▷ 제어장치의 설계
- 입력신호들에 따라 출력신호를 발생하도록 내부논리설계
- 각 제어신호에 대한 부울표현식이 입력함수로 구현
- 제어장치의 설계는 순서회로의 설계
- 일반적으로 제어순서의 상태도를 이용하여 설계
▷ 제어장치의 구현방법
- 상태 플립플롭을 이용한 제어방식
- 순차레지스터와 디코더를 이용한 제어방식
(1)상태 플립플롭을 이용한 제어방식
(2) 순서레지스터와 디코더를 이용한 제어
레지스터 : 제어상태의 순서를 정하는데 사용
디코더 : 각 상태마다 하나씩의 출력만이 나오도록 사용
n-비트 순서레지스터 : n개의 플립플롭과 게이트로 구성
(3) 특징
▷ 장점 : 순서논리회로를 사용함으로써 부품의 수는 최소화, 동작속도 극대화
▷ 단점 : 시스템이 복잡해지면 설계가 어렵고, 한번 구성되면 바꾸기 어려움
≫ RISC 방식에 사용