CS 630: Advanced Microcomputer Programming (Fall 2008)

Lecture: Tuesday-Thursday 7:30pm-9:15pm (235 Harney Science Center)

Instructor: Allan Cruse
Email: cruse@usfca.edu
Phone: (415) 422-6562
Office: 212 Harney Science Center
Office Hours: (see my homepage)


This course explores fundamental capabilities of Intel's Core-2 Quad
microprocessor, regarded as a "bare machine" for which some basic
software components of an operating system are to be constructed
in a context of standard PC-BIOS firmware and peripheral devices
(a.k.a. PXE, the so called 'Pre-boot eXecution Environment').

Topics appropriate to this goal include:
- crafting a bootstrap loader
- identifying a processor's model and stepping
- segmented real-mode memory-addressing
- device detection and initialization
- the CMOS memory and real-time clock
- keyboard, monitor, and interval-timers
- the programmable interrupt controllers
- floating-point, mmx, and simd instructions
- building protected-mode segment-descriptors
- entering and leaving 16-bit/32-bit/64-bit protected-modes
- creating exception-handlers and interrupt-descriptors
- building page-tables for virtual-memory support
- processor mechanisms for multitasking and debugging
- emulation of the legacy 8086 execution environment
- initialization and communication among multiple CPUs
- system management mode and performance monitoring counters
- aims of the UEFI (Unified Extensible Firmware Interface) endeavor

Throughout the course small software-component prototypes will be
written using the GNU/Linux program development tools (including
assemblers and C/C++ compilers). The course is open to graduate
students in computer science (and to qualified undergraduates or
non-degree students when the Instructor has granted permission).
Students are assumed to be familiar with Linux or UNIX, and with
programming in C and in x86 assembly language.

Learning Outcomes:

Class meetings will be held in the Michael D. Kudlick computer classroom
(Room 235, Harney Science Center) which affords convenient opportunities
for combining formal instruction with "hands-on" programming exercises.
This facility, a gift of USF alumnus Alfred S. Chuang ('82), opened in Fall 2002.




Systems Software



Last updated on 08/29/2010