컴퓨터구조 제 12 강제어장치
학습목차 r 개념으로살펴보는 CPU 속의제어장치 r 마이크로연산 r 제어장치의동작 r 마이크로프로그램을이용한제어 컴퓨터구조 2 12. 제어장치
학습목표 r 프로세스내의제어장치의기능과역할을공부한다. r 마이크로연산의표현을공부하다. r제어장치의구성과마이크로연산을공부한다. r제어장치의구현방법을알아본다. r 마이크로프로그램을이용한제어장치의구조와동작을공부한다. r 마이크로명령어순서제어기법과실행을알아본다 컴퓨터구조 3 12. 제어장치
개념으로살펴보는 CPU 속의제어장치 r 중앙처리장치 r 산술논리연산장치 (ALU) r 레지스터집합 r 제어장치 r 내부버스 r 제어장치 r 명령어를수행하는데필요한제어신호를만들어내는장치 r 제어장치내의구성 r 순서제어논리장치 (sequencing logic), r 제어장치레지스터들 (control unit registers), r 명령어해독기 (decoder), r 제어메모리 (control memory) r 제어장치레지스터 r 제어주소레지스터 (control address register) r 제어버퍼레지스터 (control buffer register) r 서브루틴레지스터 (subroutine register) 컴퓨터구조 4 12. 제어장치
제어장치의구성 컴퓨터구조 5 12. 제어장치
마이크로연산 r 마이크로- 연산 (Micro-Operations) r 명령어인출및실행사이클내의여러개의단계 (step) 에서실제수행되는동작 r 프로그램수행에서가장기본단위의수행 r 프로세서의기능적연산 r 원자연산 (atomic operation) r 완전한명령어의사이클 r 인출사이클 r기억장치로부터명령어를 CPU로읽어오는과정 r 간접사이클 r 간접주소지정방법을사용하는경우, 유효주소를찾는사이클 r 실행되는사이클 r 해당명령어에맞게동작 r 인터럽트사이클 r인터럽트발생여부를파악, 인터럽트가발생했으면인터럽트서브루틴이수행될수있도록해주는사이클 컴퓨터구조 6 12. 제어장치
프로그램실행의계층구성 프로그램실행 명령어사이클 명령어사이클 명령어사이클 명령어사이클 인출간접실행인터럽트 mop mop mop mop mop 컴퓨터구조 7 12. 제어장치
인출사이클의마이크로연산 r 명령어인출에필요한레지스터 r 기억장치주소레지스터 (Memory Address Register : MAR) r 기억장치버퍼레지스터 (Memory Buffer Register : MBR) r 프로그램카운터 (Program Counter : PC) r 명령어레지스터 (Instruction Register : IR) 컴퓨터구조 8 12. 제어장치
인출사이클의마이크로연산 t1 : MAR (PC) t2 : MBR memory PC (PC) + 1 t3 : IR (MBR) r r r r 첫번째클럭 r 다음명령어의주소가저장된 PC 내용을 MAR로이동 두번째클럭 r r MAR에저장된주소에근거, 기억장치에저장되어있는명령어를 MBR로이동 PC를명령어바이트수만큼증가시켜서다음명령어의주소를표시 세번째클럭 r MBR에저장된명령어내용을실행하기위해서 IR로이동, 명령어인출단계를완료 인출단계에서 PC의증가단계가세번째클럭에서수행될수도있음 t1 : MAR (PC) t2 : MBR memory t3 : PC (PC) + 1 IR (MBR) 컴퓨터구조 9 12. 제어장치
간접사이클의마이크로연산 r 간접사이클 r 간접주소지정방식을사용하는명령어에서오퍼랜드부분의유효주소를결정하는데사용 연산코드 A 기억장치 연산코드 R 주소 레지스터세트 기억장치 EA 데이터 주소 EA 데이터 간접주소지정방식 레지스터간접주소지정방식 컴퓨터구조 10 12. 제어장치
간접사이클의마이크로연산 t1 : MAR (IR(addr)) t2 : MBR (memory or register) t3 : IR(addr) (MBR(addr)) r 첫번째클럭 r 명령어레지스터에저장되어있는명령어의오퍼랜드부분즉, 주소부분을 MAR 로이동 r 유효주소가아니면, 유효주소가저장되어있는곳의주소 r 두번째클럭 r 유효주소가저장된기억장치또는레지스터의내용을 MBR에저장 r 세번째클럭 r MBR에저장되어있는유효주소를명령어레지스터의주소부분으로이동 r 명령어레지스터의명령어오퍼랜드부분에유효주소저장 r 실행사이클로이동 컴퓨터구조 11 12. 제어장치
실행사이클의마이크로연산-ADD r ADD 명령어의어셈블리언어 r 기억장치 X 번지의내용을레지스터 R과덧셈연산을수행한후, 다시레지스터 R에저장 ADD R,X ; R R + Memory(X) r 마이크로 - 연산표현 t1 : MAR (IR(addr)) t2 : MBR memory t3 : R1 R1 + (MBR) r 첫번째클럭 r 인출과정에서읽혀진명령어가저장된명령어레지스터의주소부분을 MAR로이동 r 두번째클럭 r 해당주소의기억장치내용을 MBR로이동 r 세번째클럭 r 기억장치에서부터이동된데이터가저장된 MBR의내용과 R1을덧셈, 그결과값을 R1 에저장 컴퓨터구조 12 12. 제어장치
실행사이클의마이크로연산-ISZ(Increment and Skip-if-zero) r 오퍼랜드의값을하나증가시키고그결과값이 0 이면다음명령어를실행하지않고건너뛰는명령어 r 어셈블리표현 ISZ X ; if X+1 = 0, Skip r X번지의내용을 1 증가, 그결과가 0 이면다음명령어를실행하지않고건너뛰는명령어실행 컴퓨터구조 13 12. 제어장치
실행사이클의마이크로연산-ISZ(Increment and Skip-if-zero) r 마이크로 - 연산 t1 : MAR (IR(addr)) t2 : MBR memory t3 : MBR (MBR)+1 t4 : memory (MBR) If ((MBR) = 0) then (PC PC + I) r 첫번째사이클 r 명령어레지스터내의주소부분내용 ( 어셈블리표현에서 X) 을 MAR에적재 r 두번째사이클 r MAR 에서제시된기억장치주소에의거, 기억장치에저장된데이터를 MBR로적재 r 세번째클럭 r MBR의내용을하나증가시킨다. r 네번째클럭 r 증가된 MBR 의내용을원래의기억장치에저장 r MBR의내용을검사하여서그값이 0 이면프로그램카운터를증가시켜서다음의명령어를하나건너뛰고그다음명령어수행 컴퓨터구조 14 12. 제어장치
실행사이클의마이크로연산-BSA( BSA(Branch Branch and Save return address) r 분기하고복귀할주소를저장하는명령어로서브루틴프로그램으로분기하기위하여사용되는명령 r 어셈블리표현 BSA X r BSA 명령어다음에있는명령어를 X 번지에저장 r X+1 번지부터실행을계속하는명령어 r X번지에저장된데이터는복귀주소 r 서브루틴의시작주소는 X+1 번지 컴퓨터구조 15 12. 제어장치
실행사이클의마이크로연산-BSA( BSA(Branch Branch and Save return address) r 마이크로- 연산 t1 : MAR (IR(addr)) MBR (PC) t2 : PC (IR(addr)) memory (MBR) t3 : PC PC + 1 r 첫번째클럭 r 명령어레지스터의주소부분내용 ( 어셈블리표현에서 X) 을 MAR에적재 r 동시에프로그램카운터의내용, 다음명령어주소를 MBR에적재 r 두번째클럭 r 명령어레지스터의주소부분내용을프로그램카운터에적재 r X번지에 MBR의내용저장. 복귀주소가저장 r 세번째클럭 r 서브루틴을시작하기위해서 X+1 번지가되도록프로그램카운터를증가 컴퓨터구조 16 12. 제어장치
인터럽트사이클의마이크로연산 r 마이크로연산 t1 : MBR (PC) t2 : MAR SP( 스택포인터 ) PC Routine-address t3 : Memory (MBR) r 첫번째클럭 r 복귀주소를저장하기위해서프로그램카운터내용을 MBR로이동 r 두번째클럭 r 스택포인터를 MAR로이동, 인터럽트처리루틴시작주소를 PC에적재 r 스택포인터는 MBR에저장되어있는내용을스택에저장하기위해저장할위치를지정하기위해사용 r 세번째클럭 r MBR의내용을 MAR에근거하여해당스택포인터의스택에저장 컴퓨터구조 17 12. 제어장치
명령어사이클코드 r 명령어사이클코드 (Instruction Cycle Code : ICC) r 프로세서가프로그램을수행하면서명령어가명령어사이클의어느부분에있는지를나타내는코드 00 : 인출 01 : 간접 10 : 실행 11 : 인터럽트 컴퓨터구조 18 12. 제어장치
명령어사이클의흐름도 11( 인터럽트 ) ICC? 00( 인출 ) 10( 실행 ) 01( 간접 ) 인터럽트설정 명령어인출 opcode 주소획득 ICC =00 명령어실행 ICC =10 No 간접주소지정? Yes 인터럽트가능인터럽트? No ICC =10 ICC =01 ICC =11 ICC =00 컴퓨터구조 19 12. 제어장치
제어장치의동작 r 프로세서를제어하는데이용 r 프로세서를제어하기위해필요한기능적요구사항 r 프로세서의기본구성요소들을정의 r 산술논리연산장치 (ALU), 레지스터들, 내부데이터통로, 외부데이터통로, 제어장치로구성 r 프로세서가수행할마이크로-연산들을정의 r 레지스터들간의데이터전송유형 r 레지스터로부터외부로의데이터전송유형 r 외부로부터레지스터로의데이터전송유형 r 산술혹은논리연산의수행유형 r 제어장치가수행할기능을결정 r 순서제어 (Sequencing) 기능 r 실행 (Execution) 기능 컴퓨터구조 20 12. 제어장치
제어장치모델 r 여러가지의입력이존재 r 입력의조합으로제어신호를생성, 출력 명령어레지스터 플래그 CPU 로의제어신호 클럭 제어장치 제어버스로부터의제어신호 제어버스로의제어신호 제어버스 컴퓨터구조 21 12. 제어장치
제어장치로들어오는입력 r 클럭 (Clock) 신호 r 제어장치동작의타이밍기준이되는신호 r 하나의클럭펄스마다하나의마이크로- 연산혹은마이크로- 연산들의집합이수행 r 명령어레지스터 r 명령어의연산코드 (operation code) 를제어장치로입력시켜서수행할연산을결정 r 플래그 (flag) 들 r 프로세서의상태를나타내거나이전 ALU 연산의결과에대한검사에사용 r 제어버스로부터입력되는제어신호들 r시스템버스의제어버스부분을통해들어오는신호 r 인터럽트요구신호및확인신호 컴퓨터구조 22 12. 제어장치
제어장치로부터나가는출력들 r 프로세서내제어신호들 r 레지스터간의데이터를전송할때발생 r 특정산술논리연산 (ALU) 기능을활성화시킬때출력 r 제어버스를통해서출력되는제어신호들 rcpu 밖의기억장치로보내지는제어신호 r 입출력장치모듈로보내지는제어신호 컴퓨터구조 23 12. 제어장치
명령어사이클에서의제어신호 r 인출사이클에서제어신호 r t1의 MAR (PC) r MAR 의내용을주소버스에싣도록게이트를열어주는제어신호 r t2 의 MBR memory r 제어버스상의기억장치읽기제어신호를활성화 r 데이터버스의내용이 MBR에저장되도록게이트를열어주는제어신호 r t2 의 PC (PC) + 1 r 프로그램카운터의내용에 1을더하고, 결과를프로그램카운터에저장하는제어신호 r t3 의 IR (MBR) r MBR과 IR 사이에있는게이트를열어주기위한제어신호 r 간접사이클에서의제어신호 r t1 의 MAR (IR(Address)) r 명령어레지스터의주소가 MAR로전달되기위한게이트를열어주기위한제어신호 r t2 의 MBR memory r 시스템버스에서읽기제어신호가활성화 r 데이터버스의내용이 MBR에저장되도록게이트를열어주는제어신호 r t3 의 IR(Address) (MBR(Address)) r MBR과 IR 사이에있는게이트를열어주기위한제어신호 컴퓨터구조 24 12. 제어장치
명령어사이클에서의제어신호 r 실행사이클에서제어신호 r 연산코드 (operation code) 를검사 r 검사결과에근거하여실행사이클수행을위한마이크로 - 연산시퀀스를결정 r 이에알맞은제어신호가발생 r 인터럽트사이클에서제어신호 r t1 의 MBR (PC) r MAR 의내용을주소버스에싣도록게이트를열어주는제어신호 r t2 의 MAR SP, PC Routine-address r 주소버스의게이트를열어주는제어신호 r t3 의 Memory (MBR) r 시스템버스에서쓰기제어신호가활성화 r 데이터버스의내용이기억장치에저장되도록게이트를열어주는제어신호 컴퓨터구조 25 12. 제어장치
데이터통로상의제어신호 C 5 C 11 M B R C 12 C 8 C 2 C 3 C 4 C 10 PC IR AC C 13 C 6 C7 C9 M A R C 2 제어장치 플래그 산술논리연산장치 C 0 Clock 제어신호 컴퓨터구조 26 12. 제어장치
발생하는제어신호 명령어사이클마이크로 - 연산발생제어신호 인출 t 1 : MAR (PC) t 2 : MBR memory PC (PC) + 1 t 3 : IR (MBR) C 2 C 5, C Read C 4 간접 t 1 : MAR (IR(Address)) t 2 : MBR memory t 3 : IR(Address) (MBR(Address)) C 8 C 5, C Read C 4 인터럽트 t 1 : MBR (PC) t 2 : MAR SP PC Routine-address t 3 : memory (MBR) C 1 C 12, C write 컴퓨터구조 27 12. 제어장치
제어장치의구현 r 하드와이어구현 (hardwired implementation) 또는고정배선방식 r 제어신호생성을위해서순차와조합논리를구성 r 이회로의입력신호들은출력신호들로변형 r 출력신호들이제어신호 r 마이크로프로그램을이용한구현 (micro-programmed implementation) r 제어신호생성을위해서순차및조합논리를사용하지않음 r 제어신호를위한마이크로명령어를저장장치에저장 r 이것을실행시켜서제어신호를발생 r 마이크로순차기가대표적 컴퓨터구조 28 12. 제어장치
하드와이어방식의제어장치 명령어레지스터 해독기 C 0 C 1 C 2 C k T 1 클럭 시간발생기 T 2 T 3 제어장치 플래그 T n C 0 C 1 C 2 C 3 C m 제어신호 컴퓨터구조 29 12. 제어장치
마이크로순차기 (Micro-sequencing) Opcode 플래그 다음명령어의주소생성 레지스터 CLK 마이크로코드메모리 mops 컴퓨터구조 30 12. 제어장치
마이크로프로그램을이용한제어 r 마이크로명령어 r 제어장치의구조와동작 r 마이크로명령어의순서제어 r 마이크로명령어의실행 컴퓨터구조 31 12. 제어장치
마이크로명령어 r 마이크로 - 연산은실제적으로기계어 r 이진비트로표현 r 사용의편리성을위해, 기호들 (symbols) 로표현해서나타낸것을마이크로프로그래밍언어 (micro-programming language) 라고한다 r 명령어실행사이클 r 마이크로명령어로표현 r 인출부사이클 r 간접부사이클 r 실행부사이클 r 인터럽트부사이클 r 마이크로명령어 (micro-instruction) instruction) r 마이크로 - 연산들의집합 r 마이크로프로그램 (micro-program) r 마이크로명령어들을이용하여작성된프로그램 r 펌웨어 (firmware) r 루틴 (routine) r 마이크로프로그램에서 CPU의특정기능을수행하기위한마이크로명령어들의그룹 r 명령어사이클에서는인출사이클루틴, 실행사이클루틴, 인터럽트사이클루틴등이존재 컴퓨터구조 32 12. 제어장치
마이크로프로그래밍을이용한제어장치의특징 r 제어신호는비트에의해표현 r 제어신호선은 1과 0 비트값에의해 on 혹은 off r 마이크로-연산은 0과 1로이루어진제어단어 (control word) 로표현 r 기계코드명령어는일련의제어단어들로표현 r 조건에따라다음수행할마이크로명령어를지정하기위한주소추가 r조건이만족되는경우에수행될다음제어단어의위치표현 컴퓨터구조 33 12. 제어장치
마이크로명령어형식 CPU 내부의제어신호 마이크로명령어주소 시스템버스제어신호 분기조건 - 무조건 - zero - 오버플로우 - 간접비트 (a) 수평적마이크로명령어 기능코드 기능코드 기능코드 마이크로명령어주소 분기조건 (b) 수직적마이크로명령어 컴퓨터구조 34 12. 제어장치
수평적마이크로명령어 r 마이크로명령어의각필드의비트가각제어신호에대응되도록하는방식 r CPU 내부의각제어신호들과시스템버스의각제어신호들에대하여필드들이할당 r 분기에서사용될조건을나타내는조건필드와분기발생시다음에실행될마이크로명령어의주소를가지고있는필드존재 r 수평마이크로명령어의동작 r 마이크로명령어의실행을위해비트값이 1로표시된모든제어선들을 ON r 비트값이 0인모든제어선들을 OFF r발생되는제어신호들은한개이상의마이크로- 연산을수행 r 만약조건비트의값이만족되지않으면 r 다음에위치한마이크로명령어가순서대로실행 r 만약조건비트의값이만족되면 r다음에실행될마이크로명령어는주소필드에의하여지정 r 수평마이크로명령어의장단점 r 하드웨어가간단하고, 해독에따른지연시간이없다. r 더큰용량의제어기억장치가필요하다. 컴퓨터구조 35 12. 제어장치
수직적마이크로명령어 r 코드화된비트들을이용하여마이크로명령어의각기능코드 (function code) 를구성하는방식 r 제어기억장치의용량줄임 r 마이크로명령어의연산필드에적은수의코드화된비트들을포함 r 해독기를이용하여그코드를필요한수만큼의제어신호들로확장하는방식 r 장점 r 마이크로명령어의비트수가감소 r 단점 r 제어신호발생을위하여코드화된비트들을해독하기위한지연이발생 컴퓨터구조 36 12. 제어장치
수직적마이크로명령어제어신호발생 연산필드 1 연산필드 2 3X8 해독기 3X8 해독기 제어신호 제어신호 컴퓨터구조 37 12. 제어장치
제어장치의구조와동작 r 명령어해독기 (instruction decoder) r 제어주소레지스터 (control address register: CAR) r 제어기억장치 (control memory) r 제어버퍼레지스터 (control buffer register: CBR) r 서브루틴레지스터 (subroutine register: SBR) r 순서제어모듈 (sequencing module) 컴퓨터구조 38 12. 제어장치
제어장치의마이크로구조 명령어레지스터 명령어해독기 조건 플래그 순서제어모듈 제어주소레지스터 (CAR) SBR 제어기억장치 제어버퍼레지스터 (CBR) 다음주소 해독기 내부제어신호들 외부제어신호들 컴퓨터구조 39 12. 제어장치
제어기억장치 r 전반부 r명령어사이클의인출, 간접, 인터럽트등의부사이클에해당하는공통루틴들을저장 r 후반부 r 명령어의실행사이클루틴들이저장 r 순차적으로실행 간접또는실행을위한분기 실행을위한분기 인출을위한분기 Opcode 루틴을위한분기 인출또는인터럽트를위한분기 인출또는인터럽트를위한분기 인출사이클루틴 간접사이클루틴 인터럽트사이클루틴 실행사이클시작 AND 루틴 ADD 루틴 인출또는인터럽트를위한분기 IOF 루틴 컴퓨터구조 40 12. 제어장치
제어기억장치의마이크로형식 r 두개의마이크로-연산들을동시에수행가능 r 조건필드는분기에사용될조건플래그를지정 r 주소필드의분기가발생하는경우에목적지마이크로명령어주소로사용 3- 비트 3- 비트 2-비트 2-비트 8-비트 연산필드 1 연산필드 2 조건필드 조건필드 주소필드 2(ADF) 컴퓨터구조 41 12. 제어장치
마이크로프로그램을이용한제어장치의동작과정 명령어레지스터 제어장치 해독기 ALU 플래그 클럭 순서제어논리장치 제어주소레지스터 읽기 제어메모리 제어버퍼레지스터 다음주소제어 해독기 CPU 내부로의제어신호 시스템버스로의제어신호 컴퓨터구조 42 12. 제어장치
마이크로명령어의순서제어 r 제어장치의기본동작 r 마이크로명령어의순서제어 r 제어기억장치로부터다음마이크로명령어를읽어옴 r 마이크로명령어의실행 r 마이크로명령어실행에필요한제어신호들발생 r 순서제어기법 r두개의주소필드 r한개의주소필드 r 가변형식 컴퓨터구조 43 12. 제어장치
제어장치에서의순서제어모듈 루틴주소 ( 사상결과 ) I 1 I 1 C 주소선택회로 L S 1 S 0 S 1 S 0 3 2 1 0 MUX 1 SBR L 주소 +1 1 I S Z 1 I S Z MUX 2 ( 조건선택 ) 조건 CAR 제어기억장치 m-ops CD BR ADF 컴퓨터구조 44 12. 제어장치
두개의주소필드가있는경우의분기제어 r 방법이간단한장점 r 다른방법들에비해더많은마이크로명령어필요 CAR 주소해독기 제어메모리 CBR 제어 주소 1 주소 2 플래그 분기논리 주소선택 곱셈기 IR 컴퓨터구조 45 12. 제어장치
한개의주소필드가있는경우의분기제어 r 주소필드의수가하나로줄어듬 r 주소필드가자주사용되지않아비효율적 주소해독기제어메모리 CBR 제어 주소 +1 CAR 플래그 분기논리 주소선택 곱셈기 IR 컴퓨터구조 46 12. 제어장치
가변형식을위한분기제어 r각분기마이크로명령어의실행에한사이클전체가사용 주소해독기 제어메모리 CBR 주소 가능 분기제어필드 전체필드 게이트, 기능논리 주소필드 +1 CAR 플래그 분기논리 곱셈기 IR 컴퓨터구조 47 12. 제어장치
마이크로명령어의실행 r 마이크로명령어의사건 (Event) r 인출 r 마이크로명령어를제어기억장치로부터제어버퍼레지스터로읽어오는과정 r 실행 r 제어신호들이발생하는과정 r 생성된제어신호는프로세서의각부분을제어 r 나머지신호는외부제어버스나외부인터페이스 컴퓨터구조 48 12. 제어장치
제어장치에서마이크로명령어의실행 명령어레지스터 ALU 플래그 클럭 순서제어논리장치 제어주소레지스터 제어메모리 제어버퍼레지스터 제어논리 내부제어신호 외부제어신호 컴퓨터구조 49 12. 제어장치
마이크로명령어의코드화 r 직접코드화방식 r 마이크로명령어가실행될때, 각필드가해독되어제어신호들을발생 r 간접코드화방식 r 간접주소지정방식의개념과유사하게한필드가다른필드를해석하는방법을지정하는데사용 컴퓨터구조 50 12. 제어장치
직접코드화와간접코드화 Field Field Field 해독기논리 해독기논리 해독기논리 제어신호 (a) 직접부호화 Field Field Field 해독기논리 해독기논리 해독기논리 해독기논리 (b) 간접부호화 제어신호 컴퓨터구조 51 12. 제어장치