Catalog Description :
|
This course follows the Digital Logic Design course
and focuses on the design of the CPU and computer system at the
architectural (or functional) level:
CPU instruction sets and functional units, data types, control unit
design, interrupt handling and DMA, I/O support, memory hierarchy,
virtual memory, and buses and bus timing. In contrast, the Digital
Logic Design course is primarily concerned with implementation:
that is, the combinatorial and sequential circuits which are the
building blocks of the functional units.
|
Prerequisite:
|
CMPS 223 and CMPS 320
|
Units:
|
5
|
Coordinator:
|
Marc Thomas
|
Goals/Objectives:
|
- Understand the design tradeoffs involved
in computer architecture (e.g. performance vs.
flexibility).
- Understand how poor programming can result
in very inefficient use of the hardware.
- (Laboratory) Become proficient in writing,
profiling, and analyzing programs which need to make
intensive use of one or more of the following architectural
features: the CPU, virtual memory, and I/O devices.
|
Current Texts:
|
- William Stallings, Computer Organization
and Architecture (6th edition) ,
ISBN 0-13-035119-9
- (historical) John Hayes, Computer
Architecure and Organization
- (historical) Levy and Eckhouse, Computer
Programming and Architecture: the VAX-11
|
Topics:
|
- Introduction to digital systems: What constitutes
a general purpose computer; design of a minimal hardwired CPU.
Historical development of computing and some case
studies: the first, second, and third generations: design of
a minimal microcoded CPU.
- (AR3) Assembly level machine organization: System buses, timing, arbitration, and bus
protocol; the general fetch-execute cycle with interrupts;
multiple bus systems.
- (AR4) Memory system organization & architecture: Memory design and hierachy; alignment;
L1 and L2 caches; paging and virtual memory; the TLB cache;
memory error detection and correction; relative access times.
- (AR5) Interfacing, communication External storage devices: magnetic and optical.
buffering of I/O, polling, interrupt-driven I/O, interrupt-driven I/O with DMA.
- Operating system support and interface to the
hardware: system calls and device drivers; multiplexing I/O.
- (AR6) Functional organization: integer and floating-point units,
CPU instruction sets and addressing modes, RISC;
CISC, long instruction word RISC processors (e.g. Itanium), benchmarks,use of multiple functional units, pipelining..
|
ACM Sub Areas or Units Covered::
|
ACM Sub Areas or Units covered in this course:
(AR1) Digital logic and digital systems (covered in prerequisite CMPS 320)
|
0.0
|
(AR2) Machine level representation of data (covered in prerequisite CMPS 320)
|
0.0
|
(AR3) Assembly level machine organization
|
X.Y
|
(AR4) Memory system organization and architecture
|
X.Y
|
(AR5) Interfacing and communication
|
X.Y
|
(AR6) Functional organization
|
X.Y
|
AR: Architecture and Organization
|
Laboratory:
|
The laboratory session will parallel the lecture,
illustrating the principles. We will often write programs which
simulate various features of and considerations in computer
architecture. I will provide a library of timing routines
for profiling programs.
|
Oral and Written Communication:
|
|
Social and Ethical Issues:
|
|
Problem Analysis:
|
|
Solution Design:
|
|
Version & Date
|
Version 1, 5/6/2003
|
Comments
|
The first draft based on ACM curricula 2001 in the format of
ABET sample course description.
|