Microarchitecture Outline • Architecture vs. Microarchitecture • Components • MIPS Datapath 1 Architecture vs. Microarchitecture • Architecture • What the CPU does • Microarchitecture • How the CPU does it 2 Architecture • What the CPU does • CPU is a black box • Only care about what goes in / comes out • Only need to know what instructions the CPU can execute • Instruction set architecture (ISA) • Realm of computer scientists • Don’t really care how it works under the hood 3 Microarchitecture • How the CPU does it • Electrical mechanisms that allow CPU to execute instructions • Control paths, adder(s), multiplexors, memory units, etc. • Many possible microarchitectures for single architecture • Domain of computer and electrical engineers 4 Architecture vs. Microarchitecture • Analogy: factory that produces auto parts 5 Architecture vs. Microarchitecture • Architecture: don’t care about “how” factory runs, as long as the parts are good 6 Architecture vs. Microarchitecture • Microarchitecture: care about “how” the factory runs 7 Architecture vs. Microarchitecture • Microarchitecture: care about “how” the factory runs 8 Architecture vs. Microarchitecture Intel Pentium IV 9 AMD Bobcat x86 Architecture Outline • Architecture vs. Microarchitecture • Components • MIPS Datapath 10 Von Neumann Model (basic structure of computer) MEMORY MAR MDR INPUT PROCESSING UNIT ALU TEMP CONTROL UNIT 11 PC IR OUTPU T Components: Memory MEMORY MAR MDR INPUT PROCESSING UNIT ALU TEMP CONTROL UNIT 12 PC IR OUTPU T Components: Memory MEMORY MAR MDR • 2k × m array of stored bits • E.g., 24 × 8 • Address • Unique (k-bit) identifier of location • Contents • m-bit value stored in location • Basic operations • STORE: write a value to memory location • LOAD: read a value from memory location 13 0000 0001 0010 0110 1111 0011 … 1101 1110 1111 0001 0110 Components: Memory MEMORY MAR • Result of “LOAD 0010”? 0000 0001 0010 0110 1111 0011 … 1101 1110 1111 14 0001 0110 MDR Components: Memory MEMORY MAR • Result of “LOAD 0010”? 0110 1111 0000 0001 0010 0110 1111 0011 … 1101 1110 1111 15 0001 0110 MDR Components: Memory MEMORY MAR • How to read data to/from memory? • MAR: Memory Address Register • MDR: Memory Data Register • LOAD data from memory (address A) 1. 2. Write the address (A) into MAR Send a “read” signal to memory unit (memory unit will go get bytes, put into MDR) 3. 16 Read the data from MDR MDR Components: Memory MEMORY MAR • How to read data to/from memory? • MAR: Memory Address Register • MDR: Memory Data Register • STORE data X in memory B 1. 2. 3. Write the data (X) into MDR Write the address (B) into MAR Send a “write” signal to memory (memory unit will do its thing to write X in location B) 17 MDR Components: Memory • What is controlling Memory? • The CONTROL UNIT of course!! MEMORY • CONTROL UNIT sends signals MAR MDR • Instructs the other components • How does it know what signals (instructions) to send? CONTROL UNIT PC 18 IR Components MEMORY MAR MDR PROCESSING UNIT ALU TEMP CONTROL UNIT PC 19 IR Components: Control Unit CONTROL UNIT PC IR • How does CONTROL UNIT know what to do? • Well, it doesn’t “know”.. • Control Unit follows command in the Instruction Register (IR) • Program Counter (PC) register holds memory address of the current instruction • What types of instructions do you think are available? • LOAD? STORE? ADD? SUBTRACT? OTHERS? 20 CONTROL UNIT Components: Control Unit PC IR • Control Unit decodes instruction stored in IR • Sends signals to components based on decoded instruction • For example, perhaps the following instruction is in the IR 0 21 0 0 1 1 0 0 1 CONTROL UNIT Components: Control Unit PC IR • In this simplified example, the instruction is decoded as: 0 0 0 1 1 0 0 1 first two bits: 00 means LOAD next four bits: memory address to read from (0110) 22 last two bits: 01 refer to MDR CONTROL UNIT Components: Control Unit PC IR • Based on this instruction, the Control Unit will activate the corresponding circuitry to signal the memory unit to get data • This circuitry goes beyond the scope of this course • Consists of finite state machines of multiplexors, system clock, bus etc. 0 first two bits: 00 means LOAD 23 0 0 1 1 0 0 next four bits: memory address to read from (0110) 1 last two bits: 01 refer to MDR Components: Control Unit CONTROL UNIT PC • If the instruction in the IR contains logic or arithmetic, the Processing Unit gets involved 24 IR Components MEMORY MAR MDR PROCESSING UNIT ALU TEMP CONTROL UNIT PC 25 IR Components: Processing Unit PROCESSING UNIT • Contains ALU • Arithmetic Logic Unit ALU • Also contains temporary registers (TEMP) • Used for arithmetic operands • Used to store intermediate results of arithmetic operations • May also contain other functional units • Special purpose arithmetic: e.g., multiply, divide, etc. 26 TEMP Components: Processing Unit PROCESSING UNIT • How does Processing Unit know what to do? • Again, Control Unit sends electric signals that correspond to the appropriate instruction (e.g., ADD, SUBTRACT) ALU CONTROL UNIT PC 27 TEMP IR Components: Processing Unit • Processing Unit gets data from Memory Unit • Processing Unit puts data into Memory Unit MEMORY MAR MDR PROCESSING UNIT ALU 28 TEMP Components: Processing Unit ALU • ALU has its own inputs and output • A is m-bit binary (input) • B is m-bit binary (input) • control tells ALU what to do (input) A B • E.g., add, subtract, divide, etc. • Usually control pins (high / low) • C is m-bit result (output) PROCESSING UNIT ALU 29 TEMP control C Break Time!! ... wish I was there!!! 30 Outline • Architecture vs. Microarchitecture • Components • MIPS Datapath 31 MIPS Datapath • MIPS • Microprocessor without Interlocked Pipeline Stages • RISC Architecture: Reduced Instruction Set Computer • Microarchitecture of single-cycle MIPS processor… 32 MIPS Single-Cycle Microarchitecture • We are going to “build” a single-cycle MIPS CPU 33 MIPS Single-Cycle Microarchitecture • System clock • An oscillator that produces a square wave • E.g., 2.4 GHz processor- means 2.4 billion square waves per second • Components of CPU (memory, ALU, bus, etc.) synchronized to clock • Actions occur on “rising” or “falling” edge 34 MIPS Single-Cycle Microarchitecture • Single-cycle CPU: • Executes an entire instruction in one clock cycle • Clock cycle time limited by slowest instruction one cycle 35 MIPS Single-Cycle Microarchitecture • Overview of components used in diagram 36 MIPS Single-Cycle Microarchitecture • • • • • 37 PC: Program Counter 32-bit register Input (PC’): next instruction Output (PC): current instruction CLK: system clock MIPS Single-Cycle Microarchitecture • • • • Instruction Memory Single read port Input: 32-bit instruction address (A) Output: 32-bit data (i.e., instruction) (RD) • Note: this is an oversimplification that assumes the instruction memory is ROM (read only memory) • In reality, the instruction memory is writable; the OS can load new programs into memory 38 MIPS Single-Cycle Microarchitecture • Register File (32 registers, 32-bits each) • Inputs: • • • • • • A1: 5-bit address specifying a register (to read) A2: 5-bit address specifying a register (to read) A3: 5-bit address specifying a register (to write) WD3: 32-bit data to write to register CLK: system clock WE3: write enable (single bit) • Outputs: • RD1: 32-bit register value specified by 5-bit address A1 • RD2: 32-bit register value specified by 5-bit address A2 39 MIPS Single-Cycle Microarchitecture • Data Memory • If WE (Write Enable) is 1, • Writes data WD into address A on rising edge of clock (CLK) • If WE is 0, • Reads address A onto RD on rising edge of clock (CLK) 40 MIPS Single-Cycle Microarchitecture • Start by building the datapath • First step, connect PC to Instruction Memory • PC register contains address of instruction • Instruction Memory fetches instruction (instr) from memory PC 41 instr MIPS Single-Cycle Microarchitecture 42 MIPS Single-Cycle Microarchitecture • Next step, things start to get more complicated • The instruction (instr) gets decoded by the control unit • The appropriates pins (e.g., write enable) get set • The 5-bit register addresses (in the Register File) get specified • (Things get “set up” for execution) 43 MIPS Single-Cycle Microarchitecture 44 MIPS Single-Cycle Microarchitecture • Next, execution occurs (based on instruction) 45 MIPS Single-Cycle Microarchitecture • Then, the result of execution interacts with memory (somehow) 46 MIPS Single-Cycle Microarchitecture • The process then starts over… 47 MIPS Single-Cycle Microarchitecture • Let’s look at the datapath for a concrete example • MIPS assembly instruction lw (stands for “Load Word”) • lw loads 32-bits of data from a memory address to a register • Please keep in mind that we will NOT use MIPS assembly, we will use x86 • This is for demonstration purposes only, x86 datapath is more complex 48 MIPS Single-Cycle Microarchitecture: lw example • Step 1: fetch the instruction 49 MIPS Single-Cycle Microarchitecture: lw example • Step 2: decode the instruction • In this case, read source operands from register file • Source operands come from the instruction itself • Says what registers to get information from 50 MIPS Single-Cycle Microarchitecture: lw example • Step 3: sign-extend the immediate result (decode) • This has to do with the “offset” of the memory address • This is a mechanism to make the “offset” 32-bits long • Don’t worry about this.. 51 MIPS Single-Cycle Microarchitecture: lw example • Step 4: Compute the memory address (execute) • ALUControl2:0 is from the control unit, tells ALU to add • SrcA is “base” • SrcB is “offset” 52 MIPS Single-Cycle Microarchitecture: lw example • Step 5: Read data from memory, write back to Register File • RegWrite is command from Control Unit • 20:16 is part of instruction: 5-bit register address to load word 53 MIPS Single-Cycle Microarchitecture: lw example • Step 6: Increment the Program Counter (PC) • PC will point to next instruction • 32-bit instruction width = 4 bytes (hence PC + 4) 54 MIPS Single-Cycle Microarchitecture • The datapath depends on the instruction… 55 Next Time… • Execution Cycle • Big vs. Little Endian • CPU execution time.. 56