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

Virtual memory system for vector based computer systems

Assignee: Cray Inc
•
Filing: 1996-09-03
•
Granted: 1999-04-20
•
Expires: 2016-09-03
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A virtual memory management system for a vector based processing system detects early page or segment faults allowing pipelined instructions to be halted and resumed once the pages or segments required for a job are available in main storage. A multiplier is used for stride accesses, and min and max registers are used for gather/scatter instructions to provide a range of addresses to be accessed during a job. These ranges are determined early enough in execution of instructions related to a job to allow saving the state of the processor and resuming execution of the instructions once the data is available in main storage.

Inventors

  • 👤 James E. Smith

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 15:00
CPC Classifications
G; G06; G06F; G06F15/00; G06F15/76; G06F15/80; G06F15/8053; G06F15/8076; G06F15/8084; G06F12/00; G06F12/02; G06F12/08; G06F12/10; G06F12/1027; G06F2212/00; G06F2212/65; G06F2212/652

Claims Analysis

Total Claims: 40
Claim 1
Independent Claim 112 words
A virtual memory system for a vector based computer system performing operations on vectors of operands, the memory system comprising: a main memory addressed by real addresses; a vector register for storing multiple virtual addresses of operands; a data block lookup table coupled to the vector register for receiving at least a portion of each operand address, said table comprising information identifying operands present in main memory; a range finder containing information related to a range of addresses in the vector register; and a comparator coupled to the data block lookup table and to the range finder for determining if the operands in the vector register are present in the main memory.
Claim 2
Dependent Claim 112 words
A virtual memory system for a vector based computer system performing operations on vectors of operands, the memory system comprising: a main memory addressed by real addresses; a vector register for storing multiple virtual addresses of operands; a data block lookup table coupled to the vector register for receiving at least a portion of each operand address, said table comprising information identifying operands present in main memory; a range finder containing information related to a range of addresses in the vector register; and a comparator coupled to the data block lookup table and to the range finder for determining if the operands in the vector register are present in the main memory.
Claim 3
Dependent Claim 45 words
The virtual memory system of claim 1 wherein the computer system performs an operation on an operand during a clock cycle, and the comparator makes its determination within a few clock cycles of the start of an operation on a first operand in a vector.
Claim 4
Dependent Claim 32 words
The virtual memory system of claim 1 wherein the data block lookup table comprises a page Translation lookaside buffer, and wherein data is stored in the main memory in a page format.
Claim 5
Dependent Claim 24 words
The virtual memory system of claim 3 wherein the page size is variable between jobs and is fixed for data used within a job.
Claim 6
Dependent Claim 21 words
The virtual memory system of claim 4 wherein the page size for instructions is different than the page size for data.
Claim 7
Dependent Claim 55 words
The virtual memory system of claim 3 wherein the range finder comprises: a max register for identifying the maximum address of pages required to perform operations on all operands in the vector register; and a min register for identifying the minimum address of pages required to perform operations on all operands in the vector register.
Claim 8
Dependent Claim 73 words
The virtual memory system of claim 6 wherein the range finder further comprises: a vector length register for identifying the number of operands in the vector register; a stride register for indicating the number of operands in the vector register to skip while performing operations; and a multiplier for multiplying the values in the vector length register times the stride register to identify a maximum address range of operands in the vector register.
Claim 9
Dependent Claim 48 words
The virtual memory system of claim 7 wherein the range finder further comprises a multiplexor coupled to the multiplier and to the min and max registers for multiplexing the values provided by the multiplier and registers to the comparator based on the type of operation to be performed.
Claim 10
Dependent Claim 78 words
The virtual memory system of claim 3 wherein the page Translation lookaside buffer comprises multiple fields comprising: a base address identifying the beginning of a referenced page in main memory; an upper range identifying the number of pages at higher addresses that are physically contiguous with the referenced page; a lower range identifying the number of pages at lower addresses that are physically contiguous with the referenced page; and a tag for associative lookup of the referenced page.
Claim 11
Dependent Claim 27 words
The virtual memory system of claim 9 wherein the page Translation lookaside buffer fields further comprise a plurality of access bits to control access to the page.
Claim 12
Dependent Claim 16 words
The virtual memory system of claim 10 wherein the page Translation lookaside buffer is set associative.
Claim 13
Dependent Claim 38 words
The virtual memory system of claim 10 wherein the page Translation lookaside buffer fields further comprise a page size field for identifying the size of a referenced page such that multiple page sizes are usable within a job.
Claim 14
Dependent Claim 16 words
The virtual memory system of claim 12 wherein the page Translation lookaside buffer is fully associative.
Claim 15
Dependent Claim 32 words
The virtual memory system of claim 1 wherein the data block lookup table comprises a segment Translation lookaside buffer, and wherein data is stored in the main memory in a segment format.
Claim 16
Dependent Claim 28 words
The virtual memory system of claim 14 wherein each logical address comprises a segment identifier and the segment Translation lookaside buffer is addressed based on the segment identifier.
Claim 17
Dependent Claim 16 words
The virtual memory system of claim 15 wherein the segment size is variable within each job.
Claim 18
Dependent Claim 38 words
The virtual memory system of claim 14 wherein each logical address comprises a segment identifier and the segment Translation lookaside buffer is n-way associatively addressed based on the segment identifier where n is an integer greater than 1.
Claim 19
Dependent Claim 22 words
The virtual memory system of claim 17 wherein the segment Translation lookaside buffer provides for up to n ranges for each segment.
Claim 20
Dependent Claim 9 words
The virtual memory system of claim 18 wherein n=4.
Claim 21
Dependent Claim 64 words
The virtual memory system of claim 14 wherein the segment Translation lookaside buffer comprises multiple fields comprising: a base address identifying the beginning of a referenced segment resident in main memory; an upper range identifying the upper extent of the segment that is resident in main memory; and a lower range identifying the lower extent of the segment that is resident in main memory.
Claim 22
Dependent Claim 28 words
The virtual memory system of claim 20 wherein the segment Translation lookaside buffer fields further comprise a plurality of access bits to control access to the referenced segment.
Claim 23
Dependent Claim 57 words
The virtual memory system of claim 14 wherein the range finder comprises: a max register for identifying the maximum offset from a base address to be referenced by a gather/scatter operation on the vector; and a min register for identifying the minimum offset from the base address to be referenced by a gather/scatter operation on the vector.
Claim 24
Dependent Claim 73 words
The virtual memory system of claim 22 wherein the range finder further comprises: a vector length register for identifying the number of operands in the vector register; a stride register for indicating the number of operands in the vector register to skip while performing operations; and a multiplier for multiplying the values in the vector length register times the stride register to identify a maximum address range of operands in the vector register.
Claim 25
Dependent Claim 48 words
The virtual memory system of claim 23 wherein the range finder further comprises a multiplexor coupled to the multiplier and to the min and max registers for multiplexing the values provided by the multiplier and registers to the comparator based on the type of operation to be performed.
Claim 26
Independent Claim 140 words
A method of detecting faults for a virtual memory system for a vector based computer system comprising a main memory, a vector register containing multiple virtual addresses referencing operands, and a real address lookup table, comprising the steps of: receiving a virtual address; determining via the lookup table the real address based on a portion of the virtual address and a range of addresses of operands resident in main memory; identifying a range of addresses required to perform operations on the operands referenced in the vector register; comparing the addresses required to perform operations on the operands referenced in the vector register with the range of addresses of operands residing in main memory; and generating a recoverable trap if all such operands required are not resident in main memory within a few clock cycles following the beginning of the operation.
Claim 27
Independent Claim 140 words
A method of detecting faults for a virtual memory system for a vector based computer system comprising a main memory, a vector register containing multiple virtual addresses referencing operands, and a real address lookup table, comprising the steps of: receiving a virtual address; determining via the lookup table the real address based on a portion of the virtual address and a range of addresses of operands resident in main memory; identifying a range of addresses required to perform operations on the operands referenced in the vector register; comparing the addresses required to perform operations on the operands referenced in the vector register with the range of addresses of operands residing in main memory; and generating a recoverable trap if all such operands required are not resident in main memory within a few clock cycles following the beginning of the operation.
Claim 28
Dependent Claim 29 words
The method of claim 25 wherein the data lookup table comprises a page Translation lookaside buffer, and wherein data is stored in the main memory in a page format.
Claim 29
Dependent Claim 22 words
The method of claim 26 wherein the page size is variable between jobs and is fixed for data used within a job.
Claim 30
Dependent Claim 19 words
The method of claim 27 wherein the page size for instructions is different than the page size for operands.
Claim 31
Dependent Claim 69 words
The method of claim 26 wherein the step of identifying a range of addresses required to perform operations on the operands referenced in the vector register further comprises: identifying the number of operands in the vector register; identifying a stride value; and multiplying the number of operands in the vector register times the stride value to identify the maximum address range of operands to be used in an operation.
Claim 32
Dependent Claim 71 words
The method of claim 26 wherein the step of identifying a range of addresses required to perform operations on the operands referenced in the vector register further comprises: scanning the vector register for the maximum address of pages required to perform operations on all operands in the vector register; and scanning the vector register for the minimum address of pages required to perform operations on all operands in the vector register.
Claim 33
Dependent Claim 28 words
The method of claim 25 wherein the lookup table comprises a segment Translation lookaside buffer, and wherein data is stored in the main memory in a segment format.
Claim 34
Dependent Claim 13 words
The method of claim 31 wherein the length of the segments is variable.
Claim 35
Dependent Claim 26 words
The method of claim 32 wherein the segment table identifies at least one window of contiguous data within a segment that is resident in main memory.
Claim 36
Dependent Claim 36 words
The method of claim 33 wherein each logical address comprises a segment identifier and the segment Translation lookaside buffer is n-way associatively addressed based on the segment identifier where n is an integer greater than 1.
Claim 37
Dependent Claim 18 words
The method of claim 34 wherein the segment table provides for up to n windows for each segment.
Claim 38
Dependent Claim 7 words
The method of claim 35 wherein n=4.
Claim 39
Dependent Claim 71 words
The virtual memory system of claim 31 wherein the step of identifying a range of addresses required to perform operations on the operands referenced in the vector register further comprises: identifying the number of operands in the vector register; identifying a stride value; and multiplying the number of operands in the vector register times the stride value to identify the maximum address range of operands to be used in an operation.
Claim 40
Dependent Claim 73 words
The virtual memory system of claim 31 wherein the step of identifying a range of addresses required to perform operations on the operands referenced in the vector register further comprises: scanning the vector register for the maximum real address range required to perform operations on all operands in the vector register; and scanning the vector register for the minimum real address range required to perform operations on all operands in the vector register.

References Cited (Backward Citations)

US4128880A Cited
US4661900A Cited
US4768146A Cited
US5063497A Cited
US4991083A Cited
US5430856A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-04-19 2002-10-19 2003-04-20 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-04-19 2006-10-19 2007-04-20 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-04-19 2010-10-19 2011-04-20 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag