本文作者:kaifamei

数据处理系统以及用于访问异构存储器系统的方法

更新时间:2025-12-26 03:19:08 0条评论

数据处理系统以及用于访问异构存储器系统的方法


数据处理系统以及用于访问异构存储器系统的方法
1.相关申请的交叉引用
2.本技术基于并且要求在韩国知识产权局于2021年6月10日提交的第10-2021-0075745号韩国专利申请以及于2021年9月3日提交的第10-2021-0117942号韩国专利申请的优先权,所述韩国专利申请的公开内容通过引用整体合并于本文。
技术领域
3.本公开涉及装置和方法,并且更具体地涉及一种数据处理系统以及用于访问包括处理单元的异构存储器系统的方法。


背景技术:



4.通常,对单个存储器执行存储处理。存储处理的性能和特性可以通过单个存储器来确定。可以在要求较大存储容量的应用处理中使用高容量存储器模块,例如,双列直插式存储器模块(dimm)。可以在要求高带宽的应用处理中使用高带宽存储器件,例如,高带宽存储器(hbm)。单个存储器可以用作高容量dimm或者hbm。
5.可以通过使用由高容量dimm实现的存储器的应用处理,来间歇地执行高带宽存储器操作。当使用多个dimm以便支持高带宽存储器操作时,就会应用与所需容量相比更大的存储容量。相反,使用由hbm实现的存储器的应用处理有时可以执行高容量存储器操作。当使用多个hbm组件以便支持高容量存储器操作时,就会使用高于所需的带宽,因此应用执行速度可能降低。
6.因此,为了支持存储容量和带宽两者,需要通过使用dimm和hbm实现的异构存储器系统。


技术实现要素:



7.本公开的实施例提供数据处理系统以及用于访问包括处理单元的异构存储器系统的方法。
8.根据本公开的方面,提供一种系统,所述系统包括异构存储器系统、主机处理器和存储器控制器,所述异构存储器系统包括存储器模块和高带宽存储器(hbm),所述hbm包括存储器内处理(pim)电路并且被配置为存储数据;所述主机处理器被配置为:执行所述系统的算术运算,并且将所述算术运算中的与由所述主机处理器分流的内核相对应的一个或更多个算术运算分配到所述pim电路以由所述pim电路来执行;所述存储器控制器被配置为基于所述一个或更多个算术运算在所述pim电路中被执行,基于边界索引值从所述存储器模块或者所述hbm检测所述一个或更多个算术运算所需的数据阵列,其中,所述边界索引值指示所述存储器模块和所述hbm当中的哪一者存储所述数据阵列。
9.根据本公开的另一个方面,提供一种设备,所述设备包括:存储器模块、高带宽存储器(hbm)和存储器控制器,所述存储器模块被配置为存储第一数据;所述hbm被配置为存储第二数据,所述hbm包括以堆叠形式布置的多个存储器裸片,并且所述多个存储器裸片中
的每一者包括存储器内处理(pim)电路,所述pim电路被配置为执行算术运算;所述存储器控制器被配置为:基于边界索引值从所述存储器模块或者所述hbm检测所述pim电路的所述算术运算所需的数据阵列,所述边界索引值指示所述存储器模块和所述hbm当中的哪一者存储所述数据阵列,并且关于所述数据阵列、基于对应于所述存储器模块的第一物理地址空间来生成存储器模块命令集或基于对应于所述hbm的第二物理地址空间来生成hbm命令集。
10.根据本公开的另一个方面,提供一种由包括异构存储器系统的系统实施的方法,所述异构存储器系统包括存储器模块和高带宽存储器(hbm),所述高带宽存储器(hbm)包括存储器内处理(pim)电路,所述方法包括:由主机处理器将内核分流在所述异构存储器系统上;由存储器控制器存储边界索引值,所述边界索引值指示所述存储器模块和所述hbm当中的哪一者存储要根据所分流的内核的工作码的执行被处理的数据阵列;由所述存储器控制器接收关于所分流的内核的信息,所述关于所分流的内核的信息包括所述数据阵列的标识号、对应于所述标识号的所述数据阵列的基地址、表示相对于所述基地址的偏移的索引值、以及数据大小;由所述存储器控制器将所述数据阵列的所述索引值与所述边界索引值相比较;由所述存储器控制器在所述索引值小于所述边界索引值时确定所述数据阵列被存储在所述hbm中,以及在所述索引值大于所述边界索引值时确定所述数据阵列被存储在所述存储器模块中;由所述存储器控制器生成存储器模块命令集,所述存储器模块命令集指示所述hbm的所述pim电路通过使用存储在所述存储器模块中的所述数据阵列来执行所述工作码;以及由所述存储器控制器生成hbm命令集,所述hbm命令集指示所述hbm的所述pim电路通过使用存储在所述hbm中的所述数据阵列来执行所述工作码。
11.根据本公开的另一个方面,提供一种设备,所述设备包括存储器和处理器,所述存储器存储一个或更多个指令;所述处理器被配置为执行所述一个或更多个指令,以执行如下操作:接收与一个或更多个算术运算相对应的数据阵列的索引值;将所述数据阵列的索引值与边界索引值相比较;基于所述索引值小于所述边界索引值向高带宽存储器(hbm)发送与所述一个或更多个算术运算相对应的第一命令集;以及基于所述索引值大于所述边界索引值向存储器模块发送与所述一个或更多个算术运算相对应的第二命令集。
附图说明
12.根据以下结合附图进行的详细描述,将更清楚地理解本公开的实施例,其中:
13.图1是示出根据本公开的示例实施例的包括异构存储器系统的数据处理系统的框图;
14.图2是示出根据本公开的示例实施例的图1的存储器模块的视图;
15.图3是示出根据本公开的示例实施例的图1的高带宽存储器(hbm)的视图;
16.图4是示出根据本公开的示例实施例的图1的存储器控制器的框图;
17.图5a和图5b是示出根据本公开的示例实施例的用于图1的异构存储器系统的命令集的视图;
18.图6、图7和图8是示出根据本公开的示例实施例的图4的存储器控制器的操作的流程图;
19.图9是示出根据本公开的示例实施例的包括异构存储器系统的系统的框图;
20.图10是示出应用了根据本公开的示例实施例的异构存储器系统的数据中心的视图。
具体实施方式
21.图1是示出根据本公开的示例实施例的包括异构存储器系统120的数据处理系统100的框图。
22.参考图1,数据处理系统100可以执行应用,诸如,学习系统高性能计算应用或图形操作应用。例如,学习系统可以是用于执行机器学习的深度神经网络或应用。这样的应用要求许多操作和存储能力并且重视功率效率和低延迟,以便通过并行方法合作地执行作业或任务,训练其他数据集,以及以高准确度学习其他数据集。
23.数据处理系统100可以包括主机设备110和异构存储器系统120,该异构存储器系统120包括一个或更多个存储器模块200以及高带宽存储器(hbm)300。主机设备110可以用于通过使用并行处理方式来解决整体作业或任务,在并行处理方式中,整体作业或任务被划分为由大量计算实体并行执行的较小作业。根据示例实施例,计算实体可以是处理器、处理器中的核、和/或存储器内处理(pim)电路321。任务可以包括通过分级结构(hierarchy)配置的多个作业或任务,并且作业或任务可以指:要由计算实体执行的可执行代码,要被处理的数据,以及由计算实体从异构存储器系统120检测到的、通过代码的执行被操纵的且要被存储的数据。
24.主机设备110可以包括一个或更多个处理器112以及存储器控制器114。在示例实施例中,扩展逻辑电路116可以被包括在存储器控制器114中。根据示例实施例,一个或更多个处理器112可以用作数据处理系统100的主要组件,这样可以主要地处理和管理命令以执行操作系统(os)和应用。另外,一个或更多个处理器112可以将复杂的作业或任务分散到多个计算实体,使得作业或任务被并行处理。一个或更多个处理器112可以包括处理单元,诸如,中央处理单元(cpu)、数字信号处理器(dsp)、图形处理单元(gpu)、加密处理单元、物理处理单元、或者机器学习处理单元。
25.一个或更多个处理器112可以通过将各种算术运算、命令或内核的执行分散或分流(offload)到另一个处理器或异构存储器系统120来提高效率。内核定义为被集中在一起以执行任务或可定义子任务的一个或更多个命令。将描述hbm 300的pim电路321通过由一个或更多个处理器112分流的内核来执行操作处理的示例。可以由pim电路321来执行各种各样的操作处理。例如,关于人工智能(ai),可以由pim电路321来执行至少一些神经网络操作。例如,一个或更多个处理器112可以通过存储器控制器114控制hbm 300,使得至少一些神经网络操作可以由pim电路321来执行。此外,在以下实施例中,将描述:扩展逻辑电路116控制异构存储器系统120以便执行分流的内核。然而,本公开的实施例不限于此。例如,可以描述:扩展逻辑电路116被包括在存储器控制器114中并且存储器控制器114控制异构存储器系统120。
26.存储器控制器114可以包括扩展逻辑电路116。存储器控制器114可以包括硬件模块、驱动模块、和/或文件系统模块。在这里,模块可以为硬件、软件、软件和硬件的组合、或者中间件中的至少一种形式。例如,扩展逻辑电路116可以是加载在存储器控制器114上的软件块。
27.扩展逻辑电路116可以存储边界索引值(border index value),其中,边界索引值确定当hbm 300的pim电路321通过分流的内核执行操作处理时提供算术运算所需的数据阵列的存储器。扩展逻辑电路116可以通过使用边界索引值从一个或更多个存储器模块200或hbm 300检测数据阵列。另外,扩展逻辑电路116可以使用在一个或更多个存储器模块200或者hbm 300中的每一者中指定的物理地址空间,来生成存储器模块命令集和hbm命令集,从而不对分流的内核执行额外的地址转换。
28.异构存储器系统120可以包括异构存储器件,异构存储器件包括一个或更多个存储器模块200以及hbm 300。一个或更多个存储器模块200可以通过双数据速率(ddr)协议连接到主机设备110。ddr协议可以是电子器件工程联合委员会(jedec)标准的存储器标准接口规范。一个或更多个存储器模块200根据ddr接口连接到主机设备110。然而,本公开不限于此。根据本公开的一个或更多个存储器模块200可以通过ddr接口以外的各种各样的通信接口来连接到主机设备110。例如,通信接口可以包括工业标准结构(isa)、高速外围组件互联(pcie)、串行高级技术附件(sata)、小型计算机系统接口(scsi)、串行连接scsi(sas)、通用存储总线(usb)附接的scsi(uas)、因特网小型计算机系统接口(iscsi)、光纤信道、或者以太网光纤信道(fcoe)。
29.可以通过双列直插式存储器模块来实现一个或更多个存储器模块200。一个或更多个存储器模块200可以包括至少一个动态随机存取存储器(dram)。在下文中,为了方便起见,一个或更多个存储器模块200可以与双列直插式存储器模块(dimm)200混用。
30.hbm 300可以通过jedec标准的hbm协议连接到主机设备110。hbm协议是用于三维堆叠式存储器(例如,dram)的高性能ram接口。与其他dram技术(例如,ddr4和gddr5)相比,hbm 300以较小的形状因子消耗更小的功率量并且具有更高的带宽。hbm 300可以包括提供计算能力的pim电路321。
31.图2是示出图1的一个或更多个存储器模块的视图。
32.参考图1和图2,一个或更多个存储器模块200可以包括寄存器时钟驱动器(rcd)210和存储器件220。存储器件220可以是dram器件。然而,本公开不限于此,并且存储器件220可以是诸如以下的易失性存储器件之一:同步dram(sdram)、双倍数据速率sdram(ddr sdram)、低功率双倍数据速率sdram(lpddr sdram)、图形双倍数据速率sdram(gddr sdram)、ddr2 sdram、ddr3 sdram、ddr4 sdram和ddr5 sdram。在下文中,为了方便起见,存储器件220被称为dram 220。
33.rcd 210可以从主机设备110接收命令/地址和数据,以及可以向dram 220提供时钟信号和命令/地址信号。可以通过任意的存储器模块来实现一个或更多个存储器模块200。例如,可以通过无缓冲dimm(udimm)、寄存式dimm(rdimm)、负载减少的dimm(lrdimm)、全缓冲dimm(fbdimm)或者小外形dimm(sodimm)来实现一个或更多个存储器模块200。
34.为了增加存储容量,安装在母板中的dimm 200的数量可以增加。然而,dimm 200可能被限制为输入和输出16位或32位数据的配置,这取决于安装在母板中的连接器的数量。
35.图3是示出图1的高带宽存储器(hbm)的视图。
36.参考图1和图3,hbm 300可以通过包括具有彼此独立的接口的第一通道ch1至第八通道ch8而具有高带宽。hbm 300可以包括多个裸片,例如,缓冲裸片(或逻辑裸片310)以及堆叠在缓冲裸片310上的一个或更多个核裸片320。在图3的示例实施例中,示出了第一至第
四核裸片320被包括在hbm 300中。然而,核裸片320的数量可以根据另一个示例实施例而改变。第一至第四核裸片320可以被称为存储器裸片。
37.第一至第四核裸片320中的每一个可以包括一个或更多个通道。在图3中,示出了第一至第四核裸片320中的每一个包括两个通道使得hbm 300包括第一通道ch1至第八通道ch8的示例。例如,第一核裸片可以包括第一通道ch1和第三通道ch3,第二核裸片可以包括第二通道ch2和第四通道ch4,第三核裸片可以包括第五通道ch5和第七通道ch7,并且第四核裸片可以包括第六通道ch6和第八通道ch8。
38.缓冲裸片310可以包括与主机设备110进行通信的接口电路(i/f)311,并且可以通过接口电路311从主机设备110接收命令/地址和数据。主机设备110可以通过布置为对应于第一通道ch1至第八通道ch8的总线来发送命令/地址和数据,并且可以被形成为使得总线被信道划分或一些总线被至少两个通道共享。接口电路311可以向由主机设备110请求的通道发送命令/地址和数据,以执行存储器操作或者操作处理。此外,根据本公开的示例实施例,第一至第四核裸片320中的每一个或第一通道ch1至第八通道ch8中的每一个可以包括pim电路321。
39.主机设备110可以提供命令/地址和数据,使得多个算术运算或内核中的至少一些可以由hbm 300来执行,并且操作处理可以通过由主机设备110指定的通道的pim电路321来执行。例如,当接收到的命令/地址指示执行操作处理的通道时,对应通道的pim电路321可以通过使用来自主机设备110的数据和/或从对应通道读取的数据来执行操作处理。在另一个示例中,当由hbm 300的对应通道接收到的命令/地址指示对应通道执行存储器操作时,可以执行数据的存取操作。
40.根据示例实施例,第一通道ch1至第八通道ch8中的每一个可以包括多个存储体,并且第一通道ch1至第八通道ch8中的每一个的pim电路321可以包括一个或更多个处理元件。例如,在第一通道ch1至第八通道ch8中的每一个中,处理元件的数量可以等于存储体的数量或可以小于存储体的数量,使得一个处理元件可以被至少两个存储体共享。第一通道ch1至第八通道ch8中的每一个的pim电路321可以执行由主机设备110分流的内核。
41.另一方面,缓冲裸片310还可以包括硅通路(tsv,through silicon via)区域312、hbm物理层接口(hbm phy)区域313、以及串行器/解串器(serdes)区域314。在tsv区域312中,形成用于与第一至第四核裸片320进行通信的tsv。当第一通道ch1至第八通道ch8中的每一个具有128位的带宽时,tsv可以包括用于输入和输出1024位数据的配置。
42.hbm phy区域313可以包括用于与主机设备110进行通信的多个输入和输出电路。例如,hbm phy区域313可以包括用于与主机设备110进行通信的一个或更多个端口。hbm phy区域313可以包括为主机设备110与hbm 300之间的高效通信所需的信号、频率、定时、驱动、详细操作参数以及功能提供的物理层或电子层以及逻辑层。hbm phy区域313可以执行存储对接,诸如,选择与存储单元相对应的行和列、将数据写入存储单元中、或者读取写入数据。hbm phy区域313可以支持jedec标准的hbm协议的特性。
43.serdes区域314提供jedec标准的serdes接口作为主机设备110的一个或更多个处理器112的处理吞吐量,并且关于存储带宽的需求增加。serdes区域314可以包括serdes发送器、serdes接收器、以及控制器。serdes发送器可以包括并行-串行电路和发送器,可以接收并行数据流,并且可以将所接收的并行数据流进行串行化。serdes接收器可以包括接收
器放大器、均衡器、时钟和数据恢复电路、以及串行-并行电路,可以接收串行数据流,并且可以将所接收的串行数据流进行并行化。控制器可以包括诸如错误检测电路、错误校正电路和先进先出(fifo)的寄存器。
44.图4是示出图1的存储器控制器114的框图。图5a和图5b是示出用于图1的异构存储器系统120的命令集的视图。
45.参考图1和图4,存储器控制器114可以包括扩展逻辑电路116,扩展逻辑电路116被配置为通过使用异构存储器系统120来执行与内核代码和/或数据有关的操作。例如,通过主机设备110的设备驱动器分流的内核可以通过使用异构存储器系统120来执行与内核代码和/或数据有关的操作。在主机设备110的os中利用设备驱动器,以便定义和设置主机设备110的os与硬件设备之间的接口。在下文,通过用于执行分流的内核的硬件、固件和软件或者硬件、固件和软件的组合来实现扩展逻辑电路116。
46.扩展逻辑电路116可以被配置为使得由一个或更多个处理器112分流的内核通过异构存储器系统120的hbm 300的pim电路321来执行。另外,扩展逻辑电路116可以从dimm 200和/或hbm 300检测要根据分流的内核的工作码的执行被处理的数据,可以重新布置通过分流的内核的工作码的执行所操纵的数据,并且可以将重新布置的数据分配给dimm 200和/或hbm300。
47.可以对数据阵列执行分流的内核。数据阵列指阵列形式的数据结构,并且可以在编程语言中利用阵列形式的数据结构。例如,数据结构可以是阵列、集合、映射、或者双队列(deque)。例如,在图形处理和ai应用中,用户对数据的访问趋向于偏向特定数据。这种有偏向的偏好具有一致性和连续性,从而可以预测数据利用。扩展逻辑电路116可以根据数据阵列的利用频率来重新布置异构存储器系统120。示例性地,扩展逻辑电路116可以执行重新布置,使得具有高利用频率的小容量的数据阵列被分配给hbm 300并且具有低利用频率的大容量的数据阵列被分配给dimm 200。随着数据阵列被扩展逻辑电路116连续地分配给dimm 200和/或hbm 300,可以简化数据管理和地址转换处理。
48.扩展逻辑电路116可以包括索引表逻辑电路402、地址映射表逻辑电路404、以及命令生成电路406。索引表逻辑电路402可以包括dimm地址计算器412、寄存器定位器414和hbm地址计算器416。索引表逻辑电路402可以存储标识数据阵列的利用频率的边界索引值。例如,在执行特定应用时,可以基于特定数据阵列的实际利用的次数和预测利用的次数来设置边界索引值。例如,特定应用可以是图形处理应用或ai应用。边界索引值可以被设置为通过实际利用的次数与预测利用的次数的比计算出的第一值。在另一个示例中,可以基于hbm 300的带宽和dimm 200的带宽来设置边界索引值。边界索引值可以被设置为通过hbm 300的带宽(例如,大约1024gb/秒)与dimm 200的带宽(例如,大约24gb/秒)的比计算出的第二值(例如,大约4至6)。在另一个示例中,边界索引值可以被设置为使得通过实际利用的次数与预测利用的次数的比计算出的第一值等于通过hbm300的带宽与dimm 200的带宽的比计算出的第二值。
49.索引表逻辑电路402可以接收关于分流的内核的信息。关于分流的内核的信息可以包括与分流的内核有关的数据阵列的标识号、对应于标识号的数据阵列的基地址(base address)、索引值、和/或数据大小(data size)。基地址表示dimm 200或hbm 300的存储有对应的数据阵列的第一物理地址,并且索引值表示相对于基地址的偏移。索引表逻辑电路
402可以在接收到的索引值小于边界索引值时确定对应的数据阵列被存储在hbm 300中,以及可以在接收到的索引值大于边界索引值时确定对应的数据阵列被存储在dimm 200中。索引表逻辑电路402可以被配置为使得基于基地址和索引值计算对应的数据阵列的物理地址的地址转换操作被执行。
50.地址映射表逻辑电路404可以包括dimm映射表420和hbm映射表430。可以通过存储对应于标识号的数据阵列与基地址之间的相关性的寄存器(或存储装置单元(storage unit))来实现映射表。dimm映射表420可以存储dimm 200的对应的数据阵列的基地址,并且hbm映射表430可以存储hbm 300的对应的数据阵列的基地址。
51.扩展逻辑电路116可以通过使用索引表逻辑电路402和地址映射表逻辑电路404来计算对应的数据阵列的物理地址空间。扩展逻辑电路116可以通过使用将边界索引值与接收到的索引值相比较的索引比较器,来确定对应的数据阵列是被存储在hbm 300还是dimm 200中。
52.根据示例实施例,当接收到的索引值小于边界索引值时,扩展逻辑电路116可以确定对应的数据阵列被存储在hbm 300中。扩展逻辑电路116可以通过使用hbm地址计算器416确定(或计算)第一地址,其中,第一地址对应于与存储在hbm映射表430中的hbm 300的基地址分开索引值的位置。也就是说,可以通过将基地址相加到索引值(即,基地址+索引值)来计算第一地址。索引表逻辑电路402可以确定对应的数据阵列被存储在设计在hbm 300中的从第一地址到第二地址的物理地址空间中,其中,通过将第一地址与数据大小相乘来获得第二地址。也就是说,hbm地址计算器416可以通过将基地址相加到索引值并且将相加的结果与数据大小相乘(即,(基地址+索引值)*数据大小)来计算第二地址。
53.根据示例实施例,当接收到的索引值大于边界索引值时,扩展逻辑电路116可以确定对应的数据阵列被存储在dimm 200中。扩展逻辑电路116可以通过使用dimm地址计算器412确定对应的数据阵列被存储在第三地址中,其中,第三地址对应于与dimm映射表420的dimm 200的基地址分开通过从接收到的索引值减去边界索引值获得的值的位置。也就是说,可以通过将基地址相加到从索引值减去边界索引值所得的结果(即,基地址+(索引值-边界索引值))来计算第三地址。索引表逻辑电路402可以确定对应的数据阵列被存储在设计在dimm 200中的从第三地址到第四地址的物理地址空间中,其中,通过将第三地址与数据大小相乘来获得第四地址。也就是说,dimm地址计算器412可以通过将基地址相加到从索引值减去边界索引值所得的相减结果并且将相加结果与数据大小相乘(即,(基地址+(索引值-边界索引值))*数据大小)来计算第四地址。
54.可以通过hbm 300的pim电路321来执行分流的内核。当根据内核代码的数据阵列被存储在hbm 300中时,pim电路321可以直接地访问hbm 300并且可以接收数据。当根据内核代码的数据阵列被存储在dimm 200中时,pim电路321不可以直接地访问dimm 200,这是因为不存在直接地连接到dimm 200的接口。因此,pim电路321可以通过存储器控制器114接收dimm 200的数据。
55.当通过扩展逻辑电路116确定了对应的数据阵列被存储在hbm 300中时,命令生成电路406可以生成用于hbm 300的命令集530,其中,hbm 300的地址可以用作操作数。用于hbm 300的命令集530可以包括操作码参数、向量大小参数(vector size parameter)、源参数和目标参数,如图5a中所示。
56.操作码参数可以被指示为与分流的内核的命令相同。分流的内核的命令可以包括x86和risc-v,并且操作码参数可以针对每一个命令被设置。向量大小参数表示主机设备110中的dram高速缓存行的数据输入和输出量与数据阵列的数据输入和输出量之间的相关性。例如,当dram高速缓存行是64字节(b)并且数据阵列是256字节(b)时,向量大小参数可以被设置为4。也就是说,向量大小参数可以被指示为与获取四个64b dram高速缓存行相同。源参数可以表示通过其获取数据阵列的源地址,并且可以通过hbm 300的地址来指示。目标参数可以指示寄存器的标识号,寄存器存储hbm 300的pim电路321使用存储在hbm 300中的数据阵列执行操作处理时的中间结果值。例如,寄存器可以被包括在存储器控制器114中,并且当寄存器是第四寄存器时,寄存器可以被指示为4。
57.当通过扩展逻辑电路116确定了对应的数据阵列被存储在dimm 200中时,命令生成电路406可以生成用于dimm 200的命令集520。用于dimm 200的命令集520可以包括操作码参数、向量大小参数、向量位置参数、立即值参数和目标参数,如图5b中所示。
58.操作码参数可以被指示为与分流的内核的命令相同。分流的内核的命令可以包括x86和risc-v,并且操作码参数可以针对每一个命令被设置。向量大小参数表示主机设备110中的dram高速缓存行的数据输入和输出量与数据阵列的数据输入和输出量之间的相关性。例如,当dram高速缓存行是64b并且数据阵列是256b时,向量大小参数可以被设置为4。也就是说,向量大小参数可以被指示为与获取四个64b dram高速缓存行相同。向量位置参数可以指示当前命令中利用的64b数据的位置。例如,当从256b数据阵列获取与64b-128b相对应的第二数据时,向量位置参数可以被指示为2。立即值参数可以通过从dimm 200获取的64b dram高速缓存行来表示数据值。目标参数可以指示寄存器的标识号,寄存器存储使用存储在dimm 200中的数据阵列执行操作处理时的中间结果值。例如,寄存器可以被包括在存储器控制器114中,并且当寄存器是第四寄存器时,寄存器可以被指示为4。
59.在图5a和图5b中所描述的用于hbm 300的命令集530和用于dimm 200的命令集520中,为了分配与目标参数有关的寄存器,扩展逻辑电路116还可以包括寄存器分配器414。可以通过包括能够确定寄存器是否被占用的sram表的逻辑电路来实现寄存器分配器414。寄存器分配器414可以表示哪个寄存器被分配给处理操作以及哪个寄存器当前未被利用。
60.图6、图7和图8是示出图4的存储器控制器114的操作的流程图。
61.参考图1至图6,在操作s610中,主机设备110的一个或更多个处理器112可以将内核的执行分散或分流到另一个处理器,或者分散或分流在异构存储器系统120上,以便提高算术运算的效率。一个或更多个处理器112可以通过设备驱动器向存储器控制器114提供关于分流的内核的信息,例如,数据阵列的标识号、对应于标识号的数据阵列的基地址、索引值、和/或数据大小。存储器控制器114可以控制由一个或更多个处理器112分流的内核来执行hbm 300的pim电路321中的操作处理。
62.在操作s620中,存储器控制器114可以读取存储在索引表逻辑电路402中的边界索引值。边界索引值可以被设置为确定存储与分流的内核有关的数据阵列的存储器的基础。在示例实施例中,描述了基于与分流的内核有关的数据阵列的利用频率或者dimm 200与hbm 300之间的带宽比来设置边界索引值。然而,根据示例实施例,可以通过使用关于分流的内核的另一个信息项来设置边界索引值。
63.在操作s630中,存储器控制器114可以通过将在操作s610中接收到的索引值与边
界索引值相比较,来确定对应的数据阵列被存储在哪个存储器中。当接收到的索引值大于边界索引值(是)时,存储器控制器114可以继续操作s650,当接收到的索引值小于边界索引值(否)时,存储器控制器114可以继续操作s640。在操作s640中,存储器控制器114可以确定对应的数据阵列被存储在hbm 300中,并且可以对hbm 300执行存储器操作。在操作s650中,存储器控制器114可以确定对应的数据阵列被存储在dimm 200中,并且可以对dimm 200执行存储器操作。
64.参考图7,当作为操作s630的比较结果确定对应的数据阵列被存储在hbm 300中时,存储器控制器114可以在包括操作s710至操作s750的操作s640中对hbm 300执行存储器操作。在操作s710中,存储器控制器114可以读取存储在hbm映射表430中的并且与在操作s610中接收到的分流的内核的数据阵列的基地址相对应的hbm 300的基地址。
65.在操作s720中,存储器控制器114可以计算存储数据阵列的hbm 300的物理地址。存储器控制器114可以计算第一地址,第一地址对应于与hbm 300的基地址分开索引值的位置。也就是说,可以通过将基地址相加到索引值(即,基地址+索引值)来计算第一地址。然后,存储器控制器114可以计算第二地址,第二地址对应于通过将第一地址与数据大小相乘所获得的值。也就是说,可以通过将基地址相加到索引值并且将相加的结果与数据大小相乘(即,(基地址+索引值)*数据大小)来计算第二地址。存储器控制器114可以确定分流的内核的数据阵列被存储在hbm 300的从第一地址到第二地址的物理地址空间中。
66.在操作s730中,存储器控制器114可以分配与hbm命令集530中所包括的目标参数有关的寄存器,寄存器存储由hbm 300的pim电路321根据分流的内核来执行操作处理时的中间结果值。
67.在操作s740中,存储器控制器114可以生成用于hbm 300的命令集530。用于hbm 300的命令集530可以包括操作码参数、向量大小参数、源参数和目标参数,如图5a中所示。操作码参数可以被指示为与分流的内核的命令相同。向量大小参数可以表示主机设备110中的dram高速缓存行的数据输入和输出量与数据阵列的数据输入和输出量之间的相关性。源参数可以由hbm 300的地址(通过其获取数据阵列)来指示。目标参数可以指示操作s730中分配的寄存器的标识号。
68.在操作s750中,存储器控制器114可以向hbm 300的pim电路321发送在操作s740中生成的用于hbm 300的命令集530。然后,在操作s660中,hbm 300的pim电路321根据用于hbm 300的命令集530来执行操作处理。
69.当作为操作s630的比较结果确定对应的数据阵列被存储在dimm 200中时,如图8所示,存储器控制器114可以在包括操作s810至操作s850的操作s650中对dimm 200执行存储器操作。在操作s810中,存储器控制器114可以读取存储在dimm映射表420中的并且与在操作s610中接收到的分流的内核的数据阵列的基地址相对应的dimm 200的基地址。
70.在操作s820中,存储器控制器114可以计算存储数据阵列的dimm 200的物理地址。存储器控制器114可以计算第三地址,第三地址对应于与dimm映射表420的dimm 200的基地址分开通过从索引值减去边界索引值获得的值的位置。也就是说,可以通过将基地址相加到从索引值减去边界索引值所得的结果(即,基地址+(索引值-边界索引值))来计算第三地址。然后,存储器控制器114可以计算第四地址,第四地址通过将第三地址与数据大小相乘来获得。也就是说,可以通过将基地址相加到从索引值减去边界索引值所得的相减结果并
且将相加结果与数据大小相乘(即,(基地址+(索引值-边界索引值))*数据大小)来计算第四地址。存储器控制器114可以确定分流的内核的数据阵列被存储在dimm 200的从第三地址到第四地址的物理地址空间中。
71.在操作s825中,存储器控制器114可以通过使用在操作s820中计算出的dimm 200的物理地址来读取存储在dimm 200中的数据阵列,这用于通过存储器控制器114向pim电路321提供dimm 200的数据,这是因为不存在直接地连接到dimm 200的接口,因此hbm 300的pim电路321不可以直接地访问dimm 200。
72.在操作s830中,存储器控制器114可以分配与dimm命令集520中所包括的目标参数有关的寄存器,寄存器存储由hbm 300的pim电路321根据分流的内核来执行操作处理时的中间结果值。
73.在操作s840中,存储器控制器114可以生成用于dimm 200的命令集520。用于dimm 200的命令集520可以包括操作码参数、向量大小参数、向量位置参数、立即值参数和目标参数,如图5b中所示。操作码参数可以被指示为与分流的内核的命令相同。向量大小参数可以表示主机设备110中的dram高速缓存行的数据输入和输出量与数据阵列的数据输入和输出量之间的相关性。向量位置参数可以指示当前命令中利用的64b数据在256b数据阵列中的位置。立即值参数可以通过从dimm 200获取的64b dram高速缓存行来表示数据值。目标参数可以指示操作s830中分配的寄存器的标识号。
74.在操作s850中,存储器控制器114可以向hbm 300的pim电路321发送在操作s840中生成的用于dimm 200的命令集520。然后,在操作s660中,hbm 300的pim电路321根据用于dimm 200的命令集520来执行操作处理。
75.图9是示出根据本公开的示例实施例的包括异构存储器系统的系统1000的框图。
76.参考图9,系统1000可以包括照相机1100、显示器1200、音频处理器1300、调制解调器1400、dram器件1500a和1500b、闪存器件1600a和1600b、输入/输出(i/o)设备1700a和1700b以及应用处理器(在下文,被称为“ap”)1800。可以通过膝上型计算机、移动式电话、智能电话、平板机个人计算机(pc)、可穿戴设备、医疗保健设备、或物联网(iot)设备来实现系统1000。另外,可以通过服务器或pc来实现系统1000。
77.照相机1100可以根据用户的控制来捕捉静止图像或运动画面,并且可以存储所捕捉的图像/图像数据或可以向显示器1200发送所捕捉的图像/图像数据。音频处理器1300可以处理闪存器件1600a和闪存器件1600b中所包括的音频数据或者网络的内容。调制解调器1400可以调制并发送信号以便发送和接收有线/无线数据,并且可以对已调制信号进行解调以便在接收侧将已调制信号恢复为原始信号。i/o设备1700a和i/o设备1700b可以包括提供数字输入和/或输出功能的设备,诸如,通用串行总线(usb)或存储装置、数字照相机、安全数字(sd)卡、数字通用磁盘(dvd)、网络适配器以及触摸屏。
78.ap 1800可以控制系统1000的总体操作。ap 1800可以控制显示器1200,使得存储在闪存器件1600a和闪存器件1600b中的一些内容显示在显示器1200上。当通过i/o设备1700a和i/o设备1700b接收到用户输入时,ap 1800可以执行与用户输入相对应的控制操作。ap 1800可以包括作为用于数据操作的专用电路的加速器块1820,或者加速器块1820可以作为与ap 1800分开的加速器芯片1820。dram器件1500b可以另外安装在加速器块或者加速器芯片1820中。作为专业地执行ap 1800的特定功能的功能块的加速器块可以包括:作为
专业地执行图形数据处理的功能块的gpu、作为专业地执行ai计算和推断的块的神经处理单元(npu)、以及作为专业地执行数据传输的块的数据处理单元(dpu)。
79.系统1000可以包括dram器件1500a和dram器件1500b。ap 1800可以通过设置适于jedec标准的命令和模式寄存器mrs来控制dram器件1500a和dram器件1500b,或可以通过设置dram接口码来执行通信以便使用诸如低电压/高速/高可靠性以及循环冗余校验(crc)/纠错码(ecc)功能的公司特定功能。例如,ap 1800可以通过适于jedec标准(诸如lpddr4或lpddr5)的接口1830与dram器件1500a进行通信,并且加器速块或加速器芯片1820可以通过设置新的dram接口码来执行通信,以便针对带宽高于dram器件1500a的带宽的加速器来控制dram器件1500b。
80.在图9中,仅仅示出dram器件1500a和dram器件1500b。然而,本公开不限于此,如果仅仅ap 1800或加速芯片1820的带宽、反应速度以及电压条件被满足,则可以使用任何存储器,诸如相变ram(pram)、sram、磁阻ram(mram)、电阻式ram(rram)、铁电ram(fram)或者混合ram。dram器件1500a和dram器件1500b的延迟和带宽低于i/o设备1700a和i/o设备1700b或者闪存器件1600a和闪存器件1600b的延迟和带宽。dram器件1500a和dram器件1500b可以在系统1000的上电时间点被初始化,并且可以具有加载在其上的os和应用数据,以便用作os和应用数据的任意存储装置或者各种软件代码的运行空间。
81.在dram器件1500a和dram器件1500b中,可以执行加法运算、减法运算、相乘运算、除法运算、向量运算、地址运算,或者快速傅里叶变换(fft)运算。此外,在dram器件1500a和dram器件1500b中,可以执行用于推断的功能。这里,可以使用人工神经网络在深度学习算法中执行推断。深度学习算法可以包括通过各种数据项来学习模型的训练操作以及通过习得的模型识别数据的推断操作。在示例实施例中,由用户通过照相机1100捕捉的图像可以是在dram器件1500b中处理和存储的信号,并且加速器块或者加速器芯片1820可以执行通过使用存储在dram器件1500b中的数据识别数据的ai数据操作以及用于推断的功能。
82.在系统1000中,可以通过参考图1至图8描述的包括dimm 200和hbm 300(其包括pim电路321)的异构存储器系统来实现dram器件1500a和dram器件1500b。dram器件1500a和dram器件1500b可以根据ap 1800中的分流的内核来执行算术运算。当由hbm 300的pim电路321执行算术运算时,控制器1810可以通过使用作为确定哪个存储器存储算术运算所需的数据阵列的基础的边界索引值,从dimm 200或者hbm 300检测数据阵列。另外,控制器1810可以使用分别在dimm 200和hbm 300中指定的物理地址空间来生成dimm命令集和hbm命令集,从而不对分流的内核执行额外的地址转换。
83.系统1000可以包括容量大于dram器件1500a和dram器件1500b的容量的多个存储装置或者闪存器件1600a和闪存器件1600b。闪存器件1600a和闪存器件1600b均可以包括存储器控制器1610和闪存1620。加速器块或者加速器芯片1820可以通过使用闪存器件1600a和闪存器件1600b来执行训练操作和推断ai数据操作。例如,闪存器件1600a和闪存器件1600b可以通过使用存储器控制器1610中包括的操作装置来高效地执行由ap 1800和/或加速器块或者加速器芯片1820执行的训练操作和推断ai数据操作。闪存器件1600a和闪存器件1600b可以存储照相机1100拍摄的相片或通过数据网络接收的数据。例如,闪存器件1600a和闪存器件1600b可以存储增强现实(ar)/虚拟现实(vr)和高清晰度(hd)或超高清晰度(uhd)内容。
84.图10是示出应用了根据本公开的示例实施例的异构存储器系统的数据中心3000的视图。
85.参考图10,作为收集各种数据项并且提供服务的设施的数据中心3000可以被称为数据存储中心。数据中心3000可以是用于操作搜索引擎和数据库的系统或者用于诸如银行或政府机构的公司的计算系统。数据中心3000可以包括应用服务器3100至3100n以及存储服务器3200至3200m。应用服务器3100至3100n的数量和存储服务器3200至3200m的数量可以根据示例实施例而变化,并且应用服务器3100至3100n的数量可以不同于存储服务器3200至3200m的数量。
86.应用服务器3100可以包括处理器3110和存储器件3120中的至少一个,存储服务器3200可以包括处理器3210和存储器件3220中的至少一个。当采用存储服务器3200作为示例而给出描述时,处理器3210可以控制存储服务器3200的总体操作,可以访问存储器件3220,并且可以执行加载在所访问的存储器件3220上的命令和/或数据。存储器件3220可以包括ddr sdram、hbm、混合存储立方(hmc)、dimm、optane dimm、或者非易失性dimm(nvmdimm)。根据示例实施例,存储服务器3200中所包括的处理器3210的数量以及存储服务器3200中所包括的存储器件3220的数量可以变化。在示例实施例中,处理器3210和存储器件3220可以提供处理器-存储器对。在示例实施例中,处理器3210的数量可以不同于存储器件3220的数量。处理器3210可以包括单核处理器或多核处理器。存储服务器3200的以上描述也可以类似地应用于应用服务器3100。根据示例实施例,应用服务器3100可以不包括存储装置3150。存储服务器3200可以包括至少一个存储装置3250。存储服务器3200中所包括的存储装置3250的数量可以根据示例实施例而变化。
87.在应用服务器3100或者存储服务器3200中,可以通过参考图1至图8描述的包括dimm 200和hbm 300(其包括pim电路321)的异构存储器系统来实现存储器件3120和存储器件3220。存储器件3120和存储器件3220可以与控制处理器3110和处理器3210的存储器控制器相结合,以根据分流的内核执行算术运算。当由hbm 300的pim电路321执行算术运算时,存储器控制器可以通过使用作为确定哪个存储器存储算术运算所需的数据阵列的基础的边界索引值,从dimm 200或者hbm 300检测数据阵列。另外,存储器控制器可以使用分别在dimm 200和hbm 300中指定的物理地址空间来生成dimm命令集和hbm命令集,从而不对分流的内核执行额外的地址转换。
88.应用服务器3100至3100n可以通过网络3300与存储服务器3200至3200m进行通信。可以通过使用光纤信道(fc)或以太网来实现网络3300。此时,fc是用于高速数据传输的介质,并且提供高性能/高可用性的光学开关可以用作fc。根据网络3300的接入方法,存储服务器3200至3200m可以被设置为文件存储、块存储、或对象存储。
89.在示例实施例中,网络3300可以包括存储专用网络,诸如存储区域网络(san)。例如,san可以包括使用fc网络并根据fc协议(fcp)实现的fc-san。在另一个示例中,san可以包括使用tcp/ip网络并根据传输控制协议(tcp)/ip上的scsi或因特网scsi(iscsi)协议实现的ip-san。在另一个示例实施例中,网络3300可以包括诸如tcp/ip网络的通用网络。例如,可以根据诸如以太网上fc(fcoe)、网络附接存储(nas)或者fabrics上nvme(nvme-of)的协议来实现网络3300。
90.在下文中,将基于应用服务器3100和存储服务器3200来给出描述。应用服务器
3100的描述也可以应用于应用服务器3100n,并且存储服务器3200的描述也可以应用于存储服务器3200m。
91.应用服务器3100可以通过网络3300存储用户或客户端请求存储在存储服务器3200至3200m之一中的数据。另外,应用服务器3100可以通过网络3300获取用户或客户端请求从存储服务器3200至3200m之一读取的数据。例如,可以通过网页服务器或数据库管理系统(dbms)来实现应用服务器3100。
92.应用服务器3100可以通过网络3300访问应用服务器3100n中所包括的存储器件3120n或存储装置3150n,或者可以通过网络3300访问存储服务器3200至3200m中所包括的存储器件3220至3220m或存储装置3250至3250m。因此,应用服务器3100可以对存储在应用服务器3100至3100n和/或存储服务器3200至3200m中的数据执行各种操作。例如,应用服务器3100可以执行用于在应用服务器3100至3100n和/或存储服务器3200至3200m之间移动或复制数据的命令。此时,数据可以经由存储服务器3200至3200m的存储器件3220至3220m从存储服务器3200至3200m的存储装置3250至3250m移动到应用服务器3100至3100n的存储器件3120至3120n,或者可以直接地移动到应用服务器3100至3100n的存储器件3120至3120n。为了安全或隐私,可以对通过网络3300移动的数据进行加密。
93.当采用存储服务器3200作为示例而给出描述时,接口3254可以提供处理器3210与控制器(ctrl)3251之间的物理连接以及网络接口卡(nic)3240与控制器3251之间的物理连接。例如,可以通过存储装置3250直接地访问专用电缆的直接附接存储(das)方法来实现接口3254。另外,可以通过诸如以下的各种接口方法之一来实现接口3254:先进技术附件(ata)接口、串行ata(sata)接口、外部sata(e-sata)接口、小型计算机系统接口(scsi)、串行连接scsi(sas)、外围组件互联(pci)接口、快速pci(pcie)接口、快速nvm(nvme)接口、ieee 1394接口、通用串行总线(usb)接口、安全数字(sd)卡接口、多媒体卡(mmc)接口、嵌入多媒体卡(emmc)接口、通用闪存存储(ufs)接口、嵌入通用闪存存储(eufs)接口以及紧凑式闪存(cf)卡接口。
94.存储服务器3200还可以包括交换机3230和nic 3240。交换机3230可以根据处理器3210的控制选择性地将处理器3210连接到存储装置3250或者可以选择性地将nic 3240连接到存储装置3250。
95.在示例实施例中,nic 3240可以包括网络接口卡和网络适配器。nic3240可以通过有线接口、无线接口、蓝牙接口、或光接口连接到网络3300。nic 3240可以包括内部存储器、数字信号处理器(dsp)和主机总线接口,并且可以通过主机总线接口连接到处理器3210和/或交换机3230。可以通过接口3254的上述示例之一来实现主机总线接口。在示例实施例中,接口3254可以与处理器3210、交换机3230和存储装置3250中的至少一个集成。
96.应用服务器3100至3100n向存储装置3150至3150n以及存储装置3250至3250或者存储器件3120至3120n以及存储器件3220至3220m发送命令,使得数据可以被编程或读取。此时,可以通过纠错码(ecc)引擎对数据进行错误校正。数据可以经数据总线反转(dbi)或数据屏蔽(dm)处理,并且可以包括循环冗余码(crc)信息。为了安全或隐私,可以对数据进行加密。
97.存储装置3150至3150n以及存储装置3250至3250可以响应于从处理器接收的读取命令,向nand闪存器件3252至3252m发送控制信号和命令/地址信号。因此,当从nand闪存器
件3252至3252m读取数据时,读取使能(re)信号可以作为数据输出控制信号被输入,并且数据可以被输出到dq总线。可以通过使用re信号来生成数据选通dqs。命令/地址信号可以根据写入使能(we)信号的上升沿或下降沿而被锁存到页缓冲器中。
98.控制器3251可以控制存储装置3250的总体操作。在示例实施例中,控制器3251可以包括sram。控制器3251可以响应于写入命令将数据写入nand闪存器件3252中,或者可以响应于读取命令从nand闪存器件3252读取数据。例如,可以通过存储服务器3200中的处理器3210、存储服务器3200m中的处理器3210m、或者应用服务器3100中的处理器3110和应用服务器3100n中的3110n来提供写入命令和/或读取命令。dram 3253可以任意地存储(缓冲)要被写入nand闪存器件3252中的数据或者从nand闪存器件3252读取的数据。另外,dram 3253可以存储元数据。这里,元数据可以包括用户数据或通过控制器3251生成的数据,以便管理nand闪存器件3252。为了安全或隐私,存储装置3250可以包括安全元件(se)。
99.尽管已经参考本公开的实施例具体地示出和描述了本公开,但将理解的是,可以在不背离所附权利要求的精神和范围的情况下在其中作出形式和细节上的各种改变。

技术特征:


1.一种数据处理系统,包括:异构存储器系统,所述异构存储器系统包括存储器模块和hbm,所述hbm包括pim电路并且被配置为存储数据,所述hbm即高带宽存储器,所述pim电路即存储器内处理电路;主机处理器,所述主机处理器被配置为:执行所述数据处理系统的算术运算,并且将所述算术运算中的与由所述主机处理器分流的内核相对应的一个或更多个算术运算分配到所述pim电路以由所述pim电路来执行;以及存储器控制器,所述存储器控制器被配置为:基于所述一个或更多个算术运算在所述pim电路中被执行,基于边界索引值从所述存储器模块或者所述hbm检测所述一个或更多个算术运算所需的数据阵列,其中,所述边界索引值指示所述存储器模块和所述hbm当中的哪一者存储所述数据阵列。2.根据权利要求1所述的数据处理系统,其中,所述边界索引值基于所述数据阵列的利用频率或者所述存储器模块与所述hbm之间的带宽比被设置。3.根据权利要求1所述的数据处理系统,其中,所述存储器控制器还被配置为:从所述主机处理器接收关于所分流的内核的信息,其中,所述关于所分流的内核的信息包括:所述数据阵列的标识号、对应于所述标识号的所述数据阵列的基地址、表示相对于所述基地址的偏移的索引值、以及数据大小。4.根据权利要求3所述的数据处理系统,其中,所述存储器控制器还被配置为:将所述索引值与所述边界索引值相比较,以及当所述索引值小于所述边界索引值时,确定所述数据阵列被存储在所述hbm中。5.根据权利要求4所述的数据处理系统,其中,所述存储器控制器包括hbm映射表,并且所述存储器控制器进一步被配置为从所述hbm映射表读取与所述数据阵列的所述基地址相对应的所述hbm的基地址。6.根据权利要求5所述的数据处理系统,其中,所述存储器控制器进一步被配置为:计算第一地址,所述第一地址对应于相对于所述hbm的所述基地址偏移所述索引值的位置;计算第二地址,所述第二地址对应于通过将所述第一地址与所述数据大小相乘获得的值;以及确定所述数据阵列被存储在所述hbm的从所述第一地址到所述第二地址的物理地址空间中。7.根据权利要求6所述的数据处理系统,其中,所述存储器控制器还被配置为分配寄存器,所述寄存器被配置为存储所述hbm的所述pim电路使用存储在所述hbm中的所述数据阵列执行的操作处理所生成的中间结果值。8.根据权利要求7所述的数据处理系统,其中,所述存储器控制器进一步被配置为生成指示所述hbm的所述pim电路执行所述操作处理的hbm命令集,其中,所述hbm命令集包括操作码参数、向量大小参数、源参数和目标参数,其中,所述操作码参数指示所分流的内核的命令,所述向量大小参数指示与所述主机处理器相结合的dram高速缓存行的数据输入和输出量与所述数据阵列的数据输入和输出量之间的相关性,所述源参数指示对应于所述数据阵列的所述hbm的地址,所述目标参数指示所分配的寄存器的标识号。
9.根据权利要求3所述的数据处理系统,其中,所述存储器控制器还被配置为:将所述索引值与所述边界索引值相比较,以及当所述索引值大于所述边界索引值时,确定所述数据阵列被存储在所述存储器模块中。10.根据权利要求9所述的数据处理系统,其中,所述存储器控制器包括存储器模块映射表,并且所述存储器控制器进一步被配置为从所述存储器模块映射表读取与所述数据阵列的所述基地址相对应的所述存储器模块的基地址。11.根据权利要求10所述的数据处理系统,其中,所述存储器控制器进一步被配置为:计算第三地址,所述第三地址对应于相对于所述存储器模块的所述基地址偏移通过从所述索引值减去所述边界索引值获得的值的位置;计算第四地址,所述第四地址对应于通过将所述第三地址与所述数据大小相乘获得的值;以及确定所述数据阵列被存储在所述存储器模块的从所述第三地址到所述第四地址的物理地址空间中。12.根据权利要求11所述的数据处理系统,其中,所述存储器控制器还被配置为分配寄存器,所述寄存器被配置为存储所述hbm的所述pim电路使用存储在所述存储器模块中的所述数据阵列执行的操作处理所生成的中间结果值。13.一种由包括异构存储器系统的系统实施的方法,所述异构存储器系统包括存储器模块和hbm,所述hbm包括pim电路,所述hbm即高带宽存储器,所述pim电路即存储器内处理电路,所述方法包括:由主机处理器将内核分流在所述异构存储器系统上;由存储器控制器存储边界索引值,所述边界索引值指示所述存储器模块和所述hbm当中的哪一者存储要根据所分流的内核的工作码的执行被处理的数据阵列;由所述存储器控制器接收关于所分流的内核的信息,所述关于所分流的内核的信息包括所述数据阵列的标识号、对应于所述标识号的所述数据阵列的基地址、表示相对于所述基地址的偏移的索引值、以及数据大小;由所述存储器控制器将所述数据阵列的所述索引值与所述边界索引值相比较;由所述存储器控制器在所述索引值小于所述边界索引值时确定所述数据阵列被存储在所述hbm中,以及在所述索引值大于所述边界索引值时确定所述数据阵列被存储在所述存储器模块中;由所述存储器控制器生成存储器模块命令集,所述存储器模块命令集指示所述hbm的所述pim电路通过使用存储在所述存储器模块中的所述数据阵列来执行所述工作码;以及由所述存储器控制器生成hbm命令集,所述hbm命令集指示所述hbm的所述pim电路通过使用存储在所述hbm中的所述数据阵列来执行所述工作码。14.根据权利要求13所述的方法,其中,所述边界索引值基于所述数据阵列的利用频率或者所述存储器模块与所述hbm之间的带宽比被设置。15.根据权利要求13所述的方法,其中,所述hbm命令集包括操作码参数、向量大小参数、源参数和目标参数,其中,所述操作码参数指示所分流的内核的命令,所述向量大小参数指示与所述存储器控制器相结合的dram高速缓存行的数据输入和输出量与所述数据阵列的数据输入和输出量之间的相关性,所述源参数指示对应于所述数据阵列的所述hbm的地址,所述目标参数指示所分配的寄存器的标识号。
16.根据权利要求13所述的方法,其中,所述存储器模块命令集包括操作码参数、向量大小参数、向量位置参数、立即值参数和目标参数,其中,所述操作码参数指示所分流的内核的命令,所述向量大小参数指示与所述存储器控制器相结合的dram高速缓存行的数据输入和输出量与所述数据阵列的数据输入和输出量之间的相关性,所述向量位置参数指示由当前命令利用的数据在所述数据阵列中的位置,所述立即值参数指示从所述存储器模块获取的所述数据阵列的部分数据值,所述目标参数指示所分配的寄存器的标识号。17.根据权利要求13所述的方法,其中,多个存储器裸片被堆叠在所述hbm中,并且所述多个存储器裸片中的每一者包括所述pim电路。18.一种数据处理设备,包括:存储器,所述存储器存储一个或更多个指令;以及处理器,所述处理器被配置为执行所述一个或更多个指令,以执行如下操作:接收与一个或更多个算术运算相对应的数据阵列的索引值;将所述数据阵列的索引值与边界索引值相比较;基于所述索引值小于所述边界索引值,向hbm发送与所述一个或更多个算术运算相对应的第一命令集,其中,所述hbm即高带宽存储器;以及基于所述索引值大于所述边界索引值,向存储器模块发送与所述一个或更多个算术运算相对应的第二命令集。19.根据权利要求18所述的数据处理设备,其中,所述第一命令集包括用于指示所述hbm的pim电路通过使用存储在所述hbm中的所述数据阵列执行所述一个或更多个算术运算的指令,其中,所述pim电路即存储器内处理电路。20.根据权利要求18所述的数据处理设备,其中,所述第二命令集包括用于指示所述hbm的pim电路通过使用存储在所述存储器模块中的所述数据阵列执行所述一个或更多个算术运算的指令,其中,所述pim电路即存储器内处理电路。

技术总结


提供了一种数据处理系统和用于访问异构存储器系统的方法。异构存储器系统包括存储器模块和高带宽存储器(HBM),该HBM包括与存储器控制器相结合的存储器内处理(PIM)电路。存储器控制器被配置为:在由HBM的PIM电路执行算术运算时通过使用边界索引值从存储器模块或者HBM中检测算术运算所需的数据阵列,以及使用分别在存储器模块和HBM中指定的物理地址空间来生成存储器模块命令集和HBM命令集。来生成存储器模块命令集和HBM命令集。来生成存储器模块命令集和HBM命令集。


技术研发人员:

郑园燮 葛弘周 鲁元宇 李锡旻 高建

受保护的技术使用者:

延世大学校产学协力团

技术研发日:

2022.06.09

技术公布日:

2022/12/12


文章投稿或转载声明

本文链接:http://www.wtabcd.cn/zhuanli/patent-1-50043-0.html

来源:专利查询检索下载-实用文体写作网版权所有,转载请保留出处。本站文章发布于 2022-12-19 19:56:30

发表评论

验证码:
用户名: 密码: 匿名发表
评论列表 (有 条评论
2人围观
参与讨论