Claims
- 1. A computer-implemented method for allocating memory resources to a device driver, comprising the steps of:a. generating a request for memory allocation in terms of an abstract memory address space from a device driver, said device driver being configured to determine memory allocation requests using such abstract memory address space; b. passing said request to a first bus manager configured to receive memory requests in such abstract memory address space, said first bus manager being further configured to translate said request into a second memory address space; c. translating said request from said abstract address space to a translated request for memory allocation in terms of real memory addresses; d. allocating real memory addresses in response to said translated request; and e. passing said real memory address to said device driver, such that said request for memory allocation in terms of an abstract memory address space made by said device driver is satisfied.
- 2. The computer-implemented method of claim 1, further including the step of translating said request into a second abstract memory address space using said first bus manager and passing said translated request to a second bus manager.
- 3. The computer-implemented method of claim 2, wherein said second bus manager functions as a platform manager and said step of allocating real memory is performed by said platform manager.
- 4. The computer-implemented method of claim 2, wherein said second bus manager is subordinate to a platform manager, and said method further includes the step of passing said translated request to said platform manager.
- 5. The computer-implemented method of claim 4, further including the step of translating said request by said second bus manager.
- 6. The computer-implemented method of claim 1, further including the step of generating an array of memory allocation description objects configured to provide a base address field, a length field, and a memory allocation and access constraints field.
- 7. The computer-implemented method of claim 6, wherein said memory allocation description object further includes a field containing information on the address space used by the bus manager and a field containing platform-specific information.
- 8. The computer-implemented method of claim 7, wherein said memory allocation request comprises said memory allocation description object.
- 9. The computer-implemented method of claim 7, further including the step of using said device driver to select an appropriate memory allocation description object using information contained in said bus-specific information field, and passing said request from said device driver to said bus manager using such chosen memory allocation description object.
- 10. The computer-implemented method of claim 9, wherein said step of translating comprises performing a memory address space translation operation on said memory allocation description object.
- 11. A apparatus for performing memory allocation in an object-oriented computer system, comprising:a. a bus manager mechanism configured to process memory allocation requests in terms of an abstract address space; b. a device driver mechanism configured to communicate with said bus manager mechanism, said device driver being further configured to request allocation of memory from said bus manager in terms of an abstract memory address space of said bus manager; and c. a memory allocation mechanism that processes said requests to allocate memory, said memory having real memory addresses, to said device driver and return to said device driver said real addresses of said allocated memory to said device driver.
- 12. The apparatus of claim 11, further comprising a memory descriptor, said memory descriptor being configured to contain information about said abstract memory address space and said requested memory.
- 13. The apparatus of claim 12, further comprising a translation mechanism to translate said memory descriptor such that said memory descriptor contains information about a second abstract memory space wherein said second abstract memory space is derived from the operation of said translation mechanism on said abstract memory address space.
- 14. The apparatus of claim 13, further comprising a real memory object that contains real memory addresses.
- 15. A computer-readable medium containing computer-readable program code devices, said computer-readable program code devices configured to cause a computer to perform the steps of:a. installing device driver mechanism, said device driver mechanism being configured to make memory allocation requests to a bus manager mechanism in terms of an abstract memory address space associated with said bus manager mechanism; b. installing a bus manager mechanism, said bus manager mechanism being configured to receive memory allocation requests from a device driver mechanism and translate such memory allocation requests from an abstract memory space representation associated with said bus manager mechanism to a second memory space representation; c. passing a memory allocation request from said device driver mechanism to said bus manager mechanism; d. processing said memory allocation request to provide real memory addresses in response to said memory allocation request; and e. returning said real memory addresses to said device driver mechanism.
- 16. The computer-readable medium of claim 15, wherein said computer-readable program code devices are further configured to cause a computer to generate a memory descriptor, said memory descriptor being derived from a abstract memory software object such that said memory descriptor describes said memory allocation request from said device driver mechanism without the allocation of computer memory resources.
- 17. The computer-readable medium of claim 16, wherein said computer-readable program code devices are further configured to cause a computer to allocate a real memory object that comprises said real memory addresses.
- 18. The computer-readable medium of claim 16, wherein said second memory address space is an abstract memory address space.
- 19. The computer-readable medium of claim 15, wherein said second memory address space is a real memory address space.
- 20. A computer data signal on a carrier wave containing instructions for providing memory allocations in response to memory allocation requests from device drivers, said computer data signal comprising instructions configured to cause a computer to perform the steps of:installing device driver mechanism, said device driver mechanism being configured to make memory allocation requests to a bus manager mechanism in terms of an abstract memory address space associated with said bus manager mechanism; installing a bus manager mechanism, said bus manager mechanism being configured to receive memory allocation requests from a device driver mechanism and translate such memory allocation requests from an abstract memory space representation associated with said bus manager mechanism to a second memory address space representation; passing a memory allocation request from said device driver mechanism to said bus manager mechanism; processing said memory allocation request to provide real memory addresses in response to said memory allocation request; and returning said real memory addresses to said device driver mechanism.
1. CROSS REFERENCE TO RELATED APPLICATIONS
This application is related to pending U.S. patent application Ser. No. 09/048,333, filed Mar. 26, 1998, which is incorporated herein by reference.
US Referenced Citations (10)
Foreign Referenced Citations (2)
Number |
Date |
Country |
0737917A2 |
Oct 1996 |
EP |
WO9744739 |
Nov 1997 |
WO |
Non-Patent Literature Citations (3)
Entry |
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. |