Ring-based cache coherent bus
AssigneeBroadcom Corporation
InventorFong Pong
Life of this patent
Estimating the term…
Abstract
Managing data traffic among three or more bus agents configured in a topological ring can include numbering each bus agent sequentially and injecting messages from the bus agents into the ring during cycles of bus agent activity, where the messages include a binary polarity value and a queue entry value. Messages are received from the ring into two or more receive buffers of a receiving bus agent. The value of the binary polarity value is changed after succeeding N cycles of bus ring activity, where N is the number of bus agents connected to the ring. The received messages are ordered for processing by the receiving bus agent based on at least in part on the polarity value of the messages and the queue entry value of the messages.
Claims17
A method of managing data traffic among three or more bus agents configured in a topological ring, the method comprising:
- numbering each bus agent sequentially;
- injecting messages from the bus agents into the ring during cycles of bus agent activity, wherein the messages comprise a binary polarity value and a queue entry value;
- receiving messages from the ring into two or more receive buffers of a receiving bus agent;
- alternating the value of the binary polarity value after succeeding N cycles of bus ring activity, where N is the number of bus agents connected to the ring;
- and
- ordering the received messages for processing by the receiving bus agent based on at least in part on the polarity value of the messages and the queue entry value of the messages.
A system of three or more bus agents interconnected in a topological ring configured to deliver messages between bus agents, each bus agent comprising:
- an output queue configured for buffering messages to be injected into the ring for transmission to other bus agents;
- a bus controller configured to tag messages injected into the ring with a binary polarity value and a queue entry value, wherein the polarity value changes after N cycles of bus ring activity, where N is the number of agent connected to the ring;
- and
- a first input queue configured to receive and buffer messages received from the ring tagged with a first polarity value;
- a second input queue configured to receive and buffer messages received from the ring tagged with a second polarity value;
- a processor configured to order messages received from the ring in the input queue based at least in part on the polarity value and the queue entry value of the received messages.
Dependencies are inferred from the claim text.