CN103229154A - 对存储设备中的数据进行搬移的方法、装置及存储设备 - Google Patents
对存储设备中的数据进行搬移的方法、装置及存储设备 Download PDFInfo
- Publication number
- CN103229154A CN103229154A CN2010800686124A CN201080068612A CN103229154A CN 103229154 A CN103229154 A CN 103229154A CN 2010800686124 A CN2010800686124 A CN 2010800686124A CN 201080068612 A CN201080068612 A CN 201080068612A CN 103229154 A CN103229154 A CN 103229154A
- Authority
- CN
- China
- Prior art keywords
- data
- register
- storage device
- moving
- order
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
提供了一种对存储设备中的数据进行搬移的方法、装置及存储设备。该方法包括:命令存储设备将源块中的数据搬移到数据寄存器;读取所述数据寄存器中的数据,并对所述数据寄存器中的数据进行校验;如果校验出所述数据寄存器中的数据错误,则对所述数据寄存器中的数据进行纠错,将纠正后的数据写入到所述数据寄存器,并命令所述存储设备将所述数据寄存器中纠正后的数据搬移到目的块。该方法能够在对存储设备中的数据进行搬移时,提高数据的可靠性,同时降低对***性能的影响。
Description
对存储设备中的数据进行搬移的方法、 装置及存储设备 技术领域
本发明涉及数据存储技术领域,尤其涉及对存储设备中的数据进行搬移的 方法、 装置及存储设备。
背景技术
在一些存储设备中, 以页为基本存储单元,对这种存储设备中的数据进行 操作时, 与普通的存储设备有所不同。 以固态硬盘为例, 固态硬盘( Solid State Disk, SSD ), 也称作电子硬盘或者固态电子盘, 通常以 NAND型闪存(Flash ) 为存储介质。 Flash内部按块(block )和页(page )的方式来组织数据, 其中, 页 本存储单元, 一片 Flash由多个块组成, 一个块又由多个页组成。 Flash 的基本操作有: 读取、 写入、 擦除, 其中, 读写操作的基本单位是页, 擦除操 作的基本单位是块。
在一些情况下, 需要在两个块之间进行数据搬移, 即需要将源块的数据搬 移到目的块中。 为了完成该数据搬移过程, 通常可以如下进行: 外部控制器读 取源块中的数据, 然后由外部控制器将源块中的数据写入到目的块中。 但是, 由于读写操作的基本单位是页,使得外部控制器每次只能读写一页的数据; 而 一个块中会包含多页数据, 因此, 在整个数据搬移过程中, 外部控制器需要进 行多次的读写操作, 从而严重影响了***性能。
为了避免对***性能造成影响, 可以使用 copyback命令, copyback是一 种复制命令, 通过该命令可以将一个 block (源块)中的某个 page复制到另一 个 block (目的块) 的某个 page中。 因此, 在使用 copyback命令进行数据搬 移时, 外部控制器只需发送 copyback命令, Flash就可以自动将源块中的数据 搬移到目的块中。 当然, 由于 copyback操作的单位也是页, 因此, 外部控制 器可能也需要发送多次命令, 但是, 可以减少外部控制器的读写操作次数。 可 见, 在使用 copyback命令时, 能够给***性能带来很大的提升。
然而, 在使用 copyback 过程中可能会给数据可靠性带来隐患, 因为 copyback过程中某些数据可能会产生错误, 多次使用 copyback命令可能产生 数据错误累积, 甚至可能会使得新块中的数据失效。
总之,现有技术中在进行数据搬移时,无法兼顾***性能和数据的可靠性。 发明内容
本发明实施例提供了对存储设备中的数据进行搬移的方法、装置及存储设 备, 在进行数据搬移时, 能够在提高数据的可靠性的同时, 降低对***性能的 影响。
本发明实施例提供了如下方案:
一种对存储设备中的数据进行搬移的方法, 包括:
向存储设备发出第一搬移命令,以命令所述存储设备将源块中的数据搬移 到数据寄存器;
读取所述数据寄存器中的数据, 并对所述数据寄存器中的数据进行校验; 如果校验出所述数据寄存器中的数据错误,则对所述数据寄存器中的数据 进行纠错;
将纠正后的数据写入到所述数据寄存器,并向所述存储设备发出第二搬移 命令, 以命令所述存储设备将所述数据寄存器中的数据搬移到目的块。
一种对存储设备中的数据进行搬移的方法, 包括:
接收到外部控制器的第一搬移命令时, 将源块的数据搬移到数据寄存器; 当接收到所述外部控制器的第二搬移命令时,将所述数据寄存器中的数据 搬移到目的块。
一种对存储设备中的数据进行搬移的装置, 包括:
第一搬移命令单元, 用于向存储设备发出第一搬移命令, 以命令所述存储 设备将源块中的数据搬移到数据寄存器;
校验单元, 用于读取所述数据寄存器中的数据, 并对所述数据寄存器中的 数据进行校验;
纠错单元, 用于如果校验出所述数据寄存器中的数据错误, 则对所述数据 寄存器中的数据进行纠错, 将纠正后的数据写入到所述数据寄存器;
第二搬移命令单元, 用于向所述存储设备发出第二搬移命令, 以命令所述 存储设备将所述数据寄存器中的数据搬移到目的块。
一种存储设备, 包括:
第一搬移单元, 用于接收到外部控制器的第一搬移命令时, 将源块的数据 搬移到数据寄存器;
第二搬移单元, 用于当接收到所述外部控制器的第二搬移命令时,将所述 数据寄存器中的数据搬移到目的块。
通过本发明实施例, 能够在执行 COPYBACK命令的过程中, 对数据进行 校验,如果校验结果为正确, 则直接命令存储设备将页寄存器中的数据搬移到 目的块。 因此, 在校验正确的情况下, 外部控制器不需要执行写操作, 从而降 低了对***性能的影响; 同时, 由于已经由外部控制器对数据进行了校验, 因 此, 可以提高数据的可靠性。
另外, 如果校验结果为错误, 则可以对数据进行纠错, 然后将纠正后的数 据写入到页寄存器, 然后,命令存储设备将页寄存器中纠正后的数据搬移到目 的块中, 由此来保证数据的可靠性。 附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施 例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地, 下面描述 中的附图仅仅是本发明的一些实施例, 对于本领域普通技术人员来讲, 在不付 出创造性劳动性的前提下, 还可以根据这些附图获得其他的附图。
图 1是本发明实施例提供的方法的流程图;
图 2是本发明实施例提供的命令结构示意图;
图 3是本发明实施例提供的方法的示意图;
图 4是本发明实施例提供的另一方法的流程图;
图 5是本发明实施例提供的装置的示意图;
图 6是本发明实施例提供的存储设备的示意图。 具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、 完整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是 全部的实施例。基于本发明中的实施例, 本领域普通技术人员在没有作出创造
性劳动前提下所获得的所有其他实施例, 都属于本发明保护的范围。 首先需要说明的是, 为了便于描述, 下面均以固态硬盘为例对本发明实施 例提供的方法进行介绍。
为了便于理解本发明实施例, 首先介绍本发明实施例的应用场景。 通常, NAND Flash具有以下特性: 写入操作必须在空白区域进行, 如果目标区域已 经存在数据, 必须先擦除后写入。 即, 在向目的 page写入数据之前必须将目 的 block擦除。 但是在实际应用中存在以下情况:
一种情况是, 用户需要改写某 block中某 page的数据, 即, 该 block中已 经存在数据, 但是需要修改其中某个 page的数据。 此时, 根据 NAND Flash 的上述特性, 就无法直接在该 block中改写, 为了达到改写数据的目的, 就需 要使用另外一块擦除过的 block作为新块,将该 block中的数据搬移到新块中, 并在搬移过程中, 将改写后的数据写入到新块相应的 page中。
另一种情况是, 由于 NAND Flash的工艺不能保证在整个生命周期中保持 性能的可靠,因此,在 NAND Flash的生产中及使用过程中都可能会产生坏块。 坏块的特点是, 当进行向这个块写入数据或者擦除这个块的操作时,会出现错 误。 因此, 在向某个 block写入数据的过程中可能会遇到坏块, 即, 该 block 中已经写入了部分数据, 但是当到某一 page时, 发现无法写入。 此时, 需要 把该坏块中其他好的 page里面的内容备份到另外一个空的好块里面, 因此, 同样需要使用另外一块擦除过的 block作为新块, 将该坏块中已经存在的数据 搬移到新块中。
换而言之, 当需要改写某 block中某 page的数据, 或者, 当向某 block写 入数据的过程中遇到坏块时, 都需要将源块中的数据搬移到目的块中。 其中, 该需要改写的数据所在的 block, 或者发生坏块的 block就是源块, 作为新块 的另外一块擦除过的 block就是目的块。
例如, 在一片 flash中, block m中存储用户数据, 如果需要改写其中的 page n, 则根据 flash的特性, 不能直接将修改后的数据写入 block m, 而必须 另找一个擦除过的块 block p,然后将 block m中的有效数据和需要改写的数据 搬移到 block p。
如果使用 copyback命令, 则在上述例子中,数据搬移的过程为: 将 page n 之前的所有 page使用 copyback命令搬移 block 的相应 page; 外部控制器将 修改后的 page n的数据写入到 block 的 page n; 然后, 将 age n之后的所有 page使用 copyback命令搬移 block 的相应 page。
需要说明的是, 固态硬盘由控制单元和固态存储单元( DRAM或 FLASH 芯片 )两部分组成。 其中, 控制单元的主要功能是读取、 写入数据, 存储单元 的主要功能的是存储数据。 当使用 copyback命令时, 是由外部控制器向固态 硬盘的控制单元发送命令,然后由固态硬盘的控制单元完成具体的数据搬移过 程, 因此, 不需要外部控制器进行写入操作, 就可以将源块的数据搬移到新块 中相应的 page中。 因此, 整个数据搬移过程中, 数据不会经过外部控制器。 而固态硬盘的控制单元通常不具备数据校验功能, 因此, 如果 copyback过程 中某些数据产生错误, 就无法得到及时地发现或者纠正,使得目的块中的数据 可能已经存在错误。
另外需要说明的是, 如果操作时序和电路稳定性不存在问题, 则 NAND Flash出错时一般不会造成整个 block或整个 page都出错,而是 page中只有一 个或少数几个比特出错, 基于该特点, NAND Flash 中的数据通常使用 ECC ( Error Checking and Correcting,错误检查和纠正)进行数据校验。但是, ECC 的纠错能力通常是比较有限的, 例如, 使用汉明码纠错时, 只能纠正单比特错 误和检测双比特错误, 即, 当数据中只有一个比特出错时, 则使用 ECC能够 检测出该错误,并且能够将其纠正;但是, 当数据中两个比特的数据都出错时, 则使用 ECC就只能检测出该错误, 但无法纠正; 如果数据中三个比特的数据 都出错, 则使用 ECC无法检测出该错误。 当然, 在实际应用中, 通常会釆用 纠错能够较强的 ECC来进行纠错, 例如, 通常可以纠正 4比特或者 8比特错 误。
但是, 即使使用纠错能力较强的 ECC, ECC的纠错能力总是有限的, 如 果 copyback过程使得搬移到目的块中的数据产生错误, 则在对目的块中的数 据进行校验时(在需要使用该目的块中的数据时, 都会首先对该块中的数据进 行校验)可能会由于超出 ECC的纠错能力, 而导致数据失效。
本发明实施例就是在上述问题的基础上,提供的对存储设备中的数据进行
搬移的方法, 下面进行详细描述。
参见图 1 , 本发明实施例提供的对存储设备中的数据进行搬移的方法包括 以下步骤:
S101 : 向存储设备发出第一搬移命令, 以命令所述存储设备将源块中的数 据搬移到数据寄存器;
例如,对于 NAND Flash的操作,地址、命令、数据的传递都是通过 NAND Flash 的页寄存器来完成的, 其中, 该页寄存器就是一种数据寄存器, NAND Flash中的控制单元在执行 copyback命令时, 会首先将源块中的数据搬移到页 寄存器, 然后再从页寄存器搬移到目的块中。 由于 copyback操作的单位是页, 因此, 每次搬移一页的数据到页寄存器中。
S102: 读取所述数据寄存器中的数据, 并对所述数据寄存器中的数据进行 校验;
当 NAND Flash中的控制单元将源块中的数据搬移到页寄存器后, 外部控 制器就可以读取页寄存器中的数据, 然后对这些数据进行校验。 可见, 进行数 据校验时, 这些数据尚未搬移到目的块中。
具体在对寄存器中的数据进行校验时,外部控制器也是使用 ECC进行的。 因为在数据存入 NAND Flash中时, 都会进行 ECC编码, 所以, 进行校验时, 利用 ECC就可以判断出寄存器中的数据是否正确。 关于具体的校验方法, 已 属于现有技术为本领域技术人员所公知, 因此可以参照现有技术中的方法实 现, 这里不再赘述。
S103: 如果校验出所述数据寄存器中的数据错误, 则对所述数据寄存器中 的数据进行纠错;
S104: 将纠正后的数据写入到所述数据寄存器, 并向所述存储设备发出第 二搬移命令, 以命令所述存储设备将所述数据寄存器中的数据搬移到目的块。
外部控制器在对数据寄存器中当前的数据进行校验后, 如果发现数据正 确, 则可以直接向存储设备发出所述第二搬移命令, 以命令存储设备中的控制 单元,将数据寄存器中的数据搬移到目的块中。如果校验的结果是所述数据寄 存器中的数据存在错误,则外部控制器需要对所述数据寄存器中的数据进行纠
错,将纠正后的数据写入到所述数据寄存器,并向存储设备发出第二搬移命令, 以命令所述存储设备将所述数据寄存器中的数据搬移到目的块。 可以看出,在 本发明实施例中,存储设备中的控制单元将源块中的数据搬移到数据寄存器之 后, 并不是直接将数据寄存器中的数据搬移到目的块, 而是要等待外部控制器 的第二搬移命令, 只有接收到外部控制器的第二搬移命令时, 才会将数据寄存 器中的数据搬移到目的块中。
以存储设备为 NAND Flash为例, 在本发明实施例中, 将 copyback命令 分成了两部分, 当向 NAND Flash中的控制单元发送第一搬移命令时 , NAND Flash中的控制单元会将源块中的数据搬移到页寄存器, 当向 NAND Flash中 的控制单元发送第二搬移命令时, NAND Flash中的控制单元再将页寄存器中 的数据搬移到目的块。 而现有技术中利用 copyback命令进行数据搬移的过程 中, 如果外部控制器向 NAND Flash 中的控制单元发送 copyback命令, 则 NAND Flash中的控制单元会将源块中的数据搬移到页寄存器, 并且直接将页 寄存器中的数据搬移到目的块中相应的页。 因此, 本发明实施例中, 完成一次 数据搬移, 则外部控制器需要向 NAND Flash中的控制单元发送两次命令, 并 且在两次命令之间, 由外部控制器完成对数据的校验过程。
在实际应用中,上述第一搬移命令可以表示为 read for copyback ( copyback 的读命令), 第二搬移命令可以表示为 program for copyback ( copyback的编程 样进行:
步骤 1 : 外部控制器向 NAND Flash中的控制单元发送 read for copyback 命令, 用以命令 NAND Flash中的控制单元将源块中的数据搬移到页寄存器;
NAND Flash中的控制单元以页为单位进行数据搬移, 即每次从源块中搬 移一页的数据到页寄存器中。
步骤 2: 外部控制器读取页寄存器中的数据;
步骤 3: 外部控制器对寄存器中的数据进行校验;
步骤 4: 如果校验结果为正确, 则向 NAND Flash 中的控制单元发送 program for copyback命令, NAND Flash中的控制单元在接收到 program for
copyback命令之后, 就可以直接将页寄存器中的数据搬移到目的块中。
其中, 由于搬移操作为单位页, 因此, 每次在将页寄存器中的数据搬移到 目的块时, 是将页寄存中的数据搬移到目的块中相应的页中, 其中, 在确定目 的块中的页时, 相当于一个寻址过程, 这里不再赘述。
由上述可见, 由于每次搬移到寄存器中的是一页数据, 外部控制器每次从 寄存器读取的也是一页的数据,假设源块中包含 η页数据, 则外部控制器需要 执行 η次读取操作。 但是, 在数据正确的情况下, 外部控制器不需要执行写入 操作, 同时, 由于数据搬移的过程中对数据进行了校验, 因此, 可以保证在从 源块搬移到页寄存器中的数据是正确的, 提高了目的块中数据的可靠性。
此外, 在上述步骤 3之后, 如果外部控制器发现数据错误, 则可以按照以 下步骤包括:
步骤 5: 外部控制器使用 ECC模块对数据进行纠错;
步骤 6: 外部控制器将纠正后的数据写入到页寄存器中;
步骤 7 : 外部控制器向 NAND Flash 中的控制单元发送 rogram for copyback命令, NAND Flash中的控制单元将纠正后的数据搬移到目的块中。
可见, 在本发明实施例中, 是在将源数据搬移到目的块之前, 由外部控制 器对源数据进行校验, 并且当发现有错误时, 对源数据进行糾错, 然后再将纠 错后的数据写入到目的块中。 换言之, 在本发明实施例中, 校验及纠错的对象 是源数据,并且即使在校验过程中发现数据错误,也只需要执行一次写入操作, 因此, 大大减少了***的开销, 并且能够保证数据的有效性。
参见图 3 , 其给出了当外部控制器发现数据错误并且能够纠错时, 数据搬 移的过程, 包括:
S301 : NAND Flash中的控制单元执行 read for copyback命令, 将源块中 的数据搬移到页寄存器;
S302: 外部控制器读取页寄存器中的数据;
S303: 外部控制器对页寄存器中的数据进行校验并进行纠错;
S304: 外部控制器将纠正后的数据写入到页寄存器中;
S305: NAND Flash中的控制单元执行 rogram for copyback命令,将页寄 存器中纠正后的数据搬移到目的块中。
图 3中没有标示出外部控制器向 NAND Flash中的控制单元发送命令的过 程, 不过从前文的描述中可以确定, NAND Flash中的控制单元在执行的各种 命令, 都是由外部控制器发送的。
可见, 如果页寄存器中的数据出现错误, 则外部控制器需要针对出错的数 据进行纠错之后, 执行写入操作。 其中, 执行写入操作的次数等于纠错次数。 由于出错的情况毕竟是少数, 因此, 外部控制器执行的总的读取、 写入次数还 是会少于现有技术不使用 copyback时的实现方法中, 外部控制器执行的总的 读取、 写入次数减少, 因此, 也有利于降低对***性能的影响。
需要说明的是,前文所述读写操作的执行单位是 page,是对 Flash而言的, 也就是说, 如果是 Flash的内部控制器执行读写操作, 则会以 page为单位。 但 是, 外部控制器进行读写时不一定是以 page为单位的, 因此, 当外部控制器 发现错误数据并纠正之后,在需要写入 Flash的页寄存器时,可以仅将最小 ECC 单位的数据写入到页寄存器中。 例如, 假设最小 ECC单位为一个扇区, 则最 小 ECC单位是指每次对一个扇区的数据执行 ECC校验,则发现当前扇区的数 据发生错误 (可能是该扇区中某个或某几个比特的数据 )时, 就可以将发生错 误的数据纠正之后, 将该扇区的数据写入到页寄存器中。
将源块中的全部数据都搬移到目的块之后, 源块的数据可能已经无效, 因 此, 就可以将源块中的数据擦除, 以备用于存储其他数据。
从前述实施例中的描述可知, 对于存储设备而言, 参见图 4, 该方法可以 包括以下步骤:
S401 :接收到外部控制器的第一搬移命令时,将源块的数据搬移到数据寄 存器;
S402: 当接收到所述外部控制器的第二搬移命令时,将所述数据寄存器中 的数据搬移到目的块。
对于固态硬盘而言, 在将源块的数据搬移到页寄存器之后, 固态硬盘并不 是直接将页寄存器中的数据搬移到目的块中, 而是要等待外部控制器的命令,
当收到外部控制器的 program for copyback命令时, 再将页寄存器中的数据搬 移到目的块。
在固态硬盘等待的过程中, 外部控制器对页寄存器中的数据进行校验, 其 中,在外部控制器在校验过程中没有发现错误的情况下, 页寄存器中待搬移到 目的块中的数据就是之前从源块搬移到页寄存器中的源数据本身。在外部控制 器发现错误并且能够进行纠错的情况下, 外部控制器可以对数据进行纠错, 并 将纠正后的数据写入到固态硬盘的页寄存器中,然后命令固态硬盘将页寄存器 中纠正后的数据搬移到目的块。相应的, 页寄存器中待搬移到目的块的数据是 由外部控制器纠正后的数据。
与本发明实施例提供的对存储设备中的数据进行搬移的方法相对应 ,本发 明实施例还提供了一种对存储设备中的数据进行搬移的装置, 参见图 5 , 该装 置包括以下单元:
第一搬移命令单元 501 , 用于向存储设备发出第一搬移命令, 以命令所述 存储设备将源块中的数据搬移到数据寄存器;
校验单元 502, 用于读取所述数据页寄存器中的数据, 并对所述数据寄存 器中的数据进行校验;
纠错单元 503 , 用于如果检测出所述数据寄存器中的数据错误, 则对所述 数据寄存器中的数据进行纠错, 将纠正后的数据写入到所述数据寄存器;
第二搬移命令单元 504, 用于向所述存储设备发出第二搬移命令, 以命令 所述存储设备将所述数据寄存器中的数据搬移到目的块。
其中,校验单元 502可以使用 ECC对所述数据寄存器中的数据进行校验; 纠错单元 503同样可以使用 ECC对所述数据寄存器中的数据进行纠错。
如果校验的结果是没有错误, 则第二搬移命令单元 504还用于:
如果校验出所述数据寄存器中的数据正确 ,则向所述存储设备发出所述第 二搬移命令。
仍以固态硬盘为例, 所述的数据寄存器是指固态硬盘的页寄存器。通过本 发明实施例提供的上述装置, 如果校验结果为错误, 则可以对数据进行纠错, 然后将纠正后的数据写入到页寄存器, 然后,命令固态硬盘将页寄存器中纠正
后的数据搬移到目的块中, 由此来保证数据的可靠性。 另外, 在校验正确的情 况下, 外部控制器不需要执行写操作, 从而降低了对***性能的影响。 同时, 由于已经由外部控制器对数据进行了校验, 因此, 可以提高数据的可靠性。
本发明实施例还提供了一种存储设备, 参见图 6, 该存储设备包括以下单 元:
第一搬移单元 601 , 用于接收到外部控制器的第一搬移命令时, 将源块的 数据搬移到数据寄存器;
第二搬移单元 602, 用于当接收到所述外部控制器的第二搬移命令时, 将 所述数据寄存器中的数据搬移到目的块。
其中, 所述存储设备包括固态硬盘, 所述数据寄存器包括所述固态硬盘的 页寄存器。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤 是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可 读取存储介质中, 该程序在执行时, 包括如下步骤: 向存储设备发出第一搬移 命令, 以命令所述存储设备将源块中的数据搬移到数据寄存器; 读取所述页寄 存器中的数据, 并对所述寄存器中的数据进行校验; 如果校验出所述寄存器中 的数据错误, 则对所述寄存器中的数据进行纠错, 将纠正后的数据写入到所述 页寄存器, 并向所述存储设备发出第二搬移命令, 以命令所述存储设备将所述 数据寄存器中的数据搬移到目的块。 所述的存储介质,如: ROM/RAM、磁碟、 光盘等。
以上所述仅是本发明的优选实施方式,应当指出, 对于本技术领域的普通 技术人员来说, 在不脱离本发明原理的前提下, 还可以做出若干改进和润饰, 这些改进和润饰也应视为本发明的保护范围。
Claims (10)
- 权 利 要 求1、 一种对存储设备中的数据进行搬移的方法, 其特征在于, 包括: 向存储设备发出第一搬移命令,以命令所述存储设备将源块中的数据搬移 到数据寄存器;读取所述数据寄存器中的数据, 并对所述数据寄存器中的数据进行校验; 如果校验出所述数据寄存器中的数据错误,则对所述数据寄存器中的数据 进行纠错;将纠正后的数据写入到所述数据寄存器,并向所述存储设备发出第二搬移 命令, 以命令所述存储设备将所述数据寄存器中的数据搬移到目的块。
- 2、 根据权利要求 1所述的方法, 其特征在于, 所述对所述数据寄存器中 的数据进行校验包括: 使用错误检查和纠正 ECC对所述寄存器中的数据进行 校验;所述对所述数据寄存器中的数据进行纠错包括: 使用 ECC对所述寄存器 中的数据进行纠错。
- 3、 根据权利要求 1所述的方法, 其特征在于, 还包括:如果校验出所述数据寄存器中的数据正确 ,则向所述存储设备发出所述第 二搬移命令。
- 4、 一种对存储设备中的数据进行搬移的方法, 其特征在于, 包括: 接收到外部控制器的第一搬移命令时, 将源块的数据搬移到数据寄存器; 当接收到所述外部控制器的第二搬移命令时,将所述数据寄存器中的数据 搬移到目的块。
- 5、 一种对存储设备中的数据进行搬移的装置, 其特征在于, 包括: 第一搬移命令单元, 用于向存储设备发出第一搬移命令, 以命令所述存储 设备将源块中的数据搬移到数据寄存器;校验单元, 用于读取所述数据寄存器中的数据, 并对所述数据寄存器中的 数据进行校验;纠错单元, 用于如果校验出所述数据寄存器中的数据错误, 则对所述数据 寄存器中的数据进行纠错, 将纠正后的数据写入到所述数据寄存器;第二搬移命令单元, 用于向所述存储设备发出第二搬移命令, 以命令所述 存储设备将所述数据寄存器中的数据搬移到目的块。
- 6、 根据权利要求 5所述的装置, 其特征在于, 所述校验单元使用 ECC对 所述数据寄存器中的数据进行校验; 所述纠错单元使用 ECC对所述数据寄存 器中的数据进行纠错。
- 7、 根据权利要求 5所述的装置, 其特征在于, 所述第二搬移命令单元还 用于:如果校验出所述数据寄存器中的数据正确 ,则向所述存储设备发出所述第 二搬移命令。
- 8、 根据权利要求 5至 7任一项所述的装置, 其特征在于, 所述存储设备 包括固态硬盘, 所述数据寄存器包括所述固态硬盘的页寄存器。
- 9、 一种存储设备, 其特征在于, 包括:第一搬移单元, 用于接收到外部控制器的第一搬移命令时, 将源块的数据 搬移到数据寄存器;第二搬移单元, 用于当接收到所述外部控制器的第二搬移命令时,将所述 数据寄存器中的数据搬移到目的块。
- 10、 根据权利要求 9所述的存储设备, 其特征在于, 所述存储设备包括固 态硬盘, 所述数据寄存器包括所述固态硬盘的页寄存器。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2010/076047 WO2012022024A1 (zh) | 2010-08-17 | 2010-08-17 | 对存储设备中的数据进行搬移的方法、装置及存储设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103229154A true CN103229154A (zh) | 2013-07-31 |
Family
ID=45604679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010800686124A Pending CN103229154A (zh) | 2010-08-17 | 2010-08-17 | 对存储设备中的数据进行搬移的方法、装置及存储设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103229154A (zh) |
WO (1) | WO2012022024A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110673999A (zh) * | 2019-09-27 | 2020-01-10 | 苏州浪潮智能科技有限公司 | 一种硬盘数据搬移测试方法、装置及电子设备和存储介质 |
CN112083891A (zh) * | 2020-09-22 | 2020-12-15 | 深圳芯邦科技股份有限公司 | 一种存储器中数据块的检测方法及相关设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101290602B (zh) * | 2008-06-13 | 2010-10-27 | 松翰科技股份有限公司 | 存储器管理***与方法 |
CN101740123B (zh) * | 2008-11-10 | 2012-04-04 | 扬智科技股份有限公司 | 存储器的数据保护方法 |
CN101634938A (zh) * | 2009-08-20 | 2010-01-27 | 成都市华为赛门铁克科技有限公司 | 固态硬盘的数据迁移方法、数据迁移装置及固态硬盘 |
-
2010
- 2010-08-17 CN CN2010800686124A patent/CN103229154A/zh active Pending
- 2010-08-17 WO PCT/CN2010/076047 patent/WO2012022024A1/zh active Application Filing
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110673999A (zh) * | 2019-09-27 | 2020-01-10 | 苏州浪潮智能科技有限公司 | 一种硬盘数据搬移测试方法、装置及电子设备和存储介质 |
CN110673999B (zh) * | 2019-09-27 | 2022-07-22 | 苏州浪潮智能科技有限公司 | 一种硬盘数据搬移测试方法、装置及电子设备和存储介质 |
CN112083891A (zh) * | 2020-09-22 | 2020-12-15 | 深圳芯邦科技股份有限公司 | 一种存储器中数据块的检测方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2012022024A1 (zh) | 2012-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4901987B1 (ja) | 記憶装置、電子機器及び誤りデータの訂正方法 | |
US8312349B2 (en) | Error detection/correction based memory management | |
US7921339B2 (en) | Flash storage device with data correction function | |
KR101648531B1 (ko) | 불휘발성 메모리 시스템과 이의 동작 방법 | |
US20070170268A1 (en) | Memory cards, nonvolatile memories and methods for copy-back operations thereof | |
CN107957959B (zh) | 具有文件级安全擦除的存储器***及其操作方法 | |
CN110473582B (zh) | 存储器***及其操作方法 | |
KR102564774B1 (ko) | 메모리 시스템 혹은 데이터 처리 시스템의 동작을 진단하는 장치 혹은 진단을 통해 신뢰성을 확보하는 방법 | |
US8902671B2 (en) | Memory storage device, memory controller thereof, and method for programming data thereof | |
US10761953B2 (en) | Memory system and method for operating the same | |
US7844878B2 (en) | Dynamic electronic correction code feedback to extend memory device lifetime | |
US8756398B2 (en) | Partitioning pages of an electronic memory | |
US9436397B2 (en) | Validating the status of memory operations | |
TW201541251A (zh) | 快閃記憶體控制器以及資料儲存裝置以及快閃記憶體控制方法 | |
US20150046772A1 (en) | Method and device for error correcting code (ecc) error handling | |
US8219883B2 (en) | Data accessing method, controller and storage system using the same | |
US20130166991A1 (en) | Non-Volatile Semiconductor Memory Device Using Mats with Error Detection and Correction and Methods of Managing the Same | |
CN105808371A (zh) | 数据备份与恢复方法、控制芯片及存储装置 | |
CN110910941B (zh) | 存储器***及其操作方法 | |
CN103631670A (zh) | 存储器储存装置、存储器控制器与数据处理方法 | |
KR20160074025A (ko) | 데이터 저장 장치의 동작 방법 | |
US9946644B2 (en) | Memory system and operating method thereof | |
US9754682B2 (en) | Implementing enhanced performance with read before write to phase change memory | |
US20100262892A1 (en) | Data access method for flash meory and storage system and controller thereof | |
CN112802530B (zh) | Nand测试方法、装置、可读存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent for invention or patent application | ||
CB02 | Change of applicant information |
Address after: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River Applicant after: Huawei Symantec Technologies Co., Ltd. Address before: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River Applicant before: Chengdu Huawei Symantec Technologies Co., Ltd. |
|
COR | Change of bibliographic data |
Free format text: CORRECT: APPLICANT; FROM: CHENGDU HUAWEI SYMANTEC TECHNOLOGIES CO., LTD. TO: HUAWEI DIGITAL TECHNOLOGY (CHENGDU) CO., LTD. |
|
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130731 |