# US 5,708,783 A · Data bus arbiter for pipelined transactions on a split bus

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

- Number: US 5,708,783 A
- Document ID: US5708783A
- Status: Granted
- Kind: A
- Application number: 08/430,454
- Filed: 1995-04-28
- Granted: 1998-01-13
- Earliest claimed: 1995-04-28
- Assignees: Apple Computer, Inc.
- Inventors: Farid A. Yazdy
- Web page: https://patentgrep.com/patent/US5708783A

## CPC

- G06F 13/362: with centralised access control
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A data bus arbiter for supporting pipelined transactions employs a circular FIFO for storing bus requests. The arbiter includes two pointers which reference the entries of the FIFO. A first pointer is incremented upon detection of the end of a bus cycle. A second pointer is incremented when a new bus cycle is started.

## Claims

### Claim 1

A data bus arbiter for granting a data bus to one of a plurality of bus masters at a time, separately of an address bus associated therewith, comprising:
logic for detecting the beginning of a bus cycle;
logic for determining whether said detected bus cycle includes a request to use said data bus;
logic for granting said data bus, in association with said logic for determining, to a first one of said plurality of bus masters which requests use of said data bus;
a storage device for storing an identity of said first one of said plurality of bus masters, and for also storing an identity of at least a second one of said plurality of bus masters to be granted said data bus next, wherein said logic for granting grants said data bus to said second one of said plurality of bus masters after said first one of said plurality of bus masters has completed its data cycle;
wherein said logic for granting comprises a plurality of pointers which store addresses associated with said identities of said first and second bus masters; and
wherein said logic for granting increments one of said plurality of pointers in response to the detection of a start of a bus cycle which includes a request to use of said data bus.

### Claim 2 (depends on 1)

The data bus arbiter of claim 1, wherein said storage device is a circular FIFO and said stored identities are individually stored in a respective element of said circular FIFO.

### Claim 3 (depends on 1)

The data bus arbiter of claim 1, wherein said pointers comprise counters.

### Claim 4 (depends on 1)

The data bus arbiter of claim 1, wherein said logic for granting increments another of said plurality of pointers after said data cycle associated with said first one of said plurality of bus masters is completed and generates a data bus grant signal to said second one of said plurality of bus masters using a value stored in a storage element identifying said second one of said plurality of bus masters.

### Claim 5 (depends on 1)

The data bus arbiter of claim 1, wherein said logic for granting stores a value indicative of a third one of said plurality of bus masters to be granted said data bus after said second one of said plurality of bus master completes its data cycle.

### Claim 6 (depends on 5)

The data bus arbiter of claim 5, wherein said first, second and third ones of said plurality of bus masters can be the same bus master.

### Claim 7 (depends on 1)

The data bus arbiter of claim 1, wherein said logic for granting does not advance said pointer when said bus cycle is an address-only bus cycle.

### Claim 8

A method for arbiting a data bus independently of an address bus associated therewith, comprising the steps of:
receiving an indication of an address bus grant to one of a plurality of bus masters;
granting, if said data bus is currently idle, said data bus to said one of said plurality of bus masters;
storing, if said data bus is currently busy, an identifier of said one of said plurality of bus masters using a FIFO storage device; and
later granting said data bus, if said data bus is currently busy, to said one of said plurality of bus masters using said stored identifier;
wherein said FIFO storage device includes a plurality of storage locations, and further includes associated therewith at least first and second pointers for addressing said storage locations, wherein said method further comprises the steps of:
incrementing said first pointer when a bus master completes its use of said data bus;
incrementing said second pointer when a new bus cycle is started which includes a request to access to said data bus.

### Claim 9 (depends on 7)

The method for arbiting a data bus of claim 7, wherein said second pointer is not advanced when said new bus cycle is an address-only bus cycle.
