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

用于進行帶有注釋的原子寫入操作的方法和裝置的制造方法_2

文檔序號:9893563閱讀:來源:國知局
化物-氧化物-硅(“S0N0S”)、電阻式隨機存取存儲器(“RRAM” )、可編程金屬化單元(“PMC” )、導(dǎo)電橋接RAM( “CBRAM” )等。在一些實施例中,存儲庫134可以包括多個不同類型的固態(tài)存儲介質(zhì)。
[0034]在其他實施例中,存儲裝置130可以被實施為使得它們包含易失性存儲器。從而,存儲庫134可以對應(yīng)于任何適合的易失性存儲器,包括但不限于:如RAM、動態(tài)RAM(DRAM)^態(tài)RAM(SRAM)、同步動態(tài)RAM(SDRAM)等。盡管獨立于處理器單元110示出,但在一些實施例中,存儲裝置130可以對應(yīng)于處理器單元110內(nèi)的存儲器,如在處理器單元110內(nèi)的一個或多個緩存級別(例如,L1、L2、L3等)。
[0035]總之,本文將要描述與存儲裝置130有關(guān)的各種功能。此類功能可用于任何適合形式的存儲器,包括非易失性形式以及易失性形式。從而,盡管本文在非易失性存儲器陣列的上下文中描述了驅(qū)動器126的具體實施例,但是驅(qū)動器126還可以應(yīng)用于其他記錄介質(zhì),如易失性存儲器和其他類型的非易失性存儲器,尤其是包括回收過程的那些存儲器。
[0036]在一個實施例中,控制器132被配置為用于管理存儲裝置130的操作。因此,控制器132可以促進在指定地址(例如,如以下所討論的“物理地址”)處執(zhí)行讀取操作,包括選擇適當?shù)膸?34并且訪問這些庫內(nèi)的適合單元內(nèi)的數(shù)據(jù)??刂破?32可以促進寫入操作的執(zhí)行,包括對具體單元的編程??刂破?32還可以執(zhí)行準備操作以準許對存儲裝置130的后續(xù)寫入,如在一個實施例中,擦除多個單元塊以備后續(xù)再次使用。(對單元塊進行編程和擦除的周期可以被稱為“PE周期”。)在一些實施例中,控制器132實現(xiàn)單獨的讀取數(shù)據(jù)管道和寫入數(shù)據(jù)管道以便并行地執(zhí)行讀取操作和寫入操作。在一個實施例中,控制器132還被配置為用于在互連器140上與驅(qū)動器126(下文進行討論)進行通信。例如,在一些實施例中,控制器132通過由DAM控制器協(xié)調(diào)的直接存儲器訪問(DMA)事務(wù)來傳送用于讀取操作和寫入操作的信息。因此,控制器132可以支持任何適合的互連器類型,如外部設(shè)備互連(PCI)、PCIEXpreSS(PC1-e)、串行高級技術(shù)附件(串行ATA或SATA)、并行ATA(PATA)、小型計算機系統(tǒng)接口(SCSI)、IEEE 1394(火線)、光纖信道、通用串行總線(USB)等。在一些實施例中,控制器132還可以執(zhí)行其他操作,如錯誤校驗、數(shù)據(jù)壓縮、加密和解密、數(shù)據(jù)包組裝和分解等。
[0037]在各個實施例中,存儲裝置130被組織為日志結(jié)構(gòu)的存儲設(shè)備。如本文所使用的,術(shù)語“日志結(jié)構(gòu)”是指數(shù)據(jù)在存儲介質(zhì)上的安排,在該存儲介質(zhì)中,使用追加指針來確定數(shù)據(jù)存儲的位置;在存儲數(shù)據(jù)時,追加指針通過“地址空間”依序前移。日志結(jié)構(gòu)存儲設(shè)備僅僅是使用日志結(jié)構(gòu)所組織的一種存儲裝置。日志結(jié)構(gòu)的使用還意味著元數(shù)據(jù)連同數(shù)據(jù)一起被存儲,以便準許將存儲裝置130恢復(fù)到先前的狀態(tài)(即,“日志檢查點”)??梢詧?zhí)行這種恢復(fù)以便例如在發(fā)生斷電時促進故障修復(fù),從而在發(fā)生數(shù)據(jù)損壞等時恢復(fù)上一個已知的有效狀態(tài)。如本文所使用的,術(shù)語“地址空間”是指可以用于指定在存儲裝置中的數(shù)據(jù)的地址范圍(即,一個或多個地址的集合)。如以下將要描述的,日志結(jié)構(gòu)存儲設(shè)備可以同時具有邏輯地址空間和物理地址空間。術(shù)語“邏輯地址空間”是指由較高級別進程(例如,應(yīng)用程序122和OS 124)所感知的地址空間,盡管這種地址空間可能并不代表實際上如何在存儲裝置130的物理介質(zhì)上組織數(shù)據(jù)或高級進程實際使用的、為其預(yù)留的或分配的物理地址位置的實際數(shù)量。相比而言,術(shù)語“物理地址空間”是指較低級別進程所使用的地址空間并且可以指示如何在存儲裝置130的物理介質(zhì)上組織數(shù)據(jù)以及較高級別進程正在使用的物理地址位置的實際數(shù)量。分別結(jié)合圖3A和3B對邏輯地址空間和物理地址空間的實施例進行更為詳細的討論。結(jié)合圖3C對邏輯結(jié)構(gòu)的一個實施例進行討論。
[0038]在各個實施例中,使用日志結(jié)構(gòu)可以準許在對數(shù)據(jù)進行寫入、修改和重新寫入到存儲器時使數(shù)據(jù)集的多個實例出現(xiàn)在存儲裝置130中。作為在物理地址空間中對數(shù)據(jù)進行跟蹤的一部分,可以將已存儲數(shù)據(jù)的舊實例(即,不是當前實例的那些實例)標記為無效。例如,在一個實施例中,當要對一個值進行更新時,可以在由當前追加指針所指定的存儲塊處(而不是在先前存儲該值的位置處)寫入該值。響應(yīng)于寫入操作成功執(zhí)行,該值的任何先前所存儲的實例都可以被標記為無效。如本文所使用的,術(shù)語“無效”是指不再需要由系統(tǒng)存儲的數(shù)據(jù)(例如,因為存在該數(shù)據(jù)的更加新的備份)。類似地,術(shù)語“使無效”是指將數(shù)據(jù)標記為無效(例如,以數(shù)據(jù)結(jié)構(gòu)來存儲記錄)。使無效還可以指當數(shù)據(jù)的先前實例存在于存儲裝置130上時將該數(shù)據(jù)的實例寫入存儲裝置130(通過寫入新的實例來淘汰后一實例)。
[0039]在一個實施例中,OS124實現(xiàn)文件系統(tǒng)以通過應(yīng)用程序122來促進對數(shù)據(jù)的檢索。如本文所使用的,術(shù)語“應(yīng)用程序”(或“進程”)通常是指可由一個或多個進程執(zhí)行的程序指令集。應(yīng)用程序的示例可以包括例如OS 124、文件系統(tǒng)管理器、數(shù)據(jù)庫管理系統(tǒng)(DBMS)、用戶空間庫、驅(qū)動器(例如,驅(qū)動器126、過濾器驅(qū)動器、獨立磁盤冗余陣列(RAID)驅(qū)動器等)等。在所展示的實施例中,應(yīng)用程序122是用戶級應(yīng)用程序。術(shù)語“用戶級”用于描述不負責(zé)對計算機系統(tǒng)的管理的應(yīng)用程序。用戶級應(yīng)用程序的示例可以包括例如文字處理應(yīng)用程序、網(wǎng)頁瀏覽器等。用戶級應(yīng)用程序與管理計算機系統(tǒng)的運行的內(nèi)核級(或系統(tǒng)級)應(yīng)用程序形成對比。內(nèi)核級應(yīng)用程序的示例可以包括例如操作系統(tǒng)、驅(qū)動器、管理程序等。在一個實施例中,OS 124可以通過用戶級應(yīng)用程序來限制對計算機系統(tǒng)100的某些功能(例如,文件、地址、硬件等)的訪問;然而,對于內(nèi)核級應(yīng)用程序,OS 124可以不限制這些功能。
[0040]在一些實施例中,可以將應(yīng)用程序122的應(yīng)用數(shù)據(jù)組織為一個或多個被稱為“虛擬存儲單元”的分區(qū)。如本文所使用的,術(shù)語“虛擬存儲單元”或“VSU”是指可由一個或多個應(yīng)用程序用來存儲應(yīng)用程序數(shù)據(jù)的一組分配的存儲塊(例如,邏輯塊)。在一些實施例中,VSU可以被實施為使得它們向應(yīng)用程序122呈現(xiàn)出比實際物理地址空間更大的邏輯地址空間。如此,分配給VSU的邏輯塊的總數(shù)量可能超過物理介質(zhì)上可用存儲塊的數(shù)量。為了進行這種分配方案工作,可以對VSU進行管理,從而使得使用其分配較少的VSU與使用其分配較多的VSU共享物理介質(zhì)空間。在一些實施例中,VSU還可以用于促進對來自輔助驅(qū)動器的數(shù)據(jù)的緩存。如本文所使用的,術(shù)語“存儲單元”通常是指存儲裝置或存儲裝置內(nèi)的虛擬存儲單元。[0041 ] 在一些實例中,應(yīng)用程序122可以經(jīng)由應(yīng)用程序編程接口(API)請求向OS 124指定相應(yīng)的文件名來訪問存儲裝置130內(nèi)的數(shù)據(jù)(在其他實例中,應(yīng)用程序122可以通過指定要讀取或?qū)懭氲牡刂穪碇苯釉L問數(shù)據(jù))。響應(yīng)于接收到該請求,OS 124可以訪問對應(yīng)于目錄和文件(例如,在索引節(jié)點集、文件分配表等內(nèi))的各種文件系統(tǒng)信息,以便確定針對文件存儲數(shù)據(jù)的一個或多個地址。
[0042]在一個實施例中,驅(qū)動器126可執(zhí)行用于準許應(yīng)用程序122和OS 124與存儲裝置130進行交互。因此,驅(qū)動器126可以接收在指定的邏輯塊地址處執(zhí)行讀取操作和寫入操作的請求,并且可以向控制器132發(fā)出相應(yīng)的命令以實現(xiàn)這些操作。在一些實施例中,驅(qū)動器126為存儲裝置130管理垃圾收集以便回收具有無效數(shù)據(jù)的存儲塊。如本文所使用的,“回收”存儲塊或存儲塊的“回收”是指準備存儲塊以供重復(fù)使用(即,從而使得存儲塊可以存儲新的數(shù)據(jù))。在閃存介質(zhì)的情況下,回收可以包括將有效數(shù)據(jù)復(fù)制出存儲塊并擦除該塊。在一些實施例中,為了促進讀取操作和寫入操作的執(zhí)行,驅(qū)動器126還將邏輯地址(例如,LBA)映射到相應(yīng)的物理地址(在其他實施例中,將邏輯地址映射到物理地址可以在其他地方執(zhí)行,如在控制器132上)。因此,驅(qū)動器126還可以管理一個或多個轉(zhuǎn)換映射(如下面結(jié)合圖2所討論的映射222),包括當在存儲裝置130上操控數(shù)據(jù)時向映射添加或從中移除轉(zhuǎn)換。
[0043]在各個實施例中,驅(qū)動器126可以支持對原子寫入操作的執(zhí)行。如以上所討論的,原子寫入可以有利于進行常規(guī)的寫入操作,因為它能夠在出現(xiàn)故障時沒有影響。因此,在一個實施例中,驅(qū)動器126支持對這些存儲裝置130之一進行原子寫入。如以下將要描述的,在一些實施例中,為了促進這種寫入操作,可以將數(shù)據(jù)封裝在一個或多個數(shù)據(jù)包中,該一個或多個數(shù)據(jù)包包括具有各種形式元數(shù)據(jù)的數(shù)據(jù)頭。在一個實施例中,這種元數(shù)據(jù)可以包括一個或多個位,該一個或多個位標識作為原子寫入的一部分該數(shù)據(jù)被存儲。驅(qū)動器126可以進一步訪問這種元數(shù)據(jù)以確定是否寫入操作成功完成并且如果得到批準則回滾原子寫入。在各個實施例中,驅(qū)動器126還支持跨多個存儲裝置130、虛擬存儲單元或它們的組合的原子寫入。(因此,盡管本文可以關(guān)于跨多個存儲裝置的原子寫入來描述具體實施例,但這種描述還可以適用于虛擬存儲單元一一包括在單個存儲裝置內(nèi)的多個虛擬存儲單元。)在這種實施例中,可以將數(shù)據(jù)集分為分布在這些存儲單元之間的多個部分。例如,可以基于地址來對跨越一個地址范圍的數(shù)據(jù)集進行劃分。然后,可以執(zhí)行一組寫入操作,從而使得每個寫入操作均向?qū)?yīng)的存儲裝置130存儲一部分。在所展示的實施例中,為了促進原子寫入,作為原子寫入的一部分,驅(qū)動器126進一步存儲注釋150以確定是否成功地提交對存儲裝置130所執(zhí)行的每個寫入操作。因此,如果這些寫入操作之一失敗(例如,這些存儲裝置130之一中途發(fā)生斷電),驅(qū)動器126(或應(yīng)用程序122)可以使用注釋150來標識向量寫入未成功地完成并且回滾該寫入。
[0044]在一個實施例中,注釋150是在這些存儲裝置130中的至少一個存儲裝置內(nèi)的專用位置處存儲的元數(shù)據(jù)。也就是,該位置并不包括正針對其執(zhí)行原子寫入的任何應(yīng)用數(shù)據(jù)。(然而,在其他實施例中,注釋150可以存儲在非專用位置處。)如以下將結(jié)合圖3A進行描述的,在一些實施例中,除了驅(qū)動器126,此位置可能對應(yīng)用程序(如應(yīng)用程序122)而言是不可訪問的。例如,在一個實施例中,如果應(yīng)用程序122指定此位置的地址,驅(qū)動器126(或OS124)可以拒絕該應(yīng)用程序?qū)?shù)據(jù)的請求。在另一個實施例中,應(yīng)用程序122可以具有受限的總地址空間視野,從而使得該應(yīng)用程序不知道這種受限視野之外的任何地址;那么,該位置可以駐留在這些外部地址之一處。在一些實施例中,此位置可以是靜態(tài)的一一例如,驅(qū)動器126可以始終將注釋150寫入相同的邏輯塊地址(LBA)或多個LBA中。然而,在其他實施例中,注釋150的位置可以是動態(tài)的。在一個實例中,注釋150的位置可以獨立于正被存儲的數(shù)據(jù)一一例如,注釋150可以駐留在與該數(shù)據(jù)所存儲的地址不相鄰的邏輯塊地址處。在一個實施例中,在原子寫入開始時存儲注釋150存儲,從而使得如果在某個點上發(fā)生故障,那么很有可能至少成功地存儲了注釋150。從而,注釋150可用于促進對故障和任何回滾進行標識。在另一個實施例中,可以在原子寫入結(jié)束時存儲注釋150。從而,僅僅存在注釋150就可以表示原子寫入成功完成。
[0045]在一些實施例中,驅(qū)動器126支持針對于原子寫入的多種形式的回滾。因此,在一個實施例中,驅(qū)動器126支持完全回滾,其中,如果原子寫入失敗,則使該寫入的所有數(shù)據(jù)(例如,待寫入的已請求數(shù)據(jù)以及任何關(guān)于該寫入的已記錄元數(shù)據(jù))都無效。替代性地,在一些實施例中,驅(qū)動器126支持部分回滾,其中,可以允許已寫入數(shù)據(jù)的一部分保留在存儲裝置130上,同時可以使其他部分無效。如以下將結(jié)合圖2進行描述的,在這種實施例中,驅(qū)動器126可以與應(yīng)用程序122進行接口連接,以便為應(yīng)用程序122提供關(guān)于寫入失敗的信息,并且為應(yīng)用程序122提供回滾該原子寫入的不同選項。在一些實施例中,應(yīng)用程序122可以根據(jù)由驅(qū)動器126所提供的信息來選擇是執(zhí)行完全回滾、部分回滾還是不回滾。
[0046]在各個實施例中,通過記錄元數(shù)據(jù)(如注釋150)來實現(xiàn)原子寫入可能是有利的,因為它可以降低跨多個存儲單元執(zhí)行原子寫入的開銷。例如,跨多個存儲裝置130的原子寫入可以包括驅(qū)動器126與每個存儲裝置130進行握手,從而使得驅(qū)動器126發(fā)送請求并且等待來自每個存儲裝置130的相應(yīng)確認。驅(qū)動器126可以進一步維護已發(fā)送請求和已接收確認
當前第2頁1 2 3 4 5 6 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
安新县| 金川县| 元氏县| 娱乐| 兴宁市| 清远市| 荔浦县| 江阴市| 松溪县| 时尚| 周宁县| 互助| 华坪县| 金塔县| 沙洋县| 南华县| 卢龙县| 永登县| 灵台县| 敖汉旗| 沁阳市| 冕宁县| 普安县| 霍州市| 连城县| 乡宁县| 长顺县| 浦东新区| 新昌县| 抚宁县| 金湖县| 潞西市| 五大连池市| 大关县| 辉南县| 即墨市| 阿图什市| 化隆| 安徽省| 宁乡县| 松潘县|