Architecture, Concurrency, and Energy in Computation (Spring 2018)

ECE 3056

Spring 2018


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. 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 class room.

Prerequisites

ECE 2020, ECE 2035


Course Staff

 Instructor   Professor Tushar Krishna
 Email   tushar@ece.gatech.edu
 Office   KACB 2318
 Office Hours           Mon & Wed: 5:45 – 6:15 pm [Klaus 1456 after class]
  By Appointment
 Teaching Assistants     Eric Qin (Lead TA)    Soham Gadgil  Sehej Ahluwalia
 Email    ecqin@gatech.edu   sgadgil6@gatech.edu   sehej.ahluwalia@gatech.edu
 Office Hours  & Location    Friday: 2-4PM    Monday: 1:30-3PM   Wednesday: 1:30-3PM
    Klaus 1202
(except on 1/19, 2/2, 3/2, 4/20 in Klaus 3305)
  Klaus 1212    Klaus 1212
(except on 1/31 in Klaus 3305)

Course Information

  Lectures
   Hours     Mon & Wed 4:30 – 5:45 pm
  Room     Klaus 1456

 

  Recitations
  Hours     Thursday 6-7 PM
  Room      VL C457

 


Course Material

Syllabus: Syllabus

Study Guide: Study Guide

Lecture Schedule and Readings: Schedule Spring 2018

Textbook:

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

Supplementary Material from Publisher.

Instead of the hard copy, you also have the option of purchasing an e-version of the same textbook which comes with additional exercises:

  • Sign in or create an account at learn.zybooks.com
  • Enter zyBook code: GATECHECE3056KrishnaSpring2018
  • Subscribe

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


Piazza

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 encourage you to post your questions on Piazza.

Piazza is directly accessible via T-Square. Or, you can find our class page at: http://piazza.com/gatech/spring2018/ece3056a/home


Grading

 

  Lab Assignments   20%
  Midterm 1   25%
  Midterm 2   25%
  Final    29%
  Class Participation      1%

 


Calendar


Attendance:

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