US5247632A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Virtual memory management arrangement for addressing multi-dimensional arrays in a digital data processing system
Assignee: Eastman Kodak Co
•
Filing: 1991-07-29
•
Granted: 1993-09-21
•
Expires: 2011-07-29
Abstract
Abstract A virtual memory management arrangement translates a process virtual address of an item of data in an array of data into a physical address for use in accessing a memory. A virtual address translation portion forms, in response to a process virtual address, an array virtual address including a sub-array identifier identifying a sub-array in the array and an array virtual offset identifying a virtual storage location in the sub-array. A physical address translation portion forms, in response to the array virtual address, a physical address for use in accessing a memory.
Inventors
- 👤 Gary H. Newman
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-30 19:31
CPC Classifications
G; G06; G06F; G06F7/00; G06F7/38; G06F7/48; G06F7/544; G06F12/00; G06F12/02; G06F12/08; G06F12/10; G06F12/0207
Claims Analysis
Total Claims: 32
Claim 1
Independent Claim
130 words
A virtual memory management apparatus for translating a process virtual address of an item of data in a multidimensional array having at least two dimensions into a physical address for use in accessing a memory, the apparatus comprising: A. a virtual address translation stage for rearranging selected fields of a process virtual address to form an array virtual address including a sub-array identifier identifying a multidimensional sub-array in said multidimensional array and an array virtual offset identifying a virtual storage location in the sub-array corresponding to said item of data; and B. a physical address translation stage connected to said virtual address translation means for translating selected fields of the array virtual address to form a physical address for use in accessing a memory which contains said item of data.
Claim 2
Dependent Claim
130 words
A virtual memory management apparatus for translating a process virtual address of an item of data in a multidimensional array having at least two dimensions into a physical address for use in accessing a memory, the apparatus comprising: A. a virtual address translation stage for rearranging selected fields of a process virtual address to form an array virtual address including a sub-array identifier identifying a multidimensional sub-array in said multidimensional array and an array virtual offset identifying a virtual storage location in the sub-array corresponding to said item of data; and B. a physical address translation stage connected to said virtual address translation means for translating selected fields of the array virtual address to form a physical address for use in accessing a memory which contains said item of data.
Claim 3
Dependent Claim
70 words
A virtual memory management arrangement as defined in claim 1 in which said process virtual address further includes a process base address portion containing a process base address pointer and said array virtual address further includes an array base address pointer portion, the virtual address translation portion generating an array base address pointer for storage in said array base address pointer portion in response to the process base address pointer.
Claim 4
Dependent Claim
241 words
A virtual memory management apparatus for translating a process virtual address of an item of data in a multidimensional array having at least two dimensions into a physical address for use in accessing a memory, the apparatus comprising: A. a virtual address translation stage for rearranging selected fields of a process virtual address to form an array virtual address including a sub-array identifier identifying a sub-array in said multidimensional array and an array virtual offset identifying a virtual storage location in the sub-array; the process virtual address comprising a plurality of dimensional pointers each of which identifies a virtual storage location in connection with a dimension of the multidimensional array, each of said dimensional pointers including a sub-array along the dimension and a sub-array offset portion pointing to the offset, within the sub-array, of the virtual storage location, said virtual address translation stage including an array virtual address formation stage that forms the array virtual address including a sub-array pointer and a sub-array offset, the sub-array pointer being formed in response to the sub-array displacement portions of all of said dimensional pointers, and the sub-array offset being formed in response to the sub-array offset portions of all of said dimensional pointers; and B. a physical address translation stage connected to said virtual address translation means for translating selected fields to the array virtual address to form a physical address for use in accessing a memory which contains said item of data.
Claim 5
Dependent Claim
241 words
A virtual memory management apparatus for translating a process virtual address of an item of data in a multidimensional array having at least two dimensions into a physical address for use in accessing a memory, the apparatus comprising: A. a virtual address translation stage for rearranging selected fields of a process virtual address to form an array virtual address including a sub-array identifier identifying a sub-array in said multidimensional array and an array virtual offset identifying a virtual storage location in the sub-array; the process virtual address comprising a plurality of dimensional pointers each of which identifies a virtual storage location in connection with a dimension of the multidimensional array, each of said dimensional pointers including a sub-array along the dimension and a sub-array offset portion pointing to the offset, within the sub-array, of the virtual storage location, said virtual address translation stage including an array virtual address formation stage that forms the array virtual address including a sub-array pointer and a sub-array offset, the sub-array pointer being formed in response to the sub-array displacement portions of all of said dimensional pointers, and the sub-array offset being formed in response to the sub-array offset portions of all of said dimensional pointers; and B. a physical address translation stage connected to said virtual address translation means for translating selected fields to the array virtual address to form a physical address for use in accessing a memory which contains said item of data.
Claim 6
Dependent Claim
59 words
A virtual memory management arrangement as defined in claim 3 in which the virtual address translation stage further includes a dimensionality map for generating dimensionality indicia defining the demarcations, within a process virtual address, between the respective dimensional pointers, the array virtual address formation stage using the dimensionality indicia to identify the dimensional pointers within the process virtual address.
Claim 7
Dependent Claim
62 words
A virtual memory management arrangement as defined in claim 4 wherein said dimensionality map includes a plurality of entries each including dimensionality information for an array, the arrangement further including a pointer store which receives a pointer to identify one of said entries, the dimensionality map using the dimensionality information in the entry identified by the pointer in generating the dimensionality indicia.
Claim 8
Dependent Claim
66 words
A virtual memory management arrangement as defined in claim 4 wherein said process virtual address further includes a process base address pointer, the dimensionality map including a plurality of entries each including dimensionality information for an array, the dimensionality map using the process base address pointer to select one of said entries and using the dimensionality information in the selected entry in generating the dimensionality indicia.
Claim 9
Dependent Claim
51 words
A virtual memory management arrangement as defined in claim 6 wherein said array virtual address further includes an array base address pointer portion, the virtual address translation portion generating an array base address pointer for storage in said array base address pointer portion in response to the process base address pointer.
Claim 10
Dependent Claim
55 words
A virtual memory management arrangement as defined in claim 3 in which the array virtual address formation stage includes a swap portion that aggregates the sub-array pointer portions of all of the dimensional pointers to form the sub-array pointer and the sub-array offset portions of all of the dimensional pointers to form the sub-array offset.
Claim 11
Dependent Claim
199 words
A virtual memory management apparatus for translating a process virtual address of an item of data in a multidimensional array having at least two dimensions into a physical address for use in accessing a memory, the apparatus comprising: A. a virtual address translation stage for rearranging selected fields of a process virtual address to form an array virtual address including a sub-array identifier identifying a sub-array in said multidimensional array and an array virtual offset identifying a virtual storage location in the sub-array corresponding to said item of data; and B. physical address translation means connected to said virtual address translation means for translating selected fields of the array virtual address to form a physical address for use in accessing a memory which contains said item of data, said physical address translation stage comprising a page number generation stage that receives a high-order portion of said array virtual address as a virtual page number and generates a response thereto a physical page number, and a page offset stage that receives a low-order portion of said array virtual address and generates in response thereto a physical offset position, the physical address comprising the physical page number and physical offset portion.
Claim 12
Dependent Claim
199 words
A virtual memory management apparatus for translating a process virtual address of an item of data in a multidimensional array having at least two dimensions into a physical address for use in accessing a memory, the apparatus comprising: A. a virtual address translation stage for rearranging selected fields of a process virtual address to form an array virtual address including a sub-array identifier identifying a sub-array in said multidimensional array and an array virtual offset identifying a virtual storage location in the sub-array corresponding to said item of data; and B. physical address translation means connected to said virtual address translation means for translating selected fields of the array virtual address to form a physical address for use in accessing a memory which contains said item of data, said physical address translation stage comprising a page number generation stage that receives a high-order portion of said array virtual address as a virtual page number and generates a response thereto a physical page number, and a page offset stage that receives a low-order portion of said array virtual address and generates in response thereto a physical offset position, the physical address comprising the physical page number and physical offset portion.
Claim 13
Dependent Claim
96 words
A virtual memory management arrangement as defined in claim 9 in which said physical address translation stage includes a page table comprising a plurality of page table entries each identifying a correspondence between a virtual page number value and a physical page number value, the page number generation portion using the virtual page number to identify a page table entry and obtain the physical page number value from the identified page table entry, the physical address translation stage using the physical page number value to generate a physical page number for use in the physical address.
Claim 14
Dependent Claim
105 words
A virtual memory management process for translating a process virtual address of an item of data in a multidimensional array having at least two dimensions into a physical address for use in accessing a memory, comprising the steps of: A. rearranging selected fields of a process virtual address to form an array virtual address including a sub-array identifier identifying a sub-array in said multidimensional array and an array virtual offset identifying a virtual storage location in the sub-array; and B. translating selected fields of the array virtual address to form a physical address for use in accessing a memory which contains said item of data.
Claim 15
Dependent Claim
105 words
A virtual memory management process for translating a process virtual address of an item of data in a multidimensional array having at least two dimensions into a physical address for use in accessing a memory, comprising the steps of: A. rearranging selected fields of a process virtual address to form an array virtual address including a sub-array identifier identifying a sub-array in said multidimensional array and an array virtual offset identifying a virtual storage location in the sub-array; and B. translating selected fields of the array virtual address to form a physical address for use in accessing a memory which contains said item of data.
Claim 16
Dependent Claim
74 words
A virtual memory management process as defined in claim 11 in which said process virtual address further includes a process base address portion containing a process base address pointer and said array virtual address further includes an array base address pointer portion, the virtual address translation step including the step of generating an array base address pointer for storage in said array base address pointer portion in response to the process base address pointer.
Claim 17
Dependent Claim
229 words
A virtual memory management process for translating a process virtual address of an item of data in a multidimensional array having at least two dimensions into a physical address for use in accessing a memory, comprising the steps of: A. rearranging selected fields of a process virtual address to form an array virtual address including a sub-array identifier identifying a sub-array in said multidimensional array and an array virtual offset identifying a virtual storage location in the sub-array; the process virtual address comprising a plurality of dimensional pointers each of which identifies a virtual storage location in connection with a dimension of the multidimensional array, each of said dimensional pointers including a sub-array displacement portion pointing to the sub-array along the dimension and a sub-array offset portion pointing to the offset, within the sub-array, of the virtual storage location; said virtual address translation step including an array virtual address formation step that forms the array virtual address including a sub-array pointer and a sub-array offset, the sub-array pointer being formed in response to the sub-array displacement portions of all of said dimensional pointers, and the sub-array offset being formed in response to the sub-array offset portions of all of said dimensional pointers; and B. translating selected fields of the array virtual address to form a physical address for use in accessing a memory which contains said item of data.
Claim 18
Dependent Claim
229 words
A virtual memory management process for translating a process virtual address of an item of data in a multidimensional array having at least two dimensions into a physical address for use in accessing a memory, comprising the steps of: A. rearranging selected fields of a process virtual address to form an array virtual address including a sub-array identifier identifying a sub-array in said multidimensional array and an array virtual offset identifying a virtual storage location in the sub-array; the process virtual address comprising a plurality of dimensional pointers each of which identifies a virtual storage location in connection with a dimension of the multidimensional array, each of said dimensional pointers including a sub-array displacement portion pointing to the sub-array along the dimension and a sub-array offset portion pointing to the offset, within the sub-array, of the virtual storage location; said virtual address translation step including an array virtual address formation step that forms the array virtual address including a sub-array pointer and a sub-array offset, the sub-array pointer being formed in response to the sub-array displacement portions of all of said dimensional pointers, and the sub-array offset being formed in response to the sub-array offset portions of all of said dimensional pointers; and B. translating selected fields of the array virtual address to form a physical address for use in accessing a memory which contains said item of data.
Claim 19
Dependent Claim
62 words
A virtual memory management process as defined in claim 13 in which the virtual address translation step further includes using a dimensionality map to generate dimensionality indicia defining the demarcations, within a process virtual address, between the respective dimensional pointers, the dimensionality indicia being used in the array virtual address formation step to identify the dimensional pointers within the process virtual address.
Claim 20
Dependent Claim
59 words
A virtual memory management process as defined in claim 14, said dimensionality map includes a plurality of entries each including dimensionality information for an array, the process further using a pointer store which receives a pointer to identify one of said entries, the dimensionality information in the entry identified by the pointer being used in generating the dimensionality indicia.
Claim 21
Dependent Claim
65 words
A virtual memory management process as defined in claim 14 wherein said process virtual address further includes a process base address pointer, the dimensionality map including a plurality of entries each including dimensionality information for an array, the process base address pointer being used to select one of said entries and the dimensionality information in the selected entry being used in generating the dimensionality indicia.
Claim 22
Dependent Claim
55 words
A virtual memory management process as defined in claim 16 wherein said array virtual address further includes an array base address pointer portion, the virtual address translation step including the step of generating an array base address pointer for storage in said array base address pointer portion in response to the process base address pointer.
Claim 23
Dependent Claim
54 words
A virtual memory management process as defined in claim 13 in which the array virtual address formation step includes the step of aggregating the sub-array pointer portions of all of the dimensional pointers to form the sub-array pointer and the sub-array offset portions of all of the dimensional pointers to form the sub-array offset.
Claim 24
Dependent Claim
160 words
A virtual memory management process for translating a process virtual address of an item of data in a multi-dimensional array having at least two dimensions into a physical address for use in accessing a memory, comprising the steps of: A. rearranging selected fields of a process virtual address to form an array virtual address including a sub-array identifier identifying a sub-array in said multi-dimensional array and an array virtual offset identifying a virtual storage location in the sub-array; and B. translating selected fields of the array virtual address to form a physical address for use in accessing a memory which contains said item of data by receiving a high-order portion of said array virtual address as a virtual page number and generating a physical page number in response thereto, and receiving a low-order portion of said array virtual address and generating a physical offset portion in response thereto, the physical address comprising a physical page number and physical offset portion.
Claim 25
Dependent Claim
160 words
A virtual memory management process for translating a process virtual address of an item of data in a multi-dimensional array having at least two dimensions into a physical address for use in accessing a memory, comprising the steps of: A. rearranging selected fields of a process virtual address to form an array virtual address including a sub-array identifier identifying a sub-array in said multi-dimensional array and an array virtual offset identifying a virtual storage location in the sub-array; and B. translating selected fields of the array virtual address to form a physical address for use in accessing a memory which contains said item of data by receiving a high-order portion of said array virtual address as a virtual page number and generating a physical page number in response thereto, and receiving a low-order portion of said array virtual address and generating a physical offset portion in response thereto, the physical address comprising a physical page number and physical offset portion.
Claim 26
Dependent Claim
88 words
A virtual memory management process as defined in claim 19 in which said physical address translation step includes the step using the virtual page number to obtain, from a page table entry in a page table comprising a plurality of page table entries each identifying a correspondence between a virtual page number value and a physical page number value, the physical page number value from a page table entry, the physical page number value being used to generate a physical page number for use in the physical address.
Claim 27
Dependent Claim
127 words
A virtual memory management apparatus for translating a process virtual address having a sequence of dimensional pointers, each dimensional pointer having a higher order portion and a lower order portion, which identify a selected item of data in a multidimensional array having at least two dimensions, into a physical address which identifies a storage location in physical memory, the apparatus comprising: a first address translation means for deriving from the higher order portion of each said dimensional pointer, a first pointer which identifies a sub-array of data items which includes said selected item, and a second address translation means for deriving from the lower order portion of each said dimensional pointer, a second pointer which identifies said selected item of data in said sub-array of data items.
Claim 28
Dependent Claim
127 words
A virtual memory management apparatus for translating a process virtual address having a sequence of dimensional pointers, each dimensional pointer having a higher order portion and a lower order portion, which identify a selected item of data in a multidimensional array having at least two dimensions, into a physical address which identifies a storage location in physical memory, the apparatus comprising: a first address translation means for deriving from the higher order portion of each said dimensional pointer, a first pointer which identifies a sub-array of data items which includes said selected item, and a second address translation means for deriving from the lower order portion of each said dimensional pointer, a second pointer which identifies said selected item of data in said sub-array of data items.
Claim 29
Dependent Claim
47 words
The virtual memory management apparatus of claim 21 wherein said address translation means comprises a swapping means for concatenating said higher order portions of each dimensional pointer to form said first pointer and for concatenating said lower portions of said dimensional pointer to form said second pointer.
Claim 30
Dependent Claim
45 words
The virtual memory management apparatus of claim 21 further comprising a dimensionality map for generating dimensionality indicia defining demarcations, within a process address, between the respective dimensional pointers, the address translation means using the dimensionality indicia to identify the dimensional pointers within the process address.
Claim 31
Dependent Claim
65 words
The virtual memory management apparatus of claim 23 wherein said dimensionality map includes a plurality of entries each including dimensionality information for an array, and wherein the virtual memory management apparatus further comprises a pointer store which receives a pointer to identify one of said entries, the dimensionality map using the dimensionality information in the entry identified by the pointer in generating the dimensionality indicia.
Claim 32
Dependent Claim
63 words
The virtual memory management apparatus of claim 23 wherein said process address further includes a process base address pointer, wherein the dimensionality map includes a plurality of entries each including dimensionality information for an array, the dimensionality map using the process address pointer to select one of said entries and using the dimensionality information in the selected entry in generating the dimensionality indicia.
References Cited (Backward Citations)
US4296468A
Cited
US4356549A
Cited
US4466056A
Cited
US4618858A
Cited
US4638426A
Cited
US4680700A
Cited
US4763244A
Cited
US4800489A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1996-09-20 | 1997-03-22 | 1997-09-21 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2000-09-20 | 2001-03-22 | 2001-09-21 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2004-09-20 | 2005-03-22 | 2005-09-21 | $7700.00 | Window Closed / Lapsed |