Introduction to Computer Architecture

ECE 154A, Fall 2022

A.  Logistics

Instructor:                        Dmitri Strukov

Lectures:                          Tuesday / Thursday 12:30 pm – 1:45 pm, PHELP 1260

Office hours:                   Wednesday 9:00 am – 11:00 am, HFH 5153 (in person), or by appointment (in person or zoom)

Zoom:                              https://ucsb.zoom.us/j/99516654272

Required textbook:          Digital Design and Computer Architecture, David Harris and Sarah Harris, 2nd Ed., 2012

Recommended book:      Computer Organization and Design: The Hardware/Software Interface, Patterson and Hennessy 4th Ed., 2009 (“P&H”)

Teaching Assistants:       Richard Boone

Email:      richardbooneATucsbDOTedu

                Recitations:     Thursday 7:00 pm – 7:50 pm, GIRV 2124

  Office hours:     Tuesday / Thursday 11:00 am – noon, ECI (CSIL backroom)

 

Ethan Sifferman

Email:      ethanjsiffermanATucsbDOTedu

    Recitations:     Friday 11:00 am – 11:50 am, PHELP 1445

  Office hours:     Tuesday / Thursday 3:00 pm – 4:00 pm, ECI (CSIL backroom)

 

Kevin Yuen

Email:      kevinyuenATumailDOTucsbDOTedu

   Recitations:      Friday 10:00 am – 10:50 am, PHELP 1444

Office hours:       Tuesday / Thursday 2:00 pm – 3:00 pm, ECI (CSIL backroom)

 

Q&A will be also supported by the piazza web service. Make sure you set up an account and contact your section TA if you did not get an invitation email.

Access to the course material is protected by password, which will be announced at piazza message board. 

B. Workload and Grading 

 

·       Projects                                   (30%)

·       HWs                                        (30%)

·       Midterms                                 (20%)     

·       Final                                        (20%)    

 

FINAL SCORESHEET [12/14/22]

 

 

Grading policy for labs and hws:

-       labs and hws are due midnight on the specified date

-       submitted within 24 hours after the deadline à 20% off

-       late by more than a day but less than 3 days à 50% off

-       zero points, if late by more than 3 days 

C. Class Topics and Lectures

-       Digital building blocks   [~3 lectures, 1 homework]                                     

-       Architecture and HW/SW interface [~5 lectures, 2 homeworks]         

-       Microarchitecture [~6 lectures, 2 homeworks]

-       Memory systems and I/O [~4 lectures, 1 homework]

 

[Tentative schedule – for the final deadlines see the corresponding sections below]

Slides:

-       Week #0: Logistics & intro [updated 09/29]   

-       Week #1: Adders [updated 09/29] (notes), ALU, sequential logic & multipliers [updated 10/2]

-       Week #2: Memory circuits, floating point numbers, ISA part 1

-       Week #3: ISA part 2 [updated 10/15],  programming

-       Week #4: Miscellaneous ISA and programming topics [slide #8 updated 10/25]

-       Week #5: Single cycle processor [updated 11/8]

-       Week #6: Multi cycle processor [updated 11/8]

-       Week #7: Pipelined processor [updated 11/24]

-       Week #8/9: Memory cache

Pre-recorder lectures (from previous years):

-       Arithmetic circuits part1, part2

-       Number systems

-       Memory and logic arrays

-       Assembly and machine language (part 1, part 2)

-       Programming (part 1, part 2, part 3, part 4, part 5)         

-       Single cycle processor

-       Multicycle processor (part 1, part 2, part 3, part 4)

-       Pipelined processor (part 1, part 2)

-       Memory cache (part 1, part 2, part 3)

-       Virtual memory (part 1, part 2) – note that this material is optional, will be covered in depth in 154B

                                                           

D. Assignments

1.  HW assignments

Homework should be done individually. HWs should be scanned and submitted via gradescope web service. You should get an invitation email to enroll in ECE 154A on the gradescope in the second week. Contact your TA asap if you still have problems logging in or did not get an invitation before the end of the second week, i.e. at least one day before the first homework is due.

-       Homework #1 (assigned on September 30th, due October 7th)

o   solutions

-       Homework #2 (assigned on October 7th, due October 14th)

o   solutions

-       Homework #3 (assigned on October 21th, due October 28th)

o   solutions

-       Homework #4 (assigned on November 4th, due November 11th)

o   solutions

-       Homework #5 (assigned on November 11th, due November 25th)

o   solutions

-       Homework #6 (assigned on November 24th, due December 2nd)

o   solutions  (link is not missing, to be posted on December 3rd)

2. Lab assignments

Lab assignments can be performed in groups of three, so find lab partners asap and, if needed, ask your TA for help with that. Doing it alone or in groups of two is also allowed, though not encouraged. Lab portfolios (code, written report) should be submitted electronically to gradescope by uploading pdf file *AND* providing a hyperlink in the pdf to the code files, if needed. Make sure that the link is clickable. You can also include your code in the pdf report though, in addition to that, make sure that it is accessible via a hyperlink in the original format.

-       Lab #1  (assigned on September 26th, due October 3rd)

-       Lab #2  (assigned on October 7th, due October 17th)

o   Skeleton codes: mult.s and div.s

-       Lab #3  (assigned on October 15th, due October 24th)

o   Skeleton code: sort.s

-       Lab #4  (assigned on October 27th, due November 7th)

o   Starter code for the lab: lab4.zip

-       Lab #5  (assigned on November 11th, due November 21st)

o   Starter code for the lab: lab5.zip

-       Lab #6  (assigned on November 24th, due December 2nd)

o   Starter code for the lab: lab6.zip

Additional materials for labs:

-   Tutorials on Verilog #1 and #2

-   Example of extracting vectors from a file in Verilog test bench (vectors.txt readfile.v)

-   Verilog green sheet (a brief reference for synthesizable Verilog 2001)

-   Instructions on how to run ModelSim remotely (link)

-   MIPS green sheet (a good reference for the MIPS instruction set architecture)

-   MIPS32 simulator (“SPIM”)

o   software and documentation 

o   Mac installation notes

o   exceptions.s (if needed)

3. Reading assignments

All reading assignments are from Harris and Harris book unless noted otherwise

Week #0

-       If necessary, read pre-requisite material from Chapters 1-4

-       Read Sections 5.1-5.2

Week #1

-       Read the remainder of Chapter 5

-       Optional reading from P&H: pages 242-258

Week #2

-        Read Sections 6.1-6.3

Week #3

-        Read Section 6.4

Week #4

-       Read Sections 6.5-6.7

Week #5

-       Read Sections 7.1-7.3

Week #6

-       Read Section 7.4

Week #7

-       Read Section 7.5

Week #8 / #9

-       Read Sections 8.1-8.3

Week #10

-       Optional Reading:  Section 8.4 from H&H and Section 5.4 from P&H

 

E. Midterm and Final Exams

Midterm #1:

-       is an open book and is testing the material of Sections 5.1 – 5.3 of Chapter 5 and Sections 6.1- 6.5 of Chapter 6, i.e., problems similar to those from homework #1 and #2.

-       Previous year exams with solutions: 2018, 2019, 2020, 2021

-       2022 solutions

Midterm #2:

-       is an open book and testing advanced assembly topics, single cycle and multicycle implementations, i.e. material similar to that of homework #3 and #4.

-       Previous year exams with solutions: 2017, 2018, 2019, 2020

-       2022 solutions

Final:

-       is an open book and will include all topics, i.e. cumulative, focusing more on topics that were not tested (pipelined implementation and memory hierarchy)

-       Previous year exams with solutions: 2018, 2019, 2020, 2021

-       2022 solutions

 

Last updated: December 13th, 2022