專利名稱:閃存控制器以及閃存間數(shù)據(jù)傳輸方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)存儲技術(shù),具體涉及對以閃存器件為存儲介質(zhì)的存儲設(shè)備進行控制的閃存控制器,以及閃存器件間數(shù)據(jù)傳輸方法。
背景技術(shù):
現(xiàn)有在固態(tài)硬盤或便攜終端中,多個閃存芯片通過以陣列的方式組織起來,與閃存控制器進行數(shù)據(jù)交換,以提高數(shù)據(jù)傳輸?shù)男省iW存陣列的組織方式如圖1所示。閃存陣列被劃分為了多個通道,并且各個通道與閃存控制器之間有獨立的總線進行連接。這種陣列結(jié)構(gòu)可以保證數(shù)據(jù)在單獨通道與閃存控制器之間進行傳輸?shù)耐瑫r,不會影響其他通道與閃存控制器之間的數(shù)據(jù)通訊。盡管多通道的閃存陣列可以提高閃存器件與閃存控制器之間的吞吐率,但是由于閃存器件中存在著編程擾動、讀擾動、浮柵耦合效應(yīng)等多種寄生物理效應(yīng)的干擾。隨著閃存器件編程次數(shù)的增加以及器件物理特性的衰退,這些寄生效應(yīng)的影響會顯著增加,導(dǎo)致閃存中錯誤的增加。因此閃存芯片在保存以及傳輸數(shù)據(jù)的過程中會不可避免地存在著數(shù)據(jù)錯誤的情況,這些錯誤會降低多通道閃存陣列的傳輸性能。當(dāng)閃存控制器需要在不同的閃存器件中進行數(shù)據(jù)傳輸時,數(shù)據(jù)錯誤的累積甚至?xí)?dǎo)致閃存控制器無法從錯誤中將數(shù)據(jù)進行恢復(fù)。因此,閃存控制器在接收數(shù)據(jù)后,需要對數(shù)據(jù)進行糾錯操作。若數(shù)據(jù)中存在錯誤,數(shù)據(jù)必須在經(jīng)過糾錯處理后才能由閃存控制器重新存儲。在這一過程中,閃存控制器不僅需要對每一個數(shù)據(jù)進行緩存,而且還要占用額外的帶寬資源對數(shù)據(jù)進行重新傳輸。在閃存陣列的數(shù)據(jù)傳輸過程中,由數(shù)據(jù)錯誤所引發(fā)的相關(guān)操作不僅增加了系統(tǒng)的資源開銷,而且降低了整個閃存陣列與控制器之間的數(shù)據(jù)傳輸效率。因此,減少閃存陣列中糾錯處理的開銷已成為閃存器件在高速數(shù)據(jù)傳輸應(yīng)用中所必須要解決的關(guān)鍵問題之一。通過檢索現(xiàn)有的專利,沒有發(fā)現(xiàn)解決該技術(shù)問題的專利申請。
發(fā)明內(nèi)容
本發(fā)明要解決的主要技術(shù)問題是,提供一種閃存控制器以及一種閃存間數(shù)據(jù)傳輸方法,實現(xiàn)在直接的數(shù)據(jù)交換的過程中,隱藏數(shù)據(jù)錯誤檢測處理操作;進一步通過在檢測錯誤后在閃存控制器進行的糾錯處理以降低因糾錯處理對系統(tǒng)資源的開銷。為解決上述技術(shù)問題,本發(fā)明提供一種閃存控制器,包括傳輸控制模塊,其中的傳輸控制模塊進一步包括控制單元、錯誤檢測單元和接口單元;控制單元分別與所述錯誤檢測單元和接口單元相連,用于生成針對閃存間傳輸數(shù)據(jù)的讀寫控制指令,讀寫控制指令包括數(shù)據(jù)直接傳輸控制指令和數(shù)據(jù)錯誤檢測控制指令;接口單元,還通過數(shù)據(jù)總線與閃存陣列相連,用于提供數(shù)據(jù)傳輸接口,完成閃存控制器與閃存陣列之間的數(shù)據(jù)傳輸;錯誤檢測單元,用于接收閃存間傳輸數(shù)據(jù),并檢測該數(shù)據(jù)是否發(fā)生錯誤。進一步的,數(shù)據(jù)直接傳輸控制指令用于控制閃存間數(shù)據(jù)從閃存陣列的源閃存向目的閃存進行傳輸;數(shù)據(jù)錯誤檢測控制指令用于控制閃存間數(shù)據(jù)從閃存陣列的源閃存通過所述接口單元傳輸?shù)藉e誤檢測單元。進一步的,錯誤檢測單元還用于對檢測發(fā)生錯誤的數(shù)據(jù)進行糾錯處理;控制單元生成的讀寫控制指令還包括糾錯數(shù)據(jù)控制指令。其中的糾錯數(shù)據(jù)控制指令用于控制從所述錯誤檢測單元將糾錯處理后的數(shù)據(jù)通過接口單元傳輸?shù)介W存陣列的目的閃存。進一步的,將糾錯后的數(shù)據(jù)寫入目的閃存的存儲單元包括以下處理過程將糾錯后的數(shù)據(jù)通過接口單元寫入目的閃存的緩存單元進行數(shù)據(jù)更新,然后再將緩存的數(shù)據(jù)寫入目的閃存的存儲單元中。本發(fā)明還提供了一種閃存間數(shù)據(jù)傳輸方法,其特征在于,包括以下處理過程從閃存陣列源閃存中讀出,通過數(shù)據(jù)總線,一路直接傳輸?shù)介W存陣列的目的閃存, 另一路通過接口單元傳輸?shù)藉e誤檢測單元;錯誤檢測單元對接收到的數(shù)據(jù)進行錯誤檢測;并且目的閃存將接收到的數(shù)據(jù)存入該閃存的緩存中;當(dāng)所述錯誤檢測的結(jié)果為數(shù)據(jù)沒有錯誤,則將所述緩存的數(shù)據(jù)寫入目的閃存的存儲單元中。進一步的,當(dāng)所述錯誤檢測的結(jié)果為數(shù)據(jù)發(fā)生錯誤,對數(shù)據(jù)進行糾錯處理后寫入目的閃存的存儲單元中。進一步的,所述糾錯處理具體為所述錯誤檢測單元對數(shù)據(jù)進行糾錯處理,并將糾錯后的數(shù)據(jù)通過接口單元寫入目的閃存的存儲單元中。本發(fā)明的有益效果是1.采用數(shù)據(jù)直接傳輸和錯誤檢測處理相分離并行處理的機制,可以在數(shù)據(jù)從閃存陣列的源閃存到目的閃存的直接傳輸?shù)倪^程中,通過錯誤檢測單元進行快速檢測,并對數(shù)據(jù)的正確性進行延后確認(rèn)。本發(fā)明充分發(fā)掘了閃存控制器與閃存陣列之間的帶寬,提高了數(shù)據(jù)的傳輸利用率。2.此外在錯誤檢測單元中直接對發(fā)生錯誤的數(shù)據(jù)進行糾錯處理,可以將糾錯處理后的數(shù)據(jù)通過接口單元傳輸?shù)介W存陣列的目的閃存覆蓋錯誤數(shù)據(jù)。這種處理機制進一步將糾錯處理也隱藏在數(shù)據(jù)傳輸?shù)倪^程中,進一步提高閃存控制器在閃存陣列之間的數(shù)據(jù)傳輸性能。
圖1為現(xiàn)有閃存存儲結(jié)構(gòu)的示意圖;圖2為基于本發(fā)明閃存控制器實施一的數(shù)據(jù)傳輸流向圖;圖3為基于本發(fā)明閃存控制器實施一的數(shù)據(jù)傳輸時序圖;圖4為基于本發(fā)明閃存控制器實施二的糾錯數(shù)據(jù)流向圖;圖5為基于本發(fā)明閃存控制器實施二的糾錯數(shù)據(jù)時序圖;圖6為本發(fā)明閃存間數(shù)據(jù)傳輸方法流程圖。
具體實施例方式下面通過具體實施方式
結(jié)合附圖對本發(fā)明作進一步詳細(xì)說明。本發(fā)明的主要發(fā)明思路是對現(xiàn)有的閃存控制器進行改進。由于在閃存控制器中的傳輸控制模塊的主要功能是負(fù)責(zé)完成閃存控制器和閃存陣列的之間的數(shù)據(jù)通訊。因此本發(fā)明在傳輸控制模塊中設(shè)置控制單元、錯誤檢測單元和接口單元。其中控制模塊分別與錯誤檢測單元以及接口單元相連,負(fù)責(zé)數(shù)據(jù)傳輸過程的指令控制和調(diào)度;具體為通過針對閃存間的傳輸數(shù)據(jù)生成讀寫控制指令,該讀寫控制指令包括控制數(shù)據(jù)在不同的閃存之間傳輸?shù)目刂浦噶詈涂刂棋e誤檢測單元對數(shù)據(jù)進行錯誤檢測指令。接口單元一端通過數(shù)據(jù)總線與閃存陣列相連,負(fù)責(zé)完成閃存控制器與閃存陣列之間的數(shù)據(jù)傳輸。錯誤檢測單元負(fù)責(zé)對接收到的數(shù)據(jù)進行錯誤檢測。實施例一為當(dāng)沒有發(fā)生數(shù)據(jù)錯誤時的數(shù)據(jù)傳輸過程。當(dāng)數(shù)據(jù)需要從閃存陣列中的一個閃存即源閃存搬移到另外閃存陣列中的另一個閃存即目的閃存時,其數(shù)據(jù)傳輸流向如圖2所示。在控制單元的操作下,數(shù)據(jù)從源閃存讀出,通過數(shù)據(jù)總線,分別傳輸給目的閃存和閃存控制器。一方面,閃存控制器將接收的數(shù)據(jù)從接口單元傳輸?shù)藉e誤檢測單元,進行錯誤檢測;另一方面,傳輸給目的閃存的數(shù)據(jù)被寫入目的閃存的緩存中。當(dāng)錯誤檢測單元確認(rèn)傳輸?shù)臄?shù)據(jù)沒有錯誤出現(xiàn)時,向控制單元發(fā)出確認(rèn)信息,傳輸數(shù)據(jù)將由緩存寫入到目的閃存的存儲單元中,從而完成整個數(shù)據(jù)傳輸操作。本實施例中數(shù)據(jù)傳輸過程的閃存時序如圖3所示。在控制單元的控制下,閃存控制器分別向源閃存和目的閃存發(fā)送讀寫命令,并傳輸讀寫地址。在源閃存和目的閃存準(zhǔn)備就緒后,將源閃存中讀取的數(shù)據(jù)直接發(fā)送到目的閃存,這樣削減了閃存控制器在讀取數(shù)據(jù)過程中重新進行存儲轉(zhuǎn)發(fā)所需要的額外時間開銷。當(dāng)數(shù)據(jù)完成交換以后,由于閃存控制器需要對傳輸?shù)臄?shù)據(jù)進行錯誤檢測以避免數(shù)據(jù)交換的過程中產(chǎn)生錯誤累積,因此閃存控制器在數(shù)據(jù)傳輸結(jié)束后還采取了延遲確認(rèn)的方式來保證傳輸數(shù)據(jù)的正確性。在數(shù)據(jù)總線上的數(shù)據(jù)傳輸完成以后,閃存控制器將啟動錯誤檢測單元,對數(shù)據(jù)進行錯誤檢測。當(dāng)傳輸?shù)臄?shù)據(jù)沒有錯誤發(fā)生時,發(fā)送確認(rèn)命令,將數(shù)據(jù)由目的閃存的緩存寫入到其存儲單元中,從而完成一次數(shù)據(jù)傳輸過程。實施例二為當(dāng)發(fā)生數(shù)據(jù)錯誤時的糾錯處理過程。當(dāng)傳輸?shù)臄?shù)據(jù)出現(xiàn)錯誤時,閃存控制器需要進行相應(yīng)的糾錯處理,其數(shù)據(jù)的傳輸方式如圖4所示。在錯誤檢測單元發(fā)現(xiàn)錯誤以后,可以在錯誤檢測單元中直接對數(shù)據(jù)進行糾錯操作,并通過糾錯操作恢復(fù)正確的數(shù)據(jù)。然后將正確的數(shù)據(jù)發(fā)送到接口單元中,并通過接口單元重新發(fā)送到目的閃存的緩存中,覆蓋前次傳輸所保存的數(shù)據(jù)。進行糾錯操作時的時序圖如圖5所示。在并行數(shù)據(jù)傳輸后,將進行糾錯操作。在得到正確的數(shù)據(jù)后,將該正確數(shù)據(jù)直接發(fā)送到目的閃存的緩存中,從而對并行數(shù)據(jù)傳輸時發(fā)送的原始數(shù)據(jù)進行更新。在更新操作完成以后,將發(fā)送確認(rèn)命令,從而將更新后的數(shù)據(jù)寫入到目的閃存的存儲單元中,完成數(shù)據(jù)傳輸操作。在實施例二中為錯誤檢測單元進行糾錯處理,本發(fā)明的錯誤糾錯還可以有多種實現(xiàn)方式,例如通過其他功能單元或者設(shè)置新的功能單元進行糾錯處理,只需要確保當(dāng)發(fā)生數(shù)據(jù)錯誤時,及時進行糾錯處理,并將糾錯后的數(shù)據(jù)發(fā)送到目的閃存進行數(shù)據(jù)更新,并更新完成后,將緩存中的更新數(shù)據(jù)進一步寫入目的閃存的存儲單元中。如圖6所示為本發(fā)明閃存間數(shù)據(jù)傳輸方法流程。在數(shù)據(jù)傳輸開始后,直接進行兩路并行數(shù)據(jù)傳輸,并在數(shù)據(jù)傳輸完成以后對數(shù)據(jù)進行錯誤檢測處理。之后將根據(jù)錯誤檢測處理的結(jié)果選擇是否進行數(shù)據(jù)更新操作。若錯誤處理沒有發(fā)現(xiàn)錯誤,將確認(rèn)數(shù)據(jù)傳輸;若發(fā)現(xiàn)錯誤,將對錯誤數(shù)據(jù)進行糾錯處理后將正確的數(shù)據(jù)進行更新,并在更新完成以后,確認(rèn)數(shù)據(jù)傳輸,使更新后的數(shù)據(jù)寫入目的閃存的存儲單元中,完成數(shù)據(jù)傳輸操作。綜上所述,本發(fā)明所提出的閃存控制器可以在閃存間數(shù)據(jù)傳輸過程中,在保證數(shù)據(jù)傳輸正確性的同時,提高了總線的利用率。以上內(nèi)容是結(jié)合具體的實施方式對本發(fā)明所作的進一步詳細(xì)說明,不能認(rèn)定本發(fā)明的具體實施只局限于這些說明;因此,對于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡單推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明的保護范圍。
權(quán)利要求
1.一種閃存控制器,包括傳輸控制模塊,其特征在于,所述傳輸控制模塊包括控制單元、錯誤檢測單元和接口單元;所述控制單元,分別與所述錯誤檢測單元和接口單元相連,用于生成針對閃存間傳輸數(shù)據(jù)的讀寫控制指令,所述讀寫控制指令包括數(shù)據(jù)直接傳輸控制指令和數(shù)據(jù)錯誤檢測控制指令;所述接口單元,還通過數(shù)據(jù)總線與閃存陣列相連,用于提供數(shù)據(jù)傳輸接口,完成所述閃存控制器與閃存陣列之間的數(shù)據(jù)傳輸;所述錯誤檢測單元,用于接收閃存間傳輸數(shù)據(jù),并檢測該數(shù)據(jù)是否發(fā)生錯誤。
2.根據(jù)權(quán)利要求1所述的閃存控制器,其特征在于,所述數(shù)據(jù)直接傳輸控制指令用于控制閃存間數(shù)據(jù)從閃存陣列的源閃存向目的閃存進行傳輸;所述數(shù)據(jù)錯誤檢測控制指令用于控制閃存間數(shù)據(jù)從閃存陣列的源閃存通過所述接口單元傳輸?shù)剿鲥e誤檢測單元。
3.根據(jù)權(quán)利要求1或2所述的閃存控制器,其特征在于,所述錯誤檢測單元還用于對檢測發(fā)生錯誤的數(shù)據(jù)進行糾錯處理;所述控制單元生成的讀寫控制指令還包括糾錯數(shù)據(jù)控制指令。
4.根據(jù)權(quán)利要求3所述的閃存控制器,其特征在于,所述糾錯數(shù)據(jù)控制指令用于控制從所述錯誤檢測單元將糾錯處理后的數(shù)據(jù)通過所述接口單元傳輸?shù)介W存陣列的目的閃存。
5.一種閃存間數(shù)據(jù)傳輸方法,其特征在于,包括以下處理過程從閃存陣列源閃存中讀出,通過數(shù)據(jù)總線,一路直接傳輸?shù)介W存陣列的目的閃存,另一路通過接口單元傳輸?shù)藉e誤檢測單元;錯誤檢測單元對接收到的數(shù)據(jù)進行錯誤檢測;并且目的閃存將接收到的數(shù)據(jù)存入該閃存的緩存中;當(dāng)所述錯誤檢測的結(jié)果為數(shù)據(jù)沒有錯誤,則將所述緩存的數(shù)據(jù)寫入目的閃存的存儲單元中。
6.根據(jù)權(quán)利要求5所述的數(shù)據(jù)傳輸方法,其特征在于,當(dāng)所述錯誤檢測的結(jié)果為數(shù)據(jù)發(fā)生錯誤,對數(shù)據(jù)進行糾錯處理后寫入目的閃存的存儲單元中。
7.根據(jù)權(quán)利要求6所述的數(shù)據(jù)傳輸方法,其特征在于,所述糾錯處理具體為所述錯誤檢測單元對數(shù)據(jù)進行糾錯處理,并將糾錯后的數(shù)據(jù)通過接口單元寫入目的閃存的存儲單元中。
8.根據(jù)權(quán)利要求7所述的數(shù)據(jù)傳輸方法,其特征在于,所述將糾錯后的數(shù)據(jù)寫入目的閃存的存儲單元包括以下處理過程將糾錯后的數(shù)據(jù)通過所述接口單元寫入目的閃存的緩存單元進行數(shù)據(jù)更新,然后再將所述緩存的數(shù)據(jù)寫入目的閃存的存儲單元中。
全文摘要
本發(fā)明公開了一種閃存控制器以及閃存間數(shù)據(jù)傳輸方法,通過將數(shù)據(jù)傳輸和錯誤檢測處理相分離的方式實現(xiàn)并行處理,并采取了對傳輸?shù)侥康拈W存的數(shù)據(jù)的正確性進行延后確認(rèn)的機制。采用本發(fā)明,可以充分發(fā)掘閃存控制器與閃存陣列之間的帶寬,提高了數(shù)據(jù)的傳輸效率。此外錯誤檢測單元對發(fā)生錯誤的數(shù)據(jù)進行糾錯處理,并將糾錯后的正確數(shù)據(jù)更新覆蓋閃存緩存中的錯誤數(shù)據(jù)。這種處理機制進一步將糾錯處理也隱藏在數(shù)據(jù)傳輸?shù)倪^程中,進一步提高閃存控制器在閃存陣列之間的數(shù)據(jù)傳輸性能。本發(fā)明適用于以閃存器件為存儲介質(zhì)各種存儲設(shè)備的控制器中。
文檔編號G06F11/07GK102411548SQ20111033202
公開日2012年4月11日 申請日期2011年10月27日 優(yōu)先權(quán)日2011年10月27日
發(fā)明者邢冀鵬, 霍文捷 申請人:憶正存儲技術(shù)(武漢)有限公司