370 likes | 593 Views
Computer Organization and Architecture. Control Unit Operation. Micro-Operations. A computer executes a program Fetch/execute cycle Each cycle has a number of steps see pipelining Called micro-operations Each step does very little Atomic operation of CPU.
E N D
Computer Organization and Architecture Control Unit Operation
Micro-Operations • A computer executes a program • Fetch/execute cycle • Each cycle has a number of steps • see pipelining • Called micro-operations • Each step does very little • Atomic operation of CPU
Fetch - 4 Registers • Memory Address Register (MAR) • Connected to address bus • Specifies address for read or write op • Memory Buffer Register (MBR) • Connected to data bus • Holds data to write or last data read • Program Counter (PC) • Holds address of next instruction to be fetched • Instruction Register (IR) • Holds last instruction fetched
Fetch Sequence • Address of next instruction is in PC • Address (MAR) is placed on address bus • Control unit issues READ command • Result (data from memory) appears on data bus • Data from data bus copied into MBR • PC incremented by 1 (in parallel with data fetch from memory) • Data (instruction) moved from MBR to IR • MBR is now free for further data fetches
Fetch Sequence (symbolic) • t1: MAR <- (PC) • t2: MBR <- (memory) • PC <- (PC) +1 • t3: IR <- (MBR) • (tx = time unit/clock cycle) • or • t1: MAR <- (PC) • t2: MBR <- (memory) • t3: PC <- (PC) +1 • IR <- (MBR)
Rules for Clock Cycle Grouping • Proper sequence must be followed • MAR <- (PC) must precede MBR <- (memory) • Conflicts must be avoided • Must not read & write same register at same time • MBR <- (memory) & IR <- (MBR) must not be in same cycle • Also: PC <- (PC) +1 involves addition • Use ALU • May need additional micro-operations
Indirect Cycle • MAR <- (IRaddress) - address field of IR • MBR <- (memory) • IRaddress <- (MBRaddress) • MBR contains an address • IR is now in same state as if direct addressing had been used
Interrupt Cycle • t1: MBR <-(PC) • t2: MAR <- save-address • PC <- routine-address • t3: memory <- (MBR) • This is a minimum • May be additional micro-ops to get addresses
Execute Cycle (ADD) • Different for each instruction • e.g. ADD R1,X - add the contents of location X to Register 1 , result in R1 • t1: MAR <- (IRaddress) • t2: MBR <- (memory) • t3: R1 <- R1 + (MBR) • Note no overlap of micro-operations
Execute Cycle (ISZ) • ISZ X - increment and skip if zero • t1: MAR <- (IRaddress) • t2: MBR <- (memory) • t3: MBR <- (MBR) + 1 • t4: memory <- (MBR) • if (MBR) == 0 then PC <- (PC) + 1 • Notes: • if is a single micro-operation • Micro-operations done during t4
Execute Cycle (BSA) • BSA X - Branch and save address • Address of instruction following BSA is saved in location X • Execution continues from X+1 • The saved address will later be used for return • t1: MAR <- (IRaddress) • MBR <- (PC) • t2: PC <- (IRaddress) • memory <- (MBR) • t3: PC <- (PC) + 1
Instruction Cycle • Each phase decomposed into sequence of elementary micro-operations • E.g. fetch, indirect, and interrupt cycles • Execute cycle • One sequence of micro-operations for each opcode • Need to tie sequences together • Assume new 2-bit register • Instruction cycle code (ICC) designates which part of cycle the processor is in • 00: Fetch • 01: Indirect • 10: Execute • 11: Interrupt
Control of the Processor • Functional Requirements: • Define basic elements of processor • Describe micro-operations processor performs • Determine functions control unit must perform
Basic Elements of Processor • ALU • Registers • Internal data paths • External data paths • Control Unit
Types of Micro-operation • All of the micro-operations fall into one the following categories: • Transfer data between registers • Transfer data from register to external • Transfer data from external to register • Perform arithmetic or logical ops
Functions of Control Unit • The control unit performs two basic tasks: • Sequencing • Causing the CPU to step through a series of micro-operations • Execution • Causing the performance of each micro-op • This is done using Control Signals
Control Signals - input • Clock • One micro-instruction (or set of parallel micro-instructions) per clock cycle • Instruction register • Op-code for current instruction determines which micro-instructions are performed during execution cycle • Flags • State of CPU • Results of previous operations • From control bus • Interrupts • Acknowledgements
Control Signals - output • Control Signals Within CPU • Two types: • Those that cause data movement from register to register • Those that activate specific ALU functions • Via control bus • Also two types: • Control signals to memory • Control signals to the I/O modules
Example Control Signal Sequence - Fetch • MAR <- (PC) • Control unit activates signal to open gates between PC and MAR • MBR <- (memory) • Control unit sends control signals to do the following simultaneously: • Open gates between MAR and address bus • Memory read control signal to the control bus • Open gates between data bus and MBR
Internal Organization • Usually a single internal bus • Gates control movement of data onto and off the bus • Control signals control data transfer to and from external systems bus • Temporary registers needed for proper operation of ALU
Hardwired Implementation (1) • In a hardwired implementation, the control unit is essentially a combinatorial circuit. Its input logic signals are transformed into a set of output logic control signals. • Control unit inputs: • Flags and control bus signals • Each bit means something • Instruction register • Op-code causes different control signals for each different instruction • Unique logic for each op-code • Decoder takes encoded input and produces single output • n binary inputs and 2n outputs
Hardwired Implementation (2) • Clock • Repetitive sequence of pulses • Useful for measuring duration of micro-ops • Must be long enough to allow signal propagation • Different control signals at different times within instruction cycle
Problems With Hard Wired Designs • Complex sequencing & micro-operation logic • Difficult to design and test • Inflexible design • Difficult to add new instructions