CO403 Advanced Microprocessors IS860 - High Performance Computing for Security Basavaraj Talawar, basavaraj@nitk.edu.in
Course Syllabus Technology Trends: Transistor Theory. Moore's Law. Delay, Power, Energy, Temperature dependence in integrated circuits, Performance Quantification. Uniprocessors and Multiprocessors Uniprocessors ILP: Pipelining, Hazards, Compiler techniques, Branch prediction, Static and Dynamic Scheduling, Speculation, Limits of ILP. Multiprocessors Symmetric and Distributed architectures. Programming models - Shared memory vs. Message passing. Cache coherence protocols - Distributed, Snoopy. ISA support for Synchronization. Memory consistency models. VLIW, Vector Processors The Memory System: Memory Hierarchy, Cache tradeoffs, Basic and Advanced optimizations, Virtual Memory, DRAM. Interconnection Networks: Architectures, Topologies, Performance, Routing, Flow control, Future of NoCs.
Reference Texts Course Materials John L Hennessy and David Patterson. Computer Architecture, A Quantitative Approach, MK, 5ed, 2012. John Shen & Mikko Lipasti. Modern Processor Design, Waveland Press, 2013. Mark Hill/Margaret Martonosi (eds.). Synthesis Lectures on Computer Architecture, Morgan and Claypool, 2006 2014. Jean-Loup Baer. Microprocessor Architecture: From Simple Pipelines to Chip Multiprocessors. Cambridge University Press, 2009. Bruce Jacob, Spencer Ng, David Wang. Memory Systems: Cache, DRAM, Elsevier, 2007. William Dally and Brian Towles. Principles and Practices of Interconnection Networks, MK, 2004. Guest lectures
Qtorials 25 30% The Course Quizzes + Tutorials, 6 8, Solve problems in class, Team activity. Course Project 15 20% Midsem + Endsem 50 60% (?) Assignments, Surprise quizzes, Papers Summary Course Webpage: http://bt.nitk.ac.in/c/15a/co403/index.html
Course Objective Identify the trade-offs involved in designing a multiprocessor Why? Functionality Performance Power/Energy Reliability
Expected Trends in the Class Questions from the Seeker Answers for free Timeline
Computer Architecture Application Algorithm Programming Language Operating System/Virtual Machines Instruction Set Architecture Microarchitecture Register-Transfer Level Gates Circuits Devices Physics Computer architecture is the design of the abstraction/implement ation layers that allow us to execute information processing applications efficiently using manufacturing technologies David Wentzlaff, ELE 475 Computer Architecture, Princeton University
Definition Computer Architecture is the science and art of selecting and interconnecting hardware components to create computers that meet functional, performance and cost goals. Computer Architecture Specific requirements of the target machine ISA design Cache and memory hierarchy I/O, storage Multi-processors, networked systems Example: Max performance, within constraints: cost, power, reliability
Wikipedia: Moore's Law
Single Processor Performance Move to multi-processor RISC Hennessy & Patterson, CA-QA, 5ed. MK, 2013
Architecture vs. Microarchitecture Architecture Instruction Set Architecture Programmer visible state (Memory & Register) Operations (Instructions and how they work) Execution Semantics (interrupts) Input/Output Data Types/Sizes Microarchitecture/Organization: Tradeoffs on how to implement ISA for some metric (Speed, Energy, Cost) Examples: Pipeline depth, number of pipelines, cache size, silicon area, peak power, execution ordering, bus widths, ALU widths
Same Architecture, Different Microarchitectures AMD Athlon II X4 Intel Atom X86 Instruction Set, Quad Core, Out-of-order, 2.9GHz, 125W Decode 3 Instructions/Cycle/Core 64KB L1 I Cache, 64KB L1 D Cache, 512KB L2 Cache X86 Instruction Set, Single Core, In-order, 1.6GHz, 2W Decode 2 Instructions/Cycle /Core 32KB L1 I Cache, 24KB L1 D Cache, 512KB L2 Cache David Wentzlaff, ELE 475 Computer Architecture, Princeton University