| 1 | Ian Sutton |
| 2 | CSE 381 |
| 3 | Fall 2014 |
| 4 | |
| 5 | Project 1 - MIPS Matrix Multiplier |
| 6 | |
| 7 | My approach to this project was to use my existing skills with |
| 8 | relatively higher-architecture operating system/kernel to better |
| 9 | understand the relatively lower-level CPU operations: 'top-down' rather |
| 10 | than 'bottom-up'. I started by writing an equivalent program in C along |
| 11 | with a makefile that specifies a compilation routine that results in a |
| 12 | rather unoptimized binary, important for later reasons. I compiled on an |
| 13 | intel i386 single-core 32-bit pentium chip (on an old thinkpad) in order |
| 14 | to get the least complicated instructions. I stripped the ELF |
| 15 | headers/footers and translated the sequence of opcodes into readable x86 |
| 16 | ASM. |
| 17 | |
| 18 | This is where I started to get a feel for how this program was working |
| 19 | on the instruction level. I then changed the compilation options to |
| 20 | instead cross-compile and target an older Longsoon 32-bit MIPS platform, |
| 21 | suitable for this course. After adjusting the optimization settings, I |
| 22 | was able to come up with an instruction file suitable for this |
| 23 | assignment (specifically, it did not use any MIPS64, multithreaded, or |
| 24 | pseudo-instructions prohibited by the handout). I then ran it through |
| 25 | MARS to guarantee operability on the professor's end. |