CN114127852B - 扩展存储器接口 - Google Patents
扩展存储器接口 Download PDFInfo
- Publication number
- CN114127852B CN114127852B CN202080051301.0A CN202080051301A CN114127852B CN 114127852 B CN114127852 B CN 114127852B CN 202080051301 A CN202080051301 A CN 202080051301A CN 114127852 B CN114127852 B CN 114127852B
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- communication subsystems
- coupled
- computing devices
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- 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/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- 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/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Mathematical Physics (AREA)
- Advance Control (AREA)
- Information Transfer Systems (AREA)
Abstract
描述与用于执行扩展存储器操作的扩展存储器通信子系统有关的系统、设备和方法。实例设备可包含彼此耦合的多个计算装置。所述多个计算装置中的每一个可包含被配置成响应于数据块的接收而对所述数据块执行操作的处理单元。所述多个计算装置中的每一个可进一步包含被配置作为用于所述处理单元的高速缓存的存储器阵列。所述实例设备可进一步包含耦合到所述多个计算装置和第二多个通信子系统的第一多个通信子系统。所述第一和第二多个通信子系统被配置成请求和/或传递所述数据块。
Description
技术领域
本公开大体上涉及半导体存储器和方法,且更确切地说涉及用于扩展存储器接口的设备、系统和方法。
背景技术
存储器装置通常被提供为计算机或其它电子系统中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性和非易失性存储器。易失性存储器可需要功率以维持其数据(例如主机数据、错误数据等)且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)和闸流体随机存取存储器(TRAM)等等。非易失性存储器可以通过在未供电时保留所存储数据来提供永久数据,且可以包含NAND快闪存储器、NOR快闪存储器和电阻可变存储器,例如相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM)和磁阻式随机存取存储器(MRAM),例如自旋力矩转移随机存取存储器(STT RAM)等等。
存储器装置可耦合到主机(例如主机计算装置)以存储数据、命令和/或指令以在操作计算机或电子系统时供主机使用。举例来说,数据、命令和/或指令可以在计算或其它电子系统的操作期间在主机与存储器装置之间传递。
发明内容
在一个方面中,本申请提供一种扩展存储器接口设备,所述扩展存储器接口设备包括:多个计算装置,其各自包括:处理单元,其被配置成对数据块执行操作;以及存储器阵列,其被配置作为用于所述处理单元的高速缓存;多个通信子系统,其耦合到所述多个计算装置中的每一个,其中所述多个通信子系统中的每一个耦合到以下中的至少一个:控制器;加速器;串行端口;主机接口;或其任何组合。
在另一方面中,本申请提供一种扩展存储器接口设备,所述扩展存储器接口设备包括:多个计算装置,其各自包括:处理单元,其被配置成对数据块执行操作;以及存储器阵列,其被配置作为用于所述处理单元的高速缓存;第一多个通信子系统,其各自耦合到所述多个计算装置;以及第二多个通信子系统,其耦合到:所述第一多个通信子系统;且耦合到以下中的至少一个:控制器,其耦合到存储器装置;加速器;串行端口;或主机接口。
在另一方面中,本申请提供一种用于使用扩展存储器接口的方法,所述方法包括:经由第一通信子系统和第二通信子系统将数据块从存储器装置传递到多个计算装置中的至少一个,其中所述第一通信子系统耦合到所述多个计算装置中的所述至少一个,且所述第二通信子系统耦合到所述第一通信子系统且耦合到所述存储器装置;由所述多个计算装置中的所述至少一个响应于所述数据块的接收而使用所述数据块执行操作,以通过所述多个计算装置中的所述至少一个将数据大小从第一大小减小到第二大小;以及将大小减小的数据块传递到耦合到所述第二多个通信子系统中的一个的主机。
附图说明
图1是根据本公开的若干实施例呈包含一种设备的计算系统的形式的功能框图,所述设备包含第一多个通信子系统、第二多个通信子系统和多个存储器装置。
图2是根据本公开的若干实施例呈包含一种设备的计算系统的形式的又一功能框图,所述设备包含第一多个通信子系统、第二多个通信子系统和多个存储器装置。
图3是根据本公开的若干实施例呈包含一种设备的计算系统的形式的又一功能框图,所述设备包含第一多个通信子系统、第二多个通信子系统和多个存储器装置。
图4是根据本公开的若干实施例呈包含若干端口的计算核心的设备的形式的功能框图。
图5是根据本公开的若干实施例表示对应于扩展存储器接口的实例方法的流程图。
具体实施方式
描述与用于执行扩展存储器操作的扩展存储器通信子系统有关的系统、设备和方法。实例设备可包含彼此耦合的多个计算装置。所述多个计算装置中的每一个可包含被配置成响应于数据块的接收而对所述数据块执行操作的处理单元。所述多个计算装置中的每一个可进一步包含被配置作为用于所述处理单元的高速缓存的存储器阵列。实例设备可进一步包含耦合到所述多个计算装置和第二多个通信子系统的第一多个通信子系统。第一和第二多个通信子系统被配置成请求和/或传递数据块。
扩展存储器接口可传递用以执行由单个地址和操作数指定的操作的指令,且可由包含处理单元和存储器资源的计算装置执行。计算装置可对经由计算装置流式传输的数据执行扩展存储器操作,而不接收中间命令。在一实例中,计算装置被配置成接收执行操作的命令,所述操作包括利用计算装置的处理单元对数据执行操作,且确定对应于所述操作的操作数存储在存储器资源中。计算装置可进一步使用存储在存储器资源中的操作数执行操作。
计算装置可以是能够支持例如Linux等具有完备特征的操作系统的RISC-V应用处理器核心。此特定核心可与例如物联网(IoT)节点和网关、存储和/或联网等应用相关联而使用。所述核心可耦合到若干端口,例如存储器端口、系统端口、外围设备端口和/或前端口。作为实例,存储器端口可与存储器装置通信,系统端口可与芯片上加速器通信,外围设备端口可与芯片外串行端口通信,和/或前端口可与主机接口通信,如下文将与图4相关联进一步描述。
以此方式,第一通信子系统可用于将数据从特定端口(例如,计算装置的存储器端口)引导经过第一通信子系统(例如,选择所述特定存储器端口的多路复用器),且将数据经由第二通信子系统(例如,例如AXI互连接口等接口)传递到存储器控制器,所述存储器控制器将数据传递到存储器装置(例如,DDR存储器、三维(3-D)交叉点存储器、NAND存储器等)。在一实例中,AXI互连接口可遵守来自的AXI版本4规范,包含AXI4-Lite控制寄存器接口子集。
如本文中所使用,“扩展存储器操作”指代可由单个地址(例如,存储器地址)和操作数(例如,64位操作数)指定的存储器操作。操作数可表示为多个位(例如,位串或位的串)。然而,实施例不限于由64位操作数指定的操作,且所述操作可由比64位大(例如,128位等)或小(例如,32位)的操作数指定。如本文所描述,用以执行扩展存储器操作的可访问的有效地址空间是主机计算系统或存储控制器可访问的存储器装置或文件系统的大小。
扩展存储器操作可包含可由处理装置(例如,由例如核心110、210、310、410等处理装置,或确切地展示为图4中的410的核心计算装置)执行的指令和/或操作。核心的实例可包含精简指令集计算装置或可执行指令以执行各种计算任务的其它硬件处理装置。在一些实施例中,执行扩展存储器操作可包含检索存储于计算装置的存储器资源中的数据和/或指令;在计算装置110内执行操作(例如,不将数据或指令传递到计算装置外部的电路系统);以及将扩展存储器操作的结果存储在计算装置110的存储器资源中或次级存储装置中(例如,比如本文在图1中所示出的存储器装置116-1、116-2等存储器装置中)。
扩展存储器操作的非限制性实例可包含浮点加法累积、32位复数运算、平方根地址(SQRT(addr))运算、转换操作(例如,在浮点和整数格式之间转换,和/或在浮点和posit格式之间转换)、将数据正规化为固定格式、绝对值运算等。在一些实施例中,扩展存储器操作可包含由就地更新的计算装置执行的操作(例如,其中扩展存储器操作的结果存储于在执行扩展存储器操作之前存储扩展存储器操作的执行过程中使用的操作数的地址处),以及其中使用先前存储的数据来确定新数据的操作(例如,其中使用存储于特定地址处的操作数来生成覆写存储操作数的特定地址的新数据的操作)。
因此,在一些实施例中,扩展存储器操作的执行可缓解或消除锁定或互斥操作,因为扩展存储器操作可在计算装置内执行,这可减少多个线程执行之间的争用。在执行扩展存储器操作期间减少或消除对线程执行锁定或互斥操作可使计算系统的性能提高,例如,因为扩展存储器操作可在同一计算装置内或跨越彼此通信的计算装置中的两个或更多个并行地执行。另外,在一些实施例中,在将扩展存储器操作的结果从执行操作的计算装置传递到主机时,本文中所描述的扩展存储器操作可减少或消除锁定或互斥操作。
存储器装置可用于将重要或关键数据存储在计算装置中,且可经由至少一个扩展存储器接口在主机与计算装置相关联之间传递此数据。然而,随着存储器装置所存储的数据的大小和数量增加,将数据传递到主机和从主机传递数据可能变得耗时且资源密集的。举例来说,在主机使用大数据块请求执行存储器操作时,要求所述请求所消耗的时间量和/或资源量可与同数据块相关联的数据的大小和/或量成比例地增加。
随着存储器装置的存储能力增加,这些效应可能变得更加明显,这是因为越来越多的数据能够被存储器装置存储且因此可用于存储器操作中。另外,因为数据可被处理(例如,可对数据执行存储器操作),所以随着能够存储在存储器装置中的数据的量增加,可被处理的数据的量也可增加。这可能导致处理时间增加和/或处理资源消耗增加,从而可能使某些类型的存储器操作的执行变复杂。为了缓解这些和其它问题,本文中的实施例可允许使用存储器装置、一或多个计算装置,和/或存储器阵列及第一多个通信子系统(例如,多路复用器)和第二多个子系统(例如,比如AXI互连等接口)执行扩展存储器操作以便更高效地将数据从计算装置传递到存储器装置和/或从计算装置传递到主机,且反之亦然。
在一些方法中,执行存储器操作可能需要针对计算系统的存储器(例如,存储器装置和/或存储器阵列)的多个时钟循环和/或多个函数调用。相比之下,本文中的实施例可允许在以单个函数调用或命令执行存储器操作的情况下执行扩展存储器操作。举例来说,与利用至少一个命令和/或函数调用来加载待被操作的数据且接着利用至少一个后续函数调用或命令来存储已被操作的数据的方法相比,本文中的实施例可允许使用比其它方法更少的函数调用或命令来执行存储器操作。此外,计算系统的计算装置可经由第一通信子系统(例如,多路复用器、芯片上控制网络等)和/或第二通信子系统(例如,接口、比如AXI互连等互连等)接收执行存储器操作的请求,且可经由第一通信子系统和第二通信子系统从存储器装置接收用于执行所请求的存储器操作的数据块。虽然串联地描述第一和第二通信子系统,但实施例不限于此。作为实例,针对数据的请求和/或数据块的接收可单独经由第二通信子系统。
通过减少执行存储器操作的过程中利用的函数调用和/或命令的数目,与执行存储器操作需要多个函数调用和/或命令的方法相比,可减少执行此类操作所消耗的时间量和/或执行此类操作所消耗的计算资源量。此外,本文中的实施例可减少数据在存储器装置和/或存储器阵列内的移动,因为可能不需要在执行存储器操作之前将数据加载到特定位置中。相比于一些方法,尤其是在其中大量数据经受存储器操作的情境中,此可缩短处理时间。
此外,本文中所描述的扩展存储器操作可允许比一些方法大得多的一组类型字段。举例来说,由主机执行以请求使用存储器装置(例如,存储器子系统)中的数据执行操作的指令可包含类型、地址和数据字段。所述指令可经由第一通信子系统(例如,多路复用器)和第二通信子系统(例如,接口)发送到多个计算装置中的至少一个。且数据可经由第一和/或第二通信子系统从存储器装置传递。类型字段可对应于所请求的特定操作,地址可对应于其中存储待用于执行操作的地址,且数据字段可对应于待用于执行操作的数据(例如,操作数)。在一些方法中,类型字段可限于不同大小读取和/或写入,以及一些简单的整数累积运算。相比之下,本文中的实施例可允许利用较广范围的类型字段,因为当执行扩展存储器操作时可使用的有效地址空间可对应于存储器装置的大小。通过扩展可用于执行操作的地址空间,本文中的实施例因此可允许较广范围的类型字段,且因此,相比于不允许为存储器装置的大小的有效地址空间的方法,可执行较广范围的存储器操作。
在本公开的以下详细描述中,参考形成本公开的部分的附图,且图中通过图示的方式展示了可实践本公开的一或多个实施例的方式。足够详细地描述这些实施例以使所属领域的一般技术人员能够实践本公开的实施例,且应理解,可利用其它实施例且可在不脱离本公开的范围的情况下作出过程、电气和结构性改变。
如本文所使用,例如“X”、“Y”、“N”、“M”、“A”、“B”、“C”、“D”等特定地关于图式中的参考标号的指定符指示可包含若干如此指定的特定特征。还应理解,本文中所使用的术语仅仅是出于描述特定实施例的目的且并不意图为限制性的。如本文中所使用,除非上下文另外明确规定,否则单数形式“一(a/an)”和“所述(the)”可包含单数和复数个指代物两者。另外,“若干”、“至少一个”和“一或多个”(例如,若干存储器组)可指一或多个存储器组,而“多个”意在指代超过一个此类事物。此外,贯穿本申请以许可的意义(即,有可能、能够)而非以强制性的意义(即,必须)使用词语“可能”和“可”。术语“包含”和其派生词指代“包含(但不限于)”。视上下文而定,术语“耦合(coupled/coupling)”意味着物理上直接或间接地连接或用于访问和移动(发射)命令和/或数据。视上下文而定,术语“数据”及“数据值”在本文中可互换地使用且可具有相同含义。
本文中的图式遵循编号惯例,其中前一或多个数字对应于图号,且其余数字标识图中的元件或组件。可通过使用类似数字来标识不同图式之间的类似的元件或组件。举例来说,104可参考图1中的元件“04”,且类似元件在图2中可参考为204。通常在本文中可用单个元件编号指代一组或多个类似元件或组件。举例来说,多个参考元件110-1、110-2、110-3、110-4、110-5可通常参考为110。如将了解,可添加、交换和/或去除本文中的各个实施例中展示的元件,以便提供本公开的若干额外实施例。另外,图中提供的元件的比例和/或相对尺度意图说明本公开的某些实施例,并且不应在限制性意义上看待。
图1是根据本公开的若干实施例呈包含设备104的计算系统100的形式的功能框图,所述设备包含第一多个通信子系统108、第二多个通信子系统106和多个存储器装置116。如本文所使用,“设备”可以指但不限于多种结构或结构的组合中的任何一种,例如电路或电路系统、一或多个裸片、一或多个模块、一或多个装置,或者一或多个系统。在图1中所示出的实施例中,存储器装置116-1…116-N可包含一或多个存储器模块(例如,双数据速率(DDR)存储器、三维(3D)交叉点存储器、NAND存储器、单列直插式存储器模块、双列直插式存储器模块等)。存储器装置116-1、…、116-N可包含易失性存储器和/或非易失性存储器。在若干实施例中,存储器装置116-1、...、116-N可包含多芯片装置。多芯片装置可以包含若干不同的存储器类型和/或存储器模块。举例来说,存储器系统可以包含在任何类型的模块上的非易失性或易失性存储器。
存储器装置116-1、...、116-N可以提供用于计算系统100的主存储器或可在整个计算系统100中用作额外存储器或存储装置。每一存储器装置116-1、…、116-N可包含例如易失性和/或非易失性存储器单元等存储器单元的一或多个阵列。举例来说,阵列可以是具有NAND架构的快闪阵列。实施例不限于特定类型的存储器装置。举例来说,存储器装置可以包含RAM、ROM、DRAM、SDRAM、PCRAM、RRAM和快闪存储器以及其它存储器装置。
在其中存储器装置116-1、...、116-N包含非易失性存储器的实施例中,存储器装置116-1、...、116-N可以是例如NAND或NOR快闪存储器装置等快闪存储器装置。然而,实施例不限于此,且存储器装置116-1、...、116-N可以包含例如非易失性随机存取存储器装置(例如,NVRAM、ReRAM、FeRAM、MRAM、PCM)等其它非易失性存储器装置、例如3-D交叉点(3DXP)存储器装置等“新兴”存储器装置,或其组合。非易失性存储器的3D XP阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,与许多基于快闪的存储器相比,3D XP非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。
如图1中所示出,多个计算装置110-1、110-2、110-3、110-4、110-5(下文中统称为多个计算装置110)可耦合到SRAM 109。所述多个计算装置110可经由总线矩阵耦合到SRAM109。此外,所述多个计算装置110可耦合到第一多个通信子系统(例如,多路复用器)108-1、108-2、108-3。所述第一多个通信子系统108可包含被配置成在本文中所描述的操作的执行期间向计算装置110分配和取消分配资源的电路系统和/或逻辑。举例来说,所述电路系统和/或逻辑可在本文中所描述的扩展存储器操作的执行期间向计算装置110分配和/或取消分配资源。
所述多个计算装置110可经由SRAM 109耦合到所述第一多个通信子系统108中的第一个(108-1)。所述多个计算装置110可直接耦合到所述第一多个通信子系统中的第二个(108-2)和第三个(108-3),如图1中的箭头所示。以此方式,所述第一多个通信子系统中的每一个可选择用于传递数据的特定计算装置110,且反之亦然,计算装置110中的每一个可经由所述第一多个通信子系统108传递数据。
所述第一多个通信子系统108可耦合到第二多个通信子系统(例如,比如互连接口等接口)106-1、106-2、106-3、106-4(下文中统称为第二多个通信子系统106)。所述第二多个通信子系统106中的每一个可耦合到控制器112、加速器114、串行端口118和主机接口120中的对应一个。在一个实例中,所述第二多个通信子系统106可经由若干AXI总线耦合到相应控制器112、加速器114、串行端口118和/或主机接口120。
如所示出,所述第二多个通信子系统106中的第一个(106-1)可耦合到控制器(例如,存储器控制器112)。控制器112可经由若干信道107-1、...、107-N耦合到若干存储器装置116-1、...、116-N。所述第二多个通信子系统106中的第二个(106-2)可耦合到逻辑电路系统113。逻辑电路系统113可位于与计算装置110、第一多个通信子系统、第二多个通信子系统106等相同的现场可编程门阵列(FPGA)上。逻辑电路系统113可包含用于执行若干posit运算和/或用于与FPGA上的内部SRAM通信的芯片上加速器。所述第二多个通信子系统106中的第三个(106-3)可用于经由芯片外串行端口118在芯片外传递数据。所述第二多个通信子系统106中的第四个(106-4)可耦合到主机接口120,且可经由信道103/105与主机102的主机控制器101通信。
主机102可以是主机系统,例如个人膝上型计算机、台式计算机、数码相机、智能电话、存储卡读卡器和/或具备物联网功能的装置,以及各种其它类型的主机,且可包含存储器存取装置,例如处理器(或处理装置)。所属领域的一般技术人员将了解,“处理器”可既定为一或多个处理器,例如并行处理系统、若干协处理器等。主机102可包含系统母板和/或底板,且可包含若干处理资源(例如,一或多个处理器、微处理器,或某一其它类型的控制电路系统)。在一些实施例中,主机可包含主机控制器101,所述主机控制器可被配置成通过(例如)生成命令且将命令传递到主机控制器以致使执行例如扩展存储器操作等操作来控制主机102的至少一些操作。主机控制器101可包含可被配置成控制主机102的至少一些操作的电路系统(例如,硬件)。举例来说,主机控制器101可以是专用集成电路(ASIC)、现场可编程门阵列(FPGA),或被配置成控制主机102的至少一些操作的电路系统和/或逻辑的其它组合。
系统100可包含单独的集成电路,或主机102、所述第一多个通信子系统108、所述第二多个通信子系统106、控制器112、芯片上加速器114、串行端口118、主机接口120和/或存储器装置116-1、...、116-N可位于相同集成电路上。系统100可为例如服务器系统和/或高性能计算(HPC)系统和/或其一部分。尽管图1中展示的实例示出具有冯诺伊曼体系结构(Von Neumann architecture)的系统,但本公开的实施例可实施于非冯诺伊曼体系结构中,所述非冯诺伊曼体系结构可不包含通常与冯诺伊曼体系结构相关联的一或多个组件(例如,CPU、ALU等)。
控制器112可被配置成向存储器装置116-1、...、116-N中的一或多个请求数据块,且致使在本文中的替代方案中可称为“计算装置”的核心110-1、...、110-N对数据块执行操作(例如,扩展存储器操作)。可执行所述操作以评估可由与数据块相关联的单个地址和一或多个操作数指定的功能。控制器112可进一步被配置成致使将扩展存储器操作的结果经由第二106和/或第一108通信子系统存储于计算装置110-1、...、110-N中的一或多个中,和/或传递到信道(例如,通信路径103和/或105)和/或主机102。
在一些实施例中,所述第二多个通信子系统106可请求远程命令,开始DMA命令,发送读取/写入位置,和/或将开始功能执行命令发送到所述多个计算装置110中的一个。在一些实施例中,所述第二多个通信子系统106可请求将数据块从计算装置110的缓冲器复制到存储器控制器112的缓冲器或存储器装置116。反之亦然,所述第二多个通信子系统106中的一个可请求将数据块从存储器控制器112的缓冲器或存储器装置116复制到计算装置110的缓冲器。所述第二多个通信子系统106可请求将数据块从主机102的缓冲器复制到计算装置110,或反之亦然,请求将数据块从计算装置110复制到主机102。所述第二多个通信子系统106可请求将数据块从存储器控制器112的缓冲器或存储器装置116复制到主机102的缓冲器。反之亦然,所述第二多个通信子系统106可请求将数据块从主机102的缓冲器复制到存储器控制器112的缓冲器或存储器装置116。此外,在一些实施例中,所述第二多个通信子系统106可请求在计算装置110上执行来自主机的命令。所述第二多个通信子系统106可请求在额外计算装置110上执行来自计算装置110的命令。所述第二多个通信子系统106可请求在计算装置110上执行来自存储器控制器112的命令。在一些实施例中,如结合图3更详细描述,所述第二多个通信子系统106可包含控制器(未示出)的至少一部分。
在一些实施例中,所述第二多个通信子系统106可将数据块(例如,直接存储器存取(DMA)数据块)从计算装置110传递到媒体装置116(经由存储器控制器112),或反之亦然,可将数据块从媒体装置116传递到计算装置110。所述第二多个通信子系统106将数据块(例如,DMA块)从计算装置110传递到主机102,或反之亦然,从主机102传递到计算装置110。此外,第二多个通信子系统106可将数据块(例如,DMA块)从主机102传递到媒体装置116,或反之亦然,从媒体装置116传递到主机102。在一些实施例中,所述第二多个通信子系统106可从计算装置110-1、...、110-N接收输出(例如,已被执行扩展存储器操作的数据),且将所述输出从计算装置110-1、...、110-N传递到设备104的控制器115和/或主机102,且反之亦然。举例来说,所述第二多个通信子系统106可被配置成接收已通过计算装置110-1、...、110-N经历扩展存储器操作的数据,且将对应于扩展存储器操作的结果的数据传递到控制器115和/或主机102。在一些实施例中,第二多个通信子系统106可包含控制器115的至少一部分。举例来说,所述第二多个通信子系统106可包含包括控制器115或其部分的电路系统。
存储器控制器112可以是“标准”或“哑(dumb)”存储器控制器。举例来说,存储器控制器112可被配置成执行针对存储器装置116-1、...、116-N的简单操作,例如复制、写入、读取、错误校正等。然而,在一些实施例中,存储器控制器112不对与存储器装置116-1、...、116-N相关联的数据执行处理(例如,用以操纵数据的操作)。举例来说,存储器控制器112可致使执行读取和/或写入操作以经由通信路径107-1、…、107-N从存储器装置116-1、…、116-N读取数据或将数据写入到存储器装置116-1、…、116-N,但存储器控制器112可不对从存储器装置116-1、…、116-N读取或写入到存储器装置116-1、…、116-N的数据执行处理。在一些实施例中,存储器控制器112可为非易失性存储器控制器,但实施例不限于此。
图1的实施例可包含为避免使本公开的实施例模糊不清而未说明的额外电路系统。举例来说,设备104可包含地址电路系统,以锁存经由I/O电路系统在I/O连接上提供的地址信号。可通过行解码器和列解码器接收和解码地址信号以访问存储器装置116-1、…、116-N。所属领域的技术人员应了解,地址输入连接的数目可取决于存储器装置116-1、...、116-N的密度和架构。
在一些实施例中,可使用图1中展示的计算系统100通过将数据(例如,文件)选择性地存储或映射到计算装置110中来执行扩展存储器操作。数据可选择性地存储于计算存储器的地址空间中。在一些实施例中,数据可响应于从主机102接收的命令而选择性地存储或映射于计算装置110中。在其中从主机102接收命令的实施例中,命令可经由与主机102相关联的接口(例如,通信路径103和/或105)以及分别经由第一和第二多个通信子系统108和106传递到计算装置110。接口103/105、第一多个通信子系统108和所述第二多个通信子系统106可以是外围组件互连高速(PCIe)总线、双数据速率(DDR)接口、互连接口(例如,AXI互连接口)、多路复用器(mux)或其它合适的接口或总线。然而,实施例不限于此。
在其中数据(例如,其中数据待用于扩展存储器操作的执行)映射到计算装置110中的非限制性实例中,主机控制器101可将命令传递到计算装置110以使用映射到计算装置110中的数据起始扩展存储器操作的执行。在一些实施例中,主机控制器101可查找对应于映射到计算装置110中的数据的地址(例如,物理地址),且基于所述地址确定所述地址(和因此,数据)映射到哪一计算装置(例如,计算装置110-1)。命令可接着传递到含有所述地址(且因此,数据)的计算装置(例如,计算装置110-1)。
在一些实施例中,数据可以是64位操作数,但实施例不限于具有特定大小或长度的操作数。在其中数据为64位操作数的实施例中,一旦主机控制器101基于存储数据的地址将起始扩展存储器操作的执行的命令传递到正确的计算装置(例如,计算装置110-1),计算装置(例如,计算装置110-1)就可使用所述数据执行扩展存储器操作。
在一些实施例中,计算装置110可跨邻接的地址空间单独地寻址,这可促进如本文所描述的扩展存储器操作的执行。也就是说,存储数据的或数据映射到的地址可对于所有计算装置110是唯一的,使得当主机控制器101查找地址时,所述地址对应于特定计算装置(例如,计算装置110-1)中的位置。
举例来说,第一计算装置110-1可具有与其相关联的第一地址集合,第二计算装置110-2可具有与其相关联的第二地址集合,第三计算装置110-3可具有与其相关联的第三地址集合,直到第n计算装置(例如,计算装置110-N),其可具有与其相关联的第n地址集合。也就是说,第一计算装置110-1可具有地址集合0000000到0999999,第二计算装置110-2可具有地址集合1000000到1999999,第三计算装置110-3可具有地址集合2000000到2999999,等等。应了解,这些地址数目仅为说明性的,而非限制性,且可取决于计算装置110的架构和/或大小(例如,存储容量)。
作为其中扩展存储器操作包括浮点-加法-累积运算(FLOATINGPOINT_ADD_ACCUMULATE)的非限制性实例,计算装置110可将目的地地址视为浮点数,将浮点数加到存储在计算装置110的地址处的自变量,且将结果存储回原始地址中。举例来说,当主机控制器101(或设备控制器115,未图示)起始浮点加法累积扩展存储器操作的执行时,主机查找的计算装置110的地址(例如,计算装置中的数据映射到的地址)可视为浮点数,且存储于地址中的数据可视为用于执行扩展存储器操作的操作数。响应于接收到起始扩展存储器操作的命令,数据(例如,在此实例中,操作数)映射到的计算装置110可执行加法操作以将数据加到所述地址(例如,地址的数值),且将加法的结果存储回计算装置110的原始地址中。
如上文所描述,此些扩展存储器操作的执行在一些实施例中可能仅需要将单个命令(例如,请求命令)从主机102(例如,从主机控制器101)传递到存储器装置104或从控制器115传递到计算装置110。与一些先前方法相比,这可缩短操作的执行过程中消耗的例如多个命令经过接口103、105和/或例如操作数等数据从一个地址移动到计算装置110内的另一地址的时间量。
另外,与在执行操作之前必须从不同位置检索和加载操作数的方法相比,根据本公开的扩展存储器操作的执行可进一步减少处理功率或处理时间的量,因为映射到其中执行扩展存储器操作的计算装置110中的数据可用作用于扩展存储器操作的操作数,和/或数据映射到的地址可用作用于扩展存储器操作的操作数。也就是说,至少因为本文中的实施例允许跳过操作数的加载,所以相比于加载操作数且随后存储操作数之间执行的操作的结果的方法,计算系统100的性能可得以改进。
此外,在一些实施例中,因为可使用地址和存储在地址中的数据在计算装置110内执行扩展存储器操作,且在一些实施例中,因为扩展存储器操作的结果可存储回原始地址中,所以可在执行扩展存储器操作期间放松或不需要锁定或互斥操作。在执行扩展存储器操作期间减少或消除对线程执行锁定或互斥操作可使计算系统100的性能提高,因为扩展存储器操作可在同一计算装置110内或跨越计算装置110中的两个或更多个并行地执行。
在一些实施例中,计算装置110中的数据的有效映射可包含基地址、片段大小和/或长度。基地址可对应于其中存储数据映射的计算装置110中的地址。片段大小可对应于计算系统100可处理的数据量(例如,以字节计),且长度可对应于对应于数据的位的数量。应注意,在一些实施例中,存储在计算装置110中的数据可能不可在主机102上高速缓存。举例来说,扩展存储器操作可完全在计算装置110内执行,而不在扩展存储器操作的执行期间妨碍或以其它方式将数据传递到主机102或从主机102传递数据。
在其中基地址为4096、片段大小为1024且长度为16,386的非限制性实例中,映射地址7234可在第三片段中,其可对应于所述多个计算装置110当中的第三计算装置(例如,计算装置110-3)。在此实例中,主机102和/或第一108和第二106通信子系统可将执行扩展存储器操作的命令(例如,请求)转发到第三计算装置110-3。第三计算装置110-3可确定数据是否存储于第三计算装置110-3的存储器中的映射地址中。如果数据存储于映射地址(例如,第三计算装置110-3中的地址中),则第三计算装置110-3可使用所述数据执行所请求的扩展存储器操作,且可将扩展存储器操作的结果存储回最初存储数据的地址中。
在一些实施例中,含有被请求用于执行扩展存储器操作的数据的计算装置110可由主机控制器101和/或第一108和/或第二106通信子系统确定。举例来说,可将可供所有计算装置110使用的总地址空间的一部分分配到每一相应计算装置。相应地,主机控制器101和/或第一108和/或第二106通信子系统可具备对应于总地址空间的哪些部分对应于哪些计算装置110的信息,且可因此引导相关计算装置110以执行扩展存储器操作。在一些实施例中,主机控制器101和/或第二106通信子系统可将对应于相应计算装置110的地址(或地址范围)存储在例如表等数据结构中,且基于存储于数据结构中的地址将扩展存储器操作的执行引导到计算装置110。
然而,实施例不限于此,且在一些实施例中,主机控制器101和/或第二通信子系统106可确定存储器资源的大小(例如,数据量),且基于与每一计算装置110相关联的存储器资源的大小和可供所有计算装置110使用的总地址空间确定哪一计算装置110存储待用于执行扩展存储器操作的数据。在其中主机控制器101和/或第二通信子系统106基于可供所有计算装置110使用的总地址空间和可供每一计算装置110使用的存储器资源的量确定存储待用于执行扩展存储器操作的数据的计算装置110的实施例中,可能有可能跨计算装置存储器资源的多个非重叠部分执行扩展存储器操作。
继续上述实例,如果所请求地址中不存在数据,则第三计算装置110-3可请求数据(如本文中结合图2-5更详细描述),且一旦数据加载到第三计算装置110-3的地址中就执行扩展存储器操作。在一些实施例中,一旦计算装置(例如,在此实例中,第三计算装置110-3)完成扩展存储器操作,可通知主机102和/或扩展存储器操作的结果可传递到存储器装置116和/或主机102。
在一些实施例中,存储器控制器112可被配置成响应于来自设备104的控制器或主机102的请求从耦合到设备104的存储器装置116-1、...、116-N检索数据块。存储器控制器112可随后致使将数据块传递到计算装置110-1、...、110-N和/或设备控制器。类似地,存储器控制器112可被配置成从计算装置110和/或控制器115接收数据块。存储器控制器112可随后致使将数据块传递到耦合到存储控制器104的存储器装置116。
数据块的大小可大致为4千字节(但实施例不限于此特定大小),且可由计算装置110-1、...、110-N响应于由控制器115和/或主机生成且经由第二通信子系统106发送的一或多个命令以流式传输的方式处理。在一些实施例中,数据块可为32位、64位、128位等数据字或数据组块,和/或数据块可对应于待用于执行扩展存储器操作的操作数。
举例来说,如本文中结合图2-5更详细描述,因为计算装置110可响应于先前数据块上扩展存储器操作的执行完成而对第二数据块执行扩展存储器操作(例如,过程),所以在数据块正由计算装置110处理的同时,数据块可连续地流式传输经过计算装置110。在一些实施例中,数据块可经由计算装置110在不存在来自控制器和/或主机102的中间命令的情况下以流式传输的方式处理。也就是说,在一些实施例中,控制器115(或主机102)可发布命令以致使计算装置110处理其上接收的数据块,且随后由计算装置110接收的数据块可在不存在来自控制器的额外命令的情况下处理。
在一些实施例中,处理数据块可包含使用数据块执行扩展存储器操作。举例来说,计算装置110-1、...、110-N可响应于经由所述第二多个通信子系统106来自控制器的命令对数据块执行扩展存储器操作以评估一或多个功能,移除不合需要的数据,提取相关数据,或以其它方式结合扩展存储器操作的执行使用数据块。
在其中数据(例如,其中数据待用于执行扩展存储器操作)映射到计算装置110中的一或多个中的非限制性实例中,控制器可将命令传递到计算装置110以使用映射到计算装置110中的数据起始扩展存储器操作的执行。在一些实施例中,控制器115可查找对应于映射到计算装置110中的数据的地址(例如,物理地址),且基于所述地址确定所述地址(和因此,数据)映射到哪一计算装置(例如,计算装置110-1)。命令可接着传递到含有所述地址(且因此,数据)的计算装置(例如,计算装置110-1)。在一些实施例中,命令可经由第二通信子系统106传递到计算装置(例如,计算装置110-1)。
控制器115(或主机)可进一步被配置成将命令发送到计算装置110以分配和/或取消分配可供计算装置110在使用数据块执行扩展存储器操作时使用的资源。在一些实施例中,分配和/或取消分配可供计算装置110使用的资源可包含选择性地启用一些计算装置110,同时选择性地停用一些计算装置110。举例来说,如果需要小于总数目的计算装置110来处理数据块,则控制器115可将命令发送到待用于处理数据块的计算装置110以使仅那些合乎需要的计算装置110能够处理数据块。
控制器115可在一些实施例中进一步被配置成发送命令以使由计算装置110执行的例如扩展存储器操作等操作的执行同步。举例来说,控制器115(和/或主机)可将命令发送到第一计算装置110-1以致使第一计算装置110-1执行第一扩展存储器操作,且控制器115(或主机)可将命令发送到第二计算装置110-2以使用第二计算装置执行第二扩展存储器操作。通过控制器115使由计算装置110执行的例如扩展存储器操作等操作的执行同步可进一步包含致使计算装置110在特定时间或以特定次序执行特定操作。
如上文所描述,由执行扩展存储器操作产生的数据可存储在计算装置110中在执行扩展存储器操作之前存储数据的原始地址中,然而,在一些实施例中,由执行扩展存储器操作产生的数据块可在执行扩展存储器操作之后转换成逻辑记录。逻辑记录可包括独立于其物理位置的数据记录。举例来说,逻辑记录可以是指向计算装置110中的至少一个中存储对应于扩展存储器操作的执行的物理数据的地址(例如,位置)的数据记录。
在一些实施例中,扩展存储器操作的结果可存储于计算装置存储器的与在执行扩展存储器操作之前存储数据的地址相同的地址中。然而,实施例不限于此,且扩展存储器操作的结果可存储于计算装置存储器的与在执行扩展存储器操作之前存储数据的地址相同的地址中。在一些实施例中,逻辑记录可指向这些地址位置,使得扩展存储器操作的结果可从计算装置110存取且传递到计算装置110外部的电路系统(例如,传递到主机)。
在一些实施例中,控制器115可直接从存储器控制器112接收数据块和/或将数据块发送到存储器控制器112。这可允许控制器115将未由计算装置110处理的数据块(例如,未在扩展存储器操作的执行过程中使用的数据块)传递进出存储器控制器112。
举例来说,如果控制器115从耦合到存储控制器104的主机102接收待由耦合到存储控制器104的存储器装置116存储的未处理的数据块,则控制器115可致使将未处理的数据块传递到存储器控制器112,所述存储器控制器可继而致使将未处理的数据块传递到耦合到存储控制器104的存储器装置。
类似地,如果主机请求未处理的(例如,完整)数据块(例如,未由计算装置110处理的数据块),则存储器控制器112可致使将未处理的数据块传递到控制器115,所述控制器可随后将未处理的数据块传递到主机。
图2是根据本公开的若干实施例呈包含设备204的计算系统200的形式的功能框图,所述设备包含第一多个通信子系统208、第二多个通信子系统206和多个存储器装置216。如本文所使用,“设备”可以指但不限于多种结构或结构的组合中的任何一种,例如电路或电路系统、一或多个裸片、一或多个模块、一或多个装置,或者一或多个系统。在图2中所示出的实施例中,存储器装置216-1…216-N可包含一或多个存储器模块(例如,双数据速率(DDR)存储器、三维(3D)交叉点存储器、NAND存储器、单列直插式存储器模块、双列直插式存储器模块等)。存储器装置216-1、…、216-N可包含易失性存储器和/或非易失性存储器。在若干实施例中,存储器装置216-1、...、216-N可包含多芯片装置。多芯片装置可以包含若干不同的存储器类型和/或存储器模块。举例来说,存储器系统可以包含在任何类型的模块上的非易失性或易失性存储器。
如图2中所示出,且与图1相比,多个计算装置210-1、210-2、210-3、210-4、210-5(下文中统称为多个计算装置210)可各自包含相应SRAM 209-1、209-2、209-3、209-4、209-5。此可绕过必须共享单个SRAM(如图1中所示出)且提供直接到所述第一多个通信子系统208中的第一个208-1的访问,而非初始经由共享SRAM(例如图1中的SRAM 109)传递。此外,所述多个计算装置210可各自耦合到第一多个通信子系统(例如,多路复用器)208-1、208-2、208-3。所述第一多个通信子系统208可包含被配置成在本文中所描述的操作的执行期间向计算装置210分配和取消分配资源的电路系统和/或逻辑。举例来说,所述电路系统和/或逻辑可在本文中所描述的扩展存储器操作的执行期间向计算装置210分配和/或取消分配资源。虽然上文描述的实例包含耦合到计算装置中的每一个的SRAM(例如图1中)或计算装置中的每一个内的SRAM,但实例不限于此。举例来说,例如SRAM等高速缓存可位于多个位置处,例如在设备204的外部、在设备204内部等。
所述第一多个通信子系统208可耦合到第二多个通信子系统(例如,接口,比如互连接口)206-1、206-2、206-3、206-4(下文中统称为第二多个通信子系统206)。所述第二多个通信子系统206中的每一个可耦合到控制器212、加速器214、串行端口218和主机接口220中的对应一个。在一个实例中,所述第二多个通信子系统206可经由若干AXI总线耦合到相应控制器212、加速器214、串行端口218和/或主机接口220。
如所示出,所述第二多个通信子系统206中的第一个(206-1)可耦合到控制器(例如,存储器控制器212)。控制器212可经由若干信道207-1、...、207-N耦合到若干存储器装置216-1、...、216-N。所述第二多个通信子系统206中的第二个(206-2)可耦合到逻辑电路系统213。逻辑电路系统213可位于与计算装置210、第一多个通信子系统、第二多个通信子系统206等相同的现场可编程门阵列(FPGA)上。逻辑电路系统213可包含用于执行若干posit运算和/或用于与FPGA上的内部SRAM通信的芯片上加速器。所述第二多个通信子系统206中的第三个(206-3)可用于经由芯片外串行端口218在芯片外传递数据。所述第二多个通信子系统206中的第四个(206-4)可耦合到主机接口220,且可经由信道203/205与主机202的主机控制器201通信。
图3是根据本公开的若干实施例呈包含设备304的计算系统300的形式的功能框图,所述设备包含多个通信子系统306和多个存储器装置316。如本文所使用,“设备”可以指但不限于多种结构或结构的组合中的任何一种,例如电路或电路系统、一或多个裸片、一或多个模块、一或多个装置,或者一或多个系统。在图3中所示出的实施例中,存储器装置316-1…316-N可包含一或多个存储器模块(例如,双数据速率(DDR)存储器、三维(3D)交叉点存储器、NAND存储器、单列直插式存储器模块、双列直插式存储器模块等)。存储器装置316-1、...、316-N可包含易失性存储器和/或非易失性存储器。在若干实施例中,存储器装置316-1、...、316-N可包含多芯片装置。多芯片装置可以包含若干不同的存储器类型和/或存储器模块。举例来说,存储器系统可以包含在任何类型的模块上的非易失性或易失性存储器。
如图3中所示出,设备304可包含计算装置(例如,计算核心)。在一些实施例中,设备304可以是FPGA。与图1和2相比,计算装置310的每一端口可直接耦合到所述多个通信子系统306(作为实例,而不经由可以是多路复用器的例如通信子系统108和208等另外一组通信子系统耦合)。计算装置310可经由相应端口连接耦合到所述多个通信子系统306,所述端口连接包含存储器端口(“MemPort”)311-1、系统端口“SystemPort”)311-2、外围设备端口(“PeriphPort”)311-3和前端口(“FrontPort”)311-4)。
存储器端口311-1可直接耦合到通信子系统306-1,所述通信子系统特定地被指定以从存储器端口接收数据且将数据传递到存储器控制器312。系统端口311-2可直接耦合到通信子系统306-2,所述通信子系统特定地被指定以从系统端口311-2接收数据且将数据传递到加速器(例如,芯片上加速器)314,所述加速器可接着将数据传递到额外逻辑电路系统313。外围设备端口311-3可直接耦合到通信子系统306-3,所述通信子系统特定地被指定以从外围设备端口311-3接收数据且将数据传递到串行端口318。前端口311-4可直接耦合到通信子系统306-4,所述通信子系统特定地被指定以从前端口311-4接收数据且将数据传递到主机接口320,且随后经由信道303和/或305传递到主机302。在此实施例中,多路复用器可不在端口和通信子系统之间使用,而是直接连接端口和通信子系统以进行数据传递。
在一些实施例中,通信子系统306可促进计算装置310的相应地址空间之间的可见性。举例来说,计算装置310可响应于接收到数据和/或文件将数据存储在计算装置310的存储器资源中。计算装置可使对应于计算装置310的存储器资源中的其中存储数据的位置的地址(例如,物理地址)关联。此外,计算装置310可将与数据相关联的地址解析(例如,划分)成逻辑块。
在一些实施例中,与数据相关联的第零逻辑块可传递到处理装置(例如,精简指令集计算(RISC)装置)。特定计算装置(例如,计算装置110、210、310)可被配置成辨识特定逻辑地址集合可由所述计算装置(例如,210-2)访问,而其它计算装置(例如,分别计算装置210-3、210-4等)可被配置成辨识不同逻辑地址集合可由那些计算装置110、210、310访问。换句话说,第一计算装置(例如,计算装置210-2)可能够访问与所述计算装置(210-2)相关联的第一逻辑地址集合,且第二计算装置(例如,计算装置210-3)可能够访问与其相关联的第二逻辑地址集合,等等。
如果在第一计算装置(例如,计算装置210-2)处请求对应于第二逻辑地址集合(例如,可由第二计算装置210-3访问的逻辑地址)的数据,则通信子系统306可促进第一计算装置(例如,计算装置210-2)和第二计算装置(例如,计算装置210-3)之间的通信以允许第一计算装置(例如,计算装置210-2)访问对应于第二逻辑地址集合(例如,可由第二计算装置210-3访问的逻辑地址集合)的数据。也就是说,通信子系统308可促进计算装置310(例如,210-1)和额外计算装置(例如,计算装置210-2、210-3、210-4)之间的通信以允许计算装置的地址空间彼此可见。
在一些实施例中,计算装置110、210、310之间为促进地址可见性的通信可包含通过第一计算装置(例如,计算装置210-1)的事件队列接收请求访问对应于第二逻辑地址集合的数据的消息,将所请求数据加载到第一计算装置的存储器资源中,以及将所请求数据传递到消息缓冲器。一旦数据已由消息缓冲器缓冲,数据就可经由通信子系统310传递到第二计算装置(例如,计算装置210-2)。
举例来说,在扩展存储器操作的执行期间,控制器115、215、315和/或第一计算装置(例如,计算装置210-1)可确定由主机命令(例如,由例如图1中所示出的主机102等主机生成的用以起始扩展存储器操作的执行的命令)指定的地址对应于所述多个计算装置(110、210)当中的第二计算装置(例如,计算装置210-2)的存储器资源中的位置。在此情况下,可生成计算装置命令且将所述计算装置命令从控制器115、215、315和/或第一计算装置(210-1)发送到第二计算装置(210-2)以起始使用存储于第二计算装置(210-2)的存储器资源中的操作数在由计算装置命令指定的地址处执行扩展存储器操作。
响应于接收到计算装置命令,第二计算装置(210-2)可使用存储于第二计算装置(210-2)的存储器资源中的操作数在由计算装置命令指定的地址处执行扩展存储器操作。这可减少来自主机和存储控制器和/或计算装置(210、310)之间的命令业务,因为主机不必生成额外命令来致使执行扩展存储器操作,这可通过例如缩短与传递命令进出主机相关联的时间来提高计算系统的总体性能。
在一些实施例中,控制器115、215、315可确定执行扩展存储器操作可包含执行多个子操作。举例来说,扩展存储器操作可解析或划分为两个或更多个子操作,所述两个或更多个子操作可作为执行总体扩展存储器操作的一部分执行。在此情况下,控制器115、215、315和/或通信子系统(106、108、206、208、308)可利用上文所描述的地址可见性来促进由各个计算装置110、210、310执行子操作。响应于完成子操作,控制器115、215、315可致使将子操作的结果合并到对应于扩展存储器操作的结果的单个结果中。
在其它实施例中,请求存储于计算装置110、210、310中的数据的应用可知晓哪些计算装置110、210、310包含所请求的数据(例如,可具备与之对应的信息)。在此实例中,所述应用可向相关计算装置110、210、310请求数据,和/或地址可加载到多个计算装置110、210、310中且通过所述应用经由通信子系统108、106、208、206、308请求数据来访问。
控制器115、215、315可以是与通信子系统108、106、208、206、308物理上分离的离散电路系统,且可各自提供为允许计算装置110、210、310、存储器控制器112、212、312和/或控制器115、215、315之间的通信的一或多个集成电路。通信子系统108、106、208、206、308的非限制性实例可包含XBAR或其它通信子系统,其允许控制器115、215、315、计算装置110、210、310和/或存储器控制器112、212、312的互连和/或互操作性。
如上文所描述,响应于接收到由控制器115、215、315、通信子系统108、106、208、206、308和/或主机(例如,图1中所示出的主机102)生成的命令,可实现使用存储于计算装置110、210、310中和/或来自经由计算装置110、210、310流式传输的数据块的数据执行扩展存储器操作。
图4是根据本公开的若干实施例呈包含若干端口411-1、411-2、411-3、411-4的计算核心410的设备的形式的功能框图。计算核心410可包含存储器管理单元(MMU)420、物理存储器保护(PMP)单元422和高速缓存424。
MMU 420指代用于与处理器相关联的存储器和高速缓存操作的计算机硬件组件。MMU 420可负责存储器管理且集成到处理器中,或在一些实例中可位于单独的集成电路(IC)芯片上。MMU 420可用于硬件存储器管理,其可包含监管和调节处理器对随机存取存储器(RAM)和高速缓冲存储器的使用。MMU 420可用于操作系统(OS)存储器管理,其可确保足够的存储器资源可用于每一运行程序的对象和数据结构。MMU 420可用于应用存储器管理,其可分配每一个别程序的所需或所使用的存储器,且接着当操作结束或空间变得可用时回收所释放的存储器空间。
在一个实施例中,PMP单元422可用于限制对存储器的存取且使过程彼此隔离。PMP单元422可用于为指定存储器区域设定存储器存取权限(读取、写入、执行)。PMP单元422可支持具有4字节的最小区大小的8个区。在一些实例中,PMP单元422可仅在M模式中编程。PMP单元422可对U模式存取强制执行许可。然而,锁定区可另外对M模式强制执行其许可。高速缓存424可以是SRAM高速缓存、3D交叉点高速缓存等。高速缓存424可包含8KB、16KB、32KB等且可包含错误校正译码(ECC)。
计算核心410还可包含多个端口,包含存储器端口411-1、系统端口411-2、外围设备端口411-3和前端口411-4。存储器端口411-1可直接耦合到通信子系统(如图3中所示出),所述通信子系统特定地被指定以从存储器端口411-1接收数据。系统端口411-2可直接耦合到通信子系统,所述通信子系统特定地被指定以从系统端口411-2接收数据。经由系统端口411-2的数据可传递到加速器(例如,芯片上加速器)。外围设备端口411-3可直接耦合到通信子系统,所述通信子系统特定地被指定以从外围设备端口411-3接收数据,且此数据可最终传递到串行端口。前端口411-4可直接耦合到通信子系统,所述通信子系统特定地被指定以从前端口411-4接收数据,且此数据可最终传递到主机接口,随后传递到主机。
计算核心410可以是具备完备Linux功能的高速缓存相干的64位RISC-V处理器。在一些实例中,存储器端口411-1、系统端口411-2和外围设备端口411-3可以是传出端口,且前端口411-4可以是传入端口。计算核心410的实例可包含U54-MC计算核心。计算核心410可包含指令存储器系统、指令提取单元、执行管线单元、数据存储器系统,以及对于全局、软件和定时器中断的支持。指令存储器系统可包含16千字节(KiB)2向集合相联指令高速缓存。指令存储器系统中的所有块的存取时延可为一个时钟循环。指令高速缓存可不保持与平台存储器系统的其余部分相干。到指令存储器的写入可通过执行FENCE.I指令而与指令提取流同步。指令高速缓存可具有64字节的行大小,且高速缓存行填充可触发计算核心410外部的突发存取。
指令提取单元可包含分支预测硬件来进改处理器核心的性能。分支预测器可包含28条目分支目标缓冲器(BTB),其可预测所采取分支的目标;512条目分支历史表(BHT),其可预测条件分支的方向;以及6条目返回地址堆叠(RAS),其可预测程序返回的目标。分支预测器可具有一个循环时延,使得正确预测的控制流指令不会产生损失。错误预测的控制流指令可引发三个循环损失。
执行管线单元可以是单议题有序管线。管线可包含五个级:指令提取、指令解码和寄存器提取、执行、数据存储器存取和寄存器写回。管线可具有每时钟循环一个指令的峰值执行速率,且可被完全绕过使得大多数指令具有一个循环结果时延。管线可对写后读和写后写危险互锁,因此指令可经调度以避免停滞。
数据存储器系统可包含DTIM接口,其可支持高达8KiB。从核心到其自身的DTIM的存取时延可对于完整文字为两个时钟循环,且对于较小量为三个时钟循环。从一个核心到任何其它核心的DTIM的存储器请求可不如从核心到其自身的DTIM的存储器请求那样性能良好。未对准存取在硬件中不支持且可导致截留以允许软件模拟。
在一些实施例中,计算核心410可包含浮点单元(FPU),其可提供对32位单精度和64位双精度算术的IEEE 754-2008浮点标准的完全硬件支持。FPU可包含完全管线化融合-乘法–加法单元和迭代除法及平方根单元、量值比较器,以及浮点到整数转换单元,具有对低于正常的值和IEEE默认值的完全硬件支持。
图5是根据本公开的若干实施例表示对应于扩展存储器接口的实例方法528的流程图。在框530处,方法528可包含经由第一通信子系统和第二通信子系统将数据块从存储器装置传递到多个计算装置中的至少一个。第一通信子系统可耦合到所述多个计算装置中的所述至少一个,且第二通信子系统可耦合到第一通信子系统和存储器装置。数据块的传递可响应于接收传递数据块以便执行操作的请求。在一些实施例中,接收用以起始操作的执行的命令可包含接收对应于特定计算装置中的存储对应于操作的执行的操作数的存储器位置的地址。举例来说,如上文所描述,所述地址可以是其中存储待在操作的执行过程中用作操作数的数据的存储器部分中的地址。
在框532处,方法528可包含由所述多个计算装置中的所述至少一个响应于数据块的接收而使用数据块执行操作,以通过所述多个计算装置中的所述至少一个将数据大小从第一大小减小到第二大小。可由控制器致使操作的执行。所述控制器可类似于本文中图1-3中示出的控制器115、215、315。在一些实施例中,执行操作可包含执行如本文中所描述的扩展存储器操作。所述操作可进一步包含由特定计算装置在不存在从可耦合到控制器的主机接收主机命令的情况下执行所述操作。响应于完成执行所述操作,方法528可包含向可耦合到控制器的主机发送通知。
在框534处,方法528可包含将大小减小的数据块传递到耦合到所述第二多个通信子系统中的所述一个的主机。方法528可进一步包含使用额外控制器(例如,存储器控制器)致使将数据块从存储器装置传递到所述第二多个通信子系统。方法528可进一步包含经由所述第一和第二多个通信子系统分配对应于所述多个计算装置当中的相应计算装置的资源以对数据块执行所述操作。
在一些实施例中,用以起始操作的执行的命令可包含对应于特定计算装置的存储器阵列中的位置的地址,且方法528可包含将操作的结果存储在对应于特定计算装置中的所述位置的地址中。举例来说,方法528可包含将操作的结果存储在对应于特定计算装置中的其中在执行扩展存储器操作之前存储对应于操作的执行的操作数的存储器位置的地址中。也就是说,在一些实施例中,操作的结果可存储于计算装置的其中在执行操作之前存储用作操作的操作数的数据的相同地址位置中。
在一些实施例中,方法528可包含由控制器确定对应于操作的执行的操作数未由特定计算装置存储。响应于此确定,方法528可进一步包含由控制器确定对应于操作的执行的操作数存储于耦合到所述多个计算装置的存储器装置中。方法528可进一步包含:从存储器装置检索对应于操作的执行的操作数;致使将对应于操作的执行的操作数存储于所述多个计算装置当中的至少一个计算装置中;和/或致使使用所述至少一个计算装置执行所述操作。存储器装置可类似于图1中所示出的存储器装置116。
在一些实施例中,方法528可进一步包含:确定将作为操作的一部分执行至少一个子操作;将命令发送到不同于所述特定计算装置的计算装置以致使子操作的执行;和/或使用不同于所述特定计算装置的计算装置作为操作的执行的一部分执行所述子操作。举例来说,在一些实施例中,可作出操作将划分为多个子操作的确定,且控制器可致使不同计算装置作为执行操作的一部分而执行不同子操作。在一些实施例中,控制器可与所述第一和第二多个通信子系统(例如,本文在图1-3中示出的108、106、208、206和308)协同作为操作的执行的一部分将子操作指派到计算装置中的两个或更多个。
虽然已经在本文中说明并描述了特定实施例,但是所属领域的一般技术人员将了解,经计算以实现相同结果的布置可以替代所展示的特定实施例。本公开既定涵盖本公开的一或多个实施例的调适或变化。应理解,已以说明性方式而非限制性方式作出以上描述。所属领域的技术人员在审阅以上描述后将显而易见上述实施例的组合及本文中未特定描述的其它实施例。本公开的所述一或多个实施例的范包含在其中使用以上结构和过程的其它应用。因此,本公开的一或多个实施例的范围应参考所附权利要求书以及此些权利要求被赋予的等效物的完整范围来确定。
在以上具体实施方式中,出于简化本公开的目的而将一些特征一并归到单个实施例中。这一公开方法不应被理解为反映以下意图:本公开的所公开实施例必须使用比每一权利要求中明确陈述的特征更多的特征。实际上,如所附权利要求书所反映,本发明主题在于单个所公开实施例的不到全部的特征。因此,所附权利要求书特此并入于具体实施方式中,其中每一权利要求就其自身而言作为单独实施例存在。
Claims (23)
1.一种设备,其包括:
多个计算装置,其各自包括:
处理单元,其被配置成在耦合于主机装置和存储器控制器之间的所述处理单元处接收指示将在经由所述存储器控制器写入或读取的数据上执行的操作的信令;以及
存储器阵列,其被配置作为用于所述处理单元的高速缓存;
其中所述多个计算装置中的每一个计算装置可跨邻接的地址空间单独地寻址;
多个通信子系统,其耦合到所述多个计算装置中的每一个计算装置,其中所述多个通信子系统中的至少一个通信子系统直接地或间接地耦合到以下中的一者:
所述存储器控制器;
加速器;
串行端口;以及
主机接口;
其中:
经由所述多个通信子系统中的至少一个通信子系统分别向所述多个计算装置中的两个或更多个发送指示分别执行所述操作的第一部分和第二部分的命令的额外信令;
所述多个通信子系统的第一集合是多路复用器;
以及所述多个通信子系统的第二集合是外围组件互连高速(PCIe)接口。
2.根据权利要求1所述的设备,其中所述多个通信子系统包括多个互连接口。
3.根据权利要求1所述的设备,其中所述控制器耦合到存储器装置。
4.根据权利要求3所述的设备,其中所述存储器装置包括双数据速率(DDR)存储器、三维(3D)交叉点存储器、NAND存储器或其任何组合中的至少一个。
5.根据权利要求1所述的设备,其中所述加速器在芯片上且耦合到静态随机存取装置(SRAM)。
6.根据权利要求1所述的设备,其中所述加速器在芯片上且耦合到被配置成执行算术运算或逻辑运算或这两者的算术逻辑单元(ALU)。
7.根据权利要求1所述的设备,其中所述多个计算装置中的每一个计算装置耦合到多路复用器,所述多路复用器耦合到所述多个通信子系统。
8.根据权利要求1所述的设备,其中所述多个计算装置中的每一个计算装置的所述处理单元配置有精简指令集架构。
9.根据权利要求1所述的设备,其中所述数据上执行的所述操作包括在其中所述数据的至少一些被排序、重新排序、移除或丢弃的操作、逗点分隔的值解析操作、或其任何组合。
10.一种设备,其包括:
多个计算装置,其各自包括:
处理单元,其被配置成在耦合于主机装置和存储器装置之间的所述处理单元处接收指示将在从所述存储器装置写入或读取的数据上执行的操作的信令;以及
存储器阵列,其被配置作为用于所述处理单元的高速缓存;
其中所述多个计算装置中的每一个计算装置可跨邻接的地址空间单独地寻址;
第一多个通信子系统,其每一者耦合到所述多个计算装置,其中所述第一多个通信子系统中的至少一个通信子系统是多路复用器;以及
第二多个通信子系统,其中所述第二多个通信子系统中的至少一个通信子系统是外围组件互连高速(PCIe)接口,所述第二多个通信子系统耦合到:
所述第一多个通信子系统;且
耦合到以下中的至少一者:
控制器,其耦合到所述存储器装置;
加速器;
串行端口;或
主机接口;
其中:
经由所述第一多个通信子系统和所述第二多个通信子系统中的至少一个分别向所述多个计算装置中的两个或更多个发送指示分别执行所述操作的第一部分和第二部分的命令的额外信令;以及
通过所述至少一个多路复用器接收执行所述操作的所述命令。
11.根据权利要求10所述的设备,其中所述多个计算装置、所述第一多个通信子系统和所述第二多个通信子系统配置于现场可编程门阵列(FPGA)上,且所述存储器装置在所述FPGA外部。
12.根据权利要求10所述的设备,其中所述多个计算装置各自被配置成遵守精简指令集计算机(RISC)-V。
13.根据权利要求10所述的设备,其中所述多个计算装置中的每一个计算装置包括:
存储器端口;
系统端口;
外围设备端口;以及
前端口。
14.根据权利要求13所述的设备,其中所述前端口经由所述第一多个通信子系统中的至少一个通信子系统且经由所述第二多个通信子系统中的至少一个通信子系统耦合到所述主机接口。
15.根据权利要求13所述的设备,其中所述存储器端口经由所述第一多个通信子系统中的至少一个通信子系统且经由所述第二多个通信子系统中的至少一个通信子系统耦合到所述存储器装置。
16.根据权利要求13所述的设备,其中所述系统端口经由所述第一多个通信子系统中的至少一个通信子系统且经由所述第二多个通信子系统中的至少一个通信子系统耦合到芯片上加速器。
17.根据权利要求13所述的设备,其中所述外围设备端口经由所述第一多个通信子系统中的至少一个通信子系统且经由所述第二多个通信子系统中的至少一个通信子系统耦合到芯片外串行端口。
18.根据权利要求10所述的设备,其中所述第一多个通信子系统被配置成将所述数据从所述第二多个通信子系统中的至少一个通信子系统传递到所述多个计算装置中的至少一个计算装置。
19.根据权利要求18所述的设备,其中所述第二多个通信子系统中的至少一个通信子系统被配置成从所述存储器装置传递所述数据。
20.一种方法,其包括:
在耦合于主机装置和非易失性存储器装置之间的处理单元处接收指示将在从所述非易失性存储器装置写入或读取的数据上执行的多个操作的信令;
经由第一通信子系统和第二通信子系统将数据块从所述非易失性存储器装置传递到多个计算装置中的至少一个计算装置,
其中:
所述第一通信子系统是耦合到所述多个计算装置中的所述至少一个计算装置的多路复用器,且所述第二通信子系统是耦合到所述第一通信子系统且耦合到所述存储器装置的外围组件互连高速(PCIe)接口;
其中:
所述多个计算装置中的每一个计算装置是精简指令集计算装置;以及
所述多个计算装置中的每一个计算装置可跨邻接的地址空间单独地寻址;
通过所述多个计算装置中的所述至少一个计算装置且基于经接收的所述信令而响应于所述数据块的接收而使用所述数据块来执行操作,以通过所述多个计算装置中的所述至少一个计算装置将数据大小从第一大小减小到第二大小,其中所述操作的执行包括经由所述第一通信子系统和所述第二通信子系统中的至少一个分别向两个或更多个计算装置发送指示分别执行所述操作的第一部分和第二部分的命令的额外信令;
其中:
通过所述多路复用器接收执行所述操作的所述命令;以及
经由所述PCIe接口传递所述数据块;以及
将大小减小的数据块传递到耦合到所述第二通信子系统的主机。
21.根据权利要求20所述的方法,其中所述大小减小的数据块经由耦合到所述第二通信子系统中的一个通信子系统的主机接口传递到所述主机。
22.根据权利要求20所述的方法,其进一步包括使用存储器控制器致使将所述数据块从存储器装置传递到所述第二通信子系统且随后传递到所述第一通信子系统。
23.根据权利要求22所述的方法,其进一步包括经由所述存储器控制器执行以下中的至少一个:
与所述存储器装置相关联的读取操作;
与所述存储器装置相关联的复制操作;
与所述存储器装置相关联的错误校正操作;或
其组合。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/537,998 US11176065B2 (en) | 2019-08-12 | 2019-08-12 | Extended memory interface |
US16/537,998 | 2019-08-12 | ||
PCT/US2020/034942 WO2021029935A1 (en) | 2019-08-12 | 2020-05-28 | Extended memory interface |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114127852A CN114127852A (zh) | 2022-03-01 |
CN114127852B true CN114127852B (zh) | 2023-03-07 |
Family
ID=74566852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080051301.0A Active CN114127852B (zh) | 2019-08-12 | 2020-05-28 | 扩展存储器接口 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11176065B2 (zh) |
KR (1) | KR20220039808A (zh) |
CN (1) | CN114127852B (zh) |
DE (1) | DE112020003849T5 (zh) |
WO (1) | WO2021029935A1 (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101918931A (zh) * | 2007-02-02 | 2010-12-15 | 普西迈斯特公司 | 具有集成高速分组交换串行接口的处理器芯片架构 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1318409C (en) * | 1988-10-27 | 1993-05-25 | Dennis L. Debruler | Multiprocessor load sharing arrangement |
US7334086B2 (en) * | 2002-10-08 | 2008-02-19 | Rmi Corporation | Advanced processor with system on a chip interconnect technology |
US7444454B2 (en) | 2004-05-11 | 2008-10-28 | L-3 Communications Integrated Systems L.P. | Systems and methods for interconnection of multiple FPGA devices |
US8578127B2 (en) * | 2009-09-09 | 2013-11-05 | Fusion-Io, Inc. | Apparatus, system, and method for allocating storage |
US8078862B2 (en) * | 2008-04-25 | 2011-12-13 | Intel Corporation | Method for assigning physical data address range in multiprocessor system |
US20100017649A1 (en) | 2008-07-19 | 2010-01-21 | Nanostar Corporation | Data storage system with wear-leveling algorithm |
KR101496333B1 (ko) | 2008-12-09 | 2015-02-26 | 삼성전자주식회사 | 소프트웨어 버스를 이용한 컴포넌트 연결 시스템 및 방법 |
US8438455B2 (en) | 2008-12-31 | 2013-05-07 | Intel Corporation | Error correction in a solid state disk |
US8560804B2 (en) | 2009-09-14 | 2013-10-15 | Bitmicro Networks, Inc. | Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device |
US9263102B2 (en) * | 2010-09-28 | 2016-02-16 | SanDisk Technologies, Inc. | Apparatus, system, and method for data transformations within a data storage device |
US9104473B2 (en) | 2012-03-30 | 2015-08-11 | Altera Corporation | Conversion and compression of floating-point and integer data |
US9075710B2 (en) * | 2012-04-17 | 2015-07-07 | SanDisk Technologies, Inc. | Non-volatile key-value store |
US9251103B2 (en) * | 2012-08-08 | 2016-02-02 | Vmware, Inc. | Memory-access-resource management |
US8880785B2 (en) * | 2012-09-28 | 2014-11-04 | Atmel Corporation | Microcontroller with integrated interface enabling reading data randomly from serial flash memory |
US9009171B1 (en) | 2014-05-02 | 2015-04-14 | Palantir Technologies Inc. | Systems and methods for active column filtering |
US9477295B2 (en) | 2014-05-15 | 2016-10-25 | Dell Products, L.P. | Non-volatile memory express (NVMe) device power management |
US20150371684A1 (en) | 2014-06-18 | 2015-12-24 | NXGN Data, Inc. | Ultra high capacity ssd |
WO2016075765A1 (ja) * | 2014-11-12 | 2016-05-19 | 株式会社日立製作所 | 計算機システム及びその制御方法 |
US9779050B2 (en) * | 2015-04-27 | 2017-10-03 | Red Hat Israel, Ltd. | Allocating virtual resources to root PCI bus |
US10152822B2 (en) * | 2017-04-01 | 2018-12-11 | Intel Corporation | Motion biased foveated renderer |
US20190004878A1 (en) * | 2017-07-01 | 2019-01-03 | Intel Corporation | Processors, methods, and systems for a configurable spatial accelerator with security, power reduction, and performace features |
US11093251B2 (en) * | 2017-10-31 | 2021-08-17 | Micron Technology, Inc. | System having a hybrid threading processor, a hybrid threading fabric having configurable computing elements, and a hybrid interconnection network |
US10846235B2 (en) * | 2018-04-28 | 2020-11-24 | International Business Machines Corporation | Integrated circuit and data processing system supporting attachment of a real address-agnostic accelerator |
US10891240B2 (en) * | 2018-06-30 | 2021-01-12 | Intel Corporation | Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator |
US11360704B2 (en) * | 2018-12-21 | 2022-06-14 | Micron Technology, Inc. | Multiplexed signal development in a memory device |
KR20200114149A (ko) * | 2019-03-27 | 2020-10-07 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
US10915471B2 (en) * | 2019-03-30 | 2021-02-09 | Intel Corporation | Apparatuses, methods, and systems for memory interface circuit allocation in a configurable spatial accelerator |
-
2019
- 2019-08-12 US US16/537,998 patent/US11176065B2/en active Active
-
2020
- 2020-05-28 KR KR1020227007588A patent/KR20220039808A/ko active Search and Examination
- 2020-05-28 DE DE112020003849.1T patent/DE112020003849T5/de active Pending
- 2020-05-28 WO PCT/US2020/034942 patent/WO2021029935A1/en active Application Filing
- 2020-05-28 CN CN202080051301.0A patent/CN114127852B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101918931A (zh) * | 2007-02-02 | 2010-12-15 | 普西迈斯特公司 | 具有集成高速分组交换串行接口的处理器芯片架构 |
Also Published As
Publication number | Publication date |
---|---|
KR20220039808A (ko) | 2022-03-29 |
WO2021029935A1 (en) | 2021-02-18 |
US11176065B2 (en) | 2021-11-16 |
CN114127852A (zh) | 2022-03-01 |
DE112020003849T5 (de) | 2022-08-18 |
US20210049116A1 (en) | 2021-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11494078B2 (en) | Translation lookaside buffer in memory | |
US20240105260A1 (en) | Extended memory communication | |
CN113900710B (zh) | 扩展存储器组件 | |
WO2020247240A1 (en) | Extended memory interface | |
CN114127852B (zh) | 扩展存储器接口 | |
US11579882B2 (en) | Extended memory operations | |
KR20230026423A (ko) | 확장 메모리 뉴로모픽 컴포넌트 | |
US11481317B2 (en) | Extended memory architecture | |
EP3931707A1 (en) | Storage device operation orchestration | |
CN113994314B (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 |