Introduction to Computer Architecture

Aim

By the end of the class the student should be able to:

  1. recognize, explain, and analyze the microarchitecture features of current processor designs,
  2. indicate the advantages and disadvantages of the various interconnection schemes used to connect these processors and other system components especially memories and input/output devices,
  3. and design simple interface circuits (including analog to digital and digital to analog conversion) between processors and other system components.

Introduction

This class builds on the previous classes dealing with digital logic design and micorprocessors. The microprocessors studied thus far are basic simple units. The structures studied exist in current microcontrollers and simple processors used in embedded systems.

Advanced processors use more elaborate ideas. In this class, we study the remaining important techniques: pipelines, branch prediction, and caches. These techniques are widely used in all high performance digital systems and not just processors.

Once we finish the internals of the processor, we start exploring what lies beyond the processor: buses, serial/parallel interconnects, input/output interfacing, ...

General outline (tentative)

Pipelines:
Pipelines, exception handling, branch prediction, multiple issue machines, static and dynamic scheduling. (5 lectures)
Memories:
memory types, caches, interleaving, virtual memory, translation look-aside buffers. (5 lectures)
Interconnections:
serial versus parallel, serial and parallel bus standards, arbitration, split bus transactions, multiple masters, UART, USRT, USART, PCI, SATA, SCSI. (4 lectures)
D/A and A/D:
Analog signal interfacing, interfacing D/As and A/Ds. (4 lectures)

Handouts

All lecture notes together

All the lecture notes for the pipelining and memory parts are available as one file, please provide me with your comments.

Individual lecture notes

Videos of old lectures