When Unix was being developed in 1969 based on a filesystem, the concept of device drivers was already well defined, when it was also viewed as an extension of the same filesystem. Also the model of a portable operating system was already decided early on when it was broken into two main components; the device independent component (the logical layer of the device) which required it to be written in a high-level language such as C and the hardware-dependent (the physical layer of the device) component in which the device driver model maps the low-level data structures of the physical device to high level data structures of the logical device. Therefore the Unix filesystem has no explicit device associated with the way the information is laid down as it deals with data as a block entity and has no knowledge of how a block is composed, in an effort to make the OS kernel as portable as possible.
This model which was also adopted by Posix (portable-operating-system-interface-for-unix) continued to this day, especially in the world-wide use of the GNU/Linux system in all professional applications.
Though current (2012) OS models such as Unix, Linux, and GUI (Graphical-User-Interface) such as Windows, and Android use a number of hardware-abstraction-layer (HAL) in the virtual-file-system (VFS), block device, the driver codes specific to a hardware can exist in the kernel as the Kernel-Mode-Driver-Framework (KMDF), or by loadable module which is called upon only when needed. Also another method, the User-Mode-Driver-Framework (UMDF) moves driver codes outside the kernel.
Nevertheless, the OS at some point will need to execute the physical driver codes which exist in the visible memory space that requires device-specific control. In effect, this makes the kernel hardware-dependent rendering it not only unportable, but unusable to an upgrade of the same platform. Though the HAL insulates an OS from vendor-specific hardware, the HAL still resides in the OS memory space. This has two major impediments: first, the system processor cannot run another process when it is executing the physical driver codes or parallel processing (not multitasking), and second, a device manufacturer must supply the physical device driver. That is why the need for specific kernel upgrades even for the most basic change of computer devices such as video and sound.
There is then a need for the HAL to move to the device end itself and implementing FIFOs which is the subject of this patent. When this happens, a correspondingly beneficial effect emerges which creates a new model requiring the device to be treated as a homogenous device. It does not only stop at this, but other spin-offs are created as well; with the addition of FIFOs for every device ports, traditional computer components can be removed as well; the DMA engine, multi-arbiters, multi-bus, and an I/O bus such as the PCI.
A very similar invention was initiated by the I2O (intelligent-I/O) Special Interest Group (I2OSIG) which published the I2O specification in 1996. The steering committee members included HP, Intel, Microsoft, Novell, Adaptec, 3Com and more than sixty other members which included corporations such as Acer, ARM, Dell, Fujitsu, Samsung, Seagate, Siemens and Western Digital among many others. The only similarity is that the HAL is also moved outside the OS address space and into the device end itself. But the FIFO oriented view was not included which made the two inventions diverged radically, making the I2O a far more complex implementation with its message passing interface and protocol.