Presentation is loading. Please wait.

Presentation is loading. Please wait.

Gary MarsdenSlide 1University of Cape Town Computer Architecture – Introduction Andrew Hutchinson & Gary Marsden (me) ( ) September 2003.

Similar presentations


Presentation on theme: "Gary MarsdenSlide 1University of Cape Town Computer Architecture – Introduction Andrew Hutchinson & Gary Marsden (me) ( ) September 2003."— Presentation transcript:

1 Gary MarsdenSlide 1University of Cape Town Computer Architecture – Introduction Andrew Hutchinson & Gary Marsden (me) ( gaz@cs.uct.ac.za ) September 2003

2 Gary MarsdenSlide 2University of Cape Town Endorsement This an excellent course. Only an infidel would think otherwise. Soon all courses will be about architecture. Already platoons of hardware experts are poised to take control of the global IT industry.

3 Gary MarsdenSlide 3University of Cape Town The Grand Scheme  Abstractions  Role of Performance  Language of the Machine  Arithmetic  (6) Processor: Datapath & Control  (3) Pipelining  (4) Memory hierarchy  (4) Peripherals  (3) Current & Advanced processors CS1 CS2

4 Gary MarsdenSlide 4University of Cape Town Review  Chapter 1: Abstractions –HLL -> Assembly -> Binary –Application (system s/w (hardware)) –5 classic components Input, output, memory, datapath, control –Processor gets inst. & data from memory –Input for placing items in memory –Output reads from memory –Control co-ordinates –Abstraction / Interfaces

5 Gary MarsdenSlide 5University of Cape Town Review II  Chapter 2: The Role of Performance  CPU time =  Popular measures –MIPS Depends on inst. Set | Varies between progs. | Can vary inversely with performance –GFLOPS Better, perhaps, as instructions are similar FLOPS can differ across machines Instruction Count x CPI Clock Rate

6 Gary MarsdenSlide 6University of Cape Town Review III  Chapter 3 - Machine Language –R type and I type (distinguished by first field) –Registers –Address modes Register, base, immediate, PC relative –P1: Simplicity favours regularity –P2: Smaller is faster –P3: Good design demands compromise –P4: Make the common case fast  Chapter 4 - Arithmetic –ALU construction

7 Gary MarsdenSlide 7University of Cape Town Chapter 5 - The Processor  Machine Performance factors –Instruction Count, Clock cycle time, Clock cycles per instruction (CPI)  Both clock cycle time and CPI are determined by processor implementation  We will construct datapath and a control unit for 2 different processor implementations for ‘core’ instructions –Memory ref:lw/sw –Arithmetic: add/sub/and/or/slt –Control:beq/j

8 Gary MarsdenSlide 8University of Cape Town Implementation Overview  Consider a core subset of MIPS instructions: –Integer arith-log instructions –Memory-reference instructions –Branch instructions  Good news is that much is similar across different instructions  For every instruction –Send the PC to a memory to fetch an instruction –Read one or two registers using instructions fields to choose registers

9 Gary MarsdenSlide 9University of Cape Town Differing Instructions  After previous 2 steps, instructions diverge  All instructions do use the ALU next –Arith-log: for opcode execution –Mem-ref: for effective address calculation –Branches: for comparison  After using the ALU –Arith-log: write data from ALU to register –Mem-ref: access memory containing data to complete a store or retrieve a word being loaded –Branch: may need to exchange next instruction address based on comparison

10 Gary MarsdenSlide 10University of Cape Town High-level view  Two types of functional units: –elements that operate on data values (combinational) –elements that contain state (sequential)

11 Gary MarsdenSlide 11University of Cape Town Clocking methodology  Defines when signals can be read and when they can be written  Assume an edge-triggered clock –Clock cycles between high and low –Clock period: time for one full cycle

12 Gary MarsdenSlide 12University of Cape Town MIPS subset implementation  Develop 2 implementations –Single long clock cycle for each instruction (simple) –Multiple clock cycles per instructions (complex)  Input / Output –Nearly all elements have 32 bit wide inputs/outputs –Buses: signals > 1 bit (thick lines) –Control signals vs data signals Notation: control in colour

13 Gary MarsdenSlide 13University of Cape Town Building Blocks 1.Instruction Memory: a place to store program instructions 2.Program Counter (PC): the address of an instruction 3.Adder: to increment the PC to the instruction location

14 Gary MarsdenSlide 14University of Cape Town The common bit  Instruction execution 1.Fetch instruction from memory 2.Increment PC to next instruction (PC += 4)

15 Gary MarsdenSlide 15University of Cape Town R-format  add, sub, slt, and, or –E.g add $1,$2,$3 ($1 = $2+$3)  Need fourth element: Register file –Contains register state of the machine –Register can be read or written by specifying number 2 read ‘ports’ and 1 write ‘port’ 32 registers => 5 bit register number  Fifth element: ALU –3 bit operation signal

16 Gary MarsdenSlide 16University of Cape Town R-type elements

17 Gary MarsdenSlide 17University of Cape Town R-format execution  Only two elements required –Read 2 registers –Perform ALU operation on the contents of the registers –Write the result Instruction Registers Write register Read data 1 Read data 2 Read register 1 Read register 2 Write data ALU result ALU Zero RegWrite ALU operation 3

18 Gary MarsdenSlide 18University of Cape Town Load and Store Operations  lw $1, offset_value($2)  sw $1, offset_value($2) –Address found by adding offset to contents of $2  Besides previous elements, need  Sixth element: Data Memory Unit –State element with inputs (read address, write address, write data) and a ‘read data’ output  Seventh element: Sign Extension Unit –Memory addresses are all 32 but, so ‘offset’ is extended from 16 to 32 bits

19 Gary MarsdenSlide 19University of Cape Town Sign extension  Consider 16 bit version of 2 –0000 0000 0000 0010  Sign extend by copying most significant bit into the new 32bit word –0000 0000 0000 0000 0000 0000 0000 0010  Consider 16 bit of -1 (1->0, 0->1 and add 1) –1111 1111 1111 1110 –-> 1111 1111 1111 1111 1111 1111 1111 1110  One of the ‘magic’ reasons for using 2’s compliment

20 Gary MarsdenSlide 20University of Cape Town Sixth and Seventh logic elements

21 Gary MarsdenSlide 21University of Cape Town Executing load and store  Address in memory is sign extend (offset + contents of $2)  Store: value from $1 is put in this location  Load: value from location is put in to $1

22 Gary MarsdenSlide 22University of Cape Town Branch instruction  beq $1, $2, offset  Need to compare the contents of $1 and $2  If they are equal, we need to calculate a new value for the PC using the offset  The offset is relative to the branch instruction –So we need to add it to the current PC  The offset is a word offset, not a byte offset!

23 Gary MarsdenSlide 23University of Cape Town Word offset  If the offset was a byte offset, the last two bits would always be ‘00’ as instructions take 4 bytes of memory: –0, 4, 8, 12, 16, 20 etc. –00000, 00100, 01000,01100, 10000, 10100 etc.  This is wasteful  By using a word offset, the range is extended by a factor of four

24 Gary MarsdenSlide 24University of Cape Town Executing branch  If ($1 == $2) PC = PC + (offset << 2)

25 Gary MarsdenSlide 25University of Cape Town Putting it all together - a simple implementation  We know what elements we need, but we need control (mysterious orange lines)  If creating a single datapath –Execute everything in one cycle –No datapath resource used more than once per instruction (duplication)  Elements common to different instructions can be shared - implies multiplexor –Selector for multiple inputs to the same element port MUXMUX A B S C

26 Gary MarsdenSlide 26University of Cape Town Combined path  Key differences between arith-log and mem- ref: Second ALU input & Result register input

27 Gary MarsdenSlide 27University of Cape Town Adding branch path  Use adder to compute target address  Another Mux for PC

28 Gary MarsdenSlide 28University of Cape Town Control - the ALU  5 of 8 options used  Need to generate 3 bit input code to ALU for each instruction type –3 types of code implies 2 bit control (ALUOp) ALU inputFunction000AND 001OR 010Add 110Subtract 111SLT

29 Gary MarsdenSlide 29University of Cape Town ALU control for instruction types

30 Gary MarsdenSlide 30University of Cape Town Main control  ALU control relatively easy (not temporal) –PLA / Simple custom controller  To define the rest of the control circuit –Identify control lines and instruction components  Before we do that, we need to look at the instruction types to understand data bus requirements

31 Gary MarsdenSlide 31University of Cape Town Instruction analysis Target register* oprsrtrdshamtfunct R oprsrtaddress LS oprsrt B address 31-2625-2120-1615-1110-65-0 offset Base register * This implies a Mux

32 Gary MarsdenSlide 32University of Cape Town What does that look like?

33 Gary MarsdenSlide 33University of Cape Town What do the orange bits do?  RegDest –Source of the destination register for the operation  RegWrite –Enables writing a register in the register file  ALUsrc –Source of second ALU operand, can be a register or part of the instruction  PCsrc –Source of the PC (increment [PC + 4] or branch)  MemRead / MemWrite –Reading / Writing from memory  MemtoReg –Source of write register contents

34 Gary MarsdenSlide 34University of Cape Town Building the control unit  All but one of the 7 lines can be set using op- code bits –PCSrc is determined by output from the ALU as well as op-code (need an AND gate)  Besides this 7, there are 2 for the ALUOp  To set these, all we need are the 6 bits determining the op-code

35 Gary MarsdenSlide 35University of Cape Town Bunch up - inserting the control unit

36 Gary MarsdenSlide 36University of Cape Town Truth table

37 Gary MarsdenSlide 37University of Cape Town Sample R-type execution  Instruction fetched and PC incremented  $2 and $3 are read from register file  ALU operates on the data  The result from the ALU is written to register file


Download ppt "Gary MarsdenSlide 1University of Cape Town Computer Architecture – Introduction Andrew Hutchinson & Gary Marsden (me) ( ) September 2003."

Similar presentations


Ads by Google