A peripheral device controlling device according to an embodiment of the inventive concept includes a command queue for storing at least one Device to Device (D2D) command for data communication between a first peripheral device and a second peripheral device, a command parser for obtaining information related to the data communication from the at least one D2D command, and an orchestrator for controlling at least one of the first peripheral device and the second peripheral device to transfer data from the first peripheral device to the second peripheral device based on the acquired information.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A peripheral device controlling device of a server system including a first peripheral device, a second peripheral device, the peripheral device controlling device, a central processing unit, and a memory, the peripheral device controlling device comprising: a command queue configured to store a Device to Device (D2D) command for data communication from the first peripheral device to the second peripheral device, the D2D command generated by a device driver under control of the central processing unit; a command parser configured to parse the D2D command and obtain information related to the data communication from the D2D command; and an orchestrator configured to generate a peripheral device command based on the information and transmit the peripheral device command to the first peripheral device, the first peripheral device fetching data and transmitting the fetched data to the second peripheral device in response to the peripheral device command.
2. The peripheral device controlling device of claim 1 , wherein the D2D command generated by the device driver includes information on a target device, a source address, and a destination address associated with the data communication, the target device indicates the first peripheral device, the source address indicates a memory address of the first peripheral device, and the destination address indicates a memory address of the second peripheral device.
3. The peripheral device controlling device of claim 2 , wherein the orchestrator controls the target device to fetch the data stored in the source address based on the D2D command and controls the target device to store the fetched data in the destination address.
4. The peripheral device controlling device of claim 2 , wherein the D2D command further includes information on a communication direction and a data length associated with the data communication, wherein the communication direction indicates whether the data is written to the target device or read from the target device, and the data length indicates a length of data stored in the source address.
5. The peripheral device controlling device of claim 2 , wherein the D2D command further includes information on dependency associated with the data communication, wherein the dependency indicates whether there is a dependent D2D command to be additionally performed after the at least one D2D command is performed, wherein the orchestrator determines that the dependent D2D command does not exist based on the dependency.
6. The peripheral device controlling device of claim 1 , wherein the orchestrator generates the peripheral device command in accordance with a standard device protocol requested by the first peripheral device.
7. The peripheral device controlling device of claim 1 , further comprising, when the data stored in the first peripheral device is fetched, an intermediate buffer for storing the fetched data.
8. The peripheral device controlling device of claim 7 , wherein the D2D command is a first D2D command and the command queue further stores a second D2D command, and each of the first D2D command and the second D2D command includes information on a target device, a source address, a destination address, and a dependency related to the data communication, wherein the target device of the first D2D command indicates the first peripheral device, the source address of the first D2D command indicates a memory address of the first peripheral device, the destination address of the first D2D command indicates a memory address of the intermediate buffer, and the dependency of the first D2D command indicates that the dependent second D2D command exists, and wherein the target device of the second D2D command indicates the second peripheral device, the source address of the second D2D command indicates the memory address of the intermediate buffer, the destination address of the second D2D command indicates a memory address of the second peripheral device, and the dependency of the second D2D command indicates that the dependent D2D command does not exist.
9. The peripheral device controlling device of claim 8 , wherein the orchestrator controls the first peripheral device to fetch the data stored in the memory address of the first peripheral device based on the first D2D command and to store the fetched data in the memory address of the intermediate buffer, and controls the second peripheral device to fetch data stored in the memory address of the intermediate buffer based on the second D2D command and to store the fetched data in the memory address of the second peripheral device.
10. The peripheral device controlling device of claim 8 , wherein the orchestrator performs the first D2D command based on the dependency of the first D2D command and the dependency of the second D2D command and then performs the second D2D command.
11. The peripheral device controlling device of claim 8 , wherein one of the first D2D command and the second D2D command further comprises information of Transmission Control Protocol/Internet Protocol (TCP/IP), wherein the orchestrator controls the second peripheral device to fetch data stored in the memory address of the intermediate buffer based on the second D2D command, and controls the second peripheral device to generate a packet including the fetched data and the information of the TCP/IP and to transmit the generated packet to the outside.
12. The peripheral device controlling device of claim 7 , further comprising a near-device processor configured to process the fetched data stored in the intermediate buffer to generate result data, and store the result data in the intermediate buffer.
13. The peripheral device controlling device of claim 12 , wherein the D2D command is a first D2D command and the command queue further stores a second D2D command and a third D2D command, each of the first D2D command and the third D2D command includes information on a target device, a source address, a destination address, and a dependency associated with the data communication, and the second D2D command includes information on a data processing type, a source address, a destination address, and a dependency related to the processing, wherein the target device of the first D2D command indicates the first peripheral device, the source address of the first D2D command indicates a memory address of the first peripheral device, the destination address of the first D2D command indicates a first memory address of the intermediate buffer, and the dependency of the first D2D command indicates that a dependent second D2D command exists, wherein the data processing type of the second D2D command indicates a kind of operation corresponding to the processing, the source address of the second D2D command indicates the first memory address of the intermediate buffer, the destination address of the second D2D command indicates a second memory address of the intermediate buffer, and the dependency of the second D2D command indicates that a dependent third D2D command exists, and wherein the target device of the third D2D command indicates the second peripheral device, the source address of the third D2D command indicates the second memory address of the intermediate buffer, the destination address of the third D2D command indicates a memory address of the second peripheral device, and the dependency of the third D2D command indicates that a dependent D2D command does not exist.
14. The peripheral device controlling device of claim 13 , wherein the orchestrator controls the first peripheral device to fetch the data stored in the memory address of the first peripheral device based on the first D2D command and controls the first peripheral device to store the fetched data in the first memory address of the intermediate buffer, controls the near-device processor to process data stored in the first memory address of the intermediate buffer according to the data processing type based on the second D2D command and then, controls the near-device processor to store the result data in the second memory address of the intermediate buffer, and controls the second peripheral device to fetch data stored in the second memory address of the intermediate buffer based on the third D2D command and controls the second peripheral device to store the fetched data in the memory address of the second peripheral device.
15. The peripheral device controlling device of claim 1 , wherein each of the first peripheral device, the second peripheral device, and the peripheral device controlling device is mounted in a Peripheral Component Interconnect Express (PCIe) slot.
16. An operation method of a peripheral device controlling device of a server system including of a first peripheral device, a second peripheral device, the peripheral device controlling device, a central processing unit, and a memory, the method comprising: receiving, by a command queue of the peripheral device controlling device, at least one D2D command for transmission of data between the first peripheral device and the second peripheral device, the at least one D2D command generated by a device driver under control of the central processing unit; obtaining, by a command parser of the peripheral device controlling device, information related to the transmission of the data from the at least one D2D command; generating, by an orchestrator of the peripheral device controlling device, a peripheral device command based on the obtained information; and transmitting, by the orchestrator of the peripheral device controlling device, the peripheral device command to the first peripheral device the first peripheral device fetching data and transmitting the fetched data to the second peripheral device in response to the peripheral device command.
17. The method of claim 16 , further comprising: determining whether the at least one D2D command includes a data processing command based on the obtained information; and processing, by a near-device processor of the peripheral device controlling device, the data if the data processing command exists.
18. An operation method of a peripheral device controlling device driver of a peripheral device controlling device of a server system including a first peripheral device, a second peripheral device, the peripheral device controlling device, and a host, the method comprising: receiving, by the peripheral device controlling device driver, from the host a command for transferring data from the first peripheral device to the second peripheral device; checking, by the peripheral device controlling device driver, driving information of the first peripheral device and the second peripheral device from the host; generating, by the peripheral device controlling device driver, at least one D2D command for the command based on the driving information; and transferring, by the peripheral device controlling device driver, the at least one D2D command to the peripheral device controlling device.
19. The method of claim 18 , wherein the at least one D2D command includes information on a target device, a source address, and a destination address associated with the transferring data, the target device indicates the first peripheral device, the source address indicates a memory address of the first peripheral device, and the destination address indicates a memory address of the second peripheral device.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
September 11, 2018
May 26, 2020
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.