Computer Systems Architecture 2
Last updated 12 October 1999
CSA2 is a 2'nd year unit in the School of Computer Science. It aims
to give the student some insight into the layers of abstraction that
separate a typical application or even high-level-language programmer from
the underlying hardware of the machine.
The course splits into two roughly even components. The first deals
with low-level detail such as number representation, procedure calls,
registers, I/O devices etc through the lens of an assembly language -
students learn to program in MIPS assembly language (SAL and MAL).
The second component deals with operating system concepts such as
file system, process, and security management. Unix utilities and
system calls serve as the practical tool for understanding this
portion of the course.
The Assessment Procedure and
Schedule of Lectures and Labs
are both available.
Lectures
- Lecture 1 -
Computer abstractions. The abstractions that separate the typical
user from the underlying hardware.
- Lecture 2 -
SAL. MIPS Simple Assembly Language basics.
- Lecture 3 -
Number Systems. Fundamental concepts of number systems of
relevance to computer representation and manipulation.
- Lecture 4 -
Data Representation. Representation of integers, characters
& floats within the machine.
- Lecture 5 -
Logical Operations. The ALU, shifts & rotates and
some basic mathematics.
- Lecture 6 -
Data Structures. Memory addresses, one and 2D arrays and
address calculation, stacks and queues.
- Lecture 7 -
MAL. MIPS Assembly Language instructions.
- Lecture 8 -
Procedures. Procedures in MAL, the system stack, argument
passing.
- Lecture 9 -
The Assembler. Role of the assembler, symbol tables etc.
- Lecture 10 -
Low Level I/O. Archetypal devices, programmed I/O, memory
mapped I/O, asynchronous I/O, DMA.
- Lecture 11 -
Exceptions, interrupts & the Kernel. Classes of exceptions,
interrupts, system calls, the kernel.
- Lecture 12 -
Performance. Pipelines, memory hierarchies, benchmarking.
- Lecture 13 -
Micro Architecture. RISC vs. CISC architecture. The X86 family,
the PowerPC family.
- Lecture 14 -
Intro to OS. Introduction to major topics of OS: types of
OS, common concepts, structure, policy vs. mechanism.
- Lecture 15 -
History of OS & system calls. Generations of OS. System calls
& system calls under Unix.
- Lecture 16 -
Processes. Concept of a process, process state, exceptions
& process state.
- Lecture 17 -
The Scheduler. Approaches to scheduling processes.
- Lecture 18 -
O/S Level
I/O and the Disk. Issues of Input and Output at the O/S
level. Disk arm scheduling.
- Lecture 19 -
Memory Management. Partitions, fragmentation, compaction,
processor utilisation, and pages.
- Lecture 20 -
Virtual Memory.
Paging and virtual memory.
- Lecture 21 - A composite of two topics on file systems, one on
File
Systems in general (file primitives, directory structures etc.)
and the other on
File System Performance - directory structures, free block
lists, caching etc.
- Lecture 22 -
OS
Security - types of abuse and attacks, means of providing
security.
- Lecture 23 -
Viruses - Worms, trojan horses, classes of viruses, vectors
for infection, numbers, detection and prevention.
- Lecture 24 -
Modern O/S - Concepts of O/S we have covered as applied to
Windows 95 and Unix.
- Lecture 25 -
Review -
Revision of the major topics covered by the course.
Essays and Presentations
Each student is asked to prepare a 3000-word essay on a topic of
relevance to computer architecture as well as make a short
presentation to the class on that topic.
The full details and list of topics
are available.
Presentation details are available
detailing time, venue, and expectations of the lecturer.
Assignments
Solutions
Assignment 5 from 1997
was a large (well, large when implemented in assembler)
application involving 2D arrays. It is a good illustration of many
of the features and issues in assembly language programming.
The file
2D.mal contains my solution to the
assignment. There is considerable commenting (though is it sufficient?)
within the code.
Important Notes
Other course notes and handouts.
- Simulator Notes - Documentation
describing how to drive the MIPS R2000 Simulator that is employed
in the first portion of the course.
- SAL Notes - SAL (Simple Abstract
Assembler) language notes. The instructions that compose the
MIPS RISC SAL language.
-
Using Unix System Calls - Warren Toomey's notes on using system
calls under Unix.
Links of Interest
Links of interest on various aspects of computer architecture and
operating systems. Some are likely to be of use for the essay questions.
- Tom's Hardware - reviews and
bencmarks of the latest PC hardware. A must stop for those obsessed
with the latest and the best.
- Anand Tech - another excellent
hardware (and software) review site.
- Ars Technica - With a by-line
of The PC enthusiast's resource this is a seriously useful
site with surprisingly erudite and well researched articles that further
enhance the solid technical data and recommendations.
- Intel Secrets - with the byline of
"what intel doesn't want you to know" you can tell its about Pentium
bugs etc. Lots of useful information there.
- The PC Guide - a truly
comprehensive and informative guide to all things PC. Excellent!
- storeagereview.com - a
site dedicated solely to reviewing storage hardware.
- Dr. Solomon's
Online - well known commercial provider of Anti-virus software.
Lots of virus related information including virus alerts and general
information.
- The
Bios Survival Guide - The inner workings and configuration of
the PC's BIOS (Basic Input Output System) or `kernel'. Excellent
for system tweakers.
- PC Webopaedia - an online
encyclopaedia (more like a dictionary) of computer terminology. A
good place to look if you want a quick definition of a term.
- bootNet - online
PC magazine.
- ReviewFinder - index
and links to online reviews of all kinds of PC hardware.
- PC Magazine
Online - ZDNet's online PC magazine.
- PC World Online - online
PC magazine.
- Standard Performance Evaluation
Group - the single best known organisation for bechmarking
computer performance.
Spike's Home Page
Feedback welcome!