1 Van Harvard naar MIPS
2
3 Van Harvard naar MIPS Microprocessor without Interlocked Pipeline Stages Verschillen met de Harvard machine: - 32 Registers die ieder 32 bits breed zijn - 32 bits Instruction Memory, - 32 bits Data Memory, - Byte georganiseerde Program Counter, - 5 bits ALU opcode - 3 formaten voor opcode en adresvelden, afhankelijk van het type instructie.
4 Van Harvard naar MIPS R-type Bit pos. opcode 31:26 rs 25:21 rt 20:16 rd 15:11 shamt 10:6 funct 0:5 I-type Bit pos. opcode 31:26 rs 25:21 rd or rt 20:16 Immediate/Offset/Address 0:15 J-type Bit pos. opcode 31:26 Address 0:25 Slechts drie instructieformaten Voorbeelden van instructies van het I-type zijn: instructies van het type immediate: bijv. ADDI, rd, rs, imm; branch instructies: bijv. BEQ rs, rt, offset; instructie Load Word: LW rd, index, rs; instructie Store Word: SW rt, index, rs.
5 Van Harvard naar MIPS: Sign-extender
6 Van Harvard naar MIPS: Mux voor het destination register Voorbeelden van instructies van het I-type zijn: instructies van het type immediate: bijv. ADDI, rd, rs, imm; branch instructies: bijv. BEQ rs, rt, offset; instructie Load Word: LW rd, index, rs; instructie Store Word: SW rt, index, rs.
7 Van Harvard naar MIPS: Opteller om de PC met 4 te verhogen
8 Van Harvard naar MIPS: Shifter
9 Van Harvard naar MIPS: Mux voor branches
10 Van Harvard naar MIPS
11 Executietijd; CPU-time Memory units (Instruction Memory en Data Memory): 1 ns (1 nanosecond = sec.). ALU: 1 ns. Register file (read and write): 1 ns. De delay time van de andere componenten is te verwaarlozen.
12 De vijf fases van een instructie
13 Instruction Fetch (Read Instruction Memory: 1 ns)
14 Instruction Decode (Read Registers: 1 ns)
15 Execute (ALU: 1 ns)
16 Memory (Write/Write Memory: 1 ns)
17 Read-back (Write register: 1 ns)
18 Instruction Load Word (LW rd, index, rs) CPU-time 5 ns
19 Instruction Branch on Equal (BEQ rs, rt, offset) CPU-time ook 5 ns Bij een Single Cycle machine duurt de executie van elke instructie evenlang als die van de “langzaamste”.
20 Klokfrequentie/ Clock rate Periodetijd/ Clock cycle time Tijd 3 Volt 0 Volt Computerklok X-tal oscillator Tijd 0,01 seconde 3 Volt 0 Volt Computerklok X-tal oscillator
21 CPU-time van een programma
22 Amdahl´s law The performance enhancement possible with a given improvement is limited by the amount that the improved feature is used.
23 Amdahl´s law Stel P is het deel van de hardware dat is verbeterd en S de factor hoeveel dit deel is verbeterd, dan is de performanceverbetering (speed up) van een systeem = Stel propagatietijd van de ALU wordt gehalveerd: S = 2. P = 0.2 de ALU-berekening kost 1/5 van de instructietijd Vullen we deze waarden in dan bereiken we performanceverbetering met een factor:
24 Amdahl’s Law
25 The speedup of a program in parallel computing is limited by the sequential fraction of the program. For example, if 95% of the program can be parallelized, the theoretical maximum speedup using parallel computing would be 20×, no matter how many processors are used.
26 Instruction Load Word (LW rd, index, rs) CPU-time 5 ns
27 Instruction Branch on Equal (BEQ rs, rt, offset) CPU-time 3 ns Bij een Multicycle machine is de executietijd van iedere instructie recht evenredig met het aantal fases dat de instructie doorloopt.
28 Multicycle machine
29 Multicycle machine
30 Multicycle machine
31 Multicycle machine
32 Multicycle machine
33 Finite State Multicycle Machine Implementation
34 Multicycle machine
35 Control unit
36 Finite state machine control LW or SW R-type RI-type Branch StartNext Instruction 1 Instr. Decode 0 Instr. Fetch ? Execute ALU opcode ? Execute Memory Addres ? Memory Write ? Write Back ? Write Back A Execute ALU opcode B Write Back ? Memor y Read ? Execut e Branch Offset
37 CPI (Cycles Per Instruction) LW or SW R-type RI-type Branch StartNext Instruction 1 Instr. Decode 0 Instr. Fetch ? Execute ALU opcode ? Execute Memory Addres ? Memory Write ? Write Back ? Write Back A Execute ALU opcode B Write Back ? Memor y Read ? Execut e Branch Offset 1 Cycle
38 CPI = 10* LW + 6* BEQ = (10*5 + 6*3)/16 = 4.25 Cycles LW or SW R-type RI-type Branch StartNext Instruction 1 Instr. Decode 0 Instr. Fetch ? Execute ALU opcode ? Execute Memory Addres ? Memory Write ? Write Back ? Write Back A Execute ALU opcode B Write Back ? Memor y Read ? Execut e Branch Offset 1 Cycle
39 CPU-time