CARD: Syllabus
- Fundamentals:
- Review of logic design and implementation technologies
- From simple combinational logic to state machines for sequential circuits
- Logic design using Verilog and introduction to FPGAs.
- Register Transfer Level design principles; registers, clocks, timing budgets, setup and hold margins, clock skew, clock-domain crossing and synchronization, metastability.
- Quantitative computer architecture; performance evaluation methods and metrics, principles of high-performance design.
- Processor Architecture:
- Instruction Set Architecture (ISA) design; instruction set classes, registers, memory addressing.
- RISC vs CISC, how the ISA supports high-level languages, quantitative approach to ISA design.
- Example ISAs (e.g. MIPS, RISC-V).
- ISA requirements for embedded systems.
- Pipelined processor design; pipeline hazards and interlocks, control prediction techniques and their usage.
- Out-of-order execution; scoreboards, reservation stations, register renaming, quantitative analysis of performance.
- Computer Arithmetic and ALU Design:
- Introduction to binary arithmetic functions; fixed-point addition, subtraction, multiplication and division.
- Advanced techniques in computer arithmetic; carry-look ahead adders, parallel-prefix adders, Booth-coded multipliers, Wallace and Dadda trees.
- Sub-word parallelism.
- fractional fixed-point multiply- accumulate operations.
- Floating-point computations; IEEE standard, floating-point addition and multiplication, high-performance fused-multiply-add architectures.
- Memory System Design:
- Memory hierarchies; review of principles, quantitative analysis of memory hierarchy performance; exploring the design space of cache parameters.
- Main memory design; Interfacing between processor and memory, synchronous and asynchronous bus protocols.
- Error detection and correction schemes; parity, Hamming codes, SECDED.
License
All rights reserved The University of Edinburgh