Course Description

This course introduces architecture of digital systems, emphasising structural principles common to a wide range of technologies. Topics include Multilevel implementation strategies; definition of new primitives (e.g., gates, instructions, procedures, and processes) and their mechanisation using lower-level elements. Analysis of potential concurrency; precedence constraints and performance measures; pipelined and multidimensional systems; instruction set design issues; architectural support for contemporary software structures.

Prerequisite

  • 10.009 The Digital World

Learning Objectives

  1. State the role of abstraction in the design of large digital systems, and explain the major software and hardware abstractions in contemporary computer systems.
  2. Design simple hardware systems based on a variety of digital abstractions such as ROMs, logic arrays and state machines.
  3. Synthesize digital systems from a library of representative components and test the designs under simulation.
  4. Describe the operation of a moderately complex digital system — a simple RISC-based computer — down to the gate level, and be able to specify, implement and debug its components.
  5. Appreciate the technical skills necessary to be a capable digital systems engineer.
  6. Explain the fundamentals of modern operating systems.

Measurable Outcomes

  1. Identify flaws and limitations in simple systems implemented using the static discipline.
  2. Identify flaws and limitations in simple systems implemented using clocked registers with asynchronous inputs.
  3. Identify flaws and limitations in simple systems implemented using semaphores for process synchronization.
  4. Characterize the logic function of combinational devices using CMOS, ROM or PLA technologies.
  5. Explain synthesis issues for combinational devices using CMOS, ROM or PLA technologies from their functional specification.
  6. Explain synthsis of acyclic circuits from combinational components.
  7. Calculate performance characteristics of acyclic circuits with combinational components.
  8. Explain and calculate performance characteristics of single-clock sequential circuits.
  9. Implement a simple RISC-based CPU architecture.
  10. Explain the underlaying theory of memory hierarchy.
  11. Implement a device handler using interrupt and SVC.
  12. Implement a synchronization system for processes using semaphore.