1.제어장치의 개요
1-1 제어장치의 역할
기억장치에 저장된 프로그램으로부터 명령어를 순차적으로 하나씩 읽어내어 연산코드 부분을 해독한 후 그 결과에 따라 컴퓨터 시스템의 각 요소를 동작시키는 제어신호를 발생시켜 명령어를 수행한다.
- 하나의 명령어는 한 클럭동안 수행되는 마이크로연산의 집합으로 구성
- 명령어의 실행은 이러한 마이크로 연산의 연속적인 반복으로 이루어짐
제어장치는 요구되는 마이크로연산을 연속적으로 수행하게 하는 신호를 내보내어 명령어를 수행하게 함
1-2 제어장치와 처리장치의 관계
연산을 수행하는 처리장치와 연산을 수행하도록 제어하는 제어장치로 나뉘어져 있다.
제어장치에서 제어신호를 내보내어 처리장치가 구동되고 처리장치에서 마이크로연산이 수행되고 그 과정에서 상태신호가 발생되어 제어장치로 감. 전체 시스템을 제어함
제어단어는 단순히 처리장치만을 구동시키는 선택신호들의 모임이다
제어신호는 제어단어와 마이크로명령어가 위치한 주소로 구성
2.제어장치의 구성
프로그램카운터에서 특정 명령을 수행하기위해서 명령어가 들어있는 주소를 알아야 한다. 특정 주소값을 가진 장치가 필요 그것을 PC라고함
1.PC에 저장된 주소로 기억장치에 접근함. memory adress register 를 거쳐서 해당번지에 있는 명령어가 읽혀져서 옮겨짐
2. 기억장치에서 읽어진 명령어가 memory buffer register 라는 것을 통해서 명령어 레지스터(IR)에 옮겨지고 PC를 1증가시킴 (PC에 들어있는 주소값은 다음 번지를 가리킨다)
3. ir로 옮겨진 명령어는 명령어레지스터에 들어있는 명령어는 해독할 필요가 있음 해독기로 옮겨짐 , 주소값에 들어있는 오퍼랜드를 끄집어옴
4. 주소처리기에 들어온 주소값,데이터값은 다시 해당되는 주소값에 들어있는 주소를 끄집어낼수있도록
5. 연산코드를 해독하여 명령어가 수행을 위한 제어신호발생
3.제어장치의 구현방법
제어장치의 유형
3-1 마이크로프로그램에 의한 제어장치
-제어단어와 같은 제어정보를 특별한 기억장치에 보관시켜놨다가 필요에의해 하나하나 끄집어내서 동작시킴
-프로그램에 의한 제어방식
- 장점: 제어신호를 수정하고자 할떄 융통성이 뛰어남
-단점: 프로그램이 길면길수록 제어가 시간이 많이 걸림
대부분의 오늘날 컴퓨터는 마이크로프로그램에의해 제어됨
3-2 하드웨어에 의한 제어장치
-순서회로같은 게이트와,플립플롭으로 이루어짐
-장점 - 고속동작가능
-단점: 회로의 동작방법이 바뀌면 다시 설계해야함 하드웨어의 결선을 뜯어서 해야되서
4.마이크로프로그램에 의한 제어장치
제어방식
제어에 관련된 여러가지 값들. 선택신호들을 필드들을 묶어가지고 표현하면 제어단어임.
제어단어를 특정 공간에 저장해서 특정순간에 하나한 끄집어내서 동작시킴
제어변수값들을 여러개의 단어로 결합하여 표현하고 그것을 연속적으로 읽어서 제어논리회로에 공급하여 동작시키는 방식
제어장치의 역할
일련의 마이크로 연산을 순차적으로 수행하도록 제어
제어를 위해 제어변수로서 제어단어를 사용한다.
제어단어
0과1의 스트링의표현
각 제어단어는 마이크로명령어가 포함 : 마이크로 명령어는 하나 혹은 다수의 마이크로 연산을 나타낸다
제어단어를 이용하여 처리장치의 여러 구성요소들이 특정 시점에서 연산을 시작하도록 프로그램이 가능
제어단어를 제어장치 내 기억장치에 보관
제어단어 하나하나가 마이크로명령어임 . 이것들을 마이크로 프로그램이라고 함
마이크로 프로그램 안에 들어있는 마이크로명령어들이 하나하나 빠져나가서 처리장치를 동작시킴
구성도
제어장치내에서 제어단어가 보관되는 기억장치가 ROM임. 영구적으로 보관됨
제어기억장치 : 모든 제어정보(제어신호) 를 항상 저장하고 있는 기억장치(ROM)
제어주소레지스터(CAR) : 제어기억장치에있는 마이크로 명령어의 주소를 나타냄
다음주소생성기: 다음에 수행될 마이크로명령어의 주소를 만들어냄
제어데이터레지스터(CDR) : 제어기억장치에서 읽어온 마이크로명령어를 저장하고있음 (시스템의 간소화를 위해 일반적으로 생략)
제어기억장치(ROM)
마이크로 명령어들이 저장되어있다 ex) ADD R1,R2 R2<- R1+R2 이런 동작을 수행하는것을 마이크로명령어라고함
이는 ABDFH필드로 나타내는 제어단어로 표현할수 있다. 이런 제어단어가 제어기억장치내에 있어야되는데
ROM안에는 수많은 마이크로명령어가있고 순서가 있어서 수행되어야함 순서를 나ㅏ타내는 제어정보가 필요하고 이게
제어단어에다가 추가되서 표현되어있고 주소정보까지 포함된 전체적 내역을 제어신호라고 함
다음주소생성기
-다음에 수행될 마이크로 명령어의 주소를 만들어냄
CAR안에는 주소정보가 보관되어있는데 이 주소값을 바꿔주는 방법은 +1증가하거나 이값을 그대로 옮겨주면 현재주소가 옮겨짐( CAR에 적재)
제어주소레지스터(CAR)
다음에 읽을 마이크로명령어의 주소값이 저장되어있음
제어데이터레지스터(CDR)
다음 주소가 계산되어 다음 마이크로명령어가 제어기억장치로부터 읽혀질때까지 현재의 마이크로 명령어를 저장
MUX1: 제어순서를 결정시켜주는 순서기
MUX2 : 순서를 결정하기위해서, 다음순서냐? 현재 주소냐 ? 하는것을 결정하기위해서 MUX1과 결합을해서 결정을 함
ROM: 해당되는 제어신호가 보관되어있는 기억장치
CAR : 다음 주소값을 보관
이러하여 제어장치에 의해서 발생되는 마이크로명령어들이 처리장치에서 동작을함
제어장치의 동작
제어기억장치에 저장된 마이크로명령어(제어단어 포함) 에 의해 동작
마이크로명령어들은 어떻게 구성되어있는가? : 모두 26비트로 구성 => 이를 제어신호라고 정의함
-처리장치제어를 위한 16비트(제어단어)
-다음 주소를 선택하기 위한 10비트
26비트의 구체적인 내역
-16비트: 처리장치 제어를 위한 제어단어
-1비트: 수많은 마이크로명령어(내부주소) 중에 하나를 쓸건지 주기억장치(외부)에 있는 명령어를 쓸건지 정해줄 필요가 있다. 즉 mux1에서 외부에서 입력한 주소와 내부 마이크로 명령어의 주소중 하나를 선택
-3비트: mux2의 8개 입력중 하나를 선택 8x1mux이고 8개 신호중에 1개를 선택하려면 선택신호가 3비트가필요함
-6비트: 제어기억장치 안에 있는 마이크로 명령어에 주소를 선택하기 위해 6비트가 할당 (ROM의 64단어를 선택하기 위한 주소비트)
64(마이크로명령어가 64개 있음. 기억공간의수) x 26(마이크로명령어가 26비트로 이루어짐) ROM
제어장치의 동작
제어기억장치에 있는 마이크로명령어들이 빠져나오기 위해서는 먼저 어떤 기억장치의 어떤번지에있는 명령어를 뺄지 결정해야함 그럼 특정주소값이 CAR에 있어야함 여기서 특정주소값은 다음주소결정순서기에의해 만들어짐
처리장치에 의해 만들어진 상태값에 의해서 mux2를 구동시켜서 현재 들어있는 CAR에 있는 주소값을 증가시킬것인지 아니면 현재주소값을 그대로쓸려면 적재라는 동작을 수행시킴
CAR의 새로운 주소는 ROM의 다음 마이크로 명령어를 지정한다
구성요소별 제어장치의 동작
MUX1 : ROM에 들어있는 주소값을 쓸건지, cpu가아닌 RAM(주기억장치)에 들어있는 외부주소를 쓸건지 결정
- 선택신호0 : 현재의 마이크로명령어의 주소부분을 CAR로 적재
- 선택신호 1 : 외부주소를 CAR로 적재
MUX2 : CAR안의 주소값을 다음주소로 바꿀건지 현재값으로 쓸건지 결정 (상태비트의 값에 따라서 결정됨)
6장 제어장치2
1. 마이크로 명령어 형식
제어기억장치에 있는 제어 단어의 내역
마이크로명령어의 구성내역(26비트 예)
A~H : 16bit 처리장치를 구동시키는데 필요한 제어단어
나머지 10bit : 제어장치 안에서 마이크로연산을 수행하기위해서 필요로하는 나머지비트
mux1 필드 : ROM에들어있는 명령어를 쓸것인가 중앙처리장치외부에있는 RAM(주기억장치) 에있는 내용을 쓸것인가
mux2 필드 : 입력이8개고 출력이1개인 mux는 필요로하는 선택비트수는 3비트이다 상태비트의 값에따라 CAR을 구동함
ADRS필드 : ROM의 규격이 64x26 . 기억공간의 개수가 64개. 6비트로 64개의 공간(ROM의 단어들) 중 선택
2. 마이크로프로그램의 개념
ROM에 저장된 일련의 마이크로명령어들의 집합 이러한 마이크로프로그램을 이용하여 제어장치를 구현
3. 마이크로프로그램의 작성
생략
4. 하드웨어에 의한 제어
생략
'수업 > 컴퓨터 구조' 카테고리의 다른 글
12,13 입출력시스템 (1) | 2024.10.26 |
---|---|
10.11 기억장치 (4) | 2024.10.12 |
8.9.중앙처리장치 (0) | 2024.09.27 |
명령어 형식 (0) | 2024.09.05 |