Skip to main content

Unit information: Computer Architecture in 2021/22

Unit name Computer Architecture
Unit code COMS10015
Credit points 20
Level of study C/4
Teaching block(s) Teaching Block 1 (weeks 1 - 12)
Unit director Dr. Page
Open unit status Not open
Pre-requisites

None

Co-requisites

None

School/department Department of Computer Science
Faculty Faculty of Engineering

Description

Using a set of fundamental techniques and technologies, the computer systems theme broadly explains how computing platforms work: it does so a) at various levels of abstraction, including both software and hardware, and by bridging between theory and practice, and b) both in isolation, and in combination, i.e., considering large, diverse, complex systems vs. individual platforms.

Forming part of said theme, this unit delivers an introduction to computer architecture: the focus is on bridging the gap between high-level programming languages and the hardware (e.g., micro-processors) on which associated programs execute. The unit content can be described as three main topics, which gradually build from lower to higher level concepts:

1. From Mathematics and Physics to digital logic:

  • Boolean algebra, integer representation and arithmetic,
  • physical design of logic components (e.g., logic gates from transistors),
  • use of combinatorial logic components (e.g., Karnaugh maps),
  • use of sequential logic components (e.g., state machines)

2. From digital logic to computer processors:

  • processor paradigms: counter, accumulator, and register machines; von Neumann vs. Harvard architecture; RISC vs. CISC,
  • memory paradigms: von Neumann bottleneck, memory hierarchy; cache memories,
  • instruction set design: instruction classes; addressing modes; instruction encoding and decoding,
  • processor design: buses; control and data paths; ALU; microcoded vs. hardwired control; fetch-decode-execute cycle.

3. From computer processors to software applications:

  • development tools: assembly language; assembly and linkage processes; debuggers,
  • support for structured programming (e.g., function calls),
  • support for operating systems (e.g., interrupts, protection).

Intended learning outcomes

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

  1. Recall and apply basic fundamental principles that support the design of computer systems,
  2. Explain the design, implementation, integration, and configuration of principal components within a typical computer system, including both hardware and software and any trade-offs involved, and
  3. Demonstrate how high-level (e.g., C) programs are executed by and interact with the underlying hardware, and therefore how to use said hardware in the most effective manner.

Teaching details

Teaching will be delivered through a combination of synchronous and asynchronous sessions, including lectures, practical activities supported by drop-in sessions, problem sheets and self-directed exercises.

Assessment Details

Exam (January, 100%)

Resources

If this unit has a Resource List, you will normally find a link to it in the Blackboard area for the unit. Sometimes there will be a separate link for each weekly topic.

If you are unable to access a list through Blackboard, you can also find it via the Resource Lists homepage. Search for the list by the unit name or code (e.g. COMS10015).

Feedback