Platform-independent device drivers

Electrical computers and digital processing systems: support – Digital data processing system initialization or configuration

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C711S202000, C711S170000, C709S241000

Reexamination Certificate

active

06202147

ABSTRACT:

2. BACKGROUND OF THE INVENTION
2.1 The Field of the Invention
The present invention relates to the field of computing, and, more particularly, to computer operating system architecture. Still more particularly, the present invention relates to software, methods and systems that provide access to computer system resources for device drivers. The invention has applications in the fields of electronics and computer science.
2.2 Background
A device driver is software used to enable the exchange of data between a computer system (or “platform”) and a peripheral device that is coupled with the computer system. Usually, the peripheral device functions to provide data input and/or output (“I/O”) to the computer system. Examples of peripheral devices include keyboards, printers, scanners, network interface and graphics cards, modems, and monitors. In general, device drivers process data being to be sent to or retrieved from the peripheral device by the computer system so that the data is transferred in a format suitable for processing by the peripheral device or computer system.
The intimate association between the device driver and the hardware and software of the both the peripheral device and computer system to which the device is couple has required that device drivers be written in a highly platform-dependent manner. For example, device drivers generally must obtain memory space when called to perform their function. Typically, this requires the allocation of memory space that must be described by the driver. The driver must therefore have specific knowledge about the platform in order to make such a request. Thus, the same peripheral device, e.g., a printer, will require different version of device (printer) driver software for each platform.
The platform dependence of driver software thus increases the costs of developing platforms and peripherals, as manufactures of peripherals and computer operating systems must provide new versions and updates of driver software for new peripherals, new software platforms, and new operating system releases. Platform-dependent driver technology also increases the cost of maintaining computer systems, especially diverse computer systems deployed over networks, as system managers must obtain and install new and updated device drivers to enable user access to peripheral devices.
Therefore, it would be advantageous to provide device drivers that are platform-independent, i.e., drivers that do not require information about specific platforms as a prerequisite to operation. Such platform-independent device drivers would be capable of running on any platform, thus greatly reducing the costs and frustrations associated with device driver management.
3. SUMMARY OF THE INVENTION
The present invention meets these demands by providing a platform-independent device driver. As discussed below, the platform-independence of the device driver of the invention results from the use of abstract memory objects that allow for the description of memory without actual resource allocation by the computer system. By providing a general, platform-independent means and method for device drivers to request memory, the necessity for the inclusion of highly complex, platform-specific code to enable drivers to request memory is eliminated.
According to one aspect of the invention, a computer-implemented method for allocating memory resources to a device driver is provided in which a device driver generates a request for memory allocation in terms of an abstract memory address space. This abstract memory address space is also used by a bus manager to manage the allocation of memory. The driver forwards the request to the bus manager which can then allocate memory (if the bus manager is also a platform manager), or translate the request to a second abstract memory address space used by a second bus manager. The second bus manager can be a platform manager. When the request is passed to a platform manager, real memory is allocated and the requested memory is passed back to the driver. Thus, by making a memory request in terms of a bus manager's abstract memory address space, the necessity of coding the driver to request real addresses (a platform-specific operation) is avoided.
In one embodiment, the driver uses a memory allocation description object that includes the memory request in addition to information about the abstract memory address space used by the bus manager. If the bus manager is subordinate to a second bus manager, the request is forwarded to the next bus manager after the memory allocation description object undergoes a translation from the abstract memory address space of the first bus manager to the abstract memory address space of the second bus manager. Using such objects allows memory allocation requests to be described without any actual allocation of computer system resources.
In another aspect, the invention provides an apparatus for allocating memory in which a bus manager that is configured to process memory allocation requests in terms of an abstract memory address space is provided along with a device driver that is also configured to request memory allocations in the same abstract address space. The device driver and bus manager are further configured to communicate such that the device driver forwards its memory allocation requests to the bus manager. Finally, a memory allocation mechanism is provided that processes the memory allocation request and returns the allocated real memory addresses to the device driver. In another embodiment, a memory descriptor object is provided as described above.
In yet another aspect, the invention provides computer-readable media and a computer data signal on a carrier wave containing computer-readable program code devices that are configured to cause a computer to execute instructions to provide platform-independent device drivers. In one embodiment, the program code devices are configured to install a device driver mechanism that makes memory allocation requests from a bus manager mechanism using an abstract memory address space associated with the bus manager. The bus manager mechanism is also installed and is configured to receive such requests and translate the request into a second to a second memory address space representation.


REFERENCES:
patent: 5309563 (1994-05-01), Farrand et al.
patent: 5404494 (1995-04-01), Garney
patent: 5701476 (1997-12-01), Fenger
patent: 5701483 (1997-12-01), Pun
patent: 5752032 (1998-05-01), Keller et al.
patent: 5829053 (1999-01-01), Smith et al.
patent: 5860079 (1999-01-01), Smith et al.
patent: 5867690 (1999-02-01), Lee et al.
patent: 5898896 (1999-04-01), Kaiser et al.
patent: 5937170 (1999-08-01), Bedarida
patent: 0737917A2 (1996-10-01), None
patent: WO97/44739 (1997-11-01), None
Lemon et al., “An Object Oriented Device Driver Model,” IEEE, 1995, p. 360-366.
Edward Tuggle, “Advanced Topics In Device Driver Design,” Proceedings of the Annual Embedded Systems Conference, p. 1-18.
Panagiotis Kougiouris, “A Device Management Framework for an Object-Oriented Operating System,” Report of Department of Computer Science University of Illinois at Urbana-Champaign, May 1991. p. 1-73.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Platform-independent device drivers does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Platform-independent device drivers, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Platform-independent device drivers will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2478267

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.