一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

扩展存储器通信的制作方法

2022-08-28 04:21:33 来源:中国专利 TAG:


1.本公开大体上涉及半导体存储器及方法,且更特定来说,涉及用于扩展存储器通信的设备、系统及方法。


背景技术:

2.存储器装置通常被提供为计算机或其它电子系统中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性及非易失性存储器。易失性存储器需要电力来维持其数据(例如主机数据、错误数据等)且包含随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、同步动态随机存取存储器(sdram)及晶闸管随机存取存储器(tram)等。非易失性存储器可通过在不供电时保持所存储的数据来提供持久性数据且可包含nand快闪存储器、nor快闪存储器及电阻可变存储器,例如相变随机存取存储器(pcram)、电阻性随机存取存储器(rram)及磁阻随机存取存储器(mram),例如自旋力矩转移随机存取存储器(stt ram)等。
3.存储器装置可经耦合到主机(例如主机计算装置)以存储数据、命令及/或指令以在计算机或电子系统在操作时供主机使用。举例来说,数据、命令及/或指令可在计算或其它电子系统的操作期间在主机与存储器装置之间传送。
附图说明
4.图1是根据本公开的数个实施例的呈包含包括第一多个通信子系统、第二多个通信子系统的设备及多个存储器装置的计算系统的形式的功能框图。
5.图2是根据本公开的数个实施例的呈包含包括第一多个通信子系统、第二多个通信子系统的设备及多个存储器装置的计算系统的形式的又一功能框图。
6.图3是根据本公开的数个实施例的呈包含包括第一多个通信子系统、第二多个通信子系统的设备及多个存储器装置的计算系统的形式的又一功能框图。
7.图4是根据本公开的数个实施例的呈包含包括第一多个通信子系统、第二多个通信子系统的设备及多个存储器装置的计算系统的形式的又一功能框图。
8.图5是根据本公开的数个实施例的呈包含数个端口的计算核心的设备的形式的功能框图。
9.图6是表示根据本公开的数个实施例的对应于扩展存储器通信的实例方法的流程图。
具体实施方式
10.描述与用于执行扩展存储器操作的扩展存储器通信子系统相关的系统、设备及方法。实例方法可包含在耦合于主机装置与非易失性存储器装置之间的处理单元处接收指示对写入到非易失性存储器装置或从非易失性存储器装置接收的数据执行的多个操作的信令。方法可进一步包含在处理单元处响应于信令而执行多个操作中的至少一个操作。方法
可进一步包含存取非易失性存储器装置中的存储器阵列的部分。方法可进一步包含传输指示对写入到非易失性存储器装置或从非易失性存储器装置读取的数据执行多个操作中的一或多个额外操作的命令的额外信令。
11.扩展存储器通信可包含跨扩展存储器提供信号及/或命令。扩展存储器接口可传送执行由单个地址及操作数指定的操作的指令且可由包含处理单元及存储器资源的计算装置执行。计算装置可在无需接收介入命令的情况下对流式传输通过计算装置的数据执行扩展存储器操作。扩展存储器操作可包含其中排序、重新排序、移除或丢弃数据的操作、逗号分隔值解析操作或两者。在实例中,计算装置经配置以接收执行包括使用计算装置的处理单元对数据执行操作的操作的命令及确定对应于操作的操作数存储于存储器资源中。计算装置可使用存储于存储器资源中的操作数进一步执行操作。
12.计算装置可通过向数个硬件加速器发送执行操作的指令及/或命令来执行硬件加速。在一些实例中,操作的部分可发送到第一硬件加速器,且操作的第二部分可发送到第二硬件加速器。在一些实例中,操作可发送到硬件加速器用于完成,且硬件加速器可将操作的部分发送到额外硬件加速器以完成操作的部分。依此方式,来自多于一个硬件加速器的结果可发送到计算装置以组合结果,或主硬件加速器可组合结果且将完成结果发送到计算装置。
13.硬件加速可经实施于计算系统中以依比使用计算系统的中央处理单元(cpu)执行任务及/或功能更高效(例如更快、更准确、更高质量等)的方式执行某些任务及/或功能。举例来说,通过提供经配置以执行原本可使用计算系统的cpu执行的特定任务及/或功能的专用硬件(例如硬件加速器或硬件加速单元),某些任务及/或功能可依比其中cpu负责执行此类任务及/或功能的方法更高效的方式进行处理。此可进一步允许原本可由cpu消耗的处理资源释放,借此进一步改进计算系统的性能。
14.硬件加速器的一些实例包含声音处理单元(例如声卡)、图形处理单元(gpu或“显卡”)、数字信号处理单元、模拟信号处理单元、计算机联网处理单元(例如芯片上网络、tcp卸载引擎、i/o加速处理单元等)、密码处理单元(例如密码加速器单元,其可提供基于硬件的加密及/或解密)、人工智能处理单元(例如视觉处理单元、神经网络处理单元等)、张量处理单元、物理物理单元、正则表达式处理单元及/或数据压缩加速单元等。硬件加速器可经提供为呈场可编程门阵列(fpga)、专用集成电路(asic)及/或复杂可编程逻辑装置、单芯片系统等形式的计算机硬件。应了解,硬件加速器的以上列举实例及计算机硬件的特别列举实例既不是限制性也不是详尽性的,且可在本公开的范围内考虑其它硬件加速器及/或计算机硬件。
15.在一些方法中,硬件加速器可在计算系统中部署为离散组件,其执行可经部署于计算系统内的其它硬件加速器不可见的指定任务及/或功能。举例来说,在一些方法中,硬件加速器可在不知道部署于计算系统内的其它硬件加速器的情况下操作。此外,在一些方法中,硬件加速器可专用于执行一组有限特定任务及/或功能。举例来说,声音处理单元可经提供于计算系统中以仅用于对与计算系统的听觉回放相关的信号执行硬件加速。作为另一实例,gpu可经提供于计算系统中以仅用于对与计算系统的视觉显示相关的信号执行硬件加速。
16.如下文描述,计算装置可为能够支持全功能操作系统(例如linux)的risc-v应用
程序处理器核心。此特定核心可结合例如物联网(iot)节点及网关、存储装置及/或网络的应用来使用。核心可经耦合到数个端口,例如存储器端口、系统端口、外围端口及/或前端口。作为实例,存储器端口可与存储器装置通信,系统端口可与芯片上加速器通信,外围端口可与芯片外串行端口通信,及/或前端口可与主机接口通信,如下文将结合图4进一步描述。
17.依此方式,第一通信子系统可用于引导来自特定端口(例如计算装置的存储器端口)的数据通过第一通信子系统(例如选择所述特定存储器端口的多路复用器)且传送其通过第二通信子系统(例如接口,例如axi互连接口)到存储器控制器,存储器控制器将数据传送到存储器装置(例如ddr存储器、三维(3-d)交叉点存储器、nand存储器等)。在实例中,axi互连接口可符合来自的axi版本4规格,包含axi4-lite控制寄存器接口子集。
18.如本文中使用,“扩展存储器操作”指代可由单个地址(例如存储器地址)及操作数(例如64位操作数)指定的存储器操作。操作数可表示为多个位(例如位串或一串位)。然而,实施例不限于由64位操作数指定的操作,而是操作可由比64位更大(例如128位等)或更小(例如32位)的操作数指定。如本文中描述,可存取以执行扩展存储器操作的有效地址空间是主机计算系统或存储控制器可存取的存储器装置或文件系统的大小。
19.扩展存储器操作可包含可由处理装置(例如,由例如核心110、210、310、410的处理装置或图5中明确展示为510的核心计算装置)执行的指令及/或操作。核心的实例可包含可执行指令以执行各种计算任务的精简指令集计算装置或其它硬件处理装置。在一些实施例中,执行扩展存储器操作可包含检索存储于计算装置的存储器资源中的数据及/或指令、在计算装置110内执行操作(例如,无需将数据或指令传送到计算装置外部的电路系统)及将扩展存储器操作的结果存储于计算装置110的存储器资源或辅助存储装置中(例如,存储于例如本文图1中说明的存储器装置116-1、116-2的存储器装置中)。指示对写入到存储器装置或来自存储器装置的数据执行的多个操作的信令可来回发送于计算装置110、加速器114等。
20.扩展存储器操作的非限制性实例可包含浮点加法累加、32位复数运算、平方根地址(sqrt(addr))运算、转换运算(例如,在浮点与整数格式之间转换及/或在浮点与通用数格式(例如i型、ii型及/或iii型通用数格式、posit格式等)之间转换)、将数据归一化为固定格式、绝对值运算等。在一些实施例中,扩展存储器操作可包含由计算装置执行的原位更新操作(例如,其中扩展存储器操作的结果存储于在执行扩展存储器操作之前其中存储用于执行扩展存储器操作的操作数的地址处)以及其中使用先前存储数据来确定新数据的操作(例如其中使用存储于特定地址处的操作数来产生盖写其中存储操作数的特定地址的新数据的操作)。
21.因此,在一些实施例中,扩展存储器操作的执行可减轻或消除锁定或互斥操作,因为扩展存储器操作可在计算装置内执行,其可减少多线程执行之间的竞争。在扩展存储器操作的执行期间减少或消除对线程执行锁定或互斥操作可导致例如计算系统的性能提高,因为扩展存储器操作可在同一计算装置内或跨彼此通信的计算装置中的两者或更多者并行执行。另外,在一些实施例中,当扩展存储器操作的结果从执行操作的计算装置传送到主机时,本文中描述的扩展存储器操作可减轻或消除锁定或互斥操作。
22.存储器装置可用于将重要或关键数据存储于计算装置中且可经由至少一个扩展存储器接口在与计算装置相关联的主机之间传送此数据。然而,随着由存储器装置存储的数据的大小及数量增加,使数据来回传送于主机会变得耗时及资源密集。举例来说,当主机请求使用大数据块执行存储器操作时,在履行请求时消耗的时间量及/或资源量可与数据块相关联的数据的大小及/或数量成比例增加。
23.随着存储器装置的存储容量增加,这些效应可变得更显著,因为越来越多数据能够由存储器装置存储且因此可用于存储器操作中。另外,因为数据可被处理(例如,可对数据执行存储器操作),所以随着能够存储于存储器装置中的数据量增加,可被处理的数据量也可增加。此可导致处理时间增加及/或处理资源消耗增加,其会在执行特定类型的存储器操作时加剧。为了减轻这些及其它问题,本文中的实施例可允许使用存储器装置、一或多个计算装置及/或存储器阵列及第一多个通信子系统(例如多路复用器)及第二多个子系统(例如接口,例如axi互连件)来执行扩展存储器操作以便更高效地将数据从计算装置传送到存储器装置及/或从计算装置传送到主机,且反之亦然。
24.在一些方法中,执行存储器操作需要多个时钟循环及/或对计算系统的存储器(例如存储器装置及/或存储器阵列)的多个函数调用。相比之下,本文中的实施例可允许执行扩展存储器操作,其中使用单个函数调用或命令执行存储器操作。举例来说,与其中利用至少一个命令及/或函数调用来加载将对其进行操作的数据且接着利用至少一个后续函数调用或命令来存储已对其进行操作的数据的方法相比,本文中的实施例可允许使用比其它方法更少的函数调用或命令来执行存储器操作。此外,计算系统的计算装置可经由第一通信子系统(例如多路复用器、芯片上控制网络等)及/或第二通信子系统(例如接口、例如axi互连件的互连件等)接收执行存储器操作的请求且可经由第一通信子系统及第二通信子系统从存储器装置接收用于执行所请求的存储器操作的数据块。虽然相继描述第一及第二通信子系统,但实施例不限于此。作为实例,数据的请求及/或数据块的接收可仅经由第二通信子系统。
25.通过减少用于执行存储器操作的函数调用及/或命令的数目,在执行此类操作时消耗的时间量及/或在执行此类操作时消耗的计算资源量可比其中需要多个函数调用及/或命令来执行存储器操作的方法减少。此外,本文中的实施例可减少存储器装置及/或存储器阵列内的数据移动,因为在执行存储器操作之前无需将数据加载到特定位置中。此可比一些方法减少处理时间,尤其在其中大量数据经受存储器操作的案例中。
26.此外,本文中描述的扩展存储器操作可允许比一些方法大得多的类型字段集。举例来说,由主机执行以请求使用存储器装置(例如存储器子系统)中的数据执行操作的指令可包含类型、地址及数据字段。指令可经由第一通信子系统(例如多路复用器)及第二通信子系统(例如接口)发送到多个计算装置中的至少一者,且数据可经由第一及/或第二通信子系统从存储器装置传送。类型字段可对应于所请求的特定操作,地址可对应于其中存储用于执行操作的数据的地址,且数据字段可对应于用于执行操作的数据(例如操作数)。在一些方法中,类型字段可限于不同大小读取及/或写入以及一些简单整数累加运算。相比之下,本文中的实施例可允许利用更广范围的类型字段,因为可在执行扩展存储器操作时使用的有效地址空间可对应于存储器装置的大小。通过扩展可用于执行操作的地址空间,本文中的实施例因此可允许更广范围的类型字段,因此,可执行比不允许作为存储器装置的
大小的有效地址空间的方法更广的存储器操作范围。
27.在本公开的以下详细描述中,参考形成本公开的一部分且其中通过说明展示可如何实践本公开的一或多个实施例的附图。足够详细地描述这些实施例以使所属领域的一般技术人员能够实践本公开的实施例,且应理解,在不背离本公开的范围的情况下,可利用其它实施例且可做出过程、电及结构改变。
28.如本文中使用,例如尤其关于图中的元件符号的“x”、“y”、“n”、“m”、“a”、“b”、“c”、“d”等的标志符指示可包含如此指定的特定特征的数目。还应理解,本文中使用的术语仅用于描述特定实施例,且不希望具限制性。如本文中使用,单数形式“一(a/an)”及“所述”可包含单数及复数个指涉物两者,除非上下文另外明确指示。另外,“数个”、“至少一者”及“一或多者”(例如数个存储体)可指代一或多个存储体,而“多个”希望指代一个以上此类事物。此外,词语“可(can/may)”在本技术案中用于意指准许(即,具有可能性、能够)而非强制(即,必须)。术语“包含”及其衍生词意味着“包含(但不限于)”。视上下文而定,术语“耦合(coupled/coupling)”意味着直接或间接物理连接或用于命令及/或数据的存取及移动(传输)。视上下文而定,术语“数据”及“数据值”在本文中可互换使用且可具有相同含义。
29.本文的图遵循编号惯例,其中首位数字或前几位数字对应于图号且剩余数字识别图中的元件或组件。不同图之间的类似元件或组件可通过使用类似数字来识别。举例来说,104可指代图1中的元件“04”,且类似元件在图2中可称为204。一群组或多个类似元件或组件在本文中一般可用单个元件符号指代。举例来说,多个参考元件110-1、110-2、110-3、110-4、110-5可统称为110。应了解,本文各种实施例中展示的元件可经添加、交换及/或消除以便提供本公开的数个额外实施例。另外,图中提供的元件的比例及/或相对尺度希望说明本公开的某些实施例,而不应被视为意在限制。
30.图1是根据本公开的数个实施例的呈包含包括多个计算装置110、第一多个通信子系统108、第二多个通信子系统106、多个硬件加速器114的设备104及多个存储器装置116的计算系统100的形式的功能框图。如本文中使用,“设备”可指代(但不限于)各种结构或结构组合中的任一者,例如(举例来说)电路或电路系统、一或多个裸片、一或多个模块、一或多个装置或一或多个系统。在图1中说明的实施例中,存储器装置116-1、

、116-n可包含一或多个存储器模块(例如双倍数据速率(ddr)存储器、三维(3d)交叉点存储器、nand存储器、单列直插式存储器模块、双列直插式存储器模块等)。存储器装置161-1、

、116-n可包含易失性存储器及/或非易失性存储器。在数个实施例中,存储器装置116-1、

、116-n可包含多芯片装置。多芯片装置可包含数个不同存储器类型及/或存储器模块。举例来说,存储器系统可包含任何类型的模块上的非易失性或易失性存储器。
31.存储器装置116-1、

、116-n可为计算系统100提供主存储器或可用作整个计算系统100的额外存储器或存储装置。每一存储器装置116-1、

、116-n可包含一或多个存储器单元阵列,例如易失性及/或非易失性存储器单元。阵列可为例如具有nand架构的快闪阵列。实施例不限于特定类型的存储器装置。例如,存储器装置可包含ram、rom、dram、sdram、pcram、rram及快闪存储器等。
32.在其中存储器装置116-1、

、116-n包含非易失性存储器的实施例中,存储器装置116-1、

、116-n可为快闪存储器装置,例如nand或nor快闪存储器装置。然而,实施例不限于此,而是存储器装置116-1、

、116-n可包含:其它非易失性存储器装置,例如非易失性随
机存取存储器装置(例如nvram、reram、feram、mram、pcm);“新兴”存储器装置,例如3-d交叉点(3d xp)存储器装置等;或其组合。3d xp非易失性存储器阵列可基于体电阻变化结合堆叠式交叉栅格式数据存取阵列执行位存储。另外,与许多基于快闪的存储器相比,3d xp非易失性存储器可执行原位写入操作,其中可在不事先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。
33.如图1中说明,多个计算装置110-1、110-2、110-3、110-4、110-5(下文统称为多个计算装置110)可经耦合到sram 109。多个计算装置110可通过总线矩阵耦合到sram 109。此外,多个计算装置110可经耦合到第一多个通信子系统(例如多路复用器)108-1、108-2。第一多个通信子系统108可包含经配置以在本文中描述的操作的执行期间将资源分配及取消分配给计算装置110的电路系统及/或逻辑。举例来说,电路系统及/或逻辑可在本文中描述的扩展存储器操作的执行期间将资源分配及/或取消分配给计算装置110。
34.多个计算装置110可通过sram 109耦合到第一多个通信子系统108中的第一者(108-1)。多个计算装置110可直接耦合到第一多个通信子系统中的第一者1081-1及/或第一多个通信子系统108中的第二者(108-2),如由图1中的箭头说明。依此方式,第一多个通信子系统中的每一者可选择特定计算装置110来传送数据且反之亦然,计算装置110中的每一者可通过第一多个通信子系统108传送数据。
35.第一多个通信子系统108-1可经耦合到第二多个通信子系统(例如接口,例如互连接口)106-1、106-2、106-3、106-4、106-5(下文统称为第二多个通信子系统106)。第二多个通信子系统106中的每一者可经耦合到控制器112、加速器114及主机接口120中的对应者。在一个实例中,第二多个通信子系统106可经由数个axi总线耦合到对应控制器112、加速器114及/或主机接口120。
36.如所说明,第二多个通信子系统106中的第一者(106-1)可经耦合到控制器(例如存储器控制器)112。控制器112可经由数个通道107-1、

、107-n耦合到数个存储器装置116-1、

、116-n。第二多个通信子系统106中的第二者(106-2)、第三者(106-3及第四者(106-4)可各自耦合到多个硬件加速器114-1、114-2、114-3中的对应者。通信子系统108-1可经由相应缓冲器119-1、119-2、119-3耦合到第二多个通信子系统106-2、106-3、106-4。第二多个通信子系统106-2、106-3、106-4可经由相应缓冲器117-1、117-2、117-3耦合到多个硬件加速器114。硬件加速器114可用于执行数个posit操作及/或用于与fpga上的内部sram通信。
37.posit操作可指代使用通用数(“unum”)格式化的位串作为操作数及/或作为输入来执行的操作。如本文中使用,通用数格式化的位串可提供ieee浮点位串标准的替代。存在若干通用数格式(例如i型通用数、ii型通用数及iii型通用数)。iii型unum格式在本文中称为“posit格式”或简称“posit”。与浮点位串相比,posit可在某些条件下允许比具有相同位宽度的浮点数更高的精度(例如更广动态范围、更高分辨率及/或更高准确度)。此可允许由计算系统执行的操作在使用posit时以比使用浮点数更高(例如,更快)的速率执行,此又可通过例如减少用于执行操作的时钟循环数来改进计算系统的性能,借此减少执行此类操作所消耗的处理时间及/或功率。另外,在计算系统中使用posit可允许在计算上比浮点数具更高准确度及/或精确度,此可比一些方法(例如依赖浮点格式位串的方法)进一步改进计算系统的功能。
38.posit的精度及准确度可基于包含于posit中的总位数及/或整数组数或位组数来高度变化。另外,posit可产生宽动态范围。posit的准确度、精度及/或动态范围可在某些条件下大于浮动或其它数值格式的准确度、精度及/或动态范围,如本文中更详细描述。posit的可变准确度、精度及/或动态范围可例如基于其中将使用posit的应用来操纵。另外,posit可减少或消除与浮动及其它数值格式相关联的上溢、下溢、nan及/或其它极端情况。此外,posit的使用可允许数值(例如数字)使用比浮动或其它数值格式更少的位来表示。
39.计算装置110可发送命令来执行posit操作及/或额外操作。计算装置100可将posit操作分成子操作的部分以各自发送到硬件加速器114。举例来说,第一计算装置110-1可将posit操作分成两个子操作,且两个子操作中的第一者可发送到第一硬件加速器114-1且两个子操作中的第二者可发送到第二硬件加速器114-2。第一及第二子操作的结果可发送到第一计算装置110-1,且第一计算装置110-1可将结果组合成posit操作的单个结果。
40.在一个实例中,计算装置110可将posit操作发送到第一硬件加速器114-1,且第一硬件加速器114-1可将posit操作的部分发送到第二硬件加速器114-2。在从第二硬件加速器114-2接收posit操作的部分的结果之后,第一硬件加速器114-1可产生posit操作的结果,包含来自posit操作的部分的结果。同样地,posit操作的任何数目个分部可从计算装置110发送到特定数目个对应硬件加速器114以执行posit操作,且结果可经组合成posit操作的最终结果。同样地,多个计算装置110可将posit操作细分且将不同部分发送到不同硬件加速器114以执行细分posit操作。作为实例,posit操作可由计算装置110细分,且细分posit操作可由每一对应计算装置110进一步细分且发送到不同硬件加速器114。
41.此外,第二多个通信子系统106中的另一额外者(也未说明)可用于通过芯片外串行端口将数据传送到芯片外。第二多个通信子系统106中的第五者(106-5)可经耦合到主机接口120且可经由通道103/105与主机102的主机控制器101通信。虽然未说明,但通信子系统(例如第二多个通信子系统中的另一者,未说明)可经耦合到逻辑电路系统。逻辑电路系统可在相同于计算装置110、第一多个通信子系统、第二多个通信子系统106等的场可编程门阵列(fpga)上。
42.在一个实施例中,计算装置110可处理来自主机102的消息的操作队列。操作队列可由计算装置110通过读取具有自变量的输入消息及执行期望功能来处理。此外,计算装置110可读取数据及/或将数据写入到存储器装置116-1、

、116-n中的至少一者以便执行操作。计算装置110可产生待执行的工作项消息且产生指示执行与输入消息相关联的工作项的消息来发送到硬件加速器114中的至少一者。消息可识别关于所接收的输入消息及自变量执行的操作或子操作,识别待激活的硬件加速器及待执行的功能,识别存储器装置116的输入数据位置,及识别存储器装置116的输出数据位置。作为实例,输入数据位置可指示存储器装置116中从其检索数据以便执行工作项的数据位置。输出数据位置可指示存储器装置116中存储工作项的操作的所得输出的位置。工作项消息可发送到对应硬件加速器114队列(例如,例如发送到相应硬件加速器114的缓冲器117)。随着操作的结果被产生或接收,指示待执行的额外操作的额外消息可被产生且发送到硬件加速器。消息的产生及结果的接收可一直持续到初始操作的最终结果使工作项完成。在工作项完成之后,可向计算装置110发送指示工作项已完成的完成消息。可向主机102发送指示工作项已完成的消息。
43.硬件加速器114在接收工作项之后可读取工作项消息,包含存储器装置116中的对
应数据位置。硬件加速器114可执行消息内所含的请求加速器操作。在一个实施例中,硬件加速器114可将操作的部分发送到额外硬件加速器114(例如,硬件加速器114-1可接收消息且可将消息中操作的部分发送到硬件加速器114-2以由硬件加速器114-2完成)。操作的完成部分(由硬件加速器114-2执行)可发送到初始硬件加速器(114-1),且初始硬件加速器(114-1)可组合完成部分与其它结果以最终完成工作项消息中的操作。一旦完全完成,则硬件加速器114可向计算装置110发送指示工作项已完成的消息。
44.在一个实施例中,主机102可向计算装置110发送执行操作的请求。计算装置110可执行数据初始化且将数据写入到存储器装置116中的位置。随着计算装置110产生4k(或其倍数)数据,计算装置110可创建由硬件加速器114完成的工作项。为了进一步处理数据。当硬件加速器114完成工作项时,硬件加速器可向计算装置110发送工作项完成的消息。计算装置110可进一步处理数据,将数据发送到另一硬件加速器114,或仅使数据留在存储器装置116中且继续进一步处理数据。
45.主机102可将数据映射到其自身地址空间中。主机102可将文件(例如(举例来说)linux)映射到计算装置110处理单元地址空间中。计算装置110具有其地址与存储器装置116内的位置之间的映射。当硬件加速器116工作项创建时,传递到硬件加速器114的地址可为存储器装置116的逻辑块地址。主机102可负责在文件系统与计算装置110的64位地址空间之间映射地址。计算装置110可负责将其地址映射到存储器装置116的逻辑块位置中。依此方式,硬件加速器114负责将数据从存储器装置116的一个逻辑数据位置传送到另一者。
46.主机102可为主机系统,例如个人膝上型计算机、桌面计算机、数码相机、智能电话、存储器读卡器及/或启用物联网的装置以及各种其它类型的主机,且可包含存储器存取装置,例如处理器(或处理装置)。所属领域的一般技术人员应了解,“处理器”可意指一或多个处理器,例如并行处理系统、数个协处理器等。主机102可包含系统母板及/或背板且可包含数个处理资源(例如一或多个处理器、微处理器或某一其它类型的控制电路系统)。在一些实施例中,主机可包含主机控制器101,其可经配置以通过例如产生及传送命令到主机控制器以致使执行例如扩展存储器操作的操作来控制主机102的至少一些操作。主机控制器101可包含可经配置以控制主机102的至少一些操作的电路系统(例如硬件)。举例来说,主机控制器101可为专用集成电路(asic)、场可编程门阵列(fpga)或经配置以控制主机102的至少一些操作的电路系统及/或逻辑的其它组合。
47.系统100可包含单独集成电路,或主机102、第一多个通信子系统108、第二多个通信子系统106、控制器112、芯片上加速器114、主机接口120及/或存储器装置116-1、

、116-n可在同一集成电路上。系统100可为例如服务器系统及/或高性能计算(hpc)系统及/或其部分。尽管图1中展示的实例说明具有冯
·
诺依曼(von neumann)架构的系统,但本公开的实施例可实施于非冯
·
诺依曼架构中,其可不包含通常与冯
·
诺依曼架构相关联的一或多个组件(例如cpu、alu等)。
48.控制器112可经配置以请求来自存储器装置116-1、

、116-n中的一或多者的数据块且致使核心110-1、

、110-n(其在本文替代例中可称为“计算装置”)对数据块执行操作(例如扩展存储器操作)。操作可经执行以评估可由与数据块相关联的单个地址及一或多个操作数指定的功能。控制器112可进一步经配置以致使扩展存储器操作的结果通过第二通信子系统106及/或第一通信子系统108存储于计算装置110-1、

、110-n中的一或多者中
及/或传送到通道(例如通信路径103及/或105)及/或主机102。
49.在一些实施例中,第二多个通信子系统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可包含控制器的至少一部分(未说明)。
50.在一些实施例中,第二多个通信子系统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或其部分的电路系统。
51.存储器控制器112可为“标准”或“通俗”存储器控制器。举例来说,存储器控制器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可为非易失性存储器控制器,但实施例不限于此。
52.图1的实施例可包含未说明以便不模糊本公开的实施例的额外电路系统。举例来说,设备104可包含锁存经由i/o连接通过i/o电路系统提供的地址信号的地址电路系统。地址信号可由行解码器及列解码器接收及解码以存取存储器装置116-1、

、116-n。所属领域的技术人员应了解,地址输入连接的数目可取决于存储器装置116-1、

、116-n的密度及架
构。
53.在一些实施例中,扩展存储器操作可使用图1中展示的计算系统100通过选择性将数据(例如文件)存储或映射到计算装置110中来执行。数据可选择性存储于计算存储器的地址空间中。在一些实施例中,数据可响应于从主机102接收的命令而选择性存储或映射于计算装置110中。在其中命令从主机102接收的实施例中,命令可分别经由与主机102相关联的接口(例如通信路径103及/或105)及经由第一及第二多个通信子系统108及106传送到计算装置110。接口103/105、第一多个通信子系统108及第二多个通信子系统106可为外围组件互连高速(pcie)总线、双倍数据速率(ddr)接口、互连接口(例如axi互连接口)、多路复用器(mux)或其它合适接口或总线。然而,实施例不限于此。
54.在其中数据(例如用于执行扩展存储器操作的数据)映射到计算装置110中的非限制性实例中,主机控制器101可将命令传送到计算装置110以使用映射到计算装置110中的数据启动扩展存储器操作的执行。在一些实施例中,主机控制器101可查找对应于映射到计算装置110中的数据的地址(例如物理地址)且基于地址确定地址(及因此数据)映射到哪一计算装置(例如计算装置110-1)。接着,命令可传送到含有地址(及因此数据)的计算装置(例如计算装置110-1)。
55.在一些实施例中,数据可为64位操作数,但实施例不限于具有特定大小或长度的操作数。在其中数据是64位操作数的实施例中,一旦主机控制器101基于其中存储数据的地址将启动扩展存储器操作的执行的命令传送到正确计算装置(例如计算装置110-1),则计算装置(例如计算装置110-1)可使用数据执行扩展存储器操作。
56.在一些实施例中,计算装置110可跨连续地址空间单独寻址,此可促进本文中描述的扩展存储器操作执行。即,其中存储数据或数据映射到的地址可唯一用于所有计算装置110,使得当主机控制器101查找地址时,地址对应于特定计算装置(例如计算装置110-1)中的位置。
57.举例来说,第一计算装置110-1可具有与其相关联的第一组地址,第二计算装置110-2可具有与其相关联的第二组地址,第三计算装置110-3可具有与其相关联的第三组地址,直到可具有与其相关联的第n组地址的第n计算装置(例如计算装置110-n)。即,第一计算装置110-1可具有一组地址0000000到0999999,第二计算装置110-2可具有一组地址1000000到1999999,第三计算装置110-3可具有一组地址2000000到2999999,等等。应了解,这些地址数字仅具说明性而非限制性,且可取决于计算装置110的架构及/或大小(例如存储容量)。
58.作为其中扩展存储器操作包括浮点加法累加运算(floatingpoint_add_accumulate)的非限制性实例,计算装置110可将目的地地址视作浮点数,将浮点数添加到存储于计算装置110的地址处的自变量,及将结果存储回原始地址中。举例来说,当主机控制器101(或设备控制器115(未展示))启动浮点加法累加扩展存储器操作的执行时,主机查找的计算装置110的地址(例如计算装置中数据映射到的地址)可被视作浮点数且存储于地址中的数据可被视作用于执行扩展存储器操作的操作数。响应于接收启动扩展存储器操作的命令,数据(例如在此实例中操作数)映射到的计算装置110可执行加法运算以将数据添加到地址(例如地址的数值)且将加法的结果存储回计算装置110的原始地址中。
59.如上文描述,在一些实施例中,此类扩展存储器操作的执行可仅需要将单个命令
(例如请求命令)从主机102(例如,从主机控制器101)传送到存储器装置104或从控制器115传送到计算装置110。与一些先前方法相比,此可减少例如多个命令横穿接口103、105及/或数据(例如操作数)从计算装置110内的一个地址移动到另一地址的时间量,在执行操作时消耗。
60.另外,根据本公开的扩展存储器操作的执行可进一步减少处理功率量或处理时间量,因为与其中在操作执行之前操作数必须从不同位置检索及加载的方法相比,映射到其中执行扩展存储器操作的计算装置110中的数据可用作扩展存储器操作的操作数及/或数据映射到的地址可用作扩展存储器操作的操作数。即,至少因为本文中的实施例允许跳过操作数加载,所以计算系统100的性能可比加载操作数且随后存储在操作数之间执行的操作的结果的方法改进。
61.此外,在一些实施例中,因为扩展存储器操作可在计算装置110内使用地址及存储于地址中的数据执行且在一些实施例中,因为扩展存储器操作的结果可存储回原始地址中,所以在扩展存储器操作的执行期间可放宽或无需锁定或互斥操作。在扩展存储器操作的执行期间减少或消除对线程执行锁定或互斥操作可导致计算系统100的性能提高,因为扩展存储器操作可在同一计算装置110内或跨计算装置110中的两者或更多者并行执行。
62.在一些实施例中,计算装置110中的数据的有效映射可包含基地址、段大小及/或长度。基地址可对应于计算装置110中其中存储数据映射的地址。段大小可对应于计算系统100可处理的数据量(例如,以字节为单位),且长度可对应于对应于数据的位数量。应注意,在一些实施例中,存储于计算装置110中的数据可能无法在主机102上高速缓存。举例来说,扩展存储器操作可完全在计算装置110内执行,在扩展存储器操作的执行期间不妨碍或否则传送数据来回于主机102。
63.在其中基地址是4096、段大小是1024及长度是16,386的非限制性实例中,经映射地址7234可在第三段中,第三段可对应于多个计算装置110中的第三计算装置(例如计算装置110-3)。在此实例中,主机102及/或第一通信子系统108及第二通信子系统106可将执行扩展存储器操作的命令(例如请求)转发到第三计算装置110-3。第三计算装置110-3可确定数据是否存储于第三计算装置110-3的存储器中的经映射地址中。如果数据存储于经映射地址(例如第三计算装置110-3中的地址)中,那么第三计算装置110-3可使用所述数据执行所请求的扩展存储器操作且可将扩展存储器操作的结果存储回其中最初存储数据的地址中。
64.在一些实施例中,含有经请求用于执行扩展存储器操作的数据的计算装置110可由主机控制器101及/或第一通信子系统108及/或第二通信子系统106确定。举例来说,所有计算装置110可用的总地址空间的一部分可经分配给每一相应计算装置。因此,主机控制器101及/或第一通信子系统108及/或第二通信子系统106可具有对应于总地址空间的哪些部分对应于哪些计算装置110的信息且因此可引导相关计算装置110执行扩展存储器操作。在一些实施例中,主机控制器101及/或第二通信子系统106可将对应于相应计算装置110的地址(或地址范围)存储于数据结构(例如表)中,且基于存储于数据结构中的地址将扩展存储器操作的执行引导到计算装置110。
65.然而,实施例不限于此,且在一些实施例中,主机控制器101及/或第二通信子系统106可确定存储器资源的大小(例如数据量)且基于与每一计算装置110相关联的存储器资
源的大小及所有计算装置110可用的总地址空间确定哪一计算装置110存储用于执行扩展存储器操作的数据。在其中主机控制器101及/或第二通信子系统106基于所有计算装置110可用的总地址空间及每一计算装置110可用的存储器资源量确定存储用于执行扩展存储器操作的数据的计算装置110的实施例中,可跨计算装置存储器资源的多个非重叠部分执行扩展存储器操作。
66.继续上述实例,如果在所请求的地址中没有数据,那么第三计算装置110-3可如本文中关于图2到5更详细描述那样请求数据,且在数据加载到第三计算装置110-3的地址中之后执行扩展存储器操作。在一些实施例中,一旦扩展存储器操作由计算装置(例如在此实例中第三计算装置110-3)完成,则可通知主机102及/或可将扩展存储器操作的结果传送到存储器装置116及/或主机102。
67.在一些实施例中,存储器控制器112可经配置以响应于来自设备104的控制器或主机102的请求而从耦合到设备104的存储器装置116-1、

、116-n检索数据块。存储器控制器112随后可致使数据块传送到计算装置110-1、

、110-n及/或设备控制器。类似地,存储器控制器112可经配置以从计算装置110及/或控制器115接收数据块。存储器控制器112随后可致使数据块传送到耦合到存储控制器104的存储器装置116。
68.数据块可为约4千字节大小(但实施例不限于此特定大小)且可响应于由控制器115及/或主机产生且经由第二通信子系统106发送的一或多个命令而依流式传输方式由计算装置110-1、

、110-n处理。在一些实施例中,数据块可为32位、64位、128位等数据字或分块,及/或数据块可对应于用于执行扩展存储器操作的操作数。
69.举例来说,如本文中关于图2到5更详细描述,因为计算装置110可响应于完成对前一数据块执行扩展存储器操作而对第二数据块执行扩展存储器操作(例如过程),所以当数据块由计算装置110处理时,数据块可连续流式传输通过计算装置110。在一些实施例中,如果没有来自控制器及/或主机102的介入命令,那么数据块可依流式传输方式通过计算装置110进行处理。即,在一些实施例中,控制器115(或主机102)可发出致使计算装置110处理其接收的数据块的命令,且随后由计算装置110接收的数据块可在没有来自控制器的额外命令的情况下进行处理。
70.在一些实施例中,处理数据块可包含使用数据块执行扩展存储器操作。举例来说,计算装置110-1、

、110-n可响应于经由第二多个通信子系统106来自控制器的命令而对数据块执行扩展存储器操作以评估一或多个功能、移除非想要数据、提取相关数据或否则结合扩展存储器操作的执行使用数据块。
71.在其中数据(例如用于执行扩展存储器操作的数据)映射到计算装置110中的一或多者中的非限制性实例中,控制器可将命令传送到计算装置110以使用映射到计算装置110中的数据启动扩展存储器操作的执行。在一些实施例中,控制器115可查找对应于映射到计算装置110中的数据的地址(例如物理地址)且基于地址确定地址(及因此数据)映射到哪一计算装置(例如计算装置110-1)。接着,命令可传送到含有地址(及因此数据)的计算装置(例如计算装置110-1)。在一些实施例中,命令可经由第二通信子系统106传送到计算装置(例如计算装置110-1)。
72.控制器115(或主机)可进一步经配置以将命令发送到计算装置110以分配及/或取消分配计算装置110可用于使用数据块执行扩展存储器操作的资源。在一些实施例中,分配
及/或取消分配计算装置110可用的资源可包含选择性启用一些计算装置110同时选择性停用一些计算装置110。举例来说,如果需要比总数更少的计算装置110来处理数据块,那么控制器115可将命令发送到将用于处理数据块的计算装置110以仅启用期望用于处理数据块的那些计算装置110。
73.在一些实施例中,控制器115可进一步经配置以发送使由计算装置110执行的操作(例如扩展存储器操作)的执行同步的命令。举例来说,控制器115(及/或主机)可将致使第一计算装置110-1执行第一扩展存储器操作的命令发送到第一计算装置110-1,且控制器115(或主机)可将使用第二计算装置执行第二扩展存储器操作的命令发送到第二计算装置110-2。通过控制器115使由计算装置110执行的操作(例如扩展存储器操作)的执行同步可进一步包含致使计算装置110在特定时间或按特定顺序执行特定操作。
74.如上文描述,由执行扩展存储器操作产生的数据可经存储于计算装置110中在执行扩展存储器操作之前数据存储于其中的原始地址中,然而,在一些实施例中,由执行扩展存储器操作产生的数据可在执行扩展存储器操作之后转换成逻辑记录。逻辑记录可包括独立于其物理位置的数据记录。举例来说,逻辑记录可为指向计算装置110中的至少一者中其中存储对应于扩展存储器操作的执行的物理数据的地址(例如位置)的数据记录。
75.在一些实施例中,扩展存储器操作的结果可经存储于计算装置存储器的相同于在执行扩展存储器操作之前数据存储于其中的地址的地址中。然而,实施例不限于此,且扩展存储器操作的结果可经存储于计算装置存储器的相同于在执行扩展存储器操作之前数据存储于其中的地址的地址中。在一些实施例中,逻辑记录可指向这些地址位置,使得扩展存储器操作的结果可从计算装置110存取且传送到计算装置110外部的电路系统(例如,传送到主机)。
76.在一些实施例中,控制器115可直接从存储器控制器112接收数据块及/或将数据块发送到存储器控制器112。此可允许控制器115使未由计算装置110处理的数据块(例如未用于执行扩展存储器操作的数据块)来回传送于存储器控制器112。
77.举例来说,如果控制器115从耦合到存储控制器104的主机102接收将由耦合到存储控制器104的存储器装置116存储的未经处理数据块,那么控制器115可致使未经处理数据块传送到存储器控制器112,存储器控制器112又可致使未经处理数据块传送到耦合到存储控制器104的存储器装置。
78.类似地,如果主机请求未经处理(例如完全)数据块(例如未由计算装置110处理的数据块),那么存储器控制器112可致使未经处理数据块传送到控制器115,控制器115随后可将未经处理数据块传送到主机。
79.图2是根据本公开的数个实施例的呈包含包括第一多个通信子系统208、第二多个通信子系统206的设备204及多个存储器装置216的计算系统200的形式的功能框图。如本文中使用,“设备”可指代(但不限于)各种结构或结构组合中的任一者,例如(举例来说)电路或电路系统、一或多个裸片、一或多个模块、一或多个装置或一或多个系统。在图2中说明的实施例中,存储器装置216-1、

、216-n可包含一或多个存储器模块(例如双倍数据速率(ddr)存储器、三维(3d)交叉点存储器、nand存储器、单列直插式存储器模块、双列直插式存储器模块等)。存储器装置216-1、

、216-n可包含易失性存储器及/或非易失性存储器。在数个实施例中,存储器装置216-1、

、216-n可包含多芯片装置。多芯片装置可包含数个不
同存储器类型及/或存储器模块。举例来说,存储器系统可包含任何类型的模块上的非易失性或易失性存储器。
80.如图2中说明且与图1相比,多个计算装置210-1、210-2、210-3、210-4、210-5(下文统称为多个计算装置210)可经耦合到第一多个通信子系统208中的第一者208-1,其通过第二多个通信子系统206中的第二者206-2耦合到多个硬件加速器114。在一个实施例中,第一多个通信子系统208可为多个多路复用器,且第二多个通信子系统206可为多个axi互连件。此外,第一通信子系统208-1直接耦合到缓冲器219,缓冲器219经耦合到第二通信子系统206-2。第二多个通信子系统206中的第二者206-2直接耦合到额外缓冲器217。额外缓冲器217经耦合到第一多个通信子系统208中的第二者208-2。第一多个通信子系统208中的第二者208-2可经耦合到多个硬件加速器214-1、214-2、214-3中的每一者。硬件加速器214可在相同于计算装置210、第一多个通信子系统208、第二多个通信子系统206等的场可编程门阵列(fpga)上。硬件加速器214可用于执行数个posit操作及/或用于与fpga上的内部sram通信。
81.第一多个通信子系统208可包含经配置以在本文中描述的操作执行期间分配及取消分配资源给计算装置210的电路系统及/或逻辑。举例来说,电路系统及/或逻辑可在本文中描述的扩展存储器操作执行期间分配及/或取消分配资源给计算装置210。虽然上文描述的实例包含特定布置内的特定数目个多路复用器,但实例不限于此。举例来说,多路复用器可定位于缓冲器219与第二通信子系统206-2之间、第二通信子系统206-2与缓冲器208-3之间等。第一多个通信子系统208中的第三者208-3可经耦合到第二多个通信子系统206-3中的第三者。第三通信子系统206-3可经耦合到主机接口220。在一个实例中,第三通信子系统206-3可经由axi总线耦合到主机接口220。
82.如说明,第二多个通信子系统206中的第一者(206-1)可经耦合到控制器(例如存储器控制器)212)。控制器212可经由数个通道207-1、

、207-n耦合到数个存储器装置216-1、

、216-n。
83.图3是根据本公开的数个实施例的呈包含包括多个通信子系统306、308的设备304及多个存储器装置316的计算系统300的形式的功能框图。如本文中使用,“设备”可指代(但不限于)各种结构或结构组合中的任一者,例如(举例来说)电路或电路系统、一或多个裸片、一或多个模块、一或多个装置或一或多个系统。在图3中说明的实施例中,存储器装置316-1、

、316-n可包含一或多个存储器模块(例如双倍数据速率(ddr)存储器、三维(3d)交叉点存储器、nand存储器、单列直插式存储器模块、双列直插式存储器模块等)。存储器装置316-1、

、316-n可包含易失性存储器及/或非易失性存储器。在数个实施例中,存储器装置316-1、

、316-n可包含多芯片装置。多芯片装置可包含数个不同存储器类型及/或存储器模块。举例来说,存储器系统可包含任何类型的模块上的非易失性或易失性存储器。
84.如图3中说明,设备304可包含计算装置(例如计算核心)。在一些实施例中,设备304可为fpga。如图3中说明,多个计算装置310可包含可各自耦合到多个通信子系统306的端口311(作为实例,无需经由一组额外通信子系统(例如图1及2中分别说明的通信子系统108及208(其可为多路复用器))耦合。计算装置310可经由包含存储器端口(“memport”)311-1、系统端口“systemport”)311-2、外围端口(“periphport”)311-3及前端口(“frontport”)311-4的对应端口连接耦合到多个通信子系统306)。
85.存储器端口311-1可直接耦合到明确指定为从存储器端口接收数据且将数据传送到存储器控制器312的通信子系统306-1。系统端口311-2可直接耦合到通信子系统308,通信子系统308进一步耦合到多个缓冲器319-1、319-2、319-3(下文统称为缓冲器319)。多个缓冲器319中的每一者可经耦合到多个通信子系统306-2、306-3、306-4中的相应者。多个通信子系统306-2、306-3、306-4可经耦合到多个额外缓冲器317-1、317-2、317-3。多个缓冲器317各自耦合到多个硬件加速器314-1、314-2、314-3中的相应者。多个硬件加速器314经耦合到逻辑313。多个通信子系统306-2、306-3、306-4各自明确指定为从系统端口311-2接收数据且将数据传送到相应加速器(例如芯片上加速器)314,加速器314接着可将数据传送到额外逻辑电路系统313。
86.外围端口311-3可直接耦合到明确指定为从外围端口311-3接收数据且将数据传送到串行端口318的通信子系统306-5。前端口311-4可直接耦合到明确指定为从前端口311-4接收数据且将数据传送到主机接口320且随后经由通道303及/或305传送到主机302的通信子系统306-6。在此实施例中,硬件加速器314可经由多路复用器耦合到计算装置310。相比之下,多路复用器可不用于将控制器312、串行端口318及/或主机接口320耦合到计算装置310,而是端口及通信子系统直接连接以进行数据传送。
87.在一些实施例中,通信子系统306可促进计算装置310的相应地址空间之间的可见性。举例来说,计算装置310可响应于接收数据及/或文件而将数据存储于计算装置310的存储器资源中。计算装置可使对应于计算装置310的存储器资源中其中存储数据的位置的地址(例如物理地址)相关联。另外,计算装置310可将与数据相关联的地址解析(例如分解)成逻辑块。
88.在一些实施例中,与数据相关联的第0逻辑块可传送到处理装置(例如精简指令集计算(risc)装置)。特定计算装置(例如计算装置110、210、310)可经配置以认识到一组特定逻辑地址可由所述计算装置(例如210-2)存取,而其它计算装置(例如分别为计算装置210-3、210-4等)可经配置以认识到数组不同逻辑地址可由所述计算装置110、210、310存取。换句话说,第一计算装置(例如计算装置210-2)可存取与所述计算装置210-2相关联的第一组逻辑地址,且第二计算装置(例如计算装置210-3)可存取与其相关联的第二组逻辑地址,等等。
89.如果在第一计算装置(例如计算装置210-2)处请求对应于第二组逻辑地址(例如可由第二计算装置210-3存取的逻辑地址)的数据,那么通信子系统306可促进第一计算装置(例如计算装置210-2)与第二计算装置(例如计算装置210-3)之间通信以允许第一计算装置(例如计算装置210-2)存取对应于第二组逻辑地址(例如可由第二计算装置210-3存取的一组逻辑地址)的数据。即,通信子系统308可促进计算装置310(例如210-1)与额外计算装置(例如计算装置210-2、210-3、210-4)之间通信以允许计算装置的地址空间对彼此可见。
90.在一些实施例中,计算装置110、210、310之间用于促进地址可见性的通信可包含由第一计算装置(例如计算装置210-1)的事件队列接收请求存取对应于第二组逻辑地址的数据的消息、将所请求的数据加载到第一计算装置的存储器资源中及将所请求的数据传送到消息缓冲器。一旦数据由消息缓冲器缓冲,则数据可经由通信子系统310传送到第二计算装置(例如计算装置210-2)。
91.举例来说,在扩展存储器操作的执行期间,控制器115、215、315及/或第一计算装置(例如计算装置210-1)可确定由主机命令(例如由主机(例如图1中说明的主机102)产生的启动扩展存储器操作的执行的命令)指定的地址对应于多个计算装置(110、210)中的第二计算装置(例如计算装置210-2)的存储器资源中的位置。在此情况中,计算装置命令可经产生且从控制器115、215、315及/或第一计算装置210-1发送到第二计算装置210-2以使用在由计算装置命令指定的地址处存储于第二计算装置210-2的存储器资源中的操作数启动扩展存储器操作的执行。
92.响应于接收计算装置命令,第二计算装置(210-2)可使用在由计算装置命令指定的地址处存储于第二计算装置(210-2)的存储器资源中的操作数执行扩展存储器操作。此可减少来自主机与存储控制器及/或计算装置(210、310)之间的命令业务,因为主机无需产生额外命令来致使扩展存储器操作执行,此可通过例如减少与使命令来回传送于主机相关联的时间来提高计算系统的整体性能。
93.在一些实施例中,控制器115、215、315可确定执行扩展存储器操作可包含执行多个子操作。举例来说,扩展存储器操作可经解析或分解成可作为执行整个扩展存储器操作的部分执行的两个或更多个子操作。在此情况中,控制器115、215、315及/或通信子系统106、108、206、208、308可利用上文描述的地址可见性来促进由各种计算装置110、210、310执行子操作。响应于子操作完成,控制器115、215、315可致使子操作的结果合并成对应于扩展存储器操作的结果的单个结果。
94.在其它实施例中,请求存储于计算装置110、210、310中的数据的应用程序可知道哪些计算装置110、210、310包含所请求的数据(例如,可具有对应于哪些计算装置110、210、310包含所请求的数据的信息)。在此实例中,应用程序可请求来自相关计算装置110、210、310的数据,及/或地址可经由通信子系统108、106、208、206、308加载到多个计算装置110、120、130中且由请求数据的应用程序存取。
95.控制器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互连及/或互操作的其它通信子系统。
96.如上文描述,响应于接收由控制器115、215、315、通信子系统108、106、208、206、308及/或主机(例如图1中说明的主机102)产生的命令,可实现使用存储于计算装置110、210、310中及/或来自流式传输通过计算装置110、210、310的数据块的数据执行扩展存储器操作。
97.图4是根据本公开的数个实施例的呈包含包括第一多个通信子系统406、第二通信子系统408的设备404及多个存储器装置416的计算系统400的形式的功能框图。
98.如图4中说明,设备404可包含计算装置(例如计算核心)。在一些实施例中,设备404可为fpga。如图4中说明且类似于图3,多个计算装置410可包含可各自耦合到多个通信子系统406的端口411(作为实例,无需经由一组额外通信子系统(例如图1及2中分别说明的通信子系统108及208(其可为多路复用器))耦合。计算装置410可经由包含存储器端口(“memport”)411-1、系统端口“systemport”)411-2、外围端口(“periphport”)411-3及前端
口(“frontport”)411-4的对应端口连接耦合到多个通信子系统40)6。
99.存储器端口411-1可直接耦合到明确指定为从存储器端口接收数据且将数据传送到存储器控制器412的通信子系统406-1。与图3相比,图4说明系统端口411-2直接耦合到缓冲器419,缓冲器419直接耦合到第二通信子系统406-2。第二通信子系统406-2同样耦合到额外缓冲器417。额外缓冲器417经耦合到额外通信子系统408。如类似于图2那样展示,图4说明分别耦合到多个硬件加速器414-1、414-2、414-3中的每一者的通信子系统408。
100.此外,外围端口411-3可直接耦合到明确指定为从外围端口411-3接收数据且将数据传送到串行端口418的通信子系统406-5。前端口411-4可直接耦合到明确指定从前端口411-4接收数据且将数据传送到主机接口420且随后经由通道403及/或405传送到主机402的通信子系统406-6。在此实施例中,硬件加速器414可经由多路复用器耦合到计算装置410。相比之下,多路复用器可不用于将控制器412、串行端口418及/或主机接口420耦合到计算装置310,而是端口及通信子系统直接连接以进行数据传送。
101.图5是根据本公开的数个实施例的呈包含数个端口511-1、511-2、511-3、511-4的计算核心510的形式的功能框图。计算核心510可包含存储器管理单元(mmu)520、物理存储器保护(pmp)单元522及高速缓存524。
102.mmu 520指代用于存储器及与处理器相关联的高速缓存操作的计算机硬件组件。mmu 520可负责存储器管理且集成到处理器中或在一些实例中,可在单独集成电路(ic)芯片上。mmu 520可用于硬件存储器管理,其可包含监督及调节处理器对随机存取存储器(ram)及高速缓存存储器的使用。mmu 520可用于操作系统(os)存储器管理,此可确保足够存储器资源可用于每一运行程序的对象及数据结构。mmu 520可用于应用程序存储器管理,其可分配每一个别程序的所需或所使用存储器且接着在操作结束或空间变得可用时回收利用释放的存储器空间。
103.在一个实施例中,pmp单元522可用于限制对存储器的存取且使过程彼此隔离。pmp单元522可用于设置指定存储器区域的存储器存取特权(读取、写入、执行)。pmp单元522可支持具有4个字节的最小区域大小的8个区域。在一些实例中,pmp单元522仅可在m模式中编程。pmp单元522可强制对u模式存取的许可。然而,经锁定区域可另外强制其对m模式的许可。高速缓存524可为sram高速缓存、3d交叉点高速缓存等。高速缓存524可包含8kb、16kb、32kb等且可包含错误校正编码(ecc)。
104.计算核心510还可包含多个端口,其包含存储器端口511-1、系统端口511-2、外围端口511-3及前端口511-4。存储器端口511-1可直接耦合到明确指定为从存储器端口511-1接收数据的通信子系统(如图3中说明)。系统端口511-2可直接耦合到明确指定为从系统端口511-2接收数据的通信子系统。通过系统端口511-2的数据可传送到加速器(例如芯片上加速器)。外围端口511-3可直接耦合到明确指定为从外围端口511-3接收数据的通信子系统,且此数据可最终传送到串行端口。前端口511-4可直接耦合到明确指定为从前端口511-4接收数据的通信子系统,且此数据可最终传送到主机接口且随后传送到主机。
105.计算核心510可为具完全linux能力的高速缓存一致的64位risc-v处理器。在一些实例中,存储器端口511-1、系统端口511-2及外围端口511-3可为传出端口且前端口511-4可为传入端口。计算核心510的实例可包含u54-mc计算核心。计算核心510可包含指令存储器系统、指令提取单元、执行管线单元、数据存储器系统且支持全局、软件及计时器中断。指
令存储器系统可包含16千位字节(kib)双向设置相关联指令高速缓存。指令存储器系统中的所有块的存取延时可为1个时钟循环。指令高速缓存可不与平台存储器系统的剩余部分保持一致。写入到指令存储器可通过执行fence.i指令来与指令提取流同步。指令高速缓存可具有64个字节的行大小,且高速缓存行填充可触发计算核心510外部的突发存取。
106.指令提取单元可包含用于改进处理器核心的性能的分支预测硬件。分支预测器可包含:28条目分支目标缓冲器(btb),其可预测所采用分支的目标;512条目分支历史表(bht),其可预测条件分支的方向;及6条目返回地址堆叠(ras),其可预测过程返回的目标。分支预测器可具有单循环延时,使得正确预测的控制流指令不会导致惩罚。不正确预测的控制流指令可引发三循环惩罚。
107.执行管线单元可为单发出按次序管线。管线可包含五个阶段:指令提取、指令解码及寄存器提取、执行、数据存储器存取及寄存器写回。管线可具有每时钟循环一个指令的峰值执行速率,且可完全经绕过使得多数指令具有单循环结果延时。管线可关于写后读及写后写危险互锁,使得指令可经调度来避免停顿。
108.数据存储器系统可包含dtim接口,其可支持高达8kib。从核心到其自身dtim的存取延时可为针对全部字的两个时钟循环及针对较小数量的三个时钟循环。从一个核心到任何其它核心的dtim的存储器请求可能不如从核心到其自身dtim的存储器请求高效。未对准存取在硬件中不受支持且可导致允许软件模拟的陷阱。
109.在一些实施例中,计算核心510可包含浮点单元(fpu),其可对32位单精度及64位双精度算术的ieee 754-2008浮点标准提供全硬件支持。fpu可包含全管线式混合乘加单元及迭代除法及平方根单元、量值比较器及浮点到整数转换单元,对次正常及ieee默认值具有全硬件支持。
110.图6是表示根据本公开的数个实施例的对应于扩展存储器接口的实例方法628的流程图。在框630,方法628可包含在耦合于主机装置与非易失性存储器装置之间的处理单元处接收指示对写入到非易失性存储器装置或从非易失性存储器装置读取的数据执行的多个操作的信令。一定数量的操作可包含上文描述的扩展存储器操作。
111.在框632,方法628可包含在处理单元处响应于信令而执行多个操作中的至少一个操作。计算装置(例如图1到4中的相应计算装置110、210、310、410)可包含执行至少一个操作的处理单元。操作可响应于接收数据块而使用数据块执行以通过多个计算装置中的至少一者将数据大小从第一大小减小到第二大小。操作的执行可由控制器引起。控制器可类似于本文中图1到3中说明的控制器115、215、315。在一些实施例中,执行操作可包含执行扩展存储器操作,如本文中描述。操作可进一步包含在未从可耦合到控制器的主机接收主机命令的情况下由特定计算装置执行操作。响应于操作执行完成,方法628可包含将通知发送到可耦合到控制器的主机。
112.在框634,方法628可包含经由处理单元或非易失性存储器装置处的控制器存取非易失性存储器装置中的存储器阵列的部分。非易失性存储器装置可由存储器控制器存取且存储器控制器可将所存取的数据发送到计算装置、硬件加速器等以便执行一定数量的操作中的一者。方法628可进一步包含使用额外控制器(例如存储器控制器)致使数据块从存储器装置传送到多个通信子系统。方法628可进一步包含经由多个通信子系统分配对应于多个计算装置中的相应计算装置的资源以对数据块执行操作。
113.在框636,方法628可包含向硬件加速器传输指示对写入到非易失性存储器装置或从非易失性存储器装置接收的数据执行多个操作中的一或多个额外操作的命令的额外信令。举例来说,指示第一操作的信令可发送到第一硬件加速器,指示第二操作的信令可发送到第二硬件加速器,等等。
114.在一些实施例中,启动操作执行的命令可包含对应于特定计算装置的存储器阵列中的位置的地址,且方法628可包含将操作的结果存储于对应于特定计算装置的位置的地址中。举例来说,方法628可包含将操作的结果存储于对应于特定计算装置中的存储器位置的地址中,其中在执行扩展存储器操作之前存储对应于操作的执行的操作数。即,在一些实施例中,操作的结果可经存储于计算装置的相同地址位置中,其中在执行操作之前存储用作操作的操作数的数据。
115.在一些实施例中,方法628可包含由控制器确定对应于操作的执行的操作数未由特定计算装置存储。响应于此确定,方法628可进一步包含由控制器确定对应于操作的执行的操作数经存储于耦合到多个计算装置的存储器装置中。方法628可进一步包含从存储器装置检索对应于操作的执行的操作数、致使对应于操作的执行的操作数存储于多个计算装置中的至少一个计算装置中及/或使用至少一个计算装置致使操作执行。存储器装置可类似于图1中说明的存储器装置116。
116.在一些实施例中,方法628可进一步包含确定至少一个子操作将作为操作的部分来执行、将命令发送到不同于特定计算装置的计算装置以致使子操作执行及/或使用不同于特定计算装置的计算装置执行子操作作为操作执行的部分。举例来说,在一些实施例中,可确定操作将分解成多个子操作,且控制器可致使不同计算装置执行不同子操作作为执行操作的部分。在一些实施例中,控制器可协同第一及第二多个通信子系统(本文图1到4中说明的此108、106、208、206、308、306及408、406)将子操作指派给计算装置中的两者或更多者作为操作执行的部分及/或指派给硬件加速器中的两者或更多者。
117.尽管本文中已说明及描述特定实施例,所属领域的一般技术人员应了解,经计算以实现相同结果的布置可代替所展示的特定实施例。本公开希望涵盖本公开的一或多个实施例的调适或变化。应理解,上文描述已依说明性方式而非限制性方式进行。所属领域的技术人员将在审阅上文描述之后明白上文实施例的组合及本文中未明确描述的其它实施例。本公开的一或多个实施例的范围包含其中使用上文结构及过程的其它应用。因此,应参考所附权利要求书以及此权利要求书有权获得的等效物的全范围来确定本公开的一或多个实施例的范围。
118.在前述具体实施方式中,为了简化本公开,一些特征一起分组于单个实施例中。本公开的方法不应被解译为反映本公开的公开实施例必须使用比每一权利要求中明确所述的特征更多的特征的意图。而是如所附权利要求书反映,发明标的物在于单个公开实施例的非所有特征。因此,所附权利要求特此并入到具体实施方式中,其中每个权利要求独立作为单独实施例。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献