IP Library Granted Patent US 8,261,042
Granted Patent B2
US 8,261,042 · App. 12/209,887 · Granted Sep 4, 2012

Reconfigurable multi-processing coarse-grain array

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 8,261,042
App. No.
12/209,887
Granted
Sep 4, 2012
Kind
B2
Abstract

A signal processing device is adapted for simultaneous processing of at least two process threads in a multi-processing manner. The device comprises a plurality of functional units capable of executing word- or subword-level operations on data. The device further comprises means for interconnecting the plurality of functional units, the means for interconnecting supporting a plurality of dynamically switchable interconnect arrangements, and at least one of the interconnect arrangements interconnects the plurality of functional units into at least two non-overlapping processing units each with a pre-determined topology. The device further comprises at least two control modules each assigned to one of the processing units.

Claims (58)

1. A coarse grain reconfigurable signal processing device adapted for simultaneous processing of at least two process threads in a multiprocessing manner, the device comprising:

a plurality of functional units capable of executing word- and subword-level operations on data;

routing resources for interconnecting the plurality of functional units, the routing resources supporting a plurality of dynamically switchable interconnect arrangements, at least one of the interconnect arrangements interconnecting the plurality of functional units into at least two non-overlapping partitions each with a pre-determined topology, each of the partitions or a combination of partitions being configured to process a respective one of the process threads, each of the partitions comprising two or more of the functional units;

a plurality of configurations being stored in the coarse grain reconfigurable signal processing device, wherein the configurations control the behavior of the coarse grain reconfigurable signal processing device by selecting operations and by controlling the routing resources, wherein each of the dynamically switchable interconnect arrangements is selectable by loading a corresponding one of the configurations; and

at least two control modules, each control module being assigned to one of the partitions for control thereof.

2. The coarse grain reconfigurable signal processing device according to claim 1 , further comprising a plurality of data storages, wherein the routing resources interconnect the plurality of functional units and the plurality of data storages.

3. The coarse grain reconfigurable signal processing device according to claim 1 , further comprising a data storage in which an application code is stored, the application code defining a process comprising the at least two process threads and being executable by the partitions, and wherein the routing resources are adapted for dynamically switching between interconnect arrangements at pre-determined points in the application code.

4. The coarse grain reconfigurable signal processing device according to claim 1 , wherein the routing resources are adapted for dynamically switching interconnect arrangements depending on data content of a running application.

5. The coarse grain reconfigurable signal processing device according to claim 4 , wherein the routing resources comprise multiplexing and/or demultiplexing circuits.

6. The coarse grain reconfigurable signal processing device according to claim 5 , the coarse grain reconfigurable signal processing device having a clock, wherein the multiplexing and/or demultiplexing circuits are adapted to be configured with settings for dynamically switching interconnect arrangements, wherein the settings are changeable every clock cycle.

7. The coarse grain reconfigurable signal processing device according to claim 1 , further comprising at least one global storage shared between a plurality of functional units.

8. The coarse grain reconfigurable signal processing device according to claim 1 , further comprising at least two different types of functional units.

9. The coarse grain reconfigurable signal processing device according to claim 1 , wherein at least another of the interconnect arrangements interconnects the plurality of functional units into a single partition under control of a single control module.

10. The coarse grain reconfigurable signal processing device according to claim 9 , wherein at least one of the at least two control modules is a part of a global control unit for use in an interconnect arrangement with a single partition.

11. The coarse grain reconfigurable signal processing device according to claim 10 , wherein in at least one interconnect arrangement with a single partition, at least one of the control modules drives control signals of all the functional units by having at least one other control module to follow it.

12. The coarse grain reconfigurable signal processing device according to claim 1 , adapted for re-using at least part of the control modules assigned to the partitions in an interconnect arrangement with a plurality of non-overlapping partitions in the control module used in an interconnect arrangement with a single partition.

13. A method of executing an application on a coarse grain reconfigurable signal processing device, the method comprising:

executing an application on a coarse grain reconfigurable signal processing device as a single process thread under control of a primary control module, the device comprising a plurality of functional units capable of executing word- and subword-level operations on data, routing resources for interconnecting the plurality of functional units, and a plurality of configurations being stored in the device, wherein the routing resources support a plurality of dynamically switchable interconnect arrangements, the interconnect arrangements comprising a first interconnect arrangement interconnecting the plurality of functional units into at least two non-overlapping partitions each with a pre-determined topology, each of the partitions comprising two or more of the functional units, wherein each of the dynamically switchable interconnect arrangements is selectable by loading a corresponding one of the configurations; and

loading one of the configurations corresponding to the first interconnect arrangement to dynamically switch the coarse grain reconfigurable signal processing device into a device with at least two non-overlapping partitions; and

splitting a portion of the application in at least two process threads, each process thread being executed simultaneously as a separate process thread on one of the partitions, each partition being controlled by a separate control module.

14. The method according to claim 13 , wherein the switching of the coarse grain reconfigurable signal processing device into a device with at least two partitions is determined by a first instruction in application code determining the application.

15. The method according to claim 14 , wherein the first instruction comprises a starting address of the instructions of each of the separate process threads.

16. The method according to claim 13 , further comprising:

dynamically switching back the coarse grain reconfigurable signal processing device into a device with a single partition; and

synchronizing the separate control modules and joining the at least two threads of the application into a single process thread, the single process thread being executed as a process thread on the single partition under control of the synchronized control modules.

17. The method according to claim 16 , wherein switching back the coarse grain reconfigurable signal processing device into a device with a single partition is determined by a second instruction in application code determining the application.

18. The method according to claim 17 , wherein the second instruction comprises a starting address of the instructions to be executed as the single process thread.

19. The method according to claim 13 , wherein the single control module re-uses at least one of the separate control modules when executing the application as a single process thread.

20. The method according to claim 13 , wherein, in an interconnect arrangement with a single partition, one of the separate control modules drives control signals of substantially all the functional units by having the other control modules to follow it.

21. A computer-readable medium having stored thereon a computer program which, when being executed on a computer, performs the method according to claim 13 .

22. A method of compiling an application source code to obtain compiled code being executable on a coarse grain reconfigurable signal processing device, the method comprising:

inputting an application source code; and

generating compiled code from the application source code,

wherein generating the compiled code comprises:

including, in the compiled code, a first instruction for configuring a coarse grain reconfigurable signal processing device for simultaneous execution of multiple process threads and for starting the simultaneous execution of the process threads, the device comprising a plurality of functional units capable of executing word- and subword-level operations on data, routing resources for interconnecting the plurality of functional units, and a plurality of configurations being stored in the device, wherein the routing resources support a plurality of dynamically switchable interconnect arrangements, the interconnect arrangements comprising a first interconnect arrangement interconnecting the plurality of functional units into at least two non-overlapping partitions each with a pre-determined topology, each of the partitions comprising two or more of the functional units, wherein each of the dynamically switchable interconnect arrangements is selectable by loading a corresponding one of the configurations, wherein the first instruction configures the device to the first interconnect arrangement, and

including a second instruction to end the simultaneous execution of the multiple process threads such that when the last of the multiple process threads decodes this instruction, the coarse grain reconfigurable signal processing device is configured to continue execution in unified mode.

23. The method according to claim 22 , further comprising providing an architectural description of the coarse grain reconfigurable signal processing device, the architectural description comprising descriptions of pre-determined interconnect arrangements of functional units forming partitions.

24. The method according to claim 23 , wherein the providing of the architectural description comprises providing a separate control module per partition.

25. The method according to claim 22 , wherein the first instruction comprises the start address of instructions of each of the multiple process threads.

26. The method according to claim 22 , wherein the second instruction comprises the start address of instructions to be executed in unified mode after the execution of the multiple process threads.

27. The method according to claim 22 , wherein the generating of the compiled code comprises:

partitioning the application source code, thus generating code partitions;

labeling the mode and the partition wherein the code partitions are to be executed;

separately compiling each of the code partitions; and

linking the compiled code partitions into a single executable code file.

28. A computer-readable medium having stored thereon a computer program which, when being executed on a computer, performs the method according to claim 22 .

29. A method of adjusting an application to be executed on a coarse grain reconfigurable signal processing device, the method comprising:

performing exploration of various partitionings of the application to be executed on a coarse grain reconfigurable signal processing device, the device comprising a plurality of functional units capable of executing word- and subword-level operations on data, routing resources for interconnecting the plurality of functional units, and a plurality of configurations being stored in the device, wherein the routing resources support a plurality of dynamically switchable interconnect arrangements, the interconnect arrangements comprising a first interconnect arrangement interconnecting the plurality of functional units into at least two non-overlapping partitions each with a pre-determined topology, each of the partitions comprising two or more of the functional units, wherein each of the dynamically switchable interconnect arrangements is selectable by loading a corresponding one of the configurations,

wherein performing the exploration comprises changing an instance of an architectural description of the coarse grain reconfigurable signal processing device for exploring the interconnect arrangements of the coarse grain reconfigurable signal processing device by loading one of the plurality of configurations.

30. The method according to claim 29 , wherein exploring interconnect arrangements of the coarse grain reconfigurable signal processing device comprises exploring dynamically switching between an interconnect arrangement having a single partition under control of a single control module and an interconnect arrangement having at least two partitions each under control of a separate control module.

31. A computer-readable medium having stored thereon a computer program which, when being executed on a computer, performs the method according to claim 29 .

32. A coarse grain reconfigurable signal processing device adapted for simultaneous processing of at least two process threads in a multiprocessing manner, the device comprising:

means for executing word- and subword-level operations on data;

means for interconnecting the executing means, the interconnecting means supporting a plurality of dynamically switchable interconnect arrangements, at least one of the interconnect arrangements interconnecting the executing means into at least two non-overlapping partitions each with a pre-determined topology, each of the partitions comprising two or more of the functional units, each of the partitions or a combination of partitions being configured to process a respective one of the process threads;

means for controlling the behavior of the coarse grain reconfigurable signal processing device by selecting operations and by controlling the interconnecting means, wherein the behavior controlling means comprises a plurality of configurations being stored in the coarse grain reconfigurable signal processing device, wherein each of the dynamically switchable interconnect arrangements is selectable by loading a corresponding one of the configurations; and

means for controlling the at least two non-overlapping partitions.

33. The coarse grain reconfigurable signal processing device according to claim 1 , wherein two or more of the at least two partitions are configured to jointly process one of the process threads.

34. The coarse grain reconfigurable signal processing device according to claim 1 , wherein the plurality of dynamically switchable interconnect arrangements comprise at least a first interconnect arrangement and a second interconnect arrangement different from the first interconnect arrangement, each of the first and the second interconnect arrangement interconnecting the plurality of functional units into at least two non-overlapping partitions.

Assignments (28)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 037486 FRAME 0517. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Dec 10, 2019
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 053547/0421 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051030/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0387 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051145/0184 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050745/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT THE APPLICATION NO. FROM 13,883,290 TO 13,833,290 PREVIOUSLY RECORDED ON REEL 041703 FRAME 0536. ASSIGNOR(S) HEREBY CONFIRMS THE THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS.. Recorded Feb 20, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SHENZHEN XINGUODU TECHNOLOGY CO., LTD.
Reel/Frame 048734/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042762/0145 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042985/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENTS 8108266 AND 8062324 AND REPLACE THEM WITH 6108266 AND 8060324 PREVIOUSLY RECORDED ON REEL 037518 FRAME 0292. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Feb 1, 2017
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 041703/0536 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE LISTED CHANGE OF NAME SHOULD BE MERGER AND CHANGE PREVIOUSLY RECORDED AT REEL: 040652 FRAME: 0180. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Jan 12, 2017
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 041354/0148 →
CHANGE OF NAME Recorded Nov 8, 2016
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 040652/0180 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12092129 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Jul 14, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039361/0212 →
SECURITY AGREEMENT SUPPLEMENT Recorded Mar 7, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 038017/0058 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 13, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037518/0292 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 12, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037486/0517 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037356/0143 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037356/0553 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →
SECURITY AGREEMENT Recorded Jun 18, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030633/0424 →
SECURITY AGREEMENT Recorded May 13, 2010
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 024397/0001 →
"IMEC" IS AN ALTERNATIVE OFFICIAL NAME FOR "INTERUNIVERSITAIR MICROELEKTRONICA CENTRUM VZW" Recorded Apr 7, 2010
From: INTERUNIVERSITAIR MICROELEKTRONICA CENTRUM VZW
To: IMEC
Reel/Frame 024200/0675 →
SECURITY AGREEMENT Recorded Mar 15, 2010
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A.
Reel/Frame 024085/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2008
From: KANSTEIN, ANDREAS; BEREKOVIC, MLADEN
To: INTERUNIVERSITAIR MICROELEKTRONICA CENTRUM VZW (IMEC); FREESCALE SEMICONDUCTOR INC.
Reel/Frame 021873/0114 →