ECEn 424 Lab #4
ECEn 424 Lab #4 The Architecture Lab


Click here for a pdf file describing this lab.

Click here for the tar file for this lab.

Notes:

Updates and tips will be posted here as needed.

Remember from the class syllabus that you are expected to create your own solutions to this lab (and all other class assignments) without consulting the solutions of others in the class or on the internet.

You're free to use this website for the lab. It's an online Y86-64 simulator that allows you to step through assembly code, checking registers, memory and status codes along the way.

For full credit on Part C, you need to achieve a CPE of 10.75 or better. You will receive no credit if you do not beat a CPE of 12.0. For CPEs between 10.75 and 12.0, you will receive a score that scales linearly between the endpoints. (You can modify the benchmark.pl script to output the correct score by editing the file and changing line 23 to "$fullcpe = 10.75" and line 25 to "$threshcpe = 12.0".)

It is possible to achieve the required speedup without adding any new instructions or doing any loop unrolling (which we will talk about later in the semester). Focus on removing unnecessary instructions in the loop, avoiding a load-stall hazard, and optimizations based on the fact that the hardware will guess all conditional branches are taken.

In some cases, an obviously incorrect CPE is reported (such as a value less than 1.) This appears to occur because of unusual things you are doing in your code, although we haven't completely gotten to the bottom of it yet. (In many cases, it appears that code with bad CPEs fails to pass the correctness tests.) In any event, the new thresholds are very reachable without using any dubious tricks, so please revise your code if you see CPEs that cannot be correct. This will allow us to grade your submissions in a consistent fashion.

The lab will NOT compile on the SSH server (ssh.et.byu.edu), because it does not have certain programs needed to run the makefiles. If you want to work over SSH, SSH into a specific SPICE machine instead (e.g. cilantro.ee.byu.edu).

This lab is not autograded and there is no lab server.

This lab is done individually, not in partners.

If something appears to be broken, please contact the lab TA.


Last updated 15 February 2021