Introduction to Computer Systems

Module aims

The aim of the course is to develop a fundamental understanding of the organisation and operation of a desktop computer system. The emphasis of the course is on understanding how high-level language programs are represented and executed at an architectural level. 

Learning outcomes

Learning Outcomes - Knowledge and Understanding

To know the specific material covered in the Syllabus, including the ability to do the following:

To describe the basic architecture of a simple computer

To describe the representations used for instructions, numbers and text

To describe the functions of the components of a CPU

To explain how main memory is organised

To describe the architecture of the Pentium microprocessor

To describe models for input/output

Learning Outcomes - Intellectual Skills

To compare different number representations

To compare different kinds of memory

To translate simple high-level programs into assembly programs

To compare different implementations of the control unit

Learning Outcomes - Practical Skills

To map CPU control to hardware

To develop assembly programs for the Pentium microprocessor

Module syllabus

Introduction: relationship to other courses, levels of abstraction, instruction set level, hardware design level, role of the computer architect.

Data representation: binary numbers, arithmetic, octal, hex, base conversion, sign and magnitude, 1's complement and 2's complement, BCD, overflow, characters, ASCII/Unicode. Floating point numbers: conversion, normalisation, arithmetic operations, overflow/underflow representation errors, IEEE standard: format, arithmetic, NANs, Infinity and denormalised values.

Memory Organisation: registers, memory, disks; byte and word addressing; byte ordering, alignment, banks and interleaving.

CPU organisation and operation: components of a simple CPU, instructions, machine code, fetch-execute cycle, simple assembly programming.

Pentium architecture: programming model, registers, memory models, addressing modes, arrays, records, instructions, expressions, loops, procedures.

Input and output: device types and characteristics, controllers, ports, programmed I/O, interrupts, DMA, Pentium interrupt model, traps and exceptions, simple device drivers.



Teaching methods

Lectures and tutorials  

Reading list


Module leaders

Professor Wayne Luk
Dr Maria Valera-Espina