IP Library Granted Patent US 7,225,324
Granted Patent B2
US 7,225,324 · App. 10/285,318 · Granted May 29, 2007

Multi-adaptive processing systems and techniques for enhancing parallelism and performance of computational functions

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,225,324
App. No.
10/285,318
Granted
May 29, 2007
Kind
B2
Abstract

Multi-adaptive processing systems and techniques for enhancing parallelism and performance of computational functions are disclosed which can be employed in a myriad of applications including multi-dimensional pipeline computations for seismic applications, search algorithms, information security, chemical and biological applications, filtering and the like as well as for systolic wavefront computations for fluid flow and structures analysis, bioinformatics etc. Some applications may also employ both the multi-dimensional pipeline and systolic wavefront methodologies disclosed.

Claims (68)

1. A method for data processing in a reconfigurable computing system, the reconfigurable computing system comprising at least one reconfigurable processor, the reconfigurable processor comprising a plurality of functional units, said method comprising:

transforming an algorithm into a calculation that is systolically implemented by said reconfigurable computing system at the at least one reconfigurable processor;

instantiating at least two of said functional units at the at least one reconfigurable processor to perform said calculation wherein only functional units needed to solve the calculation are instantiated and wherein each instantiated functional unit at the at least one reconfigurable processor interconnects with each other instantiated functional unit at the at least one reconfigurable processor based on reconfigurable routing resources within the at least one reconfigurable processor as established at instantiation, and wherein systolically linked lines of code of said calculation are instantiated as clusters of functional units within the at least one reconfigurable processor;

utilizing a first of said instantiated functional units to operate upon a subsequent data dimension of said calculation forming a first computational loop; and

substantially concurrently utilizing a second of said instantiated functional units to operate upon a previous data dimension of said calculation forming a second computational loop wherein said systolic implementation of said calculation enables said first computational loop and said second computational loop execute concurrently and pass computed data seamlessly between said computational loops.

2. The method of claim 1 wherein said subsequent and previous data dimensions of said calculation comprise multiple vectors in said calculation.

3. The method of claim 1 wherein said subsequent and previous data dimensions of said calculation comprise multiple planes in said calculation.

4. The method of claim 1 wherein said subsequent and previous data dimensions of said calculation comprise multiple time steps in said calculation.

5. The method of claim 1 wherein said subsequent an previous data dimensions of said calculation comprise multiple grid points in said calculation.

6. The method of claim 1 wherein said calculation comprises a seismic imaging calculation.

7. The method of claim 1 wherein said calculation comprises a synthetic aperture radar imaging calculation.

8. The method of claim 1 wherein said calculation comprises a JPEG image compression calculation.

9. The method of claim 1 wherein said calculation comprises an MPEG image compression calculation.

10. The method of claim 1 wherein said calculation comprises a fluid flow calculation for a reservoir simulation.

11. The method of claim 1 wherein said calculation comprises a fluid flow calculation for weather prediction.

12. The method of claim 1 wherein said calculation comprises a fluid flow calculation for automotive applications.

13. The method of claim 1 wherein said calculation comprises a fluid flow calculation for aerospace applications.

14. The method of claim 1 wherein said calculation comprises a fluid flow calculation for an injection molding application.

15. The method of claim 1 wherein instantiating includes establishing a stream communication connection between functional units.

16. The method of claim 1 wherein said calculation is comprises a structures calculation for structural analysis.

17. The method of claim 1 wherein said calculation comprises a search algorithm for an image search.

18. The method of claim 1 wherein said calculation comprises a search algorithm for data mining.

19. The method of claim 1 wherein said calculation comprises a financial modeling application.

20. The method of claim 1 wherein said calculation comprises an encryption algorithm.

21. The method of claim 1 wherein said calculation comprises a genetic pattern matching function.

22. The method of claim 1 wherein said calculation comprises a protein folding function.

23. The method of claim 1 wherein said calculation comprises an organic structure interaction function.

24. The method of claim 1 wherein said calculation comprises a signal filtering application.

25. A method for data processing in a reconfigurable computing system, the reconfigurable computing system comprising at least one reconfigurable processor comprising a plurality of functional units, said method comprising:

transforming an algorithm into a calculation that is systolically implemented by said reconfigurable computing system at the at least one reconfigurable processor wherein systolically linked lines of code of said calculation are instantiated as walls of functional units within the at least one reconfigurable processor;

defining a first systolic wall comprising rows of cells forming a subset of said plurality of functional units;

computing at the at least one reconfigurable processor a value at each of said cells in at least a first row of said first systolic wall substantially concurrently;

communicating said values between cells in said first row of said cells to produce updated values, wherein communicating said values is based on reconfigurable routing resources within the at least one reconfigurable processor;

communicating said updated values substantially concurrently to a second row of said first systolic wall, wherein communicating said updated values is based on reconfigurable routing resources within the at least one reconfigurable processor; and

communicating said updated values substantially concurrently to a first row of a second systolic wall of rows of cells in said subset of said plurality of functional units, wherein communicating said updated values is based on reconfigurable routing resources within the at least one reconfigurable processor and wherein said first systolic wall of rows of cells and said second wall of rows of systolic cells execute substantially concurrently and pass computed data seamlessly between said systolic walls.

26. The method of claim 25 wherein said values correspond to vectors in a computation.

27. The method of claim 25 wherein said values correspond to planes in a computation.

28. The method of claim 25 wherein said values correspond to time steps in a computation.

29. The method of claim 25 wherein said values correspond to grid points in a computation.

30. The method of claim 25 wherein said step of communicating said updated values to a second row of said first systolic wall is carried out without storing said updated values in an extrinsic memory.

31. The method of claim 25 wherein said values correspond to a seismic imaging calculation.

32. The method of claim 25 wherein said values correspond to a synthetic aperture radar imaging calculation.

33. The method of claim 25 wherein said values correspond to a JPEG image compression calculation.

34. The method of claim 25 wherein said values correspond to an MPEG image compression calculation.

35. The method of claim 25 wherein said values correspond to a fluid flow calculation for a reservoir simulation.

36. The method of claim 25 wherein said values correspond to a fluid flow calculation for weather prediction.

37. The method of claim 25 wherein said values correspond to a fluid flow calculation for automotive applications.

38. The method of claim 25 wherein said values correspond to a fluid flow calculation for aerospace applications.

39. The method of claim 25 wherein said values correspond to a fluid flow calculation for an injection molding application.

40. The method of claim 25 wherein defining includes establishing a stream communication connection between functional units and wherein only functional units needed to solve the calculations are instantiated.

41. The method of claim 25 wherein said values correspond to a structures calculation for structural analysis.

42. The method of claim 25 wherein said values correspond to a search algorithm for an image search.

43. The method of claim 25 wherein said values correspond to a search algorithm for data mining.

44. The method of claim 25 wherein said values correspond to a financial modeling application.

45. The method of claim 25 wherein said values correspond to an encryption algorithm.

46. The method of claim 25 wherein said values correspond to a genetic pattern matching function.

47. The method of claim 25 wherein said values correspond to a protein folding function.

48. The method of claim 25 wherein said values correspond to an organic structure interaction function.

49. The method of claim 25 wherein said values correspond to a signal filtering application.

50. The method of claim 25 wherein said reconfigurable computing system comprises at least one microprocessor.

51. A method for data processing in a reconfigurable computing system, the reconfigurable computer system comprising at least one reconfigurable processor comprising a plurality of functional units, said method comprising:

transforming an algorithm into a calculation that is systolically implemented by said reconfigurable computing system at the at least one reconfigurable processor wherein systolically linked lines of code of said calculation are instantiated as subsets of said plurality of functional units within the at least one reconfigurable processor forming columns of said calculation;

performing said calculation at the at least one reconfigurable processor by said subsets of said plurality of functional units to produce computed data;

exchanging said computed data between a first column of said calculation and a next column in said calculation, wherein said exchanging is based on reconfigurable routing resources within the at least one reconfigurable processor and wherein execution of said subsets of said plurality of function units occurs concurrently and said computed data is seamlessly passed between said first column of said calculation and said second column of said calculation;

evaluating a rate of change in at least one variable for each of said columns in said calculation;

continuing said calculation when said variable does not change for a particular column of said calculation; and

restarting said calculation at said column of said calculation where said variable does change.

52. The method of claim 51 wherein how many functional units comprise the subset and functional type of each functional unit in said subset is based on the calculation.

Assignments (9)
RELEASE OF SECURITY INTEREST IN SPECIFIED PATENTS Recorded May 22, 2023
From: BARINGS FINANCE LLC, AS COLLATERAL AGENT
To: RPX CORPORATION
Reel/Frame 063723/0139 →
PATENT SECURITY AGREEMENT Recorded May 1, 2023
From: RPX CORPORATION
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 063503/0742 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2020
From: DIRECTSTREAM LLC
To: FG SRC LLC
Reel/Frame 051615/0344 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2019
From: SAINT REGIS MOHAWK TRIBE
To: DIRECTSTREAM, LLC
Reel/Frame 049251/0855 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2017
From: SRC LABS, LLC
To: SAINT REGIS MOHAWK TRIBE
Reel/Frame 043174/0318 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2016
From: SRC COMPUTERS, LLC
To: SRC LABS, LLC
Reel/Frame 037820/0147 →
RELEASE OF SECURITY INTEREST Recorded Feb 11, 2016
From: FREEMAN CAPITAL PARTNERS LP
To: SRC COMPUTERS, LLC
Reel/Frame 037707/0196 →
MERGER Recorded Oct 30, 2013
From: SRC COMPUTERS, INC.
To: SRC COMPUTERS, LLC
Reel/Frame 031514/0865 →
SECURITY AGREEMENT Recorded Sep 23, 2013
From: SRC COMPUTERS, LLC
To: FREEMAN CAPITAL PARTNERS LP
Reel/Frame 031263/0288 →