# US 2014/0207986 A1 · Apparatus for multiple bus master engines to share the same request channel to a pipelined backbone

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

- Number: US 2014/0207986 A1
- Document ID: US20140207986A1
- Status: Published application
- Kind: A1
- Application number: 13/997,623
- Filed: 2011-11-09
- Published: 2014-07-24
- Earliest claimed: 2011-11-09
- Assignees: Intel Corporation
- Inventors: Ngek Leong Guok; Kah Meng Yeem; Poh Thiam Teoh; Jennifer Chin; Su Wei Lim
- Web page: https://patentgrep.com/patent/US20140207986A1

## CPC

- G06F 13/364: using independent requests or grants, e.g. using separated request and grant lines
- H04L 12/28: characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks] (wireless communication networks H04W {; arrangements for dividing the transmission path H04W40/00})
- 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

In accordance with embodiments disclosed herein are mechanisms for enabling multiple bus master engines to share the same request channel to a pipelined backbone including: receiving a plurality of unarbitrated grant requests at an agent bus interface from a plurality of masters, each requesting access to a backbone connected via a common request channel; determining which of the unarbitrated grant requests is to issue first as a final grant request; storing a master identifier code for the final grant request into a FIFO buffer, the master identifier code associating the final grant request with the issuing master among the plurality of masters; waiting for a backbone grant; and presenting the master identifier code for the final grant request to an agent bus interface, wherein the agent bus interface communicates a command and data for processing via a backbone responsive to the backbone grant to fulfill the final grant request.

## Claims

### Claim 1

A method comprising:
receiving a plurality of unarbitrated grant requests at an agent bus interface from a plurality of masters, wherein each of the plurality of masters issue the unarbitrated grant requests requesting access to a backbone connected via a common request channel;
determining which of the unarbitrated grant requests is to issue first as a final grant request;
storing a master identifier code for the final grant request into a First-In-First-Out (FIFO) buffer, the master identifier code associating the final grant request with the issuing master among the plurality of masters;
waiting for a backbone grant; and
presenting the master identifier code for the final grant request to an agent bus interface, wherein the agent bus interface communicates a command and data for processing via the backbone responsive to the backbone grant to fulfill the final grant request.

### Claim 2 (depends on 1)

The method of claim 1:
wherein determining which of the unarbitrated grant requests is to issue first as a final grant request comprises arbitrating the plurality of unarbitrated grant requests received at the agent bus interface from the plurality of masters; and
wherein each unarbitrated grant request is issued as a final grant request by the agent bus interface in an order determined by the agent bus interface as a result of arbitrage for the plurality of unarbitrated grant requests received.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
determining which of a remaining one or more of the plurality of unarbitrated grant requests is to issue second as a second final grant request;
writing the master identifier code into the entry of FIFO buffer pointed to by a request load pointer for each of the first final grant request and the second final grant request in the order in which the first and second final grant requests are received;
issuing, via an agent bus interface, the first final grant request from a first master onto the common request channel;
issuing, via the agent bus interface, the second final grant request from a second master onto the common request channel; and
wherein the first final grant request and the second final grant request are issued onto the common request channel to be processed via the backbone in the order in which the request master identification codes corresponding to the first and second final grant requests are written into the FIFO buffer.

### Claim 4 (depends on 3)

The method of claim 3:
wherein an active request queue receives the issued first final grant request and the issued second final grant request via the agent bus interface; and
wherein the active request queue forces the first final grant request and the second final grant request to be processed via the backbone in the order the first and second final grant requests are received by the active request queue.

### Claim 5 (depends on 3)

The method of claim 3, wherein each of the plurality of masters comprises one of:
a PCI Express attached device issuing one of the plurality of unarbitrated grant requests;
a serial ATA attached device issuing one of the plurality of unarbitrated grant requests;
a Platform Controller Hub attached device issuing one of the plurality of unarbitrated grant requests; and
a Direct Media Interface (DMI) attached device issuing one of the plurality of unarbitrated grant requests.

### Claim 6 (depends on 1)

The method of claim 1, wherein the FIFO buffer comprises a memory having a plurality of entry slots, wherein each of the plurality of entry slots stores a request master identification code identifying the issuing master of an unarbitrated grant request among the plurality of masters issuing the plurality of unarbitrated grant requests.

### Claim 7 (depends on 1)

The method of claim 1:
wherein storing the master identifier code for the grant request into the FIFO buffer comprises writing a request master identifier code into one of a plurality of entry slots in the FIFO buffer; and
responsively incrementing a Request Load Pointer to cause the Request Load Pointer to point to a next one of the plurality of entry slots in the FIFO buffer.

### Claim 8 (depends on 7)

The method of claim 7, further comprising:
reading a grant master identification code corresponding to the request master identifier code from one of a plurality of entry slots in the FIFO buffer responsive to receiving the backbone grant; and
responsively incrementing a Grant Unload Pointer to cause the Grant Unload Pointer to point to a next populated one of the plurality of entry slots in the FIFO buffer.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
determining, via an ARQ Free calculator, whether the FIFO buffer has an empty entry slot capable to receive and buffer a new final grant request issued by the agent bus interface; and
wherein storing themaster identifier code for the grant request into the FIFO buffer comprises storing the master identifier code into the empty slot of the FIFO buffer when the FIFO buffer is determined to have the empty slot.

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
determining, via the agent bus interface, which issuing master among the plurality of masters corresponds to the master identifier code for the final grant request presented to the agent bus interface;
retrieving the command and the data for processing the final grant request; and
communicating the command and the data for processing to the backbone via the common request channel.

### Claim 11

An apparatus comprising:
a memory comprising a First-In-First-Out (FIFO) buffer, the FIFO buffer having a plurality of entry slots;
a FIFO buffer write port to write a master identifier code into an empty slot of the FIFO buffer responsive to the apparatus receiving an unarbitrated grant request for communication to a backbone via a common request channel, the received grant request from one of a plurality of masters communicatively interfaced with the apparatus, and wherein each of the plurality of masters issue unarbitrated grant requests for communication to the backbone;
a FIFO buffer read port to read the master identifier code from the FIFO buffer responsive to receiving a backbone grant; and
active request queue logic to present the master identifier code to the agent bus interface to cause the agent bus interface to communicate, via the common request channel, a command and data to a backbone for processing.

### Claim 12 (depends on 11)

The apparatus of claim 11:
wherein the master identifier code associates the received unarbitrated grant request with the issuing master among the plurality of masters;
wherein the master identification code written into empty slot of the FIFO buffer comprises a request master identification code; and
wherein the master identification code read from the FIFO buffer comprises a grant master identification code corresponding to the request master identification code.

### Claim 13 (depends on 11)

The apparatus of claim 11:
wherein the agent bus interface to determine which master among the plurality of masters issued the final grant request based on the master identifier code;
wherein the agent bus interface to retrieve the command and the data associated based on which master among the plurality of masters issued the final grant request; and
wherein the agent bus interface to communicate, via the common request channel, the command and the data for processing via the backbone responsive to the backbone grant to fulfill the final grant request.

### Claim 14 (depends on 11)

The apparatus of claim 11, further comprising:
a pointer incrementer to increment a Request Load Pointer to cause the Request Load Pointer to point to a next one of the plurality of entry slots in the FIFO buffer subsequent to the FIFO write port writing the master identifier code into the empty slot of the FIFO buffer.

### Claim 15 (depends on 14)

The apparatus of claim 14, further comprising:
the pointer incrementer to increment a Grant Unload Pointer to cause the Grant Unload Pointer to point to a next populated one of the plurality of entry slots in the FIFO buffer subsequent to the FIFO read, port reading the master identifier code from the FIFO buffer.

### Claim 16 (depends on 11)

The apparatus of claim 11, further comprising:
an ARQ Free calculator to determine whether the FIFO buffer has an empty entry slot capable to receive and buffer a new final grant request having been arbitrated by the agent bus interface; and
wherein the FIFO buffer write port to write the master identifier code into the empty slot of the FIFO buffer comprises the FIFO buffer write port to write the master identifier code into the empty slot when the FIFO buffer is determined by the ARQ Free calculator to have the empty slot.

### Claim 17 (depends on 11)

The apparatus of claim 11:
wherein an active request queue of the apparatus is to receive the final grant request from a first master among the plurality of masters, the final grant request having been arbitrated by the agent bus interface;
wherein the active request queue of the apparatus is to receive a second final grant request from a second master among the plurality of masters, the second final grant request having been arbitrated by the agent bus interface;
wherein the FIFO buffer write port to write the master identifier code into a first empty slot of the FIFO buffer and to further write a second master identifier code into a next empty slot of the FIFO buffer; and
wherein the active request queue of the apparatus forces the first and second final grant requests to be communicated to the backbone via the common request channel and processed via the backbone in the order the first and second final grant requests are received by the active request queue.

### Claim 18

A system comprising:
a display;
an agent bus interface;
an active request queue communicatively interfaced with the agent bus interface, wherein the active request queue comprises:
a memory comprising a First-In-First-Out (FIFO) buffer, the FIFO buffer having a plurality of entry slots;
a FIFO buffer write port to write a master identifier code into an empty slot of the FIFO buffer responsive to the apparatus receiving an unarbitrated grant request for communication to a backbone via a common request channel, the received grant request from one of a plurality of masters communicatively interfaced with the apparatus, and wherein each of the plurality of masters issue unarbitrated grant requests for communication to the backbone;
a FIFO buffer read port to read the master identifier code from the FIFO buffer responsive to receiving a backbone grant, and
active request queue logic to present the master identifier code to the agent bus interface to cause the agent bus interface to communicate, via the common request channel, a command and data to a backbone for processing.

### Claim 19 (depends on 18)

The system of claim 18, further comprising:
the agent bus interface to receive the unarbitrated grant request and to communicate the final grant request to the active request queue subsequent to arbitrage.

### Claim 20 (depends on 19)

The system of claim 19, further comprising:
one or more peripheral devices, each having one or more masters among the plurality of masters, wherein each of the plurality of masters issue unarbitrated grant requests to the agent bus interface requesting access to resources available via the backbone via the common request channel; and
wherein each of the one or more peripheral devices comprise one of:
a PCI Express attached device issuing the unarbitrated grant request;
a serial ATA attached device issuing the unarbitrated grant request;
a Platform Controller Hub attached device issuing the unarbitrated grant request; and
a Direct Media Interface (DMI) attached device issuing the unarbitrated grant request.
