본문 바로가기

컴퓨터구조

컴퓨터 구조: 제어 장치의 종류

728x90
반응형

제어 장치는 제작 방법에 따라 하드웨어로 구현되는 1) 하드웨어 제어 장치와 소프트웨어로 구현되는 2) 마이크로 프로그램 제어 장치로 분류할 수 있다.

 

하드와이어 제어 장치(hardwired control) 

하드와이어 제어 장치는 논리 회로로 만들어진 하드웨어로 명령어 실행 제어에 필요한 제어 신호를 발생시킨다.

이 제어 장치는 회로 구조를 물리적으로 변경하지 않는 한 신호 생성 방법을 수정할 수 없다.

명령어의 opcode에 제어 신호를 생성하는 기본 데이터가 포함되어 있으며 명령 디코더에서 작업 코드가 해독된다. 

제어 하드웨어는 상태 기계처럼 클록 사이클(a) 명령 레지스터, b) 상태 코드, c) 외부 입력 등)이 진행됨에 따라 상태가 변한다.  

 

특징)

1. 논리식으로 설계한 고정된 논리 회로에 의해 제어 신호를 생성한다.

2. 하드와이어 제어 장치는 마이크로 프로그램 제어 장치보다 빠르다.

3. 하드와이어 제어 장치는 고속으로 작동한다.

 

명령어 실행을 위한 제어 신호는 명령어 실행 사이클 전 구간에서 끊임없이 생성된다.

사이클 구조에 따라 적절한 내부 상태 순서가 제어 장치에 구성된다.

 

제어 신호 생성 회로에서 생성된 신호들은 다음 제어 신호 발생 회로에 입력되어 타이밍 신호와 결합하여 클록을 기반으로 동작한다.

새 명령이 제어 장치에 도착하면 제어 장치는 새 명령어 인출 초기 상대가 된다. 

명령어 해독은 제어 장치가 새 명령 실행화 관련된 첫 번째 상태로 들어갈 수 있게 한다. 해독, 첫 번째 상태는 컴퓨터의 플래그 및 상태 정보가 변경되지 않은 상태로 유지되는 한 지속된다.

 

이 후, 제어 신호 발생 회로에 대해 각각의 새 입력이 생성된다. 외부 신호가 나타날 때, 제어 장치는 외부 신호에 대한 반응과 관련된 상태에 해당하는 다음 제어 상태로 들어간다. 즉, 컴퓨터의 플래그와 상태 변수 값은 명령어 실행 주기에 적합한 상태를 선택하는데 사용되는 것이다.

 

사이클의 마지막 상태는 프로그램의 다음 명령을 가조오기 시작하는 제어 상태이며, 프로그램 카운터의 내용을 MAR로 보낸 후 컴퓨터의 명령 레지스터에 대한 명령어를 읽는다.

진행 중인 명령이 프로그램 실행을 종료한느 중지 명령이라면 다음 사용자 명령을 기다리는 운영체제 상태로 들어간다.

 

마이크로 프로그램 제어 장치(micro-programmed control)

마이크로 프로그램 제어장치와 하드와이어 제어 장치 사이의 근본적인 차이는 제어 메모리(control memory)의 존재 여부이다. 

마이크로 프로그램 제어는 명령어 실행을 위해 각 명령 실행 순서에 해당하는 일련의 해독된 제어 신호를 비트 패턴으로 만들어 제어 메모리에 저장해 둔다.

 

마이크로 프로그램 제어 장치는 하드와이어 제어 장치와 동일하게 주기억 장치에서 다음에 실행할 명령어를 명령 레지스터로 가져온다. 그러나 차이점은 각 명령의 opcode가 제어 신호를 생성하기 위해 해독되지 않고 제어 메모리에서 해당 마이크로 프로그램의 시작 주소를 지시한다.

즉, 명령 레지스터의 opcde가 제어 메모리의 제어 주소 레지스터(CMAR)로 전송되고, 이 주소를 기반으로 명령의 실행을 해석하는 마이크로 프로그램의 첫 번째 마이크로 명령이 마이크로 명령 레지스터로 읽힌다.

마이크로 명령 주소 발생 장치는 마이크로 명령 루틴의 시작 주소를 만든다. 

주소 발생 장치는 사상 함수에 opcode를 연결하여 루틴의 시작 주소를 생성한다.

사상 함수는 명령어 개수가 적고 체계적일 때는 효율적이지만, 명령어 개수가 많아지고 이전 버전 명령 세트에 계속적으로 추가될때는 점점 더 복잡해진다.

주소 발생 장치는 사상 함수 뿐만 아니라 덧셈이나 기타 다른 연산을 추가하여 주소를 찾아낸다.

 

마이크로 명령의 설계 순서

1. 필요한 제어 신호의 목록을 작성

2. 유사한 의미를 가진 제어 신호를 그룹화하여 필드를 구성

3. 이 각 필드에 논리적인 순서를 부여

4. 마이크로 명령 형식에 대한 기호 범례를 작성하여 필드 값의 이름과 제어 신호를 설정하는 방법을 작성한다.

5. 필드 폭을 최소화하기 위해 동시에 사용하지 않는 작업을 분리하여 인코딩한다.

마이크로 명령을 설계한 후 이를 기반으로 명령어 사이클인 명령어 인출, 해독, 실행에 대한 각각의 마이크로 프로그램 루틴을 작성해야한다.

 

마이크로 프로그램 제어 장치의 종류

제어 기억 장치에 저장된 제어 워드의 유형에 따라 1) 수평적 마이크로 프로그램, 2) 수직적 마이크로 프로그램 2가지로 분류된다.

1) 수평적 마이크로 프로그램

수평적 마이크로 프로그램에서는 제어 신호가 제어 신호당 1비트로 해독된 2진 형식으로 표현된다. 즉, 제어 신호가 50개 있다면 50비트의 제어 신호가 필요하다.

한번에 2개 이상의 제어 신호를 활성화할 수 있는 특징이 있다. 

특징)

1. 제어 워드가 더 길다.

2. 병렬 처리 응용에 사용된다.

3. 더 높은 수준의 병렬 처리를 가능하게 한다. 병렬성이 n이면 한 번에 n개의 제어 신호가 활성화된다.

4. 추가 하드웨어(디코더)가 필요하지 않다. 이는 수직적 마이크로 프로그래밍보다 빠르게 만드는 요소이다.

 

2) 수직적 마이크로 프로그램

수직적 마이크로 프로그램에서는 제어 신호가 인코딩된 2진 형식으로 표시되며, 제어 신호가 N개 필요한 경우 log_2 N비트가 필요하다.

특징)

1. 제어 워드가 더 짧다.

2. 더욱 유연하므로 새로운 제어 신호 추가가 쉽다.

3. 낮은 수준의 병렬화를 허용한다. 병렬성의 정도는 0 또는 1

4. 제어 신호를 생성하는 추가적인 하드웨어(디코더)가 필요하다.

 

 

 

하드와이어 제어와 마이크로 프로그램 제어 비교

 

제어 장치를 구성하는 방법은 고정된 것이 아니다. 하이브리드 제어로 2가지의 제어를 적절히 혼용하여 최적의 제어 장치를 구성할 수 있다.

반응형