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