Unit information: Introduction to Computer Architecture in 2011/12

Please note: you are viewing unit and programme information for a past academic year. Please see the current academic year for up to date information.

Unit name Introduction to Computer Architecture
Unit code COMS12600
Credit points 10
Level of study C/4
Teaching block(s) Teaching Block 2 (weeks 13 - 24)
Unit director
Open unit status Not open
Pre-requisites

None

Co-requisites

None

School/department Department of Computer Science
Faculty Faculty of Engineering

Description including Unit Aims

The central aim of this unit is the demystification of computer hardware: a student completing the unit should be able to reason about how programs they write in a high-level language (i.e., C) are translated into an executable form and executed by a basic processor, and how such a processor is composed of basic architectural blocks.

Intended Learning Outcomes

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

  • Explain the design and operation of the principal hardware and software components of a computer system.
  • Reason about how high-level programs are executed on a computer system.
  • Display knowledge of the following architectural topics:
  • Understand and compose computer systems employing the following components: von Neumann and Harvard architectures, data and control paths, buses, fetch-decode-execute cycle, instruction classes and encoding, addressing modes, control-flow, RISC versus CISC
  • Be able to understand the role of tool-chains: assemblers, compilers, linkers, shared and dynamic libraries, assembly language programming and translation from C fragments in a modern computer system.
  • Be able to identify the role and impact on performance of computer memory hierarchies, caches, DMA.
  • Understand how to interface computer systems to the outside world using asynchronous and synchronous protocols such as RS232 or USB, peripherals such as display devices or cameras, analogue and digital devices.

Teaching Information

20h lectures, 12h labs

Assessment Information

75% 1.5 hour examination

  • The intention is to set a "best 2 questions from 3" style exam paper focussing on aspects of roughly all ILOs but with an emphasis on more theoretical rather than practical aspects.
  • For example, a question on the exam might ask a student to explain the concept of X or analyse X within some context, whereas a coursework assignment might ask a student to implement X: the latter does not necessarily imply a thorough understanding which can, on the other hand, be assessed in the exam.
  • This is inline with the approach taken by COMS12200, the unit from which COMS12700 and COMS12600 are derived.

25% coursework : A single program (around 200 lines of code), developed in the C programming language to emulate a computer processor:

  • The intention is to use this single coursework assignment alongside several problems classes and non-assessed exercises.
  • The aim of the assignment is to re-enforce how computer processors (and low-level compilation tools) work by having students develop a (limited) software-based emulator for an ARM processor.
  • This aim also supports a by-design reliance on similar skills within subsequent units (e.g., COMS35102 and COMSM0109).
  • As such, the assignments focuses mainly on ILOs numbered 2, 3 and 4, an emphasis on more practical rather than theoretical aspects.
  • The assignment has an existing track record within COMS12200; for example see

http://www.cs.bris.ac.uk/Teaching/Resources/COMS12200/index.html#assignments

Reading and References

  • John L. Hennessy, David A. Patterson, Computer Architecture: A Quantitative Approach (4th Edition) . ISBN 978-0123704900
  • D. Page. A Practical Introduction to Computer Architecture. Springer-Verlag, 2009. ISBN: 978-1-84882-255-9
  • A. Tanenbaum. Structured Computer Organization. Prentice Hall, 2005. ISBN: 0-131-48521-0