專利名稱:基于固態(tài)硬盤的ecc模塊動態(tài)復(fù)用系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及存儲技術(shù)領(lǐng)域,尤其涉及一種基于固態(tài)硬盤的ECC模塊動態(tài)復(fù)用系統(tǒng) 及方法。
背景技術(shù):
目前在固態(tài)硬盤(Solid State Disk)的控制器中,一般為了提高數(shù)據(jù)讀取速度, 閃存的讀寫數(shù)據(jù)用的通道都在8 10個左右,每個通道的位寬為8bit。而由于數(shù)據(jù)存在不 穩(wěn)定性,因此每個閃存的通道一般都要相應(yīng)的配備一個ECC (Error Correcting Code,錯誤 檢查和糾正)模塊,目前比較主流的為BCH校錯方法。現(xiàn)有固態(tài)硬盤的ECC校錯技術(shù)原理 如圖1所示,固態(tài)硬盤包括多個通道,每個通道包括一 ECC模塊210、一閃存控制器220和一 閃存230,而每個ECC模塊210又分為ECC編碼器和ECC解碼器。在每個通道將數(shù)據(jù)寫入閃 存230之前,需要通過ECC編碼器對數(shù)據(jù)進(jìn)行編碼;而在每個通道從閃存230讀數(shù)據(jù)之后, 需要通過ECC解碼器進(jìn)行解碼來還原數(shù)據(jù)。隨著閃存工藝的不斷變化,閃存接口的速度越來越高,ECC算法也越來越復(fù)雜,導(dǎo) 致ECC模塊逐漸成為讀取數(shù)據(jù)的瓶頸。一個閃存通道配置一個ECC模塊已經(jīng)不能滿足控制 器的需求。但如果一個閃存通道分別配置多個ECC模塊,不僅需要增加算法的復(fù)雜度,而且 導(dǎo)致芯片成本和功耗的增加。綜上可知,現(xiàn)有固態(tài)硬盤ECC校錯技術(shù)在實際使用上,顯然存在不便與缺陷,所以 有必要加以改進(jìn)。
發(fā)明內(nèi)容
針對上述的缺陷,本發(fā)明的目的在于提供一種基于固態(tài)硬盤的ECC模塊動態(tài)復(fù)用 系統(tǒng)及方法,其可以在不增加硬件資源占用的前提下,大大提升固態(tài)硬盤單通道的ECC編 解碼速度。為了實現(xiàn)上述目的,本發(fā)明提供一種基于固態(tài)硬盤的ECC模塊動態(tài)復(fù)用系統(tǒng),所 述固態(tài)硬盤包括多個通道,每個所述通道分別設(shè)有一控制器和一 ECC模塊,所述多個通道 被劃分成至少一組,每組中各通道的控制器和ECC模塊之間共同連接設(shè)有一多路選擇器, 當(dāng)所述一通道進(jìn)行數(shù)據(jù)操作,而同組的其他通道空閑或部分空閑時,所述多路選擇器將同 組的所述數(shù)據(jù)操作通道的ECC模塊和所述空閑或部分空閑通道的ECC模塊動態(tài)分配給所述 數(shù)據(jù)操作通道的控制器使用。根據(jù)本發(fā)明的ECC模塊動態(tài)復(fù)用系統(tǒng),所述ECC模塊包括可分開使用的ECC編碼 器和ECC解碼器;在所述一通道進(jìn)行讀操作,而同組的其他通道進(jìn)行寫操作時,所述多路選擇器將 同組的所述讀操作通道的ECC解碼器和其他寫操作通道的ECC解碼器動態(tài)分配給所述讀操 作通道的控制器使用;或者在所述一通道進(jìn)行寫操作,而同組的其他通道進(jìn)行讀操作時,所述多路選擇器將同組的所述寫操作通道的ECC編碼器和其他讀操作通道的ECC編碼器動態(tài)分配給所述寫操 作通道的控制器使用。根據(jù)本發(fā)明的ECC模塊動態(tài)復(fù)用系統(tǒng),所述多個通道中每相鄰兩個通道構(gòu)成一組。根據(jù)本發(fā)明的ECC模塊動態(tài)復(fù)用系統(tǒng),所述多路選擇器為可編程控制寄存器。根據(jù)本發(fā)明的ECC模塊動態(tài)復(fù)用系統(tǒng),所述固態(tài)硬盤的存儲介質(zhì)采用閃存或者動 態(tài)隨機存儲器。本發(fā)明還提供一種基于固態(tài)硬盤的ECC模塊動態(tài)復(fù)用方法,所述固態(tài)硬盤包括多 個通道,每個所述通道分別設(shè)有一控制器和一 ECC模塊,所述方法包括步驟如下建立多路選擇器步驟,所述多個通道被劃分成至少一組,每組中各通道的控制器 和ECC模塊之間共同連接設(shè)有一多路選擇器;動態(tài)分配ECC模塊步驟,當(dāng)所述一通道進(jìn)行數(shù)據(jù)操作,而同組的其他通道空閑或 部分空閑時,所述多路選擇器將同組的所述數(shù)據(jù)操作通道的ECC模塊和所述空閑或部分空 閑通道的ECC模塊動態(tài)分配給所述數(shù)據(jù)操作通道的控制器使用。根據(jù)本發(fā)明的ECC模塊動態(tài)復(fù)用系統(tǒng),所述ECC模塊包括可分開使用的ECC編碼 器和ECC解碼器;所述動態(tài)分配ECC模塊步驟還包括在所述一通道進(jìn)行讀操作,而同組的其他通道進(jìn)行寫操作時,所述多路選擇器將 同組的所述讀操作通道的ECC解碼器和其他寫操作通道的ECC解碼器動態(tài)分配給所述讀操 作通道的控制器使用;或者在所述一通道進(jìn)行寫操作,而同組的其他通道進(jìn)行讀操作時,所述多路選擇器將 同組的所述寫操作通道的ECC編碼器和其他讀操作通道的ECC編碼器動態(tài)分配給所述寫操 作通道的控制器使用。根據(jù)本發(fā)明的ECC模塊動態(tài)復(fù)用系統(tǒng),所述建立多路選擇器步驟中,所述多個通 道中每相鄰兩個通道構(gòu)成一組。根據(jù)本發(fā)明的ECC模塊動態(tài)復(fù)用系統(tǒng),所述多路選擇器為可編程控制寄存器。根據(jù)本發(fā)明的ECC模塊動態(tài)復(fù)用系統(tǒng),所述固態(tài)硬盤的存儲介質(zhì)采用閃存或者動 態(tài)隨機存儲器。本發(fā)明將固態(tài)硬盤中多通道分為至少一組,每組通道共設(shè)一多路選擇器,多路選 擇器根據(jù)各通道的操作情況對ECC模塊進(jìn)行動態(tài)配置,當(dāng)一通道進(jìn)行數(shù)據(jù)操作而同組的其 他通道空閑時,多路選擇器可將空閑通道的ECC模塊動態(tài)分配給數(shù)據(jù)操作通道的控制器使 用,這樣一個通道可以同時占用兩個或以上的ECC模塊,從而可在不增加硬件資源占用的 前提下,固態(tài)硬盤單通道的ECC編解碼速度可以比原來提升近兩倍或以上,進(jìn)而提高數(shù)據(jù) 讀寫吞吐率,同時降低硬件復(fù)雜度、芯片成本以及功耗。另外,ECC模塊中的ECC編碼器和 ECC解碼器可以分開使用,因此在有大量讀寫并行運算的情況下,可大幅提高固態(tài)硬盤各通 道的并行讀寫能力。
圖1是現(xiàn)有固態(tài)硬盤的ECC校錯技術(shù)原理圖;圖2是本發(fā)明ECC模塊動態(tài)復(fù)用系統(tǒng)的第一實施例結(jié)構(gòu)5
圖3是本發(fā)明ECC模塊動態(tài)復(fù)用系統(tǒng)的第二實施例結(jié)構(gòu)圖;圖4是本發(fā)明ECC模塊動態(tài)復(fù)用系統(tǒng)中多路選擇器的實施例結(jié)構(gòu)圖;圖5是本發(fā)明基于固態(tài)硬盤的ECC模塊動態(tài)復(fù)用方法的流程圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對 本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并 不用于限定本發(fā)明。圖2示出了本發(fā)明基于固態(tài)硬盤的ECC模塊動態(tài)復(fù)用系統(tǒng)的第一實施例結(jié)構(gòu),固 態(tài)硬盤包括多個通道,每個通道分別設(shè)有一 ECC模塊10、一控制器20以及一存儲單元30, ECC模塊10又包括ECC編碼器和ECC解碼器。多個通道中每相鄰兩個通道構(gòu)成一組,每組 中各通道的控制器20和ECC模塊10之間共同連接設(shè)有一多路選擇器40。在同一通道組 中,當(dāng)一通道進(jìn)行數(shù)據(jù)操作,而另一通道空閑或部分空閑時,多路選擇器40將數(shù)據(jù)操作通 道(即正處于數(shù)據(jù)操作狀態(tài)的通道)的ECC模塊10和空閑或部分空閑通道(即正處于空 閑或部分空閑狀態(tài)的通道)的ECC模塊10動態(tài)分配給數(shù)據(jù)操作通道的控制器20使用,這 樣一個通道可以同時占用兩個ECC模塊10,可在不增加硬件資源占用的前提下,固態(tài)硬盤 單通道的ECC編解碼速度可以比原來提升近兩倍。本發(fā)明中固態(tài)硬盤的存儲介質(zhì)可采用閃 存或者DRAM (Dynamic Random Access Memory,動態(tài)隨機存儲器),而閃存可以是NAND閃存寸。圖2所示實施例中采用的是每相鄰兩個通道之間共設(shè)一多路選擇器40,實際上也 可以是每相鄰的三個或以上通道之間共設(shè)一多路選擇器40,但是這樣也會相對提高電路的 復(fù)雜性和控制算法的復(fù)雜性。另外,固態(tài)硬盤也可任意每任意兩個或以上通道之間共設(shè)一 多路選擇器,但與相鄰?fù)ǖ乐g共設(shè)多路選擇器方案相比,非相鄰?fù)ǖ拦苍O(shè)多路選擇器方 案的電路設(shè)計要相對復(fù)雜。優(yōu)選地,由于ECC模塊10中的ECC編碼器和ECC解碼器可以分開使用,因此通過 多路選擇器40的動態(tài)配置,ECC編碼器和ECC解碼器可以分別給不同的控制器20使用,尤 其適用于在大量的讀寫并行操作中。具體實現(xiàn)方式如下當(dāng)一通道進(jìn)行讀操作,而同組的其他通道進(jìn)行寫操作時,多路選擇器40將同組的 讀操作通道的ECC解碼器和其他寫操作通道的ECC解碼器動態(tài)分配給讀操作通道的控制器 20使用;或者當(dāng)一通道進(jìn)行寫操作,而同組的其他通道進(jìn)行讀操作時,多路選擇器40將同組的 寫操作通道的ECC編碼器和其他讀操作通道的ECC編碼器動態(tài)分配給寫操作通道的控制器 20使用。這樣,一個通道在讀或?qū)懙臅r候可以借用另一個通道的ECC解碼器或ECC編碼器, 但是并不會影響另一個通道的寫或讀數(shù)據(jù)操作(此時該通道可被定義為處于部分空閑狀 態(tài)),該結(jié)構(gòu)能大幅提高整個硬盤控制器的性能,尤其適用于有大量讀寫并行運算的情況。圖3示出了本發(fā)明基于固態(tài)硬盤的ECC模塊動態(tài)復(fù)用系統(tǒng)的第二實施例結(jié)構(gòu),與 圖2不同的是,固態(tài)硬盤的所有通道僅分成一個組,所有通道的控制器20和ECC模塊10之 間共設(shè)有一多路選擇器40,即所有ECC模塊10均由一個多路選擇器40操作以實現(xiàn)多路復(fù)用。當(dāng)一通道進(jìn)行數(shù)據(jù)操作,而其他通道空閑或部分空閑時,多路選擇器40將數(shù)據(jù)操作通 道的ECC模塊10和空閑或部分空閑通道的ECC模塊10動態(tài)分配給數(shù)據(jù)操作通道的控制器 20使用,這樣一個通道可以同時占用兩個以上的ECC模塊10,可在不增加硬件資源占用的 前提下,固態(tài)硬盤單通道的ECC編解碼速度可以比原來提升兩倍以上。當(dāng)然,所有通道共用 一多路選擇器40會提高電路的復(fù)雜性和控制算法的復(fù)雜性,應(yīng)該根據(jù)具體的應(yīng)用來進(jìn)行 設(shè)置。圖4示出了本發(fā)明一實施例中多路選擇器的邏輯結(jié)構(gòu),其采用可編程控制寄存器 作為多路選擇器,可編程控制寄存器可以動態(tài)配置不同的ECC編/解碼器使用方案,可以一 對一使用,也可以一對二使用,從而保證了硬件復(fù)用功能。其實對于多通道的復(fù)用方案,同 樣可以通過類似的開關(guān)結(jié)構(gòu)來完成復(fù)用功能。通過上述ECC模塊動態(tài)復(fù)用系統(tǒng)的使用,當(dāng)固定硬盤中一個通道有大量的數(shù)據(jù)讀 寫,而另一個或另幾個通道空閑或者部分空閑時,多路選擇器40可以選通兩個或以上ECC 模塊10為一個控制器20使用,使得每一個控制器20實際可使用的ECC模塊10變?yōu)閮蓚€ 或以上,從而滿足單個通道的快速讀寫需求。圖5示出了本發(fā)明基于固態(tài)硬盤的ECC模塊動態(tài)復(fù)用方法的流程,其通過如圖2 或圖3所示的ECC模塊動態(tài)復(fù)用系統(tǒng)實現(xiàn),該方法包括步驟如下步驟S501,將固態(tài)硬盤的多個通道劃分成至少一組,每組中各通道的控制器20和 ECC模塊10之間共同連接設(shè)有一多路選擇器40,即每兩個或以上的通道設(shè)有一多路選擇器 40,多路選擇器40分別與該兩個或以上的通道的控制器20和ECC模塊10連接。優(yōu)選的 是,每相鄰兩個通道構(gòu)成一組,通過多路選擇器40動態(tài)分配相鄰?fù)ǖ赖腅CC解碼器或者編 碼器,且多路選擇器40可選用可編程控制寄存器。步驟S502,當(dāng)一通道進(jìn)行數(shù)據(jù)操作,而同組的其他通道空閑或部分空閑時,多路選 擇器40將同組的數(shù)據(jù)操作通道的ECC模塊10和空閑或部分空閑通道的ECC模塊10動態(tài) 分配給數(shù)據(jù)操作通道的控制器20使用。本發(fā)明方法通過相鄰?fù)ǖ阑蛘叨鄠€通道ECC模塊 10的動態(tài)共享提高了固態(tài)硬盤單通道校錯的理論最大讀寫吞吐率。ECC模塊10包括可分開使用的ECC編碼器和ECC解碼器,通過多路選擇器40的動 態(tài)配置,ECC編碼器和ECC解碼器可以分別給不同的通道使用,從而提高控制器20并行讀 寫的能力。上述步驟S502中還可包括當(dāng)一通道進(jìn)行讀操作,而同組的其他通道進(jìn)行寫操作時,多路選擇器40將同組的 讀操作通道的ECC解碼器和其他寫操作通道的ECC解碼器動態(tài)分配給讀操作通道的控制器 20使用,這樣讀操作通道可占有兩個或以上的ECC解碼器;或者當(dāng)一通道進(jìn)行寫操作,而同組的其他通道進(jìn)行讀操作時,多路選擇器40將同組的 寫操作通道的ECC編碼器和其他讀操作通道的ECC編碼器動態(tài)分配給寫操作通道的控制器 20使用,這樣寫操作通道可占有兩個或以上的ECC編碼器。綜上所述,本發(fā)明將固態(tài)硬盤中多通道分為至少一組,每組通道共設(shè)一多路選擇 器,多路選擇器根據(jù)各通道的操作情況對ECC模塊進(jìn)行動態(tài)配置,當(dāng)一通道進(jìn)行數(shù)據(jù)操作 而同組的其他通道空閑時,多路選擇器可將空閑通道的ECC模塊動態(tài)分配給數(shù)據(jù)操作通道 的控制器使用,這樣一個通道可以同時占用兩個或以上的ECC模塊,從而可在不增加硬件 資源占用的前提下,固態(tài)硬盤單通道的ECC編解碼速度可以比原來提升近兩倍或以上,進(jìn)而提高數(shù)據(jù)讀寫吞吐率,同時降低硬件復(fù)雜度、芯片成本以及功耗。另外,ECC模塊中的ECC 編碼器和ECC解碼器可以分開使用,因此在有大量讀寫并行運算的情況下,可大幅提高固 態(tài)硬盤各通道的并行讀寫能力。 當(dāng)然,本發(fā)明還可有其它多種實施例,在不背離本發(fā)明精神及其實質(zhì)的情況下,熟 悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變 形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護范圍。
權(quán)利要求
一種基于固態(tài)硬盤的ECC模塊動態(tài)復(fù)用系統(tǒng),所述固態(tài)硬盤包括多個通道,每個所述通道分別設(shè)有一控制器和一ECC模塊,其特征在于,所述多個通道被劃分成至少一組,每組中各通道的控制器和ECC模塊之間共同連接設(shè)有一多路選擇器,當(dāng)所述一通道進(jìn)行數(shù)據(jù)操作,而同組的其他通道空閑或部分空閑時,所述多路選擇器將同組的所述數(shù)據(jù)操作通道的ECC模塊和所述空閑或部分空閑通道的ECC模塊動態(tài)分配給所述數(shù)據(jù)操作通道的控制器使用。
2.根據(jù)權(quán)利要求1所述的ECC模塊動態(tài)復(fù)用系統(tǒng),其特征在于,所述ECC模塊包括可分 開使用的ECC編碼器和ECC解碼器;在所述一通道進(jìn)行讀操作,而同組的其他通道進(jìn)行寫操作時,所述多路選擇器將同組 的所述讀操作通道的ECC解碼器和其他寫操作通道的ECC解碼器動態(tài)分配給所述讀操作通 道的控制器使用;或者在所述一通道進(jìn)行寫操作,而同組的其他通道進(jìn)行讀操作時,所述多路選擇器將同組 的所述寫操作通道的ECC編碼器和其他讀操作通道的ECC編碼器動態(tài)分配給所述寫操作通 道的控制器使用。
3.根據(jù)權(quán)利要求1所述的ECC模塊動態(tài)復(fù)用系統(tǒng),其特征在于,所述多個通道中每相鄰 兩個通道構(gòu)成一組。
4.根據(jù)權(quán)利要求1所述的ECC模塊動態(tài)復(fù)用系統(tǒng),其特征在于,所述多路選擇器為可編 程控制寄存器。
5.根據(jù)權(quán)利要求1所述的ECC模塊動態(tài)復(fù)用系統(tǒng),其特征在于,所述固態(tài)硬盤的存儲介 質(zhì)采用閃存或者動態(tài)隨機存儲器。
6.一種基于固態(tài)硬盤的ECC模塊動態(tài)復(fù)用方法,所述固態(tài)硬盤包括多個通道,每個所 述通道分別設(shè)有一控制器和一 ECC模塊,其特征在于,所述方法包括步驟如下建立多路選擇器步驟,將所述多個通道劃分成至少一組,每組中各通道的控制器和ECC 模塊之間共同連接設(shè)有一多路選擇器;動態(tài)分配ECC模塊步驟,當(dāng)所述一通道進(jìn)行數(shù)據(jù)操作,而同組的其他通道空閑或部分 空閑時,所述多路選擇器將同組的所述數(shù)據(jù)操作通道的ECC模塊和所述空閑或部分空閑通 道的ECC模塊動態(tài)分配給所述數(shù)據(jù)操作通道的控制器使用。
7.根據(jù)權(quán)利要求1所述的ECC模塊動態(tài)復(fù)用系統(tǒng),其特征在于,所述ECC模塊包括可分 開使用的ECC編碼器和ECC解碼器;所述動態(tài)分配ECC模塊步驟還包括在所述一通道進(jìn)行讀操作,而同組的其他通道進(jìn)行寫操作時,所述多路選擇器將同組 的所述讀操作通道的ECC解碼器和其他寫操作通道的ECC解碼器動態(tài)分配給所述讀操作通 道的控制器使用;或者在所述一通道進(jìn)行寫操作,而同組的其他通道進(jìn)行讀操作時,所述多路選擇器將同組 的所述寫操作通道的ECC編碼器和其他讀操作通道的ECC編碼器動態(tài)分配給所述寫操作通 道的控制器使用。
8.根據(jù)權(quán)利要求1所述的ECC模塊動態(tài)復(fù)用系統(tǒng),其特征在于,所述建立多路選擇器步 驟中,所述多個通道中每相鄰兩個通道構(gòu)成一組。
9.根據(jù)權(quán)利要求1所述的ECC模塊動態(tài)復(fù)用系統(tǒng),其特征在于,所述多路選擇器為可編 程控制寄存器。
10.根據(jù)權(quán)利要求1所述的ECC模塊動態(tài)復(fù)用系統(tǒng),其特征在于,所述固態(tài)硬盤的存儲 介質(zhì)采用閃存或者動態(tài)隨機存儲器。
全文摘要
本發(fā)明設(shè)計存儲技術(shù)領(lǐng)域,公開了一種基于固態(tài)硬盤的ECC模塊動態(tài)復(fù)用系統(tǒng),所述固態(tài)硬盤包括多個通道,每個所述通道分別設(shè)有一控制器和一ECC模塊,所述多個通道被劃分成至少一組,每組中各通道的控制器和ECC模塊之間共同連接設(shè)有一多路選擇器,當(dāng)所述一通道進(jìn)行數(shù)據(jù)操作,而同組的其他通道空閑或部分空閑時,所述多路選擇器將同組的所述數(shù)據(jù)操作通道的ECC模塊和所述空閑或部分空閑通道的ECC模塊動態(tài)分配給所述數(shù)據(jù)操作通道的控制器使用。相應(yīng)地,本發(fā)明還公開了一種基于固態(tài)硬盤的ECC模塊動態(tài)復(fù)用方法。借此,本發(fā)明可以在不增加硬件資源占用的前提下,大大提升固態(tài)硬盤單通道的ECC編解碼速度,進(jìn)而提高數(shù)據(jù)讀寫吞吐率。
文檔編號G11C7/10GK101964205SQ20101028558
公開日2011年2月2日 申請日期2010年9月17日 優(yōu)先權(quán)日2010年9月17日
發(fā)明者劉偉, 張耀輝, 朱從義, 賈宗銘 申請人:記憶科技(深圳)有限公司