Presentation is loading. Please wait.

Presentation is loading. Please wait.

마이크로프로그램된 제어 (Microprogrammed Control)

Similar presentations


Presentation on theme: "마이크로프로그램된 제어 (Microprogrammed Control)"— Presentation transcript:

1 마이크로프로그램된 제어 (Microprogrammed Control)
Lecture #7

2 강의 목차 Control Unit Control Memory Sequencing Microinstructions
Microprogram Example Design of Control Unit Nanostorage and Nanoprogram 컴퓨터시스템구조

3 제어 장치 (1) 제어 장치(Control Unit) 제어 장치 구현 방식
명령어 실행을 위해 요구되는 마이크로 연산들을 연속적으로 수행하는 제어 신호를 보냄으로써 명령어 실행을 제어 Control signal(that specify microoperations) in a bus-organized system groups of bits that select the paths in multiplexers, decoders, and arithmetic logic units 제어 장치 구현 방식 Hardwired Control Microprogrammed Control 컴퓨터시스템구조

4 제어 장치 (2) 제어 장치 구현 방식 (계속) Hardwired Control : 5장 참조
제어 논리가 게이트, 플립플롭, 디코더 그리고 다른 논리 장치를 이용하여 구현 장점: 빠른 처리 속도, 단점: 설계 변경 시에 회로 변경 I R Status F/Fs Control Data Combinational Logic Circuits Control Points CPU Memory Timing State Ins. Cycle State Control Unit's State 컴퓨터시스템구조

5 제어 장치 (3) 제어 장치 구현 방식 (계속) Microprogrammed Control
제어 정보를 제어 메모리에 저장하고, 제어 메모리에 프로그램된 제어 정보를 이용하여 원하는 일련의 마이크로 연산을 실행 장점: 제어 메모리에 저장된 마이크로 프로그램을 수정하여 기능 변경 단점: 늦은 처리 속도 Status F/Fs Control Data Next Address Generation Logic C S A R Control Storage (-program memory) M e m o r y I R D P s CPU } 컴퓨터시스템구조

6 Microprogrammed Control Unit (1)
제어 워드(Control Word) 버스 구조의 시스템에서 멀티플렉서, 디코더 등의 정보 전달 선택 및 산술논리연산장치의 역할 등을 결정하는 비트의 모임이 어떤 마이크로 연산을 수행할 것인지 결정 이러한 일련의 비트 모임을 ‘제어 워드’라 하며, 특수한 제어 메모리에 저장 마이크로 명령어(Microinstruction) 하나 이상의 마이크로 연산을 정의 제어 워드(Control Word)와 시퀀싱 워드(Sequencing Word)로 구성 제어 워드 - All the control information required for one clock cycle 시퀀싱 워드 - Information needed to decide the next microinstruction address 마이크로 프로그램(microprogram)을 작성하는 단위(Vocabulary) 컴퓨터시스템구조

7 Microprogrammed Control Unit (2)
하나의 기계어 명령어 집합을 정상적으로 실행하기 위해 요구되는 모든 제어 신호를 생성하기 위해 제어 메모리에 저장된 프로그램 마이크로 명령어로 구성 제어 메모리(Control Memory or Control Storage) 마이크로프로그램된 제어 장치에서 마이크로 프로그램을 저장하는 저장 장치 초창기에는 read-only 메모리를 사용  Static Microprogramming Writeable Control Memory(Writeable Control Storage:WCS) 내용을 수정할(writable) 수 있는 제어 메모리 -> Allows the microprogram can be changed -> Instruction set can be changed or modified 컴퓨터시스템구조

8 Microprogrammed Control Unit (3)
동적 마이크로 프로그래밍(Dynamic Microprogramming) Computer system whose control unit is implemented with a microprogram in WCS Microprogram can be changed by a systems programmer or a user 마이크로 명령어 실행 컴퓨터시스템구조

9 Microprogrammed Control Unit (4)
마이크로프로그램된 제어 장치 구성 1) 제어 메모리(Control Memory) Microprogram을 저장 Computer Memory(employs a microprogrammed control unit) Main Memory : for storing user program (Machine instruction/data) Control Memory : for storing microprogram (Microinstruction) 2) 제어 주소 레지스터(Control Address Register) 제어 메모리로부터 읽어올 마이크로 명령어 주소를 지정 컴퓨터시스템구조

10 Microprogrammed Control Unit (5)
마이크로프로그램된 제어 장치 구성 3) 시퀀서(Sequencer = Next Address Generator) 제어 메모리로부터 제어 명령어를 읽어올 주소 시퀀스를 생성 다음 마이크로 명령어의 주소는 입력에 따라 여러 가지 방법으로 결정 4) 제어 데이터 레지스터(Control Data Register = Pipeline Register) 제어 메모리에서 읽어 온 마이크로 명령어를 저장 매 클럭 펄스마다 데이터 레지스터의 제어 워드에서 지정하는 마이크로 연산과 다음 마이크로 명령어를 읽어오는 동작을 동시에 수행 컴퓨터시스템구조

11 주소 시퀀싱 (1) 주소 시퀀싱(Address Sequencing) 루틴(Routine) 맵핑(Mapping)
Sequencer(Next Address Generator) 제어 메모리에 대한 일련의 접근 주소를 생성 루틴(Routine) 제어 메모리에 저장된 마이크로 명령어 그룹 각 기계어 명령어는 명령어를 수행하는 루틴을 갖는다 맵핑(Mapping) Instruction Code  Address in control memory(where routine is located) 제어 메모리 접근 주소 결정 방법 1) 제어 주소 레지스터를 하나 증가 2) 무조건 분기와 상태 비트 조건에 따른 조건부 분기 3) 명령어 비트(Op-code)들로부터 제어 메모리 주소 맵핑 4) 서브루틴을 호출하고 복귀하는 기능 컴퓨터시스템구조

12 주소 시퀀싱 (2) 제어 메모리의 주소 생성 하드웨어: Fig. 7-2 Multiplexer
CAR Increment JMP/CALL Mapping Subroutine Return CAR : Control Address Register CAR receive the address from 4 different paths 1) Incrementer 2) Branch address from control memory 3) Mapping Logic 4) SBR : Subroutine Register SBR : Subroutine Register Return Address can not be stored in ROM Return Address for a subroutine is stored in SBR 컴퓨터시스템구조

13 주소 시퀀싱 (3) 제어 메모리의 주소 생성 하드웨어 (계속) 조건부 분기(Conditional Branching)
Status Bits 분기 논리(Brach Logic)에서의 선택적인 분기 동작을 제어 Branch Logic 특정 상태를 테스트하고 조건에 맞다면 주어진 주소로 분기하고, 그렇지 않다면 바로 다음의 마이크로 명령어를 수행하도록 설정(increment) Status Bit Test와 Branch Logic의 실제회로: Fig. 7-8 4 X 1 Mux 와 Input Logic(Tab. 7-4)으로 구성 Control address register Control memory MUX Load address Increment Status (condition) bits Micro-operations Condition select ... 컴퓨터시스템구조

14 주소 시퀀싱 (4) 제어 메모리의 주소 생성 하드웨어 (계속) 무조건부 분기(Unconditional Branching)
제어 메모리로부터 분기 주소를 적재함으로써 구현 상태 비트(status bit) 중에 하나를 항상 1로 고정하고 이 상태 비트를 선택함 컴퓨터시스템구조

15 주소 시퀀싱 (5) 제어 메모리의 주소 생성 하드웨어 (계속)
명령어 맵핑(Mapping of Instruction) : Fig. 7-3 4 bit Opcode = specify up to 16 distinct instruction Mapping Process : Converts the 4-bit Opcode to a 7-bit control memory address 1) Place a “0”in the most significant bit of the address 2) Transfer 4-bit Operation code bits 3) Clear the two least significant bits of the CAR (즉, 4 개의 Microinstruction 수용가능) Mapping Function : Implemented by Mapping ROM or PLD Control Memory Size : 128 words (= 27) 컴퓨터시스템구조

16 주소 시퀀싱 (6) 제어 메모리의 주소 생성 하드웨어 (계속) 명령어 맵핑(Mapping of Instruction) (계속)
ADD Routine AND Routine LDA Routine STA Routine BUN Routine Control Storage 0000 0001 0010 0011 0100 OP-codes of Instructions ADD AND LDA STA BUN . Direct Mapping Address Mapping Bits 10 xxxx 010 컴퓨터시스템구조

17 주소 시퀀싱 (7) 제어 메모리의 주소 생성 하드웨어 (계속) 명령어 맵핑(Mapping of Instruction) (계속)
OP-code Machine Instruction : Address Mapping bits : 0 x x x x 0 0 Microinstruction address :  Mapping function implemented by ROM or PLA : OP-code Mapping memory (ROM or PLA) Control address register 컴퓨터시스템구조 Control Memory

18 주소 시퀀싱 (8) 제어 메모리의 주소 생성 하드웨어 (계속) 서브루틴(Subroutine)
다른 루틴에서 사용되는 프로그램 모듈  마이크로 프로그램 안에서 어디에서도 호출 가능 동일한 마이크로 코드 모임을 서브루틴화함으로써 제어 메모리를 절약 가능 예제) Memory Reference 명령에서Operand의Effective Address를 구하는Subroutine 표. 7-2에서 INDRCT(여기에서 FETCH와 INDRCT는 Subroutine) Subroutine은 ORG 64, 즉 에 위치(Routine은 ) 서브루틴 호출과 반환 서브루틴 호출 동안에 반환 주소를 저장 서브루틴 반환 시에 반환 주소를 재저장(복원) Last-In First Out(LIFO) Register Stack 컴퓨터시스템구조

19 마이크로 프로그램 예제 (1) 컴퓨터 하드웨 구성: Fig. 7-4 2개의 Memory
Main memory(instruction/data) Control memory(microprogram) Data written to memory come from DR, and Data read from memory can go only to DR 4 CPU Registers and ALU : DR, AR, PC, AC, ALU DR can receive information from AC, PC, or Memory (selected by MUX) AR can receive information from PC or DR (selected by MUX) PC can receive information only from AR ALU performs microoperation with data from AC and DR (결과는AC에 저장) 2 Control Unit Register : SBR, CAR 컴퓨터시스템구조

20 마이크로 프로그램 예제 (2) 명령어 형식(Instruction Format)
Instruction Format : Fig. 7-5(a) I : 1 bit for indirect addressing Opcode : 4 bit operation code Address : 11 bit address for system memory Machine Instruction : Fig. 7-5(b) 16 명령어가 가능하며 4개만 표시 I Opcode 15 14 11 10 Address EA is the effective address Symbol OP-code Description ADD AC AC + M[EA] BRANCH if (AC < 0) then (PC  EA) STORE M[EA]  AC EXCHANGE AC  M[EA], M[EA]  AC 컴퓨터시스템구조

21 마이크로 프로그램 예제 (3) 마이크로 명령어 형식(Microinstruction Format) : Fig. 7-6
3 bit Microoperation Fields : F1, F2, F3 총 21개 Microoperation : Tab. 7-1 동시에 3 개의 microoperation 실행가능 3 개 이하일 경우, 000(no operation)으로 채움 두 개 또는 그 이상의 충돌하는 마이크로 연산은 동시에 설정할 수 없음. 예제) AC를 0으로 클리어하는 동시에 AC에서 DR를 빼는 동시에 수행하여 충돌 발생 기호 DRTAC(F1 = 100) DR에서 AC로의 레지스터 전송을 다섯 개의 문자로 표현(T = to) F1 F2 F3 CD BR AD 3 2 7 F1, F2, F3: Microoperation fields CD: Condition for branching BR: Branch field AD: Address field 컴퓨터시스템구조

22 마이크로 프로그램 예제 (4) 마이크로 명령어 형식(Microinstruction Format) (계속)
2 bit Condition Fields : CD 00 : Unconditional branch, U = 항상 1 01 : Indirect address bit, I = DR(15) 10 : Sign bit of AC, S= AC(15) 11 : Zero value in AC, Z = AC = 0 2 bit Branch Fields : BR 00 : JMP Condition = 0 : CAR ← CAR+1 Condition = 1 : CAR ← AD 01 : CALL Condition = 1 : CAR ← AD, SBR ← CAR+1 10 : RET CAR ← SBR 11 : MAP CAR(2-5) ← DR(11-14), CAR(0,1,6) ← 0 7 bit Address Fields : AD 128 word : 128 X 20 bit 컴퓨터시스템구조

23 마이크로 프로그램 예제 (5) 마이크로 명령어 형식(Microinstruction Format) : Tab. 7-1
F1 Microoperation Symbol 000 None NOP 001 AC ← AC + DR ADD 010 AC ← 0 CLRAC 011 AC ← AC + 1 INCAC 100 AC ← DR DRTAC 101 AR ← DR(0-10) DRTAR 110 AR ← PC PCTAR 111 M[AR] ← DR WRITE F2 Microoperation Symbol 000 None NOP 001 AC ← AC - DR SUB 010 AC ← AC ∨ DR OR 011 AC ← AC ∧ DR AND 100 DR ← M[AR] READ 101 DR ← AC ACTDR 110 DR ← DR + 1 INCDR 111 DR(0-10) ← PC PCTDR F3 Microoperation Symbol 000 None NOP 001 AC ← AC  DR XOR 010 AC ← AC’ COM 011 AC ← shl AC SHL 100 AC ← shr AC SHR 101 PC ← PC + 1 INCPC 110 PC ← AR ARTPC 111 Reserved + CD Condition Symbol Comments 00 Always = 1 U Unconditional branch 01 DR(15) I Indirect address bit 10 AC(15) S Sign bit of AC 11 AC = 0 Z Zero value in AC BR Symbol Function JMP CAR  AD if condition = 1 CAR  CAR + 1 if condition = 0 CALL CAR  AD, SBR  CAR + 1 if condition = 1 CAR  CAR + 1 if condition = 0 RET CAR  SBR (Return from subroutine) MAP CAR(2-5)  DR(11-14), CAR(0,1,6)  0 컴퓨터시스템구조

24 마이크로 프로그램 예제 (6) 기호로 표시된 마이크로 명령어(Symbolic Micoinstruction)
① Label Field : Terminated with a colon ( : ) ② Microoperation Field : one, two, or three symbols, separated by commas ③ CD Field : U, I, S, or Z ④ BR Field : JMP, CALL, RET, or MAP ⑤ AD Field a. Symbolic Address : Label ( = Address ) b. Symbol “NEXT”: next address c. Symbol “RET”or “MAP”: AD field = ORG : Pseudoinstruction(define the origin, or first address of routine) 컴퓨터시스템구조

25 마이크로 프로그램 예제 (7) Fetch 루틴 Memory Map(128 words) : Tab. 7-2, Tab. 7-3
Address 0 to 63 : Routines for the 16 instruction(현재는 4 instruction) Address 64 to 127 : Any other purpose(현재는Subroutines : FETCH, INDRCT) FETCH 서브루틴의 마이크로 명령어 Fetch 서브루틴 : 주소 64에서 시작 컴퓨터시스템구조

26 마이크로 프로그램 예제 (8) Fetch 루틴 (계속) 어셈블러에 의해 변환된 이진 마이크로 명령어 Binary
address F F F CD BR AD 컴퓨터시스템구조

27 마이크로 프로그램 예제 (9) 기호화된 마이크로 프로그램(Symbolic Microprogram)
표 7.2 : Fetch 루틴, Indirect 서브루틴, ADD, BRANCH, STORE 루틴 FETCH 서브루틴에서 MAP 마이크로 명령어 실행 Branch to address 0xxxx00 (xxxx = 4 bit Opcode) ADD : = 0 BRANCH : = 4 STORE : = 8 EXCHANGE : = 12, ( 16, 20, …, 60) INDRCT 서브루틴 기계 명령어 실행 루틴에 간접 주소 모드(Indirect Address : I= 1)인 경우 호출 Indirect Addressing : AR이 지시하는 메모리 내용을 DR에 읽은 후, 다시 AR에 써넣는다 컴퓨터시스템구조

28 마이크로 프로그램 예제 (10) 기호화된 마이크로 프로그램(Symbolic Microprogram) : Tab. 7-2
ORG 0 NOP READ ADD ORG 4 ARTPC ORG 8 ACTDR WRITE ORG 12 ACTDR, DRTAC ORG 64 PCTAR READ, INCPC DRTAR I U S CALL JMP MAP RET INDRCT NEXT FETCH OVER ADD: BRANCH: OVER: STORE: EXCHANGE: FETCH: INDRCT: Label Microops CD BR AD 컴퓨터시스템구조

29 마이크로 프로그램 예제 (11) 기호화된 마이크로 프로그램(Symbolic Microprogram)
ADD instruction 실행절차 1) ADD 명령이 실행되면 FETCH subroutine에서 Opcode를 fetch한 후, MAP이 실행되면 MAP Process에 의해 CAR = 으로 branch 한다(여기서 Opcode = 0000, Fig. 7-5(b)) 2) ADD 명령의 Address 0에서는CD 비트를 검사하여 Indirect = 1이면 INDRCT subroutine에서 Effective Address를 AR에 써넣고 반환된다. 3) ADD 명령의 Address 1 에서는 AR이 지시하는 Memory의 내용을 읽어서 DR에 써넣는다. 4) ADD 명령의 Address 2 에서는AC + DR을 AC에 저장한 후, FETCH subroutine으로 Branch하면 1)에서와 같은 방법으로 PC가 지시하는 명령어를 Fetch하여 MAP 수행 결과에 따라 해당 Routine Address로 Branch 한다. BRANCH instruction 실행절차 1) BRANCH 명령의 Address 4 에서는CD Bit를 검사하여 Sign(S) = 1이면 Address 6번으로 가서 Indirect를 검사하고 ARTPC에 의해 해당 Address로 Branch한 후, FETCH에 의해 PC가 지시하는 다음 명령을수행한다. 2) BRANCH 명령의 Address 4에서 Sign = 0이면 Branch하지 않고 FETCH에 의해PC가 지시하는 다음 명령을 수행한다. 컴퓨터시스템구조

30 마이크로 프로그램 예제 (12) 이진 마이크로 프로그램(Binary Microprogram) : Tab. 7-3
기호화된 마이크로 프로그램은 어셈블러나 사람에 의해 직접 이진 코드로 변환되어야 제어 메모리에 적재할 수 있다 표. 7-3의 3번지의 코드는 사용되지 않는 워드이기 때문에 모든 코드가 0으로 채워져 있지만 CAR 값이 잡음 등으로 3번지로 설정되는 경우를 고려하여 fetch 루틴으로 brach하게 설정됨. ROM 기반 제어 메모리(Control Memory) Most microprogrammed systems use a ROM for the control memory Cheaper and faster than a RAM Prevent the occasional user from changing the architecture of the system 컴퓨터시스템구조

31 마이크로 프로그램 예제 (13) 이진 마이크로 프로그램(Binary Microprogram): Tab. 7-3 컴퓨터시스템구조
Address Binary Microinstruction Micro Routine Decimal Binary F F F CD BR AD ADD BRANCH STORE EXCHANGE FETCH INDRCT 컴퓨터시스템구조

32 제어 장치의 설계 (1) 마이크로 명령어 필드의 디코딩 : Fig. 7-7
3x8 디코더를 사용하여 마이크로 명령어의 제어 워드 F1, F2, F3를 디코딩 디코더 출력 신호는 해당 마이크로 연산을 실행 초기화시키는 장치에 연결된다 예제) F1 = 101 (5) : DRTAR F1 = 110 (6) : PCTAR Output 5 and 6 of decoder F1 are connected to the load input of AR (two input of OR gate) Multiplexer select the data from DR when output 5 is active AC when output 5 is inactive 컴퓨터시스템구조

33 제어 장치의 설계 (2) 마이크로 명령어 필드의 디코딩 : Fig. 7-7 Arithmetic Logic Shift Unit
Control signal of ALU in hardwired control: p. 164, Fig. 5-19, 20 Control signal will be now come from the output of the decoders associated with the AND, ADD, and DRTAC. 컴퓨터시스템구조

34 제어 장치의 설계 (3) Microprogram Sequencer: Fig. 7-8 제어 메모리의 다음 접근 주소를 결정
MUX 1 Select an address source and route to CAR ① CAR + 1 ② JMP/CALL ③ Mapping ④ Subroutine Return JMP와 CALL의 차이점 JMP : AD가 MUX 1의 2번을 통해 CAR로 전송 CALL : AD가 MUX 1의 2번을 통해 CAR로 전송되고, 동시에 CAR + 1(Return Address)이 LOAD 신호에 의해 SBR에 저장된다. S1S0 Address Source CAR + 1, In-Line SBR RETURN CS(AD), Branch or CALL MAP 컴퓨터시스템구조

35 제어 장치의 설계 (4) Microprogram Sequencer: Fig. 7-8 MUX 2
상태 비트를 검사하고 검사 결과를 입력 논리 회로에 적용 Condition bit(CD)에 근거하여 4개의 상태 비트 중에 하나를 선택 입력 논리 회로(Input Logic Circuit) Mux 2의 출력 신호와 BR 필드에 근거하여 CAR의 소스 주소(S0, S1) 중에 하나를 선택 SBR의 load 입력(L)을 enable Input logic I0 I1 T MUX2 Select 1 I S Z Test CD Field of CS From CPU BR field of CS L(load SBR with PC) for subroutine Call S0 S1 for next address selection L 컴퓨터시스템구조

36 제어 장치의 설계 (5) Microprogram Sequencer: Fig. 7-8 입력 논리 회로의 진리표: Tab. 7-4
Input : I0, I1 from Branch bit (BR) T from MUX 2 (T) Output : MUX 1 Select signal (S0, S1) S1 = I1I0’+ I1I0= I1(I0’+ I0) = I1 S0 = I1’I0’T + I1’I0T + I1I0 = I1’T(I0’+ I0) + I1I0 = I1’T + I1I0 SBR Load signal (L) L = I1’I0T I0I1T Meaning Source of Address S1S0 L In-Line CAR JMP CS(AD) In-Line CAR CALL CS(AD) and SBR <- CAR 10x RET SBR 11x MAP DR(11-14) 컴퓨터시스템구조


Download ppt "마이크로프로그램된 제어 (Microprogrammed Control)"

Similar presentations


Ads by Google