存储器中的推理的制作方法


存储器中的推理
1.相关申请的交叉引用
2.本技术要求于2020年5月26日提交的美国专利申请第16/883869号的利益和优先权,其全部内容通过引用并入本文。


背景技术:



3.本公开的各方面涉及在非常规计算硬件中执行机器学习和人工智能任务,并且具体地涉及在存储器硬件中执行这样的任务。
4.在大数据时代,对机器学习和人工智能能力的需求急剧增加。常规地,机器学习已经被用于生成模型,该模型然后可以生成人工智能任务的推理,诸如预测、分类等。随着对推理能力的需求增加,计算硬件制造商正在寻求扩大现有计算平台(诸如台式计算机和服务器)以及其他新兴类型的处理系统(诸如移动设备和边缘处理设备)中的推理能力的密度。
5.常规地,机器学习和人工智能“加速器”已经通过硬件扩展接口(例如,主板上的pcie插槽)添加到系统中,以扩展底层计算基础设施的能力。不幸的是,将这种硬件扩展接口用于加速器表示这些相同的接口不能用于其他目的,诸如网络、图形渲染、安全、声音处理和其他常见的计算任务。因此,将附加的机器学习和人工智能优化的计算硬件添加到现有处理系统中往往会牺牲其他重要的计算组件。
6.因此,需要的是能够在不牺牲其他基本组件的情况下为现有处理系统添加附加的机器学习和人工智能计算能力的系统和方法。


技术实现要素:



7.本公开的某些方面提供了一种增强型存储器模块,该增强型存储器模块包括:计算核心(core);以及一个或多个双模式存储器元件,其中增强型存储器模块被配置为:将一个或多个双模式存储器元件中的存储器的第一子集分配为主机处理系统可寻址存储器,并且将一个或多个双模式存储器元件中的存储器的第二子集分配为计算核心可寻址存储器;接收来自主机处理系统的数据;利用计算核心处理数据以生成经处理数据;以经由存储器的第一子集将经处理数据提供给主机处理系统。
8.另外的方面提供了一种用于利用包括计算核心的增强型存储器模块处理数据的方法,该方法包括:通过将增强型存储器模块的存储器的第一子集分配为主机处理系统可寻址存储器,并且将增强型存储器模块的存储器的第二子集分配为计算核心可寻址存储器,来对增强型存储器模块进行初始化;在增强型存储器模块处,接收来自主机处理系统的数据;在增强型存储器模块上,利用计算核心处理数据来生成经处理数据;以及经由存储器的第一子集,将经处理数据提供给主机处理系统。
9.另外的方面提供了一种非暂态计算机可读介质,该非暂态计算机可读介质包括指令,该指令在由主机处理系统的一个或多个处理器执行时,引起处理系统执行用于利用包括计算核心的增强型存储器模块处理数据的方法,该方法包括:通过将增强型存储器模块
的存储器的第一子集分配为主机处理系统可寻址存储器,并且将增强型存储器模块的存储器的第二子集分配为计算核心可寻址存储器,来对增强型存储器模块进行初始化;在增强型存储器模块处,接收来自主机处理系统的数据;在增强型存储器模块上,利用计算核心处理数据以生成经处理数据;以及经由存储器的第一子集,将经处理数据提供给主机处理系统。
10.以下描述和相关附图详细阐述了一个或多个实施例的某些说明性特征。
附图说明
11.附图描绘了一个或多个实施例的某些方面,并且因此不应当被视为对本公开的范围的限制。
12.图1描绘了包括存储器集成加速器的增强型存储器模块的示例。
13.图2描绘了包括如关于图1描述的增强型存储器模块的示例处理系统。
14.图3a-图3c描绘了增强型存储器模块的示例配置。
15.图4描绘了用于将数据转移到增强型存储器模块上的计算核心存储器元件的示例方法。
16.图5描绘了用于从增强型存储器模块上的计算核心存储器元件转移数据的示例方法。
17.图6描绘了用于利用增强型存储器模块上的计算核心处理数据的示例方法。
18.图7描绘了用于构造增强型存储器模块的示例方法。
19.图8描绘了包括增强型存储器模块的处理系统的示例存储器映射。
20.图9描绘了用于利用包括计算核心的增强型存储器模块处理数据的示例方法。
21.图10描绘了可以被配置为利用增强型存储器模块执行数据处理的示例电子设备。
22.为了便于理解,在可能的情况下,使用相同的附图标记来表示附图中常见的相同要素。可以设想,一个实施例的元件和特征可以有利地结合在其他实施例中,而无需进一步说明。
具体实施方式
23.本公开的各方面提供了用于向处理系统(诸如计算机、服务器和其他计算机处理设备)中的存储器硬件添加附加的机器学习和人工智能计算能力的系统和方法。
24.常规计算机处理系统可以包括处理器,该处理器经由接口(诸如dimm接口)连接到存储器模块(诸如dram模块),并且经由其他接口(诸如pcie接口)连接到其他外围设备。随着对机器学习和人工智能“加速器”的需求增加,现有计算机处理系统的一种解决方案是将这样的加速器连接到可用的系统接口,诸如可用的pcie插槽。然而,这样的外围接口插槽的数目在任何给定系统上都可能受到限制,并且特别地,常规计算机处理系统通常可以包括比pcie插槽更多的dimm插槽。
25.本文中描述了包括集成加速器的增强型存储器模块,该集成加速器被配置为执行机器学习和人工智能任务,诸如训练和推理。例如,存储器集成加速器可以使用用于数据和指令通信的标准存储器接口在行业标准的双列直插式存储器模块(dimm)(诸如负载减少型dimm(lrdimm)或注册dimm(rdimm))中实现。在一些实施例中,增强型存储器模块可以称为
例如“ml-dimm”、“ai-dimm”或“推理dimm”。
26.在各种实施例中,存储器集成加速器包括一个或多个处理核心,并且还可以被配置为集成到增强型存储器模块中的片上系统(soc)。处理核心实现了常规存储和检索之外的数据的存上(on-memory)处理。特别地,处理核心可以被配置为执行存上机器学习和人工智能任务。
27.此外,本文中描述的增强型存储器模块可以被配置为在主机处理系统(如在标准存储器模块配置中)与存储器集成加速器之间分割和分配每个增强型存储器模块中的存储器元件和/或存储器空间,以用于存上机器学习和人工智能任务。在一些实施例中,固件元件可以在启动时间(boot time)配置主机处理与存上处理之间的存储器分配。
28.增强型存储器模块中的存储器分割也可以由安装在包括增强型存储器模块的设备上的程序、应用来动态配置,使得可以针对不同的任务和性能需求来调谐整个处理系统的性能。然后,有益的是,增强型存储器模块可以被配置为充当普通存储器模块,以使主机处理系统的可用存储器的容量最大化,或者可以被配置为将该存储器中的一些或全部分配给存储器集成加速器,以使主机处理系统的机器学习和人工智能计算能力最大化。
29.因此,本文中描述的实施例有益地使得处理系统能够利用附加的计算资源来进行计算任务,诸如机器学习和人工智能任务,而不会由于缺少可用接口(例如,pcie)而移除或阻止使用其他基本组件,也不会添加或修改附加的物理接口,并且不需要实现全新的接口。附加的计算资源大大增加了现有处理系统以及新处理系统的容量。此外,本文中描述的实施例利用双操作模式架构,该架构有益地允许用户在不同情况下选择配置不同的操作模式,以使处理系统的效用最大化。
30.本文中描述的实施例可以用于很多上下文中。例如,采用服务器的数据中心可以实现本文中描述的实施例,以得到(procure)更少的服务器,同时具有相同量的计算能力,这节省了设备成本、电力和冷却成本、空间成本,并且还提供了更节能的处理中心。作为另一示例,桌面和/或消费级计算系统可以实现本文中描述的实施例,以将改进的数据处理能力带到家庭计算机,而不是依赖于外部数据处理能力(例如,由云处理服务提供的)。作为又一示例,物联网(iot)设备可以实现本文中描述的实施例,以将数据处理能力扩展到全新类型的设备,并且进一步实现“边缘”处的处理(例如,机器学习和人工智能推理)。
31.具有存储器集成处理核心的示例增强型存储器模块
32.图1描绘了包括存储器集成加速器104的增强型存储器模块102的示例。
33.在一些实施例中,增强型存储器模块102是根据标准化形状因子构建的,诸如lr-dimm形状因子或用于存储器模块的另一标准化形状因子。利用增强型存储器模块102的标准化形状因子允许其被集成到现有处理系统中,而无需修改底层系统接口或存储器访问协议。在该示例中,存储器模块102包括用于与处理系统中的dimm插槽接口连接的引脚116。
34.存储器模块102包括多个存储器元件112a-f,存储器元件112a-f例如可以是动态随机存取存储器(dram)、同步dram(sdram)、低功耗双倍数据速率(lpddr)dram、高带宽存储器(hbm)、图形ddr(gddr)存储器等。在一些示例中,存储器元件112a-f可以包括不同类型的存储器元件的混合。
35.存储器元件112a-f中的每个存储器元件连接到相邻的存储器缓冲器114a-f,存储器缓冲器114a-f用于对由主机处理系统(未示出)从存储器元件112a-f读取的数据和写入
到存储器元件112a-f的数据进行缓冲。
36.存储器元件112a-f通常可以称为双模式或双用途存储器元件,因为它们的存储器可以全部或部分地分配给存储器集成加速器104以执行存上处理,和/或分配给主机处理系统以执行常规系统存储器功能。图3a-图3c描述了不同存储器分配的若干示例。
37.存储器集成加速器104包括闪存存储器106,闪存存储器106被配置为存储固件,该固件可以被配置为对存储器模块102进行初始化。例如,固件可以被配置为对(一个或多个)计算核心108和增强型存储器模块上的任何其他逻辑进行初始化。此外,存储器控制器(未示出)可以被配置为对存储器元件112a-f进行初始化,以供(一个或多个)计算核心108和/或主机处理系统使用。
38.在一些实施例中,存储器元件112a-f的初始化可以由加速器104处理,这可以改善主机处理系统的启动时间(例如,通过减少启动时间)。在这种情况下,主机处理系统的存储器驱动器将只需要对存储器接口进行初始化。
39.在一些实施例中,闪存存储器模块106中的固件可以在启动时间对存储器模块102进行配置,并且将一些或全部存储器容量(例如,包括存储器元件和/或存储器范围、地址等)分配(或映射)给加速器104。闪存存储器模块106中的固件可以被更新,使得分配给加速器104的存储器量可以在运行时间(runtime)之间改变。在启动时间分配来自存储器元件112a-f的存储器(例如,存储器地址的范围)的实施例中,合并处理系统将只“看到”剩余的可用存储器(不包括分配给加速器104的存储器),而不试图写入到分配给加速器104的存储器,从而避免了存储器冲突。
40.在一些实施例中,闪存存储器模块106中的固件可以在启动时间对初始存储器分配进行配置,该存储器分配然后可以通过来自合并处理系统的指令而动态地被改变。在这种情况下,合并处理系统的操作系统可以被配置为动态地重新分配存储器,以供处理系统使用,从而避免冲突。
41.加速器104还包括(一个或多个)计算核心108,(一个或多个)计算核心108可以被配置为执行各种类型的处理任务,包括机器学习和人工智能任务,如训练和推理。在一些实施例中,一个或多个计算核心108可以基于arm
tm
架构、精简指令集计算机(risc)架构或复杂指令集架构计算机(cisc),仅举若干示例。
42.在一些实施例中,(一个或多个)计算核心108替换并且集成常规存储器模块上的注册表时钟驱动器芯片或电路的功能。
43.加速器104还包括多个存储器元件110a-b,存储器元件110a-b专用于(一个或多个)计算核心108,或者换言之,加速器104还包括单模式或单用途存储器元件。由于存储器元件110a-b专用于(一个或多个)计算核心108,因此与存储器元件110a至110b相关联的存储器不可由主机处理系统寻址。专用存储器元件110a-b允许加速器104始终能够执行计算任务。在一些示例中,存储器元件110a-b可以被配置为加载被配置为执行机器学习或人工智能任务(诸如训练或推理)的机器学习模型的模型参数,诸如权重、偏差等。
44.在一些实施例中,加速器104可以被实现为片上系统(soc),该soc与存储器模块102被集成。
45.值得注意的是,图1中的每种类型的元件(例如,存储器、缓冲器、闪存、计算核心等)的数目仅为一个示例,并且很多其他配置也是可能的。此外,尽管示出了存储器模块102
的单侧上的所有元件,但在其他实施例中,存储器模块102可以包括相对侧上的附加元件,诸如附加存储器元件、缓冲器、计算核心、闪存存储器模块等。包括增强型存储器模块的示例处理系统
46.图2描绘了包括增强型存储器模块(诸如关于图1描述的102)的示例处理系统200。
47.在该示例中,处理系统200实现包括操作系统(os)用户空间202、os内核(kernel)空间212和cpu 218的软件堆栈。软件堆栈被配置为与增强型存储器模块224a和224b接口连接。
48.通常,操作系统可以被配置为在os用户空间(诸如202)与os内核空间(诸如212)之间对虚拟存储器进行隔离(segregate),以提供存储器保护和硬件保护,防止恶意或错误的软件行为。在该示例中,os用户空间202是应用软件在其中执行的存储器区域,诸如ml/ai应用208和加速器运行时间应用210。然而,内核空间212是为运行例如特权操作系统内核、内核扩展和设备驱动器(诸如存储器驱动器214和加速器驱动器216)而保留的存储器空间。
49.此外,在该示例中,os用户空间202包括机器学习和/或人工智能应用208,机器学习和/或人工智能应用208可以实现被配置为处理数据206的(一个或多个)模型204(例如,机器学习模型,诸如人工神经网络模型)。(一个或多个)模型204可以包括例如权重、偏差和其他参数。数据206可以包括例如视频数据、图像数据、音频数据、文本数据和其他类型的数据,(一个或多个)模型204可以对这些数据进行操作以执行各种机器学习任务,诸如图像识别和分割、语音识别和转换、值预测等。
50.ml/ai应用208还被配置为与加速器运行时间应用210接口连接,加速器运行时间应用210是一种用户空间进程,其被配置为将数据处理请求引导到处理加速器,诸如在增强型存储器模块224a-b中发现的加速器。值得注意的是,虽然图2中描绘了单个ml/ai应用208,但这只是一个示例,并且其他类型的处理应用可以存在于os用户空间202中,并且被配置为利用增强型存储器模块224a-b。
51.加速器运行时间应用210被配置为与os内核空间212中的加速器驱动器216接口连接。通常,os内核空间212中的驱动器是被配置为控制附接到处理系统(诸如处理系统200)的特定类型的设备的软件。例如,驱动器可以向硬件设备(诸如存储器管理单元220)提供软件接口,这使得操作系统和其他计算机程序能够访问硬件设备的功能而无需知道关于硬件设备的精确细节。
52.在该示例中,加速器驱动器216被配置为通过存储器驱动器214提供对增强型存储器模块224a-b的访问。在一些实施例中,加速器驱动器216被配置为执行由增强型存储器模块224a-b使用的协议。为此,加速器驱动器216可以与存储器驱动器214交互,以向增强型存储器模块224a-b发送命令。例如,这样的命令可以用于:将数据从分配给主机处理系统的存储器移动到分配给增强型存储器模块224a-b的加速器(例如,分配给计算核心)的存储器;开始处理数据;或者将数据从分配给加速器的存储器移动到分配给主机处理系统的存储器。
53.在一些实施例中,加速器驱动器216可以使用特定的存储器地址来实现用于对增强型存储器模块224a-b的存储器进行写入或读取的协议。在一些情况下,存储器地址可以物理地映射到增强型存储器模块。加速器驱动器216还可以访问os用户空间202不可访问的增强型存储器模块224a-b上的存储器地址,该存储器地址可以用于将数据复制到分配给增
强型存储器模块224a-b的加速器的存储器中,然后复制到那些增强型存储器模块的计算核心中。
54.此外,加速器驱动器216被配置为与存储器驱动器214接口连接。存储器驱动器215被配置为提供对增强型存储器模块224a-b的存储器元件的低级访问。例如,存储器驱动器214可以被配置为将由加速器驱动器216生成的命令直接传递到增强型存储器模块224a-b。存储器驱动器214可以是操作系统的存储器管理的一部分,但是可以被修改以实现本文中描述的增强型存储器模块功能。例如,存储器驱动器214可以被配置为在数据分配给加速器(例如,计算核心)的存储器与增强型存储器模块224a-b内的分配给主机处理系统的存储器之间被复制的时段期间,阻止对增强型存储器模块224a-b的访问。
55.存储器驱动器214被配置为与存储器管理单元(mmu)220接口连接,mmu 220是被配置为管理与处理器(诸如cpu 218)相关联的存储器和高速缓存操作的硬件组件。
56.存储器管理单元220被配置为与存储器控制器222接口连接,存储器控制器222是被配置为管理进出主机处理系统的主存储器的数据流的硬件组件。在一些实施例中,存储器控制器222是单独的芯片或被集成到另一芯片中,诸如是微处理器的组成部分,如cpu 218(在这种情况下,它可以称为集成存储器控制器(imc))。存储器控制器222可以替代地称为存储器芯片控制器(mcc)或存储器控制器单元(mcu)。
57.在该示例中,存储器控制器222被配置为控制进出增强型存储器模块224a-b的数据流。在一些实施例中,如上所述,增强型存储器模块224a-b可以是增强型dimm。
58.增强型存储器模块224a-b分别包括驱动器226a-b,驱动器226a-b能够与处理系统200的元件通信。例如,驱动器226a至226b可以经由与存储器控制器222的dimm接口来与处理系统100的其他元件通信。
59.一般来说,ml/ai应用208可以经由模型204请求数据206的处理,以由增强型存储器模块通过加速器运行时间应用210执行,加速器运行时间应用210将该请求传送到加速器驱动器216,并且然后传送到存储器驱动器214上,存储器驱动器216可以是常规存储器驱动器。然后,存储器驱动器214可以经由存储器管理单元220和存储器控制器222,将处理指令和数据路由到增强型存储器模块224a-b中的一个或多个。这仅是处理流的一个示例,并且其他处理流也是可能的。
60.在一些实施例中,如果多个增强型存储器模块(例如,224a-b)用于同一应用(例如,ml/ai应用208),则加速器运行时间应用210和加速器驱动器216可以协作以管理整个系统的数据。例如,加速器运行时间应用210可以向加速器驱动器216请求总的可用的加速器分配的存储器(和增强型存储器模块的数目),然后如果单个增强型存储器模块不能处理整个工作负载,则尽可能高效地在增强型存储器模块之间分割工作负载。作为另一示例,对于多个工作负载和多个增强型存储器模块,加速器运行时间应用210可以被配置为将工作负载分割给可用的增强型存储器模块,以使性能最大化。
61.cpu 218通常可以是包括一个或多个其自己的处理核心的中央处理单元。虽然在该示例中,cpu 218没有执行来自ml/ai应用208的、被路由到增强型存储器模块224a-b的特定处理请求,但在其他示例中,cpu 218可以与增强型存储器模块224a-b一起并行处理来自ml/ai应用208(和其他应用)的请求。
62.此外,尽管针对本示例描述了处理系统200的某些方面,但处理系统200可以包括
其他组件。例如,处理系统200可以包括附加的应用、附加的硬件元件(例如,参考图10描述的其他种类的处理单元)等。图2有意关注与所描述的实施例相关的处理系统200的某些元件。增强型存储器模块的示例操作模式
63.图3a-图3c描绘了增强型存储器模块(例如,图1中的102和图2中的224a-b)的示例存储器分配配置。
64.在图3a中,增强型存储器模块302例如在启动时间由闪存存储器306中的固件配置为仅使用其专用存储器元件310a-b以进行(一个或多个)计算核心308的任何处理。在这种配置中,增强型存储器模块302被设置为向系统存储器提供最大容量。
65.在图3b中,增强型存储器模块302被配置为除了由存储器元件312a-c提供的用于(一个或多个)计算核心308的任何处理的存储器空间之外,还使用其专用存储器元件310a-b。另一方面,由存储器元件312d-f提供的存储器空间被保留用于主机处理系统,这与常规系统存储器一样。因此,在这种配置中,增强型存储器模块302被设置为平衡模块上计算能力与主机处理系统存储器需求。
66.在图3c中,增强型存储器模块302被配置为除了由存储器元件312a-f提供的用于(一个或多个)计算核心308的任何处理的存储器空间之外,还使用其专用存储器元件310a-b。因此,在这种配置中,增强型存储器模块302被设置为使模块上计算能力最大化。值得注意的是,在这种配置中,另一增强型存储器模块或另一常规存储器模块可以为主机处理系统操作提供主机处理系统可寻址存储器。
67.值得注意的是,尽管在本示例中,各种存储器元件被描绘为分配给(一个或多个)计算核心308或主机系统存储器,但这种表示是为了方便。例如,虚拟存储器地址空间可以分配给存上计算或主机系统处理,而不管这些地址空间如何分配给物理存储器元件内的物理存储器地址(例如,通过页表)。
68.此外,图3a-图3c中描绘的示例配置仅是一些示范性的可能性。由增强型存储器模块302提供并且分配给(一个或多个)计算核心308的主机处理系统存储器空间的量可以是可用的、主机处理系统可寻址存储器元件的0与100%之间的任何比率。然而,在一些实施例中,分配给(一个或多个)计算核心308的存储器空间的比率可以被限制,使得每个增强型存储器模块上的至少一些存储器空间被保留用于主机系统。
69.用于将数据转移到增强型存储器模块上的计算核心存储器元件的示例方法
70.图4描绘了用于将数据转移到增强型存储器模块(例如,图1中的102、图2中的224a-b和图3a-图3c中的302)上的计算核心存储器元件的示例方法。
71.方法400从步骤402开始,其中经由增强型存储器协议接收数据命令,以将数据移动到增强型存储器模块上的计算核心存储器元件中。在一些实施例中,加速器驱动器(诸如以上关于图2讨论的)可以经由增强型存储器协议生成命令。
72.注意,在该示例中,计算核心存储器元件可以是指定的计算核心存储器单元,诸如图3中的存储器元件310a-b,或者是分配给计算核心的双模式存储器元件,诸如图3中的存储器单元312a-c。此外,方法400是关于将数据移入和移出存储器元件而描述的,但这是为了便于演示。分配给计算核心的存储器可以是存储器地址范围、存储器空间、或任何其他逻辑和物理存储器细分。
73.然后,方法400进行到步骤404,其中阻止主机处理系统命令访问增强型存储器模
块上的存储器元件。这是为了防止利用增强型存储器模块上计算核心处理数据命令时发生任何冲突。
74.在一些实施例中,存储器驱动器(诸如以上关于图2所述)可以被配置为阻止主机处理系统命令。
75.然后,方法400进行到步骤406,其中在数据总线上设置繁忙状态,以在增强型存储器模块上移动数据时阻止来自主机处理系统的读取请求。这是为了防止利用增强型存储器模块上的计算核心处理数据命令时出现任何中断。
76.然后,方法400进行到步骤408,其中将数据从分配给主机处理系统的存储器元件转移到分配给增强型存储器模块上的计算核心的存储器元件。如上所述,分配给计算核心的存储器元件可以包括指定的计算核心存储器元件,诸如图3中的存储器元件310a-b,或者可以包括已经分配给计算核心的双模式存储器元件,诸如图3中的存储器元件312a-c。这里,转移到计算核心存储器元件中的数据可以包括用于处理的数据以及用于如何处理数据的指令。例如,数据可以包括用于处理的数据(例如,图2中的206)、模型数据(例如,图2中的204)和处理命令。
77.然后,方法400进行到步骤410,其中确定数据转移是否完成。如果不是,则该方法返回到步骤408并且继续数据转移。
78.如果在步骤410转移完成,则方法400进行到步骤412,在那里繁忙状态从数据总线被清除。
79.方法400进行到步骤414,其中解除阻止分配给主机处理系统的存储器元件的主机处理系统命令,使得与主机处理系统的正常存储器操作可以继续。
80.然后,方法400进行到步骤416,其中利用增强型存储器模块的一个或多个计算核心处理数据,诸如下面关于图6更详细描述的。例如,处理数据可以包括执行机器学习任务,诸如训练或推理。
81.用于从增强型存储器模块上的计算核心存储器元件转移数据的示例方法
82.图5描绘了用于从增强型存储器模块(例如,图1中的102、图2中的224a-b和图3a-图3c中的302)上的计算核心转移数据的示例方法500。例如,方法500可以在图4的步骤416数据处理完成之后执行。
83.方法500从步骤502开始,其中经由增强型存储器协议接收结果命令,以将数据移出增强型存储器模块上的计算核心存储器元件。注意,在该示例中,计算核心存储器元件可以是指定的计算核心存储器元件,诸如图3中的存储器元件310a-b,或者是已经分配给计算核心的双模式存储器元件,诸如图3中的存储器元件312a-c。
84.然后,方法500进行到步骤504,其中阻止主机处理系统命令访问增强型存储器模块上的存储器元件。这是为了防止在增强型存储器模块上处理数据命令时发生任何冲突。
85.然后,方法500进行到步骤506,其中在数据总线上设置繁忙状态,以在增强型存储器模块上移动数据时阻止来自主机处理系统的读取请求。
86.方法500接着进行到步骤508,其中将数据从计算核心存储器元件转移到增强型存储器模块上的分配给主机处理系统的存储器元件。如上所述,分配给计算核心的存储器元件可以包括指定的计算核心存储器元件,诸如图3中的存储器元件310a-b,或者可以包括已经分配给计算核心的双模式存储器元件,诸如图3中的存储器元件312a-c。
87.然后,方法500进行到步骤510,其中确定转移是否完成。如果不是,则该方法返回到步骤508并且继续数据转移。
88.如果在步骤510转移完成,则方法500进行到步骤512,其中繁忙状态从数据总线被清除。
89.最后,方法500进行到步骤514,其中解除阻止分配给主机处理系统的存储器元件的主机处理系统命令,使得与主机处理系统的正常存储器操作可以继续。
90.用于利用增强型存储器模块上的计算核心处理数据的示例方法
91.图6描绘了用于利用增强型存储器模块上的计算核心处理数据的示例方法600。例如,利用增强型存储器模块(例如,图1中的102、图2中的224a-b和图3a-图3c中的302)的计算核心处理数据可以在将数据转移到增强型存储器上的计算核心存储器元件之后进行,诸如以上关于图4所述。用于处理的数据可以由应用、传感器、其他处理器等生成。例如,用于处理的数据可以包括图像、视频或声音数据。
92.方法600从步骤602开始,其中从请求方接收命令以处理增强型存储器模块上的数据。例如,请求方可以是数据处理应用,诸如图2中的ml/ai应用208。
93.在一些实施例中,请求方查询加速器运行时间应用(例如,图2中的210),以确定系统中被配置有多少增强型存储器模块、以及这些增强型存储器模块上有多少存储器被分配给运行的基于加速的工作负载。加速器运行时间应用然后可以查询加速器驱动器(例如,图2中的216)以获取该信息。有了这些信息,请求方可以确定工作负载是否适合在配置的存储器量内,并且相应地执行工作负载。在可用存储器量不足以满足工作负载的情况下,请求方可以重新配置工作负载,诸如减小工作负载的大小或将工作负载分块,使得可用存储器可以得到利用。
94.方法600然后进行到步骤604,其中将数据加载到增强型存储器模块中的(一个或多个)计算核心存储器元件中。如上所述,(一个或多个)计算核心存储器元件可以是专用存储器元件或动态分配的存储器元件。在一些实施例中,步骤604根据参考图4描述的方法400来执行。
95.在一些实施例中,请求方(例如,图2中的ml/ai应用208)将数据发送到加速器运行时间应用(例如,图2中的210),加速器运行时间应用随后将数据转发到加速器驱动器(例如,图2中的216)。加速器驱动器然后可以发送将数据加载到存储器驱动器(例如,图2中的214)的协议命令,并且存储器驱动器然后将该命令发送到增强型存储器模块(例如,图2中的224a-b)。
96.方法600然后进行到步骤606,其中经由增强型存储器协议接收处理命令,诸如下面更详细描述的。处理命令可以被配置为引起增强型存储器模块的(一个或多个)处理核心对存储在计算核心存储器元件中的数据执行数据处理。
97.在一些实施例中,在加载数据之后,加速器驱动器(例如,图2中的216)将向存储器驱动器(例如,图2中的214)发送用以处理数据的协议命令,存储器驱动器随后将该命令转发到增强型存储器模块(例如,图2中的224a-b)以供执行。
98.方法600然后进行到步骤608,其中由增强型存储器模块上的(一个或多个)计算核心处理存储在计算核心存储器元件中的数据。在一些实施例中,处理可以涉及机器学习和/或人工智能任务,诸如训练或推理。此外,在一些实施例中,机器学习任务可以跨单个增强
型存储器模块上的多个计算核心、以及跨多个增强型存储器模块并行处理。
99.然后,方法600进行到步骤610,其中如果工作负载的处理尚未完成,则方法600返回到步骤608。
100.如果在步骤610,工作负载的处理完成,则方法600进行到步骤612,其中经由增强型存储器协议发送结果信号。
101.在一些实施例中,加速器驱动器(例如,图2中的216)可以周期性地查询增强型存储器模块(例如,图2中的224a-b)以确定处理何时完成。当处理完成时,增强型存储器模块可以在总线上输出指示处理完成的信号。然后,加速器驱动器下次查询增强型存储器模块时,将观察结果信号。
102.方法600然后进行到步骤612,其中将经处理数据从计算核心存储器元件移动到增强型存储器模块上的分配给主机处理系统的存储器元件。例如,关于图3b,数据可以从分配给计算核心的存储器元件310a-b和312a-c中的一个或多个移动到分配给主机处理系统的存储器单元312d-f中的一个或多个。
103.在一些实施例中,在处理完成之后,加速器驱动器(例如,图2中的216)将向存储器驱动器(例如,图2中的214)发送协议命令以检索数据。然后,存储器驱动器将命令传递给增强型存储器模块,该增强型存储器模块进而将经处理数据复制到主机处理系统可寻址存储器中。
104.方法600然后在步骤614结束,其中经处理数据从增强型存储器模块上的分配给主机处理系统的存储器元件而被提供给请求方。
105.在一些实施例中,加速器驱动器(例如,图2中的216)将向存储器驱动器(例如,图2中的214)发送命令以读出经处理数据。然后,存储器驱动器将这些读取请求转发到增强型存储器模块。加速器驱动器将通过加速器运行时间应用(例如,图2中的210)将这些结果发送回请求方。
106.增强型存储器协议的示例方面
107.增强型存储器协议可以被实现以与增强型存储器模块(例如,图1中的102或图2中的224a-b或图3a-图3c中的302)交互。在一些实施例中,增强型存储器协议可以基于联合电子器件工程委员会(jedec)协议或其扩展。
108.在一些实施例中,增强型存储器协议可以实现用于与存储器集成加速器(诸如参考图1描述的加速器104)接口连接的各种命令。
109.例如,增强型存储器协议可以包括“初始化”信号(或命令),该“初始化”信号(或命令)被配置为从例如闪存存储器模块(诸如以上关于图1描述的模块106)加载固件,并且对存储器集成加速器进行初始化。
110.增强型存储器协议还可以包括“数据”信号(或命令),该“数据”信号(或命令)被配置为发起用于将数据从增强型存储器模块(例如,图1中的102、图2中的224a-b和图3a-图3c中的302)上的分配给系统存储器(例如,图3b中的312d-f)的存储器元件移动到计算核心存储器元件(例如,图3b中的312a-c)的过程,诸如通过关于图4描述的方法,其可以是静态或动态分配的,如上所述。
[0111]“数据”信号可以具有变体,诸如:“移动所有数据”,其中起始地址与结束地址之间的所有数据在系统分配的存储器和计算核心分配的存储器之间移动;“移动x个字节”,其中
x个数据字节从系统分配的存储器移动到计算核心分配的存储器;以及“移动x个周期”,其中x个周期将用于将数据从系统分配的存储器移动到计算核心分配的存储器。
[0112]
增强型存储器协议还可以包括“进程”信号(或命令),该“进程”信号(或命令)被配置为引起增强型存储器模块(例如,图1中的102、图2中的224a-b和图3a-图3c中的302)的计算核心开始执行已经被存储在计算核心分配的存储器中的指令,诸如通过关于图6描述的方法。
[0113]
增强型存储器协议还可以包括“结果”信号(或命令),该“结果”信号(或命令)被配置为发起处理以将数据从计算核心分配的存储器(例如,图3b中的312a-c)移动到系统分配的存储器(例如,图3b中的312d-f),使得其可以由主机处理系统的其他部分(例如,图2中的系统200)访问,诸如通过参考图5描述的方法。
[0114]
因此,在一个示例中,加速器驱动器(例如,图2中的216)发送“数据”信号,并且存储器驱动器(例如,图2中的214)将该信号转发到增强型存储器模块(例如,图2中的224a-b)。加速器驱动器通知存储器驱动器阻止业务,这可以是带有“数据”命令的单个命令,也可以是单独的命令。然后,存储器驱动器阻止不是来自加速器驱动器的所有业务。在某些情况下,业务可以会被保留或发回以重试。增强型存储器模块还可以设置缓冲器中的值以输出指示存储器转移状态的数据模式。例如,加速器驱动器可以向增强型存储器模块请求数据(存储器驱动器转发该数据),并且如果数据模式为“繁忙”,则加速器驱动器等待并且重试,并且如果数据模式“完成”,则加速驱动器通知存储器驱动器再次允许业务。
[0115]
用于构造增强型存储器模块的示例方法
[0116]
图7描绘了用于构造增强型存储器模块(例如,图1中的102、图2中的224a-b和图3a-图3c中的302)的示例方法700。
[0117]
方法700从步骤702开始,其中将双模式存储器元件放置在增强型存储器模块上,诸如图1中的增强型存储器模块102上的存储器元件112a-f。在该示例中,“双模式”是指每个存储器元件的以常规方式用于系统存储器以及用于(一个或多个)模块上的计算核心(诸如图1中108)的本地存储器的能力。存储器元件不需要物理修改即可在任一模式下工作。
[0118]
方法700然后进行到步骤704,其中将计算核心放置在增强型存储器模块上,诸如图1中的(一个或多个)计算核心108。
[0119]
方法700然后进行到步骤706,其中在(一个或多个)计算核心与每个双模式存储器元件之间连接命令/地址线。命令/地址线可以被配置为传输用于确定存储器的哪些部分被访问以及确定命令是什么的信号。
[0120]
方法700然后进行到步骤708,其中在每个双模式存储器元件与(一个或多个)计算核心(用于本地处理模式)以及存储器缓冲器(用于系统存储器模式)之间连接数据线。
[0121]
方法700然后进行到步骤710,其中将计算核心存储器元件放置在增强型存储器模块上,诸如图1中的增强型存储器模块102的存储器元件110a-b。
[0122]
方法700然后进行到步骤712,其中在(一个或多个)计算核心与计算核心存储器元件之间连接命令/地址线和数据线。
[0123]
方法700然后进行到步骤714,其中将闪存存储器模块放置在增强型存储器模块上,诸如图1中的增强型存储器模块102的闪存存储器模块106。
[0124]
方法700然后进行到步骤716,其中将闪存存储器模块连接到(一个或多个)计算核
心,诸如图1中的增强型存储器模块102的(一个或多个)计算核心108。
[0125]
方法700然后进行到步骤718,其中将固件写入到闪存存储器模块以对增强型存储器模块进行初始化,诸如图1的增强型存储器模块102。
[0126]
值得注意的是,方法700只是如何构造增强型存储器模块(诸如图1的增强型存储器模块102)的一个高级示例,并且存在很多其他示例。为了清楚起见,省略了对具体制造技术的讨论。
[0127]
包括增强型存储器模块的处理系统的示例存储器映射
[0128]
图8描绘了包括增强型存储器模块(例如,图1中的102、图2中的224a-b和图3a-图3c中的302)的处理系统的示例存储器映射。
[0129]
在所描绘的示例中,处理系统具有六个存储器模块插槽(例如,6个dimm插槽),并且每个dimm插槽中的每个存储器模块具有8gb的系统可寻址存储器,总共48gb的系统存储器。每个dimm插槽中的存储器模块可以是常规存储器模块或增强型存储器模块,使得系统作为一个整体可以是“混合配置”,从而具有常规和增强型存储器模块的混合,也可以是“增强型配置”,从而具有所有增强型存储器模块。因为增强型存储器模块可以被配置为在主机处理系统与存上处理元件之间分配存储器(例如,分配给计算核心,诸如图1中的108),所以系统中存在的增强型存储器越多,可用于分配给存上处理的总存储器就越多。
[0130]
此外,在该示例中,存储器分配阈值被实现为使得任何增强型存储器模块中的多达一半的存储器可以被分配给存上处理(例如,分配给计算核心,诸如图1中的108),并且剩余的存储器被分配给主机处理系统。在其他实施例中,存储器分配阈值可以不被实现,或者可以用不同值来实现。通常可以建立存储器阈值来确保主机处理系统保持足够的分配的存储器以正确执行。
[0131]
存储器映射802或804描绘了具有存储器模块的混合配置的处理系统中的示例存储器分配。存储器映射806和808描绘了具有增强型配置的处理系统中的示例存储器分配,其中所有存储器模块是增强型存储器模块。在所描绘的示例中,806和808的增强型配置中的存储器分配包括分配给计算核心用于存上处理的更多存储器。
[0132]
此外,存储器映射806和808中的存储器分配特定于每个增强型存储器模块(例如,增强型存储器模块0-5)的计算核心。然而,在其他示例中,存储器通常可以被分配给作为一组的计算核心,诸如在示例存储器映射802和804中,而不是特定地,诸如在示例存储器映射806和808中。
[0133]
一般来说,具有更多增强型存储器模块会增加可以分配给存上处理的存储器量,从而提高主机处理系统执行例如ai和ml特定任务(诸如训练和推理)的能力,并且增加配置总系统存储器的灵活性。
[0134]
在主机处理系统与存上处理之间动态重新分配存储器的情况下(例如,经由图1的加速器104),可以相应地更新存储器映射。例如,存储器映射802可以被更新为存储器映射806或其他组合。
[0135]
图8中描绘的示例旨在演示使用增强型存储器模块的各种存储器配置的若干示例,并且其他示例也是可能的。
[0136]
用于利用增强型存储器模块处理数据的示例方法
[0137]
图9描绘了用于利用包括计算核心(例如,图1中的108)的增强型存储器模块(例
如,图1中的102、图2中的224a-b、图3a-图3c中的302)处理数据的示例方法900。在一些实施例中,计算核心可以是存储器集成加速器的一部分,诸如图1的104。在一些实现中,计算核心可以包括多个处理元件,诸如多个个体处理核心。在一些实施例中,增强型存储器模块包括负载减少的双列直插式存储器模块(lrdimm)。
[0138]
方法900开始于步骤902,其中通过将增强型存储器模块的存储器的第一子集分配为主机处理系统可寻址存储器,并且将增强型存储器模块的存储器的第二子集分配为计算核心可寻址存储器,来对增强型存储器模块进行初始化,诸如参考图3a-图3c所述。
[0139]
在方法900的一些实施例中,增强型存储器模块的初始化可以在启动时间执行。在其他实施例中,增强型存储器模块的初始化可以在主机处理系统的操作期间动态地执行。
[0140]
在一些实施例中,存储器的分配可以包括:在计算核心与主机处理系统之间分配一个或多个双模式存储器元件(诸如图1中的存储器元件112a-f)的存储器。例如,分配可以包括一个或多个存储器范围或存储器地址空间,诸如虚拟地址空间或物理地址空间。
[0141]
方法900进行到步骤904,其中在增强型存储器模块处,接收来自主机处理系统的数据。数据可以由主机处理系统提供给增强型存储器模块,以在增强型存储器模块上进行处理,诸如由计算核心进行处理。
[0142]
在一些实施例中,所接收的数据可以包括用于由机器学习模型和机器学习模型参数进行处理的数据。在一些实施例中,所接收的数据还可以包括处理命令或指令。
[0143]
方法900然后进行到步骤906,其中将所接收的数据存储在存储器的第一子集(主机处理系统可寻址存储器)中。在一些实施例中,主机处理系统可寻址存储器包括在增强型存储器模块上的一个或多个双模式存储器元件(诸如图1中的存储器元件112a-f)中的分配给主机处理系统的存储器空间。
[0144]
方法900然后进行到步骤908,其中将所接收的数据从存储器的第一子集(主机处理系统可寻址存储器)转移到存储器的第二子集(计算核心可寻址存储器)。
[0145]
在一些实施例中,计算核心可寻址存储器包括非主机处理系统可寻址存储器,诸如图1中的存储器元件110a-b。在一些实施例中,计算核心可寻址存储器仅包括非主机处理系统可寻址存储器(诸如在图3a的示例中)。
[0146]
方法900然后进行到步骤910,其中利用增强型存储器模块上的计算核心处理所接收的数据来生成经处理数据。
[0147]
方法900然后进行到步骤912,其中将经处理数据从存储器的第二子集(计算核心可寻址存储器)转移到存储器的第一子集(主机处理系统可寻址存储器)。
[0148]
方法900然后进行到步骤914,其中经由存储器的第一子集(主机处理系统可寻址存储器),将经处理数据提供给主机处理系统,诸如以上关于图2所述。
[0149]
在一些实施例中,对增强型存储器模块进行初始化包括处理存储在增强型存储器上的闪存存储器模块中的固件指令,诸如以上关于图1所述。
[0150]
在一些实施例中,方法900还包括在将数据从存储器的第一子集(主机处理系统可寻址存储器)转移到存储器的第二子集(计算核心可寻址存储)之前,在主机处理系统的数据总线上设置繁忙状态,以指示数据转移正在进行,并且阻止对主机处理系统可寻址存储器的读取请求,诸如以上关于图4所述。
[0151]
在一些实施例中,方法900还包括在将数据从存储器的第一子集(主机处理系统可
寻址存储器)转移到存储器的第二子集(计算核心可寻址存储)之后,在主机处理系统的数据总线上设置可用状态,以允许从主机处理系统到主机处理系统可寻址存储器的读取或写入请求,诸如以上关于图4所述。
[0152]
在一些实施例中,方法900还包括在将数据从存储器的第一子集(主机处理系统可寻址存储器)转移到存储器的第二子集(计算核心可寻址存储器)之前,启用用于增强型存储器模块的主机处理系统存储器命令块,诸如以上关于图4所述。
[0153]
在一些实施例中,方法900还包括在将数据从存储器的第一子集(主机处理系统可寻址存储器)转移到存储器的第二子集(计算核心可寻址存储器)之后,禁用用于增强型存储器模块的主机处理系统存储器命令块,诸如以上关于图4所述。
[0154]
在一些实施例中,方法900还包括通过以下方式来重新分配增强型存储器模块的存储器:解除分配存储器的第一子集和存储器的第二子集,以及将一个或多个双模式存储器元件中的存储器的第三子集分配为主机处理系统可寻址存储器,并且将一个或多个双模式存储器元件中的存储器的第四子集分配为计算核心可寻址存储器,其中存储器的第三子集不同于第一子集,并且其中存储器的第四子集不同于第二子集。在一些实施例中,重新分配在启动时间之后执行,诸如当主机处理系统正在运行的时候。因此,重新分配可以称为存储器的动态或“热”重新分配。
[0155]
例如,在一些实施例中,第一分配(诸如图3a的分配)可以动态地重新分配给第二分配(如图3a、图3b或图3c的分配)或其他未示出的分配。在一些实施例中,在重新分配过程期间,主机处理系统可以被阻止向增强型存储器模块发送存储器命令。在一些实施例中,页表或存储器映射可以在重新分配之后被更新,使得对不再可访问、或新地可访问物理存储器的主机处理系统进行正确配置。例如,图8中的存储器映射示例可以在增强型存储器模块上存储器的重新分配之后更新。
[0156]
用于利用增强型存储器模块的数据处理的示例电子设备
[0157]
图10描绘了示例电子设备1000,电子设备1000可以被配置为利用增强型存储器模块执行数据处理,诸如本文中关于图4-6和图9所述。在一些实施例中,电子设备1000可以包括服务器计算机。
[0158]
电子设备1000包括中央处理单元(cpu)1002,在一些示例中,cpu 1002可以是多核cpu。在cpu 1002处执行的指令可以例如从与cpu 1002相关联的程序存储器加载,或者可以从存储器分区1024加载。
[0159]
电子设备1000还包括针对特定功能而定制的附加处理组件,诸如图形处理单元(gpu)1004、数字信号处理器(dsp)1006和神经处理单元(npu)1008。
[0160]
npu(诸如1008)通常是一种专用电路,其被配置用于实现执行机器学习算法所需要的所有控制和算术逻辑,诸如用于处理人工神经网络(ann)、深度神经网络(dnn)、随机森林(rf)等的算法。npu有时也可以替代地称为神经信号处理器(nsp)、张量处理单元(tpu)、神经网络处理器(nnp)、智能处理单元(ipu)、视觉处理单元(vpu)或图形处理单元。
[0161]
npu可以针对训练或推理进行优化,或者在某些情况下,被配置为平衡这两者之间的性能。对于能够执行训练和推理的npu,这两项任务通常仍可以独立执行。
[0162]
例如,npu(诸如1008)可以被配置为加速常见机器学习推理任务的执行,诸如图像分类、机器翻译、对象检测和各种其他预测模型。在一些示例中,多个npu可以在单个芯片上
被实例化,诸如片上系统(soc),而在其他示例中,它们可以是专用神经网络加速器的一部分。被设计为加速推理的npu通常被配置为在完整模型上操作。这样的npu因此可以被配置为输入新的数据,并且通过已经训练的模型快速处理它以生成模型输出(例如,推理)。
[0163]
作为另一示例,npu可以被配置为加速常见的机器学习训练任务,诸如处理测试数据集(通常被加标签或标记),迭代数据集,然后调节模型参数,诸如权重和偏差,以提高模型性能。通常,基于错误预测而进行的优化涉及通过模型的层而传播回来并且确定梯度以减少预测误差。
[0164]
在一个实施方式中,npu 1008是cpu 1002、gpu 1004和/或dsp1006中的一个或多个的一部分。
[0165]
电子设备1000还可以包括一个或多个输入和/或输出设备1022,诸如屏幕、网络接口、物理按钮等。
[0166]
电子设备1000还包括存储器1024,存储器1024表示一个或多个静态和/或动态存储器,诸如动态随机存取存储器、基于闪存的静态存储器等。在该示例中,存储器1024包括可以由电子设备1000的上述处理器中的一个或多个处理器执行的计算机可执行组件。
[0167]
存储器1024可以表示一个或多个存储器模块,诸如本文中描述的增强型存储器模块(例如,关于图1、图2和图3)。例如,存储器1024可以包括(一个或多个)计算核心1024i和闪存存储器组件1024j。在一些情况下,(一个或多个)计算核心1024i可以包括npu或本文中描述的其他种类的处理器。此外,尽管未示出,但是一些存储器1024可以仅由(一个或多个)计算核心1024j可访问,而一些存储器可以被配置为由处理系统1000或计算核心1024j可访问。
[0168]
在该示例中,存储器1024包括接收组件1024a、存储组件1024b、转移组件1024c、处理组件1024d、发送(或提供)组件1024e、初始化组件1024f、分配组件1024g和分割组件1024h。所描绘的组件和其他未描绘的组件可以被配置为执行本文中描述的方法的各个方面。
[0169]
尽管图10中未示出,但电子设备1000还可以包括用于在电子设备1000的各个方面之间转移数据的一个或多个数据总线。
[0170]
示例条款
[0171]
以下编号条款中描述了实现实施方式:
[0172]
条款1:一种增强型存储器模块,包括:计算核心;以及一个或多个双模式存储器元件,其中所述增强型存储器模块被配置为:将所述一个或多个双模式存储器元件中的存储器的第一子集分配为主机处理系统可寻址存储器,并且将所述一个或多个双模式存储器元件中的存储器的第二子集分配为计算核心可寻址存储器;接收来自主机处理系统的数据;利用所述计算核心处理所述数据,以生成经处理数据;以及经由存储器的所述第一子集,将所述经处理数据提供给所述主机处理系统。
[0173]
条款2:根据条款1所述的增强型存储器模块,其中所述增强型存储器模块还被配置为:将所接收的所述数据存储在存储器的所述第一子集中;在利用所述计算核心处理所述数据之前,将所接收的所述数据从存储器的所述第一子集转移到存储器的所述第二子集;以及在利用所述计算核心处理所述数据之后,将所述经处理数据从存储器的所述第二子集转移到存储器的所述第一子集。
[0174]
条款3:根据条款1至2中任一项所述的增强型存储器模块,其中存储器的所述第二子集还包括被配置为由所述计算核心使用的一个或多个单模式存储器。
[0175]
条款4:根据条款1至3中任一项所述的增强型存储器模块,还包括:闪存存储器模块,所述闪存存储器模块包括用于分配存储器的所述第一子集和存储器的所述第二子集的固件指令。
[0176]
条款5:根据条款1至4中任一项所述的增强型存储器模块,其中所述增强型存储器模块还被配置为:在将所述数据从存储器的所述第一子集转移到存储器的所述第二子集之前,在所述主机处理系统的数据总线上设置繁忙状态,以指示数据转移正在进行。
[0177]
条款6:根据条款5所述的增强型存储器模块,其中所述增强型存储器模块还被配置为:在将所述数据从存储器的所述第一子集转移到存储器的所述第二子集之后,在所述主机处理系统的所述数据总线上设置可用状态。
[0178]
条款7:根据条款1至6中任一项所述的增强型存储器模块,其中所述增强型存储器模块还被配置为:在将所述数据从存储器的所述第一子集转移到存储器的所述第二子集之前,启用用于所述增强型存储器模块的主机处理系统存储器命令块。
[0179]
条款8:根据条款7所述的增强型存储器模块,其中所述增强型存储器模块还被配置为:在将所述数据从存储器的所述第一子集转移到存储器的所述第二子集之后,禁用用于所述增强型存储器模块的所述主机处理系统存储器命令块。
[0180]
条款9:根据条款1至8中任一项所述的增强型存储器模块,其中所述数据包括:用于由机器学习模型处理的数据;以及机器学习模型参数。
[0181]
条款10:根据条款1至9中任一项所述的增强型存储器模块,其中所述增强型存储器模块包括双列直插式存储器模块(dimm)。
[0182]
条款11:根据条款1至10中任一项所述的增强型存储器模块,其中所述增强型存储器模块还被配置为:解除分配存储器的所述第一子集和存储器的所述第二子集;以及将所述一个或多个双模式存储器元件中的存储器的第三子集分配为主机处理系统可寻址存储器,并且将所述一个或多个双模式存储器元件中的存储器的第四子集分配为计算核心可寻址存储器,其中存储器的所述第三子集不同于所述第一子集,并且其中存储器的所述第四子集不同于所述第二子集。
[0183]
条款12:一种用于利用包括计算核心的增强型存储器模块处理数据的方法,包括:通过将所述增强型存储器模块的存储器的第一子集分配为主机处理系统可寻址存储器并且将所述增强型存储器模块的存储器的第二子集分配为计算核心可寻址存储器,来对所述增强型存储器模块进行初始化;在所述增强型存储器模块处,接收来自主机处理系统的数据;利用所述增强型存储器模块上的所述计算核心处理所述数据,以生成经处理数据;以及经由存储器的所述第一子集,将所述经处理数据提供给所述主机处理系统。
[0184]
条款13:根据条款12所述的方法,还包括:将所接收的数据存储在存储器的所述第一子集中;在利用所述计算核心处理所述数据之前,将所接收的数据从存储器的所述第一子集转移到存储器的所述第二子集;以及在利用所述计算核心处理所述数据之后,将所述经处理数据从存储器的所述第二子集转移到存储器的所述第一子集。
[0185]
条款14:根据条款12至13中任一项所述的方法,其中存储器的所述第一子集和存储器的所述第二子集与一个或多个双模式存储器元件相关联。
[0186]
条款15:根据条款12至14中任一项所述的方法,其中对所述增强型存储器模块进行初始化包括:处理存储在所述增强型存储器模块上的闪存存储器模块中的固件指令。
[0187]
条款16:根据条款12至15中任一项所述的方法,其中存储器的所述第二子集还与被配置为由所述计算核心使用的一个或多个单模式存储器元件相关联。
[0188]
条款17:根据条款13所述的方法,还包括:在将所述数据从存储器的所述第一子集转移到存储器的所述第二子集之前,在所述主机处理系统的数据总线上设置繁忙状态,以指示数据转移正在进行。
[0189]
条款18:根据条款17所述的方法,还包括:在将所述数据从存储器的所述第一子集转移到存储器的所述第二子集之后,在所述主机处理系统的所述数据总线上设置可用状态。
[0190]
条款19:根据条款13所述的方法,还包括:在将所述数据从存储器的所述第一子集转移到存储器的所述第二子集之前,启用用于所述增强型存储器模块的主机处理系统存储器命令块。
[0191]
条款20:根据条款19所述的方法,还包括:在将所述数据从存储器的所述第一子集转移到存储器的所述第二子集之后,禁用用于所述增强型存储器模块的所述主机处理系统存储器命令块。
[0192]
条款21:根据条款12至20中任一项所述的方法,其中所述数据包括:用于由机器学习模型处理的数据;以及机器学习模型参数。
[0193]
条款22:根据条款12至21中任一项所述的方法,其中所述增强型存储器模块包括双列直插式存储器模块(dimm)。
[0194]
条款23:根据条款12至22中任一项所述的方法,还包括:解除分配存储器的所述第一子集和存储器的所述第二子集;以及将所述一个或多个双模式存储器元件中的存储器的第三子集分配为主机处理系统可寻址存储器,并且将所述一个或多个双模式存储器元件中的存储器的第四子集分配为计算核心可寻址存储器,其中存储器的所述第三子集不同于所述第一子集,并且其中存储器的所述第四子集不同于所述第二子集。
[0195]
条款24:一种非暂态计算机可读介质,包括指令,所述指令在由主机处理系统的一个或多个处理器执行时引起所述主机处理系统执行用于利用包括计算核心的增强型存储器模块处理数据的方法,所述方法包括:通过将所述增强型存储器模块的存储器的第一子集分配为主机处理系统可寻址存储器并且将所述增强型存储器模块的存储器的第二子集分配为计算核心可寻址存储器来对所述增强型存储器模块进行初始化;在所述增强型存储器模块处,接收来自所述主机处理系统的数据;利用所述增强型存储器模块上的所述计算核心处理所述数据,以生成经处理数据;以及经由存储器的所述第一子集,将所述经处理数据提供给所述主机处理系统。
[0196]
条款25:根据条款24所述的非暂态计算机可读介质,其中所述方法还包括:将所接收的所述数据存储在存储器的所述第一子集中;在利用所述计算核心处理所述数据之前,将所接收的所述数据从存储器的所述第一子集转移到存储器的所述第二子集;以及在利用所述计算核心处理所述数据之后,将所述经处理数据从存储器的所述第二子集转移到存储器的所述第一子集。
[0197]
条款26:根据条款24至25中任一项所述的非暂态计算机可读介质,其中存储器的
所述第一子集和存储器的所述第二子集与一个或多个双模式存储器元件相关联。
[0198]
条款27:根据条款24至26中任一项所述的非暂态计算机可读介质,其中存储器的所述第二子集还与被配置为由所述计算核心使用的一个或多个单模式存储器元件相关联。
[0199]
条款28:根据条款25所述的非暂态计算机可读介质,其中所述方法还包括:在将所述数据从存储器的所述第一子集转移到存储器的所述第二子集之前,在所述主机处理系统的数据总线上设置繁忙状态,以指示数据转移正在进行。
[0200]
条款29:根据条款29所述的非暂态计算机可读介质,其中所述方法还包括:在将所述数据从存储器的所述第一子集转移到存储器的所述第二子集之后,在所述主机处理系统的所述数据总线上设置可用状态以允许。
[0201]
条款30:根据条款25所述的非暂态计算机可读介质,其中所述方法还包括:在将所述数据从存储器的所述第一子集转移到存储器的所述第二子集之前,启用用于所述增强型存储器模块的主机处理系统存储器命令块;以及在将所述数据从存储器的所述第一子集转移到存储器的所述第二子集之后,禁用用于所述增强型存储器模块的所述主机处理系统存储器命令块。
[0202]
其他注意事项
[0203]
提供上述描述是为了使得本领域技术人员能够实践本文中描述的各种实施例。本文中讨论的示例不限制权利要求书中阐述的范围、适用性或实施例。对这些实施例的各种修改对于本领域技术人员来说将是很清楚的,并且本文中定义的一般原理可以应用于其他实施例。例如,在不脱离本公开的范围的情况下,可以对所讨论的要素的功能和布置进行改变。各种示例可以适当地省略、替换或添加各种过程或组件。例如,所描述的方法可以以不同于所描述的顺序执行,并且各种步骤可以添加、省略或组合。此外,关于一些示例描述的特征可以在一些其他示例中组合。例如,可以使用本文中阐述的任何数目的方面来实现装置或实践方法。此外,本公开的范围旨在覆盖使用除本文中描述的公开的各个方面之外的其他结构、功能或结构和功能来实践的这种装置或方法。应当理解,本文中公开的本公开的任何方面可以通过权利要求的一个或多个要素来体现。
[0204]
如本文中使用的,“示例性”一词表示“用作示例、实例或说明”。本文中描述为“示例性”的任何方面不一定被解释为优于其他方面。
[0205]
如本文中使用的,提及“至少一个”项目列表的短语是指这些项目的任何组合,包括单个成员。例如,“a、b或c中的至少一个”意在覆盖a、b、c、a-b、a-c、b-c和a-b-c、以及具有多个相同要素的任何组合(例如,a-a、a-a-a、a-a-b、a-a-c、a-b-b、a-c-c、b-b、b-b-b、b-b-c、c-c和c-c-c或任何其他顺序的a、b和c)。
[0206]
如本文中使用的,术语“确定”包括多种动作。例如,“确定”可以包括计算(calculating)、计算(computing)、处理、推导、调查、查(例如,在表、数据库或其他数据结构中查)、确认等。此外,“确定”可以包括接收(例如,接收信息)、访问(例如,访问存储器中的数据)等。此外,“确定”可以包括解决、选择、推选、建立等。
[0207]
本文中公开的方法包括用于实现方法的一个或多个步骤或动作。方法步骤和/或动作可以彼此互换而不脱离权利要求的范围。换言之,除非指定了步骤或动作的特定顺序,否则可以在不脱离权利要求的范围的情况下修改特定步骤和/或动作的顺序和/或使用。此外,上述方法的各种操作可以通过能够执行对应功能的任何适当部件来执行。该部件可以
包括各种(一个或多个)硬件和/或软件组件和/或模块,包括但不限于电路、专用集成电路(asic)或处理器。通常,如果存在图中所示的操作,则这些操作可以具有带有类似编号的相应对应装置加功能组件。
[0208]
以下权利要求不限于本文所示的实施例,而是应当符合与权利要求的语言一致的全部范围。在一项权利要求中,除非特别说明,否则单数形式的要素的含义并非“一个并且仅一个”,而是“一个或多个”。除非另有特别说明,否则术语“一些”是指一个或多个。任何权利要求要素都不得根据《美国法典》第35卷第112(f)条的规定进行解释,除非该要素使用短语“用于
……
的部件”明确叙述,或者在方法权利要求的情况下,该要素使用词组“用于
……
的步骤”叙述。本领域普通技术人员已知或稍后将已知的贯穿本公开所描述的各个方面的要素的所有结构和功能等效物通过引用明确并入本文,并且意图被权利要求书所涵盖。此外,本文中公开的任何内容都不打算捐献给公众,无论该公开是否在权利要求书中明确叙述。

技术特征:


1.一种增强型存储器模块,包括:计算核心;以及一个或多个双模式存储器元件,其中所述增强型存储器模块被配置为:将所述一个或多个双模式存储器元件中的存储器的第一子集分配为主机处理系统可寻址存储器,并且将所述一个或多个双模式存储器元件中的存储器的第二子集分配为计算核心可寻址存储器;接收来自主机处理系统的数据;利用所述计算核心处理所述数据,以生成经处理数据;以及经由存储器的所述第一子集,将所述经处理数据提供给所述主机处理系统。2.根据权利要求1所述的增强型存储器模块,其中所述增强型存储器模块还被配置为:将所接收的所述数据存储在存储器的所述第一子集中;在利用所述计算核心处理所述数据之前,将所接收的所述数据从存储器的所述第一子集转移到存储器的所述第二子集;以及在利用所述计算核心处理所述数据之后,将所述经处理数据从存储器的所述第二子集转移到存储器的所述第一子集。3.根据权利要求1所述的增强型存储器模块,其中存储器的所述第二子集还包括被配置为由所述计算核心使用的一个或多个单模式存储器。4.根据权利要求1所述的增强型存储器模块,还包括:闪存存储器模块,包括用于分配存储器的所述第一子集和存储器的所述第二子集的固件指令。5.根据权利要求1所述的增强型存储器模块,其中所述增强型存储器模块还被配置为:在将所述数据从存储器的所述第一子集转移到存储器的所述第二子集之前,在所述主机处理系统的数据总线上设置繁忙状态,以指示数据转移正在进行。6.根据权利要求5所述的增强型存储器模块,其中所述增强型存储器模块还被配置为:在将所述数据从存储器的所述第一子集转移到存储器的所述第二子集之后,在所述主机处理系统的所述数据总线上设置可用状态。7.根据权利要求1所述的增强型存储器模块,其中所述增强型存储器模块还被配置为:在将所述数据从存储器的所述第一子集转移到存储器的所述第二子集之前,启用用于所述增强型存储器模块的主机处理系统存储器命令块。8.根据权利要求7所述的增强型存储器模块,其中所述增强型存储器模块还被配置为:在将所述数据从存储器的所述第一子集转移到存储器的所述第二子集之后,禁用用于所述增强型存储器模块的所述主机处理系统存储器命令块。9.根据权利要求1所述的增强型存储器模块,其中所述数据包括:用于由机器学习模型处理的数据;以及机器学习模型参数。10.根据权利要求1所述的增强型存储器模块,其中所述增强型存储器模块包括双列直插式存储器模块(dimm)。11.根据权利要求1所述的增强型存储器模块,其中所述增强型存储器模块还被配置为:
解除分配存储器的所述第一子集和存储器的所述第二子集;以及将所述一个或多个双模式存储器元件中的存储器的第三子集分配为主机处理系统可寻址存储器,并且将所述一个或多个双模式存储器元件中的存储器的第四子集分配为计算核心可寻址存储器,其中存储器的所述第三子集不同于所述第一子集,并且其中存储器的所述第四子集不同于所述第二子集。12.一种用于利用包括计算核心的增强型存储器模块处理数据的方法,包括:通过将所述增强型存储器模块的存储器的第一子集分配为主机处理系统可寻址存储器并且将所述增强型存储器模块的存储器的第二子集分配为计算核心可寻址存储器,来对所述增强型存储器模块进行初始化;在所述增强型存储器模块处,接收来自主机处理系统的数据;利用所述增强型存储器模块上的所述计算核心处理所述数据,以生成经处理数据;以及经由存储器的所述第一子集,将所述经处理数据提供给所述主机处理系统。13.根据权利要求12所述的方法,还包括:将所接收的所述数据存储在存储器的所述第一子集中;在利用所述计算核心处理所述数据之前,将所接收的所述数据从存储器的所述第一子集转移到存储器的所述第二子集;以及在利用所述计算核心处理所述数据之后,将所述经处理数据从存储器的所述第二子集转移到存储器的所述第一子集。14.根据权利要求12所述的方法,其中存储器的所述第一子集和存储器的所述第二子集与一个或多个双模式存储器元件相关联。15.根据权利要求12所述的方法,其中对所述增强型存储器模块进行初始化包括:处理存储在所述增强型存储器模块上的闪存存储器模块中的固件指令。16.根据权利要求12所述的方法,其中存储器的所述第二子集还与被配置为由所述计算核心使用的一个或多个单模式存储器元件相关联。17.根据权利要求13所述的方法,还包括:在将所述数据从存储器的所述第一子集转移到存储器的所述第二子集之前,在所述主机处理系统的数据总线上设置繁忙状态,以指示数据转移正在进行。18.根据权利要求17所述的方法,还包括:在将所述数据从存储器的所述第一子集转移到存储器的所述第二子集之后,在所述主机处理系统的所述数据总线上设置可用状态。19.根据权利要求13所述的方法,还包括:在将所述数据从存储器的所述第一子集转移到存储器的所述第二子集之前,启用用于所述增强型存储器模块的主机处理系统存储器命令块。20.根据权利要求19所述的方法,还包括:在将所述数据从存储器的所述第一子集转移到存储器的所述第二子集之后,禁用用于所述增强型存储器模块的所述主机处理系统存储器命令块。21.根据权利要求12所述的方法,其中所述数据包括:用于由机器学习模型处理的数据;以及
机器学习模型参数。22.根据权利要求12所述的方法,其中所述增强型存储器模块包括双列直插式存储器模块(dimm)。23.根据权利要求12所述的方法,还包括:解除分配存储器的所述第一子集和存储器的所述第二子集;以及将所述一个或多个双模式存储器元件中的存储器的第三子集分配为主机处理系统可寻址存储器,并且将所述一个或多个双模式存储器元件中的存储器的第四子集分配为计算核心可寻址存储器,其中存储器的所述第三子集不同于所述第一子集,并且其中存储器的所述第四子集不同于所述第二子集。24.一种非暂态计算机可读介质,包括指令,所述指令在由主机处理系统的一个或多个处理器执行时,使得所述主机处理系统执行用于利用包括计算核心的增强型存储器模块处理数据的方法,所述方法包括:通过将所述增强型存储器模块的存储器的第一子集分配为主机处理系统可寻址存储器并且将所述增强型存储器模块的存储器的第二子集分配为计算核心可寻址存储器,来对所述增强型存储器模块进行初始化;在所述增强型存储器模块处,接收来自所述主机处理系统的数据;利用所述增强型存储器模块上的所述计算核心处理所述数据,以生成经处理数据;以及经由存储器的所述第一子集,将所述经处理数据提供给所述主机处理系统。25.根据权利要求24所述的非暂态计算机可读介质,其中所述方法还包括:将所接收的所述数据存储在存储器的所述第一子集中;在利用所述计算核心处理所述数据之前,将所接收的所述数据从存储器的所述第一子集转移到存储器的所述第二子集;以及在利用所述计算核心处理所述数据之后,将所述经处理数据从存储器的所述第二子集转移到存储器的所述第一子集。26.根据权利要求24所述的非暂态计算机可读介质,其中存储器的所述第一子集和存储器的所述第二子集与一个或多个双模式存储器元件相关联。27.根据权利要求24所述的非暂态计算机可读介质,其中存储器的所述第二子集还与被配置为由所述计算核心使用的一个或多个单模式存储器元件相关联。28.根据权利要求25所述的非暂态计算机可读介质,其中所述方法还包括:在将所述数据从存储器的所述第一子集转移到存储器的所述第二子集之前,在所述主机处理系统的数据总线上设置繁忙状态,以指示数据转移正在进行。29.根据权利要求29所述的非暂态计算机可读介质,其中所述方法还包括:在将所述数据从存储器的所述第一子集转移到存储器的所述第二子集之后,在所述主机处理系统的所述数据总线上设置可用状态以允许。30.根据权利要求25所述的非暂态计算机可读介质,其中所述方法还包括:在将所述数据从存储器的所述第一子集转移到存储器的所述第二子集之前,启用用于所述增强型存储器模块的主机处理系统存储器命令块;以及
在将所述数据从存储器的所述第一子集转移到存储器的所述第二子集之后,禁用用于所述增强型存储器模块的所述主机处理系统存储器命令块。

技术总结


本公开的某些方面提供了一种用于利用包括计算核心的增强型存储器模块处理数据的方法,该方法包括:在增强型存储器模块处接收来自主机处理系统的数据;将数据存储在主机处理系统可寻址存储器中;将数据从主机处理系统可寻址存储器转移到计算核心可寻址存储器;利用增强型存储器模块上的计算核心处理数据来生成经处理数据;将经处理数据从计算核心可寻址存储器转移到主机处理系统可寻址存储器;以及经由主机处理系统可寻址存储器将经处理数据提供给主机处理系统。提供给主机处理系统。提供给主机处理系统。


技术研发人员:

J

受保护的技术使用者:

高通股份有限公司

技术研发日:

2021.05.20

技术公布日:

2022/12/23

本文发布于:2024-09-22 00:57:19,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/48143.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:存储器   所述   模块   增强型
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议