Study units
Units 1–8 are the main teaching components of the course. The following are brief overviews of each unit:
Unit 1 Computer designs and performance
This unit introduces the factors which contribute to computer performance, as well as the common metrics and tools for evaluating computer performance. Students will be introduced to the ways of classifying and analysing computer system performance, the indices including CPI, MIPS, FLOPS, MemBench and TPC, and the considerations for choosing performance benchmarks and tools.
Unit 2 Instruction set architecture
This unit first reviews computer hardware performance and explains how software runs in the hardware. It then introduces the various instruction set architectures, discussing the different roles of the operators, operands, stack, accumulator, and register-memory. By referring to programming examples, the unit describes and compares different data addressing modes and control flows. A comparison between CISC and RISC architectures is then given, followed by related case studies. The unit ends with a discussion on instruction set encoding and the roles of compilers.
Unit 3 Parallelism and dependences
This unit first gives an introduction to datapaths, followed by descriptions of the stages in a single cycle datapath, including the Instruction Fetch stage, Instruction Decode / Register Fetch stage, Instruction Execution / Memory Address Calculation stage, Memory Access stage, and Register Write-back stage. It then presents ways of integrating and evaluating the stages, and explains how hardware designs can be used to support different addressing modes. The second part of the unit discusses how multicycle datapaths and pipelining can lead to improved performance in RISC- and CISC-based processors, as well as in more complex architectures. Finally, pipeline hazards, microinstructions, and other pitfalls in pipelines are outlined.
Unit 4 Exploiting parallelism
This unit expands on the concepts learned in the previous unit, and focuses on the details of instruction level parallelism. Data dependence, name dependence, control dependence, loop-carried dependence and structural hazards are all described. The unit then discusses how these dependences can be reduced by means such as loop unrolling, software pipelining, data forwarding, register renaming, branch prediction buffer, and branch target buffer. The unit concludes with case studies to illustrate how instruction level parallelism is implemented.
Unit 5 Boosting performance in processors
This unit first describes the nature of structural hazards, and discusses the use of dynamic pipelining and out-of-order instructions for avoiding structural hazards. It then presents different ways of boosting the performance of processors. Hardware-level promotion of parallelism, including superscalar architecture, hyper-threading architecture, and vector processors are discussed. Design issues of multi-processors are then discussed, with an emphasis on distributed memory multiprocessor architecture, multiprocessor cache coherence, centralized shared-memory architecture, and multi-core processor architecture. The unit concludes by discussing the main bottlenecks for enhancing processor performance.
Unit 6 Memory hierarchy and designs
The concepts and rationales of data localities and memory hierarchy are given. The unit then describes the different types of main memory, including DRAM, SRAM, SDRAM, DDR memory, as well as virtual memory, and NAND-based flash memory. The design and performance optimization of a cache in a computer system is then discussed. The unit concludes by giving examples of memory management at different hierarchies.
Unit 7 Peripherals and buses
This unit first explains the roles of buses in a computer system, describes the bus mastering mechanism and the role of the chipset. It then describes how the peripherals are accessed at different levels from the BIOS to operating system. The second half of the unit gives an overview of different external buses, including universal serial bus, SATA, SCSI and solid state memory interface, as well as internal buses, including south bridge components, PCI, PCI-X and PCI Express.
Unit 8 Exploiting enhancements to processor technologies
This unit presents recent technologies for enhancing processor performance. The technologies and techniques discussed include the Graphical Processing Unit (GPU), Single Instruction Multiple Data (SIMD) instruction set for multimedia, tri-gate technology, Sandy Bridge, Ivy Bridge, multi-processor and multi-core systems, grid computing, cloud computing, super computers, virtualization technologies, and processors for mobile devices. The unit concludes by discussing the emerging trends in computer and processor design.
Equipment required
A computer system to access the Internet for the online components is required for this course. The minimum configuration of the computer system is:
- Pentium 4 or above with 2GB RAM
- Microsoft Windows Vista or higher
- VGA display card and Colour monitor
- 10 GB free space hard disk
- CD-ROM Drive (16X or better), sound card and speaker
- LAN card for broadband