Apparatus, system, and method for a device shared between multiple independent hosts
First Claim
1. An apparatus, comprising:
- a command proxy host configured to communicate with a system bus, the command proxy host comprising;
a proxy request receiver module configured to receive a proxy request for a shared device from a requesting host, wherein the proxy request comprises a control request executable by the shared device to configure the shared device for a plurality of direct memory access data transfers via a data path between the requesting host and the shared device independent of the command proxy host, the plurality of data transfers comprising data corresponding to a plurality of requests initiated by the requesting host after the shared device executes the control request, the control request comprising control information including an intermediate buffer identification, the control request being executed during an initialization process;
a path module configured to create a communication path comprising the data path and a shared resource control path between the command proxy host and the shared device, wherein the shared resource control path is configurable to control allocation of the shared device to the requesting host;
a proxy request command module configured to transmit the control request via the shared resource control path to the shared device in response to the proxy request receiver module receiving the proxy request; and
wherein the proxy request receiver module, the path module, the proxy request command module, comprise one or more of logic hardware and a non-transitory computer readable medium having executable code stored thereon.
12 Assignments
0 Petitions
Accused Products
Abstract
The invention includes a proxy request receiver module and a proxy request command module. The proxy request receiver module executes on a designated command proxy host and receives a proxy request from a requesting host. The requesting host is one of two or more hosts. Each of the hosts executes an operating system independent from the other hosts and a shared device. One of the hosts is designated as the command proxy host. A system bus connects the hosts and shared device. The proxy request includes a control request to be executed by the shared device sufficient to configure the shared device for a data transfer between the requesting host and shared device independent of the command proxy host. The control request is free of data. The proxy request command module transmits the control request to the shared device.
-
Citations
30 Claims
-
1. An apparatus, comprising:
-
a command proxy host configured to communicate with a system bus, the command proxy host comprising; a proxy request receiver module configured to receive a proxy request for a shared device from a requesting host, wherein the proxy request comprises a control request executable by the shared device to configure the shared device for a plurality of direct memory access data transfers via a data path between the requesting host and the shared device independent of the command proxy host, the plurality of data transfers comprising data corresponding to a plurality of requests initiated by the requesting host after the shared device executes the control request, the control request comprising control information including an intermediate buffer identification, the control request being executed during an initialization process; a path module configured to create a communication path comprising the data path and a shared resource control path between the command proxy host and the shared device, wherein the shared resource control path is configurable to control allocation of the shared device to the requesting host; a proxy request command module configured to transmit the control request via the shared resource control path to the shared device in response to the proxy request receiver module receiving the proxy request; and wherein the proxy request receiver module, the path module, the proxy request command module, comprise one or more of logic hardware and a non-transitory computer readable medium having executable code stored thereon. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. An apparatus, comprising:
a command proxy host that communicates with a system bus, the command proxy host comprising; a proxy request receiver module that receives a proxy request from a requesting host; a path module that creates a data path between a shared device and the requesting host and a shared resource control path between the command proxy host and the shared device, wherein the data path is created by sending a control request, corresponding to the proxy request, to the shared device via the shared resource control path, the control request is executable to configure the shared device for a plurality of direct memory access data transfers via the data path independent of the command proxy host, and the plurality of data transfers comprise data corresponding to a plurality of requests initiated by the requesting host after the shared device executes the control request, the control request comprising control information including an intermediate buffer identification, the control request being executed during an initialization process; and an interrupt module that receives, from the shared device, an interrupt comprising information specifying that the shared device has data to be transmitted to the requesting host; wherein the interrupt module transmits the information to the requesting host, and wherein the proxy request receiver module, the path module, and the interrupt module comprise one or more of logic hardware and a non-transitory computer readable medium having executable code stored thereon. - View Dependent Claims (21)
-
22. An apparatus, comprising:
-
a requesting host configurable to communicate with a command proxy host via a system bus, the requesting host comprising; a proxy request transmitter module configurable to transmit a proxy request to the command proxy host via a shared resource control path between the requesting host and the command proxy host, wherein the proxy request comprises a control request executable by a shared device to configure the shared device for a plurality of direct memory access data transfers between the requesting host and the shared device via a data path created by the command proxy host independent of the command proxy host, the plurality of data transfers comprising data corresponding to a plurality of requests initiated by the requesting host after the shared device executes the control request, the control request comprising control information including an intermediate buffer identification, the control request being executed during an initialization process; and a host data transmitter module configurable to initiate a plurality of data transfers between the requesting host and the shared device via the data path, wherein the plurality of data transfers is executable independently of the command proxy host; wherein the proxy request transmitter module, and the host data transmitter module, comprise one or more of logic hardware and a non-transitory computer readable medium having executable code stored thereon. - View Dependent Claims (23)
-
-
24. A non-transitory computer readable medium having program code stored thereon, wherein the program code is executable to cause a computer system to perform operations, the operations comprising:
-
receiving a proxy request from a requesting host, the proxy request comprising a control request executable by a shared device to configure the shared device for a plurality of direct memory access data transfers between the requesting host and the shared device independent of the command proxy host, the plurality of data transfers comprising data corresponding to a plurality of requests initiated by the requesting host after the shared device executes the control request, the control request comprising control information including an intermediate buffer identification, the control request being executed during an initialization process; creating a communication path, the communication path comprising a data path between the shared device and the requesting host and a shared resource control path between the command proxy host and the shared device, wherein the shared resource control path is configurable to control allocation of the shared device to the requesting host; and transmitting the control request to the shared device via the shared resource control path.
-
-
25. A method, comprising:
-
a command proxy host receiving a proxy request from a requesting host via a system bus, wherein the proxy request includes information for configuring the shared device for a plurality of direct memory access data transfers between the requesting host and the shared device independent of the command proxy host, the plurality of data transfers comprising data corresponding to a plurality of requests initiated by the requesting host after the shared device executes the control request, the control request comprising control information including an intermediate buffer identification, the control request being executed during an initialization process; creating a communication path using the system bus, the communication path comprising a data path between the shared device and the requesting host and a shared resource control path between the command proxy host and the shared device, wherein the shared resource control path is configurable to control allocation of the shared device; and the command proxy host transmitting the information to the shared device via the shared resource control path to configure the shared device for a plurality of direct data transfers between the requesting host and the shared device, wherein the plurality of direct data transfers is executable independently of the command proxy host and the plurality of data transfers comprise data corresponding to a plurality of requests initiated by the requesting host. - View Dependent Claims (26, 27, 28, 29, 30)
-
Specification