Module Identifier |
CI25410 |
Module Title |
COMPUTER ARCHITECTURE |
Academic Year |
2004/2005 |
Co-ordinator |
Dr Adrian D Shaw |
Semester |
Semester 1 |
Other staff |
Dr Adrian D Shaw |
Mutually Exclusive |
CS15410 |
Course delivery |
Lecture | 22 lectures |
|
Practical | Up to 4 x 2hr |
Assessment |
Assessment Type | Assessment Length/Details | Proportion |
Semester Exam | 2 Hours | 100% |
Supplementary Exam | Supplementary examination will take the same form, under the terms of the Department's policy | |
|
Further details |
http://www.aber.ac.uk/compsci/ModuleInfo/CI25410 |
Learning outcomes
On successful completion of this module, a student should be able to:
-
analyse a block diagram of a computer and explain how it works at the level of logic gates;
-
analyse and develop low level programs and describe how they are executed by a CPU;
-
describe how a computer performs input and output operations;
-
explain how abstract concepts in high-level languages, such as `function call'''' or `local variable'''', are implemented in machine code;
-
judge the applicability of high and low level language programming.
Brief description
This module examines what a computer is and how it works, down to a level just above electronics. It considers how a program, written in a high level language, is ultimately executed by a computer.
Aims
This module provides students who intend to study software development with an appropriate initial understanding of the hardware on which programs run and how programs are executed.
Content
1. What is a computer? - 4 Lectures
Block diagram overview; CPU, memory, I/O, Bus. Memory, Digital Logic; pigeon-hole model, address and contents, bits bytes and words.
2. Buses - 2 Lectures
Address, data and control buses. Basic data transfer.
3. Inside the CPU - 3 Lectures
Simple examples of instructions. The fetch-execute cycle and the program counter. Registers. ALU. Control unit. Implementing a machine code in hardware. Digital logic.
4. A real CPU example: Motorola 68HC11 - 4 Lectures
Some machine codes and mnemonics. Addressing modes. Assembly code.
5. Executing high-level software - 4 Lectures
Machine-code equivalents of high-level constructs. Function calls. Stack frames and local variables.
6. I/O - 5 Lectures
Reading and writing data. Interrupts. Transfering large amounts of data; DMA, block I/O.
7. Exercises - 4 Practicals
Use a CPU simulator to watch instruction execution. Assembly language comprehension (probably, but not necessarily, by writing a program).
Reading Lists
Books
** Recommended Text
Ronald J. Tocci and Frank J. Ambrosio (2003) Microprocessors and Microcomputers
6th. Prentice Hall
Notes
This module is at CQFW Level 5