Multi-core processing utilizing prioritized interrupts for optimization
This invention relates to multi-core, multi-processing, factory multi-core and DSP multi-core. The nature of the invention is related to more optimal uses of a multi-core system to maximize utilization of the processor cores and minimize power use. The novel and inventive steps are focused on use of interrupts and prioritized interrupts, along with optional in-built methods, to allow systems to run more efficiently and with less effort on the part of the programmer.
1. A method of performing a data processing operation on a multi-processor system comprising the steps of:
dividing the data processing operation into a plurality of discrete tasks;
linking said tasks in to at least one chain;
assigning priorities to said tasks;
converting each of said tasks into an interrupt service routine; and
performing said interrupt service routines of at least one chain of task in a multi-processor system by responding a received interrupt by assigning a corresponding interrupt service routine to one data processor core of a plurality of data processor cores of the multi-processing system dependent upon respective priority levels of any interrupt service routines operating on said plurality of data processor cores and a priority level of said received interrupt.
2. The method of claim 1 , wherein:
said step of converting each of said tasks into an interrupt service routine includes trigging an end of task interrupt upon completion of said corresponding task; and
said step of performing said interrupt service routines includes
assigning each task at a beginning of a chain to one data processor core of said plurality of data processor cores,
in response to an end of task interrupt, issuing an interrupt for any sequential task in the corresponding chain.
3. The method of claim 1 , wherein:
said step of converting each of said tasks into an interrupt service routine includes converting at least one task into two parallel interrupt service routines and at least one comparison interrupt service routine, said comparison interrupt service routine comparing results of said parallel interrupt service routines to verify correct operation.
4. The method of claim 3 , wherein:
said two parallel interrupt service routines are identical.
5. The method of claim 3 , wherein:
said two parallel interrupt service routines employ different algorithms.
6. The method of claim 3 , wherein:
said step of verifying correct operation notes any data processor core operating incorrectly; and
said step of assigning a corresponding interrupt service routine to one data processor core of a plurality of data processor cores does not assign a interrupt service routine to any data processor core noted as operating incorrectly.