ECE 366---Computer Architecture

Instructor: Prof. Shantanu Dutt

Important Information:
  1. Instructor's office hrs (930 SEO): Mon: 11:15am-12:45pm, Wed: 3:00-4:30pm.

  2. TA: Chandramohan Rangaswamy, email: crangasw@ece.uic.edu
    Office Hrs: M 1-2pm, Tue 11-12pm, SEO 1326

  3. Grader: Ashutosh Vasudeva, email: avasude1@ece.uic.edu
    Office Hrs: M 12:30PM to 2:00PM, F 11:00AM to 12:30 PM, SEO 1326

  4. Before the next lecture, remember to always go through the material covered in the previous lecture and make sure you understand it all. Ask Qs to TAs and me during office hours, and possibly in the next lecture.

  5. Syllabus: ps , pdf

  6. Lecture Notes (new addition/updation on 11/08/01)
    NOTE: The lecture notes cover many but not all topics. The rest of the topics will be covered from the text.

  7. Instructions for Downloading, Retrieving and Printing Postscript or PDF Files

Messages:
  1. Midterm Problems: original--pdf
    retake--ps

  2. HW 4 Solns: txt

  3. Extra Office Hrs: Fri Nov. 30, 4:30-5:30 pm, Mon Dec. 3, 3-4:30 pm, Tue Dec. 4, 3-5:30 pm (you can also check at other times on M/T to see if I'm in but I'm guaranteed to be there only during these office hrs).

  4. Sample final: pdf

  5. Final Exam Time and Place: Wed., Dec. 5, LC E1, 10:00 am to 12 p.m.

  6. HW 3 Solns: pdf

  7. Midterm solns (updated 11/29/01, 8pm): pdf

  8. Project 2 sample soln for the "mul_slow" opcode (FSM design and worst and average-case cc analysis): pdf

  9. Syllabus for Final Exam:
    1) CU design (either FSM or control program design for instruction execution) for the myth8 only (no Edu32 CU designs): includes Lecture Notes # 8 + other aspects covered in class.

    2) Basics of 2's complement arithmetic.

    3) Adder circuits (RCA, partial CLA, full CLA, CSA): Lecture Notes # 10 (pp. 1-7, 11) + full CLA covered in class (also a bit of full CLA is in Lecture Notes # 11 and Chap. 4 of text though analysis of gate delays in the text is incorrect!---analysis done in class is correct.)

    4) Multiplication and division methods: Lecture Notes # 10 (pp. 20-35) + Lecture Notes # 13 (pp. 1-15); can also see Lecture Notes # 12 for added reference.

    5) Pipelining: Lecture Notes # 14 + Lecture Notes # 14b (pp. 8-12, pp. 14-19 [ignore single-cycle processor design discussion], pp. 21-27) + coverage of different strategies for dealing with branch hazards and their analysis for CPI and throughput done in class.

    6) Memory Organization: Lecture Notes # 16.

  10. HW4 (due Fri. Nov. 30) pdf

  11. HW3 (due Mon. Nov. 19) pdf

  12. Due to hiccups in the ECE servers, electronic submission for Project 2 extended to Tue, Nov. 12, 7pm. You hould also resubmit the entire hardcopy during Wed. class if you want to update ypur hardcopy submission. In this case, label you submission as "Full Resubmit" so that we do nor grade youe earlire (MOnday) submission.

  13. Electronic Submission of your .ucode and .mem files (mem files w/ lw+ format inserted in place of blanks): Put all your files in a directory and submit the directory to the ece366 account as follows:

    turnin -c ece366 -p project2 "directoryname"

  14. Final mem files (posted 7:20 pm, Thurs 11/08/01):
    slow_mem_file , and the slow_output_file
    fast_mem_file , and the fast_output_file
    Note 1: There are clearly marked 3-byte place holders for your lw+ format that you have to insert at these positions. There are 4 such lw+ instr. place holders.

    Note 2: Perform your simulations on the above files with Wait State set to "one" in the Options menu of "mythsim" and submit the requested screen shots.

    Note 3: The fast mem file should run faster than the slow mem file; part of the grading will be based on the speed difference, as well as the indiviual speeds at which you run the two mem files.

    Good luck!

  15. Project 2 (due Mon Nov. 12): pdf
    Hard copy submission due on Mon in class; electronic copy due by Mon. 5pm.

  16. IMPORTANT ANNOUNCEMENT: Retake of one Q. (of similar complexity) of the midterm will take place in class on Fri. Oct. 26. Syllabus will be the same as in the midterm.

  17. HW 1 & 2 solutions

  18. Midterm 1 will be on Friday, Oct. 12, in and during class.

  19. Sample midterm: pdf
    (NOTE: Problem 1 is not in this semester's syllabus, so don't worry about it).

  20. Syllabus for Midterm 1:
    1. Register File and Bus Design: connections to read, write buses (using muxes, tri-state buffers), control of register reads and writes, addressing of registers.
    2. ALU Design: 2's complement arithmetic and its properties, putting an ALU together with various FUs, subtractor/incr./decr., use of muxes for selection of ALU operation, adder circuits (RCA, partial CLA, full CLA, CSA), add-&-shift based multiplication techniques.
    3. Control Unit Design: C.U. FSM (states and transitions for various instruction execution: fetch cycle, decode and execution for arithmetic (add, sub, shift, etc.), load, store, unconditional and conditional branching instructions), control programs for the same, design strategies for correct and efficient C.U. design. This will be for both the Edu32 and the Myth8.
    4. Data path augmentation for instruction execution (similar to HW 1 problems).

  21. Only for non-ECE students without an ECE account:
    If you have been unsuccessful in getting an ECE account by 5pm today, please submit you .ucode file by email to the TA (crangasw@ece.uic.edu). Pls note the two (in some cases only one) names of your team in your .ucode file.

  22. Screen capture technique:
    PRINTING out the mythsim graphical interface: (courtesy of student G. Kuchery)
    Unfortunately, MythSim does not have an option of printing your output to the printer. So, the other way to print out your output would be to print whateveryou see on your screen. For that you may use a program caller "XV". Just type "xv" in your Xterm window and a graphical interface will pop-up. If it doesn't then type /usr/local/X11/bin/xv -- it should work. When it opened up "right click" on the XV logo to see the menu window. Click on GRAB button. Check the "HIDE XV WINDOW" and click GRAB again. Use the middle button of the mouse to select the rectangular area that you want to print (It would be the whole MithSim window). Release the middle button. You will hear a beep which means that the computer is now grabbing the selected region. Be patient, in about 20 sec. Another window will pop-up with exact copy of what you selected. Go back to the xv menu and click on save. I recommend choosing .jpg format with 90% quality setting (you will see). Once the file is saved you can open it in NETSCAPE and print it to any printer (lpr -Picl2).

  23. Turnin deadline extended to 7pm Fri to accommodate non-ECE students trying to get an ECE acount for the first time (Goto Rm. SEO 920 for this right away; also see notes below)!

  24. Turnin should now be working (for those with ECE accounts)!

  25. Non-ECE students: For you to "turnin" your project, you need to have an ECE account and turnin from there. Here is what your system support manager Richard Chang has to say about it:

    "I like to mention also all the students who need to use turnin ece366 should have (1) an account with us ECE (CS stduent need to apply for a temp ECE account if they don't have yet.) (2) their login name is in our i366 class list (some late registered stduents, if their name is not in the class list.) in order to have them turnin project successfully."

    Those without an ECE account pls go to the ECE support room in SEO 920 to get a temp. account. They know this is urgent and should help you quickly.

  26. The .mem file for testing your .ucode file (updated 10/12/01, 11:15am; should be correct now!): test_file

  27. The .out file with the correct results stored in memory locations 95 to 135: output_file .
    Your ucode design should generate these outputs. This is for you to check to see if your design runs the above .mem file correctly. Note that we will be testing your ucode again w/ the above .mem file and a blind .mem file.
    NOTE: The .out file can be generated by selecting File->output->save or save as menu item.

  28. Electronic Submission of your .ucode files: Put all your files in a directory and submit the directory to the ece366 account as follows:

    turnin -c ece366 -p project1 "directoryname"

  29. Project 1 (due Fri Oct. 12): pdf . Updated (10/08/01, 3:30pm). The two instructions dec_bpl and lw+ have been replaced by rorm and load_ind, respectively, while the format of the sw+ instruction has been changed slightly to make it executable on the myth8.
    Note also that there is no opcode 000010, so just put a nop place holder for a state labeled opcode[2] as "opcode[2]: goto fetch0;". You need to do this as all opcode[i] states need to appear in sequential order in your microcode from 0 to last opcode value.

  30. Please print and bring the following text files to class on Mon. Oct. 1.
    Mythsim Setup Steps
    Sample ucode
    Sample mem file (program in machine language)

  31. IMPORTANT: Corrections (minor) have been made to the Edu32 processor's control signals, all relating to the MDR as follows:
    (1) The incorrectly labeled "pc_sel" signal to MDR has been correctly relabeled as "mdr_sel". This is used to load the the MDR from either the Write Bus (mdr_sel = WB) or the Memory Data Bus (mdr_sel = DB).
    (2) A tristate buffer with control signal "mdr_db_enb" has been added to the connection from the MDR to the Memory Data Bus. This is used to selectively connect the MDR to the Memory Data Bus (mdr_db_enb = 1).
    The corrected figure is available at the same location as before.

  32. ALSO NOTE: The "ready" status signal coming into the CU of the Edu32 processor is used to signal completion of either a read or write operation by the memory system (ready=1) as requested by the CU.

  33. HW2 (due Wed. Sept. 26) -- updated 12:10 pm 09/19 pdf
    Edu32 with control signals figure needed for HW2 is here

  34. Latest update on the HW1 submission saga: Submit problems 1 and 2 on Friday Sept. 7, and problem 3 and 4 on Mon. Sept. 10.
    Also, there is a typo in problem 4:
    The statement "If the present value of $N$ is less than the previous value, then $Z_1=1$. If the present value of $N$ is less than the previous value, then $Z_2=1$."
    needs to be replaced by:
    "If the present value of $N$ is less than the previous value, then $Z_1=1$. If the present value of $N$ is greater than than the previous value, then $Z_2=1$."
    The second "less than" in the original statement is replaced by a "greater than" in the new statement.

  35. HW1 due date postponed to Fri Sept. 7.

  36. HW1 (due Wed. Sept. 5) pdf

  37. Textbook and Reading Assignment: We have contacted the publisher on Fri 08/24 t find out about when the text will be sent to the bookstore; we will hopefully hear from them on Mon. In the meantime, please realize that the reading assignments have to do with revising your logic design (eecs 265) background and is available in any logic design text (many avail. in the library and you may have retained the 265 text), and does not necessarily have to be from the 366 text.