429638e7 |
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. |