Topics in computer architecture

This page has links to lecture material and notes about computer architecture. This is not a syllabus for a standard undergraduate or graduate course in computer architecture. The topics are appropriate for a seminar on computer architecture.

There are a few major themes.

  • There is a strong interplay between architecture, operating systems and compiling. The interrelationships and mutual support determine performance and efficient resource utilitation.
  • Reduced instruction set computers (RISC) offer some unique advantages over complex instruction set computers (CISC). Many CISCs, however, can be extended through microcode in a write-able control store. Today, I would compare ARM vs. x86 instead of SPARC vs. VAX.
  • Synchronous design dominates current commercial machine implementation. However, self-timed systems and micropipelines are viable, asynchronous alternatives to synchronous timing and a central clock.
  • Hardware systems are parallel. Software design and implementation has not kept up partly due to computer languages that are inherently sequential. Languages also need to be freed from the sequential von Neumann paradigm. Functional programming and dataflow architectures are two possible alternatives. Today, I would present Haskell in addition to Backus FP.

My goal, generally, is to teach students to think critically about computer architecture from multiple perspectives. I also hope to motivate non-von Neumann architectures and languages. We’ve been stuck in the von Neumann paradigm for too long. Even von Neumann and Turing considered other approaches before each of these pioneers came to a premature and tragic end.

The table below has links to some rather wordy and dense slides. The course overview below describes a special, on-site course for M.S. students at Bell Labs in Columbus, Ohio.

Topic and link
Course overview
Benchmarking
Computer-aided research on architectures
Compiling and compilers (Wulf)
Reduced instruction set computers
Sun SPARC architecture
Sun SPARC implementation in ECL
Sun SPARC compilers
SunOS
Von Neumann architecture
Micropipelines (Sutherland)
Data-driven dataflow (Davis)
Data-driven nets (Davis)
Functional programming (Backus)
inmos Transputer architecture

Special thanks go to Al Davis. Al was my dissertation supervisor way back in the day when he was investigating dataflow architecture and asynchronous machine design. He had quite an effect an my thinking then and now!

The following table contains links to sample assignments. They were given during the graduate-level, special topics course.

Assignment and link
Architecture modeling (SP.4)
Data-driven dataflow computer simulation
Functional programming (FP)
occam programming
SP.4 stack computer

Speaking of Utah people, I always admired Elliott Organick’s way with words. What a masterful writer! The SP.4 was inspired by the Burrough B5500 and Elliott’s book.

The table below has links to various and sundry lecture and reading notes. Some of the notes are pretty raw.

Topic and link
Syllabus for a special topics seminar
Early history of digital computers
Von Neumann architecture
Circuit implementation technology
CISC vs. RISC
The DEC PDP-11 family
DEC PDP-11 architecture
The infamous Dhrystone benchmark (RIP)
Recursive machines (Glushkov)
Data-driven machine (Davis)
Petri nets
Production systems
SK reduction machine (Turner)
Lucid single assignment language
FP intepreter in Prolog

I vaguely remember writing the FP interpreter in Prolog. Wish I could find the code…