Patent ID: 7698477

Claim:
In a PCI Express (PCIE) Environment containing components that include Receivers and Transmitters of Transaction Layer Packets (TLPs), a method of Flow Control management comprising the steps of: providing a Credit Controller Entity (CCE) for the Environment with a repository for storing credit count information that represents an available storage capacity of respective Receivers, wherein said repository comprises an array of credit state registers; routing credit count information from a storage buffer contained in a given Receiver to said repository of said CCE, for storage in said registers of said repository after each event of a succession of events that affect the storage capacity of said given Receiver, said events including one or more processing events that each increases storage capacity at said given Receiver, and further including one or more receiving events that each reduces storage capacity at said given Receiver; generating a Freed Credit Count value corresponding to each processing event, wherein each Freed Credit Count value comprises the increase in receiver capacity caused by its corresponding processing event; routing each Freed Credit Count value from an output of said storage buffer to said repository for storage in one or more registers of said array; generating a Received Credit Count value corresponding to each receiving event, wherein each Received Credit Count value comprises the reduction in receiver capacity caused by its corresponding receiving event; routing each Received Credit Count value from an output of said storage buffer to said repository for storage in one or more registers of said array; including said Freed Credit Count values and said Received Credit Count values in said routed credit count information; operating said CCE at a given time to use all of said credit count information stored in said registers of said repository, including each of said stored Freed Credit Count values and each of said stored Received Credit Count values, to determine the available storage capacity of said storage buffer in said given Receiver at the given time, and to generate an update credit count; selectively sending said update credit count to a given Transmitter, to enable said given Transmitter to send a transmission to said given Receiver, wherein said update credit count is sent to said given Transmitter, by means of a Credit Update Bus (CUB), to enable transmission of a particular Flow Control packet; said CCE selectively includes a Credit Update Policy for processing credit count information pertaining to each of said credit received and credit freed events, in order to generate said update credit count; and said credit received event information comprises a succession of received header and received data credit counts respectively routed to said CCE by means of a Credit Received Bus (CRB), and said freed event information similarly comprises freed header and freed data credit counts, respectively routed to said CCE by means of a Credit Freed Bus (CFB).