Translate simple C programs to assembly language (x86).
Explain the need for a prologue and epilogue in function translations in C
Explain how and where local variable are stored and accessed in a C program
Demonstrate the constraints imposed by memory alignment on a C program
Build a single cycle RISC-V processor
Add instructions to a single cycle RISC-V processor
Design the FSM for a multi cycle processor
Construct a pipelined processor
Explain the concept of register forwarding
Fix data and control hazards in a pipelined processor
Estimate the maximum clock frequency for each type of processor
Explain direct mapped and associative caches
Analyse and explain various misses in a cache