ECE 8823 A / CS 8803 – ICN
|Instructor||Professor Tushar Krishna|
|Office Hours||Mon and Wed after class|
|Hours||Mon & Wed 3:05 – 4:25 pm|
Prerequisite(s): ECE 4100 / ECE 6100 (Advanced Computer Architecture) or CS 4290 / CS 6290 (High Performance Computer Architecture)
Interconnection Networks refer to the communication fabric interconnecting various components of a computer system. They occur at various scales – from on-chip networks (OCN)/Networks-on-Chip (NoCs) in billion-transistor many-core chips, to custom high-speed wired networks in HPC supercomputers, to optical fiber networks within datacenters. The growing emphasis on parallelism, distributed computing, and energy-efficiency across all these systems makes the design of the communication fabric critical to both high-performance and low power consumption. This course examines the architecture, design methodology, and trade-offs of interconnection networks. The material covered in this course bridges the gap between disciplines/courses such as VLSI interconnects, digital communication, computer architecture, distributed systems, and computer networks. The overall focus of the course will be on interconnection network architectures used in multiprocessor and many-core systems, and designing for the communication requirements of various parallel architectures and cache coherence mechanisms.
In the first half of the course, lectures will cover the fundamentals of interconnection networks, getting to the research frontier at each level – topology, routing, flow-control, microarchitecture, network interfaces, and system interactions. The second half of the course will focus on state-of-the-art research and case studies, using a mix of lectures, student presentations, paper readings, discussions, and debates on contrasting approaches. Towards the end, opportunities for interconnection networks in the presence of emerging trends such as heterogeneous systems and the Internet-of-Things will be explored.
A half-semester long research project will focus on solving open-ended research problems and can lead to publications in reputed journals/conferences/workshops. Projects aligned with students’ own graduate research (MS/PhD) will be encouraged if they have an interesting networks component.
Textbook(s) and Readings
N. E. Jerger and L.-S Peh, “On-Chip Networks,” Morgan Claypool Publishers, 2009. [required]
W. J. Dally and B. Towles, “Principles and Practices of Interconnection Networks,” Morgan Kauffman Publishers, 2004. [optional]
J. Duato, S. Yalamanchili, L. Ni, “Interconnection Networks: An Engineering Approach,” Morgan Kauffman Publishers, 2002. [optional]
There will be a lot of additional readings of recent research papers from conferences such as ISCA, MICRO, HPCA, ASPLOS, NOCS, DATE, DAC, ICCAD, ICCD, ISSCC
Syllabus and Schedule
The following topics will be covered in class:
|Topology||L02-Topology-I L03-Topology-II||[MICRO2007] FBFLY|
|Deadlocks||L05-Deadlocks-I L06-Deadlocks-II||[HPCA2017] StaticBubble|
|Flow Control||L07-FlowControl-I L08-FlowControl-II L09-FlowControl-III||[HPCA2000] FlitRsvn|
|Router Microarchitecture||L10-RouterMicroarchitecture L11-RouterPipeline L12-SMART||[ISSCC2010] IntelSCC|
|System Interface||L13-SystemInterface||[ISCA2009] MC-placement|
|Paper Critiques||10% [Best of 10]|
|Peer Reviews||4% [2% each]|
- How to setup gem5/garnet at Georgia Tech.
- Lab 1: Running Synthetic Traffic through a NoC
- Lab 2: Topology Comparison
- Lab 3: Deadlock Avoidance
- Lab 4: Cache Coherence Traffic
I am an undergrad. Would this course be useful for me?
If you are interested in applying to graduate school, and/or work in industry in the field of computer systems, expertise in this area will be a unique skill set to have. You will also get to work on open research problems in a relatively nascent field, in a structured setting (simulator, workloads etc that I will provide) without shooting in the dark.
I am a MS/PhD student and am (interested in) working in the area of Computer Architecture/Interconnection Networks/Networks-on-Chip. Can I take this course and use the course project towards my Masters/PhD thesis.
Yes. I am open to aligning the course project with your actual thesis work as long as there is an interesting networks component.
What is the required background? If I am an ECE student, do I need a CS (parallel programming/compilers/OS) background or if I am a CS student, do I need an ECE (circuits, RTL) background?
The required background is an understanding of computer architecture (ECE 4100 / ECE 6100 / CS 4290 / CS 6290) and familiarity with basic C++ programming. We will be using a simulator called gem5 which is written in C++. However, as with any research in computer architecture, you can choose to work on the circuits end of the computing stack, the microarchitecture end, or the software end. Interconnection Networks are no different. A diverse set of backgrounds is good, and in fact encouraged, as we read and discuss papers in the class. For the project, if someone wanted to implement a new NoC in Verilog instead of C++ and synthesize it to study power consumption, or wanted to hack LLVM to inject hints in the code that the NoC could use for power management, I would encourage both directions.
Is there scope for publications?
Yes, ample scope. Most of the projects will be on designing novel networks for emerging architectures. If the results from your course project look promising, we can write a paper on it over summer and I will fund your travel to go present it.
Students are expected to abide by the Georgia Tech Academic Honor Code. Honest and ethical behavior is expected at all times. All incidents of suspected dishonesty will be reported to and handled by the office of student affairs. You will have to do all assignments individually unless explicitly told otherwise. You may discuss with classmates but you may not copy any solution (or any part of a solution).