ECE 251 - Computer Architecture

Spring 2022, Thursdays 2-5pm ET, Room 505 in 41CS NAB

Prof. Rob Marano (rob@cooper.edu)

The Cooper Union

Catalog Description:

Introduction to the design of computers and computer systems. Topics include: integer and floating-point representations and operations: ALU design; von Neumann and Harvard architectures; accumulator, general purpose register and stack-based processor design; RISC and CISC architectures; addressing modes; vector operations; microprogrammed and hard-wired controllers; machine language and assembly language programming; static and dynamics memory operation, timing and interfacing; cache; virtual memory; I/O systems: bus design and data transfer, DMA; interrupts and interrupt handling, polling; disk operation and organization; pipelined processor design. The course has a substantial project component that includes assembly language programming and the design and construction of systems that contain microcontrollers, programmable logic, and a variety of I/O devices.

Credits: 3 credits (45 contact hours)

Prerequisites: ECE 150 (Digital Logic Design).

Textbooks: David A. Patterson and John L. Hennessy, Computer Organization and Design The

Hardware/Software Interface ARM Edition, Revised Printing, Morgan Kaufmann 2017

Grading:

Quizzes 40%; Final project 55%; Class participation 5%

Goals and Outcomes:

Reading Assignments:

Reading assignments should be completed prior to class. Read and think about all the Review Questions at the end of each textbook chapter. It is a good idea to write the answers in your notebook. It will help you to learn the material and in reviewing for exams. Homework must be submitted electronically via Microsoft Teams by 11:59:59pm ET on the day they are due. While I encourage discussion of the assignments among the students, the actual solutions and programs should be done individually.

Homework Assignments:

Homework is submitted via Assignment section in our Microsoft Teams channel. It is due the first class following the assignment unless explicitly otherwise noted.

Extra Help:

Do not hesitate to set up an appointment to discuss a homework problem or any aspect of the course. You also may want to consider Cooper’s tutoring program. You can master this course: listen, participate, do the work, study, take the tests, deliver a working final project.

Course Outline:

Week 01: 01/20 - Logic and Computer Abstraction [Chapter 1]

Week 02: 01/27 - Instructions: Language of Computer [Chapter 2]

Week 03: 02/03 - Instructions: Language of Computer [Chapter 2]

Week 04: 02/10 - Quiz 1; Assembly Language Programming - Part 1

Week 05: 02/17 - Assembly Language Programming - Part 2

Week 06: 02/24 - Arithmetic for Computers [Chapter 3]

Week 07: 03/03 - Arithmetic for Computers [Chapter 3]

Week 08: 03/10 - Quiz 2; The Processor: Datapath & Control [Chapter 4]

Week 09: 03/24 - The Processor: Datapath & Control [Chapter 4]

Week 10: 03/31 - Quiz 3; Memory Hierarchies [Chapter 5]

Week 11: 04/07 - Memory Hierarchies [Chapter 5]

Week 12: 04/14 - Quiz 4; Memory Hierarchies [Chapter 5]

Week 13: 04/21 - Logic Design: Ramping Up To The ALU [Appendix A]

Week 14: 04/28 - Mapping Control to Hardware [Appendix C]

Week 15: 05/05 - Final Project presentations and delivery