專利名稱:具有內(nèi)嵌地址間接性元數(shù)據(jù)存儲(chǔ)的存儲(chǔ)設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及使用用于將物理存儲(chǔ)位置映射到邏輯地址的間接性的數(shù)據(jù)存儲(chǔ)設(shè)備架構(gòu)的領(lǐng)域,并且更具體地涉及在迭瓦寫入式磁記錄(SMR)設(shè)備中使用的這樣的間接性。
背景技術(shù):
具有磁介質(zhì)的傳統(tǒng)的磁盤驅(qū)動(dòng)將數(shù)據(jù)組織在空間上分離的同心軌道中。迭瓦寫入(shingled write)的概念是垂直磁記錄的形式并且已經(jīng)作為提高磁記錄的面密度的方法提出。在迭瓦寫入式磁記錄(SMR)介質(zhì)中相鄰軌道的區(qū)域(帶)被寫入使得覆蓋一個(gè)或多個(gè)先前寫入的軌道。不同于傳統(tǒng)的分離的軌道,迭瓦式軌道必須順序?qū)懭?,而傳統(tǒng)的分離的軌道可以按照任何順序?qū)懭搿4疟P表面上的軌道組織為多個(gè)迭瓦式區(qū)域(也稱為I區(qū)域),其可以從內(nèi)徑(ID)到外徑(OD)或從OD到ID順序?qū)懭搿T谝粎^(qū)域中迭瓦在一起的軌道的數(shù)量是迭瓦寫入的關(guān)鍵的性能參數(shù)。一旦按照迭瓦結(jié)構(gòu)寫入,單獨(dú)的軌道不能夠適當(dāng)?shù)馗?,因?yàn)槟菍⒅貙懖闹丿B軌道。因此,迭瓦寫入式數(shù)據(jù)軌道從用戶的角度來(lái)看,有時(shí)認(rèn)為是類似僅附加的日志。為了提高SMR驅(qū)動(dòng)的性能,將一部分介質(zhì)分配給所謂的“排除區(qū)域”(E區(qū)域),該區(qū)域用作用于最終將寫入到I區(qū)域的數(shù)據(jù)的分段區(qū)域(staging area)。E區(qū)域有時(shí)也稱為E緩沖。在迭瓦寫入式存儲(chǔ)設(shè)備的內(nèi)部架構(gòu)中的地址間接性對(duì)于至少在某種程度上模擬現(xiàn)有的主機(jī)接口并且將主機(jī)從與SMR關(guān)聯(lián)的復(fù)雜性屏蔽是有用的?,F(xiàn)有的主機(jī)文件系統(tǒng)在讀和寫數(shù)據(jù)塊的命令中使用邏輯塊地址(LBA),而不考慮由存儲(chǔ)設(shè)備內(nèi)部使用的實(shí)際的位置(物理塊地址(PBA))。其中,硬盤驅(qū)動(dòng)對(duì)于數(shù)十年具有一些等級(jí)的LBA-PBA間接性,允許盤上壞的扇區(qū)重新映射到為此目的已經(jīng)保留的好的扇區(qū)。地址間接性典型地在驅(qū)動(dòng)器的架構(gòu)的控制器部分中實(shí)現(xiàn)。控制器將主機(jī)命令中的LBA翻譯到內(nèi)部的物理地址,或者與物理地址類似的東西。用于缺陷的現(xiàn)有的LBA-PBA映射不需要經(jīng)常改變。相反,在SMA設(shè)備中邏輯塊地址(LBA)的物理塊地址(PBA)可以取決于寫入歷史而改變。例如,后臺(tái)處理(諸如垃圾收集)將數(shù)據(jù)扇區(qū)從一個(gè)PBA移動(dòng)到另一個(gè)但是LBA保持相同。SMR的間接性系統(tǒng)本來(lái)是動(dòng)態(tài)系統(tǒng),其中控制器將主機(jī)地址請(qǐng)求翻譯到物理位置。在SMR系統(tǒng)中,LBA-PBA映射隨著每個(gè)寫入操作而改變,因?yàn)橄到y(tǒng)動(dòng)態(tài)地確定在介質(zhì)上的物理位置,在該位置將寫入用于LBA的主機(jī)數(shù)據(jù)。在下次主機(jī)LBA更新時(shí)相同的LBA將寫入到不同的位置。間接性系統(tǒng)提供在主機(jī)LBA和介質(zhì)上的當(dāng)前物理位置之間的動(dòng)態(tài)翻譯層。存儲(chǔ)設(shè)備的設(shè)計(jì)必須提供對(duì)于在緊急斷電之后可恢復(fù)的間接性地址映射方案,因此邏輯塊地址(LBA)到物理位置的映射必須記錄在永久介質(zhì)中?,F(xiàn)有技術(shù)中的文件系統(tǒng)在盤上為元數(shù)據(jù)存儲(chǔ)維持一個(gè)單獨(dú)區(qū)域用于跟蹤LBA位置。然而,這樣的解決方案展示了對(duì)于盤驅(qū)動(dòng)的差的性能,由于其要求對(duì)元數(shù)據(jù)區(qū)域和來(lái)自元數(shù)據(jù)區(qū)域的附加的尋找。處理盤驅(qū)動(dòng)RAM緩沖的現(xiàn)有技術(shù)的方法必須提供對(duì)功率損耗(斷電)問(wèn)題的解決方案。在對(duì)Hall (2002年4月23日)的US專利6378037中,故障安全的寫入緩沖使用盤表面的特別安排的部分以在驅(qū)動(dòng)空閑時(shí)間期間存儲(chǔ)寫緩沖數(shù)據(jù)。在系統(tǒng)或電源故障的情況下在數(shù)據(jù)寫入其最終盤目的地之前,數(shù)據(jù)可以從特別安排的部分讀出以生效沒(méi)有數(shù)據(jù)損失的恢復(fù)。
發(fā)明內(nèi)容
本發(fā)明的實(shí)施例允許盤驅(qū)動(dòng)(諸如迭瓦寫入式磁記錄(SMR)驅(qū)動(dòng))在緊急斷電(EPO)之后在無(wú)需在盤上的保留位置頻繁備份全部間接性地址表的情況下恢復(fù)LBA到PBA的間接性地址表映射。本發(fā)明的實(shí)施例周期性地存儲(chǔ)間接性地址表(IAT)快照并且然后沿著具有寫入了用戶數(shù)據(jù)的實(shí)際扇區(qū)的相同軌道(或附近軌道)存儲(chǔ)在快照之間的增量地址·元數(shù)據(jù)更新信息,其可以稱為累加變量增量列表(Cumulative Delta List)。這消除了需要對(duì)盤上的保留的元數(shù)據(jù)區(qū)域和來(lái)自盤上的保留的元數(shù)據(jù)區(qū)域的附加尋找來(lái)保存IAT的問(wèn)題??梢岳脤?duì)在E區(qū)域中的用戶數(shù)據(jù)的臨時(shí)存儲(chǔ)或分段而使用的環(huán)形緩沖技術(shù)來(lái)使用本發(fā)明。IAT快照和累加變量增量列表基于I/O操作(例如,在預(yù)定數(shù)量的寫入之后)周期性地寫入到介質(zhì)。累加變量增量列表(⑶L)可以在IAT快照之間寫入多次并且每個(gè)⑶L通過(guò)唯一標(biāo)識(shí)符鏈接到最后的快照。每個(gè)⑶L僅包括自最后一次保存⑶L以來(lái)的地址變量增量(Delta)。在本發(fā)明的實(shí)施例中,當(dāng)探測(cè)到即將來(lái)臨的斷電時(shí),覆蓋了 IAT更新但是還沒(méi)有寫入到盤的當(dāng)前的累加變量增量列表被保存到預(yù)定的非易失性存儲(chǔ)器(諸如閃存)。與一組累加變量增量列表組合的IAT快照提供當(dāng)緊急的斷電之后恢復(fù)電源時(shí)重新創(chuàng)建當(dāng)前的間接性地址表所需的信息。在緊急的斷電之后驅(qū)動(dòng)器的上電例程通過(guò)找到寫入到介質(zhì)的最后的IAT快照并且然后使用寫入在盤上的相應(yīng)組的累加變量增量列表和寫入到閃存的最后一個(gè)來(lái)更新最后的IAT快照,從而更新間接性地址表。在一個(gè)實(shí)施例中,累加變量增量列表寫入到使用整個(gè)數(shù)據(jù)塊的標(biāo)準(zhǔn)用戶數(shù)據(jù)塊(例如扇區(qū))區(qū)域。包含了累加變量增量列表的扇區(qū)散布在用戶數(shù)據(jù)扇區(qū)中。注意到由設(shè)備對(duì)于其元數(shù)據(jù)使用的扇區(qū)不具有在IAT中分配的LBA,并且因此在正常操作中對(duì)于主機(jī)是不可見(jiàn)的。在替換的實(shí)施例中,累加變量增量列表通過(guò)在編碼地址間接性映射和最后的快照ID的設(shè)備的扇區(qū)中包括元數(shù)據(jù)而被排除。
圖I示出了按照本發(fā)明實(shí)施例的具有間接性系統(tǒng)的數(shù)據(jù)存儲(chǔ)設(shè)備。圖2示出了如按照本發(fā)明實(shí)施例所使用的介質(zhì)上的環(huán)形緩沖。圖3示出了按照本發(fā)明實(shí)施例的累加變量增量列表的內(nèi)容。圖4示出了按照本發(fā)明的替換實(shí)施例的包括了時(shí)間戳的累加變量增量列表的內(nèi)容。
圖5A示出了按照本發(fā)明的替換實(shí)施例的扇區(qū)元數(shù)據(jù)結(jié)構(gòu)的內(nèi)容。圖5B示出了按照本發(fā)明的替換實(shí)施例的包括了時(shí)間戳的扇區(qū)元數(shù)據(jù)結(jié)構(gòu)的內(nèi)容。圖6示出了按照本發(fā)明的實(shí)施例的寫入IAT快照和⑶L的方法。圖7示出了按照本發(fā)明的實(shí)施例的使用IAT快照和⑶L在緊急斷電之后來(lái)重建IAT的方法。
具體實(shí)施例方式圖I示出了按照本發(fā)明實(shí)施例的使用具有包括單一間接性地址表(ΙΑ 17的間接性系統(tǒng)16的SMR的數(shù)據(jù)存儲(chǔ)設(shè)備(DSD) 10。主機(jī)發(fā)送讀寫命令,所述命令參考標(biāo)準(zhǔn)邏輯塊 地址(LBA)。在典型的SMR驅(qū)動(dòng)架構(gòu)中,LBA可以分配給E區(qū)域或I區(qū)域,其使得任務(wù)間接性映射復(fù)雜化。在實(shí)際應(yīng)用中期望對(duì)于維持間接性表的問(wèn)題的不同方法。例如,一種方法是保持兩個(gè)間接性表將LBA映射到E區(qū)域或映射到I區(qū)域的一個(gè)表和將LBA映射到在I區(qū)域內(nèi)部的I軌道的第二個(gè)表。在此描述的本發(fā)明的實(shí)施例允許在包括了使用多個(gè)表的間接性表管理的各種方法之中寫入內(nèi)嵌(inline)用戶數(shù)據(jù)的間接性表信息。然而,在所述的實(shí)施例中,僅參考一個(gè)間接性表。附加的表可以按照類似的方式來(lái)處理或者可以使用完全不同的方法來(lái)存儲(chǔ)。例如,如果表之一由于其覆蓋E區(qū)域而更頻繁地更新,其可以按照本發(fā)明來(lái)處理,而不那么頻繁地更新的第二個(gè)表可以使用需要更多開(kāi)銷的方法來(lái)處理。間接性系統(tǒng)16將LBA翻譯到用于設(shè)備內(nèi)部使用的物理塊地址(PBA)中。間接性系統(tǒng)16例如可以作為功能組件在DSD 10的控制器部分中實(shí)現(xiàn)。間接性系統(tǒng)16除了在此描述的之外按照現(xiàn)有技術(shù)工作,并且間接性系統(tǒng)執(zhí)行現(xiàn)有技術(shù)功能的方面沒(méi)有示出。在設(shè)備正常操作期間,對(duì)應(yīng)于LBA的當(dāng)前的PBA在RAM中的間接性地址表(IAT) 17中找到。如上面所述,IAT隨著在SMR驅(qū)動(dòng)器中的每個(gè)寫入操作而改變。因?yàn)樵赗AM中的IAT當(dāng)斷電時(shí)遭受損失。然而,間接性地址表(IAT)的內(nèi)容必須在緊急的斷電之后從永久的介質(zhì)恢復(fù),否則的話數(shù)據(jù)永久丟失。在盤上的保留位置處全部間接性地址表的頻繁備份不是現(xiàn)實(shí)的解決方案,因?yàn)楦郊拥腎/O會(huì)導(dǎo)致差的性能。在SMR寫入中包括元數(shù)據(jù)寫入,其應(yīng)當(dāng)對(duì)于最佳性能順序化。本發(fā)明允許IAT元數(shù)據(jù)在軌道上與用戶數(shù)據(jù)一起寫入E區(qū)域中,用戶數(shù)據(jù)在寫入到I區(qū)域之前臨時(shí)存儲(chǔ)在E區(qū)域中。在SMR中每個(gè)盤表面典型地具有專門用作E區(qū)域的至少一個(gè)軌道帶。這批軌道將組織到I區(qū)域中。本發(fā)明的實(shí)施例沿著與寫入了用戶數(shù)據(jù)的實(shí)際扇區(qū)相同軌道(或附近的軌道)將間接性地址表(IAT)快照17A、17B存儲(chǔ)在E區(qū)域中,并且因此允許與一般E區(qū)域使用的有效集成。盤12A、12B上的多個(gè)同心軌道沒(méi)有示出并且除了此處描述的之外按照現(xiàn)有技術(shù)。間接性地址表(IAT)快照是此時(shí)的當(dāng)前IAT的副本。唯一 IAT快照ID (未示出)包括在每個(gè)快照中從而在恢復(fù)處理期間可以識(shí)別最后一個(gè)快照。IAT快照ID可以是計(jì)數(shù)器,該計(jì)數(shù)器具有足夠大的范圍以避免在舊的和新的快照之間的混淆。范圍應(yīng)當(dāng)覆蓋在寫入盤上的全部迭瓦式I區(qū)域的時(shí)間中執(zhí)行的快照的數(shù)量。盡管僅要求IAT的單個(gè)快照復(fù)制,如示出的在不同盤12A、12B上做出兩個(gè)或多個(gè)副本具有當(dāng)副本之一由于包括磁頭或整個(gè)盤表面的損失的任何原因而不可恢復(fù)時(shí)提供冗余的優(yōu)點(diǎn)。存儲(chǔ)間接性結(jié)構(gòu)的多個(gè)副本可以允許設(shè)備利用剩余的未損壞數(shù)據(jù)合適地操作。通過(guò)即使在不具有允許同時(shí)寫入到兩個(gè)盤的多個(gè)通道的設(shè)備的典型情況下切換磁頭,額外的副本可以有效地寫入到附加的盤上的E區(qū)域中。如上所述,由設(shè)備執(zhí)行的下一個(gè)寫入操作將不反應(yīng)在最后的快照中。因此,當(dāng)執(zhí)行每個(gè)附加寫入操作時(shí)介質(zhì)上的快照落在當(dāng)前IAT后面。不是對(duì)于每個(gè)寫入操作重新寫入整個(gè)IAT (其可能是相當(dāng)大的),本發(fā)明創(chuàng)建并周期性地寫入在快照之間的增量元數(shù)據(jù)更新信息。增量更新信息被稱為累加變量增量列表(CDL)18,其保存在RAM中。在那里多個(gè)CDL可以在IAT快照之間寫入到介質(zhì)。⑶L的最大尺寸確定了寫入的頻度。每個(gè)⑶L寫入通過(guò)包括IAT快照ID而鏈接到最后的IAT快照。每個(gè)⑶L寫入如果其是快照之后的第一⑶L則由于最后的⑶L寫入或由于IAT快照而包括地址變量增量。IAT快照寫入到介質(zhì)的頻率是實(shí)現(xiàn)本發(fā)明時(shí)的設(shè)計(jì)選擇。快照頻率隱含了在散布的實(shí)施例中在EPO恢復(fù)時(shí)間和分配給CDL存儲(chǔ)的存儲(chǔ)量之間的折衷。在一個(gè)實(shí)施例中,快照寫入在寫入操作的選擇的數(shù)量之后觸發(fā)。類似地,在CDL中變量增量的數(shù)量是具有折衷的設(shè)計(jì)選擇。寫入直到CDL變量增量寫入為止才進(jìn)行,從而更大的CDL隱含能夠存在的未 執(zhí)行的寫入的更高的最大數(shù)量。盡管本發(fā)明與E區(qū)域架構(gòu)的環(huán)形緩沖實(shí)施例兼容,但是本發(fā)明不要求使用環(huán)形緩沖。因?yàn)楸景l(fā)明允許IAT快照和CDL與用戶數(shù)據(jù)內(nèi)嵌地寫入,所以可以利用其他E區(qū)域結(jié)構(gòu)來(lái)使用本發(fā)明。圖2示出如按照本發(fā)明的實(shí)施例所使用的在E區(qū)域中在介質(zhì)上的環(huán)形緩沖21。環(huán)形緩沖的頭和尾指針的管理根據(jù)現(xiàn)有技術(shù)。“安全寫入”25是寫入到介質(zhì)軌道的一系列用戶數(shù)據(jù)扇區(qū)。在安全寫入之后,寫入IAT快照17A。正是快照的寫入使得通過(guò)記錄包括了用于這些寫入的PBA-LBA映射的IAT快照而使得之前的寫入“安全”。“未執(zhí)行的寫入” 26是在IAT快照之后做出的用戶數(shù)據(jù)寫入。保存在RAM中的⑶L 18當(dāng)每個(gè)寫入發(fā)生時(shí)更新。環(huán)形緩沖中的⑶L 18A在一系列“未執(zhí)行的寫入” 26之后寫入并且包含用于每個(gè)未執(zhí)行的寫入的變量增量ID項(xiàng)。在該實(shí)施例中,CDL當(dāng)變量增量ID的數(shù)量達(dá)到預(yù)定的數(shù)量時(shí)寫入,該數(shù)量例如填充分配的RAM空間(緩沖)。如果IAT快照如上所述寫入到多個(gè)盤上,則⑶L 18A、18B也應(yīng)當(dāng)寫入到多個(gè)盤上。圖3示出了按照本發(fā)明的實(shí)施例當(dāng)寫入到介質(zhì)時(shí)累加變量增量列表(CDL) 18A的內(nèi)容。當(dāng)IAT快照保存在介質(zhì)上時(shí),⑶L的變量增量ID部分33、34復(fù)位為空并且記錄用于保存的快照的IAT快照ID 32。⑶L通過(guò)ID固有地綁定到最后的IAT快照。環(huán)形緩沖可以足夠大以使得多個(gè)快照和CDL可以在介質(zhì)上存在,因?yàn)橹暗目煺諞](méi)有自動(dòng)擦除。因此,后面的EPO恢復(fù)處理必須具有一種方式來(lái)告訴最后的快照和來(lái)自較早的快照的關(guān)聯(lián)的CDL。記錄在IAT快照和⑶L服務(wù)器兩者中的IAT快照ID用于該目的。IAT快照ID順序必須是清楚的從而在EPO之后的恢復(fù)例程可以告訴哪個(gè)ID是最近的。實(shí)現(xiàn)ID的一種方式是使得其成為單調(diào)遞增的計(jì)數(shù)器,然后在上電恢復(fù)例程期間,無(wú)論何時(shí)ID下降時(shí)固件可以停止讀取快照和⑶L數(shù)據(jù),這是已經(jīng)達(dá)到在環(huán)形緩沖中最近的數(shù)據(jù)的信號(hào)。在列表33、34中的每個(gè)變量增量ID包括對(duì)于正在記錄的具體的寫入命令更新IAT需要的三條信息,它們是開(kāi)始LBA、開(kāi)始PBA和扇區(qū)數(shù)量。每個(gè)變量增量ID例如可以是6字節(jié)。具有多個(gè)變量增量ID的CDL的最大尺寸可以限制為其可以包含在一個(gè)扇區(qū)內(nèi)。開(kāi)始LBA/PBA字段可以不必是全部LBA/PBA地址,由于間接性可以限制(例如,驅(qū)動(dòng)分區(qū)為獨(dú)立部分并且僅需要在部分內(nèi)的偏移)。在間接性映射的一些實(shí)施例中,需要時(shí)間戳來(lái)確定哪個(gè)變量增量ID是最近的。因此,在圖4中示出的CDL的實(shí)施例中包括了附加的字段,時(shí)間戳計(jì)數(shù)器35。在本發(fā)明的一些實(shí)施例中,給定LBA的變量增量ID限制為僅存在于當(dāng)前迭瓦式區(qū)域中從而LBA的有效位置出現(xiàn)在快照點(diǎn)之后的最后的變量增量ID中。然而,在一些實(shí)施例中不施加該限制,并且需要時(shí)間戳來(lái)確定哪個(gè)變量增量ID是最近的。例如當(dāng)存在兩個(gè)間接性表時(shí)可能需要該時(shí)間戳,所述兩個(gè)間接性表包括了將LBA映射到E區(qū)域或到I軌道的一個(gè)表;和將I軌道映射到在I區(qū)域內(nèi)的位置的一個(gè)表。對(duì)于第一個(gè)表,變量增量可以存儲(chǔ)在任何位置,而用于第二個(gè)表的變量增量可以潛在地存儲(chǔ)在I軌道區(qū)域中。以下參考圖6描述按照本發(fā)明的實(shí)施例用于通過(guò)設(shè)備從主機(jī)接收的寫入命令的典型寫入操作的示例序列,所述圖6示出了按照本發(fā)明的實(shí)施例寫入IAT快照和CDL的方法。LBA由主機(jī)定義并且包括在被發(fā)送到設(shè)備的命令中。PBA由設(shè)備確定。在RAM中的IAT對(duì)于與寫入操作61關(guān)聯(lián)的LBA和PBA被更新。變量增量ID項(xiàng)對(duì)于該寫入操作62添加到 RAM中的累加變量增量列表中。對(duì)于寫入命令由主機(jī)提供的數(shù)據(jù)寫入到介質(zhì)上的PBA,但是“未執(zhí)行”。變量增量和快照計(jì)數(shù)器是遞增的63。如果已經(jīng)達(dá)到IAT快照計(jì)數(shù)器觸發(fā)點(diǎn)64,則IAT快照(其將包括變量增量)與快照ID —起寫入并且快照計(jì)數(shù)器復(fù)位66。RAM中的累加變量增量列表現(xiàn)在是過(guò)時(shí)的,因此其復(fù)位以剛好包含快照ID并且不包含變量增量67。如果沒(méi)有觸發(fā)IAT快照,則對(duì)于選擇的最大值68檢查變量增量計(jì)數(shù)器,并且如果達(dá)到了,則累加變量增量列表(CDL)寫入到介質(zhì),變量增量ID復(fù)位為空并且變量增量計(jì)數(shù)器設(shè)置為零。注意到,用于⑶L的IAT快照ID當(dāng)⑶L寫入到介質(zhì)時(shí)不改變。在IAT快照之間可以有多個(gè)⑶L寫入并且這些⑶L中的每個(gè)包含相同的IAT快照ID。在本發(fā)明的實(shí)施例中,當(dāng)設(shè)備檢測(cè)到即將來(lái)臨的功率損失(斷電)時(shí),RAM中的CDL(其覆蓋了自從最后元數(shù)據(jù)(所述元數(shù)據(jù)可以是IAT快照或最后CDL寫入)寫入以來(lái)的任何更新)保存到預(yù)定的非易失性存儲(chǔ)器(諸如圖I中的閃存19)。每個(gè)CDL固有地小于IAT并且可以通過(guò)更頻繁地寫入到盤而保持尺寸下降。用于EPO存儲(chǔ)所需的閃存的尺寸相對(duì)小,由于其僅需要保持最后的⑶L。由此,在即將來(lái)臨的EPO條件下為寫入⑶L所需的時(shí)間也少。相對(duì)地,IAT的尺寸是I軌道的整個(gè)數(shù)目和E區(qū)域的尺寸的函數(shù),而不是例如簡(jiǎn)單的每扇區(qū)的字節(jié)數(shù)??梢云谕麑?shí)際的SMR設(shè)備具有至少幾十兆字節(jié)的量級(jí)的IAT。圖7示出了按照本發(fā)明的實(shí)施例在緊急斷電之后使用IAT快照和⑶L來(lái)重建IAT的方法。與可能的多個(gè)累加變量增量列表的組結(jié)合的最后的IAT快照提供當(dāng)在緊急斷電之后電源恢復(fù)時(shí)重建當(dāng)前的間接性地址表所需的信息。上電例程可以在需要時(shí)讀取整個(gè)環(huán)形緩沖以找到最后的IAT快照71和后來(lái)的CDL 72,如果存在的話。IAT快照ID用來(lái)從可能仍然存在與環(huán)形緩沖中的舊的快照中識(shí)別最后的快照。如果上電例程讀取具有比從緩沖讀取的之前一個(gè)更舊的ID的IAT快照,則例程知道已經(jīng)找到了最后的IAT快照。⑶L的相應(yīng)的組將包含IAT快照ID并且將跟隨在環(huán)形緩沖中的最后的IAT快照。此外,上電例程必須讀取如上所述寫入到閃存的最終EPO⑶L 73。一旦上電例程具有最后的IAT快照,則IAT通過(guò)使用在每個(gè)CDL中的變量增量ID而更新以獲得當(dāng)前的IAT 74。當(dāng)然,可以在快照或CDL寫入之后在已經(jīng)做出任何新的變量增量ID項(xiàng)之前立即發(fā)生ΕΡ0。在這種情況下EPO⑶L將不包含任何變量增量ID。還可以,在任何⑶L已經(jīng)寫入到盤之前發(fā)生EPO。如果在盤上或在閃存中都沒(méi)有CDL,則IAT快照表示沒(méi)有所需的任何更新的當(dāng)前IAT。在本發(fā)明的一個(gè)替換實(shí)施例中,包括映射LBA和PBA的元數(shù)據(jù)作為扇區(qū)格式的部分,并且這不必保存和寫入⑶L。IAT快照仍然如上所述創(chuàng)建。該實(shí)施例的一個(gè)優(yōu)點(diǎn)是,不需要具有CDL的寫入扇區(qū),因?yàn)樯葏^(qū)元數(shù)據(jù)用作變量增量ID的角色。跟隨快照寫入的每個(gè)扇區(qū)固有地包含在前面的快照中更新IAT所需的元數(shù)據(jù)以包括順序?qū)懭氲纳葏^(qū)。對(duì)于該實(shí)施例,在EPO之后的上電例程如上所述找到最后的IAT快照,但是沒(méi)有找到⑶L。代替⑶L,例程讀取在包含用于在環(huán)形緩沖中的最后的快照的快照ID的每個(gè)PBA (扇區(qū))。元數(shù)據(jù)中的對(duì)應(yīng)于PBA的LBA然后用來(lái)在最后的快照中更新IAT到當(dāng)前狀態(tài)。用于本發(fā)明的實(shí)施例的扇區(qū)元數(shù)據(jù)41A在圖5A中示出。額外的元數(shù)據(jù)延長(zhǎng)扇區(qū)的物理尺寸一些字節(jié),例如4字節(jié)。明確地存儲(chǔ)的元數(shù)據(jù)41A在該實(shí)施例中包括最后的IAT快照ID 42和LBA 44。需要IAT快照ID來(lái)區(qū)分執(zhí)行的和未執(zhí)行的寫入。用于本發(fā)明的實(shí)施例的扇區(qū)元數(shù)據(jù)41B的替換實(shí)施例在圖5B中示出。扇區(qū)元數(shù)據(jù)41B包括了時(shí)間戳計(jì)數(shù)器43,其用作與上面討論的替換CDL中的時(shí)間戳計(jì)數(shù)器相同的功能。如果在相同的LBA上·的IAT更新可以在另一迭瓦式區(qū)域,例如如上所述的I軌道區(qū)域中出現(xiàn),則需要時(shí)間戳計(jì)數(shù)器43。對(duì)于在介質(zhì)上每個(gè)扇區(qū)隱含地通過(guò)設(shè)備知道PBA,由于PBA是實(shí)際的物理地址。無(wú)需定義扇區(qū)的數(shù)量,該數(shù)量固有地是一個(gè)。除了包括在扇區(qū)架構(gòu)中的任何其他元數(shù)據(jù)之外,可以明確地存儲(chǔ)LBA元數(shù)據(jù)?,F(xiàn)有技術(shù)的扇區(qū)格式包括以ECC字節(jié)的形式的元數(shù)據(jù),其典型地跟隨在介質(zhì)上的物理扇區(qū)中的用戶數(shù)據(jù)。LBA元數(shù)據(jù)例如還可以通過(guò)用作ECC編碼的種子而編碼為ECC字節(jié)。折衷是存儲(chǔ)明確存儲(chǔ)的LBA元數(shù)據(jù)在格式效率上花費(fèi)一些額外字節(jié),而使用其作為ECC種子通過(guò)縮小ECC容量而犧牲可靠性。
權(quán)利要求
1.一種操作具有將LBA映射到PBA的間接性地址表的數(shù)據(jù)存儲(chǔ)設(shè)備的方法,該方法包括 周期性地寫入與盤上的緩沖中寫入的用戶數(shù)據(jù)內(nèi)嵌的盤上的間接性地址表的快照,每個(gè)快照包括快照ID,所述快照ID從較早快照中標(biāo)識(shí)了最后快照;并且 在寫入每個(gè)快照之后,做出包含了對(duì)間接性地址表的后續(xù)改變的變量增量列表,并且將變量增量列表周期性地寫入到盤上的緩沖,每個(gè)變量增量列表包括標(biāo)識(shí)最后快照的快照ID0
2.根據(jù)權(quán)利要求I所述的方法,進(jìn)一步包括在緊急斷電之后電源恢復(fù)后采取的動(dòng)作 讀取緩沖以找到間接性地址表的最后快照和最后快照ID ; 讀取在緩沖中包括最后快照ID的每個(gè)變量增量列表;以及 使用對(duì)記錄在變量增量列表中的間接性地址表的改變,來(lái)更新在最后快照中的間接性地址表。
3.根據(jù)權(quán)利要求I所述的方法,進(jìn)一步包括當(dāng)檢測(cè)到緊急的斷電時(shí)將變量增量列表保存到預(yù)定的非易失性存儲(chǔ)器。
4.根據(jù)權(quán)利要求3所述的方法,進(jìn)一步包括在緊急斷電之后電源恢復(fù)后采取的動(dòng)作 讀取緩沖以找到間接性地址表的最后快照和最后快照ID ; 讀取緩沖中包括了最后快照ID的每個(gè)變量增量列表; 讀取在預(yù)定的非易失性存儲(chǔ)器中的變量增量列表;并且 使用對(duì)記錄在變量增量列表中的間接性地址表的改變,更新在最后快照中的間接性地址表。
5.根據(jù)權(quán)利要求I所述的方法,其中,將變量增量列表周期性地寫入到盤上的緩沖進(jìn)一步包括使用所有的數(shù)據(jù)塊將變量增量列表寫入用戶數(shù)據(jù)塊區(qū)域中。
6.根據(jù)權(quán)利要求I所述的方法,其中,周期性地寫入間接性地址表的快照進(jìn)一步包括使用寫入操作的計(jì)數(shù)作為用于寫入快照的觸發(fā)。
7.根據(jù)權(quán)利要求I所述的方法,其中,所述數(shù)據(jù)存儲(chǔ)設(shè)備是迭瓦式磁記錄(SMR)設(shè)備并且所述緩沖是盤上的E區(qū)域中的環(huán)形緩沖。
8.根據(jù)權(quán)利要求I所述的方法,其中,所述變量增量列表中的每個(gè)項(xiàng)包括時(shí)間戳。
9.一種操作具有將LBA映射到PBA的間接性地址表的數(shù)據(jù)存儲(chǔ)設(shè)備的方法,該方法包括 周期性地寫入與在盤上的緩沖中寫入的用戶數(shù)據(jù)內(nèi)嵌的盤上的間接性地址表的快照,每個(gè)快照包括快照ID,所述快照ID從較早快照中標(biāo)識(shí)了最后快照;并且 將每個(gè)PBA中的元數(shù)據(jù)順序?qū)懭刖彌_中,其識(shí)別與PBA對(duì)應(yīng)的LBA并且包含用于最后快照的快照ID。
10.根據(jù)權(quán)利要求9所述的方法,進(jìn)一步包括在緊急斷電之后電源恢復(fù)后采取的動(dòng)作 讀取緩沖以找到間接性地址表的最后快照和最后快照ID ; 讀取在緩沖中包括了最后快照ID的具有相應(yīng)的LBA的PBA的組;以及 更新在最后快照中的間接性地址表以將相應(yīng)的LBA映射到PBA的組中的PBA。
11.根據(jù)權(quán)利要求9所述的方法,其中,周期性地寫入間接性地址表的快照進(jìn)一步包括使用寫入操作的計(jì)數(shù)作為用于寫入快照的觸發(fā)。
12.根據(jù)權(quán)利要求9所述的方法,其中,所述數(shù)據(jù)存儲(chǔ)設(shè)備是迭瓦式磁記錄(SMR)設(shè)備并且所述緩沖是盤上的E區(qū)域中的環(huán)形緩沖。
13.一種使用迭瓦式磁記錄的數(shù)據(jù)存儲(chǔ)設(shè)備,包括 將LBA映射到PBA的間接性地址表; 在盤表面上在磁介質(zhì)中的緩沖,包含用戶數(shù)據(jù)和與用戶數(shù)據(jù)內(nèi)嵌的間接性地址表的至少一個(gè)快照,所述快照包括快照ID ;和 間接性系統(tǒng),其將具有快照ID的間接性地址表的快照周期性地寫入到緩沖,所述快照ID從較早快照中標(biāo)識(shí)了最后快照。
14.根據(jù)權(quán)利要求13所述的數(shù)據(jù)存儲(chǔ)設(shè)備,其中,所述間接性系統(tǒng)做出包含了在每個(gè)快照寫入之后對(duì)間接性地址表的后續(xù)改變的變量增量列表,并且將變量增量列表周期性地寫入到盤上的緩沖,每個(gè)變量增量列表包括標(biāo)識(shí)了最后快照的快照ID。
15.根據(jù)權(quán)利要求14所述的數(shù)據(jù)存儲(chǔ)設(shè)備,進(jìn)一步包括當(dāng)檢測(cè)到即將來(lái)臨的緊急斷電時(shí)用于存儲(chǔ)變量增量列表的閃存。
16.根據(jù)權(quán)利要求15所述的數(shù)據(jù)存儲(chǔ)設(shè)備,其中,所述間接性系統(tǒng)通過(guò)讀取緩沖以找到間接性地址表的最后快照和最后的快照ID ;讀取在緩沖中包含了最后快照ID的每個(gè)變量增量列表;讀取閃存中的變量增量列表并使用對(duì)記錄在變量增量列表中的間接性地址表的改變來(lái)更新最后快照中的間接性地址表,而在緊急斷電之后重建間接性地址表。
17.根據(jù)權(quán)利要求14所述的數(shù)據(jù)存儲(chǔ)設(shè)備,其中,所述變量增量列表中的每項(xiàng)包括時(shí)間戳。
18.根據(jù)權(quán)利要求14所述的數(shù)據(jù)存儲(chǔ)設(shè)備,其中,所述變量增量列表寫入使用所有的數(shù)據(jù)塊的用戶數(shù)據(jù)塊區(qū)域中。
19.根據(jù)權(quán)利要求13所述的數(shù)據(jù)存儲(chǔ)設(shè)備,其中,緩沖中的每個(gè)PBA包括標(biāo)識(shí)與PBA相應(yīng)的LBA并包含用于最后快照的快照ID的元數(shù)據(jù)。
20.根據(jù)權(quán)利要求13所述的數(shù)據(jù)存儲(chǔ)設(shè)備,其中,所述緩沖是在盤上E區(qū)域中的環(huán)形緩沖。
全文摘要
描述了一種方法,該方法允許磁盤驅(qū)動(dòng)器,諸如迭瓦寫入式記錄(SMR)驅(qū)動(dòng)器在緊急斷電(EPO)之后恢復(fù)將LBA映射到PBA的間接性地址表。間接性地址表(IAT)快照與用戶數(shù)據(jù)存儲(chǔ)內(nèi)嵌地周期性地寫入,并且在一個(gè)實(shí)施例中具有增量地址更新信息的累加變量增量列表(CDL)存儲(chǔ)在快照之間。在本發(fā)明的實(shí)施例中,當(dāng)檢測(cè)到即將來(lái)臨的斷電時(shí),覆蓋了IAT更新但還沒(méi)有寫入到盤的當(dāng)前CDL保存到非易失性存儲(chǔ)器。與CDL的組結(jié)合的IAT快照提供在緊急斷電之后恢復(fù)電源時(shí)重建當(dāng)前的間接性地址表所需的信息。在一個(gè)替換的實(shí)施例中CDL通過(guò)包括在編碼地址間接性映射和最后快照ID的扇區(qū)中的元數(shù)據(jù)而被排除。
文檔編號(hào)G06F12/08GK102841855SQ20121016283
公開(kāi)日2012年12月26日 申請(qǐng)日期2012年5月23日 優(yōu)先權(quán)日2011年5月23日
發(fā)明者Z.Z.班迪克, Y.卡蘇托, J.D.科克, C.古約特, M.桑維多 申請(qǐng)人:日立環(huán)球儲(chǔ)存科技荷蘭有限公司