[전자계산기] 제어
제어 장치의 구성
-
명령어 해독기(Instruction Decoder)
명령 레지스터(IR
, Instruction Register)에 호출된 OP-Code를 해독하여 그 명령을 수행시키는데 필요한 각종 제어 신호를 만들어 내는 장치 -
순서 제어기(Sequence Controller)
마이크로 명령어의 실행 순서를 결정하는 장치 -
제어 주소 레지스터(CAR, Control Address Register)
제어 메모리의 주소를 기억하는 레지스터 -
제어 메모리(Control Memory)
마이크로 명령어들로 이루어진 마이크로프로그램을 저장하는 내부 기억 장치로 액세스 타임이 빠른 ROM으로 만들어진다 -
제어 버퍼 레지스터(CBR, Control Bufer Register)
제어 메모리로부터 읽혀진 마이크로 명령어를 일시적으로 기억하는 레지스터
CPU의 제어 데이터
CPU의 제어 장치가 명령어 수행에 필요한 제어 신호를 발생하기 위해 아래와 같은 제어 데이터를 가지고 제어 규칙에 따라 제어 신호를 발생시키게 된다
- 인출 상태
- 메이저 상태를 변화시키는 제어 데이터 : 명령어
- CPU의 제어점을 제어하는 제어 데이터 : 명령어
- 명령 수행 순서를 결정하는 제어 데이터 : 명령어
- 간접 상태
- 메이저 상태를 변화시키는 제어 데이터 : 직/간접 주소를 판별하는 비트
- CPU의 제어점을 제어하는 제어 데이터 : 명령어의 연산자 부분
- 명령 수행 순서를 결정하는 제어 데이터 : 기억 장치에서 읽어낸 실제 데이터의 주소
- 실행 상태
- 메이저 상태를 변화시키는 제어 데이터 : 인터럽트 요청 신호
- CPU의 제어점을 제어하는 제어 데이터 : 명령어의 연산자 부분
- 명령 수행 순서를 결정하는 제어 데이터 : Program Counter
- 인터럽트 주기
- 메이저 상태를 변화시키는 제어 데이터 : 없음
- CPU의 제어점을 제어하는 제어 데이터 : 컴퓨터 기종에 따라 다름
- 명령 수행 순서를 결정하는 제어 데이터 : 컴퓨터 기종에 따라 다름
마이크로 프로그램
어떤 명령을 수행할 수 있는 일련의 제어 워드가 특수한 기억 장치(ROM
) 속에 저장되어 기계어 명령어들이 적절히 수행되도록 각종 제어 신호를 발생시키는 프로그램을 의미
- CPU 내의 제어 장치를 설계하는 프로그램
- 마이크로 명령어로 형성되어 있다
- 마이크로 명령어 : 데이터 경로 제어를 위해 제어 신호 발생에 필요한 정보와 수행 순서를 제어하는 정보로 구성되어 있으며 마이크로 사이클 타임 동안에 수행해야 할 마이크로 액션을 나타낸다
- 제어 메모리는 보통 빠른 사이클 타임이 요구되므로
ROM
을 사용하는 것이 일반적 - 하드웨어와 소프트웨어의 중간적인 것으로
펌웨어
라고도 한다
제어 메모리에서 번지 결정 방법
제어 메모리에 저장된 마이크로프로그램에서 현재 수행 중인 마이크로 명령어가 끝났을 때 다음에 수행해야 할 마이크로 명령어의 주소를 결정하는 방법
-
순차 수행
마이크로프로그램 내에 있는 마이크로 명령어의 순서에 따라 차례대로 수행하는 경우로 제어 주소 레지스터(CAR)의 내용을 1증가하여 결정하는 방법 -
무조건 분기
수행 중인 마이크로 명령어 상에 있는 분기 주소에 나타난 다음 마이크로 명령어를 수행하는 방법 -
조건 분기
상태 비트의 내용에 따라 조건부 분기하는 방법 -
서브 루틴 Call/Return
마이크로프로그램 내에 있는 독립된 서브 마이크로프로그램을 호출하여 수행하는 방법 -
매크로
반복되는 부분을 매크로로 정의하고 직접 제어 메모리로 매핑하는 방법
제어 장치의 구현 방법
고정 배선식(Hard Wired) 제어 방식
제어 장치가 순서 회로로 만들어진 것으로 미리 정해 놓은 제어 신호들이 순서대로 발생하도록 하드웨어적
으로 구현한 방식
- 마이크로프로그램 제어 방식보다 속도가 빠르다
- 한 번 만들어진 것은 동작 방법이 바뀌었을 때 변경할 수 없다
- 제작이 어렵고 집적화가 어려워 비용이 비싸다
마이크로프로그램(Microprogram) 제어 방식
- 마이크로 명령어로 구성하여 작성하므로 쉽게 설계를 변경할 수 있다
- 마이크로 명령어를 인출하는 별도의 시간때문에 속도가 느리다
- 마이크로프로그램을 저장하기 위한 제어 메모리가 필요하다
- 마이크로프로그램에 대한 유지보수 및 오류 수정이 용이하다
- 명령어 세트가 복잡하고 큰 컴퓨터에서 비용이 절감된다
마이크로 명령어 형식
수평(Horizontal) 마이크로 명령어
제어 메모리의 모양이 수평(비트) 방향으로 길고, 수직 방향으로 짧은 모양이어서 수평 마이크로 명령어라고 한다
- 마이크로 명령어에 마이크로 액션 수행에 관계되는 제어점을 직접 나타내니 때문에 직접 마이크로 명령어라고도 한다
- 마이크로 명령어의 각 비트는 중앙 처리 장치의 독립 제어점과 1:1로 연결되어 있으므로 디코더가 필요없으나 비트 수가 많이 필요하므로 하나의 명령어가 길다
- 디코딩이 필요없으므로 수행 속도가 빠르며 병렬 수행도 가능
수직(Vertical) 마이크로 명령어
제어 메모리의 모양이 수직(단어) 방향으로 길고, 수평 방향으로 짧은 모양이어서 수직 마이크로 명령어라고 한다
- 마이크로 명령어에 마이크로 액션 수행에 관계되는 제어점을 직접 나타내는 것이 아니라 제어점 정보를 몇 개의 그룹으로 분류하여 부호화해서 나타내기 때문에 부호화 마이크로 명령어라고도 한다
- 명령어의 길이가 짧은 대신에 수행 속도가 느리다
나노 명령어
나노 메모리에 들어있는 마이크로 명령어를 나노 명령어라고 하며, 작은 용량의 제어 메모리와 큰 용량의 나노 메모리를 계층적으로 운영하는 형태
- 마이크로프로그램의 크기가 2048 X 64bit 일 때
-
마이크로 명령어의 수가 128개라면
- 나노 메모리의 크기
- 마이크로 명령어의 길이 = 64bit
- 나노 메모리는 64비트짜리 마이크로 명령어 128개를 저장해 놓으면 되므로 128 X 64bit 크기를 가진다
- 제어 메모리의 크기
- 나노 메모리의 마이크로 명령어 수 = 128개
- 제어 메모리의 워드 크기는 7비트로 설계되어야 한다
- 마이크로프로그램은 2048개의 명령이 필요하다
- 제어 메모리는 7비트짜리 워드 2048개를 저장해 놓으면 되므로 2048 X 7bit가 필요하다
댓글남기기