CS 380 (same as EE-380) - Microcomputer Organization
Credits: 3
Course Description
Hardware and software organization of a typical computer; machine language and assembler language programming, interfacing peripheral devices, and input-output programming; real-time computer applications, laboratory included. (Same as EE 380.)
Prereqs: EE-280
Needed Skills
Students need to be familiar with basic algebra and calculus, basic programming techniques in a general purpose programming language, data structures including lists, elementary algorithms such as searching and basic sorting, and basic concepts of recursion.
Learning Outcomes
The goals of this course are to teach the students the concept of the Instruction Set Architecture of a computer, how to analytically evaluate the performance of a computer, and then how to design the assembly language instruction set for a computer and then teach the fundamentals of a computers datapath, memory organization, controller, and input-output structure such that the students can then actually design these functional units of a computer to implement a given assembly language instruction set
Measures
Upon completion of this course the students should demonstrate the ability to:
1. Understand the historical evolution of computing and the effects of technological changes on computer design.
2. Understand the levels of software and hardware comprising the Instruction Set Architecture (ISA) of a computer.
3. Analytically and experimentally analyze, evaluate, and compare the performance of computers.
4. Design the assembly language instruction set of a high performance computer for a particular application environment of the computer.
5. (I.e., understand how specific high-level language program constructs are implemented in assembly language.)
6. Understand how computers perform integer and floating-point (IEEE 754 format) addition, subtraction, multiplication, and division.
7. Organize, design, and implement at the gate and register level the datapath, controller, and memory of a computer.
8. Make design decisions based on performance data.
9. Write and run assembly language programs on a simulator of a designed computer
CAC Categories
Topic
|
Core
|
Advanced
|
Math
Fundamentals
|
3
|
0
|
Data
Structures
|
0
|
0
|
Algorithms
& Software Design
|
5
|
0
|
Computer
Organization and Architecture
|
30
|
0
|
Concepts
of Programming Languages
|
5
|
0
|
Social
and ethical issues
|
0
|
0
|
Total
|
42
|
0
|
Math Fundamentals (3): Core (3): finite precision arithmetic (1), floating point computations and errors (2)
Algorithms & Software Design (5): Core (5): x
Computer Organization and Architecture (30): Core (30): x
Concepts of Programming Languages (5): Core (5): x
Oral Communication (presentations)
none
Student evaluation and feedback
Students are evaluated on their work (homeworks, programs, exams). Students receive back their homework, programs, and exams. These papers are marked to indicate problems and they point out correct or better solutions. Problems that turn out to be especially difficult are discussed in class during lectures or during recitations.
Possible Textbook
Computer Organization and Design: The Hardware Software Interface
D.A. Patterson and J.L. Hennessy,
Morgan Kaufmann, San Mateo, CA, 1994