CS 230 – Introduction to Computers and Computer Systems Lecture 13 – Pipeline Stages CS 230 - Spring 2020 3-1
System Layers Python/C/Racket Code Multiprocessing and Operating Systems Build and Runtime Environments Memory and Caching Here now! CS 230 Finished! CPU Instructions and Pipelining Binary Signals & Number Representation Finished! Logic Gates Transistors and Electrical Properties CS 230 - Spring 2020 0-2
Clock Clock cycle : beat of computer Clock signal voltage tick tick tick time Electrical signals propagate fast but not infinitely fast: remember gate delays Rising edge called a tick like a drummer for a dragon boat, keeps things in sync CS 230 - Spring 2019 3-3
CPU Clocking Do work, update state, do work, update state… Clock period Clock (cycles) Data transfer and computation Update state Split instruction into pipeline stages One pipeline stage per clock cycle MIPS has 5 pipeline stages CS 230 - Spring 2019 3-4
MIPS Pipeline Stages IF : Instruction fetch retrieve the instruction ID : Instruction decode decode the instruction and load the registers we need EX : Execute operate the arithmetic logic unit (ALU) MEM : Memory access access memory WB : Write back write results back to registers CS 230 - Spring 2019 3-5
IF – Instruction Fetch Look at address in memory stored in PC Load the 32-bit value from that address this is the next instruction pass this value on to ID Increment PC by 4 CS 230 - Spring 2020 3-6
ID – Instruction Decode Get 32-bit binary instruction from IF Decode it what instruction is it? what registers does it need? what immediate values does it need? if it is a branch: is the branch condition met? if so, update PC accordingly CS 230 - Spring 2020 3-7
MIPS Reference Sheet (also posted along with slides) CS 230 - Spring 2020 3-8
Instruction Decode Example 00100000110000110000000000010001 Look at bits of instruction CS 230 - Spring 2020 3-9
Instruction Decode Example 00100000110000110000000000010001 addi Look at bits of instruction what instruction is it? CS 230 - Spring 2020 3-10
Instruction Decode Example 00100000110000110000000000010001 addi $3, $6 Look at bits of instruction what instruction is it? what registers does it need? CS 230 - Spring 2020 3-11
Instruction Decode Example 00100000110000110000000000010001 addi $3, $6, 17 Look at bits of instruction what instruction is it? what registers does it need? what immediate values does it contain? two’s complement except .word when using hexadecimal, which is unsigned binary CS 230 - Spring 2020 3-12
Try it Yourself What MIPS instructions are encoded as the following 32-bit binary numbers? 00000000000000000110100000010000 00000000101010000011100000101010 10101100111001000000000000010000 CS 230 - Spring 2020 3-13
Try it Yourself What MIPS instructions are encoded as the following 32-bit binary numbers? 000000 000000000001101 00000010000 mfhi 00000000101010000011100000101010 10101100111001000000000000010000 CS 230 - Spring 2020 3-14
Try it Yourself What MIPS instructions are encoded as the following 32-bit binary numbers? 0000000000000000 01101 00000010000 mfhi $13 00000000101010000011100000101010 10101100111001000000000000010000 CS 230 - Spring 2020 3-15
Try it Yourself What MIPS instructions are encoded as the following 32-bit binary numbers? 00000000000000000110100000010000 mfhi $13 000000 001010100000111 00000101010 slt 10101100111001000000000000010000 CS 230 - Spring 2020 3-16
Try it Yourself What MIPS instructions are encoded as the following 32-bit binary numbers? 00000000000000000110100000010000 mfhi $13 0000000010101000 00111 00000101010 slt $7 10101100111001000000000000010000 CS 230 - Spring 2020 3-17
Try it Yourself What MIPS instructions are encoded as the following 32-bit binary numbers? 00000000000000000110100000010000 mfhi $13 000000 00101 010000011100000101010 slt $7, $5 10101100111001000000000000010000 CS 230 - Spring 2020 3-18
Try it Yourself What MIPS instructions are encoded as the following 32-bit binary numbers? 00000000000000000110100000010000 mfhi $13 00000000101 01000 0011100000101010 slt $7, $5, $8 10101100111001000000000000010000 CS 230 - Spring 2020 3-19
Try it Yourself What MIPS instructions are encoded as the following 32-bit binary numbers? 00000000000000000110100000010000 mfhi $13 00000000101010000011100000101010 slt $7, $5, $8 101011 00111001000000000000010000 sw CS 230 - Spring 2020 3-20
Try it Yourself What MIPS instructions are encoded as the following 32-bit binary numbers? 00000000000000000110100000010000 mfhi $13 00000000101010000011100000101010 slt $7, $5, $8 10101100111 00100 0000000000010000 sw $4 CS 230 - Spring 2020 3-21
Try it Yourself What MIPS instructions are encoded as the following 32-bit binary numbers? 00000000000000000110100000010000 mfhi $13 00000000101010000011100000101010 slt $7, $5, $8 101011 00111 001000000000000010000 sw $4, ( $7 ) CS 230 - Spring 2020 3-22
Try it Yourself What MIPS instructions are encoded as the following 32-bit binary numbers? 00000000000000000110100000010000 mfhi $13 00000000101010000011100000101010 slt $7, $5, $8 1010110011100100 0000000000010000 sw $4, 16 ($7) CS 230 - Spring 2020 3-23
Try it Yourself What are the binary representations of the following MIPS instructions? add $2, $3, $1 beq $1, $0, 3 CS 230 - Spring 2020 3-24
Try it Yourself What are the binary representations of the following MIPS instructions? add $2, $3, $1 000000 00000100000 beq $1, $0, 3 CS 230 - Spring 2020 3-25
Try it Yourself What are the binary representations of the following MIPS instructions? add $2 , $3, $1 000000 00010 00000100000 beq $1, $0, 3 CS 230 - Spring 2020 3-26
Try it Yourself What are the binary representations of the following MIPS instructions? add $2, $3 , $1 000000 00011 0001000000100000 beq $1, $0, 3 CS 230 - Spring 2020 3-27
Try it Yourself What are the binary representations of the following MIPS instructions? add $2, $3, $1 00000000011 00001 0001000000100000 beq $1, $0, 3 CS 230 - Spring 2020 3-28
Try it Yourself What are the binary representations of the following MIPS instructions? add $2, $3, $1 00000000011000010001000000100000 beq $1, $0, 3 000100 CS 230 - Spring 2020 3-29
Try it Yourself What are the binary representations of the following MIPS instructions? add $2, $3, $1 00000000011000010001000000100000 beq $1 , $0, 3 000100 00001 CS 230 - Spring 2020 3-30
Try it Yourself What are the binary representations of the following MIPS instructions? add $2, $3, $1 00000000011000010001000000100000 beq $1, $0 , 3 00010000001 00000 CS 230 - Spring 2020 3-31
Try it Yourself What are the binary representations of the following MIPS instructions? add $2, $3, $1 00000000011000010001000000100000 beq $1, $0, 3 0001000000100000 0000000000000011 CS 230 - Spring 2020 3-32
EX – Execute Get from ID the: 32-bit input register contents instruction to do for lw and sw this is an addition of the offset destination register Use the ALU to do the math for the instruction Pass on to MEM the: 32-bit result of the math destination register and instruction CS 230 - Spring 2020 3-33
MEM – Memory Access Get from EX the: 32-bit result of the math destination register and instruction If instruction is lw or sw load from or store to memory otherwise do nothing (just pass on values) Pass on to WB the: 32-bit result, or value loaded from memory (for lw) destination register and instruction CS 230 - Spring 2020 3-34
WB – Write Back Get from MEM the: 32-bit result of the math or loaded value destination register and instruction If instruction is not sw put result or loaded value into destination register CS 230 - Spring 2020 3-35
Recommend
More recommend