欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

固態(tài)硬盤數(shù)據(jù)寫入方法及裝置的制作方法

文檔序號(hào):6586500閱讀:246來(lái)源:國(guó)知局
專利名稱:固態(tài)硬盤數(shù)據(jù)寫入方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)存儲(chǔ)技術(shù)領(lǐng)域,尤其涉及一種固態(tài)硬盤數(shù)據(jù)寫入方法及裝置。
背景技術(shù)
目前,主流的固態(tài)硬盤(Solid State Disk,簡(jiǎn)稱SSD)采用NAND型閃存(NAND FLASH)芯片作為存儲(chǔ)介質(zhì),其具有存取速度快、防震抗摔、發(fā)熱低、零噪音和體積小等優(yōu)點(diǎn)。 SSD中記錄了邏輯塊地址(Logical BlockAddress,簡(jiǎn)稱LBA)和物理塊地址(Physical Block Address,簡(jiǎn)稱PBA)的映射關(guān)系,只有在這種映射關(guān)系可知的情況下,SSD存儲(chǔ)的數(shù) 據(jù)才有意義。與傳統(tǒng)機(jī)械硬盤通常采用固定映射關(guān)系的處理方式不同的是,SSD的映射關(guān) 系雖然具有一定的規(guī)則,但是并不固定。通常SSD通過(guò)映射表來(lái)維護(hù)LBA和PBA的映射關(guān)
系。當(dāng)因?yàn)橐恍┊惓G闆r,如存儲(chǔ)映射表的介質(zhì)失效或映射表下電回刷失敗,導(dǎo)致映射表丟 失或受損時(shí),無(wú)法獲知LBA和PBA的映射關(guān)系,則SSD上存儲(chǔ)的用戶數(shù)據(jù)也就隨之可能出現(xiàn) 完全或部分丟失的情況。 當(dāng)SSD的數(shù)據(jù)管理單元以NAND FLASH的物理塊為單位管理數(shù)據(jù)時(shí),現(xiàn)有技術(shù)在寫 入數(shù)據(jù)時(shí)將數(shù)據(jù)及其對(duì)應(yīng)的LBA —同寫入NAND FLASH,其中將數(shù)據(jù)寫入有效存儲(chǔ)區(qū),將LBA 寫入冗余空間。當(dāng)映射表丟失或受損時(shí),遍歷讀取盤上冗余空間的LBA,獲取每個(gè)有效扇區(qū) 的LBA,進(jìn)而獲得LBA和PBA的映射關(guān)系。 但是,當(dāng)SSD的數(shù)據(jù)管理單元以一個(gè)以上頁(yè)(page)或一個(gè)以上扇區(qū)(sector)等 較小的單位管理數(shù)據(jù)時(shí),現(xiàn)有的NAND FLASH寫入數(shù)據(jù)的方法決定了在一定時(shí)間內(nèi),SSD的 存儲(chǔ)介質(zhì)上可能存在多個(gè)頁(yè)或扇區(qū)對(duì)應(yīng)相同的LBA的情況,這樣,在數(shù)據(jù)重構(gòu)過(guò)程中就無(wú) 法區(qū)分哪個(gè)LBA對(duì)應(yīng)的頁(yè)或扇區(qū)數(shù)據(jù)是有效的,從而無(wú)法實(shí)現(xiàn)全盤數(shù)據(jù)的重構(gòu)。

發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了一種固態(tài)硬盤數(shù)據(jù)寫入方法及裝置,當(dāng)以一個(gè)以上頁(yè)或一個(gè)
以上扇區(qū)等較小的單位管理數(shù)據(jù)時(shí),能夠?qū)崿F(xiàn)全盤數(shù)據(jù)的重構(gòu)。
本發(fā)明實(shí)施例提供的固態(tài)硬盤數(shù)據(jù)寫入方法,包括 將計(jì)數(shù)值進(jìn)行更新,更新后的計(jì)數(shù)值用于標(biāo)識(shí)邏輯塊地址信息,所述邏輯塊地址 信息與當(dāng)前需要寫入的數(shù)據(jù)對(duì)應(yīng); 將所述當(dāng)前需要寫入的數(shù)據(jù)、所述邏輯塊地址信息和更新后的計(jì)數(shù)值寫入目的物 理塊。
本發(fā)明實(shí)施例提供的固態(tài)硬盤數(shù)據(jù)寫入裝置,包括 更新模塊,用于將計(jì)數(shù)值進(jìn)行更新,更新后的計(jì)數(shù)值用于標(biāo)識(shí)邏輯塊地址信息,所 述邏輯塊地址信息與當(dāng)前需要寫入的數(shù)據(jù)對(duì)應(yīng); 寫模塊,用于將所述當(dāng)前需要寫入的數(shù)據(jù)、所述邏輯塊地址信息和更新后的計(jì)數(shù) 值寫入目的物理塊。 本發(fā)明實(shí)施例維護(hù)了邏輯塊地址信息和計(jì)數(shù)值,更新了計(jì)數(shù)值后將當(dāng)前需要寫入更新后的計(jì)數(shù)值寫入目的物理塊。如果映射表丟失或受損,在數(shù) 據(jù)重構(gòu)過(guò)程中可以獲知計(jì)數(shù)值最新的邏輯塊地址信息對(duì)應(yīng)的頁(yè)或扇區(qū)數(shù)據(jù)是有效的,進(jìn)而 實(shí)現(xiàn)全盤數(shù)據(jù)的重構(gòu),增強(qiáng)了 SSD的可靠性。


為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的 附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng) 域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附 圖。 圖1為本發(fā)明實(shí)施例一固態(tài)硬盤數(shù)據(jù)寫入方法的流程圖;
圖2為本發(fā)明實(shí)施例二固態(tài)硬盤數(shù)據(jù)寫入方法的流程圖;
圖3為本發(fā)明實(shí)施例三固態(tài)硬盤數(shù)據(jù)寫入方法的流程圖;
圖4為本發(fā)明實(shí)施例四固態(tài)硬盤數(shù)據(jù)寫入方法的示意圖;
圖5為本發(fā)明實(shí)施例四固態(tài)硬盤數(shù)據(jù)寫入方法的流程圖;
圖6為本發(fā)明實(shí)施例五固態(tài)硬盤數(shù)據(jù)寫入裝置的結(jié)構(gòu)示意圖;
圖7為本發(fā)明實(shí)施例六固態(tài)硬盤數(shù)據(jù)寫入裝置的結(jié)構(gòu)示意圖;
圖8為本發(fā)明實(shí)施例七固態(tài)硬盤數(shù)據(jù)寫入裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;?本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。 圖1為本發(fā)明實(shí)施例一固態(tài)硬盤數(shù)據(jù)寫入方法的流程圖。如圖1所示,本實(shí)施例 具體包括如下步驟 步驟101、將計(jì)數(shù)值進(jìn)行更新,更新后的計(jì)數(shù)值用于標(biāo)識(shí)邏輯塊地址信息,該邏輯 塊地址信息與當(dāng)前需要寫入的數(shù)據(jù)對(duì)應(yīng); 步驟102、將當(dāng)前需要寫入的數(shù)據(jù)、邏輯塊地址信息和更新后的計(jì)數(shù)值寫入目的物 理塊。 當(dāng)需要向目的物理塊寫入數(shù)據(jù)時(shí),首先,將計(jì)數(shù)值進(jìn)行更新得到更新后的計(jì)數(shù)值; 然后,將數(shù)據(jù)、邏輯塊地址信息和更新后的計(jì)數(shù)值一起寫入目的物理塊。經(jīng)過(guò)上述操作,可 以保證更新后的計(jì)數(shù)值的邏輯塊地址信息對(duì)應(yīng)的頁(yè)或扇區(qū)存儲(chǔ)的數(shù)據(jù)是有效的,其中更新 后的計(jì)數(shù)值用于標(biāo)識(shí)邏輯塊地址信息,該邏輯塊地址信息與當(dāng)前需要寫入的數(shù)據(jù)對(duì)應(yīng),該 邏輯塊地址信息對(duì)應(yīng)的頁(yè)或扇區(qū)存儲(chǔ)的數(shù)據(jù)就是當(dāng)前需要寫入的數(shù)據(jù)。 本實(shí)施例維護(hù)了邏輯塊地址信息和計(jì)數(shù)值,更新了計(jì)數(shù)值后將數(shù)據(jù)、邏輯塊地址 信息和更新后的計(jì)數(shù)值寫入目的物理塊。如果映射表丟失或受損,在數(shù)據(jù)重構(gòu)過(guò)程中可以 獲知更新后的計(jì)數(shù)值的邏輯塊地址信息對(duì)應(yīng)的頁(yè)或扇區(qū)數(shù)據(jù)是有效的,進(jìn)而實(shí)現(xiàn)全盤數(shù)據(jù) 的重構(gòu),增強(qiáng)了 SSD的可靠性。 本發(fā)明實(shí)施例中,1個(gè)物理塊所占用的空間可以包括有效數(shù)據(jù)區(qū)和冗余空間,以1
4個(gè)物理塊包括64個(gè)頁(yè)為例,物理塊的有效數(shù)據(jù)區(qū)可以被分為64份,分別用于存放每個(gè)頁(yè)的 數(shù)據(jù);物理塊的冗余空間也可以被分為64份,分別用于存放每個(gè)頁(yè)的冗余數(shù)據(jù),所以l個(gè)頁(yè) 所占用的空間包括有效數(shù)據(jù)區(qū)和冗余空間。以l個(gè)頁(yè)包括8個(gè)扇區(qū)為例,頁(yè)的有效數(shù)據(jù)區(qū) 可以被分為8份,分別用于存放每個(gè)扇區(qū)的數(shù)據(jù);頁(yè)的冗余空間也可以被分為8份,分別用 于存放每個(gè)扇區(qū)的冗余數(shù)據(jù)。當(dāng)然,頁(yè)也可以維護(hù)一個(gè)冗余空間,用于統(tǒng)一存放該頁(yè)中所有 扇區(qū)的冗余數(shù)據(jù)。 圖2為本發(fā)明實(shí)施例二固態(tài)硬盤數(shù)據(jù)寫入方法的流程圖。本實(shí)施例以一個(gè)以上頁(yè) 為單位管理數(shù)據(jù)作為例子進(jìn)行說(shuō)明。當(dāng)以一個(gè)以上頁(yè)為單位管理數(shù)據(jù)時(shí),需要寫入目的物 理塊的邏輯塊地址信息具體為邏輯塊號(hào)碼(LogicalBlock Number,簡(jiǎn)稱LBN)。若1個(gè)頁(yè) 包括8個(gè)扇區(qū),LBN是LBA去掉后三位所得到的地址信息,這是因?yàn)長(zhǎng)BA的后三位用于尋址 頁(yè)中的每個(gè)扇區(qū),如以頁(yè)為單位管理數(shù)據(jù),只要尋址到頁(yè)即可。
如圖2所示,本實(shí)施例具體包括如下步驟 步驟201、將外部系統(tǒng)維護(hù)的計(jì)數(shù)值進(jìn)行更新,更新后的計(jì)數(shù)值用于標(biāo)識(shí)LBN,該 LBN為與當(dāng)前需要寫入的數(shù)據(jù)對(duì)應(yīng)。 在SSD中,可以由外部系統(tǒng)為整個(gè)SSD維護(hù)一個(gè)計(jì)數(shù)值,也可以由外部系統(tǒng)為每個(gè) 通道維護(hù)一個(gè)計(jì)數(shù)值,其中每個(gè)通道包括若干片F(xiàn)LASH。例如,在為整個(gè)SSD維護(hù)一個(gè)計(jì)數(shù) 值情況下,當(dāng)需要向該SSD中的任一 目的物理塊寫入數(shù)據(jù)時(shí),更新該SSD維護(hù)的計(jì)數(shù)值。在 為每個(gè)通道維護(hù)一個(gè)計(jì)數(shù)值情況下,當(dāng)需要向某一通道中的任一目的物理塊寫入數(shù)據(jù)時(shí), 將外部系統(tǒng)為該目的物理塊所屬通道維護(hù)的計(jì)數(shù)值進(jìn)行更新。 本步驟可以具體為將外部系統(tǒng)維護(hù)的計(jì)數(shù)值加1后得到更新后的計(jì)數(shù)值。
進(jìn)一步的,計(jì)數(shù)值的更新操作不僅限于加1操作,也可以為任意有規(guī)律的操作,例 如遞增操作或遞減操作等,其遞增或遞減的步進(jìn)值也可以為任一預(yù)設(shè)值。
下面通過(guò)兩個(gè)具體的例子來(lái)進(jìn)行說(shuō)明 1)更新操作為加1操作,外部系統(tǒng)為整個(gè)SSD維護(hù)一個(gè)計(jì)數(shù)值的情況 設(shè)計(jì)數(shù)值初始值為0。當(dāng)?shù)谝淮涡枰騍SD中某一 目的物理塊寫入數(shù)據(jù)時(shí),將計(jì)數(shù)
值從O更新為1 ;當(dāng)?shù)诙涡枰騍SD中另一目的物理塊寫入數(shù)據(jù)時(shí),將計(jì)數(shù)值從1更新為2。 2)更新操作為加1操作,外部系統(tǒng)為每個(gè)通道維護(hù)一個(gè)計(jì)數(shù)值的情況 設(shè)SSD共有兩個(gè)通道,分別為通道A和通道B,通道A的計(jì)數(shù)值為第一計(jì)數(shù)值,通道
B的計(jì)數(shù)值為第二計(jì)數(shù)值,這兩個(gè)計(jì)數(shù)值的初始值均為0。 當(dāng)?shù)谝淮涡枰蛲ǖ繟中某一 目的物理塊寫入數(shù)據(jù)時(shí),將第一計(jì)數(shù)值從0更新為
1 ;當(dāng)?shù)诙涡枰蛲ǖ繠中某一 目的物理塊寫入數(shù)據(jù)時(shí),將第二計(jì)數(shù)值從0更新為1 ;當(dāng)?shù)?br> 三次需要向通道A中另一目的物理塊寫入數(shù)據(jù)時(shí),將第一計(jì)數(shù)值從1更新為2 ;當(dāng)?shù)谒拇涡?br> 要向通道B中另一目的物理塊寫入數(shù)據(jù)時(shí),將第二計(jì)數(shù)值從1更新為2。 上述兩個(gè)例子僅為對(duì)本步驟實(shí)施方式的一種說(shuō)明,而非對(duì)本步驟的限制。 步驟202、將當(dāng)前需要寫入的數(shù)據(jù)寫入目的物理塊中頁(yè)的有效數(shù)據(jù)區(qū),將LBN和更
新后的計(jì)數(shù)值寫入目的物理塊中頁(yè)的冗余空間中。 本步驟將LBN和更新后的計(jì)數(shù)值存儲(chǔ)在 起,讀取更新后的計(jì)數(shù)值時(shí)也可讀到 LBN。
在步驟202之后,本實(shí)施例還可以包括將目的物理塊中頁(yè)的PBA作為L(zhǎng)BN最新的 PBA寫入映射表中。也就是,在步驟202之后,更新映射表,更新后的映射表中LBN對(duì)應(yīng)的 PBA為目的物理塊中頁(yè)的PBA。 本實(shí)施例需要寫入數(shù)據(jù)時(shí),更新外部系統(tǒng)維護(hù)的計(jì)數(shù)值,將數(shù)據(jù)寫入目的物理塊 中頁(yè)的有效數(shù)據(jù)區(qū),將LBN和更新后的計(jì)數(shù)值寫入目的物理塊中頁(yè)的冗余空間中。如果映 射表丟失或受損,在數(shù)據(jù)重構(gòu)過(guò)程中可以獲知更新后的計(jì)數(shù)值的LBN對(duì)應(yīng)的頁(yè)數(shù)據(jù)是有效 的,進(jìn)而實(shí)現(xiàn)全盤數(shù)據(jù)的重構(gòu),增強(qiáng)了 SSD的可靠性。進(jìn)一步的,本實(shí)施例采用冗余空間存 儲(chǔ)LBN及其更新后的計(jì)數(shù)值,不需要占用額外的存儲(chǔ)空間,盤片的利用率較高。本實(shí)施例 將LBN及其更新后的計(jì)數(shù)值存儲(chǔ)在一起,這樣LBN及其更新后的計(jì)數(shù)值分布在SSD全盤的 FLASH顆粒中,在數(shù)據(jù)重構(gòu)過(guò)程中,可以并發(fā)讀取LBN及其更新后的計(jì)數(shù)值,提高了重建的 速度。 當(dāng)以一個(gè)以上扇區(qū)為單位管理數(shù)據(jù)時(shí),需要寫入冗余空間的邏輯塊地址信息具體
為L(zhǎng)BA,具體也可以采用上述實(shí)施例二提供的方法寫入數(shù)據(jù),在此不再贅述。 圖3為本發(fā)明實(shí)施例三固態(tài)硬盤數(shù)據(jù)寫入方法的流程圖。本實(shí)施例以一個(gè)以上扇
區(qū)為單位管理數(shù)據(jù)作為例子進(jìn)行說(shuō)明。當(dāng)以一個(gè)以上扇區(qū)為單位管理數(shù)據(jù)時(shí),需要寫入目
的物理塊的邏輯塊地址信息具體為L(zhǎng)BA。 如圖3所示,本實(shí)施例具體包括如下步驟 步驟301、將原物理塊的冗余空間存儲(chǔ)的計(jì)數(shù)值進(jìn)行更新,更新后的計(jì)數(shù)值用于標(biāo) 識(shí)LBN,該LBN為與當(dāng)前需要寫入的數(shù)據(jù)對(duì)應(yīng)。 在SSD中,可以為每一個(gè)LBA維護(hù)一個(gè)計(jì)數(shù)值,在這種情況下,當(dāng)需要向目的物理 塊寫入數(shù)據(jù)時(shí),讀取原物理塊的冗余空間存儲(chǔ)的原計(jì)數(shù)值。該原物理塊的PBA是映射表中 當(dāng)前LBA對(duì)應(yīng)的PBA。 本步驟可以具體為將原物理塊的冗余空間存儲(chǔ)的計(jì)數(shù)值加1后得到更新后的計(jì) 數(shù)值。 進(jìn)一步的,計(jì)數(shù)值的更新操作不僅限于加1操作,也可以為任意有規(guī)律的操作,例
如遞增操作或遞減操作等,其遞增或遞減的步進(jìn)值也可以為任一預(yù)設(shè)值。 步驟302、將當(dāng)前需要寫入的數(shù)據(jù)寫入目的物理塊中頁(yè)的有效數(shù)據(jù)區(qū),將LBA和更
新后的計(jì)數(shù)值寫入目的物理塊中頁(yè)的冗余空間中。 本步驟將LBA和更新后的計(jì)數(shù)值存儲(chǔ)在一起,讀取更新后的計(jì)數(shù)值時(shí)也可讀到 LBA。 在步驟302之后,本實(shí)施例還可以包括將目的物理塊中頁(yè)的PBA作為L(zhǎng)BA最新的 PBA寫入映射表中。也就是,在步驟302之后,更新映射表,更新后的映射表中LBA對(duì)應(yīng)的 PBA為目的物理塊中頁(yè)的PBA。 本實(shí)施例需要寫入數(shù)據(jù)時(shí),更新FLASH為L(zhǎng)BA維護(hù)的計(jì)數(shù)值,將數(shù)據(jù)寫入目的物理 塊中頁(yè)的有效數(shù)據(jù)區(qū),將LBA和更新后的計(jì)數(shù)值寫入目的物理塊中頁(yè)的冗余空間中。如果 映射表丟失或受損,在數(shù)據(jù)重構(gòu)過(guò)程中可以獲知更新后的計(jì)數(shù)值的LBA對(duì)應(yīng)的頁(yè)數(shù)據(jù)是有 效的,進(jìn)而實(shí)現(xiàn)全盤數(shù)據(jù)的重構(gòu),增強(qiáng)了 SSD的可靠性。進(jìn)一步的,本實(shí)施例采用冗余空間 存儲(chǔ)LBA及其更新后的計(jì)數(shù)值,不需要占用額外的存儲(chǔ)空間,盤片的利用率較高。本實(shí)施例 將LBA及其更新后的計(jì)數(shù)值存儲(chǔ)在一起,這樣LBA及其更新后的計(jì)數(shù)值分布在SSD全盤的FLASH顆粒中,在數(shù)據(jù)重構(gòu)過(guò)程中,可以并發(fā)讀取LBA及其更新后的計(jì)數(shù)值,提高了重建的 速度。 當(dāng)以一個(gè)以上頁(yè)為單位管理數(shù)據(jù)時(shí),需要寫入冗余空間的邏輯塊地址信息具體為
LBN,具體也可以采用上述實(shí)施例三提供的方法寫入數(shù)據(jù),在此不再贅述。 由于FLASH中向目的物理塊寫入數(shù)據(jù)的方式有很多種,為了更為清楚的說(shuō)明本發(fā)
明實(shí)施例的技術(shù)方案,下面通過(guò)一個(gè)具體的例子進(jìn)行描述。該具體的例子為從原物理塊中
讀取原數(shù)據(jù),借助FLASH內(nèi)部的數(shù)據(jù)寄存器將原數(shù)據(jù)更新為當(dāng)前需要寫入的數(shù)據(jù),并寫入
目的物理塊。具體參見(jiàn)實(shí)施例四。 圖4為本發(fā)明實(shí)施例四固態(tài)硬盤數(shù)據(jù)寫入方法的示意圖。本實(shí)施例以一個(gè)以上頁(yè) 為單位管理數(shù)據(jù)作為例子進(jìn)行說(shuō)明,圖4中示出了NAND FLASH中同一個(gè)平面(plane)中的 兩個(gè)物理塊,分別為原物理塊(SB)和目的物理塊(DB)。 SB和DB均按頁(yè)來(lái)劃分,分別包括 p0、pl、p2、p3等若干個(gè)頁(yè)。數(shù)據(jù)寄存器為NAND FLASH內(nèi)部的緩存單元,用于暫存數(shù)據(jù),數(shù) 據(jù)寄存器也包括有效數(shù)據(jù)區(qū)和冗余空間。 圖5為本發(fā)明實(shí)施例四固態(tài)硬盤數(shù)據(jù)寫入方法的流程圖。如圖5所示,本實(shí)施例 具體包括如下步驟 步驟401、將SB中包括原數(shù)據(jù)和LBN的第一數(shù)據(jù)讀入數(shù)據(jù)寄存器中,若在SSD中為
每一個(gè)LBN維護(hù)一個(gè)計(jì)數(shù)值,則同時(shí)將SB中存儲(chǔ)的計(jì)數(shù)值讀入數(shù)據(jù)寄存器中;若在SSD中
外部系統(tǒng)維護(hù)計(jì)數(shù)值,則將外部系統(tǒng)維護(hù)的計(jì)數(shù)值讀入數(shù)據(jù)寄存器中。 具體地,將原數(shù)據(jù)讀入數(shù)據(jù)寄存器的有效數(shù)據(jù)區(qū),將LBN和計(jì)數(shù)值讀入數(shù)據(jù)寄存
器的冗余空間。 其中,原數(shù)據(jù)為當(dāng)前LBN對(duì)應(yīng)的PBA所指向的頁(yè)中的有效數(shù)據(jù),所謂當(dāng)前LBN對(duì)應(yīng) 的PBA是指映射表中記錄的當(dāng)前LBN對(duì)應(yīng)的PBA。 如圖4所示,設(shè)當(dāng)前LBN對(duì)應(yīng)的PBA指向的是SB中的p2 (p2為舊頁(yè)),p2中存儲(chǔ) 的有效數(shù)據(jù)是原數(shù)據(jù),物理塊的冗余空間或p2的冗余空間存儲(chǔ)有當(dāng)前LBN及其計(jì)數(shù)值。
步驟402、將數(shù)據(jù)寄存器的有效數(shù)據(jù)區(qū)中的原數(shù)據(jù)更新為當(dāng)前需要寫入的數(shù)據(jù),并 將數(shù)據(jù)寄存器的冗余空間中的計(jì)數(shù)值進(jìn)行更新,得到第二數(shù)據(jù)。 其中將數(shù)據(jù)寄存器的冗余空間中的計(jì)數(shù)值進(jìn)行更新可以具體為將計(jì)數(shù)值加1后 寫回至數(shù)據(jù)寄存器的冗余空間。計(jì)數(shù)值的更新不僅限于加1操作,也可以為任意有規(guī)律的 操作,例如遞增操作或遞減操作等,其遞增或遞減的步進(jìn)值也可以為任一預(yù)設(shè)值。
第二數(shù)據(jù)包括當(dāng)前需要寫入的數(shù)據(jù)、LBN和更新后的計(jì)數(shù)值。
步驟403、將數(shù)據(jù)寄存器中的第二數(shù)據(jù)寫入DB。 具體地,見(jiàn)圖4,將第二數(shù)據(jù)中的當(dāng)前需要寫入的數(shù)據(jù)寫入DB中的p3(p3為新 頁(yè)),將LBN和更新后的計(jì)數(shù)值寫入p3的冗余空間。 在步驟403之后,本實(shí)施例還可以包括將p3的PBA作為當(dāng)前LBN最新的PBA寫 入映射表中。 本實(shí)施例不僅限于采用NAND FLASH內(nèi)部的數(shù)據(jù)寄存器來(lái)緩存數(shù)據(jù),也可以采用 NAND FLASH外部的緩存介質(zhì)來(lái)緩存數(shù)據(jù),如SSD上的緩存(cache)空間,其操作方式與此類 似。 本實(shí)施例需要寫入數(shù)據(jù)時(shí),更新FLASH為L(zhǎng)BA維護(hù)的計(jì)數(shù)值,將數(shù)據(jù)寫入目的物理塊中頁(yè)的有效數(shù)據(jù)區(qū),將LBA和更新后的計(jì)數(shù)值寫入目的物理塊中頁(yè)的冗余空間中。如果 映射表丟失或受損,在數(shù)據(jù)重構(gòu)過(guò)程中可以獲知更新后的計(jì)數(shù)值的LBN對(duì)應(yīng)的頁(yè)數(shù)據(jù)是有 效的,進(jìn)而實(shí)現(xiàn)全盤數(shù)據(jù)的重構(gòu),增強(qiáng)了 SSD的可靠性。進(jìn)一步的,本實(shí)施例采用冗余空間 存儲(chǔ)LBN及其更新后的計(jì)數(shù)值,不需要占用額外的存儲(chǔ)空間,盤片的利用率較高。本實(shí)施例 將LBN及其更新后的計(jì)數(shù)值存儲(chǔ)在一起,這樣LBN及其更新后的計(jì)數(shù)值分布在SSD全盤的 FLASH顆粒中,在數(shù)據(jù)重構(gòu)過(guò)程中,可以并發(fā)讀取LBN及其更新后的計(jì)數(shù)值,提高了重建的 速度。 當(dāng)以一個(gè)以上扇區(qū)為單位管理數(shù)據(jù)時(shí),需要寫入冗余空間的邏輯塊地址信息具體
為L(zhǎng)BA,具體也可以采用上述實(shí)施例二提供的方法寫入數(shù)據(jù),在此不再贅述。 本發(fā)明實(shí)施例不僅限應(yīng)用于以NAND FLASH為介質(zhì)的SSD,也可以應(yīng)用于其他固態(tài)
硬盤中。 圖6為本發(fā)明實(shí)施例五固態(tài)硬盤數(shù)據(jù)寫入裝置的結(jié)構(gòu)示意圖。如圖6所示,本實(shí) 施例具體包括更新模塊11和寫模塊12,其中 更新模塊11用于將計(jì)數(shù)值進(jìn)行更新,更新后的計(jì)數(shù)值用于標(biāo)識(shí)邏輯塊地址信息, 該邏輯塊地址信息與當(dāng)前需要寫入的數(shù)據(jù)對(duì)應(yīng); 寫模塊12用于將當(dāng)前需要寫入的數(shù)據(jù)、邏輯塊地址信息和更新后的計(jì)數(shù)值寫入 目的物理塊。 當(dāng)需要向目的物理塊寫入數(shù)據(jù)時(shí),首先,更新模塊11將計(jì)數(shù)值進(jìn)行更新;然后,寫 模塊12將當(dāng)前需要寫入的數(shù)據(jù)、邏輯塊地址信息和更新后的計(jì)數(shù)值一起寫入目的物理塊。 經(jīng)過(guò)上述操作,可以保證更新后的計(jì)數(shù)值的邏輯塊地址信息對(duì)應(yīng)的頁(yè)或扇區(qū)存儲(chǔ)的數(shù)據(jù)是 有效的,其中更新后的計(jì)數(shù)值的邏輯塊地址信息對(duì)應(yīng)的頁(yè)或扇區(qū)存儲(chǔ)的數(shù)據(jù)就是當(dāng)前需要 寫入的數(shù)據(jù)。 本實(shí)施例維護(hù)了邏輯塊地址信息和計(jì)數(shù)值,更新了計(jì)數(shù)值后將數(shù)據(jù)、邏輯塊地址 信息和更新后的計(jì)數(shù)值寫入目的物理塊。如果映射表丟失或受損,在數(shù)據(jù)重構(gòu)過(guò)程中可以 獲知更新后的計(jì)數(shù)值的邏輯塊地址信息對(duì)應(yīng)的頁(yè)或扇區(qū)數(shù)據(jù)是有效的,進(jìn)而實(shí)現(xiàn)全盤數(shù)據(jù) 的重構(gòu),增強(qiáng)了 SSD的可靠性。 圖7為本發(fā)明實(shí)施例六固態(tài)硬盤數(shù)據(jù)寫入裝置的結(jié)構(gòu)示意圖。如圖7所示,本實(shí) 施例在實(shí)施例五的基礎(chǔ)上,更新模塊11進(jìn)一步包括第一更新單元21,其中
第一更新單元21用于將外部系統(tǒng)維護(hù)的計(jì)數(shù)值進(jìn)行更新。 在SSD中,可以由外部系統(tǒng)為整個(gè)SSD維護(hù)一個(gè)計(jì)數(shù)值,也可以由外部系統(tǒng)為每個(gè) 通道維護(hù)一個(gè)計(jì)數(shù)值,其中每個(gè)通道包括若干片F(xiàn)LASH。例如,在為每個(gè)通道維護(hù)一個(gè)計(jì)數(shù) 值情況下,當(dāng)需要向目的物理塊寫入數(shù)據(jù)時(shí),第一更新單元21讀取外部系統(tǒng)為該目的物理 塊所屬通道維護(hù)的計(jì)數(shù)值,將該計(jì)數(shù)值進(jìn)行更新。
寫模塊12具體包括寫數(shù)據(jù)單元22和寫信息單元23,其中 寫數(shù)據(jù)單元22用于將當(dāng)前需要寫入的數(shù)據(jù)寫入目的物理塊中頁(yè)或扇區(qū)的有效數(shù) 據(jù)區(qū); 寫信息單元23用于將邏輯塊地址信息和更新后的計(jì)數(shù)值寫入目的物理塊中頁(yè)或 扇區(qū)的冗余空間中。 本實(shí)施例還可以包括映射模塊24,該映射模塊24用于將目的物理塊中頁(yè)或扇區(qū)
8的物理塊地址作為邏輯塊地址信息最新的物理塊地址寫入映射表中。
本實(shí)施例各功能模塊的具體功能實(shí)現(xiàn)方式可以參見(jiàn)實(shí)施例二。 本實(shí)施例需要寫入數(shù)據(jù)時(shí),更新外部系統(tǒng)維護(hù)的計(jì)數(shù)值,將數(shù)據(jù)寫入目的物理塊 中頁(yè)或扇區(qū)的有效數(shù)據(jù)區(qū),將邏輯塊地址信息和更新后的計(jì)數(shù)值寫入目的物理塊中頁(yè)或扇 區(qū)的冗余空間中。如果映射表丟失或受損,在數(shù)據(jù)重構(gòu)過(guò)程中可以獲知更新后的計(jì)數(shù)值的 邏輯塊地址信息對(duì)應(yīng)的頁(yè)或扇區(qū)數(shù)據(jù)是有效的,進(jìn)而實(shí)現(xiàn)全盤數(shù)據(jù)的重構(gòu),增強(qiáng)了 SSD的 可靠性。進(jìn)一步的,本實(shí)施例采用冗余空間存儲(chǔ)邏輯塊地址信息及其更新后的計(jì)數(shù)值,不需 要占用額外的存儲(chǔ)空間,盤片的利用率較高。本實(shí)施例將邏輯塊地址信息及其更新后的計(jì) 數(shù)值存儲(chǔ)在一起,這樣邏輯塊地址信息及其更新后的計(jì)數(shù)值分布在SSD全盤的FLASH顆粒 中,在數(shù)據(jù)重構(gòu)過(guò)程中,可以并發(fā)讀取邏輯塊地址信息及其更新后的計(jì)數(shù)值,提高了重建的 速度。 圖8為本發(fā)明實(shí)施例七固態(tài)硬盤數(shù)據(jù)寫入裝置的結(jié)構(gòu)示意圖。如圖8所示,本實(shí)
施例在實(shí)施例五的基礎(chǔ)上,更新模塊11進(jìn)一步包括第二更新單元31,其中 第二更新單元31用于將原物理塊的冗余空間存儲(chǔ)的計(jì)數(shù)值進(jìn)行更新。 在SSD中,可以為每一個(gè)邏輯塊地址信息維護(hù)一個(gè)計(jì)數(shù)值,在這種情況下,當(dāng)需要
向目的物理塊寫入數(shù)據(jù)時(shí),第二更新單元31讀取原物理塊的冗余空間存儲(chǔ)的計(jì)數(shù)值,將該
計(jì)數(shù)值進(jìn)行更新。該原物理塊的PBA是映射表中當(dāng)前邏輯塊地址信息對(duì)應(yīng)的PBA。
寫模塊12具體包括寫數(shù)據(jù)單元32和寫信息單元33,其中 寫數(shù)據(jù)單元32用于將當(dāng)前需要寫入的數(shù)據(jù)寫入目的物理塊中頁(yè)或扇區(qū)的有效數(shù) 據(jù)區(qū); 寫信息單元33用于將邏輯塊地址信息和更新后的計(jì)數(shù)值寫入目的物理塊中頁(yè)或 扇區(qū)的冗余空間中。 本實(shí)施例還可以包括映射模塊34,該映射模塊34用于將目的物理塊中頁(yè)或扇區(qū) 的物理塊地址作為邏輯塊地址信息最新的物理塊地址寫入映射表中。
本實(shí)施例各功能模塊的具體功能實(shí)現(xiàn)方式可以參見(jiàn)實(shí)施例三。
本實(shí)施例需要寫入數(shù)據(jù)時(shí),更新FLASH為邏輯塊地址信息維護(hù)的計(jì)數(shù)值,將數(shù)據(jù) 寫入目的物理塊中頁(yè)或扇區(qū)的有效數(shù)據(jù)區(qū),將邏輯塊地址信息和更新后的計(jì)數(shù)值寫入目的 物理塊中頁(yè)或扇區(qū)的冗余空間中。如果映射表丟失或受損,在數(shù)據(jù)重構(gòu)過(guò)程中可以獲知更 新后的計(jì)數(shù)值的邏輯塊地址信息對(duì)應(yīng)的頁(yè)或扇區(qū)數(shù)據(jù)是有效的,進(jìn)而實(shí)現(xiàn)全盤數(shù)據(jù)的重 構(gòu),增強(qiáng)了 SSD的可靠性。進(jìn)一步的,本實(shí)施例采用冗余空間存儲(chǔ)邏輯塊地址信息及其更新 后的計(jì)數(shù)值,不需要占用額外的存儲(chǔ)空間,盤片的利用率較高。本實(shí)施例將邏輯塊地址信息 及其更新后的計(jì)數(shù)值存儲(chǔ)在一起,這樣邏輯塊地址信息及其更新后的計(jì)數(shù)值分布在SSD全 盤的FLASH顆粒中,在數(shù)據(jù)重構(gòu)過(guò)程中,可以并發(fā)讀取邏輯塊地址信息及其更新后的計(jì)數(shù) 值,提高了重建的速度。 本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過(guò) 程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序 在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟,而前述的存儲(chǔ)介質(zhì)包括R0M、 RAM、磁碟或者光 盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。 最后應(yīng)說(shuō)明的是以上實(shí)施例僅用以說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明實(shí)施例進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng) 理解其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征 進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明實(shí)施例各實(shí) 施例技術(shù)方案的精神和范圍。
權(quán)利要求
一種固態(tài)硬盤數(shù)據(jù)寫入方法,其特征在于,包括將計(jì)數(shù)值進(jìn)行更新,更新后的計(jì)數(shù)值用于標(biāo)識(shí)邏輯塊地址信息,所述邏輯塊地址信息與當(dāng)前需要寫入的數(shù)據(jù)對(duì)應(yīng);將所述當(dāng)前需要寫入的數(shù)據(jù)、所述邏輯塊地址信息和更新后的計(jì)數(shù)值寫入目的物理塊。
2. 根據(jù)權(quán)利要求1所述的固態(tài)硬盤數(shù)據(jù)寫入方法,其特征在于,所述將計(jì)數(shù)值進(jìn)行更 新包括將外部系統(tǒng)維護(hù)的計(jì)數(shù)值進(jìn)行更新。
3. 根據(jù)權(quán)利要求1所述的固態(tài)硬盤數(shù)據(jù)寫入方法,其特征在于,所述將計(jì)數(shù)值進(jìn)行更 新包括將原物理塊的冗余空間存儲(chǔ)的計(jì)數(shù)值進(jìn)行更新。
4. 根據(jù)權(quán)利要求1或2或3所述的固態(tài)硬盤數(shù)據(jù)寫入方法,其特征在于,所述將所述當(dāng) 前需要寫入的數(shù)據(jù)、所述邏輯塊地址信息和更新后的計(jì)數(shù)值寫入目的物理塊包括將所述當(dāng)前需要寫入的數(shù)據(jù)寫入目的物理塊中頁(yè)或扇區(qū)的有效數(shù)據(jù)區(qū); 將所述邏輯塊地址信息和所述更新后的計(jì)數(shù)值寫入目的物理塊中頁(yè)或扇區(qū)的冗余空 間中。
5. 根據(jù)權(quán)利要求4所述的固態(tài)硬盤數(shù)據(jù)寫入方法,其特征在于,在所述將所述當(dāng)前需 要寫入的數(shù)據(jù)、所述邏輯塊地址信息和更新后的計(jì)數(shù)值寫入目的物理塊之后還包括將所述目的物理塊中頁(yè)或扇區(qū)的物理塊地址作為所述邏輯塊地址信息最新的物理塊 地址寫入映射表中。
6. —種固態(tài)硬盤數(shù)據(jù)寫入裝置,其特征在于,包括更新模塊,用于將計(jì)數(shù)值進(jìn)行更新,更新后的計(jì)數(shù)值用于標(biāo)識(shí)邏輯塊地址信息,所述邏 輯塊地址信息與當(dāng)前需要寫入的數(shù)據(jù)對(duì)應(yīng);寫模塊,用于將所述當(dāng)前需要寫入的數(shù)據(jù)、所述邏輯塊地址信息和更新后的計(jì)數(shù)值寫 入目的物理塊。
7. 根據(jù)權(quán)利要求6所述的固態(tài)硬盤數(shù)據(jù)寫入裝置,其特征在于,所述更新模塊包括 第一更新單元,用于將外部系統(tǒng)維護(hù)的計(jì)數(shù)值進(jìn)行更新。
8. 根據(jù)權(quán)利要求6所述的固態(tài)硬盤數(shù)據(jù)寫入裝置,其特征在于,所述更新模塊包括 第二更新單元,用于將原物理塊的冗余空間存儲(chǔ)的計(jì)數(shù)值進(jìn)行更新。
9. 根據(jù)權(quán)利要求6或7或8所述的固態(tài)硬盤數(shù)據(jù)寫入裝置,其特征在于,所述寫模塊包括寫數(shù)據(jù)單元,用于將所述當(dāng)前需要寫入的數(shù)據(jù)寫入目的物理塊中頁(yè)或扇區(qū)的有效數(shù)據(jù)區(qū);寫信息單元,用于將所述邏輯塊地址信息和所述更新后的計(jì)數(shù)值寫入目的物理塊中頁(yè) 或扇區(qū)的冗余空間中。
10. 根據(jù)權(quán)利要求9所述的固態(tài)硬盤數(shù)據(jù)寫入裝置,其特征在于,還包括映射模塊,用于將所述目的物理塊中頁(yè)或扇區(qū)的物理塊地址作為所述邏輯塊地址信息 最新的物理塊地址寫入映射表中。
全文摘要
本發(fā)明實(shí)施例涉及一種固態(tài)硬盤數(shù)據(jù)寫入方法及裝置,其中方法包括將計(jì)數(shù)值進(jìn)行更新,更新后的計(jì)數(shù)值用于標(biāo)識(shí)邏輯塊地址信息,所述邏輯塊地址信息與當(dāng)前需要寫入的數(shù)據(jù)對(duì)應(yīng);將所述當(dāng)前需要寫入的數(shù)據(jù)、所述邏輯塊地址信息和更新后的計(jì)數(shù)值寫入目的物理塊。本發(fā)明實(shí)施例維護(hù)了邏輯塊地址信息和計(jì)數(shù)值,更新了計(jì)數(shù)值后將數(shù)據(jù)、邏輯塊地址信息和更新后的計(jì)數(shù)值寫入目的物理塊。如果映射表丟失或受損,在數(shù)據(jù)重構(gòu)過(guò)程中可以獲知更新后的計(jì)數(shù)值邏輯塊地址信息對(duì)應(yīng)的頁(yè)或扇區(qū)數(shù)據(jù)是有效的,進(jìn)而實(shí)現(xiàn)全盤數(shù)據(jù)的重構(gòu),增強(qiáng)了SSD的可靠性。
文檔編號(hào)G06F12/06GK101751343SQ20091026112
公開(kāi)日2010年6月23日 申請(qǐng)日期2009年12月28日 優(yōu)先權(quán)日2009年12月28日
發(fā)明者張琴, 李欣, 楊繼濤, 柯喬 申請(qǐng)人:成都市華為賽門鐵克科技有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
朝阳市| 会泽县| 札达县| 锡林浩特市| 淅川县| 厦门市| 海丰县| 乌海市| 遂昌县| 甘肃省| 方城县| 新津县| 额尔古纳市| 尉氏县| 焦作市| 嘉鱼县| 隆化县| 布拖县| 曲周县| 晋州市| 三穗县| 莱阳市| 三穗县| 扶风县| 罗山县| 大余县| 巴东县| 辽宁省| 平阴县| 闵行区| 静安区| 和田市| 治多县| 南岸区| 铅山县| 毕节市| 黄骅市| 杭锦旗| 岱山县| 岳阳市| 漯河市|