Anne Bracy CS 3410 Computer Science Cornell University. [K. Bala, A. Bracy, S. McKee, E. Sirer, H. Weatherspoon]

Size: px
Start display at page:

Download "Anne Bracy CS 3410 Computer Science Cornell University. [K. Bala, A. Bracy, S. McKee, E. Sirer, H. Weatherspoon]"

Transcription

1 Anne Bracy CS 3410 Computer Science Cornell University [K. Bala, A. Bracy, S. McKee, E. Sirer, H. Weatherspoon]

2 Prog. Mem PC +4 inst Reg. File control ALU Data Mem Fetch Decode Execute Memory WB A Single cycle processor this diagram is not 100% spatial 2

3 Prog. Mem PC +4 inst Reg. File control ALU Data Mem Which instruction is more likely to determine the speed of the clock? A. Jump Register B. Add C. Store D. Load E. Either Load or Store 3

4 Basic CPU execution loop 1. Instruction Fetch 2. Instruction Decode 3. Execution (ALU) 4. Memory Access 5. Register Writeback 4

5 Single-cycle insn0. F, D, X, M, W insn1. F, D, X, M, W Pipelined insn0.f insn0.d insn1.f insn0.x insn1.d insn0.m insn1.x insn0.w insn1.m insn1.w 5

6 5-stage Pipeline Implementation Working Example Hazards Structural Data Hazards Control Hazards 6

7 ory PC +4 new pc inst register file control extend imm B A alu compute jump/branch targets B D addr d in d out ory D M Instruction Fetch Instruction Decode ctrl Execute ctrl Memory ctrl Write- Back IF/ID ID/EX EX/MEM MEM/WB 7

8 Cycle add nand lw add sw IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB Latency: 5 cycles Throughput: 1 insn/cycle CPI = 1 8

9 Break datapath into multiple cycles (here 5) Parallel execution increases throughput Balanced pipeline very important Slowest stage determines clock rate Imbalance kills performance Add pipeline registers (flip-flops) for isolation Each stage begins by reading values from latch Each stage ends by writing values to latch Resolve hazards 9

10 Stage Fetch Decode Execute Memory Perform Functionality Use PC to index Program Memory, increment PC Decode instruction, generate control signals, read register file Perform ALU operation Compute targets (PC+4+offset, etc.) in case this is a branch, decide if branch taken Perform load/store if needed, address is ALU result Latch values of interest Instruction bits (to be decoded) PC + 4 (to compute branch targets) Control information, Rd index, immediates, offsets, register values (Ra, Rb), PC+4 (to compute branch targets) Control information, Rd index, etc. Result of ALU operation, value in case this is a store instruction Control information, Rd index, etc. Result of load, pass result from execute Writeback Select value, write to register file 10

11 Prog. Mem PC +4 inst Reg. File control ALU Data Mem Fetch Decode Execute Memory WB Fetch 32-bit instruction from ory Increment PC = PC

12 instruction ory addr mc PC = read word inst PC+4 Rest of pipeline pc-reg pc-relpc-abs PC+4 pc-reg (PC registers: JR) pc-rel (PC-relative: BEQ, BNE) pc-abs (PC absolute: J and JAL) pc-sel IF/ID 12

13 Prog. Mem PC +4 inst Reg. File control ALU Data Mem Fetch Decode Execute Memory WB Gather data from the instruction Read opcode; determine instruction type, field lengths Read in data from register file (0, 1, or 2 reads for jump, addi, or add, respectively) 13

14 result Stage 1: Instruction Fetch inst ctrl PC+4 decode WE Rd D register file A B Ra Rb dest extend B A imm PC+4 Rest of pipeline IF/ID ID/EX 14

15 Prog. Mem PC +4 inst Reg. File control ALU Data Mem Fetch Decode Execute Memory WB Useful work done here (+, -, *, /), shift, logic operation, comparison (slt) Load/Store? lw $t2, 32($t3) à Compute address 15

16 pc-reg pc-sel branch? Stage 2: Instruction Decode PC+4 imm B A + pc-rel pc-abs ctrl B D Rest of pipeline ctrl alu target ID/EX EX/MEM 16

17 Prog. Mem PC +4 inst Reg. File control ALU addr Data Mem Data R/W Data Fetch Decode Execute Memory WB Used by load and store instructions only Other instructions will skip this stage 17

18 pc-sel branch? pc-reg Stage 3: Execute B D target pc-rel pc-abs d in addr ory ctrl M D Rest of pipeline ctrl d out mc EX/MEM MEM/WB 18

19 Prog. Mem PC +4 inst Reg. File control ALU Data Mem Fetch Decode Execute Memory WB Write to register file For arithmetic ops, logic, shift, etc, load. What about stores? Update PC For branches, jumps 19

20 result Stage 4: Memory M D dest ctrl MEM/WB 20

21 inst PC +4 inst PC+4 A Rd D B Ra Rb B A Rt Rd PC+4 imm OP B D ctrl target addr d in d out M D OP Rd IF/ID ID/EX EX/MEM MEM/WB 21

22 Consider a non-pipelined processor with clock period C (e.g., 50 ns). If you divide the processor into N stages (e.g., 5), your new clock period will be: A. C B. N C. less than C/N D. C/N E. greater than C/N 22

23 Instructions same length 32 bits, easy to fetch and then decode 3 types of instruction formats Easy to route bits between stages Can read a register source before even knowing what the instruction is Memory access through lw and sw only Access ory after ALU 23

24 5-stage Pipeline Implementation Working Example Hazards Structural Data Hazards Control Hazards 24

25 add nand lw add sw r3 ß r1, r2 r6 ß r4, r5 r4 ß 20(r2) r5 ß r2, r5 r7 à 12(r3) Assume 8-register machine 25

26 extend data dest 0 0 M U X Time: 0 IF/ID ID/EX EX/MEM MEM/WB 26

27 add M U X PC 4 Fetch: add Time: add Register file Bits Bits Bits R0 R1 R2 R3 R4 R5 R6 R extend nop M U X M U X A L U nop Data IF/ID ID/EX EX/MEM MEM/WB nop 27 M U X data dest

28 nand add M U X PC 4 Fetch: nand Time: nand Register file Bits Bits Bits R0 R1 R2 R3 R4 R5 R6 R extend add M U X M U X A L U nop Data IF/ID ID/EX EX/MEM MEM/WB nop 28 M U X data dest

29 lw 4 20(2) nand add M U X PC 4 Fetch: lw 4 20(2) Time: lw 4 20(2) 4 5 Register file Bits Bits Bits R0 R1 R2 R3 R4 R5 R6 R extend nand M U X M U X A L U add Data IF/ID ID/EX EX/MEM MEM/WB nop 29 M U X data dest

30 add lw 4 20(2) nand add M U X PC 4 Fetch: add Time: add Register file Bits Bits Bits R0 R1 R2 R3 R4 R5 R6 R extend lw M U X M U X nand 18 = = = A L U nand 45 3 Data IF/ID ID/EX EX/MEM MEM/WB add 30 M U X data dest

31 sw 7 12(3) add lw 4 20 (2) nand add M U X PC 4 Fetch: sw 7 12(3) Time: sw 7 12(3) 2 5 Register file Bits Bits Bits R0 R1 R2 R3 R4 R5 R6 R extend add M U X M U X A L U lw -3 6 Data nand IF/ID ID/EX EX/MEM MEM/WB M U X data dest

32 nop sw 7 12(3) add lw 4 20(2) nand M U X PC 4 No more instructions Time: Register file Bits Bits Bits R0 R1 R2 R3 R4 R5 R6 R extend sw M U X M U X A L U add Data IF/ID ID/EX EX/MEM MEM/WB lw M U X data dest

33 nop nop sw 7 12(3) add lw 4 20(2) M U X PC 4 No more instructions Time: 7 + Register file Bits Bits Bits R0 R1 R2 R3 R4 R5 R6 R extend M U X M U X A L U sw Data IF/ID ID/EX EX/MEM MEM/WB add M U X data dest

34 nop nop nop sw 7 12(3) add M U X PC 4 + Register file R0 R1 R2 R3 R4 R5 R6 R extend M U X A L U Data M U X data dest No more instructions Time: 8 Slides thanks to Sally McKee Bits Bits Bits M U X IF/ID ID/EX EX/MEM MEM/WB 7 sw 5 34

35 nop nop nop nop sw 7 12(3) M U X PC 4 + Register file R0 R1 R2 R3 R4 R5 R6 R extend M U X A L U Data M U X data dest No more instructions Bits Bits Bits M U X Time: 9 IF/ID ID/EX EX/MEM MEM/WB 35

36 Pipelining is great because: A. You can fetch and decode the same instruction at the same time. B. You can fetch two instructions at the same time. C. You can fetch one instruction while decoding another. D. Instructions only need to visit the pipeline stages that they require. E. C and D 36

37 5-stage Pipeline Implementation Working Example Hazards Structural Data Hazards Control Hazards 37

38 Correctness problems associated w/processor design 1. Structural hazards Same resource needed for different purposes at the same time (Possible: ALU, Register File, Memory) 2. Data hazards Instruction output needed before it s available 3. Control hazards Next instruction PC unknown at time of Fetch 38

39 inst D A B data add r3, r2, r1 nop nop add r6, r5, r4 add r6, r5, r4 nop IF ID Ex M W nop IF ID Ex M W IF ID Ex M W IF ID Ex M W add r3, r2,r1 Problem: Need to read from and write to Register File at the same time Solution: negate RF clock: write first half, read second half 39

40 Dependence: relationship between two insns Data: two insns use same storage location Control: 1 insn affects whether another executes at all Not a bad thing, programs would be boring otherwise Enforced by making older insn go before younger one Happens naturally in single-/multi-cycle designs But not in a pipeline Hazard: dependence & possibility of wrong insn order Effects of wrong insn order cannot be externally visible Hazards are a bad thing: most solutions either complicate the hardware or reduce performance 40

41 Data Hazards register file (RF) reads occur in stage 2 (ID) RF writes occur in stage 5 (WB) RF written in ½ half, read in second ½ half of cycle Processor is built exactly as we ve seen up until this slide. x10: add r3 ß r1, r2 x14: sub r5 ß r3, r4 1. Is there a dependence? 2. Is there a hazard? A) Yes B) No C) Cannot tell with the information given. 41

42 Which of the following statements is true? A. Whether there is a data dependence between two instructions depends on the machine the program is running on. B. Whether there is a data hazard between two instructions depends on the machine the program is running on. C. Both A & B D. Neither A nor B 42

43 time Clock cycle add r3, r1, r2 IF ID X MEM WB sub r5, r3, r4 IF ID X MEM WB lw r6, 4(r3) IF ID X MEM WB or r5, r3, r5 IF ID X MEM WB sw r6, 12(r3) IF ID X MEM WB 43

44 time Clock cycle backwards arrows require time travel add r3, r1, r2 IF ID X MEM WB sub r5, r3, r4 IF ID X MEM WB lw r6, 4(r3) IF ID X MEM WB or r5, r3, r5 IF ID X MEM WB sw r6, 12(r3) IF ID X MEM WB 44

45 time Clock cycle add r3, r1, r2 IF ID X MEM WB sub r5, r3, r4 IF ID X MEM WB lw r6, 4(r3) IF ID X MEM WB or r5, r3, r5 IF ID X MEM WB sw r6, 12(r3) IF ID X MEM WB 45

46 time Clock cycle add r3, r1, r2 IF ID X MEM WB sub r5, r3, r4 IF ID X MEM WB lw r6, 4(r3) IF ID X MEM WB or r5, r3, r5 IF ID X MEM WB sw r6, 12(r3) IF ID X MEM WB 46

47 Detecting Data Hazards inst PC +4 inst PC+4 IF/ID Rd D A B Ra Rb IF/ID.Ra 0? sub r5,r3,r4 OP Rt Rd PC+4 imm B A Ra ==? Ra ==? add r3, r1, r2 B D OP Rd d in addr d out M D OP Rd ID/EX EX/MEM MEM/WB Problem = (IF/ID.Ra!= 0 && (IF/ID.Ra == ID/EX.Rd IF/ID.Ra == EX/M.Rd)) repeat for Rb 47

48 1. Do Nothing Change the ISA to match implementation Hey compiler: don t create code w/data hazards! (We can do better than this) 2. Stall Pause current and subsequent instructions till safe 3. Forward/bypass Forward data value to where it is needed (Only works if value actually exists already) 48

49 How to stall an instruction in ID stage prevent IF/ID pipeline register update stalls the ID stage instruction convert ID stage insn into nop for later stages innocuous bubble passes through pipeline prevent PC update stalls the next (IF stage) instruction 49

50 add r3, r1, r2 sub inst r5, r3, r5 or r6, r3, r4 add r6, r3, r8 +4 PC inst PC+4 Rd D A B Ra Rb detect hazard If hazard: OP Rt Rd PC+4 imm B A OP Rd B D addr d in d out OP Rd M D WE=0 IF/ID MemWr=0 RegWr=0 ID/EX EX/MEM MEM/WB 50

51 inst +4 inst D rd ra rb A B A B D B data D M PC (MemWr=0 RegWr=0) nop Op WE Rd Op WE Rd Op WE Rd sub r5,r3,r5 add r3,r1,r2 or r6,r3,r4 (WE=0) /stall NOP = If(IF/ID.rA 0 && (IF/ID.rA==ID/Ex.Rd IF/ID.rA==Ex/M.Rd)) STALL CONDITION MET 51

52 inst +4 inst D rd ra rb A B A B D B data D M PC (MemWr=0 RegWr=0) nop sub r5,r3,r5 Rd WE Op (MemWr=0 RegWr=0) nop Rd WE Op add r3,r1,r2 Rd WE Op or r6,r3,r4 (WE=0) /stall NOP = If(IF/ID.rA 0 && (IF/ID.rA==ID/Ex.Rd IF/ID.rA==Ex/M.Rd)) STALL CONDITION MET 52

53 inst +4 inst D rd ra rb A B A B D B data D M WE Rd Rd Rd PC or r6,r3,r4 (WE=1) nop sub r5,r3,r5 /stall Op (MemWr=0 RegWr=0) nop NOP = If(IF/ID.rA 0 && (IF/ID.rA==ID/Ex.Rd IF/ID.rA==Ex/M.Rd)) WE Op WE Op nop add r3,r1,r2 NO STALL CONDITION MET: sub allowed to leave decode stage 53

54 time Clock cycle add r3, r1, r2 sub r5, r3, r5 or r6, r3, r4 add r6, r3, r8 54

55 time r3 = 10 add r3, r1, r2 r3 = 20 sub r5, r3, r5 Clock cycle IF ID Ex M W 2 Stall Cycles IF ID* ID* ID Ex M W or r6, r3, r4 IF* IF* IF ID Ex M add r6, r3, r8 IF ID Ex 55

56 1. Do Nothing Change the ISA to match implementation Compiler: don t create code with data hazards! (Nice try, we can do better than this) 2. Stall Pause current and subsequent instructions till safe 3. Forward/bypass Forward data value to where it is needed (Only works if value actually exists already) 56

57 Ex/Mem inst D A B data sub r5, r3, r1 add r3, r1, r2 add r3, r1, r2 sub r5, r3, r1 IF ID Ex M W IF ID Ex M W Problem: EX needs ALU result that is in MEM stage Solution: add a bypass from EX/MEM.D to start of EX 57

58 Ex/Mem A inst D B data sub r5, r3, r1 add r3, r1, r2 Detection Logic in Ex Stage: forward = (Ex/M.WE && EX/M.Rd!= 0 && ID/Ex.Ra == Ex/M.Rd) (same for Rb) 58

59 Mem/WB inst D A B data add r3, r1, r2 sub r5, r3, r1 or r6, r3, r4 IF ID Ex M W IF or r6, r3, r4 ID IF Ex M W ID Ex M sub r5, r3, r1 W add r3, r1,r2 Problem: EX needs value being written by WB Solution: Add bypass from WB final value to start of EX 59

60 Mem/WB inst D A B data or r6, r3, r4 sub r5, r3, r1 Detection Logic: forward = (M/WB.WE && M/WB.Rd!= 0 && ID/Ex.Ra == M/WB.Rd && not (Ex/M.WE && Ex/M.Rd!= 0 && ID/Ex.Ra == Ex/M.Rd) (same for Rb) add r3, r1,r2 60

61 inst D A B A B imm D B data D M detect hazard Rb Ra forward unit Rd WE MC Rd WE MC IF/ID ID/Ex Ex/Mem Mem/WB Two types of forwarding/bypass Forwarding from Ex/Mem registers to Ex stage (M Ex) Forwarding from Mem/WB register to Ex stage (W Ex) 61

62 time Clock cycle add r3, r1, r2 sub r5, r3, r4 lw r6, 4(r3) or r5, r3, r5 sw r6, 12(r3) 62

63 time add r3, r1, r2 Clock cycle IF ID Ex M W sub r5, r3, r4 IF ID Ex M W lw r6, 4(r3) IF ID Ex M W or r5, r3, r5 IF ID Ex M W sw r6, 12(r3) IF ID Ex M W 63

64 A inst D B data or r6, r3, r4 lw r4, 20(r8) Data dependency after a load instruction: Value not available until after the M stage ànext instruction cannot proceed if dependent THE KILLER HAZARD 64

65 inst A D B or r6,r4,r1 lw r4, 20(r8) data lw r4, 20(r8) or r6, r3, r4 65

66 inst A D B or r6,r4,r1 lw r4, 20(r8) data lw r4, 20(r8) IF ID Ex or r6, r3, r4 IF ID 66

67 A inst D B data or r6,r4,r1 NOP lw r4, 20(r8) lw r4, 20(r8) or r6, r3, r4 IF ID Ex M W Stall IF ID* ID Ex M W 67

68 inst D A B data or r6,r4,r1 NOP lw r4, 20( lw r4, 20(r8) or r6, r3, r4 IF ID Ex M W Stall IF ID* ID Ex Ex M W 68

69 inst D A B A B imm D B data D M detect hazard Rd Rb Ra MC forward unit IF/ID ID/Ex Ex/Mem Mem/WB Rd WE MC Rd WE MC Stall = If(ID/Ex.MemRead && IF/ID.Ra == ID/Ex.Rd 69

70 inst D A B A B imm D B data D M detect hazard Rd Rb Ra MC forward unit IF/ID ID/Ex Ex/Mem Mem/WB Rd WE MC Rd WE MC Most frequent 3410 non-solution to load-use hazards Why is this solution so so so so so so awful? 70

71 Forwarding values directly from Memory to the Execute stage without storing them in a register first: A. Does not remove the need to stall. B. Adds one too many possible inputs to the ALU. C. Will cause the pipeline register to have the wrong value. D. Halves the frequency of the processor. E. Both A & D 71

72 Two MIPS Solutions: MIPS 2000/3000: delay slot ISA says results of loads are not available until one cycle later Assembler inserts nop, or reorders to fill delay slot MIPS 4000 onwards: stall But really, programmer/compiler reorders to avoid stalling in the load delay slot 72

73 5-stage Pipeline Implementation Working Example Hazards Structural Data Hazards Control Hazards 73

74 for (i = 0; i < max; i++) { n += 2; } i = 7; n--; r1: i r2: n r3: max Simplification: assume max > 0 x10 addi r1, r0, 0 # i=0 x14 Loop: addi r2, r2, 2 # n += 2 x18 addi r1, r1, 1 # i++ x1c blt r1, r3, Loop # i<max? x20 addi r1, r0, 7 # i = 7 x24 subi r2, r2, 1 # n-- 74

75 Control Hazards instructions are fetched in stage 1 (IF) branch and jump decisions occur in stage 3 (EX) à next PC not known until 2 cycles after branch/jump x1c blt r1, r3, Loop x20 addi r1, r0, 7 x24 subi r2, r2, 1 Branch not taken? No Problem! Branch taken? Just fetched 2 addi s à Zap & Flush 75

76 inst PC +4 D A B New PC = 14 1C blt r1,r3,l 20 addi r1,r0,7 24 subi r2,r2,1 14 L:addi r2,r2,2 branch calc decide branch data IF ID Ex M W IF ID NOP NOP NOP prevent PC update clear IF/ID latch branch continues If branch Taken Zap IF NOP NOP NOP NOP IF ID Ex M W 76

77 prevent PC update clear IF/ID latch branch continues inst PC +4 D A B New PC = 1C 1C blt r1,r3,l 20 addi r1,r0,7 24 subi r2,r2,1 14 L:addi r2,r2,2 branch calc decide branch data If branch Taken Zap IF ID Ex M W IF ID NOP NOP NOP IF NOP NOP NOP NOP For every taken branch? OUCH!!! IF ID Ex M W 77

78 Back of the envelope calculation Branch: 20%, load: 20%, store: 10%, other: 50% Say, 75% of branches are taken CPI = % * 75% * 2 = * 0.75 * 2 = 1.3 Branches cause 30% slowdown Even worse with deeper pipelines How do we reduce slowdown? 78

79 1. Delay Slot MIPS ISA: 1 insn after ctrl insn always executed Whether branch taken or not Your MIPS assembly should do this 2. Resolve Branch at Decode Move branch calc from EX to ID Alternative: just zap 2 nd instruction when branch taken 3. Branch Prediction Not in 3410, but every processor worth anything does this 79

80 for (i = 0; i < max; i++) { n += 2; } i = 7; n--; x10 addi r1, r0, 0 # i=0 i à r1 Assume: n à r2 max à r3 x14 Loop: addi r2, r2, 2 # n x+= 2 x18 addi r1, r1, 1 # i++ x1c blt r1, r3, Loop # i<max? x20 nop x24 addi r1, r0, 7 # i = 7 x28 subi r2, r2, 1 # n++ 80

81 inst PC +4 A D B New PC = 1C branch calc decide branch data 1C blt r1, r3, Loop F D X 20 nop F D 24 addi r1, r0, 7 F Zap!

82 A delay slot complicates the design of a processor. A. True B. False C. Cannot tell from the information given D. I don t know E. I think E is an awesome answer. 82

83 inst PC +4 D A B branch calc decide data New PC = 1C branch 1C blt r1, r3, Loop F D X 20 nop F D 14 Loop:addi r2,r2,2 F No Zapping! 83

84 Back of the envelope calculation Branch: 20%, load: 20%, store: 10%, other: 50% Say, 75% of branches are taken What is the CPI with decode? CPI = % * 75% * 1 = * 0.75 * 1 = % slowdown à 15% slowdown 84

85 Resolving branches at decode could slow down the clock frequency of the processor. A. True B. False C. Cannot tell from the information given D. I don t know E. I think E is an awesome answer. 85

86 Because MIPS has a delay slot, the instruction after any control instruction must always be a nop. A. True B. False C. Cannot tell from the information given D. I don t know E. I think E is an awesome answer. 86

87 x10 addi r1, r0, 0 # i=0 x14 Loop: addi r2, r2, 2 # n += 2 x18 addi r1, r1, 1 # i++ x1c blt r1, r3, Loop # i<max? x20 nop Compiler transforms code x10 addi r1, r0, 0 # i=0 x14 Loop: addi r1, r1, 1 # i++ x18 blt r1, r3, Loop # i<max? x1c addi r2, r2, 2 # n += 2 87

88 inst PC +4 D A B branch calc decide data New PC = 1C branch 1C blt r1, r3, Loop F D X 20 addi r2,r2,2 F D 14 Loop:addi r1,r1,1 F No Nop or Zapping! 88

89 Most processor support Speculative Execution Guess direction of the branch Allow instructions to move through pipeline Zap them later if guess turns out to be wrong A must for long pipelines 89

90 Parameters Branch: 20%, load: 20%, store: 10%, other: 50% 75% of branches are taken Dynamic branch prediction Branches predicted with 95% accuracy What is the CPI with decode? CPI = % * 5% * 2 =

91 Data hazards occur when a operand (register) depends on the result of a previous instruction that may not be computed yet. Pipelined processors need to detect data hazards. Stalling, preventing a dependent instruction from advancing, is one way to resolve data hazards. Stalling introduces NOPs ( bubbles ) into a pipeline. Introduce NOPs by (1) preventing the PC from updating, (2) preventing writes to IF/ID registers from changing, and (3) preventing writes to ory and register file. Nops significantly decrease performance. Forwarding bypasses some pipelined stages forwarding a result to a dependent instruction operand (register). Better performance than stalling. 91

92 Control hazards occur because the PC following a control instruction is not known until control instruction is executed. If branch is taken à need to zap instructions. 1 cycle performance penalty. Delay Slots can potentially increase performance due to control hazards. The instruction in the delay slot will always be executed. Requires software (compiler) to make use of delay slot. Put nop in delay slot if not able to put useful instruction in delay slot. We can reduce cost of a control hazard by moving branch decision and calculation from Ex stage to ID stage. With a delay slot, this removes the need to flush instructions on taken branches. 92

Hakim Weatherspoon CS 3410 Computer Science Cornell University

Hakim Weatherspoon CS 3410 Computer Science Cornell University Hakim Weatherspoon CS 3410 Computer Science Cornell University The slides are the product of many rounds of teaching CS 3410 by Professors Weatherspoon, Bala, Bracy, McKee, and Sirer. memory inst register

More information

Pipeline Hazards. See P&H Chapter 4.7. Hakim Weatherspoon CS 3410, Spring 2013 Computer Science Cornell University

Pipeline Hazards. See P&H Chapter 4.7. Hakim Weatherspoon CS 3410, Spring 2013 Computer Science Cornell University Pipeline Hazards See P&H Chapter 4.7 Hakim Weatherspoon CS 341, Spring 213 Computer Science Cornell niversity Goals for Today Data Hazards Revisit Pipelined Processors Data dependencies Problem, detection,

More information

Pipeline Hazards. See P&H Chapter 4.7. Hakim Weatherspoon CS 3410, Spring 2013 Computer Science Cornell University

Pipeline Hazards. See P&H Chapter 4.7. Hakim Weatherspoon CS 3410, Spring 2013 Computer Science Cornell University Pipeline Hazards See P&H Chapter 4.7 Hakim Weatherspoon CS 341, Spring 213 Computer Science Cornell niversity Goals for Today Data Hazards Revisit Pipelined Processors Data dependencies Problem, detection,

More information

Pipelining A B C D. Readings: Example: Doing the laundry. Ann, Brian, Cathy, & Dave. each have one load of clothes to wash, dry, and fold

Pipelining A B C D. Readings: Example: Doing the laundry. Ann, Brian, Cathy, & Dave. each have one load of clothes to wash, dry, and fold Pipelining Readings: 4.5-4.8 Example: Doing the laundry Ann, Brian, Cathy, & Dave A B C D each have one load of clothes to wash, dry, and fold Washer takes 30 minutes Dryer takes 40 minutes Folder takes

More information

Lecture 14: Instruction Level Parallelism

Lecture 14: Instruction Level Parallelism Lecture 14: Instruction Level Parallelism Last time Pipelining in the real world Today Control hazards Other pipelines Take QUIZ 10 over P&H 4.10-15, before 11:59pm today Homework 5 due Thursday March

More information

CS152: Computer Architecture and Engineering Introduction to Pipelining. October 22, 1997 Dave Patterson (http.cs.berkeley.

CS152: Computer Architecture and Engineering Introduction to Pipelining. October 22, 1997 Dave Patterson (http.cs.berkeley. CS152: Computer Architecture and Engineering Introduction to Pipelining October 22, 1997 Dave Patterson (http.cs.berkeley.edu/~patterson) lecture slides: http://www-inst.eecs.berkeley.edu/~cs152/ cs 152

More information

Advanced Superscalar Architectures. Speculative and Out-of-Order Execution

Advanced Superscalar Architectures. Speculative and Out-of-Order Execution 6.823, L16--1 Advanced Superscalar Architectures Asanovic Laboratory for Computer Science M.I.T. http://www.csg.lcs.mit.edu/6.823 Speculative and Out-of-Order Execution Branch Prediction kill kill Branch

More information

Pipelined MIPS Datapath with Control Signals

Pipelined MIPS Datapath with Control Signals uction ess uction Rs [:26] (Opcode[5:]) [5:] ranch luor. Decoder Pipelined MIPS path with Signals luor Raddr at Five instruction sequence to be processed by pipeline: op [:26] rs [25:2] rt [2:6] rd [5:]

More information

Improving Performance: Pipelining!

Improving Performance: Pipelining! Iproving Perforance: Pipelining! Meory General registers Meory ID EXE MEM WB Instruction Fetch (includes PC increent) ID Instruction Decode + fetching values fro general purpose registers EXE EXEcute arithetic/logic

More information

Out-of-order Pipeline. Register Read. OOO execution (2-wide) OOO execution (2-wide) OOO execution (2-wide) OOO execution (2-wide)

Out-of-order Pipeline. Register Read. OOO execution (2-wide) OOO execution (2-wide) OOO execution (2-wide) OOO execution (2-wide) Out-of-order Pipeline Register Read When do instructions read the register file? Fetch Decode Rename Dispatch Buffer of instructions Issue Reg-read Execute Writeback Commit Option #: after select, right

More information

ENGN1640: Design of Computing Systems Topic 05: Pipeline Processor Design

ENGN1640: Design of Computing Systems Topic 05: Pipeline Processor Design ENGN64: Design of Computing Systems Topic 5: Pipeline Processor Design Professor Sherief Reda http://scale.engin.brown.edu Electrical Sciences and Computer Engineering School of Engineering Brown University

More information

PIPELINING: BRANCH AND MULTICYCLE INSTRUCTIONS

PIPELINING: BRANCH AND MULTICYCLE INSTRUCTIONS PIPELINING: BRANCH AND MULTICYCLE INSTRUCTIONS Mahdi Nazm Bojnordi Assistant Professor School of Computing University of Utah CS/ECE 6810: Computer Architecture Overview Announcement Homework 1 submission

More information

Computer Architecture 计算机体系结构. Lecture 3. Instruction-Level Parallelism I 第三讲 指令级并行 I. Chao Li, PhD. 李超博士

Computer Architecture 计算机体系结构. Lecture 3. Instruction-Level Parallelism I 第三讲 指令级并行 I. Chao Li, PhD. 李超博士 Computer Architecture 计算机体系结构 Lecture 3. Instruction-Level Parallelism I 第三讲 指令级并行 I Chao Li, PhD. 李超博士 SJTU-SE346, Spring 2018 Review ISA, micro-architecture, physical design Evolution of ISA CISC vs

More information

M2 Instruction Set Architecture

M2 Instruction Set Architecture M2 Instruction Set Architecture Module Outline Addressing modes. Instruction classes. MIPS-I ISA. High level languages, Assembly languages and object code. Translating and starting a program. Subroutine

More information

CIS 662: Sample midterm w solutions

CIS 662: Sample midterm w solutions CIS 662: Sample midterm w solutions 1. (40 points) A processor has the following stages in its pipeline: IF ID ALU1 MEM1 MEM2 ALU2 WB. ALU1 stage is used for effective address calculation for loads, stores

More information

6.823 Computer System Architecture Prerequisite Self-Assessment Test Assigned Feb. 6, 2019 Due Feb 11, 2019

6.823 Computer System Architecture Prerequisite Self-Assessment Test Assigned Feb. 6, 2019 Due Feb 11, 2019 6.823 Computer System Architecture Prerequisite Self-Assessment Test Assigned Feb. 6, 2019 Due Feb 11, 2019 http://csg.csail.mit.edu/6.823/ This self-assessment test is intended to help you determine your

More information

Announcements. Programming assignment #2 due Monday 9/24. Talk: Architectural Acceleration of Real Time Physics Glenn Reinman, UCLA CS

Announcements. Programming assignment #2 due Monday 9/24. Talk: Architectural Acceleration of Real Time Physics Glenn Reinman, UCLA CS Lipasti, artin, Roth, Shen, Smith, Sohi, Tyson, Vijaykumar GAS STATION Pipelining II Fall 2007 Prof. Thomas Wenisch http://www.eecs.umich.edu/courses/eecs470 Slides developed in part by Profs. Austin,

More information

CIS 371 Computer Organization and Design

CIS 371 Computer Organization and Design CIS 371 Computer Organization and Design Unit 10: Static & Dynamic Scheduling Slides developed by Milo Martin & Amir Roth at the University of Pennsylvania with sources that included University of Wisconsin

More information

Chapter 3: Computer Organization Fundamentals. Oregon State University School of Electrical Engineering and Computer Science.

Chapter 3: Computer Organization Fundamentals. Oregon State University School of Electrical Engineering and Computer Science. Chapter 3: Computer Organization Fundamentals Prof. Ben Lee Oregon State University School of Electrical Engineering and Computer Science Chapter Goals Understand the organization of a computer system

More information

Unit 9: Static & Dynamic Scheduling

Unit 9: Static & Dynamic Scheduling CIS 501: Computer Architecture Unit 9: Static & Dynamic Scheduling Slides originally developed by Drew Hilton, Amir Roth and Milo Mar;n at University of Pennsylvania CIS 501: Comp. Arch. Prof. Milo Martin

More information

Parallelism I: Inside the Core

Parallelism I: Inside the Core Parallelism I: Inside the Core 1 The final Comprehensive Same general format as the Midterm. Review the homeworks, the slides, and the quizzes. 2 Key Points What is wide issue mean? How does does it affect

More information

Code Scheduling & Limitations

Code Scheduling & Limitations This Unit: Static & Dynamic Scheduling CIS 371 Computer Organization and Design Unit 11: Static and Dynamic Scheduling App App App System software Mem CPU I/O Code scheduling To reduce pipeline stalls

More information

CIS 371 Computer Organization and Design

CIS 371 Computer Organization and Design CIS 371 Computer Organization and Design Unit 10: Static & Dynamic Scheduling Slides developed by M. Martin, A.Roth, C.J. Taylor and Benedict Brown at the University of Pennsylvania with sources that included

More information

CMU Introduction to Computer Architecture, Spring 2013 HW 3 Solutions: Microprogramming Wrap-up and Pipelining

CMU Introduction to Computer Architecture, Spring 2013 HW 3 Solutions: Microprogramming Wrap-up and Pipelining CMU 18-447 Introduction to Computer Architecture, Spring 2013 HW 3 Solutions: Microprogramming Wrap-up and Pipelining Instructor: Prof. Onur Mutlu TAs: Justin Meza, Yoongu Kim, Jason Lin 1 Adding the REP

More information

Computer Architecture: Out-of-Order Execution. Prof. Onur Mutlu (editted by Seth) Carnegie Mellon University

Computer Architecture: Out-of-Order Execution. Prof. Onur Mutlu (editted by Seth) Carnegie Mellon University Computer Architecture: Out-of-Order Execution Prof. Onur Mutlu (editted by Seth) Carnegie Mellon University Reading for Today Smith and Sohi, The Microarchitecture of Superscalar Processors, Proceedings

More information

Computer Architecture ELE 475 / COS 475 Slide Deck 6: Superscalar 3. David Wentzlaff Department of Electrical Engineering Princeton University

Computer Architecture ELE 475 / COS 475 Slide Deck 6: Superscalar 3. David Wentzlaff Department of Electrical Engineering Princeton University Computer Architecture ELE 475 / COS 475 Slide Deck 6: Superscalar 3 David Wentzlaff Department of Electrical Engineering Princeton University 1 Agenda SpeculaJon and Branches Register Renaming Memory DisambiguaJon

More information

Tomasulo-Style Register Renaming

Tomasulo-Style Register Renaming Tomasulo-Style Register Renaming ldf f0,x(r1) allocate RS#4 map f0 to RS#4 mulf f4,f0, allocate RS#6 ready, copy value f0 not ready, copy tag Map Table f0 f4 RS#4 RS T V1 V2 T1 T2 4 REG[r1] 6 REG[] RS#4

More information

CS 152 Computer Architecture and Engineering

CS 152 Computer Architecture and Engineering CS 152 Computer Architecture and Engineering Lecture 23 Synchronization 2006-11-16 John Lazzaro (www.cs.berkeley.edu/~lazzaro) TAs: Udam Saini and Jue Sun www-inst.eecs.berkeley.edu/~cs152/ 1 Last Time:

More information

DAT105: Computer Architecture Study Period 2, 2009 Exercise 2 Chapter 2: Instruction-Level Parallelism and Its Exploitation

DAT105: Computer Architecture Study Period 2, 2009 Exercise 2 Chapter 2: Instruction-Level Parallelism and Its Exploitation Study Period 2, 29 Exercise 2 Chapter 2: Instruction-Level Parallelism and Its Exploitation Mafijul Islam Department of Computer Science and Engineering November 12, 29 Study Period 2, 29 Goals: To understand

More information

FabComp: Hardware specication

FabComp: Hardware specication Sol Boucher and Evan Klei CSCI-453-01 04/28/14 FabComp: Hardware specication 1 Hardware The computer is composed of a largely isolated data unit and control unit, which are only connected by a couple of

More information

Advanced Superscalar Architectures

Advanced Superscalar Architectures Advanced Suerscalar Architectures Krste Asanovic Laboratory for Comuter Science Massachusetts Institute of Technology Physical Register Renaming (single hysical register file: MIPS R10K, Alha 21264, Pentium-4)

More information

COSC 6385 Computer Architecture. - Tomasulos Algorithm

COSC 6385 Computer Architecture. - Tomasulos Algorithm COSC 6385 Computer Architecture - Tomasulos Algorithm Fall 2008 Analyzing a short code-sequence DIV.D F0, F2, F4 ADD.D F6, F0, F8 S.D F6, 0(R1) SUB.D F8, F10, F14 MUL.D F6, F10, F8 1 Analyzing a short

More information

UC Berkeley CS61C : Machine Structures

UC Berkeley CS61C : Machine Structures inst.eecs.berkeley.edu/~cs61c UC Berkeley CS61C : Machine Structures Lecture 20 Synchronous Digital Systems Blu-ray vs HD-DVD war over? As you know, there are two different, competing formats for the next

More information

To read more. CS 6354: Tomasulo. Intel Skylake. Scheduling. How can we reorder instructions? Without changing the answer.

To read more. CS 6354: Tomasulo. Intel Skylake. Scheduling. How can we reorder instructions? Without changing the answer. To read more CS 6354: Tomasulo 21 September 2016 This day s paper: Tomasulo, An Efficient Algorithm for Exploiting Multiple Arithmetic Units Supplementary readings: Hennessy and Patterson, Computer Architecture:

More information

Lecture 20: Parallelism ILP to Multicores. James C. Hoe Department of ECE Carnegie Mellon University

Lecture 20: Parallelism ILP to Multicores. James C. Hoe Department of ECE Carnegie Mellon University 18 447 Lecture 20: Parallelism ILP to Multicores James C. Hoe Department of ECE Carnegie Mellon University 18 447 S18 L20 S1, James C. Hoe, CMU/ECE/CALCM, 2018 18 447 S18 L20 S2, James C. Hoe, CMU/ECE/CALCM,

More information

CS 6354: Tomasulo. 21 September 2016

CS 6354: Tomasulo. 21 September 2016 1 CS 6354: Tomasulo 21 September 2016 To read more 1 This day s paper: Tomasulo, An Efficient Algorithm for Exploiting Multiple Arithmetic Units Supplementary readings: Hennessy and Patterson, Computer

More information

CS 152 Computer Architecture and Engineering. Lecture 15 - Advanced Superscalars

CS 152 Computer Architecture and Engineering. Lecture 15 - Advanced Superscalars CS 152 Comuter Architecture and Engineering Lecture 15 - Advanced Suerscalars Krste Asanovic Electrical Engineering and Comuter Sciences University of California at Berkeley htt://www.eecs.berkeley.edu/~krste

More information

ECE 550D Fundamentals of Computer Systems and Engineering. Fall 2017

ECE 550D Fundamentals of Computer Systems and Engineering. Fall 2017 ECE 550D Fundamentals of Computer Systems and Engineering Fall 2017 Digital Arithmetic Prof. John Board Duke University Slides are derived from work by Profs. Tyler Bletch and Andrew Hilton (Duke) Last

More information

CS 152 Computer Architecture and Engineering. Lecture 14 - Advanced Superscalars

CS 152 Computer Architecture and Engineering. Lecture 14 - Advanced Superscalars CS 152 Comuter Architecture and Engineering Lecture 14 - Advanced Suerscalars Krste Asanovic Electrical Engineering and Comuter Sciences University of California at Berkeley htt://www.eecs.berkeley.edu/~krste

More information

Direct-Mapped Cache Terminology. Caching Terminology. TIO Dan s great cache mnemonic. UCB CS61C : Machine Structures

Direct-Mapped Cache Terminology. Caching Terminology. TIO Dan s great cache mnemonic. UCB CS61C : Machine Structures Lecturer SOE Dan Garcia inst.eecs.berkeley.edu/~cs61c UCB CS61C : Machine Structures Lecture 31 Caches II 2008-04-12 HP has begun testing research prototypes of a novel non-volatile memory element, the

More information

Lecture 31 Caches II TIO Dan s great cache mnemonic. Issues with Direct-Mapped

Lecture 31 Caches II TIO Dan s great cache mnemonic. Issues with Direct-Mapped CS61C L31 Caches II (1) inst.eecs.berkeley.edu/~cs61c UC Berkeley CS61C : Machine Structures Lecture 31 Caches II 26-11-13 Lecturer SOE Dan Garcia www.cs.berkeley.edu/~ddgarcia GPUs >> CPUs? Many are using

More information

Optimality of Tomasulo s Algorithm Luna, Dong Gang, Zhao

Optimality of Tomasulo s Algorithm Luna, Dong Gang, Zhao Optimality of Tomasulo s Algorithm Luna, Dong Gang, Zhao Feb 28th, 2002 Our Questions about Tomasulo Questions about Tomasulo s Algorithm Is it optimal (can always produce the wisest instruction execution

More information

Decoupling Loads for Nano-Instruction Set Computers

Decoupling Loads for Nano-Instruction Set Computers Decoupling Loads for Nano-Instruction Set Computers Ziqiang (Patrick) Huang, Andrew Hilton, Benjamin Lee Duke University {ziqiang.huang, andrew.hilton, benjamin.c.lee}@duke.edu ISCA-43, June 21, 2016 1

More information

CSCI 510: Computer Architecture Written Assignment 2 Solutions

CSCI 510: Computer Architecture Written Assignment 2 Solutions CSCI 510: Computer Architecture Written Assignment 2 Solutions The following code does compution over two vectors. Consider different execution scenarios and provide the average number of cycles per iterion

More information

VHDL (and verilog) allow complex hardware to be described in either single-segment style to two-segment style

VHDL (and verilog) allow complex hardware to be described in either single-segment style to two-segment style FFs and Registers In this lecture, we show how the process block is used to create FFs and registers Flip-flops (FFs) and registers are both derived using our standard data types, std_logic, std_logic_vector,

More information

Chapter 10 And, Finally... The Stack

Chapter 10 And, Finally... The Stack Chapter 10 And, Finally... The Stack Stacks: An Abstract Data Type A LIFO (last-in first-out) storage structure. The first thing you put in is the last thing you take out. The last thing you put in is

More information

CS 250! VLSI System Design

CS 250! VLSI System Design CS 250! VLSI System Design Lecture 3 Timing 2014-9-4! Professor Jonathan Bachrach! slides by John Lazzaro TA: Colin Schmidt www-insteecsberkeleyedu/~cs250/ UC Regents Fall 2013/1014 UCB everything doesn

More information

INSTITUTO SUPERIOR TÉCNICO. Architectures for Embedded Computing

INSTITUTO SUPERIOR TÉCNICO. Architectures for Embedded Computing UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Departamento de Engenharia Informática Architectures for Embedded Computing MEIC-A, MEIC-T, MERC Lecture Slides Version 3.0 - English Lecture 02

More information

SDRAM AS4SD8M Mb: 8 Meg x 16 SDRAM Synchronous DRAM Memory. PIN ASSIGNMENT (Top View)

SDRAM AS4SD8M Mb: 8 Meg x 16 SDRAM Synchronous DRAM Memory. PIN ASSIGNMENT (Top View) 128 Mb: 8 Meg x 16 SDRAM Synchronous DRAM Memory FEATURES Full Military temp (-55 C to 125 C) processing available Configuration: 8 Meg x 16 (2 Meg x 16 x 4 banks) Fully synchronous; all signals registered

More information

Bimotion Advanced Port & Pipe Case study A step by step guide about how to calculate a 2-stroke engine.

Bimotion Advanced Port & Pipe Case study A step by step guide about how to calculate a 2-stroke engine. Bimotion Advanced Port & Pipe Case study A step by step guide about how to calculate a 2-stroke engine. 2009/aug/21. Bimotion. This paper is free for distribution and may be revised, for further references

More information

Warped-Compression: Enabling Power Efficient GPUs through Register Compression

Warped-Compression: Enabling Power Efficient GPUs through Register Compression WarpedCompression: Enabling Power Efficient GPUs through Register Compression Sangpil Lee, Keunsoo Kim, Won Woo Ro (Yonsei University*) Gunjae Koo, Hyeran Jeon, Murali Annavaram (USC) (*Work done while

More information

CPW Current Programmed Winder for the 890. Application Handbook. Copyright 2005 by Parker SSD Drives, Inc.

CPW Current Programmed Winder for the 890. Application Handbook. Copyright 2005 by Parker SSD Drives, Inc. CPW Current Programmed Winder for the 890. Application Handbook Copyright 2005 by Parker SSD Drives, Inc. All rights strictly reserved. No part of this document may be stored in a retrieval system, or

More information

EECS 583 Class 9 Classic Optimization

EECS 583 Class 9 Classic Optimization EECS 583 Class 9 Classic Optimization University of Michigan September 28, 2016 Generalizing Dataflow Analysis Transfer function» How information is changed by something (BB)» OUT = GEN + (IN KILL) /*

More information

Mandatory Experiment: Electric conduction

Mandatory Experiment: Electric conduction Name: Class: Mandatory Experiment: Electric conduction In this experiment, you will investigate how different materials affect the brightness of a bulb in a simple electric circuit. 1. Take a battery holder,

More information

ECE 552 / CPS 550 Advanced Computer Architecture I. Lecture 10 Instruction-Level Parallelism Part 3

ECE 552 / CPS 550 Advanced Computer Architecture I. Lecture 10 Instruction-Level Parallelism Part 3 ECE 552 / CPS 550 Advanced Comuter Architecture I Lecture 10 Instruction-Level Parallelism Part 3 Benjamin Lee Electrical and Comuter Engineering Duke University www.duke.edu/~bcl15 www.duke.edu/~bcl15/class/class_ece252fall12.html

More information

mith College Computer Science CSC231 Assembly Fall 2017 Week #4 Dominique Thiébaut

mith College Computer Science CSC231 Assembly Fall 2017 Week #4 Dominique Thiébaut mith College Computer Science CSC231 Assembly Fall 2017 Week #4 Dominique Thiébaut dthiebaut@smith.edu How are Integers Stored in Memory? 120 11F 11E 11D 11C 11B 11A 119 118 117 116 115 114 113 112 111

More information

Fourth Grade. Multiplication Review. Slide 1 / 146 Slide 2 / 146. Slide 3 / 146. Slide 4 / 146. Slide 5 / 146. Slide 6 / 146

Fourth Grade. Multiplication Review. Slide 1 / 146 Slide 2 / 146. Slide 3 / 146. Slide 4 / 146. Slide 5 / 146. Slide 6 / 146 Slide 1 / 146 Slide 2 / 146 Fourth Grade Multiplication and Division Relationship 2015-11-23 www.njctl.org Multiplication Review Slide 3 / 146 Table of Contents Properties of Multiplication Factors Prime

More information

Fourth Grade. Slide 1 / 146. Slide 2 / 146. Slide 3 / 146. Multiplication and Division Relationship. Table of Contents. Multiplication Review

Fourth Grade. Slide 1 / 146. Slide 2 / 146. Slide 3 / 146. Multiplication and Division Relationship. Table of Contents. Multiplication Review Slide 1 / 146 Slide 2 / 146 Fourth Grade Multiplication and Division Relationship 2015-11-23 www.njctl.org Table of Contents Slide 3 / 146 Click on a topic to go to that section. Multiplication Review

More information

128Mb Synchronous DRAM. Features High Performance: Description. REV 1.0 May, 2001 NT5SV32M4CT NT5SV16M8CT NT5SV8M16CT

128Mb Synchronous DRAM. Features High Performance: Description. REV 1.0 May, 2001 NT5SV32M4CT NT5SV16M8CT NT5SV8M16CT Features High Performance: f Clock Frequency -7K 3 CL=2-75B, CL=3-8B, CL=2 Single Pulsed RAS Interface Fully Synchronous to Positive Clock Edge Four Banks controlled by BS0/BS1 (Bank Select) Units 133

More information

RAM-Type Interface for Embedded User Flash Memory

RAM-Type Interface for Embedded User Flash Memory June 2012 Introduction Reference Design RD1126 MachXO2-640/U and higher density devices provide a User Flash Memory (UFM) block, which can be used for a variety of applications including PROM data storage,

More information

CMPEN 411 VLSI Digital Circuits Spring Lecture 24: Peripheral Memory Circuits

CMPEN 411 VLSI Digital Circuits Spring Lecture 24: Peripheral Memory Circuits CMPEN 411 VLSI Digital Circuits Spring 2012 Lecture 24: Peripheral Memory Circuits [Adapted from Rabaey s Digital Integrated Circuits, Second Edition, 2003 J. Rabaey, A. Chandrakasan, B. Nikolic] Sp12

More information

IS42S32200C1. 512K Bits x 32 Bits x 4 Banks (64-MBIT) SYNCHRONOUS DYNAMIC RAM

IS42S32200C1. 512K Bits x 32 Bits x 4 Banks (64-MBIT) SYNCHRONOUS DYNAMIC RAM 512K Bits x 32 Bits x 4 Banks (64-MBIT) SYNCHRONOUS DYNAMIC RAM JANUARY 2007 FEATURES Clock frequency: 183, 166, 143 MHz Fully synchronous; all signals referenced to a positive clock edge Internal bank

More information

Series circuits. The ammeter

Series circuits. The ammeter Series circuits D o you remember how the parts of the torch on pages 272 3 were connected together? The circuit contained several components, connected one after the other. Conductors, like the metal strip

More information

Multi Core Processing in VisionLab

Multi Core Processing in VisionLab Multi Core Processing in Multi Core CPU Processing in 25 August 2014 Copyright 2001 2014 by Van de Loosdrecht Machine Vision BV All rights reserved jaap@vdlmv.nl Overview Introduction Demonstration Automatic

More information

IS42S32200L IS45S32200L

IS42S32200L IS45S32200L IS42S32200L IS45S32200L 512K Bits x 32 Bits x 4 Banks (64-MBIT) SYNCHRONOUS DYNAMIC RAM OCTOBER 2012 FEATURES Clock frequency: 200, 166, 143, 133 MHz Fully synchronous; all signals referenced to a positive

More information

SYNCHRONOUS DRAM. 128Mb: x32 SDRAM. MT48LC4M32B2-1 Meg x 32 x 4 banks

SYNCHRONOUS DRAM. 128Mb: x32 SDRAM. MT48LC4M32B2-1 Meg x 32 x 4 banks SYNCHRONOUS DRAM 128Mb: x32 MT48LC4M32B2-1 Meg x 32 x 4 banks For the latest data sheet, please refer to the Micron Web site: www.micron.com/sdramds FEATURES PC100 functionality Fully synchronous; all

More information

Introduction to Digital Techniques

Introduction to Digital Techniques to Digital Techniques Dan I. Porat, Ph.D. Stanford Linear Accelerator Center Stanford University, California Arpad Barna, Ph.D. Hewlett-Packard Laboratories Palo Alto, California John Wiley and Sons New

More information

CprE 281: Digital Logic

CprE 281: Digital Logic CprE 28: Digital Logic Instructor: Alexander Stoytchev http://www.ece.iastate.edu/~alexs/classes/ Registers and Counters CprE 28: Digital Logic Iowa State University, Ames, IA Copyright Alexander Stoytchev

More information

UPS Wizard User s Manual

UPS Wizard User s Manual 1. The communication cable M2502: This is a special designed cable for the communication of UPS with your PC; only connecting with the correct cable, the PC can detect the UPS. 2. The main window of the

More information

V 2.0. Version 9 PC. Setup Guide. Revised:

V 2.0. Version 9 PC. Setup Guide. Revised: V 2.0 Version 9 PC Setup Guide Revised: 06-12-00 Digital 328 v2 and Cakewalk Version 9 PC Contents 1 Introduction 2 2 Configuring Cakewalk 4 3 328 Instrument Definition 6 4 328 Automation Setup 8 5 Automation

More information

In-Place Associative Computing:

In-Place Associative Computing: In-Place Associative Computing: A New Concept in Processor Design 1 Page Abstract 3 What s Wrong with Existing Processors? 3 Introducing the Associative Processing Unit 5 The APU Edge 5 Overview of APU

More information

ECT Display Driver Installation for AP2 Module

ECT Display Driver Installation for AP2 Module ECT Display Driver Installation for AP2 Module Overview The ECT Display Driver is a small module with a removable wire harness that mounts behind the driver's foot well cover. All wiring connections are

More information

Programming Languages (CS 550)

Programming Languages (CS 550) Programming Languages (CS 550) Mini Language Compiler Jeremy R. Johnson 1 Introduction Objective: To illustrate how to map Mini Language instructions to RAL instructions. To do this in a systematic way

More information

- DQ0 - NC DQ1 - NC - NC DQ0 - NC DQ2 DQ1 DQ

- DQ0 - NC DQ1 - NC - NC DQ0 - NC DQ2 DQ1 DQ SYNCHRONOUS DRAM ADVANCE MT48LC28M4A2 32 Meg x 4 x 4 banks MT48LC64M8A2 6 Meg x 8 x 4 banks MT48LC32M6A2 8 Meg x 6 x 4 banks For the latest data sheet, please refer to the Micron Web site: www.micron.com/dramds

More information

Finite Element Based, FPGA-Implemented Electric Machine Model for Hardware-in-the-Loop (HIL) Simulation

Finite Element Based, FPGA-Implemented Electric Machine Model for Hardware-in-the-Loop (HIL) Simulation Finite Element Based, FPGA-Implemented Electric Machine Model for Hardware-in-the-Loop (HIL) Simulation Leveraging Simulation for Hybrid and Electric Powertrain Design in the Automotive, Presentation Agenda

More information

- - DQ0 NC DQ1 DQ0 DQ2 - NC DQ1 DQ3 NC - NC

- - DQ0 NC DQ1 DQ0 DQ2 - NC DQ1 DQ3 NC - NC SYNCHRONOUS DRAM 64Mb: x4, x8, x16 MT48LC16M4A2 4 Meg x 4 x 4 banks MT48LC8M8A2 2 Meg x 8 x 4 banks MT48LC4M16A2 1 Meg x 16 x 4 banks For the latest data sheet, please refer to the Micron Web site: www.micron.com/mti/msp/html/datasheet.html

More information

3. What is the most important aspect of social skills as a driver?

3. What is the most important aspect of social skills as a driver? Student LESSON 1 Page 1 YOUR DRIVING TASK 1. What skills does driving require? Social Skills: You must interact successfully with other people. All drivers bring their own problems and skill levels to

More information

Arduino-based OBD-II Interface and Data Logger. CS 497 Independent Study Ryan Miller Advisor: Prof. Douglas Comer April 26, 2011

Arduino-based OBD-II Interface and Data Logger. CS 497 Independent Study Ryan Miller Advisor: Prof. Douglas Comer April 26, 2011 Arduino-based OBD-II Interface and Data Logger CS 497 Independent Study Ryan Miller Advisor: Prof. Douglas Comer April 26, 2011 Arduino Hardware Automotive OBD ISO Interface Software Arduino Italy 2005

More information

Content Page passtptest.com

Content Page passtptest.com All rights reserved. No part of this book shall be reproduced, stored in a retrieval system, or transmitted by any means, electronic, mechanical, photocopying, recording, or otherwise, without written

More information

Porsche unveils 4-door sports car

Porsche unveils 4-door sports car www.breaking News English.com Ready-to-use ESL / EFL Lessons Porsche unveils 4-door sports car URL: http://www.breakingnewsenglish.com/0507/050728-porsche-e.html Today s contents The Article 2 Warm-ups

More information

The man with the toughest job in F1

The man with the toughest job in F1 The man with the toughest job in F1 Tyres are the key to performance in Formula 1, and as Caterham s Head of Tyres, Peter Hewson s job is to know as much about them as possible. There s only one problem:

More information

13.10 How Series and Parallel Circuits Differ

13.10 How Series and Parallel Circuits Differ 13.10 How Series and Parallel Circuits Differ In Activity 13.2, you observed that when the two lamps were connected in series, the brightness of the lamps was less than when the lamps were connected in

More information

- DQ0 - NC DQ1 - NC - NC DQ0 - NC DQ2 DQ1 DQ CONFIGURATION. None SPEED GRADE

- DQ0 - NC DQ1 - NC - NC DQ0 - NC DQ2 DQ1 DQ CONFIGURATION. None SPEED GRADE SYNCHRONOUS DRAM 52Mb: x4, x8, x6 MT48LC28M4A2 32 MEG x 4 x 4 S MT48LC64M8A2 6 MEG x 8 x 4 S MT48LC32M6A2 8 MEG x 6 x 4 S For the latest data sheet, please refer to the Micron Web site: www.micron.com/dramds

More information

Developing PMs for Hydraulic System

Developing PMs for Hydraulic System Developing PMs for Hydraulic System Focus on failure prevention rather than troubleshooting. Here are some best practices you can use to upgrade your preventive maintenance procedures for hydraulic systems.

More information

IS42S Meg Bits x 16 Bits x 4 Banks (64-MBIT) SYNCHRONOUS DYNAMIC RAM FEATURES OVERVIEW. PIN CONFIGURATIONS 54-Pin TSOP (Type II)

IS42S Meg Bits x 16 Bits x 4 Banks (64-MBIT) SYNCHRONOUS DYNAMIC RAM FEATURES OVERVIEW. PIN CONFIGURATIONS 54-Pin TSOP (Type II) 1 Meg Bits x 16 Bits x 4 Banks (64-MBIT) SYNCHRONOUS DYNAMIC RAM JANUARY 2008 FEATURES Clock frequency: 166, 143 MHz Fully synchronous; all signals referenced to a positive clock edge Internal bank for

More information

NO PART OF THIS DOCUMENT MAY BE REPRODUCED WITHOUT PRIOR AGREEMENT AND WRITTEN PERMISSION OF FORD PERFORMANCE PARTS.

NO PART OF THIS DOCUMENT MAY BE REPRODUCED WITHOUT PRIOR AGREEMENT AND WRITTEN PERMISSION OF FORD PERFORMANCE PARTS. Table of Contents Table of Contents... 1 Getting Started... 2 ProCal Flash Tool... 2 Verify Package Contents... 2 Getting to Know the ProCal 3 Software... 3 Prepare Vehicle for Flashing... 7 Download Calibration

More information

- - DQ0 NC DQ1 DQ0 DQ2 - NC DQ1 DQ3 NC - NC

- - DQ0 NC DQ1 DQ0 DQ2 - NC DQ1 DQ3 NC - NC SYHRONOUS DRAM 128Mb: x4, x8, x16 MT48LC32M4A2 8 Meg x 4 x 4 banks MT48LC16M8A2 4 Meg x 8 x 4 banks MT48LC8M16A2 2 Meg x 16 x 4 banks For the latest data sheet, please refer to the Micron Web site: www.micron.com/dramds

More information

Proposed Solution to Mitigate Concerns Regarding AC Power Flow under Convergence Bidding. September 25, 2009

Proposed Solution to Mitigate Concerns Regarding AC Power Flow under Convergence Bidding. September 25, 2009 Proposed Solution to Mitigate Concerns Regarding AC Power Flow under Convergence Bidding September 25, 2009 Proposed Solution to Mitigate Concerns Regarding AC Power Flow under Convergence Bidding Background

More information

ACTIVITY 1: Electric Circuit Interactions

ACTIVITY 1: Electric Circuit Interactions CYCLE 5 Developing Ideas ACTIVITY 1: Electric Circuit Interactions Purpose Many practical devices work because of electricity. In this first activity of the Cycle you will first focus your attention on

More information

Issue 2.0 December EPAS Midi User Manual EPAS35

Issue 2.0 December EPAS Midi User Manual EPAS35 Issue 2.0 December 2017 EPAS Midi EPAS35 CONTENTS 1 Introduction 4 1.1 What is EPAS Desktop Pro? 4 1.2 About This Manual 4 1.3 Typographical Conventions 5 1.4 Getting Technical Support 5 2 Getting Started

More information

The graph shows how far the car travelled and how long it took. (i) Between which points was the car travelling fastest? Tick ( ) your answer.

The graph shows how far the car travelled and how long it took. (i) Between which points was the car travelling fastest? Tick ( ) your answer. Q1. This question is about a car travelling through a town. (a) The graph shows how far the car travelled and how long it took. (i) Between which points was the car travelling fastest? Tick ( ) your answer.

More information

Lesson Plan: Electricity and Magnetism (~100 minutes)

Lesson Plan: Electricity and Magnetism (~100 minutes) Lesson Plan: Electricity and Magnetism (~100 minutes) Concepts 1. Electricity and magnetism are fundamentally related. 2. Just as electric charge produced an electric field, electric current produces a

More information

Fast Orbit Feedback (FOFB) at Diamond

Fast Orbit Feedback (FOFB) at Diamond Fast Orbit Feedback (FOFB) at Diamond Guenther Rehm, Head of Diagnostics Group 29/06/2007 FOFB at Diamond 1 Ground, Girder and Beam Motion 29/06/2007 FOFB at Diamond 2 Fast Feedback Design Philosophy Low

More information

SDRAM DEVICE OPERATION

SDRAM DEVICE OPERATION POWER UP SEQUENCE SDRAM must be initialized with the proper power-up sequence to the following (JEDEC Standard 21C 3.11.5.4): 1. Apply power and start clock. Attempt to maintain a NOP condition at the

More information

TOYOTA LANDCRUISER V8 Twin Turbo Diesel with Automatic Transmission AB60F SPECIAL SETUP FOR RALLY

TOYOTA LANDCRUISER V8 Twin Turbo Diesel with Automatic Transmission AB60F SPECIAL SETUP FOR RALLY Subject: AB60F 6-speed Automatic Transmission Converter Lockup Improvement Background: This module is designed to fix a serious problem of the converter lockup functionality, which is responsible for a

More information

EE 330 Integrated Circuit. Sequential Airbag Controller

EE 330 Integrated Circuit. Sequential Airbag Controller EE 330 Integrated Circuit Sequential Airbag Controller Chongli Cai Ailing Mei 04/2012 Content...page Introduction...3 Design strategy...3 Input, Output and Registers in the System...4 Initialization Block...5

More information

18 October, 2014 Page 1

18 October, 2014 Page 1 19 October, 2014 -- There s an annoying deficiency in the stock fuel quantity indicator. It s driven by a capacitive probe in the lower/left tank, so the indicator reads full until the fuel is completely

More information

ST x544 System-On-Chip Driver for 480RGBx272 TFT LCD. Datasheet. Version /06

ST x544 System-On-Chip Driver for 480RGBx272 TFT LCD. Datasheet. Version /06 720x544 System-On-Chip Driver for 480RGBx272 TFT LCD Datasheet Sitronix reserves the right to change the contents in this document without prior notice, please contact Sitronix to obtain the latest version

More information

2003 BMW 325xi 2.5L Straight 6 About 120K Miles; Looks Well Kept Multi Strike COP Ignition. History. Customer bought used about 3 months ago

2003 BMW 325xi 2.5L Straight 6 About 120K Miles; Looks Well Kept Multi Strike COP Ignition. History. Customer bought used about 3 months ago 2003 BMW 325xi 2.5L Straight 6 About 120K Miles; Looks Well Kept Multi Strike COP Ignition History Customer bought used about 3 months ago Claims since day one runs rough on cold start Sometimes MIL would

More information

Setup and Programming Manual

Setup and Programming Manual Microprocessor and Handy Terminal Setup and Programming Manual Versions U04 to U19 for Sliding Door Systems P/N 159000 Rev 7-2-07 The manufacturer, NABCO Entrances, Inc. suggests that this manual be given

More information