CSEE 3827: Fundamentals of Computer Systems
Lecture 18, 19, & 20
April 2009
Martha Kim [email protected] Outline
• We will examine two MIPS implementations
• A single-cycle version
• A pipelined version
• Simple subset of MIPS, showing most aspects
• Memory reference: lw, sw
• Arithmetic/logical: add, sub, and, or, slt
• Control transfer: beq, j
• CPU performance factors
• Instruction count (determined by ISA and compiler)
• Cycles per instruction and cycle time (determined by CPU hardware)
CSEE 3827, Spring 2009 Martha Kim 2 Instruction Execution
• PC → instruction memory, fetch instruction
• Register numbers → register file, read registers
• Depending on instruction class:
• Use ALU to calculate:
• Arithmetic or logical result
• Memory address for load/store
• Branch target address
• Access data for load/store
• PC ← target address or PC + 4
CSEE 3827, Spring 2009 Martha Kim 3 CPU Overview
!DD !DD
$ATA
2EGISTER 0# !DDRESS )NSTRUCTION 2EGISTERS !,5 !DDRESS 2EGISTER $ATA )NSTRUCTION MEMORY MEMORY 2EGISTER
$ATA
1, Ê {°£Ê Ê >LÃÌÀ>VÌÊ ÛiÜÊ vÊ Ì iÊ «iiÌ>ÌÊ vÊ Ì iÊ *-Ê ÃÕLÃiÌÊ Ã Ü}Ê Ì iÊ >ÀÊvÕVÌ>ÊÕÌÃÊ>`ÊÌ iÊ>ÀÊViVÌÃÊLiÌÜiiÊÌ i°Ê!LL INSTRUCTIONS START BY USING THE PRO GRAM COUNTER TO SUPPLY THE INSTRUCTION ADDRESS TO THE INSTRUCTION MEMORY !FTER THE INSTRUCTION IS FETCHED THE REGISTER OPERANDS USED BY AN INSTRUCTION ARE SPECIl ED BY l ELDS OF THAT INSTRUCTION /NCE THE REGISTER OPERANDS HAVE BEEN FETCHED THEY CAN BE OPERATED ON TO COMPUTE A MEMORY ADDRESS FOR A LOAD OR STORE TO COMPUTE AN ARITHMETIC RESULT FOR AN INTEGER ARITHMETIC LOGICAL INSTRUCTION OR A COMPARE FOR A BRANCH )F THE INSTRUCTION IS AN ARITHMETIC LOGICAL INSTRUCTION THE RESULT FROM THE !,5 MUST BE WRITTEN TO A REGISTER )F THE OPERATION IS A LOAD OR STORE THE !,5 RESULT IS USED AS AN ADDRESS TO EITHER STORE A VALUE FROM THE REGISTERS OR LOAD A VALUE FROM MEMORY INTO THE REGISTERS 4HE RESULT FROM THE !,5 OR MEMORY IS WRITTEN BACK INTO THE REGISTER l LE "RANCHES REQUIRE THE USE OF THE !,5 OUTPUT TO DETERMINE THE NEXT INSTRUCTION ADDRESS WHICH COMES EITHER FROM THE !,5 WHERE THE 0# AND BRANCH OFFSET ARE SUMMED OR FROM AN ADDER