CN106814662B - 加速器控制器和控制加速器逻辑的方法 - Google Patents

加速器控制器和控制加速器逻辑的方法 Download PDF

Info

Publication number
CN106814662B
CN106814662B CN201610886006.2A CN201610886006A CN106814662B CN 106814662 B CN106814662 B CN 106814662B CN 201610886006 A CN201610886006 A CN 201610886006A CN 106814662 B CN106814662 B CN 106814662B
Authority
CN
China
Prior art keywords
dram
accelerator
logic
control device
virtual machine
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.)
Active
Application number
CN201610886006.2A
Other languages
English (en)
Other versions
CN106814662A (zh
Inventor
郑宏忠
张牧天
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN106814662A publication Critical patent/CN106814662A/zh
Application granted granted Critical
Publication of CN106814662B publication Critical patent/CN106814662B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0423Input/output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25257Microcontroller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Automation & Control Theory (AREA)
  • Logic Circuits (AREA)
  • Memory System (AREA)
  • Stored Programmes (AREA)

Abstract

公开加速器控制器和控制加速器逻辑的方法。加速器控制器包括检测器和加载器。检测器检测应用程序或者虚拟机的运行时间特征,并识别与应用程序或者虚拟机关联的对应于检测到的运行时间特征的加速器逻辑。加载器将识别的加速器逻辑加载到至少一个动态随机存取存储器(DRAM)阵列。至少一个DRAM阵列基于识别的加速器逻辑被选择性地重配置为像查找表(LUT)一样运行或者像DRAM存储阵列一样运行,并且至少一个DRAM阵列位于操作系统环境的高速缓存一致地址空间中。加速器逻辑可包括查找表(LUT)。

Description

加速器控制器和控制加速器逻辑的方法
本申请要求于2015年11月30日提交的第62/261,306号美国临时专利申请和2016年3月30日提交的第15/086,010号美国临时专利申请的优先权权益,所述申请的公开通过引用完整地包含于此。
技术领域
本公开涉及计算机技术。更具体地讲,本公开涉及可重配置处理单元和使用可重配置处理单元的系统。
背景技术
传统处理加速器可被实现为可编程逻辑器件(PLD)(例如,现场可编程门阵列(FPGA)或者图形处理单元(GPU)),以提供高效加速器逻辑。数据中心和移动装置应用程序日益趋向数据密集型,并且对于使用处理加速器的此类应用程序,传统存储层次不能提供良好的性能和能源效率。在传统存储层次中的处理加速器的最大效率由于片外(即,非CPU)存储访问而降低。因此,由于高成本和次优性能,实现接近于存储器的加速器逻辑以提高效率提供了有限的成功。此外,如果加速器逻辑被实现为接近于存储器(例如,动态随机存取存储器(DRAM)),则DRAM容量由于集成非DRAM加速器逻辑到DRAM半导体裸片而更丧失。
通常,可编程逻辑器件(PLD)是电子元件,用来形成可重配置的数字电路。与通常具有固定功能的逻辑门或者逻辑电路不同,PLD在制造时通常有未定义的功能,并且通常在将PLD用于电路之前,PLD必须被编程或者被重配置,以执行期望的功能。
传统上,PLD可包括逻辑器件和存储装置的组合。存储器通常用于存储定义期望的功能的编程模式。大多数用于在集成电路中存储数据的技术已经适用于PLD,例如,硅反熔丝、静态随机存取存储器(SRAM)、可擦除可编程只读存储器(EPROM)、电子EPROM(EEPROM)、非易失性RAM等。大多数PLD通常包括通过将特定电压(即,非操作电压或高电压)施加到PLD的内部的硅的改性区域(modified area)的组件,其中,硅的改性区域断开或设置(取决于技术)电连接并且改变P PLD的电子电路的布局。
一种最常见类型的PLD是现场可编程门阵列(FPGA),FPGA是一种被设计为在制造后由客户或者设计者配置的集成电路;因此,术语是“现场可编程”。FPGA包括:可编程逻辑块阵列和允许多个块“被连接在一起”的可重配置互联的层次。FPGA的逻辑块可被配置为执行复杂的组合功能,或者仅执行简单的逻辑门,如AND、XOR等。
发明内容
实施例提供了一种加速器控制器,包括:检测器和加载器。检测器检测应用程序或者虚拟机的运行时间特征,并且识别与应用程序或者虚拟机关联的对应于检测到的运行时间特征的加速器逻辑。加载器将识别的加速器逻辑加载到至少一个动态随机存取存储器(DRAM)阵列中。至少一个DRAM阵列可基于识别的加速器逻辑被选择性地重配置为像查找表(LUT)一样运行或者像DRAM存储阵列一样运行,并且至少一个DRAM阵列可位于操作系统的高速缓存一致地址空间中。加速器逻辑可包括查找表(LUT)。
另一实施例提供了一种加速器控制器,包括:检测器,检测应用程序或者虚拟机的运行时间特征,其中,运行时间特征可以基于应用程序或者虚拟机的预定标识、功能使用率、中央处理单元使用率、存储器使用率、与应用程序或者虚拟机相关的延迟中的至少一个;和加载器,将对应于检测到的运行时间特征的加速器逻辑加载到至少一个动态随机存取存储器(DRAM)阵列,其中,至少一个DRAM阵列可基于识别的加速器逻辑被选择性地重配置为像查找表(LUT)一样运行或者像DRAM存储阵列一样运行。检测器还可识别与应用程序或者虚拟机关联的对应于检测到的运行时间特征的加速器逻辑,并且至少一个DRAM阵列可位于系统的高速缓存一致地址空间中。在一个实施例中,加速器逻辑可包括查找表(LUT)。在另一实施例中,DRAM阵列可以是双列直插式存储器模块(DIMM)的一部分。
另一实施例提供了一种方法,包括:将在操作系统环境中运行的应用程序或者虚拟机的运行时间特征;选择对应于检测到的运行时间特征选择加速器逻辑;以及通过使用加载和存储命令将选择的加速器逻辑存储在至少一个动态随机存取存储器(DRAM)子阵列中,其中,至少一个DRAM子阵列可被选择性地重配置为像查找表(LUT)一样运行或者像DRAM存储阵列一样运行,其中,至少一个DRAM子阵列可被配置为像LUT一样运行,其中,至少一个DRAM子阵列可位于操作系统环境的高速缓存一致地址空间中。
附图说明
在以下部分中,将参照附图中示出的实施例来描述这里公开的主题的多个方面,在附图中:
图1示出根据这里公开的主题的可重配置存储器逻辑器件的实施例;
图2示出根据这里公开的主题的可重配置存储器逻辑器件的另一个实施例的框图;
图3A至图3D分别示出根据这里公开的主题的包括一个或者多个DRAM-FPGA的DIMM的实施例;
图4示出了根据这里公开的主题的在存储通道中使用一个或者多个DRAM-FPGA的系统架构的实施例的功能框图;
图5示出了根据这里公开的主题的检测虚拟机或者应用程序的运行时间特征和将对应于虚拟机或者应用程序的加速逻辑存储在可重配置DRAM子阵列中的方法的流程图;
图6示出了根据这里公开的主题的基于QPI并且在存储通道中使用一个或者多个DRAM-FPGA的系统架构;
图7示出了根据这里公开的主题的可使用在存储通道中包括一个或者多个DRAM-FPGA的系统架构的信息处理系统的实施例的功能框图。
具体实施方式
这里公开的主题涉及在存储通道中使用一个或者多个动态随机存取存储器现场可编程门阵列(DRAM-FPGA)的系统架构。DRAM-FPGA使用可选择性的重配置的DRAM单元阵列作为查找表(LUT);实现接近于存储器的可重配置的逻辑;并且可被重配置为任意的逻辑设计。
在以下详细描述中,阐述大量具体细节以提供本公开的透彻理解。然而,应理解,本领域技术人员可在没有这些具体细节的情况下实践公开的多个方面。在其他情况下,未详细描述公知方法、程序、组件和电路,以避免模糊这里公开的主题。
在本说明书中,参考“一个实施例”或者“某个实施例”是指与实施例相关描述的特定功能、结构、或者特性被包括在这里公开的至少一个实施例中。因此,在本说明书中,出现在不同位置的短语“在一个实施例中”或者“在某个实施例中”或者“根据一个实施例”(或者具有相似描述的其他短语)不必参考相同的实施例。此外,特定的特征、结构、或者特性可以是在一个或者多个实施例中以适当的形式组合。此外,取决于这里讨论的上下文,单数术语可包括相应的复数形式,复数术语可包括相应的单数形式。还应注意,显示的和这里讨论的各个附图(包括组件图)仅作为说明的目的,而没有按比例绘制。类似地,各个波形图和时序图仅显示为说明的目的。
这里使用的术语“第一”、“第二”等用作它们之后的名词的标签,并不意味任何类型的次序(例如,空间、时间、逻辑等),除非清楚地这样定义。此外,相同的参考标号可在两张或多张附图中用于表示具有相同或相似的功能的部件、组件、块、电路、单元或模块。然而,这样的使用仅仅为了说明的简单和易于讨论;并不意味这样的组件或单元的结构或架构细节在所有实施例中相同,或者这种一般参考的部件/模块仅仅是实现这里公开的特定实施例的教导的方式。
这里公开的主题涉及一种使用DRAM单元阵列作为查找表(LUT)的基于DRAM的可重配置的逻辑;实现接近于存储器的可重配置的逻辑;并且可被重配置为任意的逻辑设计。此外,这种基于DRAM的可重配置的逻辑与DRAM制造工艺兼容,并且在存储器工艺中是良好的候选。相比传统现场可编程门阵列(FPGA),基于DRAM的可重配置的逻辑提供更高密度、更低成本和更大的灵活性(例如,自我修改和支持仓库规模数据中心中的不同数据节点之间的快速迁移的快速动态重配置)。
使用现场可编程门阵列(FPGA)形式的PLD的传统系统架构通常将FPGA置于PCIe插槽中,不在高速缓存一致地址空间中并且提供低通信带宽。另外,在PCIe插槽中的FPGA中的加速器逻辑的操作通过由驱动器提供的明确命令来实现。
图1示出根据这里公开的主题的可重配置存储器逻辑器件100的实施例。可重配置存储器逻辑器件100可被配置为并且连接到在查找表(LUT)模式或者常规动态随机存取存储器(DRAM)模式下工作。可重配置存储器逻辑器件100包括:一个或者多个子阵列101、输入/输出(I/O)接口102和配置接口103。子阵列101按行和列排列。每个子阵列101可包括多个存储单元(未示出),所述多个存储单元也可被布置为行和列的阵列。可重配置存储器逻辑器件100可包括其他未在图1中示出的组件和/或元件。
在一个实施例中,子阵列101包括动态随机存取存储器(DRAM)。一个或者多个子阵列101可通过使用普通的存储器存取操作被选择性地重配置或者重编程,以像查找表(LUT)一样运行,或者选择性地像传统DRAM子阵列一样运行。如这里所使用的,可重配置存储器逻辑器件100通常在这里可称为FPGA。对于子阵列101包括DRAM的可重配置存储器逻辑器件100的实施例,,可重配置存储逻辑器件100在这里可称为“DRAM FPGA”。
在一个实施例中,被配置为LUT或RAM的子阵列101的数量可以根据需要动态地调整。在另一个实施例中,多个子阵列101中的一个或多个可被重配置为像LUT一样运行或者像传统存储器子阵列一样运行,而多个子阵列101中的一个或多个可以不被重配置,而是被配置为像传统存储器子阵列一样运行。如这里所使用的,可被重配置为像LUT一样运行或者像传统存储器子阵列一样运行的子阵列被称为再重置LUT(RLUT)子阵列。
如果子阵列101被配置为像LUT一样运行,则LUT行为可实现逻辑功能,例如,但不仅限于,算术逻辑功能(即,加法器、乘法器等)、逻辑功能(AND、OR、XOR等)、或者它们的组合。逻辑功能可以仅通过仅对子阵列执行存储器写操作或者特殊写操作来更改,从而允许逻辑功能在可重配置存储器逻辑器件100的操作期间被动态地重配置或者更改。特殊写操作可包括写操作涉及特定子阵列的指示器。传统写操作(或者相似)的使用可允许选择的子阵列101重编程,而不需要特殊(即,非操作或者高)电压,例如,用于对EEPROM编程的电压。
RLUT子阵列和RAM子阵列的混合可提供优势。例如,因为数据不需穿过各个组件之间的总线,所以接近存储在RAM子阵列中的数据可加速RLUT子阵列执行的计算并且降低功率需求。此外,在一个实施例中,多个子阵列101中的一个或多个可以同时被访问,从而降低了可重配置存储器逻辑器件100的功率和计算复杂度。因此,DRAM RLUT提供的近数据计算可以是更快更有效的。通过基于与用于创建处理器(未示出)和存储器(未示出)相似的DRAM技术上的RLUT子阵列,RLUT子阵列可以作为处理器和/或存储器存在于相同的裸片或者封装中。根据这里公开的主题,使用相同的制造工艺可降低在存储通道中使用一个或者多个RLUT的系统的生产成本。此外,基于DRAM子阵列上的RLUT子阵列,与基于SRAM的FPGA相比,可实现更高的密度。例如,对于基于DRAM的RLUT,每个存储器单元或者信息比特可仅需要一个晶体管和一个电容器(1T1C),而对于基于SRAM的FPGA,每个存储器单元或信息比特需要六个晶体管(6T)。另外,与基于SRAM的FPGA或者基于Flash(闪存)的FPGA相比,基于DRAM的RLUT可导致更低成本。
I/O接口102可被配置为对选择的子阵列101进行读取或写入。写访问可涉及对子阵列101进行写入,以定义子阵列是像LUT一样运行还是像传统DRAM子阵列一样运行。在一些实施例中,所有存储器存取或者操作可通过I/O接口102。如果存储器存取针对存储了用于恢复RAM子阵列或被配置为RAM子阵列的RLUT子阵列的数据的子阵列则I/O接口102可将读/写请求简单地处理为传统存储器存取。然而,如果存储器存取不是针对被配置为LUT的RLUT子阵列,则I/O接口102可将存储器存取传送到配置接口103进行处理。
配置接口103可被配置调整信号在可重配置存储器逻辑器件100整体之内和/或在每个各自的RLUT子阵列101内的路由。例如,配置接口103可被配置为调整信号在被配置为RLUT和/或RAM的多个子阵列之间的路由。在一个示例实施例中,I/O接口102可被配置为管理针对子阵列101的数据存取。例如,在一个实施例中,I/O接口102可从处理器(未示出)接收配置信息,所述配置信息用于将I/O接口102配置为控制针对子阵列102的I/O访问,从而使子阵列中的存储器位置作为可寻址寄存器出现。配置接口103可被配置为通过例如点到点路由、基于地址的路由或者它们的组合来管理各个子阵列101之间的互联和信号路由。例如,在一个实施例中,配置信息可由用于配置配置接口103的I/O接口102接收,从而使子阵列101可执行跨越多个子阵列101的复杂逻辑操作。在一个示例实施例中,I/O接口102可包括配置接口103。
存储器存取可包括将查找表存储在特定RLUT子阵列101中的写操作。存储器存取还可包括取决于LUT的大小的一系列存储器存取。在一些实施例中,特定存储器存取可表示LUT的输入数量和LUT的输出数量。此外,进一步的存储器存取还可表示关于RLUT子阵列101的路由信息和/或两个或者更多个RLUT子阵列是否被级联或者在一起路由以执行逻辑功能(例如,加法器等)。逻辑功能的细节在标题为“基于DRAM的可重配置逻辑”的第14/814,503号美国临时专利申请中阐明,所述申请的公开通过引用完整地包含于此。存储器存取可选择性地包括将RLUT子阵列101重配置为像传统RAM子阵列一样运行的写操作。
图2示出根据这里公开的主题的可重配置存储器逻辑器件200的另一个示例实施例的框图。如图2所示,可重配置存储器逻辑器件200可以实施在单独的裸片上,或者实施在可重配置存储逻辑器件200可在共享裸片上与其他组件(未示出)集成的裸片的一部分上,例如,但不仅限于,片上系统、处理器高速缓存等。可重配置存储器逻辑器件200包括一个或者多个子阵列201、多个通信总线202、输入信号垫203和输出信号垫204。可重配置存储器逻辑器件200可使用基于总线的互联和路由方案来实现。通信总线202可允许子阵列201之间的路由方案被动态地改变为在子阵列201之间重新路由信号。
如果子阵列201被配置为像LUT一样运行,则LUT行为可实现逻辑功能,例如,但不仅限于,算术逻辑功能(即,加法器、乘法器等)、逻辑功能(AND、OR、XOR等)或它们的组合。逻辑功能的细节在标题为“基于DRAM的可重配置逻辑”的第14/814,503号美国临时专利申中阐明,所述申请的公开通过引用完整地包含于此。逻辑功能可通过仅对子阵列执行存储器写操作或者特殊写操作来更改,从而允许逻辑功能被动态地重配置或者在可重配置存储器逻辑器件200的操作期间被更改。特殊写操作可包括写操作涉及特定子阵列的指示器。
根据示例实施例,图1的一个或者多个子阵列101和/或图2的一个或者多个可重配置存储器逻辑200可用于双列直插式存储器模块(DIMM)。也就是说,DIMM可被配置为包括一个或者多个DRAM-FPGA模块、一个或者多个RLUT模块、一个或者多个DRAM-FPGA模块和一个或者多个RLUT模块的组合、一个或者多个DRAM-FPGA模块和/或一个或者多个RLUT模块与一个或者多个常规DRAM模块组合的组合。图3A至图3D分别示出根据这里公开的主题包括一个或者多个DRAM-FPGA的DIMM的示例实施例。
在图3A中,DIMM 300包括多个DRAM-FPGA模块301,图中仅示出了四个DRAM-FPGA模块301。因此,对于DIMM 300的特定示例实施例,所有模块位置都被DRAM-FPGA模块301占用。可选择地,所有模块位置可以被RLUT模块占用,其中,每个RLUT模块仅包括可重配置的查找表(RLUT)。
在图3B中,DIMM 310包括一个或者多个DRAM-FPGA模块301(示出两个)和一个或者多个DRAM模块302(示出两个)。对于DIMM 310的特定示例实施例中,DRAM-FPGA模块301和常规DRAM模块302的物理布置可以是任何顺序。可选择地,DIMM 310的配置可以是一个或者多个RLUT模块和一个或者多个常规DRAM模块302。
在图3C中,DIMM 320包括多个混合DRAM-FPGA模块303,其中,仅示出了四个混合DRAM-FPGA模块303。混合DRAM-FPGA模块303包括一个或者多个可被重配置为像查找表(LUT)一样运行或者像传统DRAM子阵列一样运行的子阵列以及一个或者多个不可重再配置且像传统DRAM子阵列一样运行的子阵列。也就是说,DIMM 320的配置仅包括混合DRAM-FPGA模块303。
在图3D中,DIMM 330包括一个或者多个混合DRAM-FPGA模块303(示出两个)和一个或者多个常规DRAM模块302(示出两个)。对于DIMM 330的特定示例实施例,混合DRAM-FPGA模块303和常规DRAM模块302的物理布置可以是任何顺序。
应理解,其他DIMM配置也是可行的,例如,但不仅限于,包括一个或者多个DRAM-FPGA模块、一个或者多个常规DRAM模块、一个或者多个混合DRAM-FPGA模块和/或者一个或者多个RLUT模块的DIMM配置。
图4示出根据这里公开的主题在存储通道中使用一个或者多个DRAM-FPGA的系统架构400的示例实施例的功能框图。图5示出根据这里公开的主题的检测虚拟机或者应用程序的运行时间特征和将对应于虚拟机或者应用程序的加速逻辑存储在可重配置DRAM子阵列中的方法500的流程图。图4中指示的操作501至504稍后结合图5来讨论。
参照图4,系统架构器400包括通过存储通道402连接到系统存储器(诸如随机存取存储器(RAM))和一个或者多个大容量存储装置403的中央处理单元(CPU)401。系统存储器的RAM可包括静态RAM(SRAM)和/或动态RAM(DRAM)。在一个示例实施例中,如图4所示,系统存储器包括一个或者多个双列直插式存储器模块(DIMM)404形式的DRAM。在一个实施例中,DIMM 404可被配置为包括:一个或者多个DRAM-FPGA模块、一个或者多个RLUT模块、一个或者多个DRAM-FPGA模块和一个或者多个RLUT模块的组合、或者一个或者多个DRAM-FPGA模块和/或一个或者多个RLUT模块与一个或者多个常规DRAM模块相结合的组合。存储通道中的DRAM-FPGA被实现为一个或者多个DIMM。
操作系统(OS)405在CPU 401上运行。操作系统405可以是,但不仅限于,基于Unix的操作系统、与Unix相似的操作系统、基于Linux的操作系统、基于Chrome的操作系统或者基于Windows的操作系统。一个或者多个虚拟机(VM)可在操作系统405上运行。如图4所示,虚拟机(VM1至VMn)在操作系统405上运行。在系统架构400在数据中心环境下实施的情况中,虚拟机VM1至VMn可表示数据中心应用程序。在数据架构400在移动装置环境下实施的情况中,虚拟机VM1至VMn可表示移动装置应用程序。
操作系统405包括加速器控制器406,加速器控制器406通过检测与实例化的虚拟机VM相关的运行时间特征407来检测虚拟机VM的实例化。如这里所使用的,术语虚拟机VM的“运行时间特征”是指,例如,但不仅限于,VM的标识和/或特定设置配置。在一个实施例中,加速器控制器406可以基于软件,基于硬件,或者基于它们的组合。在一个实施例中,加速器控制器406可包括操作系统405中的软件模块。在另一个实施例中,加速器控制器406可包括存储器控制器(图4中未示出)中的硬件模块。
在一个实施例中,加速器控制器406包括检测器407和加载器408。检测器407检测应用程序或者虚拟机的运行时间特征409并与应用程序或者虚拟机关联的对应于检测到的运行时间特征409的加速器逻辑410。在另一个实施例中,加速器控制器406在运行时间剖析(profile)虚拟机VM或者应用程序并且收集运行时间签名,(例如,但不仅限于,功能使用率、中央处理单元(CPU)使用率、延迟和/或其他微架构统计)并且使用运行时间签名搜索加速器逻辑410的仓库。在一个实施例中,用于检测虚拟机VM或者应用程序的运行时间特征的运行时间特征409可被存储在加速器控制器406中或者作为加速器控制器406的一部分。在另一个实施例中,运行时间特征409可被存储在例如存储器403中,并在加速器控制器406初始化时被加载到加速器控制器406中。
基于检测的虚拟机VM(或者应用程序)的运行时间特征409,加速器控制器406选择并且加载器408检索可以被虚拟机使用的加速器逻辑410,并且通过使用存储通道存储指令将虚拟机的加速器逻辑410加载到DRAM-FPGA411中,加速器逻辑410可被存储在大容量存储装置403中。在一个实施例中,检索到的加速器逻辑410可以被虚拟机VM请求,或者可以被虚拟机VM可选地请求。在另一个实施例中,加速器逻辑410可以被操作系统405或者用户请求或者推荐。在可选的实施例中,加速器控制器406可识别虚拟机VMn的加速器逻辑410,虚拟机VMn通过使用存储通道存储指令检索加速器逻辑410并将加速器逻辑410存储在DRAM-FPGA 411中。由于加速器逻辑410存储在系统400的存储通道402中的DRAM-FPGA 411中,因此加速器逻辑410被存储在可由CPU 401直接访问的高速缓存一致地址空间中。在这方面,加速器逻辑410被存储在操作系统405可访问的高速缓存一致地址空间中。
如图4所示,虚拟机VMn、运行时间特征409、加速器逻辑410、存储加速器逻辑410的特定DRAM-FPGA 411和虚拟机VMn的DRAM-FPGA驱动器412由从左上至右下的延伸的剖面线表示。其他虚拟机、它们各自的运行时间特征、加速器逻辑和DRAM-FPGA位置也由相应的相似剖面线表示。在一个实施例中,加速器控制器406将对应于虚拟机VM的DRAM-FPGA驱动器412的地址通信到虚拟机VM。由于虚拟机VM访问DRAM-FPGA驱动器412,因此DRAM-FPGA驱动器412访问虚拟机VM的加速器逻辑410,加速器逻辑410存储在DRAM-FPGA 411中。
图5示出根据这里公开的主题的检测虚拟机或者应用程序的运行时间特征和将对应于虚拟机或者应用程序的加速逻辑存储在可重配置DRAM子阵列中的方法的流程图。参照图4,考虑一种情况,其中,虚拟机VMn在图5中的501被实例化。加速器控制器406基于与虚拟机VMn关联的运行时间特征409来检测虚拟机VMn已经被实例化。在502,加速器控制器406选择并且检索虚拟机VMn的加速器逻辑410。在503,加速器控制器406的加载器408通过使用存储通道存储指令将选择的加速器逻辑410存储在DRAM-FPGA 411中。在可选实施例中,加速器控制器406在503识别虚拟机VMn的加速器逻辑410,虚拟机VMn在图4中在502a使用存储通道存储指令检索加速器逻辑410并且将加速器逻辑410存储在DRAM-FPGA 411中。在504,虚拟机VMn通过DRAM-FPGA驱动器412访问DRAM-FPGA 411中的加速器逻辑410。在另一个实施例中,系统架构400可应用于点对点处理器互联环境,例如,但不仅限于,快速通道互联(QPI)。
图6示出根据这里公开的主题基于QPI并且在存储通道中使用一个或者多个DRAM-FPGA的系统架构600。在图6中,系统架构600包括通过存储通道602连接到系统存储器(例如,随机存取存储器(RAM))并且连接到一个或者多个大容量存储装置603的两个CPU 601。系统存储器的RAM可包括静态RAM(SRAM)和/或动态RAM(DRAM)。在一个示例实施例中,系统存储器包括实现为一个或者多个双列直插式存储器模块(DIMM)604的DRAM。一个或者多个DRAM-FPGA 605可以在各个CPU 601的存储通道602中被使用。CPU 601通过基于QPI的互联606彼此连接。
图7示出根据这里公开的主题的可使用在存储通道中包括一个或者多个DRAM-FPGA的系统架构的信息处理系统700的功能框图。信息处理系统700可包括一个或者多个根据这里公开的主题构建的装置。
在各种实施例中,信息处理系统700可实现为计算装置,例如,但不仅限于,膝上型电脑、台式电脑、工作站、服务器、片式服务器、个人数字助理、智能电话、平板电脑和其他适当的计算机等、或虚拟机或者虚拟计算装置。在各种实施例中,信息处理系统700可被用户(未示出)使用。
信息处理系统700还可包括中央处理单元(CPU)、逻辑或者处理器710。在一些实施例中,处理器710可包括一个或者多个功能单元块(FUB)或者组合逻辑块(CLB)715。在这样的实施例中,组合逻辑块可包括各种布尔逻辑运算(例如,NAND、NOR、NOR、XOR等)、稳定逻辑器件(例如,触发器、锁存器等)、其他逻辑器件或者它们的组合。组合逻辑运算可以以简单或复杂的方式被被配置为处理输入信号以实现期望的结果。应理解,尽管描述了同步组合逻辑运算的一些说明性示例,但是公开的主题不仅限于此,并且可包括异步运算或者它们的混合。在一个实施例中,组合逻辑运算可包括多个互补金属氧化物半导体(CMOS)晶体管。在各种实施例中,这些CMOS晶体管可被布置在执行逻辑运算的门中;然而,应理解,其他技术可被使用并且落入在公开的主题的范围内。在一些实施例中,包括处理器610的组件可包括实现根据这里公开的主题的加速控制器的组件。
根据公开的主题的信息处理系统700还可包括可由处理器710通过存储通道进行存取的易失性存储器720(例如,随机存储存储器(RAM)等)。根据公开的主题的信息处理系统700还可包括非易失性存储器730(例如,硬盘、光学存储器、NAND或者闪存等)。在一些实施例中,易失性存储器720、非易失性存储器730或者它们的组合或者部分可被称为“存储介质”。在各种实施例中,易失性存储器720和/或者非易失性存储器730可被配置为以半永久或者基本永久的形式来存储数据。
在各种实施例中,以上描述的一个或者多个可重配置查找表(RLUT)可包括在易失性存储器720中,或者甚至包括在非易失性存储器730中。如上所述,RLUT可作为DRAM或者其他存储器的部分被包括。如上所述,在一些实施例中,存储器720或者730的一部分可被用于存储数据,并且第二部分可被用作RLUT。在一些实施例中,RLUT还可被考虑为处理器和/或逻辑710的一部分。如上所述,RLUT可执行一个或者多个逻辑功能,因此可执行指令。
在各种实施例中,信息处理系统700可包括一个或者多个网络接口740,所述一个或者多个网络接口740被配置为允许信息处理系统700成为通信网络的一部分并通过通信网络通信。Wi-Fi协议的示例可包括,但不仅限于:电气和电子工程师协会(IEEE)802.11g、IEEE 802.11n等。蜂窝协议的示例可包括,但不仅限于:IEEE 802.16m(又名无线城域网(MAN)高级(Wireless-MAN Advanced))、长期演进(LTE)高级、增强型GSM(全球移动通信系统)数据传输速率演化(EDGE)、高速分组接入演进(HSPA+)等。有线协议的示例可包括,但不仅限于:IEEE 802.3(又名以太网)、光纤通道、电力线通信(例如,家庭插电联盟、IEEE 1901等)等。
根据公开的主题的信息处理系统700还可包括用户接口单元750(例如,显示适配器、触觉接口、人机接口装置等)。在各种实施例中,用户接口单元750可被配置为从用户接收输入和/或者将输出提供给用户。其他类型的装置也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或者触觉反馈;来自用户的输入可以以任何形式接收,包括:声音、语音或者触觉输入。
在各种实施例中,信息处理系统700可包括一个或者多个其他装置或者硬件组件760,例如,但不仅于:显示器或者监视器、键盘、鼠标、摄像头、指纹识别器、视频处理器等。
根据公开的主题的信息处理系统700还可包括一个或者多个系统总线705。在这样的实施例中,系统总线705可被配置为可通信地连接到处理器710、易失性存储器720、非易失性存储器730、网络接口740、用户接口750和一个或者多个硬件组件760。被数据处理器710处理的数据或者来自非易失性存储器730外部的数据输入可被存储在非易失性存储器730或者易失性存储器720中。
在各种实施例中,信息处理系统700可包括或者执行一个或者多个软件组件770。在一些实施例中,软件组件770可包括操作系统(OS)和/或应用程序。在一些实施例中,OS可被配置为向应用程序提供一个或者多个服务,并且管理或者作为信息处理器系统700的应用程序和各种硬件组件(例如,处理器710、网络接口740等)之间的中介。在这样的实施例中,信息处理系统700可包括一个或者多个本地应用程序,所述一个或者多个本地应用程序可在本地安装(例如,在非易失性存储器730等中)并且被配置为直接由处理器710执行并直接与操作系统交互。在这样的实施例中,本地应用程序可包括预编译的机器可执行代码。在一些实施例中,本地应用程序可包括脚本解释器(例如,C shell(csh))、AppleScript、AutoHotkey等)或者虚拟执行机(VM)(例如,Java虚拟机、微软通用语言运行库等),所述脚本解释器或者虚拟执行机被配置为将源代码或者目标代码翻译成随后由处理器710执行的可执行代码。在一些实施例中,一个或者多个软件组件770可包括实现根据这里公开的主题的加速控制器的可执行指令。
本领域技术人员将理解,这里公开的发明构思可在大范围的应用中被修改和改变。因此,请求保护的主题的范围不应局限于任何以上讨论的特定教导,而是由权利要求来定义。

Claims (20)

1.一种加速器控制器,包括:
检测器,检测应用程序或者虚拟机的运行时间特征,并且识别与应用程序或者虚拟机关联的对应于检测到的运行时间特征的加速器逻辑;和
加载器,将识别的加速器逻辑加载到至少一个动态随机存取存储器DRAM阵列中,至少一个DRAM阵列基于识别的加速器逻辑被选择性地重配置为像查找表LUT一样运行。
2.如权利要求1所述的加速器控制器,还包括:至少一个DRAM阵列。
3.如权利要求1所述的加速器控制器,其中,至少一个DRAM阵列位于操作系统环境的高速缓存一致地址空间中。
4.如权利要求1所述的加速器控制器,其中,运行时间特征基于应用程序或者虚拟机的预定标识。
5.如权利要求1所述的加速器控制器,其中,运行时间特征基于功能使用率、中央处理单元使用率、存储器使用率和与应用程序或者虚拟机相关的延迟中的至少一个。
6.如权利要求1所述的加速器控制器,其中,加速器逻辑包括查找表LUT。
7.如权利要求1所述的加速器控制器,其中,至少一个DRAM阵列是双列直插式存储器模块DIMM的一部分。
8.如权利要求7所述的加速器控制器,其中,DIMM还包括未被选择性地重配置为像查找表LUT一样运行或者像DRAM存储阵列一样运行的至少一个DRAM阵列。
9.如权利要求1所述的加速器控制器,其中,识别的加速器逻辑使用加载和存储命令被加载到至少一个DRAM阵列中。
10.一种加速器控制器,包括:
检测器,检测应用程序或者虚拟机的运行时间特征,运行时间特征基于应用程序或者虚拟机的预定标识、功能使用率、中央处理单元使用率、存储器使用率和与应用程序或者虚拟机相关的延迟中的至少一个;以及
加载器,将对应于检测到的运行时间特征的加速器逻辑加载到至少一个动态随机存取存储器DRAM阵列中,至少一个DRAM阵列基于加速器逻辑被选择性地重配置为像查找表LUT一样运行。
11.如权利要求10所述的加速器控制器,其中,检测器还识别与应用程序或者虚拟机关联的对应于检测到的运行时间的加速器逻辑。
12.如权利要求10所述的加速器控制器,其中,至少一个DRAM阵列位于操作系统环境的高速缓存一致地址空间中。
13.如权利要求10所述的加速器控制器,其中,加速器逻辑包括查找表LUT。
14.如权利要求10所述的加速器控制器,其中,DRAM阵列是双列直插式存储器模块DIMM的一部分。
15.如权利要求14所述的加速器控制器,其中,DIMM还包括未被选择性地重配置为像查找表LUT一样运行或者像DRAM存储阵列一样运行的至少一个DRAM阵列。
16.一种控制加速器逻辑的方法,包括:
检测在操作系统环境中运行的应用程序或者虚拟机的运行时间特征;
识别对应于检测到的运行时间特征的加速器逻辑;和
使用加载和存储命令将识别的加速器逻辑加载到至少一个动态随机存取存储器DRAM子阵列中。
17.如权利要求16所述的方法,其中,至少一个DRAM子阵列被选择性地重配置为像查找表LUT一样运行,
其中,至少一个DRAM子阵列被配置为像LUT一样运行,
其中,至少一个DRAM子阵列位于操作系统环境的高速缓存一致地址空间中,
其中,至少一个DRAM子阵列是双列直插式存储器模块DIMM的一部分,
其中,检测到的运行时间特征基于应用程序或者虚拟机的预定标识、功能使用率、中央处理单元使用率、存储器使用率、与应用程序或者虚拟机相关的延迟中的至少一个。
18.如权利要求16所述的方法,其中,加速器逻辑包括查找表LUT。
19.如权利要求16所述的方法,其中,识别的加速器逻辑通过加速控制器被加载到至少一个DRAM子阵列中。
20.如权利要求16所述的方法,其中,识别的加速器逻辑通过应用程序或者虚拟机被加载到至少一个DRAM子阵列中。
CN201610886006.2A 2015-11-30 2016-10-11 加速器控制器和控制加速器逻辑的方法 Active CN106814662B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562261306P 2015-11-30 2015-11-30
US62/261,306 2015-11-30
US15/086,010 2016-03-30
US15/086,010 US10013212B2 (en) 2015-11-30 2016-03-30 System architecture with memory channel DRAM FPGA module

Publications (2)

Publication Number Publication Date
CN106814662A CN106814662A (zh) 2017-06-09
CN106814662B true CN106814662B (zh) 2019-06-25

Family

ID=58777561

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610886006.2A Active CN106814662B (zh) 2015-11-30 2016-10-11 加速器控制器和控制加速器逻辑的方法

Country Status (5)

Country Link
US (1) US10013212B2 (zh)
JP (1) JP6738262B2 (zh)
KR (1) KR102380776B1 (zh)
CN (1) CN106814662B (zh)
TW (1) TWI706256B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11099894B2 (en) * 2016-09-28 2021-08-24 Amazon Technologies, Inc. Intermediate host integrated circuit between virtual machine instance and customer programmable logic
US10338135B2 (en) 2016-09-28 2019-07-02 Amazon Technologies, Inc. Extracting debug information from FPGAs in multi-tenant environments
US10250572B2 (en) 2016-09-29 2019-04-02 Amazon Technologies, Inc. Logic repository service using encrypted configuration data
US10162921B2 (en) 2016-09-29 2018-12-25 Amazon Technologies, Inc. Logic repository service
US10423438B2 (en) 2016-09-30 2019-09-24 Amazon Technologies, Inc. Virtual machines controlling separate subsets of programmable hardware
US10642492B2 (en) 2016-09-30 2020-05-05 Amazon Technologies, Inc. Controlling access to previously-stored logic in a reconfigurable logic device
US11115293B2 (en) 2016-11-17 2021-09-07 Amazon Technologies, Inc. Networked programmable logic service provider
US10747565B2 (en) * 2017-04-18 2020-08-18 Amazon Technologies, Inc. Virtualization of control and status signals
US10503551B2 (en) * 2017-06-07 2019-12-10 Dell Products L.P. Coordinating FPGA services using cascaded FPGA service managers
CN108897706B (zh) * 2018-05-10 2021-07-23 北京融芯微科技有限公司 一种加速器接口
KR102615443B1 (ko) * 2018-05-25 2023-12-20 에스케이하이닉스 주식회사 머신 러닝 장치 및 이를 이용한 머신 러닝 시스템
US10884949B2 (en) * 2019-04-05 2021-01-05 International Business Machines Corporation On-chip logic accelerator
CN112506087A (zh) * 2019-09-16 2021-03-16 阿里巴巴集团控股有限公司 Fpga加速系统和方法、电子设备以及计算机可读存储介质
US11403111B2 (en) * 2020-07-17 2022-08-02 Micron Technology, Inc. Reconfigurable processing-in-memory logic using look-up tables
CN112580285A (zh) * 2020-12-14 2021-03-30 深圳宏芯宇电子股份有限公司 嵌入式服务器子系统及其配置方法
US11355170B1 (en) 2020-12-16 2022-06-07 Micron Technology, Inc. Reconfigurable processing-in-memory logic
CN112947282B (zh) * 2021-03-08 2023-06-20 电子科技大学 一种应用于电源门控fpga结构中的新型隔离单元

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103314378A (zh) * 2010-08-23 2013-09-18 回忆系统公司 智能存储器系统编译器
CN104541257A (zh) * 2012-08-06 2015-04-22 先进微装置公司 利用元数据管理的堆栈存储器设备
CN104781801A (zh) * 2012-12-21 2015-07-15 英特尔公司 使固态驱动器配置成采用存储模式或存储器模式操作的技术
CN104871137A (zh) * 2012-10-11 2015-08-26 超威半导体公司 高可靠性存储器控制器

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3106998B2 (ja) * 1997-04-11 2000-11-06 日本電気株式会社 メモリ付加型プログラマブルロジックlsi
JP3738802B2 (ja) * 1998-02-10 2006-01-25 富士ゼロックス株式会社 情報処理システム
JP3809727B2 (ja) * 1998-06-17 2006-08-16 富士ゼロックス株式会社 情報処理システム、回路情報管理方法および回路情報記憶装置
US9195784B2 (en) 1998-08-31 2015-11-24 Cadence Design Systems, Inc. Common shared memory in a verification system
US7206899B2 (en) * 2003-12-29 2007-04-17 Intel Corporation Method, system, and program for managing data transfer and construction
US20060129762A1 (en) * 2004-12-10 2006-06-15 Via Technologies, Inc. Accessible buffer for use in parallel with a filling cacheline
KR101303518B1 (ko) 2005-09-02 2013-09-03 구글 인코포레이티드 Dram 적층 방법 및 장치
US20070129926A1 (en) * 2005-12-01 2007-06-07 Verheyen Henry T Hardware acceleration system for simulation of logic and memory
JP4191219B2 (ja) * 2006-10-30 2008-12-03 エルピーダメモリ株式会社 メモリ回路、半導体装置及びメモリ回路の制御方法
CN101354677B (zh) * 2008-09-11 2014-12-03 青岛海信移动通信技术股份有限公司 一种应用程序运行状态的检测方法及装置
CN101477831A (zh) * 2009-01-22 2009-07-08 上海广电(集团)有限公司中央研究院 一种基于fpga器件的dram控制器
CN101924550A (zh) * 2009-06-11 2010-12-22 复旦大学 一种采用增益单元eDRAM的查找表
US8910153B2 (en) * 2009-07-13 2014-12-09 Hewlett-Packard Development Company, L. P. Managing virtualized accelerators using admission control, load balancing and scheduling
CN101717817B (zh) * 2009-07-17 2011-11-23 中国人民解放军国防科学技术大学 对基于随机上下文无关文法的rna二级结构预测进行加速的方法
JP2012084220A (ja) * 2011-10-25 2012-04-26 Fujitsu Semiconductor Ltd メモリシステム
KR101614859B1 (ko) * 2011-12-02 2016-04-22 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 서비스로써의 집적 회로
US9396020B2 (en) * 2012-03-30 2016-07-19 Intel Corporation Context switching mechanism for a processing core having a general purpose CPU core and a tightly coupled accelerator
EP3654178B1 (en) * 2012-03-30 2023-07-12 Intel Corporation Mechanism for issuing requests to an accelerator from multiple threads
US8880809B2 (en) 2012-10-29 2014-11-04 Advanced Micro Devices Inc. Memory controller with inter-core interference detection
US9274951B2 (en) * 2013-05-31 2016-03-01 Altera Corporation Cache memory controller for accelerated data transfer
US9954533B2 (en) * 2014-12-16 2018-04-24 Samsung Electronics Co., Ltd. DRAM-based reconfigurable logic

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103314378A (zh) * 2010-08-23 2013-09-18 回忆系统公司 智能存储器系统编译器
CN104541257A (zh) * 2012-08-06 2015-04-22 先进微装置公司 利用元数据管理的堆栈存储器设备
CN104871137A (zh) * 2012-10-11 2015-08-26 超威半导体公司 高可靠性存储器控制器
CN104781801A (zh) * 2012-12-21 2015-07-15 英特尔公司 使固态驱动器配置成采用存储模式或存储器模式操作的技术

Also Published As

Publication number Publication date
JP2017102923A (ja) 2017-06-08
KR102380776B1 (ko) 2022-04-01
JP6738262B2 (ja) 2020-08-12
KR20170063334A (ko) 2017-06-08
TW201723865A (zh) 2017-07-01
CN106814662A (zh) 2017-06-09
US10013212B2 (en) 2018-07-03
US20170153854A1 (en) 2017-06-01
TWI706256B (zh) 2020-10-01

Similar Documents

Publication Publication Date Title
CN106814662B (zh) 加速器控制器和控制加速器逻辑的方法
KR102440132B1 (ko) 재설정 가능 논리 장치
US9698790B2 (en) Computer architecture using rapidly reconfigurable circuits and high-bandwidth memory interfaces
EP3185128A1 (en) Gpu virtualisation
US8943294B2 (en) Software architecture for service of collective memory and method for providing service of collective memory using the same
EP3080719A1 (en) Memory arrangement for implementation of high-throughput key-value stores
JP2004529403A (ja) ユーザによる構成可能なオンチップメモリシステム
CN109213697A (zh) 智能存储器数据存储或加载方法和装置
US9361956B2 (en) Performing logical operations in a memory
US20240087624A1 (en) Buffer control of multiple memory banks
US10915470B2 (en) Memory system
US20170213581A1 (en) Processing unit, in-memory data processing apparatus and method
CN109119116A (zh) 存储体设备、静态随机存取及随机存取存储器设备
US11043250B1 (en) Buffer control of multiple memory banks
US11048443B1 (en) Non-volatile memory interface
US10504568B2 (en) Integrated circuit memory devices with customizable standard cell logic
US20240143498A1 (en) Methods, devices, and systems for allocating memory space
WO2017112109A1 (en) Memory management of high-performance memory
US20240037037A1 (en) Software Assisted Hardware Offloading Cache Using FPGA
CN107710688A (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
GR01 Patent grant
GR01 Patent grant