存储器件、存储方法、读取装置和读取方法与流程



1.本公开涉及计算机技术领域,特别涉及一种存储器件、存储方法、读取装置和读取方法。


背景技术:



2.随着计算机技术的快速发展,新型非易失性存储器(non-volatile memory,nvm)具有高速,高密度和非易失性的优势,为神经网络计算提供了性能更高的硬件基础;非易失性存储器中可以通过多值存储技术,实现对存储器中的单个存储单元进行多值数据的存储,从而提高非易失性存储器的存储密度。
3.对单个存储单元进行多值数据的存储时,写入数据往往与预期存在一定的偏差,从而导致写入数据表达不精确的问题,从而影响存储器的整体精度。


技术实现要素:



4.本公开提供一种存储器件、存储方法、读取装置和读取方法,可以提高存储器件的整体精度。
5.第一方面,本公开提供一种存储器件,该存储器件包括:至少两个二值存储单元,用于存储浮点数据的符号值和指数值;至少一个多值存储单元,用于存储所述浮点数据的有效数字值。
6.第二方面,本公开提供一种数据存储方法,该数据存储方法包括:将浮点数据的符号值和指数值存储到预定存储器件中的至少两个二值存储单元;将所述浮点数据的有效数字值存储到所述预定存储器件中的至少一个多值存储单元。
7.第三方面,本公开提供一种数据存储方法,该数据存储方法包括:将浮点数据的有效数字值存储到预定存储器件中的多值存储单元。
8.第四方面,本公开提供一种数据存储方法,该数据存储方法包括:将浮点数据的符号值和指数值存储到预本公开提供一种定存储器件中的至少两个二值存储单元。
9.第五方面,本公开提供一种读取装置,用于读取存储单元阵列;所述存储单元阵列包括:至少一条字线、多条位线、至少一组存储单元和选通器;所述读取装置包括数值判断模块和寄存器;其中,所述至少一条字线沿第一方向依次排布;所述多条位线沿第二方向与所述至少一条字线交叉排布,所述第二方向垂直于所述第一方向;所述一组存储单元包括至少两个二值存储单元和至少一个多值存储单元,且同组存储单元中的每个存储单元分别位于同一字线与不同位线的交叉位置处,且所述每个存储单元的两端分别与相应字线和相应位线连接;所述选通器与每条字线相连接,且所述选通器用于:根据接收的读取指令中的读取地址确定被选字线和被选位线,选择连接到所述被选字线和所述被选位线交叉点处的二值存储单元和多值存储单元,作为被选二值存储单元和被选多值存储单元;所述数值判断模块,用于判定所述被选二值存储单元中存储的浮点数据的符号值和指数值,并判定所述被选多值存储单元中存储的浮点数据的有效数字值,将所述符号值、所述指数值和所述
有效数字值发送到所述寄存器;所述寄存器,用于对接收的所述符号值、所述指数值和所述有效数字值进行拼接,得到读取的浮点数据。
10.第六方面,本公开提供了一种数据读取方法,该数据读取方法包括:通过选通器根据接收的读取指令中的读取地址,确定存储单元阵列中的被选字线和被选位线,选择连接到所述被选字线和所述被选位线交叉点处的二值存储单元和多值存储单元,作为被选二值存储单元和被选多值存储单元;通过数值判断模块判定所述被选二值存储单元中存储的浮点数据的符号值和指数值,并判定所述被选多值存储单元中存储的浮点数据的有效数字值,将所述符号值、所述指数值和所述有效数字值发送到指定的寄存器;通过所述寄存器对接收的所述符号值、所述指数值和所述有效数字值进行拼接,得到读取的浮点数据。
11.在本公开所提供的存储器件中,至少两个二值存储单元存储浮点数据的符号值和指数值,至少一个多值存储单元存储浮点数据的有效数字值;由于浮点数据的有效数字值的微小浮动变化不会影响浮点数的整体精度,而浮点数据的符号值和指数值的微小错误会导致浮点数的精度发生明显变化,因此该存储器件的存储结构,通过多值存储单元存储浮点数据的有效数字值,实现存储空间的节省,通过二值存储单元存储浮点数据的符号值和指数值,有利于减少多值存储的不准确特性对浮点数整体精度造成的影响,提高存储器件的整体精度。
12.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
13.附图用来提供对本公开的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细示例实施例进行描述,以上和其他特征和优点对本领域技术人员将变得更加显而易见,在附图中:图1为本公开示例性实施例的浮点数的数据结构;图2为本公开实施例提供的存储器件的结构示意图;图3为本公开实施例提供的一种数据存储方法的流程图;图4示出本公开实施例的一种数据存储方法的流程示意图;图5示出本公开实施例的一种数据存储方法的流程示意图;图6为本公开实施例的存储器件的结构示意图;图7示出本公开实施例的读取装置的结构示意图;图8示出本公开实施例的读取装置的更详细的结构示意图;图9为本公开实施例的数据读取方法的流程示意图;图10示出本公开示例性实施例的数据读取方法的流程图;图11为本公开实施例提供的一种数据存储装置的框图;图12为本公开实施例提供的一种电子设备的框图。
具体实施方式
14.为使本领域的技术人员更好地理解本公开的技术方案,以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为
仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
15.在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。
16.如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。
17.本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由
……
制成”时,指定存在特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其组。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
18.除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
19.在本公开实施例中,神经形态计算旨在通过模仿构成人脑的神经元和突触的机制来实现人工智能(artificial intelligence,ai)。突触器件可以通过类神经传输信号调整自身的连接权重实现自适应性,从而快速完成类脑计算,适于处理非形式化问题和/或非结构化信息,因而在神经网络硬件化实现方面具有突出潜力。
20.新型突触器件例如可以包括如下非易失性存储器件中的一种或多种:忆阻器(memristor)、相变存储器(phase change memory,pcm)、电阻式随机存取存储器(resistive random access memory,rram)。
21.其中,忆阻器,全称记忆电阻器,是一种基于记忆外加电压或电流历史而动态改变其内部电阻状态的电阻开关,其拥有超小的尺寸,极快的擦写速度、超高的擦写寿命、多阻态开关特性和良好的互补金属氧化物半导体(complementary metal-oxide-semiconductor transistor,cmos)兼容性,使得忆阻器具有多值特性、可靠性等优势,具备作为突触器件的应用潜能,可用于构建大规模神经网络。
22.pcm利用非易失性固态存储技术,在具有不同电阻的状态之间利用相变材料的可逆的热辅助切换。可以将基本存储单元编程为表现不同电阻特性的许多不同状态或级别,可编程单元状态可用于表示不同的数据值,从而允许存储信息。
23.rram利用非易失性存储技术,是一种可以根据施加在金属氧化物(metal oxide)上的电压的不同,使材料的电阻在高阻态和低阻态间发生相应变化,从而开启或阻断电流流动通道,并利用这种性质储存各种信息的存储器件。
24.由于非易失性存储器具备较高的集成密度,相比闪存(flash)设备有更高的存取速度,耗电量更低,更合适于进行靠近处理器的数据存取;并且,上述非易失性的存储器的存储单元利用阻值可变特性能够表征多值,而非传统存储单元的0和1二值。基于上述非易失性存储器的多值特性、可靠性等优势,上述新型突触器件被认为是提升神经网络计算能效的器件之一,可用于构建大规模神经网络。
25.应理解,上述新型突触器件还可以是其它非易失性存储器;在实际应用时,可以根
据实际需要选择使用。
26.本公开实施例中,多值存储单元可以在存储器的一个存储单元上通过不同的阻值表达不同的幅值(代表不同的存储数据)。目前,由于突触器件的幅值表达并不是完全准确,写入的幅值往往与预期存在一定的偏差,并随着温度、时间会发生阻变漂移,尤其当需要在一个存储单元上表达更多阶的阻值时,表达不精确的现象就越明显。
27.在一些实施例中,存储器件中的存储单元可对应于多个阻值状态,每个阻值状态对应一非重叠的阻值范围。也就是说,存储单元中所存储数据的取值,是由存储单元的阻值所在的阻值范围对应的阻值状态决定的。在本公开实施例中,多个可以表示大于或等于两个。
28.在本公开实施例中,二值存储单元可以是用于存储0和1两个数值的存储单元。
29.对于二值存储单元,该存储单元有两种存储状态,分别由逻辑“1”和“0”标识,每个二值存储单元存储容量为1bit;以二值存储单元为阻变式的存储单元为例,该存储单元可以对应于两个阻值状态,即第一阻值状态和第二阻值状态。第一阻值状态对应的阻值范围例如可以是大于或等于预定阻值r11且小于或等于预定阻值r12,第二阻值状态对应的阻值范围例如可以是大于预定阻值r12且小于或等于预定阻值r13;其中,预定阻值r13大于预定阻值r12,预定阻值r12大于预定阻值r11。
30.若存储单元的阻值在第一阻值状态对应的阻值范围,则存储单元中所存储数据的取值为第一阻值状态;若存储单元的阻值在第二阻值状态对应的阻值范围,则存储单元中所存储数据的取值为第二阻值状态。具体地,若第一阻值状态和第二阻值状态为0和1,则可以确定出存储单元中所存储数据的具体取值。
31.在该示例中,每个阻值状态对应的阻值范围的区间大小可以相同或不同(即阻值范围等间距排布或不等间距排布)。也就是说,在上述示例中,预定阻值r12可以是预定阻值r11与预定阻值r13的中间值,也可以是预定阻值r11与预定阻值r13之间的其他值。
32.在本公开实施例中,多值存储单元可以是利用阻值可变特征来表征多个值的存储单元。
33.在一些实施例中,多值存储单元可以在存储器的一个存储单元上记录一个多值数据,可以转换成多于一比特的二进制数据,从而增大存储器的存储密度,提高存储容量。
34.对于多值存储单元,该存储单元可以对应于多个(大于两个)阻值状态,每个阻值状态对应一非重叠的阻值范围;其中,第k个阻值状态所对应阻值范围的最大值,大于第k-1个阻值状态所对应阻值状态的最大值,k为大于2的整数。每个阻值状态对应的阻值范围的区间大小可以相同或不同(即阻值范围等间距排布或不等间距排布)。针对多值存储单元的根据存储单元的阻值确定该存储单元中所存储数据的具体取值的方法,与二值存储单元的根据存储单元的阻值确定该存储单元中所存储数据的具体取值方法相同,在此不再赘述。
35.在一些实施例中,可以将存储单元中阻值范围的数量称为阶数,将该存储单元所存储的数据称为要表达的相应阶数精度。当出现上述实施例描述的突触器件中存储单元上的写入偏差问题时,由于二值存储单元可以表达2阶精度,即该存储单元的取值只有0和1,出错可能性极小;而当多值存储单元例如要表达16阶精度时,预期表达数字10,可能读取到的数字是8,9,10,11之一;可见,存储单元上表达更多阶的阻值时,表达不精确的现象就越明显。
36.相关技术中,电子突触器件能够实现模拟生物突触在脉冲刺激下改变权重的功能,当前基于此类突触器件神经网络,通常采用限定性整型权重精度,例如4比特(bit)整型来表达16阶精度,并采用互补单元对实现正负权重表达,即用一对单元分别表示正/负权重,并将差分值读出作为权重值。这些方法都无法实现更广范围突触的表达,例如浮点数格式的数据精度。
37.在本公开实施例中,计算机中可以通过科学计数法来表示一个数字。任意数可以表示为:的浮点数格式。其中,n表示任意数字,s为符号位,取值0或1,决定一个数字的符号,0表示正,1表示负;r为基数,表示十进制数r就是10,表示二进制数r就是2;e为指数,用整数表示;m为有效数字,用小数表示,也可以称为尾数或小数。
38.作为具体示例,8.25用十进制表示就是82.5;其中,符号位s取值为0,基数r为10,指数位e取值为-1,有效数字位m取值为82.5;8.25用二进制表示就是1000.01
×
,进一步表示为二进制的浮点数格式,即:1.00001
×
,符号位s取值为0,基数r为2,指数e取值为0,有效数字位m取值为1.00001。因此,在计算机中用浮点数表示一个二进制数字,由于基数已可以确定是2,因此只需要确认出该浮点数中的符号位、指数位和有效数字位的取值即可。
39.在一些实施例中,符号位s、指数位e和有效数字位m可以称为符号域、指数域和有效数字域;符号位s的取值、指数位e的取值和有效数字位m的取值可以称为符号值、指数值和有效数字值。
40.图1示出示例性实施例的浮点数的数据结构。在图1中,用16比特(bit)标识一个浮点数,可以将浮点数中的符号位、指数位和有效数字位按照预定规则,填充到该数据结构中的比特位上即可。
41.如图1所示,在一些可选的实施例中,可以将数据结构中用于填充符号值的区域称为符号域,将用于填充指数值的区域称为符号域,将用于填充有效数字值的区域称为有效数字域。在预定规则为符号位s占1比特,指数e占8比特,有效数字占7比特的情况下,将浮点数中的符号位、指数位和有效数字位按照该预定规则填充到该数据结构中的相应比特位上,即可得到该16比特的浮点数的数据结构。
42.在本公开实施例中,浮点数的数据格式包括但不限于浮点型(float)格式例如float16、float32,以及截断浮点数(truncated 16-bit floating point,bf16)浮点格式。其中,截断浮点数也被称为是脑浮点(brain float)。
43.示例性地,图1中16比特(bit)浮点数即bf16浮点格式,bf16浮点格式的数字可表示为:1个符号位,8个指数位和7个有效数字位的16位二进制数字。
44.应理解,浮点数的数据格式还可以是单精度浮点数、双精度浮点数、半精度浮点数等浮点格式。单精度浮点数格式(记为fp32)可占用4个字节,共32位,其中1位为符号位,8位为指数位,23位为尾数位;双精度浮点数格式(记为fp64)可占用8个字节,其中1位为符号位,指数位为11位,有效位数为52位,从而极大地扩展了它可以表示的数字范围和大小。半精度浮点数格式(fp32)占两个字节,共16为,其中1位为符号位,5位指数位,10位有效数字位;与fp32相比,fp16的访存消耗仅为1/2,也因此fp16是更适合在移动终端侧进行ai计算的数据格式。
45.在一些实施例中,bf16浮点格式是32位单精度浮点格式的截断的16位版本,其保
留8个指数位,但将有效数字的精度降低到8位以节省存储器、带宽和处理资源;bf16浮点格式主要可以应用于机器学习和近传感器计算应用。在一些实施例中,单精度浮点值和双精度浮点值可以被转换成bf16浮点格式,以用于加速机器学习和近传感器的计算操作。
46.通过浮点数的数据格式可以看出,在数据的浮点格式中,指数位越多,尾数位则越少,其表示的范围越大,但精度就会变差;反之,指数位越少,尾数位则越多,表示的范围越小,但精度就会变好。因此,上述浮点数格式例如float16、float32、bfloat16、fp32、fp64或fp16,浮点数格式中的数字用于表示该浮点数格式所表示数字的数位的总数,其中大多数数位被分配给尾数,从而提供更高的精度。
47.本公开实施例提供一种存储器件和数据存储方法,用于存储浮点数据,提高存储器件的整体精度。
48.根据本公开实施例的数据存储方法可以由终端设备或服务器等电子设备执行,终端设备可以为用户设备(user equipment,ue)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(personal digital assistant,pda)、手持设备、计算设备、车载设备、可穿戴设备等,方法可以通过处理器调用存储器中存储的计算机可读程序指令的方式来实现。或者,可通过服务器执行方法。
49.图2为本公开实施例提供的存储器件的结构示意图。
50.如图2所示,该存储器件包括:至少两个二值存储单元210,用于存储浮点数据的符号值和指数值;至少一个多值存储单元220,用于存储浮点数据的有效数字值。
51.通过本公开实施例的存储器件,其中的至少两个二值存储单元用于存储浮点数据的符号值和指数值,其中的至少一个多值存储单元用于存储浮点数据的有效数字值;由于浮点数据的有效数字值的微小浮动变化不会影响浮点数的整体精度,而浮点数据的符号值和指数值的微小错误会导致浮点数的精度发生明显变化,因此该存储器件的存储结构,通过多值存储单元存储浮点数据的有效数字值,以实现存储空间的节省,通过二值存储单元存储浮点数据的符号值和指数值,有利于减少多值存储的不准确特性对浮点数整体精度造成的影响,提高存储器件的整体精度。
52.在一些实施例中,每个多值存储单元包括阻值可变的电阻,用于存储有效数字值。
53.在该实施例中,多值存储单元的信息存储形式可以为阻变式存储;也就是说,通过调整多值存储单元的阻值,以通过调整后的阻值表示该多值存储单元存储的有效数字值;二值存储单元的信息存储形式可以是阻变式存储或非阻变式存储。
54.示例性地,若二值存储单元的信息存储形式是阻变式存储,则表示在一个二值存储单元上可以通过不同的阻值表达0和1二值,以通过调整后的阻值表示该二值存储单元存储的符号值或指数值。
55.示例性地,二值存储单元的信息存储形式可以是非阻变式存储,例如可以是相变式存储或磁变式存储。其中,相变式存储可以是利用材料晶态和非晶态之间转化后导电性的差异来存储信息的存储技术;磁变式存储可以是利用磁化状态来存储信息的存储技术。
56.应理解,在一些可选实施例中,多值存储单元的信息存储形式也可以为非阻变式存储。也就是说,多值存储单元的信息存储形式和二值存储单元的信息存储形式可以有更多灵活的组合方式,多值存储单元和二值存储单元中的至少一者,可以是非阻变式存储,也可以是阻变式存储,具体可以根据实际需要进行设置。
57.在一些实施例中,至少一个多值存储单元能够存储的有效数字值的数值范围小于或等于数值阈值,数值阈值与至少一个多值存储单元的电阻值的读取阶数相对应,且电阻值的读取阶数根据浮点数据的精度要求确定的。
58.在该实施例中,使用多值存储单元存储浮点数据的有效数字值时,可根据浮点数据的精度要求确定多值存储单元的电阻值的读取阶数,进而确定多值存储单元中存储的有效数字值的数值范围。因此,可以根据要存储的浮点数据的精度要求合理设置多值存储单元能够存储的有效数字值的数值范围。
59.在本公开实施例中,多值存储单元比二值存储单元具有更多的阻值状态,存储单元的可变阻值的阻值状态越多,则每个阻值状态对应的阻值所属阻值区间的宽度越小,当存储单元受到温度、时间的影响而发生阻变漂移(电阻值发生变化)时,存储单元的阻值超出当前阻值状态对应的阻值所属阻值区间,而导致存储单元的阻值状态发生改变的概率较大,而存储单元的阻值状态一旦发生改变,意味着存储单元中存储的数值发生改变,因此,存储单元中存储的数值随阻值状态一起发生改变的概率较大。基于上述内容可以得知,多值存储单元与二值存储单元相比,阻值状态的抗干扰能力较弱,所存储数据的稳定性较差。
60.并且,通过二值存储单元存储一个数值时,其可变阻值的阻值状态只有两个,每个阻值状态对应的阻值所属阻值区间的宽度相对较大,通过二值存储单元对一个数值进行存储时,由于相应的阻值区间的宽度相对较大,二值存储单元的经调整后的阻值出错可能性较小,因此,在二值存储单元上通过可变阻值进行数值存储的精度较高,通过二值存储单元进行的数据存储通常可以被认为是一种精确存储。
61.相应地,通过多值存储单元对一个数值进行存储时,由于多值存储单元的可变阻值的阻值状态较多,每个阻值状态对应的阻值所属阻值区间的宽度较小,通过多值存储单元对一个数值进行存储时,由于相应的阻值区间的宽度相对较小,多值存储单元的经调整后的阻值出错可能性较大,因此,通过多值存储单元进行的数据存储可以认为是一种近似存储,在多值存储单元上通过可变阻值进行数值存储时,数值表达不精确的现象会较为明显。
62.通过上述分析可知,与多值存储单元的存储稳定性和数值表达精确性相比,采用二值存储单元可实现高稳定和较为精确的数据存储。
63.在一些实施例中,至少两个二值存储单元中包括:1个符号值存储单元和k个指数值存储单元,k为大于或等于1的整数;符号值存储单元用于存储浮点数据的符号值;指数值存储单元用于存储浮点数据的指数值。
64.在该实施例中,由于浮点数据的符号值为0或1,因此,在存储器件的至少两个二值存储单元中,通过1个二值存储单元即可实现符号值的存储,再通过该存储器件中的其他二值存储单元实现浮点数据的指数值的存储,实现基于二值存储单元对浮点格式数据中的符号值和指数值进行的高稳定精确存储。
65.在一些实施例中,存储器件为突触器件,突触器件中的多值存储单元的数量为1。在该实施例中,可以只使用预定存储器件中的一个多值存储单元,对浮点数据中的有效数据进行存储,实现近似值存储并节省存储空间。
66.根据本公开实施例的存储器件,通过至少两个二值存储单元存储浮点数据的符号值和指数值,通过至少一个多值存储单元存储浮点数据的有效数字值;由于浮点数据的有
效数字值的微小浮动变化不会影响浮点数的整体精度,而浮点数据的符号值和指数值的微小错误会导致浮点数的精度发生明显变化,因此该存储器件的存储结构,通过多值存储单元存储浮点数据的有效数字值,实现存储空间的节省,通过二值存储单元存储浮点数据的符号值和指数值,有利于减少多值存储的不准确特性对浮点数整体精度造成的影响,提高存储器件的整体精度。
67.图3为本公开实施例提供的一种数据存储方法的流程图。参照图3,该方法包括如下步骤。
68.s310,将浮点数据的符号值和指数值存储到预定存储器件中的至少两个二值存储单元。
69.在一些实施例中,可以预先对要存储的数据进行浮点格式编码,得到数据的浮点格式中的符号值、指数值和有效数字值;采用二值存储单元,对浮点格式数据中,位于符号位的符号值和位于指数位的指数值进行存储,实现高稳定性和较为精确的二值存储。
70.s320,将浮点数据的有效数字值存储到预定存储器件中的至少一个多值存储单元。
71.在该步骤中,从浮点格式数据中获取有效数字值,在浮点格式数据中,有效数字值可以为位于浮点格式的有效数字位的值;将有效数字值存储到预定存储器件中的多值存储单元。
72.本公开实施例的存储器件中既可以包含二值存储单元,也可以包含多值存储单元,多值存储单元可以为预定存储器件所包含多个存储单元中的一部分存储单元。
73.在本公开实施例中,由于浮点数的有效数字值的微小浮动变化不会影响浮点数的整体精度,该有效数字值对存储精度的要求较低,考虑到单个多值存储单元比单个二值存储单元能够存储的数值范围更大,所以使用数量较少的多值存储单元进行浮点数据的有效数字值的存储,以对浮点数据的有效数字值的近似存储,节省预定存储器件的存储空间;而由于浮点数据的符号值和指数值的微小错误会导致浮点数的精度发生明显变化,该符号值和指数值对存储精度的要求较高,所以使用预定存储器件中的二值存储单元存储该符号值和指数值,可以减少多值存储的不准确特性对浮点数整体精度造成的影响,从而提高存储器件的整体精度。
74.本公开实施例中的预定存储器件可以是上述实施例中所描述的突触器件中包含的任一非易失性存储器件,在此不再赘述。
75.在一些实施例中,步骤s320具体可以包括如下步骤。
76.s11,确定与有效数字值对应的用于多值存储单元的激励参数。
77.在该步骤中,激励参数例如可以为脉冲参数、电压、电流、磁场中的至少一种。脉冲参数例如可以是如下参数项中的至少一种:脉冲幅值、宽度、下降沿和脉冲之间的间隔。
78.作为示例,对存储单元施加预定电压、电流和/或外加磁场可以改变该存储单元的阻值;或者,可以对存储单元施加指定脉冲参数对应的脉冲改变该存储单元的阻值。例如对存储单元施加正向脉冲和反向脉冲来改变存储单元的阻值。
79.s12,根据对应的激励参数调整多值存储单元的阻值,并通过调整后的阻值表示有效数字值。
80.通过上述步骤s11和s12,在将有效数字值写入多值存储单元的过程中,通过选定
的激励参数向存储器件中的多值存储单元施加激励,以用于改变多值存储单元的阻值,从而通过改变后的阻值表示有效数字值。由于存储单元中所存储数据的取值,是由存储单元的阻值所在的阻值范围对应的阻值状态决定的。当多值存储单元的阻值到达预期的阻值范围对应的阻值状态时,可以中止当前激励并结束写入操作,得到多值存储单元中预期的有效数字值,实现预定存储器件中通过多值存储单元对浮点格式数据中的有效数字值的存储。
81.在一些实施例中,每个多值存储单元包括阻值可变的电阻;步骤s320具体可以包括:根据浮点数据的精度要求,确定每个多值存储单元的电阻值的读取阶数;根据读取阶数,确定每个多值存储单元能够存储的有效数字值的数值范围;在浮点数据的有效数字值的数值范围小于或等于能够存储的有效数字值的数值范围的情况下,将浮点数据的有效数字值存储到预定存储器件中的至少一个多值存储单元。
82.在该实施例中,使用多值存储单元存储浮点数据的有效数字值时,可根据浮点数据的精度要求确定多值存储单元的电阻值的读取阶数,进而确定多值存储单元中存储的有效数字值的数值范围,从而可以对小于或等于该能够存储的有效数字值的数值范围的有效数字值进行存储,完成符合浮点数据精度要求的有效数字值的存储。
83.在一些实施例中,多值存储单元包括不同的阻值区间,每个阻值区间包含至少一个阻值;有效数字值与多值存储单元中的一个阻值区间内的阻值相对应。
84.在该实施例中,阻值区间之间可以不重叠,不同的阻值区间表示不同的阻值范围,对应于多值存储单元所要存储的不同数据值;阻值区间之间可以等间隔(阻值区间的起始阻值与结束阻值的差值绝对值相等),也可以不等间隔(阻值区间的起始阻值与结束阻值的差值绝对值不相等),具体可以根据实际需要自定义设置,本公开实施例的不做具体限定,从而提高多值存储单元数据存储的灵活性。
85.在一些实施例中,在预定存储器件中,多值存储单元的数量小于预定单元数阈值;多值存储单元能够存储的有效数字值的数值范围小于或等于数值阈值,该数值阈值与至少一个多值存储单元的电阻值的读取阶数相对应,且电阻值的读取阶数是根据浮点数据的精度要求确定的。
86.在该实施例中,存储器件中可以包括多个存储单元,预定单元数阈值可以用于限定存储器件中多值存储单元的最大数量;示例性地,预定单元数阈值可以是大于1的整数。在本公开实施例中,由于多值存储单元在一个单元上通过不同阻值表达不同数据时与预期存储数据存在偏差,所以多值存储单元实现的是不稳定的近似值的存储(下文也称近似存储)。在一些实施例中,存储器件中多值存储单元的数量越小,越可以节省存储器件中的近似存储所占用的一部分存储空间,从而可以利用另一部分存储空间实现稳定的精确值的存储(下文也称精确存储)。
87.在本公开实施例中,示例性地,若多值存储单元中能够存储的有效数字值的数值范围为128,则该多值存储单元可以称为是128值单元,可以理解为该多值存储单元可以存储128个不同数值(或128种不同数值)。可见,多值存储单元中存储的有效数字值的数值范围越大,有效数字位可以表示的范围越大,对应的数据精度越小;多值存储单元中存储的有效数字值的数值范围越小,有效数字位可以表示的范围越小,对应的数据精度越高。
88.在本公开实施例中,在进行浮点格式的数据写入操作时,可以通过写入电路对被
选中的存储单元施加激励,以改变该存储单元的阻值。该被选中的存储单元为多值存储单元时,可以实现浮点格式数据中的有效数字值的写入操作,该被选中的存储单元为二值存储单元时,可以实现浮点格式数据中的符号值和指数值的写入操作。
89.在一些实施例中,预定存储器件中包括1个用于存储符号值的二值存储单元和k个用于存储指数值的二值存储单元,k为大于或等于1的整数;s310中将浮点数据的符号值和指数值存储到预定存储器件中的至少两个二值存储单元的步骤,具体可以包括:将符号值存储至符号值存储单元;以及,将指数值存储到指数值存储单元。
90.在该实施例中,在预定存储器件的二值存储单元中,由于符号值为0或1,所以通过1个二值存储单元即可实现符号值的存储;因此,多个二值存储单元中的1个二值存储单元用于存储符号值,多个二值存储单元中的其他二值存储单元用于存储指数值;实现基于二值存储单元对浮点格式数据中的符号值和指数值进行的高稳定精确存储。
91.在一些实施例中,预定存储器件为突触器件,突触器件中的多值存储单元的数量为1。
92.在该实施例中,预定存储器件在进行浮点格式数据的存储时,浮点格式数据的有效数字值采用多值存储单元进行存储,多值存储单元数量为1,即只使用预定存储器件中的一个存储单元进行浮点格式数据的多值存储,从而节省存储空间和实现近似值存储。
93.在本公开实施例中的数据存储方法中,预定存储器件在进行浮点格式数据的存储时,浮点格式数据的有效数字值采用多值存储单元进行存储,多值存储单元数量为1,即只使用预定存储器件中的一个存储单元进行浮点格式数据的多值存储,从而节省存储空间和实现近似值存储。以及,采用二值存储单元对位于符号域和指数域的符号值和指数值进行高稳定精确存储。由于有效数字域的微小浮动变化不会影响浮点数的整体精度,而符号域和指数域的微小错误会导致浮点数据的明显变化,因此采用上述存储结构,可以实现空间的节省,并有利于降低多值存储的不准确特性影响浮点数整体精度的概率,实现存储器件整体精度的提升。
94.上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
95.图4示出本公开实施例的数据存储方法的流程示意图。如图4所示,该数据存储方法包括:s410,将浮点数据的有效数字值存储到预定存储器件中的至少一个多值存储单元。
96.在该实施例中,通过存储器件的至少一个多值存储单元存储浮点数据的有效数字值;由于浮点数据的有效数字值的微小浮动变化不会影响浮点数的整体精度,因此该存储器件的存储结构,通过多值存储单元存储浮点数据的有效数字值,实现存储空间的节省。
97.在一些实施例中,该数据存储方法还包括:将浮点数据的符号值和指数值存储到预定存储器件中的至少两个二值存储单元。
98.在该实施例中,由于浮点数据的符号值和指数值的微小错误会导致浮点数的精度发生明显变化,通过多值存储单元存储浮点数据的有效数字值,实现存储空间的节省,通过二值存储单元存储浮点数据的符号值和指数值,有利于减少多值存储的不准确特性对浮点数整体精度造成的影响,提高存储器件的整体精度。
99.在一些实施例中,s410具体可以包括:确定与有效数字值对应的用于多值存储单元的激励参数;根据对应的激励参数调整多值存储单元的阻值,并通过调整后的阻值表示有效数字值。
100.上述步骤s410的具体处理过程,可以参见前述实施例中步骤s11-步骤s12的具体处理过程。
101.根据本公开实施例的数据存储方法,使用至少一个多值存储单元进行浮点数据的有效数字值的存储,以对浮点数据的有效数字值的近似存储,节省预定存储器件的存储空间;使用预定存储器件中的至少两个二值存储单元存储该符号值和指数值,可以减少多值存储的不准确特性对浮点数整体精度造成的影响,从而提高存储器件的整体精度。
102.需要明确的是,本发明并不局限于上文实施例中所描述及在图中示出的特定处理步骤。为了描述的方便和简洁,这里省略了对已知方法的详细描述,并且上述描述的实施例的具体工作过程,可以参考前述数据存储方法的对应过程和存储器件实施例中的具体细节,在此不再赘述。
103.图5示出本公开实施例的数据存储方法的流程示意图。如图5所示,该数据存储方法包括:s510,将浮点数据的符号值和指数值存储到预定存储器件中的至少两个二值存储单元。
104.在该实施例中,由于浮点数据的符号值和指数值的微小错误会导致浮点数的精度发生明显变化,通过二值存储单元存储浮点数据的符号值和指数值,有利于提高存储器件的整体精度。
105.根据本公开实施例的数据存储方法,可以使用至少一个多值存储单元进行浮点数据的有效数字值的存储,以对浮点数据的有效数字值的近似存储,节省预定存储器件的存储空间;使用预定存储器件中的至少两个二值存储单元存储该符号值和指数值,可以减少多值存储的不准确特性对浮点数整体精度造成的影响,从而提高存储器件的整体精度。
106.需要明确的是,本发明并不局限于上文实施例中所描述及在图中示出的特定处理步骤。为了描述的方便和简洁,这里省略了对已知方法的详细描述,并且上述描述的实施例的具体工作过程,可以参考前述数据存储方法的对应过程和存储器件实施例中的具体细节,在此不再赘述。
107.图6示出本公开示例性实施例的存储器件的结构示意图。
108.在一些实施例中,该存储器件用于存储浮点格式的数据。如图6所示,该存储器件包括9个二值存储单元和1个多值存储单元。其中,9个二值存储单元中包括1个用于存储浮点格式数据中的符号值,8个二值存储单元用于存储浮点格式数据中的指数值,1个多值存储单元用于存储浮点格式数据中的有效数字值。
109.示例性地,图6中的多值存储单元中能够存储的有效数字值的数值范围为128,则该多值存储单元可以称为是128值单元,可以理解为该多值存储单元可以存储128种不同数值;多值存储单元中能够存储的有效数字值的数值范围为2,则该多值存储单元可以称为是二值单元,可以理解为该多值存储单元可以存储两种不同数值)。
110.在图6中,对于存储器件中的每个存储单元,在进行浮点格式的数据写入操作时,通过写入电路对被选中的存储单元施加激励,以改变该存储单元的阻值。对于二值存储单元,即在一个存储单元上通过不同的阻值表达0和1二值,以实现高稳定精确的数据存储;对
于多值存储单元,即在一个单元上通过不同的阻值表达多于两种数值,实现近似值存储从而节省存储空间,从而提升存储空间对浮点格式数据进行存储的整体精度。
111.需要说明的是,图6中示出的存储器件的结构仅仅是示意性地说明,不能理解是对本公开实施例中存储器件结构的保护范围的限制。在实际应用场景中,该存储器件中二值存储单元的数量和多值存储单元的数量可以根据实际需要进行设定。
112.图7示出本公开实施例的读取装置的结构示意图。如图7所示,在本公开实施例中,读取装置用于读取存储单元阵列710。在图7中,存储单元阵列710包括:至少一条字线711、多条位线712、至少一组存储单元713和选通器714。
113.读取装置包括数值判断模块720和寄存器730;其中,至少一条字线711沿第一方向依次排布;多条位线712沿第二方向与至少一条字线711交叉排布,第二方向垂直于第一方向。
114.至少一组存储单元713包括至少两个二值存储单元7131和至少一个多值存储单元7132,且同组存储单元中的每个存储单元分别位于同一字线与不同位线的交叉位置处,且每个存储单元的两端分别与相应字线和相应位线连接。
115.选通器714与每条字线711相连接,且选通器714用于:根据接收的读取指令中的读取地址确定被选字线711和被选位线712,选择连接到被选字线711和被选位线712交叉点处的二值存储单元7131和多值存储单元7132,作为被选二值存储单元7131和被选多值存储单元7132。
116.数值判断模块720,用于判定被选二值存储单元7131中存储的浮点数据的符号值和指数值,并判定被选多值存储单元7132中存储的浮点数据的有效数字值,将符号值、指数值和有效数字值发送到寄存器730。
117.寄存器730,用于对接收的符号值、指数值和有效数字值进行拼接,得到读取的浮点数据。
118.在一些实施例中,寄存器的尺寸可以根据实际需要进行选择,示例性地,16位寄存器表示该寄存器可容纳2字节数据。
119.根据本公开实施例的读取装置,在进行数据读取时,分别存储符号值的二值存储单元和存储指数值的二值存储单元中对符号值和指数值进行读取,从多值存储单元中进行有效数字值的读取,再进行拼接即可得到存储指令中所要读取的浮点格式的数据。
120.图8示出本公开实施例的读取装置的更详细的结构示意图。图8与图7中相同或等同的结构使用相同的标号。
121.如图8所示,在该读取装置中,数值判断模块720包括:至少两个比较器721和至少一个模数转换器722。
122.至少两个比较器721包括:一个第一比较器(图中未示出)和至少一个第二比较器(图中未示出),第一比较器与存储符号值的被选二值存储单元7131和寄存器730中的第一单元相对应,每个第二比较器与存储指数值的一个二值存储单元7131和寄存器730中的一个第二单元相对应;每个模数转换器722与一个被选多值存储单元7132和寄存器730中的一个第三单元相对应。
123.第一比较器和每个第二比较器,分别用于将对应的被选二值存储单元7131的目标阻值与预设阻值阈值进行比较,根据比较结果确定对应的被选二值存储单元7131所存储数
据的取值,得到第一比较器的输出值和每个第二比较器的输出值。
124.每个模数转换器722,用于将对应的被选多值存储单元7132的目标阻值与预设不同阻值区间中的阻值进行比对,以确定被选多值存储单元7132的目标阻值对应的阻值区间,并根据对应的阻值区间得到每个模数转换器722的输出值。
125.寄存器730,用于通过第一单元接收第一比较器的输出值,得到符号值;通过每个第二单元接收的对应的第二比较器的输出值,得到指数值;通过每个第三单元接收的分别对应的每个模数转换器722的输出值,得到有效数字值,以拼接符号值、指数值和有效数字值,得到读取的浮点数据。
126.在一些实施例中,第一比较器和第二比较器具有相同的结构,第一比较器用于将存储有符号值的被选二值存储单元7131的目标阻值与预设阻值阈值进行比较,以确定浮点数据的符号值;第二比较器于将存储有指数值的被选二值存储单元7131的目标阻值与预设阻值阈值进行比较,以确定浮点数据的符号值。
127.根据本公开实施例的读取装置,可以实现对预定存储器件中通过多值存储单元存储的浮点格式数据的有效数字值的读取,和实现对通过二值存储单元存储的浮点格式数据的符号值和指数值的读取;在该存储系统包含的存储阵列中,每个预定存储器件中可以只通过部分存储单元以多值存储形式进行的浮点格式数据中有效数字值的存储,从而节省存储空间;且由于有效数字值的微小浮动变化不会影响浮点数的整体精度,而符号值和指数值的微小错误会导致浮点数的精度发生明显变化,对存储精度的要求较高,所以使用预定存储器件中的二值存储单元存储符号值和指数值,还有利于减少多值存储的不准确特性对浮点数整体精度造成的影响,提高存储器件的整体精度。
128.图9示出本公开实施例的数据读取方法的流程示意图。如图9所示,该数据读取方法可以包括如下步骤。
129.s910,通过选通器根据接收的读取指令中的读取地址,确定存储单元阵列中的被选字线和被选位线,选择连接到被选字线和被选位线交叉点处的二值存储单元和多值存储单元,作为被选二值存储单元和被选多值存储单元。
130.在一些实施例中,要读取的存储单元包括:用于存储符号值和指数值的至少两个二值存储单元和用于存储有效数字值的至少一个多值存储单元。
131.在该步骤中,接收到的读取指令中包括读取地址;当存储装置接收到数据的读取指令时,可以根据该读取指令中包括的读取地址确定出要选择的字线和要选择的位线,以确定要读取的存储器件中的二值存储单元和多值存储单元。
132.s920,通过数值判断模块判定被选二值存储单元中存储的浮点数据的符号值和指数值,并判定被选多值存储单元中存储的浮点数据的有效数字值,将符号值、指数值和有效数字值发送到指定的寄存器。
133.在一些实施例中,每个多值存储单元包括阻值可变的电阻,每个多值存储单元的电阻值所属的不同阻值区间,对应于该多值存储单元所要存储的不同有效数字值;因此在进行多值存储单元的数据读取时,可以通过获取该存储单元的阻值并确定取值所在的阻值区间,进行确定出相应的有效数字值的具体取值。
134.在该步骤中,数值判断模块包括至少两个比较器和至少一个模数转换器;通过至少两个比较器中的一个比较器,将存储有符号值的被选二值存储单元的目标阻值与预设阻
值阈值进行比较,以确定浮点数据的符号值;通过至少两个比较器中的至少一个第二比较器,将存储有指数值的被选二值存储单元的目标阻值与预设阻值阈值进行比较,以确定浮点数据的符号值;以及,通过模数转换器,确定存储有效数字值的被选多值存储单元的目标阻值对应的阻值区间,以确定浮点数据的有效数字值。
135.s930,通过寄存器对接收的符号值、指数值和有效数字值进行拼接,得到读取的浮点数据。
136.根据本公开实施例的数据读取方法,可以实现对预定存储器件中通过多值存储单元存储的浮点格式数据中有效数字值的读取,和对通过二值存储单元存储的浮点格式数据的符号值和指数值的读取;在该存储系统包含的存储阵列中,每个预定存储器件中可以只通过部分存储单元以多值存储形式进行的浮点格式数据中有效数字值的存储,从而节省存储空间;且由于有效数字值的微小浮动变化不会影响浮点数的整体精度,而符号值和指数值的微小错误会导致浮点数的精度发生明显变化,对存储精度的要求较高,所以使用预定存储器件中的二值存储单元存储符号值和指数值,还有利于减少多值存储的不准确特性对浮点数整体精度造成的影响,提高存储器件的整体精度。
137.在一些实施例中,在存储系统所包含的每个预定存储器件中,每个预定存储器件包括多个二值存储单元,其中1个二值存储单元用于存储符号值,其他二值存储单元用于存储指数值,实现基于二值存储单元对浮点格式数据中的符号值和指数值进行的高稳定精确存储;相应地,在进行数据读取时,分别存储符号值的二值存储单元和存储指数值的二值存储单元中对符号值和指数值进行读取,从多值存储单元中进行有效数字值的读取,再进行拼接即可得到存储指令中所要读取的浮点格式的数据。
138.为了便于理解,下面通过一个具体示例,描述本公开实施例的数据读取方法的具体流程。图10示出本公开示例性实施例的数据读取方法的流程图。如图10所示,在一些实施例中,数据读取方法包括以下步骤。
139.s1010,通过选通器接收数据读取指令,获取数据读取指令中包括的读取地址。
140.该步骤中,读取地址用于指示存储单元阵列中要选择的字线和要选择的位线,根据要选择的字线和要选择的位线,可以确定出要读取的存储单元。
141.s1020,通过数据的读取地址确定出要选择的字线和要选择的位线,所选择的字线和位线的交叉处即存储阵列中的要读取的存储单元。
142.在该步骤中,确定所选择字线和所选择位线的交叉点,将每个交叉点处的存储单元作为要读取的存储单元。具体地,存储阵列可以由许多存储单元排列组成,存储单元阵列包括至少一组存储单元;通过要选择的字线,可以确定出要读取的存储单元在存储单元阵列中的哪一组存储单元;通过要选择的位线,可以进一步确定出要读取的存储单元在该组存储单元中的具体位置;从而根据要选择的字线和要选择的位线,将二者交叉点处的存储单元作为要读取的存储单元。
143.该步骤中,每一个被读取的存储单元都可以按这种方法被选中,然后再对其进行读操作;或者被读取的存储单元可以被同时选中并进行读操作。具体方式可以根据实际读取需求进行预先设置,本公开实施例不做具体限定。
144.s1030,通过比较器,确定存储阵列中的被选中的存储单元的取值。
145.在该步骤中,对于存储阵列中被选中的二值存储单元,首先获取该二值存储单元
的阻值,将该阻值与二值存储单元对应的两个阻值区间中包含的阻值进行比较,以确定该阻值所属的阻值区间,进而确定该阻值所属的阻值区间对应的取值(0或1),得到该二值存储单元存储的数据值。
146.对于存储阵列中被选中的多值存储单元,首先获取该多值存储单元的阻值,将该阻值与多值存储单元对应的大于两个阻值区间中每个阻值区间所包含的阻值进行比较,以确定该阻值所属的阻值区间,进而对该阻值所属的阻值区间对应的取值进行数值判断,得到该多值存储单元存储的数据值。
147.s1040,将每个被选择的存储单元中的数据读取结果进行拼接,将拼接结果发送至寄存器,得到寄存器中的浮点格式数据。
148.根据该数据读取方法,可以实现对预定存储器件中通过多值存储单元存储的浮点格式数据中有效数字值的读取;由于有效数字域的微小浮动变化不会影响浮点数的整体精度,该有效数字值对存储精度的要求较低,因此考虑到单个多值存储单元比单个二值存储单元能够存储的数值范围更大,在该存储系统包含的存储阵列中,每个预定存储器件中可以只通过部分存储单元以多值存储形式进行的浮点格式数据中有效数字值的存储,从而节省存储空间;而由于浮点数据的符号值和指数值的微小错误会导致浮点数的精度发生明显变化,该符号值和指数值对存储精度的要求较高,所以在数据存储时,使用预定存储器件中的二值存储单元存储该符号值和指数值,有利于减少多值存储的不准确特性对浮点数整体精度造成的影响,提高存储器件的整体精度。
149.可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
150.图11为本公开实施例提供的一种数据存储装置的框图。参照图11,本公开实施例提供了一种数据存储装置,该数据存储装置1100包括如下模块。
151.第一存储模块1110,用于将浮点数据的符号值和指数值存储到预定存储器件中的至少两个二值存储单元;第二存储模块1120,用于将浮点数据的有效数字值存储到预定存储器件中的至少一个多值存储单元。
152.在一些实施例中,第二存储模块1120,具体用于确定与有效数字值对应的用于多值存储单元的激励参数;根据对应的激励参数调整多值存储单元的阻值,并通过调整后的阻值表示有效数字值。
153.在一些实施例中,每个多值存储单元包括阻值可变的电阻;第二存储模块1120,具体用于根据浮点数据的精度要求,确定每个多值存储单元的电阻值的读取阶数;根据读取阶数,确定每个多值存储单元能够存储的有效数字值的数值范围;在浮点数据的有效数字值的数值范围小于或等于能够存储的有效数字值的数值范围的情况下,将浮点数据的有效数字值存储到预定存储器件中的至少一个多值存储单元。
154.在一些实施例中,至少两个二值存储单元包括:1个符号值存储单元和k个指数值存储单元,k为大于或等于1的整数;第二存储模块1120,具体用于将符号值存储至符号值存储单元;以及,将指数值存储到指数值存储单元。
155.在一些实施例中,预定存储器件为突触器件,突触器件中的多值存储单元的数量
为1。
156.根据本公开实施例的数据存储装置,由于浮点数的有效数字值的微小浮动变化不会影响浮点数的整体精度,该有效数字值对存储精度的要求较低,考虑到单个多值存储单元比单个二值存储单元能够存储的数值范围更大,所以使用数量较少的多值存储单元进行浮点数据的有效数字值的存储,以对浮点数据的有效数字值的近似存储,节省预定存储器件的存储空间;而由于浮点数据的符号值和指数值的微小错误会导致浮点数的精度发生明显变化,该符号值和指数值对存储精度的要求较高,所以使用预定存储器件中的二值存储单元存储该符号值和指数值,可以减少多值存储的不准确特性对浮点数整体精度造成的影响,从而提高存储器件的整体精度。
157.本公开实施例还提供一种数据存储装置,该数据存储装置包括:第二存储模块,用于将浮点数据的有效数字值存储到预定存储器件中的至少一个多值存储单元。
158.在一些实施例中,该数据存储装置还包括:第一存储模块,用于将浮点数据的符号值和指数值存储到预定存储器件中的至少两个二值存储单元。
159.在一些实施例中,第二存储模块,具体用于:确定与有效数字值对应的用于多值存储单元的激励参数;根据对应的激励参数调整多值存储单元的阻值,并通过调整后的阻值表示有效数字值。
160.需要明确的是,本发明并不局限于上文实施例中所描述的特定处理步骤。为了描述的方便和简洁,这里省略了对已知方法的详细描述,并且上述描述的实施例的具体工作过程,可以参考前述数据存储方法的对应过程和存储器件实施例中的具体细节,在此不再赘述。
161.根据本公开实施例的数据存储装置,浮点数的有效数字值的微小浮动变化不会影响浮点数的整体精度,该有效数字值对存储精度的要求较低,考虑到单个多值存储单元比单个二值存储单元能够存储的数值范围更大,所以使用数量较少的多值存储单元进行浮点数据的有效数字值的存储,以对浮点数据的有效数字值的近似存储,节省预定存储器件的存储空间。
162.本公开实施例还提供一种数据存储装置,该数据存储装置包括:第一存储模块,用于将浮点数据的符号值和指数值存储到预定存储器件中的至少两个二值存储单元。
163.需要明确的是,本发明并不局限于上文实施例中所描述的特定处理步骤。为了描述的方便和简洁,这里省略了对已知方法的详细描述,并且上述描述的实施例的具体工作过程,可以参考前述数据存储方法的对应过程和存储器件实施例中的具体细节,在此不再赘述。
164.根据本公开实施例的数据存储装置,由于浮点数据的符号值和指数值的微小错误会导致浮点数的精度发生明显变化,通过二值存储单元存储浮点数据的符号值和指数值,有利于提高存储器件的整体精度。
165.图12为本公开实施例提供的一种电子设备的框图。
166.参照图12,本公开实施例提供了一种电子设备,该电子设备包括:至少一个处理器1201;至少一个存储器1202,以及一个或多个i/o接口1203,连接在处理器1201与存储器1202之间;其中,存储器1202存储有可被至少一个处理器1201执行的一个或多个计算机程序,一个或多个计算机程序被至少一个处理器1201执行,以使至少一个处理器1201能够执
行上述的数据存储方法。
167.本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其中,计算机程序在被处理器/处理核执行时实现上述的数据存储方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
168.本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当计算机可读代码在电子设备的处理器中运行时,电子设备中的处理器执行上述数据存储方法或数据读取方法。
169.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读存储介质上,计算机可读存储介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。
170.如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读程序指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom)、静态随机存取存储器(sram)、闪存或其他存储器技术、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读程序指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
171.这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
172.用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信
息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
173.这里所描述的计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
174.这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
175.这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
176.也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
177.附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
178.本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其他实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。

技术特征:


1.一种存储器件,其特征在于,包括:至少两个二值存储单元,用于存储浮点数据的符号值和指数值;至少一个多值存储单元,用于存储所述浮点数据的有效数字值。2.根据权利要求1所述的存储器件,其特征在于,每个多值存储单元包括阻值可变的电阻,用于存储所述有效数字值。3.根据权利要求1所述的存储器件,其特征在于,所述至少一个多值存储单元能够存储的有效数字值的数值范围小于或等于数值阈值,所述数值阈值与所述至少一个多值存储单元的电阻值的读取阶数相对应,且所述电阻值的读取阶数是根据所述浮点数据的精度要求确定的。4.根据权利要求1所述的存储器件,其特征在于,所述至少两个二值存储单元中包括:1个符号值存储单元和k个指数值存储单元,k为大于或等于1的整数;所述符号值存储单元用于存储所述浮点数据的符号值;所述指数值存储单元用于存储所述浮点数据的指数值。5.根据权利要求1所述的存储器件,其特征在于,所述存储器件为突触器件,所述突触器件中的多值存储单元的数量为1。6.一种数据存储方法,其特征在于,包括:将浮点数据的符号值和指数值存储到预定存储器件中的至少两个二值存储单元;将所述浮点数据的有效数字值存储到所述预定存储器件中的至少一个多值存储单元。7.根据权利要求6所述的方法,其特征在于,所述将所述浮点数据的有效数字值存储到所述预定存储器件中的至少一个多值存储单元,包括:确定与所述有效数字值对应的用于所述多值存储单元的激励参数;根据对应的所述激励参数调整所述多值存储单元的阻值,并通过所述调整后的阻值表示所述有效数字值。8.根据权利要求6所述的方法,其特征在于,每个多值存储单元包括阻值可变的电阻;所述将所述浮点数据的有效数字值存储到所述预定存储器件中的至少一个多值存储单元,包括:根据所述浮点数据的精度要求,确定所述每个多值存储单元的电阻值的读取阶数;根据所述读取阶数,确定所述每个多值存储单元能够存储的有效数字值的数值范围;在所述浮点数据的有效数字值的数值范围小于或等于所述能够存储的有效数字值的数值范围的情况下,将所述浮点数据的有效数字值存储到所述预定存储器件中的至少一个多值存储单元。9.根据权利要求6所述的方法,其特征在于,所述至少两个二值存储单元包括:1个符号值存储单元和k个指数值存储单元,k为大于或等于1的整数;所述将浮点数据的符号值和指数值存储到预定存储器件中的至少两个二值存储单元,包括:将所述符号值存储至所述符号值存储单元;以及,将所述指数值存储到所述指数值存储单元。10.根据权利要求6所述的方法,其特征在于,
所述预定存储器件为突触器件,所述突触器件中的多值存储单元的数量为1。11.一种数据存储方法,其特征在于,包括:将浮点数据的有效数字值存储到预定存储器件中的至少一个多值存储单元。12.根据权利要求11所述的方法,其特征在于,所述方法还包括:将所述浮点数据的符号值和指数值存储到所述预定存储器件中的至少两个二值存储单元。13.根据权利要求11所述的方法,其特征在于,所述将浮点数据的有效数字值存储到预定存储器件中的多值存储单元,包括:确定与所述有效数字值对应的用于所述多值存储单元的激励参数;根据对应的所述激励参数调整所述多值存储单元的阻值,并通过所述调整后的阻值表示所述有效数字值。14.一种数据存储方法,其特征在于,包括:将浮点数据的符号值和指数值存储到预定存储器件中的至少两个二值存储单元。15.一种读取装置,用于读取存储单元阵列;其特征在于,所述存储单元阵列包括:至少一条字线、多条位线、至少一组存储单元和选通器;所述读取装置包括数值判断模块和寄存器;其中,所述至少一条字线沿第一方向依次排布;所述多条位线沿第二方向与所述至少一条字线交叉排布,所述第二方向垂直于所述第一方向;所述至少一组存储单元包括至少两个二值存储单元和至少一个多值存储单元,且同组存储单元中的每个存储单元分别位于同一字线与不同位线的交叉位置处,且所述每个存储单元的两端分别与相应字线和相应位线连接;所述选通器与每条字线相连接,且所述选通器用于:根据接收的读取指令中的读取地址确定被选字线和被选位线,选择连接到所述被选字线和所述被选位线交叉点处的二值存储单元和多值存储单元,作为被选二值存储单元和被选多值存储单元;所述数值判断模块,用于判定所述被选二值存储单元中存储的浮点数据的符号值和指数值,并判定所述被选多值存储单元中存储的浮点数据的有效数字值,将所述符号值、所述指数值和所述有效数字值发送到所述寄存器;所述寄存器,用于对接收的所述符号值、所述指数值和所述有效数字值进行拼接,得到读取的浮点数据。16.根据权利要求15所述的读取装置,其特征在于,所述数值判断模块包括:至少两个比较器和至少一个模数转换器;所述至少两个比较器包括:一个第一比较器和至少一个第二比较器,所述第一比较器与存储符号值的被选二值存储单元和所述寄存器中的第一单元相对应,每个第二比较器与存储指数值的一个二值存储单元和所述寄存器中的一个第二单元相对应;每个模数转换器与一个被选多值存储单元和所述寄存器中的一个第三单元相对应;所述第一比较器和所述每个第二比较器,分别用于将对应的被选二值存储单元的目标阻值与预设阻值阈值进行比较,根据比较结果确定对应的被选二值存储单元所存储数据的取值,得到所述第一比较器的输出值和所述每个第二比较器的输出值;所述每个模数转换器,用于将对应的被选多值存储单元的目标阻值与预设不同阻值区
间中的阻值进行比对,以确定所述被选多值存储单元的目标阻值对应的阻值区间,并根据所述对应的阻值区间得到所述每个模数转换器的输出值;所述寄存器,用于通过所述第一单元接收所述第一比较器的输出值,得到符号值;通过所述每个第二单元接收的对应的第二比较器的输出值,得到指数值;通过每个第三单元接收的分别对应的每个模数转换器的输出值,得到有效数字值,以拼接所述符号值、所述指数值和所述有效数字值,得到读取的浮点数据。17.一种数据读取方法,其特征在于,包括:通过选通器根据接收的读取指令中的读取地址,确定存储单元阵列中的被选字线和被选位线,选择连接到所述被选字线和所述被选位线交叉点处的二值存储单元和多值存储单元,作为被选二值存储单元和被选多值存储单元;通过数值判断模块判定所述被选二值存储单元中存储的浮点数据的符号值和指数值,并判定所述被选多值存储单元中存储的浮点数据的有效数字值,将所述符号值、所述指数值和所述有效数字值发送到指定的寄存器;通过所述寄存器对接收的所述符号值、所述指数值和所述有效数字值进行拼接,得到读取的浮点数据。

技术总结


本公开提供了一种存储器件、存储方法、读取装置和读取方法,属于计算机技术领域。该存储器件包括:至少两个二值存储单元,用于存储浮点数据的符号值和指数值;至少一个多值存储单元,用于存储浮点数据的有效数字值。根据本公开的实施例能够提高存储器件的整体精度。公开的实施例能够提高存储器件的整体精度。公开的实施例能够提高存储器件的整体精度。


技术研发人员:

吴臻志 祝夭龙

受保护的技术使用者:

北京灵汐科技有限公司

技术研发日:

2022.08.23

技术公布日:

2022/9/20

本文发布于:2024-09-20 21:38:21,感谢您对本站的认可!

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

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

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