Patent US7396484B2 successfully refreshed from Google Patents.
← Back to Patent Explorer
US5301288A Expired / Lapsed US ⏱️ 0.0 years remaining

Virtual memory management and allocation arrangement for digital data processing system

Assignee: Eastman Kodak Co
•
Filing: 1993-04-27
•
Granted: 1994-04-05
•
Expires: 2013-04-27
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Virtual address space for array data to be stored in a virtual memory is allocated by establishing a table that associates segments of the virtual address space with predetermined array data dimensions and maintaining a map that identifies, for each segment, which portions of the segment have been allocated to store array data. The table and map are used to identify a contiguous portion of the virtual address space for the array data to be stored.

Inventors

  • 👤 Gary H. Newman
  • 👤 James W. Franklin

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-23 13:46
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/0223; G06F12/0292; G06F12/08; G06F12/10; G06F12/1027; G06F12/1036; G06F12/109

Claims Analysis

Total Claims: 48
Claim 1
Independent Claim 73 words
A system for allocating virtual address space for array data to be stored in a virtual memory, an attribute of said array being a dimension along an array direction, the system comprising: a table that associates segments of said virtual address space with predetermined dimensions of array data, and a space allocator for using said table to identify a contiguous portion of said virtual address space for said array data to be stored.
Claim 2
Independent Claim 73 words
A system for allocating virtual address space for array data to be stored in a virtual memory, an attribute of said array being a dimension along an array direction, the system comprising: a table that associates segments of said virtual address space with predetermined dimensions of array data, and a space allocator for using said table to identify a contiguous portion of said virtual address space for said array data to be stored.
Claim 3
Dependent Claim 41 words
The system of claim 1 wherein said array data to be stored has a characteristic one of said predetermined dimensions, and said allocator uses said table to identify segments that have been allocated to store array data having said characteristic dimension.
Claim 4
Dependent Claim 38 words
The system of claim 2 wherein said allocator uses said table to identify segments that have not been allocated to store array data if no said segments have been allocated to store array data having said characteristic dimension.
Claim 5
Dependent Claim 52 words
The system of claim 3 further comprising a map that identifies, for each said segment, which portions of said segment have been allocated to store array data, and wherein said allocator uses one or more of said identified segments with said map to identify said contiguous portion of said virtual address space.
Claim 6
Dependent Claim 65 words
The system of claim 1 wherein said table comprises lists of records for segments that have bene at least partially allocated to store array data, each list being associated with a different predetermined dimension, and each record in each list being associated with a segment with has been at least partially allocated to store array data having the different predetermined dimension associated with said list.
Claim 7
Dependent Claim 26 words
The system of claim 5 wherein said table further comprises a list of records for segments that have not been allocated to store any array data.
Claim 8
Dependent Claim 23 words
The system of claim 5 wherein, a list includes at least one record identifying another record, thereby comprising a linked list of records.
Claim 9
Dependent Claim 29 words
The system of claim 5 wherein each record in said table identifies the different predetermined dimension of the array data that an associated segment has been allocated to store.
Claim 10
Dependent Claim 26 words
The system of claim 5 wherein each record in said table identifies whether portions of an associated segment have not been allocated to store array data.
Claim 11
Dependent Claim 24 words
The system of claim 9 wherein each record in said table identifies whether an associated segment has not been allocated to store array data.
Claim 12
Dependent Claim 24 words
The system of claim 9 wherein each record in said table identifies whether an associated segment has been completely allocated to store array data.
Claim 13
Dependent Claim 39 words
The system of claim 5 further comprising a map that identifies portions of a segment which have been allocated to store array data, and said allocator uses said map to identify a contiguous portion of said virtual address space.
Claim 14
Dependent Claim 52 words
The system of claim 12 wherein said allocator uses said lists of records to identify segments that have been at least partially allocated to store array data having a characteristic one of said predetermined dimensions, and uses said identified segments with said map to identify a contiguous portion of virtual address space.
Claim 15
Dependent Claim 35 words
The system of claim 13 wherein said allocator uses said list of records to identify segments that have not been allocated to store array data to identify said contiguous portion of said virtual address space.
Claim 16
Dependent Claim 70 words
The system of claim 14 wherein, if said table does not include a list of records for segments that have been at least partially allocated to store array data having said characteristic dimension, said allocator uses said list of records for unallocated segments to identify one or more segments, and uses said one or more identified segments with said map to identify said contiguous portion of said virtual address space.
Claim 17
Dependent Claim 45 words
The system of claim 14 wherein, if said contiguous portion of said virtual address space includes an unallocated segment, said allocator moves the record associated with said segment from the list of records associated with unallocated segments to a list associated with said characteristic dimension.
Claim 18
Dependent Claim 37 words
The system of claim 16 wherein, if said table did not include a list for said characteristic dimension, said allocator causes said lists to be created by designating said record as the first record in said list.
Claim 19
Dependent Claim 65 words
The system of claim 5 further comprising a map that identifies, for each said segment, which portions of said segment have been allocated to store array data, and wherein said allocator includes a deallocator for freeing a contiguous portion of said virtual address space using said table and said map when array data stored in said contiguous portion is to be removed from said memory.
Claim 20
Dependent Claim 43 words
The system of claim 18 wherein a record contains information about a segment that was allocated to store said array data to be removed, said deallocator causing said record to be updated when said contiguous portion of said virtual address space is freed.
Claim 21
Dependent Claim 19 words
The system of claim 19 wherein said information identifies whether said segment is completely allocated or is completely unallocated.
Claim 22
Dependent Claim 48 words
The system of claim 20 wherein said deallocator causes said record to be moved to the list of records for segments that have not been allocated to store any array data if said segment becomes completely unallocated when said contiguous portion of said virtual address space is freed.
Claim 23
Dependent Claim 70 words
The system of claim 1 wherein said segments comprise contiguous blocks for storing array data, said system further comprising a map that identifies which portions of said segments have been allocated to store array data, and wherein each said segment comprises a number of contiguous blocks for storing said array data, said map being arranged to identify which ones of said contiguous blocks have bene allocated to store array data.
Claim 24
Dependent Claim 43 words
The system of claim 22 wherein said map comprises an entry associated with each said segment and a plurality of elements associated with each said segment, each element indicating whether a block of an associated element has been allocated to store array data.
Claim 25
Dependent Claim 47 words
The system of claim 23 wherein said array data to be stored has a characteristic one of said predetermined dimensions said allocator testing said map based on said characteristic dimension to identify one or more contiguous elements in said map associated with one or more contiguous blocks.
Claim 26
Dependent Claim 65 words
The system of claim 24 wherein said allocator uses said table to identify one or more entries of said map that are associated with segments that have at least partially been allocated to store array data having said characteristic dimension, and to test the elements or said identified entries to identify said one or more contiguous elements associated with said one or more contiguous blocks.
Claim 27
Dependent Claim 70 words
The system of claim 25 wherein, if no said segments have been allocated to store array data having said characteristic dimension, said allocator uses said table to identify one or more entries that are associated with segments that have not been allocated to store array data, and tests the elements of said identified entries to identify said one or more contiguous elements associated with said one or more contiguous blocks.
Claim 28
Dependent Claim 45 words
The system of claim 25 wherein said allocator ignores, during said testing of elements of said identified entries in the map that are associated with segments that have been at least partially allocated to store array data having a dimension different from said characteristic dimension.
Claim 29
Dependent Claim 45 words
The system of claim 27 wherein said allocator tests said identified entries by counting the number of contiguous elements associated with blocks that have not been allocated to store array data and compare the number counted with the number of blocks in said characteristic dimension.
Claim 30
Dependent Claim 40 words
The system of claim 28 wherein said allocator starts said counting in the first entry identified by said table that is associated with a segment that has been at least partially allocated to store array data having said characteristic dimension.
Claim 31
Dependent Claim 29 words
The system of claim 29 wherein said allocator starts said counting at the first element in said first entry that is associated with an unallocated block in said segment.
Claim 32
Dependent Claim 53 words
The system of claim 29 wherein, if no said segments have been allocated to store array data having said characteristic dimension, said allocator starts said counting at the first element in the first entry identified by said table that is associated with a segment that has not been allocated to store array data.
Claim 33
Dependent Claim 70 words
The system of claim 30 wherein, if said allocator has reached a count that is less than the number of blocks in said characteristic dimension when said allocator has tested all elements in said first entry, said allocator continues counting elements in the entry associated with a next contiguous segment if said next segment is either unallocated or has been partially allocated to store array data having said characteristic dimension.
Claim 34
Dependent Claim 21 words
The system of claim 32 wherein said allocator restarts said counting if it finds an element associated with an allocated block.
Claim 35
Dependent Claim 42 words
The system of claim 24 wherein said allocator includes a deallocator for freeing a contiguous portion of said virtual address space using said table and said map when array data stored in said contiguous portion is to be removed from said memory.
Claim 36
Dependent Claim 75 words
The system of claim 34 wherein said deallocator uses said table to identify at least one segment that contains at least some of said virtual address space to be freed, and to access the entry of said map that is associated with said segment to identify contiguous elements of one or more entries in said map that are associated with the blocks that comprise the contiguous portion of said virtual address space to be freed.
Claim 37
Dependent Claim 41 words
The system of claim 35 wherein said deallocator causes each one of said contiguous elements to indicate that its associated block has not been allocated to store array data when said contiguous portion of said virtual address space has been freed.
Claim 38
Dependent Claim 293 words
The system of claim 1 further comprising a map that identifies, for each said segment, which portions of said segment have been allocated to store array data, and wherein said array data to be stored has a characteristic one of said predetermined dimensions, said segments being contiguous within said virtual address space and each said segment comprising a predetermined number of contiguous blocks for storing array data, said table comprising lists of records for segments that have been at least partially allocated to store array data, each list being associated with a different predetermined dimension, and each record in each list being associated with a segment which has been at least partially allocated to store array data and identifying another record in said list, said table further including a list of records for segments that have not been allocated to store array data, said map comprising an entry associated with each said segment and a plurality of elements in each entry associated with the contiguous blocks in the corresponding segment, each element indicating whether its associated block has been allocated to store array data, and wherein said space allocator uses said lists of records to identify segments that have been at least partially allocated to store array data having said characteristic dimension or that have not been allocated to store array data to identify one or more candidate segments for storing said array data, said space allocator further testing the elements of bit map entries that correspond to said candidate segments to identify one or more contiguous elements associated with one or more contiguous blocks that have not been allocated, and to determine if said one or more contiguous blocks define a dimension that is at least as large as said characteristic dimension.
Claim 39
Dependent Claim 160 words
The system of claim 37 wherein said allocator comprises a deallocator for freeing a contiguous portion of said virtual address space, said deallocator using said lists of records to identify at least one segment that contains at least some of said virtual address space to be freed, and, to access an entry of said map that is associated with said segment to identify contiguous elements that are associated with the blocks that comprise the contiguous portion of said virtual address space to be freed, said deallocator further causing each one of said identified contiguous elements to indicate that its associated block has not been allocated to store array data when said contiguous portion of said virtual address space has been freed, and said deallocator further updating one or more records that identify one or more segments that correspond to the entries in the map that contain said identified contiguous elements to indicate that space in said segments has been deallocated.
Claim 40
Dependent Claim 72 words
A process for allocating virtual address space for array data to be stored in a virtual memory, an attribute of said array being a dimension along an array direction; the process comprising the steps of: associating segments of said virtual address space with predetermined dimensions of array data in a table, and using said table to identify a contiguous portion of said virtual address space for said array data to be store.
Claim 41
Dependent Claim 72 words
A process for allocating virtual address space for array data to be stored in a virtual memory, an attribute of said array being a dimension along an array direction; the process comprising the steps of: associating segments of said virtual address space with predetermined dimensions of array data in a table, and using said table to identify a contiguous portion of said virtual address space for said array data to be store.
Claim 42
Dependent Claim 44 words
The process of claim 39 wherein said array data to be stored has a characteristic one of said predetermined dimensions, said segments being contiguous within said virtual address space and each said segment comprising a predetermined number of contiguous blocks for storing array data.
Claim 43
Dependent Claim 78 words
The process of claim 40 wherein said step of associating comprises a step of establishing lists of records for segments that have been at least partially allocated to store array data, each list being associated with a different predetermined dimension, and each record in each list being associated with a segment which has been at least partially allocated to store array data having the array data dimension associated with said list and identifying another record in said list.
Claim 44
Dependent Claim 31 words
The process of claim 41 wherein said step of associating further includes a step of establishing a list of records for segments that have not been allocated to store array data.
Claim 45
Dependent Claim 58 words
The process of claim 42 wherein said step of using comprises a step of identifying from said lists of records segments that have been at least partially allocated to store array data having said characteristic dimension or that have not been allocated to store array data to identify one or more candidate segments for storing said array data.
Claim 46
Dependent Claim 73 words
The process of claim 43 further comprising steps of: maintaining a map that identifies, for each said segment, which portions of said segment have been allocated to store array data, and providing an entry in said map associated with each said segment and a plurality of elements in each entry associated with the contiguous blocks in the corresponding segment, each element indicating whether its associated block has been allocated to store array data.
Claim 47
Dependent Claim 69 words
The process of claim 44 wherein said step of using further comprises a step of testing the elements of the map entries that correspond to said candidate segments to identify one or more contiguous elements associated with one or more contiguous blocks that have not been allocated, and determining if said one or more contiguous blocks define a dimension that is at least as large as said characteristic dimension.
Claim 48
Dependent Claim 161 words
The process of claim 45 further comprising a step of freeing a contiguous portion of said virtual address space, said freeing step comprising steps of: using said lists of records to identify at least one segment that contains at least some of said virtual address space to be freed, and accessing the entry of said map that is associated with said at least one segment to identify contiguous elements that are associated with the blocks that comprises the contiguous portion of said virtual address space to be freed, causing each one of said identified contiguous elements to indicate that its associated block has not been allocated to store array data when said contiguous portion of said virtual address spaced has been freed, and updating one or more records that identify one or more segments that correspond to the entries in the map that contain said identified contiguous elements to indicate that space in said one or more segments has been deallocated.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1997-04-04 1997-10-04 1998-04-05 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2001-04-04 2001-10-04 2002-04-05 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2005-04-04 2005-10-04 2006-04-05 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag