This lab provides in-depth, hands-on experience on advanced concepts of computer architecture. Using the Hardware Description Language VHDL and using reconfigurable FPGA hardware boards, students learn how to design complex computer systems (so-called systems-on-chip, SoCs), that are commonly found in the domain of embedded systems, in actual hardware.
Starting with a simple pipelined processor architecture, the students learn to how realize efficient instruction-processing of a computer processor. They implement forwarding, different styles of cache-based memory hierarchies, and finally examine advanced strategies for, e.g., branch prediction, multithreading, out-of-order execution or multi-/many-core processing.
After successful attendance of the lab, students gain a deeper understanding of a modern microprocessor at the micro-architectural level. The lab enables students to design, verify and manage mid-size hardware projects by coding synthesizable VHDL and writing testbenches or using on-FPGA logic analyzers. They will be able to use modern design tools for FPGAs and will obtain first experiences in other design paradigms like, e.g., high-level synthesis and architecture description languages.
- Warm-Up: Become familiar with a given MIPS VHDL model and with the used design tools, refresh VHDL skills by coding small units
- Experiment 1: Pipelining (hazard detection, stalling, forwarding)
- Experiment 2: Caching (direct-mapped I-cache, 2-way set-associative D-cache, replacement strategies)
- Experiment 3: Advanced topics (one of: branch prediction, multi-threading, SIMD instruction processing, co-processors, busses, multi-/many-core processing, out-of-order execution, etc.)
- John L. Hennessy, David A. Patterson. Computer Organization and Design - The Hardware/Software Interface. 4th Edition, Morgan Kaufmann, 2009.
- Antonio Gonzalez, Fernando Latorre, Grigorios Magklis. Processor Microarchitecture - An Implementation Perspective, Synthesis Lectures on Computer Architecture, 2011.
- John L. Hennessy, David A. Patterson. Computer Architecture - A Quantitative Approach. 5th Edition, Morgan Kaufmann, 2012.
- Peter J. Ashenden. The Designer's Guide to VHDL. 3rd Edition, Elsevier, 2008.
- The Zynq Book: http://www.zynqbook.com
- Additional presentations and slides.