《NVM数据处理方法和装置.pdf》由会员分享,可在线阅读,更多相关《NVM数据处理方法和装置.pdf(13页完整版)》请在专利查询网上搜索。
1、10申请公布号CN104102587A43申请公布日20141015CN104102587A21申请号201410325900322申请日20140709G06F12/0220060171申请人昆腾微电子股份有限公司地址100195北京市海淀区玉泉山路23号4号楼72发明人刘忠志54发明名称NVM数据处理方法和装置57摘要本发明涉及一种NVM数据处理方法和装置。所述NVM数据处理方法包括根据所述NVM中存储的映射前的N位二进制数据组合的使用情况统计信息,建立从所述映射前的N位二进制数据组合到映射后的N位二进制数据组合的映射表,N为大于1的自然数;在向所述NVM中写入源数据时,根据所述映射表对所。
2、述源数据进行第一编码,将编码后的数据写入所述NVM存储单元中,写入所述NVM存储单元的数据中的预定二进制数据的数量小于所述源数据中的预定二进制数据的数量;在从所述NVM中读取数据时,根据所述映射表对从NVM存储单元中读取的数据进行与所述第一编码对应的第一解码。本发明可以满足对写入NVM的数据的选择性的要求。51INTCL权利要求书2页说明书7页附图3页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书7页附图3页10申请公布号CN104102587ACN104102587A1/2页21一种非易失性存储器NVM数据处理方法,其特征在于,包括根据所述NVM中存储的映射前的N位二进。
3、制数据组合的使用情况统计信息,建立从所述映射前的N位二进制数据组合到映射后的N位二进制数据组合的映射表,N为大于1的自然数;在向所述NVM中写入源数据时,根据所述映射表对所述源数据进行第一编码,将编码后的数据写入所述NVM存储单元中,写入所述NVM存储单元的数据中的预定二进制数据的数量小于所述源数据中的预定二进制数据的数量;在从所述NVM中读取数据时,根据所述映射表对从NVM存储单元中读取的数据进行与所述第一编码对应的第一解码。2根据权利要求1所述的方法,其特征在于,所述根据所述映射表对所述源数据进行第一编码之后还包括对第一编码后的数据进行第二编码,将第一编码后的数据中的N位二进制数据组合编码。
4、为M位二进制数据组合,所述第二编码后的数据中所述预定二进制数据的数量小于所述第一编码后的数据中所述预定二进制数据的数量,其中,M为大于N的自然数;所述根据所述映射表对读取的二进制数据进行第一解码之前还包括对读取的数据进行与所述第二编码对应的第二解码;所述根据所述映射表对读取的二进制数据进行与所述第一编码对应的第一解码具体为根据所述映射表对第二解码后的数据进行与所述第一编码对应的第一解码。3根据权利要求2所述的方法,其特征在于,所述对第一编码后的数据进行第二编码具体为;根据所述第一编码后的数据中的N位二进制数据组合中所述预定二进制数据的数量,对所述第一编码后的数据中的N位二进制数据组合进行取反操。
5、作并增加标志位。4根据权利要求13任一所述的方法,其特征在于,在所述映射表中,所述映射后的N位二进制数据组合中所述预定二进制数据的数量与对应的映射前的N位二进制数据组合的使用情况统计信息相关。5根据权利要求2或3所述的方法,其特征在于,在所述映射表中,所述映射后的N位二进制数据组合对应的M位二进制数据组合中所述预定二进制数据的数量与对应的映射前的N位二进制数据组合的使用情况统计信息相关。6一种非易失性存储器NVM数据处理装置,其特征在于,包括映射表建立模块,用于根据所述NVM中存储的映射前的N位二进制数据组合的使用情况统计信息,建立从所述映射前的N位二进制数据组合到映射后的N位二进制数据组合的。
6、映射表,N为大于1的自然数;第一编码模块,用于在向所述NVM中写入源数据时,根据所述映射表对所述源数据进行第一编码,将编码后的数据写入所述NVM存储单元中,写入所述NVM存储单元的数据中的预定二进制数据的数量小于所述源数据中的预定二进制数据的数量;第一解码模块,用于在从所述NVM存储单元中读取数据时,根据所述映射表对读取的数据进行与所述第一编码对应的第一解码。7根据权利要求6所述的装置,其特征在于,还包括第二编码模块,用于对第一编码后的数据进行第二编码,将第一编码后的数据中的N位二进制数据组合编码为M位二进制数据组合,所述第二编码后的数据中所述预定二进制权利要求书CN104102587A2/2。
7、页3数据的数量小于所述第一编码后的数据中所述预定二进制数据的数量,其中,M为大于N的自然数;第二解码模块,用于对从所述NVM存储单元中读取的数据进行与所述第二编码对应的第二解码;所述第一解码器用于根据所述映射表对第二解码后的数据进行与所述第一编码对应的第一解码。8根据权利要求7所述的装置,其特征在于,所述第二编码模块包括扩充单元,用于在第一编码后的数据中的N位二进制数据组合中增加标志位;取反单元,用于根据所述第一编码后的数据中的N位二进制数据组合中所述预定二进制数据的数量,对所述第一编码后的数据中的N位二进制数据组合进行取反操作,并设置所述标志位的状态。9根据权利要求68任一所述的装置,其特征。
8、在于,在所述映射表中,所述映射后的N位二进制数据组合中所述预定二进制数据的数量与对应的映射前的N位二进制数据组合的使用情况统计信息相关。10根据权利要求7或8所述的装置,其特征在于,在所述映射表中,所述映射后的N位二进制数据组合对应的M位二进制数据组合中所述预定二进制数据的数量与对应的映射前的N位二进制数据组合的使用情况统计信息相关。权利要求书CN104102587A1/7页4NVM数据处理方法和装置技术领域0001本发明涉及存储器领域,尤其涉及一种NVM数据处理方法和装置。背景技术0002非易失性存储器NONVOLATILEMEMORY,简称NVM作为计算机必不可少的存储设备,对所处理信息起。
9、着重要的存储功能。长期以来,由于其较小的单元尺寸和良好的工作性能。常见的NVM有电擦写可编程只读存储器ELECTRICALLYERASABLEPROGRAMMABLEREADONLYMEMORY,简称EEPROM和闪存FLASHMEMORY,简称FLASH。0003在某些情况下,出于多方面的考虑,对写入NVM的数据具有选择性,要求在NVM中写入尽可能多的“0”或“1”。下面通过一个实例说明一种情况。0004如图1所示,为现有技术中EEPROM的存储单元的结构示意图,EEPROM的存储单元BITWELL包括衬底11、源区12、漏区13、浮栅14、控制栅15和绝缘介质16,电子E通过隧穿原理穿入或。
10、穿出浮栅14,从而实现数据的写入或擦除,具体地,执行擦除操作时,漏区13的电子通过隧道到达浮栅,执行写操作时,浮栅存储的电子通过隧道放电。如图2所示,为现有技术中闪存的存储单元的结构示意图,闪存的存储单元也包括衬底11、源区12、漏区13、浮栅14、控制栅15和绝缘介质16,闪存采用雪崩热电子注入的方法写入数据,擦除则和EEPROM一样采用隧穿效应,在执行擦除操作时,浮栅14上的电子被拉入到源区12,在执行写操作时,漏区13产生热电子并将其注入到浮栅14上。EEPROM和闪存擦除后存储的状态为二进制数据“1”,写入后存储的状态为二进制数据“0”。数据保持时间是衡量NVM性能的一个重要因素,而影。
11、响数据保持时间的主要因素是浮栅上的电荷流失。当一个NVM存储单元无法保持浮栅中的电荷量时,该NVM存储单元的数据保持能力也随之丧失。例如高温会加速浮栅上电荷的放电过程,从而降低NVM的数据保持时间;采用高能X射线和GAMMA射线等高能辐射照射NVM时,可能会有如下两种结果一种是电离产生的空穴可能在浮栅的电子的作用下,被浮栅俘获,中和掉浮栅上的负电荷,使得浮栅上的电子被中和掉;另一种是,浮栅上的电子获得能量,进入控制栅或衬底;上述两种结果都会导致浮栅上的电荷流失,从而降低了NVM的数据保持时间。如果能够减少浮栅上有电荷的NVM存储单元的数量,则可以降低浮栅上电荷流失的可能性,从而提高数据保持时间。
12、,这样就需要在EEPROM中写入尽可能多的“0”,在闪存中写入尽可能多的“1”。0005如何满足对写入NVM的数据的选择性的要求,成为需要解决的一个问题。发明内容0006本发明提供一种NVM数据处理方法和装置,用以实现满足对写入NVM的数据的选择性的要求。0007本发明提供一种NVM数据处理方法,包括0008根据所述NVM中存储的映射前的N位二进制数据组合的使用情况统计信息,建立从所述映射前的N位二进制数据组合到映射后的N位二进制数据组合的映射表,N为大于1说明书CN104102587A2/7页5的自然数;0009在向所述NVM中写入源数据时,根据所述映射表对所述源数据进行第一编码,将编码后的。
13、数据写入所述NVM存储单元中,写入所述NVM存储单元的数据中的预定二进制数据的数量小于所述源数据中的预定二进制数据的数量;0010在从所述NVM中读取数据时,根据所述映射表对从NVM存储单元中读取的数据进行与所述第一编码对应的第一解码。0011本发明还提供一种非易失性存储器NVM数据处理装置,包括0012映射表建立模块,用于根据所述NVM中存储的映射前的N位二进制数据组合的使用情况统计信息,建立从所述映射前的N位二进制数据组合到映射后的N位二进制数据组合的映射表,N为大于1的自然数;0013第一编码模块,用于在向所述NVM中写入源数据时,根据所述映射表对所述源数据进行第一编码,将编码后的数据写。
14、入所述NVM存储单元中,写入所述NVM存储单元的数据中的预定二进制数据的数量小于所述源数据中的预定二进制数据的数量;0014第一解码模块,用于在从所述NVM存储单元中读取数据时,根据所述映射表对读取的数据进行与所述第一编码对应的第一解码。0015在本发明实施例中,根据映射前的二进制数据组合的使用情况统计信息,建立映射表,在向NVM中写数据时,根据映射表对源数据进行第一编码,将编码后的数据写入NVM存储单元中,最终写入NVM存储单元的数据中的预定二进制数据的数量小于源数据中的预定二进制数据的数量,从而使得希望尽可能少地写入NVM中的二进制数据的数量变少,满足了对写入NVM的数据的选择性的要求。附。
15、图说明0016图1为本发明NVM数据处理方法第一实施例的流程示意图;0017图2为本发明NVM数据处理方法第二实施例的流程示意图;0018图3为本发明NVM数据处理装置第一实施例的结构示意图;0019图4为本发明NVM数据处理装置第二实施例的结构示意图。具体实施方式0020下面结合说明书附图和具体实施方式对本发明作进一步的描述。0021NVM数据处理方法第一实施例0022如图1所示,为本发明NVM数据处理方法第一实施例的流程示意图,该方法可以包括如下步骤0023步骤11、根据NVM中存储的映射前的N位二进制数据组合的使用情况统计信息,建立从映射前的N位二进制数据组合到映射后的N位二进制数据组合。
16、的映射表;0024其中,N为大于1的自然数;优选地,该步骤在系统上电时执行,使用情况统计信息是在产生需要写入NVM的数据时得到的,由于数据写入NVM后,绝大多数的数据基本上只会修改几次,所以数据的统计特性基本不发生变化,将使用情况统计信息存储在NVM的某个特定区域,在系统上电时优先读出并建立映射表,之后就可以正常读写NVM数据了。在大幅更改NVM数据的时候,需要重新得到新的使用情况统计信息;可选地,使用情况统计信息为说明书CN104102587A3/7页6使用频次或使用概率。0025步骤12、在向NVM中写入源数据时,根据映射表对源数据进行第一编码;0026步骤13、将编码后的数据写入NVM存。
17、储单元中,写入NVM存储单元的数据中的预定二进制数据的数量小于源数据中的预定二进制数据的数量;0027其中,预定二进制数据为希望尽可能少地写入NVM存储单元中的数据。0028步骤14、在从NVM中读取数据时,根据映射表对从NVM存储单元中读取的数据进行与第一编码对应的第一解码。0029在本实施例中,根据映射前的二进制数据组合的使用情况统计信息,建立映射表,在向NVM中写数据时,根据映射表对源数据进行第一编码,将编码后的数据写入NVM存储单元中,最终写入NVM存储单元的数据中的预定二进制数据的数量小于源数据中的预定二进制数据的数量,从而使得希望尽可能少地写入NVM中的二进制数据的数量变少,满足了。
18、对写入NVM的数据的选择性的要求。0030进一步地,在本实施中,映射表中映射后的N位二进制数据组合中预定二进制数据的数量与对应的映射前的N位二进制数据组合的使用情况统计信息相关。可选地,映射后的N位二进制数据组合中预定二进制数据的数量越少,对应的映射前的N位二进制数据组合的使用频次越高。0031下面以一个具体实例为例介绍本步骤。假设使用情况统计信息具体为使用频次,N8,N位二进制数据组合采用16进制数表示,NVM具体为闪存。为了提高闪存的数据保持时间,希望在闪存中写入尽可能少的数据“0”,换句话说,希望在闪存中写入尽可能少的数据“0”。如表1所示,为映射前的二进制数据组合的使用频次统计表,第1。
19、行的第217列依次为8位二进制数据组合0X000X0F的使用频次,第2行的第217列依次为8位二进制数据组合0X100X1F的使用频次,以此类推,第16行的第217列依次为8位二进制数据组合0XF00XFF的使用频次。0032表1映射前的二进制数据组合的使用频次统计表00330X0066701807242144899160754416247728972967166019551256171311881029413810X1066681527120512385753164711121027156514101271122317751525313013830X203763137811841586184。
20、8136510241389208111581306135711071136135516750X3017741432143211591200123212241045160815401626168414681334126814030X4047751421146210833224115729961394182118621511166516141127286815490X503470205315481169187212571340153725891188123812221317108012678900X60121513691126177515181568114213221166169212231348。
21、12161471164517580X7014911482160718151579145512511148153512631259116896013211064128280X807081151912321118215412221281105211671091126887515881204161712920X9012441512184811421064129213289401042975129289015391110170111830XA0130510039601179135912761225132614381278126911091175139518971502说明书CN104102587A4/。
22、7页70034如表2所示,为根据表1所示使用频次统计表建立的映射表,第1行的第217列依次为映射后的二进制数据组合0X000X0F对应的映射前的二进制数据组合,第2行的第217列依次为映射后的二进制数据组合0X100X1F对应的映射前的二进制数据组合,以此类推,第16行的第217列依次为映射后的二进制数据组合0XF00XFF对应的映射前的二进制数据组合。在表2中,映射前的0X00的使用频次为66701,在所有的二进制数据组合中使用频次最高,对应的映射后的0XFF中数据“0”的数量最少;0035映射前的二进制数据组合0XBF的使用频次为837,在所有二进制数据组合中使用频次最低,对应的映射后的0。
23、X00中数据“0”的数量最多。0036表2根据表1所示使用频次统计表建立的映射表00370X00BF8B5FA29BD1B32CDF99A1D9BDAB9D5E0X10BEE1C516CC83623E264DBA8A2DAAEBF10X209717C3B29866931A377745EC29EEA5AF0X30CD3368A988868FB47B959AB6DB4A91540X40C287DE53B0E5EFC97EACA3D2C4B9E8640X50949F22A0D2AD38159B85C1DD71178AE0X60D8CAE67D3467A7E38D96CEE93D579CF20X701。
24、2DC56396B524FAEA186551742884140X807CCBBBB15DE260ED436C5B2E852BA4230X90D01B6A253661218CA6F1F72C8384CDD0XA0893582271347AD8E5A3F193ADA6EF6FA0XB09041B715D49F5F7B54BCFD52F658FF0XC0C176D6BCB31323B55A87569429EC4E0XD07AC03CFB6D6F307E41C638E0F046100XE079C67173E7F948FC70FD241E9244FE800XF0C7F8F350492021F4540E3。
25、7F400XB010601212113996515031427150914221316129911351070142910039298370XC01463110295010281180101914811492138412941196106710221048132816690XD0108596112961310142224551254132010641107141212921337216910528920XE017891018121315351475117111971483130315361353126912741354127411730XF029691494191618551869166216。
26、46232618521820220817403046182832736387说明书CN104102587A5/7页80038需要写入闪存的源数据总共有512384字节,其中有1676481位为数据“1”,数据“1”的数量约为327位/字节。在根据表2所示映射表进行第一编码后,写入闪存的数据中有2640499位的数据“1”,数据“1”的数量约为515位/字节,相对于源数据,增加了515327/8235的数据“1”,提高了闪存的数据保持时间。0039NVM数据处理方法第二实施例0040如图2所示,为本发明NVM数据处理方法第二实施例的流程示意图,在上一实施例的基础上,步骤12和步骤13之间还可以包。
27、括如下步骤0041步骤21、对第一编码后的数据进行第二编码,将第一编码后的数据中的N位二进制数据组合编码为M位二进制数据组合;0042其中,M为大于N的自然数,第二编码后的数据中预定二进制数据的数量小于第一编码后的数据中预定二进制数据的数量;0043步骤14之前还可以包括如下步骤0044步骤22、对读取的数据进行与第二编码对应的第二解码。0045步骤14具体为如下步骤0046步骤23、根据映射表对第二解码后的数据进行与第一编码对应的第一解码。0047在本实施例中,即使源数据的统计特性极佳,例如8位源数据中平均有4位数据“0”和4位数据“1”并且所有二进制数据组合的使用频次大致相当,对源数据进行。
28、第一编码和第二编码后也能在一定程度上减少写入NVM的数据中预定二进制数据的数量。0048本实施例在对需要写入NVM的源数据进行第一编码的基础上,进一步地进行了第二编码,第二编码后的数据中预定二进制数据的数量小于第一编码后的数据中预定二进制数据的数量,在上一实施例的基础上,进一步减少了写入NVM的数据中预定二进制数据的数量,更好地满足了对写入NVM的数据的选择性的要求。0049可选地,在步骤21中,根据第一编码后的数据中的N位二进制数据组合中预定二进制数据的数量,对第一编码后的数据中的N位二进制数据组合进行取反操作并增加标志位。可选地,当第一编码后的N位二进制数据组合中预定二进制数据的数量大于预。
29、定数量时,对第一编码后的数据中的N位二进制数据进行取反操作,该预定数量可以为N/2。例如假设N8,M9,NVM为闪存。在步骤21中,将8位二进制数据组合编码为9位二进制数据组合,编码规则如下如果8位二进制数据组合中数据“1”的数量大于或等于4,则8位二进制数据组合不变并增加标志位“1”,从而得到9位二进制数据组合。如果8位二进制数据组合中数据“1”的数量小于4,则对8位二进制数据组合进行取反并增加标志位“0”,从而得到9位二进制数据组合。0050进一步地,在本实施例中,第二编码的基本原理是对N位二进制数据,做出2N空间到2M空间的映射,使得数据在2M空间中具有最少数量的预定二进制数据。可选地,。
30、一种第二编码的实现思路是利用标志位选择预定的模型PATTERN,将数据与模型进行异或运算,目的是减少数据中预定二进制数据的数量。以8位数据为例,如果1位标志位为数据“1”,选择模型为十六进制表示的数据“00”,则异或运算为保留原数据;如果1位标志位为数据“0”,选择模型为十六进制表示的数据“FF”,则异或运算为对原数据取反。如果标志位的长度更大,可选择的模型可以更多。例如如果标志位的长度为2位,可以选择的模型有十六进制表示的数据“00”、“0F”、“F0”、“FF”,编码后的数据长度为10位。如果标志位的长度为说明书CN104102587A6/7页93位,可以选择的模型有十六进制表示的“00”。
31、、“0F”、“F0”、“33”、“CC”、“55”、“AA”、“FF”。0051在本实施例中,写入NVM的二进制数据组合中预定二进制数据的平均数量也有一个下限值1位,此时,采用的第二编码方式为独热编码ONEHOT,但是,独热编码后的每个二进制数据组合的长度会达到2N位。0052NVM数据处理方法第三实施例0053与上一实施例的不同之处在于,为了进一步提高编码效果,映射表的构造考虑到第二编码后的情况,在映射表中,映射后的N位二进制数据组合对应的M位二进制数据组合中预定二进制数据的数量与对应的映射前的N位二进制数据组合的使用情况统计信息相关,使得最终写入NVM的M位二进制数据组合中预定二进制数据的。
32、数量与对应的源数据中N位二进制数据组合的使用情况统计信息相关。0054例如总计512384字节的源数据写入闪存中,使用情况统计信息参见表1所示映射前的二进制数据组合的使用情况统计信息,源数据中有1676481位的数据“1”和2422591位的数据“0”,采用本实施例的方法,第一编码后的数据中有2640499位的数据“1”和1458573位的数据“0”,数据“0”的数量为源数据中的602,第二编码后的数据中有3186848位的数据“1”和1234718位的数据“0”,数据“0”的数量为源数据中的51。0055NVM数据处理装置第一实施例0056该装置可以采用软件的方式实现,也可以采用硬件电路的方。
33、式实现。当采用软件的方式实现时,可以在主机侧实现。当采用硬件电路的方式实现时,可以在不同的设备侧实现,可以设置的设备侧包括主机侧、NVM的控制器侧、或NVM侧。下面以在主机侧实现的硬件电路为例详细介绍本实施例。0057如图3所示,为本发明NVM数据处理装置第一实施例的结构示意图,该NVM数据处理装置可以包括映射表建立模块31、第一编码模块32和第一解码模块33,映射表建立模块31、第一编码模块32和第一解码模块33分别与NVM连接。0058其中,映射表建立模块31用于根据NVM中存储的映射前的N位二进制数据组合的使用情况统计信息,建立从映射前的N位二进制数据组合到映射后的N位二进制数据组合的映。
34、射表,N为大于1的自然数;可选地,使用情况统计信息位使用频次或使用概率;优选地,映射表建立模块31在系统上电时建立映射表。第一编码模块32用于在向NVM中写入源数据时,根据映射表对源数据进行第一编码,将编码后的数据写入NVM存储单元中,写入NVM存储单元的数据中的预定二进制数据的数量小于源数据中的预定二进制数据的数量,其中,预定二进制数据为希望尽可能少地写入NVM存储单元中的数据。第一解码模块33用于在从NVM存储单元中读取数据时,根据映射表对读取的数据进行与第一编码对应的第一解码。0059在本实施例中,映射表建立模块31根据NVM中存储的映射前的N位二进制数据组合的使用情况统计信息,建立从映。
35、射前的N位二进制数据组合到映射后的N位二进制数据组合的映射表,在向NVM中写入源数据时,第一编码模块32根据映射表对源数据进行第一编码,将编码后的数据写入NVM存储单元中,在从NVM存储单元中读取数据时,第一解码模块33根据映射表对读取的数据进行与第一编码对应的第一解码,由于最终写入NVM存储单元的数据中的预定二进制数据的数量小于源数据中的预定二进制数据的数量,从而使得希望尽可能少地写入NVM中的二进制数据的数量变少,满足了对写入NVM的数据的选择性的说明书CN104102587A7/7页10要求。0060进一步地,在本实施中,映射表中映射后的N位二进制数据组合中预定二进制数据的数量与对应的映。
36、射前的N位二进制数据组合的使用情况统计信息相关。可选地,映射后的N位二进制数据组合中预定二进制数据的数量越少,对应的映射前的N位二进制数据组合的使用频次越高。0061NVM数据处理装置第二实施例0062如图4所示,为本发明NVM数据处理装置第二实施例的结构示意图,在上一实施例的基础上,本实施例还可以包括第二编码模块41和第二解码模块42。其中,第二编码模块41连接在第一编码模块32和NVM之间,第二解码模块42连接在NVM和第一解码模块33之间。0063第二编码模块41用于对第一编码后的数据进行第二编码,将第一编码后的数据中的N位二进制数据组合编码为M位二进制数据组合,第二编码后的数据中除预定。
37、二进制数据外的数据的数量小于第一编码后的数据中除预定二进制数据外的数据的数量,其中,M为大于N的自然数。第二解码模块42用于对从NVM存储单元中读取的数据进行与第二编码对应的第二解码。0064在本实施例中,第一解码模块33用于根据映射表对第二解码后的数据进行与第一编码对应的第一解码。0065在本实施例中,即使源数据的统计特性极佳,例如8位源数据中平均有4位数据“0”和4位数据“1”并且所有二进制数据组合的使用频次大致相当,分别通过第一编码模块32和第二编码模块41对源数据进行第一编码和第二编码后也能在一定程度上减少写入NVM的数据中预定二进制数据的数量。0066本实施例在第一编码模块32对需要。
38、写入NVM的源数据进行第一编码的基础上,进一步地由第二编码模块41进行第二编码,第二编码后的数据中预定二进制数据的数量小于第一编码后的数据中预定二进制数据的数量,在上一实施例的基础上,进一步减少了写入NVM的数据中预定二进制数据的数量,更好地满足了对写入NVM的数据的选择性的要求。0067可选地,第二编码模块41可以包括扩充单元411和取反单元412,其中,扩充单元411与第一编码模块32连接,取反单元412与扩充单元411连接,NVM与取反单元412连接。扩充单元411用于在第一编码后的数据中的N位二进制数据组合中增加标志位;取反单元412用于根据第一编码后的数据中的N位二进制数据组合中预定。
39、二进制数据的数量,对第一编码后的数据中的N位二进制数据组合进行取反操作,并设置标志位的状态。可选地,当第一编码后的N位二进制数据组合中预定二进制数据的数量大于预定数量时,取反单元412对第一编码后的数据中的N位二进制数据进行取反操作,该预定数量可以为N/2。0068NVM数据处理装置第三实施例0069与上一实施例的不同之处在于,为了进一步提高编码效果,映射表的构造考虑到第二编码后的情况,在映射表中,映射后的N位二进制数据组合对应的M位二进制数据组合中预定二进制数据的数量与对应的映射前的N位二进制数据组合的使用情况统计信息相关,使得最终写入NVM的M位二进制数据组合中预定二进制数据的数量与对应的源数据中N位二进制数据组合的使用情况统计信息相关。0070最后应说明的是以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。说明书CN104102587A101/3页11图1说明书附图CN104102587A112/3页12图2图3说明书附图CN104102587A123/3页13图4说明书附图CN104102587A13。