Note: I've just migrated to a different physical server to run Spivey's Corner,
with a new architecture, a new operating system, a new version of PHP, and an updated version of MediaWiki.
Please let me know if anything needs adjustment! – Mike

Digital Systems: Difference between revisions

Copyright © 2017–2023 J. M. Spivey
Jump to navigation Jump to search
No edit summary
No edit summary
(22 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Image:Microbit.gif|thumb|right|300px|The {{Microbit}} (or electronic teabag<ref>So called because the board dangles from its USB cable like a teabag dangling from its string.</ref>)]]
[[Image:Microbit.gif|thumb|right|300px|The {{Microbit}} (or electronic teabag<ref>So called because the board dangles from its USB cable like a teabag dangling from its string.</ref>)]]
or, '''How to read a datasheet.'''
{{ContextBox|News Flash|A new [[The micro:bit toolchain on VirtualBox|VirtualBox image]] can be installed on Windows machines and allows you to carry out the lab work away from the lab.}}
{{smallcaps|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.
{{smallcaps|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 [[The BBC micro:bit|BBC {{Microbit}}]], 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 {{Microbit}} 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.
* In Hilary Term, we will study low-level programming with the help of a tiny computer, the [[The BBC micro:bit|BBC {{Microbit}}]], 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 {{Microbit}} 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.
Line 12: Line 8:
==Schedule==
==Schedule==
===Hilary Term===
===Hilary Term===
'''Lectures''' in Lecture Theatre B:
====Lectures====
All in Lecture Theatre B:
* Mondays, 10.0&thinsp;am, weeks 2&ndash;8.
* Mondays, 10.0&thinsp;am, weeks 2&ndash;8.
* Tuesdays, 10.0&thinsp;am, weeks 1&ndash;8.  
* Tuesdays, 10.0&thinsp;am, weeks 1&ndash;8.  
Line 20: Line 17:
<b>Although some elements of the lectures will be automatically recorded, the dynamic blend of slides, calculations on the whiteboard, software demonstrations, computer hardware shown via live video and online instrumentation, and problems solved by the lecturer and class working together means that not all elements will be captured, and the recordings may therefore be almost useless.  In addition, the content of each lecture may change in response to questions from the audience.  Participants who cannot attend lectures in person may find it best to follow the course by reading the extensive [[lecture notes]] available on this site, together with copies of the slides, and joining the weekly consultation sessions.</b>
<b>Although some elements of the lectures will be automatically recorded, the dynamic blend of slides, calculations on the whiteboard, software demonstrations, computer hardware shown via live video and online instrumentation, and problems solved by the lecturer and class working together means that not all elements will be captured, and the recordings may therefore be almost useless.  In addition, the content of each lecture may change in response to questions from the audience.  Participants who cannot attend lectures in person may find it best to follow the course by reading the extensive [[lecture notes]] available on this site, together with copies of the slides, and joining the weekly consultation sessions.</b>


'''Lab sessions''' in the Thom Building, Department of Engineering Science.  In addition to the official lab times noted above, the lecturer will be available at the same time and in the same place in weeks 3 and 4 to help those who want to get an early start with assembly language programming.
====Lab sessions====
In the Thom Building, Department of Engineering Science.  In addition to the official lab times noted above, the lecturer will be available at the same time and in the same place in weeks 3 and 4 to help those who want to get an early start with assembly language programming.


* Informal sessions -- Thursdays, 3.0&thinsp;pm &ndash; later, weeks 3 and 4.
* Official sessions -- Thursdays, 3.0&ndash;5.0&thinsp;pm, weeks 5&ndash;8.
* Official sessions -- Thursdays, 3.0&ndash;5.0&thinsp;pm, weeks 5&ndash;8.
* Informal sessions -- Thursdays, 3.0&thinsp;pm &ndash; later, weeks 3 and 4.


'''Consultation sessions:''' the lecturer will be available online to answer questions at set weekly times:
====Consultation sessions====
The lecturer will be available online to answer questions at set weekly times:
* Mondays, 2.0&ndash;3.0&thinsp;pm, weeks 2&ndash;8.  [[Oxford:Consultation sessions|Joining link]] (requires login).
* Mondays, 2.0&ndash;3.0&thinsp;pm, weeks 2&ndash;8.  [[Oxford:Consultation sessions|Joining link]] (requires login).
These sessions are organised for the benefit of participants who are prevented from returning to Oxford, but others are welcome to join also.
These sessions are organised for the benefit of participants who are self-isolating or have been prevented from returning to Oxford, but others are welcome to join also.


===Trinity Term===
===Trinity Term===
To be decided.
====Lectures====
* Thursdays and Fridays, 11.0&thinsp;am, weeks 1&ndash;4 in Lecture Theatre B
====Revision classes====
There are signs many participants would benefit from another look at programming with interrupts and with an embedded operating system, so that is where we will start.  In the second class, we will touch on the important topics of addressing in assembly language, the design of complex combinational circuits, and datapath architecture.
* Thursday 11.0&thinsp;am, week 5 in Lecture Theatre B. ''We will cover questions 9, 10, and 13 from the selection of {{Doc|digisys|revision|revision questions}}.''
* Friday 1.0&thinsp;pm, week 5 in Lecture Theatre B. ''Further questions from the selection, including questions 2, 15, and 18.''


==Resources==
==Resources==
Line 39: Line 43:
* Information about the [[laboratory exercises]].
* Information about the [[laboratory exercises]].
* A [[reading list]].
* A [[reading list]].
* A [[C &ndash; a very quick guide|very quick quide]] to programming in C.
* A page about the [[The BBC micro:bit|BBC {{Microbit}}]], including links to online resources.
* A page about the [[The BBC micro:bit|BBC {{Microbit}}]], including links to online resources.
* A page about the [[Microbian|{{Microbian}}]] operating system.
* A page about the [[Microbian|{{Microbian}}]] operating system.
Line 50: Line 55:
* A list of ways of [[Programming the micro:bit|programming the {{microbit}}]].
* A list of ways of [[Programming the micro:bit|programming the {{microbit}}]].
* A check-list of [[preparation tasks]] to negotiate with IT Support.
* A check-list of [[preparation tasks]] to negotiate with IT Support.
* [[Things to fix]].


==Links==
==Links==

Revision as of 15:47, 6 June 2022

The micro:bit (or electronic teabag[1])

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.
  • 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.

Schedule

Hilary Term

Lectures

All in Lecture Theatre B:

  • Mondays, 10.0 am, weeks 2–8.
  • Tuesdays, 10.0 am, weeks 1–8.
  • Friday, 11.0 am, week 1.

The lecturer will be unavoidably detained on Monday of First Week, so lectures that week will be on Tuesday and Friday.

Although some elements of the lectures will be automatically recorded, the dynamic blend of slides, calculations on the whiteboard, software demonstrations, computer hardware shown via live video and online instrumentation, and problems solved by the lecturer and class working together means that not all elements will be captured, and the recordings may therefore be almost useless. In addition, the content of each lecture may change in response to questions from the audience. Participants who cannot attend lectures in person may find it best to follow the course by reading the extensive lecture notes available on this site, together with copies of the slides, and joining the weekly consultation sessions.

Lab sessions

In the Thom Building, Department of Engineering Science. In addition to the official lab times noted above, the lecturer will be available at the same time and in the same place in weeks 3 and 4 to help those who want to get an early start with assembly language programming.

  • Informal sessions – Thursdays, 3.0 pm – later, weeks 3 and 4.
  • Official sessions – Thursdays, 3.0–5.0 pm, weeks 5–8.

Consultation sessions

The lecturer will be available online to answer questions at set weekly times:

  • Mondays, 2.0–3.0 pm, weeks 2–8. Joining link (requires login).

These sessions are organised for the benefit of participants who are self-isolating or have been prevented from returning to Oxford, but others are welcome to join also.

Trinity Term

Lectures

  • Thursdays and Fridays, 11.0 am, weeks 1–4 in Lecture Theatre B

Revision classes

There are signs many participants would benefit from another look at programming with interrupts and with an embedded operating system, so that is where we will start. In the second class, we will touch on the important topics of addressing in assembly language, the design of complex combinational circuits, and datapath architecture.

  • Thursday 11.0 am, week 5 in Lecture Theatre B. We will cover questions 9, 10, and 13 from the selection of revision questions.
  • Friday 1.0 pm, week 5 in Lecture Theatre B. Further questions from the selection, including questions 2, 15, and 18.

Resources

Information about the course is provided on several other pages.

Miscellaneous

Links



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