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.
- 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.