CN112181710B - 一种基于比特翻转的固态盘数据存储方法和装置 - Google Patents

一种基于比特翻转的固态盘数据存储方法和装置 Download PDF

Info

Publication number
CN112181710B
CN112181710B CN202010953993.XA CN202010953993A CN112181710B CN 112181710 B CN112181710 B CN 112181710B CN 202010953993 A CN202010953993 A CN 202010953993A CN 112181710 B CN112181710 B CN 112181710B
Authority
CN
China
Prior art keywords
data
bit
flipping
flip
basic unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010953993.XA
Other languages
English (en)
Other versions
CN112181710A (zh
Inventor
吴素贞
兰思杰
沈志荣
毛波
周进东
张芝豪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiamen University
Original Assignee
Xiamen University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xiamen University filed Critical Xiamen University
Priority to CN202010953993.XA priority Critical patent/CN112181710B/zh
Publication of CN112181710A publication Critical patent/CN112181710A/zh
Application granted granted Critical
Publication of CN112181710B publication Critical patent/CN112181710B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Read Only Memory (AREA)

Abstract

本发明公开了一种基于比特翻转的固态盘数据存储方法和装置,其中方法包括:初始化步骤:接收写入请求,在内存中初始化用于储存数值的变量;数据比特计数与翻转步骤:对传入的每个基本单位内的比特状态进行统计分析,确定是否进行比特翻转操作,设置相应的翻转标记位,并进行相应的操作,得到处理后的数据;数据封装步骤:将处理后的数据按照原有的数据顺序,进行封装,并将相应的翻转标记位按顺序封装成页面标记位;数据写入步骤:将经过封装后的数据和页面标记位,分别写入存储介质的数据区域和备用区域。本发明提出的方法针对固态盘内存储单元的不同状态泄露电子的概率不同,通过比特翻转的操作降低固态盘内易失电子的状态数量,以提高固态盘的读写性能、使用寿命和可靠性。

Description

一种基于比特翻转的固态盘数据存储方法和装置
技术领域
本发明涉及计算机存储领域,特别是指一种基于比特翻转的固态盘数据存储方法和装置。
背景技术
随着计算机技术和经济社会的发展,社会生产生活产生了巨大的信息和数据,如何稳定可靠地存储这些数据至关重要。传统的机械磁盘存在着读取速度慢、体积较大、功耗低等缺点,随着NAND闪存等非易失性存储技术的迅速发展,存储设备在性能、可靠性、成本等方面都实现了惊人的发展。
固态盘是目前最常用的存储设备之一,并逐渐取代了传统的磁盘。随着工业技术的进步,单位面积存储比特的数量逐渐增加,制造成本进一步降低。同时由于固态盘的读写速度快、随机读写性能大大优于机械磁盘、体积小等优点,固态盘逐渐成为主流的计算机存储设备之一。虽然固态盘有着许多优点,但由于其独特的物理构造及其有别于机械磁盘的操作方式,其稳定性和使用寿命不如机械磁盘。稳定性指的是存储于固态盘中的数据能够保持一致,不发生超过纠错码解码能力以外的错误;而使用寿命往往由“擦除/编程”次数决定,当固态盘中的块经历一定次数的擦除操作后,浮栅门中的电子将容易泄露,造成数据错误。因此,当擦除次数达到预定的最高数值时,固态盘的寿命也将结束。
发明内容
本发明的主要目的在于克服现有技术中的上述缺陷,提出一种基于比特翻转的固态盘数据存储方法,针对固态盘内存储单元的不同状态泄露电子的概率不同,通过比特翻转的操作降低固态盘内易失电子的状态数量,以提高固态盘的读写性能、使用寿命和可靠性。
本发明采用如下技术方案:
一种基于比特翻转的固态盘数据存储方法,其特征在于,包括:
初始化步骤:接收写入请求,在内存中初始化用于储存数值的变量,分别用于储存待写入数据的比特状态的数量;
数据比特计数与翻转步骤:将数据分割成大小相等的基本单位,并对传入的每个基本单位内的比特状态进行统计分析,根据统计分析的基本单位内的比特状态数量,确定是否进行比特翻转操作,设置相应的翻转标记位,并进行相应的操作,得到处理后的数据;
数据封装步骤:将处理后的数据按照原有的数据顺序,进行封装,并将相应的翻转标记位按顺序封装成页面标记位;
数据写入步骤:将经过封装后的数据和页面标记位,分别写入存储介质的数据区域和备用区域。
具体地,还包括:
数据读取步骤:将写入数据分割成与数据比特计数与分析步骤大小相等的基本单位,同时读取每个基本单位相对应的翻转标记位,确定是否进行比特翻转操作,将所有基本单位根据翻转标记位完成操作后,结束。
具体地,所述数据比特计数与翻转步骤中,根据统计分析的基本单位内的比特状态数量,确定是否进行比特翻转操作,并设置相应的翻转标记位,具体包括:
第一变量记录状态‘00’的数量,第二变量记录状态‘01’的数量,第三变量记录状态‘11’的数量,第四变量记录状态‘10’的数量,判断第一变量和第二变量的总和是否大于第三变量和第四变量的总和,若是,设置翻转标记位为“1”,若否,设置翻转标记位为“0”。
具体地,同时读取每个基本单位相对应的翻转标记位,确定是否进行比特翻转操作,具体包括:
若翻转标记位为“1”,则进行比特翻转操作:将传入的基本单位数据与数据大小相同且每个比特均为“1”的基本单位数据进行异或运算,以进行翻转;
若翻转标记位为“0”,则不进行比特翻转操作:将传入的基本单位数据保持不变。
具体地,同时读取每个基本单位相对应的翻转标记位,确定是否进行比特翻转操作,并进行相应的操作,得到处理后的数据,具体包括:
若翻转标记位为“1”,则进行比特翻转操作:将传入的基本单位数据与数据大小相同且每个比特均为“0”的基本单位数据进行同或运算,以进行翻转;
若翻转标记位为“0”,则不进行比特翻转操作:将传入的基本单位数据保持不变。
本发明另一方面提供一种基于比特翻转的固态盘数据存储装置,包括,
初始化模块:用于接收写入请求,在内存中初始化用于储存数值的变量,分别用于储存待写入数据的比特状态的数量;
数据比特计数与翻转模块:用于将数据分割成大小相等的基本单位,并对传入的每个基本单位内的比特状态进行统计分析,根据统计分析的基本单位内的比特状态数量,确定是否进行比特翻转操作,设置相应的翻转标记位,并进行相应的操作,得到处理后的数据;
数据封装模块:用于将处理后的数据按照原有的数据顺序,进行封装,并将相应的翻转标记位按顺序封装成页面标记位;
数据写入模块:用于将经过封装后的数据和页面标记位,分别写入存储介质的数据区域和备用区域。
具体地,还包括:
数据读取模块:将写入数据分割成与数据比特计数与分析步骤大小相等的基本单位,同时读取每个基本单位相对应的翻转标记位,确定是否进行比特翻转操作,将所有基本单位根据翻转标记位完成操作后,结束。
具体地,所述数据比特计数与翻转步骤中,根据统计分析的基本单位内的比特状态数量,确定是否进行比特翻转操作,并设置相应的翻转标记位,具体包括:
第一变量记录状态‘00’的数量,第二变量记录状态‘01’的数量,第三变量记录状态‘11’的数量,第四变量记录状态‘10’的数量,判断第一变量和第二变量的总和是否大于第三变量和第四变量的总和,若是,设置翻转标记位为“1”,若否,设置翻转标记位为“0”。
具体地,同时读取每个基本单位相对应的翻转标记位,确定是否进行比特翻转操作,具体包括:
若翻转标记位为“1”,则进行比特翻转操作:将传入的基本单位数据与数据大小相同且每个比特均为“1”的基本单位数据进行异或运算,以进行翻转;
若翻转标记位为“0”,则不进行比特翻转操作:将传入的基本单位数据保持不变。
具体地,同时读取每个基本单位相对应的翻转标记位,确定是否进行比特翻转操作,并进行相应的操作,得到处理后的数据,具体包括:
若翻转标记位为“1”,则进行比特翻转操作:将传入的基本单位数据与数据大小相同且每个比特均为“0”的基本单位数据进行同或运算,以进行翻转;
若翻转标记位为“0”,则不进行比特翻转操作:将传入的基本单位数据保持不变。
由上述对本发明的描述可知,与现有技术相比,本发明具有如下有益效果:
(1)本发明将每个写入请求的数据划分成更小粒度的基本数据单位,然后根据基本数据单位中不同电位状态的数量判断是否需要进行比特翻转。对于高电位状态数量较多的数据,通过比特翻转将高电位状态转换为低电位状态再存储到固态盘;对于低电位状态数量较多的数据,保持其状态不变直接存储到固态盘。根据不同状态的错误特性不同的特点,降低易发生错误的电位状态数量,在减少错误数量的情况下,使用纠错码读取数据时会产生更低的延时,从而提高固态盘的读写性能、使用寿命和可靠性。
附图说明
图1为本发明实施例的方法流程图;
图2为本发明实施例数据内容的比特分析步骤的流程图;
图3为本发明实施例数据封装步骤的流程图;
图4为本发明实施例数据写入步骤的流程图;
图5为本发明实施例数据读取步骤的流程图;
图6为本发明提出的方法与基准方法比较的读取延迟的测试结果图,其中图6(a)-(h)分别代表不同的存储数据;
图7为本发明所提出的方法与基准方法比较的使用寿命的测试结果图,其中图7(a)为游戏文件(game files)、7(b)为镜像文件(image files)、7(c)为多媒体文件(multimedia files)、7(d)为可执行文件(Executable files)。
具体实施方式
以下通过具体实施方式对本发明作进一步的描述。
经多次实验验证,在闪存内部,通过往闪存单元内部充电来存储数据:以MLC为例,每个单元可以存储两个比特数据,即“11,10,01,00”,根据对闪存单元施加的电压不同,内部存储的电子数量不同,且,状态“11”需要施加最低的电压,而状态“00”则需要施加最高的电压,因此单元内部存储不同的电子数量需要保持不同的电压。读取数据时,通过读取闪存单元的电压来判断闪存单元存储的比特数据是四种类型中的哪一种;所以闪存单元存储的比特数据与单元内的电子数量(由电压决定)是一一相对应的关系。通常“11,10,01,00”四种比特数据所保存的电子数量与电压是从低到高的。
在此理论基础上,提出一种基于比特翻转的固态盘数据存储方法。
如图1是本发明实施例的一种基于比特翻转的固态盘数据存储方法的流程图,
一种基于比特翻转的固态盘数据存储方法,其特征在于,包括:
S10:初始化步骤:接收写入请求,在内存中初始化用于储存数值的变量,分别用于储存待写入数据的比特状态的数量;
如图2是本发明实施例数据内容的比特分析步骤的流程图;
S20:数据比特计数与翻转步骤:将数据分割成大小相等的基本单位,并对传入的每个基本单位内的比特状态进行统计分析,根据统计分析的基本单位内的比特状态数量,确定是否进行比特翻转操作,设置相应的翻转标记位,并进行相应的操作,得到处理后的数据;
具体地,所述数据比特计数与翻转步骤中,根据统计分析的基本单位内的比特状态数量,确定是否进行比特翻转操作,并设置相应的翻转标记位,具体包括:
第一变量记录状态‘00’的数量,第二变量记录状态‘01’的数量,第三变量记录状态‘11’的数量,第四变量记录状态‘10’的数量,判断第一变量和第二变量的总和是否大于第三变量和第四变量的总和,若是,设置翻转标记位为“1”,若否,设置翻转标记位为“0”。
具体地,同时读取每个基本单位相对应的翻转标记位,确定是否进行比特翻转操作,具体包括:
若翻转标记位为“1”,则进行比特翻转操作:将传入的基本单位数据与数据大小相同且每个比特均为“1”的基本单位数据进行异或运算,以进行翻转;
若翻转标记位为“0”,则不进行比特翻转操作:将传入的基本单位数据保持不变。
具体地,同时读取每个基本单位相对应的翻转标记位,确定是否进行比特翻转操作,并进行相应的操作,得到处理后的数据,具体包括:
若翻转标记位为“1”,还可以通过另一实施例实现进行比特翻转操作:将传入的基本单位数据与数据大小相同且每个比特均为“0”的基本单位数据进行同或运算,以进行翻转;
若翻转标记位为“0”,则不进行比特翻转操作:将传入的基本单位数据保持不变。
本实施例中,S201:将每个P KB大小的页面写入数据平均分割成M个大小相等的基本单位,每个基本单位的大小为N(N=P*1024/M)字节,转过程S202;
S202:传入每个大小为N字节的基本单位,计算每个基本单位中四种比特状态的数量。将变量“i”记录状态‘00’的数量,将变量“j”记录状态‘01’的数量,变量“i”和变量“j”总和记为易错状态总和,将变量“k”记录状态‘11’的数量,将变量“l”记录状态‘10’的数量,变量“k”和变量“l”总和记为非易错状态总和,转过程S203;
S203:判断易错状态总和的数值是否大于非易错状态总和,若是,转过程S204,否转过程S205;
S204:将传入的每个基本单位数据与数据大小为N字节且每个比特全为‘1’的基本单位进行异或运算,以进行比特翻转,并设置翻转标记位为‘1’,转过程S30;
S205:将传入的每个基本单位数据保持不变,并设置翻转标记位为‘0’,转过程S30;
如图3为本发明实施例数据封装步骤的流程图;
S30:数据封装步骤:将处理后的数据按照原有的数据顺序,进行封装,并将相应的翻转标记位按顺序封装成页面标记位;具体进行下列过程:
S301:将过程S20得到的M个大小为N字节的基本单位进行封装,依次根据原有的数据顺序,将M个基本单位封装为一个大小为P KB新页面数据,转过程S302:;
S302:将每个基本单位在步骤S20中得到的翻转标记位根据顺序封装成大小为M比特的页面标记位,转步骤S40;
如图4为本发明实施例数据写入步骤的流程图;
S40:数据写入步骤:将经过封装后的数据和页面标记位,分别写入存储介质的数据区域和备用区域。
将得到的数据写入固态盘中物理页的数据区域;将得到的页面标记位写入固态盘中物理页的备用区域;
数据写入阶段将原始数据根据比特状态数量翻转后再写入固态盘,在读取时需要按照写入时的翻转记录将固态盘内的数据恢复成为原始数据,数据写入与数据读取时,固态盘中为两个数据流方向相反,故在此分为两个单独的阶段,数据写入与数据读取阶段分别包含对应的数据操作步骤。
如图5为本发明实施例数据读取步骤的流程图,具体地,还包括:
S50:数据读取步骤:将写入数据分割成与数据比特计数与分析步骤大小相等的基本单位,同时读取每个基本单位相对应的翻转标记位,确定是否进行比特翻转操作,将所有基本单位根据翻转标记位完成操作后,结束。
在本实施例中:S501:读取固态盘中一个页面大小(P KB)的数据以及相对应备用区域内大小为M比特的页面标记位,转过程S502;
S502:将每个P KB大小的页面读取数据平均分割成M个大小相等的基本单位,每个基本单位的大小为N(N=P*1024/M)字节。同时读取每个基本单位相对应的翻转标记位,若翻转标记位是“0”,则保持该基本单位内的数据不变,否则转过程S503;
S503:将基本单位内的N字节数据与大小为N字节且与每个比特全为‘1’的基本单位进行异或运算,以进行比特翻转,转过程S504;
S504:将所有基本单位根据翻转标记位完成操作以后,依次根据原有的数据顺序,将M个大小为N字节的基本单位重新封装为P KB大小的页面数据。将P KB大小的页面数据传输至主机。
完成写入请求,释放内存中用于储存比特状态数量的内存空间。
本发明实施例的另一方面提供一种基于比特翻转的固态盘数据存储装置,包括,
初始化模块:用于接收写入请求,在内存中初始化用于储存数值的变量,分别用于储存待写入数据的比特状态的数量;
数据比特计数与翻转模块:用于将数据分割成大小相等的基本单位,并对传入的每个基本单位内的比特状态进行统计分析,根据统计分析的基本单位内的比特状态数量,确定是否进行比特翻转操作,设置相应的翻转标记位,并进行相应的操作,得到处理后的数据;
数据封装模块:用于将处理后的数据按照原有的数据顺序,进行封装,并将相应的翻转标记位按顺序封装成页面标记位;
数据写入模块:用于将经过封装后的数据和页面标记位,分别写入存储介质的数据区域和备用区域。
具体地,还包括:
数据读取模块:将写入数据分割成与数据比特计数与分析步骤大小相等的基本单位,同时读取每个基本单位相对应的翻转标记位,确定是否进行比特翻转操作,将所有基本单位根据翻转标记位完成操作后,结束。
具体地,所述数据比特计数与翻转步骤中,根据统计分析的基本单位内的比特状态数量,确定是否进行比特翻转操作,并设置相应的翻转标记位,具体包括:
第一变量记录状态‘00’的数量,第二变量记录状态‘01’的数量,第三变量记录状态‘11’的数量,第四变量记录状态‘10’的数量,判断第一变量和第二变量的总和是否大于第三变量和第四变量的总和,若是,设置翻转标记位为“1”,若否,设置翻转标记位为“0”。
具体地,同时读取每个基本单位相对应的翻转标记位,确定是否进行比特翻转操作,具体包括:
若翻转标记位为“1”,则进行比特翻转操作:将传入的基本单位数据与数据大小相同且每个比特均为“1”的基本单位数据进行异或运算,以进行翻转;
若翻转标记位为“0”,则不进行比特翻转操作:将传入的基本单位数据保持不变。
具体地,同时读取每个基本单位相对应的翻转标记位,确定是否进行比特翻转操作,并进行相应的操作,得到处理后的数据,具体包括:
若翻转标记位为“1”,则进行比特翻转操作:将传入的基本单位数据与数据大小相同且每个比特均为“0”的基本单位数据进行同或运算,以进行翻转;
若翻转标记位为“0”,则不进行比特翻转操作:将传入的基本单位数据保持不变。
下面通过具体的实验数据来验证本发明所提出方法实现的有益效果。
如图6为本发明所提出的方法BitFlip与没用使用位翻转的基准方法baseline比较的读取延迟的测试结果图,结果说明:我们所提出的方法BitFlip,与没用使用位翻转的基准方法baseline比较,在理论上拥有相同的原始位误码率(Raw Bits Error Rate-RBER)情况下,使读取延迟时间(Read Response Time)降低25.9%-34.2%,其中其中图6(a)-(h)分别代表不同的存储数据;
如图7为本发明所提出的方法BitFlip与没用使用位翻转的基准方法baseline比较使用寿命的测试结果图,在测试横坐标表示数据原始位误码率(Raw Bits Error Rate-RBER),纵坐标表示达到该误码率所需要经历的编程/擦除次数(P/E Cycle)。我们测试了四种常见的文件类型:图7(a)为游戏文件(game files)、图7(b)为镜像文件(image files)、图7(c)为多媒体文件(multimedia files)、图7(d)为可执行文件(Executable files)。试验结果表明:针对不同的文件类型,在达到相同原始位误码率的情况下,该方法使闪存可以经历更多的擦除次数。存储不同数据使的使用寿命提高了2.9%-33.3%。
综上,本发明所提出的方法能够根据不同状态的错误特性不同的特点,降低易发生错误的电位状态数量,在减少错误数量的情况下,使用纠错码读取数据时会产生更低的延时,从而提高固态盘的读写性能、使用寿命和可靠性。
上述仅为本发明的具体实施方式,但本发明的设计构思并不局限于此,凡利用此构思对本发明进行非实质性的改动,均应属于侵犯本发明保护范围的行为。

Claims (6)

1.一种基于比特翻转的固态盘数据存储方法,其特征在于,包括:
初始化步骤:接收写入请求,在内存中初始化用于储存数值的变量,分别用于储存待写入数据的比特状态的数量;
数据比特计数与翻转步骤:将数据分割成大小相等的基本单位,并对传入的每个基本单位内的比特状态进行统计分析,根据统计分析的基本单位内的比特状态数量,确定是否进行比特翻转操作,设置相应的翻转标记位,并进行相应的操作,得到处理后的数据;
数据封装步骤:将处理后的数据按照原有的数据顺序,进行封装,并将相应的翻转标记位按顺序封装成页面标记位;
数据写入步骤:将经过封装后的数据和页面标记位,分别写入存储介质的数据区域和备用区域;
数据读取步骤:将写入数据分割成与数据比特计数与分析步骤大小相等的基本单位,同时读取每个基本单位相对应的翻转标记位,确定是否进行比特翻转操作,将所有基本单位根据翻转标记位完成操作后,结束;
所述数据比特计数与翻转步骤中,根据统计分析的基本单位内的比特状态数量,确定是否进行比特翻转操作,并设置相应的翻转标记位,具体包括:
第一变量记录状态‘00’的数量,第二变量记录状态‘01’的数量,第三变量记录状态‘11’的数量,第四变量记录状态‘10’的数量,判断第一变量和第二变量的总和是否大于第三变量和第四变量的总和,若是,设置翻转标记位为“1”,若否,设置翻转标记位为“0”。
2.根据权利要求1所述的一种基于比特翻转的固态盘数据存储方法,其特征在于,同时读取每个基本单位相对应的翻转标记位,确定是否进行比特翻转操作,具体包括:
若翻转标记位为“1”,则进行比特翻转操作:将传入的基本单位数据与数据大小相同且每个比特均为“1”的基本单位数据进行异或运算,以进行翻转;
若翻转标记位为“0”,则不进行比特翻转操作:将传入的基本单位数据保持不变。
3.根据权利要求1所述的一种基于比特翻转的固态盘数据存储方法,其特征在于,同时读取每个基本单位相对应的翻转标记位,确定是否进行比特翻转操作,并进行相应的操作,得到处理后的数据,具体包括:
若翻转标记位为“1”,则进行比特翻转操作:将传入的基本单位数据与数据大小相同且每个比特均为“0”的基本单位数据进行同或运算,以进行翻转;
若翻转标记位为“0”,则不进行比特翻转操作:将传入的基本单位数据保持不变。
4.一种基于比特翻转的固态盘数据存储装置,其特征在于,包括,
初始化模块:用于接收写入请求,在内存中初始化用于储存数值的变量,分别用于储存待写入数据的比特状态的数量;
数据比特计数与翻转模块:用于将数据分割成大小相等的基本单位,并对传入的每个基本单位内的比特状态进行统计分析,根据统计分析的基本单位内的比特状态数量,确定是否进行比特翻转操作,设置相应的翻转标记位,并进行相应的操作,得到处理后的数据;
数据封装模块:用于将处理后的数据按照原有的数据顺序,进行封装,并将相应的翻转标记位按顺序封装成页面标记位;
数据写入模块:用于将经过封装后的数据和页面标记位,分别写入存储介质的数据区域和备用区域;
还包括:
数据读取模块:将写入数据分割成与数据比特计数与分析步骤大小相等的基本单位,同时读取每个基本单位相对应的翻转标记位,确定是否进行比特翻转操作,将所有基本单位根据翻转标记位完成操作后,结束;
所述数据比特计数与翻转模块中,根据统计分析的基本单位内的比特状态数量,确定是否进行比特翻转操作,并设置相应的翻转标记位,具体包括:
第一变量记录状态‘00’的数量,第二变量记录状态‘01’的数量,第三变量记录状态‘11’的数量,第四变量记录状态‘10’的数量,判断第一变量和第二变量的总和是否大于第三变量和第四变量的总和,若是,设置翻转标记位为“1”,若否,设置翻转标记位为“0”。
5.根据权利要求4所述的一种基于比特翻转的固态盘数据存储装置,其特征在于,同时读取每个基本单位相对应的翻转标记位,确定是否进行比特翻转操作,具体包括:
若翻转标记位为“1”,则进行比特翻转操作:将传入的基本单位数据与数据大小相同且每个比特均为“1”的基本单位数据进行异或运算,以进行翻转;
若翻转标记位为“0”,则不进行比特翻转操作:将传入的基本单位数据保持不变。
6.根据权利要求4所述的一种基于比特翻转的固态盘数据存储装置,其特征在于,同时读取每个基本单位相对应的翻转标记位,确定是否进行比特翻转操作,并进行相应的操作,得到处理后的数据,具体包括:
若翻转标记位为“1”,则进行比特翻转操作:将传入的基本单位数据与数据大小相同且每个比特均为“0”的基本单位数据进行同或运算,以进行翻转;
若翻转标记位为“0”,则不进行比特翻转操作:将传入的基本单位数据保持不变。
CN202010953993.XA 2020-09-11 2020-09-11 一种基于比特翻转的固态盘数据存储方法和装置 Active CN112181710B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010953993.XA CN112181710B (zh) 2020-09-11 2020-09-11 一种基于比特翻转的固态盘数据存储方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010953993.XA CN112181710B (zh) 2020-09-11 2020-09-11 一种基于比特翻转的固态盘数据存储方法和装置

Publications (2)

Publication Number Publication Date
CN112181710A CN112181710A (zh) 2021-01-05
CN112181710B true CN112181710B (zh) 2022-03-29

Family

ID=73920629

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010953993.XA Active CN112181710B (zh) 2020-09-11 2020-09-11 一种基于比特翻转的固态盘数据存储方法和装置

Country Status (1)

Country Link
CN (1) CN112181710B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113241112B (zh) * 2021-03-25 2023-11-21 成都佰维存储科技有限公司 坏块筛选方法、装置、计算机可读存储介质及电子设备
CN117393017A (zh) * 2022-07-05 2024-01-12 长鑫存储技术有限公司 数据传输结构、数据传输方法及存储器

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5931927A (en) * 1996-01-08 1999-08-03 Kabushiki Kaisha Toshiba Device for reducing the fluctuation of power supply voltage due to inductance by inverting bits in groups of data lines
CN101241482A (zh) * 2007-09-19 2008-08-13 威盛电子股份有限公司 数据总线的转位装置及执行数据总线转位的方法
CN106547487A (zh) * 2016-10-21 2017-03-29 华中科技大学 一种提高闪存可靠性的数据塑型方法
CN108242973A (zh) * 2016-12-26 2018-07-03 北京邮电大学 一种数据纠错方法及装置
CN113272907A (zh) * 2018-11-26 2021-08-17 美光科技公司 纠错位翻转方案

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7333364B2 (en) * 2000-01-06 2008-02-19 Super Talent Electronics, Inc. Cell-downgrading and reference-voltage adjustment for a multi-bit-cell flash memory
US9263136B1 (en) * 2013-09-04 2016-02-16 Western Digital Technologies, Inc. Data retention flags in solid-state drives
CN107590021B (zh) * 2017-08-22 2020-01-03 华中科技大学 一种降低闪存误码率的编、解码器和编、解码方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5931927A (en) * 1996-01-08 1999-08-03 Kabushiki Kaisha Toshiba Device for reducing the fluctuation of power supply voltage due to inductance by inverting bits in groups of data lines
CN101241482A (zh) * 2007-09-19 2008-08-13 威盛电子股份有限公司 数据总线的转位装置及执行数据总线转位的方法
CN106547487A (zh) * 2016-10-21 2017-03-29 华中科技大学 一种提高闪存可靠性的数据塑型方法
CN108242973A (zh) * 2016-12-26 2018-07-03 北京邮电大学 一种数据纠错方法及装置
CN113272907A (zh) * 2018-11-26 2021-08-17 美光科技公司 纠错位翻转方案

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GC-RAIS:一种基于垃圾回收感知的固态盘阵列;吴素贞;《计算机研究与发展》;20130115;第50卷(第1期);60-68 *

Also Published As

Publication number Publication date
CN112181710A (zh) 2021-01-05

Similar Documents

Publication Publication Date Title
JP6298249B2 (ja) 不揮発性メモリ装置とそれを含むメモリシステム及びそれらのメモリブロック管理、消去、及びプログラム方法
US10521292B2 (en) Error correction code unit, self-test method and associated controller applied to flash memory device for generating soft information
JP6202972B2 (ja) メモリシステム及びそれの読み出し校正方法
US9703698B2 (en) Data writing method, memory controller and memory storage apparatus
US8255643B2 (en) Memory system and data processing method thereof
US8510637B2 (en) Data reading method, memory storage apparatus and memory controller thereof
US9543983B2 (en) Decoding method, memory storage device and memory control circuit unit
US8578245B2 (en) Data reading method, memory storage apparatus, and controller thereof
US9348694B1 (en) Detecting and managing bad columns
US8612667B2 (en) Method for performing data pattern management regarding data accessed by a controller of a flash memory, and associated memory device and controller thereof
CN106843771B (zh) 存储器重读方法、存储器控制电路单元及存储器存储装置
US8719491B2 (en) Encoding flash memory data with a randomizer using different seeds for different sectors
US9171629B1 (en) Storage device, memory controller and memory control method
US9418731B1 (en) Memory management method, memory storage device and memory control circuit unit
CN106297883B (zh) 解码方法、存储器存储装置及存储器控制电路单元
CN112181710B (zh) 一种基于比特翻转的固态盘数据存储方法和装置
US9786388B1 (en) Detecting and managing bad columns
TW201443902A (zh) 資料讀取方法、控制電路、記憶體模組與記憶體儲存裝置
CN114550783A (zh) 控制器及其操作方法
CN109522237B (zh) 存储器的数据管理方法及存储器装置
CN115331721A (zh) 存储器系统、存储装置及其编程方法、读取方法
TW202145231A (zh) 記憶體裝置
CN111863080A (zh) 一种基于层间差异的3d闪存读性能优化方法
WO2024148459A1 (en) Dummy data-based read reference voltage search of nand memory
US11929762B2 (en) Low density parity check decoder and storage device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant