Managing fast to slow links in a bus fabric
AssigneeApple Inc.
InventorsJason M. Kassoff, Kevin C. Wong, Brian P. Lilly, Gurjeet S. Saund
Life of this patent
Estimating the term…
Abstract
Systems and methods for managing fast to slow links in a bus fabric. A pair of link interface units connect agents with a clock mismatch. Each link interface unit includes an asynchronous FIFO for storing transactions that are sent over the clock domain crossing. When the command for a new transaction is ready to be sent while data for the previous transaction is still being sent, the link interface unit prevents the last data beat of the previous transaction from being sent. Instead, after a delay of one or more clock cycles, the last data beat overlaps with the command of the new transaction.
Claims24
A link interface unit (LIU) comprising a transmit unit, wherein the LIU is located in a first clock domain, wherein the first clock domain is running at a first clock frequency, and wherein the transmit unit is configured to:
- send a command and one or more data beats of a first transaction to a receive unit in a second clock domain, wherein the second clock domain is running at a second clock frequency, and wherein the first clock frequency is greater than or equal to the second clock frequency;
- and
- responsive to determining a command of a second transaction is ready to be sent:
- delay a last data beat of the first transaction for one or more clock cycles;
- and
- send the last data beat of the first transaction simultaneously with the command of the second transaction.
A method comprising:
- sending a command and one or more data beats of a first transaction on a link from a first agent to a second agent, wherein the link crosses clock domains, and wherein a first clock domain of the first agent has a clock frequency greater than or equal to a second clock domain of the second agent;
- receiving an indication that a second transaction is ready to be sent within a predetermined number of clock cycles;
- preventing a last data beat of the first transaction from being sent immediately following a previous data beat responsive to determining a number of available tokens is below a predetermined threshold;
- and
- sending the last data beat of the first transaction in a same clock cycle together with a command of the second transaction.
A method comprising:
- sending one or more data beats of a first transaction from a first link interface unit (LIU) to a second LIU, wherein the first LIU is operating at a first clock frequency greater than or equal to a second clock frequency of the second LIU;
- and
- sending a last data beat of the first transaction and a command of the second transaction together in a same clock cycle responsive to determining the command of the second transaction is ready to be sent.
An apparatus comprising:
- a first link interface unit (LIU), wherein the first LIU comprises a transmit unit, and wherein the first LIU is configured to run at a first clock frequency;
- a second LIU, wherein the second LIU comprises a receive unit, wherein the second LIU is configured to run at a second clock frequency, and wherein the first clock frequency is greater than or equal to the second clock frequency;
- wherein the transmit unit of the first LIU is configured to:
- delay sending a last data beat of a first transaction to the second LIU responsive to determining a command of a second transaction is ready to be sent;
- and
- send the last data beat and the command of the second transaction together to the second LIU in a single clock cycle.
Dependencies are inferred from the claim text.