a pipelining problem that you will need to state how many cycles it takes to execute the program with and without a 4-stage pipeline;
a cache problem where you need to determine how many cycles it takes to execute the program with and without a cache.
Pick a loop optimization and a straight line code optimization and make a C program where those optimizations will improve execution (by how much?)
pipeline.xls (or it can be a google sheet that you share with me in a pipeline.txt with the url in it )= a spreadsheet showing the cycle counts of a pipelined and non-pipelined machine. Also, you should show the 4 stage pipeline with your instructions flowing through the pipe with stalls highlighted in RED.
cache.xls (or it can be a google sheet that you share with me in a cache.txt with the url in it )= a spreadsheet showing the cycle counts of a cached and non-cached machine. Also, you need to show the cache as the memory accesses progress in your program marking the hits and misses (misses in RED). You should have cells to show how many hits and how many misses your program has, and details on what is the cache replacement policy you implemented.
compiler_optimizations.txt = a file that has some C code snippets and a chosen loop and straight line optimization. Explain how each optimization improves the code and what assembly functions are saved. I recommend loop unrolling and sub-expression elimination.