EE345. Computer Organization
Number representation, digital storage devices, and computational units, bus structures; execution sequences and assembly language concepts; control units with horizontal and vertical microcoding; addressing principles and sequencing; microprocessors; basic input and output devices; interrupts; survey of RISC principles including pipelined execution. Lecture and lab.
This course together with EE342 are the core of the Computer Engineering minor. EE342 focuses on microcontrollers and the lowest level of software, but the CPU is a given. It's important in that course to know what a CPUis and what it does, but one can ignore for the most part how it actually works internally. EE345 is the link between EE241 Digital design, where the focus is on gates, and functional units up to datapaths, and software at the machine language level that students meet in EE247 and EE342. How does the CPU do its magic? That's what this course is all about. We learn by project: teams of students design a custom CPU using an FPGA, so this course also provides an opportunity to get acquainted with programmable logic on a grander scale than the GAL's used in EE241.Ultimately the satisfaction is to see your own computer executing a simple program. These exercises are supplemented with additional topics that are beyond practical reach for this course in the lab, such as superscalar execution, array processing (SIMD), cache memories, and distributed processing.
The most recent offering of this course was Fall 2017. Mr. Mike Morrow, a retired computer engineer, was the instructor. He used D2L to distribute course materials, so this site reflects, instead, the previous 2015 offering of the course. There were definite differences in approach. Mr. Morrow was able to include a lot of more up-to-date technology using System Verilog than was possible in my most recent offering.
The materials below are Mike Morrow's, for the current offering of EE345. This web site was used as a temporary expedient until Wilkes adequately provided web support with D2L. These documents will perhaps convey a sense of the direction of the most recent 2017 offering, at least in the early part of the semester.
This course is normally offered in the fall semester of odd numbered years, alternating with EE342. It's nice to have good programming background, but every other class is going to be in the situation of needing to take this course before taking EE247 and EE342. That's just the way it goes. It will make those other courses easier later.