Note

Following a national ballot, the union, UCU, that represents staff in the higher education sector has called a strike on three days in late November, and also "action short of a strike" during a period that starts on Wednesday, 23 November. During this period, colleagues are invited to take various actions, including abstaining from voluntary activities. I view the maintenance of Spivey's Corner as an activity I undertake voluntarily and not part of any contract of employment, and I cannot guarantee that it will remain accessible during the period of the dispute. In addition, some materials on the site may pertain to lectures that are cancelled by myself or others as part of the strike, and we are asked not to make them available online. Further details of the reasons for the strike and how it affects teaching in Oxford are on a brief FAQ page.

Reading list

From Digital Systems
Jump to navigation Jump to search

Information about the ARM – sufficient to follow the first part of the course – can be found on the micro:bit page. Besides the reference material, the notes by Geoffrey Brown are useful as background reading. The official book by Joseph Yiu also contains some useful information.

For operating systems, I have used

  • Tannenbaum, Operating Systems: Design and Implementation.

The IPC mechanism of micro:bian is modelled on that of Minix, and closest to the code in the first edition of the book, which avoids complexities introduced by support for the 386 introduced in later editions.

I have also made some use of

  • Douglas Comer, Operating System Design: The XINU Approach, 2nd edition, Chapman and Hall / CRC Press, ISBN 978-1498712439.

For architectural elements, and a non-obsessive approach to logic design I recommend certain sections of this book:

  • David A. Patterson and John L. Hennessy, Computer Organisation and Design, any edition, Morgan Kaufman.

The book has been through many editions, but the elementary material is similar in all of them (as far as I can see). In the fifth edition, the following sections are relevant.

Not on the reading list
  • Chapter 2 – Instructions: Language of the Computer.
  • Chapter 3 – Arithmetic for Computers, to Section 3.4 – Division.
  • Chapter 4 – The Processor, to Section 4.4 – A Simple Implementation Scheme.
  • Appendix B – The Basics of Logic Design.

There is an edition of the book that describes ARMv8-A, but it doesn't cover the Thumb encoding supported by microcontrollers, so I suspect it is not much more use for the course than the other editions.

For users of the fourth edition, here is a local copy of Appendix C – Basics of Logic Design, which may also be found on the publisher's website.