Digital Systems

From Spivey's Corner
Jump to: navigation, search


The University and College Union (UCU) has again called strike action in support of disputes over pay and conditions and over pensions, and the Oxford branch is participating in the action. If Mike is involved in the strike, that will mean the lectures on Friday 21st February, Tuesday 25th February, Tuesday 3rd March, Tuesday 10th March and Friday 13th March are in danger of not taking place. Practical sessions during the strike period will nevertheless go ahead as normal.

If strike action does go ahead, this website may be unavailable for the period of the strike. We all hope that the strike action is curtailed or called off altogether, but that is dependent on the employers' side starting sensible discussions with our union representatives. You can find Mike's answers to some questions about the strike on another page.

If the sequence of lectures is curtailed in this way, then the five lectures on building and using an embedded operating system will be deferred to next term, and some topics planned for next term will be omitted. The syllabus for the course will not change, but the examiners will be aware that certain topics were not covered in the lectures.

This is a course about how computers work, starting with logic gates and latches, ending with concurrent processes running under a simple operating system, and spending time on machine-level programming in the middle.

  • In Hilary Term, we will study low-level programming with the help of a tiny computer, the BBC micro:bit, which includes an ARM-based microcontroller as its processor. Starting in assembly language and moving on to C, we will learn about the instructions that make up machine code, including arithmetic, branching, memory access, and subroutines. We will also (vitally for embedded systems) learn about controlling I/O devices, such as the buttons and lights on the micro:bit and the serial interface that allows it to talk to a host computer. Once a program reaches a certain degree of complexity, it is no longer sufficient to wait in a tight loop for an event to happen, and we will study the hardware and software aspects of solutions to this problem: using interrupts to respond to external events, and an operating system to structure the program as a family of concurrent processes, each responsible for one part of the task.
The micro:bit (or electronic teabag[1])
  • In Trinity Term, we will study the elements of computer hardware, building up from gates and latches to architectural elements such as registers, adders and decoders, and finally a paper model of a processor able to execute a selection of ARM instructions, supported by an architectural simulator.


Hilary Term[edit]

Tuesday in LTA and Friday in LTB at 12:00, weeks 1–8. Not recorded!
Wednesday 10:00 to 12:00 in the Thom Building Lab, unofficially in weeks 2–3, officially in weeks 4–8.
In college, four problem sheets this term.

Here is the plan in the event that the planned strike takes place and runs its full term:

Monday Tuesday Wednesday Thursday Friday
Week 5 Lecture Lab Strike Strike
Week 6 Strike Strike Lab / Strike Lecture
Week 7 Strike Strike Lab / Strike Strike Lecture
Week 8 Strike Strike Lab / Strike Strike Strike

Trinity Term[edit]

TBA, weeks 1–4, Location TBA.
None, but some utterly optional materials are provided.
Two more problem sheets.


Information about the course is provided on several other pages.



  1. So called because the board dangles from its USB cable like a teabag dangling from its string.

A single integrated circuit that contains a microprocessor together with some memory (usually both RAM for dynamic state and ROM for storing a persistent program) and peripheral interfaces.

A symbolic representation of the machine code for a program.