11 Facts About Computer Architecture Every Developer Should Know


Every software developer should at the very least be familiar with the architecture of the machines they develop for. Those who ignore the details of what's under the hood are doomed to make subtle mistakes that could turn out to be quite costly and hard to identify.

In an effort to make this page useful to as many people as possible, and to encourage everyone to think about these questions independently, the answers are hidden and can be revealed by clicking on each question

  1. How is Kernel-Mode Different From Running as Root?
  2. What is a Multi-Core Machine?
  3. What do Big-Endian and Little-Endian Notations Mean?
  4. What is Pipelining?
  5. What is a Multi-Issue Processor?
  6. Difference Between a Superscalar and a VLIW processor? Where is each appropriate?
  7. What is the Significance of the Privileged Bit?
  8. What is Branch Prediction?
  9. How Large/Fast are the Register File, L1 Cache, L2 Cache, Main Memory and Disk on Current Machines?
  10. What is Prefetching?
  11. How Many Instructions are In-Flight in a Modern Core?
is the founder of Donaq, a software development consulting company with a focus on mobility. You can find Mike on Google+ and on LinkedIn.
Design copyright (c) Miky Dinescu