Architecture, Systems, Concurrency, and Energy in Computation (Spring 2020)

ECE 3057

Spring 2020

Course Overview

This course introduces the basic organizational principles of the major components of a processor – the core, memory hierarchy, and the I/O subsystem. Students gain an understanding of the sources of performance and energy dissipation in modern processors and learn the multiple forms and levels of parallelism that have been employed to sustain performance improvements in the industry. Basic principles of the operating system, focusing on threads and networks, are also introduced. Assignments using architecture‐level simulators enable the students to explore the operation and tradeoffs in performance and energy and reinforce the concepts learned in the classroom.


ECE 2020, ECE 2035

Course Staff

 Instructor   Professor Tushar Krishna
 Office   KACB 2318
 Office Hours           Wednesday 2 – 3 PM
  By Appointment


 Teaching Assistants    Saloni Oswal    Shaji Ul-Islam  Justin Kalloor  Patrick Coppock
 Office Hours   Monday 12-1:30 PM     (Klaus 2126)  Tuesday 4:30 – 5:30 PM (Klaus 3100)  Friday .4:00 – 6:00 PM (Klaus 3100)  Friday .4:00 – 6:00 PM (Klaus 3100)


Course Information

  Hours    Mon & Wed 3:00 – 4:15 pm
  Room    ES&T L1255


  Hours     Thursday 6-7 PM
  Room     Klaus 2443


Course Material

Syllabus: Syllabus

Study Guide: Study Guide

Lecture Schedule and Readings: Schedule Spring 2020

Lecture Slides: Via Canvas


Patterson and Hennessey, Computer Organization & Design: The Hardware/Software Interface (5th), Morgan Kaufmann, 2014, ISBN 978-0-12-407726-3

Supplementary Material from Publisher.

Selected readings from the textbook will be listed for each module in the course schedule.

Lab Resources

  • SPIM MIPS Emulator
    • Directions for obtaining a copy and a brief overview of SPIM can be found here
    • A great guide to SPIM written by past ECE 3056 student and his helpful You-Tube video
    • A simple starter program that prints various items to the screen
    • Some additional simple programs for various specific operations can be found here.
    • The chapter on SPIM programming to refresh basics
    • The chapter on memory systemsto help quickly refresh how data directives work.

    • A link to the ASCII table

    • You might find the following MIPS Assembly Editor useful.

  • VHDL
    • Tutorial Slides on VHDL can be found here
    • A set of slides providing an overview of the VHDL language can be found here
    • Many VHDL resources can be found at the following site


We will be using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from classmates, the TAs, and myself.

Rather than emailing questions to the teaching staff, I strongly encourage you to post your questions on Piazza.

Piazza is directly accessible via Canvas.


  Lab Assignments    30%
  Quizzes   45%
  Final   25%
  Total    100%



Students are responsible for all material covered in class, including changes in exam schedules announced in class. There will be no make-up exams. In case you have to miss an exam, please inform the instructor of the absence prior to the exam date.

Honor Code:

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).