Foundations of Computer Architecture
605.411
Course Description
This course provides a detailed examination of the internal structure and
operation of modern computer systems. Each of the major system components is
investigated including the following topics: the design and operation of the ALU,
FPU, and CPU; microprogrammed vs. hardwired control, pipelining, and RISC vs.
CISC machines; the memory system including caches and virtual memory; parallel
and vector processing, multiprocessor systems and interconnection networks;
superscalar and superpipelined designs; and bus structures and the details of
low level I/O operation using interrupt mechanisms, device controllers, and DMA.
The impact of each of these topics on system performance is also discussed. The
instruction set architectures and hardware system architectures of different
machines are examined and compared. The classical Von Neumann architecture is
also compared and contrasted with alternative approaches such as data flow
machines and neural networks.
Syllabus
- Introduction to Computer Architecture
- ALU Operation & Computer Arithmetic
- The Digital Logic Level
- CPU and Control Unit
- Control Unit Implementation
- Pipelined Processors
- Mid Term Examination
- Pipeline Control & Hazards
- Superscalar and VLIW Machines
- The Memory System
- I/O and Bus Systems
- Multiprocessor Systems
- Review
- Final Examination
Prerequisites
A course in programming with a high-level language such as Java, C/C++,
or Pascal, as well as an introductory course in basic computer
organization and assembly language programming (including computer
arithmetic and the internal representation of data). May be taken
concurrently with 605.401 Foundations of Software Engineering.
Instructor
Horace Malcom is a Principal Staff Physicist in the Space Department
of the Johns Hopkins University Applied Physics Laboratory. He
specializes in the design and development of on-board real time
embedded software systems for satellites. Mr. Malcom holds a M.S.
degree in physics from Emory University and a M.S. degree in computer
science from the Pennsylvania State University. He has taught courses
on computer architecture, assembly language and systems software in
the Part-Time Programs in Engineering and Applied Science since 1981.
He also serves as a faculty advisor and as a member of the computer
science program committee.
Computer Lab Requirements
Students are urged to access the SPIM
simulator (spimwin.exe for Microsoft
Windows environments) from
ftp://ftp.cs.wisc.edu/pub/spim/.
Documentation for this simulator is
also available from this ftp location.
Students must have an email address and must
make that address known to the course instructor
as soon as practical after the start of the
course. Students may use their own computing
resources (hardware/software tools) or may
arrange to access the necessary tools
through the student services entities of
JHU. Students must have access to the
Internet, have a web browser and the Acrobat
Reader application.
Textbook
TBD
Additional
Course Information
Return to
Computer Science Courses | Computer
Science | Part-Time Engineering
Fall 2000-01