Coronavirus (Covid-19) Information

Module ICP-1033:
Computer Architecture

Module Facts

Run by School of Computer Science and Electronic Engineering

10 Credits or 5 ECTS Credits

Semester 2

Organiser: Dr David Edward Perkins

Overall aims and purpose

To introduce students to: the structure and components of a computer system; methods of data storage and manipulation; the concept of a multi-level machine; assembly and machine languages; the fetch-execute cycle; a range of architectures; micro-code; systems software.

Course content

  • Concept of a von Neumann machine; CPU; Memory; Secondary Storage; Input and Output Devices; Bus System.
  • Bits, nibbles and bytes; measuring data; place system of value; binary, octal, decimal and hexadecimal number systems; signed numbers; complement systems; binary arithmetic; floating point representation; logical operations.
  • Digital level; two state machines; NOT, AND, OR, NOR, NAND, XOR gates; simple combinational circuits; micro-architecture level; building registers from bistable circuits; clock synchronization; half and full adders; construction of an ALU; role of the PSR.
  • Micro-instructions; machine code; instruction format; opcodes and operands; assembly languages; production rules for programming languages; stacks and subroutines; CISC and RISC architectures.
  • Fetch-execute cycle; CPU and memory models; assembly language programming; interrupts; addressing modes; input and output systems.
  • System development software – interpreters, compilers, assemblers, linkers, loaders; editors; IDEs.

Learning outcomes mapped to assessment criteria







Demonstrate an understanding of the structure and components of a digital computer

Provide a detailed description of the fundamental CPU components- registers, ALU and CU; describe how data is stored and accessed in RAM; describe a range of storage and IO technologies. Provide a clear account of how data is transferred between the various components of a computer system. Identify the principle components of a computer system and outline their function.

Understand how data can be stored digitally; make use of common units of measurement e.g.KB, MB GB etc; understand and make use of various number systems.

Perform base conversions; perform binary addition using twos complement arithmetic; perform a variety of bitwise operations. Describe the IEEE 754 standard for floating point representation. Understand the various units of data measurement; recognize and understand binary, octal and hexadecimal number systems.

Describe the operation of the standard gates; understand how gates can be combined to produce registers and ALUs and other components of the micro-architecture level.

Describe the function of various micro-architecture components e.g. half and full adders, the ALU, the role of the PSR. Understand and describe in detail the internal structure of at least one micro-architecture component. Identify and understand the operation of the standard logic gates; design simple combinational circuits.

Describe the role of micro-code; understand the relation between the ISA and assembly language levels; understand a variety of assembly language instructions.

Translate selected assembly language instructions into machine code; describe the operation of a variety of more advanced assembly language instructions (e.g. stack operations); distinguish between CISC and RISC architectures; describe the relation between the ISA and micro-code levels. Translate short fragments of a high-level language into assembly language programs; construct ISA level instructions from micro-code instructions Specify the operational semantics of a range of basic assembly language instructions; understand relation between assembly language and machine code.

Analyse the fetch-execute cycle as it applies to a range of assembly language instructions.

Identify and describe in general the sequence of steps involved in the fetch-execute cycle. Provide a detailed trace for specific instructions during the course of the fetch-execute cycle; understand a range of addressing modes; describe how IO is managed. Describe the role of interrupts and how they are dealt with during the course of the fetch-execute cycle; compare different IO schemes.

Recognise system development software.; understand the difference between various kinds of language processors.

Describe in outline the function of various kinds of systems software, Explain how systems software figures in a multi-level view of a computer system. Clearly distinguish different types of language processors and system development tools.

Assessment Methods

Type Name Description Weight
EXAM Closed Book Examination 60
COURSEWORK Assignments 10
COURSEWORK Pair Product Development Project 30

Teaching and Learning Strategy


24 hours over 12 weeks


Laboratory preparation and reports

Private study

ASSESSED assignments, including tutorial questions. The group project will also take a good quantity of this time


Transferable skills

  • Literacy - Proficiency in reading and writing through a variety of media
  • Numeracy - Proficiency in using numbers at appropriate levels of accuracy
  • Computer Literacy - Proficiency in using a varied range of computer software
  • Self-Management - Able to work unsupervised in an efficient, punctual and structured manner. To examine the outcomes of tasks and events, and judge levels of quality and importance
  • Exploring - Able to investigate, research and consider alternatives
  • Critical analysis & Problem Solving - Able to deconstruct and analyse problems or complex situations. To find solutions to problems through analyses and exploration of all possibilities using appropriate methods, rescources and creativity.
  • Safety-Consciousness - Having an awareness of your immediate environment, and confidence in adhering to health and safety regulations
  • Teamwork - Able to constructively cooperate with others on a common task, and/or be part of a day-to-day working team

Subject specific skills

  • Knowledge and understanding of facts, concepts, principles & theories
  • Use of such knowledge in modelling and design
  • Problem solving strategies
  • Deploy theory in design, implementation and evaluation of systems
  • Specify, design or construct computer-based systems
  • Evaluate systems in terms of quality and trade-offs
  • Methods, techniques and tools for information modelling, management and security
  • Knowledge of systems architecture
  • Defining problems, managing design process and evaluating outcomes
  • Knowledge and/or understanding of appropriate scientific and engineering principles
  • Knowledge and understanding of mathematical principles

Pre- and Co-requisite Modules

Courses including this module

Compulsory in courses: