Download presentation
Presentation is loading. Please wait.
Published byMarcus Eaton Modified over 9 years ago
1
Team Members Matt Fuller Vineetha Ayarpulli Robert Lundine
2
Programming Language: C++ Number of Instructions: 16 1. New Instructions implemented : EXIT and along with slt, slti was also implemented. Number of Registers: 8 Formats Used: R-type, I-type, J-type Falling Edge Triggered
3
Instruction Name Mnemonic OperationOpcodeFunctionFormat Addadd add $s3, $s2, $s1; $s3 = $s2 + $s1 0000111R Subtractsubsub $s3, $s2, $s1; $s3 = $s2 - $s10001001R Andandand $s3, $s2, $s1; $s3 = $s2 & $s10010010R Nornornor $s3, $s2, $s1; $s3 = ~($s2 | $s1)0011011R Ororor $s3, $s2, $s1; $s3 = $s2 | $s10100100R Set Less Thansltslt $s3, $s2, $s1; $s3 = ($s2 < $s1)?1:00101101R Shift Leftsllsll $s3, $s2, $s1; $s3 = $s2 << $s10110 I Shift Rightsrlsrl $s3, $s2, $s1; $s3 = $s2 >> $s10111 I Add Immediateaddi addi $s1, $s2, 100; $s1 = $s2 + 100 1000 I exit 1001 J Set Less Than Immediate slti slti $s1, $s2, 100; $s1 = ($s2 < 100)?1:0 1010 I Load Wordlw lw $s1, 100($s2); $s1 = [$s2] + (100*4) 1011 I Store Wordsw sw $s1, 100($s2); $s1 = [$s2] + (100*4) 1100 I Branch on Equalbeq beq $s1, $s2, L1; ($s1==$s2)? PC = PC+4+address L1 1101 I Branch on Not Equal bne bne $s1, $s2, L1; ($s1!=$s2)? PC = PC+4+address L1 1110 I Jumpj J L1; PC = address L1 1111 J
7
Forwarding and Hazard detection worked fine, but it in turn resulted in infinite loops. Branch prediction was not functioning as desired, led to stalls more often. Getting the pipelined version to run properly due to forwarding and hazard detection errors.
8
Forwarding and Hazard detection units were rectified and it gave desired results. The errors which led to infinite loops were corrected. Branch prediction was tackled in a different way : Code was reordered to minimize the stalls, thus Branch prediction gave expected results and fewer stalls. Voila !!! The pipelined version is up and working perfectly !!!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.