COVID-19 Update
All campus visitors must be fully vaccinated (boosted). Masks are highly recommended. Instructors & staff are required to submit a daily symptom check. COVID updates.

IO Concepts and Protocols: PCI Express, Ethernet, and Fibre Channel | EMBD.X406
After an introduction to the basic concepts of IO, we will look into deeper aspects regarding the most prevalent IO interconnect: PCI Express. We will study the need for PCI Express, its evolution from PCI/PCI-X, and the details of the protocol. We delve into address spaces and cover how devices are discovered and configured. We will then switch our attention to south side interconnects such as Ethernet and Fibre Channel. We will discuss their operation and, in the case of Fibre Channel, how targets are discovered and configured. Finally, we will tie everything together.
The course will comprise 10 lectures, homework assignments, and tests. By the end of the course, students would have a broad idea of how IO works in a modern computer system and be better prepared to learn about writing device drivers or troubleshooting IO problems. The course does not cover chip or board design aspect of the IO.
Learning Outcomes
At the conclusion of the course, you should be able to
- Describe how IO works in a modern computer system
- Understand how a device driver communicates with the hardware it controls
- Explain protocol specifics of PCI Express, Ethernet, and Fibre Channel
Topics Include
- Modern computer architecture in block diagram format
- Flow of an IO request
- IO concepts: MMIO, DMA, interrupts
- Introduction to PCI Express, evolution from PCI, PCI-X
- Address spaces: configuration, memory, IO
- Device discovery
- How MMIO, DMA, and interrupts work in PCI Express
- Introduction to Ethernet: CSMA/CD, frame format, VLANs, aggregation
- Introduction to Fibre Channel: topologies, N-port IDs/WWPNs, logical units, frame format, SCSI request mapping, target discovery and configuration, security, FCoE
- Further topics to explore - lead in for future courses
Skills Needed: An introductory course or practical experience with operating systems internals, an introduction to computer architecture and organization, and systems programming experience.
- Save Your Seat
Help us confirm course scheduling. Enroll at least seven days before your course starts. - Accessing Canvas
Learn more about gaining access to your course on Canvas in our FAQ section. -
Accessibility and Accommodation
For accessibility questions or to request an accommodation, please visit Access for Students with Disabilities or email the Extension registrar. -
Finance Your Education
Here are ways to pay for your education.
Estimated Cost: TBD
Course Availability Notification
Please use this form to be notified when this course is open for enrollment.