存储器系统及其操作方法与流程

文档序号:30489837发布日期:2022-06-22 01:25阅读:53来源:国知局
存储器系统及其操作方法与流程
存储器系统及其操作方法
1.相关申请的交叉引用
2.本技术要求于2020年12月18日向韩国知识产权局提交的、申请号为10-2020-0178442的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
3.本公开的各个实施例总体上涉及一种电子装置,并且更特别地,涉及一种存储器控制器及其操作方法。


背景技术:

4.存储器系统通常响应于诸如计算机或智能电话的主机装置的控制而存储数据。存储器系统包括存储数据的存储器装置以及控制存储器装置的存储器控制器。存储器装置通常被分类为易失性存储器装置或非易失性存储器装置。
5.易失性存储器装置仅在向其供电时才存储数据,并且在没有电力供应的情况下丢失所存储的数据。易失性存储器装置的示例包括静态随机存取存储器(sram)和动态随机存取存储器(dram)。
6.非易失性存储器装置即使在没有电力供应的情况下,也保留所存储的数据。非易失性存储器装置的示例包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)和闪速存储器。


技术实现要素:

7.本公开的各个实施例涉及一种执行近数据处理(ndp)的多个改进的子存储器系统以及包括子存储器系统的池化存储器系统。
8.根据本公开的实施例,一种存储器系统可以包括:多个存储器装置,被配置为存储通过对嵌入(embedding)表进行分区而获得的部分数据条,该嵌入表包括关于已经获取的学习模型的项的向量信息条;以及存储器控制器,被配置为响应于从主机接收的查询,从多个存储器装置中的每一个获得部分数据条之中与查询相对应的数据条,使用已经获得的数据条来执行用于生成嵌入数据的池化操作,并将嵌入数据提供到主机,其中查询包括对池化操作的请求、主机存储器接收嵌入数据的地址以及与多个存储器装置之中的任意一个相对应的物理地址。
9.根据本公开的实施例,一种存储器系统可以包括:多个存储器装置,被配置为存储通过对嵌入表进行分区而获得的部分数据条,该嵌入表包括关于已经获取的学习模型的项的向量信息条;以及存储器控制器,被配置为响应于从主机接收的查询以及嵌入数据,使用嵌入数据来执行用于生成分区数据条的去池化(unpooling)操作,并控制多个存储器装置更新与多个存储器装置的每一个中存储的分区数据条相对应的部分数据。
10.根据本公开的实施例,一种池化存储器系统可以包括主机装置和多个子存储器系统,该多个子存储器系统被配置为存储通过对嵌入表进行分区而获得的部分数据条,该嵌
入表包括关于已经获取的学习模型的项的向量信息条,其中主机装置被配置为:向多个子存储器系统广播第一查询,并通过使用第一查询控制多个子存储器系统中的每一个获得部分数据条之中与第一查询相对应的数据条,使用已经获得的数据条来执行用于生成嵌入数据的池化操作,以及将嵌入数据提供到主机装置。
11.根据本公开的实施例,一种池化存储器系统可以包括多个子存储器系统,多个子存储器系统中的每一个包括:存储器装置,被配置为存储通过对嵌入表进行分区而获得的部分数据条,该嵌入表包括关于已经获取的学习模型的项的向量信息条;以及存储器控制器,被配置为执行用于生成嵌入数据条的池化操作以及用于对训练数据进行分区的去池化操作,池化存储器系统还包括主机装置,被配置为使用从多个子存储器系统接收的嵌入数据条来生成训练数据,并控制多个子存储器系统学习训练数据。
附图说明
12.图1是示出根据本公开的实施例的池化存储器系统的框图;
13.图2是示出根据本公开的实施例的子存储器系统的框图;
14.图3是示出根据本公开实施例的嵌入表的示图;
15.图4是示出根据本公开的实施例的存储部分数据条的方法的示图;
16.图5是示出根据本公开的实施例的存储部分数据条的方法的示图;
17.图6是示出根据本公开的实施例的存储部分数据条的方法的示图;
18.图7是示出根据本公开的实施例的查找操作和池化操作的示图;
19.图8是示出根据本公开的实施例的推理(inference)操作的示图;
20.图9是示出根据本公开的实施例的训练操作的示图;
21.图10是示出根据本公开的实施例的主机装置和子存储器系统的通信包的示图;
22.图11是示出根据本公开的实施例的推理操作和训练操作的示图;以及
23.图12是示出根据本公开的另一实施例的存储器控制器的配置的框图。
具体实施方式
24.例示了根据本说明书中公开的概念的实施例的具体结构或功能描述仅用于描述根据概念的实施例。根据概念的实施例可以通过各种形式来执行,但是描述不限于本说明书中描述的实施例。
25.可以根据概念对实施例应用各种修改和改变,使得将在附图中示出并在说明书中描述实施例。然而,根据本公开的概念的实施例不被解释为限于特定的公开,而是包括不脱离本公开的精神和技术范围的所有变化、等同形式或替代形式。在一些实施例中,将不再详细描述众所周知的进程、装置结构和技术,以避免模糊本公开。旨在通过省略不必要的描述来更清楚地公开本公开的要旨。
26.在下文中,将参照附图描述本公开的各个实施例以详细描述本公开。
27.图1是示出根据本公开的实施例的池化存储器系统10000的框图。
28.参照图1,池化存储器系统10000可以包括多个子存储器系统1000和主机装置2000。
29.池化存储器系统10000可以是提供推荐系统服务的装置。推荐系统服务可以是指
通过过滤信息为用户提供个性化信息的服务。池化存储器系统10000可以通过查询用户的个人信息、兴趣、偏好等来获得用户信息简况,并且可以基于所获得的用户信息简况来推荐或提供适合用户偏好信息的信息和项。
30.推荐系统服务可以被实施为用于高性能的训练和推理的基于深度学习的算法,以有效地使用或提供大量且不断增加的服务数据量。然而,由于基于深度学习的推荐系统主要基于主机装置来执行嵌入操作等,因此可能会导致带宽问题,并且可能会由于需要海量服务数据而导致存储器容量不足。
31.根据本公开的实施例,池化存储器系统10000可以提供具有足够存储器容量并且没有带宽问题的推荐系统服务,也就是说,池化存储器系统10000可以通过能够增加存储器容量的池化存储器结构来确保足够的存储器容量,并且可以被实施为执行近数据处理(ndp)以解决带宽问题。更具体地,池化存储器系统10000可以被实施为包括多个子存储器系统1000的池化存储器结构,在多个子存储器系统1000中,多个存储器装置彼此并联联接。另外,池化存储器系统10000可以控制多个子存储器系统1000执行与嵌入操作相关的简单操作。
32.池化存储器系统10000可以被实施为其中包括的多个子存储器系统1000和主机装置2000互连的形式。多个子存储器系统1000可以响应于主机装置2000的控制而执行推理操作和训练操作。推理操作可以与存储器系统的读取操作相关,而训练操作可以与存储器系统的写入操作相关。稍后将更详细地描述推理操作和训练操作。
33.为了执行推理操作和训练操作,多个子存储器系统1000可以存储关于已经获取的学习模型的数据。在本公开中,多个子存储器系统1000已经获取并在其中存储了嵌入表或关于学习模型的数据。通过推理操作,多个子存储器系统1000可以将所存储的嵌入表的至少一部分提供到主机装置2000。通过训练操作,多个子存储器系统1000可以基于从主机装置2000提供的训练数据来更新所存储的嵌入表的至少一部分。主机装置2000可以通过推理操作从多个子存储器系统1000接收嵌入表的该至少一部分。主机装置2000可以更新接收到的部分以生成训练数据。主机装置2000可以向多个子存储器系统1000提供训练数据,以通过训练操作更新多个子存储器系统1000中存储的嵌入表。
34.更具体地,多个子存储器系统1000可以存储关于已经获取的学习模型的项的向量信息。学习模型可以是指人工智能(ai)模型,并且可以通过训练来构建ai模型。通过训练来构建的含义可以是指通过利用学习算法,使用多条训练数据训练基本ai模型来构建预定义的操作规则或ai模型集,以执行所期望的特征。上述训练可以在根据本公开的池化存储器系统10000中或在外部服务器和/或系统中执行。学习算法的示例包括监督学习算法、无监督学习算法、半监督学习算法或强化学习算法,特别地,学习算法可以是指监督学习算法。
35.学习模型可以包括模仿人类神经网络的神经元并具有权重的多个网络节点。多个网络节点可以形成各自的连接关系来模拟神经元的突触活动,以通过突触交换信号。例如,ai模型可以包括神经网络模型或从神经网络模型发展而来的深度学习模型。在深度学习模型中,多个网络节点可以位于不同深度(或层),并根据卷积连接关系交换数据。例如,诸如以下的的模型可以用作数据识别模型:深度神经网络(dnn)模型、循环神经网络(rnn)模型或双向循环深度神经网络(brdnn)模型。然而,数据识别模型的示例不限于此。
36.根据本公开的实施例,可以根据主机装置2000的控制来执行与池化存储器系统
10000的推荐系统服务相关的功能。更具体地,主机装置2000可以包括主机处理器和主机存储器。主机处理器可以是诸如中央处理单元(cpu)、应用处理器(ap)或数字信号处理器(dsp)的通用处理器,诸如图形处理单元(gpu)或视觉处理单元(vpu)的图形专用处理器,或者诸如神经处理单元(npu)的ai专用处理器。主机存储器可以存储用于提供推荐系统服务的操作系统或应用程序。
37.主机装置2000可以向多个子存储器系统1000广播查询。通过使用查询,主机装置2000可以控制多个子存储器系统1000从多个子存储器系统1000中的每一个获得部分数据条之中与查询相对应的数据条。主机装置2000可以控制多个子存储器系统1000使用所获得的数据条来执行用于生成嵌入数据的池化操作,并向主机装置2000提供嵌入数据。查询可以包括对所述池化操作的请求、接收所述嵌入数据的主机存储器的地址以及与多个存储器装置之中的任意一个相对应的物理地址。
38.主机装置2000可以基于从多个子存储器系统中的每一个接收的数据来生成用于更新嵌入表的训练数据。如稍后将描述的,训练数据也可以表示为嵌入数据,该嵌入数据从主机装置2000被广播到子存储器系统中的每一个并且被子存储器系统中的每一个利用以更新子存储器系统中所存储的部分数据,该部分数据是嵌入表的一部分。另外,主机装置2000可以广播训练数据以及查询。通过使用与训练数据一起被广播的查询,主机装置2000可以控制多个子存储器系统1000通过对训练数据进行分区来执行用于生成分区数据条的去池化操作,并更新与子存储器系统的每一个中的分区数据条相对应的部分数据。查询可以包括对所述去池化操作的请求、与所述嵌入数据相对应的主机存储器的地址以及与多个存储器装置之中的任意一个相对应的物理地址。
39.图2是示出根据本公开的实施例的子存储器系统的框图。
40.参照图2,示出了多个子存储器系统1000中的一个子存储器系统1000a。
41.子存储器系统1000a可以根据对应于与主机装置2000的通信方法的主机接口而被实施为各种类型的存储器系统中的一种。例如,子存储器系统1000a可以被实施为诸如以下的各种类型的存储装置中的一种:固态驱动器(ssd),多媒体卡(mmc)、emmc、rs-mmc和微型mmc形式的多媒体卡,安全数字(sd)卡、迷你sd卡和微型sd卡形式的安全数字卡,通用串行总线(usb)存储器系统,通用闪存(ufs)装置,个人计算机存储卡国际协会(pcmcia)卡型存储器系统,外围组件互连(pci)卡型存储器系统,高速pci(pci-e)卡型存储器装置,紧凑型闪存(cf)卡,智能媒体卡和记忆棒。
42.子存储器系统1000a可以被实施为各种封装类型中的一种。例如,子存储器系统1000a可以被实施为诸如以下的各种封装类型中的一种:堆叠封装(pop)、系统级封装(sip)、片上系统(soc)、多芯片封装(mcp)、板上芯片(cob)、晶圆级制造封装(wfp)和晶圆级堆叠封装(wsp)。
43.子存储器系统1000a可以包括存储器装置100和存储器控制器200。
44.存储器装置100可以存储数据或使用所存储的数据。更具体地,存储器装置100可以响应于存储器控制器200的控制而操作。存储器装置100可以包括存储数据的多个存储体(bank)。多个存储体中的每一个可以包括具有多个存储器单元的存储器单元阵列。
45.存储器装置100可以是易失性随机存取存储器,诸如动态随机存取存储器(dram)、sdram、ddr sdram、ddr2 sdram、ddr3sdram、lpddr sdram、lpddr2 sdram和lpddr3 sdram。
作为示例,在以下描述的背景中,存储器装置100是dram。
46.存储器装置100可以从存储器控制器200接收命令和地址。存储器装置100可以被配置为访问存储器单元阵列中由接收到的地址所选择的区域。访问所选择的区域可以是指对所选择的区域执行与接收到的命令相对应的操作。例如,存储器装置100可以执行写入操作(或编程操作)、读取操作和擦除操作。写入操作可以是存储器装置100将数据写入地址所选择的区域的操作。读取操作可以是指存储器装置100从地址所选择的区域读取数据的操作。擦除操作可以是指存储器装置100从地址所选择的区域擦除数据的操作。
47.根据本公开的实施例,存储器装置100可以包括存储嵌入表的嵌入表存储器件110。嵌入表可以是包括关于已经获取的学习模型的项的向量信息的表。更具体地,存储器装置100可以存储通过对嵌入表进行分区而得到的部分数据条。部分数据条可以是通过以向量信息的维度为单位对嵌入表进行分区而获得的数据,并且存储器装置100可以存储与至少一个维度相对应的部分数据。为了避免重复描述,下面参照图3至图6描述关于嵌入表和部分数据的描述。
48.存储器控制器200可以控制子存储器系统1000a的一般操作。
49.当向子存储器系统1000a供电时,存储器控制器200可以运行固件(fw)。固件(fw)可以包括:主机接口层(hil),接收从主机装置2000输入的请求或向主机装置2000输出响应;转换层(tl),管理主机装置2000的接口与存储器装置100的接口之间的操作;以及存储器接口层(mil),向存储器装置100提供命令或从存储器装置100接收响应。
50.存储器控制器200可以响应于来自主机装置2000的请求而控制存储器装置100执行写入操作、读取操作或擦除操作。在写入操作期间,存储器控制器200可以将写入命令、体地址(bank address)和数据提供到存储器装置100。在读取操作期间,存储器控制器200可以将读取命令和体地址提供到存储器装置100。在擦除操作期间,存储器控制器200可以将擦除命令和体地址提供到存储器装置100。
51.根据本公开的实施例,存储器控制器200可以包括读取操作控制组件210、权重更新组件220和操作组件230。
52.读取操作控制组件210可以从由主机装置2000广播的查询中识别与查询相对应的物理地址,并控制存储器装置100读取与该物理地址相对应的数据条。响应于从主机装置2000接收的查询,存储器控制器200的读取操作控制组件210可以从存储器装置100获得部分数据条之中与查询相对应的数据条。
53.权重更新组件220可以基于从主机装置2000接收的数据,控制存储器装置100更新存储器装置100中存储的部分数据条的权重。更具体地,权重更新组件220可以控制存储器装置100更新与通过对嵌入数据进行分区而获得的分区数据相对应的部分数据条。权重更新组件220可以是用于控制存储器装置100将分区数据存储在存储器装置100中的配置。
54.操作组件230可以执行用于生成嵌入数据的池化操作或用于生成分区数据条的去池化操作。
55.更具体地,响应于从主机装置2000接收的查询,操作组件230可以从存储器装置100获得与查询相对应的数据条。另外,操作组件230可以使用与查询相对应的数据来执行用于生成嵌入数据的池化操作。更具体地,操作组件230可以通过用于压缩与查询相对应的数据条的池化操作来生成嵌入数据。上述池化操作可以用于对数据条的向量信息条彼此执
行逐元素运算。例如,可以通过池化操作将向量信息条的元素相加。池化操作可以是用于将多个向量整合为单个向量的进程。池化存储器系统10000可以通过池化操作来减小数据的大小,并且可以减少至主机装置2000的数据传输量。另外,操作组件230可以响应于从主机装置2000接收的查询以及嵌入数据,执行用于生成分区数据条的去池化操作。更具体地,操作组件230可以执行用于将嵌入数据分区为多个分区数据条的去池化操作。
56.图3是示出根据本公开实施例的嵌入表的示图。
57.参照图3,示出了多个子存储器系统1000中存储的嵌入表。
58.嵌入表可以包括关于已经获取的学习模型的项的向量信息条。学习模型可以是指人工智能(ai)模型,并且ai模型可以具有通过训练构建的特征。更具体地,嵌入表可以是可以被分类为类别(category)的类别数据和与类别数据相对应的嵌入向量对的集合,并且学习模型的项中的每一个可以是类别数据。自然语言形式的类别数据可以使用嵌入算法,以具有彼此相似性的向量的形式进行数字化。例如,向量可以是由若干整数或浮点数组成的一组数字,例如“(3,5)”或“(0.1,-0.5,2,1.2)”。换句话说,嵌入表可以是指为了将数据分类为类别而构建的学习模型的一组类别数据条以及类别数据的向量信息条。当向量值(诸如,嵌入向量的斜率或嵌入向量的形式)彼此更相似时,相应的词在语义方面更相似。
59.根据本公开的实施例,嵌入表可以具有三维结构。更具体地,参照图3,嵌入表可以具有包括“表大小”、“特征数量”和“维度”的三维结构。“表大小”可以是指类别中包括的项的数量。例如,当标记为《电影名称》的类别包括“harry potter”和“shrek”时,项的数量是二(2)。“特征数量”可以是指类别的数量。例如,当嵌入表包括《电影名称》和《电影类型》时,类别的数量是二(2)。“维度”可以是指嵌入向量的维度。换句话说,“维度”可以是指向量中包括的数字的数量。例如,由于一组“(0.1,-0.5,2,1.2)”包括四(4)个数字,因此该组可以表示为四(4)个维度。
60.图4是示出根据本公开的实施例的存储部分数据条的方法的示图。
61.参照图4,示出了分别存储在多个子存储器系统中的嵌入表。
62.嵌入表中的每一个可以包括部分数据条。更具体地,可以通过以向量信息条的维度为单位对嵌入表进行分区而获得部分数据条中的每一个。多个子存储器系统中的每一个可以存储对应于至少一个维度的部分数据。通过在池化存储器系统10000中尽可能并行地设置嵌入表,可以执行与嵌入相关的操作而不使多个子存储器系统1000中的性能劣化。
63.图5是示出根据本公开的实施例的存储部分数据条的方法的示图。
64.参照图5,示出了多个子存储器系统1000的每一个中存储的部分数据条。如图5所示,多个子存储器系统1000中的每一个可以存储通过以“k”个维度为单位对嵌入表进行分区而获得的部分数据条。例如,第一子存储器系统可以存储通过以从“第n”维至“第(n+k-1)”维的“k”个维度对嵌入表进行分区而获得的部分数据条。第二子存储器系统可以存储通过以从“第(n+k)”维至“第(n+2k-1)”维的“k”个维度的向量信息的维度对嵌入表进行分区而获得的部分数据条。通过上述方法,池化存储器系统10000可以将嵌入表存储在多个子存储器系统1000中。
65.根据图5所示的实施例,多个子存储器系统1000各自存储通过相同数量的维度而获得的部分数据条。然而,实施例不限于此。根据另一实施例,多个子存储器系统1000中的每一个可以被实施为存储通过以任意数量的维度对嵌入表进行分区而获得的部分数据条。
66.图6是示出根据本公开的实施例的存储部分数据条的方法的示图。
67.参照图6,示出了多个存储器装置的每一个中存储的部分数据条。
68.如上面参照图5所描述的,子存储器系统中的每一个可以存储通过以维度为单位对嵌入表进行分区而获得的部分数据条。更具体地,子存储器系统中的每一个可以存储通过以“k”个维度为单位对嵌入表进行分区而获得的部分数据条。
69.另外,子存储器系统可以将部分数据条存储在多个存储器装置中。子存储器系统可以包括多个存储器装置,并且多个存储器装置中的每一个可以存储对应于至少一个维度的部分数据。
70.例如,第i子存储器系统可以包括第一至第n存储器装置md1至mdn,并且第一至第n存储器装置md1至mdn中的每一个可以存储对应于至少一个维度的部分数据。
71.图7是示出根据本公开的实施例的查找操作和池化操作的示图。
72.参照图7,示出了用于在嵌入表中搜索向量信息条的查找操作以及用于压缩向量信息条的池化操作。
73.当从主机装置2000接收到查询时,联接到主机装置2000的多个子存储器系统1000中的每一个可以执行用于获得对应于查询的数据的查找操作。
74.更具体地,可以在多个子存储器系统1000的每一个中并行执行查找操作。子存储器系统1000中的每一个可以包括多个存储器装置100,并且多个存储器装置100中的每一个可以执行用于从所存储的部分数据中获得与查询相对应的数据的查找操作。换句话说,由于多个存储器装置100并行执行查找操作,因此多个子存储器系统1000可以同时执行查找操作。
75.另外,多个子存储器系统1000中的每一个可以通过使用通过查找操作而获得的数据条来执行用于生成嵌入数据的池化操作。
76.更具体地,可以在多个子存储器系统1000的每一个中并行执行池化操作。子存储器系统1000中的每一个可以包括存储器控制器200,并且存储器控制器200可以通过压缩由查找操作而获得的数据条来执行用于生成嵌入数据的池化操作。根据本公开的实施例,存储器控制器200可以对从多个存储器装置100获得的数据条的向量信息条执行逐元素运算。
77.更具体地,存储器控制器200可以对向量信息条执行逐元素运算以生成单条向量信息。池化存储器系统10000可以在多个子存储器系统1000的每一个中执行池化操作并且减少从多个子存储器系统1000到主机装置2000的数据传输量。
78.图8是示出根据本公开的实施例的推理操作的示图。
79.参照图8,示出了推理操作。在推理操作中,多个子存储器系统1000中的每一个执行用于压缩从嵌入表获得的向量信息条的池化操作,并将通过池化操作而生成的嵌入数据条提供到主机装置2000。
80.更具体地,子存储器系统中的每一个可以将通过对嵌入表进行分区而获得的部分数据条存储在多个存储器装置100中。嵌入表可以是包括关于已经获取的学习模型的项的向量信息条的表。多个存储器装置100可以存储通过以向量信息条的维度为单位对嵌入表进行分区而获得的部分数据条。例如,部分数据条中的每一个可以是通过以16至1024维度为单位对嵌入表进行分区而获得的部分数据条。子存储器系统的每一个中包括的存储器控制器200可以从多个存储器装置100中的每一个获得部分数据条之中的、与从主机装置2000
接收的查询相对应的数据条。
81.子存储器系统的每一个中包括的存储器控制器200可以通过使用所获得的数据条来执行用于生成嵌入数据的池化操作。例如,存储器控制器200可以从多个存储器装置100获得1至80条数据,并通过对所获得的数据条的向量信息条执行逐元素运算来生成嵌入数据。上述池化操作可以用于对数据条的向量信息条彼此执行逐元素运算。例如,可以通过池化操作将向量信息条的元素相加。池化操作可以是用于将多个读取向量整合为单个向量的进程。
82.子存储器系统的每一个中包括的存储器控制器200可以将所生成的嵌入数据提供到主机装置2000。更具体地,存储器控制器200可以通过累积嵌入数据条来生成批次(batch)。另外,存储器控制器200可以将所生成的批次提供到主机装置2000。批次可以是一群嵌入数据条或集合数据,并且一个批次可以包括128至1024个嵌入数据条。
83.图9是示出根据本公开的实施例的训练操作的示图。
84.参照图9,示出了训练操作。在训练操作中,多个子存储器系统1000中的每一个执行用于对从主机装置2000接收的梯度(gradient)进行分区的去池化操作,并使用分区后的梯度更新嵌入表。梯度是用于更新嵌入表的数据,并且可以是指包括权重的嵌入数据。
85.子存储器系统中的每一个可以将通过对嵌入表进行分区而获得的部分数据条存储在多个存储器装置100中。嵌入表可以包括关于已经获取的学习模型的项的向量信息条。多个存储器装置100可以存储通过以向量信息条的维度为单位对嵌入表进行分区而获得的部分数据条。例如,部分数据条中的每一个可以是通过以16至1024维度为单位对嵌入表进行分区而获得的部分数据条。
86.子存储器系统的每一个中包括的存储器控制器200可以从主机装置2000接收请求更新嵌入表的广播查询以及广播梯度(即,包括权重的嵌入数据)。可以由子存储器系统中的每一个以批次为单位从主机装置2000接收广播梯度。另外,存储器控制器200可以使用从主机装置2000接收的梯度来执行用于生成分区数据条的去池化操作。例如,存储器控制器200可以从主机装置2000接收广播批次的梯度(即,包括权重的嵌入数据)。另外,存储器控制器200可以使用从主机装置2000广播的批次梯度来生成分区数据条。存储器控制器200可以执行用于将嵌入数据分区为分区数据条的去池化操作,以轻松地更新嵌入表。上述去池化操作可以用于对数据条的向量信息条彼此执行逐元素运算。
87.另外,子存储器系统的每一个中包括的存储器控制器200可以控制多个存储器装置100更新与多个存储器装置100的每一个中的分区数据条相对应的部分数据。
88.池化存储器系统10000可以向多个子存储器系统1000广播请求更新的查询以及梯度(即,包括权重的嵌入数据),并且可以控制子存储器系统中的每一个更新部分数据。池化存储器系统10000可以使用查询和嵌入数据来训练子存储器系统的每一个中存储的学习模型。
89.图10是示出根据本公开的实施例的主机装置2000和子存储器系统1000的通信包的示图。
90.参照图10,示出了主机装置2000和多个子存储器系统1000之间的通信包。更具体地,第一通信包11可以是从主机装置2000传输到多个子存储器系统1000的消息。第一通信包11可以包括“任务id(task id)”、“操作码(opcode)”、“源地址(source address)”、“源大
小(source size)”和“目标地址(destination address)”。
91.第一通信包11可以由总共91位组成,并且可以将4位分配给“任务id”。“任务id”可以指示主机装置2000的操作状态。例如,“任务id”可以指示主机装置2000的操作是正在运行还是终止。主机装置2000可以使用“任务id”重新调整子存储器系统的操作。
92.可以将3位分配给“操作码”,并且“操作码”可以包括用于将多个嵌入操作彼此区分开的数据。更具体地,主机装置2000可以使用“操作码”在嵌入表的初始化、推理操作和训练操作之间进行区分。
93.可以将32位分配给“源地址”,并且“源地址”可以包括关于查询或梯度的源地址的数据。更具体地,主机装置2000可以将关于子存储器系统中的每一个从主机存储器所获取的梯度地址的数据包括到“源地址”中。梯度是用于更新嵌入表的数据,并且可以是指包括权重的嵌入数据。
94.可以将20位分配给“源大小”,并且“源大小”可以包括关于子存储器系统中的每一个从主机存储器所获取的查询或梯度的大小的数据。“目标地址”可以包括主机存储器中的、将存储子存储器系统中的每一个的内部操作结果的地址。
95.主机装置2000可以使用第一通信包11与多个子存储器系统1000通信。另外,当多个子存储器系统1000从主机装置2000接收到第一通信包11时,多个子存储器系统1000可以传输作为响应消息的第二通信包12。第二通信包12可以包括“任务id”和“操作码”。
96.图11是示出根据本公开的实施例的推理操作和训练操作的示图。
97.参照图11,示出了包括多个子存储器系统1000和主机装置2000并执行推理操作和训练操作的池化存储器系统10000。
98.子存储器系统1000可以存储通过对嵌入表进行分区而获得的部分数据条,该嵌入表包括关于已经在存储器装置100中获取的学习模型的项的向量信息条。
99.主机装置2000可以控制子存储器系统1000执行用于生成嵌入数据条的池化操作。上述池化操作可以用于对数据条的向量信息条彼此执行逐元素运算以生成单条向量信息。子存储器系统1000可以向主机装置2000提供所生成的嵌入数据条。
100.主机装置2000可以使用从子存储器系统1000接收的嵌入数据条来生成训练数据。更具体地,主机装置2000可以将嵌入数据条的特征相互比较。嵌入数据条可以包括嵌入向量,并且主机装置2000可以将嵌入向量的、诸如斜率、形式或大小的向量值相互比较。当向量值(诸如,嵌入向量的斜率或嵌入向量的形式)彼此更相似时,相应的词在语义方面彼此更相似。主机装置2000可以计算从子存储器系统1000接收的嵌入数据条的分数,并且基于计算出的分数生成训练数据。训练数据可以用于更新嵌入表,并且可以是指校正了权重的嵌入数据。
101.主机装置2000可以控制子存储器系统1000学习训练数据。子存储器系统1000可以执行用于对从主机装置2000接收的训练数据进行分区的去池化操作,并更新嵌入表的权重。
102.图12是示出根据本公开的另一实施例的存储器控制器1300的配置的框图。
103.参照图12,存储器控制器1300可以包括处理器1310、ram 1320、错误校正码(ecc)电路1330、rom 1360、主机接口1370和存储器接口1380。图12所示的存储器控制器1300可以是图1和图2所示的存储器控制器200的实施例。
104.处理器1310可以使用主机接口1370与主机装置2000通信,并且执行逻辑运算以控制存储器控制器1300的操作。例如,处理器1310可以响应于从主机装置2000或外部装置接收的请求,加载写入命令、数据文件或数据结构,执行各种操作或生成命令和地址。例如,处理器1310可以生成用于写入操作、读取操作、擦除操作、挂起操作和参数设置操作的各种命令。
105.处理器1310可以执行转换层(tl)的功能。处理器1310可以识别主机装置2000所提供的物理地址。
106.处理器1310可以在没有来自主机装置2000的请求的情况下生成命令。例如,处理器1310可以生成用于后台操作(诸如,用于存储器装置100的刷新操作的操作)的命令。
107.ram 1320可以用作处理器1310的缓冲存储器、操作存储器或高速缓存存储器。ram 1320可以存储处理器1310所运行的代码和命令。ram 1320可以存储处理器1310所处理的数据。当实施ram 1320时,ram 1320可以包括静态ram(sram)或动态ram(dram)。
108.ecc电路1330可以在写入操作或读取操作期间检测和校正错误。更具体地,ecc电路1330可以根据错误校正码(ecc)执行错误校正操作。ecc电路1330可以基于待写入存储器装置100的数据执行ecc编码。可以通过存储器接口1380将已经执行ecc编码的数据传输到存储器装置100。另外,ecc电路1330可以对通过存储器接口1380从存储器装置100接收的数据执行ecc解码。
109.rom 1360可以用作存储用于存储器控制器1300的操作的各种类型信息的存储单元。rom 1360可以由处理器1310控制。
110.主机接口1370可以包括用于在主机装置2000和存储器控制器1300之间交换数据的协议。更具体地,主机接口1370可以通过诸如以下的一种或多种不同接口协议与主机装置2000通信:通用串行总线(usb)协议、多媒体卡(mmc)协议、外围组件互连(pci)协议、高速pci(pci-e)协议、高级技术附件(ata)协议、串行ata协议、并行ata协议、小型计算机系统接口(scsi)协议、增强型小型磁盘接口(esdi)协议、电子集成驱动器(ide)协议和专用协议。
111.存储器接口1380可以根据处理器1310的控制使用通信协议与存储器装置100通信。更具体地,存储器接口1380可以通过通道与存储器装置100进行命令、地址和数据的通信。
112.根据本公开的实施例,可以提供执行近数据处理(ndp)的多个改进的子存储器系统以及包括该子存储器系统的池化存储器系统。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1