Fundamentals of Computer Architecture

Course unit fact file
Unit code COMP15111
Credits 10
Unit level Level 1
Teaching period(s) Semester 1
Offered by Department of Computer Science

Overview

The module introduces fundamental concepts involved in Computer Architecture, which is the study and design of Computer Systems. Among others, the module discusses:

•    how to talk about computer systems,

•    how to think about computer systems,

•    how are computers structured,

•    what is the language that computers natively speak,

•    how programs are executed by the hardware,

•    how to make programs faster and smaller,  

•    how data (whether numbers, text, colours, or polygons) are represented in hardware using only binary digits,  

•    how high-level program structures (like loops, functions, and objects) are translated into operations the computer understands,  

•    how to build complex systems out of the simple operations provided by the computer, and what is the system software that allows us to run high-level programs  

Understanding the Fundamentals of Computer Architecture is essential for being able to reason about what exactly happens when we run a program. This is critical not only for students who are interested in hardware and low-level software, but also to any software developer who wants to be able to produce high performing programs and/or work across multiple software stack layers. In particular, business, finance, scientific programming, and AI frameworks rely on programmers that understand how programs actually work.  

Aims

This unit aims to introduce how computers and computer programs actually work. Much of the focus of the unit is on the language that computer hardware natively understands, the instruction set, and on how all types of information are represented in binary, using ones and zeros. The unit uses Python and the RISC-V processor to demonstrate the relationship between high-level programs and what happens in the processor when such programs are executed. Practical experience is gained in the laboratory through exercises which progressively expose features of the RISC-V instruction set. 

Learning outcomes

ILO 1: Analyse the suitability of different computer architectures for data processing

ILO 2: Explain the transition of source code into machine code and compare the different ways for organising machine code

ILO 3: Propose and evaluate methods of representing different classes of data in a digital computer

ILO 4: Implement high-level code and data structures in assembly language and reason about the relative benefits of different design choices

ILO 5: Illustrate how the processor architecture enables and supports building a complete computing system

Syllabus

  • Introduction: Processors, simple RISC-V programs, binary representations, fetch-execute cycle, registers.
     
  • RISC-V code for imperative constructs: Basic data types and expressions, data structures, control structures, functions, input/output, interrupts.
     
  • System software: Operating Systems, Assemblers, Compilers, Libraries, Loaders, Interpreters.

 

Teaching and learning methods

  • Pre-recorded Lectures: 11 sets in total, 1 per week
     
  • Live Lectures: 11 in total, 1 per week
     
  • Laboratories: 4 labs in total, 1 per fortnight
     
  • Example Exercises: 4 in total, 1 per fortnight
     
  • Canvas Quizzes: A set of questions with each pre-recorded lecture
     
  • Mentimeter Quizzes: 1 in each Live Lecture

Employability skills

Project management
Oral communication
Problem solving
Research
Written communication

Assessment methods

Method Weight
Other 15%
Written exam 50%
Practical skills assessment 35%

Written Exam: 50%

Practical Exam: 35%

Laboratory Coursework: 15%

 

Feedback methods

Considering that different students respond and process feedback in different ways, this module implements several different approaches for giving feedback.

Students receive personalised feedback (one-to-one) mainly in the context of the lab exercises. Students can directly ask the instructors or the Teaching Assistants (typically post-graduate researchers in Computer Architecture) any question about the lab exercises and receive immediate high-quality feedback. If the teaching staff have time, they might also be able to provide feedback on any student question, even if it is not related to the lab. On top of that, the student will receive detailed written individual feedback for every submitted lab coursework. Another way for students to receive personalised feedback is by asking questions during the Live Lecture. To lower the barrier for asking questions, the Live Lectures allow anonymous questions submitted through Mentimeter. A final way is by asking questions in the module’s Discussion Board. The lecturers aim to answer questions within one working day, but typically within a few hours.

Additionally, the unit offers several opportunities for group feedback (one-to-many). Canvas quizzes allow students to get immediate feedback on their understanding of the material, including detailed answers explaining the correct answers. Live Mentimeter quizzes provide similar feedback opportunities with the added benefit that the lecturer can elaborate more if the students request that. For each set of Example and Lab Exercises, we release detailed group feedback explaining what the correct answers were and what common mistakes we found in student submissions. We compile similarly detailed group feedback for the exam, which we release soon after we have completed marking. To help students prepare for the exam and get early feedback about their expected exam performance, we also give them a mock exam quiz which follows a similar structure and question difficulty as the actual exam.

Recommended reading

  1. Borin, Edson. (2023). An Introduction to Assembly Programming with RISC-V. Independently published (11 Oct 2023). ISBN: 9786500158113
     
  2. Clements, Alan, 1948-. (2006). Principles of computer hardware. Oxford University. ISBN: 9780199273133
     
  3. Patterson, David A. (2021). Computer organization and design RISC-V edition: the hardware software interface. Morgan Kaufmann. ISBN: 9780128245583
     
  4. Harris, Sarah L. (2022). Digital design and computer architecture. Morgan Kaufmann is an imprint of Elsevier.  
     
  5. Furber, Stephen B. (2000). ARM system-on-chip architecture /. Addison-Wesley, an imprint of Pearson Education,. ISBN: 0201675196 

Study hours

Scheduled activity hours
Assessment practical exam 2
Assessment written exam 2
Lectures 22
Practical classes & workshops 12
Independent study hours
Independent study 62

Teaching staff

Staff member Role
Pavlos Petoumenos Unit coordinator

Additional notes

For Independent study hours:

  • Pre-recorded Lectures: 11 hours
     
  • Other: 60 hours