System and method of implementing heartbeats in a multicore system
First Claim
Patent Images
1. A method comprising:
- storing to local memory of a first core, from shared memory of a system, during a first heartbeat cycle, a plurality of local heartbeat vectors, including a first local heartbeat vector (HBV) of a first core, a second local HBV of a second core, and a third local HBV of a third core, wherein, each cores'"'"' local HBV includes a first HeartBeat Count (HBC) for the first core, a second HBC for the second core, and a third HBC for the third core;
updating, by the first core during the first heartbeat cycle, the first HBC of the first local HBV, wherein no other core'"'"'s current HBC is updated by the first core during the first heartbeat cycle;
determining, by the first core during the first heartbeat cycle, a health status of the second core based solely upon the plurality of local HBVs stored at the first core after the first HBC has been updated;
determining, by the first core during the first heartbeat cycle, a health status of the third core based solely upon the plurality of local HBVs stored at the first core after the first HBC has been updated; and
updating, by the first core during the first heartbeat cycle after the first HBC has been updated, a shared HBV of the first core in shared memory with an updated HBV based upon the first HBC of the first local HBV, the second HBC of the second local HBV, and the third HBC of the third local HBV.
1 Assignment
0 Petitions
Accused Products
Abstract
Counter based heartbeat messaging is implemented by storing heartbeat count vectors and health vectors of each core in a shared memory. Each core implements its heartbeat operation by storing the heartbeat count and health vectors from shared to local memory. A core uses its locally stored vectors to detect fault conditions at the other cores, and to achieve interactive consistency. Any core can initiate a system reaction to a core having a failing health status when a defined number of cores agree with that status.
15 Citations
20 Claims
-
1. A method comprising:
-
storing to local memory of a first core, from shared memory of a system, during a first heartbeat cycle, a plurality of local heartbeat vectors, including a first local heartbeat vector (HBV) of a first core, a second local HBV of a second core, and a third local HBV of a third core, wherein, each cores'"'"' local HBV includes a first HeartBeat Count (HBC) for the first core, a second HBC for the second core, and a third HBC for the third core; updating, by the first core during the first heartbeat cycle, the first HBC of the first local HBV, wherein no other core'"'"'s current HBC is updated by the first core during the first heartbeat cycle; determining, by the first core during the first heartbeat cycle, a health status of the second core based solely upon the plurality of local HBVs stored at the first core after the first HBC has been updated; determining, by the first core during the first heartbeat cycle, a health status of the third core based solely upon the plurality of local HBVs stored at the first core after the first HBC has been updated; and updating, by the first core during the first heartbeat cycle after the first HBC has been updated, a shared HBV of the first core in shared memory with an updated HBV based upon the first HBC of the first local HBV, the second HBC of the second local HBV, and the third HBC of the third local HBV. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A device comprising:
-
a shared memory configured to store a plurality of shared HeartBeat Vectors (HBVs), including a first shared HBV of a first core, a second shared HBV of a second core, and a third shared HBV of a third core, each HBV includes a HeartBeat Count (HBC) of each core, including a first HBC of the first core, a second HBC of the second core, and a third HBC of the third core; the first core coupled to the shared memory and includes; local memory, a bus controller coupled to the local memory and to the shared memory, a heartbeat controller coupled to the bus controller to implement heartbeat operations, during each heartbeat operation, the heartbeat controller is configured to; enable the bus controller to store the plurality of shared HBVs at the local memory as plurality of local HBVs, including a first local HBV, a second local HBV, and a third local HBV; enable heartbeat update circuitry that is configured to update the first HBC of the first local HBV; enable health calculator circuitry that is configured to calculate a health of the second core based on the first and second HBCs of the first and second local HBVs, and configured to calculate a health of the third core based on the first and third HBCs of the first and third local HBVs; and enable the bus controller to update the first shared HBV based upon the first HBC of the first local HBV, the second HBC of the second local HBV, and the third HBC of the third local HBV. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A method comprising:
-
storing to local memory of a first core, from shared memory of a system, during a first heartbeat cycle, a plurality of local heartbeat vectors and a plurality of local health vectors, the plurality of local heartbeat vectors include a first local heartbeat vector (HBV) of a first core, a second local HBV of a second core, and a third local HBV of a third core, wherein, each cores'"'"' local HBV includes a first HBC of the first core, a second HBC of the second core, and a third HBC of the third core, the plurality of local health vectors include a first local health vector of the first core, a second local health vector of a second core, and a third local health vector of a third core, wherein, each cores'"'"' local health includes a health status of each other core, and determining, by the first core during the first heartbeat cycle, a first health status of the second core based solely upon the plurality of local health vectors, wherein if the first health status of the second core is determined to be NOT OK, based upon the plurality of local health vectors, updating the health status of the second core in the first local health vector to be NOT OK, otherwise, determining, a second health status of the second core based solely upon the plurality of local HBVs stored at the first core. - View Dependent Claims (19, 20)
-
Specification