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
First Claim
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.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of exchanging data in a real-time operating system, between a primary core and a secondary core in a multi-core processor, includes executing a primary path via the primary core and executing a secondary path via the secondary core. The primary path is configured to be a relatively faster processing task and the secondary path is configured to be a relatively slower processing task. The method includes devising a freeze in process flag to have a respective flag status set and cleared by the primary path. The method includes devising a data frozen flag to have a respective flag status set and cleared by both the primary and the secondary paths. A component that is operatively connected to the multi-core processor may be controlled based at least partially on a difference between primary and secondary sets of calculations executed by the primary and secondary cores, respectively.
23 Citations
20 Claims
-
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 Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system comprising:
-
a controller having a processor with at least two execution units, including a primary core and a secondary core configured to execute a primary execution path and a secondary execution path, respectively; wherein the primary execution path is configured to be a relatively faster processing of a task and the secondary execution path is configured to be a relatively slower processing of the task; a component operatively connected to the controller; wherein the controller includes a tangible, non-transitory memory on which is recorded instructions, execution of the instructions by the processor causing the controller to; perform a primary set of calculations on an input data to obtain a primary output data, via the primary execution path, the input data varying in real-time; devise 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; devise 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; perform a 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 via the secondary execution path, 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; determine, via the primary execution path, if the input data should be 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 control 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 Dependent Claims (11, 12, 13, 14)
-
-
15. A method of monitoring torque in real-time in a traction system having a multi-core processor and a component, the multi-core processor having a primary core and a secondary core, the method comprising:
-
executing a primary execution path via the primary core, the primary path including a primary set of calculations for obtaining an original set of torque values, and executing a secondary execution path via the secondary core, the secondary execution path including a secondary set of calculations for obtaining a redundant set of torque values; wherein the primary path is configured to be a relatively faster processing of a task and the secondary path is configured to be a relatively slower processing of the task; 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 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; 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; 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; and 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 if a difference between the primary output data from the primary set of calculations and the redundant output from the secondary set of calculations is at or below a threshold. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification