4.1)제어 유니트의 기능
제어유닛이 담당하는 중요한 기능 두 가지는 아래와 같다.
명령어 해독
명령어 실행을 위한 제어신호 발생
인출된 명령어를 해독하고 실행에 필요한 동작을 수행시키기 위한 제어신호를 발생시킨다.
즉 명령어 사이클이 실행 될 수 있도록 모든 동작을 제어하고 CPU의 컨트롤타워 역할을 하게 되는 것.
하나의 마이크로 연산은 한 번의 CPU클럭 주기동안 실행된다.
즉 t0이 한번 실행되면 클럭은 1회 하나의 동작을 할때마다 1회씩 클럭이 돌아간다.
그렇기에 저 위 사진은 3클럭 주기가 소요된 것.
또한 하나의 마이크로연산을 위한 명령어를 마이크로 명령어 라고 한다.
한 주기에 실행되는 명령어라는 의미에서 제어 단어(control word)라고도 부른다.
또한 마이크로 명령어들의 집합을 마이크로 프로그램이라고 부른다.
이것은 마이크로의 명령어들의 집합이라 프로그램이라고 부르는 것이 아니고
모든 명령어의 집합들은 프로그램이라고 부른다.
만약 명령어 사이클(위 사진)을 하나의 마이크로 프로그램이라고 보면 이는 3개의 루틴(Routine)으로 구성되어 있다고 할 수 있다. 즉 루틴은 CPU의 특정 기능을 수행을 위한 마이크로 명령어들을 논리적으로 묶은 마이크로명령어이다.
=이 말인 즉슨 마이크로 명령어(t)들의 값들이 한번 돌때마다 루틴이 한번씩 돈다고 생각하면 된다.
제어 유니트 구조
1)명령어 해독기
명령어의 연산코드(오피코드)를 해독하여 연산의 수행을 위한 루틴의 시작주소를 알려준다.
즉 모든 마이크로 명령어를 위한 루틴들이 저장되어 있는 제어 기억장치에서 해당 연산장치에서
해당 연산 루틴(저장된 곳)의 주소를 알려주는 역할.
=명령어 코드를 해석해서 그 명령어의 시작주소를 알려줌.
2)제어 주소 레지스터
명령어 해독기가 알려준 마이크로 명령어의 주소가 임시로 저장되는 레지스터
3)제어 기억장치
마이크로프로그램을 저장하는 내부 기억장치
4)제어 버퍼 레지스터
제어 기억장치로부터 읽혀진(읽은 후)마이크로 명령어들을 일시적으로 저장하는 레지스터
5)서브루틴 레지스터
마이크로소프트 프로그램에서 서브루틴이 호출되는 경우에 현재의(CAR 제어주소 레지스터)
내용을 일시적으로 저장하는 레지스터
6)순서제어 모듈
마이크로명령어의 실행 순서를 결정함.
명령어 인출 사이클 동안에 명령어 레지스터(IR)로 적재된 명령어 비트들 중에서 연산 코드(op-code) 부분은
제어 유니트의 명령어 해독기로 들어온다
=즉 연산 코드(명령어 코드)는 해석을 위해 제어 유니트 해독기로 들어오게 됨
이 연산 코드(명령어 코드)가 지정하는 연산을 실행 사이클 동안에 제어 기억장치에 저장된 해당 루틴을
실행함으로써 수행된다.
따라서 명령어 해독기는 연산 코드를 이용하여 제어 기억장치 내 해당 실행 사이클 루틴의 시작 주소를 찾아야 한다.
즉 명령어 해독기는 쉽게 얘기해서
명령어 레지스터에 들어오는 연산코드를 해독 함.
그 해독한 것을 사상방식(mapping) 을 통해서 제어주소 레지스터(CAR)에 저장됨.
사상 방식을통해서 결정이 확정되면 결정된 주소는 CAR에 저장됨.
즉 만약에
이러한 명령어 인출 사이클이 들어왔다고 한다면 이 연산할 코드는 명령어 해독기에 집어넣고
이 명령어는 사상방식을 통해 주소를 결정하고 CAR에 저장.
명령어 해독을 하기 위해 사용되는 방법
사상(mapping)방식 : 명령어 해독기가 연산코드를 이용해 제어 기억장치 내 해당 실행 사이클 루틴의 시작 주소를 찾는
과정
즉 명령어의 연산코드(명령어 코드)를 사상방식과 조합해서 시작 주소를 찾음.
예시로 연산 코드가 0001이라고 한다면
사상 함수는 1 XXXX 00임.
그렇다면 1 0001 00이 됨. 즉 주소는 68번지가 됨.
마찬가지로 연산 코드가 0110이라고 한다면
사상 방식은 1 XXXX 00임 . 그렇기에 1 0110 00이 됨. 즉 주소는 64+8+16=88번지가 됨.
마이크로 명령어 형식
연산 필드가 2개면 2개의 마이크로 연산들을 사용 가능
= 연산 필드가 2개라면 명령어(ADD,SUM)등 2개 사용 가능.
조건(CD)필드는 분기에 사용될 조건 플래그 지정
분기(BR)필드: 분기의 종류와 다음에 실행할 마이크로명령어의 주소를 결정하는 방식
주소(AD)필드: 분기가 발생하는 경우를 위해 목적지 마이크로명령어의 주소를 가짐.
연산 필드1에 위치할 마이크로 - 연산들
이것이 무엇이냐면 예를 들어 MAR<-PC라고 하면 PC값이 MAR에 들어간다 이것을 표현 해보자면
move the content of PC to MAR 를 의미함으로 PCTAR로 줄여서 기호로 표현한 것.
이런식으로 마이크로 연산들을 줄여 쓴 것을 기호로 표시한 것이 저 표임.
조건필드
조건 필드 : 두 비트로 구성되며, 분기의 조건으로 사용
조건 필드는 두 비트들로 구성되며 이 필드는 다음에 위치할 분기 필드를 위한 조건을 나타낸다.
먼저,이 필드의 값이 '00'이라고 치자. 현재의 마이크로명령어의 실행이 완료된 다음에는 무조건
분기(unconditional branch)한다는 것을 의미한다. 이 경우에 분기될 목적지 마이크로명령어
주소는 이 형식의 마지막에 있는 주소 필드 값이 된다. 즉 주소 필드의 내용이 CAR로 적재됨.
만약 조건 필드의 값이 '01'로 셋팅되면 I비트의 값에 따라 분기여부가 결정.
여기서 I비트는 간접 주소지정 방식을 나타내는 비트이며 만약 I비트가 '1'이라고 한다면
간접 사이클 루틴을 호출하여 기억장치로부터 오퍼랜드의 유효 주소를 인출한다.
조건 필드의 코드 지정
두 비트로 구성되며 분기의 조건으로 사용 됨
-U : 무조건 분기
- I : 만약 I=1이며, 간접 사이클 루틴 호출
-S : 누산기에 저장된 데이터 부호가 1이면 분기
-Z : 누산기에 저장된 데이터가 0이면, 분기
분기 필드 : 두 비트로 구성되며, 분기 동작을 지정.
조건 필드의 조건이 만족되면, ADF 필드의 내용을 CAR로 적재 → 그 주소로 분기 (JUMP 혹은 CALL)
RET: 서브루틴으로부터 복귀 (SBR에 저장된 내용을 CAR로 적재)
MAP:사상 방식에 의하여 분기 목적지 주소 결정
4.4 마이크로프로그래밍
간접 사이클 루틴
'컴퓨터 구조론' 카테고리의 다른 글
[컴퓨터 구조 5장 3편] ROM과 캐쉬 메모리 (1) | 2022.12.04 |
---|---|
[컴퓨터 구조론 5장 2편 ] 반도체 기억장치와 종료 RAM (1) | 2022.12.04 |
[컴퓨터구조론 5장 ]RAM의 역할과 RAM이 하는 일을 알아보자 (1) | 2022.12.04 |