Tunneling of peripheral-bus protocol traffic over coherent fabric and chip-to-chip or die-to-die bus
A peripheral device includes a main chip that includes a coherent interconnect, one or more first peripheral-bus modules, a Chip-to-Chip (C2C) or Die-to-Die (D2D) interface, and one or more tunnel adapters. The coherent interconnect is to connect electronic components of the peripheral device in accordance with a coherent interconnect protocol. The one or more first peripheral-bus modules are to communicate in accordance with a peripheral-bus protocol. The C2C or D2D interface is to communicate over a C2C or D2D bus with an auxiliary chip that includes one or more second peripheral-bus modules. The one or more tunnel adapters are to convey peripheral-bus packets of the peripheral-bus protocol between the first and second peripheral-bus modules over the coherent interconnect and the C2C or D2D bus, by translating between the peripheral-bus packets, messages of the coherent interconnect protocol and C2C or D2D bus messages.
1 . A peripheral device, comprising a main chip, the main chip comprising:
a coherent interconnect to connect electronic components of the peripheral device in accordance with a coherent interconnect protocol;
one or more first peripheral-bus modules to communicate in accordance with a peripheral-bus protocol;
a Chip-to-Chip (C2C) or Die-to-Die (D2D) interface to communicate over a C2C or D2D bus with an auxiliary chip, the auxiliary chip comprising one or more second peripheral-bus modules to communicate in accordance with the peripheral-bus protocol; and
one or more tunnel adapters, to convey peripheral-bus packets of the peripheral-bus protocol between the first and second peripheral-bus modules over the coherent interconnect and the C2C or D2D bus, by (i) translating between first peripheral-bus packets and messages of the coherent interconnect protocol, (ii) translating between the messages of the coherent interconnect protocol and C2C or D2D bus messages, and (iii) translating between the C2C or D2D bus messages and second peripheral-bus packets.
2 . The peripheral device according to claim 1 , wherein a given tunnel adapter is to:
receive, from the coherent interconnect, one or more of the messages of the coherent interconnect protocol that carry one or more of the peripheral-bus packets;
translate the one or more of the messages of the coherent interconnect protocol into one or more of the C2C or D2D bus messages; and
send the one or more of the C2C or D2D bus messages via the C2C or D2D interface to the C2C or D2D bus.
3 . The peripheral device according to claim 1 , wherein a given tunnel adapter is to:
receive, from the C2C or D2D bus via the C2C or D2D interface, one or more of the C2C or D2D bus messages that carry one or more of the peripheral-bus packets;
translate the one or more of the C2C or D2D bus messages into one or more of the messages of the coherent interconnect protocol; and
send the one or more of the messages of the coherent interconnect protocol to the coherent interconnect.
4 . The peripheral device according to claim 1 , wherein a given first peripheral-bus module among the first peripheral-bus modules is to communicate with a host over a peripheral bus in accordance with the peripheral-bus protocol.
5 . The peripheral device according to claim 1 , wherein the messages of the coherent interconnect protocol are smaller in data size than the peripheral-bus packets, and wherein a given tunnel adapter among the tunnel adapters is to translate a peripheral-bus packet into a plurality of the messages.
6 . The peripheral device according to claim 1 , wherein the messages of the coherent interconnect protocol are smaller in data size than the peripheral-bus packets, and wherein a given tunnel adapter among the tunnel adapters is to identify a plurality of the messages corresponding to a peripheral-bus packet, and to reconstruct the peripheral-bus packet from the identified plurality of messages.
7 . The peripheral device according to claim 1 , wherein the coherent interconnect protocol does not guarantee unconditional in-order delivery of the messages, and wherein, in translating the first peripheral-bus packets into the messages, a given tunnel adapter among the tunnel adapters is to select two or more of the messages, and to cause the coherent interconnect to deliver the selected messages in-order.
8 . The peripheral device according to claim 7 , wherein the given tunnel adapter is to cause the coherent interconnect to deliver the selected messages in-order by assigning to the selected messages a same hash value, thereby causing the coherent interconnect to route the selected messages over a same route.
9 . The peripheral device according to claim 1 , wherein a given tunnel adapter among the tunnel adapters is to:
receive messages corresponding to peripheral-bus packets originating from multiple different peripheral-bus modules;
maintain a respective context for each of the multiple different peripheral-bus modules; and
reconstruct the peripheral-bus packets originating from each of the multiple different peripheral-bus modules using the respective context.
10 . The peripheral device according to claim 1 , wherein at least one of the tunnel adapters is to control a flow of the messages by applying credit-based flow control.
11 . A method in a peripheral device that comprises a main chip, the method comprising:
connecting electronic components of the peripheral device with one another in accordance with a coherent interconnect protocol, by a coherent interconnect in the peripheral device;
using one or more first peripheral-bus modules, communicating in accordance with a peripheral-bus protocol;
communicating over a Chip-to-Chip (C2C) or Die-to-Die (D2D) bus with an auxiliary chip comprising one or more second peripheral-bus modules that communicate in accordance with the peripheral-bus protocol; and
using one or more tunnel adapters, conveying peripheral-bus packets of the peripheral-bus protocol between the first and second peripheral-bus modules over the coherent interconnect and the C2C or D2D bus, by (i) translating between first peripheral-bus packets and messages of the coherent interconnect protocol, (ii) translating between the messages of the coherent interconnect protocol and C2C or D2D bus messages, and (iii) translating between the C2C or D2D bus messages and second peripheral-bus packets.
12 . The method according to claim 11 , wherein conveying the peripheral-bus packets comprises, in a given tunnel adapter:
receiving, from the coherent interconnect, one or more of the messages of the coherent interconnect protocol that carry one or more of the peripheral-bus packets;
translating the one or more of the messages of the coherent interconnect protocol into one or more of the C2C or D2D bus messages; and
sending the one or more of the C2C or D2D bus messages to the C2C or D2D bus.
13 . The method according to claim 11 , wherein conveying the peripheral-bus packets comprises, in a given tunnel adapter:
receiving, from the C2C or D2D bus, one or more of the C2C or D2D bus messages that carry one or more of the peripheral-bus packets;
translating the one or more of the C2C or D2D bus messages into one or more of the messages of the coherent interconnect protocol; and
sending the one or more of the messages of the coherent interconnect to the protocol coherent interconnect.
14 . The method according to claim 11 , wherein communicating in accordance with the peripheral-bus protocol comprises communicating, over a peripheral bus, between a given first peripheral-bus module among the first peripheral-bus modules and a host.
15 . The method according to claim 11 , wherein the messages of the coherent interconnect protocol are smaller in data size than the peripheral-bus packets, and wherein conveying the peripheral-bus packets comprises, in among a given tunnel adapter the tunnel adapters, translating a peripheral-bus packet into a plurality of the messages.
16 . The method according to claim 11 , wherein the messages of the coherent interconnect protocol are smaller in data size than the peripheral-bus packets, and wherein conveying the peripheral-bus packets comprises, in a given tunnel adapter among the tunnel adapters, identifying a plurality of the messages corresponding to a peripheral-bus packet, and reconstructing the peripheral-bus packet from the identified plurality of messages.
17 . The method according to claim 11 , wherein the coherent interconnect protocol does not guarantee unconditional in-order delivery of the messages, and wherein translating the first peripheral-bus packets into the messages comprises selecting two or more of the messages, and causing the coherent interconnect to deliver the selected messages in-order.
18 . The method according to claim 17 , wherein causing the coherent interconnect to deliver the selected messages in-order comprises assigning to the selected messages a same hash value, thereby causing the coherent interconnect to route the selected messages over a same route.
19 . The method according to claim 11 , wherein conveying the peripheral-bus packets comprises, in a given tunnel adapter among the tunnel adapters:
receiving corresponding to peripheral-bus packets originating from multiple different peripheral-bus modules;
maintaining a respective context for each of the multiple different peripheral-bus modules; and
reconstructing the peripheral-bus packets originating from each of the multiple different peripheral-bus modules using the respective context.
20 . The method according to claim 11 , and comprising controlling a flow of the messages, in at least one of the tunnel adapters, by applying credit-based flow control.