EE 357: Basic Organization of Computer Systems
This is supplemental course information, designed to give you a fuller picture of the course and an expanded look at the topics covered. This is an unofficial document. The USC Course Catalog is the binding description of all university courses. Information such as books, materials covered, and the order of topics is subject to change. Please consult instructor for this semseter to get more upto date course information.
Catalog Data:
357 Basic Organization of Computer Systems (3,FaSp) Organization and operation of the processor, memory and I/O of a computer system at the machine language level; assembly language programming; data representation and computer arithmetic. Prerequisite: EE101, EE102 and a high level programming language.
Textbook:
Computer Organization, Hamacher, Vranesic and Zaky. McGraw Hill 2002
Class notes including reprint of: 68000 Microcomputer Organization and Programming, Per Stenstrom, Prentice Hall.
Coordinator:
Timothy Pinkston, Associate Professor of Electrical Engineering
Topics:
1. Motorola 68000 assembly language programming, including machine code format, addressing modes, stacks, subroutines, traps and interrupts.
2. Two-pass assembler process and directives.
3. The CPU: single-bus, 2-bus, and 3-bus organization, and control sequence of steps.
4. Hardwired control, microprogram control and microinstructions.
5. The arithmetic unit: multiplication of unsigned and signed numbers, Booth algorithm, IEEE floating point numbers.
6. Memory design: cache memory, mapping functions (direct, associative, and set-associative), memory interleaving.
7. CISC verses RISC processors.
8. Application of assembly language using cross assembler and m68000 simulator.
9. Schematic entry, functional and timing analysis of a limited version of a CPU using PowerView.
Course Objectives:
To introduce the students to the basic concepts, organization and internal operation of a CISC-type processor with applications using Motorola 68000 assembly language programming and PowerView simulation.
Course Outcomes:
The student will be able to:
1. Write assembly language programs which include stacks, subroutines, traps and interrupts using a cross-assembler and simulator.
2. Understand the various addressing modes used in instruction sets.
3. Understand the 2-pass assembler process.
4. Translate an assembly language instruction into machine code.
5. Understand the internal datapath structure of single-bus and multiple bus CPUs, and write the control sequence of steps for controlling these datapath structures.
6. Write the microcode and design the hardwired controller that implements a machine instruction.
7. Understand the methods for multiplying unsigned and signed numbers and perform arithmetic operations of IEEE floating point numbers.
8. Understand the purpose and basic design of a cache memory.
9. Design a limited version of a CPU using microprogrammed control and simulate its operation using PowerView (as in the final project).
Laboratory Projects:
Four m68000 assembly language programming assignments
and three ViewLogic CPU design projects.
Prepared by: Toy Mayeda and Timothy Pinkston Date: 3/22/02