Computer Architecture
information |
course material
| past exam papers
| previous course materials
overview
This course aims to give an understanding of the mechanisms which implement the programmer's idealised computer. It builds on the introduction to hardware and to simple processors in the Digital hardware course, and uses Functional Programming as a tool in simulation and description.
�The Computer Architecture course aims to describe a range of architectural designs and to contrast them, highlighting the design decisions they incorporate. The designs are described and analysed at the register-transfer level of abstraction. By the end of the course, the student should understand the major architectural styles and appreciate the compromises that they encapsulate. They should be able to read outline descriptions of real processors and understand more or less in which way their designs fit into the frameworks described in the course.
Practicals
Processor simulation exercises, in Hugs.
synopsis
Datapaths and control structures for processors, register transfer level description of hardware, and simulation in Haskell. Styles of processor, including MIPS; features of some unusual processors. Comparison of CISC/RISC architectural styles. Instruction set design, instruction formats, addressing modes.Processor pipelining. Pipeline hazards, hazard detection, forwarding, branch prediction. Out-of-order execution, scoreboarding and register renaming. Main and cache memories, cache coherency, direct memory access, backing store and peripherals.
syllabus
Register Transfer model of processors. Datapaths and control structures. Comparison of architectural styles for general purpose computers, including RISC/CISC. Pipelining; pipeline hazards and their resolution by stalling and forwarding. Techniques for executing more than one instruction in each clock cycle. The hierarchy of storage in a computer; caches and virtual memory. Styles of parallel computer, and their implementation in contemporary designs.
reading list
Principal texts; either one of:
- D A Patterson & J L Hennessy, Computer Organization and Design: the hardware/software interface, Morgan-Kaufmann (Fourth edition) 2009.
- D A Patterson & J L Hennessy, Computer Organization and Design: the hardware/software interface, Morgan-Kaufmann (Third edition, revised printing) 2007.
The fourth edition covers more recent designs, only the third edition covers multi-cycle designs. Either one should be adequate, if available. Similarly, the second edition is relevant if available, but may be confusing.
Background reading: Some articles (to be identified near the time of the course) about contemporary designs.
|