基於固態硬碟的ecc模塊動態復用系統及方法
2023-09-12 20:24:30
專利名稱:基於固態硬碟的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日
發明者劉偉, 張耀輝, 朱從義, 賈宗銘 申請人:記憶科技(深圳)有限公司