US5193202A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Processor array with relocated operand physical address generator capable of data transfer to distant physical processor for each virtual processor while simulating dimensionally larger array processor
Assignee: WAVETRACER Inc A CORP OF
•
Filing: 1990-05-29
•
Granted: 1993-03-09
•
Expires: 2010-05-29
Abstract
Abstract A parallel processing system including a virtual processing instruction and address generator, for generating processor cell instructions to a parallel processing array such as a multi-dimensional processor array which may have fewer processor cells than the number of nodes in the problem space. The system partitions the memory of each physical processor cell into several equal sections, each section being associated with one node of the problem space. The instruction generator then produces a sequence of processor cell instructions for each node of the given problem space, with appropriate address modifications for each sequence of instructions provided by an address relocation circuit.
Inventors
- 👤 James H. Jackson
- 👤 Ming-Chih Lee
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-31 16:40
CPC Classifications
G; G06; G06F; G06F15/00; G06F15/76; G06F15/80; G06F15/8007
Claims Analysis
Total Claims: 12
Claim 1
Independent Claim
587 words
A parallel processing system including a virtual processing instruction and address generator, for generating a plurality of processor cell instructions and corresponding physical processor cell operand memory addresses for a multi-dimensional processor array having at least one physical dimension that differs from a corresponding multi-dimensional problem dimension selectable from a plurality of multi-dimensional problem dimensions, comprising: a multi-dimensional processor array including a predetermined number of physical processor cells arranged in a multi-dimensional array having predetermined dimensions, each physical processor cell having a predetermined amount of associated memory; means for providing said plurality of selectable multi-dimensional problem dimensions; means, responsive to the means for providing the plurality of selectable multi-dimensional problem dimensions and to the predetermined number of physical processor cells arranged in said multi-dimensional array having said predetermined dimensions, for assigning, for each dimension of said plurality of selectable multi-dimensional problem dimensions, a number of virtual processors to be associated with each of said predetermined number of physical processor cells, and for arranging, for each physical processor cell, said number of virtual processors in a predetermined multi-dimensional configuration as a function of said plurality of selectable multi-dimensional problem dimensions and of the predetermined number of physical processor cells, and for forming a multi-dimensional array of virtual processor cells having a plurality of multi-dimensional dimensions corresponding to said plurality of selectable multi-dimensional problem dimensions; means, responsive to the means for assigning the number of virtual processors to be associated with each of said predetermined number of physical processor cells and to said arrangement of said number of virtual processors in a predetermined multi-dimensional configuration, for partitioning said predetermined amount of associated physical processor cell memory into a number of virtual processor memory segments corresponding to the number of virtual processors associated with each physical processor cell, for defining the address space of each virtual processor associated with each physical processor cell, and for defining, for each virtual processor, a physical processor cell memory address corresponding to a base virtual processor operand memory address defining the beginning operand memory address for each of said number of virtual processors associated with each physical processor cell; means for providing one or more processor cell instructions, each of said processor cell instructions including operand address data; means, responsive to said means for providing one or more processor cell instructions, for providing a virtual operand memory address for each operand to be processed by each virtual processor of said multi-dimensional array of virtual processors as directed by each processor cell instruction; means, responsive to said means for providing each of said virtual operand memory addresses and to said means for defining said virtual processor base memory addresses, for summing each virtual operand memory address with a virtual processor base memory address, to produce a physical processor cell address relocated operand memory address for directly addressing within each physical processor cell, each virtual processor operand to be processed, and for any given processor cell instruction requiring operand data movement, for providing for each address relocated operand memory address, a value indicating the relative physical processor cell distance to be moved in each dimension; means, responsive to said means for producing the physical processor cell address relocated operand memory address of each operand to be processed, and to said means for providing one or more processor cell instructions, for merging a processor cell instruction with a corresponding physical processor cell address relocated operand memory address, to produce an address relocated processor cell instruction to be broadcast to each virtual processor cell of the processor array.
Claim 2
Dependent Claim
587 words
A parallel processing system including a virtual processing instruction and address generator, for generating a plurality of processor cell instructions and corresponding physical processor cell operand memory addresses for a multi-dimensional processor array having at least one physical dimension that differs from a corresponding multi-dimensional problem dimension selectable from a plurality of multi-dimensional problem dimensions, comprising: a multi-dimensional processor array including a predetermined number of physical processor cells arranged in a multi-dimensional array having predetermined dimensions, each physical processor cell having a predetermined amount of associated memory; means for providing said plurality of selectable multi-dimensional problem dimensions; means, responsive to the means for providing the plurality of selectable multi-dimensional problem dimensions and to the predetermined number of physical processor cells arranged in said multi-dimensional array having said predetermined dimensions, for assigning, for each dimension of said plurality of selectable multi-dimensional problem dimensions, a number of virtual processors to be associated with each of said predetermined number of physical processor cells, and for arranging, for each physical processor cell, said number of virtual processors in a predetermined multi-dimensional configuration as a function of said plurality of selectable multi-dimensional problem dimensions and of the predetermined number of physical processor cells, and for forming a multi-dimensional array of virtual processor cells having a plurality of multi-dimensional dimensions corresponding to said plurality of selectable multi-dimensional problem dimensions; means, responsive to the means for assigning the number of virtual processors to be associated with each of said predetermined number of physical processor cells and to said arrangement of said number of virtual processors in a predetermined multi-dimensional configuration, for partitioning said predetermined amount of associated physical processor cell memory into a number of virtual processor memory segments corresponding to the number of virtual processors associated with each physical processor cell, for defining the address space of each virtual processor associated with each physical processor cell, and for defining, for each virtual processor, a physical processor cell memory address corresponding to a base virtual processor operand memory address defining the beginning operand memory address for each of said number of virtual processors associated with each physical processor cell; means for providing one or more processor cell instructions, each of said processor cell instructions including operand address data; means, responsive to said means for providing one or more processor cell instructions, for providing a virtual operand memory address for each operand to be processed by each virtual processor of said multi-dimensional array of virtual processors as directed by each processor cell instruction; means, responsive to said means for providing each of said virtual operand memory addresses and to said means for defining said virtual processor base memory addresses, for summing each virtual operand memory address with a virtual processor base memory address, to produce a physical processor cell address relocated operand memory address for directly addressing within each physical processor cell, each virtual processor operand to be processed, and for any given processor cell instruction requiring operand data movement, for providing for each address relocated operand memory address, a value indicating the relative physical processor cell distance to be moved in each dimension; means, responsive to said means for producing the physical processor cell address relocated operand memory address of each operand to be processed, and to said means for providing one or more processor cell instructions, for merging a processor cell instruction with a corresponding physical processor cell address relocated operand memory address, to produce an address relocated processor cell instruction to be broadcast to each virtual processor cell of the processor array.
Claim 3
Dependent Claim
13 words
The system of claim 1 wherein said multi-dimensional array includes a three-dimensional array.
Claim 4
Dependent Claim
22 words
The system of claim 1 wherein said means for providing the plurality of selectable multi-dimensional problem dimensions includes a front end processor.
Claim 5
Dependent Claim
71 words
The system of claim 1 wherein said means for defining a physical processor cell memory address corresponding to the base virtual processor operand memory address of each virtual processor, defines at least one of the base operand memory address of a source virtual processor from which an operand is to be fetched, and the base operand memory address of a destination virtual processor in which an operand is to be stored.
Claim 6
Dependent Claim
34 words
The system of claim 1 wherein each of said processor cell instructions includes at least a processor cell operand address segment including a virtual operand memory address and a processor cell instruction control segment.
Claim 7
Dependent Claim
51 words
The system of claim 5 wherein said means for merging a processor cell instruction with a corresponding physical processor cell address relocated operand memory address adds the physical processor cell address relocated operand memory address to the virtual operand address included in the address segment of a corresponding processor cell instruction.
Claim 8
Dependent Claim
28 words
The system of claim 1 wherein said system includes N virtual processors per physical processor cell; and further including means for executing each processor cell instruction N times.
Claim 9
Dependent Claim
35 words
The system of claim 7 wherein said means for executing each processor cell instruction changes the virtual processor base memory address N times, once for each of said N virtual processors per physical processor cell.
Claim 10
Dependent Claim
49 words
The system of claim 1 wherein said means for arranging said number of virtual processors in a predetermined, multi-dimensional configuration determines said predetermined, multi-dimensional virtual processor configuration by dividing the selectable multi-dimensional problem dimension to be solved by the multi-dimensional size of the multi-dimensional array of physical processor cells.
Claim 11
Dependent Claim
642 words
A parallel processing system including a virtual processing instruction and address generator, for generating a plurality of processor cell instructions and corresponding physical processor cell operand memory addresses for a multi-dimensional processor array having at least one physical dimension that differs from a corresponding multi-dimensional problem dimension selectable from a plurality of multi-dimensional problem dimensions, comprising: a multi-dimensional processor array including a predetermined number of physical processor cells arranged in a multi-dimensional array having predetermined dimensions, each physical processor cell having a predetermined amount of associated memory; means for providing said plurality of selectable multi-dimensional problem dimensions; means, responsive to the means for providing the plurality of selectable multi-dimensional problem dimensions and to the predetermined number of physical processor cells arranged in said multi-dimensional array having said predetermined dimensions, for assigning, for each dimension of said plurality of selectable multi-dimensional problem dimensions, a number of virtual processors to be associated with each of said predetermined number of physical processor cells, and for arranging, for each physical processor cell, said number of virtual processors in a predetermined multi-dimensional configuration as a function of said plurality of selectable multi-dimensional problem dimensions and of the predetermined number of physical processor cells, and for forming a multi-dimensional array of virtual processor cells having a plurality of multi-dimensional dimensions corresponding to said plurality of selectable multi-dimensional problem dimensions; means, responsive to the means for assigning the number of virtual processors to be associated with each of said predetermined number of physical processor cells and to said arrangement of said number of virtual processors in a predetermined multi-dimensional configuration, for partitioning said predetermined amount of associated physical processor cell memory into a number of virtual processor memory segments corresponding to the number of virtual processors associated with each physical processor cell, for defining the address space of each virtual processor associated with each physical processor cell, and for defining, for each virtual processor, a physical processor cell memory address corresponding to a base virtual processor operand memory address defining the beginning operand memory address for each of said number of virtual processors associated with each physical processor cell, said base virtual processor operand memory address including at least one of a base virtual processor source operand memory address, defining a source virtual processor from which an operand is to be fetched, and a base virtual processor destination operand memory address defining a destination virtual processor in which an operand is to be stored; means for providing one or more processor cell instructions, each of said processor cell instructions including operand address data; means, responsive to said means for providing one or more processor cell instructions, for providing a virtual operand memory address for each operand to be processed by each virtual processor of said multi-dimensional array of virtual processors as directed by each processor cell instruction; means, responsive to said means for providing each of said virtual operand memory addresses and to said means for defining said virtual processor base memory addresses, for summing each virtual operand memory address with a virtual processor base memory address, to produce a physical processor cell address relocated operand memory address for directly addressing within each physical processor cell, each virtual processor operand to be processed, and for any given processor cell instruction requiring operand data movement, for providing for each address relocated operand memory address, a value indicating the relative physical processor cell distance to be moved in each dimension; means, responsive to said means for producing the physical processor cell address relocated operand memory address of each operand to be processed, and to said means for providing one or more processor cell instructions, for merging a processor cell instruction with a corresponding physical processor cell address relocated operand memory address, to produce an address relocated processor cell instruction to be broadcast to each virtual processor cell of the processor array.
Claim 12
Dependent Claim
642 words
A parallel processing system including a virtual processing instruction and address generator, for generating a plurality of processor cell instructions and corresponding physical processor cell operand memory addresses for a multi-dimensional processor array having at least one physical dimension that differs from a corresponding multi-dimensional problem dimension selectable from a plurality of multi-dimensional problem dimensions, comprising: a multi-dimensional processor array including a predetermined number of physical processor cells arranged in a multi-dimensional array having predetermined dimensions, each physical processor cell having a predetermined amount of associated memory; means for providing said plurality of selectable multi-dimensional problem dimensions; means, responsive to the means for providing the plurality of selectable multi-dimensional problem dimensions and to the predetermined number of physical processor cells arranged in said multi-dimensional array having said predetermined dimensions, for assigning, for each dimension of said plurality of selectable multi-dimensional problem dimensions, a number of virtual processors to be associated with each of said predetermined number of physical processor cells, and for arranging, for each physical processor cell, said number of virtual processors in a predetermined multi-dimensional configuration as a function of said plurality of selectable multi-dimensional problem dimensions and of the predetermined number of physical processor cells, and for forming a multi-dimensional array of virtual processor cells having a plurality of multi-dimensional dimensions corresponding to said plurality of selectable multi-dimensional problem dimensions; means, responsive to the means for assigning the number of virtual processors to be associated with each of said predetermined number of physical processor cells and to said arrangement of said number of virtual processors in a predetermined multi-dimensional configuration, for partitioning said predetermined amount of associated physical processor cell memory into a number of virtual processor memory segments corresponding to the number of virtual processors associated with each physical processor cell, for defining the address space of each virtual processor associated with each physical processor cell, and for defining, for each virtual processor, a physical processor cell memory address corresponding to a base virtual processor operand memory address defining the beginning operand memory address for each of said number of virtual processors associated with each physical processor cell, said base virtual processor operand memory address including at least one of a base virtual processor source operand memory address, defining a source virtual processor from which an operand is to be fetched, and a base virtual processor destination operand memory address defining a destination virtual processor in which an operand is to be stored; means for providing one or more processor cell instructions, each of said processor cell instructions including operand address data; means, responsive to said means for providing one or more processor cell instructions, for providing a virtual operand memory address for each operand to be processed by each virtual processor of said multi-dimensional array of virtual processors as directed by each processor cell instruction; means, responsive to said means for providing each of said virtual operand memory addresses and to said means for defining said virtual processor base memory addresses, for summing each virtual operand memory address with a virtual processor base memory address, to produce a physical processor cell address relocated operand memory address for directly addressing within each physical processor cell, each virtual processor operand to be processed, and for any given processor cell instruction requiring operand data movement, for providing for each address relocated operand memory address, a value indicating the relative physical processor cell distance to be moved in each dimension; means, responsive to said means for producing the physical processor cell address relocated operand memory address of each operand to be processed, and to said means for providing one or more processor cell instructions, for merging a processor cell instruction with a corresponding physical processor cell address relocated operand memory address, to produce an address relocated processor cell instruction to be broadcast to each virtual processor cell of the processor array.
References Cited (Backward Citations)
US3597744A
Cited
US3891836A
Cited
US3970993A
Cited
US4011545A
Cited
US4247892A
Cited
US4507726A
Cited
US4667308A
Cited
US4739474A
Cited
US4709327A
Cited
US5129077A
Cited
US5123109A
Cited
US4598400A
Cited
US4814973A
Cited
US4697247A
Cited
US4621339A
Cited
US4905143A
Cited
US4805091A
Cited
US4739476A
Cited
US4720780A
Cited
US4811210A
Cited
US4809202A
Cited
US4773038A
Cited
US4814980A
Cited
US4729095A
Cited
US4809347A
Cited
US4809346A
Cited
US4791567A
Cited
US4766534A
Cited
US4811214A
Cited
US4827403A
Cited
US4796199A
Cited
US5058001A
Cited
US4996648A
Cited
US4939642A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1996-03-08 | 1996-09-07 | 1997-03-09 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2000-03-08 | 2000-09-07 | 2001-03-09 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2004-03-08 | 2004-09-07 | 2005-03-09 | $7700.00 | Window Closed / Lapsed |