The architectural features that impact code generation are the ones I'm most interested in here. Remember that CPI is processor clock cycles per instruction. In Pipelining, skip the following topics: exception handling features (slides 56-70, topics 55-68) and Forwarding. I'm less interested in the performance analysis and low level implementation features of the architectural features than how the software needs to be adjusted to exploit the features. In particular, look for topics like delay slot filling and branch cancellation/anullment, static branch prediction and profiler usage.
Skip the discussion on scoreboarding and Tomasulo's algorithm, that is slides, and branch prediction, that is pages 28 to 108, i.e, skip slide topics 26 through 67.
Again I'm interested in code generation/software techniques. In particular loop unrolling, multiple issue architectures (i.e. superscalar and very long instruction word, VLIW), trace scheduling, branch cancellation/anulling, and predication.