Computing system for reducing latency between serially connected electronic devices
A computing system includes a host, a first electronic device connected to the host, and a second electronic device that communicates with the host through the first electronic device. The first electronic device requests a command written in a submission queue of the host based on a doorbell transmitted from the host, stores the command transmitted from the host, requests write data stored in a data buffer of the host, and stores the write data of the data buffer transmitted from the host.
1. A computing system comprising:
a host;
a first electronic device coupled to the host; and
a second electronic device coupled to the first electronic device, the second electronic device configured to communicate with the host through the first electronic device,
wherein the first electronic device is configured to:
request the host to transmit a write command written in a submission queue of the host based on a doorbell received from the host;
store the write command received from the host;
transmit the write command to the second electronic device;
request, at a first time, the host to transmit write data of the write command stored in a data buffer of the host;
store the write data received from the host; and
receive, from the second electronic device, a write data request directed to the host at a second time after the first time, and
wherein the first electronic device is further configured to:
request the host to transmit a read command written in the submission queue of the host;
store the read command received from the host;
receive read data of the read command transmitted from the second electronic device receiving the read command; and
transmit the read data to the host.
2. The computing system of claim 1 , wherein the first electronic device is a peripheral component interconnect express (PCIe) switch, and
wherein the second electronic device a non-volatile memory express (NVMe) device.
3. The computing system of claim 1 , wherein the first electronic device comprises:
an intermediate submission queue buffer configured to store the write command; and
an intermediate write buffer configured to store the write data.
4. The computing system of claim 3 , wherein the host does not directly access the intermediate submission queue buffer and the intermediate write buffer of the first electronic device.
5. The computing system of claim 3 , wherein the first electronic device is further configured to:
transmit the write command stored in the intermediate submission queue buffer to the second electronic device in response to a request of the second electronic device receiving the doorbell; and
transmit the write data stored in the intermediate write buffer to the second electronic device in response to a request of the second electronic device receiving the write command.
6. The computing system of claim 5 , wherein the first electronic device is further configured to:
receive completion information of the write command from the second electronic device receiving the write command and transmit the completion information to the host.
7. The computing system of claim 3 , wherein the first electronic device further comprises:
a doorbell parser configured to request the write command written in the submission queue of the host during at least a portion of parsing the doorbell and transmitting the doorbell to the second electronic device, wherein the doorbell parser is implemented by a hardware processor in the first electronic device.
8. The computing system of claim 7 , wherein the doorbell parser is further configured to access the submission queue of the host indicated by an address of the doorbell.
9. The computing system of claim 3 , wherein the first electronic device further comprises:
a command parser configured to request the write data stored in the data buffer of the host during at least a portion of parsing the write command and transmitting the write command to the second electronic device, wherein the command parser is implemented by a hardware processor in the first electronic device.