EE2-19 Introduction to Computer ArchitectureLecturer(s): Dr Tom Clarke
To provide a basic introduction to computer architecture and assembly language programming
At the end of the course, students should know: how computers work; how to evaluate their performance; the instruction set architecture of a typical modern RISC processor; ARM processor architecture; relationship between hardware and software
The kernel of computer architecture: the instruction set architecture. Trends in technology and the basics of a computer system architecture.
Introduction to processor design: the MU0 architecture.
Pitfalls with MU0, the advantages of different instruction formats, an introduction look at the ARM processor.
The basics of assembly language programming. Arithmetic instructions, data transfer instructions, pre-and post-index addressing.
Further assembly language programming. Conditional execution and the ARM's S-bit. Shifted operands and shift types, multiply instructions, multiplication through shift-and-add, some simple complete ARM programs.
Stacks and subroutines. The concept of a stack and its implementation in the ARM, the use of a link register, nested subroutines.
The architecture of the ARM. An introduction to pipelining.
Instruction encoding. ARM encoding of data processing and data transfer instructions.
Memory hierarchies. The principles of locality, unified versus separate instruction and data caches. Direct-mapped caches: design issues and architecture, cache write strategies.
Exceptions and interrupts, ARM's shadow registers.
An introduction to I/O interfaces. Polling, interrupt-drive I/O and DMA.
1.5-hour examination in June
Coursework contribution: 0%
Closed or Open Book (end of year exam): N/A
Oral Exam Required (as final assessment): N/A
Prerequisite: None required
Course Homepage: https://intranet.ee.ic.ac.uk/t.clarke/arch/