Skip to content

Latest commit

 

History

History
463 lines (335 loc) · 19.5 KB

07강 제어유니트.md

File metadata and controls

463 lines (335 loc) · 19.5 KB

🦄 제어유니트 (7 / 13회차)


4.1 제어 유니트의 기능   kukim

문제 1. Control Unit(제어 유닛ㅌ)의 주요 기능 두 가지는 무엇인가요? 보기에서 골라주세요

[보기]
a) 명령어 코드 decode
b) 명령어 코드 encode
c) 명령어 실행에 필요한 제어 신호들의 발생
d) 어셈블리어 코드 생성
e) while(1) {printf("나는 제어 유니 ㅌㅌㅌㅌㅌ");}

문제 2. Hardwired Contorl(하드와이어 제어)는 Microprogrammed Control(마이크로프로그램 제어)와는 다르게 하드웨어 변경 없이 컴퓨터 시스템 제어의 수정이 가능하다. (O / X)

📄 답지

문제 1. Control Unit(제어 유닛ㅌ)의 주요 기능 두 가지는 무엇인가요? 보기에서 골라주세요

[보기]
a) 명령어 코드 decode
b) 명령어 코드 encode
c) 명령어 실행에 필요한 제어 신호들의 발생
d) 어셈블리어 코드 생성
e) while(1) {printf("나는 제어 유니 ㅌㅌㅌㅌㅌ");}
  • 정답 : a, c
    • 제어유닛의 기능
      1. 명령어 코드 해독
      2. 명령어 실행에 필요한 제어 신호 발생

문제 2. Hardwired Contorl(하드와이어 제어)는 Microprogrammed Control(마이크로프로그램 제어)와는 다르게 하드웨어 변경 없이 컴퓨터 시스템 제어의 수정이 가능하다. (O / X)

  • 정답 : X (하드와이어로 동작하는 제어 유닛은 하드웨어를 변경 해야 제어 유닛을 수정할 수 있다.)


4.2 제어 유니트의 구조    mihykim

[문제 1]
위 그림을 참조하여 다음 빈 칸에 들어갈 제어 유니트의 주요구성요소를 알맞게 넣어주세요.

  • (a)           
    명령어 레지스터(IR)로부터 들어오는 명령어의 연산 코드를 해독하여 해당 연산을 수행하기 위한 루틴의 시작주소를 결정함
  • (b)           
    다음에 실행할 마이크로명령어의 주소(제어기억장치의 특정위치)를 저장하는 레지스터
  • (c)           
    마이크로명령어들로 이루어진 마이크로프로그램을 저장하는 내부 기억장치
  • (d)           
    제어 기억장치로부터 읽혀진 마이크로 명령어를 일시적으로 저장하는 레지스터
  • (e)           
    마이크로프로그램에서 서브루틴이 호출되는 경우에, 현재의 CAR 내용을 일시적으로 저장하는 레지스터
  • (f)           
    마이크로명령어의 실행 순서를 결정하는 회로들의 집합

[문제 2]
용량이 128단어인 제어 기억장치의 처음 절반 부분에 실행 사이클 루틴들을 저장합니다. 각 루틴을 최대 8개의 마이크로명령어로 구성될 수 있도록 하려면, 사상 함수는 다음 중 어느 것과 같아야 할까요? (기본문제4.4)

  • 가. 0xxx000
  • 나. 0xxxx00
  • 다. 1xxxx00
  • 라. 1xxx00
사상(mapping)함수란?
- 명령어의 연산코드를 이용하여 해당 사이클 루틴의 시작 주소를 찾는 기법
- input: 연산코드
- output: 루틴의 시작주소

[문제 3]
제어유니트 명령어 실행 사이클 루틴들을 제어 기억장치의 절반 하반부에 저장하려고 합니다. 각 루틴은 최대 8개의 마이크로명령어들로 구성될 수 있도록 하며, 연산코드는 5비트입니다. (연습문제4.3)

  • 명령어 해독을 위한 사상함수를 제시해주세요
  • 제어기억장치의 0번지부터 상반부에는 인출 사이클을 비롯한 공통 루틴들을 저장한다면, 제어 기억장치의 전체 용량은 몇 단어(word)가 되어야 할까요?
📄 답지

[문제 1]
위 그림을 참조하여 다음 빈 칸에 들어갈 제어 유니트의 주요구성요소를 알맞게 넣어주세요.

  • 명령어 해독기(instruction decoder):
    명령어 레지스터(IR)로부터 들어오는 명령어의 연산 코드를 해독하여 해당 연산을 수행하기 위한 루틴의 시작주소를 결정함
  • 제어 주소 레지스터(control address register, CAR):
    다음에 실행할 마이크로명령어의 주소(제어기억장치의 특정위치)를 저장하는 레지스터
  • 제어 기억장치(control memory):
    마이크로명령어들로 이루어진 마이크로프로그램을 저장하는 내부 기억장치
  • 제어 버퍼 레지스터(control buffer register, CBR):
    제어 기억장치로부터 읽혀진 마이크로 명령어를 일시적으로 저장하는 레지스터
  • 서브루틴 레지스터(subroutine register, SBR):
    마이크로프로그램에서 서브루틴이 호출되는 경우에, 현재의 CAR 내용을 일시적으로 저장하는 레지스터
  • 순서제어 모듈(sequencing module):
    마이크로명령어의 실행 순서를 결정하는 회로들의 집합

[문제 2]
용량이 128단어인 제어 기억장치의 처음 절반 부분에 실행 사이클 루틴들을 저장합니다. 각 루틴을 최대 8개의 마이크로명령어로 구성될 수 있도록 하려면, 사상 함수는 다음 중 어느 것과 같아야 할까요?

  • 답 : 가. 0xxx000
??????? : 총 128(=2^7)단어 이므로 7자리
0?????? : 처음 절반이므로 최상위 비트 0
0???000 : 각 루틴에 최대 8(=2^3)가지 이므로 000
0xxx000 : 나머지는 연산코드 자리

[문제 3]
제어유니트 명령어 실행 사이클 루틴들을 제어 기억장치의 절반 하반부에 저장하려고 합니다. 각 루틴은 최대 8개의 마이크로명령어들로 구성될 수 있도록 하며, 연산코드는 5비트입니다.

  • 명령어 해독을 위한 사상함수를 제시해주세요

    • 답 : 1xxxxx000
    1~        : 하반부이므로 최상위 비트 1
    1xxxxx~   : 연산코드 5비트
    1xxxxx000 : 각 루틴에 최대 8(=2^3)가지
    
  • 제어기억장치의 0번지부터 상반부에는 인출 사이클을 비롯한 공통 루틴들을 저장한다면, 제어 기억장치의 전체 용량은 몇 단어(word)가 되어야 할까요?

    • 답: 512 워드
    1xxxxx000 => 9자리, 2^9 = 512
    => 공통 루틴 0~255
    => 실행사이클 루틴 256~511
    

참고영상 : [유튜브]컴퓨터 구조 사상함수(microprogrammed control unit)



4.3 마이크로명령어의 형식   daelee

image

[문제 1] 조건부 호출 마이크로-연산이 실행될 때 조건이 만족되었다면, 제어주소레지스터(CAR)에는 어떤 값이 적재될까요?
가. CAR <- CAR+1 
나. CAR <- ADF
다. CAR <- SBR
라. CAR <- SBR+1
[문제 2] 복귀(RET) 마이크로-연산이 실행되면, 제어주소레지스터(CAR)에는 어떤 값이 적재될까요?
가. CAR <- CAR+1 
나. CAR <- ADF
다. CAR <- SBR
라. CAR <- SBR+1
[문제 3] 설명이 맞으면 O, 틀리면 X 하세요.
  1. 하나의 동작만 지정하고 싶을 때에는 나머지 연산필드의 값을 이진수 000으로 지정한다. ( O / X )
  2. 동시에 실행되는 마이크로연산들은 하나의 연산 필드에 위치시켜야 한다. ( O / X )
  3. 분기 필드의 값이 JMP/CALL라면 앞의 조건 필드가 00 이더라도 조건을 만족하는 지 확인한 후 분기한다. ( O / X )
  4. 호출되는 마지막 마이크로명령어의 분기 필드에는 반드시 return을 뜻하는 10 이 들어가야한다. ( O / X )
📄 답지

image

[문제 1] 조건부 호출 마이크로-연산이 실행될 때 조건이 만족되었다면, 제어주소레지스터(CAR)에는 어떤 값이 적재될까요?
가. CAR <- CAR+1 
나. CAR <- ADF
다. CAR <- SBR
라. CAR <- SBR+1

정답 : 나

조건을 만족한 경우 호출 연산이 실행되고, 이 경우 마지막 주소필드(ADF)의 값이 분기될 목적지 마이크로명령어 주소가 된다. 즉, ADF의 값이 CAR로 적재된다.

[문제 2] 복귀(RET) 마이크로-연산이 실행되면, 제어주소레지스터(CAR)에는 어떤 값이 적재될까요?
가. CAR <- CAR+1 
나. CAR <- ADF
다. CAR <- SBR
라. CAR <- SBR+1

정답 : 다

서브루틴 레지스터(SBR)은 마이크로프로그램에서 서브 루틴이 호출되는 경우에 현재의 CAR 내용을 일시적으로 저장하는 레지스터. SBR에 저장되어 있던 주소가 CAR에 다시 적재됨으로서 호출되기 전의 프로그램 실행 순서로 되돌아가게 된다.

[문제 3] 설명이 맞으면 O, 틀리면 X 하세요.
  1. 하나의 동작만 지정하고 싶을 때에는 나머지 연산필드의 값을 이진수 000으로 지정한다. ( O / X )
  2. 동시에 실행되는 마이크로연산들은 하나의 연산 필드에 위치시켜야 한다. ( O / X )
  3. 분기 필드의 값이 JMP/CALL라면 앞의 조건 필드가 00 이더라도 조건을 만족하는 지 확인한 후 분기한다. ( O / X )
  4. 호출되는 마지막 마이크로명령어의 분기 필드에는 반드시 return을 뜻하는 10 이 들어가야한다. ( O / X )

정답 : O, X, X, O

  1. O, 000은 None을 의미한다.
  2. X, 두 개의 마이크로연산을 동시에 실행시키고 싶다면 두 개의 연산필드를 사용해야 한다.
  3. X, JMP와 CALL은 앞의 조건 필드가 00 이라면 무조건 점프/호출이 수행된다.
  4. O


4.4 마이크로프로그래밍     sancho

1. 인출 사이클 루틴이 실행될 때 다음 위치에 들어갈 마이크로 명령어를 적어주세요.

스크린샷 2020-12-16 오후 12 25 34

2. 간접 사이클 루틴을 사용하려 할 때 I비트에 세트된 값은 무엇일까요?

->

3. 간접 사이클 루틴이 실행될 때 다음 위치에 들어갈 마이크로 명령어를 적어주세요.

스크린샷 2020-12-16 오후 12 52 45

📄 답지

1. 인출 사이클 루틴이 실행될 때 다음 위치에 들어갈 마이크로 명령어를 적어주세요.

스크린샷 2020-12-16 오후 12 25 34

  1. PCTAR: 인출 사이클의 첫번째로 PC의 내용을 MAR에 보내는 과정의 마이크로 명령어는 PCTAR이며 다음 마이크로 명령어가 실행됩니다.
  2. READ, INCPC: 두번째에서는 첫번째에서 읽혀진 명령어가 MBR로 적재되고 PC의 내용에 1을 증가시키는 과정이 일어납니다. 이를 마이크로 명령어로 바꾸면 READ, INCPC가 됩니다.
  3. BRTIR, 세번째에서 MBR에 저장된 명령어 코드가 IR로 이동하게 되는데 마이크로 명령어로 바꾸면 BRTIR입니다.

2. 간접 사이클 루틴을 사용하려 할 때 I비트에 세트된 값은 무엇일까요?

-> 간접 주소지정 방식을 사용하기 위해선 I비트가 1로 세트되어야 합니다.

3. 간접 사이클 루틴이 실행될 때 다음 위치에 들어갈 마이크로 명령어를 적어주세요.

스크린샷 2020-12-16 오후 12 52 45

  1. IRTAR, 2. READ, 3. BRTIR

-> 간접 사이클은 간접 주소지정 방식을 사용하고 있는 데이터의 실제 위치를 불러오기 위한 과정이고 이를 순서대로 마이크로 명령어로 바꾸면 IRTAR, READ, BRTIR이 됩니다.



4.5 마이크로프로그램의 순서제어     yeosong

[문제 1]
다음 조건에 따르면 수평적 마이크로프로그래밍 방식에서 한 번에 최대 몇 개의 제어 신호들이 발생할 수 있는가? (기본문제4.8)

두 개의 연산 필드가 각각 4비트씩으로 구성되어 있다. 

가. 4개 
나. 8개 
다. 16개 
라. 32개   

[문제 2]
다음 조건에 따르면 수직적 마이크로프로그래밍 방식에서 한 번에 최대 몇 개의 제어 신호들이 발생할 수 있는가? (기본문제4.9)

두 개의 연산 필드가 각각 4비트씩으로 구성되어 있다.
단, 해독기는 두 개만 사용한다고 가정한다.

가. 8개
나. 16개 
다. 32개 
라. 64개

[문제 3]
수직적 마이크로프로그래밍의 특징을 고르세요. (연습문제4.8, 기본문제4.10)

가) 마이크로 명령어 길이가 짧다
나) 마이크로 명령어 길이가 길다
다) 제어기억장치의 용량이 적게 필요하다
라) 제어기억장치의 용량이 비교적 많이 필요하다
마) 해독기 사용으로 지연이 발생한다
바) 제어 신호의 발생을 위한 추가적 하드웨어가 필요하지 않다.
사) 제어 신호의 수를 확장시키는 것이 용이하다. 

[문제 4]
다음 가정에 맞추어 아래 문항을 풀어보세요.(연습문제4.9)

1. 이 제어 기억장치의 폭(=단어 길이)는 26비트다.
2. 마이크로명령어 형식에서 14비트는 마이크로-연산을 가리키는 연산 필드로 사용된다.
3. 주소 선택 필드는 분기 조건을 규정하며,
4. 그 조건을 결정하는 플래그들은 8개이다.
5. 분기의 종류는 한 가지뿐이어서 분기 필드는 필요하지 않다고 가정한다. 

(1) 주소 선택 필드는 몇 비트가 필요한가?
(2) 주소 필드(ADF)는 몇 비트로 구성될 수 있는가?
(3) 이 제어 기억장치의 최대 용량(단어 수 × 폭)을 구하라.

[문제 5]
다음은 제어 유닛을 간략하게 나타낸 것이다. 주어진 표를 참고하여 다음 문항에 답하시오.

제어유닛

(1) 다음과 같은 조건일때, 실행되는 마이크로 연산으로 알맞은 것을 보기에서 고르세요.

보기

가) CAR <- 1XXXX00 <Mapping>
나) CAR <- ADF
다) CAR <- SBR <Return>
라) CAR <- CAR + 1
  • BR I1 = 0
  • BR I0 = 0
  • C = 0

(2) 다음과 같은 조건일때, MUX1이 받아들일 입력으로 알맞은 것을 보기에서 고르세요.

보기

가) 0
나) 1
다) 2
라) 3
  • BR I1 = 1
  • BR I0 = 0
  • C = x (고려하지 않음)
📄 답지

[문제 1]
다음 조건에 따르면 수평적 마이크로프로그래밍 방식에서 한 번에 최대 몇 개의 제어 신호들이 발생할 수 있는가? (기본문제4.8)

두 개의 연산 필드가 각각 4비트씩으로 구성되어 있다. 

가. 4개 
나. 8개 
다. 16개 
라. 32개   

정답 : 나. 8개
각 비트의 값을 그대로 내려받기 때문에 4개씩 두 필드 = 8개의 신호가 발생한다.

[문제 2]
다음 조건에 따르면 수직적 마이크로프로그래밍 방식에서 한 번에 최대 몇 개의 제어 신호들이 발생할 수 있는가? (기본문제4.9)

두 개의 연산 필드가 각각 4비트씩으로 구성되어 있다.
단, 해독기는 두 개만 사용한다고 가정한다.

가. 8개
나. 16개 
다. 32개 
라. 64개

정답 : 다. 32개
비트 4개로 나타낼 수 있는 값의 경우의 수가 최대 24/sup>개이고, 이 같은 필드가 2개 있으므로
최대 24/sup> /* 2 = 32개의 신호가 발생할 수 있다.

[문제 3]
수직적 마이크로프로그래밍의 특징을 고르세요. (연습문제4.8, 기본문제4.10)

가) 마이크로 명령어 길이가 짧다
나) 마이크로 명령어 길이가 길다
다) 제어기억장치의 용량이 적게 필요하다
라) 제어기억장치의 용량이 비교적 많이 필요하다
마) 해독기 사용으로 지연이 발생한다
바) 제어 신호의 발생을 위한 추가적 하드웨어가 필요하지 않다.
사) 제어 신호의 수를 확장시키는 것이 용이하다. 

정답 : 가, 다, 마, 사
나, 라, 바 는 수평적 마이크로프로그래밍의 특징이다.

[문제 4]
다음 가정에 맞추어 아래 문항을 풀어보세요.(연습문제4.9)

1. 이 제어 기억장치의 폭(=단어 길이)는 26비트다.
2. 마이크로명령어 형식에서 14비트는 마이크로-연산을 가리키는 연산 필드로 사용된다.
3. 주소 선택 필드는 분기 조건을 규정하며,
4. 그 조건을 결정하는 플래그들은 8개이다.
5. 분기의 종류는 한 가지뿐이어서 분기 필드는 필요하지 않다고 가정한다. 
oooo oooo oooo oo bbb aaa aaa aaa
~~~~~~~~~~~~~~~~~ ~~~ ~~~~~~~~~~~
연산 필드         플래그 8개를       주소필드
               표현할 비트 3개
                 
(띄어쓰기는 시각적인 편의상 삽입하였으며 실제 구조와는 무관)

(1) 주소 선택 필드는 몇 비트가 필요한가?

정답 : 3비트
8개의 플래그는 23 3비트로 모두 표현 가능하다.

(2) 주소 필드(ADF)는 몇 비트로 구성될 수 있는가?

정답 : 9
26 - 14 - 3 = 9
폭 - 연산 필드 - 조건 필드 = 주소 필드

(3) 이 제어 기억장치의 최대 용량(단어 수 × 폭)을 구하라.

정답 : 29 * 26 비트
주소가 9개 비트로 표현되므로, 26비트 짜리 * 워드 29개 = 13312 비트이다.
= "26비트 폭(width)으로 512단어"

[문제 5] 다음은 제어 유닛을 간략하게 나타낸 것이다. 주어진 표를 참고하여 다음 문항에 답하시오.

제어유닛

(1) 다음과 같은 조건일때, 실행되는 마이크로 연산으로 알맞은 것을 보기에서 고르세요.

보기

가) CAR <- 1XXXX00 <Mapping>
나) CAR <- ADF
다) CAR <- SBR <Return>
라) CAR <- CAR + 1
  • BR I1 = 0
  • BR I0 = 0
  • C = 0

정답 : 라) CAR <- CAR + 1
표 4-5를 참고.

(2) 다음과 같은 조건일때, MUX1이 받아들일 입력으로 알맞은 것을 보기에서 고르세요.

보기

가) 0
나) 1
다) 2
라) 3
  • BR I1 = 1
  • BR I0 = 0
  • C = x (고려하지 않음)

정답 : 다) 2
MUX2에서 플래그들과 조건 필드를 고려해서 조건을 출력 ->
주소 선택 회로에서 그것들과 C를 고려해서 셀렉트 신호와 적재 신호를 출력 ->
이에 따라 MUX1이 4개의 신호(0 ~ 3) 중 해당하는 신호의 내용을 CAR에 적재시킴
표 4-5를 참고.