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
-
Assembly
and machine language (part
1, part
2)
-
Programming
(part
1, part
2, part
3, part
4, part
5)
-
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)
-
Homework
#2 (assigned on October 7th, due October
14th)
-
Homework
#3 (assigned on October 21th, due October 28th)
-
Homework
#4 (assigned on November 4th, due November 11th)
-
Homework
#5 (assigned on November 11th, due November 25th)
-
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
o
exceptions.s
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
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
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
Last
updated: December 13th, 2022