Course material 2010–11
Paper 1: Computer Fundamentals
Lecturer: Dr S.M. Hand
No. of lectures: 6
This course is a prerequisite for Operating Systems.
Aims
The overall aim of this course is to provide a general understanding of how a computer works. This includes aspects of the underlying hardware (CPU, memory, devices), as well as how to program a computer at a low level using assembly language.
Lectures
- History: from vacuum tubes to VLSI. The Von Neumann
architecture. Hardware/software layers and languages. Operation of
a simple computer (processors, memory, buses, devices). Memory:
concepts, structures, hierarchy. [1 lecture]
- Processor: control and execution units. ALU and computer
arithmetic. Logical and conditional operations. Branches. Memory
access. Data representation: (integers), text, reals, compound
structures, instructions. Fetch-Execute cycle revisited. [1 lecture]
- General I/O architecture. Example devices. Buses: general operation,
hierarchy, synchronous versus asynchronous. Interrupts.
Direct Memory Access. [1 lecture]
- Programming in Assembly. MIPS instruction formats. Assembler
directives and pseudo-instructions. Memory access and control
flow instructions. The SPIM simulator. Example
programs. Procedures and the stack. Recursive procedures. [2 lectures]
- Course Review. [1 lecture]
Objectives
At the end of the course students should be able to
- describe the fetch-execute cycle of a simple computer with
reference to the control and execution units;
- understand the different types of information which may be
stored within a computer memory;
- understand a simple assembly language program.
Recommended reading
Tanenbaum, A.S. (1990). Structured computer organisation. Prentice Hall (3rd ed).
Patterson, D. & Hennessy, J. (1998). Computer organisation and design. Morgan Kaufmann (2nd ed.).