基于固态硬盘的ecc模块动态复用系统及方法

文档序号:6773128阅读:203来源:国知局
专利名称:基于固态硬盘的ecc模块动态复用系统及方法
技术领域
本发明涉及存储技术领域,尤其涉及一种基于固态硬盘的ECC模块动态复用系统 及方法。
背景技术
目前在固态硬盘(Solid State Disk)的控制器中,一般为了提高数据读取速度, 闪存的读写数据用的通道都在8 10个左右,每个通道的位宽为8bit。而由于数据存在不 稳定性,因此每个闪存的通道一般都要相应的配备一个ECC (Error Correcting Code,错误 检查和纠正)模块,目前比较主流的为BCH校错方法。现有固态硬盘的ECC校错技术原理 如图1所示,固态硬盘包括多个通道,每个通道包括一 ECC模块210、一闪存控制器220和一 闪存230,而每个ECC模块210又分为ECC编码器和ECC解码器。在每个通道将数据写入闪 存230之前,需要通过ECC编码器对数据进行编码;而在每个通道从闪存230读数据之后, 需要通过ECC解码器进行解码来还原数据。随着闪存工艺的不断变化,闪存接口的速度越来越高,ECC算法也越来越复杂,导 致ECC模块逐渐成为读取数据的瓶颈。一个闪存通道配置一个ECC模块已经不能满足控制 器的需求。但如果一个闪存通道分别配置多个ECC模块,不仅需要增加算法的复杂度,而且 导致芯片成本和功耗的增加。综上可知,现有固态硬盘ECC校错技术在实际使用上,显然存在不便与缺陷,所以 有必要加以改进。

发明内容
针对上述的缺陷,本发明的目的在于提供一种基于固态硬盘的ECC模块动态复用 系统及方法,其可以在不增加硬件资源占用的前提下,大大提升固态硬盘单通道的ECC编 解码速度。为了实现上述目的,本发明提供一种基于固态硬盘的ECC模块动态复用系统,所 述固态硬盘包括多个通道,每个所述通道分别设有一控制器和一 ECC模块,所述多个通道 被划分成至少一组,每组中各通道的控制器和ECC模块之间共同连接设有一多路选择器, 当所述一通道进行数据操作,而同组的其他通道空闲或部分空闲时,所述多路选择器将同 组的所述数据操作通道的ECC模块和所述空闲或部分空闲通道的ECC模块动态分配给所述 数据操作通道的控制器使用。根据本发明的ECC模块动态复用系统,所述ECC模块包括可分开使用的ECC编码 器和ECC解码器;在所述一通道进行读操作,而同组的其他通道进行写操作时,所述多路选择器将 同组的所述读操作通道的ECC解码器和其他写操作通道的ECC解码器动态分配给所述读操 作通道的控制器使用;或者在所述一通道进行写操作,而同组的其他通道进行读操作时,所述多路选择器将同组的所述写操作通道的ECC编码器和其他读操作通道的ECC编码器动态分配给所述写操 作通道的控制器使用。根据本发明的ECC模块动态复用系统,所述多个通道中每相邻两个通道构成一组。根据本发明的ECC模块动态复用系统,所述多路选择器为可编程控制寄存器。根据本发明的ECC模块动态复用系统,所述固态硬盘的存储介质采用闪存或者动 态随机存储器。本发明还提供一种基于固态硬盘的ECC模块动态复用方法,所述固态硬盘包括多 个通道,每个所述通道分别设有一控制器和一 ECC模块,所述方法包括步骤如下建立多路选择器步骤,所述多个通道被划分成至少一组,每组中各通道的控制器 和ECC模块之间共同连接设有一多路选择器;动态分配ECC模块步骤,当所述一通道进行数据操作,而同组的其他通道空闲或 部分空闲时,所述多路选择器将同组的所述数据操作通道的ECC模块和所述空闲或部分空 闲通道的ECC模块动态分配给所述数据操作通道的控制器使用。根据本发明的ECC模块动态复用系统,所述ECC模块包括可分开使用的ECC编码 器和ECC解码器;所述动态分配ECC模块步骤还包括在所述一通道进行读操作,而同组的其他通道进行写操作时,所述多路选择器将 同组的所述读操作通道的ECC解码器和其他写操作通道的ECC解码器动态分配给所述读操 作通道的控制器使用;或者在所述一通道进行写操作,而同组的其他通道进行读操作时,所述多路选择器将 同组的所述写操作通道的ECC编码器和其他读操作通道的ECC编码器动态分配给所述写操 作通道的控制器使用。根据本发明的ECC模块动态复用系统,所述建立多路选择器步骤中,所述多个通 道中每相邻两个通道构成一组。根据本发明的ECC模块动态复用系统,所述多路选择器为可编程控制寄存器。根据本发明的ECC模块动态复用系统,所述固态硬盘的存储介质采用闪存或者动 态随机存储器。本发明将固态硬盘中多通道分为至少一组,每组通道共设一多路选择器,多路选 择器根据各通道的操作情况对ECC模块进行动态配置,当一通道进行数据操作而同组的其 他通道空闲时,多路选择器可将空闲通道的ECC模块动态分配给数据操作通道的控制器使 用,这样一个通道可以同时占用两个或以上的ECC模块,从而可在不增加硬件资源占用的 前提下,固态硬盘单通道的ECC编解码速度可以比原来提升近两倍或以上,进而提高数据 读写吞吐率,同时降低硬件复杂度、芯片成本以及功耗。另外,ECC模块中的ECC编码器和 ECC解码器可以分开使用,因此在有大量读写并行运算的情况下,可大幅提高固态硬盘各通 道的并行读写能力。


图1是现有固态硬盘的ECC校错技术原理图;图2是本发明ECC模块动态复用系统的第一实施例结构5
图3是本发明ECC模块动态复用系统的第二实施例结构图;图4是本发明ECC模块动态复用系统中多路选择器的实施例结构图;图5是本发明基于固态硬盘的ECC模块动态复用方法的流程图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并 不用于限定本发明。图2示出了本发明基于固态硬盘的ECC模块动态复用系统的第一实施例结构,固 态硬盘包括多个通道,每个通道分别设有一 ECC模块10、一控制器20以及一存储单元30, ECC模块10又包括ECC编码器和ECC解码器。多个通道中每相邻两个通道构成一组,每组 中各通道的控制器20和ECC模块10之间共同连接设有一多路选择器40。在同一通道组 中,当一通道进行数据操作,而另一通道空闲或部分空闲时,多路选择器40将数据操作通 道(即正处于数据操作状态的通道)的ECC模块10和空闲或部分空闲通道(即正处于空 闲或部分空闲状态的通道)的ECC模块10动态分配给数据操作通道的控制器20使用,这 样一个通道可以同时占用两个ECC模块10,可在不增加硬件资源占用的前提下,固态硬盘 单通道的ECC编解码速度可以比原来提升近两倍。本发明中固态硬盘的存储介质可采用闪 存或者DRAM (Dynamic Random Access Memory,动态随机存储器),而闪存可以是NAND闪存寸。图2所示实施例中采用的是每相邻两个通道之间共设一多路选择器40,实际上也 可以是每相邻的三个或以上通道之间共设一多路选择器40,但是这样也会相对提高电路的 复杂性和控制算法的复杂性。另外,固态硬盘也可任意每任意两个或以上通道之间共设一 多路选择器,但与相邻通道之间共设多路选择器方案相比,非相邻通道共设多路选择器方 案的电路设计要相对复杂。优选地,由于ECC模块10中的ECC编码器和ECC解码器可以分开使用,因此通过 多路选择器40的动态配置,ECC编码器和ECC解码器可以分别给不同的控制器20使用,尤 其适用于在大量的读写并行操作中。具体实现方式如下当一通道进行读操作,而同组的其他通道进行写操作时,多路选择器40将同组的 读操作通道的ECC解码器和其他写操作通道的ECC解码器动态分配给读操作通道的控制器 20使用;或者当一通道进行写操作,而同组的其他通道进行读操作时,多路选择器40将同组的 写操作通道的ECC编码器和其他读操作通道的ECC编码器动态分配给写操作通道的控制器 20使用。这样,一个通道在读或写的时候可以借用另一个通道的ECC解码器或ECC编码器, 但是并不会影响另一个通道的写或读数据操作(此时该通道可被定义为处于部分空闲状 态),该结构能大幅提高整个硬盘控制器的性能,尤其适用于有大量读写并行运算的情况。图3示出了本发明基于固态硬盘的ECC模块动态复用系统的第二实施例结构,与 图2不同的是,固态硬盘的所有通道仅分成一个组,所有通道的控制器20和ECC模块10之 间共设有一多路选择器40,即所有ECC模块10均由一个多路选择器40操作以实现多路复用。当一通道进行数据操作,而其他通道空闲或部分空闲时,多路选择器40将数据操作通 道的ECC模块10和空闲或部分空闲通道的ECC模块10动态分配给数据操作通道的控制器 20使用,这样一个通道可以同时占用两个以上的ECC模块10,可在不增加硬件资源占用的 前提下,固态硬盘单通道的ECC编解码速度可以比原来提升两倍以上。当然,所有通道共用 一多路选择器40会提高电路的复杂性和控制算法的复杂性,应该根据具体的应用来进行 设置。图4示出了本发明一实施例中多路选择器的逻辑结构,其采用可编程控制寄存器 作为多路选择器,可编程控制寄存器可以动态配置不同的ECC编/解码器使用方案,可以一 对一使用,也可以一对二使用,从而保证了硬件复用功能。其实对于多通道的复用方案,同 样可以通过类似的开关结构来完成复用功能。通过上述ECC模块动态复用系统的使用,当固定硬盘中一个通道有大量的数据读 写,而另一个或另几个通道空闲或者部分空闲时,多路选择器40可以选通两个或以上ECC 模块10为一个控制器20使用,使得每一个控制器20实际可使用的ECC模块10变为两个 或以上,从而满足单个通道的快速读写需求。图5示出了本发明基于固态硬盘的ECC模块动态复用方法的流程,其通过如图2 或图3所示的ECC模块动态复用系统实现,该方法包括步骤如下步骤S501,将固态硬盘的多个通道划分成至少一组,每组中各通道的控制器20和 ECC模块10之间共同连接设有一多路选择器40,即每两个或以上的通道设有一多路选择器 40,多路选择器40分别与该两个或以上的通道的控制器20和ECC模块10连接。优选的 是,每相邻两个通道构成一组,通过多路选择器40动态分配相邻通道的ECC解码器或者编 码器,且多路选择器40可选用可编程控制寄存器。步骤S502,当一通道进行数据操作,而同组的其他通道空闲或部分空闲时,多路选 择器40将同组的数据操作通道的ECC模块10和空闲或部分空闲通道的ECC模块10动态 分配给数据操作通道的控制器20使用。本发明方法通过相邻通道或者多个通道ECC模块 10的动态共享提高了固态硬盘单通道校错的理论最大读写吞吐率。ECC模块10包括可分开使用的ECC编码器和ECC解码器,通过多路选择器40的动 态配置,ECC编码器和ECC解码器可以分别给不同的通道使用,从而提高控制器20并行读 写的能力。上述步骤S502中还可包括当一通道进行读操作,而同组的其他通道进行写操作时,多路选择器40将同组的 读操作通道的ECC解码器和其他写操作通道的ECC解码器动态分配给读操作通道的控制器 20使用,这样读操作通道可占有两个或以上的ECC解码器;或者当一通道进行写操作,而同组的其他通道进行读操作时,多路选择器40将同组的 写操作通道的ECC编码器和其他读操作通道的ECC编码器动态分配给写操作通道的控制器 20使用,这样写操作通道可占有两个或以上的ECC编码器。综上所述,本发明将固态硬盘中多通道分为至少一组,每组通道共设一多路选择 器,多路选择器根据各通道的操作情况对ECC模块进行动态配置,当一通道进行数据操作 而同组的其他通道空闲时,多路选择器可将空闲通道的ECC模块动态分配给数据操作通道 的控制器使用,这样一个通道可以同时占用两个或以上的ECC模块,从而可在不增加硬件 资源占用的前提下,固态硬盘单通道的ECC编解码速度可以比原来提升近两倍或以上,进而提高数据读写吞吐率,同时降低硬件复杂度、芯片成本以及功耗。另外,ECC模块中的ECC 编码器和ECC解码器可以分开使用,因此在有大量读写并行运算的情况下,可大幅提高固 态硬盘各通道的并行读写能力。 当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟 悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变 形都应属于本发明所附的权利要求的保护范围。
权利要求
一种基于固态硬盘的ECC模块动态复用系统,所述固态硬盘包括多个通道,每个所述通道分别设有一控制器和一ECC模块,其特征在于,所述多个通道被划分成至少一组,每组中各通道的控制器和ECC模块之间共同连接设有一多路选择器,当所述一通道进行数据操作,而同组的其他通道空闲或部分空闲时,所述多路选择器将同组的所述数据操作通道的ECC模块和所述空闲或部分空闲通道的ECC模块动态分配给所述数据操作通道的控制器使用。
2.根据权利要求1所述的ECC模块动态复用系统,其特征在于,所述ECC模块包括可分 开使用的ECC编码器和ECC解码器;在所述一通道进行读操作,而同组的其他通道进行写操作时,所述多路选择器将同组 的所述读操作通道的ECC解码器和其他写操作通道的ECC解码器动态分配给所述读操作通 道的控制器使用;或者在所述一通道进行写操作,而同组的其他通道进行读操作时,所述多路选择器将同组 的所述写操作通道的ECC编码器和其他读操作通道的ECC编码器动态分配给所述写操作通 道的控制器使用。
3.根据权利要求1所述的ECC模块动态复用系统,其特征在于,所述多个通道中每相邻 两个通道构成一组。
4.根据权利要求1所述的ECC模块动态复用系统,其特征在于,所述多路选择器为可编 程控制寄存器。
5.根据权利要求1所述的ECC模块动态复用系统,其特征在于,所述固态硬盘的存储介 质采用闪存或者动态随机存储器。
6.一种基于固态硬盘的ECC模块动态复用方法,所述固态硬盘包括多个通道,每个所 述通道分别设有一控制器和一 ECC模块,其特征在于,所述方法包括步骤如下建立多路选择器步骤,将所述多个通道划分成至少一组,每组中各通道的控制器和ECC 模块之间共同连接设有一多路选择器;动态分配ECC模块步骤,当所述一通道进行数据操作,而同组的其他通道空闲或部分 空闲时,所述多路选择器将同组的所述数据操作通道的ECC模块和所述空闲或部分空闲通 道的ECC模块动态分配给所述数据操作通道的控制器使用。
7.根据权利要求1所述的ECC模块动态复用系统,其特征在于,所述ECC模块包括可分 开使用的ECC编码器和ECC解码器;所述动态分配ECC模块步骤还包括在所述一通道进行读操作,而同组的其他通道进行写操作时,所述多路选择器将同组 的所述读操作通道的ECC解码器和其他写操作通道的ECC解码器动态分配给所述读操作通 道的控制器使用;或者在所述一通道进行写操作,而同组的其他通道进行读操作时,所述多路选择器将同组 的所述写操作通道的ECC编码器和其他读操作通道的ECC编码器动态分配给所述写操作通 道的控制器使用。
8.根据权利要求1所述的ECC模块动态复用系统,其特征在于,所述建立多路选择器步 骤中,所述多个通道中每相邻两个通道构成一组。
9.根据权利要求1所述的ECC模块动态复用系统,其特征在于,所述多路选择器为可编 程控制寄存器。
10.根据权利要求1所述的ECC模块动态复用系统,其特征在于,所述固态硬盘的存储 介质采用闪存或者动态随机存储器。
全文摘要
本发明设计存储技术领域,公开了一种基于固态硬盘的ECC模块动态复用系统,所述固态硬盘包括多个通道,每个所述通道分别设有一控制器和一ECC模块,所述多个通道被划分成至少一组,每组中各通道的控制器和ECC模块之间共同连接设有一多路选择器,当所述一通道进行数据操作,而同组的其他通道空闲或部分空闲时,所述多路选择器将同组的所述数据操作通道的ECC模块和所述空闲或部分空闲通道的ECC模块动态分配给所述数据操作通道的控制器使用。相应地,本发明还公开了一种基于固态硬盘的ECC模块动态复用方法。借此,本发明可以在不增加硬件资源占用的前提下,大大提升固态硬盘单通道的ECC编解码速度,进而提高数据读写吞吐率。
文档编号G11C7/10GK101964205SQ20101028558
公开日2011年2月2日 申请日期2010年9月17日 优先权日2010年9月17日
发明者刘伟, 张耀辉, 朱从义, 贾宗铭 申请人:记忆科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1