110 likes | 207 Views
I/O Framework. Chapter 12. Topics. Physical Hardware Components Software Structures for Hardware Components Software IO Layers and Subsystems. I/O System. CPU. Memory. PMI. Local I/O Widget. Console. Local I/O Adapter. Loosely-coupled I/O interconnect. I/O Controller. Remote
E N D
I/O Framework Chapter 12
Topics • Physical Hardware Components • Software Structures for Hardware Components • Software IO Layers and Subsystems
I/O System CPU Memory PMI Local I/O Widget Console Local I/O Adapter Loosely-coupled I/O interconnect I/O Controller Remote I/O Widget Remote I/O Widget I/O Controller I/O Device I/O Device I/O Device I/O Device Tightly-coupled I/O Interconnect 3 Tightly-coupled I/O Interconnect 1 I/O Device Remote I/O Adapter Tightly-coupled I/O Interconnect 2 I/O Components Diagram
I/O Component Description • Although the CPU is always an Alpha, the underlying bus architecture varies greatly. Supported buses include PCI, TC (TURBOchannel), EISA, and ISA. • The kernel, therefore, creates an internally linked list known as the bus structure that represents the varying topologies. This structure carries information common to all buses and hides bus-specific information in a handle structure. • There is one doubly linked list to all of the other buses in the system. • For each bus, there are links to one or more controller structures (that represent each controller on the bus). And, similarly, the controller structures point to zero or more device structures.
bus_hd (0) bus_hd bus_hd nxt_bus(0) nxt_bus nxt_bus (0) ctir_list ctir_list ctir_list bus_list bus_list (0) bus_list (0) struct bus tc0_struct struct bus vba0_struct struct bus vba1_struct bus_hd bus_hd bus_hd bus_hd nxt_ctir (0) nxt_ctir (0) nxt_ctir nxt_ctir (0) dev_list (0) dev_list (0) dev_list (0) dev_list struct controller sk0_struct struct controller cb0_struct struct controller fb0_struct struct controller ipi0_struct next_dev next_dev (0) ctir_hd ctir_hd struct device ip1_struct struct device ip2_struct I/O Data Structures bus_list[] controller_list[] device_list[]
EISA BUS • Extended Industry Standard Architecture. • Superset of the 8- and 16-bit Industry Standard Architecture (ISA) • IBM Compatible PC, XT, and AT personal computers. • The EISA bus has the following characteristics: • 32-bit bus size • 64-kilobyte I/O address, made up of 16 4-KB slots • 4-gigabyte memory address space • The Digital implementation of EISA is little endian, like Intel implementation • ISA devices are supported on an EISA bus or an ISA bus
PCI BUS • Peripheral Component Interconnect • A physical interconnect mechanism for use between highly integrated peripheral controller components and processor/memory systems. • Supports 8-bit, 16 bit, 24-bit, 32-bit, and 64-bit data sizes • Uses little endian byte-ordering, the same as the Alpha architecture • Can access device registers in either I/O space or memory space
SCSI Bus • Small Computer System Interface • ANSI standard • Flexible - allows for device independence through standard bus protocol and host bus adapters • 8 Devices on a 8 bit scsi bus, expandable to 16 devices on a 16 bit bus • High transfer rates • logical addressing
Benefits of I/O Software Support ComponentDescription System Call interface User-accessible interface that allows access to devices via the operating system System routines Routines that interface with the device drivers; they help standardize the transfer of data to and from devices Buffer caching system Improves data transmission and retrieval performance "Type of" protocol layer Adapts raw data into a form suitable for the intended device; may entail anything from special buffering to encapsulating the data within identification headers and trailers Device drivers Software to enable the use of specific hardware devices such as adapters, controllers, disks, tapes and Ethernet Interrupt handlers System and device-specific software that handles communication with the kernel to process asynchronous system and device events.
I/O Software Support Structure user mode process system call interface vfs interface buffered device interface (cooked, disk) character device interface cdevsw Character oriented driver (uio) tty driver (pts, ptc) socket interface advfs nfs streams linesw 8 line disciplines buffer caches bdevsw rpc character oriented raw mode line oriented canonical queue cooked mode line oriented cbreak mode protocols block device driver mbufs network device driver raw queue (clists/cblocks) lsm pio or dma adapter controller ln lo ne fza disk, cdrom tape, disk line printer, drim, mem kmem RS-232, lat, pseudo ttys hardware