EE 361
Digital Systems and Computer Design
Fall 2003 Course Syllabus
Last update: 8/20/03
Instructor: Galen H. Sasaki.
- Email: sasaki@wiliki Tel: 956-6103
- Office: Holmes 436 Office Hours: MWF 1:30-2:20 (after
class)
Prerequisite: EE 213 "Basic Circuit Analysis II" and EE 260 "Introduction
to Digital Design"
Textbook:
- "Computer Organization and Design: The Hardware/Software Interface"
by Patterson and Hennessey..
Time: MWF 12:30-1:20. Room: Watanabe Hall 420
Goals: A student should understand (i) computer organization,
(ii) the principles of designing efficient computers, and (iii) the relationship
between programs (software) and the hardware they run on. A student
should be able to design efficient and complex digital systems, such as a
RISC processor, computer arithmetic circuits, and control circuits.
In addition, a student should master modern design methods for digital circuits,
including appropriate computer-aided design (CAD) tools.
Lecture Topics:
- Principles of instruction set design, the role of compiler and optimizations,
assembly language, machine level programs, how high level programs are implemented
with machine instructions
- Review of digital circuits, elementary design methods, and hardware
description language (HDL)
- Processor data path design
- Processor controller design
- Algorithms and circuits for integer arithmetic, and the arithmetic
logic unit (ALU)
- Data representations: review of representing characters and integers
- Floating point representation and arithmetic
- Memory system design, implementing memory cells with transistors, RAM,
memory hierarchy, caches
- I/O systems
Course Outcomes:
- Design assembly language programs from simple programs written in a
high-level language.
- Design assembly language functions that can be called by programs written
in a high-level language.
- Translate assembly language programs into machine language programs.
- Design an I/O driver.
- Understand the relationship between programs and the computer hardware
they run on.
- Understand how data is represented in computers
- Understand algorithms for arithmetic and be able to design arithmetic
circuits.
- Design a data path for a computer.
- Design a hardwired or micro-programmed controller for a computer.
- Learn to use a hardware description language (HDL) to design complex
circuits at the behavioral level
- Learn to use an HDL functional simulation to verify and debug designs
- Implement a computer using an HDL.
- Understand memory hierarchy and the algorithms.
- Use tools for assembly language (machine level) programming such as
the simulator.
Grading: The final grade will be based on the following:
- Midterm Exam 1 (25%)
- Midterm Exam 2 (25%)
- Final Exam (25%).
- Homeworks (25%)
The midterm exam dates will be announced at least a week before they are
given. Any missed exams, labs, or other assignments will result in a score
of zero. With the exception of the homeworks, the grades will be based
on the standard curve, i.e., A = 90%, B = 80%, C = 70%, and D = 60%. Each
homework problem will be assigned a number of points. Grading of a problem
will be based on getting 0%, 50%, or 100% of the points, where
- 100% means the problem was solved
- 50% means there was a reasonable attempt at the problem
- 0% means there was no attempt at solving the problem
Drop Dates:
- See UH's Schedule of Classes Fall 2003 for drop dates
Important:
- You are to take all exams on the scheduled days and times. There
will be no exceptions unless you have a doctor's note explaining why you could
not make it.
- You are expected to come to every lecture and at the beginning
of the lecture. If you have a valid reason to miss a lecture, then contact
Galen Sasaki (email or telephone) before lecture so that he can save handouts
for you.
- Homeworks will be collected in class and at the beginning of class,
unless notified otherwise. No late homeworks will be accepted.