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.
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)|
|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.
I vaguely remember writing the FP interpreter in Prolog. Wish I could find the code…