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

Method and apparatus for providing memory management within a system management mode

Assignee: American Megatrends International LLC
•
Filing: 2004-08-10
•
Granted: 2009-04-21
•
Expires: 2024-08-10
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Methods, systems, and computer-readable media are provided for managing memory within a system management mode (“SMM”). According to the method, a memory management program is executed within the SMM. The memory management program is operative to maintain a singly linked list having one or more descriptors for identifying allocated regions of system management random access memory (“SMRAM”). In particular, each descriptor identifies a region of SMRAM that has been allocated by the memory management program by storing an indication of the base memory address of the allocated region, an indication of the ending memory address for the allocated region, and a pointer to the next descriptor.

Inventors

  • 👤 Mark Eric Wilson

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 18:31
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/0223; G06F12/0284; G06F9/00; G06F9/06; G06F9/46; G06F9/50; G06F9/5005; G06F9/5011; G06F9/5016; G06F9/5022; G06F2212/00; G06F2212/10; G06F2212/1041; G06F2212/1044

Claims Analysis

Total Claims: 14
Claim 1
Independent Claim 114 words
A method for providing memory management within a system management mode, the method comprising: creating a memory reserved table comprising a singly linked list of a predetermined number of unused descriptors marked with a predetermined value; replacing at least one unused descriptor with a used descriptor, wherein the used descriptor identifies a region of system management random access memory allocated by the memory management program; periodically determining whether all of the descriptors in the memory reserved table are used to identify allocated memory; and in response to determining that all of the descriptors have been utilized, creating a new memory reserved table comprising a singly linked list of the predetermined number of unused descriptors.
Claim 2
Independent Claim 114 words
A method for providing memory management within a system management mode, the method comprising: creating a memory reserved table comprising a singly linked list of a predetermined number of unused descriptors marked with a predetermined value; replacing at least one unused descriptor with a used descriptor, wherein the used descriptor identifies a region of system management random access memory allocated by the memory management program; periodically determining whether all of the descriptors in the memory reserved table are used to identify allocated memory; and in response to determining that all of the descriptors have been utilized, creating a new memory reserved table comprising a singly linked list of the predetermined number of unused descriptors.
Claim 3
Dependent Claim 80 words
The method of claim 1 , wherein the memory management program is operative to receive a request for a region of system management random access memory, to determine based on the contents of the singly linked list whether the requested memory region is available and, in response to determining that the requested memory region is available, further operative to allocate an unused descriptor for the requested memory region and to return an indication that the memory region has been allocated.
Claim 4
Dependent Claim 43 words
The method of claim 2 , wherein the request for the region of system management random access memory may comprise a request for a specific size of memory or a request for a specified size of memory located at a specific memory address.
Claim 5
Dependent Claim 64 words
The method of claim 3 , wherein the memory management program is further operative to receive a request to deallocate a region of system management random access memory, to identify one or more used descriptors for the memory region to be deallocated, to mark the one or more used descriptors as unused, and to return an indication that the memory region has been deallocated.
Claim 6
Dependent Claim 22 words
The method of claim 4 , wherein each used descriptor comprises an indication of a base memory address of the allocated region.
Claim 7
Dependent Claim 23 words
The method of claim 5 , wherein each used descriptor further comprises an indication of an ending memory address of the allocated region.
Claim 8
Dependent Claim 18 words
The method of claim 6 , wherein each used descriptor further comprises a pointer to a next descriptor.
Claim 9
Independent Claim 306 words
A method for providing memory management within a system management mode, the method comprising: executing within the system management mode a memory management program, the memory management program operative to initially allocate a memory reserved table comprising a predetermined number of unused descriptors in a singly linked list, the memory reserved table further including a field identifying a number of used descriptors within the singly linked list, maintain the singly linked list, wherein each used descriptor identifies a region of system management random access memory allocated by the memory management program, comprises an indication of a base memory address of the allocated region, comprises an indication of an ending memory address of the allocated region, and comprises a pointer to a next descriptor, receive a request for a region of system management random access memory, wherein the request comprises a request for a specific size of memory or a request for a specified size of memory located at a specific memory address, determine based on the contents of the singly linked list whether the requested memory region is available, in response to determining that the requested memory region is available, allocate an unused descriptor for the requested memory region and return an indication that the memory region has been allocated, receive a request to deallocate a region of system management random access memory, identify one or more used descriptors for the memory region to be deallocated, mark each of the one or more used descriptors identified to be deallocated as an unused descriptor, return an indication that the memory region has been deallocated, periodically determine whether all of the descriptors in the memory reserved table have been utilized to identify allocated memory, and in response to determining that all of the descriptors have been utilized, create a new memory reserved table comprising one or more descriptors.
Claim 10
Independent Claim 306 words
A method for providing memory management within a system management mode, the method comprising: executing within the system management mode a memory management program, the memory management program operative to initially allocate a memory reserved table comprising a predetermined number of unused descriptors in a singly linked list, the memory reserved table further including a field identifying a number of used descriptors within the singly linked list, maintain the singly linked list, wherein each used descriptor identifies a region of system management random access memory allocated by the memory management program, comprises an indication of a base memory address of the allocated region, comprises an indication of an ending memory address of the allocated region, and comprises a pointer to a next descriptor, receive a request for a region of system management random access memory, wherein the request comprises a request for a specific size of memory or a request for a specified size of memory located at a specific memory address, determine based on the contents of the singly linked list whether the requested memory region is available, in response to determining that the requested memory region is available, allocate an unused descriptor for the requested memory region and return an indication that the memory region has been allocated, receive a request to deallocate a region of system management random access memory, identify one or more used descriptors for the memory region to be deallocated, mark each of the one or more used descriptors identified to be deallocated as an unused descriptor, return an indication that the memory region has been deallocated, periodically determine whether all of the descriptors in the memory reserved table have been utilized to identify allocated memory, and in response to determining that all of the descriptors have been utilized, create a new memory reserved table comprising one or more descriptors.
Claim 11
Dependent Claim 26 words
A computer storage medium having computer-executable instructions stored thereon which, when executed by a computer, cause the computer to perform the method of claim 1 .
Claim 12
Dependent Claim 57 words
The method of claim 8 , wherein in response to determining that all of the descriptors have been utilized, the memory management program is further operative to create a descriptor in the memory reserved table for the new memory reserved table and to create a pointer in the memory reserved table to the new memory reserved table.
Claim 13
Dependent Claim 19 words
The method of claim 8 , wherein the memory management program executes in conjunction with an extensible firmware interface.
Claim 14
Dependent Claim 26 words
A computer storage medium having computer-executable instructions stored thereon which, when executed by a computer, cause the computer to perform the method of claim 8 .

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2012-04-20 2012-10-20 2013-04-21 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2016-04-20 2016-10-20 2017-04-21 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2020-04-20 2020-10-20 2021-04-21 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag