Unformatted text preview:

inst eecs berkeley edu cs61c CS61C Machine Structures Lecture 7 MIPS Decisions 2007 7 5 Scott Beamer Instructor takes on with www sfgate com CS61C L7 MIPS Decisions 1 Beamer Summer 2007 UCB Review In MIPS Assembly Language Registers replace C variables One Instruction simple operation per line Simpler is better smaller is faster Memory is byte addressable but lw and sw access one word at a time A pointer used by lw and sw is just a memory address so we can add to it or subtract from it using offset New Instructions add addi sub lw sw New Registers C Variables s0 s7 Temporary Variables t0 t9 Zero zero CS61C L7 MIPS Decisions 2 Beamer Summer 2007 UCB So Far All instructions so far only manipulate data we ve built a calculator In order to build a computer we need ability to make decisions C and MIPS provide labels to support goto jumps to places in code C Horrible style MIPS Necessary Heads up pull out some papers and pens you ll do an in class exercise CS61C L7 MIPS Decisions 3 Beamer Summer 2007 UCB C Decisions if Statements 2 kinds of if statements in C if condition clause if condition clause1 else clause2 Rearrange 2nd if into following if condition goto L1 clause2 goto L2 L1 clause1 L2 Not as elegant as if else but same meaning CS61C L7 MIPS Decisions 4 Beamer Summer 2007 UCB MIPS Decision Instructions Decision instruction in MIPS beq register1 register2 L1 beq is Branch if registers are equal Same meaning as using C if register1 register2 goto L1 Complementary MIPS decision instruction bne register1 register2 L1 bne is Branch if registers are not equal Same meaning as using C if register1 register2 goto L1 Called conditional branches CS61C L7 MIPS Decisions 5 Beamer Summer 2007 UCB MIPS Goto Instruction In addition to conditional branches MIPS has an unconditional branch j label Called a Jump Instruction jump or branch directly to the given label without needing to satisfy any condition Same meaning as using C goto label Technically it s the same as beq 0 0 label since it always satisfies the condition CS61C L7 MIPS Decisions 6 Beamer Summer 2007 UCB Compiling C if into MIPS 1 2 Compile by hand if i j f g h else f g h Use this mapping true i j f g h false i j i j f g h Exit f s0 g s1 h s2 i s3 j s4 CS61C L7 MIPS Decisions 7 Beamer Summer 2007 UCB Compiling C if into MIPS 2 2 Compile by hand if i j f g h else f g h Final compiled MIPS code beq sub j True add Fin s3 s4 True s0 s1 s2 Fin s0 s1 s2 true i j f g h false i j i j f g h Exit branch i j f g h false goto Fin f g h true Note Compiler automatically creates labels to handle decisions branches Generally not found in HLL code CS61C L7 MIPS Decisions 8 Beamer Summer 2007 UCB Overflow in Arithmetic 1 2 Reminder Overflow occurs when there is a mistake in arithmetic due to the limited precision in computers Example 4 bit unsigned numbers 15 3 1111 0011 18 10010 But we don t have room for 5 bit solution so the solution would be 0010 which is 2 and wrong CS61C L7 MIPS Decisions 9 Beamer Summer 2007 UCB Overflow in Arithmetic 2 2 Some languages detect overflow Ada some don t C MIPS solution has 2 kinds of arithmetic instructions to recognize 2 choices add add add immediate addi and subtract sub cause overflow to be detected add unsigned addu add immediate unsigned addiu and subtract unsigned subu do not cause overflow detection Compiler selects appropriate arithmetic MIPS C compilers produce addu addiu subu CS61C L7 MIPS Decisions 10 Beamer Summer 2007 UCB Two Logic Instructions 2 lectures ago we saw add addi sub Here are 2 more new instructions Shift Left sll s1 s2 2 s1 s2 2 Store in s1 the value from s2 shifted 2 bits to the left inserting 0 s on right in C Before 0000 0002hex 0000 0000 0000 0000 0000 0000 0000 0010two After 0000 0008hex 0000 0000 0000 0000 0000 0000 0000 1000two What arithmetic effect does shift left have Shift Right srl is opposite shift CS61C L7 MIPS Decisions 11 Beamer Summer 2007 UCB Loops in C Assembly 1 3 Simple loop in C A is an array of ints do g g A i i i j while i h Rewrite this as Loop g g A i i i j if i h goto Loop Use this mapping g h i j base of A s1 s2 s3 s4 s5 CS61C L7 MIPS Decisions 12 Beamer Summer 2007 UCB Loops in C Assembly 2 3 Final compiled MIPS code Loop sll add lw add add bne t1 s3 2 t1 4 i t1 t1 s5 t1 addr A t1 0 t1 t1 A i s1 s1 t1 g g A i s3 s3 s4 i i j s3 s2 Loop goto Loop if i h Original code Loop g g A i i i j if i h goto Loop CS61C L7 MIPS Decisions 13 Beamer Summer 2007 UCB Loops in C Assembly 3 3 There are three types of loops in C while do while for Each can be rewritten as either of the other two so the method used in the previous example can be applied to while and for loops as well Key Concept Though there are multiple ways of writing a loop in MIPS the key to decision making is conditional branch CS61C L7 MIPS Decisions 14 Beamer Summer 2007 UCB Peer Instruction We want to translate x y into MIPS x y ptrs stored in s0 s1 A B C D E F G H add add lw lw lw sw lw sw s0 s1 s0 s1 t0 t0 s0 s1 s1 zero s0 zero 0 s1 0 s0 0 s1 0 s0 0 t0 0 t0 CS61C L7 MIPS Decisions 15 1 2 3 4 5 6 7 8 9 0 A B C D E F E G F E F H H G G H Beamer Summer 2007 UCB Administrivia Assignments HW2 due tonight 11 59pm HW3 due 7 8 11 59pm Proj1 due 7 12 11 59pm going up today Third Section Is going to happen CS dept has approved funding room TA etc But Summer Sessions office in Wheeler slow to move Don t unplug stuff in lab CS61C L7 MIPS Decisions 16 Beamer Summer 2007 UCB Inequalities in MIPS 1 3 Until now we ve only tested equalities and in C General programs need to test and as well Create a MIPS Inequality Instruction Set on Less Than Syntax slt reg1 reg2 reg3 Meaning reg1 reg2 reg3 if reg2 reg3 reg1 1 Same thing else reg1 0 In computereeze set means set to 1 reset means set to 0 CS61C L7 MIPS Decisions 17 Beamer Summer 2007 UCB Inequalities in MIPS 2 3 …


View Full Document

Berkeley COMPSCI 61C - Lecture Notes

Documents in this Course
SIMD II

SIMD II

8 pages

Midterm

Midterm

7 pages

Lecture 7

Lecture 7

31 pages

Caches

Caches

7 pages

Lecture 9

Lecture 9

24 pages

Lecture 1

Lecture 1

28 pages

Lecture 2

Lecture 2

25 pages

VM II

VM II

4 pages

Midterm

Midterm

10 pages

Load more
Loading Unlocking...
Login

Join to view Lecture Notes and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Lecture Notes and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?