IP Library Granted Patent US 12,505,059
Granted Patent B2
US 12,505,059 · App. 19/017,408 · Granted Dec 23, 2025

Scalable virtualization of GPUs and compute accelerators in a switch providing CXL resource-as-a-service of memory, NVMe or RDMA networking via SLD agnostic provisioning

Inventors: Ronen Aharon Hyatt (Haifa, IL); Gaya Opal Hyatt (Haifa, IL); Ethan Sharon Hyatt (Haifa, IL)
Assignee: UnifabriX Ltd.
G06F13/4022G06F13/387G06F13/4282
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,505,059
App. No.
19/017,408
Granted
Dec 23, 2025
Kind
B2
Abstract

Embodiments of a switch enabling multiple hosts to concurrently access and share resources of a Single Logical Device (SLD). The switch includes first and second upstream switch ports (USPs) coupled to first and second hosts, and a downstream switch port (DSP) coupled to the SLD. The first USP communicates with the first host according to a first Compute Express Link (CXL) protocol, the second USP communicates with the second host according to a second CXL protocol, and the DSP communicates with a first CXL SLD component according to a third CXL protocol. A Resource Provisioning Unit (RPU) terminates the first, second, and third CXL protocols, and exposes second and third virtualized SLDs, which utilize resources of the first SLD component, to the first and second hosts, respectively. Optionally, the first, second, and third CXL protocols are CXL.mem protocols.

Claims (47)

1 . A switch, comprising:

a first upstream switch port (USP) configured to communicate with a first host according to a first Compute Express Link (CXL) protocol;

a second USP configured to communicate with a second host according to a second CXL protocol;

a first downstream switch port (DSP) configured to communicate with a first CXL Single Logical Device (SLD) component according to a third CXL protocol; and

a Resource Provisioning Unit (RPU) configured to:

terminate the first, second, and third CXL protocols; and

expose second and third SLDs to the first and second hosts, respectively, wherein the second and third SLDs are virtualized SLDs that utilize resources of the first SLD component.

2 . The switch of claim 1 , wherein the RPU is coupled to the first USP via a second DSP that is bound to a first Virtual CXL Switch (VCS) that is bound to the first USP; the RPU is further coupled to the second USP via a third DSP that is bound to a second VCS that is bound to the second USP; and the RPU is further coupled to the first DSP via a third USP that is bound to a third VCS that is bound to the first DSP.

3 . The switch of claim 2 , wherein the RPU is further coupled to: the second DSP via a first Endpoint, the third DSP via a second Endpoint, and the third USP via a first Root Port.

4 . The switch of claim 1 , wherein the first SLD component is a CXL Type 3 device, and the second and third SLDs are exposed to the first and second hosts as CXL Type 3 devices.

5 . The switch of claim 1 , wherein the first SLD component is a CXL Type 3 device, and the second and third SLDs are exposed to the first and second hosts as CXL Type 1 or Type 2 devices.

6 . The switch of claim 1 , wherein the first SLD component is a CXL Type 1 or Type 2 device, and the second and third SLDs are exposed to the first and second hosts as CXL Type 3 devices.

7 . The switch of claim 1 , wherein the first SLD component is a CXL Type 1 or Type 2 device, the second SLD is exposed to the first host as CXL Type 3 device, and the third SLD is exposed to the second host as CXL Type 1 or Type 2 device.

8 . The switch of claim 1 , wherein the first SLD component is identified at least by the following first Configuration Space values: a first Vendor ID, a first Device ID, and a first Class Code; the second SLD is identified at least by the following second Configuration Space values: a second Vendor ID, a second Device ID, and a second Class Code; and wherein the first and second Configuration Space values are not identical.

9 . The switch of claim 1 , wherein the first, second, and third CXL protocols are CXL.mem protocols.

10 . The switch of claim 1 , wherein the third CXL protocol is CXL.mem protocol, and the first and second CXL protocols are CXL.cache protocols.

11 . The switch of claim 1 , wherein the first SLD component comprises at least 8 GB of DRAM, the RPU configures a first Configuration Space of the second SLD to identify the second SLD as a first memory device having a first memory capacity, the RPU configures a second Configuration Space of the third SLD to identify the third SLD as a second memory device having a second memory capacity, and wherein each of the second and third SLDs utilizes at least 4 GB of DRAM of the first SLD component.

12 . The switch of claim 11 , wherein the RPU is further configured to maintain memory isolation between the first and second hosts while allowing both hosts to utilize portions of the first SLD component DRAM.

13 . The switch of claim 11 , wherein the RPU is further configured to maintain memory sharing between the first and second hosts by exposing parts of the first SLD component DRAM to both the first and second hosts via the second and third SLDs.

14 . The switch of claim 11 , wherein the first memory capacity supports a first set of Reliability, Availability, and Serviceability (RAS) features, the second memory capacity supports a second set of RAS features, and wherein the first and second sets of RAS features are not identical.

15 . The switch of claim 1 , wherein the RPU configures a first Configuration Space of the second SLD to identify the second SLD as a CXL device, and the RPU further configures second Configuration Space of the third SLD to identify the third SLD as a Non-Volatile Memory Express (NVMe) device.

16 . The switch of claim 1 , wherein the first SLD component comprises at least 8 GB of DRAM, the RPU configures a first Configuration Space of the second SLD to identify the second SLD as a CXL Type-3 device having a DRAM capacity of at least 4 GB, and the RPU further configures second Configuration Space of the third SLD to identify the third SLD as a Non-Volatile Memory Express (NVMe) device having capacity of at least 4 GB.

17 . The switch of claim 1 , wherein the first SLD component comprises storage resources having a first namespace partitioning a first capacity, the RPU configures a first Configuration Space of the second SLD to identify the second SLD as a first Non-Volatile Memory Express (NVMe) device having a second namespace partitioning a second capacity, and the RPU configures a second Configuration Space of the third SLD to identify the third SLD as a second NVMe controller having a third namespace partitioning a third capacity.

18 . The switch of claim 1 , wherein the first SLD component comprises processor cores, the RPU configures a first Configuration Space of the second SLD to identify the second SLD as a first processor having a first set of capabilities, and the RPU configures a second Configuration Space of the third SLD to identify the third SLD as a second processor having a second set of capabilities.

19 . The switch of claim 18 , wherein each of the first and second sets of capabilities represents one or more of the following: number of processing cores, mix of processing core sizes, cache topologies, cache sizes, instruction set extensions, operating power budgets, or thermal throttling parameters.

20 . A switch, comprising:

a first upstream switch port (USP) configured to communicate with a first host according to a first Compute Express Link (CXL) protocol;

a second USP configured to communicate with a second host according to a second CXL protocol;

a first downstream switch port (DSP) configured to communicate with a first CXL Single Logical Device (SLD) accelerator according to a third CXL protocol; and

a Resource Provisioning Unit (RPU) configured to:

terminate the first, second, and third CXL protocols; and

expose second and third SLDs to the first and second hosts, respectively, wherein the second and third SLDs are virtualized SLDs that utilize acceleration resources of the first SLD accelerator.

21 . The switch of claim 20 , wherein the first SLD accelerator comprises Graphics Processing Unit (GPU) resources, the RPU configures a first Configuration Space of the second SLD to identify the second SLD as a first GPU having first GPU capabilities, and the RPU configures a second Configuration Space of the third SLD to identify the third SLD as a second GPU having second GPU capabilities.

22 . The switch of claim 21 , wherein the first GPU capabilities comprise support for tensor operations with at least 32-bit precision and unified memory architecture, the second GPU capabilities comprise support for tensor operations with at least 16-bit precision and dedicated memory architecture, and the RPU implements different GPU scheduling policies for the first and second GPU capabilities.

23 . The switch of claim 20 , wherein the first SLD accelerator comprises artificial intelligence (AI) acceleration resources, the RPU configures a first Configuration Space of the second SLD to identify the second SLD as a first AI accelerator supporting a first set of AI operations, and the RPU configures a second Configuration Space of the third SLD to identify the third SLD as a second AI accelerator supporting a second set of AI operations.

24 . The switch of claim 23 , wherein the first set of AI operations comprises support for transformer model operations with at least 32-bit floating-point precision and sparsity acceleration, the second set of AI operations comprises support for convolutional neural network operations with at least 8-bit precision, and the RPU implements different model execution and memory access policies for the first and second sets of AI operations.

25 . The switch of claim 20 , wherein the first SLD accelerator comprises cryptographic acceleration resources, the RPU configures a first Configuration Space of the second SLD to identify the second SLD as a first cryptographic accelerator supporting a first set of cryptographic algorithms, and the RPU configures a second Configuration Space of the third SLD to identify the third SLD as a second cryptographic accelerator supporting a second set of cryptographic algorithms.

26 . The switch of claim 25 , wherein the first set of cryptographic algorithms comprises support for post-quantum cryptography and homomorphic encryption, the second set of cryptographic algorithms comprises support for standard public key cryptography and symmetric encryption, and the RPU implements different security domain isolation policies for the first and second sets of cryptographic algorithms.

27 . The switch of claim 20 , wherein the first SLD accelerator comprises network acceleration resources, the RPU configures a first Configuration Space of the second SLD to identify the second SLD as a first network accelerator supporting a first set of network protocols, and the RPU configures a second Configuration Space of the third SLD to identify the third SLD as a second network accelerator supporting a second set of network protocols.

28 . The switch of claim 27 , wherein the first set of network protocols comprises support for data processing unit (DPU) operations with network virtualization and Remote Direct Memory Access (RDMA) storage acceleration, the second set of network protocols comprises support for Network Function Virtualization (NFV) with packet processing acceleration, and the RPU implements different workload isolation policies for the first and second sets of network protocols.

29 . A method, comprising:

communicating, by a first upstream switch port (USP) according to a first Compute Express Link (CXL) protocol, with a first host;

communicating, by a second USP according to a second CXL protocol, with a second host;

communicating, by a first downstream switch port (DSP) according to a third CXL protocol, with a first CXL Single Logical Device (SLD) component;

terminating the first, second, and third CXL protocols; and

exposing second and third SLDs to the first and second hosts, respectively, wherein the second and third SLDs are virtualized SLDs that utilize resources of the first SLD component.

30 . A non-transitory computer-readable medium comprising instructions that, when executed by a processor, cause the processor to perform the method of claim 29 .

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2026
From: UNIFABRIX LTD.
To: HYATT, GAYA OPAL, MS.; HYATT, ETHAN SHARON, MR.
Reel/Frame 075681/0652 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 12, 2025
From: HYATT, RONEN AHARON, MR.; HYATT, GAYA OPAL, MS.; HYATT, ETHAN SHARON, MR.
To: UNIFABRIX LTD.
Reel/Frame 071080/0948 →
Continuity (9)
Continuation In Part 18981445 · Dec 13, 2024
Provisional Application 63719640 · Nov 12, 2024
Provisional Application 63701554 · Sep 30, 2024
Provisional Application 63695957 · Sep 18, 2024
Provisional Application 63678045 · Jul 31, 2024
Provisional Application 63652165 · May 27, 2024
Provisional Application 63641404 · May 1, 2024
Provisional Application 63609833 · Dec 13, 2023
Related Publication 20250199983A1 · Jun 19, 2025
References Cited (37)
US 11360906B2 · Duan · 2022 [cited by applicant]
US 11740958B2 · Das Sharma · 2023 [cited by applicant]
US 11789878B2 · Graniello · 2023 [cited by applicant]
US 11816036B2 · Vasudevan · 2023 [cited by applicant]
US 11847459B2 · Agarwal · 2023 [cited by applicant]
US 11995017B2 · Norrie · 2024 [cited by applicant]
US 12040991B2 · Kar · 2024 [cited by applicant]
US 20200242042A1 · Svennebring · 2020 [cited by applicant]
US 20200322287A1 · Connor · 2020 [cited by examiner]
US 20210232520A1 · Choudhary · 2021 [cited by applicant]
US 20210240655A1 · Das Sharma · 2021 [cited by applicant]
US 20220004488A1 · Paul · 2022 [cited by applicant]
US 20220269433A1 · Pal · 2022 [cited by examiner]
US 20220398207A1 · Norrie · 2022 [cited by examiner]
US 20230022544A1 · Willhalm · 2023 [cited by applicant]
US 20230029026A1 · Guim Bernat · 2023 [cited by applicant]
US 20230036751A1 · Guim Bernat · 2023 [cited by applicant]
US 20230077239A1 · Schmole · 2023 [cited by examiner]
US 20230229498A1 · Agarwal · 2023 [cited by applicant]
US 20230325265A1 · Balle · 2023 [cited by applicant]
US 20230359578A1 · Lee · 2023 [cited by applicant]
US 20230376427A1 · Oh · 2023 [cited by applicant]
US 20230393997A1 · Shah · 2023 [cited by applicant]
US 20240231615A1 · Choi · 2024 [cited by examiner]
US 20240289286A1 · Sun · 2024 [cited by applicant]
US 20240378161A1 · Kwon · 2024 [cited by examiner]
Hyatt Ronen, “CXL in the AI Era: A Midterm Report—Technology, Achievements, Challenges, Innovation”. May 9, 2024. USPTO Tech Fair. [cited by applicant]
Mellor Chris, “UnifabriX taking CXL external memory mainstream”, Jan. 15, 2025, https://blocksandfiles.com/2025/01/15/unifabrix-taking-cxl-external-memory-mainstream/. [cited by applicant]
Compute Express Link (CXL) Specification Revision 3.1, Aug. 7, 2023, Compute Express Link Consortium, Inc. [cited by applicant]
Compute Express Link (CXL) Specification Revision 2.0, Oct. 2020, Compute Express Link Consortium, Inc. [cited by applicant]
Compute Express Link (CXL) Specification Revision 1.1, Jun. 2019, Compute Express Link Consortium, Inc. [cited by applicant]
Debendra Das Sharma, Robert Blankenship, and Daniel Berger. 2024. An Introduction to the Compute Express Link (CXL) Interconnect. ACM Comput. Surv. 56, 11, Article 290 (Jul. 2024). [cited by applicant]
CXL* Type 3 Memory Device Software Guide, System Firmware, UEFI and OS Software Implementation Guide. Revision 1.0. Jul. 2021. Intel. [cited by applicant]
PCI Express® Base Specification Revision 6.2. Jan. 25, 2024. PCI-SIG Specification. [cited by applicant]
PCI Express* 6.0 Retimer Supplemental Features and Standard BGA Footprint Specification. Revision 0.9. Jul. 2024. Intel. [cited by applicant]
4th Gen Intel® Xeon® Scalable Processor XCC (Codename Sapphire Rapids) Uncore Performance Monitoring Guide. Revision 001. Apr. 2024. Intel. [cited by applicant]
OSFP MSA Specification for OSFP Octal Small Form Factor Pluggable Module. Rev 5.1. Sep. 12, 2024. [cited by applicant]