18-742: Computer Architecture and Systems
Historically, the performance and efficiency of computers has scaled favorably (according to "Moore's Law") with improvements at the transistor level that followed a steady trend (so-called "Dennard scaling"). Unfortunately, device scaling has hit a limit on performance and power improvements dictated by physical device properties. To continue to make systems capable, fast, energy efficient, programmable, and reliable in this “post-Dennard” era, computer architects must be creative and innovate across the layers of the system stack. This course tells the story of modern computer architecture and systems. We will learn how the world of computer architecture changed with the end of Dennard Scaling and Moore’s Law, studying several the trends that these changes precipitated. The first trend is the wholesale shift to parallel computer architectures and systems, covering parallel hardware and software execution models, cache coherence, memory consistency, synchronization, transactional memory, and architecture support for concurrent software reliability. The second trend is the shift to specialized, heterogeneous parallel computer architectures. Topics include power and energy, reconfigurable architectures and FPGAs, ASIC accelerators, and the changes to the system stack that these components demand. The third trend is the emergence of newly capable hardware and software systems and new models of computation. Topics include approximate computing, intermittent computing, encrypted computing, DNA-based computer systems, and may include future emerging topics. 18-742 is a research preparatory course. The main learning objective for the course is that at the end of the semester, you are a more capable researcher. In this course you will learn how to carry out experimental computer architecture research. Along the way, you will read research papers, compose technical writing, deliver technical presentations, and plan and execute a computer architecture research term project.