Mechanisms and algorithms for arbitrating between and synchronizing state of duplicated media processing components
First Claim
Patent Images
1. A method, comprising:
- (a) providing first and second processing devices, the second processing device providing duplicate functions to the first processing device;
(b) determining, by the first processing device, that a token grab value in a memory of the first processing device has a first, but not a second, value, wherein the first value requires the first processing device to attempt to obtain ownership of a duplication token and a second value requires the first processing device not to attempt to obtain ownership of the duplication token;
(c) in response to the token grab value having the first value, determining, by the first processing device, whether the second processing device has asserted a duplication token; and
(d) in a first mode, determining, by the first processing device, that the second processing device has not asserted the duplication token, and asserting, by the first processing device, the duplication token, wherein, upon assertion by the first processing device, the duplication token is owned by the first processing device and the first processing device is in the active state and the second processing device is in the standby state; and
(e) in a second mode, determining, by the first processing device, that the second processing device has asserted the duplication token and that the duplication token is in contention between the first and second processing devices, and applying, by the first processing device, an arbitration rule to determine which of the first and second processing devices is to have ownership of the duplication token.
23 Assignments
0 Petitions
Accused Products
Abstract
The present invention is directed, in various embodiments, to a hardware supported duplication token for arbitrating active and standby module states, a weighted state of health exchange for identifying unhealthy module states and relative module health states, and a packet sequence number synchronization technique for maintaining desired levels of synchronization between the active and standby modules.
75 Citations
47 Claims
-
1. A method, comprising:
-
(a) providing first and second processing devices, the second processing device providing duplicate functions to the first processing device; (b) determining, by the first processing device, that a token grab value in a memory of the first processing device has a first, but not a second, value, wherein the first value requires the first processing device to attempt to obtain ownership of a duplication token and a second value requires the first processing device not to attempt to obtain ownership of the duplication token; (c) in response to the token grab value having the first value, determining, by the first processing device, whether the second processing device has asserted a duplication token; and (d) in a first mode, determining, by the first processing device, that the second processing device has not asserted the duplication token, and asserting, by the first processing device, the duplication token, wherein, upon assertion by the first processing device, the duplication token is owned by the first processing device and the first processing device is in the active state and the second processing device is in the standby state; and (e) in a second mode, determining, by the first processing device, that the second processing device has asserted the duplication token and that the duplication token is in contention between the first and second processing devices, and applying, by the first processing device, an arbitration rule to determine which of the first and second processing devices is to have ownership of the duplication token. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A duplicated processing system, comprising:
first and second processing devices, the second processing device providing duplicate functions to the first processing device, wherein; the first processing device is operable to (a) determine that a token grab value in a memory of the first processing device has a first, but not a second, value, the first value requiring the first processing device to attempt to obtain ownership of a duplication token and a second value requiring the first processing device not to attempt to obtain ownership of the duplication token, (b) in response to the token grab value having the first value, determine whether the second processing device has asserted a duplication token; and
(c) operate in the following modes;(i) in a first mode when the second processing device has not asserted the duplication token, the first processing device asserts the duplication token, wherein, upon assertion by the first processing device, the duplication token is owned by the first processing device and the first processing device is in the active state and the second processing device is in the standby state; and (ii) in a second mode when the second processing device has asserted the duplication token, the duplication token is in contention between the first and second processing devices and the first processing device applies an arbitration rule to determine which of the first and second processing devices is to have ownership of the duplication token. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
20. A method, comprising:
-
(a) determining, by each of first and second processing devices, a corresponding bit array comprising a plurality of bit sets, each bit set corresponding to at least one functional parameter, each of the functional parameters defining a state of a functional aspect of a corresponding processing device, a first type of functional parameter indicating a critical functional aspect and a second type of functional parameter indicating a noncritical functional aspect; (b) by each of the first and second processing devices, arithmetically assigning, based on the values of the plurality of bit sets in the corresponding bit array first and second cumulative health state values respectively; (c) in a first mode, determining by one of the first and second processing devices that the second cumulative health state value equals or exceeds the first cumulative health state value and, in response, maintaining the second processing device in an active state; and (d) in a second mode, determining by one of the first and second processing devices that the first cumulative health state value exceeds the second cumulative health state value and, in response, changing the state of the first processing device from a standby to the active state and the state of the second processing device from the active to the standby state. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A system, comprising:
-
first and second processing devices, each of the first and second processing devices comprising a respective processor to execute a state-of-health agent, the state-of-health agent, when executed, performs the following operations; (a) determine, for a corresponding one of the first and second processing devices, a corresponding bit array comprising a plurality of bit sets, each bit set corresponding to at least one functional parameter, each of the functional parameters defining a state of a functional aspect of the corresponding first or second processing device, a first type of functional parameter indicating a critical functional aspect and a second type of functional parameter indicating a noncritical functional aspect; (b) arithmetically assign, based on the values of the plurality of bit sets in the corresponding bit array, a corresponding cumulative health state value, the first processing device having a first cumulative health state and the second processing device having a second cumulative health state; (c) in a first mode, determine, by at least one of the state-of-health agents in the first and second processing devices, that the second cumulative health state value equals or exceeds the first cumulative health state value and, in response, maintain the second processing device in an active state; and (d) in a second mode, determine, by at least one of the state-of-health agents in the first and second processing devices, that the first cumulative health state value exceeds the second cumulative health state value and, in response, change the state of the first processing device from a standby to the active state and the state of the second processing device from the active to the standby state. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37)
-
-
38. A method, comprising:
-
(a) providing first and second processing systems, the second processing system being in the active state and the first processing system being in the standby state, the second processing system having, for each call, a transmit packet stream and a second transmit packet sequence number and transmit rollover counter value, wherein the first processing system has, for each call, a first transmit packet sequence number and transmit rollover counter value, the first transmit packet sequence number being representative of the second transmit packet sequence number and the first transmit rollover counter value being representative of the second transmit rollover counter value; (b) the first processing system incrementing the first transmit packet sequence number and rollover counter value while in the standby state; and (c) upon the occurrence of a trigger event, adjusting the first transmit packet sequence number and/or rollover counter value by a shift value representative of a temporal drift between the relative values of the first and second transmit packet sequence numbers, wherein the drift causes the first and second transmit packet sequence numbers to be different and wherein the drift is caused by silence suppression. - View Dependent Claims (39, 40, 41, 42, 43)
-
-
44. A system, comprising:
-
first and second processing devices, the second processing device being in the active state and the first processing device being in the standby state, the second processing device having, for each call, a transmit packet stream and a second transmit packet sequence number and transmit rollover counter value, wherein the first processing device has, for each call, a first transmit packet sequence number and transmit rollover counter value, the first transmit packet sequence number being representative of the second transmit packet sequence number and the first transmit rollover counter value being representative of the second transmit rollover counter value; wherein the first processing device comprises a processor operable to execute a packet sequence synchronization agent, the packet sequence synchronization agent, when executed, is operable to perform the following operations; (a) increment the first transmit packet sequence number and rollover counter value while in the standby state; and (b) upon the occurrence of a trigger event, adjust the first transmit packet number and/or rollover counter values by a shift value representative of a temporal drift between the relative values of the first and second transmit packet number values, wherein the drift causes the first and second transmit packet number values to be different and wherein the drift is caused by silence suppression. - View Dependent Claims (45, 46, 47)
-
Specification