The materials for this week provide an introduction to the course, both in terms of the course's organisation, as well as the academic content of the course. We covered a high-level overview of the logical levels of computer systems, many of which are covered in much greater detail in subsequent weeks.
Learning Objectives/Outcomes
Know what a computer system is, and how to measure them.
Understand the various logical levels of computer systems.
Understand the von Neumann model of computer systems, and why it has been so influential.
Content
What is a computer System?
The Computer Level Hierarchy
How to Measure a Computer
The von Neumann Model
From the Linda Null Book:
1.1 Overview
1.2 Computer Systems
1.3 An Example System
1.6 The Computer Level Hierarchy
1.9 The Von Neumann Model
Week 2: Binary (1)
This week is for studying how computer systems represent numeric values.
Learning Objectives/Outcomes:
Convert between decimal and binary (and any other bases)
Be able to represent fractional components in binary
Use signed-magnitude, one's complement, and two's complement formats for representing negative values in binary. Understand the advantages and disadvantages of the formats
Use hexadecimal to represent binary values.
Content
Positional Numbering Systems
Base Conversions
Fractional Components
Binary Formats for Negative Values
Signed-Magnitude
One's Complement
Two's Complement
Hexadecimal
Why Binary?
From the Linda Null Book:
2.1 Introduction
2.2 Positional Numbering Systems
2.3 Converting Between Bases
Week 3: Binary (2)
This week, we looked at how a computer can perform arithmetic operations (addition, subtraction, multiplication, and division) using the binary formats from last week (unsigned, signed magnitude, one's and two's complement).
Learning Objectives/Outcomes:
Understand how a computer system performs basic arithmetic operations using the following binary formats: unsigned, signed magnitude, one's and two's complement
Identify when an arithmetic operation results in overflow
Content
Unsigned Arithmetic
Addition
Subtraction
Multiplication
Division
Signed-Magnitude Arithmetic
Addition
Subtraction, Multiplication, and Division
Complement Arithmetic
Addition
Subtraction, Multiplication, and Division
From the Linda Null Book:
2.4.1 Signed Magnitude
2.4.2 Complement Systems
2.4.4 Unsigned vs Signed Numbers
2.4.6 Carry vs Overflow
2.4.7 Binary Multiplication and Division Using Shifting
Week 4: Binary (3)
This week, we studied floating-point representations, specifically the IEEE-754 format for storing binary numbers, as well as its associated arithmetic and properties.
Learning Objectives/Outcomes:
Understand the IEEE-754 format, and convert in and out of the format.
Understand how a computer can perform arithmetic using iEEE-754 format.
Recognise and identify common errors that occur with floating-point representations.
Distinguish the properties of range, precision, and accuracy.
This week, we studied how computer systems are organised according to their hardware and software components. We also were introduced to a simple model computer that can help us understand machine code and the assembly process.
Learning Objectives/Outcomes:
Learn the components common to every modern computer system.
Be able to explain how each component contributes to program execution.
Understand a simple architecture invented to illuminate these basic concepts, and how it relates to some real architectures.
Content
Computer Components (CPU, memory, I/O)
Computer Components (the Bus, Clocks and Interrupts)
This week, we studied how computer systems execute programs at the machine code level. We also looked at how high-level coding concepts can be implemented with basic assembly code.
Learning Objectives/Outcomes:
Learn the processes involved in executing programs and handling interrupts.
Know how the program assembly process works.
Understand how to create and analyse simple programmatic constructs.
Week 7: Instruction Set Architecture and Pipelining
This week, we looked at various issues in the design of ISAs with a view to their efficiency. We also looked at pipelining as a means to speed up program execution through parallelisation.
Learning Objectives/Outcomes:
Understand the factors involved in instruction set architecture design.
Gain familiarity with memory addressing modes.
Understand the concepts of instruction-level pipelining and its effect upon execution performance.
The ideas presented this week helped us to understand various measurements of computer performance. We discussed a number of factors that affect system performance, including some tips on how you can improve the performance of programs.
Learning Objectives/Outcomes:
Understand the ways in which computer performance is measured.
Be able to describe common benchmarks.
Become familiar with factors that contribute to improvements in CPU and memory performance.
Content
What is Benchmarking?
Benchmark Examples
RISC vs CISC
Branch Optimisations and Code Optimisations
Caching
From the Linda Null Book:
11.1 Introduction
11.2 Mathematical Preliminaries (refresher on basic statistics)
I was particularly interested in this because, when I took it during my undergraduate degree, our textbook was the one focused on Electrical/Electronics Engineering (you know the one, and if you don't, lucky you), and our lecturer just had us breeze through the whole text and regurgitate entire sections in the exams.
As is my custom, from the very first reading section, I got lost in the book and just kept reading and reading and reading. Now, I am in Chapter 8 (Alternative Architectures), and I realise that I have already gone through the whole syllabus (except week 8). Makes me rerealise how much of the advanced topics they (typically) spare us from during our undergraduate degrees and how much more I have to get familiar with if I really want to join a PhD programme.
I have so so many thoughts about the module so far, but I feel they would be better expressed in my posts about the books themselves, as most of the course is taken directly from them.
The additional reading might surprise me when I get to them, though, and if they do, I'll talk about them here.
It also makes me curious: the second book isn't referenced at all in the syllabus. What exactly does it teach?
I plan to make a whole series just talking about the Linda Null book, and if the second one touches me the same way, I'll do the same for it, too.
I guess I can consider this module crossed off my list for now, but I don't have nearly as much expertise as I'd like. So I guess I'll read some more. I'm especially looking forward to the Chapter 12 (Network Organisation and Architecture). I mastered in Communications, and Networking is still my weakness.
There are also some labs and exercises in the syllabus, and I'll solve any that look interesting and post them in future edits.