Bridging between differing communication buses
AssigneeInternational Business Machines Corporation
InventorsAndrew R. Ranck, Mushfiq U. Saleheen, Jie Zheng
Life of this patent
Estimating the term…
Abstract
Communication between one communication bus having one set of characteristics and another communication bus having another set of characteristics is facilitated by a bridge coupling the two communication buses. The bridge includes a scoreboard to manage data communicated between the buses. In one particular example, the one communication bus is a Processor Local Bus (PLB6) and the other communication bus is an Application Specific Integrated Chip (ASIC) Interconnect Bus (AIB).
Claims20
A method of communicating between communication buses of a computing environment, the method comprising:
- receiving, by a bridge implemented at least in part in hardware, a request, the bridge coupled between one communication bus having a first set of characteristics and another communication bus having another set of characteristics different from the one set of characteristics, the bridge comprising a scoreboard to be used in servicing the request, the scoreboard including a plurality of tags to be assigned to one or more requests and one or more buffers to store data, wherein a buffer of the one or more buffers used in servicing the request includes a plurality of slots to store data, a slot comprising one or more entries in the buffer;
- determining by the bridge whether the request is to be processed, the determining using the scoreboard;
- based on determining the request is to be processed, initiating processing of the request, and assigning at least one tag of the plurality of tags to the request;
- storing data associated with the request in the buffer, wherein the data is stored in one or more slots of the plurality of slots of the buffer, the one or more slots being selected based on the at least one tag assigned to the request, wherein the data is received in any order, but stored in the buffer in order based on the request;
- and
- controlling access to the data by the other communication bus, the controlling access using the scoreboard and comprising:
- determining whether the other communication bus is to have access to the data in the buffer;
- based on determining the other communication bus is to have access to the data, providing the other communication bus with access to the data;
- and
- based on determining the other communication bus is not to have access to the data, preventing access to the data via an empty indication of the buffer regardless of whether the buffer is empty, wherein the preventing access comprises determining whether data is available in the buffer for a selected tag of the plurality of tags, the selected tag chosen based on an ordering of requests to be serviced, and preventing the access via the empty indication of the buffer, based on the data for the selected tag being unavailable even if data for one or more other tags of the plurality of tags is available in the buffer.
A system for communicating between communication buses of a computing environment, the system comprising:
- one communication bus having a first set of characteristics and another communication bus having another set of characteristics different from the one set of characteristics;
- and
- a bridge coupled between the one communication bus and the other communication bridge, the bridge implemented at least in part in hardware, and including memory and logic circuits, said system configured to perform a method, said method comprising:
- receiving by the bridge a request, the bridge comprising a scoreboard to be used in servicing the request, the scoreboard including a plurality of tags to be assigned to one or more requests and one or more buffers to store data, wherein a buffer of the one or more buffers used in servicing the request includes a plurality of slots to store data, a slot comprising one or more entries in the buffer;
- determining by the bridge whether the request is to be processed, the determining using the scoreboard;
- based on determining the request is to be processed, initiating processing of the request, and assigning at least one tag of the plurality of tags to the request;
- storing data associated with the request in the buffer, wherein the data is stored in one or more slots of the plurality of slots of the buffer, the one or more slots being selected based on the at least one tag assigned to the request, wherein the data is received in any order, but stored in the buffer in order based on the request;
- and
- controlling access to the data by the other communication bus, the controlling access using the scoreboard and comprising:
- determining whether the other communication bus is to have access to the data in the buffer;
- based on determining the other communication bus is to have access to the data, providing the other communication bus with access to the data;
- and
- based on determining the other communication bus is not to have access to the data, preventing access to the data via an empty indication of the buffer regardless of whether the buffer is empty, wherein the preventing access comprises determining whether data is available in the buffer for a selected tag of the plurality of tags, the selected tag chosen based on an ordering of requests to be serviced, and preventing the access via the empty indication of the buffer, based on the data for the selected tag being unavailable even if data for one or more other tags of the plurality of tags is available in the buffer.
Dependencies are inferred from the claim text.