一种写均衡的处理方法和装置的制造方法

文档序号:9687356阅读:200来源:国知局
一种写均衡的处理方法和装置的制造方法
【技术领域】
[0001]本发明涉及计算机技术领域,尤其涉及一种写均衡的处理方法和装置。
【背景技术】
[0002]当前的非易失性存储器(Non-Volatile Memory,NVM)的存储介质比如相变存储器(Phase Change Memory, PCM)等都存在写寿命问题,即当这些介质的存储单元在进行一定次数的擦写操作后,会发生存储可靠性问题,导致存储失效。
[0003]为了延长存储介质的写寿命,现有技术中存在一种磨损均衡(Wear Leveling)的方法,主要实现过程是:将存储介质划分成相同大小的物理区块,并对所有物理区块的写入次数进行计数跟踪,当需要写入数据时,首先要查询出哪个物理区块的写入次数比较小,然后通过映射表将新写入的数据从逻辑区块优先映射到写入次数小的物理区块,当某个物理区块写入次数过多时,还需要查询写入次数小的物理区块并进行替换。通过将写入的数据量平均分布到存储介质的所有存储单元上,能够让写请求均匀分布到所有物理区块上,达到磨损均衡,从而延长整个存储介质的使用寿命。
[0004]在实现本发明的过程中,本发明的发明人发现:现有技术中的写均衡方法在写入数据前,总是需要不断的查询各个物理区块的写入次数,才能确定将数据写入到哪个物理区块,每次查询物理区块的写入次数导致查询开销比较大。

【发明内容】

[0005]本发明实施例提供了一种写均衡的处理方法和装置,用于实现存储器中的磨损均衡,且可以消除查询物理区块写入次数时较大的开销。
[0006]为解决上述技术问题,本发明实施例提供以下技术方案:
[0007]第一方面,本发明实施例提供一种写均衡的处理方法,包括:
[0008]接收处理器发送的写请求;
[0009]根据所述写请求中包含的地址信息,将待写入的数据写入到所述地址信息标识的第一存储单元中,所述第一存储单元为存储器的第一存储单元阵列中的一个存储单元;
[0010]增加所述第一存储单元阵列的写入计数;
[0011]确定所述第一存储单元阵列的写入计数达到预置的阵列阈值时,对所述第一存储单元阵列中每个行内存储的数据进行行间偏移。
[0012]结合第一方面,在第一方面的第一种可能的实现方式中,所述对所述第一存储单元阵列中每个行内存储的数据进行行间偏移,包括:
[0013]从所述第一存储单元阵列中确定第一行,将所述第一行内存储的数据读入到行缓存中;
[0014]从所述行缓存中将所述第一行内存储的原数据写入到冗余行中,所述冗余行为所述第一存储单元阵列中未存入数据的任意一行;
[0015]根据所述第一行和预设的行间偏移量,从所述第一存储单元阵列中确定出第二行,将所述第二行内存储的数据读入到所述行缓存中;
[0016]从所述行缓存中将所述第二行内存储的原数据写入到所述第一行中;
[0017]按照对所述第二行内存储的数据迁移到所述第一行的方式对所述第一存储单元阵列中除所述第一行和所述第二行以外的行内存储的数据进行迁移;
[0018]当所述第一存储单元阵列中最后一个行内存储的数据迁移完成后,从所述冗余行中将所述第一行内存储的原数据写入到所述第一存储单元阵列中最后一个读出数据的行中。
[0019]结合第一方面,在第一方面的第二种可能的实现方式中,所述根据所述写请求包含的地址信息,将待写入的数据写入到所述地址信息标识的第一存储单元中之后,所述方法还包括:
[0020]增加所述第一存储单元所在行的写入计数;
[0021]确定所述第一存储单元所在行的写入计数达到预置的行阈值时,对所述第一存储单元所在行中所有列内存储的数据进行行内偏移。
[0022]结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述对所述第一存储单元所在行中所有列内存储的数据进行行内偏移,包括:
[0023]将所述第一存储单元所在行中所有列内存储的数据读入到行缓存中;
[0024]根据预设的行内偏移量,对所述行缓存中所缓存的数据进行偏移处理,将经过偏移处理后的数据重新写入到所述第一存储单元所在的行中。
[0025]结合第一方面的第一种可能的实现方式,在第一方面的第四种可能的实现方式中,所述当所述第一存储单元阵列中最后一个行内存储的数据迁移完成后,从所述冗余行中将所述第一行内存储的原数据写入到所述第一存储单元阵列中最后一个读出数据的行中之后,所述方法还包括:
[0026]接收处理器发送的读写请求,所述读写请求包括:读请求或写请求;
[0027]对所述读写请求中包含的地址信息进行行间偏移量的计算,得到行间偏移后的地址信息;
[0028]从所述存储器中由所述行间偏移后的地址信息标识的存储单元中读出数据,或,将所述读写请求包括的写请求对应的数据写入所述存储器中由所述行间偏移后的地址信息标识的存储单元中。
[0029]结合第一方面的第三种可能的实现方式,在第一方面的第五种可能的实现方式中,所述方法还包括:
[0030]在对所述第一存储单元阵列中每个行内存储的数据进行行间偏移时,对所述第一存储单元阵列中正在进行偏移的行进行状态标记,标记为正在进行偏移;
[0031]在对所述第一存储单元阵列中每个行内存储的数据进行行间偏移时,对所述第一存储单元阵列中未开始进行偏移的行进行标记,标记为未开始偏移;
[0032]在对所述第一存储单元阵列中每个行内存储的数据进行行间偏移时,对所述第一存储单元阵列中已经完成偏移的行进行状态标记,标记为已经完成偏移。
[0033]第二方面,本发明实施例还提供一种写均衡的处理方法,包括:
[0034]接收处理器发送的写请求;
[0035]根据所述写请求中包含的地址信息,将待写入的数据写入到所述地址信息标识的第一存储单元cell中,所述第一存储单元为存储器的第一存储单元阵列bank中的一个存储单元;
[0036]增加所述第一存储单元所在行的写入计数;
[0037]确定所述第一存储单元所在行的写入计数达到预置的行阈值时,对所述第一存储单元所在行中所有列内存储的数据进行行内偏移。
[0038]结合第二方面,在第二方面的第一种可能的实现方式中,所述对所述第一存储单元所在行中所有列内存储的数据进行行内偏移,包括:
[0039]将所述第一存储单元所在行中所有列内存储的数据读入到行缓存中;
[0040]根据预设的行内偏移量,对所述行缓存中所缓存的数据进行偏移处理,将经过偏移处理后的数据重新写入到所述第一存储单元所在的行中。
[0041]结合第二方面,在第二方面的第二种可能的实现方式中,所述根据所述写请求中包含的地址信息,将待写入的数据写入到所述地址信息标识的第一存储单元cell中之后,所述方法还包括:
[0042]增加所述第一存储单元阵列的写入计数;
[0043]确定所述第一存储单元阵列的写入计数达到预置的阵列阈值时,对所述第一存储单元阵列中每个行内存储的数据进行行间偏移。
[0044]结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述对所述第一存储单元阵列中每个行内存储的数据进行行间偏移,包括:
[0045]从所述第一存储单元阵列中确定第一行,将所述第一行内存储的数据读入到行缓存中;
[0046]从所述行缓存中将所述第一行内存储的原数据写入到冗余行中,所述冗余行为所述第一存储单元阵列中未存入数据的任意一行;
[0047]根据所述第一行和预设的行间偏移量,从所述第一存储单元阵列中确定出第二行,将所述第二行内存储的数据读入到所述行缓存中;
[0048]从所述行缓存中将所述第二行内存储的原数据写入到所述第一行中;
[0049]按照对所述第二行内存储的数据迁移到所述第一行的方式对所述第一存储单元阵列中除所述第一行和所述第二行以外的行内存储的数据进行迁移;
[0050]当所述第一存储单元阵列中最后一个行内存储的数据迁移完成后,从所述冗余行中将所述第一行内存储的原数据写入到所述第一存储单元阵列中最后一个读出数据的行中。
[0051]结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述第一行和所述第二行为所述第一存储单元阵列中相邻的两个行。
[0052]结合第二方面,在第二方面的第五种可能的实现方式中,所述方法还包括:
[0053]接收处理器发送的读写请求,所述读写请求包括:读请求或写请求;
[0054]对所述读写请求中包含的地址信息进行行内偏移量的计算,得到行内偏移后的地址信息;
[0055]从所述存储器中由所述行内偏移后的地址信息标识的存储单元中读出数据,或,将所述读写请求包括的写请求对应的数据写入所述存储器中由所述行内偏移后的地址信息标识的存储单元中。
[0056]结合第二方面的第三种可能的实现方式,在第二方面的第六种可能的实现方式中,所述当所述第一存储单元阵列中最后一个行内存储的数据迁移完成后,从所述冗余行中将所述第一行内存储的原数据写入到所述第一存储单元阵列中最后一个读出数据的行中之后,所述方法还包括:
[0057]接收处理器发送的读写请求,所述读写请求包括:读请求或写请求;
[0058]对所述读写请求中包含的地址信息进行行间偏移量的计算,得到行间偏移后的地址信息;
[0059]从所述存储器中由所述行间偏移后的地址信息标识的存储单元中读出数据,或,将所述读写请求包括的写请求对应的数据写入所述存储器中由所述行间偏移后的地址信息标识的存储单元中。
[0060]第三方面,本发明实施例提供一种写均衡的处理装置,包括:
[0061]接收模块,用于接收处理器发送的写请求;
[0062]存储模块,用于根据所述写请求中包含的地址信息,将待写入的数据写入到所述地址信息标识的第一存储单元中,所述第一存储单元为存储器的第一存储单元阵列中的一个存储单元;
[0063]计数模块,用于增加所述第一存储单元阵列的写入计数;
[0064]行间偏移模块,用于确定所述第一存储单元阵列的写入计数达到预置的阵列阈值时,对所述第一存储单元阵列中每个行内存储的数据进行行间偏移。
[0065]结合第三方面,在第三方面的第一种可能的实现方式中,所述行间偏移模块,包括:第一读入子模块和第一写入子模块,其中,
[0066]第一读入子模块,用于从所述第一存储单元阵列中确定第一行,将所述第一行内存储的数据读入到行缓存中;
[0067]第一写入子模块,用于从所述行缓存中将所述第一行内存储的原数据写入到冗余行中,所述冗余行为所述第一存储单元阵列中未存入数据的任意一行;
[0068]所述第一读入子模块,还用于根据所述第一行和预设的行间偏移量,从所述第一存储单元阵列中确定出第二行,将所述第二行内存储的数据读入到所述行缓存中;
[0069]所述第一写入子模块,还用于从所述行缓存中将所述第二行内存储的原数据写入到所述第一行中;
[0070]所述第一读入子模块和所述第一写入子模块,还用于按照对所述第二行内存储的数据迁移到所述第一行的方式对所述第一存储单元阵列中除所述第一行和所述第二行以外的行内存储的数据进行迁移;
[0071]所述第一写入子模块,还用于当所述第一存储单元阵列中最后一个行内存储的数据迁移完成后,从所述冗余行中将所述第一行内存储的原数据写入到所述第一存储单元阵列中最后一个读出数据的行中。
[0072]结合第三方面,在第三方面的第二种可能的实现方式中,所述写均衡的处理装置,还包括:行内偏移模块,其中,
[0073]所述计数模块,还用于所述存储模块根据所述写请求包含的地址信息,将待写入的数据写入到所述地址信息标识的第一存储单元中之后,增加所述第一存储单元所在行的写入计数;
[0074]所述行内偏移模块,用于确定所第一存储单元所在行的写入计数达到预置的行阈值时,对所述第一存储单元所在行中所有列内存储的数据进行行内偏移。
[0075]结合第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,所述行内偏移模块,包括:第二读入子模块和第二写入子模块,其中,
[0076]所述第二读入子模块,用于将所述第一存储单元所在行中所有列内存储的数据读入到行缓存中;
[0077]所述第二写入子模块,用于根据预设的行内偏移量,对所述行缓存中所缓存的数据进行偏移处理,将经过偏移处理后的数据重新写入到所述第一存储单元所在的行中。
[0078]结合第三方面的第二种可能的实现方式,在第三方面的第四种可能的实现方式中,所述写均衡的处理装置,还包括:行间偏移计算模块和第一读写模块,其中,
[0079]所述接收模块,还用于接收处理器发送的读写请求,所述读写请求包括:读请求或写请求;
[0080]所述行间偏移计算模块,用于对所述读写请求中包含的地址信息进行行间偏移量的计算,得到行间偏移后的地址信息;
[0081]所述第一读写模块,用于从所述存储器中由所述行间偏移后的地址信息标识的存储单元中读出数据,或,将所述读写请求包括的写请求对应的数据写入所述存储器中由所述行间偏移后的地址信息标识的存储单元中。
[0082]结合第三方面的第二种可能或者第三种可能的实现方式,在第三方面的第五种可能的实现方式中,所述写均衡的处理装置,还包括:行内偏移计算模块和第二读写模块,其中,
[0083]所述接收模块,还用于接收处理器发送的读写请求,所述读写请求包括:读请求或写请求;
[0084]所述行内偏移计算模块,用于对所述读写请求中包含的地址信息进行偏移量的计算,得到行内偏移后的地址信息;
[0085]所述第二读写模块,用于从所述存储器中由所述行内偏移后的地址信息标识的存储单元中读出数据,或,将所述读写请求包括的写请求对应的数据写入所述存储器中由所述行内偏移后的地址信息标识的存储单元中。
[0086]第四方面,本发明实施例还提供一种写均衡的处理装置,包括:
[0087]接收模块,用于接收处理器发送的写请求;
[0088]存储模块,用于根据所述写请求中包含的地址信息,将待写入的数据写入到所述地址信息标识的第一存储单元中,所述第一存储单元为存储器的第一存储单元阵列中的一个存储单元;
[0089]计数模块,用于增加所述第一存储单元所在行的写入计数;
[0090]行内偏移模块,用于确定所述第一存储单元所在行的写入计数达到预置的行阈值时,对所述第一存储单元所在行中所有列内存储的数据进行行内偏移。
[0091]结合第四方面,在第四方面的第一种可能的实现方式中,所述行内偏移模块,包括:第二读入子模块和第二写入子模块,其中,
[0092]所述第二读入子模块,用于将所述第一存储单元所在行中所有列内存储的数据读入到行缓存中;
[0093]所述第二写入子模块,用于根据预设的行内偏移量,对所述行缓存中所缓存的数据进行偏移处理,将经过偏移处理后的数据重新写入到所述第一存储单元所在的行中。
[0094]结合第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述写均衡的处理装置,还包括:行间偏移模块,其中,
[0095]所述计数模块,还用于增加所述第一存储单元阵列的写入计数;
[0096]所述行间偏移模块,用于确定所述第一存储单元阵列的写入计数达到预置的阵列阈值时,对所述第一存储单元阵列中每个行内存储的数据进行行间偏移。
[0097]结合第四方面的第二种可能的实现方式,在第四方面的第三种可能的实现方式中,所述行间偏移模块,包括:第一读入子模块和第一写入子模块,其中,
[0098]第一读入子模块,用于从所述第一存储单元阵列中确定第一行,将所述第一行内存储的数据读入到行缓存中;
[0099]第一写入子模块,用于从所述行缓存中将所述第一行内存储的原数据写入到冗余行中,所述冗余行为所述第一存储单元阵列中未存入数据的任意一行;
[0100]所述第一读入子模块,还用于根据所述第一行和预设的行间偏移量,从所述第一存储单元阵列中确定出第二行,将所述第二行内存储的数据读入到所述行缓存中;
[0101]所述第一写入子模块,还用于从所述行缓存中将所述第二行内存储的原数据写入到所述第一行中;
[0102]所述第一读入子模块和所述第一写入子模块,还用于按照对所述第二行内存储的数据迁移到所述第一行的方式对所述第一存储单元阵列中除所述第一行和所述第二行以外的行内存储的数据进行迁移;
[0103]所述第一写入子模块,还用于当所述第一存储单元阵列中最后一个行内存储的数据迁移完成后,从所述冗余行中将所述第一行内存储的原数据写入到所述第一存储单元阵列中最后一个读出数据的行中。
[0104]结合第四方面的第三种可能的实现方式,在第四方面的第四种可能的实现方式中,所述第一行和所述第二行为所述第一存储单元阵列中相邻的两个行。
[0105]结合第四方面的第三种可能的实现方式,在第四方面的第五种可能的实现方式中,所述写均衡的处理装置,还包括:行间偏移计算模块和第一读写模块,其中,
[0106]所述接收模块,还用于接收处理器发送的读写请求,所述读写请求包括:读请求或写请求;
[0107]所述行间偏移计算模块,用于对所述读写请求中包含的地址信息进行行间偏移量的计算,得到行间偏移后的地址信息;
[0108]所述第一读写模块,用于从所述存储器中由所述行间偏移后的地址信息标识的存储单元中读出数据,或,将所述读写请求包括的写请求对应的数据写入所述存储器中由所述行间偏移后的地址信息标识的存储单元中。
[0109]结合第四方面或第四方面的第一种可能的实现方式,在第四方面的第六种可能的实现方式中,所述写均衡的处理装置,还包括:行内偏移计算模块和第二读写模块,其中,
[0110]所述接收模块,还用于接收处理器发送的读写请求,所述读写请求包括:读请求或写请求;
[0111]所述行内偏移计算模块,用于对所述读写请求中包含的地址信息进行偏移量的计算,得到行内偏移后的地址信息;
[0112]所述第二读写模块,用于从所述存储器中由所述行内偏移后的地址信息标识的存储单元中读出数据,或,将所述读写请求包括的写请求对应的数据写入所述存储器中由所述行内偏移后的地址信息标识的存储单元中。
[0113]第五方面,本发明实施例还提供一种写均衡的处理装置,包括:存储器、处理器、存储控制器,所述存储控制器分别和所述存储器、所述处理器、所述处理器连接,其中,所述存储控制器用于执行第一方面或第一方面的第一至第五种可能中的任一项所述的方法。
[0114]第六方面,本发明实施例还提供一种写均衡的处理装置,包括:存储器、处理器、存储控制器,所述存储控制器分别和所述存储器、所述处理器、所述处理器连接,其中,所述存储控制器用于执行第二方面或第二方面的第一种可能至第六种可能中的任一项所述的方法。
[0115]从以上技术方案可以看出,本发明实施例具有以下优点:
[0116]在本发明实施例中,首先接收处理器发送的写请求,根据写请求中包含的地址信息,将待写入的数据写入到地址信息标识的第一存储单元中,第一存储单元为存储器的第一存储单元阵列中的一个存储单元;增加第一存储单元阵列的写入计数;确定所述第一存储单元阵列的写入计数达到预置的阵列阈值时,对所述第一存储单元阵列中每个行内存储的数据进行行间偏移。本发明实施例中由于在存储器中写入数据后,被写入数据的第一存储单元所在的第一存储单元阵列会增加写入计数,确定第一存储单元阵列的写入计数达到预置的阵列阈值时,对第一存储单元阵列中每个行内存储的数据进行行间迁移,故可以实现第一存储单元阵列中行间的写均衡,避免少数存储单元擦写次数过多导致的存储可靠性问题。本发明实施例中在接收到写请求之后,可以直接将待写入的数据按照写请求包含的地址信息写入到第一存储单元,而无需对物理区块的写入次数进行查询后再写数据,故可以消除查询物理区块写入次数时较大的开销。
【附图说明】
[0117]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的技术人员来讲,还可以根据这些附图获得其他的附图。
[0118]图1为本发明实施例
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1