Computer Architectures Learning Goals

Digital Abstraction (1.5–1.6)

  • You know what voltage, current and the transfer characteristic of a curcuit are.
  • You know the difference between analog and digital signals.

Transistors in digital computing (1.7 + Advanced topic)

  • You know what n-type and p-type silicon is and how nMOS and pMOS transistors work.
  • You know how transistors are used in the construction of logic gates
  • Advanced topic in discussion

Transistors in analog computing (1.7 + ?)

  • You know what n-type and p-type silicon is and how nMOS and pMOS transistors work.
  • You know the exponential relation between current and voltage, and how this relation can be used to implement an analog multiplier, or
  • You know what a voltage-follower is and how it can be used as amplifier.


Operational amplifiers and Schmitt triggers

  • You know what an operational amplifier (opamp) is
  • You know what a Schmitt trigger is and how it can be implemented with opamps


Combinational Logic (2.1–2.5)

  • You know what Boolean logic and equations are, and how they relate to logic gates and circuits.
  • You know how Boolean algebra can be used to alter and minimise circuits.

X/Z and Karnaugh maps (2.6–2.7)

  • You know how X and Z values relate to Boolean connectives and how they are used in circuit design.
  • You know what Karnaugh maps are and how they are used in circuit design.

Multiplexer and Timing (2.8–2.9)

  • You know what multiplexers are, how they are used and how they can be built.
  • You know what the propagation delay is, how an upper bound can be found via critical paths and what role delays play in circuit design.

Sequential Logic (3.1–3.2)

  • You know what the behaviour of D latches and D flip-flops is (as truth tables and as waveforms), and how they can be assembled into registers.

Synchronous Logic Design and FSM (3.3–3.4)

  • You know how race conditions and oscillations can occur in circuits, and how synchronous sequential circuits are used to prevent them.
  • You know what finite-state machines (Moore machines) are and how they can be realised as circuits with memory.
  • You understand the idea of factoring large FSMs into smaller ones to reduce design complexity.

Timing and Parallelism (3.5–3.6)

  • You know the various time constraints (aperture, setup, hold) that determine the system timing and how to analyse the timing of a circuit.
  • You know how metastable states can be handled with synchronisers.
  • You know what parallelism is and how dependencies affect it on the level of circuits.

Digital Building Blocks (5.1)

Arithmetic Sequential Blocks (5.2+5.4)

  • You know how addition of bits is implemented via half and full adders, and how these can be combined to N-bit adders.
  • You know how addition can be implemented more efficiently via carry-lookahead adders.
  • You know what an ALU is and how multiplication by 2 can be implemented efficiently with shifters.
  • You know what the behaviour of a counter is and how it can be implemented.

Memory and Logic arrays (5.5+5.6)

  • You know what memory arrays are, how they are organised and addressed.
  • You know the differences between flip-flops, DRAM, SRAM, and ROM, and their respective characteristics and applications.
  • You know what logic arrays are and how they can be made programmable.
  • You know what FPGAs comprise and what their applications are.

Number Systems (1.4+5.3+more operations)

Architecture (6.1–6.3)

  • You know what instructions in an assembly language are and what operands they take (registers, memory and constants).
  • You know what R-, I- and J-type instructions are (not necessarily the bit representation).
  • You know what a program in a machine language is stored and how it is run.

Programming and Compiling (6.4+6.6)

  • You know how while-loops and function calls can be translated into MIPS assembly. For function calls, you only need to know about the calls, returns, arguments and return values and the stack.
  • You know what the MIPS memory map is and what steps a compiler comprises.

Addressing modes and x86 (6.5+6.8)

Memory and I/O (8.1)

Embedded I/O (Micro-controller) (8.5,8.6)

Memory (8.2–8.4)

  • You know the role of memory, how a processor interfaces it and how memory is typically organised into cache, main memory and virtual memory.
  • You know what the miss and hit rate are, and how they affect the memory access time.
  • You know what direct mapped, set associative and fully associative cache is and how their characteristics compare.
  • You know what virtual memory is how it is accessed in pages.

  • You may choose to go deeper into virtual memory (address translation, page table, TLB, memory protection). In this case, you only need to know what cache is and what it is used for, instead of understanding all the different kinds of cache.

PC I/O and x86 (8.5, 8.7–8.8)