US6421769B1
Expired / Lapsed
US
⏱️ 0.0 years remaining
Efficient memory management for channel drivers in next generation I/O system
Assignee: Intel Corp
•
Filing: 1999-12-30
•
Granted: 2002-07-16
•
Expires: 2019-12-30
Abstract
Abstract A memory management system includes a plurality of memory elements to enable translation of virtual memory addresses to physical memory locations. The memory elements have at least first and second memory element configurations. The first and second memory element configurations separately process allocated memory elements and unused memory elements, respectively.
Inventors
- 👤 Tim Teitenberg
- 👤 Bikram Singh Bakshi
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-25 06:01
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/10; G06F12/1081; G06F12/0223; G06F12/023
Claims Analysis
Total Claims: 32
Claim 1
Independent Claim
70 words
A memory manager to manage virtual memory corresponding to a channel driver, comprising: a plurality of memory elements to enable translation of virtual memory addresses associated with the channel driver to physical memory locations, said plurality of memory elements being grouped to include at least first and second memory element configurations, said at least first and second memory element configurations separately processing allocated memory elements and unused memory elements, respectively.
Claim 2
Dependent Claim
70 words
A memory manager to manage virtual memory corresponding to a channel driver, comprising: a plurality of memory elements to enable translation of virtual memory addresses associated with the channel driver to physical memory locations, said plurality of memory elements being grouped to include at least first and second memory element configurations, said at least first and second memory element configurations separately processing allocated memory elements and unused memory elements, respectively.
Claim 3
Dependent Claim
24 words
The memory manager of claim 1 , wherein said first memory element configuration holds used or allocated memory elements in a hashed table configuration.
Claim 4
Dependent Claim
22 words
The memory manager of claim 1 , wherein said second memory element configuration holds unused memory elements in a circularly linked-list configuration.
Claim 5
Dependent Claim
66 words
A memory management system comprising: a pool of memory entries having at least first and second sub-pools being configured such that the first sub-pool includes unused memory entries and the second sub-pool includes allocated memory entries; and a memory manager to reserve and process said pool of memory entries, said memory manager translating virtual memory allocated by said pool of memory entries to physical memory locations.
Claim 6
Dependent Claim
66 words
A memory management system comprising: a pool of memory entries having at least first and second sub-pools being configured such that the first sub-pool includes unused memory entries and the second sub-pool includes allocated memory entries; and a memory manager to reserve and process said pool of memory entries, said memory manager translating virtual memory allocated by said pool of memory entries to physical memory locations.
Claim 7
Dependent Claim
20 words
The system of claim 4 , wherein an entry of said pool of memory entries includes at least three elements.
Claim 8
Dependent Claim
51 words
The system of claim 5 , wherein a first element of said at least three elements is a start index indicating a first entry in the pool, a second element is a number of contiguous entries available, and a third element is a pointer to a next entry in the pool.
Claim 9
Dependent Claim
14 words
The system of claim 4 , wherein said first sub-pool is a circularly linked-list.
Claim 10
Dependent Claim
49 words
The system of claim 7 , wherein said circularly linked-list has a head pointer indicating a first entry in the list, a tail pointer indicating a last entry in the list, and a next pointer used as a starting point for searches to find first available block of entries.
Claim 11
Dependent Claim
27 words
The system of claim 4 , wherein said first sub-pool forms the unused memory entries as a block of individually contiguous entries chained together in a link.
Claim 12
Dependent Claim
29 words
The system of claim 4 , wherein said second sub-pool is a hashed table having a size chosen to be a prime number equal to or greater than seven.
Claim 13
Independent Claim
93 words
A method for managing memory associated with a channel driver, comprising: reserving a pool of memory entries having at least first and second sub-pools, the first sub-pool including allocated memory entries; determining a request for registration or de-registration; adding a memory entry to said first sub-pool of allocated memory entries, and appropriately updating said second sub-pool of unused memory entries, if the request is for registration; and removing a de-registered memory entry from said first sub-pool, and appropriately re-inserting said requested memory entry into said second sub-pool, if the request is for de-registration.
Claim 14
Independent Claim
93 words
A method for managing memory associated with a channel driver, comprising: reserving a pool of memory entries having at least first and second sub-pools, the first sub-pool including allocated memory entries; determining a request for registration or de-registration; adding a memory entry to said first sub-pool of allocated memory entries, and appropriately updating said second sub-pool of unused memory entries, if the request is for registration; and removing a de-registered memory entry from said first sub-pool, and appropriately re-inserting said requested memory entry into said second sub-pool, if the request is for de-registration.
Claim 15
Dependent Claim
22 words
The method of claim 11 , wherein said first sub-pool is a hashed table having a pool of the allocated memory entries.
Claim 16
Dependent Claim
21 words
The method of claim 11 , wherein said second sub-pool is a circularly linked-list having a pool of unused memory entries.
Claim 17
Dependent Claim
27 words
The method of claim 11 , wherein said adding said memory entry includes updating a current pointer of the first sub-pool to point to said memory entry.
Claim 18
Dependent Claim
27 words
The method of claim 11 , wherein said updating said second sub-pool includes updating a start address and a number of remaining entries in said second sub-pool.
Claim 19
Dependent Claim
23 words
The method of claim 11 , wherein said removing said requested memory entry includes appropriately reconnecting memory entry links for said first sub-pool.
Claim 20
Dependent Claim
26 words
The method of claim 11 , wherein said re-inserting said de-registered memory entry includes re-inserting the de-registered memory in an appropriate place in said second sub-pool.
Claim 21
Dependent Claim
20 words
The method of claim 17 , wherein said re-inserting said de-registered memory entry further includes appropriately connecting next entry pointers.
Claim 22
Independent Claim
98 words
An apparatus comprising a computer-readable storage medium having executable instructions for managing memory, associated with a channel driver, that enable the computer to: reserve a pool of memory entries having at least first and second sub-pools; determine a request for registration or de-registration; add a memory entry to said first sub-pool of allocated memory entries, and appropriately update said second sub-pool of unused memory entries, if the request is for registration; and remove a de-registered memory entry from said first sub-pool, and appropriately re-insert said requested memory entry into said second sub-pool, if the request is for de-registration.
Claim 23
Independent Claim
98 words
An apparatus comprising a computer-readable storage medium having executable instructions for managing memory, associated with a channel driver, that enable the computer to: reserve a pool of memory entries having at least first and second sub-pools; determine a request for registration or de-registration; add a memory entry to said first sub-pool of allocated memory entries, and appropriately update said second sub-pool of unused memory entries, if the request is for registration; and remove a de-registered memory entry from said first sub-pool, and appropriately re-insert said requested memory entry into said second sub-pool, if the request is for de-registration.
Claim 24
Dependent Claim
142 words
A computer system comprising: a processor; a memory controller coupled to said processor; a system memory coupled to said memory controller; a plurality of channel drivers to enable transfer of data between said system memory and input/output devices connected to the computer system; and a memory management system to manage memory associated with said plurality of channel drivers, the memory management system comprising; a memory entry pool including a plurality of entries to translate virtual memory addresses to physical memory addresses, the memory entry pool including; a first sub-pool comprising unallocated ones of the plurality of entries, a next pointer used as a starting point for searches to find a next available block of unallocated entries to be allocated; and a second sub-pool comprising allocated ones of the plurality of entries, the allocated entries not being available for the memory registration request.
Claim 25
Dependent Claim
142 words
A computer system comprising: a processor; a memory controller coupled to said processor; a system memory coupled to said memory controller; a plurality of channel drivers to enable transfer of data between said system memory and input/output devices connected to the computer system; and a memory management system to manage memory associated with said plurality of channel drivers, the memory management system comprising; a memory entry pool including a plurality of entries to translate virtual memory addresses to physical memory addresses, the memory entry pool including; a first sub-pool comprising unallocated ones of the plurality of entries, a next pointer used as a starting point for searches to find a next available block of unallocated entries to be allocated; and a second sub-pool comprising allocated ones of the plurality of entries, the allocated entries not being available for the memory registration request.
Claim 26
Dependent Claim
17 words
The computer system of claim 20 , wherein said computer system is used as a network server.
Claim 27
Dependent Claim
21 words
The memory management system of claim 20 wherein the memory entry pool comprises TPT records in a Translation and Protection Table.
Claim 28
Dependent Claim
25 words
The memory management system of claim 22 wherein the Translation and Protection Table is common to and is managed for the plurality of channel drivers.
Claim 29
Dependent Claim
30 words
The memory management system of claim 20 wherein the first sub-pool is configured as a circular linked list of records, each record representing a contiguous block of unallocated memory entries.
Claim 30
Dependent Claim
40 words
The memory management system of claim 20 wherein the first sub-pool includes a first pointer to point to a next one of the records, each record representing unallocated entries to be evaluated in response to receiving the memory registration request.
Claim 31
Dependent Claim
29 words
The memory management system of claim 20 wherein the second sub-pool is configured as a hashed table of records, each record representing a contiguous block of allocated memory entries.
Claim 32
Dependent Claim
17 words
The memory management system of claim 20 including a no-bias first-fit scheme to manage the first pool.
References Cited (Backward Citations)
US5574946A
Cited
US6170025B1
Cited
US6212587B1
Cited
US6023736A
Cited
US6073253A
Cited
US6185655B1
Cited
US6070207A
Cited
US6243829B1
Cited
US6070182A
Cited
US6195747B1
Cited
US6226756B1
Cited
US6243787B1
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2005-07-15 | 2006-01-14 | 2006-07-16 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2009-07-15 | 2010-01-14 | 2010-07-16 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2013-07-15 | 2014-01-14 | 2014-07-16 | $7700.00 | Window Closed / Lapsed |