Review by

Jujhaar Singh, 2024(BTech.)

Course Offered In:

Autumn 2022

Instructors:

Prof. Virendra Singh

Prerequisites:

EE224: Digital Systems(which is required to follow EE309)

EE309: Microprocessors

Difficulty:

3.5/5

Course Content:

The course is a direct continuation of the content taught in EE309 and picked up right from pipelined architectures, and after some discussions on memory and caching; we swiftly moved to superscalar processors(processors containing multiple parallel pipelines – the kind that is used in all our phones and laptops). A large part of the course focused on superscalar processors and how they work. Toward the end of the course, we covered SMT, multi-core architectures, interconnects, and network-on-chip. The course concluded with a few lectures on general-purpose GPU(GP-GPU) architectures. For a detailed view, look at the course content section of ASC. It is pretty accurate.

Feedback on Lectures:

The teaching was very good. Most of the course was taught on the whiteboard, but slides from a previous iteration of the course were provided. The lectures were usually very insightful, and the professor always encouraged asking doubts. Some of the lectures got dense, but sir would generally recap in the following one to help us follow. One can also use the slides if required. Sometimes the lectures were extended out of the allotted hours(beware the pre-lunch slot).

Feedback on Evaluations:

We were supposed to have an in-class quiz every Monday, but finally, only 4 were held. A midsem and endsem were held. Additionally, we had 1 assignment based on memory structures. There was also a project which probably bore high weight. One could choose what to implement in VHDL – an In-Order Superscalar processor or an Out-of-Order Superscalar – but the Out-of-Order had higher weightage/marks. The project could have been handled better. The problem statement was not completely clear, and an official document was not provided. Project evaluation via viva was done in a rushed manner a day before the grading deadline. The project takes work. If, however, you are interested and involve yourself in the design process and the implementation in VHDL and try to apply your learnings, you should end up with something half-decent. And a pleasant experience(not to speak for the viva).

Grading Statistics:

Total Grades Given for are 45
AA 21
AB 17
BB 7
Total 45

Study Material and References:

  1. Modern Processor Design - Fundamentals of Superscalar Processors by Shen and Lipasti
  2. Computer Architecture - A quantitative approach by Hennessy and Patterson

Follow-up Courses:

EE748 - Advanced Topics in Computer Architecture

Final Takeaways:

The learnings from this course are excellent and are essential for anyone who wants to learn or even work in the field of computer architecture. The course content is quite interesting – easy to manage if one attends lectures. Grading is on the lenient side too. All in all, if one is interested in computer architecture and is willing to live with some of the logistical issues described above, then it is a no-brainer.