ECE 4100

From Georgia Tech Student Wiki

ECE 4100 "Advanced Computer Architecture" covers a variety of topics in computer architecture.

Topic List[edit | edit source]

Topic list from Dr. Conte's Spring 2022 Syllabus:

  • Measuring Performance and Cost
  • Caches
  • Pipelines
    • Branch prediction
    • Out-of-Order Execution
      • Tomasulo's algorithm
  • Superscalar and VLIW
  • Multiprocessors
    • Cache Coherence
    • Memory Consistency
  • Synchronization
  • Interconnection Networks

Class Structure[edit | edit source]

This class covers many topics in a high level of detail, so paying attention in lecture is important for understanding the material.

Projects involve coding a simulator for a processor component using a design learned in class or from a paper. These are timing (not functional) simulations, so while the actual data can be ignored, the paths the data takes must be simulated. TAs usually provide the driver code and some sort of template.

These projects can be rather time consuming, often requiring hundreds of lines and lots of debugging. Because simulations are always slower than actual processors, they must be relatively efficient. With some professors, additional "experiments" sections are included, asking students to test their cache simulators on traces with millions of lines on ten thousand different cache configurations to find the most performant one. As a result, projects must be written in a low-level programming language such as C++ and students should be thoughtful about which data structures they use.

Prerequisite Knowledge[edit | edit source]

CS Curriculum[edit | edit source]

CS 2200 is a formal prerequisite. It introduces many topics such as pipelining, virtual memory, and networking which are covered in more detail in this course.

CS 3220 isn't a prerequisite, but it covers some of the same topics such as pipelining and branch prediction. These are taught using projects which are full functional simulations of an entire (simple) processor in hardware description languages such as Verilog. As a result, they don't go into quite as much complexity as in this course.

ECE Curriculum[edit | edit source]

According to OSCAR/gt-scheduler.org, one of ECE 3056, ECE 3057, or ECE 3058 fulfills the formal prerequisite.

Registration[edit | edit source]

Regular lecture class. The class is cross-listed and students register for the course for their respective major.

Equivalent Courses[edit | edit source]

  • Cross-listed as CS 4290 and graduate-level equivalents ECE 6100 and CS 6290.

Resources[edit | edit source]

OMSCS Course Page and Syllabi

OMSCS CS 6290 Course Videos

Previous Semesters[edit | edit source]

This course can be taught differently based on the professor. Some professors cover slightly different topics in different orders. Additionally, sometimes professors will teach an "extra" topic, which can vary by semester.