DOC PREVIEW
Berkeley COMPSCI 61C - Lecture Notes

This preview shows page 1-2-17-18-19-35-36 out of 36 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 36 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 36 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 36 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 36 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 36 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 36 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 36 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 36 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

PowerPoint PresentationReview of Floating PointClarification Unbiased RoundingDecoding Machine LanguageDecoding Example (1/7)Decoding Example (2/7)Decoding Example (3/7)Decoding Example (4/7)Decoding Example (5/7)Decoding Example (6/7)Decoding Example (7/7)Administrivia…Midterm in 7 days!Review from before: luiTrue Assembly Language (1/3)Example PseudoinstructionsTrue Assembly Language (2/3)Example PseudoinstructionsSlide 18True Assembly Language (3/3)Questions on PseudoinstructionsRewrite TAL as MALRewrite TAL as MAL (Answer)Peer InstructionPeer Instruction AnswerIn semi-conclusion…OverviewLanguage ContinuumInterpretation vs TranslationInterpretationTranslationSlide 31Machine Code InterpretationInterpretation vs. Translation?Steps to Starting a ProgramCompilerAnd in conclusion...CS61C L12 MIPS Instruction Rep III, Running a Program I (1)Beamer, Summer 2007 © UCBScott Beamer, Instructorinst.eecs.berkeley.edu/~cs61c CS61C : Machine Structures Lecture #12 – MIPS Instruction Rep III,Running a Program Iaka Compiling, Assembling, Linking, Loading (CALL) 2007-7-16www.sfgate.comNew Direction Service AnnouncedCS61C L12 MIPS Instruction Rep III, Running a Program I (2)Beamer, Summer 2007 © UCBReview of Floating Point•Reserve exponents, significands:Exponent Significand Object0 0 00 nonzero Denorm1-254 anything +/- fl. pt. #255 0 +/- ∞255 nonzero NaN•Integer mult, div uses hi, lo regs•mfhi and mflo copies out.•Four rounding modes (to even default)•MIPS FL ops complicated, expensiveCS61C L12 MIPS Instruction Rep III, Running a Program I (3)Beamer, Summer 2007 © UCBClarification Unbiased Rounding•Round to (nearest) even (default)•Normal rounding, almost: 2.5  2, 3.5  4•Insures fairness on calculation•Half the time we round up, other half down•Decimal gives a good initial intuition, but remember computers use binary•Steps to Use it (in binary)•Determine place to be rounded to•Figure out the two possible outcomes (its binary so 1 or 0 in last place)•If one outcome is closer to current number than other, pick that outcome•If both outcomes are equidistant pick the outcome that ends in 0CS61C L12 MIPS Instruction Rep III, Running a Program I (4)Beamer, Summer 2007 © UCBDecoding Machine Language•How do we convert 1s and 0s to C code?Machine language  C?•For each 32 bits:•Look at opcode: 0 means R-Format, 2 or 3 mean J-Format, otherwise I-Format.•Use instruction type to determine which fields exist. •Write out MIPS assembly code, converting each field to name, register number/name, or decimal/hex number.•Logically convert this MIPS code into valid C code. Always possible? Unique?CS61C L12 MIPS Instruction Rep III, Running a Program I (5)Beamer, Summer 2007 © UCBDecoding Example (1/7)•Here are six machine language instructions in hexadecimal:00001025hex0005402Ahex11000003hex00441020hex20A5FFFFhex 08100001hex•Let the first instruction be at address 4,194,304ten (0x00400000hex).•Next step: convert hex to binaryCS61C L12 MIPS Instruction Rep III, Running a Program I (6)Beamer, Summer 2007 © UCBDecoding Example (2/7)•The six machine language instructions in binary: 0000000000000000000100000010010100000000000001010100000000101010000100010000000000000000000000110000000001000100000100000010000000100000101001011111111111111111 00001000000100000000000000000001•Next step: identify opcode and format1, 4-31rs rt immediate0 rs rt rd functshamtRIJtarget address2 or 3CS61C L12 MIPS Instruction Rep III, Running a Program I (7)Beamer, Summer 2007 © UCBDecoding Example (3/7)•Select the opcode (first 6 bits) to determine the format: 0000000000000000000100000010010100000000000001010100000000101010000100010000000000000000000000110000000001000100000100000010000000100000101001011111111111111111 00001000000100000000000000000001•Look at opcode: 0 means R-Format,2 or 3 mean J-Format, otherwise I-Format.•Next step: separation of fieldsRRIRIJFormat:CS61C L12 MIPS Instruction Rep III, Running a Program I (8)Beamer, Summer 2007 © UCBDecoding Example (4/7)•Fields separated based on format/opcode:0 0 0 2 3700 0 5 8 4204 8 0 +30 2 4 2 3208 5 5 -12 1,048,577•Next step: translate (“disassemble”) to MIPS assembly instructionsRRIRIJFormat:CS61C L12 MIPS Instruction Rep III, Running a Program I (9)Beamer, Summer 2007 © UCBDecoding Example (5/7)•MIPS Assembly (Part 1):Address: Assembly instructions:0x00400000 or $2,$0,$00x00400004 slt $8,$0,$50x00400008 beq $8,$0,30x0040000c add $2,$2,$40x00400010 addi $5,$5,-10x00400014 j 0x100001•Better solution: translate to more meaningful MIPS instructions (fix the branch/jump and add labels, registers)CS61C L12 MIPS Instruction Rep III, Running a Program I (10)Beamer, Summer 2007 © UCBDecoding Example (6/7)•MIPS Assembly (Part 2):or $v0,$0,$0 Loop:slt $t0,$0,$a1 beq $t0,$0,Exit add $v0,$v0,$a0addi $a1,$a1,-1 j LoopExit:•Next step: translate to C code (be creative!)CS61C L12 MIPS Instruction Rep III, Running a Program I (11)Beamer, Summer 2007 © UCBDecoding Example (7/7)•After C code (Mapping below)$v0: product $a0: multiplicand $a1: multiplierproduct = 0;while (multiplier > 0) {product += multiplicand; multiplier -= 1;}Before Hex:00001025hex0005402Ahex11000003hex00441020hex20A5FFFFhex 08100001hexDemonstrated Big 61C Idea: Instructions are just numbers, code is treated like data or $v0,$0,$0Loop: slt $t0,$0,$a1 beq $t0,$0,Exit add $v0,$v0,$a0 addi $a1,$a1,-1 j LoopExit:CS61C L12 MIPS Instruction Rep III, Running a Program I (12)Beamer, Summer 2007 © UCBAdministrivia…Midterm in 7 days!•Project 2 due Friday @ 11:59pm •Midterm 7/23 @ 7-10pm 10 Evans•Bring…•NO backpacks, cells, calculators, pagers, PDAs•2 writing implements (we’ll provide write-in exam booklets) – pencils ok!•One handwritten (both sides) 8.5”x11” paper•One green sheet (or copy of it)•Review Session Friday @ …CS61C L12 MIPS Instruction Rep III, Running a Program I (13)Beamer, Summer 2007 © UCBReview from before: lui•So how does lui help us?•Example:addi $t0,$t0, 0xABABCDCDbecomes:lui $at, 0xABABori $at, $at, 0xCDCD add $t0,$t0,$at•Now each I-format instruction has only a 16-bit immediate.•Wouldn’t it be nice if the assembler would this for us automatically? -If number too big, then just automatically replace addi with lui, ori, addCS61C L12 MIPS Instruction Rep III, Running a Program I


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
Download Lecture Notes
Our administrator received your request to download this document. We will send you the file to your email shortly.
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 2 2 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?