Patent ID: 7165094

Claim:
A method for communicating data between functional blocks in a computing device, comprising: establishing a unique identifier for each independent transaction stream between an initiator functional block and a target functional block within a multiple threading system, wherein a plurality of independent transaction streams exist between the initiator functional block and the target functional block, if the target functional block is unable to accept a data transfer from the initiator functional block, the target functional block issuing a busy signal identified by the unique identifier; the initiator functional block withholding issuance of data transfers associated with the unique identifier in response to the issued busy signal, wherein data transfers not associated with the unique identifier identified by the issued busy signal may be issued; using a credit signal to provide advance notice that the target functional block can accept one or more data transfers associated with the unique identifier, wherein the initiator functional block can issue a number of data transfers up to the data transfers indicated by the credit signal to ensure a bus between the initiator functional block and the target functional block is non-blocking, via the use of credit signals, to enable a determination of service guarantees for the plurality of independent transaction streams on a per unique identifier basis; and mapping a data flow from the initiator functional block to the target functional block for a first transaction stream indicated by its unique identifier to meet its service guarantee on the per unique identifier basis.