Bringing the high end to the low end

Robert Geist, James M. Westall · 1998

Specialized, high-performance computing devices for tasks such as graphics, communi~tions, and storage, once available only on high-end systems, are now available as add-ens for the desktop PC.In order to deliver the high performance of such devices to the end user, an interface to the operating system, i.e., a device driver, is required.In principle, Writing a device driver is a relatively straightforward task.Nevertheless, a central force in bhming the distinction between supercomputer and PC is the implementation of sophisticated PC operating systems.Such operating systems deliver both a wide range of features and high performance, but necessarily sacrifice simplicity of design to do so.Writing a new device driver for such systems can be a delicate task, given the conflicting goals of minimizing changes to the operating system and maximizing device performance delivered to the riser level.This paper describes the design and implementation of two such device drivers, one for graphics and one for communications, both implemented on desktop PCs nnder Limtx 2.0.27.It includes a discussion of modnles as a vehicle for kernel extension, basic driver design, kernel-side/user-side fhnctionality, virtual memory mapping, DMA, and interrupt handling.To gauge the effectiveness of the efforts, performance measurements for the two drivers are also provided.

Read the paper · More papers on PaperTik