CN113661485A - 用于一致性加速的域辅助处理器对等 - Google Patents
用于一致性加速的域辅助处理器对等 Download PDFInfo
- Publication number
- CN113661485A CN113661485A CN202080026425.3A CN202080026425A CN113661485A CN 113661485 A CN113661485 A CN 113661485A CN 202080026425 A CN202080026425 A CN 202080026425A CN 113661485 A CN113661485 A CN 113661485A
- Authority
- CN
- China
- Prior art keywords
- domain
- peripheral
- host
- processor
- accelerator
- 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.)
- Granted
Links
- 230000001133 acceleration Effects 0.000 title description 5
- 230000002093 peripheral effect Effects 0.000 claims abstract description 90
- 230000006870 function Effects 0.000 claims abstract description 50
- 230000001427 coherent effect Effects 0.000 claims abstract description 29
- 238000000034 method Methods 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 5
- 230000008878 coupling Effects 0.000 claims description 2
- 238000010168 coupling process Methods 0.000 claims description 2
- 238000005859 coupling reaction Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 abstract description 27
- 238000010586 diagram Methods 0.000 description 23
- 230000008901 benefit Effects 0.000 description 10
- 238000004590 computer program Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000008571 general function Effects 0.000 description 1
- 230000009249 intrinsic sympathomimetic activity Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7885—Runtime interface, e.g. data exchange, runtime control
- G06F15/7889—Reconfigurable logic implemented as a co-processor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- 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/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/122—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware performs an I/O function other than control of data transfer
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
本文的示例描述了具有域辅助处理器(DAP)和域特定加速器(DSA)的外围I/O设备,该域辅助处理器和域特定加速器与主机计算系统中的CPUs和存储器位于相同的一致性域中。外围I/O设备以前无法使用主机计算系统的硬件资源参与高速缓存一致共享存储器的多处理器范例。因此,轻量级处理器功能(例如,诸如gizp的开源功能、开源加密库、开源网络交换机等)的域辅助处理要么使用主机的CPUs资源来执行,要么通过在外围I/O设备中配置特殊处理系统(例如,使用FPGA中的可编程逻辑)来执行。本文的实施例使用外围I/O设备的DAP来执行轻量级处理器功能,否则这些功能将由主机中的硬件资源或外围I/O设备中的特殊处理系统来执行。
Description
技术领域
本文的实施例大体涉及具有域辅助处理器和域特定加速器的外围设备。
背景技术
传统的I/O模型中,主机计算系统在使用外围I/O设备独有的定制I/O设备驱动程序执行加速器任务或功能时与其外围I/O设备相连接。拥有多个I/O设备或者甚至同个I/O设备的多个实例意味着主机与多个I/O设备驱动程序或者同个I/O设备驱动程序的多个运行副本相连接。这会导致安全性和可靠性问题,原因在于I/O设备驱动程序通常由外围I/O设备的供应商开发,但又必须与主机计算系统中的所有软件和硬件集成。
同时,硬件高速缓存一致共享存储器的多处理器范例在多处理器CPUs上的执行任务或功能中利用通用的、独立于指令集架构(ISA)的接口模型。通用的、独立于ISA的(例如,C代码)接口模型随着处理单元的数量和这些处理单元可用的共享存储器量变化。传统上,外围I/O设备无法从在主机计算系统上执行的CPUs使用的一致性范例中获益。
发明内容
下文描述了用于操作外围设备中的域辅助处理器的技术。一个实施例是外围I/O设备,其包括域辅助处理器(DAP)、域加速器和网关,该网关被配置为使用一致性互连协议可通信地耦接外围I/O设备至主机,其中一致性互连协议将主机的一致性域扩展到外围I/O设备,以使DAP是主机中的处理器的对等处理器。网关被配置为使用一致性互连协议接收来自主机的第一请求,第一请求指示DAP执行处理器功能,并且使用一致性互连协议接收来自主机的第二请求,第二请求指示域加速器执行加速器任务。
在一些实施例中,DAP包括至少一个处理器内核和操作系统,其中操作系统为以下多种中的一种:嵌入式独立操作系统和主机中的操作系统的扩展。
在一些实施例中,其中处理器内核使用的指令集架构(ISA)与主机中的处理器使用的ISA不同。
在一些实施例中,外围I/O设备包括可编程逻辑阵列,域加速器的至少一部分由可编程逻辑阵列执行。
在一些实施例中,域加速器的至少一部分在硬化电路上执行。
在一些实施例中,外围I/O设备包括可通信地耦接网关和域加速器的片上网络(NoC)。
在一些实施例中,网关是被配置为在外围I/O设备中建立I/O域和一致性域的混合网关。
在一些实施例中,网关包括可通信地耦接到DAP和域加速器两者的端点一致性互连。
在一些实施例中,网关包括高速缓存,该高速缓存在可通信地耦接在端点一致性互连与DAP和域加速器之间。
另一实施例是一种方法,该方法包括识别处理器功能以从主机的CPU-存储器复合体卸载到外围I/O设备的DAP,其中包括主机的CPU-存储器复合体的一致性域扩展到外围I/O设备的DAP,使用一致性互连协议指示DAP执行处理器功能并将结果数据储存在一致性域的存储元件中,使用一致性互连协议指示外围I/O设备的域加速器在为主机执行加速器任务时处理结果数据;以及接收在域加速器上执行加速器任务的结果数据。
在一些实施例中,DAP包括至少一个处理器内核和操作系统,其中操作系统为以下多种中的一种:嵌入式独立操作系统和主机中的操作系统的扩展。
在一些实施例中,域加速器的至少一部分由可编程逻辑阵列执行。
在一些实施例中,DAP和主机中的CPU是高速缓存一致共享存储器的多处理器范例的一部分。
在一些实施例中,该方法包括使用主机中的I/O设备驱动程序指示分配给外围I/O设备中的I/O域的计算资源执行I/O任务。
另一实施例是一种计算系统包括:主机和外围I/O设备,该主机包括在一致性域中的CPU-存储器复合体,该外围I/O设备包括域辅助处理器、域加速器以及网关,该网关被配置为使用一致性互连协议可通信地耦接外围I/O设备至主机,其中一致性互连协议将主机中的一致性域扩展以包括DAP。网关被配置为从主机接收指示DAP执行处理器功能的第一请求,以及从主机接收指示域加速器执行加速器任务的第二请求。
附图说明
为了能够详细理解上述特征的方式,上面简要概括,可以通过参考实施例的实现来进行更具体的描述,其中一些在附图中示出。然而,要注意的是,附图仅图示了典型的示例实施方式并且因此不应被认为是对其范围的限制。
图1是根据实施例描述的耦接到包含域辅助处理器和域特定加速器的外围I/O设备的主机的框图。
图2是根据实施例描述的具有混合网关的外围I/O设备的框图。
图3是根据实施例描述的用于将任务分配给域辅助处理器和域特定加速器的流程图。
图4A是根据实施例描述的具有连接到域辅助处理器和域特定加速器的端点一致性互连的网关的框图。
图4B是根据实施例描述的具有连接到域辅助处理器和域特定加速器的高速缓存的网关的框图。
图5是根据实施例描述的耦接到具有I/O域和一致性域的外围I/O设备的主机的框图。
图6是根据实施例描述的具有可编程逻辑、存储器和片上网络的外围I/O设备的框图,该片上网络被逻辑地划分为I/O域和一致性域。
图7是根据实施例描述的可编程IC的现场可编程门阵列实现。
详细说明
在下文中,参考附图描述各种特征。应当注意,附图可以按比例绘制或也可以不按比例绘制,并且在整个附图中,相似结构或功能的元件由相似的附图标记表示。应注意的是,附图仅旨在促进对特征的描述。它们并不旨在作为说明书的详尽描述或对权利要范围的限制。另外,示出的示例不必具有所示的所有方面或优点。结合特定示例描述的方面或优点不必限于该示例,并且即使未如此示出或未明确描述,也可以在任何其它示例中实践。
本实施例描述了具有域辅助处理器(DAP)和域特定加速器(DSA)的外围I/O设备,这些域辅助处理器和域特定加速器与主机计算系统的CPU和存储器处于相同的一致性域中。如上所述,外围I/O设备以前无法使用主机计算系统的硬件资源参与高速缓存一致共享存储器的多处理器范例。因此,轻量级通用处理器功能(例如,如压缩程序、开源加密库、开源网络交换机等的开源功能)的域辅助处理要么使用主机中的CPU资源执行,要么通过在外围I/O设备中配置特殊处理系统(例如,在FPGA中使用可编程逻辑)执行。但是,使用主机的CPU来执行轻量级处理功能意味着这些CPU无法用于执行重量级功能,并且浪费电力资源。另外,在FPGA中配置特殊处理系统意味着在FPGA可用于执行加速器任务(与轻量级处理器功能不同的任务)的可编程逻辑更少了。
本实施例中使用外围I/O设备中的DAP执行轻量级处理器功能,否则这些功能将有主机中的硬件资源或外围设备中的特殊处理系统执行。在一个实施例中,DAP是包括执行操作系统的处理器的处理器子系统。使用外围一致性互连允许外围I/O设备的DAP与主机计算系统中的硬件资源共享相同的一致性域。如果没有外围一致性互连,DAP将是无法被主机中的计算资源查看的嵌入式系统。在这种情况下,主机只能通过I/O设备驱动程序与DAP进行通信。通过将DAP添加到与主机计算系统的硬件资源相同的一致性域,DAP成为主机计算系统的CPUs的对等。换句话说,DAP和主机CPUs都由主机计算系统中的相同的操作系统或者内核管理。因此,主机的操作系统或内核可以智能地决定哪些轻量级处理器功能可以卸载到外围I/O设备中的DAP,以及哪些功能由主机计算系统中的CPUs执行。
在一个实施例中,操作系统卸载了处理器功能,该处理器功能是分配给外围I/O设备中的DSA的加速器任务的一部分。例如,操作系统可以指示DAP执行gzip功能以解压压缩数据文件。操作系统还可以指示DSA随后在解压数据中执行单词或短语检索。在本实施例中,主机的CPU不必首先执行gzip功能,而是操作系统将gzip功能和加速器任务(例如,Word检索)卸载至外围I/O设备。
图1是根据实施例描述的耦接到包含域辅助处理器和域特定加速器的外围I/O设备的主机的框图。图1中的计算系统100包括使用PCIe连接130可通信地耦接到外围I/O设备135的主机105。主机105可以代表单个计算机(例如,服务器)或相互关联的多个物理计算系统。无论如何,主机105包括操作系统110、多个CPU 115和存储器120。操作系统110是可以执行本文描述的功能的任何操作系统。在一个实施例中,操作系统110(或管理程序或内核)为CPU 115和存储器120(称为CPU-存储器复合体)建立高速缓存一致共享存储器的多处理器范例。换句话说,CPU 115和存储器120由操作系统管理(或内核/管理程序管理)以形成遵循高速缓存一致共享存储器的多处理器范例的一致性域。然而,如上所述,传统的I/O模型意味着外围I/O设备135(及其所有计算资源)被排除在建立在主机105中的一致性域之外。在传统模型中,主机105仅依赖于存储在其存储器120上的I/O设备驱动程序125以管理I/O设备135中的计算资源并与之通信。也就是说,外围I/O设备135由I/O设备驱动程序125控制并通过其被访问。
在本实施例中,一致共享存储器的多处理器范例连同该范例的所有性能优势、软件灵活和开销减少一起被扩展到外围I/O设备135。另外,将I/O设备135的计算资源添加到与CPU115和存储器120相同的一致性域允许通用的、ISA的独立的开发环境,其中主机105的硬件资源可以使用与外围I/O设备135的硬件资源不同的ISA。也就是说,计算系统是ISA不可知的。然后,在其它实施例中,一致共享存储器的多处理器范例可能需要主机105和I/O设备135两者中的硬件资源使用相同的ISA而非不同的ISA。
如图1所示,外围I/O设备135包括一致性网关140,其使用一致性互连协议将包含主机105的CPUs 115和存储器120的一致性域扩展至外围I/O设备135。也就是说,I/O设备135的DAP 145和DSA 150与CPUs 115和存储器120共享相同的一致性域。因此,DAP145是与主机105中的CPUs 115对等的处理器。在一个实施例中,CPUs 115和DAP 145均由操作系统110或在主机105上执行的内核或管理程序管理。另外,缓存一致共享存储器的多处理器范例可允许使用非均匀存储器访问(NUMA)属性,其中操作系统110可以基于接近度做出关于分配任务的智能决策。即,通过使用NUMA属性操作系统110可以知道CPUs 115与的存储器120共存于主机计算系统105中,而DAP 145(以及外围I/O设备135的任何相关联的存储器)位于I/O设备135中。因此,尽管CPUs 115和DAP 145是对等的,但是它们与系统中的存储器具有不同的接近度,这会导致不同的延迟。因此,操作系统110可以基于CPUs 115和DAP 145与系统中的各个存储器元件的位置和接近度智能地分配任务。
DAP 145包括其自身的操作系统155。在一实施例中,操作系统155是独立的嵌入式操作系统。然而,在其它实施例中,共享存储器的多处理器范例允许操作系统155与主机105的操作系统110相同,或者是操作系统110的子系统。例如,操作系统155可以是操作系统110的扩展,其管理外围设备135上的存储器和计算资源。
不管操作系统155是独立的操作系统还是操作系统110的一部分或扩展,因为DAP145是由主机105的操作系统110管理的,操作系统110可以向操作系统155提交任务,随后操作系统155控制其中的硬件元件以完成任务。例如,DAP 145可以是ARM处理器,但也可以是使用另一种类型ISA(例如,x86或)的处理器。无论如何,DAP 145和操作系统155可以执行通用功能,否则这些通用功能需要由CPUs 115或外围I/O设备135的特殊处理系统执行(例如,如果I/O设备是FPGA,使用可编程逻辑PL)。在一个实施例中,DAP 145是CPU,尽管其计算能力可以远远小于主机105的CPUs 115。此外,DAP 145可以包括一个或多个处理核心(例如,多个ARM核心),并且可以包括本地存储器(例如,储存在操作系统155上的本地DDR存储器)。在传统模型中,操作系统155对于主机105的操作系统110是不透明的或不可见的。也就是说,操作系统110将简单地将整个I/O设备135视为一个整体,而不知道I/O设备135中有哪些不同类型的硬件元件。通过添加一致性网关140和一致性互连协议,操作系统110可以将DAP 145视为CPUs 115的对等处理器。操作系统110可以确定DAP 145是否具有可用的计算资源(或可用的计算时间)、可用的本地存储器、DAP 145与I/O设备135和主机105的存储器元件的接近度、以及通过将DAP 145添加到与主机105相同的一致性域而实现的其他优点。
DSA 150是为主机105执行加速任务的加速器。在一个实施例中,DSA 150是与主机105和DAP 145相同的一致性域的一部分,尽管这不是必须的。例如,DSA 150可以被分配给由I/O设备驱动程序125管理而不是由操作系统110管理的I/O域。在另一个实施例中,DSA150中的硬件元件的一部分可以被分配给一致性域(并且是由操作系统/内核管理的),而DSA 150的硬件元件的其余部分被分配给I/O域(并且是由I/O设备驱动程序125管理的)。
DSA 150可包括硬化电路、可编程电路(例如,PL)或其组合。例如,DSA 150可包括专门处理元件(例如,乘法累加器或数据处理引擎的阵列)或图形处理单元(GPU)。DSA150可包括具有多个可配置块的PL阵列。此外,DSA 150可以包括专门处理元件(例如,数据处理引擎阵列)和PL的混合。
图2是根据实施例描述的具有混合网关的外围I/O设备的框图。为简单起见,未示出主机105中的各个硬件和软件元件。外围I/O设备135包括混合网关205,其允许设备135中的硬件元件在逻辑上划分为一致性域和I/O域。将硬件元件划分为这些域的各种方法将在后面讨论。
为了将主机105的一致性域扩展到外围I/O设备135中,混合网关使用一致性互连协议。例如,混合网关205可使用用于加速器的缓存一致性互连协议(CCIX)来形成一致性域。CCIX是一种高性能的芯片对芯片互连架构,可为异构系统架构提供缓存一致性框架。CCIX为外围设备引入内核管理的语义。在主机105上的CPU(s)和系统中可以设置在任意数量的外围I/O设备上的各种其他加速器之间始终自动保持高速缓存一致性。然而,除了CCIX之外,还可以使用其他一致性互连协议,如QuickPath Interconnect(QPI)或Omni-Path,从而扩展主机105的一致性域以包括外围I/O设备135中的计算资源。
混合网关205包括外围组件互连快速(PCIe)端点210和DAP 145。PCIe端点210使混合网关205能够使用PCIe通信技术在主机105之间传输数据。例如,可以使用相同的PCIe连接(或多个连接)传输I/O域信息流量(traffic)和一致性域信息流量。在一个实施例中,可以使用特殊报头或报头值以指示哪些数据包是I/O域信息流量,哪些数据包是一致性域信息流量。
在图2中,混合网关250可通信地耦接到PL阵列215和片上网络(NoC)220。PL阵列215包括执行由主机105提供的加速器任务的DSA 150。例如,DSA 150可以配置(使用PL)以执行机器学习任务、密码加速、压缩/解压任务、数字或模拟处理任务、图形加速、仿真等。此外,如上所述,可以仅使用PL实现DSA 150,可以仅使用硬化电路实现DSA 150,或可以使用硬化电路和PL的混合实现DSA 150。
在一个实施例中,NoC 220包括允许I/O设备135的硬件元件(例如,DSA 150、存储器元件、混合网关205等)发送和接收数据的接口元件。在一个实施例中,不是使用PL形成NoC 220,而是硬化用于形成NoC 220的部分或全部元件。在任何情况下,可以在I/O域和一致性域之间逻辑地划分NoC 220,稍后会详细描述。
在图2中,外围I/O设备135耦接到附属存储器230。附属存储器230可以是与形成外围设备135的集成电路(如片上系统SoC)相分离的集成电路。I/O设备135可以使用高速总线可通信地耦接到附属存储器230。然而,使用附加存储器是可选的。此外,外围I/O设备135可以包括内部存储元件(和内部存储控制器)。
附属存储器230包括设备驱动程序管理存储器235和一致性存储器240。设备驱动程序管理存储器235由主机105中的I/O设备驱动程序(未示出)管理,而一致性存储器240由主机105的操作系统/内核/管理程序(图2也未示出)管理。因此,设备驱动程序管理存储器235是I/O域的一部分,而一致性存储器240是一致性域的一部分。因此,分配给I/O域的外围I/O设备135的硬件元件能够与设备驱动程序管理存储器235通信,但是不能与一致性存储器240通信;而分配给一致性域的硬件元件可以与一致性存储器240通信,但是不能与设备驱动程序管理存储器235通信。
图3是根据实施例描述的用于将任务分配给DAP和DSA的方法的流程图。在块305中,主机的操作系统(或主机的内核或主机的管理程序)识别可以被卸载到外围I/O设备的DAP的轻量级通用处理器功能。在一个实施例中,DAP不适合执行重量级任务(例如,执行服务器数据库应用程序,或者以太网TCP/IP软件堆栈)但可以执行轻量级处理器功能。在一个实施例中,这些轻量级处理器功能是开源库或行业标准软件应用程序。适用于DAP的轻量级处理器功能的实施例包括压缩/解压算法(例如,gzip)或执行数据平面网络路由时的二次处理。相比于主机中的CPU存储器复合体,这些功能可能更适合DAP。
在一个实施例中,卸载到DAP的处理器功能与分配给DSA的加速器任务相关联。在一个实施例中,DAP在执行轻量级处理器功能时产生的数据随后被传输到DSA以在执行加速器任务时进行处理。例如,操作系统中的调度程序可以指示DAP解压一个2MB的文件从而产生一个100MB的未压缩数据文件。DAS可以随后对未压缩数据执行加速器任务(例如检索)。在这种情况下,加速器任务对DAP执行的轻量级功能具有数据依赖性。
在一个实施例中,卸载到DAP的处理器功能是轻量级操作系统调度程序模块,操作系统110中负责调度DAP和DSA上的任务的子集。在一个实施例中,轻量级操作系统调度程序决定卸载到DAP的可用功能中的哪一个被分派作为下一个将由DAP执行的处理器功能。在另一个实施例中,轻量级操作系统调度程序决定由DAP完成的可用数据从属功能中的哪一个被分派作为下一个要由DSA执行的任务。
在块310中,主机中的操作系统使用一致性互连协议指示DAP执行功能并将结果数据储存在一致性存储器中。由于主机和至少一部分I/O设备在同一一致性域中,主机的操作系统可以使用一致性互连协议(例如,CCIX、QPI或Omni-Path)来指示DAP执行轻量级功能,从而绕过I/O设备驱动程序。如果所有的硬件元件都被分配给与主机相同的一致性域中,则主机可以没有安装I/O设备驱动程序(例如,因为没有I/O域在I/O设备中,因此不需要I/O设备驱动程序)。
操作系统可以使用高速缓存一致共享存储器的多处理器范例中的任何已知工具来向DAP提供指令。例如,由于DAP是主机的CPU的对等处理器,因此操作系统可以使用与主机中的CPU相同的语义来通信和管理DAP。这些语义可以包括信号量、门铃、隐式更新等。
操作系统可以指示DAP将执行轻量级处理器功能的结果储存在特定存储器中。使用NUMA属性,操作系统可以知晓DAP与系统的存储元件(可以包括主机、外围I/O设备和附属存储器中的存储元件)的接近度。如果数据旨在被DSA用于执行加速器任务,则操作系统会指示DAP将数据储存在I/O设备存储元件或附属存储器中,因为这相对于将数据储存在主机中可以提供更低的延迟。但是,如果DAP执行的轻量级功能与分配给DSA的加速器任务无关,则操作系统会指示DAP将结果数据储存在主机中(例如,如果主机的CPU需要数据)。
在块315中,操作系统使用一致性互连协议指示DSA处理由DAP储存的数据。在本实施例中,DAP生成的数据与DAS执行的加速器任务之间存在依赖关系。在一个实施例中操作系统指示DSA等待来自DAP的准备信号,该准备信号表明其已准备好由DSA处理的数据。使用上述的实施例,一旦DAP完成对压缩数据的解压,DAP可以通知DSA未压缩数据的存储位置,以便DSA可以检索数据(例如,使用NoC)并执行加速器任务。
在块320中,主机接收来自DAS执行加速器任务的结果。由于DSA可能是一致性域的一部分,因此I/O设备可以使用网关和一致性互连协议将DSA生成的数据作为执行加速器功能的一部分传输到主机。然后,操作系统可以通知主机中的CPU加速器任务已经完成以及可以在存储器中哪里找到结果数据。
图4A是根据实施例描述的具有连接到DAP 145和DSA 150的端点一致性互连405的混合网关205的框图。DAP 145是与主机105中的CPU-存储器复合体相同的一致性域的一部分。因此,所有资源都可以由操作系统或内核管理,并且共享存储器的多处理器范例被扩展到加速器,例如I/O设备135。也就是说,使用一致性互连协议还启用共享存储器多处理器模型,使得主机105和DAP 145可以具有不同的ISA。此外,DSA 150连接到PL域特定自适应计算机415(例如,执行主机150ISA或者DAP 150ISA的特定子集的定制处理器,或者也能够使用在PL阵列215中的PL实现的定制处理器)。在一个实施例中,PL域特定自适应计算机415是PLDAP,其提供在可编辑逻辑中执行特定子集ISA或定制ISA以提高计算效率的灵活性。
图4A示出了第一DSA/DAP拓扑,其中DSA 150(其也被分配到一致性域)使其DAP145经由相同端点一致性互连405连接。图4B类似于图4A中示出的I/O设备135,不同之处在于图4B示出了第二种不同的DSA/DAP拓扑。在图4B中,DSA 150和DAP 145都附接到用于DSA处理前和DSA处理后的低延迟数据访问的共享高速缓存420。
在一个实施例中,除了与主机105的CPU-存储器复合体共享相同的一致性域之外,图4A和图4B示出的I/O设备135还能通过传统的I/O设备驱动程序管理模型进行数据移动,例如,预处理加速数据足迹或后处理足迹从/到主机存储器的数据移动。此外,混合网关205包括,网关NoC 410,其促进网关205中的硬件元件(例如,PCIe端点210和端点一致性互连405)和NoC 220之间的通信。
图5是根据实施例描述的耦接到具有I/O和一致性域的外围I/O设备135的主机105的框图。图5中的计算系统500包括使用PCIe连接530可通信地耦接到外围I/O设备135的主机105(例如,图1中的主机105)。如上所述,CPU 115和存储器120是操作系统管理的(或内核/管理程序管理的),以形成遵循缓存一致共享存储器的多处理器范例的一致性域。在传统I/O模型中,外围I/O设备135(及其所有计算资源550)被排除在主机105中建立的一致性域之外。在传统模型中,主机105依赖储存在其存储器120中的I/O设备驱动程序125以管理I/O设备135的计算资源550。即,外围I/O设备135由I/O设备驱动程序125控制,并可通过I/O设备驱动程序125访问。
虽然计算资源550C和550D被逻辑地分配给一致性域560,但是计算资源550A和550B被分配给I/O域545。因此,I/O设备135受益于将计算资源550分配给两个域545、560。在I/O域545在主机105和I/O设备135之间进行大存储传输时提供了效率的同时,一致性域560提供了之前所述的性能优势、软件灵活性和开销减少。通过将硬件计算资源550(例如,可编程逻辑、片上网络NoC、数据处理引擎,和/或存储器)逻辑地划分为I/O域545和一致性域560,I/O设备135可以从两种类型的范例中受益。
为了使主机105能够发送和接收I/O和一致性域的信息流量,外围I/O设备135包括混合网关205,其将在PCIe连接530上接收的数据分成I/O信息流量和一致性信息流量。I/O信息流量被转发到I/O域545的计算资源550A和550B,而一致性信息流量被转发到一致性域560的计算资源550C和550D。在一个实施例中,混合网关205可以并行处理I/O和一致性信息流量,使得I/O域545中的计算资源550可以与一致性域560中的计算资源550并行执行。即,主机105可以将任务分配给I/O域545和一致性域560的计算资源550,二者可以并行执行那些任务。
外围I/O设备135可以是多种不同类型的I/O设备,例如,可插拔卡(插入主机105中的扩展槽)、SoC、GPU、FPGA等。虽然此处的实施例将讨论将计算资源550划分为两个域,在其他实施例中,混合网关205可以被调整为支持附加域名或者I/O域和一致性域545、560内的多个子域。
图6是根据实施例描述的被逻辑地划分为I/O域和一致性域545、560的具有PL阵列215、存储器块620和NoC 220的外围I/O设备135的框图。在本实施例中,PL阵列215由多个PL块610形成。这些块可以单独被分配给I/O域545或一致性域560。即,PL块610A和610B被分配给I/O域,而PL块610C和610D被分配给一致性域。在一个实施例中,分配给I/O域的一组PL块610与分配给一致性域的一组PL块610互斥,使得这些块之间没有重叠(例如,没有PL块610被既分配给I/O域又分配给一致性域)。在一个实施例中,PL块610A和610B可用于在I/O域545中形成DSA,而PL块610C和610D可用于在一致性域560中形成DSA。
在一个实施例中,将硬件资源分配给I/O域545或一致性域560不会影响(或指示)硬件资源在I/O设备135的物理位置。例如,PL块610A和610C可被分配至不同的域,即使这些块在PL阵列215中彼此相邻。因此,虽然I/O设备135的硬件资源的物理位置在其被逻辑地分配到I/O域545和一致性域560时被考虑到,但是这并非是必要的。
I/O设备135还包括分配给I/O域645和一致性域660的存储控制器615。在一个实施例中,由于存储控制器615和相应存储块620之间的物理互连,分配存储控制器615中的一个至I/O域545或一致性域560意味着连接到存储控制器615的所有存储块620被分配到相同的域。例如,存储控制器615可以耦接到一组固定的存储器块620(其不耦接到任何其他存储控制器615)。因此,存储器块620可以被分配到与其耦接到的存储控制器615相同的域。然而,在其他实施例中,可以将耦接到相同存储控制器615的存储器块620分配给不同的域。
在一个实施例中,NoC 220包括接口元件,其允许I/O设备135的硬件元件(例如,可配置数据处理引擎、存储器块620、PL块610等)使用NoC 220传输和接收数据。在一实施例中,不是使用可编程逻辑形成NoC 220,而是硬化用于形成NoC的元件的部分或全部。在任何情况下,NoC 220都可以在I/O域545和一致性域560之间进行逻辑划分。在一个实施例中,不是将NoC 220的不同部分分配至两个域,而是将NoC的参数配置为对应于I/O域545和一致性域560的信息流量提供不同的服务级别。即,NoC 220中流动的两个域的信息流量可以使用相同的硬件元件(例如,交换机和通信链路),但是可以由硬件元件不同地处理。例如,NoC220可以为两个不同的域提供不同的服务质量(QoS)、延迟、带宽。此外,出于安全原因,NoC220还可以将I/O域545的信息流量与一致性域560的信息流量隔离。
在另一个实施例中,NoC 220可以阻止I/O域545的计算资源与一致性域560的计算资源通信。然而,在一个实施例中,允许分配给I/O域545的计算资源与分配给一致性域560的计算资源通信可能是有利的。以前,这种通信将发生在I/O设备驱动程序125和主机105的操作系统中。替代性的,可以使用NoC 220(如果计算资源在设备135中相距很远)或者PL阵列215中的结构到结构连接(如果两个被分配给两个不同的域的PL块610靠得很近且需要通信)在I/O设备135内发生域间通信。
图7示出了I/O外围设备135的FPGA 700的实现,并且,更具体地使用图2中的PL阵列215,其包含大量不同的可编程单元块(programmable tile),包括收发器37、CLB 33、BRAM 34、输入/输出块(IOB)36、配置和时钟逻辑(CONFIG/CLOCKS)42、DSP块35、专用输入/输出块(IO)41(例如,配置端口和时钟端口),和其他可编程逻辑39(例如,数字时钟管理器、模数转换器、系统监控逻辑等)。FPGA还可以包括PCIe接口40、模数转换器(ADC)38等。
如图7的实施例的顶部所示,在一些FPGA中,每个可编程单元块可以包括至少一个可编程互连元件(INT)43,其具有与同一单元块内的可编程逻辑元件的输入和输出终端48的连接。每个可编程互连元件43还可以包括与相同单元块或其他单元块中的相邻可编程互连元件的互连段49的连接。每个可编程互连元件43还可以包括与逻辑块(未示出)之间的通用路由资源的互连段50的连接。通用路由资源可以包括逻辑块(未示出)之间的路由通道,其包括互连段间的路径和用于连接互连段的开关块(未示出)。通用路由资源(例如,互连段50)的互连段能跨越一个或多个逻辑块。可编程互连元件43连同通用路由资源一起为所示的FPGA实现可编程互连结构(可编程互连)。
在一个示例中,CLB 33可以包括可配置逻辑元件(CLE)44加上单个可编程互连元件INT 43,该可配置逻辑元件44可以被编程以实现用户逻辑。BRAM 34可以包括BRAM逻辑元件(BRL)45以及一个或多个可编程互连元件。在一个实施例中,BRAM 34是可以在重新配置期间保留储存数据的存储器的一部分。通常,单元块中包括的互连元件的数量取决于单元块的高度。在图示的实施方式中,BRAM单元块具有与5个CLB相同的高度,但是也可以使用其他数量(例如,4)。除了适当数量的可编程逻辑互连元件外,DSP块35还可以包括DSP逻辑元件(DSPL)46。例如,IOB 36可以包括输入/输出逻辑元件(IOL)47的两个实例。本领域技术人员应当清楚,例如连接到I/O逻辑元件47的实际的IO焊盘通常不限于输入/输出逻辑元件47的区域。
在图示的实施例中,靠近管芯中心的水平区域(如图7所示)被用于配置、时钟、和其他控制逻辑。从该水平区域或列延伸的垂直列51可用于配置跨FPGA的广度分布的时钟和配置信号。
一些利用图7所示架构的FPGA包括其他逻辑块,这些逻辑块破坏构成FPGA的大部分规则的柱状结构。其他逻辑块可以是可编程块和/或专用逻辑。
请注意,图7仅示出了FPGA架构的示例。例如,图7顶部的示出的行中逻辑块的数量、行的相对宽度、行的数量和顺序、行中包括的逻辑块的种类、逻辑块的相对大小以及互连/逻辑的实施方式仅作为示例提供。例如,在实际的FPGA中,无论CLB出现在何处,都可以包括多于一个相邻列的CLB行,以促进用户逻辑的有效实现,但相邻CLB行的数量随FPGA的整体尺寸而变化。
在上文中,参考了本文提出的实施例。然而,本文公开的范围不限于具体描述的实施例。相反的,所描述的特征和元件的任何组合,无论是否与不同的实施例相关,都被预期实施和实践预期的实施例。此外,尽管本文公开的实施例可以实现优于其他可能的解决方案或现有技术的优势,但是特定的优势是否通过给定的实施例实现并不限制本文的范围。因此,前述方面、特征、实施例和优点仅是示例性的,并且不被视为所附权利要求的元素或限制,除非在权利要求中明确陈述。
如本领域技术人员将理解,本文公开的实施例可以体现为系统、方法或计算机程序产品。因此,各方面可以采取完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)或结合软件和硬件方面的实施例的形式,这些方面在本文中可以统称为“电路”、“模块”或“系统”。此外,各方面可以采用包含在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质具有包含在其上的计算机可读程序代码。
可以使用一种或多种计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。例如,计算机可读存储介质可以是但不限于电子的、磁的、光的、电磁的、红外的或半导体的系统、装置、设备,或前述的任何合适的组合。该计算机可读介质的更具体的例子(非穷尽的列表)可包括以下项:具有一根或多根线的电气连接、便携式计算机磁盘、硬盘、随机存取存储器(“RAM”)、只读存储器(“ROM”)、可擦除可编程只读存储器(“EPROM”或闪存)、光纤、便携式光盘只读存储器(“CD-ROM”)、光存储设备、磁性存储设备,或前述的任何合适的组合。在本文中,计算机可读存储是可以包含或储存由指令执行系统、装置或设备使用或预期结合使用的程序的任何有形介质。
计算机可读信号可以包括传播的数据信号,其中包含计算机可读的程序代码,例如,在基带中或作为载波的一部分。这种传播的信号可以采用多种形式中的任何一种,包括但不限于电磁、光或其任何合适的组合。计算机可读信号介质可以是不是计算机可读存储介质并且可以通信、传播或传输程序以供指令执行系统、装置或设备使用或与其结合使用的任何计算机可读介质。
包含在计算机可读介质上的程序代码可以使用任何合适的介质来传输,包括但不限于无线、有线、光纤电缆、射频等,或前述的任何合适的组合。
用于执行本公开各方面的操作的计算机程序代码可以用一种或多种编程语言的任意组合编写,包括面向对象的程序语言,例如Java,Smalltalk,C++等和传统的过程性编程语言,例如“C”编程语言或类似的编程语言。程序代码可全部在用户计算机上执行、部分在用户计算机上执行、作为单独的软件包执行、部分在用户计算机上执行而部分在远程计算机上执行,或全部在远程计算机或服务器上执行。在后面的场景中,远程计算机可通过任何类型的网络连接到用户计算机,包括局域网(LAN)或广域网(WAN)连接到用户计算机,或者连接可到达外部计算机(例如,通过利用互联网服务提供商的互联网)。
下面参考根据本文中呈现的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本文的方面。应当理解,流程图和/或框图的每个块,以及流程图和/或框图中的块的结合,可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理设备的处理器以产生机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令创建用于实现流程图和/或框图块或块中指定的功能/动作的方法。
这些计算机程序指令也可以存储在计算机可读介质中,该介质可以指向计算机、其他可编程数据处理设备或以特定方式运行的其他设备,使得储存在计算机可读介质中的指令产生包含实现流程图和/或框图块中指定的功能/动作的指令的制品。
也可以将计算机程序指令加载到计算机、其他可编程数据处理设备、或其他设备上,以使在计算机,其他可编程设备、或其他设备上执行一系列操作以产生计算机实现的过程,从而在计算机,其他可编程设备、或其他设备上执行的指令实现了流程图和/或框图中指定的功能/动作的过程。
附图中的流程图和框图示出了根据本文的各种实施例的系统,方法和计算机程序产品的可能实现的体系结构,功能和操作。就这一点而言,流程图或框图中的每个块可以表示指令的模块,片段或部分,其包括用于实施指定逻辑功能的一个或多个可执行指令。在一些替代实施方式中,块中指出的操作可以不按图中指出的顺序发生。例如,取决于所涉及的功能,连续示出的两个块可以基本上同时执行,或者有时可以以相反的顺序执行。还应注意,框图和/或流程图说明的每个块的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的、特定目的的基于硬件的系统来实现。
虽然前述针对具体的实施例,但在不脱离其基本范围的情况下可以设计其他和进一步的实施例,并且其范围由所附权利要求确定。
Claims (15)
1.一种外围I/O设备,其特征在于,所述外围I/O设备包括:
域辅助处理器;
域加速器;以及
网关,所述网关被配置为使用一致性互连协议将所述外围I/O设备可通信地耦接至主机,其中所述一致性互连协议将所述主机中的一致性域扩展到所述外围I/O设备,以使所述域辅助处理器是所述主机中的处理器的对等处理器,其中,所述网关被配置为:
使用所述一致性互连协议接收来自所述主机的第一请求,所述第一请求指示所述域辅助处理器执行处理器功能,以及
使用所述一致性互连协议接收来自所述主机的第二请求,所述第二请求指示所述域加速器执行加速器任务。
2.根据权利要求1所述的外围I/O设备,其特征在于,所述域辅助处理器包括至少一个处理器内核和操作系统,其中所述操作系统为以下多种中的一种:嵌入式独立操作系统和所述主机中的操作系统的扩展。
3.根据权利要求2所述的外围I/O设备,其特征在于,所述处理器内核使用的指令集架构与所述主机中的处理器使用的指令集架构不同。
4.根据权利要求1所述的外围I/O设备,其特征在于,还包括:
可编辑逻辑阵列,其中所述域加速器的至少一部分由所述可编辑逻辑阵列执行。
5.根据权利要求4所述的外围I/O设备,其特征在于,所述域加速器的至少一部分在硬化电路上执行。
6.根据权利要求1所述的外围I/O设备,其特征在于,还包括:
可通信地耦接所述网关和所述域加速器的片上网络。
7.根据权利要求1所述的外围I/O设备,其特征在于,所述网关为在所述外围I/O设备中建立I/O域和所述一致性域的混合网关。
8.根据权利要求1所述的外围I/O设备,其特征在于,所述网关包括可通信地耦接到所述域辅助处理器和所述域加速器两者的端点一致性互连。
9.根据权利要求8所述的外围I/O设备,其特征在于,所述网关包括高速缓存,所述高速缓存可通信地耦接在所述端点一致性互连与所述域辅助处理器和所述域加速器之间。
10.一种方法,其特征在于,所述方法包括:
识别处理器功能以从主机的CPU-存储器复合体卸载到外围I/O设备的域辅助处理器,其中包括所述主机的CPU-存储器复合体的一致性域扩展到所述外围I/O设备中的所述域辅助处理器;
使用一致性互连协议指示所述域辅助处理器执行所述处理器功能并将结果数据储存在所述一致性域的存储元件中;
使用所述一致性互连协议指示所述外围I/O设备的域加速器在为所述主机执行加速器任务时处理所述结果数据;以及
接收在所述域加速器上执行所述加速器任务的结果数据。
11.根据权利要求10所述的方法,其特征在于,所述域辅助处理器包括至少一个处理器内核和操作系统,其中所述操作系统为以下多种中的一种:嵌入式独立操作系统和主机中的操作系统的扩展。
12.根据权利要求10所述的方法,其特征在于,所述域加速器的至少一部分由可编程逻辑阵列执行。
13.根据权利要求10所述的方法,其特征在于,所述域辅助处理器和所述主机中的CPU是高速缓存一致共享存储器的多处理器范例的一部分。
14.根据权利要求10所述的方法,其特征在于,还包括使用主机中的I/O设备驱动程序指示分配给所述外围I/O设备中的I/O域的计算资源执行I/O任务。
15.一种计算系统,其特征在于,所述计算系统包括:
主机,所述主机包括在一致性域中的CPU-存储器复合体;
外围I/O设备,所述外围I/O设备包括:
域辅助处理器;
域加速器;以及
网关,所述网关被配置为使用一致性互连协议可通信地耦接所述外围I/O设备至所述主机,其中所述一致性互连协议将所述主机中的所述一致性域扩展以包括所述域辅助处理器,其中所述网关被配置为:
从所述主机接收指示所述域辅助处理器执行处理器功能的第一请求,以及
从所述主机接收指示所述域加速器执行加速器任务的第二请求。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/380,856 | 2019-04-10 | ||
US16/380,856 US10698842B1 (en) | 2019-04-10 | 2019-04-10 | Domain assist processor-peer for coherent acceleration |
PCT/US2020/027228 WO2020210329A1 (en) | 2019-04-10 | 2020-04-08 | Domain assist processor-peer for coherent acceleration |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113661485A true CN113661485A (zh) | 2021-11-16 |
CN113661485B CN113661485B (zh) | 2024-05-07 |
Family
ID=70476471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080026425.3A Active CN113661485B (zh) | 2019-04-10 | 2020-04-08 | 用于一致性加速的域辅助处理器对等 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10698842B1 (zh) |
EP (1) | EP3953829A1 (zh) |
JP (1) | JP7404390B2 (zh) |
KR (1) | KR20210148247A (zh) |
CN (1) | CN113661485B (zh) |
WO (1) | WO2020210329A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117472588A (zh) * | 2023-12-27 | 2024-01-30 | 山东方寸微电子科技有限公司 | 一种用于网络密码设备的混合式软件架构及密码设备 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190004990A1 (en) | 2017-07-01 | 2019-01-03 | Stephen R. Van Doren | Techniques to support mulitple interconnect protocols for an interconnect |
JP7038608B2 (ja) | 2018-06-15 | 2022-03-18 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US10817462B1 (en) * | 2019-04-26 | 2020-10-27 | Xilinx, Inc. | Machine learning model updates to ML accelerators |
US11074208B1 (en) | 2019-07-24 | 2021-07-27 | Xilinx, Inc. | Routing network using global address map with adaptive main memory expansion for a plurality of home agents |
US11474871B1 (en) | 2019-09-25 | 2022-10-18 | Xilinx, Inc. | Cache coherent acceleration function virtualization |
CN112069096B (zh) * | 2020-11-11 | 2021-02-02 | 北京和利时系统工程有限公司 | 控制器 |
CN112100121B (zh) * | 2020-11-17 | 2021-02-12 | 北京壁仞科技开发有限公司 | 计算装置、计算设备以及可编程调度方法 |
US11709790B2 (en) | 2021-02-24 | 2023-07-25 | Xilinx, Inc. | Spatial distribution in a 3D data processing unit |
US11947459B2 (en) * | 2021-09-30 | 2024-04-02 | Xilinx, Inc. | Multipath memory with static or dynamic mapping to coherent or MMIO space |
US11625338B1 (en) * | 2021-10-29 | 2023-04-11 | Hewlett Packard Enterprise Development Lp | Extending supervisory services into trusted cloud operator domains |
US11995021B2 (en) | 2022-01-12 | 2024-05-28 | Xilinx, Inc. | Zoned accelerator embedded processing |
US11983133B2 (en) | 2022-08-22 | 2024-05-14 | Xilinx, Inc. | Adaptive integrated programmable data processing unit |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170220499A1 (en) * | 2016-01-04 | 2017-08-03 | Gray Research LLC | Massively parallel computer, accelerated computing clusters, and two-dimensional router and interconnection network for field programmable gate arrays, and applications |
CN107894914A (zh) * | 2016-09-30 | 2018-04-10 | 华为技术有限公司 | 缓存一致性处理方法和装置 |
CN107992329A (zh) * | 2017-07-20 | 2018-05-04 | 上海寒武纪信息科技有限公司 | 一种计算方法及相关产品 |
CN108089920A (zh) * | 2016-11-23 | 2018-05-29 | 华为技术有限公司 | 一种数据处理的方法、装置和系统 |
US20190004990A1 (en) * | 2017-07-01 | 2019-01-03 | Stephen R. Van Doren | Techniques to support mulitple interconnect protocols for an interconnect |
US20190018806A1 (en) * | 2017-07-14 | 2019-01-17 | Intel Corporation | Techniques for managing access to hardware accelerator memory |
US20190034367A1 (en) * | 2017-12-09 | 2019-01-31 | Intel Corporation | Unified address space for multiple links |
US20190042292A1 (en) * | 2017-09-01 | 2019-02-07 | Intel Corporation | Technologies for application-specific network acceleration with unified coherency domain |
US20190042455A1 (en) * | 2018-05-04 | 2019-02-07 | Intel Corporation | Globally addressable memory for devices linked to hosts |
CN109388585A (zh) * | 2017-08-07 | 2019-02-26 | 英特尔公司 | 用于基于高速缓存类型来提供高速缓存一致性的技术 |
US20190065188A1 (en) * | 2014-05-29 | 2019-02-28 | Altera Corporation | Accelerator architecture on a programmable platform |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012141695A1 (en) * | 2011-04-13 | 2012-10-18 | Hewlett-Packard Development Company, L.P. | Input/output processing |
US9373182B2 (en) | 2012-08-17 | 2016-06-21 | Intel Corporation | Memory sharing via a unified memory architecture |
CN104737147B (zh) * | 2012-10-22 | 2018-11-06 | 英特尔公司 | 高性能互连物理层 |
US10116557B2 (en) * | 2015-05-22 | 2018-10-30 | Gray Research LLC | Directional two-dimensional router and interconnection network for field programmable gate arrays, and other circuits and applications of the router and network |
US10587534B2 (en) * | 2017-04-04 | 2020-03-10 | Gray Research LLC | Composing cores and FPGAS at massive scale with directional, two dimensional routers and interconnection networks |
US10762877B2 (en) | 2017-04-17 | 2020-09-01 | Intel Corporation | System, apparatus and method for reducing voltage swing on an interconnect |
-
2019
- 2019-04-10 US US16/380,856 patent/US10698842B1/en active Active
-
2020
- 2020-04-08 CN CN202080026425.3A patent/CN113661485B/zh active Active
- 2020-04-08 EP EP20722859.4A patent/EP3953829A1/en active Pending
- 2020-04-08 WO PCT/US2020/027228 patent/WO2020210329A1/en unknown
- 2020-04-08 JP JP2021559910A patent/JP7404390B2/ja active Active
- 2020-04-08 KR KR1020217035232A patent/KR20210148247A/ko active Search and Examination
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190065188A1 (en) * | 2014-05-29 | 2019-02-28 | Altera Corporation | Accelerator architecture on a programmable platform |
US20170220499A1 (en) * | 2016-01-04 | 2017-08-03 | Gray Research LLC | Massively parallel computer, accelerated computing clusters, and two-dimensional router and interconnection network for field programmable gate arrays, and applications |
CN107894914A (zh) * | 2016-09-30 | 2018-04-10 | 华为技术有限公司 | 缓存一致性处理方法和装置 |
CN108089920A (zh) * | 2016-11-23 | 2018-05-29 | 华为技术有限公司 | 一种数据处理的方法、装置和系统 |
US20190004990A1 (en) * | 2017-07-01 | 2019-01-03 | Stephen R. Van Doren | Techniques to support mulitple interconnect protocols for an interconnect |
US20190018806A1 (en) * | 2017-07-14 | 2019-01-17 | Intel Corporation | Techniques for managing access to hardware accelerator memory |
CN107992329A (zh) * | 2017-07-20 | 2018-05-04 | 上海寒武纪信息科技有限公司 | 一种计算方法及相关产品 |
CN109388585A (zh) * | 2017-08-07 | 2019-02-26 | 英特尔公司 | 用于基于高速缓存类型来提供高速缓存一致性的技术 |
US20190042292A1 (en) * | 2017-09-01 | 2019-02-07 | Intel Corporation | Technologies for application-specific network acceleration with unified coherency domain |
US20190034367A1 (en) * | 2017-12-09 | 2019-01-31 | Intel Corporation | Unified address space for multiple links |
US20190042455A1 (en) * | 2018-05-04 | 2019-02-07 | Intel Corporation | Globally addressable memory for devices linked to hosts |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117472588A (zh) * | 2023-12-27 | 2024-01-30 | 山东方寸微电子科技有限公司 | 一种用于网络密码设备的混合式软件架构及密码设备 |
CN117472588B (zh) * | 2023-12-27 | 2024-04-09 | 山东方寸微电子科技有限公司 | 一种用于网络密码设备的混合式软件架构及密码设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113661485B (zh) | 2024-05-07 |
WO2020210329A1 (en) | 2020-10-15 |
US10698842B1 (en) | 2020-06-30 |
JP2022526660A (ja) | 2022-05-25 |
KR20210148247A (ko) | 2021-12-07 |
EP3953829A1 (en) | 2022-02-16 |
JP7404390B2 (ja) | 2023-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113661485B (zh) | 用于一致性加速的域辅助处理器对等 | |
Caulfield et al. | Beyond SmartNICs: Towards a fully programmable cloud | |
CN111324558B (zh) | 数据处理方法、装置、分布式数据流编程框架及相关组件 | |
TW202042059A (zh) | 用於將應用函數卸載到裝置的系統和方法 | |
US10817462B1 (en) | Machine learning model updates to ML accelerators | |
US10558574B2 (en) | Reducing cache line collisions | |
WO2023207035A1 (zh) | 一种数据同步方法、装置、设备及存储介质 | |
CN114691354A (zh) | 动态分解及线程分配 | |
Kaushik et al. | Computation and communication aware run-time mapping for NoC-based MPSoC platforms | |
CN114691317A (zh) | 可重新配置的计算结构中的循环执行 | |
Kidane et al. | NoC based virtualized accelerators for cloud computing | |
CN116389542A (zh) | 具有可配置的池化资源的平台 | |
CN113678112B (zh) | 具有可分配i/o域和相干域的外围i/o设备 | |
US11789790B2 (en) | Mechanism to trigger early termination of cooperating processes | |
Afonso et al. | Heterogeneous CPU/FPGA reconfigurable computing system for avionic test application | |
CN104125292A (zh) | 一种数据处理装置、云服务器及其使用方法 | |
CN118043792A (zh) | 提供事件消息的可靠接收的机制 | |
CN117581200A (zh) | 在分派期间从存储器加载数据 | |
CN117677927A (zh) | 高效复数乘法及累加 | |
US20240061805A1 (en) | Host endpoint adaptive compute composability | |
Wang et al. | Container Resource Allocation versus Performance of Data-intensive Applications on Different Cloud Servers | |
CN118119933A (zh) | 用于触发协作进程的提前终止的机制 | |
Gantel et al. | MRAPI resource management layer on reconfigurable systems-on-chip | |
Schmidt | Policies and patterns for high-performance, real-time object request brokers |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |