CSU23021 – Microprocessor Systems

Module CodeCSU23021
Module NameMicroprocessor Systems
ECTS Weighting [1]5 ECTS
Semester TaughtSemester 2
Module Coordinator/s  Dr. Viet Quoc Pham

Module Learning Outcomes

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

  1. Use industry standard source-code management (SCM) tools, integrated development environments (IDEs), compiler toolchains and low-level debuggers to implement applications using assembly language and bare-metal C code;
  2. Describe the fundamental concepts and emerging trends in processor architecture, on/off-chip interconnect fabrics and memory hierarchies with respect to power, performance and security concerns;
  3. Visualise complex exception and interrupt-handling sequences to recognise potential problem sources and develop appropriate debugging strategies;
  4. Develop, document and test applications using both native assembly language and bare-metal C code in order to implement suitable solutions to lab coursework and programming assignments;
  5. Work in small teams to plan and implement the various hardware, software and documentation aspects of their assigned project by dividing and sharing the tasks between them and tracking the project activities through to successful completion.

Module Content

This module provides a holistic overview of how a typical general purpose computing system functions, followed by a deep-dive into the various key architectural features of such systems.

Topics covered as part of this module will include microprocessor architecture, instruction encoding, execution control flow, execution pipelining, exception handling, processor modes, memory types and hierarchies, caching, peripheral connectivity (on-chip/off-chip), debug architectures, security systems, virtual memory and the importance of area/power/performance in modern systems.

Students are given the opportunity throughout the module to reinforce their problem solving, programming and written communication skills. This is accomplished in labs and assignments through the design, implementation, documentation and test of solutions to programming problems of increasing complexity. The target hardware used to execute the solutions to these programming problems is a small, but powerful, ARM based SOC development platform which is used in conjunction with an industry standard software development environment and toolchain.

Teaching and Learning Methods

Online lectures will be used to introduce and reinforce key concepts in computer architecture, building on topics covered as part of previous modules, with an emphasis on current trends in industry.

Tutorial sessions will summarise the topics introduced in the lectures with an emphasis on the ARM SOC architecture being used in the module practical labs as well as its underlying development platform and the associated toolchain.

As part of the module, students complete one Linked Learning Coursework, five hands-on practical labs, two programming assignments (one individual and one group), and two short quizzes during the semester, with each one contributing to their overall module results. There will be also voluntary labs; students are highly recommended to complete them, but they will not contribute to the overall result.

The goal of the hands-on practical labs is to help students embed their learnings through the physical implementation and debug of small applications targeting an ARM SOC based development platform. The assignments will require implementation of larger applications targeting the same hardware platform and will encourage use of documentation and collaboration tools.

Assessment Details

Assessment ComponentBrief DescriptionLearning Outcomes Addressed% of TotalWeek SetWeek Due
LinkedIn Learning CourseworkThere are 6 LinkedIn Learning courses (approx. 8hrs in total) to complete (approx. 1.5% each).LO110%Week 1Week 4
LabsThere are a total of 5 labs (worth each 6%) to complete over the course of the semester. LO1, LO2, LO3, LO430%Weeks 3, 4, 5, 6, 91 Week Later
QuizzesThere are 2 quizzes to complete (worth each 5%) over the course of the semester.LO1, LO2, LO3, LO410%Weeks 6, 12Weeks 6, 12
Assignment 1 (individual)The individual assignment is based on coursework covered in the first four weeks of the semester.LO1, LO2, LO3, LO420%Week 4Week 6
Assignment 2 (group)The final assignment is a group project and will include aspects from all coursework material.LO1, LO2, LO3, LO4, LO530%Week 8Week 12

Reassessment Details

Reassessment will be 100% coursework. The supplemental mark in this module is based on Blackboard E-test. Students need to answer some questions relating to the material that was covered during the module and complete a coding assignment.

Contact Hours and Indicative Student Workload

Contact Hours (scheduled hours per student over full module), broken down by: 57 hours
Lecture/tutorial 33 hours
Laboratory 24 hours
Independent Study (outside scheduled contact hours), broken down by: 60 hours
Preparation for classes and review of material
(including preparation for examination, if applicable)
36 hours
Completion of assessments (including examination, if applicable) 24 hours
Total Hours 117 hours

Recommended Reading List

Please see recommendations on the module Blackboard pages.

Module Pre-requisites

Prerequisite modules:

CSU1021 & CSU1022 or CSU33D01.

Other/alternative non-module prerequisites:

A basic working knowledge of the ARM instruction set and some familiarity with the C programming language, GDB debugger, Git revision control system and Visual Studio Code IDE.

Module Co-requisites

N/A

Module Blackboard Pages

Blackboard