IP Library Granted Patent US 10,409,765
Granted Patent B2
US 10,409,765 · App. 15/629,720 · Granted Sep 10, 2019

Method for providing subapplications to an array of ALUs

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 10,409,765
App. No.
15/629,720
Granted
Sep 10, 2019
Kind
B2
Abstract

An array of ALUs and a controlling and controlling unit providing the array sequentially ordered subapplications, wherein an ALU signals completion of execution of a subapplication to the controlling unit, which then provides a next sequential subapplication to the requesting ALU.

Claims (29)

1. A method for operating a processor having an array of data processing cells to execute an application in an interruptible manner, wherein the application is formed of subapplications that are ordered in a sequence and that are each a respective uninterruptible unit of the application that comprises a respective plurality of processing instructions to be executed by one of the data processing cells without interruption so that the respective one of the data processing cells executing the respective subapplication is not switchable to execute a different task prior to completion of the execution of the respective subapplication, the method comprising:

a controlling unit distributing to said array of data processing cells and according to the sequence a plurality of the subapplications for execution by respective ones of the data processing cells;

a data processing cell of the array of data processing cells sending a trigger to the controlling unit in response to completion by the respective data processing cell of execution of the instructions of a respective one of the plurality of subapplications that had been distributed to the respective data processing cell;

in response to receiving the trigger, the controlling unit supplying to the data processing cell that sent the trigger a next one of the subapplications according to the sequence and while other ones of the data processing cells continue respective executions of the instructions of the respective ones of the subapplications that had been previously distributed to them;

in response to receiving said next one of the subapplications, the data processing cell that had received said next one of the subapplications processing data by executing the processing instructions of the next one of the subapplications;

during the execution of the application formed of the subapplications, storing processing states of the execution and storing data states of processed data of the execution; and

the controlling unit responding to an interrupt event that occurs prior to distribution of all of the subapplications of the application by interrupting the distribution of the subapplications to the array of data processing cells, in order to control the data processing cells to execute a different application, but without interrupting uncompleted execution of any of the subapplications whose execution had begun prior to the interrupt event, wherein:

none of the processing states obtained prior to the interrupt event are saved for accessibility after the different application is loaded and completion of the execution of all of the subapplications whose execution had begun prior to the interrupt event; and

the data states obtained prior to the interrupt event:

are saved so that they are accessible after the different application is loaded and the completion of the execution of all of the subapplications whose execution had begun prior to the interrupt event; and

after execution of at least a part of the different application after the interrupt event, the are restored and used for continuing execution of the application formed of the subapplications.

2. The method of claim 1 , further comprising, after the interrupt event, responding to completion of execution of all of the subapplications whose execution had begun prior to the interrupt event by loading at least a portion of the different application onto at least a portion of the array of data processing cells, so that no part of the loading occurs until completion of the execution of all of the subapplications whose execution had begun prior to the interrupt event.

3. The method of claim 1 , wherein the processing states are obtained during respective executions of respective ones of the subapplications and are maintained only as long as the respective subapplications by whose execution the respective processing states were obtained are loaded in respective ones of the data processing units.

4. The method of claim 1 , wherein the array of data processing cells include arithmetic logic units (ALUs).

5. The method of claim 1 , wherein, after execution of the at least a part, but not an entirety, of the different application after the interrupt event, the data states obtained prior to the interrupt event are restored and used for continuing execution of the application formed of the subapplications.

6. A method for operating a processor having an array of data processing cells to execute an application in an interruptible manner, wherein the application is formed of subapplications that are ordered in a sequence and that are each a respective uninterruptible unit of the application that comprises a respective plurality of processing instructions to be executed by one of the data processing cells without interruption so that the respective one of the data processing cells executing the respective subapplication is not switchable to execute a different task prior to completion of the execution of the respective subapplication, the method comprising:

a controlling unit distributing to said array of data processing cells and according to the sequence a plurality of the subapplications for execution by respective ones of the data processing cells, wherein, for each of at least of at least one of the subapplications, states are used for execution of the respective subapplications, the states including:

first states that (a) are processing states of the execution, (b) are generated during the execution of the respective subapplication, (c) are not relevant subsequent to completion of the execution of the respective subapplication, and (d) are not stored for accessibility once the execution of the respective subapplication is completed; and

second states that (a) are data states of processed data of the execution, (b) are generated during the execution of the respective subapplication, and (c) are maintained for accessibility after the execution of the respective subapplication has completed;

a data processing cell of the array of data processing cells sending a trigger to the controlling unit in response to completion by the respective data processing cell of execution of the instructions of a respective one of the plurality of subapplications that had been distributed to the respective data processing cell;

in response to receiving the trigger, the controlling unit supplying to the data processing cell that sent the trigger a next one of the subapplications according to the sequence and while other ones of the data processing cells continue respective executions of the instructions of the respective ones of the subapplications that had been previously distributed to them;

in response to receiving said next one of the subapplications, the data processing cell that had received said next one of the subapplications processing data by executing the processing instructions of the next one of the subapplications;

during the execution of the application formed of the subapplications, storing the processing states and the data states of processed data of the execution; and

the controlling unit responding to an interrupt event that occurs prior to distribution of all of the subapplications of the application by interrupting the distribution of the subapplications to the array of data processing cells, in order to control the data processing cells to execute a different application, but without interrupting uncompleted execution of any of the subapplications whose execution had begun prior to the interrupt event, wherein:

none of the processing states obtained prior to the interrupt event are saved for accessibility after the different application is loaded and completion of the execution of all of the subapplications whose execution had begun prior to the interrupt event; and

the data states obtained prior to the interrupt event are saved so that they are accessible after the different application is loaded and the completion of the execution of all of the subapplications whose execution had begun prior to the interrupt event.

7. The method of claim 6 , wherein the array of data processing cells include arithmetic logic units (ALUs).

8. The method of claim 6 , further comprising, after the interrupt event, responding to completion of execution of all of the subapplications whose execution had begun prior to the interrupt event by loading at least a portion of the different application onto at least a portion of the array of data processing cells, so that no part of the loading occurs until completion of the execution of all of the subapplications whose execution had begun prior to the interrupt event.

9. The method of claim 6 , wherein the processing states are obtained during respective executions of respective ones of the subapplications and are maintained only as long as the respective subapplications by whose execution the respective processing states were obtained are loaded in respective ones of the data processing units.

Assignments (2)
CHANGE OF NAME Recorded Mar 1, 2019
From: SCIENTIA SOL MENTIS AG
To: PACT XPP SCHWEIZ AG
Reel/Frame 048477/0650 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2018
From: PACT XPP TECHNOLOGIES AG
To: SCIENTIA SOL MENTIS AG
Reel/Frame 045532/0745 →