Review by Shiva Gantha (ganthashiva@gmail.com)

Course Offered In 2017-18 Autumn Semester

Instructors Prof. Virendra Singh

Prerequisites EE224 – Digital Systems is a prerequisite but only the very basics come into use so it shouldn’t be a concern.

Difficulty The topics and the concepts are not difficult. Paying attention in the class should be enough as the instructor did not proceed until everyone understood the concept. The exams and few quizzes were difficult and required good grip of the concepts taught. Reading the questions properly is a must. The course has a lot of practical content so the projects should be done in parallel with the classes to make sure they get completed in time.

Course Content This course took us deep into the world of Microprocessors, starting with the very first and basic ones and ending with a brief on latest superscalar chipsets. This domain has lot of opportunities to offer, a very big industry specially for electrical engineers. In this course, you will get to know what is at the heart of the computer/smartphone on which you are viewing this article. Apart from all of this, you will design your own processor as your course project!

From the official course contents:

Block diagram view of a general purpose processor; elements of hardware and software architectures; introduction to concepts of data and control paths, registers and memory organization. Instruction set basics and assembly language programming: instruction structure and addressing modes, instruction encoding, and study of 8085A instruction set, hardware architecture and interrupts. Introduction to microcontrollers. 8051 hardware and instruction set architecture, timers/counters, interrupts and serial interface (including multi-processor communication). Interfacing basics using examples of I/O devices: parallel port, serial ports, keypad, display, etc. Introductory discussion on processor performance evaluation and design using a RISC ISA (including concepts of pipelining, pipelining hazards, cache, virtual memory and parallelism).

Feedback on Lectures The professor was extremely interested in students’ learning and went that extra mile to make sure that students understand what’s being taught. The professor used to teach each topic in complete detail and used to write down everything he says on the board for clear explanation. The topics taught were again briefed in the next class so paying attention and writing notes will save you the time while self-study. The notes if taken regularly will cover the subject entirely and there is no need for a reference book. There used to be a 1.5 to 2 hr tutorial session every Wednesday where we could clear our doubts with the professor. These tutorial classes used to be useful for there used to be an in-class quiz every Thursday on the topics covered in the previous week. The professor was easily approachable for doubts anytime if one could not attend the tutorials.

Feedback on Evaluations All the quizzes, exams, assignments were open notes, open books, even laptops were allowed but using internet was not allowed. There wasn’t any time limit in the exams, the exams as well as the quizzes used to go on until the next class started in the classroom. The questions asked used to be a bit tricky at times. So, reading the question carefully will help. The instructor made sure he discussed each question’s solution in extra lectures. There was one hand written assignment on CISC design in between the semester wherein we had to submit flowcharts for the instructions specified. As the semester came near to the end, there were two projects to be done. One being a RISC microprocessor design in VHDL (most of which was completed by majority of the students before the end semester exams) and the second project on Pipeline Microprocessor design with Forwarding and Hazard detection. The second project had to be submitted prior to the grade submission deadline. The time is enough but planning is necessary if you have other course projects to do. The marks weightage on projects and assignment was approximately equal to that on exams and quizzes.

There was considerable weightage on the projects and the assignment. The instructor and TAs were very helpful to clear doubts and would help if you are struck somewhere. The first one was the CISC processor design which had to be handwritten. The assignment required writing the flow charts for the instructions specified. Then there were three projects, two of them compulsory and the third was a bonus project. In the first one, we had to design a multi-cycle RISC processor with the given instruction set in VHDL. The project was integrated with the Microprocessor Lab. The design finally had to be tested on a FPGA board.

The second project was on pipelined version of the RISC design with hazard detection and forwarding unit. Most of the groups started this project after the end sem exams. This project was relatively difficult and required good debugging skills. Good planning was required to complete this project before the deadline since we had other course projects to do along with this. The third bonus project was on superscalar processor design. Hardly one or two groups could start with the third project.

Study Material and References The notes and the slides uploaded cover everything that there would not be any need for a textbook. A book that I found useful for the pipeline design project was Computer Organisation and Design by Patterson. The prescribed books for the course were:

  1. Ramesh Gaonkar – Microprocessor Architecture, Programming and Applications with the 8085
  2. Kenneth J. Ayala – The 8051 Microcontroller
  3. Nick Tredennick – Microprocessor Design

Follow-up Courses NA

Final Takeaways NA

Grading Statistics: They were quite lenient.