Introduction to Computer Architecture
Module aims
In this module you will have the opportunity to develop a fundamental understanding of the organisation and operation of a computer system. The emphasis of the module is on understanding how high-level language programs are represented and executed at an architectural level.
Learning outcomes
Upon successful completion of this module you will be able to:
- describe the basic organisation of a computer
- explain different representations used for instructions, numbers and text
- show how machine code instructions are executed by a computer
- compare different implementations of a computer's control unit
- explain program behaviour by reading the binary representation of machine code
- translate high-level program fragments into assembler code
- explain the effect that memory hierarchy has on a program's execution time
- estimate the performance of a program on a given computer
Module syllabus
- Basic organisation of a computer
- Representations for instructions, numbers and text
- Translation of high-level programs into instructions
- Instruction execution
- Implementation choices of the control unit
- CISC and RISC Instruction Set Architecture
- Assembler programming
- Memory organisation and concepts of spatial and temporal locality
- Performance estimation and Amdahl’s Law
Teaching methods
The material will be taught through traditional lectures, backed up by unassessed formative exercises and assessed courseworks designed to reinforce the material as it is taught.
An online service will be used as a discussion forum for the module.
Assessments
There will be two assessed courseworks which together contribute 20% of the mark for the module. There will be a final written exam, which counts for the remaining 80% of the marks. There will be written feedback on the assessed coursework exercises and in-class and/or email feedback explaining common pitfalls and suggestions for improvement.
Module leaders
Professor Wayne LukDr Maria Valera-Espina
Reading list
To be advised - module reading list (Leganto)