MC110 ARCHITECTURE (Terms 1 & 2)

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.