Computer Organization

Course: ESE 680-002 (eventually ESE534)

Units: 1.0 CU
Terms: Spring 2007
When: MW 12--1:30pm
Where: Towne 307
Instructor: DeHon (office hours T4:00-5:30pm)
TA: Nachiket Kapre (office hours F12:30-2:00pm, GRW57)
Prerequisite: basic computability and basic digital circuits; VLSI exposure helpful, but not required; CSE371 or ESE200/201 adequate
URL: <http://www.seas.upenn.edu/~ese680s2/>

Quick Links: [Motivation] [Grading] [Syllabus] [Collaboration Policy] [Reading] [Previous Offerings]

Catalog Level Description: Organization and design of physical computational systems, basic building blocks for computations, understanding and exploiting structure in computational problems, design space, costs, and tradeoffs in computer organization, common machine abstractions, and implementation/optimization techniques. The course will develop the fundamental issues and tradeoffs which define computer organizational and architectural styles including RISC, VLIW, Super Scalar, EPIC, SIMD, Vector, MIMD, reconfigurable, FPGA, PIM, and SoC. Basic topics in the design of computational units, instruction organization, memory systems, control and data flow, and interconnect will also be covered.


Motivation and Content

Underneath our layers of software abstractions, ultimately, the physical world must implement the computations we wish to perform. How do we organize our physical building blocks to perform a computation, particularly a programmable or universal computation? How much (and what) resources does a particular computation require? How do we optimize our physical resources to support a computation efficiently? What do we do when given billions of transistors?

In our lifetimes, we've seen unprecedented expansion of computational capabilities fueled both by advanced processing and architectural innovations to exploit that processing capability. As a result of these capabilities automatic computation is having a huge impact on the way we live, work, communicate, and especially how we do science and engineering. If anything, our biggest limitation today is not the raw capacity and capabilities available to us, but fully exploiting that capacity. The design space for computing devices is large and fascinating with efficiencies that vary by orders of magnitude. Further, the limitations of our underlying building blocks are changing, so the "right answers" of the past will almost certainly become stale and outdated. A good engineer must know the fundamental tradeoffs to re-evaluate solutions as the underlying technology changes.

Who: This course is a must for anyone who is interested in the design of computers, System-on-a-chip ICs, or modern embedded systems (including multimedia, communications, signal processing, and control). It is also of great value to anyone who will be designing ``systems'' which use these components (e.g. telecom, robotics and autonomous vehicles, instrumentation, control, electronic appliances). A deep understanding of computer organization is also of great value to anyone who hopes to develop high-performance software, understanding the capabilities of any machine and how to get the most out of it.

Running Themes:


Grading

Grading is based on weekly assignments and a longer end-of-term assignment.

Writeups must be done in electronic form. Use CAD or drawing tools where appropriate. Electronic submission will be preferred (and may be required for some assignments). Handwritten assignments and hand-drawn figures are not acceptable.


Collaboration Policy

Each student is expected to do his/her own work -- including developing the details and writing the solutions. For the homeworks, you are free to discuss basic strategies and approaches with your fellow classmates or others, but detail designs, implementations, analysis, and writeups should always be the work of the individual. If you get advice or insights from others that significantly influenced your work, please acknowledge this in your writeups. A specific policy for the final project will be included with the project assignment.


Syllabus


Reading, Text, and Lectures

Roughly one paper per lecture is expected reading. Most of the papers are electronically available through links from the syllabus page. You will be reponsible for acquiring those copies for yourself. Citations for additional reading material will be posted on the web along with the detailed syllabus (most of those also come with links to the papers themsleves). There is no required text as I will be pulling together material form many places. Since this course is not based upon any particular text, following lecture will be essential to keep up with the course material.

Hennessy and Patterson's Computer Architecture A Quantitative Approach is a classic text which some may find useful as a reference. This course will take a much broader look at computer architecture than H+P. Consequently, what we cover will have little overlap with H+P (and hence CIS501). Patterson and Hennessy's Computer Organization and Design provides a more elementary treatment and might be particularly useful for a review of logic design, computer arithmetic, and elementary RISC processor design for those who feel they need a deeper reference in these areas.


Previous Offering


André DeHon