ComputerArchitectureInstruction Set Architecture(MicroarchitectureImplementationComputerArchitecture
Computer Architecture Computer Architecture Instruc1on Set Architecture (Microarchitecture Implementa1on)
How Does a Machine Process Instructions?What does processing an instruction mean?RemembertheyonNeumannmodeA = Architectural (programmer visible) state before aninstruction is processedProcess instructionA' = Architectural (programmer visible) state after aninstructionisprocessedProcessing an instruction: Transforming A to A'according to the ISA specification of the instructionComputerArchitecture
Computer Architecture How Does a Machine Process Instructions? • What does processing an instruction mean? • Remember the von Neumann model A = Architectural (programmer visible) state before an instruction is processed Process instruction A’ = Architectural (programmer visible) state after an instruction is processed • Processing an instruction: Transforming A to A’ according to the ISA specification of the instruction 2
The “Process instruction" StepISA specifies abstractly what A' should be, given aninstruction and A-It defines anabstractfinitestatemachinewhere· State=programmer-visible state.Next-statelogic=instruction executionspecification- From ISA point of view, there are no "intermediate states"between A and A'during instruction executionOnestatetransitionperinstructionMicroarchitecture implements how A is transformed to A'- There are many choices in implementation- We can haveprogrammer-invisible state to optimize the speedofinstructionexecution:multiplestatetransitionsperinstruction. Choice 1: A → A' (transform A to A' in a single clock cycle)·Choice 2:A→A+MS1 →A+MS2→A+MS3 →A'(take multiple clockcyclestotransformAtoA)ComputerArchitecture
Computer Architecture The “Process instruction” Step • ISA specifies abstractly what A’ should be, given an instruction and A – It defines an abstract finite state machine where • State = programmer-visible state • Next-state logic = instruction execution specification – From ISA point of view, there are no “intermediate states” between A and A’ during instruction execution • One state transition per instruction • Microarchitecture implements how A is transformed to A’ – There are many choices in implementation – We can have programmer-invisible state to optimize the speed of instruction execution: multiple state transitions per instruction • Choice 1: A à A’ (transform A to A’ in a single clock cycle) • Choice 2: A à A+MS1 à A+MS2 à A+MS3 à A’ (take multiple clock cycles to transform A to A’) 3
AVeryBasicInstructionProcessing EngineEachinstructiontakesasingleclockcycleto executeOnly combinational logic is used to implementinstructionexecution-Nointermediate,programmer-invisiblestateupdatesA = Architectural (programmer visible) stateat the beginning of a clock cycleProcess instruction in one clock cycleA'= Architectural (programmer visible) stateat the end of a clock cycleComputerArchitecture
Computer Architecture A Very Basic Instruction Processing Engine • Each instruction takes a single clock cycle to execute • Only combinational logic is used to implement instruction execution – No intermediate, programmer-invisible state updates A = Architectural (programmer visible) state at the beginning of a clock cycle Process instruction in one clock cycle A’ = Architectural (programmer visible) state at the end of a clock cycle 4
A Very Basic Instruction Processing Engine:Single-cycle machinelextASequentialCombinationalLogicLogic(State) What is the clock cycle time determined by?What is the critical path of the combinational logicdetermined by?ComputerArchitecture
Computer Architecture A Very Basic Instruction Processing Engine • Single-cycle machine • What is the clock cycle time determined by? • What is the critical path of the combinational logic determined by? 5 ANext A Sequen+al Logic (State) Combina+onal Logic