EE 380 – MICROCOMPUTER ORGANIZATION

 

CATALOG DATA:

EE 380 Computer Organization and Design: 3 Credits

Hardware and software organization and design of a typical computer; computer performance; instruction set design, machine language and assembler language programming, computer arithmetic; datapath and controller design; pipelining, memory structures, interfacing peripheral devices, and input-output structures; real-time computer applications, laboratory included.  Prereq:  EE 280 or CS 245.  (Same as CS 380.)

 

TEXTBOOK:

D.A. Patterson and J.L. Hennessy, Computer Organization and Design: The Hardware Software Interface, Morgan Kaufmann, San Mateo, CA, 1994.

 

COORDINATOR:

Dr. Hank Dietz, Professor in Electrical Engineering

 

GOALS:

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.

 

PREREQUISITE:

CS 222, EE 280 or CS 245

 

TOPICS:

  1. The History of Computers and Digital Logic
  2. Computer Abstractions and Technology
  3. How Integrated Circuits Have Influenced Computer Organization, Design, and Performance.
  4. The Role and Importance of Computer Performance
  5. Different Types of Computer Instructions: The Language of a Computer
  6. How Computers Perform Arithmetic
  7. Design of a Central Processing Unit (CPU) Consisting of a Datapath and a Control Unit
  8. The Principle of Pipelining and How it Enhances Performance
  9. The Levels and Function of a Computer Memory Hierarchy
  10. The Interfacing of Processors and Peripherals

 

OUTCOMES:

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.
(I.e., understand how specific high-level language program constructs are implemented in assembly language.)

5.        Understand how computers perform integer and floating-point (IEEE 754 format) addition, subtraction, multiplication, and division.

6.        Organize, design, and implement at the gate and register level the datapath, controller, and memory of a computer.

7.        Make design decisions based on performance data.

8.        Write and run assembly language programs on a simulator of a designed computer

 

 

 

COMPUTER USAGE:

Students write, assemble, and run assembly language programs on a simulator of a computer that is designed in class. This is done in a UNIX X-WINDOWS environment running on high performance engineering workstation. Students gain experience in utilization of networked engineering computer workstation, high performance network servers, UNIX type editors and file management, File Transfer Protocols (FTP), electronic mail, use of the Internet, etc.

 

LABORATORY:

Students perform at least five laboratory experiments, in the above computer usage environment, where in each they write, assemble, run, and evaluate assembly language programs designed to illustrate to the student various fundamentals of computer organization and design.

 

DESIGN CONTENT:

Using an assembly language instruction set as the starting point, students design at the gate and register levels a complete datapath (ALU, registers, bussing, etc.), controller (both hardwired and microprogrammable), memory structure including a single level cache, and input-output structure of a computer that can execute the given assembly language instruction set. Many homework problems are design based.

 

CLASS SCHEDULE:

Lecture 3 hours per week.

 

 

PROFESSIONAL CONTRIBUTION:

Engineering Science: 1.5 Credits (50%)

Engineering Design: 1.5 Credits (50%)

 

RELATION OF COURSE TO PROGRAM OUTCOMES:

These course outcomes fulfill the following program outcomes:

(a) an ability to apply knowledge of mathematics, science, and engineering

(b) an ability to design and conduct experiments, as well as to analyze and interpret data

(c) an ability to design a system, component, or process to meet desired needs

(e) an ability to identify, formulate, and solve engineering problems

(i) a recognition of the need for, and an ability to engage in life-long learning

(j) a knowledge of contemporary issues

(k) an ability to use the techniques, skills, and modern engineering tools necessary for engineering practice

(m) depth of knowledge in at least one area

(p) knowledge of basic sciences, computer science, and engineering sciences necessary to analyze and design complex electrical and electronic devices, software, and systems containing hardware and software components

 

PREPARED BY: H.G. Dietz DATE: May 26, 2004