0203-686-01 Special Topic: Intel EM64T and VT Extensions Spring 2007 Course Synopsis: This course explores some recently implemented extensions to the world's most popular microprocessor architecture, dubbed EM64T ("Extended Memory 64-bit Technology", also known as "Intel64") for Intel's enlarged (e.g., up to 1TB) virtual memory address-space with 64-bit integer arithmetical capabilities, eight extra 'general-purpose' registers, and VT-x ("Virtualization Technology") for the ubiquitous Intel x86 family of server, workstation, and laptop CPUs. 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 in cases where the Instructor has granted permission). Planned topics include: • Programming the PC’s serial UART (for remote-access to new machines) • Review of IA-32 architectural features utilized in application programming • Support for multitasking operating systems: privilege-levels and protection • Constructing the processor’s 2-level, 3-level, and 4-level page-map tables • New concepts of “canonical” memory-addresses and “compatibility” mode • Enabling and then activating Intel’s Extended Memory 64-bit Technology • Model-Specific Registers (MSRs) and the new fast system-call mechanism • Responding to peripheral-device interrupts, and to processor exceptions • Multiple processors and the Advanced Programmable Interrupt Controller • Initializing and querying the CPU’s Virtual Machine Control Structures • Using Linux kernel modules to provide the interface to a “Virtual Machine” Students are assumed to be familiar with Linux or UNIX, and with programming in C/C++, and to be acquainted with the Intel x86 processor-family's registers, instruction-set, and assembly language. Learning Outcomes: ▪ You will deepen your knowledge of standard 32-bit Intel Architectures. ▪ You will become acquainted with Intel's Dual-Core 64-bit capabilities. ▪ You will understand how CPU hardware features support "virtual" memory. ▪ You will get some practice in implementing a Virtual Machine Manager. ▪ You will increase your proficiency with using C and assembler language. ▪ You will acquire a background for understanding newest-generation CPUs. ▪ You will lay a foundation for pursuing some additional career options.Instructor: Dr. Allan B. Cruse, Professor of Computer Science and Mathematics Harney Science Center - Room H-212 Telephone: (415) 422-6562 Office Hours: Mon-Wed 1:30pm-2:20pm, Tues-Thurs 6:15pm-7:15pm Email: [email protected] Website: http://cs.usfca.edu/~cruse/cs686 Textbook and Reference: Intel Architecture Software Developer’s Manual (Intel Corporation) Volume I: Basic Architecture Volume II: Instruction-Set Reference Volume III: System Programmer’s Reference Classroom Facilitiy: The course meets on Tuesdays and Thursdays, 7:30-9:15pm, in the Michael D. Kudlick Interactive Computer Classroom (HRN-235). Students will need to have individual computer accounts set up for access during these classes. Exam Dates: Midterm Exam I will be on Thursday, February 22. Midterm Exam II will be on Tuesday, April 3. Final Exam will be on Tuesday, May 15, 7:30pm. Grading scheme: Class Participation 20% Programming Projects 30 % Midterm and Final Exams 50% NOTE: Unprofessional conduct, such as an abuse of USF computer privileges (unauthorized access), or a violation of academic integrity (plagiarism or fraud), will result in the student receiving a failing
View Full Document