![Page 1: 32-bit Pipelined RISC Processor Group 1 aka “Go Us” Alice Wang Ann Ho Jason Fong CS m152b TA: Young Cho Lab section 1](https://reader036.vdocuments.net/reader036/viewer/2022062301/56649edb5503460f94bebaa7/html5/thumbnails/1.jpg)
32-bit Pipelined RISC Processor
Group 1Group 1aka “Go Us”aka “Go Us”
Alice WangAnn HoJason Fong
CS m152bTA: Young ChoLab section 1
![Page 2: 32-bit Pipelined RISC Processor Group 1 aka “Go Us” Alice Wang Ann Ho Jason Fong CS m152b TA: Young Cho Lab section 1](https://reader036.vdocuments.net/reader036/viewer/2022062301/56649edb5503460f94bebaa7/html5/thumbnails/2.jpg)
General Review of a Pipelined Processor
Instruction Memory
Register File ALU
Data Memory
PC Control
IF/ID ID/EX EX/MEM MEM/WB
![Page 3: 32-bit Pipelined RISC Processor Group 1 aka “Go Us” Alice Wang Ann Ho Jason Fong CS m152b TA: Young Cho Lab section 1](https://reader036.vdocuments.net/reader036/viewer/2022062301/56649edb5503460f94bebaa7/html5/thumbnails/3.jpg)
Memory Controller DesignDesign challenge: 32-bit processor with 16-bit memory interfaceOn every memory access, need to get two words from memory
Solution: Clock memory controller twice as fast as rest of processorResults in a memory access on the rising and falling edge of the processor’s clock cycle
DataMemoryOne request 16-bit
interface
Two16-bitwords
32-bitword
?
Request
Processor
Memory
16-bits 16-bits
32-bits
32-bit
32-bit
![Page 4: 32-bit Pipelined RISC Processor Group 1 aka “Go Us” Alice Wang Ann Ho Jason Fong CS m152b TA: Young Cho Lab section 1](https://reader036.vdocuments.net/reader036/viewer/2022062301/56649edb5503460f94bebaa7/html5/thumbnails/4.jpg)
Instruction Format
R-type instruction
3 bits varies according to instruction type
General instruction format
31 28
opcode
27 25
rs
24 22
rt
21 19
rd
unusedunused 8 4
shamt
8 4
shamt
3 0
funct
3 0
funct
I-type instruction
31 28
opcode
27 25
rs
24 22
rt
unused 15 0
imm16
31 28
opcode
27 25
rs
24 22
rt
unused 15 0
imm16
J-type instruction
31 28
opcode
unused 15 0
imm16
31 28
opcode
27 25
rs
24 22
rt
21 19
rd
31 28
opcode
unused 15 0
imm16
![Page 5: 32-bit Pipelined RISC Processor Group 1 aka “Go Us” Alice Wang Ann Ho Jason Fong CS m152b TA: Young Cho Lab section 1](https://reader036.vdocuments.net/reader036/viewer/2022062301/56649edb5503460f94bebaa7/html5/thumbnails/5.jpg)
R-type instructionsI-type instructionsJ-type instructions
![Page 6: 32-bit Pipelined RISC Processor Group 1 aka “Go Us” Alice Wang Ann Ho Jason Fong CS m152b TA: Young Cho Lab section 1](https://reader036.vdocuments.net/reader036/viewer/2022062301/56649edb5503460f94bebaa7/html5/thumbnails/6.jpg)
Our Arithmetic Logical Unit
Our_mult
![Page 7: 32-bit Pipelined RISC Processor Group 1 aka “Go Us” Alice Wang Ann Ho Jason Fong CS m152b TA: Young Cho Lab section 1](https://reader036.vdocuments.net/reader036/viewer/2022062301/56649edb5503460f94bebaa7/html5/thumbnails/7.jpg)
0 0 0 0 0 0 0 0 0
Multiplier
Uses a series of shifts and additions
Example: 13 x 11 = 01101 x 01011
0110101011
multiplicand
multiplier
01101 x1
= 01101
HI LO
+ 0 1 1 0=1
= 01101 +
00
11 1 0 1 1
0 0 1 0 0 0 1 1 1 1 = 143
![Page 8: 32-bit Pipelined RISC Processor Group 1 aka “Go Us” Alice Wang Ann Ho Jason Fong CS m152b TA: Young Cho Lab section 1](https://reader036.vdocuments.net/reader036/viewer/2022062301/56649edb5503460f94bebaa7/html5/thumbnails/8.jpg)
multiplier(more efficient, but more hardware)
![Page 9: 32-bit Pipelined RISC Processor Group 1 aka “Go Us” Alice Wang Ann Ho Jason Fong CS m152b TA: Young Cho Lab section 1](https://reader036.vdocuments.net/reader036/viewer/2022062301/56649edb5503460f94bebaa7/html5/thumbnails/9.jpg)
Data Forwarding
ID/EX EX/MEM MEM/WB
Forward From ALU output
Forward From memory output
![Page 10: 32-bit Pipelined RISC Processor Group 1 aka “Go Us” Alice Wang Ann Ho Jason Fong CS m152b TA: Young Cho Lab section 1](https://reader036.vdocuments.net/reader036/viewer/2022062301/56649edb5503460f94bebaa7/html5/thumbnails/10.jpg)
Hardware NOP Insertion
NOP
1
IF/ID
PC Adder
Hold PC value
Insert NOP
![Page 11: 32-bit Pipelined RISC Processor Group 1 aka “Go Us” Alice Wang Ann Ho Jason Fong CS m152b TA: Young Cho Lab section 1](https://reader036.vdocuments.net/reader036/viewer/2022062301/56649edb5503460f94bebaa7/html5/thumbnails/11.jpg)
Data Forwarding and Stall Insertions:Observed Results
Sample program: Bubble-sort 6 numbers
Assembler insertion of NOPs
Machine code size: 66 words of memory
Execution time: ~750 clock cycles
Hardware data forwarding and NOP insertion:
Machine code size: 35 words of memory
Execution time: ~400 clock cycles
![Page 12: 32-bit Pipelined RISC Processor Group 1 aka “Go Us” Alice Wang Ann Ho Jason Fong CS m152b TA: Young Cho Lab section 1](https://reader036.vdocuments.net/reader036/viewer/2022062301/56649edb5503460f94bebaa7/html5/thumbnails/12.jpg)
Data Forwarding and Stall Insertions:Observed Results
• Savings in memory and execution time• Much simpler assembler• But hardware is now more complex
• Tradeoff between hardware complexity and software complexity
• Also demonstrates benefits of understanding the underlying architecture when designing an assembler
![Page 13: 32-bit Pipelined RISC Processor Group 1 aka “Go Us” Alice Wang Ann Ho Jason Fong CS m152b TA: Young Cho Lab section 1](https://reader036.vdocuments.net/reader036/viewer/2022062301/56649edb5503460f94bebaa7/html5/thumbnails/13.jpg)
Conclusion
Some problems we encountered:• Off by one stage in pipeline• Lack of experience with VHDL• Order of bits from memory
In Conclusion...• Knowledge from previous courses• Further research• Simple RISC processor• Pipelining• Multiplier• Data Forwarding and Hardware NOP’s
![Page 14: 32-bit Pipelined RISC Processor Group 1 aka “Go Us” Alice Wang Ann Ho Jason Fong CS m152b TA: Young Cho Lab section 1](https://reader036.vdocuments.net/reader036/viewer/2022062301/56649edb5503460f94bebaa7/html5/thumbnails/14.jpg)
References
• Hennessey and Patterson, Computer Organization and Design (2nd Ed.), 1998, pages 476-495
• Donaldson, John L., “Pipeline Hazards”, http://occs.cs.oberlin.edu/faculty/jdonalds/317/lecture08.html
• Ercegovac, Intro To Digital Systems
• Add more references from lab 4