Dr. N. Dulay
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.
Learning Outcomes
At the end of the course, a student will have an understanding of: the representations used for numbers and text, computer arithmetic, the functions of the components of a CPU, how main memory is organised, the architecture of the Pentium microprocessor, models for input/output. Practical skills will be developed in particular, in developing assembly programs for the Pentium microprocessor.
Pre-requisites: None
Outline 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, RAM, 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.
Process Management: states and representation, creation and termination, processes and
threads.
Process Scheduling: scheduling and dispatching, algorithms Concurrency and
Synchronisation: mutual exclusion, deadlocks, starvation, locks, semaphores,
monitors.
Memory Management: linking & loading, fixed and dynamic partitioning,
fragmentation, virtual memory, paging, segmentation.
Same as C113 Computer Systems course but students do not take the OS component.