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

存储装置及操作存储装置的方法与流程

2022-06-25 02:23:58 来源:中国专利 TAG:

存储装置及操作存储装置的方法
1.相关申请的交叉引用
2.本专利文件要求于2020年12月22日提交的申请号为10-2020-0181089的韩国专利申请的优先权和权益,该韩国专利申请通过引用整体并入本文。
技术领域
3.本公开的各个实施例总体涉及一种电子装置,并且更特别地,涉及一种存储装置及操作存储装置的方法。


背景技术:

4.存储装置是被配置为在诸如计算机、智能手机等的主机装置的控制下存储数据的装置。存储装置可以包括被配置为存储数据的存储器装置以及被配置为控制该存储器装置的存储器控制器。存储器装置可以分类为易失性存储器装置或非易失性存储器装置。
5.易失性存储器装置可以是被配置为仅在电力供应期间存储数据并且在电力供应中断时使所存储的数据被擦除的存储器装置。易失性存储器装置的示例包括静态随机存取存储器(sram)、动态随机存取存储器(dram)等。
6.非易失性存储器装置是被配置以使得即使电力供应中断也不擦除数据的存储器装置。非易失性存储器装置的示例包括只读存储器(rom)、可编程存储器(prom)、电可编程rom(eprom)、电可擦可编程rom(eeprom)、闪速存储器等。


技术实现要素:

7.所公开技术的实施例涉及一种存储装置以及操作该存储装置的方法,该存储装置还能够减少嵌入式操作时的带宽瓶颈以及其他特征和益处。
8.在用于实施所公开的技术的实施例中,一种存储装置可以包括:存储器装置,被配置为存储矩阵数据;存储器控制器,联接到存储器装置,被配置为从主机接收非零数据和非零数据的索引,并且基于非零数据和索引来生成矢量数据;以及运算组件,联接到存储器装置和存储器控制器,被配置为执行矩阵数据与矢量数据之间的乘法运算。
9.本公开的实施例可以提供一种操作存储装置的方法。该方法可以包括存储矩阵数据,从主机接收非零数据和非零数据的索引,基于非零数据和索引来生成矢量数据,以及执行矩阵数据与矢量数据之间的乘法运算。
10.本公开的实施例可以提供一种存储装置。该存储装置可以包括:存储器装置,被配置为存储包括多个嵌入矢量的嵌入表;存储器控制器,联接到存储器装置,被配置为从主机接收与目标数据相对应的第一独热(one-hot)矢量中包括的非零数据以及非零数据的索引,并且基于非零数据与索引来生成第二独热矢量;以及运算组件,联接到存储器装置和存储器控制器,被配置为基于嵌入表和第二独热矢量来计算目标数据的嵌入矢量。
附图说明
11.图1是示出根据当前所公开的技术的实施例的示例性计算系统的示图。
12.图2是示出根据当前所公开的技术的实施例的示例性嵌入式操作的示图。
13.图3是示出根据当前所公开的技术的实施例的示例性独热矢量的示图。
14.图4是示出根据当前所公开的技术的实施例的示例性存储装置的示图。
15.图5是示出根据当前所公开的技术的实施例的传输非零数据和索引的示例的示图。
16.图6是示出根据当前所公开的技术的实施例的生成矢量数据的示例的示图。
17.图7是示出根据当前所公开的技术的实施例的操作存储装置的示例性方法的流程图。
18.图8是示出根据当前所公开的技术的实施例的图1所示的存储器控制器的示例性组件的示图。
具体实施方式
19.图1是示出根据当前所公开的技术的实施例的示例性计算系统的示图。如图所示,计算系统10包括存储装置50和主机400。
20.在一些实施例中,存储装置50包括存储器装置100、被配置为控制存储器装置100的操作的存储器控制器200以及运算组件300。存储装置50可以是被配置为在诸如以下的主机400的控制下存储数据的装置:移动电话、智能电话、mp3播放器、膝上型计算机、台式计算机、游戏控制器、tv、平板pc或车载信息娱乐系统等。
21.在一些实施例中,存储装置50根据作为与主机400通信的方法的主机接口被制造为各种类型的存储装置中的任意一种。例如,存储装置50可以被配置为诸如以下的各种类型的存储装置中的任意一种:固态驱动器(ssd),多媒体卡(mmc)、emmc、尺寸减小的mmc(rs-mmc)或微型mmc形式的多媒体卡,安全数字(sd)卡、迷你sd或微型sd,通用串行总线(usb)存储装置,通用闪存(ufs)装置,个人计算机存储卡国际协会(pcmcia)卡形式的存储装置,外围组件互连(pci)卡形式的存储装置,高速pci(pci-e)卡形式的存储装置,紧凑型闪存(cf)卡,智能媒体卡,记忆棒等。
22.在一些实施例中,存储装置50可以被制造为各种类型的封装形式中的任意一种。例如,存储装置50可以被制造为堆叠封装(pop)、系统级封装(sip)、片上系统(soc)、多芯片封装(mcp)、板上芯片(cob)、晶圆级制造封装(wfp)和/或晶圆级堆叠封装(wsp)等。
23.继续图1的描述,存储装置50包括存储器装置100和存储器控制器200,存储器控制器200被配置为控制存储器装置100的操作。在示例中,存储装置50是被配置为在诸如以下的主机400的控制下存储数据的装置:移动电话、智能电话、mp3播放器、膝上型计算机、台式计算机、游戏机、tv、平板pc或车载信息娱乐系统等。
24.在一些实施例中,存储器装置100存储数据,并且由存储器控制器200操作和控制。
25.在一些实施例中,存储器装置100可以包括存储器单元阵列(图1中未示出),该存储器单元阵列包括被配置为存储数据的多个存储器单元。存储器单元中的每一个可以被配置为单层单元(slc)、多层单元(mlc)、三层单元(tlc)或四层单元(qlc),该单层单元被配置为存储单个数据位、该多层单元被配置为存储两个数据位、该三层单元被配置为存储三个
数据位,该四层单元能够存储四个数据位。
26.在一些实施例中,存储器单元阵列包括多个存储块。在示例中,存储块中的每一个包括多个存储器单元。在另一示例中,单个存储块包括多个页面。在这些实施例中,页面可以是数据存储在存储器装置100中的单位,或者是读取存储器装置100中存储的数据的单位。存储块可以是擦除数据的单位。
27.在一些实施例中,存储器装置100是易失性存储器装置。例如,存储器装置100可以是动态随机存取存储器(dram)、sdram、ddr sdram、ddr2 sdram、ddr3 sdram、lpddr sdram、lpddr2 sdram、lpddr3 sdram等。
28.在一些实施例中,存储器装置100是非易失性存储器装置。例如,存储器装置100可以是双倍数据速率同步动态随机存取存储器(ddr sdram)、第四代低功率双倍数据速率(lpddr4)sdram、图形双倍数据速率(gddr)sdram、低功率ddr(lpddr)、rambus动态随机存取存储器(rdram)、nand闪速存储器、垂直nand、nor闪速存储器、电阻式随机存取存储器(rram)、相变随机存取存储器(pram)、磁阻随机存取存储器(mram)、铁电随机存取存储器(fram)或自旋转移力矩随机存取存储器(stt-ram)等。
29.在一些实施例中,存储器装置100被配置为从存储器控制器200接收命令cmd和地址addr,并且被配置为访问存储器单元阵列中由该地址选择的区域。存储器装置100可以对由地址addr选择的区域执行由命令cmd指定的操作。例如,存储器装置100可以执行写入操作(编程操作)、读取操作和擦除操作。在编程操作时,存储器装置100将数据编程到由地址addr选择的区域中。在读取操作时,存储器装置100从由地址addr选择的区域读取数据。在擦除操作时,存储器装置100擦除由地址addr选择的区域中存储的数据。
30.在一些实施例中,存储器控制器200可以控制存储装置50的全部操作。在其他实施例中,当向存储装置50施加电力时,存储器控制器200可以运行固件fw。
31.在一些实施例中,存储器控制器200从主机400接收数据和逻辑块地址(lba),并且将逻辑块地址转换为物理块地址(pba),该物理块地址指示存储器装置100中包括的、待存储数据的存储器单元的地址。在本专利文件中,逻辑块地址(lba)和“逻辑地址”可以如同具有相同的含义而互换使用,并且物理块地址(pba)和“物理地址”可以如同具有相同的含义而互换使用。
32.在一些实施例中,存储器控制器200响应于来自主机400的请求而控制存储器装置100执行编程操作、读取操作、擦除操作等。在编程操作时,存储器控制器200向存储器装置100提供写入命令、物理块地址和数据。在读取操作时,存储器控制器200向存储器装置100提供读取命令和物理块地址。在擦除操作时,存储器控制器200向存储器装置100提供擦除命令和物理块地址。
33.在一些实施例中,存储器控制器200控制两个或更多个存储器装置100。在这种情况下,存储器控制器200根据交错方法来控制该两个或更多个存储器装置100以提高操作性能。交错方法可以是两个或更多个存储器装置100的操作被控制以重叠的方法。
34.继续图1的描述,运算组件300可以执行算术运算,诸如加法、乘法等。例如,运算组件300可以包括用于执行算术运算的计算单元。
35.如图1所示,存储器控制器200和运算组件300是彼此分开的单独的装置,但不限于此。例如,运算组件300可以被实施为存储器控制器200的组件。
36.在一些实施例中,主机400使用诸如以下的各种通信方法中的至少一种与存储装置50通信:通用串行总线(usb)、串行at附件(sata)、串列scsi(sas)、高速芯片间(hsic)、小型计算机系统接口(scsi)、外围组件互连(pci)、高速pci(pcie)、高速非易失性存储器(nvme)、通用闪存(ufs)、安全数字(sd)、多媒体卡(mmc)、嵌入式mmc(emmc)、双列直插式存储器模块(dimm)、寄存式dimm(rdimm)、低负载dimm(lrdimm)等。
37.在一些实施例中,计算系统10被配置为提供推荐系统。例如,推荐系统可以基于关于用户的信息来推荐用户可能感兴趣的项目(例如,电影、音乐、新闻、书籍、产品等)。在一些实施例中,计算系统10使用基于深度学习的推荐模型来提供推荐系统。在本文中,推荐模型可以是使用多个训练数据集进行训练的学习模型。例如,基于深度学习的推荐模型包括多个神经网络,并且使用多个训练数据集来训练多个神经网络。神经网络中的每一个包括多个层。例如,神经网络可以包括输入层、一个或多个隐藏层以及输出层。包括多个隐藏层的神经网络称为“深度神经网络”,训练深度神经网络称为“深度学习”。在下文中,训练神经网络可以被理解为训练神经网络的参数,并且经训练的神经网络可以被理解为应用了经训练的参数的神经网络。
38.在一些实施例中,计算系统10的推荐系统受主机400的控制。例如,主机400包括主机处理器和主机存储器。主机处理器可以是诸如中央处理单元(cpu)、加速处理单元(apu)、数字信号处理器(dsp)等的通用处理器,诸如图形处理单元(gpu)或视觉处理单元(vpu)的图形处理器,诸如神经处理单元(npu)等的人工智能(ai)处理器。主机存储器可以存储用于提供推荐系统的操作系统或应用程序。
39.在一些实施例中,基于深度学习的推荐系统可能因为执行存储器密集型的嵌入式操作而导致带宽问题,并且可能因为需要大量的服务数据而导致主机存储器容量不足的问题。因此,计算系统10可以使用存储装置50来执行嵌入,以实现高效嵌入。
40.在一些实施例中,主机400控制存储装置50获取目标数据的嵌入矢量。例如,主机400从存储装置50请求嵌入矢量,从而从存储装置50获得相应的嵌入矢量。使用所提供的嵌入矢量,主机400基于预设算法来执行用于输出推荐结果的各种操作。
41.在一些实施例中,存储器装置100存储包括多个嵌入矢量的嵌入表。
42.在一些实施例中,存储器控制器200从主机400接收非零数据和非零数据的索引。此处,非零数据是与目标数据相对应的独热矢量中的矢量元素的值中具有不为零的值的数据。索引指示独热矢量中的矢量元素的位置。例如,索引i指示第i矢量元素。非零数据的索引可以是具有非零数据的矢量元素的索引。然后,存储器控制器200基于非零数据和索引来生成矢量数据。例如,所生成的矢量数据是目标数据的独热矢量。
43.在一些实施例中,运算组件300基于嵌入表和存储器控制器200生成的矢量数据来计算目标数据的嵌入矢量。例如,运算组件300通过嵌入表与矢量数据之间的乘法运算来计算嵌入矢量。然后,存储器控制器200向主机400提供计算出的嵌入矢量。
44.图2是示出根据当前所公开的技术的实施例的示例性嵌入式操作的示图。
45.如图2所示,嵌入式操作可以作为独热矢量与嵌入表之间的操作来执行。此处,独热矢量是多个矢量元素中的一个具有非零值并且其余矢量元素为零值的矢量。将参照图3进一步阐明独热矢量的描述。
46.在一些实施例中,嵌入表包括使用多个训练数据集通过嵌入学习而获得的矢量信
息。在一些实施例中,嵌入表包括以n维矢量的形式表示多条数据的多个嵌入矢量。例如,嵌入表的行可以是多条数据的嵌入矢量。因此,可以基于数据的条数来确定嵌入表的行数。此外,可以基于意图使用嵌入矢量来表示的维度来设置嵌入表的列数。在本示例中,嵌入矢量的维度可以低于独热矢量的维度。
47.在一些实施例中,多条数据是可以被分类为类别的类别数据。例如,多条数据可以是由计算系统10推荐的项,并且可以通过嵌入式操作以多条数据之间具有相似性的矢量的形式数字化。以矢量的形式数字化的矢量信息可以称为嵌入矢量。
48.例如,通过特定数据的独热矢量与嵌入矢量之间的运算来计算该特定数据的嵌入矢量。在本文中,特定数据的独热矢量被配置使得仅与分配给该特定数据的索引相对应的矢量元素具有非零值并且其余矢量元素为零值。因此,通过特定数据的独热矢量与嵌入矢量之间的运算,可以从嵌入表中包括的多个嵌入矢量中确定特定数据的嵌入矢量。
49.尽管如在上述示例中那样,嵌入式操作被描述为首先放置的独热矢量与其次放置的嵌入表之间的操作,但不限于此。例如,可以通过首先放置的嵌入表与其次放置的独热矢量之间的操作来执行嵌入式操作。在后一种情况下,独热矢量可以采用列矢量而不是行矢量的形式,并且嵌入表的列可以是多条数据的嵌入矢量。在这种情况下,嵌入表的列的数量可以基于数据的条数,并且嵌入表的行的数量可以基于意图使用嵌入矢量表示的维度。
50.图3是示出根据当前所公开的技术的实施例的示例性独热矢量的示图。
51.如图3所示,假设索引1被分配给数据a,索引2被分配给数据b,并且索引4被分配给数据c。还假设独热矢量中包括的矢量元素的索引依次增加。
52.在一些实施例中,独热矢量的维度可以基于待使用独热矢量表示的数据的条数。例如,当存在z条数据时,多条数据中的每一条的独热矢量可以是z维矢量。
53.在一些实施例中,独热矢量中非零值的位置可以基于分配给数据的索引。例如,对于数据a的独热矢量,与索引1相对应的矢量元素的值可以是非零值。类似地,对于数据b的独热矢量,与索引2相对应的矢量元素的值可以是非零值,并且对于数据c的独热矢量,与索引4相对应的矢量元素的值可以是非零值。换言之,独热矢量中包括的非零值的索引可以是分配给使用相应独热矢量表示的数据的索引。
54.在上述推荐系统的示例中,主机400向存储装置50提供独热矢量以执行嵌入式操作。然而,随着将使用嵌入矢量表示的数据的条数增加,独热矢量的大小也增加,从而导致带宽瓶颈问题。
55.当前所公开的技术的实施例描述了基于从主机400提供的目标数据的索引识别信息来确定嵌入矢量,从而解决带宽瓶颈问题。
56.图4是示出根据当前所公开的技术的实施例的示例性存储装置的示图。
57.如图4所示,存储装置50包括存储器装置100、存储器控制器200和运算组件300。在示例中,存储器装置100、存储器控制器200和运算组件300可以是图1所示的存储器装置100、存储器控制器200和运算组件300。
58.在一些实施例中,存储器装置100存储矩阵数据,该矩阵数据可以是矩阵形式的数据。例如,矩阵数据可以是包括以n维矢量的形式表示多条数据的多个嵌入矢量的嵌入表。
59.在一些实施例中,存储器装置100将矩阵数据存储在多个存储器区域中。例如,存储器区域可以是存储器单元、页面、存储块、平面、管芯等。存储器控制器200可以将数据(例
如,矩阵数据)传输到主机400和从主机400接收数据(例如,矩阵数据)。
60.在一些实施例中,存储器控制器200从主机400接收非零数据和非零数据的索引。此处,非零数据指示与目标数据相对应的独热矢量中包括的其它零值矢量元素之中不为零的值。非零数据的索引指示独热矢量中具有非零值的矢量元素的索引。例如,当存储器控制器200请求目标数据的嵌入矢量时,主机400向存储器控制器200提供非零数据和非零数据的索引。
61.在一些实施例中,存储器控制器200基于非零数据和非零数据的索引来生成矢量数据。此处,矢量数据可以是独热矢量,其中与索引相对应的矢量元素具有非零值并且其余矢量元素为零值。例如,存储器控制器200可以生成矢量数据,使得在矢量数据的多个矢量元素之中,与索引相对应的矢量元素的值包括非零数据并且除与索引相对应的矢量元素之外的其余矢量元素的值包括零值数据。
62.在一些实施例中,运算组件300执行矩阵数据与矢量数据之间的乘法运算。例如,存储器控制器200可以从存储器装置100读取矩阵数据并且向运算组件300提供矩阵数据和矢量数据。
63.在一些实施例中,运算组件300使用矩阵数据和矢量数据来执行嵌入式操作。具体地,运算组件300使用从存储器装置100读取的嵌入表和由存储器控制器200生成的独热矢量来执行嵌入式操作。
64.在一些实施例中,运算组件300通过矩阵数据与矢量数据之间的乘法运算来计算多个嵌入矢量之中的任意一个嵌入矢量。计算出的嵌入矢量是与目标数据相对应的嵌入矢量。
65.在一些实施例中,存储器控制器200响应于来自主机400的请求而向主机400提供目标数据的嵌入矢量。
66.这有利地使当前所公开的技术的实施例能够基于从主机400提供的非零数据和索引向主机400提供嵌入矢量,从而减少带宽瓶颈问题。
67.图5是示出根据当前所公开的技术的实施例的传输非零数据和索引的示例的示图。
68.如图中所示,假设与目标数据相对应的独热矢量被配置使得第i矢量元素包括非零数据。
69.在一些实施例中,非零数据指示与目标数据相对应的独热矢量中包括的矢量元素的值之中不为零的值。例如,非零数据可以是“1”。非零数据的索引(索引i)指示独热矢量中具有非零数据的矢量元素的索引。
70.在一些实施例中,主机400响应于对目标数据的嵌入矢量的请求,向存储器控制器200提供非零数据和作为该非零数据的索引的索引i。
71.尽管在以上示例中非零数据被描述为“1”,但不限于此,并且在其他实施例中,非零数据可以包括任何非零值。
72.图6是示出根据当前所公开的技术的实施例的生成矢量数据的示例的示图。
73.如图中所示,存储器控制器200基于非零数据和非零数据的索引(索引i)来生成矢量数据。此处,矢量数据可以是独热矢量。
74.例如,矢量数据可以包括多个矢量元素。在一些实施例中,在矢量数据的多个矢量
元素之中,与索引相对应的矢量元素的值可以包括非零数据。例如,存储器控制器200可以将与索引i相对应的第i矢量元素的值设置为是非零数据的“1”。矢量数据的其余矢量元素的值包括零值数据。例如,存储器控制器200可以将除了第i矢量元素之外的其余矢量元素的值设置为是零值数据的“0”。因此,使用非零数据和索引i,存储器控制器200可以生成其中第i矢量元素的值是“1”并且其余矢量元素的值是“0”的独热矢量作为矢量数据。
75.因此,当前所公开的技术的实施例使用非零数据及其索引生成独热矢量,并且传送该独热矢量以解决带宽瓶颈问题。
76.图7是示出根据当前所公开的技术的实施例的操作存储装置的示例性方法的流程图。
77.图7所示的方法可以由例如图1或图4所示的存储装置50来执行。
78.如图7所示,在步骤s701,存储装置50可以存储矩阵数据。在示例中,矩阵数据可以是包括多个嵌入矢量的嵌入表。
79.在步骤s703,存储装置50从主机400接收非零数据和该非零数据的索引。
80.在步骤s705,存储装置50基于非零数据及其索引来生成矢量数据。
81.在示例中,矢量数据可以是独热矢量。
82.在另一示例中,存储装置50生成矢量数据,使得在矢量数据的多个矢量元素中,与索引相对应的矢量元素的值包括非零数据并且除与索引相对应的矢量元素之外的其余矢量元素的值包括零值数据。
83.在步骤s707中,存储装置50执行矩阵数据与矢量数据之间的乘法运算。
84.在示例中,存储装置50使用矩阵数据和矢量数据执行嵌入式操作。
85.在另一示例中,存储装置50通过矩阵数据与矢量数据之间的乘法运算来计算嵌入表中包括的多个嵌入矢量中的任意一个。
86.在步骤s709,存储装置50向主机400提供任意一个嵌入矢量。
87.图8是示出图1所示的存储器控制器的示例性组件的示图。
88.参照图1和图8,存储器控制器200包括处理器240、ram 250、错误校正电路260、rom 270、主机接口280和存储器接口290。
89.处理器240控制存储器控制器200的全部操作。ram 250可以用作存储器控制器200的缓冲存储器、高速缓存存储器和运算存储器等。
90.错误校正电路260执行错误校正。错误校正电路260基于待通过存储器接口290写入到存储器装置的数据来执行ecc编码。可以通过存储器接口290将经ecc编码的数据传递到存储器装置。然后,错误校正电路260对通过存储器接口290从存储器装置接收的数据执行ecc解码。例如,错误校正电路260可以作为存储器接口290的组件包括在存储器接口290中。
91.rom 270以固件的形式存储存储器控制器200的操作所需的各种信息。
92.在示例中,存储器控制器200通过主机接口280与外部装置(例如,主机400、应用处理器等)通信。
93.在另一示例中,存储器控制器200通过存储器接口290与存储器装置100通信。存储器控制器200可以通过存储器接口290向存储器装置100传输命令、地址、控制信号等并且从存储器装置100接收数据。
94.当前所公开的技术描述了一种能够减少嵌入式操作时的带宽瓶颈的存储装置以及操作该存储装置的方法。
95.尽管本专利文件包含许多细节,但是这些细节不应解释为对任何发明的或可以要求保护的范围的限制,而应解释为对于特定发明的特定实施例而言的特定特征的描述。在本专利文件中在不同实施例的上下文中描述的某些特征也可以以组合的方式在单个实施例中实施。相反,在单个实施例的上下文中所描述的各种特征也可以在多个实施例中分别实施或以任何合适的子组合实施。此外,尽管上述特征可以被描述为以某些组合的方式起作用,并且甚至最初被如此要求保护,但是可以在一些情况下从要求保护的组合去除该组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变型。
96.类似地,尽管在附图中按特定顺序描述操作,但是这不应被理解为要求按所示的特定顺序或按先后顺序执行这种操作,或者要求执行所有示出的操作以实现期望的结果。此外,在本专利文件中描述的实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这种分离。
97.仅描述一些实施方案和示例,并且可以基于在本专利文件中描述和示出的内容得到其他实施方案、增强和变型。
再多了解一些

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

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

相关文献