
| Course Objectives |
This course gives an introduction to computer organization of modern digital
computers, from the basic stored program model attributed to John von Neumann in the 1940s.
The influence of these principles can be found in almost every computer which is in use these
days, and they will lead the student to an understanding of the various components of a computer
and their inter-relationships.
We will use a specific machine to study computer architecture at the assembly language and C interface level. We are currently using the HP/Apollo 9000/400 series workstations and their Motorola 68000 series microprocessor to familiarize students with machine-oriented programming. Efficient and portable high-level language software engineering is achieved by understanding comparative architecture-dependent implementations of various constructs and mechanisms, such as stack frame implementation within the runtime environment (text/data/BSS/ heap/stack) and internal storage representations (including byte ordering and number of bytes of an object on different architectures). Programming assignments using C and assembly languages with some emphasis on UNIX systems programming will be used to reinforce these concepts.
|
| Course Description |
Introduction to computer organization of modern digital computers - understanding
the various components of a computer and their inter-relationships. Study of a specific
architecture/machine with emphasis on systems programming in C and Assembly languages in a
UNIX environment. 4 units
|
| Format |
3 hours of lecture per week, 2 one-hour sections per week, 8 hours of computer lab per
week, and 2 hours of outside preparation per week.
|
| Prerequisites |
CSE 12 and CSE 20
or consent of the instructor.
|
| Example Textbooks |
Microcomputer Architecture and Programming -- The 68000 Family,
John F. Wakerly, Wiley, 1989. CSE 30 Lecture Notes and CSE 30 Lab
Notes and Guides.
|
| Laboratory work |
4 to 5 programming assignments using C and assembly languages to familiarize the
student with a particular architecture at the C/assembly and assembly/hardware levels with
emphasis on the runtime environment, to include the structure and use of stack frames and how
they support conventions of C/assembler routines calling each other, recursion, dynamic memory
management, etc.
With the understanding of a specific architecture implementation and general comparisons of other architectures, students should gain the knowledge and skills necessary to produce more efficient and portable high-level language code throughout their careers. These programming assignments will also emphasize concepts in UNIX systems programming. This course assumes a good working knowledge of C programming.
|
| Offered |
Every quarter: Fall, Winter and Spring.
|
| SYLLABUS |
|