Patent ID: 7277974

Claim:
A method for operating a communications bus, comprising the steps of: maintaining a local credit value in a sending device, said local credit value reflecting capacity of a receiving device to receive data; decrementing said local credit value in said sending device responsive to transmitting data to said receiving device; incrementing said local credit value in said sending device responsive to receiving a returned credit from said receiving device; maintaining at least one credit value independently of said local credit value, said at least one credit value maintained independently being associated with capacity of said receiving device to receive data, said at least one value maintained independently being asynchronous with said local credit value in said sending device; comparing said at least one credit value maintained independently with said local credit value during at least one respective pre-defined time interval to detect agreement between said at least one credit value maintained independently and said local credit value occurring during said at least one respective pre-defined time interval; responsive to failure to detect agreement between one said at least one credit value maintained independently and said local credit value occurring during the respective pre-defined time interval, automatically taking at least one action to confirm whether a credit discrepancy exists; and responsive to confirming a credit discrepancy, automatically reporting a credit discrepancy; wherein said bus comprises a command portion for transmitting commands and a data portion for transmitting data associated with the commands; wherein said sending device maintains a local command credit value and a separate local data credit value, said local command credit value and local data credit value reflecting capacity of the receiving device to receive commands on said command portion of said bus and data associated with commands on said data portion of said bus, respectively; and wherein said step of comparing said at least one credit value maintained independently with said local credit value comprises separately comparing at least one credit value maintained independently with said local command credit value and at least one credit value maintained independently with said local data credit value.