IP Library › Granted Patent US 12,596,657
Granted Patent B2
US 12,596,657 · App. 18/537,869 · Granted Apr 7, 2026

Network instantiated peripheral devices

Inventors: James Scott Cannata (Denver, CO); Allen R. Andrews (Broomfield, CO); Henry Lee Harris (Redding, CA)
Assignee: Liqid Inc.
G06F13/126G06F13/128
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,596,657
App. No.
18/537,869
Granted
Apr 7, 2026
Kind
B2
Abstract

Enhanced apparatuses, systems, and techniques for coupling network-linked peripheral devices into host computing devices is presented. A method includes, over a network interface of a host device, obtaining an indication of a peripheral device available for associating with the host device. Based on the indication, the method includes initiating instantiation of the peripheral device into a Peripheral Component Interconnect Express (PCIe) subsystem of the host device by at least emulating behavior of the peripheral device over the network interface as a PCIe peripheral device coupled locally to the host system.

Claims (57)

1 . A method comprising:

obtaining traffic for a peripheral device issued by a device driver to a local peripheral interconnect interface of a host device;

translating the traffic into a network packet format suitable for a network interface of the host device comprising a header having an identifier for the peripheral device, wherein the identifier for the peripheral device comprises a device-specific network port and address which is included in the header; and

transferring the traffic in the network packet format for delivery to the peripheral device over the network interface.

2 . The method of claim 1 , comprising:

receiving additional traffic issued by the peripheral device and received over the network interface;

translating the additional traffic into translated additional traffic comprising a peripheral format suitable for the local peripheral interconnect interface of the host device; and

emulating the peripheral device as a locally coupled device to the local peripheral interconnect interface by at least providing the translated additional traffic over the local peripheral interconnect interface to reach the device driver.

3 . The method of claim 2 , comprising:

translating the additional traffic into the peripheral format suitable for the local peripheral interconnect interface of the host device by at least interpreting a network packet format used by the network interface and converting the additional traffic into the translated additional traffic in the peripheral format used by the local peripheral interconnect interface to communicate with local peripheral devices.

4 . The method of claim 1 , comprising:

initiating instantiation of the peripheral device into the local peripheral interconnect interface of the host device, wherein once instantiated, the device driver for the local peripheral interconnect interface interfaces with the peripheral device coupled over the network interface in a native format corresponding to the local peripheral interconnect interface.

5 . The method of claim 1 , comprising:

translating the traffic into the network packet format suitable for the network interface of the host device by at least interpreting a peripheral format used by the local peripheral interconnect interface to communicate with local peripheral devices of the host system and converting the traffic in the peripheral format into the translated traffic in the network packet format.

6 . The method of claim 5 , wherein

the peripheral format corresponds to a peripheral component interconnect express (PCIe) datagram format employed for local peripheral devices of the host device; and

wherein the network packet format comprises Ethernet frames or Internet Protocol (IP) packets.

7 . The method of claim 1 , comprising:

initiating instantiation of the peripheral device into the local peripheral interconnect interface by at least triggering an entry point process for the peripheral device in the local peripheral interconnect interface to emulate a hardware hot-plugging process for the peripheral device with the local peripheral interconnect interface.

8 . The method of claim 7 , wherein emulating the hardware plugging process comprises providing address space descriptions to the local peripheral interconnect interface to access the peripheral device as a local peripheral device.

9 . The method of claim 1 , comprising:

removing instantiation of the peripheral device from the local peripheral interconnect interface by at least emulating a device unplug process for the peripheral device in the local peripheral interconnect interface.

10 . The method of claim 1 , wherein emulating the hardware removal process comprises issuing a detach command to the local peripheral interconnect interface for the peripheral device and deconstructing the address space descriptions associated with the peripheral device.

11 . An apparatus, comprising:

program instructions stored on one or more non-transitory computer readable storage media, the program instructions executable by a processing system to direct the processing system to at least:

obtain traffic for a peripheral device issued by a device driver to a local peripheral interconnect interface of a host device;

translate the traffic into a network packet format suitable for a network interface of the host device comprising a header having an identifier for the peripheral device, wherein the identifier for the peripheral device comprises a device-specific network port and address which is included in the header; and

transfer the traffic in the network packet format for delivery to the peripheral device over the network interface.

12 . The apparatus of claim 11 , comprising program instructions stored on the one or more non-transitory computer readable storage media, the program instructions executable by the processing system to direct the processing system to at least:

receive additional traffic issued by the peripheral device and received over the network interface;

translate the additional traffic into translated additional traffic comprising a peripheral format suitable for the local peripheral interconnect interface of the host device; and

emulate the peripheral device as a locally coupled device to the local peripheral interconnect interface by at least providing the translated additional traffic over the local peripheral interconnect interface to reach the device driver.

13 . The apparatus of claim 12 ,

comprising program instructions stored on the one or more non-transitory computer readable storage media, the program instructions executable by the processing system to direct the processing system to at least:

translate the additional traffic into the peripheral format suitable for the local peripheral interconnect interface of the host device by at least interpreting a network packet format used by the network interface and converting the additional traffic into the translated additional traffic in the peripheral format used by the local peripheral interconnect interface to communicate with local peripheral devices.

14 . The apparatus of claim 11 , comprising program instructions stored on the one or more non-transitory computer readable storage media, the program instructions executable by the processing system to direct the processing system to at least:

initiate instantiation of the peripheral device into the local peripheral interconnect interface of the host device, wherein once instantiated, the device driver for the local peripheral interconnect interface interfaces with the peripheral device coupled over the network interface in a native format corresponding to the local peripheral interconnect interface.

15 . The apparatus of claim 11 , comprising program instructions stored on the one or more non-transitory computer readable storage media, the program instructions executable by the processing system to direct the processing system to at least:

translate the traffic into the network packet format by at least interpreting a peripheral format used by the local peripheral interconnect interface to communicate with local peripheral devices and converting the traffic in the peripheral format into the translated traffic in a network packet format.

16 . The apparatus of claim 15 , wherein the peripheral format corresponds to a peripheral component interconnect express (PCIe) datagram format employed for local peripheral devices; and

wherein the network packet format comprises Ethernet frames or Internet Protocol (IP) packets.

17 . The apparatus of claim 11 , comprising program instructions stored on the one or more non-transitory computer readable storage media, the program instructions executable by the processing system to direct the processing system to at least:

initiate instantiation of the peripheral device into the local peripheral interconnect interface by at least triggering an entry point process for the peripheral device in the local peripheral interconnect interface to emulate a hardware hot-plugging process of the peripheral device into the host device.

18 . The apparatus of claim 17 , comprising program instructions stored on the one or more non-transitory computer readable storage media, the program instructions executable by the processing system to direct the processing system to at least:

initiate de-instantiation of the peripheral device from the local peripheral interconnect interface by at least triggering an exit point process for the peripheral device in the local peripheral interconnect interface that issues a detach command to the local peripheral interconnect interface for the peripheral device to emulate a hardware unplugging process of the peripheral device from the host device.

19 . A system, comprising:

a local interface configured to communicate with a local peripheral interconnect interface of a host device;

a remote interface configured to communicate over a network interface of the host device;

an interworking unit configured to:

obtain traffic for a peripheral device issued by an application through a device driver to the local peripheral interconnect interface of the host device;

translate the first traffic into translated traffic comprising a network packet format suitable for the network interface of the host device, wherein the peripheral device is identified in a header portion for the translated traffic, wherein the peripheral device is identified in the header portion by at least a device-specific network port and address; and

transfer the translated traffic over the network interface for delivery to the peripheral device.

20 . The system of claim 19 , comprising:

the interworking unit configured to:

receive additional traffic issued by the peripheral device and received over the network interface;

translate the additional traffic into translated additional traffic comprising a peripheral format suitable for the local peripheral interconnect interface; and

emulate the peripheral device as a locally coupled device to the local peripheral interconnect interface by at least providing the translated additional traffic over the local peripheral interconnect interface to reach the device driver.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2023
From: CANNATA, JAMES SCOTT; ANDREWS, ALLEN R.; HARRIS, HENRY LEE
To: LIQID INC.
Reel/Frame 065852/0360 →
Continuity (3)
Continuation 17581605 · Jan 21, 2022
Provisional Application 63284089 · Nov 30, 2021
Related Publication 20240104029A1 · Mar 28, 2024
References Cited (33)
US 10452570B1 · Liguori · 2019 [cited by applicant]
US 10608819B1 · Brown et al. · 2020 [cited by applicant]
US 11449963B1 · Beeler et al. · 2022 [cited by applicant]
US 11886356B2 · Cannata · 2024 [cited by examiner]
US 20030131227A1 · Gardiner et al. · 2003 [cited by applicant]
US 20050251561A1 · Hanes · 2005 [cited by examiner]
US 20060026317A1 · Niikura · 2006 [cited by examiner]
US 20070174033A1 · Huang et al. · 2007 [cited by applicant]
US 20090006710A1 · Daniel et al. · 2009 [cited by applicant]
US 20100106881A1 · Daniel · 2010 [cited by applicant]
US 20100161872A1 · Daniel · 2010 [cited by applicant]
US 20110167190A1 · Lin et al. · 2011 [cited by applicant]
US 20150074322A1 · Galles · 2015 [cited by applicant]
US 20150234762A1 · Townsend · 2015 [cited by applicant]
US 20150254193A1 · Priest et al. · 2015 [cited by applicant]
US 20160098365A1 · Bshara · 2016 [cited by examiner]
US 20180121383A1 · Peng et al. · 2018 [cited by applicant]
US 20190087359A1 · Litichever et al. · 2019 [cited by applicant]
US 20190166090A1 · Kim · 2019 [cited by applicant]
US 20210390118A1 · Gorkin et al. · 2021 [cited by applicant]
US 20220075747A1 · Shuler · 2022 [cited by examiner]
US 20220206964A1 · Kim et al. · 2022 [cited by applicant]
US 20220308764A1 · Pismenny et al. · 2022 [cited by applicant]
US 20220309019A1 · Duer et al. · 2022 [cited by applicant]
JP 2012215987A · 2012 [cited by applicant]
WO 2015138245A1 · 2015 [cited by applicant]
International Search Report & Written Opinion for PCT Application PCT/US2023/06735, mailed Feb. 21, 2023; 10 pages. [cited by applicant]
FabreX Gen4 Top of Rack PCle Switch Hyper-Performance Network; Gigaio Data Sheet; 2020; 2 pages. [cited by applicant]
FabreX Gen3 Top of Rack PCle Switch Hyper-Performance Network; Gigaio Data Sheet; 2020; 2 pages. [cited by applicant]
FA4004—FabreX Gen4 PCle Adapter for Hyper-Performance Rack-Scale Composable Infrastructure; Gigaio Data Sheet; 2020; 2 pages. [cited by applicant]
PCle Gen 3 Network Adapter Card for the FabreX Hyper-Performance Network; Gigaio Data Sheet; 2020; 2 pages. [cited by applicant]
GigaIO FabreX U.2 Resource Box—Disaggregated NVMe SSD Storage; Gigaio Data Sheet; 2020; 1 page. [cited by applicant]
International Search Report and Written Opinion for PCT Application No. PCT/US2023/063579, mailed May 26, 2023; 12 pages. [cited by applicant]