Batbridge, an introduction to computer architecture

The history of computing machines is long and complex. This time last year, I had finished the single class I've enjoyed most in my academic career to date: CS 352H, "Computer Architecture". In this class, we explored at great length the history of computing machines and the various designs which have been developed and sequentially abandoned in the pursuit of speed over the past decades.

In this post series, I seek to re-learn, implement and share some of the really interesting tricks which modern processors play to achieve the blistering performance which we have the luxury of taking for granted and to shed some light on the engineering history and train of thought which brings us to the modern day.

  1. Hardware 101 - Latches, Memories and why Offchip Sucks
  2. stack and tape machines
  3. register machines
  4. cache accelerated machines
  5. pipelined machines
  6. branch predicted machines
  7. superscalar machines
  8. out of order machines

Throughout these posts, I will take a literate programming approach in that I will attempt to interleave code with the rationale therefore. Each simulator which I develop will be standalone in terms of source code and will be published here on github for your benefit and ease of access.