|| CI25410 |
|| COMPUTER ARCHITECTURE |
|| 2004/2005 |
|| Dr Adrian D Shaw |
|| Semester 1 |
|| Dr Adrian D Shaw |
|| CS15410 |
| Course delivery
|| Lecture || 22 lectures |
|| Practical || Up to 4 x 2hr |
|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 || |
|| http://www.aber.ac.uk/compsci/ModuleInfo/CI25410 |
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.
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.
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.
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).
** Recommended Text
Ronald J. Tocci and Frank J. Ambrosio (2003) Microprocessors and Microcomputers
6th. Prentice Hall
This module is at CQFW Level 5