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

用于存儲模塊碎片整理的存儲模塊和主機裝置的制造方法

文檔序號:10557140閱讀:228來源:國知局
用于存儲模塊碎片整理的存儲模塊和主機裝置的制造方法
【專利摘要】公開了一種用于存儲模塊碎片整理的存儲模塊和主機裝置。在一個實施例中,主機控制器向存儲模塊發(fā)送存儲在該存儲模塊中的文件的第一組邏輯塊地址。該主機控制器從該存儲模塊接收度量,該度量指示該存儲模塊中的存儲器的物理塊中該文件的碎片水平。如果該度量大于閾值,該主機控制器讀取該文件,然后使用不同組的邏輯塊地址將其寫回到該存儲模塊。為了避免往返發(fā)送該文件,在另一個實施例中,該主機控制器將該碎片閾值和該不同組的邏輯塊地址發(fā)送到該存儲模塊。然后,如果指示該碎片水平的度量大于該閾值,該存儲模塊移動該文件本身。提供其它實施例。
【專利說明】用于存儲模塊碎片整理的存儲模塊和主機裝置
[0001] 相關(guān)申請的交叉引用
[0002] 本申請要求于2014年2月5日提交的美國臨時專利申請No.61/936,170的權(quán)益,其 通過引用結(jié)合于此。
【背景技術(shù)】
[0003 ]由于主機碎片(f ragmen ta t i on)或存儲模塊碎片而導(dǎo)致的文件的碎片可以降低系 統(tǒng)性能。通過主機碎片,文件被分散在存儲模塊的很多不連續(xù)的邏輯塊地址(LBA)范圍中。 因此,用于存儲文件的LBA范圍越多,文件變得更加分散。此外,在一些文件系統(tǒng)中,諸如 EXT4,文件分配表(FAT)與存儲數(shù)據(jù)進行混合。在這樣的系統(tǒng)中讀取碎片文件需要更多的操 作,因為該文件的結(jié)構(gòu)更復(fù)雜。這可能降低讀取性能。
[0004] 通過存儲模塊碎片,文件分散在存儲器中的很多物理塊中。為相同文件的分配的 物理塊越多,文件越分散。因為碎片文件通常不會占用整個物理塊,存儲碎片文件的部分的 物理塊將通常存儲其它文件的數(shù)據(jù)。所以,當主機刪除在若干物理塊上分散的文件時,這可 能會導(dǎo)致比預(yù)期更少的空閑塊,因為塊仍然為其它文件保持數(shù)據(jù)。因為這樣的文件刪除在 以其它方式占用的(otherwise-occupied)物理塊中會留下空閑空間的"孔(hole)",因此存 儲模塊將需要進行若干"整理(houseke印ing)"操作以創(chuàng)造空閑塊,這會降低系統(tǒng)性能。
[0005] 另外,在一些環(huán)境中,諸如在移動計算系統(tǒng)中,當文件被存儲模塊分散時,主機不 知道該文件是如何分散的,所以其不知道需要采取何種行動以試圖對文件進行碎片整理。 此外,雖然主機知道主機碎片問題,并可以嘗試通過將分散的文件移動到連續(xù)的LBA范圍以 解決主機碎片問題,但是這樣的移動實際上可以降低性能,因為存儲碎片問題。

【發(fā)明內(nèi)容】

[0006] 本發(fā)明的實施例由權(quán)利要求限定,并且在本部分中沒有應(yīng)被視為對那些權(quán)利要求 的限制。
[0007] 通過簡介的方式,各個實施例涉及用于存儲模塊碎片整理的存儲模塊和主機裝 置。在一個實施例中,主機控制器向存儲模塊發(fā)送存儲在該存儲模塊中的文件的第一組邏 輯塊地址。該主機控制器從該存儲模塊接收度量,該度量指示該存儲模塊中的存儲器的物 理塊中該文件的碎片水平。如果該度量大于閾值,該主機控制器讀取該文件,然后使用不同 組的邏輯塊地址將其寫回到該存儲模塊。為了避免往返發(fā)送該文件,在另一個實施例中,該 主機控制器將該碎片閾值和該不同組的邏輯塊地址發(fā)送到該存儲模塊。然后,如果指示該 碎片水平的度量大于該閾值,該存儲模塊移動該文件本身。為了在多個文件上進行該實施 例,該主機控制器可以以逐個文件為基礎(chǔ)將關(guān)于文件的信息發(fā)送到該存儲模塊,或者可以 將信息作為組發(fā)送到該存儲模塊。在另一個實施例中,主機控制器將存儲在該存儲模塊中 的一組邏輯塊地址發(fā)送到該存儲模塊,并且將度量發(fā)送到該主機控制器,該度量指示該存 儲模塊中的存儲器的物理塊中該文件的碎片水平的水平。在又一個實施例中,主機控制器 讀取存儲在存儲模塊中的文件,并且根據(jù)具體的寫入模式將其寫回到該存儲模塊。
[0008] 其它實施例是可能的,并且每個實施例可以單獨使用或組合在一起使用。相應(yīng)地, 現(xiàn)在將參照附圖描述各個實施例。
【附圖說明】
[0009] 圖1是實施例的示例性存儲模塊的框圖。
[0010] 圖2A是實施例的主機的框圖,其中圖1的示例性存儲模塊被嵌入在主機中。
[0011] 圖2B是可移除地連接到主機的圖1的示例性存儲模塊的框圖,其中該存儲模塊和 主機是可分離的、可移動的裝置。
[0012 ]圖3A和3B示出了實施例的存儲模塊碎片問題。
[0013]圖4是用于為主機提供關(guān)于存儲模塊碎片的信息和用于減少文件的碎片的實施例 的流程圖。
[0014] 圖5是用于減少文件的碎片而不在存儲模塊和主機之間傳輸文件的實施例的方法 的流程圖。
[0015] 圖6是用于減少文件的碎片而不在存儲模塊和主機之間傳輸文件的實施例的另一 個方法的流程圖。
[0016] 圖7是總結(jié)各個實施例的圖表。
[0017] 圖8是可以與遵循NVMe協(xié)議的存儲模塊一起使用的碎片整理技術(shù)的實施例的方法 的流程圖。
[0018] 圖9是用于在多個隊列環(huán)境中寫入文件的實施例的示圖。
[0019] 圖10是當使用碎片整理技術(shù)時、用于在多個隊列環(huán)境中寫入文件的實施例的示 圖。
【具體實施方式】
[0020] 如上述提到的,主機通常不知道文件在存儲模塊中的存儲器的物理塊中是如何分 散的,所以其不知道需要采取何種行動以試圖對文件進行碎片整理。以下實施例可以用于 通過為主機給出存儲模塊碎片的理解,并為主機提供一組工具以處理具有涉及的各個水平 的存儲裝置碎片來解決上述討論的存儲模塊碎片問題。在轉(zhuǎn)向這些和其它實施例之前,下 面的段落提供了可以與這些實施例一起使用的示例性存儲模塊和主機的討論。當然,這些 只是示例,并且可以使用其它合適類型的存儲器模塊。
[0021 ]如圖1所示,一個實施例的存儲模塊100包括存儲控制器110和非易失性存儲器120 (這里,一個或多個NAND存儲器裸芯,但是可以使用其它類型的存儲器技術(shù))。存儲控制器 110包括用于與非易失性存儲器120接口的存儲器接口 111 (閃速接口模塊)和用于將存儲模 塊100可操作地與主機控制器245進行通信的主機接口模塊112。如這里所使用的,可操作地 通信的意思是可以通過一個或多個組件以有線或無線方式直接通信或間接通信,其在這里 可以被示出或描述,或者可以不被示出或描述。圖1還示出了存儲模塊100,該存儲模塊100 使用存儲協(xié)議(諸如,例如,eMMC、UFS、PCI Express、DDR-3/4或SATA)經(jīng)由存儲裝置接口與 主機240進行通信。主機240包括應(yīng)用250、文件系統(tǒng)260、驅(qū)動器270和存儲器(例如,RAM) 280,但是可以使用其它或不同的組件。此外,如上述提到的,主機240包含主機控制器245, 應(yīng)該理解的是,由主機關(guān)于存儲模塊100所采取的行動可以使用主機控制器245來進行???以使用不同的存儲模塊-主機配置,如圖2A和圖2B所示。
[0022] 如圖2A所示,存儲模塊100可以嵌入在具有主機控制器220的主機210中。即,主機 210包含主機控制器220和存儲模塊100,使得主機控制器220與嵌入式存儲模塊100接口以 管理其操作。(應(yīng)當指出的是,雖然主機控制器220可以控制存儲模塊100,但是存儲模塊100 可以具有其自己的控制器,以控制其內(nèi)部存儲器操作)。例如,存儲模塊1〇〇可以采取 SanDi sk公司的iNAND?eSD/eMMC嵌入式閃速驅(qū)動器的形式,或者,更一般地,固態(tài)驅(qū)動器 (SSD)、混合型存儲裝置(具有硬盤驅(qū)動器和固態(tài)驅(qū)動器兩者)和存儲器緩存系統(tǒng)的任何類 型。主機控制器220可以使用,例如,eMMC主機接口或UFS接口與嵌入式存儲模塊100接口。主 機210可以采取任何形式,諸如,但不限于,移動電話、平板計算機、數(shù)字媒體播放器、游戲裝 置、個人數(shù)字助理(PDA)、移動(例如,筆記本電腦、膝上型電腦)個人計算機(PC)或書閱讀 器。如圖2A所示,主機210可以包括可選的其它功能模塊230。例如,如果主機210是移動電 話,其它功能模塊230可包括硬件和/或軟件組件以打電話和處理電話。作為另一個示例,如 果主機210具有網(wǎng)絡(luò)連接功能,其它功能模塊230可以包括網(wǎng)絡(luò)接口。當然,這些只是一些示 例,并且可以使用其它實現(xiàn)方式。另外,主機210可以包括其它組件(例如,音頻輸出、輸入-輸出端口等),該其它組件未在圖2A中示出以簡化附圖。
[0023] 如圖2B所示,代替成為主機中的嵌入式裝置,存儲模塊100可以具有允許存儲模塊 100經(jīng)由配對連接器被可移除地連接到主機240(具有主控制器245)的物理和電氣連接器。 這樣,存儲模塊1〇〇是與主機240分離的(且未嵌入主機240中的)裝置。在該示例中,例如,存 儲模塊100可以是手持式、可移動存儲裝置,諸如安全數(shù)字(SD)存儲器卡、微型SD存儲器卡、 緊湊型閃速(CF)存儲器卡或通用串行總線(USB)裝置(具有到主機的USB接口),并且主機 240是單獨的裝置,諸如移動電話、平板計算機、數(shù)字媒體播放器、游戲裝置、個人數(shù)字助理 (PDA)、移動(例如,筆記本電腦,膝上型電腦)個人計算機(PC),或書閱讀器等。
[0024] 在圖2A和圖2B中,存儲模塊100經(jīng)由圖1所示的主機接口模塊112與主機控制器220 或主機240通信。主機接口模塊112可以采取任何合適的形式,諸如,但不限于,eMMC主機接 口、UFS接口和USB接口。在存儲模塊110中的主機接口模塊110從主機控制器220(圖2A)或主 機240(圖2B)傳送存儲器管理命令到存儲控制器110,并且還從存儲控制器110傳送存儲器 響應(yīng)到主機控制器220(圖2A)或主機240(圖2B)。此外,應(yīng)該指出的是,當存儲模塊100被嵌 入在主機210中時,由存儲模塊100中的存儲控制器110進行的這里描述的一些或全部功能 可以替代為由主機控制器220來進行。
[0025]回到圖1,存儲控制器110包括閃速管理模塊113,其可以包含運行軟件和/或硬件 模塊以管理存儲器120 (例如,進行邏輯到物理地址的映射等)的中央處理單元(CPU) 113。存 儲控制器110可以以任何合適的方式來實現(xiàn)。例如,存儲控制器110可以采取微處理器或處 理器和計算機可讀介質(zhì)的形式,例如,該計算機可讀介質(zhì)存儲由(微)處理器可執(zhí)行的計算 機可讀程序代碼(例如,軟件或固件)、邏輯門、開關(guān)、專用集成電路(ASIC)、可編程邏輯控制 器和嵌入式微控制器。合適的控制器可以從SanDisk公司或其它供應(yīng)商獲得。存儲控制器 110可以配置有硬件和/或軟件以進行下面描述的和在流程圖中所示的各個功能。
[0026]非易失性存儲器120也可以采取任何合適的形式。例如,在一個實施例中,非易失 性存儲器120采取固態(tài)(例如閃速)存儲器的形式,并且可以是一次可編程的、少次可編程的 或多次可編程的。非易失性存儲器120也可以使用單級單元(SLC)、多級單元(MLC)、三級單 元(TLC)或現(xiàn)在已知的或以后開發(fā)的其它存儲器技術(shù)。此外,非易失性存儲器120可以是二 維存儲器或三維存儲器。
[0027]如上述提到的,主機通常不知道文件在存儲模塊中的存儲器的物理塊中是如何分 散的,所以其不知道需要采取何種行動以試圖對文件進行碎片整理。圖3A和3B示出了存儲 模塊碎片問題。在圖3A中,有存儲器的四個物理塊、和存儲在其中的三個文件。正方形表示 最小寫入單元。文件A被包含在塊0和1中,文件B被全部包含在塊1 (塊1中具有一些空閑空 間)中,并且文件C被全部包含在塊3(沒有可用的空閑空間)中。塊2是完全空的。圖3B示出了 大小相同的相同的三個文件的存儲,但是,此時,這些文件的存儲更加分散。具體地,所有四 個文件的部分被存儲在每個塊中。下面的實施例可以由主機用于解決存儲模塊碎片。
[0028]通常,主機不會洞察存儲模塊碎片的水平。因此,在一個實施例中,在主機240和存 儲模塊100之間提供了新的通信。這將結(jié)合圖4的流程圖400-起示出。如圖4所示,主機240 為碎片整理(動作410)準備文件的列表,并且以逐個文件(file-by-file)為基礎(chǔ)查看(go through)文件的列表(動作420、430)。對于每個文件,主機240發(fā)送查詢命令到具有文件的 邏輯塊地址(LBA)范圍的存儲模塊100(動作440)。響應(yīng)于該查詢,存儲模塊100為主機240提 供用于該文件的碎片整理度量(動作450)。即,碎片整理度量是對查詢指令的響應(yīng)的一部分 (該實施例假設(shè)存儲協(xié)議被用于在其中的每個命令,有響應(yīng))。
[0029] 如這里所使用的,碎片整理度量反映了用于文件的碎片的水平,并且其值涉及這 樣的碎片的程度。碎片整理度量的示例可以包括包含文件的物理塊的數(shù)目。因此,在圖3A所 示的示例中,碎片度量是用于文件A的兩個塊、用于文件B的一個塊和用于文件C的一個塊。 相比之下,在圖3B所示的更加分散的示例中,碎片度量是用于文件A的四個塊、用于文件B的 兩個塊和用于文件C的四個塊。當然,包含文件的物理塊的數(shù)目僅為碎片整理度量的一個示 例。其它示例包括、但不限于熱/冷指示和映射效率指示。熱/冷指示描述多久以前的數(shù)據(jù)被 寫入。例如,一年前寫入的文件可以被認為是冷的,而五分鐘前寫入的文件可以被認為是熱 的。從存儲模塊的角度來看,將優(yōu)選在熱文件之前對冷文件進行碎片,因為熱文件仍可能被 主機改變。映射效率描述了來自所需的管理表的過量讀取的數(shù)量,以便于找到物理位置。該 度量是指這樣的事實:閃速管理軟件包含將邏輯地址映射到物理地址的一個或多個表。當 映射單元是非常小的(例如,4KB)時,典型的存儲(例如,32GB)的邏輯到物理表(L2P)可以是 非常大的(例如,8MB)。對于實際的原因,諸如成本和功率,該表不被存儲在存儲控制器110 的RAM中,并且要被寫入到NAND存儲器裸芯120。L2P表可以分散在若干NAND存儲器裸芯中, 并且,在每個裸芯內(nèi),表的部分可以在不同的塊和頁面中。在存儲碎片的一些情況下,不僅 是數(shù)據(jù)分散,而且(多個)L2P表也分散。在這種情況下,讀取文件將包括在讀取/寫入數(shù)據(jù)之 前從L2P表附加的讀取。這些附加的"控制"讀取降低存儲性能。
[0030] 基于所接收的碎片整理度量,主機240可以選擇采取各個動作。例如,如圖4所示, 主機240可以確定所接收的碎片整理量度是否滿足期望值(例如,大于預(yù)定的或動態(tài)的閾 值)(動作460)。如果度量滿足期望值(諸如圖3A中的文件A),主機240可以詢問下一個文件 (動作420及以下的動作等)。然而,如果指標不滿足期望值(諸如,圖3B中的文件A),主機240 可以將文件移動到存儲模塊100的存儲器120中的另一個位置,以減少文件的碎片。為了做 到這一點,主機240可以從現(xiàn)有的物理塊讀取文件到主機240中的存儲器(例如,主機的RAM 280或主機240中的其它易失性或非易失性存儲器)中(動作470)。然后,主機240使用新的文 件命令將文件寫回到存儲模塊1〇〇(動作480),使得該文件將占用較少的物理塊(或,理想 地,具有最小的存儲碎片)。為了做到這一點,主機可以發(fā)送反映一個新文件的LBA的列表 (優(yōu)選地,LBA的一個連續(xù)的范圍)。然后,主機240還可以指示存儲模塊100作為寫入模式。例 如,主機240可以指示存儲模塊100以"盡力而為(best effort)模式"寫入,在該"盡力而為 模式"中,存儲模塊試圖將文件寫入到最小數(shù)目的物理塊而沒有任何保證。隨著這種類型的 寫入模式,主機240可以為存儲模塊100提供關(guān)于文件類型的信息(例如,log、temp.、JPG、 OS),并且存儲模塊100可以確定應(yīng)該為該文件類型做出哪些盡力而為。例如,存儲模塊100 可以做出更好的努力嘗試寫入0S文件而不是日志文件??商娲?,主機240可以指示存儲模 塊100以"保證的(warranted)模式"寫入,在該"保證的模式"中,存儲模塊100在寫入之前應(yīng) 該進行所需的任何整理,以確保最小數(shù)目的物理塊。在任一模式中,在文件被寫入之后,存 儲模塊100可以將用于新文件的碎片度量返回到主機240。主機240可以使用該度量以看"盡 力而為"寫入的結(jié)果是否令人滿意。如果是不滿意的,主機240可以重新發(fā)出寫入作為"擔 保"寫入。
[0031]以下圖表是用于上述的實施例的命令和響應(yīng)參數(shù)的高級描述。當然,這些只是一 個示例,并且可以使用其它參數(shù)。
[0034]如可以通過上述示例看出,該實施例允許主機240具有對用于給定文件的存儲模 塊碎片的可視性,并且為主機240提供一組工具以處理具有各個涉及水平的存儲裝置碎片。 例如,主機240可以以更好的碎片度量(例如,較少數(shù)目的物理塊)讀取文件且將文件寫回到 存儲模塊100,如果需要的話。在另一個實施例中,代替主機240將文件讀出存儲模塊100并 且隨后將文件寫回到存儲模塊100,進行該碎片整理過程而不在存儲模塊100和主機240之 間往返移動該文件,從而避免總線上的數(shù)據(jù)傳輸。圖5是示出了該實施例的流程圖500。如圖 5所示,主機240為碎片整理(動作510)準備文件的列表,并且以逐個文件為基礎(chǔ)查看文件的 列表(動作520、530)。對于每個文件,主機240提供反映該文件的當前存儲的1^4范圍的列 表,以及用于該文件的新位置的LBA范圍的潛在的新的列表(動作540)。然后,存儲模塊100 將文件的數(shù)據(jù)移動到較小數(shù)目(優(yōu)選地,最小數(shù)目)的物理塊,并且確認新的LBA范圍的映 射。主機240還可以提供度量期望值,因此,如果碎片整理操作要被執(zhí)行,存儲模塊100可以 確定是否進行碎片整理操作、以及寫入模式(例如,盡力而為(連同可選的文件類型)或擔 保)??蛇x地,存儲模塊100可以首先以用于新范圍和舊范圍的估計的碎片度量來響應(yīng),以允 許主機240在碎片發(fā)生之前批準碎片(基于比較新度量和舊度量)。
[0035]該實施例與前述實施例相比的優(yōu)點是,該主機實現(xiàn)方式更加簡單,因為消除了主 機存儲總線上的不必要的數(shù)據(jù)的傳輸。在這種情況下,主機240上的文件系統(tǒng)具有關(guān)于每個 文件的知識,并且其逐個發(fā)送碎片整理文件命令。以下圖表是用于該實施例的命令和響應(yīng) 參數(shù)的高級描述。當然,這些只是一個示例,并且可以使用其它參數(shù)。
[0038]如果主機240發(fā)送文件的列表或目錄,并且主機240可選地提供優(yōu)先級和調(diào)度信 息,可以實現(xiàn)進一步的優(yōu)化。該實施例在圖6的流程圖600中示出,并且提供了一個實施例在 上述討論的更有效的操作。如圖6所示,主機240為碎片整理準備文件的列表(可選地,具有 優(yōu)先級列表)(動作610),然后將碎片整理文件數(shù)據(jù)庫命令發(fā)送到存儲模塊100(動作620)。 存儲模塊100解析數(shù)據(jù)庫,并且相應(yīng)地計劃碎片整理過程。在長的空閑時間(例如,在夜間, 主機(例如,電話)正在充電)期間,根據(jù)由主機340所要求的優(yōu)先級并且根據(jù)新度量和舊度 量,存儲模塊100可以對文件的整個列表進行碎片整理。
[0039]不論主機240是以逐個文件為基礎(chǔ)(圖5)還是作為列表/數(shù)據(jù)庫(圖6)來通信文件, 這兩種方法的碎片整理操作可以以同步(阻塞)模式或同步(非阻塞)模式來執(zhí)行。在同步模 式中,存儲模塊100將在前臺執(zhí)行命令,并且將僅在完成所有所需的操作之后釋放忙信號。 與此相反,在異步模式中,存儲模塊100將以非易失性模式保存命令,并且將立即釋放忙信 號。該命令的執(zhí)行將在后臺進行,優(yōu)選在空閑時間(例如,在夜間)期間。執(zhí)行的進程可以通 過主機240可以輪詢的存儲模塊100中的一組寄存器來進行通信。
[0040]以下圖表是用于該實施例的命令和響應(yīng)參數(shù)的高級描述。當然,這些只是一個示 例,并且可以使用其它參數(shù)。
[0041]
[0042] 圖7是總結(jié)上述討論的實施例之間的關(guān)系的圖表。
[0043] 有可以與這些實施例一起使用的很多替代。例如,除了或代替移動文件以減少存 儲裝置碎片,主機340還可以使用所接收的碎片整理度量以決定是否激活主機碎片整理。不 同于集中在存儲模塊1 〇〇的存儲器120中的物理塊上的存儲模塊碎片,主機碎片集中在文件 的邏輯塊地址(LBA)范圍內(nèi)。主機可以通過將分散文件移動到連續(xù)的LBA范圍內(nèi)來解決該問 題。然而,如果文件在很多物理塊上分散,主機碎片整理實際上可以導(dǎo)致比如果文件的LBA 范圍被留下原樣的更差的性能。因此,通過使用該實施例,主機240可以使得是否進行主機 碎片整理的確定以存儲模塊碎片整理度量為基礎(chǔ)。
[0044] 在另一個實施例中,本文所討論的碎片整理技術(shù)可以與使用NVM Express(NVMe) 協(xié)議的存儲模塊一起使用。這樣的存儲模塊可以通過利用數(shù)據(jù)集管理命令從這些實施例中 受益,該數(shù)據(jù)集管理命令允許主機240向存儲模塊100指示何時多個非連續(xù)的LBA范圍是相 同文件的一部分。這使用NVMe協(xié)議中的數(shù)據(jù)集管理(DATA SET MANAGEMENT)命令和寫入 (WRITE)命令的整數(shù)(integral)讀取標記。該實施例將結(jié)合圖8的流程圖800更詳細的討論, 其描述了從主機240的觀點使用NVMe命令的部分文件寫入(或文件更新),其中,在存儲模塊 100-側(cè)使用上述實施例以提供改善的性能。
[0045]如流程圖800中所示,主機240首先確定寫入到部分文件或完整文件(動作810)。然 后,主機240分配或更新文件系統(tǒng)中的LBA范圍的分配(動作820)。接下來,主機240對LBA的 每個連續(xù)的范圍("區(qū)間(extent)")進行循環(huán)(動作830)。首先,主機240確定是否存在寫入 到區(qū)間的新的數(shù)據(jù)(動作840)。如果沒有,主機240提交具有用于區(qū)間LBA范圍的整體讀取標 計(IDR)的數(shù)據(jù)集管理命令(動作850)。如果有,主機240提交具有用于區(qū)間LBA范圍的IDR標 記的寫入命令(動作860)。當文件的結(jié)束出現(xiàn)(動作870),存儲模塊100合并塊并且完成命令 (動作880)。在該實施例中,在完成由主機240發(fā)出的數(shù)據(jù)集管理命令之前,存儲模塊100按 照上述實施例合并塊。從而,主機240知道文件被最佳地存儲。
[0046]該變型涉及新的文件寫入。通常,新的寫入被編程到下一個可用的空閑塊,而不考 慮下面的寫入是否是相同序列的部分。當使用多個隊列同時寫入多個文件時,這可能會導(dǎo) 致如圖9所示的寫入交錯。在圖9中,交換和臨時隊列(3和4)具有與兩個文件(F1和F2)交錯 的寫入塊。每個所得的頁面包含多個內(nèi)容類型的元素(一個代表與文件F1相關(guān)聯(lián)的現(xiàn)有內(nèi) 容,而另一個代表與F2相關(guān)聯(lián)的現(xiàn)有內(nèi)容)。通過使用上述討論的合并技術(shù),存儲模塊100可 以具有F1和F2的區(qū)間序列的先驗知識,因為現(xiàn)有的塊屬于已經(jīng)被整體標記為已寫入或已合 并的相同的LBA范圍。在合并后,所得的塊分配方案可以是如圖10所示的那樣。如果是在復(fù) 制其本身的期間完成,存儲模塊性能將在寫入過程期間受損,因為合并將在I/O命令期間發(fā) 生。因此,基于在寫入期間所接收的數(shù)據(jù)集管理提示,存儲模塊100可以推遲合并直到寫入 完成之后。另外,在寫入完成之后,主機240可以將數(shù)據(jù)集管理命令發(fā)送到給定的范圍并且 實現(xiàn)相同的效果。
[0047]在主機驅(qū)動的碎片整理周期期間(如上所述),主機240可以發(fā)送具有整數(shù)讀取標 記的數(shù)據(jù)集管理范圍表,以便于觸發(fā)合并。典型的SSD可以包含成千上萬的文件,使得發(fā)送 個別數(shù)據(jù)集管理命令笨拙且效率低。在另一個實施例中,主機240發(fā)送命令到存儲模塊100, 指示已經(jīng)包含映射到個別文件(如在文件系統(tǒng)中常見的)的區(qū)間(extent)列表的LBA范圍。 然后,存儲模塊100解析這些區(qū)間列表并且相應(yīng)地合并文件。區(qū)間列表的形式可以匹配在文 件系統(tǒng)(諸如FAT、NTFS和HFS+)中發(fā)現(xiàn)的結(jié)構(gòu),該文件系統(tǒng)利用用于分散的文件的區(qū)間列 表。存儲模塊100不自動更新區(qū)間列表,而是重新組織由每個區(qū)間中的LBA指示的物理塊,使 得它們在物理上是不分散的。
[0048] 應(yīng)該指出的是,在如NVMe的高度異步協(xié)議中,并且在典型的SSD中發(fā)現(xiàn)大量的分散 區(qū)間的情況下,存儲模塊可能更容易只作出確定每個文件的碎片水平,而不通知每個文件 的碎片水平的主機。然而,可以使用在碎片整理之前報告度量返回到主機的技術(shù)和發(fā)送對 區(qū)間的特定序列的提示的技術(shù)兩者。
[0049] 上述詳細描述意在理解為本發(fā)明可以采取的所選擇的形式的示例,而不作為本發(fā) 明的限定。只有下面的權(quán)利要求,包括所有的等同,意在限定本發(fā)明要求保護的范圍。最后, 應(yīng)該指出的是,這里描述的任何優(yōu)選的實施例的任何方面可以單獨使用或彼此組合使用。
【主權(quán)項】
1. 一種存儲模塊,所述存儲模塊包括: 存儲器;和 存儲控制器,所述存儲控制器與所述存儲器可操作地通信,其中所述存儲控制器配置 為: 從主機控制器接收存儲在所述存儲器中的文件的一組邏輯塊地址; 生成度量,所述度量指示所述存儲模塊中的所述存儲器的物理塊中所述文件的碎片水 平的水平;以及 發(fā)送所述度量到所述主機控制器。2. 如權(quán)利要求1所述的存儲模塊,其中所述度量包括所述存儲模塊中包含所述文件的 物理塊的數(shù)量。3. 如權(quán)利要求1所述的存儲模塊,其中所述度量包括熱/冷指示。4. 如權(quán)利要求1所述的存儲模塊,其中所述度量包括映射效率指示。5. 如權(quán)利要求1所述的存儲模塊,其中所述存儲控制器進一步配置為: 接收多個非連續(xù)的邏輯塊地址范圍是所述文件的部分的指示。6. 如權(quán)利要求5所述的存儲模塊,其中多個非連續(xù)的邏輯塊地址范圍是所述文件的部 分的所述指示包括數(shù)據(jù)集管理命令。7. 如權(quán)利要求5所述的存儲模塊,其中多個非連續(xù)的邏輯塊地址范圍是所述文件的部 分的所述指示包括整數(shù)讀取標記。8. 如權(quán)利要求1所述的存儲模塊,其中所述存儲模塊的所述存儲器是三維存儲器。9. 如權(quán)利要求1所述的存儲模塊,其中所述存儲模塊嵌入在包含所述主機控制器的主 機中。10. 如權(quán)利要求1所述的存儲模塊,其中所述存儲模塊可移動地連接到包含所述主機控 制器的主機。11. 如權(quán)利要求1所述的存儲模塊,其中所述存儲模塊是固態(tài)驅(qū)動器。12. -種用于存儲模塊碎片整理的方法,所述方法包括: 在與主機控制器可操作地通信的存儲模塊中進行以下步驟: 從所述主機控制器接收存儲在所述存儲模塊中的文件的一組邏輯塊地址; 生成度量,所述度量指示所述存儲模塊中的存儲器的物理塊中所述文件的碎片水平的 水平;以及 發(fā)送所述度量到所述主機控制器。13. 如權(quán)利要求12所述的方法,其中所述度量包括所述存儲模塊中包含所述文件的物 理塊的數(shù)量。14. 如權(quán)利要求12所述的方法,其中所述度量包括熱/冷指示。15. 如權(quán)利要求12所述的方法,其中所述度量包括映射效率指示。16. 如權(quán)利要求12所述的方法,還包括: 接收多個非連續(xù)的邏輯塊地址范圍是所述文件的部分的指示。17. 如權(quán)利要求16所述的方法,其中多個非連續(xù)的邏輯塊地址范圍是所述文件的部分 的所述指示包括數(shù)據(jù)集管理命令。18. 如權(quán)利要求16所述的方法,其中多個非連續(xù)的邏輯塊地址范圍是所述文件的部分 的所述指示包括整數(shù)讀取標記。19. 如權(quán)利要求17所述的方法,其中所述存儲模塊的所述存儲器是三維存儲器。20. 如權(quán)利要求17所述的方法,其中所述存儲模塊嵌入在包含所述主機控制器的主機 中。21. 如權(quán)利要求17所述的方法,其中所述存儲模塊可移動地連接到包含所述主機控制 器的主機。22. 如權(quán)利要求17所述的方法,其中所述存儲模塊是固態(tài)驅(qū)動器。23. -種主機裝置,包括: 接口,通過所述接口可操作地與存儲模塊通信;以及 控制器,所述控制器與所述接口可操作地通信,其中所述控制器配置為: 向所述存儲模塊發(fā)送存儲在所述存儲模塊中的文件的一組邏輯塊地址;以及 從所述存儲模塊接收度量,所述度量指示所述存儲模塊中的存儲器的物理塊中所述文 件的碎片水平的水平。24. 如權(quán)利要求23所述的主機裝置,其中所述度量包括所述存儲模塊中包含所述文件 的物理塊的數(shù)量。25. 如權(quán)利要求23所述的主機裝置,其中所述度量包括熱/冷指示。26. 如權(quán)利要求23所述的主機裝置,其中所述度量包括映射效率指示。27. 如權(quán)利要求23所述的主機裝置,其中所述控制器進一步配置為:發(fā)送多個非連續(xù)的 邏輯塊地址范圍是所述文件的部分的指示。28. 如權(quán)利要求27所述的主機裝置,其中多個非連續(xù)的邏輯塊地址范圍是所述文件的 部分的所述指示包括數(shù)據(jù)集管理命令。29. 如權(quán)利要求27所述的主機裝置,其中多個非連續(xù)的邏輯塊地址范圍是所述文件的 部分的所述指示包括整數(shù)讀取標記。30. 如權(quán)利要求23所述的主機裝置,其中所述存儲模塊的所述存儲器是三維存儲器。31. 如權(quán)利要求23所述的主機裝置,其中所述存儲模塊嵌入在所述主機裝置中。32. 如權(quán)利要求23所述的主機裝置,其中所述存儲模塊可移動地連接到所述主機裝置。33. 如權(quán)利要求23所述的主機裝置,其中所述存儲模塊是固態(tài)驅(qū)動器。34. -種用于存儲模塊碎片整理的方法,所述方法包括: 在與存儲模塊可操作地通信的主機控制器中進行以下步驟: 向所述存儲模塊發(fā)送存儲在所述存儲模塊中的文件的一組邏輯塊地址;以及 從所述存儲模塊接收度量,所述度量指示所述存儲模塊中的存儲器的物理塊中所述文 件的碎片水平的水平。35. 如權(quán)利要求34所述的方法,其中所述度量包括所述存儲模塊中包含所述文件的物 理塊的數(shù)量。36. 如權(quán)利要求34所述的方法,其中所述度量包括熱/冷指示。37. 如權(quán)利要求34所述的方法,其中所述度量包括映射效率指示。38. 如權(quán)利要求34所述的方法,還包括: 發(fā)送多個非連續(xù)的邏輯塊地址范圍是所述文件的部分的指示。39. 如權(quán)利要求38所述的方法,其中多個非連續(xù)的邏輯塊地址范圍是所述文件的部分 的所述指示包括數(shù)據(jù)集管理命令。40. 如權(quán)利要求38所述的方法,其中多個非連續(xù)的邏輯塊地址范圍是所述文件的部分 的所述指示包括整數(shù)讀取標記。41. 如權(quán)利要求28所述的方法,其中所述存儲模塊的所述存儲器是三維存儲器。42. 如權(quán)利要求28所述的方法,其中所述存儲模塊嵌入在包含所述主機控制器的主機 中。43. 如權(quán)利要求28所述的方法,其中所述存儲模塊可移動地連接到包含所述主機控制 器的主機。44. 如權(quán)利要求28所述的方法,其中所述存儲模塊是固態(tài)驅(qū)動器。45. 如權(quán)利要求5所述的存儲模塊,其中在所述主機控制器分配邏輯塊范圍并且對每個 連續(xù)的區(qū)間、確定新的數(shù)據(jù)是否被寫入到所述區(qū)間之后發(fā)送所述指示。46. 如權(quán)利要求16所述的方法,其中在所述主機控制器分配邏輯塊范圍并且對每個連 續(xù)的區(qū)間、確定新的數(shù)據(jù)是否被寫入到所述區(qū)間之后發(fā)送所述指示。47. 如權(quán)利要求27所述的主機裝置,其中在所述主機控制器分配邏輯塊范圍并且對每 個連續(xù)的區(qū)間、確定新的數(shù)據(jù)是否被寫入到所述區(qū)間之后發(fā)送所述指示。48. 如權(quán)利要求38所述的方法,其中在所述主機控制器分配邏輯塊范圍并且對每個連 續(xù)的區(qū)間、確定新的數(shù)據(jù)是否被寫入到所述區(qū)間之后發(fā)送所述指示。
【文檔編號】G06F3/06GK105917333SQ201580003397
【公開日】2016年8月31日
【申請日】2015年1月23日
【發(fā)明人】Y.杜茲利, H.奧謝斯基, S.巴-奧爾, J.G.哈恩
【申請人】桑迪士克科技有限責(zé)任公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
安化县| 自治县| 确山县| 抚松县| 安国市| 安平县| 江北区| 老河口市| 中宁县| 孟州市| 凤凰县| 泸水县| 垫江县| 兰溪市| 淮北市| 阿拉善左旗| 天柱县| 阳西县| 五莲县| 左云县| 江孜县| 浙江省| 石屏县| 安溪县| 开封县| 伊金霍洛旗| 营山县| 漳浦县| 霍州市| 平陆县| 西青区| 蓝山县| 历史| 宝山区| 永寿县| 丹巴县| 儋州市| 竹山县| 内丘县| 伊金霍洛旗| 五台县|