Skip to main content

Unit information: Introduction to Computer Architecture in 2019/20

Please note: It is possible that the information shown for future academic years may change due to developments in the relevant academic field. Optional unit availability varies depending on both staffing and student choice.

Unit name Introduction to Computer Architecture
Unit code COMS12200
Credit points 20
Level of study C/4
Teaching block(s) Teaching Block 4 (weeks 1-24)
Unit director Professor. David May
Open unit status Not open
Pre-requisites

None

Co-requisites

None

School/department Department of Computer Science
Faculty Faculty of Engineering

Description

This unit provides an introduction to how a computer works, covering the link between high-level programming languages and the hardware on which programs execute. The unit starts from the basics of digital electronics and gradually build up to the design of a complete computer system.

The major topics covered are:

1. Fundamentals: An introduction to digital electronics, building from simple logic gates into flip-flops, registers, multiplexors etc. and algorithmic state machines.

2. Basics of Computer Architecture: Buses, the von Neumann architecture, memory, data representation, arithmetic operations, the ALU, the fetch-execute cycle.

3. Control: Data path layout, controlling the fetch-decode-execute cycle. Microcoded control and hardwired control. Parallelism in the processor, basics of pipelines.

4. Instruction set design: Designing a processor to execute programs. Instruction types, addressing modes. Supporting subroutines, exceptions and interrupts. Assembly languages and compilers, requirements for operating systems. At this point we will be able to look at complete system design and understand how the computer functions as a whole.

5. Interfacing to the outside world: Analogue and digital devices, synchronous and asynchronous protocols, polling, interrupts, DMA. Communication with other computers.

6. Improving usability and performance: Relocation, protection, cache memory and memory hierarchies, architecture trade-offs.

Intended learning outcomes

On successful completion of this unit you will be able to:

1. Demonstrate a basic understanding of digital electronics and the components used in the design of computer systems.

2. Explain the design and operation of the principal components of the computer, both hardware and software, and how they fit together.

3. Show how high-level programs are executed in hardware, by performing simple computations at various levels in the machine.

Teaching details

2 lectures per week supported by a combination of laboratory and problem classes

Assessment Details

50% coursework - consisting of two assignments assessing both theoretical and practical content of the unit, and involving a combination of software development and report writing - and 50% exam.

Reading and References

1. S. Palnitkar. Verilog HDL: A Guide in Digital Design and Synthesis. Prentice Hall, 2003. ISBN: 0-130-44911-3

2. A. Tanenbaum. Structured Computer Organization. Prentice Hall, 2005. ISBN: 0-131-48521-0

3. John L. Hennessy, David A. Patterson Computer Architecture: A Quantitative Approach (4th Edition) ISBN: 978-0123704900

Feedback