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
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-009/50
G06F-009/48
B60K-006/26
G05B-015/02
B60W-010/08
출원번호
US-0376730
(2016-12-13)
등록번호
US-10162680
(2018-12-25)
발명자
/ 주소
Lee, Young Joo
Berry, Daniel J.
Welchko, Brian A.
출원인 / 주소
GM Global Technology Operations LLC
대리인 / 주소
Quinn IP Law
인용정보
피인용 횟수 :
0인용 특허 :
9
초록▼
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 p
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.
대표청구항▼
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 p
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; andcontrolling 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. 2. The method of claim 1, wherein: controlling the component includes adjusting a mode of operation of the component if the 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 is at or below a threshold. 3. The method of claim 1, further comprising: preventing the input data from being used in the secondary set of calculations, via the freeze in process flag and the data frozen flag, if the secondary path execution is executed during a period of time between said determining if the input data should be frozen and said performing the primary set of calculations. 4. The method of claim 1, further comprising: determining, via the primary execution path, if the primary output data from the primary set of calculations is ready for comparison with the redundant output from the secondary set of calculations based at least partially on the respective flag status of the data frozen flag and the freeze in process flag. 5. The method of claim 4, wherein said determining if the output data is ready for comparison includes: if the respective status of the data frozen flag is false and the freeze in process flag is true, then freezing the primary output data from the primary set of calculations and setting the respective status of the data frozen flag as true and the freeze in process flag as false, via the primary core;transferring the frozen primary output data from the primary core to the secondary core; andif the respective status of both the freeze in process flag and the data frozen flag are true, then setting the respective status of both the freeze in process flag and the data frozen flag as false, via the primary core. 6. The method of claim 1, wherein said performing the secondary set of calculations on the input data based at least partially on the respective status of the data frozen flag includes: if the respective status of the data frozen flag is true, performing the secondary set of calculations on the frozen input data, via the secondary core. 7. The method of claim 6, further comprising: setting the respective status of the data frozen flag as false, via the secondary core, after performing the secondary set of calculations. 8. The method of claim 1, wherein the component is at least one of an internal combustion engine and a hybrid electric propulsion device. 9. The method of claim 8, wherein the task is the determination of a set of torque values for the component. 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; andcontrol 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. 11. The system of claim 10, wherein: controlling the component includes adjusting a mode of operation of the component if the 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 is at or below a threshold. 12. The system of claim 10, wherein the controller is programmed to: prevent the input data from being used in the secondary set of calculations, via the freeze in process flag and the data frozen flag, if the secondary path is executed during a period of time between said determining if the input data should be frozen and said performing the primary set of calculations. 13. The system of claim 10, wherein the component is at least one of an internal combustion engine and a hybrid electric propulsion device. 14. The system of claim 10, wherein the task is the determination of a set of torque values for the component. 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; andif 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; andcontrolling 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. 16. The method of claim 15, further comprising: preventing the input data from being used in the secondary set of calculations, via the freeze in process flag and the data frozen flag, if the secondary path is executed during a period of time between said determining if the input data should be frozen and said performing the primary set of calculations. 17. The method of claim 15, further comprising: determining, via the primary path, if the output data is ready for comparison with the secondary set of calculations based at least partially on the respective flag status of the data frozen flag and the freeze in process flag, including: if the respective status of the data frozen flag is false and the freeze in process flag is true, then freezing the output data and setting the respective status of the data frozen flag as true and the freeze in process flag as false, via the primary core;transferring the frozen output data from the primary core to the secondary core; andif the respective status of both the freeze in process flag and the data frozen flag are true, then setting the respective status of both the freeze in process flag and the data frozen flag as false, via the primary core. 18. The method of claim 15, further comprising: setting the respective status of the data frozen flag as false, via the secondary core, after performing the secondary set of calculations; andwherein said performing the secondary set of calculations on the input data based at least partially on the respective status of the data frozen flag includes, if the respective status of the data frozen flag is true, performing the secondary set of calculations on the frozen input data, via the secondary core. 19. The method of claim 15, wherein the component is at least one of an internal combustion engine and a hybrid electric propulsion device. 20. The method of claim 15, wherein the task is the determination of a set of torque values for the component.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (9)
Foster, Glenn B.; Hyde, Roderick A.; Ishikawa, Muriel Y.; Jung, Edward K. Y.; Kare, Jordin T.; Myhrvold, Nathan P.; Tegreene, Clarence T.; Weaver, Thomas Allan; Wood, Jr., Lowell L.; Wood, Victoria Y. H., Hybrid propulsive engine including at least one independently rotatable turbine stator.
Zhang, Shayan; Mahatme, Nihaar; Pandey, Rakesh, Method and apparatus for determining feasibility of memory operating condition change using different back bias voltages.
Laschkewitsch,Clinton Gene; Movall,Paul Edward; Nelson,Ward Ray, Method and apparatus for implementing distributed event management in an embedded support processor computer system.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.