CN110851378A - 双列直插式存储器模块(dimm)可编程加速卡 - Google Patents
双列直插式存储器模块(dimm)可编程加速卡 Download PDFInfo
- Publication number
- CN110851378A CN110851378A CN201910649573.XA CN201910649573A CN110851378A CN 110851378 A CN110851378 A CN 110851378A CN 201910649573 A CN201910649573 A CN 201910649573A CN 110851378 A CN110851378 A CN 110851378A
- Authority
- CN
- China
- Prior art keywords
- card
- memory
- dimm
- interface
- cpu
- 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
- 230000009977 dual effect Effects 0.000 title claims abstract description 15
- 230000001133 acceleration Effects 0.000 claims abstract description 37
- 238000012545 processing Methods 0.000 claims abstract description 27
- 230000006870 function Effects 0.000 claims abstract description 17
- 238000000034 method Methods 0.000 claims description 16
- 238000012546 transfer Methods 0.000 claims description 10
- 230000006835 compression Effects 0.000 claims description 9
- 238000007906 compression Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 9
- 230000006837 decompression Effects 0.000 claims description 6
- 230000002093 peripheral effect Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 11
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000003491 array Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- ORQBXQOJMQIAOY-UHFFFAOYSA-N nobelium Chemical compound [No] ORQBXQOJMQIAOY-UHFFFAOYSA-N 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- WVCHIGAIXREVNS-UHFFFAOYSA-N 2-hydroxy-1,4-naphthoquinone Chemical compound C1=CC=C2C(O)=CC(=O)C(=O)C2=C1 WVCHIGAIXREVNS-UHFFFAOYSA-N 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- 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/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
-
- 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/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
- G06F13/4243—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Advance Control (AREA)
Abstract
中央处理单元(CPU)可以直接耦合到插入到DIMM插槽中的加速器器双列直插式存储器模块(DIMM)卡。CPU可以包括主存储器控制器,其经由低延时双倍数据速率(DDR)接口向加速器DIMM卡发送请求或卸载任务。加速DIMM卡可以包括用于转换所接收的请求的从存储器控制器、用于解码所转换的请求的解码器、用于协调DIMM卡内的数据流的控制电路、可以被动态编程以支持各种各样的定制功能的硬件加速资源、以及用于与各种类型的非易失性和/或易失性存储器接合并且用于与其他类型的存储和处理设备连接的输入输出组件。
Description
本申请要求享有2018年8月20日提交的临时专利申请第62/719,911 号的利益,所述临时专利申请特此通过引用方式全部并入本文。
背景技术
这涉及集成电路,并且更具体而言,涉及硬件加速平台中的可编程集成电路。
可编程集成电路是这样一种集成电路:其可以由用户编程以实现期望的定制逻辑功能。在典型场景中,逻辑设计者使用计算机辅助设计工具来设计定制逻辑电路。当设计过程完成时,计算机辅助设计工具生成配置数据。配置数据被加载到可编程集成电路上的存储器元件中,以将设备配置为执行定制逻辑电路的功能。
可编程设备可以用于大数据、快速数据或高性能计算(HPC)应用中的协处理。例如,可编程设备可以用在数据中心中的应用加速任务中,并且可以在数据中心操作期间被重新编程以执行不同的任务。通过将计算密集型任务从主处理器卸载到可编程设备(有时称为协处理器或加速处理器) 上的高度并行加速资源,主处理器被释放以执行其他关键处理任务。因此,将可编程设备用作硬件加速器可以帮助为端到端云计算、联网、存储、人工智能、自主驾驶、虚拟现实、增强现实、游戏和其他以数据为中心的应用提供改善的速度、延时、功率效率和灵活性。
在此上下文中出现了本文描述的实施例。
附图说明
图1是根据实施例的具有耦合到可编程加速协处理器的主处理器的说明性系统的图。
图2是根据实施例的说明性可编程集成电路的图。
图3是系统的图,在所述系统中主处理器经由高延时路径耦合到可编程加速协处理器。
图4是根据实施例的说明性系统的图,在所述系统中主处理器耦合到可编程加速器双列直插式存储器模块(DIMM)卡。
图5是根据实施例的说明性可编程加速器DIMM卡的图。
图6是根据实施例的用于操作图4和5所示的可编程加速器DIMM卡的说明性步骤的流程图。
图7是根据实施例的示出可以由图4的系统执行的各种任务的计算时间的图。
具体实施方式
本实施例涉及一种系统,其中,主处理器(例如,中央处理单元或CPU) 耦合到可编程加速设备,所述可编程加速设备形成在双列直插式存储器模块(DIMM)卡上。DIMM卡还可以包括各种类型的存储器设备,不限于耦合到可编程加速设备并由可编程加速设备访问的动态随机存取存储器 (DRAM)。
主处理器具有主存储器控制器,其经由低延时路径与DIMM卡通信。由于主处理器与DIMM卡之间的通信路径是延时敏感的,因此DIMM卡可能具有从存储器控制器,所述从存储器控制器使用双倍数据速率(DDR) 协议(例如,事务DDR(DDR-T)协议或任何非易失性存储器协议)来与 CPU上的主存储器控制器接合。在该示例中,需要在DIMM卡中的存储器上执行的计算操作被编码并作为DDR-T事务而被发送到可编程加速设备。由于使用可编程加速设备来访问DIMM卡上的存储器,因此可以使用可编程设备上的可编程输入-输出(IO)组件来实现任何存储器接口,同时将CPU 的接口保持为DDR-T。
由于可编程设备的高度并行性质,将计算密集型功能卸载到加速器 DIMM卡上通常比在主CPU上本地执行它们更高效。可编程加速设备中的算法逻辑可以针对特定应用或当前工作负载使用的数据访问模式进行定制。例如,对于大量顺序数据的最小/最大或其他统计操作通常最好使用可编程加速器设备来执行,而不使主CPU本身上的存储器高速缓存负担。
本领域技术人员将认识到,可以在没有一些或所有这些具体细节的情况下实践本示例性实施例。在其他实例中,尚未详细描述公知的操作,以免不必要地模糊本实施例。
图1是具有耦合到可编程加速协处理器的主处理器的说明性系统的图。如图1所示,系统10包括诸如主处理器12之类的主处理器、诸如连接到主处理器12的主存储器14之类的存储器、以及诸如协处理器100之类的协处理器,可以从主处理器12卸载一个或多个计算密集型任务到所述协处理器100上。
主处理器12可以例如是中央处理单元(CPU)、微处理器、微控制器或图形处理单元(GPU),其被实现为专用集成电路(ASIC)设备或专用标准产品(ASSP)设备。主处理器12(有时称为主CPU或简称为CPU)可以包括一个或多个处理核心20,其用于处理计算机程序的指令。每个处理器核心20可以包括控制单元22、寄存器24、算术逻辑单元(ALU)26和相关联的存储器高速缓存28。
控制单元22可以负责协调核心20的总体操作,并且可以包括用于:获取存储在程序存储器中的指令,解码所获取的指令,并且然后发送出所解码的指令以用于执行的电路。如果需要,则算术逻辑单元26可以用于对指令中指定的数据执行算术和逻辑/布尔操作。所执行的操作的结果可以存储回到存储器中。寄存器24可以为核心20提供高速专用临时存储。寄存器24可以包括用于存储当前正被执行的指令的指令寄存器、用于存储等待处理的数据或者从当前进程得到的数据的数据寄存器、地址寄存器、状态寄存器、程序状态寄存器等。
存储器高速缓存28是较小且较快的存储器,其存储来自最近或频繁使用的主存储器位置的数据的副本,因此与从主存储器取回数据(即,相对耗时的过程)相对,来自处理器的后续请求可以被更快地服务。在图1的示例中,CPU 12还可以包括高速缓存30,所述高速缓存30位于整个层级中的高速缓存28以下,并且可以可选地在两个或更多个CPU核心20之间被共享。
主存储器14指的是可以直接由CPU 12访问的物理存储器。传统上使用诸如动态随机存取存储器(DRAM)之类的易失性存储器组件来实现主存储器14。主存储器(有时也称为主存(primary storage))与外部大容量存储设备(例如,磁盘驱动器、光盘驱动器和磁带驱动器)区分开。CPU 12 只能操纵存储在主存储器14中的数据。因此,每个被执行的程序或每个被访问的文件必须从外部大容量存储设备复制到主存储器14中。主存储器14 中的存储量确定了可以在任何时间点执行多少程序以及可以使程序随时可用的数据量。
协处理器100可以是可编程集成电路设备或可编程逻辑设备。可编程逻辑设备的示例包括可编程阵列逻辑(PAL)、可编程逻辑阵列(PLA)、现场可编程逻辑阵列(FPLA)、电可编程逻辑设备(EPLD)、电可擦除可编程逻辑设备(EEPLD)、逻辑单元阵列(LCA)、复杂可编程逻辑设备(CPLD) 和现场可编程门阵列(FPGA),仅举几例。其中将协处理器100实现为FPGA的配置在本文中作为示例描述。
图2示出了设备100(例如,FPGA管芯)如何可以包括二维功能块阵列,包括逻辑阵列块(LAB)110和其他功能块,例如随机存取存储器(RAM) 块130和数字信号处理(DSP)块120。诸如LAB 110之类的功能块可以包括较小的可编程区域(例如,逻辑元件、可配置逻辑块或自适应逻辑模块),其接收输入信号并且对输入信号执行定制功能以产生输出信号。LAB 110 还可以被分组成更大的可编程区域,其有时称为逻辑扇区并且由对应的逻辑扇区管理器个别地管理和配置。将设备100上的可编程逻辑资源分组成逻辑扇区、逻辑阵列块、逻辑元件或自适应逻辑模块仅仅是说明性的。通常,设备100可以包括任何合适大小和类型的功能逻辑块,其可以根据任何合适的逻辑资源层级来组织。
可编程逻辑设备100可以包含可编程存储器元件。存储器元件可以使用输入-输出元件(IOE)102加载有配置数据(也称为编程数据或配置比特流)。一旦被加载,存储器元件均提供对应的静态控制信号,其控制相关联功能块(例如,LAB 110、DSP 120、RAM 130或输入输出元件102)的操作。
在典型场景中,加载的存储器元件的输出被施加到功能块中的金属氧化物半导体晶体管的栅极,以接通或关断某些晶体管,从而配置包括路由路径的功能块中的逻辑。可以以这种方式控制的可编程逻辑电路元件包括复用器的部分(例如,用于在互连电路中形成路由路径的复用器)、查找表、逻辑阵列、与(AND)、或(OR)、与非(NAND)以及或非(NOR)逻辑门、传递门等。
存储器元件可以使用任何合适的易失性和/或非易失性存储器结构,例如随机存取存储器(RAM)单元、熔丝、反熔丝、可编程只读存储器存储器单元、掩模编程和激光编程的结构、这些结构的组合等。因为存储器元件在编程期间加载有配置数据,因此存储器元件有时被称为配置存储器、配置随机存取存储器(CRAM)、或可编程存储器元件。可编程逻辑设备(PLD) 100可以被配置为实现定制电路设计。例如,配置RAM可以被编程为使得 LAB 110、DSP 120和RAM 130、可编程互连电路(即,垂直通道140和水平通道150)、以及输入-输出元件102形成电路设计实施方式。
此外,可编程逻辑设备可以具有输入-输出元件(IOE)102,以用于驱动设备100的信号并接收来自其他设备的信号。输入-输出元件102可以包括并行输入-输出电路、串行数据收发器电路、差分接收器和发射器电路、或用于将一个集成电路连接到另一集成电路的其他电路。
设备100还可以包括采用垂直路由通道140(即,沿PLD 100的垂直轴形成的互连)和水平路由通道150(即,沿PLD 100的水平轴形成的互连) 形式的可编程互连电路,每个路由通道包括至少一个轨道以路由至少一根线。如果被期望,互连电路可以包括流水线元件,并且可以在操作期间访问存储在这些流水线元件中的内容。例如,编程电路可以提供对流水线元件的读取和写入访问。
注意,除了图1中描绘的互连电路的拓扑之外的其他路由拓扑也旨在被包括在本发明的范围内。例如,路由拓扑可以包括沿对角线行进的线或者沿着它们范围的不同部分水平和垂直行进的线以及在三维集成电路的情况下垂直于设备平面的线,并且线的驱动程序(driver)可以位于与导线的一端不同的点处。路由拓扑可以包括跨越实质上所有PLD100的全局线、诸如跨越PLD 100的部分的线之类的部分全局线、特定长度的交错线、较小的局部线、或任何其它合适的互连资源布置。
通常,设备100上的可编程逻辑(例如,LAB 110和其他可配置逻辑组件)和可编程路由电路(例如,垂直路由通道140和水平路由通道150) 的组合可以称为“软逻辑”。诸如可编程设备100上的软逻辑190之类的软逻辑可以被配置为实现一个或多个硬件(HW)加速器,例如HW加速单元 192,以帮助加速主处理器12的性能。这样配置,协处理器100有时被称为硬件加速器。作为示例,协处理器100上的HW加速单元192可以用于加速各种功能,其可以包括但不限于:加密/解密、压缩/解压缩、快速傅立叶变换、视频编码/解码、卷积神经网络(CNN)、防火墙、入侵检测、数据库搜索、域名服务(DNS)、负载平衡、缓存网络地址转换(NAT)、以及其他合适的网络分组处理应用,仅举几例。
图3是采用硬件加速资源的系统10的图。如图3所示,主CPU 12经由路径301耦合到主存储器双列直插式存储器模块(DIMM)组件14。具体地,CPU 12可以包括用于使用诸如DDR类型3(DDR3)或DDR类型4 (DDR4)之类双倍数据速率(DDR)接口与主存储器DIMM 14接合的存储器控制器302。主CPU 12还耦合到诸如大容量存储设备306之类的外部大容量存储设备。CPU 12可以包括(例如)以太网控制器304,其用于与大容量存储装置306接合。通常,控制器304也可能支持通用串行总线(USB) 接口、串行AT附件(SATA)接口或其他传统计算机总线接口标准。
CPU 12还可以经由路径309耦合到加速FPGA设备100。FPGA设备 100可以被配置为:为主CPU 12提供加速硬件资源。CPU 12可以包括(例如)外围组件快速互连(PCIe)控制器308或者诸如由英特尔公司开发的 UltraPath互连(UPI)控制器308之类的一致点对点互连控制器。FPGA 100 还可以包括用于与控制器308接合的对应控制器310(例如,PCIe控制器、 UPI控制器等)。
FPGA 100还可以包括外部输入-输出(IO)块,例如外部IO块312。外部IO块312可以支持宽并行接口,例如外部存储器接口(EMIF)或更通用的接口,例如GPIO(通用输入-输出)或LVDS(低电压差分信令)接口。由块312支持的外部存储器接口可以包括双倍数据速率(DDR)接口,例如DDR类型3(DDR3)、低功率DDR3(LPDDR3)、DDR类型4(DDR4)、低功率DDR4(LPDDR4)、DDR类型5(DDR5)、图形DDRx、四倍数据速率(QDR)、开放式NAND闪存接口(ONFI)或可以由FPGA 100访问的用于与存储器314通信的其他合适接口。因此,块312可以包括存储器控制器,其用于支持各种各样的外部存储器协议。
传统冯·诺依曼计算机架构中的计算通常涉及将来自存储器的数据和程序代码引入到CPU寄存器(例如,图1中的寄存器24)中,并且然后将结果存储回到存储器中。在图3的示例中,考虑其中CPU 12需要访问大容量存储设备306上的加密数据的场景。在这种情况下,CPU 12将需要从大容量存储器306上的期望的位置取回加密数据并将所取回的数据路由到加速器FGPA 100以用于解密。然后将解密数据存储在存储器314上(参见由虚线路径350指示的数据流)。为了使CPU 12访问该数据,解密数据然后将必须通过CPU 12路由并存储在主存储器DIMM 14上(参见由虚线路径 352指示的数据流)。此时,CPU 12最终可以经由DDR互连301访问解密数据。
如果在CPU 12上本地完成的计算时间相对大,则以这种方式编组去往和来自存储器的数据的功率和成本可能是正当的。然而,许多新兴应用(例如,数据分析、机器学习、内存数据库和非结构化数据库)仅涉及相对较小的计算操作,并且因此不符合这些能量权衡。
如图3的示例所示,跨PCIe/UPI接口309的数据传输可能花费数百毫秒,而跨DDR接口301的数据传输可能仅花费数百纳秒。由于接口301的传输速度比接口309的传输速度快得多,因此路径301在本文中有时称为“低延时”路径,而路径309在本文中有时称为“高延时”路径。例如,如果高延时路径309花费500ms并且低延时路径花费300ns,则高延时路径309将比低延时路径301慢1667倍(例如,500m/300n=5000)仅仅是说明性的。通常,跨高延时路径309的延时可以是跨低延时路径301的延时的至少10倍、至少20倍、20-100倍、100-1000倍、1000-5000倍或大于 5000倍。
根据一个实施例,提供了一种改进的系统,其中,加速电路形成为 DIMM卡的部分,以利用将主CPU连接到DIMM卡的低延时路径。通过扩展传统的冯·诺依曼架构以在主存储器路径中实现小型计算(附加于简单地获取数据)引起每单位计算所花费的能量方面的显著改善。
图4是说明性系统的图,在所述说明性系统中主CPU 12耦合到可编程加速器DIMM卡410。CPU 12仍然可以经由PCIe/UPI链路309耦合到加速协处理器100,但是诸如FPGA管芯之类的附加可编程加速资源可以集成在存储器DIMM 410内。CPU 12可以安装在电路板400(例如,印刷电路板或母板)上的CPU插口内。加速器FPGA 100可以安装在电路板400上的PCIe插槽或另一CPU插槽内。加速器DIMM 410可以安装在电路板400 上的传统存储器DIMM插槽402内。如其名称所暗示的,加速器DIMM卡 410可以具有传统的DIMM外形规格(formfactor)。以这种方式配置,母板设计无需改变。
作为示例,主CPU 12使用片上存储器控制器302(有时称为“主”存储器控制器)以使用基于事务的协议(例如,事务DDR(DDR-T)协议) 与加速器DIMM卡410通信。与期望结果以锁定步骤方式在有限的时间量内返回到CPU的典型的DDRx协议形成对比,DDR-T协议可能更容易实现为可编程加速器设备的部分,并且要求不那么严格返回策略(其中,可以以更开放的方式处理事务)。其中可编程加速器设备使用DDR-T协议与CPU 通信的这个示例仅仅是说明性的。通常,CPU可以使用任何非易失性存储器协议(例如,任何NVDIMM协议)与可编程加速器设备通信。从高级别,主存储器控制器302向加速器DIMM 310发出请求并等待对应的响应。
加速器DIMM卡410的细节在图5中示出。如图5所示,加速器DIMM 410可以包括耦合到多个存储器设备514的另一可编程设备100'(例如, FPGA)。设备100'可以类似于结合图2示出和描述的可编程集成电路的类型。特别地,设备100'还可以提供有存储器控制器502,例如请求解码器/ 路由器504之类的请求解码/路由电路、控制电路506、以及一个或多个硬件加速单元508。
设备100'内的存储器控制器302对从主CPU上的主存储器控制器14 接收的请求进行响应,因此在本文中有时称为“从存储器控制器”。从存储器控制器502可以被配置为根据预定的通信协议(例如,DDR-T协议)来解释所接收的请求,并将请求转换为解码器504可以理解的格式。例如,从存储器控制器502(有时称为DDR从控制器)可以用于将信号转换成分组。其中DDR从设备502支持DDR-T协议的这个示例仅仅是说明性的。通常,从存储器控制器502可以被配置为支持任何基于事务的接口协议,其他DDR技术,例如DDRx、LPDDRx和GDDRx、QDR技术、NVDIMM 协议、和/或其他主存储器IO标准。
请求解码器504(有时也称为请求路由器)被配置为从从存储器控制器 502接收请求分组。通常,可以存在可以在解码器504处接收的至少两种不同类型的请求分组:(1)读取请求和(2)写入请求。
响应于接收到读取请求,解码器504对读取请求进行解码,并且检查所解码的读取请求中的地址信息,以确定是否将读取请求路由到控制电路 506、到HW加速单元508中选择的一个、或者直接到管芯100'内的某个其他组件或到存储器514(例如,经由旁路路径516)。对于需要响应的读取请求,解码器504还将跟踪每个发出的读取请求,以确保将诸如读取数据之类的对应响应发送回到主CPU上的主存储器控制器。
响应于接收到写入请求,解码器504解码写入请求并检查解码的写入请求中的地址信息,以确定是否将读取请求路由到控制电路506,到HW加速单元508中选定的一个,或者直接到管芯100'内的一些其他组件或到存储器514(例如,通过旁路路径516)。对于写入,解码器504将转发写入请求并跟踪其进度直到完成(即,解码器504将针对写入完成进行监视)。当写入完成时,对应的响应可以或可以不被发送回到主CPU上的主存储器控制器。
控制电路506(有时称为控制基础设施)可以被配置为协调HW加速单元508如何处理数据、监视与可编程设备相关联的错误、为任何检测到的错误提供服务、以及监视状态信息(作为示例)。特别地,控制基础设施 506可以在硬件加速资源的入口和出口二者处引导数据的流和处理。正如图 1中已经提到的,硬件加速单元508可以是FPGA 100'上的可编程软逻辑,所述软逻辑中的每一个可以个别地配置以支持任何期望的用户功能。可以由这些硬件加速资源实现的示例性功能包括定制的压缩/解压缩、加密/解密、编码/解码、匹配功能、其他非标准算法、和/或可以应用于进入和/或退出 FPGA设备100'的数据的其他合适的计算功能。
加速器DIMM卡410上的可编程设备100'可以包括用于与任何类型的存储器设备514接合的输入-输出(I/O)组件510。可以使用IO块510来支持的外部存储器接口的类型可以包括:非易失性存储器接口,例如由英特尔公司开发的3D XPoint技术和其他非易失性DIMM技术;易失性存储器接口,例如双倍数据速率(DDRx)接口、低功耗DDR(LPDDRx)接口、四倍数据速率(QDR)接口、开放式NAND闪存接口(ONFI)、以及JEDEC 的高带宽存储器(HBM)堆叠DRAM接口;基于PCIe的存储器接口;基于以太网的存储器接口;以及/或者用于与外部存储器通信的其他合适的接口。如果期望,则FGPA100'还可以包括内部随机存取存储器块,其有时称为嵌入式静态随机存取存储器(eSRAM)块或“批量(bulk)”RAM块。与核心存储器块(例如,图1中的RAM块130)相比,这些批量RAM块可以大得多并且密集得多。
图6是用于操作图4和5中所示类型的可编程加速器DIMM卡410的说明性步骤的流程图。在步骤600处,DIMM加速器卡410可以从CPU的主存储器控制器302接收请求(例如,读取请求或写入请求)。
在步骤602处,DIMM 410上的从存储器控制器502可以用于将所接收的请求转换为可以由相关联的请求解码器/路由器504理解的合适格式。例如,DDR从控制器502可以将所接收的信号组织成分组格式。
在步骤604处,请求解码器504可以用于将从从控制器502接收的所转换的请求进行解码,并将所解码的读取/写入请求路由到控制基础设施 506、到FPGA 100'上的硬件加速资源(例如,到一个或多个HW加速单元 508)、或经由可编程输入-输出电路510直接路由到外部存储器514或其他外围组件。
在步骤606(其可以可选地与步骤502和504同时发生)处,控制电路506可以用于协调在可编程设备100'内如何处理数据。例如,控制电路506 可以引导入口和/或出口数据流二者。
如果所发出的请求需要加速,则在步骤608处可以使用硬件加速单元 508中的一个或多个硬件加速单元508来执行一个或多个定制的加速功能 (例如,压缩/解压缩、加密/解密、编码/解码、匹配功能、其他合适的计算功能等)。
在步骤610处,经处理的数据然后可以存储到主存储器组件中,所述主存储器组件例如加速DIMM 410内的存储器设备514。存储器设备514 可以是任何类型的易失性存储器(例如,DDRx存储器、LPDDRx存储器、嵌入式SRAM、JEDEC的高带宽DRAM等)、非易失性存储器(例如,英特尔的3D XPoint存储器、闪速存储器、相变存储器、电阻随机存取存储器等)、以及可以被包括在管芯100'的内部或外部的加速器DIMM 410内的其他合适类型的存储器。在步骤612处,可以可选地将读取数据发送回到主 CPU。
以这种方式配置和操作,在DIMM卡/插槽中包括加速电路改善了相对于存储器通信延时具有低计算时间的应用的能量效率。图7是示出可以由图4的系统执行的各种任务的计算时间的图。例如,考虑这样的场景:其中,主CPU 12需要计算当在主CPU本身上本地执行时将花费持续时间Tx 的任务(参见图7中的部分702)。
如果主CPU 12将任务卸载到经由高延时连接309(例如,PCIe、UPI 或其他传统接口)连接的加速器FPGA100,则完成任务所花费的总时间量将等于用于遍历高延时路径309的往返传输延迟Ty加上FPGA 100上的加速资源执行卸载的任务所花费的加速计算延迟Ta。注意,即使加速计算延迟Ta可能小于本机CPU计算延迟Tx,当Tx不比Ty大得多或甚至小于Ty时,(Ta+Ty)的组合总时间可能超过Tx(参见图7中的部分704)。
在这种场景中,主CPU 12可以代替地将任务卸载到经由低延时连接 301(例如,诸如DDRx、LPDDRx或DDR-T接口之类的主存储器接口) 连接的加速器DIMM卡410。如果是这样,完成任务将花费的总时间量将等于遍历低延时路径301的往返传输延迟Tz加上FPGA 100'上的加速资源执行卸载的任务所花费的加速计算延迟Ta。这里,由于DIMM卡传输延迟 Tz实质上小于PCIe传输延迟Ty,因此(Tz+Ty)的组合总时间实际上可以小于本机CPU计算延迟Tx(参见图7中的部分706)。在这种情况下,主CPU将任务卸载到加速DIMM卡将是有意义的。如上面结合图4已经描述的,Tz通常比Ty小至少若干数量级(例如,Tz可以比Ty小至少10倍、100倍、1000倍、1万倍、10万倍、甚至数百万倍)。
此外,在主存储器路径中添加加速资源可以向系统提供诸如内联压缩和加密能力之类的附加特征。在DIMM卡中使用可编程设备100'还可以帮助支持更广泛的存储器技术,否则所述存储器技术不被主CPU本地地且直接地支持。也不需要更新主CPU的设计(即,在主CPU上实现的存储器接口可以保持恒定并且独立于在加速器DIMM卡410上实现的任何存储器技术)。
使用加速DIMM卡可以在许多应用中提供技术改进。一个示例用于存储器计算应用。例如,考虑这样的场景:其中,主CPU需要跨给定的32 字节字段的一百万条记录找到最小值。为了执行该任务,主CPU需要获取并分析3200万字节的数据。用FPGA加速卡,主CPU可以向位于DDR DIMM插口中的加速卡发送指令。加速卡中的FPGA可以编程为执行此数据密集型任务,并在完成时将最终结果返回到CPU,所述最终结果将只是若干字节的数据。
另一示例涉及数据库加速应用。考虑SAP HANA数据库架构的增量合并应用。当记录被添加或删除时,数据库需要维护某个更改列表。由于存在一系列需要被服务的查询,因此将不更新主数据库。数据库可以被存储为两个副本(例如,黄金数据库和参考数据库)。黄金数据库可以用于为传入请求提供服务以及维护增量合并更改列表。可以用增量合并更改列表来更新参考数据库。之后,可以更改黄金数据库以匹配参考数据库。从此时起,黄金数据库将为新请求提供服务,同时将用更改列表来更新参考数据库。这样的操作可以卸载到加速DIMM卡并且从主CPU隐藏,以提供增强的可服务性。
另一示例涉及数据分析加速应用。考虑聚类算法,例如K-均值聚类算法。如果主CPU需要确定给定数据点属于多个集群中的哪个集群,则可以使用FPGA加速DIMM卡来运行聚类算法并将得到的集群返回到主CPU。
另一示例涉及存储扩展应用。考虑这样的场景:其中,仅具有一个DIMM插槽的主CPU只能容纳X-GB的存储。用DIMM FPGA加速卡,可以容纳多个X-GB实例,这将有效地增加主CPU的可访问存储器的量(参见例如图5,其中,加速器DIMM 410可以包括多个存储器设备514)。
又一示例涉及高频交易应用。DIMM加速卡上的FPGA 100'包括IO组件,以用于连接以太网、PCIe和其他传统IO端口。在图4的示例中,加速 DIMM 410可以经由连接450直接连接到另一加速器FPGA 100,以完全绕过CPU。连接450可能是PCIe链路(作为示例)。可以使用以太网连接来获取市场数据,并且股票市场中的变化可以被分析并被存储在与FPGA 100'相关联的存储器中。当满足条件触发器时,加速器DIMM可以通知主CPU 已经发生了某个事件。还可以支持直接存储器访问(DMA)特征,其中,可以独立于主CPU来访问DIMM卡450上的主存储器,这可以帮助正确地利用加速DIMM卡中的主存储器的扩展存储能力,同时绕过整个存储器层级并且防止任何不期望的污染/垃圾。
如上所述,加速DIMM卡可以被编程为提供各种各样的按需服务。当构建CPU时,某些加密和压缩标准被部署,所述加密和压缩标准不是可选的。用加速FPGA DIMM卡,可以动态重新编程或重新配置DIMM上的 FGPA 100',以支持任何类型的加密、压缩、编码或其他非标准算法。在所有这些示例中,加速DIMM卡410的使用将减少功耗、改善计算机性能并提高整个系统的操作效率。加速器FPGA DIMM卡410还可以释放PCIe/UPI 端口以连接更多CPU,这可以进一步增加数据中心中的CPU密度。
尽管以特定顺序描述了操作方法,但是应当理解,可以在所描述的操作之间执行其他操作,可以调整所描述的操作以使得它们在稍微不同的时间发生,或者所描述的操作可以分布在系统中,只要以期望的方式执行对覆盖操作的处理,所述系统就允许以与处理相关联的各种间隔发生处理操作。
示例:
以下示例涉及另外的实施例。
示例1是一种卡,包括:可编程集成电路,其具有被配置为充当硬件加速资源的软逻辑,其中,所述卡具有双列直插式存储器模块(DIMM)外形规格,其中,所述可编程集成电路接收来自主中央处理单元(CPU)的请求,并且其中,所接收的请求中的至少一些被路由到所述硬件加速资源以进行加速;以及存储器,其耦合到所述可编程集成电路。
示例2是示例1的卡,其中,所述可编程集成电路经由主存储器接口耦合到所述主CPU。
示例3是示例2的卡,其中,所述主存储器接口包括双倍数据速率(DDR) 接口。
示例4是示例3的卡,其中,所述主存储器接口包括事务DDR(DDR-T) 接口或非易失性双列直插式存储器模块(NVDIMM)接口。
示例5是示例2-5中任一示例的卡,其中,所述主CPU经由处理器接口耦合到另一处理器,并且其中,通过所述主存储器接口的数据传输快于通过所述处理器接口的数据传输。
示例6是示例5的卡,其中,通过所述主存储器接口的所述数据传输比通过所述处理器接口的所述数据传输快至少一千倍。
示例7是示例1-6中任一示例的卡,其中,所述存储器包括非易失性存储器和易失性存储器中的至少一个。
示例8是示例1-7中任一示例的卡,其中,所述可编程集成电路还包括:存储器控制器,其被配置为转换从所述主CPU接收的所述请求;以及请求解码器,其被配置为对所转换的请求进行解码并且将所解码的请求路由到所述卡内的合适的目的地。
示例9是示例8的卡,其中,可编程集成电路还包括:控制电路,其被配置为协调进出所述可编程集成电路的数据流。
示例10是示例9的卡,其中,所述可编程集成电路还包括:输入-输出组件,其被配置为与形成在所述卡上或所述卡外部的不同类型的外围设备接合。
示例11是一种操作计算机卡的方法,包括:用所述计算机卡来接收来自主中央处理单元(CPU)的请求,其中,所述计算机卡具有双列直插式存储器模块(DIMM)外形规格;使用所述计算机卡中的硬件加速资源来处理所接收的请求中的至少一些并且生成对应的经处理的数据;以及将所述经处理的数据存储到所述计算机卡中的存储器中。
示例12是示例11的方法,还包括:使用所述计算机卡上的存储器控制器来将所接收的请求转换成分组。
示例13是示例12的方法,还包括:用所述计算机卡上的解码器来对从所述存储器控制器接收的所转换的请求进行解码并且将所解码的请求路由到所述计算机卡中的合适位置。
示例14是示例11-13中任一示例的方法,其中,使用所述计算机卡中的所述硬件加速资源来处理所接收的请求中的至少一些包括使用所述硬件加速资源来执行从由以下各项构成的组中选择的定制功能:压缩/解压缩、加密/解密、编码/解码、以及匹配。
示例15是示例12-13中任一示例的方法,还包括:用所述计算机卡上的所述存储器控制器来将响应发送回到所述主CPU。
示例16是一种系统,包括:主处理器,其包括主存储器控制器;以及加速双列直插式存储器模块(DIMM)卡,其经由主存储器接口连接到所述主处理器,其中,所述加速DIMM卡包括用于与所述主处理器的所述主存储器控制器通信的从存储器控制器,其中,所述主处理器能够操作以将任务卸载到所述加速DIMM卡上以释放所述主处理器上的计算能力,并且其中,所述加速DIMM卡包括用于存储与所卸载的任务相关联的数据的存储器。
示例17是示例16的系统,还包括:协处理器,其经由具有第一延时的附加接口连接到所述主处理器,其中,所述主存储器接口展现出比所述第一延时小至少十倍的第二延时。
示例18是示例17的系统,其中,所述加速DIMM卡经由旁路路径直接连接到所述协处理器。
示例19是示例16-18中任一示例的系统,其中,所述主存储器接口包括基于双倍数据速率(DDR)的接口。
示例20是示例19的系统,其中,所述加速DIMM卡上的所述存储器包括非易失性存储器。
例如,还可以关于本文描述的方法或过程来实现上述装置的所有可选特征。前述内容仅仅是对本公开内容的原理的说明,并且本领域技术人员可以对其进行各种修改。前述实施例可以被个别地实现或以任何组合实现。
Claims (25)
1.一种卡,包括:
可编程集成电路,其具有被配置为充当硬件加速资源的软逻辑,其中,所述卡具有双列直插式存储器模块(DIMM)外形规格,其中,所述可编程集成电路接收来自主中央处理单元(CPU)的请求,并且其中,所接收的请求中的至少一些被路由到所述硬件加速资源以进行加速;以及
存储器,其耦合到所述可编程集成电路。
2.如权利要求1所述的卡,其中,所述可编程集成电路经由主存储器接口耦合到所述主CPU。
3.如权利要求2所述的卡,其中,所述主存储器接口包括双倍数据速率(DDR)接口。
4.如权利要求3所述的卡,其中,所述主存储器接口包括事务DDR(DDR-T)接口或非易失性双列直插式存储器模块(NVDIMM)接口。
5.如权利要求2所述的卡,其中,所述主CPU经由处理器接口耦合到另一处理器,并且其中,通过所述主存储器接口的数据传输快于通过所述处理器接口的数据传输。
6.如权利要求5所述的卡,其中,通过所述主存储器接口的所述数据传输比通过所述处理器接口的所述数据传输快至少一千倍。
7.如权利要求1所述的卡,其中,所述存储器包括非易失性存储器和易失性存储器中的至少一个。
8.如权利要求1-7中任一项所述的卡,其中,所述可编程集成电路还包括:
存储器控制器,其被配置为转换从所述主CPU接收的所述请求;以及
请求解码器,其被配置为对所转换的请求进行解码并且将所解码的请求路由到所述卡内的合适的目的地。
9.如权利要求8所述的卡,其中,所述可编程集成电路还包括:
控制电路,其被配置为协调进出所述可编程集成电路的数据流。
10.如权利要求9所述的卡,其中,所述可编程集成电路还包括:
输入-输出组件,其被配置为与形成在所述卡上或所述卡外部的不同类型的外围设备接合。
11.一种操作计算机卡的方法,包括:
用所述计算机卡来接收来自主中央处理单元(CPU)的请求,其中,所述计算机卡具有双列直插式存储器模块(DIMM)外形规格;
使用所述计算机卡中的硬件加速资源来处理所接收的请求中的至少一些并且生成对应的经处理的数据;以及
将所述经处理的数据存储到所述计算机卡中的存储器中。
12.如权利要求11所述的方法,还包括:
用所述计算机卡上的存储器控制器来将所接收的请求转换成分组。
13.如权利要求12所述的方法,还包括:
用所述计算机卡上的解码器来对从所述存储器控制器接收的所转换的请求进行解码并且将所解码的请求路由到所述计算机卡中的合适位置。
14.如权利要求11-13中任一项所述的方法,其中,使用所述计算机卡中的所述硬件加速资源来处理所接收的请求中的至少一些包括使用所述硬件加速资源来执行从由以下各项构成的组中选择的定制功能:压缩/解压缩、加密/解密、编码/解码、以及匹配。
15.如权利要求12所述的方法,还包括:
用所述计算机卡上的所述存储器控制器来将响应发送回到所述主CPU。
16.一种系统,包括:
主处理器,其包括主存储器控制器;以及
加速双列直插式存储器模块(DIMM)卡,其经由主存储器接口连接到所述主处理器,其中,所述加速DIMM卡包括用于与所述主处理器的所述主存储器控制器通信的从存储器控制器,其中,所述主处理器能够操作以将任务卸载到所述加速DIMM卡上以释放所述主处理器上的计算能力,并且其中,所述加速DIMM卡包括用于存储与所卸载的任务相关联的数据的存储器。
17.如权利要求16所述的系统,还包括:
协处理器,其经由具有第一延时的附加接口连接到所述主处理器,其中,所述主存储器接口展现出比所述第一延时小至少十倍的第二延时。
18.如权利要求17所述的系统,其中,所述加速DIMM卡经由旁路路径直接连接到所述协处理器。
19.如权利要求16-18中任一项所述的系统,其中,所述主存储器接口包括基于双倍数据速率(DDR)的接口。
20.如权利要求19所述的系统,其中,所述加速DIMM卡上的所述存储器包括非易失性存储器。
21.一种计算机卡,包括:
用于接收来自主中央处理单元(CPU)的请求的单元,其中,所述计算机卡具有双列直插式存储器模块(DIMM)外形规格;
用于处理所接收的请求中的至少一些并且生成对应的经处理的数据的单元;以及
用于将所述经处理的数据存储在所述计算机卡中的存储器中的单元。
22.如权利要求21所述的计算机卡,还包括:
用于将所接收的请求转换成分组的单元。
23.如权利要求22所述的计算机卡,还包括:
用于对所转换的请求进行解码并且将所解码的请求路由到所述计算机卡中的合适位置的单元。
24.如权利要求21-23中任一项所述的计算机卡,其中,用于处理所接收的请求中的至少一些的所述单元包括用于执行从由以下各项构成的组中选择的定制功能的单元:压缩/解压缩、加密/解密、编码/解码、以及匹配。
25.如权利要求22所述的计算机卡,还包括:
用于将响应发送回到所述主CPU的单元。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862719911P | 2018-08-20 | 2018-08-20 | |
US62/719,911 | 2018-08-20 | ||
US16/211,868 US10649927B2 (en) | 2018-08-20 | 2018-12-06 | Dual in-line memory module (DIMM) programmable accelerator card |
US16/211,868 | 2018-12-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110851378A true CN110851378A (zh) | 2020-02-28 |
Family
ID=65993250
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910649573.XA Pending CN110851378A (zh) | 2018-08-20 | 2019-07-18 | 双列直插式存储器模块(dimm)可编程加速卡 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10649927B2 (zh) |
CN (1) | CN110851378A (zh) |
DE (1) | DE102019122363A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112269656A (zh) * | 2020-10-16 | 2021-01-26 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于多核处理器的应用配置方法、装置和系统 |
CN113535745A (zh) * | 2021-08-09 | 2021-10-22 | 威讯柏睿数据科技(北京)有限公司 | 一种层次化数据库操作加速系统和方法 |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10074417B2 (en) | 2014-11-20 | 2018-09-11 | Rambus Inc. | Memory systems and methods for improved power management |
CN106951181A (zh) * | 2017-02-21 | 2017-07-14 | 深圳大普微电子科技有限公司 | 一种数据存储系统的控制装置 |
WO2020000136A1 (en) | 2018-06-25 | 2020-01-02 | Alibaba Group Holding Limited | System and method for managing resources of a storage device and quantifying the cost of i/o requests |
US11061735B2 (en) | 2019-01-02 | 2021-07-13 | Alibaba Group Holding Limited | System and method for offloading computation to storage nodes in distributed system |
US20200387330A1 (en) * | 2019-06-10 | 2020-12-10 | Ngd Systems, Inc. | Heterogeneous in-storage computation |
US11526302B2 (en) * | 2019-06-20 | 2022-12-13 | AI Plus, Inc. | Memory module and computing device containing the memory module |
US11256314B2 (en) * | 2019-08-09 | 2022-02-22 | Dell Products L.P. | System and method for power management of field-programmable gate arrays and load balancing of personality bitstreams from a baseboard management controller |
US11442885B2 (en) | 2019-08-09 | 2022-09-13 | Dell Products L.P. | System and method to change field-programmable gate array personality from a baseboard management controller |
CN110430444B (zh) * | 2019-08-12 | 2022-06-07 | 中科寒武纪科技股份有限公司 | 一种视频流处理方法及系统 |
US11055220B2 (en) | 2019-08-19 | 2021-07-06 | Truememorytechnology, LLC | Hybrid memory systems with cache management |
US11526441B2 (en) | 2019-08-19 | 2022-12-13 | Truememory Technology, LLC | Hybrid memory systems with cache management |
CN110719267A (zh) * | 2019-09-25 | 2020-01-21 | 山东三未信安信息科技有限公司 | 一种服务器板卡及其数据处理方法 |
US11617282B2 (en) | 2019-10-01 | 2023-03-28 | Alibaba Group Holding Limited | System and method for reshaping power budget of cabinet to facilitate improved deployment density of servers |
US20210173784A1 (en) * | 2019-12-06 | 2021-06-10 | Alibaba Group Holding Limited | Memory control method and system |
US11232049B2 (en) | 2019-12-13 | 2022-01-25 | Micron Technology, Inc. | Memory module with computation capability |
US20200125495A1 (en) * | 2019-12-19 | 2020-04-23 | Intel Corporation | Multi-level memory with improved memory side cache implementation |
US10910048B1 (en) | 2020-01-16 | 2021-02-02 | Micron Technology, Inc. | Extended memory communication |
US20230034178A1 (en) * | 2020-02-10 | 2023-02-02 | Telefonaktiebolaget Lm Ericsson (Publ) | Data communication between a host computer and an fpga |
US11461262B2 (en) * | 2020-05-13 | 2022-10-04 | Alibaba Group Holding Limited | Method and system for facilitating a converged computation and storage node in a distributed storage system |
US11556277B2 (en) | 2020-05-19 | 2023-01-17 | Alibaba Group Holding Limited | System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification |
US11507499B2 (en) | 2020-05-19 | 2022-11-22 | Alibaba Group Holding Limited | System and method for facilitating mitigation of read/write amplification in data compression |
US12056382B2 (en) | 2020-05-26 | 2024-08-06 | Qualcomm Incorporated | Inference in memory |
US20220051089A1 (en) * | 2020-08-17 | 2022-02-17 | Google Llc | Neural Network Accelerator in DIMM Form Factor |
US11487465B2 (en) | 2020-12-11 | 2022-11-01 | Alibaba Group Holding Limited | Method and system for a local storage engine collaborating with a solid state drive controller |
KR20220091794A (ko) | 2020-12-24 | 2022-07-01 | 삼성전자주식회사 | 반도체 장치 및 이를 포함하는 전자 장치 |
US11734115B2 (en) | 2020-12-28 | 2023-08-22 | Alibaba Group Holding Limited | Method and system for facilitating write latency reduction in a queue depth of one scenario |
KR20220098947A (ko) | 2021-01-05 | 2022-07-12 | 삼성전자주식회사 | 반도체 장치 및 이를 포함하는 전자 장치 |
KR20220099347A (ko) | 2021-01-06 | 2022-07-13 | 삼성전자주식회사 | 메모리 장치를 제어하는 가속기, 이를 포함하는 컴퓨팅 시스템 및 가속기의 동작방법 |
US11726699B2 (en) | 2021-03-30 | 2023-08-15 | Alibaba Singapore Holding Private Limited | Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification |
CN112887093B (zh) * | 2021-03-30 | 2022-09-30 | 矩阵元技术(深圳)有限公司 | 用于实现密码算法的硬件加速系统和方法 |
CN115309694A (zh) * | 2021-05-07 | 2022-11-08 | 脸萌有限公司 | 片上集成电路、数据处理装置和方法 |
CN115827211A (zh) * | 2021-09-17 | 2023-03-21 | 华为技术有限公司 | 近内存计算加速器、双列直插式内存模块以及计算设备 |
US12112163B2 (en) * | 2021-12-03 | 2024-10-08 | Taiwan Semiconductor Manufacturing Company, Ltd. | Memory interface |
US11989142B2 (en) | 2021-12-10 | 2024-05-21 | Samsung Electronics Co., Ltd. | Efficient and concurrent model execution |
US11922068B2 (en) * | 2021-12-10 | 2024-03-05 | Samsung Electronics Co., Ltd. | Near memory processing (NMP) dual in-line memory module (DIMM) |
CN117076354A (zh) * | 2022-05-10 | 2023-11-17 | 华为云计算技术有限公司 | 一种硬件管理卡及相关产品 |
US12057947B1 (en) * | 2023-02-28 | 2024-08-06 | Arm Limited | Application of error detecting codes in a protocol-translating interconnect circuit |
CN116561051B (zh) * | 2023-04-10 | 2024-02-02 | 中科驭数(北京)科技有限公司 | 一种硬件加速卡和异构计算系统 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7506297B2 (en) | 2004-06-15 | 2009-03-17 | University Of North Carolina At Charlotte | Methodology for scheduling, partitioning and mapping computational tasks onto scalable, high performance, hybrid FPGA networks |
US9015399B2 (en) | 2007-08-20 | 2015-04-21 | Convey Computer | Multiple data channel memory module architecture |
EP2476039B1 (en) | 2009-09-09 | 2016-10-26 | SanDisk Technologies LLC | Apparatus, system, and method for power reduction management in a storage device |
US10803066B2 (en) | 2010-06-29 | 2020-10-13 | Teradata Us, Inc. | Methods and systems for hardware acceleration of database operations and queries for a versioned database based on multiple hardware accelerators |
WO2014113055A1 (en) * | 2013-01-17 | 2014-07-24 | Xockets IP, LLC | Offload processor modules for connection to system memory |
US9887008B2 (en) * | 2014-03-10 | 2018-02-06 | Futurewei Technologies, Inc. | DDR4-SSD dual-port DIMM device |
US9870333B1 (en) | 2014-09-12 | 2018-01-16 | Keysight Technologies, Inc. | Instrumentation chassis including integrated accelerator module |
US9619396B2 (en) * | 2015-03-27 | 2017-04-11 | Intel Corporation | Two level memory full line writes |
US10034407B2 (en) | 2016-07-22 | 2018-07-24 | Intel Corporation | Storage sled for a data center |
CN106970894A (zh) | 2017-04-20 | 2017-07-21 | 广东浪潮大数据研究有限公司 | 一种基于Arria10的FPGA异构加速卡 |
-
2018
- 2018-12-06 US US16/211,868 patent/US10649927B2/en active Active
-
2019
- 2019-07-18 CN CN201910649573.XA patent/CN110851378A/zh active Pending
- 2019-08-20 DE DE102019122363.6A patent/DE102019122363A1/de active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112269656A (zh) * | 2020-10-16 | 2021-01-26 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于多核处理器的应用配置方法、装置和系统 |
CN112269656B (zh) * | 2020-10-16 | 2022-12-02 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于多核处理器的应用配置方法、装置和系统 |
CN113535745A (zh) * | 2021-08-09 | 2021-10-22 | 威讯柏睿数据科技(北京)有限公司 | 一种层次化数据库操作加速系统和方法 |
CN113535745B (zh) * | 2021-08-09 | 2022-01-18 | 威讯柏睿数据科技(北京)有限公司 | 一种层次化数据库操作加速系统和方法 |
US12072893B2 (en) | 2021-08-09 | 2024-08-27 | Hefei Swaychip Information Technology Inc. | System and method for hierarchical database operation accelerator |
Also Published As
Publication number | Publication date |
---|---|
US10649927B2 (en) | 2020-05-12 |
DE102019122363A1 (de) | 2020-02-20 |
US20190108145A1 (en) | 2019-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10649927B2 (en) | Dual in-line memory module (DIMM) programmable accelerator card | |
US11860782B2 (en) | Compensating for DRAM activation penalties | |
US7793345B2 (en) | Method and apparatus for a configurable protection architecture for on-chip systems | |
CN112543925B (zh) | 用于使用专用低延迟链路的多个硬件加速器的统一地址空间 | |
US20190042611A1 (en) | Technologies for structured database query for finding unique element values | |
US20170220499A1 (en) | Massively parallel computer, accelerated computing clusters, and two-dimensional router and interconnection network for field programmable gate arrays, and applications | |
US10203878B2 (en) | Near memory accelerator | |
US10817440B2 (en) | Storage device including reconfigurable logic and method of operating the storage device | |
EP4009186A1 (en) | Network-on-chip data processing method and device | |
US20160188473A1 (en) | Compression of hardware cache coherent addresses | |
US11586578B1 (en) | Machine learning model updates to ML accelerators | |
EP2450799A1 (en) | Heterogeneous computing system comprising a switch/network adapter port interface utilizing load-reduced dual in-line memory modules (LR-DIMMS) incorporating isolation memory buffers | |
US11675326B2 (en) | Method and apparatus for remote field programmable gate array processing | |
CN110275840B (zh) | 在存储器接口上的分布式过程执行和文件系统 | |
US20180336034A1 (en) | Near memory computing architecture | |
CN115951978A (zh) | 用于分解式3D结构化SoC的原子性处置 | |
CN113094326A (zh) | 处理器控制的可编程逻辑器件修改 | |
US20170192689A1 (en) | System to reduce directory information storage | |
US8516179B2 (en) | Integrated circuit with coupled processing cores | |
US10873753B1 (en) | Hardware defined anything in a platform with swappable pods, message interface, sandboxes and memory superposition | |
US20240037037A1 (en) | Software Assisted Hardware Offloading Cache Using FPGA | |
US11853215B2 (en) | Memory controller, system including the same, and operating method of memory device for increasing a cache hit and reducing read latency using an integrated commad | |
US20240338330A1 (en) | Apparatus and method for supporting data input/output operation based on a data attribute in a shared memory device or a memory expander | |
US10452266B2 (en) | Directory storage control for commonly used patterns | |
CN112580285A (zh) | 嵌入式服务器子系统及其配置方法 |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20241008 Address after: California, USA Applicant after: Altera Corp. Country or region after: U.S.A. Address before: California, USA Applicant before: INTEL Corp. Country or region before: U.S.A. |