처리장치 - 제어단어의 이해와 마이크로 연산의 제어단어 변환

2021. 4. 20. 16:06 기타 정보/소프트웨어 공학

제어단어와 선택신호

제어단어

- 선택신호(제어변수)의 묶음

- 제어단어는 처리장치로부터 전달받은 상태비트를 참고하여 제어장치가 만들게 됨

 

선택신호(제어변수)

- 처리장치 내에서 수행되는 마이크로 연산을 선택하는 변수

- 처리장치의 버스, ALU, 시프터, 도착 레지스터 등을 제어

 

처리장치와 제어단어

아래와 같은 구조의 처리장치가 있다고 가정하자.

처리장치 블록도

레지스터 세트는 R1~R7의 7개의 레지스터로 구성되었다. 7개의 레지스터 출력과 외부기억장치로부터의 입력은 두 세트의 멀티플렉서가 선택하여 ALU의 입력으로 연결된다. ALU의 출력은 시프터를 통해 출력버스로 연결되어 도착 레지스터나 외부로 전송된다. 이러한 구조의 처리장치에는 모두 16개의 2진 제어변수가 있고(처리장치 구조에 따라 제어변수의 개수가 바뀐다) 이것이 묶여 하나의 제어단어를 구성한다. 16비트 제어단어를 구성하는 각 필드는 다음과 같다.

 

필드 설명 비트
A ALU로 입력되는 A버스 선택 = 출발 레지스터 선택 3비트
B ALU로 입력되는 B버스 선택 = 출발 레지스터 선택 3비트
D 도착 레지스터 선택 3비트
F ALU의 연산 선택 4비트
H 시프터의 연산 선택 3비트

 

이렇게 16비트로 구성된 제어단어를 처리장치의 각 구성요소에 선택신호로 보내면 해당 마이크로 연산이 수행된다. 다음 표는 처리장치의 제어단어 내역으로 제어변수에 의해 수행되는 기능을 나타낸다.

 

2진 코드 A B D F H
Cin=0 Cin=1
000 외부입력 외부입력 없음 F=A F=A+1 시프트 없음
001 R1 R1 R1 F=A+B F=A+B+1 SHR
010 R2 R2 R2 F=A+B─ F=A-B SHL
011 R3 R3 R3 F=A-1 F=A bus=0
100 R4 R4 R4 F=AB - -
101 R5 R5 R5 F=AB - ROR
110 R6 R6 R6 F=A⊕B - ROL
111 R7 R7 R7 F=A─ - -

※ 참고

  • Cin : 캐리 여부
  • ㅡ : 부정(NOT)
  •  : 논리곱(AND)
  •  : 논리합(OR)
  • SHR : Shift right
  • SHL : Shift left
  • bus=0 : 모든 출력비트에 0을 전송
  • ROR : Rotate right
  • ROL : Rotate left
  • F=A : F=A 연산을 실행할 시점의 Cin값을 알아야 000 또는 011을 선택할 수 있다.

 

마이크로 연산을 제어단어로 변환하기

R1 ← R2 - R3

R2값에서 R3를 빼서 R1에 적재하는 감산 마이크로 연산이다. 이 문장을 위한 제어단어의 각 필드의 내용과 변환 결과는 다음과 같다.

 

필드 내용 기호
2진 코드
A ALU의 A버스 입력으로 R2의 내용을 보낸다. R2 010
B ALU의 B버스 입력으로 R3의 내용을 보낸다. R3 011
D 연산 결과를 도착 레지스터 R1으로 보낸다. R1 001
F ALU에서 감산연산(F=A-B)을 수행한다. F=A-B 0101
H 시프터에서 연산을 수행하지 않는다. 시프트 없음 000

2진 제어단어 : 010 011 001 0101 000

 

위 내용을 참고하여 아래 마이크로 연산을 2진 제어단어로 변환해보자. 제어단어의 A, B, D, F, H 필드 별로 기호로 표현한 뒤 2진 코드로 바꾸면 더 쉽게 변환할 수 있다.

 

  1. R1 ← R2 - R3
  2. R4 ← shr(R5 + R6)
  3. R7 ← R7 + 1
  4. R1 ← R2
  5. output ← R3
  6. R4 ← rol R4
  7. R5 ← 0

 

정답 

더보기
번호 기호표시 2진 제어단어
A B D F H A B D F H
1 R2 R3 R1 F=A-B - 010 011 001 0101 000
2 R5 R6 R4 F=A+B SHR 101 110 100 0010 001
3 R7 - R7 F=A+1 - 111 000 111 0001 000
4 R2 - R1 F=A - 010 000 001 0000 000
5 R3 - NONE F=A - 011 000 000 0000 000
6 R4 - R4 F=A ROL 100 000 100 0000 110
7 - - R5 - bus=0 000 000 101 0000 011

 

참고 서적

컴퓨터구조(김형근·손진곤, 한국방송통신대학교출판문화원)

 

출처 : atoz-develop.tistory.com/entry/%EC%B2%98%EB%A6%AC%EC%9E%A5%EC%B9%98-%EC%A0%9C%EC%96%B4%EB%8B%A8%EC%96%B4%EC%9D%98-%EC%9D%B4%ED%95%B4%EC%99%80-%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C-%EC%97%B0%EC%82%B0%EC%9D%98-%EC%A0%9C%EC%96%B4%EB%8B%A8%EC%96%B4-%EB%B3%80%ED%99%98?category=814648