{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

l16_handouts_4up

l16_handouts_4up - Announcements Homework 5 Due Tuesday Apr...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
1 Announcements Homework 5 – Due Tuesday Apr 8 10:00pm Due Tuesday, Apr 8 , 10:00pm But you are encouraged to do it before Project 4a Project 4a Due Thu., Apr 3, 1:25pm, in class and via CMS Prelim 2 April 22 @ 7:30pm, in the Uris Hall Auditorium ECE/CS 314 1 Hennessy and Patterson Read Chapter 5 Read 5.1-5.5 for (DONE) Read 5 6 5 9 5 11 for fun Read 5.6, 5.9-5.11 for fun Read Espresso Tutorial (link on course web page) Read Verilog Process Tutorial and Verilog Tools summary (links on Project 3 web page) Read Chapter 6 Read 6.1-6.6,6.8-6.12 (Done) Read 3.6-3.8 for Today Read 4 1 4 6 for Tuesday ECE/CS 314 Read 4.1-4.6 for Tuesday Read 7.1-7.5 for Tuesday/Thursday 2 MIPS Floating Point ISA MIPS has 32 32-bit floating point registers $f0 $f1 $f2 f31 – $f0, $f1, $f2, …, f31 Registers can be used in even-odd pairs for double precision FP numbers Addition of separate FP registers doubles the number of registers without taking up more bits in instruction ECE/CS 314 – But need separate instructions to move data between memory and FP registers – Only minor increase in number of instructions MIPS FP Instructions FP add single add.s $f2, $f4, $f6 $f2 = $f4 + $f6 FP sub single sub.s $f2, $f4, $f6 $f2 = $f4 - $f6 FP mult single mul.s $f2, $f4, $f6 $f2 = $f4 * $f6 FP div single div.s $f2, $f4, $f6 $f2 = $f4 / $f6 FP add double add.d $f2, $f4, $f6 {$f2,$f3} = {$f4,$f5} + {$f6,$7} FP sub double sub.d $f2, $f4, $f6 {$f2,$f3} = {$f4,$f5} - {$f6,$f7} FP mult double mul.d $f2, $f4, $f6 {$f2,$f3} = {$f4,$f5} * {$f6,$f7} FP div double div.d $f2, $f4, $f6 {$f2,$f3} = {$f4,$f5} / {$f6,$f7} Load word copr 1 lwc1 $f1,100($s2) $f1 = Mem[100 + $s2] Store word copr 1 swc1 $f1,100($s2) Mem[100 + $s2] = $f1 Load Double copr1 ldc1 $f1,100($s2) {$f1,$f2} = Mem[100 + $s2] Store Double copr 1 sdc1 $f1,100($s2) Mem[100 + $s2] = {$f1,$f2} ECE/CS 314 Branch on FP true bc1t target if(cond==1) goto {(PC + 4)[31:28],target,00} Branch on FP false bc1f target if(cond==0) goto {(PC + 4)[31:28],target,00} FP compare single (eq,ne,lt,le,gt,ge) c.lt.s $f2,$f4 if($f2 < $f4) cond = 1; else cond =0 FP compare double (eq,ne,lt,le,gt,ge) c.lt.d $f2,$f4 if({$f2,$f3} < {$f4,$f5}) cond = 1; else cond =0
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
2 FP Functional Units EX Integer Unit IF ID MEM WB FP/Integer Multiply FP Adder M A ECE/CS 314 FP/Integer Divider DIV FP Pipelines EX Integer Unit IF ID MEM WB M1 M2 M3 M4 M5 M6 M7 A1 A2 A3 A4 FP/Integer Multiply FP Adder ECE/CS 314 DIV FP/Integer Divider Representing Real Numbers How do we represent real numbers?
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}