System and method for facilitating communication between devices on a bus using tags
AssigneeToshiba America Electronic Components, Inc.
InventorsShigehiro Asano, Tsutomu Ishii
Life of this patent
Estimating the term…
Abstract
Systems and methods for enabling a slave device to generate a tag that is an index into a buffer where the slave device stores information related to an active transaction such as a write command received by a master device. The tag is sent to the master device with a reply (such as a response to a write command received from the master device), the master device returns the tag with the data to be written to the slave device. The slave device can efficiently associate the received data with the previously sent write command by retrieving the command from the buffer using the tag as an index into the buffer. Additional hardware such as a content-addressable memory unit is not required to make the association.
Claims19
A method implemented in a system having one or more master devices and one or more slave devices coupled to a bus, the method comprising:
- a master device generating a write command;
- the master device assigning a first tag value to the command
- the master device storing the command in a first buffer in the master device at a location for which the first tag value is an index value;
- the master device transferring the command and the first tag to a first slave device;
- the first slave device receiving the command;
- the first slave device assigning a second tag value to the command;
- and
- the first slave device storing the command in a second buffer in the first slave device at a location for which the second tag value is an index value.
A system comprising:
- one or more slave devices,
- wherein each slave device includes a processor and a slave command buffer, and
- wherein the processor is configured to receive a write command, and
- when there are one or more available locations in the command buffer,
- store the write command in one of the available locations,
- assign a slave tag value to the command, wherein the slave tag value comprises an index to the location in the command buffer in which the command is stored, and
- transmit a reply to the command, wherein the reply includes an acknowledgment and the slave tag value.
A master device comprising:
- a processor;
- and
- a command buffer;
- wherein the processor is configured to
- receive a reply to a write command, wherein the reply includes a master tag value assigned to the command by the processor and a slave tag value assigned to the command by a slave device,
- retrieve the command from the command buffer using the master tag value,
- retrieve write data indicated by the write command, and
- transmit the write data to the slave device with the slave tag value.
A bus agent comprising:
- a processor;
- a master command buffer;
- and
- a slave command buffer;
- wherein the bus agent is configured to act as either a master or a slave in a write transaction;
- wherein when the bus agent acts as a master, the processor is configured to
- assign a master tag value to a write command,
- store the write command in a master command buffer at a location for which the master tag value is an index value,
- transmit the write command and the master tag value to a first one of the slave devices via the bus,
- receive a reply to the write command, wherein the reply includes the master tag value and a slave tag value assigned to the write command by the first slave device,
- retrieve the write command from the master command buffer using the master tag value,
- retrieve write data indicated by the write command, and
- transmit the write data to the first slave device with the slave tag value;
- and
- wherein when the bus agent acts as a slave, the processor is configured to
- receive the write command and the master tag value, and
- when there are one or more available locations in a corresponding slave command buffer,
- store the write command in one of the available locations,
- assign the slave tag value to the write command, wherein the slave tag value comprises an index to the location in the slave command buffer in which the write command is stored, and
- transmit the reply to the write command including an acknowledgment, the master tag value and the slave tag value.
Dependencies are inferred from the claim text.