專利名稱:一種存儲數(shù)據(jù)的方法及存儲裝置的制作方法
技術領域:
本發(fā)明涉及電子技術領域,具體涉及一種存儲數(shù)據(jù)的方法及存儲裝置。
背景技術:
存儲設備對于當今人們的生活有著非常重要的作用,人們用其存儲文字資料、 圖片、視頻等等。一種常用的存儲設備如固態(tài)硬盤(SSD,Solid State Disk),由于它存儲 容量大,體積小,攜帶方便,在人們的日常生活中發(fā)揮著重要的作用。一種SSD可以是 由閃存(Flash)組成的,如與非(NAND) Flash。由于NAND Flash制造工藝的原因,在進 行數(shù)據(jù)的讀、寫及存儲時都可能發(fā)生隨機比特(bit)翻轉,從而導致數(shù)據(jù)出錯。隨著制造 Flash工藝的不斷改進,單位存儲空間存儲的數(shù)據(jù)更多,則存儲數(shù)據(jù)出錯的機率更大。錯誤檢查和糾正(ECC,ErrorChecking and Correcting,)技術可以對從 Flash 讀 出的數(shù)據(jù)進行錯誤檢查和糾正,減少從Flash讀出的數(shù)據(jù)的出錯率。具體的操作方法包 括首先,對數(shù)據(jù)編碼,具體實現(xiàn)包括對寫入Flash芯片的數(shù)據(jù)進行計算,從而獲 取存儲數(shù)據(jù)的糾錯碼(ECC,Error Correction Code),該獲取糾錯碼的過程也成為編碼, 其中,存儲糾錯碼的空間也稱為檢驗位,將存儲的ECC和數(shù)據(jù)一起寫入Flash芯片中,其 中,糾錯碼的計算是以扇區(qū)(Sector)為單位,當獲取的一個Sector中存儲的數(shù)據(jù)的糾錯碼 所占用的校驗位,大于一個Sector中最多允許的校驗位時,將該Sector中存儲的數(shù)據(jù)的糾 錯碼存儲到多個Sector的校驗位中;其次,對數(shù)據(jù)譯碼,具體實現(xiàn)包括當要讀取Flash芯片上存儲的數(shù)據(jù)時,將 數(shù)據(jù)和校驗位上存儲的該數(shù)據(jù)的糾錯碼讀出,根據(jù)讀出的糾錯碼和讀數(shù)據(jù)時產(chǎn)生的糾錯 碼,對讀出的數(shù)據(jù)進行糾正,從而達到讀出正確的數(shù)據(jù)的目的?,F(xiàn)有技術中一個扇區(qū)中存儲空間的分配如圖1所示,數(shù)據(jù)是以Sector為單位寫入 Flash中,或者從Flash中讀出。一個Sector中最多可以存儲528個字節(jié)(B,Bytes)的數(shù) 據(jù),但是,其中512B的空間作為數(shù)據(jù)空間,用于存儲數(shù)據(jù),16B作為冗余空間。在16B 的冗余空間中至少有4B的空間用于存儲邏輯塊地址(LBA,Logic BlockAddress)地址, 因此,用于存儲糾錯碼的空間最多只有12B。在對現(xiàn)有技術的研究和實踐過程中,本發(fā)明的發(fā)明人發(fā)現(xiàn),現(xiàn)有技術中對于1 個扇區(qū),每糾正1比特(bit)數(shù)據(jù)通常需要13bit的糾錯碼,即要占用13bit的檢驗位,因 此,對于一個扇區(qū)中12B空間的檢驗位最多可以糾正Sbit錯誤數(shù)據(jù),當要糾錯更多比特 的數(shù)據(jù)時,需要將糾錯碼存儲到更多的Sector的校驗位中,一個頁中包括多個Sector,其 中,頁是存儲裝置寫入、讀出數(shù)據(jù)的最小單位,因此,導致了存儲裝置在讀出數(shù)據(jù)時不 能及時獲取到與數(shù)據(jù)對應的糾錯碼,使得存儲裝置在存儲數(shù)據(jù)時不夠安全、穩(wěn)定。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種存儲數(shù)據(jù)的方法及存儲裝置,可以提高存儲數(shù)據(jù)的安全性和穩(wěn)定性。本發(fā)明實施例提供一種存儲數(shù)據(jù)的方法,包括獲得數(shù)據(jù)和所述數(shù)據(jù)的糾錯碼;通過與閃存相連的數(shù)據(jù)通道,將所述數(shù)據(jù)和所述數(shù)據(jù)的糾錯碼分別存儲到所述 閃存不同的頁中。本發(fā)明實施例提供還一種存儲裝置,其包括數(shù)據(jù)通道,閃存,第一獲取單 元,第二獲取單元和控制存儲單元;所述第一獲取單元,用于獲取數(shù)據(jù);所述第二獲取單元,用于獲取所述數(shù)據(jù)的糾錯碼;所述控制存儲單元,用于通過與所述閃存相連的所述數(shù)據(jù)通道,將所述數(shù)據(jù)和 所述數(shù)據(jù)的糾錯碼分別存儲到所述閃存不同的頁中。本發(fā)明實施例采用將數(shù)據(jù)的糾錯碼存儲到獨立的頁中,即將存儲空間的頁劃分 為兩類,包括一類頁用于存儲數(shù)據(jù),一類頁用于存儲數(shù)據(jù)的糾錯碼;因此,可以通過 較少讀出次數(shù)就可以獲得數(shù)據(jù)和數(shù)據(jù)的所有糾錯碼,從而獲取到正確的數(shù)據(jù),減少了存 儲裝置出錯的概率,使得存儲裝置在存儲數(shù)據(jù)時安全、穩(wěn)定。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或 現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅 是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提 下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是現(xiàn)有技術中一個扇區(qū)中存儲空間的分配圖;圖2是本發(fā)明實施例一提供的一種存儲數(shù)據(jù)的方法流程簡圖;圖3是本發(fā)明實施例二提供的一種存儲數(shù)據(jù)的方法流程簡圖;圖4是本發(fā)明實施例二中一種存儲空間的分配示意圖;圖5是本發(fā)明實施例三提供的一種存儲數(shù)據(jù)的方法流程簡圖;圖6是本發(fā)明實施例三中一種存儲空間的分配示意圖;圖7是本發(fā)明實施例四中提供的一種存儲裝置的邏輯單元示意圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、 完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施 例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得 的所有其他實施例,都屬于本發(fā)明保護的范圍。實施例一、本發(fā)明實施例提供了一種存儲數(shù)據(jù)的方法,如圖2所示,該方法包括步驟1 獲取數(shù)據(jù)和該數(shù)據(jù)的糾錯碼(ECC);其中,步驟1中獲取的數(shù)據(jù)可以是接收其它設備發(fā)送的需要存儲的數(shù)據(jù),步驟1 中獲取該數(shù)據(jù)的糾錯碼可以是根據(jù)特定的算法,而計算出的數(shù)據(jù)的糾錯碼,獲取數(shù)據(jù)的糾錯碼的具體操作可以參考現(xiàn)有技術。步驟2:通過與閃存相連的數(shù)據(jù)通道,將數(shù)據(jù)和數(shù)據(jù)的糾錯碼分別存儲到閃存不同的頁中。其中,需要說明的是,存儲裝置在讀數(shù)據(jù)和寫數(shù)據(jù)時,都是以頁(Page)為單位 進行操作的。在步驟2中數(shù)據(jù)被存儲到一個或者多于一個的頁中,將數(shù)據(jù)的糾錯碼也 存儲到一個或者多于一個的頁中,其中,存儲數(shù)據(jù)的頁和存儲數(shù)據(jù)糾錯碼的頁是不同的 頁。即可以理解存儲裝置中的頁被分成為兩部分,包括存儲數(shù)據(jù)的頁和存儲數(shù)據(jù)糾錯 碼的頁。通過對本發(fā)明實施例提供的一種存儲數(shù)據(jù)的方法的說明,該方法通過將數(shù)據(jù)的 糾錯碼存儲到獨立的頁中,即將存儲空間的頁劃分為兩類,包括一類頁用于存儲數(shù) 據(jù),一類頁用于存儲數(shù)據(jù)的糾錯碼;因此,可以通過較少讀出次數(shù)就可以獲得數(shù)據(jù)和數(shù) 據(jù)的所有糾錯碼,從而獲取到正確的數(shù)據(jù),減少了存儲裝置出錯的概率,使得存儲裝置 在存儲數(shù)據(jù)時安全、穩(wěn)定。實施例二、本發(fā)明實施例提供了一種存儲數(shù)據(jù)的方法,該方法與實施例一提供的方法相 似,包括都將數(shù)據(jù)的糾錯碼單獨的以Page為單位進行存儲,存儲數(shù)據(jù)糾錯碼的Page不 存儲數(shù)據(jù),同時,存儲數(shù)據(jù)的Page不存儲數(shù)據(jù)的糾錯碼;但是,本發(fā)明實施例提供一種 更具體的存儲數(shù)據(jù)及該數(shù)據(jù)糾錯碼的方法,便于通過更少的步驟,更快速的獲取到數(shù)據(jù) 的所有糾錯碼,從而獲取到正確的存儲數(shù)據(jù)。如圖3所示,該方法包括步驟Al 與實施例一中的步驟1相同,即獲取數(shù)據(jù)和該數(shù)據(jù)的糾錯碼(ECC);步驟A2:通過與閃存相連的數(shù)據(jù)通道,將數(shù)據(jù)和數(shù)據(jù)的糾錯碼分別存儲到閃存 不同的頁中;其中,上述數(shù)據(jù)通道包括至少一條;上述與閃存相連的數(shù)據(jù)通道包括與 一個或者多于一個的閃存相連的至少一條數(shù)據(jù)通道;當上述閃存不同的頁為閃存中編號 相同的不同的頁時,上述糾錯碼為閃存中編號相同的頁中存儲的數(shù)據(jù)的糾錯碼。便于理解的說明包括該存儲裝置將獲取的數(shù)據(jù)和該數(shù)據(jù)的糾錯碼分別存儲到 不同的頁中,當有多于一個閃存,且與閃存(Flash)相連的數(shù)據(jù)通道包括多于一條時, Flash被劃分為多于一個的頁,在所有Flash中編號相同的頁中,有一個頁用于存儲糾錯 碼,糾錯碼為所有Flash中編號相同的頁中存儲的數(shù)據(jù)的糾錯碼。需要理解的是,數(shù)據(jù)通道是用于將數(shù)據(jù)和糾錯碼輸入給存儲裝置中的存儲空 間,或者,將數(shù)據(jù)和糾錯碼從存儲空間輸出。這里所述的存儲空間通常是由多個閃存組 成,一個數(shù)據(jù)通道通常與一個或者多于一個的閃存相連,閃存被劃分為多個頁,閃存以 頁為單位輸出頁中存儲的數(shù)據(jù)或糾錯碼,以頁為單位寫入數(shù)據(jù)或者糾錯碼。通常多條數(shù)據(jù)通道并行將數(shù)據(jù)輸入或者輸出存儲裝置。如圖4所示,以存儲裝 置中有四條數(shù)據(jù)通道為例,包括第零通道(CharaileO),第一通道(Charaiell),第二通 道(Channel2),和第三通道(Channel3)。其中,與每條通道相連的Flash中的各Page的 編號是不同的,如圖中顯示出了與每個通道相連的Flash中的編號從PageO至Page7的編 號連續(xù)的頁。其中,步驟A2中所說的“在所有Flash中編號相同的頁中,有一個頁用于 存儲糾錯碼,糾錯碼為所有Flash中編號相同的頁中存儲的數(shù)據(jù)的糾錯碼”,針對圖4的理解是,將與ChannelO至Channel3相連的Flash中編號為PageO的頁中,有一個頁(即 ChannelO的PageO)用于存儲與Channell至Channel3相連的Flash中所有PageO中數(shù)據(jù)的 糾錯碼。即將所有與數(shù)據(jù)通道相連的Flash中PageO內(nèi)存儲的數(shù)據(jù)定義為dataO,所有與 數(shù)據(jù)通道相連的Flash中Pagel內(nèi)存儲的數(shù)據(jù)定義為datal,以此類推;把dataO的糾錯碼 存儲在PageO的其中一個頁中(即如圖4中校驗位ParityO所在的頁),把datal的糾錯碼 存儲在Pagel的一個頁中(即如圖4中校驗位Parityl所在的頁),以此類推。 還需要理解的是,所有數(shù)據(jù)中編號相同的頁的物理地址通常是連續(xù)的,例如 通常與ChannelO相連的Flash中的pageO、與Channell相連的Flash中的pageO、與 Channel相連的Flash中的pageO,和與Channel3相連的Flash中的pageO的物理地址連 續(xù)。通過上述對本發(fā)明實施例提供的一種存儲數(shù)據(jù)的方法的說明,當讀取連續(xù)地址 數(shù)據(jù)時,因為通道間并發(fā),讀一次就可以得到數(shù)據(jù)及該數(shù)據(jù)的糾錯碼,從而進行數(shù)據(jù)校 驗并輸出。從而獲取到正確的數(shù)據(jù),減少了存儲裝置出錯的概率,使得存儲裝置在存儲 數(shù)據(jù)時安全、穩(wěn)定。進一步,為了保證當讀取地址不連續(xù)數(shù)據(jù)時,可以通過盡可能少的操作就可以 讀取數(shù)據(jù)對應的糾錯碼,則步驟A2中存儲糾錯碼的頁,還需要進一步限制,即在與至 少一條數(shù)據(jù)通道中的一條數(shù)據(jù)通道相連的閃存中,當與一個數(shù)據(jù)通道相連的閃存中不同 的頁為閃存中編號連續(xù)的N個頁時,將糾錯碼存儲在編號連續(xù)的N個頁的一個頁中,N 的取值為所有數(shù)據(jù)通道的數(shù)量。上一段文字的說明可以理解為,對步驟A2中存儲糾錯碼的頁,進一步限制包 括與一個數(shù)據(jù)通道相連的所有Flash中,編號連續(xù)的N個頁中,只有一個頁用于存儲糾 錯碼,其中,N為所有數(shù)據(jù)通道的數(shù)量。為了便于理解上一段文字,仍然參見圖4所示,由于多條數(shù)據(jù)通道并行將數(shù)據(jù) 輸出存儲裝置,且同一時刻讀取的地址是不連續(xù)時,例如同一時刻讀取的頁包括與 ChannelO 相連的 Flash 中的 PageO,與 Channell 相連的 Flash 中的 PageO,與 Channel2 相 連的Flash中的Pagel,與Channel3相連的Flash中的Page2,即讀取的數(shù)據(jù)順序的是 ParityO, dataO, datal,data2。由于與一個數(shù)據(jù)通道相連的所有Flash中,編號連續(xù)的N個頁中,只有一個頁用 于存儲糾錯碼,因此,存儲裝置再輸出一次就可以將所有數(shù)據(jù)的糾錯碼讀出,即下一刻 讀取的頁至少包括與Channell相連的Flash中的Pagel中存儲的Parityl,和與Channel2 相連的Flash中的Page2中存儲的Parity2。如果Parityl和Parity2都存儲在同一個數(shù)據(jù)通 道中,就不可能在一次讀取出datal、data2的糾錯碼Parityl、Parity2。通過執(zhí)行上述存儲數(shù)據(jù)的方法,如圖4所示,為最終在數(shù)據(jù)通道中輸入的數(shù)據(jù) 和數(shù)據(jù)的糾錯碼的分布示意圖,可以看出,每個通道中連續(xù)四個頁中只有一個頁用于存 儲糾錯碼,其它三個頁存儲的數(shù)據(jù)。因此,用于存儲糾錯碼頁形成了如圖4所示的有規(guī) 律的階梯分布。還需要說明的是,上述是以四條數(shù)據(jù)通道的存儲裝置進行舉例說明,對于其它 數(shù)量數(shù)據(jù)通道的情況,可以由此處的說明容易推出,因此,此處不應該理解為對本發(fā)明 實施例的限制。
實施例三、本發(fā)明實施例提供了一種存儲數(shù)據(jù)的方法,本發(fā)明實施例提供了一種存儲數(shù)據(jù)的方法,該方法與實施例一提供的方法相似,包括都將數(shù)據(jù)的糾錯碼單獨的以Page為 單位進行存儲,存儲數(shù)據(jù)糾錯碼的Page不存儲數(shù)據(jù),同時,存儲數(shù)據(jù)的Page不存儲數(shù)據(jù) 的糾錯碼;但是,本發(fā)明實施例提供另一種更具體的存儲數(shù)據(jù)及該數(shù)據(jù)糾錯碼的方法, 便于通過更少的步驟,更快速的獲取到數(shù)據(jù)的所有糾錯碼,從而獲取到正確的存儲數(shù) 據(jù)。如圖5所示,該方法包括步驟Bl 與實施例一中的步驟1相同,即獲取數(shù)據(jù)和該數(shù)據(jù)的糾錯碼(ECC);步驟B2 將數(shù)據(jù)和數(shù)據(jù)的糾錯碼分別存儲到與不同數(shù)據(jù)通道相連的閃存的不同 的頁中;其中,上述數(shù)據(jù)通道包括至少一條;上述與閃存相連的數(shù)據(jù)通道包括與一個 或者多于一個的閃存相連的至少一條數(shù)據(jù)通道。對步驟B2可以理解為將獲取的數(shù)據(jù)和該數(shù)據(jù)的糾錯碼分別存儲到不同的頁 中,其中,當有多于一個閃存,且與閃存(Flash)相連的數(shù)據(jù)通道包括多于一條時,F(xiàn)lash 被劃分為多于一個頁,與一條數(shù)據(jù)通道相連的所有Flash中存儲的數(shù)據(jù),與該數(shù)據(jù)的糾錯 碼,存儲在與不同的數(shù)據(jù)通道相連的閃存中;一條數(shù)據(jù)通道為任意一條數(shù)據(jù)通道。其中,在步驟B2中將與一條數(shù)據(jù)通道相連的Flash中存儲的數(shù)據(jù)的糾錯碼,存 儲在不同的Flash中,該不同的Flash是指與另一數(shù)據(jù)通道相連的Flash,當通道間并發(fā)數(shù) 據(jù)時,可以將數(shù)據(jù)與該數(shù)據(jù)的糾錯碼同時輸出,從而可以快速獲取到正確的數(shù)據(jù)。如圖6所示,以存儲裝置中有四條數(shù)據(jù)通道為例,存儲數(shù)據(jù)的空間和數(shù)據(jù)糾錯 碼的空間的分布示意圖。其中,在各數(shù)據(jù)通道中自定義一段地址空間用于存儲數(shù)據(jù)的 糾錯碼,即如圖6中每條數(shù)據(jù)通道中有線條一段地址空間是用于存儲數(shù)據(jù)的糾錯碼;為 了便于理解,在圖6中把與CharaielO相連的Flash中存儲的所有數(shù)據(jù)定義為dataO,把與 Channell相連的Flash中存儲的所有數(shù)據(jù)定義為datal,與Channel2相連的Flash中存儲的 所有數(shù)據(jù)定義為data2,與Channe3相連的Flash中存儲的所有數(shù)據(jù)定義為data3。將dataO 得所有糾錯碼存放在與Charaiell相連的Flash中自定義的一段地址空間(即parityO),將 datal得所有糾錯碼存放在與Channel〗相連的Flash中自定義的一段地址空間(即paritl), 將data2得所有糾錯碼存放在與CharaieKB相連的Flash中自定義的一段地址空間(即 parity2),將data3得所有糾錯碼存放在與ChannelO相連的Flash中自定義的一段地址空間 (即 parity3)。其中,每個自定義的一段地址空間中都包括至少一個頁。還需要理解的是,上 述是有規(guī)律的存儲數(shù)據(jù)的糾錯碼的情況,即如圖6所示,與每一條數(shù)據(jù)通道相連的Flash 中存儲的數(shù)據(jù)的糾錯碼,存儲在與之編號相鄰的下一條數(shù)據(jù)通道相連的Flash中自定義的 地址空間中。事實上,與一條數(shù)據(jù)通道相連的Flash中存儲的數(shù)據(jù),與該數(shù)據(jù)通道相連的 Flash中存儲的數(shù)據(jù)的糾錯碼,滿足分別存儲在與不同的數(shù)據(jù)通道相連的Flash中即可,當 需要讀取該數(shù)據(jù)通道中存儲的數(shù)據(jù)時,就可以根據(jù)存儲該數(shù)據(jù)的糾錯碼的地址,讀出糾 錯碼。其中,讀出數(shù)據(jù)和數(shù)據(jù)的糾錯碼可以是同時的,也可以是分兩次,包括一次讀 出數(shù)據(jù),一次讀出數(shù)據(jù)的糾錯碼。讀出數(shù)據(jù)及糾錯碼是可以根據(jù)存儲數(shù)據(jù)及數(shù)據(jù)的糾錯 碼的地址,選擇最快速的讀出數(shù)據(jù)及其糾錯碼的策略的。
通過對本發(fā)明實施例提供的一種存儲數(shù)據(jù)的方法的說明,該方法將獲取的數(shù)據(jù) 和該數(shù)據(jù)的糾錯碼分別存儲到不同的頁中,其中,當有多于一個閃存,且與閃存(Flash) 相連的數(shù)據(jù)通道包括多于一條時,F(xiàn)lash被劃分為多于一個的頁,與一條數(shù)據(jù)通道相連的 所有Flash中存儲的數(shù)據(jù),與該數(shù)據(jù)的糾錯碼,存儲在與不同的數(shù)據(jù)通道相連的閃存中; 一條數(shù)據(jù)通道為任意一條數(shù)據(jù)通道;因此,可以通過較少讀出次數(shù)就可以獲得數(shù)據(jù)和數(shù) 據(jù)的所有糾錯碼,從而獲取到正確的數(shù)據(jù),減少了存儲裝置出錯的概率,使得存儲裝置 在存儲數(shù)據(jù)時安全、穩(wěn)定。實施例四、本發(fā)明實施例提供一種存儲裝置,如圖7所示,該存儲裝置包括第一獲取單 元100,第二獲取單元101,控制存儲單元102,數(shù)據(jù)通道103和閃存104。其中,第一獲取單元100,用于獲取數(shù)據(jù); 第二獲取單元101,用于獲取第一獲取單元100中獲取數(shù)據(jù)的糾錯碼;其中,第一獲取單元100中獲取的數(shù)據(jù)可以是接收其它設備發(fā)送的需要存儲的 數(shù)據(jù),第二獲取單元101中獲取該數(shù)據(jù)的糾錯碼可以是根據(jù)特定的算法,而計算出的數(shù) 據(jù)的糾錯碼,獲取數(shù)據(jù)的糾錯碼的具體操作可以參考現(xiàn)有技術??刂拼鎯卧?02,用于通過與閃存相連的數(shù)據(jù)通道,將數(shù)據(jù)和數(shù)據(jù)的糾錯碼分 別存儲到閃存不同的頁中。數(shù)據(jù)通道103,用于傳輸數(shù)據(jù)及數(shù)據(jù)的糾錯碼,與現(xiàn)有技術中數(shù)據(jù)通道相同;閃存104,用于存儲數(shù)據(jù)及糾錯碼,其中,閃存以頁為單位被劃分,與現(xiàn)有技術 中閃存相同。其中,數(shù)據(jù)被存儲到一個或者多于一個的頁中,將數(shù)據(jù)的糾錯碼也存儲到一個 或者多于一個的頁中,其中,存儲數(shù)據(jù)的頁和存儲數(shù)據(jù)糾錯碼的頁是不同的頁。通過對本發(fā)明實施例提供的一種存儲裝置的說明,該裝置通過將數(shù)據(jù)的糾錯碼 存儲到獨立的頁中,即將存儲空間的頁劃分為兩類,包括一類頁用于存儲數(shù)據(jù),一類 頁用于存儲數(shù)據(jù)的糾錯碼;因此,可以通過較少讀出次數(shù)就可以獲得數(shù)據(jù)和數(shù)據(jù)的所有 糾錯碼,從而獲取到正確的數(shù)據(jù),減少了存儲裝置出錯的概率,使得存儲裝置在存儲數(shù) 據(jù)時安全、穩(wěn)定。可選的,當數(shù)據(jù)通道包括至少一條;且與一個或者多于一個的閃存與每一條數(shù) 據(jù)通道相連;則控制存儲單元102,具體用于通過與閃存相連的數(shù)據(jù)通道,將數(shù)據(jù)和數(shù)據(jù)的糾 錯碼分別存儲到閃存不同的頁中;當閃存不同的頁為閃存中編號相同的不同的頁時,糾 錯碼為閃存中編號相同的頁中存儲的數(shù)據(jù)的糾錯碼。對于上兩段文字對控制存儲單元102的說明,還可以理解為,控制存儲單元102 具體用于將獲取的數(shù)據(jù)和該數(shù)據(jù)的糾錯碼分別存儲到不同的頁中,其中,當有多于一個 閃存,且與閃存(Flash)相連的數(shù)據(jù)通道包括多于一條時,F(xiàn)lash被劃分為多于一個的頁, 在所有Flash中編號相同的頁中,有一個頁用于存儲糾錯碼,糾錯碼為所有Flash中編號 相同的頁中存儲的數(shù)據(jù)的糾錯碼。其中,需要理解的是,該存儲裝置可以包括一個或者一個以上的Flash,該Flash 提供存儲空間,即用于存儲數(shù)據(jù)和/或數(shù)據(jù)的糾錯碼,每個Flash又被劃分為多個頁,頁是對Flash進行讀或者寫操作的最小單元。 通過對該存儲裝置中的控制存儲單元102的進一步說明,使得該存儲裝置在當 讀取連續(xù)地址數(shù)據(jù)時,因為通道間并發(fā),讀一次就可以得到數(shù)據(jù)及該數(shù)據(jù)的糾錯碼,從 而進行數(shù)據(jù)校驗并輸出。從而獲取到正確的數(shù)據(jù),減少了存儲裝置出錯的概率,使得存 儲裝置在存儲數(shù)據(jù)時安全、穩(wěn)定。進一步,在上述關于該存儲裝置102的進一步說明的基礎上,該存儲裝置102中 與一個數(shù)據(jù)通道相連的所有Flash中,編號連續(xù)的N個頁中,只有一個頁用于存儲糾錯 碼,其中,N為所述數(shù)據(jù)通道的數(shù)量。對上一段文字的說明也可以理解為在與至少一條數(shù)據(jù)通道中的一條數(shù)據(jù)通道 相連的閃存中,當與一個數(shù)據(jù)通道相連的閃存中不同的頁為閃存中編號連續(xù)的N個頁 時,將糾錯碼存儲在編號連續(xù)的N個頁的一個頁中,N的取值為所有數(shù)據(jù)通道的數(shù)量。通過進一步增加對該存儲裝置中的控制存儲單元102的說明,使得該存儲裝置 在當讀取地址不連續(xù)數(shù)據(jù)時,可以通過盡力少的操作就可以讀取數(shù)據(jù)對應的糾錯碼??蛇x的,該存儲裝置中當數(shù)據(jù)通道包括至少一條;且與一個或者多于一個的閃 存與每一條數(shù)據(jù)通道相連;則控制存儲單元102,具體用于將數(shù)據(jù)和數(shù)據(jù)的糾錯碼分別 存儲到與不同數(shù)據(jù)通道相連的閃存的不同的頁中。也可以理解為該存儲裝置中的控制存儲單元102,可以具體用于將獲取的數(shù)據(jù)和 該數(shù)據(jù)的糾錯碼分別存儲到不同的頁中,其中,當有多于一個閃存,且與閃存(Flash)相 連的數(shù)據(jù)通道包括多于一條時,F(xiàn)lash被劃分為多于一個的頁,與一條數(shù)據(jù)通道相連的所 有Flash中存儲的數(shù)據(jù),與該數(shù)據(jù)的糾錯碼,存儲在與不同的數(shù)據(jù)通道相連的閃存中;一 條數(shù)據(jù)通道為任意一條數(shù)據(jù)通道。通過上一段文字對該控制存儲單元102的限定,使得該存儲裝置將與一條數(shù)據(jù) 通道相連的Flash中存儲的數(shù)據(jù)的糾錯碼,存儲在與零一條數(shù)據(jù)通道相連的Flash中,當 通道間并發(fā)數(shù)據(jù)時,可以將數(shù)據(jù)與該數(shù)據(jù)的糾錯碼同時輸出,從而可以快速獲取到正確 的數(shù)據(jù)。還需要說明的是,對于該存儲裝置的更多詳細說明和理解,可以參考方法實施 例一,二,和三中的說明。本領域普通技術人員可以理解上述實施例的各種方法中的全部或部分步驟是可 以通過程序來指令相關的硬件來完成,該程序可以存儲于一計算機可讀存儲介質中,存 儲介質可以包括ROM、RAM、磁盤或光盤等。以上對本發(fā)明實施例所提供一種存儲數(shù)據(jù)的方法及存儲裝置進行了詳細介紹, 本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是 用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領域的一般技術人員,依據(jù)本 發(fā)明的思想,在具體實施方式
及應用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容 不應理解為對本發(fā)明的限制。
權利要求
1.一種存儲數(shù)據(jù)的方法,其特征在于,包括獲得數(shù)據(jù)和所述數(shù)據(jù)的糾錯碼;通過與閃存相連的數(shù)據(jù)通道,將所述數(shù)據(jù)和所述數(shù)據(jù)的糾錯碼分別存儲到所述閃存 不同的頁中。
2.根據(jù)權利要求1所述的存儲數(shù)據(jù)的方法,其特征在于,所述數(shù)據(jù)通道包括至少一 條;所述與閃存相連的數(shù)據(jù)通道包括與一個或者多于一個的閃存相連的至少一條數(shù)據(jù) 通道;當所述閃存不同的頁為閃存中編號相同的不同的頁時,所述糾錯碼為閃存中編號相 同的頁中存儲的數(shù)據(jù)的糾錯碼。
3.根據(jù)權利要求2所述的存儲數(shù)據(jù)的方法,其特征在于,所述通過與閃存相連的數(shù)據(jù) 通道,將所述數(shù)據(jù)和所述數(shù)據(jù)的糾錯碼分別存儲到所述閃存不同的頁中,包括在與所述至少一條數(shù)據(jù)通道中的一條數(shù)據(jù)通道相連的閃存中,當與所述一個數(shù)據(jù)通 道相連的閃存中不同的頁為閃存中編號連續(xù)的N個頁時,將糾錯碼存儲在所述編號連續(xù) 的N個頁的一個頁中,所述N的取值為所有數(shù)據(jù)通道的數(shù)量。
4.根據(jù)權利要求1所述的存儲數(shù)據(jù)的方法,其特征在于,所述數(shù)據(jù)通道包括至少一 條;所述與閃存相連的數(shù)據(jù)通道包括與一個或者多于一個的閃存相連的至少一條數(shù)據(jù) 通道;所述通過與閃存相連的數(shù)據(jù)通道,將所述數(shù)據(jù)和所述數(shù)據(jù)的糾錯碼分別存儲到所述 閃存不同的頁中包括將所述數(shù)據(jù)和所述數(shù)據(jù)的糾錯碼分別存儲到與不同數(shù)據(jù)通道相連 的閃存的不同的頁中。
5.—種存儲裝置,包括數(shù)據(jù)通道和閃存,其特征在于,還包括第一獲取單元, 第二獲取單元和控制存儲單元;所述第一獲取單元,用于獲取數(shù)據(jù);所述第二獲取單元,用于獲取所述數(shù)據(jù)的糾錯碼;所述控制存儲單元,用于通過與所述閃存相連的所述數(shù)據(jù)通道,將所述數(shù)據(jù)和所述 數(shù)據(jù)的糾錯碼分別存儲到所述閃存不同的頁中。
6.根據(jù)權利要求5所述的裝置,其特征在于,所述數(shù)據(jù)通道包括至少一條;所述與 閃存相連的數(shù)據(jù)通道包括與一個或者多于一個的閃存相連的至少一條數(shù)據(jù)通道;當所述閃存不同的頁為閃存中編號相同的不同的頁時,所述糾錯碼為閃存中編號相 同的頁中存儲的數(shù)據(jù)的糾錯碼。
7.根據(jù)權利要求6所述的裝置,其特征在于,所述通過與閃存相連的數(shù)據(jù)通道,將所 述數(shù)據(jù)和所述數(shù)據(jù)的糾錯碼分別存儲到所述閃存不同的頁中,包括在與所述至少一條數(shù)據(jù)通道中的一條數(shù)據(jù)通道相連的閃存中,當與所述一個數(shù)據(jù)通 道相連的閃存中不同的頁為閃存中編號連續(xù)的N個頁時,將糾錯碼存儲在所述編號連續(xù) 的N個頁的一個頁中,所述N的取值為所有數(shù)據(jù)通道的數(shù)量。
8.根據(jù)權利要求5所述的裝置,其特征在于,所述數(shù)據(jù)通道包括至少一條;所述與 閃存相連的數(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ù)據(jù)和所述數(shù)據(jù)的糾錯碼分別存儲到所述閃存不同的頁中。本發(fā)明技術方案由于將數(shù)據(jù)的糾錯碼存儲到獨立的頁中,即將存儲空間的頁劃分為兩類,包括一類頁用于存儲數(shù)據(jù),一類頁用于存儲數(shù)據(jù)的糾錯碼,因此,可以通過較少讀出次數(shù)就可以獲得數(shù)據(jù)和數(shù)據(jù)的所有糾錯碼,從而獲取到正確的數(shù)據(jù),減少了存儲裝置出錯的概率,使得存儲裝置在存儲數(shù)據(jù)時安全、穩(wěn)定。
文檔編號G11C29/42GK102024497SQ200910173950
公開日2011年4月20日 申請日期2009年9月22日 優(yōu)先權日2009年9月22日
發(fā)明者張婭舸, 徐君 申請人:成都市華為賽門鐵克科技有限公司