Managing data transmissions with selectable modes
Methods, devices, subsystems, systems, and techniques for managing data transmissions with selectable modes are provided. In one aspect, a computing system includes: host devices, peripheral component interconnect express (PCIe) devices, and a PCIe controller having a PCIe switch coupled between the host devices and the PCIe devices. The PCIe controller is configured to: set a mode of the PCIe switch to be a first PCIe mode using first mode data, and transmit, under the first PCIe mode, first data between a first host device and at least one of the PCIe devices, and set the mode of the PCIe switch to be a second PCIe mode using second mode data, and transmit, under the second PCIe mode, second data between the first host device and one or more first PCIe devices and third data between a second host device and one or more second PCIe devices.
1 . A computing system, comprising:
host devices comprising a first host device and a second host device;
peripheral component interconnect express (PCIe) devices comprising one or more first PCIe devices and one or more second PCIe devices; and
a PCIe controller comprising a PCIe switch coupled between the host devices and the PCIe devices, wherein the PCIe controller is configured to:
set a mode of the PCIe switch to be a first PCIe mode using first mode data of the first PCIe mode, and transmit, under the first PCIe mode, first data between the first host device and at least one of the PCIe devices, and
set the mode of the PCIe switch to be a second PCIe mode using second mode data of the second PCIe mode, and transmit, under the second PCIe mode, second data between the first host device and the one or more first PCIe devices and third data between the second host device and the one or more second PCIe devices.
2 . The computing system of claim 1 , wherein the PCIe controller further comprises:
a multiplexer comprising a first input port coupled to the PCIe switch,
a first storage device configured to store the first mode data of the first PCIe mode and coupled to a first output port of the multiplexer, and
a second storage device configured to store the second mode data of the second PCIe mode and coupled to a second output port of the multiplexer.
3 . The computing system of claim 2 , wherein the multiplexer is configured to:
in response to receiving a select control signal, control a selection of coupling the input port to one of the first output port and the second output port based on the select control signal.
4 . The computing system of claim 3 , wherein the PCIe controller comprises a signal controller coupled to a second input port of the multiplexer and configured to generate the select control signal and transmit the select control signal to the multiplexer.
5 . The computing system of claim 4 , wherein the signal controller comprises:
a I2C (inter-integrated circuit) master; and
a control circuit coupled to the I2C master, and
wherein the I2C master is configured to transmit a I2C command to the control circuit, and the control circuit is configured to generate the select control signal based on the I2C command.
6 . The computing system of claim 3 , wherein the multiplexer is configured to:
transmit a device select signal from the PCIe switch through the first input port of the multiplexer to the one of the first output port and the second output port of the multiplexer to select a corresponding one of the first storage device and the second storage device.
7 . The computing system of claim 6 , wherein the PCIe switch comprises switch transmission ports coupled to each of corresponding first transmission ports of the first storage device and corresponding second transmission ports of the second storage device, and
wherein the PCIe switch is configured to:
if the first storage device is selected based on the select control signal and the device select signal, load the first mode data from the first storage device through the corresponding first transmission ports and the switch transmission ports, and set the mode of the PCIe switch to the first PCIe mode in the PCIe switch, and
if the second storage device is selected based on the select control signal and the device select signal, load the second mode data from the second storage device through the corresponding second transmission ports and the switch transmission ports, and set the mode of the PCIe switch to the second PCIe mode in the PCIe switch.
8 . The computing system of claim 7 , wherein the switch transmission ports comprise:
a reset port for transmitting a resetting signal,
a clock port for transmitting a clock signal, and
one or more data ports for transmitting data.
9 . The computing system of claim 2 , wherein each of the first storage device and the second storage device comprises a corresponding flash read-only memory (ROM).
10 . The computing system of claim 1 , wherein the PCIe switch comprises downstream ports and upstream ports, each of the downstream port being coupled to a respective PCIe device of the PCI devices, each of the upstream ports being coupled to a respective host device of the host devices.
11 . The computing system of claim 10 , wherein, under the first PCIe mode,
each of the one or more first PCIe devices and the one or more second PCIe devices communicates with each other using peer-to-peer communication directly through the PCIe switch, bypassing the first host device, and
the first data is transmitted between the first host device and the one or more first PCIe devices and the one or more second PCIe devices through the PCIe switch using a data path.
12 . The computing system of claim 10 , wherein, under the second PCIe mode,
each of the one or more first PCIe devices communicates with each other using peer-to-peer communication directly through the PCIe switch, bypassing the first host device, and the second data is transmitted between the one or more first PCIe devices and the first host device through the PCIe switch using a first data path, and
each of the one or more second PCIe devices communicates with each other using peer-to-peer communication directly through the PCIe switch, bypassing the second host device, and the third data is transmitted between the one or more second PCIe devices and the second host device through the PCIe switch using a second data path that is different from the first data path.
13 . The computing system of claim 1 , wherein the host devices comprise at least one of one or more central processing units (CPUs), one or more data processing units (DPUs), one or more tensor processing units (TPUs), one or more quantum processing units (QPUs), one or more Application Specific Integrated Circuits (ASICs), one or more Field Programmable Gate Arrays (FPGAs), or one or more other processing devices.
14 . The computing system of claim 1 , wherein the PCIe devices comprise at least one of one or more Graphics Processing Units (GPUs), one or more storage devices, one or more network devices, one or more sound devices, one or more capture devices, or one or more expansion devices.
15 . The computing system of claim 1 , wherein the PCIe controller is configured to transmit data between the host devices and the PCIe devices using a PCIe protocol, and
wherein the host devices are configured to transmit data between each other using a protocol different from the PCIe protocol.
16 . The computing system of claim 1 , comprising a plurality of subsystems,
wherein each of the plurality of subsystems comprises a corresponding PCIe controller, corresponding host devices, and corresponding PCIe devices, and the corresponding PCIe controller comprises a corresponding PCIe switch coupled between the corresponding host devices and the corresponding PCIe devices.
17 . A device, comprising:
a peripheral component interconnect express (PCIe) switch;
a multiplexer comprising an input port coupled to the PCIe switch;
a first storage device configured to store first mode data of a first PCIe mode and coupled to a first output port of the multiplexer, and
a second storage device configured to store second mode data of a second PCIe mode and coupled to a second output port of the multiplexer,
wherein the multiplexer is configured to:
select a corresponding one of the first storage device and the second storage device to be coupled to the PCIe switch based on a select control signal, and
wherein the PCIe switch is configured to:
if the first storage device is selected, load the first mode data from the first storage device, and set a mode of the PCIe switch to be the first PCIe mode in the PCIe switch, and
if the second storage device is selected, load the second mode data from the second storage device, and set the mode of the PCIe switch to be the second PCIe mode in the PCIe switch.
18 . The device of claim 17 , further comprising:
a signal controller coupled to a second input port of the multiplexer and configured to generate the select control signal and transmit the select control signal to the multiplexer.
19 . A method, comprising:
selecting, by a peripheral component interconnect express (PCIe) controller, one of a first PCIe mode and a second PCIe mode for a PCIe switch that is coupled between host devices and PCIe devices, the PCIe controller comprising the PCIe switch, the host device comprising a first host device and a second host device; and
performing, by the PCIe controller, data transmission between the host devices and the PCIe devices using the selected one of the first PCIe mode and the second PCIe mode,
wherein performing the data transmission comprises one of:
if the first PCIe mode is selected, setting a mode of the PCIe switch to be the first PCIe mode using first mode data of the first PCIe mode, and transmitting, under the first PCIe mode, first data between the first host device and at least one of the PCIe devices, and
if the second PCIe mode is selected, setting the mode of the PCIe switch to be the second PCIe mode using second mode data of the second PCIe mode, and transmitting, under the second PCIe mode, second data between the first host device and one or more first PCIe devices of the PCIe devices and third data between the second host device and one or more second PCIe devices of the PCIe devices.
20 . The method of claim 19 , wherein selecting the one of the first PCIe mode and the second PCIe mode for the PCIe switch comprises:
generating a select control signal for a multiplexer coupled between the PCIe switch and a first storage device storing the first mode data of the first PCIe mode and a second storage device storing the second mode data of the second PCIe mode; and
selecting a corresponding one of the first storage device and the second storage device based on the select control signal to be coupled to the PCIe switch using a device select signal from the PCIe switch, the corresponding one of the first storage device and the second storage device storing corresponding mode data of the selected one of the first PCIe mode and the second PCIe mode,
wherein the method further comprises:
loading, by the PCI switch, the corresponding mode data of the selected one of the first PCIe mode and the second PCIe mode from the corresponding one of the first storage device and the second storage device into the PCI switch, and
setting, by the PCI switch, the mode of the PCI switch to be the selected one of the first PCIe mode and the second PCIe mode.