School of Computing · ANU College of Engineering Computing & Cybernetics
In 2023, this course is on campus with remote adjustments only for participants with unavoidable travel restrictions/visa delays. This course provides a bottom-up overview of a modern computer system. It first unveils the inner workings of a general-purpose microprocessor building up from simple logic circuits. It then demystifies assembly code—the machine language spoken by the processor—and the mapping of assembly programs to higher levels of programming abstraction. With an understanding of how the microprocessor executes programs, the course then shows how a high-level programming language such as C makes those abstractions concrete, and exposes the static and dynamic structures of programs. Students learn the organisation principles of a simple microprocessor, how it can be realised in a simulator, and programmed in assembly. Students also build a non-trivial real-world application in the C programming language. More specifically, the course covers: - Introduction to digital systems and logic, including Boolean algebra, logic gates, and combinational logic - Instruction set architecture (ISA) design principles with a specific focus on the ARM ISA - Microarchitecture of a simple ARM processor - Memory and I/O systems - C programming language, translation of C programs to ARM assembly, and C program runtime organization including call stack and heap - Basic I/O utilities in C and memory mapped I/O - Relationship between programming language abstractions and assembly code
Design Assignment
Learning outcomes 1, 2, 3, 4
Programming Assignment
Learning outcomes 5, 6, 7
Final Exam
Learning outcomes 1, 2, 3, 4, 5, 6, 7
12 taught weeks of 4 contact hours per week, including lectures, tutorials, and laboratories (related to the assignments). The approximate time commitment (including preparations and assignments) is 10 hours per week over 14 weeks (including 2 non-teaching weeks), plus the final exam.
- Digital Design and Computer Architecture: ARM Edition by David Harris and Sarah L. Harris, Morgan Kaufmann, ISBN-13: 978-0-12-800056-4 (free at https://dl.acm.org/doi/10.5555/2815529). - The C Programming Language by Brian Kernighan and Dennis Ritchie, Prentice Hall Professional Technical Reference, ISBN-13: 978-0-13-110370-2.