# US 10,311,007 B2 · Multicore bus architecture with non-blocking high performance transaction credit system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,311,007 B2
- Document ID: US10311007B2
- Status: Granted
- Kind: B2
- Application number: 15/903,183
- Filed: 2018-02-23
- Published: 2018-10-11
- Granted: 2019-06-04
- Earliest claimed: 2014-10-31
- Assignees: Texas Instruments Incorporated
- Applicants: Texas Instruments Incorporated
- Inventors: David M. Thompson; Timothy D. Anderson; Joseph R. M. Zbiciak; Abhijeet A. Chachad; Kai Chirca; Matthew D. Pierson
- Web page: https://patentgrep.com/patent/US10311007B2

## CPC

- G06F 13/42: Bus transfer protocol, e.g. handshake; Synchronisation
- G06F 13/364: using independent requests or grants, e.g. using separated request and grant lines
- G06F 13/404: {with address mapping}
- G06F 13/4282: {on a serial bus, e.g. I2C bus, SPI bus (on daisy chain buses G06F13/4247)}
- H04L 47/10: Flow control; Congestion control
- H04L 47/215: using token-bucket
- H04L 47/39: {Credit based}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

This invention is a bus communication protocol. A master device stores bus credits. The master device may transmit a bus transaction only if it holds sufficient number and type of bus credits. Upon transmission, the master device decrements the number of stored bus credits. The bus credits correspond to resources on a slave device for receiving bus transactions. The slave device must receive the bus transaction if accompanied by the proper credits. The slave device services the transaction. The slave device then transmits a credit return. The master device adds the corresponding number and types of credits to the stored amount. The slave device is ready to accept another bus transaction and the master device is re-enabled to initiate the bus transaction. In many types of interactions a bus agent may act as both master and slave depending upon the state of the process.

## Claims

### Claim 1

A data processing system comprising:
a bus interface including a plurality of transaction attribute channels (TACs) that are credited channels and a plurality of transaction data channels (TDCs) that are non-credited channels;
a first logic unit coupled to the bus interface and including a first credit counter to indicate a respective count of each of a plurality of credit types, wherein each credit type corresponds to a respective one of a plurality of transaction types that the first logic unit is configured to initiate over the bus interface, and wherein the plurality of transaction types includes at least a first transaction type that includes transfer of data from the first logic unit; and
a second logic unit coupled to the bus interface;
wherein the first logic unit is configured to operate as a master agent to initiate a first transaction that is of the first transaction type by sending transaction attribute information corresponding to the first transaction on a first TAC of the plurality of TACs, causing the first credit counter to decrement the count of the credit type corresponding the first transaction type, and sending data information corresponding to the first transaction on a first TDC of the plurality of TDCs; and
wherein the second logic is configured to operate as a slave agent to accept the first transaction by receiving, on the first TAC, the transaction attribute information corresponding to the first transaction and receiving, on the first TDC, the data information corresponding to the first transaction.

### Claim 2 (depends on 1)

The data processing system of claim 1, wherein the transaction attribute information includes a credit type signal that indicates the credit type associated with the first transaction.

### Claim 3 (depends on 2)

The data processing system of claim 2, wherein the credit type signal is a multi-bit signal having a width equivalent to a total number of the plurality of credit types.

### Claim 4 (depends on 1)

The data processing system of claim 1, wherein, when the count of the credit type corresponding to the first transaction is greater than zero, the second device accepts the first transaction unconditionally when operating as the slave agent.

### Claim 5 (depends on 1)

The data processing system of claim 1, wherein the transaction attribute information corresponding to the first transaction includes a transaction identification (ID) signal indicating an identifier for the first transaction.

### Claim 6 (depends on 5)

The data processing system of claim 5, wherein the data information corresponding to the first transaction includes a data ID signal having a value equal to the identifier for the first transaction.

### Claim 7 (depends on 1)

The data processing system of claim 1, wherein the first transaction type is a write operation.

### Claim 8 (depends on 7)

The data processing system of claim 7, wherein the bus interface includes a plurality of write response channels that are credited channels, and wherein the second logic unit is configured to, in response to completing processing of the first transaction, send a first write response to the first logic unit using a first write response channel of the plurality of write response channels.

### Claim 9 (depends on 8)

The data processing system of claim 8, wherein the first logic unit is configured to, in response to receiving the first write response on the first write response channel, cause the first credit counter to increment the count of the credit type corresponding the first transaction type.

### Claim 10 (depends on 1)

The data processing system of claim 1, wherein the first logic unit is a first processing unit of the data processing system and the second logic unit is a second processing unit of the data processing system.

### Claim 11 (depends on 1)

The data processing system of claim 1, wherein the bus interface, the first logic unit, and the second logic unit are disposed on a single integrated circuit die.

### Claim 12

A data processing system comprising:
a bus interface including a plurality of transaction attribute channels (TACs) that are credited channels;
a first logic unit coupled to the bus interface and including a first credit counter to indicate a respective count of each of a plurality of credit types, wherein each credit type corresponds to a respective one of a plurality of transaction types that the first logic unit is configured to initiate over the bus interface, wherein the first logic unit is configured to operate as a master agent to initiate a first transaction that is of a first transaction type of the plurality of transaction types by:
sending transaction attribute information corresponding to the first transaction on a first TAC of the plurality of TACs, the transaction attribute information including a credit type signal that indicates a credit type associated with the first transaction, wherein the credit type signal has a plurality of bits equal to a total number of the plurality of credit types; and
decrementing the count of the credit type corresponding the first transaction type to reflect a spend of one credit of the credit type associated with the first transaction.

### Claim 13 (depends on 12)

The data processing system of claim 12, wherein:
each bit of the credit type signal indicates a logic value of either 0 or 1;
the bit of the credit type signal corresponding to the credit type associated with the first transaction indicates a logic value of 1; and
all other bits of the credit type signal indicate a logic value of 0.

### Claim 14 (depends on 12)

The data processing system of claim 12, wherein the transaction attribute information corresponding to the first transaction further includes a transaction type signal indicating the first transaction type as one of a read transaction, a write transaction, a snoop transaction, a maintenance transaction, a message transaction, and a response transaction.

### Claim 15 (depends on 14)

The data processing system of claim 14, wherein the bus interface includes a plurality of transaction data channels (TDCs) that are non-credited channels, and, when the first transaction type is a write transaction, the first logic unit sends data information corresponding to the first transaction on a first TDC of the plurality of TDCs as part of the first transaction.

### Claim 16 (depends on 15)

The data processing system of claim 15, wherein, when the first transaction type is a write transaction, the transaction attribute information corresponding to the first transaction includes a transaction identifier and the data information corresponding to the first transaction includes a data identifier, the data identifier matching the transaction identifier in order to associate the data information with the transaction attribute information.
