專利名稱:數(shù)據(jù)存儲裝置以及相關(guān)的操作方法
技術(shù)領(lǐng)域:
本發(fā)明構(gòu)思的實(shí)施例總體涉及電子數(shù)據(jù)存儲技術(shù)。更具體地講,本發(fā)明構(gòu)思的實(shí)施例涉及一種數(shù)據(jù)存儲裝置以及相關(guān)的操作方法。
背景技術(shù):
大多數(shù)計(jì)算機(jī)系統(tǒng)包括用于存儲由當(dāng)前應(yīng)用使用的數(shù)據(jù)的主存儲器和用于大數(shù)據(jù)存儲的長期存儲器。主存儲器通常包括易失性存儲器(例如,動態(tài)隨機(jī)存取存儲器(DRAM)或靜態(tài)隨機(jī)存取存儲器(SRAM),長期存儲器通常包括硬盤驅(qū)動器(HDD)或固態(tài)驅(qū)動器(SSD)。 HDD具有幾種公知的限制,例如,相對慢的訪問時間和趨向于經(jīng)歷機(jī)械故障。因此,存在使用SSD來替代許多系統(tǒng)中的HDD的總體趨勢。SSD通常包括多個非易失性存儲芯片,例如,閃存芯片或電阻存儲器芯片。SSD提供超過HDD的許多優(yōu)點(diǎn),所述優(yōu)點(diǎn)包括相對低的功耗以及經(jīng)得起物理沖擊的能力。通過增加性能需求來伴隨著SSD的繼續(xù)采用。因此,研究者正繼續(xù)尋求提高SSD的速度和數(shù)據(jù)存儲容量的途徑。
發(fā)明內(nèi)容
根據(jù)本發(fā)明構(gòu)思的一個實(shí)施例,提供一種用于在數(shù)據(jù)存儲裝置中執(zhí)行寫入操作的方法,該數(shù)據(jù)存儲裝置包括存儲介質(zhì)、處理單元和緩沖存儲器,緩沖存儲器在處理單元的控制下存儲將被發(fā)送到存儲介質(zhì)的數(shù)據(jù)。所述方法包括將緩沖存儲器中的數(shù)據(jù)聚集為包括多個數(shù)據(jù)條的條組;將至少一個條組中的數(shù)據(jù)條發(fā)送到存儲介質(zhì);在不需要另外訪問緩沖存儲器的情況下基于發(fā)送的至少一個條組中的數(shù)據(jù)條來計(jì)算奇偶校驗(yàn)條;將奇偶校驗(yàn)條發(fā)送到存儲介質(zhì)。根據(jù)本發(fā)明構(gòu)思的另一實(shí)施例,提供一種數(shù)據(jù)存儲裝置。該數(shù)據(jù)存儲裝置包括存儲介質(zhì);緩沖存儲器;處理單元;控制邏輯,被構(gòu)造為在處理單元的控制下控制存儲介質(zhì)的訪問操作;奇偶校驗(yàn)產(chǎn)生器,被構(gòu)造為在處理單元的控制下并且在不需要另外訪問緩沖存儲器的情況下,基于從緩沖存儲器發(fā)送到存儲介質(zhì)的至少一個條組的數(shù)據(jù)條,來產(chǎn)生奇偶校驗(yàn)條。根據(jù)本發(fā)明構(gòu)思的另一實(shí)施例,提供一種用于在存儲裝置中執(zhí)行寫入操作的方法,該存儲裝置包括閃存、處理單元、閃存轉(zhuǎn)換層和緩沖存儲器,緩沖存儲器在處理單元的控制下存儲將被發(fā)送到閃存的數(shù)據(jù)。所述方法包括將數(shù)據(jù)存儲在緩沖存儲器中;通過在閃存轉(zhuǎn)換層中執(zhí)行地址映射,將存儲在緩沖存儲器中的數(shù)據(jù)聚集為包括多個數(shù)據(jù)條的條組;將條組中的數(shù)據(jù)條發(fā)送到閃存;對發(fā)送到閃存的數(shù)據(jù)條執(zhí)行XOR運(yùn)算,以產(chǎn)生奇偶校驗(yàn)條;將奇偶校驗(yàn)條發(fā)送到閃存。本發(fā)明構(gòu)思的這些和其他實(shí)施例通過從已經(jīng)從緩沖存儲器發(fā)送到存儲介質(zhì)的數(shù)據(jù)條來產(chǎn)生奇偶校驗(yàn)條,可降低緩沖存儲器的數(shù)據(jù)通信量。
附圖示出本發(fā)明構(gòu)思的選擇的實(shí)施例。在附圖中,相同的標(biāo)號表示相同的特征。圖I是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的包括數(shù)據(jù)存儲裝置的系統(tǒng)的框圖。圖2是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的在圖I中示出的SSD控制器的框圖。圖3是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的在圖2中示出的存儲介質(zhì)的框圖。圖4是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的用于描述數(shù)據(jù)存儲裝置的全帶(full stripe) 寫入方法的示圖。圖5是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的用于描述數(shù)據(jù)存儲裝置的全帶寫入方法的數(shù)據(jù)流的框圖。圖6是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的在圖2中示出的閃存控制器的框圖。圖7是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的用于描述數(shù)據(jù)存儲裝置的命令的示圖。圖8是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的用于描述與數(shù)據(jù)存儲裝置的XWRITE命令相應(yīng)的閃存控制器的操作的示圖。圖9是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的用于描述與數(shù)據(jù)存儲裝置的PBWRITE命令相應(yīng)的閃存控制器的操作的示圖。圖10是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的用于描述與數(shù)據(jù)存儲裝置的XLOAD命令相應(yīng)的閃存控制器的操作的示圖。圖11是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的用于描述與數(shù)據(jù)存儲裝置的XREAD命令相應(yīng)的閃存控制器的操作的示圖。圖12是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的用于描述與數(shù)據(jù)存儲裝置的PBREAD命令相應(yīng)的閃存控制器的操作的示圖。圖13是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的用于描述與數(shù)據(jù)存儲裝置的XC0PYBACK命令相應(yīng)的閃存控制器的操作的示圖。圖14是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的用于描述數(shù)據(jù)存儲裝置的全帶寫入方法的統(tǒng)一建模語言(UML)時序圖。圖15至圖17是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的在圖14中示出的全帶寫入方法的數(shù)據(jù)流的示圖。圖18是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的數(shù)據(jù)存儲裝置的不可讀數(shù)據(jù)恢復(fù)操作的UML時序圖。圖19至圖21是圖18中示出的不可讀數(shù)據(jù)恢復(fù)操作的數(shù)據(jù)流的示圖。圖22是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的用于描述數(shù)據(jù)存儲裝置的復(fù)制(copyback)程序操作的UML時序圖。圖23至圖25是圖22中示出的復(fù)制程序操作的數(shù)據(jù)流的示圖。圖26是根據(jù)本發(fā)明構(gòu)思的另一實(shí)施例的用于描述數(shù)據(jù)存儲裝置的全帶寫入方法的UML時序圖。
圖27至圖31是用于執(zhí)行圖26中示出的全帶寫入操作的數(shù)據(jù)流的示圖。圖32是根據(jù)本發(fā)明構(gòu)思的另一實(shí)施例的用于描述數(shù)據(jù)存儲裝置的全帶寫入方法的示圖。圖33A至圖33D是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的用于描述應(yīng)用到數(shù)據(jù)存儲裝置的帶類型(stripe type)的示圖。圖34是根據(jù)本發(fā)明構(gòu)思的另一實(shí)施例的數(shù)據(jù)存儲裝置的框圖。圖35是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的包括數(shù)據(jù)存儲裝置的計(jì)算系統(tǒng)的框圖。圖36是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的使用數(shù)據(jù)存儲裝置的存儲器的框圖。圖37是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的使用數(shù)據(jù)存儲裝置的存儲服務(wù)器的框圖。
圖38至圖40是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的包括數(shù)據(jù)存儲裝置的系統(tǒng)的示圖。
具體實(shí)施例方式下面參照附圖描述本發(fā)明構(gòu)思的實(shí)施例。示出這些實(shí)施例作為教導(dǎo)示例,不應(yīng)被解釋為限制本發(fā)明構(gòu)思的范圍。在下面的描述中,術(shù)語第一、第二、第三等用于描述不同的特征,然而這些特征不應(yīng)被這些術(shù)語限制。相反,這些術(shù)語僅用于在不同的特征之間進(jìn)行區(qū)分。因此,在不脫離本發(fā)明構(gòu)思的教導(dǎo)的情況下,第一特征可以被稱為第二元件、組件、區(qū)域、層或部分。在這里可使用空間相對術(shù)語(例如“在...之下”、“在...下方”、“下面的”“在...下面”、“在...之上”、“上面的”等)來描述附圖中的不同特征之間的空間關(guān)系。空間相對術(shù)語是為了包括除了附圖中描述的方位之外的在使用或運(yùn)行中的裝置的不同方位。例如,如果附圖中的裝置被翻轉(zhuǎn),則被描述為“在”其他部件或特征“之下”或“下方”或“下面”的部件將隨后被定位為在所述其他部件或特征“之上”。因此,術(shù)語“在...下方”和“在...下面”可包括上面和下面兩種方位??蓪⒀b置朝向另外的方位(旋轉(zhuǎn)90度或在其他方位),并相應(yīng)地解釋在這里使用的關(guān)于空間相對的描述符。此外,在層被稱為“在”兩個層“之間”的情況下,可以是在所述兩個層之間唯一的層,或者還可存在一個或多個中間層。這里使用的術(shù)語僅用于描述特定實(shí)施例的目的,不是為了限制本發(fā)明構(gòu)思。如這里所使用的,單數(shù)形式也意圖包括復(fù)數(shù)形式,除非上下文另有清楚的指示。當(dāng)在本說明書中使用術(shù)語“包括”和/或“包含”時,其表示存在敘述的特征、整體、步驟、操作、元件和/或組件,但不排除存在或添加一個或多個其它特征、整體、步驟、操作、元件、組件和/或它們的組。如這里所使用的,術(shù)語“和/或”表示一個或多個相關(guān)列出的項(xiàng)的任意或全部組合。在元件或?qū)颖环Q作“在”另一特征“之上”、“連接”、“結(jié)合”或“鄰近于”另一特征時,該元件或?qū)涌芍苯印霸凇彼隽硪惶卣髦?、連接、結(jié)合或鄰近于另一特征,或者可存在中間特征。相反,當(dāng)特征被稱作“直接” “在”另一特征“之上”、“直接連接”、“直接結(jié)合”或“緊鄰于”另一特征時,不存在中間特征。除非另有定義,否則這里使用的所有術(shù)語(包括技術(shù)和科學(xué)術(shù)語)具有與本領(lǐng)域普通技術(shù)人員通常理解的含義相同的含義。除非這里明確定義,否則術(shù)語(諸如在常用詞典中定義的)應(yīng)被解釋為具有與所述術(shù)語在相關(guān)領(lǐng)域和/或本說明書的上下文中的含義一致的含義,而不應(yīng)理想化或過于形式地被理解。
圖I是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的包括數(shù)據(jù)存儲裝置的系統(tǒng)的框圖。參照圖I,所述系統(tǒng)包括數(shù)據(jù)存儲裝置1000和主機(jī)系統(tǒng)2000。數(shù)據(jù)存儲裝置1000響應(yīng)于來自主機(jī)系統(tǒng)2000的請求進(jìn)行操作,并且用于存儲用于主機(jī)系統(tǒng)2000的數(shù)據(jù)信息。例如,數(shù)據(jù)存儲裝置1000可以是使用非易失性存儲裝置作為自己的存儲介質(zhì)的固態(tài)驅(qū)動器(SSD)??蛇x地,數(shù)據(jù)存儲裝置1000可采用其他形式,例如,硬盤驅(qū)動器(HDD)。數(shù)據(jù)存儲裝置1000包括一個或多個存儲介質(zhì)1200以及SSD控制器1400。存儲介質(zhì)1200在SSD控制器1400的控制下存儲從主機(jī)系統(tǒng)2000發(fā)送的數(shù)據(jù)或者將被發(fā)送到主機(jī)系統(tǒng)2000的數(shù)據(jù)。從主機(jī)系統(tǒng)2000發(fā)送的數(shù)據(jù)被臨時存儲在緩沖存儲器1420中。具體地,SSD控制器1400可管理臨時存儲在緩沖存儲器1420中的數(shù)據(jù)的地址映射,以配置條(strip)組。換句話說,在主機(jī)系統(tǒng)2000的隨機(jī)或順序?qū)懭胝埱蟮臄?shù)據(jù)被存儲在緩沖存儲器1420中的情況下,SSD控制器1400可管理與存儲在緩沖存儲器1420中的將被配置為一個或多個條組的數(shù)據(jù)相關(guān)聯(lián)的地址映射,而不考慮寫入請求類型。
條組由多個條(或多個數(shù)據(jù)條)形成??筛鶕?jù)應(yīng)用到存儲介質(zhì)1200的存儲器類型來不同地定義條。例如,在存儲介質(zhì)1200由閃存裝置形成的情況下,條可以由一個或多個頁形成。在下面描述的特定實(shí)施例中,條由一個頁形成,在其他實(shí)施例中,條可選擇性地由頁的一個或多個塊形成或者由每個都在尺寸上小于一個頁的一個或多個簇形成。SSD控制器1400還包括奇偶校驗(yàn)產(chǎn)生塊1451和ECC產(chǎn)生塊1452。在準(zhǔn)備一個或多個條的情況下,SSD控制器1400通過條組將緩沖存儲器1420的數(shù)據(jù)發(fā)送到存儲介質(zhì)1200。在條組中的數(shù)據(jù)條被發(fā)送到存儲介質(zhì)1200之后,SSD控制器1400的奇偶校驗(yàn)產(chǎn)生塊1451對數(shù)據(jù)條執(zhí)行XOR運(yùn)算,這將在下面更充分地進(jìn)行描述。XOR運(yùn)算的結(jié)果(被稱為“奇偶校驗(yàn)條”)被添加到條組用于糾錯。條組內(nèi)的數(shù)據(jù)條和添加的奇偶校驗(yàn)條構(gòu)成一個帶(stripe)或全帶(full stripe)寫入單元。添加的奇偶校驗(yàn)條可與條組的數(shù)據(jù)條被存儲在存儲介質(zhì)1200中。該寫入操作可被稱為全帶寫入操作。在條組中的數(shù)據(jù)條被發(fā)送到存儲介質(zhì)的情況下,SSD控制器1400的ECC產(chǎn)生塊1452被構(gòu)造為產(chǎn)生關(guān)于各個數(shù)據(jù)條和奇偶校驗(yàn)條的ECC信息。S卩,ECC信息被添加到構(gòu)成帶的各個數(shù)據(jù)條和奇偶校驗(yàn)條。因?yàn)樵跅l組的數(shù)據(jù)條被發(fā)送到存儲介質(zhì)1200時產(chǎn)生奇偶校驗(yàn)條,因此可進(jìn)行一個帶中的奇偶校驗(yàn)條的產(chǎn)生,而不需要另外/進(jìn)一步訪問緩沖存儲器1420或不需要緩沖存儲器1420的通信量增加。換句話說,與不包括奇偶校驗(yàn)條的產(chǎn)生的傳統(tǒng)寫入操作相比,根據(jù)本發(fā)明構(gòu)思的實(shí)施例的數(shù)據(jù)存儲裝置的寫入操作可使得緩沖存儲器1420中的通信量增加較小。圖2是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的圖I的SSD控制器1400的框圖。參照圖2,SSD控制器1400包括主機(jī)接口(HI) 1410、緩沖存儲器1420、處理單元1430(例如,微處理器或CPU)、RAM 1440、閃存控制器(FMC) 1450。主機(jī)接口 1410提供與主機(jī)系統(tǒng)2000的接口??赏ㄟ^有線或無線主機(jī)接口 1410來形成數(shù)據(jù)存儲裝置1000與主機(jī)系統(tǒng)2000之間的連接。緩沖存儲器1420用于存儲從主機(jī)系統(tǒng)2000發(fā)送的數(shù)據(jù)或者將被發(fā)送到主機(jī)系統(tǒng)2000的數(shù)據(jù)。處理單元1430被構(gòu)造為控制SSD控制器1400的全部操作。在數(shù)據(jù)存儲裝置1000被供電的情況下,例如,存儲在存儲介質(zhì)1200中的代碼(例如,通過閃存轉(zhuǎn)換層(FTL))被加載到RAM 1440。另一方面,代替代碼RAM,代碼ROM可用于存儲上述代碼。FTL可用于管理地址映射、存儲介質(zhì)1200的損耗均衡(wear leveling)、在不期望的功率損耗期間的數(shù)據(jù)維護(hù)。閃存控制器1450響應(yīng)于處理單元1430的請求來控制對存儲介質(zhì)1200的訪問。閃存控制器1450包括奇偶校驗(yàn)產(chǎn)生塊1451和ECC產(chǎn)生塊1452。如上所述,在通過地址映射準(zhǔn)備一個或多個條組的情況下,緩沖存儲器1420的數(shù)據(jù)可通過條組被發(fā)送到存儲介質(zhì)1200。在條組中的數(shù)據(jù)條分別被發(fā)送到存儲介質(zhì)1200的情況下,奇偶校驗(yàn)產(chǎn)生塊1451對數(shù)據(jù)條執(zhí)行XOR運(yùn)算,以產(chǎn)生奇偶校驗(yàn)條。在條組中的數(shù)據(jù)條被發(fā)送到存儲介質(zhì)1200的情況下,ECC產(chǎn)生塊1452產(chǎn)生用于各個數(shù)據(jù)條和相應(yīng)的奇偶校驗(yàn)條的ECC信息。當(dāng)針對每個數(shù)據(jù)條和奇偶校驗(yàn)條產(chǎn)生ECC信息時,該ECC信息被添加到構(gòu)成全帶寫入單元的條。在一些實(shí)施例中,奇偶校驗(yàn)產(chǎn)生塊1451和ECC產(chǎn)生塊1452包括在閃存控制器1450中。然而,奇偶校驗(yàn)產(chǎn)生塊1451和ECC產(chǎn)生塊1452可置于閃存控制器1450之外??蛇x地,ECC產(chǎn)生塊1452也可包括在存儲介質(zhì)1200的每個閃存裝置之內(nèi)。
在一些實(shí)施例中,主機(jī)接口 1410執(zhí)行計(jì)算機(jī)總線標(biāo)準(zhǔn)、存儲總線標(biāo)準(zhǔn)、iFCP外圍總線標(biāo)準(zhǔn)或者兩個或更多個這樣的標(biāo)準(zhǔn)的組合。計(jì)算機(jī)總線標(biāo)準(zhǔn)的示例包括s-100總線、Mbus, Smbus, Q-Bus, ISA、Zorro II、Zorro III、CAMAC、高速總線(FASTBUS)、LPC、EISA、VME、VXI、NuBus、增強(qiáng)通道(TURBOchannel)、MCA、Sbus, VLB、PCI、PXI、HP GSC 總線,CoreConnect> Inf iniBand、UPA、PCI-X、AGP、PCIe、英特爾快速路徑互連(Intel QuickPathInterconnect)、超傳輸(Hyper Transport)。存儲總線標(biāo)準(zhǔn)的示例包括ST-506、ESDI、SMD、并行 ATA、DMA、SSA、HIPPI、USB MSC、火線(1394)、串行 ATA、eSATA、SCSI、并行 SCSI、串行連接方式 SCSI (Serial Attached SCSI)、光纖通道(Fibre Channel)、iSCSI、SAS、RapidI0、FCIP。iFCP外圍總線標(biāo)準(zhǔn)的示例包括蘋果桌面總線(Apple Desktop Bus)、HIL、MIDI、Multibus、RS-232、DMX512-A、EIA/RS-422、IEEE-1284、UNI/0、1-Wire、I2C、SPI、EIA/RS_485、USB、相機(jī)鏈接(Camera Link)、擴(kuò)展 PCIe (External PCIe)、光峰(Light Peak)、多支路總線(Multidrop Bus)。圖3是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的在圖2中示出的存儲介質(zhì)1200的框圖。參照圖3,存儲介質(zhì)1200經(jīng)由通道CHO至CHn-I與SSD控制器1400的閃存控制器(FMC) 1450連接。通道CHO至CHn-I的每個與多個非易失性存儲裝置NVM連接。例如,非易失性存儲裝置NVM可以是閃存裝置??蛇x地,例如,非易失性存儲裝置NVM可以是相變RAM(PRAM)、鐵電存儲裝置(FeRAM)或磁阻RAM(MRAM)。圖4是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的用于描述數(shù)據(jù)存儲裝置的全帶寫入方法的示圖。在下面的描述中,通過括號指示示例方法步驟。參照圖4,主機(jī)系統(tǒng)200以隨機(jī)次序或順序次序發(fā)送將被存儲在數(shù)據(jù)存儲裝置1000中的數(shù)據(jù)(B100)。數(shù)據(jù)存儲裝置1000將從主機(jī)系統(tǒng)2000隨機(jī)或順序發(fā)送的數(shù)據(jù)存儲在緩沖存儲器1420中(BllO)。通過處理單元1430(或FTL)來管理從主機(jī)系統(tǒng)2000發(fā)送的數(shù)據(jù)的地址,以構(gòu)成條組(B120)。存儲在緩沖存儲器1420中的數(shù)據(jù)通過FTL的地址映射被聚集到一個或多個條組??赏ㄟ^邏輯地址和物理地址之間的地址映射(而非通過數(shù)據(jù)的傳輸)來執(zhí)行將數(shù)據(jù)聚集到一個或多個條組。在準(zhǔn)備至少一個條組之后,在處理單元1430的控制下,存儲在緩沖存儲器1420中的至少一個條組的數(shù)據(jù)(或數(shù)據(jù)條)被順序發(fā)送到存儲介質(zhì)1200 (B130)。當(dāng)至少一個條組的每個數(shù)據(jù)條被發(fā)送到存儲介質(zhì)1200時,可通過ECC產(chǎn)生塊1452來執(zhí)行至少一個條組中的每個數(shù)據(jù)條的編碼(B140)。例如,如圖4所示,ECC信息可被添加到一個數(shù)據(jù)條。ECC信息用于糾正對應(yīng)的數(shù)據(jù)條的錯誤,可根據(jù)存儲在一個單元中的數(shù)據(jù)比特的數(shù)量來確定糾錯能力(或ECC信息的比特?cái)?shù))。此外,在至少一個條組的每個數(shù)據(jù)條被發(fā)送到存儲介質(zhì)1200時,奇偶校驗(yàn)產(chǎn)生塊1451通過對至少一個條組中的數(shù)據(jù)條執(zhí)行XOR運(yùn)算來產(chǎn)生奇偶校驗(yàn)條(B150)。在至少一個條組的數(shù)據(jù)條全被發(fā)送到存儲介質(zhì)1200之后,奇偶校驗(yàn)條可被發(fā)送到存儲介質(zhì)1200。通過ECC產(chǎn)生塊1452來執(zhí)行發(fā)送到存儲介質(zhì)1200的奇偶校驗(yàn)條的編碼操作(B140)。即,ECC信息被添加到一個奇偶校驗(yàn)條。奇偶校驗(yàn)條用于提高一個帶的數(shù)據(jù)的穩(wěn)定性。具體地,可產(chǎn)生奇偶校驗(yàn)條以恢復(fù)一個帶中的數(shù)據(jù)條和奇偶校驗(yàn)條之中的不可讀的條。隨后,如圖4所示,存儲在存儲介質(zhì)1200中的帶由多個數(shù)據(jù)條和一個奇偶校驗(yàn)條形成,ECC信息被添加到每個條。因?yàn)楫?dāng)條組中的數(shù)據(jù)條被發(fā)送到存儲介質(zhì)1200時產(chǎn)生奇偶校驗(yàn)條,如圖4所示, 可在不需要另外/進(jìn)一步訪問緩沖存儲器1420和/或增加緩沖存儲器1420的通信量的情況下執(zhí)行一個帶中的奇偶校驗(yàn)條的產(chǎn)生。換句話說,因?yàn)椴粓?zhí)行對緩沖存儲器1420的另外訪問來產(chǎn)生奇偶校驗(yàn)條,因此在產(chǎn)生用于提高數(shù)據(jù)穩(wěn)定性的奇偶校驗(yàn)條之前和之后,緩沖存儲器1420的通信量保持不變。圖5是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的用于描述數(shù)據(jù)存儲裝置的全帶寫入方法的數(shù)據(jù)流的框圖。參照圖5,從主機(jī)系統(tǒng)2000提供的數(shù)據(jù)通過主機(jī)接口 1410被存儲在緩沖存儲器1420中。存儲在緩沖存儲器1420中的數(shù)據(jù)是根據(jù)主機(jī)系統(tǒng)2000的隨機(jī)或順序?qū)懭胝埱蠖峁┑臄?shù)據(jù)。例如,緩沖存儲器1420可被訪問(N-I)次,以將從主機(jī)系統(tǒng)2000發(fā)送的數(shù)據(jù)存儲在緩沖存儲器1420中。如圖5所示,存儲在緩沖存儲器1420中的數(shù)據(jù)被聚集以形成條組。可通過閃存轉(zhuǎn)換層的地址映射(而非通過數(shù)據(jù)的傳輸)來執(zhí)行將數(shù)據(jù)聚集到條組。可根據(jù)不同的應(yīng)用來不同地確定一個條組中的條(或數(shù)據(jù)條)的數(shù)量。在配置一個或多個條組之后,在處理單元1430的控制下,條組的數(shù)據(jù)(或數(shù)據(jù)條)被發(fā)送到存儲介質(zhì)1200。閃存控制器1450響應(yīng)于從處理單元1430提供的命令將數(shù)據(jù)條發(fā)送到存儲介質(zhì)1200。閃存控制器1450的ECC產(chǎn)生塊1452產(chǎn)生關(guān)于發(fā)送的數(shù)據(jù)條的ECC信息,并將ECC信息添加到數(shù)據(jù)條。換句話說,ECC信息被添加到每個數(shù)據(jù)條。當(dāng)一個條組中的數(shù)據(jù)條被順序發(fā)送到存儲介質(zhì)1200時,閃存控制器1450的奇偶校驗(yàn)產(chǎn)生塊1451通過對發(fā)送的數(shù)據(jù)條執(zhí)行XOR運(yùn)算來產(chǎn)生奇偶校驗(yàn)條。這樣產(chǎn)生的奇偶校驗(yàn)條被發(fā)送到存儲介質(zhì)1200。類似地,ECC信息被添加到奇偶校驗(yàn)條。存儲在存儲介質(zhì)1200中的帶由數(shù)據(jù)條和奇偶校驗(yàn)條形成。如上面的描述所指出的,奇偶校驗(yàn)條的產(chǎn)生不必要對緩沖存儲器1420的另外的訪問,從而產(chǎn)生奇偶校驗(yàn)條不會導(dǎo)致緩沖存儲器1420的通信量的增加。圖6是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的圖2的閃存控制器1450的框圖。參照圖6,閃存控制器1450響應(yīng)于從處理單元1430提供的命令進(jìn)行操作,閃存控制器1450包括奇偶校驗(yàn)產(chǎn)生塊1451、ECC產(chǎn)生塊1452、控制邏輯塊1453。根據(jù)一些實(shí)施例,全帶寫入操作提供在閃存控制器1450和處理單元1430之間定義的命令(例如,XffRITE,PBWRITE、XREAD, PBREAD, XCOPYBACK、XLOAD, PBREST 等)。如下面進(jìn)一步詳細(xì)描述的,所述定義的命令中的某些是用于全帶寫入操作的伴隨XOR運(yùn)算的命令。奇偶校驗(yàn)產(chǎn)生塊1451基于從緩沖存儲器1420發(fā)送到存儲介質(zhì)1200的數(shù)據(jù)(例如,數(shù)據(jù)條)來產(chǎn)生奇偶校驗(yàn)條。因此,不必要另外地訪問緩沖存儲器1420來產(chǎn)生奇偶校驗(yàn)條。奇偶校驗(yàn)產(chǎn)生塊1451包括由四個奇偶校驗(yàn)緩沖器PBO至PB3形成的存儲器1451a和XOR邏輯145Ib,但是在其他的實(shí)施例中,奇偶校驗(yàn)緩沖器PBO至PB3的數(shù)量可以改變。存儲器1451a可以是例如SRAM。XOR邏輯1451b對來自緩沖存儲器1420的數(shù)據(jù)條和存儲在選擇的奇偶校驗(yàn)緩沖器中的先前奇偶校驗(yàn)條執(zhí)行X0R(或異或)。產(chǎn)生新的奇偶校驗(yàn)條作為異或操作的結(jié)果,并且新的奇偶校驗(yàn)條被存儲在選擇的奇偶校驗(yàn)緩沖器(即,存儲有先前的奇偶校驗(yàn)條的奇偶校驗(yàn)緩沖器)中。通過包括在命令中的奇偶校驗(yàn)緩沖器編號(或奇偶校驗(yàn)緩沖器地址)來選擇存儲器1451a的奇偶校驗(yàn)緩沖器PBO至PB3。根據(jù)來自處理單元1430的命令,存儲在選擇的奇偶校驗(yàn)緩沖器中的奇偶校驗(yàn)條被發(fā)送到存儲介質(zhì)1200或緩沖存儲器1420。奇偶校驗(yàn)產(chǎn)生塊1451被稱為XOR加速器,并且包括用于控制奇偶校驗(yàn)產(chǎn)生塊1451的全部操作的邏輯。
ECC產(chǎn)生塊1452產(chǎn)生用于從緩沖存儲器1420發(fā)送到存儲介質(zhì)1200的數(shù)據(jù)條的ECC信息。同樣地,ECC產(chǎn)生塊1452產(chǎn)生關(guān)于從奇偶校驗(yàn)產(chǎn)生塊1451發(fā)送到存儲介質(zhì)1200的奇偶校驗(yàn)條的ECC信息。ECC產(chǎn)生塊1452可被構(gòu)造為糾正從存儲介質(zhì)1200讀出的數(shù)據(jù)(或數(shù)據(jù)/奇偶校驗(yàn)條)的錯誤。ECC產(chǎn)生塊1452可被構(gòu)造為緩沖從存儲介質(zhì)1200發(fā)送的條,在錯誤檢測和糾正處理之后,緩沖的條可被發(fā)送到奇偶校驗(yàn)產(chǎn)生塊1451或緩沖存儲器1420。如果判斷緩沖的條無法糾正,則可將讀取錯誤的產(chǎn)生通知給處理單元1430。在其他實(shí)施例中,可修改ECC產(chǎn)生塊1452的構(gòu)造。例如,ECC產(chǎn)生塊1452可被實(shí)現(xiàn)為不能進(jìn)行緩沖。如上所述,可使用ECC信息來糾正對應(yīng)的數(shù)據(jù)/奇偶校驗(yàn)條的錯誤,可使用奇偶校驗(yàn)條來恢復(fù)帶中的數(shù)據(jù)條和奇偶校驗(yàn)條的任意不可讀條。這里,不可讀條可表示根據(jù)ECC信息未被糾正的條。圖7是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的用于描述數(shù)據(jù)存儲裝置的命令的示圖。參照圖7,從處理單元1430發(fā)送到閃存控制器1450的命令包括=XWRITE命令、PBffRITE 命令、XREAD 命令、PBREAD 命令、XCOPYBACK 命令、XLOAD 命令、PBRESET 命令。所述命令可包括操作代碼、目標(biāo)地址、源地址、奇偶校驗(yàn)緩沖器編號(或地址)中的部分或全部。例如,XffRITE命令、PBffRITE命令、XLOAD命令可包括操作代碼、目標(biāo)地址、奇偶校驗(yàn)緩沖器編號(或地址)。XREAD命令可包括操作代碼、源地址、奇偶校驗(yàn)緩沖器編號(或地址)。XCOPYBACK命令可包括操作代碼、目標(biāo)地址、源地址、奇偶校驗(yàn)緩沖器編號(或地址)。PBRESET命令和PBREAD命令可包括操作代碼、奇偶校驗(yàn)緩沖器編號(或地址)。另一方面,如圖7所示,命令可被設(shè)置為包括將被發(fā)送的數(shù)據(jù)條。圖8是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的用于描述與數(shù)據(jù)存儲裝置的XWRITE命令相應(yīng)的閃存控制器的操作的示圖。參照圖8,處理單元1430將XWRITE命令發(fā)送到閃存控制器1450作為時機(jī)(occasion)命令(例如,當(dāng)通過地址映射準(zhǔn)備至少一個條組時)。XWRITE命令包括操作代碼、目標(biāo)地址、奇偶校驗(yàn)緩沖器編號(或地址)。目標(biāo)地址可用于指定數(shù)據(jù)條從緩沖存儲器1420被發(fā)送到的存儲介質(zhì)1200的存儲空間,并用于選擇存儲有通過XOR邏輯1451b產(chǎn)生的奇偶校驗(yàn)條的奇偶校驗(yàn)緩沖器。當(dāng)接收到XWRITE命令時,從緩沖存儲器1420提供的數(shù)據(jù)條可被發(fā)送到存儲介質(zhì)1200。同時,XOR邏輯1451b對發(fā)送的數(shù)據(jù)條和由奇偶校驗(yàn)緩沖器編號指定的奇偶校驗(yàn)緩沖器的先前的(或舊的)奇偶校驗(yàn)條執(zhí)行XOR運(yùn)算。XOR運(yùn)算的結(jié)果(即,新的奇偶校驗(yàn)條)被存儲在由奇偶校驗(yàn)緩沖器編號指定的奇偶校驗(yàn)緩沖器中。此夕卜,ECC產(chǎn)生塊1452基于發(fā)送的數(shù)據(jù)條產(chǎn)生ECC信息。ECC信息被添加到數(shù)據(jù)條。XWRITE命令可以是伴隨奇偶校驗(yàn)條的產(chǎn)生的數(shù)據(jù)條發(fā)送命令,即,用于全帶寫入操作的伴隨XOR運(yùn)算的命令。在一些實(shí)施例中,可在處理單元1430或閃存控制器1450的控制下執(zhí)行將數(shù)據(jù)條發(fā)送到閃存控制器1450。圖9是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的用于描述與數(shù)據(jù)存儲裝置的PBWRITE命令相應(yīng)的閃存控制器的操作的示圖。參照圖9,處理單元1430將PBWRITE命令發(fā)送到閃存控制器1450(例如,當(dāng)條組 中的數(shù)據(jù)條被全部發(fā)送時)。PBWRITE命令包括操作代碼、目標(biāo)地址、奇偶校驗(yàn)緩沖器編號(或地址)。當(dāng)接收到PBWRITE命令時(例如,當(dāng)PBWRITE命令被提供給奇偶校驗(yàn)產(chǎn)生塊1451時),由奇偶校驗(yàn)緩沖器編號指定的奇偶校驗(yàn)緩沖器的奇偶校驗(yàn)條被發(fā)送到存儲介質(zhì)1200。ECC產(chǎn)生塊1452根據(jù)發(fā)送的奇偶校驗(yàn)條產(chǎn)生ECC信息。ECC信息被添加到奇偶校驗(yàn)條。PBWRITE命令可以是用于將存儲在奇偶校驗(yàn)緩沖器中的奇偶校驗(yàn)條發(fā)送到存儲介質(zhì)1200的命令。圖10是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的用于描述與數(shù)據(jù)存儲裝置的XLOAD命令相應(yīng)的閃存控制器的操作的示圖。參照圖10,處理單元1430將XLOAD命令發(fā)送到閃存控制器1450 (例如,為了將帶中的數(shù)據(jù)條或奇偶校驗(yàn)條發(fā)送到奇偶校驗(yàn)產(chǎn)生塊1451)。XLOAD命令包括操作代碼、源地址、奇偶校驗(yàn)緩沖器編號(或地址)。由源地址指定的數(shù)據(jù)/奇偶校驗(yàn)條被發(fā)送到XOR邏輯1451b作為源數(shù)據(jù)。在XLOAD命令被提供給閃存控制器1450的情況下,XOR邏輯1451b被提供由奇偶校驗(yàn)緩沖器編號指定的奇偶校驗(yàn)緩沖器的奇偶校驗(yàn)條(即,舊的奇偶校驗(yàn)條)。由XOR邏輯1451b計(jì)算的新的奇偶校驗(yàn)條被存儲在由奇偶校驗(yàn)緩沖器編號指定的奇偶校驗(yàn)緩沖器中。通過ECC產(chǎn)生塊1452執(zhí)行檢測從存儲介質(zhì)1200讀取的源數(shù)據(jù)的錯誤的操作。XLOAD命令可以是伴隨XOR運(yùn)算的命令。圖11是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的用于描述與數(shù)據(jù)存儲裝置的XREAD命令相應(yīng)的閃存控制器的操作的示圖。參照圖11,處理單元1430將XREAD命令發(fā)送到閃存控制器1450 (例如,為了將帶中的數(shù)據(jù)條或奇偶校驗(yàn)條發(fā)送到奇偶校驗(yàn)產(chǎn)生塊1451,并發(fā)送到緩沖存儲器1420(或者SSD控制器的高速緩沖存儲器))。XREAD命令包括操作代碼、源地址、奇偶校驗(yàn)緩沖器編號(或地址)。由源地址指定的數(shù)據(jù)/奇偶校驗(yàn)條被發(fā)送到XOR邏輯1451b,并被發(fā)送到外部(例如,緩沖存儲器1420或者SSD控制器的高速緩沖存儲器)。在XREAD命令被提供給閃存控制器1450的情況下,XOR邏輯1451b被提供由奇偶校驗(yàn)緩沖器編號指定的奇偶校驗(yàn)緩沖器的奇偶校驗(yàn)條(即,舊的奇偶校驗(yàn)條)。通過XOR邏輯1451b計(jì)算的新的奇偶校驗(yàn)條被存儲在由奇偶校驗(yàn)緩沖器編號指定的奇偶校驗(yàn)緩沖器中。通過ECC產(chǎn)生塊1452執(zhí)行檢測并糾正從存儲介質(zhì)1200讀取的源數(shù)據(jù)的錯誤的操作。XREAD命令是伴隨XOR運(yùn)算(或奇偶校驗(yàn)產(chǎn)生)的命令。圖12是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的用于描述與數(shù)據(jù)存儲裝置的PBREAD命令相應(yīng)的閃存控制器的操作的示圖。參照圖12,處理單元1430將PBREAD命令發(fā)送到閃存控制器1450 (例如,為了從奇偶校驗(yàn)緩沖器讀取奇偶校驗(yàn)條)。PBREAD命令包括操作代碼、奇偶校驗(yàn)緩沖器編號(或地址)。在PBREAD命令被提供給閃存控制器1450的情況下,由奇偶校驗(yàn)緩沖器編號指定的奇偶校驗(yàn)條被發(fā)送到緩沖存儲器1420。此時,不對存儲介質(zhì)1200進(jìn)行訪問。圖13是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的用于描述與數(shù)據(jù)存儲裝置的XCOPYBACK命令相應(yīng)的閃存控制器的操作的示圖。參照圖13,處理單元1430將XCOPYBACK命令發(fā)送到閃存控制器1450。XCOPYBACK命令可包括操作代碼、目標(biāo)地址、源地址、奇偶校驗(yàn)緩沖器編號(或地址)。源地址用于指 定源帶(source stripe)的數(shù)據(jù)/奇偶校驗(yàn)條,目標(biāo)地址用于指定目標(biāo)帶(destinationstripe)的條。在XCOPYBACK命令被提供給閃存控制器1450的情況下,從存儲介質(zhì)1200讀取源數(shù)據(jù),將讀取的源數(shù)據(jù)發(fā)送給XOR邏輯1451b。此時,通過ECC產(chǎn)生塊1452對讀取的數(shù)據(jù)進(jìn)行解碼和編碼操作,讀取的數(shù)據(jù)被發(fā)送到存儲介質(zhì)1200作為目標(biāo)數(shù)據(jù)。XCOPYBACK命令是伴隨XOR運(yùn)算的命令。圖14是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的用于描述數(shù)據(jù)存儲裝置的全帶寫入方法的UML時序圖,圖15至圖17是在圖14中示出的全帶寫入方法的數(shù)據(jù)流的示圖。為了便于描述,假設(shè)一個條組包括三個數(shù)據(jù)條(例如,A、B、C)。如上所述,可通過處理單元1430 (或閃存轉(zhuǎn)換層FTL)的地址映射來聚集存儲在緩沖存儲器1420中的數(shù)據(jù)來構(gòu)成一個或多個條。一旦準(zhǔn)備了條組,處理單元1430執(zhí)行全帶寫入操作。首先,處理單元1430將PBRESET命令發(fā)送到閃存控制器1450 (S101)。閃存控制器1450響應(yīng)于PBRESET命令將奇偶校驗(yàn)緩沖器(例如,PB0)復(fù)位。通過包括在PBRESET命令中的奇偶校驗(yàn)緩沖器編號(或地址)來選擇奇偶校驗(yàn)緩沖器PBO。在將奇偶校驗(yàn)緩沖器PBO復(fù)位之后,閃存控制器1450發(fā)出對PBRESET命令的響應(yīng)(S102)。隨后,處理單元1430將XWRITE命令發(fā)送到閃存控制器1450 (S103)。在XWRITE命令被發(fā)送到閃存控制器1450之后,如圖15所示,存儲在緩沖存儲器1420中的條組中的數(shù)據(jù)條(例如,圖15中的A、B、C)中的一個條A可被發(fā)送到閃存控制器1450。發(fā)送的數(shù)據(jù)條A被提供給存儲介質(zhì)1200。此時,ECC信息通過ECC產(chǎn)生塊1452被添加到數(shù)據(jù)條A。數(shù)據(jù)條A被存儲在與包括在XWRITE命令中的目標(biāo)地址(例如,8)相應(yīng)的存儲空間中。同時,如圖15所示,XOR邏輯1451b對從緩沖存儲器1420發(fā)送到存儲介質(zhì)1200的數(shù)據(jù)條A和奇偶校驗(yàn)緩沖器PBO的舊的奇偶校驗(yàn)條(由于初始化而為空數(shù)據(jù))執(zhí)行XOR運(yùn)算,并產(chǎn)生新的奇偶校驗(yàn)條A。因此而產(chǎn)生的奇偶校驗(yàn)條A被存儲在選擇的奇偶校驗(yàn)存儲器PBO中。在完成數(shù)據(jù)條的發(fā)送和奇偶校驗(yàn)條的產(chǎn)生之后,閃存控制器1450發(fā)送關(guān)于XWRITE命令的響應(yīng)(S104)。如圖14所示,按照條組中的數(shù)據(jù)條的數(shù)量,XWRITE命令被重復(fù)地發(fā)送到閃存控制器1450。例如,如圖16所示,下一數(shù)據(jù)條B根據(jù)伴隨奇偶校驗(yàn)產(chǎn)生(或XOR運(yùn)算)的XWRITE命令而被發(fā)送到存儲介質(zhì)1200。在此情況下,XOR邏輯1451b對從緩沖存儲器1420發(fā)送到存儲介質(zhì)1200的數(shù)據(jù)條B和選擇的奇偶校驗(yàn)緩沖器PBO的舊的奇偶校驗(yàn)條A執(zhí)行XOR運(yùn)算,并產(chǎn)生新的奇偶校驗(yàn)條(d十B )。因此而產(chǎn)生的奇偶校驗(yàn)條(3十B )被存儲在選擇的奇偶校驗(yàn)緩沖器PBO中。在數(shù)據(jù)條B被發(fā)送之后,如圖17所示,最后的數(shù)據(jù)條C根據(jù)伴隨奇偶校驗(yàn)產(chǎn)生(或XOR運(yùn)算)的XWRITE命令而被發(fā)送到存儲介質(zhì)1200。在此情況下,XOR邏輯1451b對從緩沖存儲器1420發(fā)送到存儲介質(zhì)1200的數(shù)據(jù)條C和選擇的奇偶校驗(yàn)緩沖器PBO的舊的奇偶校驗(yàn)條(^ B )執(zhí)行XOR運(yùn)算,并產(chǎn)生新的奇偶校驗(yàn)條(J十B十C )。因此而產(chǎn)生的奇偶校驗(yàn)條(J B十C )被存儲在選擇的奇偶校驗(yàn)緩沖器PBO中。ECC信息通過ECC產(chǎn)生塊1452被添加到奇偶校驗(yàn)條(W十B十C )。參照圖14,在條組中的數(shù)據(jù)條A、B、C全部被發(fā)送的情況下,處理單元1430將PBWRITE命令發(fā)送給閃存控制器1450 (S105)。閃存控制器1450對PBWRITE命令進(jìn)行響應(yīng),以將存儲在選擇的奇偶校驗(yàn)緩沖器PBO中的奇偶校驗(yàn)條(W十B十C )發(fā)送到存儲介質(zhì)1200。在存儲在選擇的奇偶校驗(yàn)緩沖器PBO中的奇偶校驗(yàn)條(J十B十C )被發(fā)送到存儲介質(zhì)1200之后,閃存控制器1450向處理單元1430提供對PBWRITE命令的響應(yīng)(S106)。隨后,全帶寫入操作結(jié)束。 如根據(jù)上述描述所理解的,在條組中的數(shù)據(jù)條A、B、C根據(jù)伴隨奇偶校驗(yàn)產(chǎn)生(或XOR運(yùn)算)的XWRITE命令被發(fā)送到存儲介質(zhì)1200的情況下,可在不需要另外地訪問緩沖存儲器1420的情況下(或不需要增加緩沖存儲器1200的通信量的情況下)產(chǎn)生奇偶校驗(yàn)條。如根據(jù)圖17所理解的,數(shù)據(jù)條A、B、C以及奇偶校驗(yàn)條(Z十B十C )構(gòu)成作為全帶寫入單元的一個帶。圖18是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的數(shù)據(jù)存儲裝置的不可讀數(shù)據(jù)恢復(fù)操作的UML時序圖。圖19至圖21是圖18中示出的不可讀數(shù)據(jù)恢復(fù)操作的數(shù)據(jù)流的示圖。為了便于描述,假設(shè)一個帶由三個數(shù)據(jù)條和一個奇偶校驗(yàn)條構(gòu)成。假設(shè)從主機(jī)系統(tǒng)2000請求的數(shù)據(jù)(例如,圖19中的數(shù)據(jù)條B)不可讀。如上所述,可根據(jù)數(shù)據(jù)條中的錯誤是否超出ECC產(chǎn)生塊1452的糾錯能力來確定數(shù)據(jù)條是否可讀。當(dāng)從主機(jī)系統(tǒng)2000請求的數(shù)據(jù)(例如,圖19中的數(shù)據(jù)條)被判斷為不可讀時,SSD控制器1000使用包括不可讀數(shù)據(jù)條B的帶的剩余的條(S卩,數(shù)據(jù)條和奇偶校驗(yàn)條A、C、( J十B十C ))來恢復(fù)不可讀數(shù)據(jù)條B,將在下面更充分地描述。如在圖18中所述,處理單元1430將PBRESET命令發(fā)送到閃存控制器1450 (S201)。如上所述,PBRESET命令包括操作代碼和奇偶校驗(yàn)緩沖器編號(或地址)。當(dāng)PBRESET命令被發(fā)送到閃存控制器1450時,可將奇偶校驗(yàn)產(chǎn)生塊1451的與PBRESET命令的奇偶校驗(yàn)緩沖器編號(或地址)相應(yīng)的奇偶校驗(yàn)緩沖器(例如,PB0)復(fù)位。由于初始化,奇偶校驗(yàn)緩沖器PBO被設(shè)置有空數(shù)據(jù)作為舊的奇偶校驗(yàn)條(參照圖19)。在重設(shè)奇偶校驗(yàn)緩沖器PBO之后,閃存控制器1450將關(guān)于PBRESET命令的響應(yīng)發(fā)送到處理單元1430 (S202)。在接收到關(guān)于PBRESET命令的響應(yīng)的情況下,處理單元1430將伴隨奇偶校驗(yàn)產(chǎn)生(或XOR運(yùn)算)的XLOAD命令發(fā)送到閃存控制器1450 (S203)。XLOAD命令包括用于指定數(shù)據(jù)條A的源地址。閃存控制器1450控制存儲介質(zhì)1200,使得與源地址相應(yīng)的數(shù)據(jù)條A被讀出。如在圖19中所示,讀取的數(shù)據(jù)條A被發(fā)送到XOR邏輯1451b。此時,進(jìn)行對數(shù)據(jù)條A的解碼操作。XOR邏輯1451b對存儲在選擇的奇偶校驗(yàn)緩沖器PBO中的數(shù)據(jù)(即,舊的奇偶校驗(yàn)條)和讀取的數(shù)據(jù)條A執(zhí)行XOR運(yùn)算,并產(chǎn)生的新的奇偶校驗(yàn)條A。因?yàn)橛捎诔跏蓟谄媾夹r?yàn)緩沖器PBO中存儲空數(shù)據(jù)作為舊的奇偶校驗(yàn)條,因此該新的奇偶校驗(yàn)條與讀取的數(shù)據(jù)條相同。因此而產(chǎn)生的新的奇偶校驗(yàn)條A被存儲在選擇的奇偶校驗(yàn)緩沖器PBO中。一旦產(chǎn)生新的奇偶校驗(yàn)條,則閃存控制器1450將關(guān)于XLOAD命令的響應(yīng)發(fā)送到處理單元 1430 (S204)。重復(fù)上述操作S203和S204,直到帶中的除了不可讀數(shù)據(jù)條之外的剩余的條被全部讀取。例如,如圖20所示,下一個條C根據(jù)伴隨奇偶校驗(yàn)產(chǎn)生(或XOR運(yùn)算)的XLOAD命令而從存儲介質(zhì)1200被讀取,并且數(shù)據(jù)條C被解碼。在此情況下,XOR邏輯1451b對從存儲介質(zhì)1200發(fā)送的數(shù)據(jù)條C和選擇的奇偶校驗(yàn)緩沖器PBO的先前的奇偶校驗(yàn)條A執(zhí)行XOR運(yùn)算,并產(chǎn)生新的奇偶校驗(yàn)條(J十C )。因此而產(chǎn)生的奇偶校驗(yàn)條(J十C )被存儲在選擇的奇偶校驗(yàn)緩沖器PBO中。在讀取數(shù)據(jù)條C之后,如在圖21中所示,包括不可讀數(shù)據(jù)條B的帶之中的最后的條(即,奇偶校驗(yàn)條(J十B十C ))根據(jù)伴隨奇偶校驗(yàn)產(chǎn)生(或XOR運(yùn)算)的XLOAD命令而被發(fā)送到閃存控制器1450,并且數(shù)據(jù)條(J十B C )被解碼。在此情況下,XOR邏輯1451b對從存儲介質(zhì)1200發(fā)送的數(shù)據(jù)條(J十B十C )和選擇的奇偶校驗(yàn)緩沖器PBO的舊的奇偶校驗(yàn)條(J十C )執(zhí)行XOR運(yùn)算,并產(chǎn)生新的奇偶校驗(yàn)條B。因此而 產(chǎn)生的奇偶校驗(yàn)條B被存儲在選擇的奇偶校驗(yàn)緩沖器PBO中。參照圖18,如果除了不可讀數(shù)據(jù)條B之外的剩余的條A、C、( J十B十C )被全部讀取,則處理單元1430將PBREAD命令發(fā)送到閃存控制器1450 (S205)。閃存控制器1450響應(yīng)于PBREAD命令向緩沖存儲器1420提供存儲在選擇的奇偶校驗(yàn)緩沖器PBO中的奇偶校驗(yàn)條B。發(fā)送的奇偶校驗(yàn)條B是恢復(fù)的數(shù)據(jù)條。閃存控制器1450將對PBREAD命令的響應(yīng)發(fā)送到處理單元1430。隨后,該方法結(jié)束。圖22是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的用于描述數(shù)據(jù)存儲裝置的復(fù)制(copyback)程序操作的UML時序圖。圖23至圖25是圖22中示出的復(fù)制程序操作的數(shù)據(jù)流的示圖。為了便于描述,假設(shè)一個帶(例如,圖23中的STl)之內(nèi)的數(shù)據(jù)條B由于根據(jù)主機(jī)系統(tǒng)2000的請求使用新的數(shù)據(jù)條(例如,圖23中的H)進(jìn)行更新而被處理為無效數(shù)據(jù)條。參照圖22,處理單元1430將PBRESET命令發(fā)送到閃存控制器1450 (S301)。如上所述,PBRESET命令包括操作代碼和奇偶校驗(yàn)緩沖器編號(或地址)。當(dāng)PBRESET命令被發(fā)送到閃存控制器1450時,可將奇偶校驗(yàn)產(chǎn)生塊1451之內(nèi)的與PBRESET命令的奇偶校驗(yàn)緩沖器編號(或地址)相應(yīng)的奇偶校驗(yàn)緩沖器(例如,PB0)復(fù)位。由于初始化,奇偶校驗(yàn)緩沖器PBO被設(shè)置有空數(shù)據(jù)作為舊的奇偶校驗(yàn)條(參照圖22)。在重設(shè)奇偶校驗(yàn)緩沖器PBO之后,閃存控制器1450將關(guān)于PBRESET命令的響應(yīng)發(fā)送到處理單元1430 (S302)。如在圖22中所示,一個循環(huán)可包括每個都伴隨奇偶校驗(yàn)產(chǎn)生(或XOR運(yùn)算)的XCOPYBACK命令和XWRITE命令。XCOPYBACK命令可被發(fā)送到閃存控制器1450以從源帶讀取有效數(shù)據(jù)條,XffRITE命令可被發(fā)送到閃存控制器1450以將將被更新的數(shù)據(jù)條發(fā)送到目標(biāo)帶??蛇x擇性地執(zhí)行每個循環(huán)的XCOPYBACK命令和XWRITE命令的發(fā)送。首先,可請求對帶STl內(nèi)的第一數(shù)據(jù)條A的復(fù)制操作。這可通過XCOPYBACK命令進(jìn)行。因此,處理單元1430將XCOPYBACK命令發(fā)送到閃存控制器1450 (S303)。如上所述,XCOPYBACK命令包括源地址和目標(biāo)地址。在源地址和目標(biāo)地址被從閃存控制器1450發(fā)送到存儲介質(zhì)1200的情況下,如在圖23中所示,與源地址相應(yīng)的數(shù)據(jù)條A被發(fā)送到閃存控制器1450。數(shù)據(jù)條A被提供給XOR邏輯1451b。此時,讀取的數(shù)據(jù)條A通過閃存控制器1450再次被發(fā)送到存儲介質(zhì)1200,而不需要被發(fā)送到緩沖存儲器1420。ECC產(chǎn)生塊1452對讀取的數(shù)據(jù)條A執(zhí)行解碼和編碼操作。XOR邏輯1451b對存儲在選擇的奇偶校驗(yàn)緩沖器PBO中的數(shù)據(jù)(S卩,舊的奇偶校驗(yàn)條)和讀取的數(shù)據(jù)條A執(zhí)行XOR運(yùn)算,并產(chǎn)生的新的奇偶校驗(yàn)條A。因?yàn)橛捎诔跏蓟谶x擇的奇偶校驗(yàn)緩沖器PBO中存儲空數(shù)據(jù)作為舊的奇偶校驗(yàn)數(shù)據(jù),因此該新的奇偶校驗(yàn)條與讀取的數(shù)據(jù)條相同。因此而產(chǎn)生的新的奇偶校驗(yàn)條A被存儲在選擇的奇偶校驗(yàn)緩沖器PBO中。一旦產(chǎn)生新的奇偶校驗(yàn)條,則閃存控制器1450將對XCOPYBACK命令的響應(yīng)發(fā)送到處理單元 1430 (S304)。隨后,處理單元1430將XWRITE命令發(fā)送到閃存控制器1450,使得新的數(shù)據(jù)條H(而非源帶STl的有效數(shù)據(jù)條B)被存儲在目標(biāo)帶ST2中(S305)。如在圖24中所示,在XffRITE命令被發(fā)送到閃存控制器1450的情況下,從緩沖存儲器1420提供的數(shù)據(jù)條H被發(fā)送到存儲介質(zhì)1200。此時,數(shù)據(jù)條H被編碼。同時,XOR邏輯1451b對發(fā)送的數(shù)據(jù)條H和由奇偶校驗(yàn)緩沖器編號指定的奇偶校驗(yàn)緩沖器PBO的舊的奇偶校驗(yàn)條執(zhí)行XOR運(yùn)算。作為 XOR運(yùn)算的結(jié)果,新的奇偶校驗(yàn)條(A十Br )可被存儲在選擇的奇偶校驗(yàn)緩沖器PBO中。閃存控制器1450可將對XWRITE命令的響應(yīng)發(fā)送到處理單元1430 (S306)。在執(zhí)行XWRITE命令之后,請求關(guān)于源帶STl中的第三數(shù)據(jù)條C的復(fù)制操作。這可通過XCOPYBACK命令進(jìn)行。因此,處理單元1430將XCOPYBACK命令發(fā)送到閃存控制器1450 (S303)。如上所述,XCOPYBACK命令包括源地址和目標(biāo)地址。如果源地址和目標(biāo)地址被從閃存控制器1450發(fā)送到存儲介質(zhì)1200,如在圖25中所示,則與源地址相應(yīng)的數(shù)據(jù)條C可被發(fā)送到閃存控制器1450。此時,讀取的數(shù)據(jù)條C通過閃存控制器1450再次被發(fā)送到存儲介質(zhì)1200,而不需要被發(fā)送到緩沖存儲器1420。對讀取的數(shù)據(jù)條C執(zhí)行解碼和編碼操作。XOR邏輯1451b對存儲在選擇的奇偶校驗(yàn)緩沖器PBO中的數(shù)據(jù)(S卩,舊的奇偶校驗(yàn)條)(A十I/ )和讀取的數(shù)據(jù)條C執(zhí)行XOR運(yùn)算,并產(chǎn)生新的奇偶校驗(yàn)條(十C )。因此而產(chǎn)生的新的奇偶校驗(yàn)條(WC )被存儲在選擇的奇偶校驗(yàn)緩沖器PBO中。一旦產(chǎn)生新的奇偶校驗(yàn)條(3十開十C ),則閃存控制器1450將對XCOPYBACK命令的響應(yīng)發(fā)送到處理單元1430 (S304)。在完成有效數(shù)據(jù)條的復(fù)制操作和將被更新的數(shù)據(jù)條的發(fā)送操作的情況下,如在圖22中所示,處理單元1430將PBWRITE命令發(fā)送到閃存控制器1450。閃存控制器1450響應(yīng)于pbwrite命令將選擇的奇偶校驗(yàn)緩沖器PBO中的奇偶校驗(yàn)條(Aenec )發(fā)送到存儲介質(zhì)1200。此時,針對發(fā)送到存儲介質(zhì)1200的奇偶校驗(yàn)條(A H C )執(zhí)行編碼操作。在選擇的奇偶校驗(yàn)緩沖器PBO中的奇偶校驗(yàn)條(AeH C )被發(fā)送到存儲介質(zhì)1200之后,閃存控制器1450將對PBWRITE命令的響應(yīng)發(fā)送到處理單元1430。隨后,該方法結(jié)束。圖26是根據(jù)本發(fā)明構(gòu)思的另一實(shí)施例的用于描述數(shù)據(jù)存儲裝置的全帶寫入方法的UML時序圖。圖27至圖31是用于執(zhí)行圖26中示出的全帶寫入方法的數(shù)據(jù)流的示圖。圖26是用于描述對兩個帶執(zhí)行全帶寫入操作的示圖。例如,如在圖27中所示,假設(shè)準(zhǔn)備了兩個條組SGl和SG2。圖26中示出的全帶寫入操作與圖14中描述的全帶寫入操作類似,為了避免冗余將不再詳細(xì)描述相似的特征。
參照圖26,處理單元1430將PBRESET命令發(fā)送到閃存控制器1450,以將奇偶校驗(yàn)緩沖器PBO復(fù)位(S401)。閃存控制器1450響應(yīng)于PBRESET命令將奇偶校驗(yàn)緩沖器PBO復(fù)位。在將奇偶校驗(yàn)緩沖器PBO復(fù)位之后,閃存控制器1450將對PBRESET命令的響應(yīng)發(fā)送到處理單元1430 (S402)。處理單元1430將PBRESET命令發(fā)送到閃存控制器1450,以將奇偶校驗(yàn)緩沖器PBl復(fù)位,這將與奇偶校驗(yàn)緩沖器PBO的復(fù)位相同地被執(zhí)行。即,如在圖27中所示,將被復(fù)位的奇偶校驗(yàn)緩沖器的數(shù)量與將被發(fā)送到存儲介質(zhì)1200的條組的數(shù)量相同。因此,可按照將被發(fā)送的條組的數(shù)量來重復(fù)地執(zhí)行操作S401和S402中的奇偶校驗(yàn)緩沖器的復(fù)位。在奇偶校驗(yàn)緩沖器PBO和PBl被復(fù)位之后,處理單元1430將XWRITE命令發(fā)送到閃存控制器1450,以將條組SGl的數(shù)據(jù)條A發(fā)送到存儲介質(zhì)1200 (S403)。此時,如在圖28中所示,存儲在緩沖存儲器1420中的條組SGl中的數(shù)據(jù)條A、B、C中的一個數(shù)據(jù)條A被發(fā)送到閃存控制器1450。數(shù)據(jù)條A可被發(fā)送給存儲介質(zhì)1200。同時,如在圖28中所示,通過對從緩沖存儲器1420發(fā)送到存儲介質(zhì)1200的數(shù)據(jù)條A和選擇的奇偶校驗(yàn)緩沖器PBO的舊的 奇偶校驗(yàn)條執(zhí)行XOR運(yùn)算來產(chǎn)生新的奇偶校驗(yàn)條A。在完成數(shù)據(jù)條的發(fā)送和奇偶校驗(yàn)條的產(chǎn)生之后,閃存控制器1450將對XWRITE命令的響應(yīng)發(fā)送到處理單元(S404)。重復(fù)上述操作S403和S404以將另一條組SG2中的數(shù)據(jù)條D發(fā)送到存儲介質(zhì)1200。如圖28至圖30所示,條組SGl中的剩余的條B和C以及條組SG2中的剩余的條E和F以同樣的方式被發(fā)送到存儲介質(zhì)1200。結(jié)果,如在圖30中所示,通過對條組SGl中的數(shù)據(jù)條A、B、C執(zhí)行XOR操作而產(chǎn)生奇偶校驗(yàn)條(W十B十C ),可通過對條組SG2中的數(shù)據(jù)條D、E、F執(zhí)行XOR操作而產(chǎn)生奇偶校驗(yàn)條()。再次參照圖26,在條組SGl和SG2中的數(shù)據(jù)條(A、B、C)和(D、E、F)全部被發(fā)送的情況下,處理單元1430將PBWRITE命令發(fā)送給閃存控制器1450,以將奇偶校驗(yàn)緩沖器PBO的奇偶校驗(yàn)條發(fā)送到存儲介質(zhì)1200 (S405)。當(dāng)PBWRITE命令被發(fā)送到閃存控制器1450時,如在圖31中所示,閃存控制器1450響應(yīng)于PBWRITE命令將選擇的奇偶校驗(yàn)緩沖器PBO中的奇偶校驗(yàn)條(W十B十C )發(fā)送到存儲介質(zhì)1200。在選擇的奇偶校驗(yàn)緩沖器PBO中的奇偶校驗(yàn)條(3十B十C )被發(fā)送到存儲介質(zhì)1200之后,閃存控制器1450向處理單元1430發(fā)送對PBWRITE命令的響應(yīng)(S406)。類似于奇偶校驗(yàn)緩沖器PB0,奇偶校驗(yàn)緩沖器PBl的奇偶校驗(yàn)條(D E F )根據(jù)PBWRITE命令被發(fā)送到存儲介質(zhì)1200。隨后,所述方法結(jié)束。如在圖28至圖31所示,在數(shù)據(jù)條和奇偶校驗(yàn)條被發(fā)送到存儲介質(zhì)1200的情況下,可針對數(shù)據(jù)條和奇偶校驗(yàn)條執(zhí)行編碼操作。圖32是根據(jù)本發(fā)明構(gòu)思的另一實(shí)施例的用于描述數(shù)據(jù)存儲裝置的全帶寫入方法的示圖。參照圖32,數(shù)據(jù)存儲裝置1000管理與條組中的數(shù)據(jù)條相關(guān)聯(lián)的元數(shù)據(jù)。例如,數(shù)據(jù)存儲裝置1000的處理單元1430可管理與條組的數(shù)據(jù)條DSO、DSl、DS2——對應(yīng)的元數(shù)據(jù)MD0、MD1、MD2。當(dāng)數(shù)據(jù)條DSO、DS1、DS2中的每個被發(fā)送到存儲介質(zhì)1200時執(zhí)行的操作(例如,奇偶校驗(yàn)產(chǎn)生操作和ECC添加操作)可與上面所描述的相同地進(jìn)行,因此省略對其的描述。如上所述,奇偶校驗(yàn)條可由奇偶校驗(yàn)產(chǎn)生塊1451產(chǎn)生,并且可用于恢復(fù)不可讀數(shù)據(jù)/奇偶校驗(yàn)條。如在圖32中所示,元數(shù)據(jù)MD0、MD1、MD2可與相應(yīng)的數(shù)據(jù)條DS0、DS1、DS2—起被發(fā)送到存儲介質(zhì)1200。不同于與數(shù)據(jù)條DS0、DS1、DS2相關(guān)聯(lián)的奇偶校驗(yàn)條的產(chǎn)生,由處理單元1430而非奇偶校驗(yàn)產(chǎn)生塊1451進(jìn)行元數(shù)據(jù)MD0、MD1、MD2的奇偶校驗(yàn)產(chǎn)生操作。與由處理單元1430產(chǎn)生的元數(shù)據(jù)MD0、MD1、MD2相關(guān)聯(lián)的奇偶校驗(yàn)被發(fā)送到存儲介質(zhì)1200。與元數(shù)據(jù)MD0、MD1、MD2相關(guān)聯(lián)的奇偶校驗(yàn)用于恢復(fù)不可讀元數(shù)據(jù)。即,根據(jù)ECC信息來糾數(shù)據(jù)條的可糾正錯誤,根據(jù)ECC信息來糾正元數(shù)據(jù)的可糾正錯誤。此外,根據(jù)剩余的條來恢復(fù)帶中的不可讀條,根據(jù)剩余的元數(shù)據(jù)和奇偶校驗(yàn)來恢復(fù)帶中的不可讀元數(shù)據(jù)。圖33A至圖33D是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的用于描述應(yīng)用到數(shù)據(jù)存儲裝置的帶類型(stripe type)的示圖。根據(jù)應(yīng)用到存儲介質(zhì)1200的存儲器來不同地確定一個帶的大小。例如,假設(shè)存儲介質(zhì)1200由閃存裝置形成,并且一個帶由多個條形成。一個條可由一個或多個頁形成。如在圖33A中所示,帶可由與分別連接到一個通道的閃存裝置相應(yīng)的條形成。在 另一實(shí)施例中,如在圖33B中所示,假設(shè)與一個通道連接的閃存裝置被分為至少兩個芯片組,則帶可由分別分配給每個芯片組中的閃存裝置的條形成。在另一實(shí)施例中,如在圖33C中所示,帶可由分配給分別與多個通道CH0、CH1、CH2、CH3中的每一個連接的閃存裝置的條形成。在另一實(shí)施例中,如在圖33D中所示,假設(shè)多個通道被分為至少兩個通道組,并且共同與每個通道組中的通道連接的閃存裝置被分為至少兩個芯片組,則帶可由分別分配給每個通道組的每個芯片組中的閃存裝置的條形成。除了本說明書中示出的這些之外,還存在配置帶的其他方式。例如,如果閃存裝置具有平面結(jié)構(gòu),則可在平面而非芯片的基礎(chǔ)上來設(shè)置帶。圖34是根據(jù)本發(fā)明構(gòu)思的另一實(shí)施例的數(shù)據(jù)存儲裝置的框圖。參照圖34,數(shù)據(jù)存儲裝置IOOOa包括存儲介質(zhì)1200和SSD控制器1400。存儲介質(zhì)1200包括通過多個通道CHO至CHn-I訪問的閃存裝置。存儲介質(zhì)1200還包括保留的通道和存儲裝置1600,所述保留的通道和存儲裝置1600可用于替換任何通道或與任何通道連接的閃存裝置。除了上述不同之外,圖34的數(shù)據(jù)存儲裝置IOOOa可與圖32的數(shù)據(jù)存儲裝置類似地操作,因此為了避免冗余將省略對其的進(jìn)一步描述。圖35是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的包括數(shù)據(jù)存儲裝置的計(jì)算系統(tǒng)3000的框圖。參照圖35,計(jì)算機(jī)系統(tǒng)3000包括處理單元3100 (例如,微處理器)、用戶接口3200、調(diào)制解調(diào)器3300 (例如,基帶芯片組)、SSD控制器3400、存儲介質(zhì)3500。SSD控制器3400和存儲介質(zhì)3500可類似于圖I中示出的數(shù)據(jù)存儲裝置(例如,固態(tài)驅(qū)動器)被形成,因此省略對其的描述。被/將被處理單元3100處理的N比特?cái)?shù)據(jù)(N是I或更大的整數(shù))通過SSD控制器3400被存儲在存儲介質(zhì)3500中。在計(jì)算系統(tǒng)3000是移動裝置的情況下,計(jì)算系統(tǒng)3000可進(jìn)一步包括提供計(jì)算系統(tǒng)的操作電壓的電池3500。盡管在圖35中沒有示出,但是計(jì)算系統(tǒng)3000還可包括應(yīng)用芯片組、相機(jī)圖像處理器(CIS)或移動DRAM。圖36是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的使用數(shù)據(jù)存儲裝置的存儲器的框圖,圖37是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的使用數(shù)據(jù)存儲裝置的存儲服務(wù)器的框圖。圖36的數(shù)據(jù)存儲裝置包括被構(gòu)造為類似于參照圖I至圖34的描述的那樣進(jìn)行操作的多個固態(tài)驅(qū)動器4000。固態(tài)驅(qū)動器4000用作存儲服務(wù)器。如在圖37中所示,存儲服務(wù)器包括多個固態(tài)驅(qū)動器5000和服務(wù)器5000A。多個固態(tài)驅(qū)動器5000被構(gòu)造為類似于參照圖I至圖34描述的那樣進(jìn)行操作,因此為了避免冗余將省略對其的詳細(xì)描述。
圖38至圖40是根據(jù)本發(fā)明構(gòu)思的實(shí)施例的包括數(shù)據(jù)存儲裝置的系統(tǒng)的示圖。在固態(tài)驅(qū)動器被應(yīng)用到所述存儲器作為根據(jù)本發(fā)明構(gòu)思的實(shí)施例的數(shù)據(jù)存儲裝置的情況下,如在圖38中所示,系統(tǒng)6000包括以有線和/或無線方式與主機(jī)通信的存儲器6100。在固態(tài)驅(qū)動器被應(yīng)用到存儲服務(wù)器作為根據(jù)本發(fā)明構(gòu)思的實(shí)施例的數(shù)據(jù)存儲裝置的情況下,如在圖39中所示,系統(tǒng)7000包括以有線和/或無線方式與主機(jī)通信的存儲服務(wù)器7100和7200。此外,如在圖40中所示,固態(tài)驅(qū)動器被應(yīng)用到郵件服務(wù)器8100作為根據(jù)本發(fā)明構(gòu)思的實(shí)施例的數(shù)據(jù)存儲裝置。如上所述,在全帶寫入操作中,基于發(fā)送到存儲介質(zhì)的數(shù)據(jù)條產(chǎn)生奇偶校驗(yàn)條,而不需要另外地訪問緩沖存儲器??筛鶕?jù)伴隨奇偶校驗(yàn)產(chǎn)生(或XOR運(yùn)算)的命令來產(chǎn)生奇偶校驗(yàn)條。ECC信息被添加到數(shù)據(jù)條和奇偶校驗(yàn)條的每個??捎商幚韱卧瞧媾夹r?yàn)產(chǎn)生塊來產(chǎn)生與數(shù)據(jù)條相關(guān)聯(lián)的元數(shù)據(jù)的奇偶校驗(yàn)。因此,可在不另外地訪問緩沖存儲器以產(chǎn)生奇偶校驗(yàn)條的情況下來執(zhí)行全帶寫入操作。 上面的描述是實(shí)施例的示出,不應(yīng)被解釋為對實(shí)施例的限制。盡管已經(jīng)描述了幾個實(shí)施例,但是本領(lǐng)域的技術(shù)人員將易于理解,在實(shí)質(zhì)上不脫離本發(fā)明構(gòu)思的新穎教導(dǎo)和優(yōu)點(diǎn)的情況下,可以對實(shí)施例進(jìn)行多種變型。因此,所有這樣的變型意在包括在由權(quán)利要求及其等同物所限定的本發(fā)明構(gòu)思的范圍內(nèi)。
權(quán)利要求
1.一種在數(shù)據(jù)存儲裝置中執(zhí)行寫入操作的方法,該數(shù)據(jù)存儲裝置包括存儲介質(zhì)、處理単元和緩沖存儲器,緩沖存儲器在處理單元的控制下存儲將被發(fā)送到存儲介質(zhì)的數(shù)據(jù),所述方法包括 將緩沖存儲器中的數(shù)據(jù)聚集為包括多個數(shù)據(jù)條的條組; 將至少一個條組中的數(shù)據(jù)條發(fā)送到存儲介質(zhì); 在不需要另外訪問緩沖存儲器的情況下基于發(fā)送的至少ー個條組中的數(shù)據(jù)條來計(jì)算奇偶校驗(yàn)條; 將奇偶校驗(yàn)條發(fā)送到存儲介質(zhì)。
2.如權(quán)利要求I所述的方法,還包括將糾錯碼(ECC)信息添加到所述至少一個條組的每個數(shù)據(jù)條以及所述奇偶校驗(yàn)條。
3.如權(quán)利要求2所述的方法,其中,根據(jù)來自處理單元的命令計(jì)算奇偶校驗(yàn)條,所述命令伴隨著所述至少一個條組的數(shù)據(jù)條的XOR運(yùn)算。
4.如權(quán)利要求2所述的方法,其中,將緩沖存儲器中的數(shù)據(jù)聚集為條組的步驟包括處理單元的地址映射操作。
5.如權(quán)利要求2所述的方法,其中,在不需要另外訪問緩沖存儲器的情況下基于發(fā)送的至少ー個條組中的數(shù)據(jù)條來計(jì)算奇偶校驗(yàn)條的步驟包括 (a)將奇偶校驗(yàn)緩沖器復(fù)位; (b)在不需要另外訪問緩沖存儲器的情況下,對發(fā)送到存儲介質(zhì)的所述至少一個條組的數(shù)據(jù)條之一和作為先前奇偶校驗(yàn)的奇偶校驗(yàn)緩沖器的值執(zhí)行XOR運(yùn)算,以將XOR運(yùn)算的結(jié)果存儲在奇偶校驗(yàn)緩沖器中; (c)針對所述至少一個條組的剰余的數(shù)據(jù)條的每個重復(fù)步驟(b)。
6.如權(quán)利要求5所述的方法,其中,在所述至少一個條組的所有數(shù)據(jù)條被發(fā)送到存儲介質(zhì)之后,奇偶校驗(yàn)緩沖器中的值作為奇偶校驗(yàn)條被發(fā)送到存儲介質(zhì)。
7.如權(quán)利要求I所述的方法,其中,數(shù)據(jù)條和奇偶校驗(yàn)條的每個包括至少ー個頁。
8.如權(quán)利要求2所述的方法,其中,所述至少一個條組的數(shù)據(jù)條和奇偶校驗(yàn)條構(gòu)成全帶寫入單元。
9.如權(quán)利要求8所述的方法,其中,源帶中的數(shù)據(jù)條被復(fù)制到目標(biāo)帶,數(shù)據(jù)條被發(fā)送到目標(biāo)帶而不被發(fā)送到緩沖存儲器。
10.如權(quán)利要求2所述的方法,還包括 產(chǎn)生所述至少一個條組的數(shù)據(jù)條的每個數(shù)據(jù)條的元數(shù)據(jù); 通過處理單元計(jì)算數(shù)據(jù)條的元數(shù)據(jù)的奇偶校驗(yàn)數(shù)據(jù),其中,通過與處理單元獨(dú)立的加速器來計(jì)算關(guān)于數(shù)據(jù)條的奇偶校驗(yàn)條,ECC信息被添加到所述奇偶校驗(yàn)數(shù)據(jù)。
11.如權(quán)利要求I所述的方法,其中,存儲介質(zhì)包括閃存裝置。
12.—種數(shù)據(jù)存儲裝置,包括 存儲介質(zhì); 緩沖存儲器; 處理單元; 控制邏輯,被構(gòu)造為在處理單元的控制下控制存儲介質(zhì)的訪問操作; 奇偶校驗(yàn)產(chǎn)生器,被構(gòu)造為在處理單元的控制下并且在不需要另外訪問緩沖存儲器的情況下,基于從緩沖存儲器發(fā)送到存儲介質(zhì)的至少ー個條組的數(shù)據(jù)條,來產(chǎn)生奇偶校驗(yàn)條。
13.如權(quán)利要求12所述的數(shù)據(jù)存儲裝置,其中,處理單元被構(gòu)造為將緩沖存儲器中的數(shù)據(jù)聚集為數(shù)據(jù)條的條組。
14.如權(quán)利要求12所述的數(shù)據(jù)存儲裝置,其中,存儲介質(zhì)包括多個閃存裝置。
15.如權(quán)利要求14所述的數(shù)據(jù)存儲裝置,其中,控制邏輯和奇偶校驗(yàn)產(chǎn)生器構(gòu)成閃存控制器。
16.如權(quán)利要求15所述的數(shù)據(jù)存儲裝置,其中,準(zhǔn)備至少一個條組,當(dāng)至少ー個條組的每個數(shù)據(jù)條被發(fā)送到存儲介質(zhì)時,處理単元向閃存控制器提供用于被發(fā)送到存儲介質(zhì)的數(shù)據(jù)條的伴隨XOR運(yùn)算的寫入命令。
17.如權(quán)利要求16所述的數(shù)據(jù)存儲裝置,其中,當(dāng)將伴隨XOR運(yùn)算的寫入命令提供給閃存控制器吋,控制邏輯將與發(fā)送的數(shù)據(jù)條相關(guān)的地址信息提供給存儲介質(zhì),奇偶校驗(yàn)產(chǎn)生器基于發(fā)送的數(shù)據(jù)條計(jì)算奇偶校驗(yàn)條。
18.ー種在存儲裝置中執(zhí)行寫入操作的方法,該存儲裝置包括閃存、處理単元、閃存轉(zhuǎn)換層(FTL)和緩沖存儲器,緩沖存儲器在處理單元的控制下存儲將被發(fā)送到閃存的數(shù)據(jù),所述方法包括 將數(shù)據(jù)存儲在緩沖存儲器中; 通過在FTL中執(zhí)行地址映射,將存儲在緩沖存儲器中的數(shù)據(jù)聚集為包括多個數(shù)據(jù)條的條組; 將條組中的數(shù)據(jù)條發(fā)送到閃存; 對發(fā)送到閃存的數(shù)據(jù)條執(zhí)行XOR運(yùn)算,以產(chǎn)生奇偶校驗(yàn)條; 將奇偶校驗(yàn)條發(fā)送到閃存。
19.如權(quán)利要求18所述的方法,還包括將糾錯碼(ECC)信息添加到所述至少ー個條組的每個數(shù)據(jù)條以及所述奇偶校驗(yàn)條。
20.如權(quán)利要求18所述的方法,其中,每個數(shù)據(jù)條對應(yīng)于閃存的頁。
全文摘要
提供一種數(shù)據(jù)存儲裝置以及相關(guān)的操作方法。一種在數(shù)據(jù)存儲裝置中執(zhí)行寫入操作的方法,該數(shù)據(jù)存儲裝置包括存儲介質(zhì)、處理單元和緩沖存儲器,緩沖存儲器在處理單元的控制下存儲將被發(fā)送到存儲介質(zhì)的數(shù)據(jù)。所述方法包括將緩沖存儲器中的數(shù)據(jù)聚集為包括多個數(shù)據(jù)條的條組;將至少一個條組中的數(shù)據(jù)條發(fā)送到存儲介質(zhì);在不需要另外訪問緩沖存儲器的情況下基于發(fā)送的至少一個條組中的數(shù)據(jù)條來計(jì)算奇偶校驗(yàn)條;將奇偶校驗(yàn)條發(fā)送到存儲介質(zhì)。
文檔編號G06F11/10GK102681944SQ201110448530
公開日2012年9月19日 申請日期2011年12月22日 優(yōu)先權(quán)日2010年12月22日
發(fā)明者千源汶, 白承勛 申請人:三星電子株式會社