← Back to Patent Explorer
US4922418A Expired / Lapsed US ⏱️ 0.0 years remaining

Method for controlling propogation of data and transform through memory-linked wavefront array processor

Assignee: Johns Hopkins University
•
Filing: 1988-01-15
•
Granted: 1990-05-01
•
Expires: 2008-01-15
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method for performing computations with an asynchronous linear array of multiple processing stages is disclsoed. The linear array comprises multiple processing stages interspersed with flow control flag mechanisms and with dual port linking memories. The method utilizes the flow control flag mechanisms between processing stages to control the flow of computations through the array.

Inventors

  • 👤 Quentin E. Dolecek

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-26 07:30
CPC Classifications
G; G06; G06F; G06F15/00; G06F15/76; G06F15/80; G06F15/8046; G06F15/16; G06F15/163; G06F15/173; G06F15/17356; G06F15/17368; G06F15/17381

Claims Analysis

Total Claims: 12
Claim 1
Independent Claim 296 words
A method for controlling propagation of data and transforms through a linear array of multiple processing elements interspersed with linking dual port memories where each dual port memory can be accessed simultaneously and without contention by processing elements located on its left and right and where each processing element can be locally controlled by at least one flow control flag corresponding to each particular dual port memory located adjacent thereto and said flow control flag is selectively controlled by processing elements to the right and left of the dual port memory, said method comprising the steps of: propagating data and transforms through the array by performing the following steps with each processing element, (a) selectively accessing data from one of its adjacent dual-port memories; (b) transforming the data and (c) storing the transformed data in the other adjacent dual port memory; all as required by a program sequence stored in that processing element; and, controlling the propagation of data transforms through the array by performing the following steps with each processing element, (a) testing said at least one flow control flag as part of a program sequence instruction if required by the program sequence stored in that processing element; however, if such testing is not required by the program sequence, going directly to step (d) below; (b) suspending operation of the program sequence at that instruction if a tested flow control flag is false; (c) automatically and without further testing completing the instruction when all tested flow control flags are true; (d) continuing the program sequence to perform memory access, data transformation and propagation; and (e) changing a state of at least one flow control flag associated with that processing element's adjacent dual port memory as required by the program sequence stored in that processing element.
Claim 2
Independent Claim 296 words
A method for controlling propagation of data and transforms through a linear array of multiple processing elements interspersed with linking dual port memories where each dual port memory can be accessed simultaneously and without contention by processing elements located on its left and right and where each processing element can be locally controlled by at least one flow control flag corresponding to each particular dual port memory located adjacent thereto and said flow control flag is selectively controlled by processing elements to the right and left of the dual port memory, said method comprising the steps of: propagating data and transforms through the array by performing the following steps with each processing element, (a) selectively accessing data from one of its adjacent dual-port memories; (b) transforming the data and (c) storing the transformed data in the other adjacent dual port memory; all as required by a program sequence stored in that processing element; and, controlling the propagation of data transforms through the array by performing the following steps with each processing element, (a) testing said at least one flow control flag as part of a program sequence instruction if required by the program sequence stored in that processing element; however, if such testing is not required by the program sequence, going directly to step (d) below; (b) suspending operation of the program sequence at that instruction if a tested flow control flag is false; (c) automatically and without further testing completing the instruction when all tested flow control flags are true; (d) continuing the program sequence to perform memory access, data transformation and propagation; and (e) changing a state of at least one flow control flag associated with that processing element's adjacent dual port memory as required by the program sequence stored in that processing element.
Claim 3
Dependent Claim 149 words
The method of claim 1, wherein each said linking dual port memory has a plurality of buffers with each buffer having a different base address, and wherein said step of propagating data and transforms involves the steps of: (a) selectively accessing data from each of a plurality of memory buffers in the processing element's adjacent dual port memory as required by the program sequence and in accordance with an address sequence generated by an addresses generator using the base address of the elected buffers; (b) transforming data read from each of said buffers as required by said program sequence; and, (c) selectively storing the transformed data into each of a plurality of memory buffers in the processing element's other adjacent dual port memory as required by the program sequence and in accordance with an address sequence generated by said address generator using the base addresses of the elected buffers.
Claim 4
Dependent Claim 27 words
The method of claim 2, wherein said steps of selectively accessing, transforming and selecting storing are performed sequentially on different buffers, as required by the program sequence.
Claim 5
Dependent Claim 20 words
The method of claim 2, wherein the address sequence generated from a particular base address is a bit reversed sequence.
Claim 6
Dependent Claim 31 words
The method of claim 1, wherein the program sequence calls for each processing element to transform data according to a same function, thereby simulating multidimensional array calculations within said linear array.
Claim 7
Dependent Claim 34 words
The method of claim 1, wherein the step of propagating data and transforms involves selectively propagating from right to left and left to right within the linear array, as required by the program sequence.
Claim 8
Dependent Claim 31 words
The method of claim 1, wherein said step of testing at least one control flag involves simultaneously testing a control flag associated with each of the processing elements dual port memories.
Claim 9
Dependent Claim 36 words
The method of claim 1, wherein said step of testing at least one control flag involves sequentially testing control flags associated with each of the processing elements dual port memories, as required by the program sequence.
Claim 10
Dependent Claim 62 words
The method of claim 1, wherein each dual port memory has at least two control flags corresponding therewith and said step of testing at least one control flag involves sequentially testing each control flag corresponding to the adjacent dual port memory as required by the program sequence, wherein data flow from multiple buffers in the adjacent dual port memory can be controlled.
Claim 11
Independent Claim 286 words
A method for controlling propagation of data and transforms through a multidimensional array of multiple processing elements interspersed with linking dual port memories where each dual port memory can be accessed simultaneously and without contention by processing elements located adjacent thereto and where each processing element can be locally controlled by at least one flow control flag corresponding to each particular dual port memory located adjacent thereto and said flow control flag is selectively controlled by adjacent processing elements, the said method comprising the steps of: propagating data and transforms through the array by performing the following steps with each processing element, (a) selectively accessing data from one of its adjacent dual-port memories; (b) transforming the data and (c) storing the transformed data in another adjacent dual port memory; all as required by a program sequence stored in that processing element; and, controlling the propagation of data transforms through the array by performing the following steps with each processing element, (a) testing said at least one flow control flag as part of a program sequence instruction if required by the program sequence stored in that processing element; however, if such testing is not required by the program sequence, going directly to step (d) below; (b) suspending operation of the program sequence at that instruction if a tested flow control flag is false; (c) automatically and without further testing completing the instruction when all tested flow control flags are true; (d) continuing the program sequence to perform memory access, data transformation and propagation; and (e) changing a state of at least one flow control flag associated with a dual port memory adjacent to that processing element as required by the program sequence stored in that processing element.
Claim 12
Independent Claim 286 words
A method for controlling propagation of data and transforms through a multidimensional array of multiple processing elements interspersed with linking dual port memories where each dual port memory can be accessed simultaneously and without contention by processing elements located adjacent thereto and where each processing element can be locally controlled by at least one flow control flag corresponding to each particular dual port memory located adjacent thereto and said flow control flag is selectively controlled by adjacent processing elements, the said method comprising the steps of: propagating data and transforms through the array by performing the following steps with each processing element, (a) selectively accessing data from one of its adjacent dual-port memories; (b) transforming the data and (c) storing the transformed data in another adjacent dual port memory; all as required by a program sequence stored in that processing element; and, controlling the propagation of data transforms through the array by performing the following steps with each processing element, (a) testing said at least one flow control flag as part of a program sequence instruction if required by the program sequence stored in that processing element; however, if such testing is not required by the program sequence, going directly to step (d) below; (b) suspending operation of the program sequence at that instruction if a tested flow control flag is false; (c) automatically and without further testing completing the instruction when all tested flow control flags are true; (d) continuing the program sequence to perform memory access, data transformation and propagation; and (e) changing a state of at least one flow control flag associated with a dual port memory adjacent to that processing element as required by the program sequence stored in that processing element.

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag