← Back to Patent Explorer
US5757386A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for virtualizing off-screen memory of a graphics engine

Assignee: Lenovo Singapore Pte Ltd
•
Filing: 1995-08-11
•
Granted: 1998-05-26
•
Expires: 2015-08-11
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An application request for off-screen VRAM is satisfied transparently to the application by allocating off-screen VRAM, if available, or system RAM if off-screen VRAM is unavailable. In addition, a list is kept of previous memory requests so that requests which were satisfied by allocating system RAM can be switched to off-screen VRAM, if such off-screen VRAM should later become available. Allocation of off-screen VRAM is controlled by a device driver that responds to various application memory requests and controls the off-screen VRAM resources, among other things. The device driver receives an allocation request for off-screen VRAM and determines whether the request may be honored with available off-screen VRAM resources. If the request can be honored with available off-screen VRAM resources, the device driver allocates a portion of the available off-screen VRAM resources to honor the request and decreases the amount of available off-screen VRAM resources. If the request cannot be honored with available off-screen resources, the device driver allocates a portion of system RAM to honor the request. The device driver also receives and processes requests to deallocate, previously allocated, off-screen VRAM resources in order to increase the amount of available off-screen VRAM resources. As a result of the increased resources, the device driver may transfer a request that was previously honored with system RAM to the off-screen VRAM resources to honor that request with off-screen VRAM resources.

Inventors

  • 👤 Joseph Celi, Jr.
  • 👤 John P. Coffey
  • 👤 Jonathan Mark Wagner

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-02 15:12
CPC Classifications
G; G09; G09G; G09G5/00; G09G5/36

Claims Analysis

Total Claims: 35
Claim 1
Independent Claim 150 words
Apparatus for allocating video memory in a computer system having a system memory and an off-screen VRAM in response to an allocation request from an application program to obtain use of a portion of the off-screen VRAM, the apparatus comprising: means responsive to an allocation request made by an application program for storing said allocation request and for querying the off-screen VRAM to determine whether the off-screen VRAM has an unused part of sufficient size to satisfy the allocation request; means cooperating with the determining means for allocating part of the off-screen VRAM to the application program when the unused part exists in response to either a current allocation request or a stored allocation request; and means cooperating with the determining means for allocating to the application program, a portion of the system memory having a sufficient size to accommodate the allocation request when the unused part does not exist.
Claim 2
Dependent Claim 150 words
Apparatus for allocating video memory in a computer system having a system memory and an off-screen VRAM in response to an allocation request from an application program to obtain use of a portion of the off-screen VRAM, the apparatus comprising: means responsive to an allocation request made by an application program for storing said allocation request and for querying the off-screen VRAM to determine whether the off-screen VRAM has an unused part of sufficient size to satisfy the allocation request; means cooperating with the determining means for allocating part of the off-screen VRAM to the application program when the unused part exists in response to either a current allocation request or a stored allocation request; and means cooperating with the determining means for allocating to the application program, a portion of the system memory having a sufficient size to accommodate the allocation request when the unused part does not exist.
Claim 3
Dependent Claim 62 words
The apparatus of claim 1 further comprising: means for monitoring the off-screen VRAM to determine when a previously-allocated portion of the off-screen VRAM with a size becomes unused; and means for transferring information stored in the system memory portion to the previously-allocated portion of the off-screen VRAM when the previously-allocated portion size is large enough to accommodate the system memory portion size.
Claim 4
Dependent Claim 36 words
The apparatus of claim 2 wherein the monitoring means comprises means responsive to a deallocation request received from the application program for informing the monitoring means that video memory allocated to the application program is unused.
Claim 5
Dependent Claim 70 words
The apparatus of claim 2 wherein the monitoring means further comprises means responsive to the deallocation request for identifying the application program as a candidate for a transfer of information from the system memory to the off-screen VRAM when the application program has been allocated a portion of the system memory and the previously-allocated portion size of the off-screen VRAM is large enough to accommodate the system memory portion size.
Claim 6
Dependent Claim 39 words
The apparatus of claim 1 further comprising means responsive to an allocation request from the application program to use previously-allocated video memory for transferring information stored in the system memory portion to the previously allocated portion of off-screen VRAM.
Claim 7
Dependent Claim 77 words
The apparatus of claim 1 further comprising: storage means responsive to an allocation request from the application program for storing the request; means cooperating with the determining means for storing in the storage means an address of the part of the off-screen VRAM when the unused part exists; and means cooperating with the determining means for storing in the storage means an address of the portion of the system memory when the unused part does not exist.
Claim 8
Dependent Claim 30 words
The apparatus of claim 6 further comprising means responsive to an information request from the application program for returning to the application program the address stored in the storage means.
Claim 9
Independent Claim 116 words
A method for allocating video memory in a computer system having a system memory and an off-screen VRAM in response to an allocation request from an application program to obtain use of a portion of the off-screen VRAM, the method comprising the steps of: A. querying the off-screen VRAM to determine whether the off-screen VRAM has an unused part of sufficient size to satisfy the allocation request; B. allocating part of the off-screen VRAM to the application program when the unused part of VRAM exists; and C. allocating to the application program, a portion of the system memory having a sufficient size to accommodate the allocation request when the unused part of VRAM does not exist.
Claim 10
Independent Claim 116 words
A method for allocating video memory in a computer system having a system memory and an off-screen VRAM in response to an allocation request from an application program to obtain use of a portion of the off-screen VRAM, the method comprising the steps of: A. querying the off-screen VRAM to determine whether the off-screen VRAM has an unused part of sufficient size to satisfy the allocation request; B. allocating part of the off-screen VRAM to the application program when the unused part of VRAM exists; and C. allocating to the application program, a portion of the system memory having a sufficient size to accommodate the allocation request when the unused part of VRAM does not exist.
Claim 11
Dependent Claim 63 words
The method of claim 8 further comprising the steps of: D. monitoring the off-screen VRAM to determine when a previously-allocated portion of the off-screen VRAM with a size becomes unused; and E. transferring information stored in the system memory portion to the previously-allocated portion of the off-screen VRAM when the previously-allocated portion size is large enough to accommodate the system memory portion size.
Claim 12
Dependent Claim 43 words
The method of claim 9 wherein step D comprises the steps of: D1. receiving a deallocation request from the application program; and D2. informing the monitoring means that video memory allocated to the application program is unused when the deallocation request is received.
Claim 13
Dependent Claim 66 words
The method of claim 9 wherein step D further comprises the step of: D3. identifying the application program as a candidate for a transfer of information from the system memory to the off-screen VRAM when the application program has been allocated a portion of the system memory and the previously-allocated portion size of the off-screen VRAM is large enough to accommodate the system memory portion size.
Claim 14
Dependent Claim 48 words
The method of claim 8 further comprising the step of: F. receiving an information request from the application program to use previously-allocated video memory; and G. transferring information stored in the system memory portion to the previously-allocated portion of the off-screen VRAM in response to the information request.
Claim 15
Dependent Claim 63 words
The method of claim 8 further comprising the steps of: H. storing the request in response to an allocation request from the application program; I. storing an address of the part of the off-screen VRAM when the unused part of VRAM exists; and J. storing an address of the portion of the system memory when the unused part of VRAM does not exist
Claim 16
Dependent Claim 34 words
The method of claim 13 further comprising the step of: K. returning to the application program the address stored in the storage means in response to an information request received from the application program.
Claim 17
Dependent Claim 171 words
Apparatus for allocating video memory buffer having a predetermined size in a computer system having a system memory and an off-screen VRAM in response to an allocation request from an application program to obtain use of the video memory buffer, the apparatus comprising: storage means responsive to the allocation request for storing information relating to the allocation request including a size of the video memory buffer requested; means for maintaining a list of all unused VRAM portions; means responsive to the allocation request for checking the list to determine whether the off-screen VRAM has an unused portion of sufficient size to allocate to the application program; means cooperating with the checking means, for storing a VRAM address of the unused portion in the storage means when the unused portion exists; and means cooperating with the checking means for storing in the storage means a system memory address of a portion of the system memory having a sufficient size to accommodate the video memory buffer when the unused portion does not exist.
Claim 18
Dependent Claim 171 words
Apparatus for allocating video memory buffer having a predetermined size in a computer system having a system memory and an off-screen VRAM in response to an allocation request from an application program to obtain use of the video memory buffer, the apparatus comprising: storage means responsive to the allocation request for storing information relating to the allocation request including a size of the video memory buffer requested; means for maintaining a list of all unused VRAM portions; means responsive to the allocation request for checking the list to determine whether the off-screen VRAM has an unused portion of sufficient size to allocate to the application program; means cooperating with the checking means, for storing a VRAM address of the unused portion in the storage means when the unused portion exists; and means cooperating with the checking means for storing in the storage means a system memory address of a portion of the system memory having a sufficient size to accommodate the video memory buffer when the unused portion does not exist.
Claim 19
Dependent Claim 138 words
The apparatus of claim 15 further comprising: means responsive to a deallocation request received from the application program for monitoring the off-screen VRAM to determine when a previously-allocated portion of the off-screen VRAM with a size becomes unused; means responsive to an information request from the application program to use the video memory buffer for checking the storage means to determine whether a previous allocation request was satisfied by allocating off-screen VRAM or by allocating system memory; means for comparing the stored video memory buffer size to the previously-allocated off-screen VRAM portion size when the previous allocation request was satisfied by allocating system memory; and means for transferring information stored in the system memory portion to the previously-allocated portion of the off-screen VRAM when the previously-allocated portion size is large enough to accommodate the video memory buffer size.
Claim 20
Dependent Claim 64 words
The apparatus of claim 16 wherein the storage means comprises: a data structure; and means for recording information in the data structure representative of the requests that were satisfied by allocating system memory; and wherein the transferring means comprises means for analyzing the data structure to determine whether the contents of a video memory buffer in system memory may be transferred to off-screen VRAM.
Claim 21
Dependent Claim 25 words
The apparatus of claim 17 wherein the checking means comprises means responsive to the allocation request for storing a buffer id in the storage means.
Claim 22
Dependent Claim 55 words
The apparatus of claim 18 wherein the monitoring means comprises means responsive to the deallocation request for traversing the data structure in order to mark the data structure to indicate candidate allocations, which were satisfied by allocating system memory and have sizes no greater than the previously-allocated portion of the off-screen VRAM which became unused.
Claim 23
Dependent Claim 44 words
The apparatus of claim 19 wherein the transferring means comprises means responsive to the information request to use the video memory buffer for checking the data structure to determine whether the corresponding stored information indicates that the video memory buffer is a candidate allocation.
Claim 24
Dependent Claim 142 words
A computer program product comprising: a computer usable medium having computer readable program code means embodied thereon for allocating the video memory in a computer system having a system memory and an off-screen VRAM, in response to an allocation request from an application program to obtain use of a portion of the off-screen VRAM, said computer readable program code means comprising: program code means for querying the off-screen VRAM to determine whether the off-screen VRAM has an unused part of sufficient size to satisfy the allocation request; program code means for allocating part of the off-screen VRAM to the application program when the unused part of VRAM exists; and program code means for allocating to the application program, a portion of the system memory having a sufficient size to accommodate the allocation request when the unused part of VRAM does not exist.
Claim 25
Dependent Claim 142 words
A computer program product comprising: a computer usable medium having computer readable program code means embodied thereon for allocating the video memory in a computer system having a system memory and an off-screen VRAM, in response to an allocation request from an application program to obtain use of a portion of the off-screen VRAM, said computer readable program code means comprising: program code means for querying the off-screen VRAM to determine whether the off-screen VRAM has an unused part of sufficient size to satisfy the allocation request; program code means for allocating part of the off-screen VRAM to the application program when the unused part of VRAM exists; and program code means for allocating to the application program, a portion of the system memory having a sufficient size to accommodate the allocation request when the unused part of VRAM does not exist.
Claim 26
Dependent Claim 68 words
The computer program product of claim 21 further comprising: program code means for monitoring the off-screen VRAM to determine when a previously-allocated portion of the off-screen VRAM with a size becomes unused; and program code means for transferring information stored in the system memory portion to the previously-allocated portion of the off-screen VRAM when the previously-allocated portion size is large enough to accommodate the system memory portion size.
Claim 27
Dependent Claim 55 words
The computer program product of claim 22 wherein said program code means for monitoring off-screen VRAM further comprises: program code means for receiving a deallocation request from the application program; and program code means for informing the monitoring means that video memory allocated to the application program is unused when the deallocation request is received.
Claim 28
Dependent Claim 74 words
The computer program product of claim 22 wherein said program code means for monitoring off-screen VRAM further comprises: program code means for identifying the application program as a candidate for a transfer of information from the system memory to the off-screen VRAM when the application program has been allocated a portion of the system memory and the previously-allocated portion size of the off-screen VRAM is large enough to accommodate the system memory portion size.
Claim 29
Dependent Claim 53 words
The computer program product of claim 21 further comprising: program code means for receiving an information request from the application program to use previously-allocated video memory; and program code means for transferring information stored in the system memory portion to the previously-allocated portion of the off-screen VRAM in response to the information request.
Claim 30
Dependent Claim 72 words
The computer program product of of claim 21 further comprising: program code means for storing the request in response to an allocation request from the application program; program code means for storing an address of the part of the off-screen VRAM when the unused part of VRAM exists; and program code means for storing an address of the portion of the system memory when the unused part of VRAM does not exist.
Claim 31
Dependent Claim 11 words
The computer program product of claim 21 in combination with documentation.
Claim 32
Dependent Claim 174 words
A computer program product for use in a computer system having a system memory and an off-screen VRAM, the computer program product comprising: a computer usable medium having computer readable program code means embodied in said medium for allocating video memory in response to an allocation request from an application program to obtain use of a portion of the off-screen VRAM, the computer readable program code means comprising: first computer program code means for causing the computer system to query the off-screen VRAM to determine whether the off-screen VRAM has an unused portion of sufficient size to satisfy the allocation request; second computer program code means for causing the computer system to allocate a portion of the off-screen VRAM to the application program when the unused off-screen VRAM portion exists; and third computer program code means for causing the computer system to allocate a portion of the system memory to the application program when the unused off-screen VRAM portion does not exist, the system memory having a sufficient size to accommodate the allocation request.
Claim 33
Dependent Claim 174 words
A computer program product for use in a computer system having a system memory and an off-screen VRAM, the computer program product comprising: a computer usable medium having computer readable program code means embodied in said medium for allocating video memory in response to an allocation request from an application program to obtain use of a portion of the off-screen VRAM, the computer readable program code means comprising: first computer program code means for causing the computer system to query the off-screen VRAM to determine whether the off-screen VRAM has an unused portion of sufficient size to satisfy the allocation request; second computer program code means for causing the computer system to allocate a portion of the off-screen VRAM to the application program when the unused off-screen VRAM portion exists; and third computer program code means for causing the computer system to allocate a portion of the system memory to the application program when the unused off-screen VRAM portion does not exist, the system memory having a sufficient size to accommodate the allocation request.
Claim 34
Dependent Claim 95 words
The computer program product as defined in claim 28 wherein the program code means further comprises: fourth computer program code means for causing the computer system to monitor the off-screen VRAM to determine when a previously-allocated portion of the off-screen VRAM becomes unused, the previously-allocated portion of off-screen VRAM having a size; and fifth computer program code means for causing the computer system to transfer information stored in the system memory portion to the previously-allocated portion of the off-screen VRAM when the previously-allocated portion size is large enough to accommodate the system memory portion size.
Claim 35
Dependent Claim 67 words
The computer program product as defined by claim 29 wherein the program code means further comprises: sixth computer program code means for causing the computer system to receive a deallocation request from the application program; and seventh computer program code means for causing the computer system to inform the monitoring means that video memory allocated to the application program is unused when the deallocation request is received.

References Cited (Backward Citations)

US4606066A Cited
US4511965A Cited
US4757312A Cited
US4656596A Cited
US5001652A Cited
US5151997A Cited
US5218670A Cited
US5250940A Cited
US5291188A Cited
US5245702A Cited
US5388207A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-05-25 2001-11-24 2002-05-26 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-05-25 2005-11-24 2006-05-26 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-05-25 2009-11-24 2010-05-26 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag