数据近似方法及系统、存储方法及系统、读取方法及系统与流程

文档序号:18463329发布日期:2019-08-17 02:14阅读:303来源:国知局
数据近似方法及系统、存储方法及系统、读取方法及系统与流程

本发明涉及数据处理领域,特别是涉及一种数据近似方法及系统、存储方法及系统、读取方法及系统。



背景技术:

在当前的单芯片多处理器中,高速缓存已占芯片面积的30%-50%,由此产生的“功耗墙”问题也使整个计算机行业面临巨大的能源危机。降低电压是减少开销最有效的手段之一,然而电压的降低却导致故障率呈指数增加。相关资料表明当供电电压下降到正常电压的50%时能效性可以提高10倍,但1位错误率从1/108增加到10%,远高于系统可容忍的0.1%,且会引发0.01~0.001%的3位和4位故障。与此同时,现代大多数应用程序是需要保证正确率的,可保证正确率又会不可避免地引起功耗的增加。减少功耗与维持正确率已俨然成为了一个棘手的矛盾。因此,如何有效减少数据占用的存储空间,平衡功耗与正确率,成为本领域技术人员亟需解决的技术问题。



技术实现要素:

本发明的目的是提供一种数据近似方法及系统、存储方法及系统、读取方法及系统和传输方法及系统,本发明采用近似的方法达到消除冗余的目的,进而能够最大限度地降低开销,有效节省存储空间,提高存储密度和传输效率。

为实现上述目的,本发明提供了如下方案:

一种数据近似处理方法,所述近似处理方法包括:

获取源数据;

判断所述源数据的冗余类型是否为浮动型,获得判断结果;

当所述判断结果表示是,则对所述源数据进行近似处理,获得近似数据;所述近似处理的具体方法包括:

获取存储介质的位宽;

根据所述存储介质的位宽确定数据块的大小;

根据数据块的大小将所述源数据划分为多个数据块;

将第一个所述数据块作为基值;

采用所述基值近似表示各数据块,获得源数据的近似数据。

可选的,所述采用所述基值近似表示各数据块,获得源数据的近似数据之后,还包括:

采用bch编码方法对所述近似数据进行校验,获得校验后的近似数据。

一种数据近似处理系统,所述近似处理系统包括:

源数据获取模块,用于获取源数据;

判断模块模块,用于判断所述源数据的冗余类型是否为浮动型,获得判断结果;

近似处理模块,用于当所述判断结果表示是,则对所述源数据进行近似处理,获得近似数据;所述近似处理模块包括:

位宽获取单元,用于获取存储介质的位宽;

数据块确定单元,用于根据所述存储介质的位宽确定数据块的大小;

数据块划分单元,用于根据数据块的大小将所述源数据划分为多个数据块;

基值确定单元,用于将第一个所述数据块作为基值;

近似单元,用于采用所述基值近似表示各数据块,获得源数据的近似数据。

一种数据存储方法,所述存储方法包括:

获取待存储数据;

采用所述的近似处理方法对所述待存储数据进行近似处理,获得近似数据;

将所述近似数据写入存储介质。

一种数据存储系统,所述存储系统包括:

存储数据获取模块,用于获取待存储数据;

近似模块,用于采用所述的近似处理方法对所述待存储数据进行近似处理,获得近似数据;

写入模块,用于将所述近似数据写入存储介质。

一种数据读取方法,所述读取方法用于读取根据所述的存储方法写入存储介质的数据,所述读取方法包括:

获取所述存储介质中的待读取数据;

采用与bch编码方法对应的bch解码方法对所述待读取数据进行解码,获得解码数据,所述解码数据为最终读取的数据。

一种数据读取系统,所述读取系统用于读取根据所述的存储方法写入存储介质的数据,所述读取系统包括:

读取数据获取模块,用于获取所述存储介质中的待读取数据;

解码模块,用于采用与bch编码方法对应的bch解码方法对所述待读取数据进行解码,获得解码数据,所述解码数据为最终读取的数据。

一种数据传输方法,所述传输方法包括:

获取发送端的待传输数据;

采用所述的近似处理方法对所述待传输数据进行近似处理,获得近似数据;

将所述近似数据传输给接收端。

一种数据传输系统,所述传输系统包括:

待传输数据获取模块,用于获取发送端的待传输数据;

传输近似模块,用于采用所述的近似处理方法对所述待传输数据进行近似处理,获得近似数据;

传输模块,用于将所述近似数据传输给接收端。

根据本发明提供的具体实施例,本发明公开了以下技术效果:

本发明提供的数据近似处理方法及系统,针对浮动型数据的冗余特性对数据进行近似处理:根据存储介质的位宽确定数据块的大小;根据数据块的大小将源数据划分为多个数据块;将第一个所述数据块作为基值;采用基值近似表示各数据块,获得源数据的近似数据。本发明提供的数据近似处理方法及系统,采用近似的方法达到消除冗余的目的,进而能够最大限度地降低开销,提高存储密度,有效节省存储空间。

在此基础上,采用本发明提供的数据近似处理方式对数据进行处理后再进行存储、读取和传输,可以有效降低数据存储、数据读取和数据传输的时间开销和空间开销,能够合理利用存储空间,有效提高空间利用率和传输效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例1提供的一种数据近似处理方法的流程图;

图2为本发明实施例2提供的一种数据近似处理系统的结构框图;

图3为本发明实施例3提供的一种数据存储方法的流程图;

图4为本发明实施例4提供的一种数据存储系统的结构框图;

图5为本发明实施例5提供的一种数据读取方法的流程图;

图6为本发明实施例6提供的一种数据读取系统的结构框图;

图7为本发明实施例提供的数据冗余模式图;

图8为本发明实施例提供的bch编码方法的时间复杂度曲线图;

图9为本发明实施例提供的bch编码方法不同纠错能力和信息位下的空间开销;

图10为本发明实施例提供的不同类型源数据对应的压缩数据。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的目的是提供一种数据近似方法及系统、存储方法及系统、读取方法及系统和传输方法及系统,本发明采用近似的方法达到消除冗余的目的,进而能够最大限度地降低开销,有效节省存储空间,提高存储密度和传输效率。

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

实施例1:

图1为本发明实施例1提供的一种数据近似处理方法的流程图。如图1所示,一种数据近似处理方法,所述近似处理方法包括:

步骤101:获取源数据;

步骤102:判断所述源数据的冗余类型是否为浮动型,获得判断结果;

步骤103:当所述判断结果表示是,则对所述源数据进行近似处理,获得近似数据;所述近似处理的具体方法包括:

获取存储介质的位宽;

根据所述存储介质的位宽确定数据块的大小;

根据数据块的大小将所述源数据划分为多个数据块;

将第一个所述数据块作为基值;

采用所述基值近似表示各数据块,获得源数据的近似数据。

作为一种优选方案,执行步骤103:采用所述基值近似表示各数据块,获得源数据的近似数据之后,还包括:

采用bch编码方法对所述近似数据进行校验,获得校验后的近似数据。

实施例2:

图2为本发明实施例2提供的一种数据近似处理系统的结构框图。如图2所示,一种数据近似处理系统,所述近似处理系统包括:

源数据获取模块201,用于获取源数据;

判断模块模块202,用于判断所述源数据的冗余类型是否为浮动型,获得判断结果;

近似处理模块203,用于当所述判断结果表示是,则对所述源数据进行近似处理,获得近似数据;所述近似处理模块203包括:

位宽获取单元,用于获取存储介质的位宽;

数据块确定单元,用于根据所述存储介质的位宽确定数据块的大小;

数据块划分单元,用于根据数据块的大小将所述源数据划分为多个数据块;

基值确定单元,用于将第一个所述数据块作为基值;

近似单元,用于采用所述基值近似表示各数据块,获得源数据的近似数据。

实施例3:

图3为本发明实施例3提供的一种数据存储方法的流程图。如图3所示,一种数据存储方法,所述存储方法包括:

步骤301:获取待存储数据;

步骤302:采用实施例1所述的近似处理方法对所述待存储数据进行近似处理,获得近似数据;

步骤303:将所述近似数据写入存储介质。

实施例4:

图4为本发明实施例4提供的一种数据存储系统的结构框图。如图4所示,一种数据存储系统,所述存储系统包括:

存储数据获取模块401,用于获取待存储数据;

近似模块402,用于采用实施例1所述的近似处理方法对所述待存储数据进行近似处理,获得近似数据;

写入模块403,用于将所述近似数据写入存储介质。

实施例5:

图5为本发明实施例5提供的一种数据读取方法的流程图。如图5所示,一种数据读取方法,所述读取方法用于读取根据实施例3所述的存储方法写入存储介质的数据,所述读取方法包括:

步骤501:获取所述存储介质中的待读取数据;

步骤502:采用与bch编码方法对应的bch解码方法对所述待读取数据进行解码,获得解码数据,所述解码数据为最终读取的数据。

实施例6:

图6为本发明实施例6提供的一种数据读取系统的结构框图。如图6所示,一种数据读取系统,所述读取系统用于读取根据实施例3所述的存储方法写入存储介质的数据,所述读取系统包括:

读取数据获取模块601,用于获取所述存储介质中的待读取数据;

解码模块602,用于采用与bch编码方法对应的bch解码方法对所述待读取数据进行解码,获得解码数据,所述解码数据为最终读取的数据。

图7为本发明实施例提供的数据冗余模式图。如图7所示,在应用程序中,0值出现的概率非常大,比如,系统初始化时,局部变量声明会赋值为0或初始化为空指针或false布尔值,因此高速缓冲存储器中会存储大量的0;图像或视频处理程序中,临近像素通常具有相同或相似的颜色,也会使高速缓存存储大量相同的数值;而过度配置或者对齐时会存在使用大数据类型存储相差不大的较小值的情况,也经常存在数组地址数值之间差异小的情况,这些会造成高速缓存中相邻数据之间数值小范围浮动,偏差较小的冗余模式。冗余类型为浮动型的数据是指存储介质中相邻数据的差值小于设定阈值的数据。

图8为本发明实施例提供的bch编码方法的时间复杂度曲线图。如图8所示,bch编码的时间复杂度通常可以表示为信息位的函数,纠错时间的公式为t=n×log2n,其中n为信息位的长度。随着编码长度的增加,时间复杂度同比增加。空间开销方面,对任何正整数m和t,一定存在一个二进制bch码,它以α,α3,…,α2t-1为根,其信息位的长度n(n=2m-1)或是2m-1的因子,能纠正t个随机错误,校验位数目至多为m*t个,n和m之间的关系公式为:n=2×m-1,其中,n表示码长(信息位的长度),k表示信息位,m表示有限域的次数gf(2m)。

图9为本发明实施例提供的bch编码方法不同纠错能力和信息位下的空间开销。如图9可见,不同纠错能力,所需要的检验码不同,进而带来的空间开销也不尽相同。通过对bch编码的分析可知,常见的程序时间和空间的开销都由数据信息位的长度决定,而由于数据局部性和相似性特征,高速缓存中的数据存在着一定冗余信息,那么可以通过消除这些冗余信息,即减少数据信息位的长度,进而减少时间和空间开销。

因此,本发明首先分析数据的存储特征,确定冗余数据属于全0值、重复值、小范围浮动值这三类冗余模式的哪一种,然后针对于可能存在的这三种冗余数据模式选择相对应的处理方法消除冗余信息,得到精简的消除冗余后的数据,最后对消除冗余后的数据采用bch码进行纠检错校验,保证数据的正确性。由刚刚对bch的分析可知,bch纠错算法的时间开销和空间开销都由源数据信息位的长度决定,校验位数目是由信息位的长度k和纠错能力t共同决定,随着编码长度的增加,时间复杂度和空间复杂度同比增加。本发明所提出的冗余数据消除方法能够减少源数据位的长度,相比于原始未经任何操作的数据,能够使开销降低一个等级。

图10为本发明实施例提供的不同冗余类型源数据对应的消除冗余信息后的数据。如图10所示,针对于全0值和重复值这两种冗余模式,可采用压缩方法消除冗余信息,最终只存储一个重复单元和重复次数即可。对于高速缓存,重复值的不同字节数,基于数据的对齐存储特性可分为4字节和8字节重复值存储。针对于全0值和重复值这两种冗余模式,只需存储一个数值,其中全0值只需存储1个字节的0值作为基值,重复值的字节数可能不同,基于数据的对齐存储特性,当缓存行中只有一种重复值且该重复值能用4个字节表示时就用4字节重复值作为基值存储,当缓存行中有两种不同的重复值时就用8字节重复值作为基值存储。

而对小范围浮动型冗余模式,可采用压缩方法或所述的近似处理方法消除冗余信息。通过基值与高速缓存行中的数据并行执行向量减操作,得到相应的差值,这样,较大程度地减少源数据的信息位长度。由于应用程序的数据存在多样性,因而支持多种数据长度,基值可支持2字节、4字节和8字节,而增量值分别为1字节、2字节和4字节,共6种情况。以源数据的信息位长度为64b,bch码可以纠正4位错误为例,检验位位数为48b。比如,高速缓存行数据的冗余模式是基值为8字节,增值为1字节的小范围浮动值,由于基值为8字节,因此,缓存行中数据以8字节为单位,与基值进行向量减操作,并对对应的差值进行存储,所得到的压缩数据为16b,是未压缩数据的25%,最后通过对压缩数据进行bch码编码进行容错,校验位为12b,总位数为由112b降低为28b,最终达到了存储数据,由于减少了数据信息位的长度,因此能够减少时间开销和空间开销。如表1所示,重复值冗余模式根据重复值所占字节数的不同,分为2种;小范围浮动值根据所选基值和对应差值所占字节数的不同,分为6种。

表1压缩与近似方式

本发明对小范围浮动型数据进行压缩处理,并添加bch码校验位的具体过程如下:

将高速缓存行视为一组固定大小的值,例如,对于64字节高速缓存行,可以看成是8个8字节值,16个4字节值或32个2字节值。为了进行分析,假设缓存行大小为c字节,将缓存行中的数值视为一组固定大小的值的集合,集合中每个值的大小为k字节,要压缩的值集合为s=(v1;v2;…;vn),其中n=c/k。压缩后的输出为:{k;b*;δ=(δ1;δ2;……;δn)},其中δi=b*-vi,i=1,2,…n。δi是这一组值的集合中的第i个值与基值的差值,为了提高存储密度,有效节省存储空间,表示差值所需的字节数必须严格小于表示数据块本身所需的字节数k。然后对压缩后的数据进行bch编码。

本发明将压缩、近似与纠错校验联系起来,减少质量损失的同时能最大限度地降低纠错开销,节省总体存储空间。针对于全0值和重复值这两种冗余模式,仍然只需存储一个数值,其中重复值的字节数可能不同,基于数据的对齐存储特性可分为4字节和8字节重复值存储。而对小范围浮动值冗余模式,利用精度扩缩方法舍去高速缓存行中的数据与基值进行向量减操作得到的差值,仅保留基值。由于应用程序的数据存在多样性,因而支持多种数据长度,基值可支持2字节、4字节和8字节。在此基础上,针对现存数值(全0,重复值,基值)进行bch编码,保证现存数值的正确性。由于舍掉了差值而引入了误差,使得精度相对于能够容错的压缩校验下降了一个等级,但同时,由于舍掉了增值而使源数据信息位的长度变短,bch编码所需的空间开销和延迟开销也会相比于压缩校验进一步减少。同时缺失率降低,cache的访问次数也会减少。

针对用户对近似需求的变化,实现最大限度地降低开销,节省存储空间,还可进一步舍弃进行校验的bch码,只将全0值、重复值、2个基值用于计算和存储。此时,由于缺少了bch码的校验,以上的三类基础数值便没有了容错机制,可能会存在数位翻转等错误的产生,因此,精确度可能会再次下降。同理,源数据信息位进一步变短,没有压缩解压缩和校验,空间开销和时间开销也会进一步减少。

本发明还提供了一种数据传输方法,所述传输方法包括:

获取发送端的待传输数据;

采用实施例1所述的近似处理方法对所述待传输数据进行近似处理,获得近似数据;

将所述近似数据传输给接收端。

本发明还提供了一种数据传输系统,所述传输系统包括:

待传输数据获取模块,用于获取发送端的待传输数据;

传输近似模块,用于采用所述的近似处理方法对所述待传输数据进行近似处理,获得近似数据;

传输模块,用于将所述近似数据传输给接收端。

本发明通过分析数据密集型应用的数据冗余特征,采用压缩和近似的方法达到消除冗余的目的,进而降低开销,提高存储密度和传输效率。实际应用中可根据精度、性能、开销三者之间的权衡将方案分级,使用者可以根据目标输出质量进行选择,使应用程序的开销和性能得到权衡。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1