Binary tree parallel processor
DCFirst Claim
1. A parallel processor array comprising:
- a plurality of processing elements, each comprising;
a processor having an arithmetic logic unit, control store, program sequences and instruction decoder;
a read/write memory associated with said processor;
an input/output means associated with said processor and read/write memory;
means for interconnecting said processing elements in a binary tree in which each processing element except those at extremities of the binary tree is connected to one parent processing element and at least first and second child processing elements;
said input/output means comprising;
means for broadcasting information received from a parent processing element to said child processing elements, such that common information is distributed to each processing element of the binary tree or a subtree thereof without direct control of the processors of the processing elements; and
means for determining a priority among respective values of information received from said child processing elements and information received from the processor with which said input/output means is associated without direct control of the processors of the processing elements;
wherein the input/output means of the processing elements connected in said binary tree cooperate so that information is broadcast from a first parent processing element to the child processing elements in said binary tree or subtree that are most remote from said first parent processing element, and a priority is determined among values of information at each processing element in said binary tree or subtree, each in a time on the order of the logarithm of the number of processing elements in said binary tree or subtree multiplied by the time for the broadcasting of information from a parent processing element to child processing elements connected thereto, and the time required to determine priority amoung values of information received from the processor of a processing element and the child processing elements connected thereto, respectively.
3 Assignments
Litigations
0 Petitions
Accused Products
Abstract
A plurality of parallel processing elements are connected in a binary tree configuration, with each processing element except those in the highest and lowest levels being in communication with a single parent processing element as well as first and second (or left and right) child processing elements. Each processing element comprises a processor, a read/write or random access memory, and an input/output (I/O) device. The I/O device provides interfacing between each processing element and its parent and children processing elements so as to provide significant improvements in propagation speeds through the binary tree. The I/O device allows the presently preferred embodiment of the invention to be clocked at 12 megahertz, producing in the case of a tree of 1023 processors, each having an average instruction cycle time of 1.8 μs, a system with a raw computational throughput of approximately 570 million instructions per second. The I/O device communicates data and queries from the root processing element to all other N processing elements in the array in one processor instruction cycle instead of in O(log2 N) processor instruction cycles as in prior art binary tree arrays. Primitive queries are executed in parallel by each processing element and the results made available for reporting back to the root processing element. In several important cases, these results can be combined and reported back to the root processing element in a single processor instruction cycle instead of in O(log2 N) processor instruction cycles as in prior art binary tree arrays. Thus, the elapsed time for a broadcast and report operation is in effect a constant time regardless of the number of processors in the array.
354 Citations
9 Claims
-
1. A parallel processor array comprising:
-
a plurality of processing elements, each comprising; a processor having an arithmetic logic unit, control store, program sequences and instruction decoder; a read/write memory associated with said processor; an input/output means associated with said processor and read/write memory; means for interconnecting said processing elements in a binary tree in which each processing element except those at extremities of the binary tree is connected to one parent processing element and at least first and second child processing elements; said input/output means comprising; means for broadcasting information received from a parent processing element to said child processing elements, such that common information is distributed to each processing element of the binary tree or a subtree thereof without direct control of the processors of the processing elements; and means for determining a priority among respective values of information received from said child processing elements and information received from the processor with which said input/output means is associated without direct control of the processors of the processing elements; wherein the input/output means of the processing elements connected in said binary tree cooperate so that information is broadcast from a first parent processing element to the child processing elements in said binary tree or subtree that are most remote from said first parent processing element, and a priority is determined among values of information at each processing element in said binary tree or subtree, each in a time on the order of the logarithm of the number of processing elements in said binary tree or subtree multiplied by the time for the broadcasting of information from a parent processing element to child processing elements connected thereto, and the time required to determine priority amoung values of information received from the processor of a processing element and the child processing elements connected thereto, respectively. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
Specification