×

Control of data exchange between a primary core and a secondary core using a freeze process flag and a data frozen flag in real-time

  • US 10,162,680 B2
  • Filed: 12/13/2016
  • Issued: 12/25/2018
  • Est. Priority Date: 12/13/2016
  • Status: Active Grant
First Claim
Patent Images

1. A method of exchanging data in real-time between a primary core and a secondary core in a multi-core processor, the multi-core processor being operatively connected to a component, the method comprising:

  • executing a primary execution path via the primary core and executing a secondary execution path via the secondary core, the primary execution path being configured to be a relatively faster processing of a task and the secondary execution path being configured to be a relatively slower processing of the task;

    performing, via the primary execution path, a primary set of calculations on an input data to obtain a primary output data, the input data varying in real-time;

    devising a freeze in process flag to have a respective status set and cleared by the primary execution path, the respective status of the freeze in process flag being set as true when the primary execution path is engaged in copying the input data and set as false when the primary execution path is not engaged in copying the input data;

    devising a data frozen flag to have a respective status set and cleared by both the primary execution path and the secondary execution path, the respective status of the data frozen flag being set as true as a signal that the secondary core should begin the secondary execution path and set as false as the signal that the secondary core should delay executing the secondary execution path;

    performing, via the secondary execution path, the secondary set of calculations on the input data based at least partially on the respective status of the data frozen flag to obtain a redundant output, the secondary execution path requiring a transfer of the input data from the primary core to the secondary core to perform the secondary set of calculations;

    determining, via the primary execution path, if the input data should be copied or frozen based at least partially on the respective status of the data frozen flag and the freeze in process flag, including;

    if the respective status of both the data frozen flag and the freeze in process flag are false, then copying or freezing the input data and setting the respective status of the freeze in process flag as true, via the primary core, and transferring the frozen input data from the primary core to the secondary core;

    if the respective status of the data frozen flag is not false, and the freeze in process flag is true, then setting the respective status of both the freeze in process flag and the data frozen flag as false, via the primary core; and

    controlling the component based at least partially on a difference between the primary output data from the primary set of calculations executed by the primary core and the redundant output from the secondary set of calculations executed by the secondary core.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×