CN112988632A - 设备之间的共享存储器空间 - Google Patents
设备之间的共享存储器空间 Download PDFInfo
- Publication number
- CN112988632A CN112988632A CN202011024459.7A CN202011024459A CN112988632A CN 112988632 A CN112988632 A CN 112988632A CN 202011024459 A CN202011024459 A CN 202011024459A CN 112988632 A CN112988632 A CN 112988632A
- Authority
- CN
- China
- Prior art keywords
- queue
- interface
- direct
- memory
- requestor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17331—Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Human Computer Interaction (AREA)
- Advance Control (AREA)
- Bus Control (AREA)
- Multi Processors (AREA)
Abstract
一些示例提供了存储器事务请求方配置目标以将存储器地址识别为非本地或者非共享地址的方式。请求方与目标之间的中间件配置目标的控制平面层以认识到涉及存储器地址的事务将使用直接存储器存取操作执行。中间件连接到请求方作为本地设备或者过程。在配置之后,被提供到目标的具有配置的存储器地址的存储器事务使得目标调用对相关联的直接存储器存取操作的使用以取回与存储器地址相关联的内容或者使用直接存储器存取操作写入内容。
Description
背景技术
在数据中心中,通过使用加速器设备代表客户执行一些操作(例如,工作负载),该加速器设备能够比通用处理器更快地执行操作集合的并且还满足与客户的服务水平协议(SLA)的性能目标(例如,目标延迟、每秒钟操作的目标数量等)。数据去往和来自加速度设备的传送可以引入延迟并且增加完成工作负载所花费的时间。另外地,在不共享存储器域的存储器或者存储设备之间复制内容可以引入存取内容的挑战。
附图说明
图1A描绘了具有计算平台的系统,该计算平台访问一个或多个计算平台。
图1B提供了从一个存储器区域到另一存储器区域的远程直接存储器存取(RDMA)操作的示例。
图2A描绘了在请求方侧处在存储器地址与直接存储器存取地址之间的转换的示例格式。
图2B还描绘了在主机缓冲器地址与直接读取队列标识符和/或直接写入队列标识符之间的示例转换。
图3A描绘了允许复制内容的操作的示例序列。
图3B描绘了加速器将结果写入到请求方或者与请求方通信的示例方式。
图3C描绘了允许复制内容的操作的示例序列。
图3D描绘了加速器将结果写入到请求方或者与请求方通信的示例方式。
图4A描绘了可以由请求方执行的示例过程。
图4B描绘了可以由目标执行的示例过程。
图4C描绘了可以由目标使用以基于直接读取操作来提供来自处理的结果的示例过程。
图5描绘了示例系统。
图6描绘了环境。
具体实施方式
在示例物理存储器域中,作为该域的一部分的实体可以共享数据但是使用地址转换(例如,使用指针和地址转换)。假设使用支持存储器映射构造的互连,则存储器域(例如,物理、虚拟或者逻辑)可以跨多个服务器。诸如Intel计算快速链路(CXL)、快速外围组件互连(PCIe)和Gen-Z之类的一些互连和结构使用标准存储器读取或者写入命令来提供基于存储器的语义并且允许设备共享存储器地址域。然而,诸如以太网或者NVMe-oF之类的一些联网和结构协议在主机与远程设备之间提供单独的存储器域并且存储器地址域不在主机与远程设备之间共享。
当应用(或者其他软件或设备)使用远程加速器时,存在针对输入/输出(I/O)的缓冲器,并且这些缓冲器由应用使用以提供工作指派和要处理的相关联的内容以及用于接收结果的地方。例如,以太网使用消息(例如,传输控制协议(TCP))、用户数据报协议(UDP)或者远程直接存储器存取(RDMA))以进行在应用(或者其他软件或设备)与远程设备之间的通信。应用积极地管理消息中的数据或者命令到目的地的移动。例如,应用指示远程加速器缓冲器的可用性并且请求复制缓冲器的内容。更具体地,数据或者命令移动可以涉及分配缓冲器、调用直接存储器存取(DMA)或者远程直接存储器存取(RDMA)以复制数据或者命令,在加速器复制缓冲器的内容的同时将内容保持在缓冲器上,以及应用调度命令的性能。然而,应用对数据或者命令的传送的积极管理会加重由应用使用的核心或者资源的负担。
各种实施例规定请求方(例如,应用、软件或者设备)在与目标交互时将存储器事务管理卸载到接口。在一些实施例中,接口可以将存储器事务与远程直接存储器存取语义进行关联。例如,远程直接存储器存取语义允许请求方通过包括以下各项中的一个或多个的连接向远程存储器进行写入或者读取:互连、网络、总线或者结构。在一些示例中,远程直接存储器存取语义可以使用与远程直接存储器存取(RDMA)相关联的队列对(QP),如至少在iWARP、InfiniBand、通过聚合的以太网的RDMA(RoCE)v2中描述的。接口可以是另一设备或者软件(或者其组合)。独立于请求方,接口可以针对具有本地或者远程存储器设备的各种存储器缓冲器建立RDM队列对配置。在至少一个实施例中,请求方可能不具有监视目标位于哪里或者目标如何被存取的能力(例如,本地对远程)。存储器空间或者域可以在请求方与目标之间不共享。
各种实施例为请求方提供用于对结构上加速器(AOF)或者端点设备进行存取的能力,并且AOF或端点设备配置远程目标以使用远程直接存储器存取协议(例如,RDMA)以从本地存储器缓冲器向请求方读取或者写入内容。
例如,当请求方请求涉及目标的存储器事务时,请求方向请求方接口发送请求并且指定地址[地址A]。请求方接口可以提供具有[地址B]的直接写入或者读取队列以与到目标的接口的[地址A]相关联,并且请求方不调度存储器事务的性能或者请求存储器转换。请求方接口处理对存储器事务的性能的调度。在一些示例中,请求方接口可以合并(或组合)存储器事务并且将具有转换的一个或多个地址提供到存储器设备。
如果请求方更新其缓冲器的内容并且请求执行工作,则请求方通知请求方接口,就好像该请求方接口是目标加速器设备或者处理器一样。请求方接口将数据从缓冲器复制到对于目标可存取的存储器空间。请求方可以继续使用缓冲器,并且请求方和目标接口可以在需要时独立地存取数据或者其他内容。换言之,请求方命令请求方接口,就好像命令目标加速器一样,但是目标加速器可以通过连接来连接到请求方接口。以这种方式,请求方接口对于请求方是透明的,并且请求方与请求方接口交互,就好像请求方接口是目标一样,从而将通常被定向到目标的所有命令通信到请求方接口。
图1A描绘了具有计算平面100的系统,该计算平台100访问一个或多个目标计算平台150-0到150-N,其中N>1。计算平台100可以包括或者访问处理器102和存储器104以执行应用或者经虚拟化的执行环境。经虚拟化的执行环境可以至少包括虚拟机或容器。虚拟机(VM)可以是运行操作系统和一个或多个应用的软件。VM可以由规范、配置文件、虚拟磁盘文件、非易失性随机存取存储器(NVRAM)设置文件和日志文件来定义,并且由主机计算平台的物理资源来支持。VM可以是被安装在模仿专用硬件的软件上的操作系统(OS)或应用环境。终端用户在虚拟机上具有与他们将在专用硬件上具有的体验相同的体验。称为管理程序(hypervisor)的专门的软件完全地模拟PC客户端或服务器的CPU、存储器、硬盘、网络和其他硬件资源,从而使得虚拟机能够共享资源。管理程序可以模拟彼此隔离的多个虚拟硬件平台,从而允许虚拟机在同一底层物理主机上运行Linux和Windows服务器操作系统。
容器可以是应用、配置和依赖关系的软件封装,因此应用可以在一个计算环境上与另一计算环境可靠地运行。容器可以共享被安装在服务器平台上的操作系统,并且作为独立的进程运行。容器可以是软件封装,其包含软件所需要的一切以运行例如系统工具、库和设置。容器没有像传统的软件程序那样被安装,这些软件程序允许容器与其他软件和操作系统本身隔离。容器的隔离特性提供了若干益处。第一,容器中的软件将在不同的环境中相同地运行。例如,包括PHP和MySQL的容器可以在Linux计算机和Windows机器两者上相同地运行。第二,由于软件将不会影响主机操作系统,因此容器提供了额外的安全性。尽管安装的应用可以更改系统设置并修改资源(例如,Windows注册表),但是容器可以只修改容器内的设置。
在一些示例中,处理器102可以包括任何中央处理单元(CPU)、图形处理单元(GPU)、现场可编程门阵列(FPGA)或专用集成电路(ASIC)。在一些示例中,处理器102访问请求方接口106以配置存储器104中的一个或多个本地缓冲器,以允许涉及目标计算平台150-0到150-N中的任一个的直接存储器存取(从其读取或者向其写入)。目标计算平台150可以指代计算平台150-0到150-N中的任一个或者全部。
目标计算平台150可以包括或者使用以下各项中的一个或多个:存储器池、存储装置池、加速器、处理器执行的软件、神经引擎、任何设备以及本文提供的其他示例等等。在一些示例中,目标计算平台150-0到150-N可以不与计算平台100共享存储器空间,使得对由计算平台100指定的存储器地址的存储器存取将不允许计算平台150-1到150-N中的任一个存取旨在由计算平台100存取的内容。相较而言,在计算平台100和计算平台150-0到150-N中的任一个之间的共享存储器空间将允许计算平台150-0到150-N中的任一个透明地存取存储器的内容(即使利用到物理地址的虚拟或者逻辑地址转换)。透明地存取存储器的内容可以包括通过使用远程直接存取协议(例如,RDMA)读取或者写入操作来存取由存储器地址指定的内容。
请求方接口106可以将由处理器102(或者其他设备)提供的存储器区域与直接存储器存取操作的直接写入队列和/或直接读取队列进行关联。在一些示例中,直接存储器存取操作可以是RDMA写入或者读取操作并且直接写入队列和/或直接读取队列可以是计算平台100与计算平台150-0到150-N中的任一个之间的RDMA队列对的一部分。
在一些示例中,处理器102可以与请求方接口106交互,就好像请求由请求方接口106进行存储器读取或者写入一样,并且就好像请求方接口106是本地目标设备一样。请求方接口106可以被实现为软件框架和/或硬件设备的组合中的任一项。例如,加速器代理107表示用于请求方接口106的软件框架并且可以由请求方接口106、处理器102或者网络接口108中的一个或多个执行。
例如,当请求方接口106被实现为软件框架(例如,加速器代理107)时,请求方接口可以通过一个或多个应用程序接口(API)或者接口(例如,PCIe、CXL、AMBA、NV-Link,任何存储器接口标准(例如,DDR4或者DDR5)等等)可存取。请求方接口106可以是拦截用于与本地或者远程加速器设备通信的一个或多个API的中间件或者驱动器。
在一些示例中,请求方接口106包括通信地耦合到处理器102的物理硬件设备。请求方接口106可以在处理器102本地并且经由相同的母板、机架、使用导电导线、数据中心或者使用连接来进行连接。例如,诸如PCIe、CXL、AMBA、NV-Link之类的任何接口、任何存储器接口标准(例如,DDR4或者DDR5)等等可以用于将请求方接口106耦合到处理器102。例如,请求方接口106作为一个或多个PCIe端点、CXL端点被呈现给请求方,并且可以模拟不同的设备并且与硬件交互。请求方(例如,由处理器102或者任何设备执行的软件)可以使用模型特定的寄存器(MSR)、控制/状态寄存器(CSR)、任何寄存器或者使用例如MONITOR/MWAIT被监视的设备或存储器中的队列来对来自请求方接口106的响应进行编程或者接收。
注意,在一些示例中,如果处理器102要调用在请求方接口106本地的目标或者可以存取存储器104中的缓冲器的目标的使用,则请求方接口106可以与这样的目标交互并且不配置远程目标接口152。例如,如果目标在本地或者是可以即使利用地址转换来存取存储器104中的缓冲器的目标,则请求方接口106可以向这样的目标提供任何命令或者地址。本文描述了目标的示例并且可以包括任何处理器、存储器、存储装置、加速器等等。
在一些示例中,处理器102可以标识到请求方接口106的应用缓冲器。请求方接口106可以配置任何目标接口152-0到152-N以使用直接读取或者直接写入操作标识与应用缓冲器相关联的存储器地址。例如,直接读取操作或者直接写入操作可以允许远程设备在不需要操作系统管理写入或者读取的情况下向存储器写入或者从存储器读取。目标接口152可以指代接口152-0到152-N中的任一个或者全部。请求方接口106可以使用连接130配置特定目标接口152的控制平面154,以将存储器地址与直接存储器存取操作的直接写入队列和/或直接读取队列进行关联。目标接口152的控制平面154可以配置数据平面156以识别到特定存储器地址的写入或者从特定存储器地址的读取涉及使用特定的直接写入队列和/或直接读取队列。换言之,当数据平面156利用特定的直接写入队列和/或直接读取队列接收特定存储器地址的配置时,数据平面156将调用远程直接存储器存取操作的使用,从而涉及特定的直接写入队列和/或直接读取队列以存取开始于存储器地址的内容。
在目标接口152的配置之后,响应于使用对于目标计算平台150可存取的存储器区域的直接读取存取操作对命令和(多个)缓冲器地址的自变量的接收,目标计算平台150可以使用相关联的直接读取队列发起从存储器区域的直接读取操作或者使用相关联的直接写入队列发起到存储器区域的直接写入操作。
连接130可以提供与以下各项中的一个或多个兼容或符合的通信:以太网(IEEE802.3)、远程直接存储器存取(RDMA)、InfiniBand、互联网广域RDMA协议(iWARP)、快速UDP互联网连接(QUIC)、通过聚合的以太网的RDMA(RoCE)、外围组件互连(PCIe)、英特尔快速通道互连(QPI)、英特尔超路径互连(UPI)、英特尔片上系统结构(IOSF)、Omnipath、计算快速链路(CXL)、超传输、高速结构、NVLink、高级微控制器总线架构(AMBA)互连、OpenCAPI、Gen-Z、用于加速器的高速缓存一致性互连(CCIX)、3GPP长期演进(LTE)(4G)、3GPP 5G及其变体。可以使用协议(例如,结构上的NVMe(NVMe-oF)或NVMe)来将数据复制或存储到经虚拟化的存储节点。
例如,目标计算平台150可以提供处理器,该处理器提供本文描述的能力。例如,处理器可以提供压缩(DC)能力、诸如公共密钥加密(PKE)、密码、散列/认证能力、解密之类的密码学服务或者其他能力或服务。在一些实施例中,另外地或可替代地,目标计算平台150可以包括单核心或者多核心处理器、图形处理单元、逻辑执行单元、单级或者多级高速缓存、可用于独立执行程序或者线程的功能单元、专用集成电路(ASIC)、神经网络处理器(NNP)、可编程控制逻辑以及诸如现场可编程门阵列(FPGA)之类的可编程处理元件。目标计算平台150可以提供多个神经网络、CPU、处理器核心、通用图形处理单元,或者可以使图形处理单元可供人工智能(AI)或机器学习(ML)模型使用。例如,AI模型可以使用或包括以下各项中的任何一个或其组合:强化学习方案、Q-学习方案、深度-Q学习、或异步优势Actor-Critic(A3C)、组合神经网络、递归组合神经网络或其他AI或ML模型。可以使多个神经网络、处理器核心或图形处理单元可供AI或ML模型使用。
目标计算平台150可以包括由处理器(例如,加速器)使用的存储器池或存储装置池,或者计算存储器池或存储装置池或者存储器。计算存储器或存储装置池可以在存储的数据本地执行计算并且将计算的结果提供到请求方或者另一设备或过程。例如,目标计算平台150可以提供近存储器计算或者存储器中计算。
目标计算平台150可以使用直接写入操作从处理或者通信中向计算平台100提供结果。例如,可以在利用直接读取和/或写入的应用缓冲器的配置中指定结果被写入其中的缓冲器。
图1B提供了从一个存储器区域到另一存储器区域的远程直接存储器存取(RDMA)操作的示例。直接写入或者读取允许在无需操作系统管理复制的情况下将缓冲器的内容跨连接复制。网络接口卡或者到连接的其他接口可以实现直接存储器存取引擎并且创建从其RDMA引擎通过总线到应用存储器的通道。
发送队列和接收队列用于传送工作请求并且被称为队列对(QP)。请求方(未示出)将工作请求指令放置在其工作队列中,告诉接口要向其发送内容或者接收内容的缓冲器。网络请求可以包括标识符(例如,指针或者缓冲器的存储器地址)。例如,放置在发送队列上的工作请求可以包括缓冲器(例如,应用缓冲器)中要被发送的消息或者内容的标识符。相较而言,接收队列中的工作请求中的标识符可以包括到缓冲器(例如,应用缓冲器)的指针,在该缓冲器中可以存储传入消息的内容。完成队列(CQ)可以用于通知何时已经完成了被放置在工作队列中的指令。
图2A描绘了在请求方侧处在存储器地址与直接存储器存取地址之间的转换的示例格式。例如,主机缓冲器地址具有对应的直接读取队列标识符。主机缓冲器地址可以对应于一个或多个直接读取队列标识符和/或多个主机缓冲器地址可以对应于一个直接读取队列标识符。直接读取队列可以对应于例如RDMA发送队列标识符。在一些示例中,主机缓冲器地址具有对应的直接写入队列标识符。主机缓冲器地址可以对应于一个或多个直接写入队列标识符和/或多个主机缓冲器地址可以对应于一个直接写入队列标识符。
图2B还描绘了在配置目标接口之后在主机缓冲器地址与直接读取队列标识符和/或直接写入队列标识符之间的示例转换。目标接口的数据平面可以使用转换表来确定是否将主机缓冲器地址转换为远程直接存取操作,并且如果要将主机缓冲器地址转换为远程直接存取操作,则确定要使用哪个读取队列标识符和/或直接写入队列标识符。
图3A描绘了其中请求方使用请求方接口请求操作并且请求方接口配置不与请求方共享存储器空间的目标以使用直接写入或者读取操作执行复制操作的操作的示例序列。请求方接口和目标接口的配置可以在302-308中发生。在302处,请求方可以注册其app(应用)缓冲器以由目标在活动中使用。请求方可以是以下各项的中的一个或多个:应用、操作系统、驱动器、虚拟机、容器、任何共享资源环境、加速器设备、计算平台、网络接口等等。注册app缓冲器可以包括请求方向请求方接口标识数据缓冲器或者存储器的区域。请求方接口可以被体现为结构软件框架上的加速器或者端点设备(例如,智能端点(SEP))中的任一个或者其组合。注册app缓冲器可以包括app缓冲器在对于请求方可存取的存储器中的开始地址以及将用于存储数据、指令或者任何内容或者将用于从另一过程或设备接收并存储任何内容的app缓冲器的长度的规范。开始地址可以是逻辑、物理或者虚拟地址,并且在一些情况下,开始地址可以在不进行转换的情况下使用,或者在其他情况下,开始地址要被转换以标识物理地址。例如,转换后备缓冲器(TLB)或者存储器管理单元(MMU)可以用于转换地址。
请求方接口可以是在平台的处理器上运行的软件并且在请求方本地。例如,请求方接口可以通过一个或多个应用程序接口(API)或者接口(例如,PCIe、CCIX、CXL、AMBA、NV-Link,任何存储器接口标准(例如,DDR4或者DDR5)等等)可存取。请求方接口可以是拦截用于与本地或者远程加速器设备通信的一个或多个API的中间件或者驱动器。换言之,请求方可以与请求方接口通信,就好像使用一个或多个API与本地或者远程加速器通信一样。请求方接口可以执行转换功能以将存储器缓冲器地址转换为RDMA发送或者接收队列。在一些情况下,请求方接口可以拦截旨在用于本地或者远程加速器的框架级API调用。在一些情况下,当请求方接口被体现为软件时,可能需要对软件栈(例如,设备驱动程序或者操作系统)进行调整以允许与不同加速器框架(例如,Tensorflow、OpenCL、OneAPI)的互操作性。在一些示例中,操作系统API可以被用作请求方接口或者其一部分。在一些示例中,请求方接口可以被注册为用于在使用RDMA连接以读取或者写入与提供到请求方接口的地址相关联的连接时使用的例外处理程序。
在一些示例中,请求方接口包括通信地耦合到请求方的物理硬件设备。请求方可以与请求方接口交互以使得请求方接口对请求方表现为本地设备。换言之,请求向请求方接口提供存储器地址和/或命令以供请求方接口使用来存取存储器地址处的内容和/或执行命令,尽管使用连接将存储器地址和/或命令发送到远程目标并且使用远程直接存储器存取协议来存取存储器地址的内容。请求方接口可以在请求方本地并且经由相同的母板、机架、使用导电导线、数据中心或者使用连接来进行连接。例如,可以使用诸如PCIe、CCIX、CXL、AMBA、NV-Link之类的任何连接,任何存储器接口标准(例如,DDR4或者DDR5或者其他JEDEC或非JEDEC存储器标准)等等。例如,请求方接口作为一个或多个PCIe端点、CXL端点对于请求方是可存取的,并且可以模拟不同的设备并且与硬件交互。请求方可以使用MSR、CSR、任何寄存器或者使用例如MONITOR/MWAIT被监视的设备或存储器中的队列来对来自请求方接口的响应进行编程或者接收。在一些示例中,用于存取作为物理硬件设备的请求方接口的实施例的软件栈不需要被调整以使用请求方接口并且可以将请求方接口看作是任何设备。
除了其他操作,请求方接口可以用作用于一个或多个本地和/或远程目标(例如,加速器、图形处理单元(GPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)或者其他接口引擎)的代理。使用单个硬件设备作为用于多个加速器的请求方接口可以减少被分配到多个加速器的可能性的封装(footprint)的量。请求方接口可以被体现为智能端点(SEP)设备。SEP设备可以是使用接口作为端点(例如,(多个)PCIe端点、(多个)CXL端点)可编程且可存取的设备,并且可以模拟一个或多个设备并且与这样的设备交互。请求方可能不具有请求方接口与远程接口或者远程加速器交互的意识。在一些示例中,请求方命令目标,就好像目标使用非存储器一致性和基于非存储器的连接与请求方共享存储器地址空间一样。存储器一致性可以涉及与其他实体的存取同步的对存储器的存储器存取,以提供均匀的数据存取。基于存储器的连接允许事务基于存储器地址(例如,CXL、PCIe或者Gen-Z)。
在一些情况下,请求方接口还提供加速器特征和功能,但是也可以用于将请求传递到其他本地或者远程加速器设备以执行操作。加速器特征和功能的示例可以包括任何类型的计算、推理、机器学习或者存储池或存储器池。本文描述了加速器的非限制性示例。本地加速器可以通过母板、导电导线或者任何连接来连接到请求方。
在304处,请求方接口利用直接存取操作映射app缓冲器。例如,利用直接存取操作映射app缓冲器可以包括:映射注册的应用缓冲器作为RDMA队列对的一部分,使得远程加速器可以使用RDMA直接从其读取或者写入。注意,当RDMA用于直接存取操作时,队列对(QP)可能先前已经结合到由请求方使用的连接的接口而在远程加速器与本地缓冲器之间被建立。例如,对于启用RDMA的接口,应用缓冲器可以被注册为经由特定的RDMA队列对可存取的存储器区域。请求方不需要监督将数据从缓冲器复制到加速器设备缓冲器,因为直接写入或者读取操作由请求方接口结合目标接口以及其间的任何连接接口来管理。
在306处,请求方接口配置目标接口的目标控制平面处理器以将与app缓冲器的开始地址相对应的主机地址映射到请求方处的直接存储器存取缓冲器。例如,当直接存储器存取使用RDMA时,与app缓冲器的开始地址相对应的主机地址到请求方处的队列对的发送或者接收缓冲器的映射可以通过将映射发送到由目标使用的接收队列来执行。在那之后,目标控制平面处理器被配置为将直接存储器存取操作与开始地址进行关联。
在308处,目标控制平面处理器配置目标接口的目标数据平面以将从请求方接口提供的开始地址标识为使用直接写入队列或者读取队列以及对应的操作。例如,设置外来地址(SetForeignAddress)可以配置数据平面以将提供的开始地址与远程存储器事务进行关联。注意,目标控制平面和数据平面可以被体现在单个或者分离的多个物理设备中,并且控制平面可以配置数据平面的操作。目标控制和数据平面可以与网络接口或者到连接的接口分离或者作为其一部分。例如,用于将内容从请求方复制到目标加速器的app缓冲器的配置也可以指定缓冲器地址以及由加速器使用的直接写入发送或者接收队列,以向请求方提供结果或者其他内容。在目标数据平面的配置之后,通过向请求方接口提供主机存储器地址,请求方可以导致直接存储器存取操作(例如,读取或者写入)。目标数据平面可以被实现为SEP或者其他硬件设备和/或作为加速器的本地设备被访问的软件。
在请求方接口和目标接口的配置之后,在310处,请求方将内容写入到存储器中的app缓冲器。内容可以例如是图像文件、视频文件、数字、数据、数据库、电子表格、神经网络加权等等中的任一个。在312处,请求方通知请求方接口对app缓冲器中内容应用目标特定的命令(例如,对内容执行特定操作、分类或者识别图像的内容、对输入运行卷积神经网络(CNN)等等)。在314处,请求方接口使用直接写入操作来向远程加速器发送命令,并且该请求方接口包括(多个)缓冲器地址的自变量。例如,在314处,RDMA写入操作可以用于将命令和至少相关联的(多个)缓冲器地址传送到对于目标可存取的存储器。
在316处,响应于接收到的直接写入命令,加速器向目标数据平面发出缓冲器读取并且向目标数据平面提供(多个)缓冲器地址。在318处,基于地址转换配置,目标数据平面将(多个)缓冲器地址转换为与(多个)缓冲器地址相关联的直接存储器事务发送或者接收队列。
在一些示例中,目标数据平面不具有到与请求方的连接的直接存取并且使用控制平面来存取连接。数据平面可能不具有发起直接写入或者读取操作的能力,但是控制平面可以发起直接写入或者读取操作。在320处,目标数据平面请求控制平面执行从app缓冲器的直接读取操作以将app缓冲器的内容复制到对于数据平面可存取的存储器。例如,直接读取操作可以使用RDMA读取操作来将缓冲器中的与发送队列相关联的内容复制到由数据平面使用的存储器区域。在324处,在将app缓冲器的内容成功复制到由数据平面使用的存储器区域之后,控制平面指示对缓冲器地址的内容的存取。控制平面可以标识(多个)缓冲器地址对于数据平面有效并且向加速器提供由数据平面使用的存储器区域的地址和长度。在326处,目标取回来自由数据平面使用的存储器区域的内容并且将该内容复制到由该目标可存取的本地设备存储器。在一些情况下,目标可以从由数据平面使用的存储器区域直接存取内容。
随后,目标可以向请求方返回(多个)结果或者与请求方通信。例如,图3B描绘了加速器将结果写入到请求方或者与请求方通信的示例方式。在该示例中,目标数据平面不具有到与请求方的连接的直接存取并且使用控制平面来存取连接。在328处,加速器向目标数据平面提供对具有指定地址的缓冲器请求的写入。在330处,目标数据平面将存储器地址转换到直接写入缓冲器,并且在332处,目标数据平面将直接写入缓冲器通知给目标控制平面。在334处,发生结果或者其他信息或者指令的直接写入。RDMA写入操作可以用于将内容写入到对于请求方可存取的接收队列,其中,接收队列可以对应于app缓冲器。在336处,请求方可以从存储器存取从目标接收的数据或者其他内容。
图3C描绘了其中请求方使用请求方接口请求操作并且请求方接口配置不与请求方共享存储器空间的加速器以使用直接写入或者读取操作执行复制操作的操作的示例序列。请求方接口和目标接口的配置可以以与关于图3A的302-308描述的方式基本相同方式发生。请求读取缓冲器可以根据图3A的310-316发生。在一些示例中,目标接口的目标数据平面具有到与请求方的连接的直接存取并且可以向对于请求方可存取的存储器发出直接读取或者写入命令。数据平面可以具有使用网络接口发起直接写入或者读取操作的能力。在350处,目标接口的目标数据平面可以发起将数据或者内容从分配给请求方的app缓冲器复制到对于目标数据平面可存取的存储器。例如,直接读取命令可以是基于与app缓冲器相关联的接收队列的RDMA读取操作。在352处,加速器可以从对于目标数据平面可存取的存储器存取内容。
随后,在图3C的场景中,加速器可以使用关于图3D描述的过程向请求方返回(多个)结果或者与请求方通信,然而,可以使用关于图3B描述的过程。图3D描绘了加速器将结果写入到请求方或者与请求方通信的示例方式。在该示例中,目标数据平面具有到连接的直接存取以与请求方通信。在360处,加速器向目标数据平面提供对具有指定地址的缓冲器请求的写入。指定地址可以指示请求方处的存储器位置,在该存储器位置中要写入结果或者其他信息或者指令。在362处,基于地址转换配置,目标数据平面将(多个)缓冲器地址转换为与(多个)缓冲器地址相关联的直接接收队列。在364处,目标数据平面经由网络接口存取连接,并且执行到app缓冲器的直接写入操作以将对于加速器可存取的存储器区域的内容复制到app缓冲器。例如,直接写入操作可以使用RDMA写入操作将内容复制到与请求方相关联的接收队列相关联的缓冲器。在366处,请求方可以存取来自缓冲器的内容。
图4A描绘了可以由请求方执行的示例过程。可以执行过程以初始化目标以将主机地址与直接读取操作进行关联。在400处,向请求方接口注册缓冲器。在一些示例中,请求方向请求方接口注册缓冲器。请求方可以是任何应用、共享资源环境、虚拟机、容器、驱动器、操作系统或者任何设备。缓冲器可以与开始存储器地址以及包括开始存储器地址和/或在开始存储器地址之后的长度相关联。开始存储器地址和长度可以定义缓冲器的大小。缓冲器可以用于存储要被复制到本地或者远程加速器的内容和/或接收生成的或者使得要由本地或者远程加速器复制的内容。
在402处,直接读取队列与注册的缓冲器相关联,要从该注册的缓冲器复制内容,以将内容复制到对于本地或者远程目标可存取的存储器。在一些示例中,直接读取缓冲器是作为具有加速器的RDMA队列对的一部分的发送队列,并且发送队列用于指示将直接读取缓冲器的内容复制到由目标使用的存储器。在一些示例中,完成或者返回队列也被标识并且与可以被直接写入的缓冲器相关联。直接写入队列可以与注册的缓冲器相关联以根据本地或者远程目标的请求而接收发送的内容。在一些示例中,直接写入缓冲器是作为具有目标的RDMA队列对的一部分的接收队列,并且接收队列用于指示将直接写入缓冲器的内容复制到由请求方使用的存储器。
在404处,向目标接口注册与缓冲器相关联的存储器地址和直接读取和/或写入缓冲器的对。注册可以包括使用直接存储器复制操作以向对于存储器区域可存取的存储器提供该对,该存储器区域对于与目标接口相关联的控制平面可存取。此外,直接写入操作可以与缓冲器相关联。
在406处,控制平面可以配置与目标接口相关联的数据平面以转换来自目标的具有存储器地址的任何请求,以使用涉及特定读取队列的直接读取操作。此外,控制平面可以配置数据平面以转换针对写入到缓冲器的请求,以使用与缓冲器相关联的直接写入操作。
图4B描绘了可以由目标执行的示例过程。目标可以包括使用控制平面控制器和数据平面的目标接口。请求方的伙伴可以使用连接与请求方通信。例如,目标可以提供压缩(DC)能力、诸如公共密钥加密(PKE)、密码、散列/认证能力、解密之类的密码学服务或者其他能力或服务。例如,目标可以包括单核心或者多核心处理器、图形处理单元、逻辑执行单元、单级或者多级高速缓存、可用于独立执行程序或者线程的功能单元、专用集成电路(ASIC)、神经网络处理器(NNP)、可编程控制逻辑以及诸如现场可编程门阵列(FPGA)之类的可编程处理元件。目标可以提供多个神经网络、CPU、处理器核心、通用图形处理单元,或者可以使图形处理单元可供人工智能(AI)或机器学习(ML)模型使用。例如,AI模型可以使用或包括以下各项中的任何一个或其组合:强化学习方案、Q-学习方案、深度-Q学习、或异步优势Actor-Critic(A3C)、组合神经网络、递归组合神经网络或其他AI或ML模型。可以使多个神经网络、处理器核心或图形处理单元可供AI或ML模型使用。
在450处,请求方接口使用目标的控制平面控制器将与app缓冲器相关联的地址映射到直接读取队列。在一些示例中,另外地或可替代地,地址(或者与地址的偏移)和长度与app缓冲器相关联,该app缓冲器与使用出现的目标的控制平面控制器与直接写入队列相关联。读取和写入队列可以是RDMA队列对的一部分。映射可以利用命令接收以将主机地址与直接读取发送-接收对进行关联。在一些示例中,具有主机地址与发送队列的关联的命令可以使用直接写入操作被发送到目标的对于控制平面控制器可存取的写入队列。
在452处,控制平面配置数据平面以标识使用映射的地址到读取或者写入队列的转换。例如,控制平面控制器可以使用主机地址与请求方处的发送或者接收队列的关联来配置数据平面。在配置数据平面以将映射的地址与发送或者接收队列进行关联之后,数据平面可以意识到映射的地址与直接发送或者接收队列相关联并且存储器存取可以涉及对发送或者接收队列的存取。
在454处,对在目标处是否接收到写入请求进行确定。直接写入请求可以是RDMA写入操作以接收作为目标与请求方之间的队列对的一部分的队列。直接写入可以向目标发送包括命令和(多个)缓冲器地址的自变量的命令。如果接收到直接写入,则过程继续到456。如果没有接收到直接写入,则重复454。
在456处,目标请求数据平面存取被提供有直接写入的地址。在458处,数据平面确定地址是否被映射到直接写入或者读取队列。如果地址被映射到直接写入或者读取队列,则进行到460。如果地址没有被映射到直接写入或者读取队列,则过程可以结束并且可以在具有或者不具有存储器转换的情况下发生存储器存取(例如,虚拟或者逻辑到物理地址)以存取目标本地的存储器。
在460处,转换被应用于提供的地址以标识直接读取队列,并且直接读取操作从直接读取队列发生。在一些示例中,如果数据平面存取连接以与和请求方相关联的主机存储器通信,则数据平面使得直接读取操作从与提供的地址相关联的读取队列被执行。数据平面可以针对开始于主机地址的内容基于RDMA地址发出RDMA读取以取回数据。
在一些示例中,数据平面不具有到与接收机的连接的直接存取,并且数据平面使得控制平面控制器通过该连接并且使用到该连接的网络或者结构接口基于所提供的主机地址来执行直接读取。例如,控制平面控制器可以执行从与主机地址相关联的发送队列的RDMA读取并且将内容复制到数据平面存储器中。
在462处,基于对存储器处的内容的接收,数据平面使得内容在由目标可存取的本地设备存储器中可用。例如,数据平面可以将内容复制到另一存储器区域或者允许目标直接从本地设备存储器存取内容。在一些情况下,目标可以从数据平面存储器取回数据并且将内容复制到由目标可存取的本地设备存储器。
图4C描绘了可以由目标使用以基于直接读取操作来提供来自处理的结果的示例过程。例如,其中要被写入结果的缓冲器可以在直接写入操作中或者在app缓冲器到直接读取和/或写入操作的映射期间被指定。在470处,目标请求目标接口将内容(例如,结果、命令或者通信)写入到与请求方相关联的缓冲器。例如,目标可以请求目标接口的数据平面将内容写入到缓冲器。目标可能不会识别出缓冲器在目标远程并且可以通过与远程请求方的连接将任何地址转换和事务卸载到目标接口(例如,控制和数据平面)。
在472处,目标接口将app缓冲器转换到可以在直接复制操作中使用的远程接收队列。远程接收队列可以对应于RDMA队列对的接收队列。例如,可以在先前动作(例如,图4A的402)中发生目标接口的配置以将远程接收队列与具有远程接收队列的app缓冲器进行关联。
在474处,目标接口执行内容到与请求方相关联的接收队列的直接写入操作。在一些示例中,目标接口的数据平面可以存取与请求方的存储器的连接并且可以执行直接写入操作。在一些示例中,目标接口的数据平面不能够存取与请求方的存储器的连接,并且数据平面使用目标接口的控制平面来存取与请求方的存储器的连接,并且可以执行直接写入操作。在那之后,请求方可以从缓冲器存取内容。
图5描绘了示例系统。该系统可以使用本文描述的实施例来向一个或多个本地或远程加速器提供对存储器中的数据或其他内容的存取。系统500包括处理器510,该处理器510为系统500提供了处理、操作管理和指令的执行。处理器510可以包括任何类型的微处理器、中央处理单元(CPU)、图形处理单元(GPU)、处理核心或其他处理硬件或处理器的组合,以为系统500提供处理。处理器510控制系统500的整体操作,并且可以是或包括一个或多个可编程通用或专用微处理器、数字信号处理器(DSP)、可编程控制器、专用集成电路(ASIC)、可编程逻辑器件(PLD)等,或者这些设备的组合。
在一个示例中,系统500包括耦合到处理器510的接口512,该接口512可以表示针对需要更高的带宽连接的系统组件(例如,存储器子系统520或图形接口组件540或加速器542)的更高速度接口或高吞吐量接口。接口512表示接口电路,该接口电路可以是独立组件或者集成到处理器管芯上。在存在图形接口540的情况下,该图形接口540与图形组件接合,以将视觉显示提供到系统500的用户。在一个示例中,图形接口540可以驱动向用户提供输出的高清晰度(HD)显示器。高清晰度可以指代具有大约100PPI(每英寸像素)或更大的像素密度显示器,并且可以包括诸如全高清(例如,1080p)、视网膜显示、4K(超高清晰度或UHD)或其他格式之类的格式。在一个示例中,显示器可以包括触摸屏显示器。在一个示例中,图形接口540基于在存储器530中存储的数据或者基于由处理器510执行的操作或两者来生成显示。在一个示例中,图形接口540基于在存储器530中存储的数据或者基于由处理器510执行的操作或两者来生成显示。
加速器542可以是可以由处理器510访问或使用的固定功能卸载引擎。例如,加速器542中的加速器可以提供压缩(DC)能力、诸如公钥加密(PKE)之类的密码服务、密码、散列/认证能力、解密或其他能力或服务。在一些实施例中,另外地或可替代地,加速器542中的加速器提供如本文所描述的现场选择控制器能力。在一些情况下,加速器542可以被集成到CPU插座(例如,到主板或电路板的连接器,其包括CPU并提供与CPU的电气接口)中。例如,加速器542可以包括单核心或多核心处理器、图形处理单元、逻辑执行单元、单级或多级高速缓存、可用于独立执行程序或线程的功能单元、专用集成电路(ASIC)、神经网络处理器(NNP)、可编程控制逻辑以及诸如现场可编程门阵列(FPGA)之类的可编程处理元件。加速器542可以提供多个神经网络、CPU、处理器核心、通用图形处理单元,或者可以使图形处理单元可供人工智能(AI)或机器学习(ML)模型使用。例如,AI模型可以使用或包括以下各项中的任何一个或其组合:强化学习方案、Q-学习方案、深度-Q学习、或异步优势Actor-Critic(A3C)、组合神经网络、递归组合神经网络或其他AI或ML模型。可以使多个神经网络、处理器核心或图形处理单元可供AI或ML模型使用。
存储器子系统520表示系统500的主要存储器,并且为要由处理器510执行的代码或要在执行例程中使用的数据值提供存储。存储器子系统520可以包括一个或多个存储器设备530,例如,只读存储器(ROM)、闪速存储器、随机存取存储器(RAM)的一种或多种变型(例如,DRAM),或其他存储器设备,或这些设备的组合。存储器530存储并托管操作系统(OS)532以及其他事物,以提供用于对在系统500中的指令的执行的软件平台。另外地,应用534可以从存储器530在OS 532的软件平台上执行。应用534表示具有其自己的操作逻辑以执行对一个或多个功能的执行的程序。进程536表示向OS 532或一个或多个应用534或其组合提供辅助功能的代理或例程。OS 532、应用534和进程536提供软件逻辑以提供用于系统500的功能。在一个示例中,存储器子系统520包括存储器控制器522,该存储器控制器522是用于生成命令并将命令发出到存储器530的存储器控制器。将理解的是,存储器控制器522可以是处理器510的物理部分或接口512的物理部分。例如,存储器控制器522可以是集成到具有处理器510的电路上的集成存储器控制器。
尽管没有具体示出,但是将理解的是,系统500可以包括设备之间的一条或多条总线或一个或多个总线系统,例如,存储器总线、图形总线、接口总线等。总线或其他信号线可以将组件通信地或电气地耦合在一起,或者将组件通信地且电气地耦合。总线可以包括物理通信线路、点对点连接、桥、适配器、控制器或其他电路系统或组合。总线可以包括例如系统总线、外围组件互连(PCI)总线、超传输或行业标准架构(ISA)总线、小型计算机系统接口(SCSI)总线、通用串行总线(USB)或电气和电子工程师协会(IEEE)标准1394总线(Firewire)。
在一个示例中,系统500包括接口514,该接口514可以耦合到接口512。在一个示例中,接口514表示接口电路,该接口电路可以包括独立组件和集成电路系统。在一个示例中,多个用户界面组件或外围组件或两者耦合到接口514。网络接口550向系统500提供通过一个或多个网络与远程设备(例如,服务器或其他计算设备)通信的能力。网络接口550可以包括以太网适配器、无线互连组件、蜂窝网络互连组件、USB(通用串行总线)、或基于有线标准或无线标准的其他接口或专有接口。网络接口550可以将数据发送到位于同一数据中心或机架中的设备或远程设备,这可以包括发送存储在存储器中的数据。网络接口550可以从远程设备接收数据,这可以包括将接收到的数据存储在存储器中。可以结合网络接口550、处理器510和存储器子系统520使用各种实施例。
在一个示例中,系统500包括一个或多个输入/输出(I/O)接口560。I/O接口560可以包括用户通过其与系统500交互(例如,音频、字母数字、触觉/触摸或其他接合)的一个或多个接口组件。外围接口570可以包括上面未具体提到的任何硬件接口。外围设备通常指代依赖地连接到系统500的设备。依赖连接是其中系统500提供在其上执行操作并且用户与其进行交互的软件平台或硬件平台或两者的一种连接。
在一个示例中,系统500包括用于以非易失性方式存储数据的存储子系统580。在一个示例中,在某些系统实现方式中,存储装置580的至少某些组件可以与存储器子系统520的组件重叠。存储子系统580包括(多个)存储设备584,这些存储设备584可以是或包括用于以非易失性方式存储大量数据的任何常规介质,例如,一个或多个基于磁性、固态或光学的盘或其组合。存储装置584以持久状态保存代码或指令以及数据586(即,尽管到系统500的电力被中断,但该值仍被保留)。存储装置584通常可以被认为是“存储器”,但是存储器530典型地是用于向处理器510提供指令的执行或操作存储器。尽管存储装置584是非易失性的,但是存储器530可以包括易失性存储器(即,如果到系统500的电力被中断,则数据的值或状态是不确定的)。在一个示例中,存储子系统580包括用于与存储装置584接合的控制器582。在一个示例中,控制器582是接口514或处理器510的物理部分,或者可以包括处理器510和接口514两者中的电路或逻辑。
易失性存储器是一种这样的存储器:如果到设备的电力被中断,则其状态(以及因此存储在其中的数据)是不确定的。动态易失性存储器使用刷新存储在设备中的数据以维持状态。动态易失性存储器的一个示例包括DRAM(动态随机存取存储器)或诸如同步DRAM(SDRAM)之类的一些变型。如本文所描述的存储器子系统可以与多种存储器技术兼容,例如,DDR3(双倍数据速率版本3,由JEDEC(联合电子器件工程委员会)于2007年6月27日最初发布)、DDR4(DDR版本4,由JEDEC于2012年9月公布的初始规范)、DDR4E(DDR版本4)、LPDDR3(低功率DDR版本3)、JESD209-3B(由JEDEC于2013年8月发布)、LPDDR4(LPDDR版本4)、JESD209-4(由JEDEC于2014年8月最初公布)、WIO2(宽输入/输出版本2)、JESD229-2(由JEDEC于2014年8月最初公布)、HBM(高带宽存储器)、JESD325(由JEDEC于2013年10月最初公布)、LPDDR5(目前由JEDEC正在讨论)、HBM2(HBM版本2,目前由JEDEC正在讨论),或其他存储器技术或这些存储器技术的组合,以及基于这样的规范的派生物或扩展的技术。JEDEC标准在www.jedec.org处是可获得的。
非易失性存储器(NVM)设备是一种这样的存储器:即使到设备的电力被中断,其状态也是确定的。在一个实施例中,NVM设备可以包括块可寻址存储器设备,例如,NAND技术,或者更具体地,多阈值级NAND闪速存储器(例如,单级单元(“SLC”)、多级单元(“MLC”)、四级单元(“QLC”)、三级单元(“TLC”)或某种其他NAND)。NVM设备还可以包括字节可寻址的就地写入三维交叉点存储器设备,或其他字节可寻址的就地写入NVM设备(也被称为持久性存储器),例如,单级或多级相变存储器(PCM)或具有开关的相变存储器(PCMS)、使用硫族相变材料的NVM设备(例如,硫族玻璃)、电阻式存储器(包括金属氧化物基、氧空位基和导电桥随机存取存储器(CB-RAM))、纳米线存储器、铁电随机存取存储器(FeRAM、FRAM)、结合忆阻器技术的磁阻随机存取存储器(MRAM)、自旋移矩(STT)-MRAM、基于自旋电子磁结存储器的设备、基于磁性隧道结(MTJ)的设备、基于DW(畴壁)和SOT(自旋轨道转移)的设备、基于晶闸管的存储器设备或上述存储器中的任何存储器的组合或其他存储器。
电源(未描绘)向系统500的组件提供电力。更具体地,电源典型地与系统500中的一个或多个电源供应接合,以向系统500的组件提供电力。在一个示例中,电源供应包括用于插入壁式插座的AC到DC(交流电到直流电)适配器。这样的AC电力可以是可再生能源(例如,太阳能)电源。在一个示例中,电源包括DC电源,例如,外部AC到DC转换器。在一个示例中,电源或电源供应包括无线充电硬件,以经由与充电场的接近度来充电。在一个示例中,电源可以包括内部电池、交流电供应、基于运动的电源供应、太阳能电源供应或燃料电池源。
在示例中,系统500可以使用处理器、存储器、存储装置、网络接口和其他组件的互连计算托架来实现。可以使用高速互连,例如,PCIe、以太网或光互连(或其组合)。
本文的实施例可以在各种类型的计算和联网装备(例如,交换机、路由器、机架和刀片式服务器(例如,在数据中心和/或服务器场环境中所采用的那些))中实现。数据中心和服务器场中使用的服务器包括阵列式服务器配置,例如,基于机架的服务器或刀片式服务器。这些服务器经由各种网络配置进行通信互连,例如,将多组服务器划分为局域网(LAN),该LAN具有LAN之间的适当的交换和路由设施,以形成私有的内联网。例如,云托管设施可以典型地采用具有大量服务器的大型数据中心。刀片包括单独的计算平台,该平台被配置为执行服务器类型的功能,即,“卡上服务器”。因此,刀片包括常规的服务器所共有的组件,包括提供用于耦合适当的集成电路(IC)和安装到该板上的其他组件的内部布线(即,总线)的主印刷电路板(主板)。
可以在基站中使用各种实施例,该基站使用有线或者无线协议(例如,3GPP长期演进(LTE)(4G)或者3GPP 5G)、场内数据中心、场外数据中心、边缘网络元件、迷雾网络元件和/或混合数据中心来支持通信(例如,使用虚拟化、云和软件定义的联网的数据中心,以跨物理数据中心和分布式多云环境递送应用工作负载)。
图6描绘了环境600,其包括多个计算机架602,一个或多个机架包括机架顶部(ToR)交换机604、吊舱(pod)管理器606和多个池化系统抽屉。可以在机架之间使用各种实施例以共享内容或数据或者处理或存储内容的结果。通常,池化系统抽屉可以包括池化计算抽屉和池化存储抽屉。可选地,池化系统抽屉还可以包括池化存储器抽屉和池化输入/输出(I/O)抽屉。在所示的实施例中,池化系统抽屉包括池化计算机抽屉608和ATOMTM池化计算抽屉610、池化存储抽屉612、池化存储器抽屉614和池化I/O抽屉616。池化系统抽屉中的任一个经由高速链路618(例如,40千兆位/秒(Gb/s)或100Gb/s以太网链路或100+Gb/s硅光子(SiPh)光链路或更高速度的链路)连接到ToR交换机604。
多个计算机架600可以经由其ToR交换机604互连(例如,互连到吊舱级交换机或数据中心交换机),如由到网络620的连接所示。在一些实施例中,经由(多个)吊舱管理器606将计算机架602的组作为单独的吊舱进行管理。在一个实施例中,单个吊舱管理器用于管理吊舱中的所有机架。可替代地,分布式吊舱管理器可以用于吊舱管理操作。
环境600还包括用于管理环境的各个方面的管理接口622。该管理接口622包括管理机架配置,其中对应的参数被存储为机架配置数据624。
各种示例可以使用硬件元件、软件元件或者两者的组合来实现。在一些示例中,硬件元件可以包括设备、组件、处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路、ASIC、PLD、DSP、FPGA、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片集等等。在一些示例中,软件元件可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、API、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定示例是否是使用硬件元件和/或软件元件实现的可以根据任何数量的因素(例如,期望的计算速率、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和根据给定的实现方式的需要的其他设计或者性能约束)而变化。要注意的是,硬件、固件和/或软件元件可以在本文中被统称为或者单独称为“模块”、“逻辑”、“电路”或“电路系统”。处理器可以是硬件状态机、数字控制逻辑、中央处理单元或任何硬件、固件和/或软件元件中的一个或多个组合。
一些示例可以使用制品或者至少一个计算机可读介质来实现或被实现为制品或者至少一个计算机可读介质。计算机可读介质可以包括用于存储逻辑的非暂时性存储介质。在一些示例中,非暂时性存储介质可以包括能够存储电子数据的一种或者多种类型的计算机可读存储介质,包括易失性存储器或非易失性存储器、可移除或不可移除存储器、可擦除或不可擦除存储器、可写入或可重写存储器等等。在一些示例中,逻辑可以包括各种软件元件,例如,软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、API、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。
根据一些示例,计算机可读介质可以包括用于存储或者维持指令的非暂时性存储介质,该指令在由机器、计算设备或者系统执行时使得该机器、计算设备或者系统执行根据所描述的示例的方法和/或操作。指令可以包括任何合适类型的代码,例如,源代码、编译代码、解释代码、可执行代码、静态代码、动态代码等。指令可以根据预定义的计算机语言、方式或者句法来实现,以用于指示机器、计算设备或者系统执行某些功能。指令可以使用任何适合的高级、低级、面向对象、视觉、编译和/或解释编程语言来实现。
至少一个示例的一个或多个方面可以由存储在至少一个机器可读介质上的表示处理器内的各种逻辑的代表性指令实现,该指令在由机器、计算设备或者系统读取时使得该机器、计算设备或者系统制造用于执行本文描述的技术的逻辑。被称为“IP核心”的这样的表示可以被存储在有形的机器可读介质上并且被供应到各种客户或者制造设施以加载到实际上制造逻辑或者处理器的制造机器中。
短语“一个示例”或“示例”的出现不一定都指代相同的示例或实施例。本文描述的任何方面可以与本文所描述的任何其他方面或类似的方面组合,而不管这些方面是否是关于相同的附图或元件来描述的。附图中描绘的块功能划分、省略或者包含并不暗指用于实现这些功能的硬件组件、电路、软件和/或元件将一定在实施例中被划分、省略或者包含。
一些示例可以使用表述“耦合”和“连接”以及其衍生词来描述。这些术语不一定旨在是彼此的同义词。例如,使用术语“连接”和/或“耦合”的描述可以指示两个或者更多个元件彼此直接物理或者电接触。然而,术语“耦合”也可以意味着两个或者更多个元件彼此不直接接触,但是仍然协同操作或者与彼此交互。
本文中的术语“第一”、“第二”等并不表示任何次序、数量或重要性,而是用于将一个元素与另一元素区分开。本文中的术语“一(a)”和“一个(an)”不表示对数量的限制,而是表示所引用的项目中的至少一个的存在。本文中参考信号使用的术语“使……生效”表示其中信号为活动的信号的状态,并且可以通过将任何逻辑电平(逻辑0或逻辑1)施加到信号来实现。术语“跟随”或“之后”可以指代紧跟或跟随在某种其他事件或多个事件之后。步骤的其他序列也可以根据替代实施例来执行。此外,可以取决于特定的应用来添加或移除附加的步骤。可以使用改变的任何组合,并且受益于本公开的本领域的普通技术人员将理解其许多变型、修改和替代实施例。
除非另有明确说明,否则诸如短语“X,Y或Z中的至少一个”之类的析取语言在上下文内被理解为通常用于表示项目、术语等,并且可以是X,Y或Z或者其任何组合(例如,X,Y和/或Z)。因此,这种析取语言通常不旨在并且不应该暗示某些实施例要求存在X中的至少一个、Y中的至少一个或Z中的至少一个。另外地,除非另有明确说明,否则诸如短语“X,Y和Z中的至少一个”之类的连接词语言也应该被理解为表示X,Y,Z或其任何组合,包括“X,Y和/或Z”。
下面提供了本文所公开的设备、系统和方法的说明性示例。这些设备、系统和方法的实施例可以包括下面描述的示例中的任何一个或多个以及任何组合。
示例包括一种计算机可读介质,该计算机可读介质包括存储在其上的指令,该指令如果由至少一个处理器执行,则使得至少一个处理器进行以下操作:从请求方接口接收主机地址和直接读取队列的映射;配置目标接口的数据平面以使用直接读取队列来存取主机地址;基于对读取主机地址的请求的接收,导致对直接读取队列的存取;以及基于对直接读取队列的内容的接收,指示该内容可用于由目标进行存取。根据任一示例,直接读取队列包括远程直接存储器存取(RDMA)兼容队列对的发送队列。示例可以包括存储在其上的指令,该指令如果由至少一个处理器执行,则使得至少一个处理器进行以下操作:接收写入到缓冲器地址的请求;以及基于与直接写入队列相对应的缓冲器地址,导致到直接写入队列的直接写入操作。根据任一示例,直接写入队列包括远程直接存储器存取(RDMA)兼容队列对的接收队列。
示例1包括一种计算机可读介质,该计算机可读介质具有存储在其上的指令,该指令如果由至少一个处理器执行,则使得至少一个处理器进行以下操作:配置远程目标接口以应用远程直接存储器存取协议来基于标识本地缓冲器地址的存储器存取请求来存取与本地缓冲器地址相关联的内容;以及将存储器存取请求传送到请求对本地缓冲器地址进行存取的远程目标接口。
示例2包括任一示例,并且包括存储在其上的指令,该指令如果由至少一个处理器执行,则使得至少一个处理器进行以下操作:配置请求方接口以将本地缓冲器地址与直接读取队列进行关联,以使用远程直接存储器存取操作进行存取。
示例3包括任一示例,其中,请求方接口包括通过应用程序接口(API)可访问的软件框架。
示例4包括任一示例,其中,直接读取队列包括远程直接存储器存取(RDMA)兼容队列对的发送队列。
示例5包括任一示例,并且包括存储在其上的指令,该指令如果由至少一个处理器执行,则使得至少一个处理器进行以下操作:将本地缓冲器地址与直接写入队列进行关联以在远程直接存储器存取操作中使用。
示例6包括任一示例,其中,直接写入队列包括远程直接存储器存取(RDMA)兼容队列对的接收队列。
示例7包括任一示例,并且包括存储在其上的指令,该指令如果由至少一个处理器执行,则使得至少一个处理器进行以下操作:将与本地缓冲器地址相关联的命令提供到远程目标接口,其中,该命令包括用于执行以下各项中的一个或多个的目标特定的命令:使用与本地缓冲器地址相关联的缓冲器的内容的计算,取回缓冲器的内容,将内容存储在缓冲器中,或者使用缓冲器的内容执行推理。
示例8包括任一示例,其中,请求方用于导致远程目标接口的配置,并且请求方包括以下各项中的一个或多个:应用、共享资源环境或者设备。
示例9包括任一示例,其中,目标被连接到远程目标接口,并且目标不与请求方共享存储器地址空间。
示例10包括一种方法,该方法包括:配置设备以将直接写入队列或者直接读取队列与存储器地址进行关联;基于对指定存储器地址的存储器读取操作的接收,应用从直接读取队列的远程直接读取操作;以及基于对指定存储器地址的存储器写入操作的接收,应用向直接写入队列的远程直接写入操作。
示例11包括任一示例,其中,远程直接读取操作与远程直接存储器存取(RDMA)兼容,并且直接读取队列包括RDMA兼容队列对的发送队列。
示例12包括任一示例,其中,远程直接写入操作与远程直接存储器存取(RDMA)兼容,并且直接写入队列包括RDMA兼容队列对的接收队列。
示例13包括任一示例,并且包括:在接口处从请求方接收缓冲器的标识;基于要存取的缓冲器的标识,将直接写入队列和直接读取队列中的一个或多个与缓冲器进行关联;以及响应于存取缓冲器的内容的请求,配置远程目标接口以使用直接写入队列或者直接读取队列中的一个或多个来存取缓冲器的内容。
示例14包括一种计算平台,该计算平台包括:至少一个处理器;到连接的至少一个接口;以及至少一个请求方接口,其中:至少一个处理器中的处理器用于通过存储器地址标识到请求方接口的缓冲器,请求方接口用于将直接写入队列或者直接读取队列与缓冲器进行关联,以及当请求方接口被呈现有使用缓冲器的存储器地址的存储器存取请求时,请求方接口用于配置远程目标接口来使用远程直接读取或者写入操作。
示例15包括任一示例,其中,请求方接口是本地连接到请求方的设备。
示例16包括任一示例,其中,至少一个处理器中的处理器用于配置远程目标接口以将缓冲器的存储器地址与直接写入队列进行关联。
示例17包括任一示例,其中,连接与以下各项中的一个或多个兼容:以太网(IEEE802.3)、远程直接存储器存取(RDMA)、InfiniBand、互联网广域RDMA协议(iWARP)、快速UDP互连网连接(QUIC)、通过聚合的以太网的RDMA(RoCE)、快速外围组件互连(PCIe)、英特尔快速路径互连(QPI)、英特尔超路径互连(UPI)、英特尔片上系统结构(IOSF)、Omnipath、计算快速链路(CXL)、超传输、NVLink、高级微控制器总线架构(AMBA)互连、OpenCAPI、Gen-Z、用于加速器的高速缓存一致性互连(CCIX)、3GPP长期演进(LTE)(4G)或者3GPP 5G。
示例18包括一种计算平台,该计算平台包括:至少一个处理器;到连接的至少一个接口;以及至少一个加速器,至少一个加速器与到连接的至少一个接口之间的第二接口,其中,第二接口用于:接收主机地址和直接读取队列的映射;配置数据平面以使用直接读取队列和远程直接存储器存取语义来存取与主机地址相关联的内容;基于对读取主机地址的请求的接收,导致对直接读取队列的存取;以及基于对与直接读取队列相关联的内容的接收,指示内容可用于由加速器进行存取。
示例19包括任一示例,其中,直接读取队列包括远程直接存储器存取(RDMA)兼容队列对的发送队列。
示例20包括任一示例,其中,第二接口用于:接收写入到缓冲器地址的请求;以及基于与直接写入队列相对应的缓冲器地址,导致到直接写入队列的远程直接写入操作。
示例21包括任一示例,其中,直接写入队列包括远程直接存储器存取(RDMA)兼容队列对的接收队列。
Claims (21)
1.一种包括存储在其上的指令的计算机可读介质,所述指令如果由至少一个处理器执行,则使得所述至少一个处理器进行以下操作:
配置远程目标接口以应用远程直接存储器存取协议来基于标识本地缓冲器地址的存储器存取请求来存取与所述本地缓冲器地址相关联的内容;以及
将存储器存取请求传送到请求对本地缓冲器地址进行存取的所述远程目标接口。
2.根据权利要求1所述的计算机可读介质,包括存储在其上的指令,所述指令如果由至少一个处理器执行,则使得所述至少一个处理器进行以下操作:
配置请求方接口以将本地缓冲器地址与直接读取队列进行关联,以使用远程直接存储器存取操作进行存取。
3.根据权利要求2所述的计算机可读介质,其中,所述请求方接口包括通过应用程序接口(API)能够访问的软件框架。
4.根据权利要求2所述的计算机可读介质,其中,所述直接读取队列包括远程直接存储器存取(RDMA)兼容队列对的发送队列。
5.根据权利要求2所述的计算机可读介质,包括存储在其上的指令,所述指令如果由至少一个处理器执行,则使得所述至少一个处理器进行以下操作:
将所述本地缓冲器地址与直接写入队列进行关联以在远程直接存储器存取操作中使用。
6.根据权利要求5所述的计算机可读介质,其中,所述直接写入队列包括远程直接存储器存取(RDMA)兼容队列对的接收队列。
7.根据权利要求1所述的计算机可读介质,包括存储在其上的指令,所述指令如果由至少一个处理器执行,则使得所述至少一个处理器进行以下操作:
将与所述本地缓冲器地址相关联的命令提供到所述远程目标接口,其中,所述命令包括用于执行以下各项中的一个或多个的目标特定的命令:使用与所述本地缓冲器地址相关联的缓冲器的内容的计算,取回所述缓冲器的内容,将内容存储在所述缓冲器中,或者使用所述缓冲器的内容执行推理。
8.根据权利要求1所述的计算机可读介质,其中,请求方用于导致远程目标接口的配置,并且所述请求方包括以下各项中的一个或多个:应用、共享资源环境或者设备。
9.根据权利要求8所述的计算机可读介质,其中,目标被连接到所述远程目标接口,并且所述目标不与所述请求方共享存储器地址空间。
10.一种方法,包括:
配置设备以将直接写入队列或者直接读取队列与存储器地址进行关联;
基于对指定所述存储器地址的存储器读取操作的接收,应用从直接读取队列的远程直接读取操作;以及
基于对指定所述存储器地址的存储器写入操作的接收,应用向直接写入队列的远程直接写入操作。
11.根据权利要求10所述的方法,其中,所述远程直接读取操作与远程直接存储器存取(RDMA)兼容,并且所述直接读取队列包括RDMA兼容队列对的发送队列。
12.根据权利要求10所述的方法,其中,所述远程直接写入操作与远程直接存储器存取(RDMA)兼容,并且所述直接写入队列包括RDMA兼容队列对的接收队列。
13.根据权利要求10所述的方法,进一步包括:
在接口处从请求方接收缓冲器的标识;
基于要存取的缓冲器的所述标识,将直接写入队列和直接读取队列中的一个或多个与所述缓冲器进行关联;以及
响应于存取所述缓冲器的内容的请求,配置远程目标接口以使用直接写入队列或者直接读取队列中的一个或多个来存取所述缓冲器的内容。
14.一种计算平台,包括:
至少一个处理器;
到连接的至少一个接口;以及
至少一个请求方接口,其中:
所述至少一个处理器中的处理器用于通过存储器地址标识到请求方接口的缓冲器,
所述请求方接口用于将直接写入队列或者直接读取队列与所述缓冲器进行关联,以及
当所述请求方接口被呈现有使用所述缓冲器的所述存储器地址的存储器存取请求时,所述请求方接口用于配置远程目标接口来使用远程直接读取或者写入操作。
15.根据权利要求14所述的计算平台,其中,所述请求方接口是本地连接到请求方的设备。
16.根据权利要求14所述的计算平台,其中,所述至少一个处理器中的所述处理器用于配置所述远程目标接口以将所述缓冲器的所述存储器地址与所述直接写入队列进行关联。
17.根据权利要求14所述的计算平台,其中,所述连接与以下各项中的一个或多个兼容:以太网(IEEE 802.3)、远程直接存储器存取(RDMA)、InfiniBand、互联网广域RDMA协议(iWARP)、快速UDP互连网连接(QUIC)、通过聚合的以太网的RDMA(RoCE)、快速外围组件互连(PCIe)、英特尔快速路径互连(QPI)、英特尔超路径互连(UPI)、英特尔片上系统结构(IOSF)、Omnipath、计算快速链路(CXL)、超传输、NVLink、高级微控制器总线架构(AMBA)互连、OpenCAPI、Gen-Z、用于加速器的高速缓存一致性互连(CCIX)、3GPP长期演进(LTE)(4G)或者3GPP 5G。
18.一种计算平台,包括:
至少一个处理器;
到连接的至少一个接口;以及
至少一个加速器,
所述至少一个加速器与所述到连接的至少一个接口之间的第二接口,其中,所述第二接口用于:
接收主机地址和直接读取队列的映射;
配置数据平面以使用所述直接读取队列和远程直接存储器存取语义来存取与所述主机地址相关联的内容;
基于对读取所述主机地址的请求的接收,导致对所述直接读取队列的存取;以及
基于对与所述直接读取队列相关联的内容的接收,指示所述内容能够用于由加速器进行存取。
19.根据权利要求18所述的计算平台,其中,所述直接读取队列包括远程直接存储器存取(RDMA)兼容队列对的发送队列。
20.根据权利要求18所述的计算平台,其中,所述第二接口用于:
接收写入到缓冲器地址的请求;以及
基于与直接写入队列相对应的所述缓冲器地址,导致到所述直接写入队列的远程直接写入操作。
21.根据权利要求18所述的计算平台,其中,所述直接写入队列包括远程直接存储器存取(RDMA)兼容队列对的接收队列。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/701,026 US20200104275A1 (en) | 2019-12-02 | 2019-12-02 | Shared memory space among devices |
US16/701,026 | 2019-12-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112988632A true CN112988632A (zh) | 2021-06-18 |
Family
ID=69947516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011024459.7A Pending CN112988632A (zh) | 2019-12-02 | 2020-09-25 | 设备之间的共享存储器空间 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20200104275A1 (zh) |
CN (1) | CN112988632A (zh) |
DE (1) | DE102020127924A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114003328A (zh) * | 2021-11-01 | 2022-02-01 | 北京天融信网络安全技术有限公司 | 数据共享方法、装置、终端设备和桌面云系统 |
CN115643318A (zh) * | 2022-09-29 | 2023-01-24 | 中科驭数(北京)科技有限公司 | 命令执行方法、装置、设备及计算机可读存储介质 |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11182315B2 (en) * | 2017-02-10 | 2021-11-23 | Intel Corporation | Apparatuses, methods, and systems for hardware control of processor performance levels |
US20210373951A1 (en) * | 2020-05-28 | 2021-12-02 | Samsung Electronics Co., Ltd. | Systems and methods for composable coherent devices |
US11461263B2 (en) | 2020-04-06 | 2022-10-04 | Samsung Electronics Co., Ltd. | Disaggregated memory server |
US11403141B2 (en) | 2020-05-04 | 2022-08-02 | Microsoft Technology Licensing, Llc | Harvesting unused resources in a distributed computing system |
JP2021189462A (ja) * | 2020-05-25 | 2021-12-13 | 株式会社日立製作所 | ストレージ装置 |
US20210374056A1 (en) * | 2020-05-28 | 2021-12-02 | Samsung Electronics Co., Ltd. | Systems and methods for scalable and coherent memory devices |
US11669473B2 (en) * | 2020-06-26 | 2023-06-06 | Advanced Micro Devices, Inc. | Allreduce enhanced direct memory access functionality |
CN112231122B (zh) * | 2020-10-27 | 2024-08-13 | 南京林洋电力科技有限公司 | 一种基于异构通信模型及面向终端软件平台的app管理方法 |
US20210149812A1 (en) * | 2020-11-18 | 2021-05-20 | Intel Corporation | Network interface controller with eviction cache |
CN114691382A (zh) * | 2020-12-31 | 2022-07-01 | 中兴通讯股份有限公司 | 基于rdma的通信方法、节点、系统及介质 |
CN113364856B (zh) * | 2021-06-03 | 2023-06-30 | 奥特酷智能科技(南京)有限公司 | 一种基于共享内存及异构处理器的车载以太网系统 |
WO2022261200A1 (en) * | 2021-06-09 | 2022-12-15 | Enfabrica Corporation | Multi-plane, multi-protocol memory switch fabric with configurable transport |
US11689642B2 (en) * | 2021-07-15 | 2023-06-27 | Cisco Technology, Inc. | Routing application control and data-plane traffic in support of cloud-native applications |
US20220138021A1 (en) * | 2021-07-23 | 2022-05-05 | Intel Corporation | Communications for workloads |
US11632337B1 (en) * | 2021-10-11 | 2023-04-18 | Cisco Technology, Inc. | Compute express link over ethernet in composable data centers |
US11789660B1 (en) | 2022-04-12 | 2023-10-17 | Netapp, Inc. | Distributed control plane tracking object ownership changes within a distributed storage architecture |
US11775204B1 (en) * | 2022-04-12 | 2023-10-03 | Netapp, Inc. | Distributed control plane for facilitating communication between a container orchestration platform and a distributed storage architecture |
CN114866534B (zh) * | 2022-04-29 | 2024-03-15 | 浪潮电子信息产业股份有限公司 | 一种图像处理方法、装置、设备及介质 |
US11991073B1 (en) * | 2023-05-22 | 2024-05-21 | Mellanox Technologies, Ltd. | Dual software interfaces for multiplane devices to separate network management and communication traffic |
CN117312229B (zh) * | 2023-11-29 | 2024-02-23 | 苏州元脑智能科技有限公司 | 一种数据传输装置、数据处理设备、系统、方法及介质 |
CN118093230B (zh) * | 2024-04-22 | 2024-08-06 | 深圳华锐分布式技术股份有限公司 | 基于共享内存的跨进程通信方法、装置、设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9985904B2 (en) * | 2015-12-29 | 2018-05-29 | Amazon Technolgies, Inc. | Reliable, out-of-order transmission of packets |
US11290392B2 (en) * | 2017-01-30 | 2022-03-29 | Intel Corporation | Technologies for pooling accelerator over fabric |
US10884968B2 (en) * | 2019-03-27 | 2021-01-05 | Intel Corporation | Technologies for flexible protocol acceleration |
US11025544B2 (en) * | 2019-06-07 | 2021-06-01 | Intel Corporation | Network interface for data transport in heterogeneous computing environments |
-
2019
- 2019-12-02 US US16/701,026 patent/US20200104275A1/en not_active Abandoned
-
2020
- 2020-09-25 CN CN202011024459.7A patent/CN112988632A/zh active Pending
- 2020-10-23 DE DE102020127924.8A patent/DE102020127924A1/de active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114003328A (zh) * | 2021-11-01 | 2022-02-01 | 北京天融信网络安全技术有限公司 | 数据共享方法、装置、终端设备和桌面云系统 |
CN114003328B (zh) * | 2021-11-01 | 2023-07-04 | 北京天融信网络安全技术有限公司 | 数据共享方法、装置、终端设备和桌面云系统 |
CN115643318A (zh) * | 2022-09-29 | 2023-01-24 | 中科驭数(北京)科技有限公司 | 命令执行方法、装置、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
DE102020127924A1 (de) | 2021-06-02 |
US20200104275A1 (en) | 2020-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112988632A (zh) | 设备之间的共享存储器空间 | |
US11941458B2 (en) | Maintaining storage namespace identifiers for live virtualized execution environment migration | |
EP3706394B1 (en) | Writes to multiple memory destinations | |
US11748278B2 (en) | Multi-protocol support for transactions | |
US11934330B2 (en) | Memory allocation for distributed processing devices | |
US20200322287A1 (en) | Switch-managed resource allocation and software execution | |
US20200319812A1 (en) | Intermediary for storage command transfers | |
US20210073151A1 (en) | Page-based remote memory access using system memory interface network device | |
US11929927B2 (en) | Network interface for data transport in heterogeneous computing environments | |
US11681625B2 (en) | Receive buffer management | |
US20200379922A1 (en) | Adaptive routing for pooled and tiered data architectures | |
US20210359955A1 (en) | Cache allocation system | |
CN115004164A (zh) | 动态中断配置 | |
US20210014324A1 (en) | Cache and memory content management | |
WO2022271239A1 (en) | Queue scaling based, at least, in part, on processing load | |
CN114662088A (zh) | 用于提供对内核和用户空间存储器区域的访问的技术 | |
US11861219B2 (en) | Buffer to reduce write amplification of misaligned write operations | |
CN114064306A (zh) | 用于数据的并行处理的缓冲器分配 | |
US20210149821A1 (en) | Address translation technologies | |
US20220058062A1 (en) | System resource allocation for code execution | |
US20210328945A1 (en) | Configurable receive buffer size | |
US20230305720A1 (en) | Reservation of memory in multiple tiers of memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |