EE2-19 Introduction to Computer Architecture

Lecturer(s): Dr Tom Clarke

To provide a basic introduction to computer architecture and assembly language programming

Learning Outcomes:
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.
Throughput calculation

Exam Duration: 1:30hrs
Coursework contribution: 100%

Term: Autumn

Closed or Open Book (end of year exam): N/A

Coursework Requirement
         Coursework only module

Oral Exam Required (as final assessment): N/A

Prerequisite: None required

Course Homepage:

Book List:
1.ARM Assembly Language J R Gibson