DOC PREVIEW
U of U CS 6710 - MIPS Processor Example

This preview shows page 1-2-3 out of 8 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 8 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 8 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 8 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 8 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

1Introduction toCMOS VLSIDesignLecture 2: MIPS Processor ExampleDavid HarrisHarvey Mudd CollegeSpring 20042: MIPS Processor Example Slide 2CMOS VLSI DesignOutline Design Partitioning MIPS Processor Example– Architecture– Microarchitecture– Logic Design– Circuit Design– Physical Design Fabrication, Packaging, Testing2: MIPS Processor Example Slide 3CMOS VLSI DesignActivity 2 Sketch a stick diagram for a 4-input NOR gate2: MIPS Processor Example Slide 4CMOS VLSI DesignActivity 2 Sketch a stick diagram for a 4-input NOR gateAVDDGNDBCYD2: MIPS Processor Example Slide 5CMOS VLSI DesignCoping with Complexity How to design System-on-Chip?– Many millions (soon billions!) of transistors– Tens to hundreds of engineers Structured Design Design Partitioning2: MIPS Processor Example Slide 6CMOS VLSI DesignStructured Design Hierarchy: Divide and Conquer– Recursively system into modules Regularity– Reuse modules wherever possible– Ex: Standard cell library Modularity: well-formed interfaces– Allows modules to be treated as black boxes Locality– Physical and temporal22: MIPS Processor Example Slide 7CMOS VLSI DesignDesign Partitioning Architecture: User’s perspective, what does it do?– Instruction set, registers– MIPS, x86, Alpha, PIC, ARM, … Microarchitecture– Single cycle, multcycle, pipelined, superscalar? Logic: how are functional blocks constructed– Ripple carry, carry lookahead, carry select adders Circuit: how are transistors used– Complementary CMOS, pass transistors, domino Physical: chip layout– Datapaths, memories, random logic2: MIPS Processor Example Slide 8CMOS VLSI DesignGajski Y-Chart2: MIPS Processor Example Slide 9CMOS VLSI DesignMIPS Architecture Example: subset of MIPS processor architecture– Drawn from Patterson & Hennessy MIPS is a 32-bit architecture with 32 registers– Consider 8-bit subset using 8-bit datapath– Only implement 8 registers ($0 - $7)– $0 hardwired to 00000000– 8-bit program counter2: MIPS Processor Example Slide 10CMOS VLSI DesignInstruction Set2: MIPS Processor Example Slide 11CMOS VLSI DesignInstruction Encoding 32-bit instruction encoding– Requires four cycles to fetch on 8-bit datapathformat example encodingRIJ0 ra rb rd 0 functopopra rb imm6666555555 1626add $rd, $ra, $rbbeq $ra, $rb, immj dest dest2: MIPS Processor Example Slide 12CMOS VLSI DesignFibonacci (C)f0= 1; f-1= -1fn= fn-1+ fn-2f = 1, 1, 2, 3, 5, 8, 13, …32: MIPS Processor Example Slide 13CMOS VLSI DesignFibonacci (Assembly) 1ststatement: n = 8 How do we translate this to assembly?2: MIPS Processor Example Slide 14CMOS VLSI DesignFibonacci (Assembly)2: MIPS Processor Example Slide 15CMOS VLSI DesignFibonacci (Binary) 1ststatement: addi $3, $0, 8 How do we translate this to machine language?– Hint: use instruction encodings belowformat example encodingRIJ0 ra rb rd 0 functopopra rb imm6666555555 1626add $rd, $ra, $rbbeq $ra, $rb, immj dest dest2: MIPS Processor Example Slide 16CMOS VLSI DesignFibonacci (Binary) Machine language program2: MIPS Processor Example Slide 17CMOS VLSI DesignMIPS Microarchitecture Multicycle µarchitecture from Patterson & HennessyPCMux01RegistersWriteregisterWritedataReaddata 1Readdata 2Readregister 1Readregister 2Instr uction[15: 11]Mux01Mux011Instruction[7: 0]Inst ruction[25: 21]Inst ruction[20: 16]Inst ruction[15 : 0]InstructionregisterALUcontrolALUresultALUZeroMemorydataregisterABIorDMemReadMemWriteMemto RegPCWriteCondPCWriteIRWrite[3:0]ALUOpALUSrc BALUSrcARegDstPCSourceRegWriteControlOutputsOp[5: 0]Instruction[31: 26]Instruction [5: 0]Mux02JumpaddressInstruction [5:0]6 8Shiftleft 211Mux032Mux01ALUOutMem oryMemDataWritedataAddressPCEnALUControl2: MIPS Processor Example Slide 18CMOS VLSI DesignMulticycle ControllerPCWritePCSour ce = 10ALUSrcA = 1ALUSrcB = 00ALUOp = 01PCWriteCondPCSource = 01ALUSrcA =1ALUSrc B = 00ALUOp = 10RegDst =1RegWriteMemtoReg = 0MemWriteIorD = 1MemReadIorD = 1ALUSrcA = 1ALUSrc B = 10ALUOp = 00RegDst=0RegWriteMemtoReg= 1ALUSrcA = 0ALUSrcB = 11ALUOp = 00MemReadALUSrc A = 0IorD = 0IRWri te3ALUSrc B = 01ALUOp = 00PCWritePCSour ce = 00Instruction fetchInstruc tion decode/register fetchJumpcompletionBranchcomple tionExecutionMemory ad dresscomputationMemoryaccessMemoryaccessR-type com pletionWrite-back step(Op='LB')or(Op='SB')(Op=R-type)(Op='BEQ')(Op ='J')(Op='SB')(Op ='L B')7041211951086ResetMemReadALUSrc A = 0IorD = 0IRWrite2ALUSrc B = 01ALUOp = 00PCWritePCSour ce = 001MemReadALUSrcA = 0IorD = 0IRWrite1ALUSrcB = 01ALUOp = 00PCWritePCSource = 002MemReadALUSrcA = 0IorD = 0IRWrite0ALUSrcB = 01ALUOp = 00PCWritePCSource = 00342: MIPS Processor Example Slide 19CMOS VLSI DesignLogic Design Start at top level– Hierarchically decompose MIPS into units Top-level interfaceresetph1ph2crystaloscillator2-phaseclockgeneratorMIPSprocessoradrwritedatamemdataexternalmemorymemreadmemwrite8882: MIPS Processor Example Slide 20CMOS VLSI DesignBlock Diagramdatapathcontrolleralucontrolph1ph2resetmemdata[7:0]writedata[7:0]adr[7:0]memreadmemwriteop[5:0]zeropcenregwriteirwrite[3:0]memtoregiordpcsource[1:0]alusrcb[1:0]alusrcaaluop[1:0]regdstfunct[5:0]alucontrol[2:0]PCMux01RegistersWriteregisterWritedataReaddata1Readdata2Readregister1Readregister2Instruction[15:11]Mux01Mux011Instruction[7:0]Instruction[25:21]Instruction[20:16]Instruction[15: 0]InstructionregisterALUcontrolALUresultALUZeroMemorydataregisterABIorDMemReadMemWriteMemtoRegPCWriteCondPCWriteIRWrite[3:0]ALUOpALUSrcBALUSrcARegDstPCSourceRegWriteControlOutputsOp[5:0]Instruction[31:26]Instruction[5: 0]Mux02JumpaddressInstruction[5:0]6 8Shiftleft211Mux032Mux01ALUOutMemoryMemDataWritedataAddressPCEnALUControl2: MIPS Processor Example Slide 21CMOS VLSI DesignHierarchical Designmipscontrolleralucontroldatapathstandardcell librarybitslicezipperaluand2flopinv4xmux2mux4ramslicefulladdernand2nor2or2invtri2: MIPS Processor Example Slide 22CMOS VLSI DesignHDLs Hardware Description Languages– Widely used in logic design– Verilog and VHDL Describe hardware using code– Document logic functions– Simulate logic before building– Synthesize code into gates and layout• Requires a library of standard cells2: MIPS Processor Example Slide 23CMOS VLSI DesignVerilog Examplemodule fulladder(input a, b, c, output s, cout);sum s1(a, b, c, s);carry c1(a, b, c, cout);endmodulemodule carry(input a, b, c, output cout)assign cout = (a&b) | (a&c) | (b&c);endmoduleabcscout


View Full Document

U of U CS 6710 - MIPS Processor Example

Download MIPS Processor Example
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 MIPS Processor Example 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 MIPS Processor Example 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?