Catalog Description:
Topics include number systems and their rules for arithmetic; basic central processing unit (CPU) organization concepts such as registers, data paths, the arithmetic and logic unit (ALU) and the interface to random access memory (RAM): instruction formats, addressing modes and their use with a variety of data structures; and parameter passing techniques including the use of a stack frame. The use of good programming methodologies to develop and document algorithms at the assembly language level is emphasized. Formerly CSCI 051A. CAN CSCI10.
Course Objectives:
Introduce number systems and their rules for arithmetic and overflow detection
Introduce the architectural organization of a contemporary Reduced Instruction Set (RISC) CPU chip
Provide students with an understanding of the low-level operation and capabilities of the CPU
Explain the sequence of events and data paths used in execution of an assembly language program
Give students the ability to write, test, and document assembly language programs
Provide students with an understanding of how to write reentrant functions
Provide students with an understanding of the concept of memory mapped I/O and interrupts
Provide students with an understanding of how ti implement a pepelined CPU and the special programming considerations dealing with delayed loads and branches
Introduce the IEEE floating-point standard and the floating-point instructions of the CPU
Course Outcomes:
Students shall be able to:
Describe the basic functional components, and the fetch-execute cycle of a CPU
Work with numbers in any base, and convert numbers from one base to another
Show the binary representation of data and instructions in the memory of a computer
Detect when overflow occurs when performing binary arithmetic
Break a complex task into the simple operations that can be performed in assembly language
Document an assembly language program so that it may be understood by others
Test an assembly language program for correct operation, diagnose and correct errors
Show how peripheral devices are controlled by an assembly language program via polling or interrupts
Develop assembly language code that will run on a pipelined implementation of a CPU
Make floating-point number conversions between decimal and IEEE 754 binary representation
Class/Laboratory schedule:
One hundred minutes a week classroom activity
One hundred minutes a week laboratory activity
Topic
Percentage
Hours
Algorithms
30%
13.5
Data Structures
10%
4.5
Software Design
20%
9
Concepts of Programming
10%
4.5
Computer Organization and Architecture
30%
13.5
Relationship of Course to Program Objectives:
This course supports the achievement of the following program objectives:
All students will be able to analyze and solve computing problems, or problems in related areas, and to continually upgrade their knowledge and skills.
College of Engineering, Computer
Science, & Construction Management
California State University, Chico
Chico, CA 95929-0003
530-898-5963 webmaster@ecst.csuchico.edu