Computer Architecture

Module aims

Aims of the Course

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.This course acts as a lead-in to CO-502, the Operating Systems course.

Learning outcomes

Learning Outcomes - Knowledge and Understanding

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

·         Understand the representations used for numbers and text,

·         computer arithmetic,

·         the functions of the components of a CPU,

·         understand how main memory is organised,

·         comprehend the architecture of the Pentium microprocessor,

·         being able to design models for input/output.

Learning Outcomes - Practical Skills

·         being able to convert between data representation schemes

·         apply logic operators

·         perform binary arithmetic

·         developing assembly programs for the Pentium microprocessor.

Learning Outcomes - Intellectual Skills

·         to relate binary concepts to the principles of a computer

·         to compare different computer architectures and to judge their potential use-case

Learning Outcomes - Transferable Skills

·         To assemble a visual presentation on a complex scientific topic and to explain it orally

·         To relate conceptual and physical components to technological applications and vice versa

Module syllabus

·         Overview of the course, and the general idea of ‘what is a computer’

Part 1: Fundamentals

·         Data representation:

o   binary numbers, arithmetic, octal, hex, base conversion,

o   sign and magnitude, 1's complement and 2's complement,

o   BCD, overflow, characters, ASCII/Unicode.

o   Floating point numbers: conversion, normalisation, arithmetic operations, overflow/underflow representation errors,

o   IEEE standard: format, arithmetic, NANs, Infinity and denormalised values.

·         Basic circuits & logic

o   Gates

o   Half adder

o   Full adder

o   Latches

o   Chip design

·         Memory Organisation:

o   registers, RAM, disks;

o   byte and word addressing;

o   byte ordering,

o   alignment,

o   banks and interleaving.

Part 2: CPU design

·          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.

Pre-requisites

Pre-requisites None

Teaching methods

 Teaching Methods:

- lectures with slides and videos

- classroom-based discussion

- classroom tutorials (pen and paper)

- assessed and not assessed coursework

- video recordings of lectures

Assessments

*This is a level 7/M course

Reading list

Supplementary Reading

Module leaders

Professor Kin Leung
Dr Soteris Demetriou