CN101964205B - 基于固态硬盘的ecc模块动态复用系统及方法 - Google Patents
基于固态硬盘的ecc模块动态复用系统及方法 Download PDFInfo
- Publication number
- CN101964205B CN101964205B CN 201010285582 CN201010285582A CN101964205B CN 101964205 B CN101964205 B CN 101964205B CN 201010285582 CN201010285582 CN 201010285582 CN 201010285582 A CN201010285582 A CN 201010285582A CN 101964205 B CN101964205 B CN 101964205B
- Authority
- CN
- China
- Prior art keywords
- ecc
- passage
- passages
- mux
- ecc module
- 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
Links
Images
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明设计存储技术领域,公开了一种基于固态硬盘的ECC模块动态复用系统,所述固态硬盘包括多个通道,每个所述通道分别设有一控制器和一ECC模块,所述多个通道被划分成至少一组,每组中各通道的控制器和ECC模块之间共同连接设有一多路选择器,当所述一通道进行数据操作,而同组的其他通道空闲或部分空闲时,所述多路选择器将同组的所述数据操作通道的ECC模块和所述空闲或部分空闲通道的ECC模块动态分配给所述数据操作通道的控制器使用。相应地,本发明还公开了一种基于固态硬盘的ECC模块动态复用方法。借此,本发明可以在不增加硬件资源占用的前提下,大大提升固态硬盘单通道的ECC编解码速度,进而提高数据读写吞吐率。
Description
技术领域
本发明涉及存储技术领域,尤其涉及一种基于固态硬盘的ECC模块动态复用系统及方法。
背景技术
目前在固态硬盘(Solid State Disk)的控制器中,一般为了提高数据读取速度,闪存的读写数据用的通道都在8~10个左右,每个通道的位宽为8bit。而由于数据存在不稳定性,因此每个闪存的通道一般都要相应的配备一个ECC(ErrorCorrecting 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模块动态复用系统的第一实施例结构图;
图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解码器可以分开使用,因此在有大量读写并行运算的情况下,可大幅提高固态硬盘各通道的并行读写能力。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (8)
1.一种基于固态硬盘的ECC模块动态复用系统,所述固态硬盘包括多个通道,每个所述通道分别设有一控制器和一ECC模块,其特征在于,所述多个通道被划分成至少一组,每组中各通道的控制器和ECC模块之间共同连接设有一多路选择器,当所述一通道进行数据操作,而同组的其他通道空闲或部分空闲时,所述多路选择器将同组的所述数据操作通道的ECC模块和所述空闲或部分空闲通道的ECC模块动态分配给所述数据操作通道的控制器使用;
所述ECC模块包括可分开使用的ECC编码器和ECC解码器;
在所述一通道进行读操作,而同组的其他通道进行写操作时,所述多路选择器将同组的所述读操作通道的ECC解码器和其他写操作通道的ECC解码器动态分配给所述读操作通道的控制器使用;或者
在所述一通道进行写操作,而同组的其他通道进行读操作时,所述多路选择器将同组的所述写操作通道的ECC编码器和其他读操作通道的ECC编码器动态分配给所述写操作通道的控制器使用。
2.根据权利要求1所述的ECC模块动态复用系统,其特征在于,所述多个通道中每相邻两个通道构成一组。
3.根据权利要求1所述的ECC模块动态复用系统,其特征在于,所述多路选择器为可编程控制寄存器。
4.根据权利要求1所述的ECC模块动态复用系统,其特征在于,所述固态硬盘的存储介质采用闪存或者动态随机存储器。
5.一种基于固态硬盘的ECC模块动态复用方法,所述固态硬盘包括多个通道,每个所述通道分别设有一控制器和一ECC模块,其特征在于,所述方法包括步骤如下:
建立多路选择器步骤,将所述多个通道划分成至少一组,每组中各通道的控制器和ECC模块之间共同连接设有一多路选择器;
动态分配ECC模块步骤,当所述一通道进行数据操作,而同组的其他通道空闲或部分空闲时,所述多路选择器将同组的所述数据操作通道的ECC模块和所述空闲或部分空闲通道的ECC模块动态分配给所述数据操作通道的控制器使用;
所述ECC模块包括可分开使用的ECC编码器和ECC解码器;所述动态分配ECC模块步骤还包括:
在所述一通道进行读操作,而同组的其他通道进行写操作时,所述多路选择器将同组的所述读操作通道的ECC解码器和其他写操作通道的ECC解码器动态分配给所述读操作通道的控制器使用;或者
在所述一通道进行写操作,而同组的其他通道进行读操作时,所述多路选择器将同组的所述写操作通道的ECC编码器和其他读操作通道的ECC编码器动态分配给所述写操作通道的控制器使用。
6.根据权利要求5所述的ECC模块动态复用方法,其特征在于,所述建立多路选择器步骤中,所述多个通道中每相邻两个通道构成一组。
7.根据权利要求5所述的ECC模块动态复用方法,其特征在于,所述多路选择器为可编程控制寄存器。
8.根据权利要求5所述的ECC模块动态复用方法,其特征在于,所述固态硬盘的存储介质采用闪存或者动态随机存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010285582 CN101964205B (zh) | 2010-09-17 | 2010-09-17 | 基于固态硬盘的ecc模块动态复用系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010285582 CN101964205B (zh) | 2010-09-17 | 2010-09-17 | 基于固态硬盘的ecc模块动态复用系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101964205A CN101964205A (zh) | 2011-02-02 |
CN101964205B true CN101964205B (zh) | 2013-08-07 |
Family
ID=43517051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010285582 Active CN101964205B (zh) | 2010-09-17 | 2010-09-17 | 基于固态硬盘的ecc模块动态复用系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101964205B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106653093A (zh) * | 2015-11-02 | 2017-05-10 | 爱思开海力士有限公司 | 半导体器件及其驱动方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102231284A (zh) * | 2011-06-02 | 2011-11-02 | 孙飞 | 一种降低闪存芯片数据写操作功耗的方法 |
CN102446559A (zh) * | 2011-09-06 | 2012-05-09 | 中国科学院微电子研究所 | 一种基于双端口sram的故障注入方法 |
CN103389924B (zh) * | 2013-07-25 | 2016-04-06 | 苏州国芯科技有限公司 | 应用于随机存储器的ecc存储系统 |
US9430326B2 (en) | 2014-07-22 | 2016-08-30 | HGST Netherlands B.V. | Multiple ECC codeword sizes in an SSD |
CN106502933A (zh) * | 2016-11-04 | 2017-03-15 | 郑州云海信息技术有限公司 | 一种硬盘可动态分配的四子星服务器系统 |
JP7450040B2 (ja) | 2020-09-14 | 2024-03-14 | チャンシン メモリー テクノロジーズ インコーポレイテッド | 半導体メモリ |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101527171A (zh) * | 2009-04-17 | 2009-09-09 | 成都市华为赛门铁克科技有限公司 | 一种多通道并行纠错的闪存控制方法和装置 |
CN101740103A (zh) * | 2008-11-11 | 2010-06-16 | 西安奇维测控科技有限公司 | 一种多通道闪存控制器 |
CN101772807A (zh) * | 2007-08-08 | 2010-07-07 | 英特尔公司 | 在多通道大容量存储装置中的ecc功能块布局 |
CN101800071A (zh) * | 2009-02-10 | 2010-08-11 | 三星电子株式会社 | 固态盘设备及其编程失败处理方法 |
-
2010
- 2010-09-17 CN CN 201010285582 patent/CN101964205B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101772807A (zh) * | 2007-08-08 | 2010-07-07 | 英特尔公司 | 在多通道大容量存储装置中的ecc功能块布局 |
CN101740103A (zh) * | 2008-11-11 | 2010-06-16 | 西安奇维测控科技有限公司 | 一种多通道闪存控制器 |
CN101800071A (zh) * | 2009-02-10 | 2010-08-11 | 三星电子株式会社 | 固态盘设备及其编程失败处理方法 |
CN101527171A (zh) * | 2009-04-17 | 2009-09-09 | 成都市华为赛门铁克科技有限公司 | 一种多通道并行纠错的闪存控制方法和装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106653093A (zh) * | 2015-11-02 | 2017-05-10 | 爱思开海力士有限公司 | 半导体器件及其驱动方法 |
CN106653093B (zh) * | 2015-11-02 | 2020-08-25 | 爱思开海力士有限公司 | 半导体器件及其驱动方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101964205A (zh) | 2011-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101964205B (zh) | 基于固态硬盘的ecc模块动态复用系统及方法 | |
US7779215B2 (en) | Method and related apparatus for accessing memory | |
CN101685381B (zh) | 固态大容量存储装置的数据串流 | |
CN101446924B (zh) | 一种数据存储及获取方法、系统 | |
US9003262B2 (en) | Memory controller, devices including the same, and operating method thereof | |
KR101431205B1 (ko) | 캐시 메모리 장치 및 캐시 메모리 장치의 데이터 처리 방법 | |
KR20090019593A (ko) | 이씨씨 제어 회로 및 그것을 포함하는 멀티채널 메모리시스템 | |
US20070214310A1 (en) | Nonvolatile memory system and management method for nonvolatile memory | |
WO2008066605B1 (en) | System for optimizing the performance and reliability of a storage controller cache offload circuit | |
JP2011204140A (ja) | 記憶装置 | |
CN104991737B (zh) | 一种基于存储卡阵列架构的硬盘实现方法 | |
CN104407933A (zh) | 一种数据的备份方法及装置 | |
JP2016510928A (ja) | 利用可能なメモリスペースに基づく冗長ストレージ構成の選択 | |
CN102298508A (zh) | 基于流的固态硬盘预读取的方法及装置 | |
KR20090131954A (ko) | 멀티 레벨 시그널링을 사용하는 메모리 카드 및 그것을포함하는 메모리 시스템 | |
CN102890617B (zh) | 存储器控制方法、存储器控制器与存储器储存装置 | |
KR20090020995A (ko) | 비휘발성 메모리의 데이터 처리 장치 및 방법 | |
US20140244926A1 (en) | Dedicated Memory Structure for Sector Spreading Interleaving | |
CN107622781B (zh) | 一种提升三层忆阻器写性能的编解码方法 | |
CN109144410A (zh) | 一种多通道提升raid保护下的闪存效能方法 | |
CN102568605B (zh) | 系统总线检错纠错方法和nand flash控制器 | |
EP4261694A1 (en) | Memory access method and device | |
KR20160118526A (ko) | 에러 정정 코드 생성방법 및 장치 | |
CN101350217B (zh) | 数据写入存储器的装置及其方法 | |
CN113393884B (zh) | 组合qlc编程方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |