×

Process for maintaining execution synchronization between several asynchronous processors working in parallel and in a redundant manner

  • US 8,205,201 B2
  • Filed: 02/13/2008
  • Issued: 06/19/2012
  • Est. Priority Date: 02/13/2007
  • Status: Expired due to Fees
First Claim
Patent Images

1. A process for maintaining synchronization, in a computer with parallel processing units, between processors of the processing units in which all the processors are executing a same plurality of applications in parallel and at the same speed but in an asynchronous manner under a control of a common multi-tasking operating system, the process comprising:

  • interrupting, by each of the processors, a current task between processing two successive instructions of an application being processed when an interrupt request occurs to process another application;

    saving an intermediate state reached by the current task when the interrupt request occurs;

    maintaining a counter for each of the processors indicating a number of instructions processed by each of the processors apart from process instructions;

    managing the resources of the computer by system calls generated by the plurality of applications, wherein the system calls trigger software interrupts;

    sharing time in successive time slices of which each is allocated to processing an application from the plurality of applications, wherein sharing is performed by timing interrupt requests issued by the common multi-tasking operating system to each processor at the end of a time slice in order to cause a change process from a current application to another application to be executed, the change process comprising saving of the intermediate state that was reached by the current application when interrupted and restoration of a last intermediate state that was saved for another application to be executed with resynchronization of the processed-instruction counters of the processors;

    maintaining synchronization using a synchronization procedure called by a synchronization interrupt request issued by the common multi-tasking operating system to all the processors;

    signaling by a processor to other processors a number of processed instructions contained in its processed-instruction counter;

    comparing the number of processed instructions contained in its processed-instruction counter with the numbers of processed instructions contained in the processed-instruction counters of the other processors after they accepted the synchronization interrupt;

    causing the processor to issue a synchronization confirmation in response to a comparison result that the numbers of instructions processed are identical; and

    causing the processor to enter a wait state when its number of processed-instructions is the largest of the numbers of instructions processed that are compared and the comparison is repeated for each new exchange of numbers of instructions processed with the other processors, or causing the processor to execute a procedure for processing the instructions step-by-step until its processed-instruction counter reaches the largest number and then the processor sends to the other processors an updated value of its number of instructions processed, with renewal of the comparison;

    wherein the synchronization procedure is activated at the beginning of the processing of each timing interrupt generated by the common multi-tasking operating system at the end of a time slice and of each system call generated by an application.

View all claims
  • 3 Assignments
Timeline View
Assignment View
    ×
    ×