In order to implement efficient computer programs, it’s essential to understand the basic hardware structure of computers. In this chapter we examine the hardware components of a typical computer (CPU, memory, storage, GPU, etc.) focusing on issues that are relevant for software development and algorithm design. We also explore concepts like binary representations of numbers and strings, assembly language, multiprocessors, and the memory hierarchy.
- D. A. Patterson and J. L. Hennessy. Computer Organization and Design. Morgan Kaufmann, fourth edition, 2011.Google Scholar
- J. L. Hennessy and D. A. Patterson. Computer Architecture: A Quantitative Approach. Morgan Kaufmann, fifth edition, 2011.Google Scholar
- D. E. Knuth. Art of Computer Programming, Volume 1: Fundamental Algorithms. Addison Wesley, third edition, 1997.Google Scholar
- D. E. Knuth. The Art of Computer Programming, Volume 1, Fascicle 1: MMIX - A RISC Computer for the New Millennium. Addison Wesley, 2005.Google Scholar