TW201721403A - 記憶體系統協定中提供檔案資訊之系統及方法 - Google Patents
記憶體系統協定中提供檔案資訊之系統及方法 Download PDFInfo
- Publication number
- TW201721403A TW201721403A TW105130433A TW105130433A TW201721403A TW 201721403 A TW201721403 A TW 201721403A TW 105130433 A TW105130433 A TW 105130433A TW 105130433 A TW105130433 A TW 105130433A TW 201721403 A TW201721403 A TW 201721403A
- Authority
- TW
- Taiwan
- Prior art keywords
- command
- commands
- data
- attributes
- post
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一種記憶體裝置包含一記憶體組件及控制器電路。該記憶體組件儲存資料且該控制器電路從一主機電子裝置接收一記憶體系統協定之一或多個命令。該一或多個命令包含至少一個寫入命令,該寫入命令包括待儲存於該記憶體組件中之一或多個資料區塊。此外,該一或多個命令包含與該一或多個資料區塊相關之後設資料、屬性或兩者。該控制器電路解釋且執行該一或多個命令。因此,該等區塊儲存於該記憶體組件中。此外,該記憶體裝置之該控制器電路可存取該後設資料、屬性或兩者。
Description
本發明大體係關於使用記憶體裝置來執行資料操作(例如,讀、寫)。更具體而言,本發明係關於在協定之資料操作期間提供來自一主機檔案系統之檔案後設資料及/或屬性,因此實現數個新的基於後設資料及/或屬性之功能性,此可改良系統層級效能及/或可靠性。
此段落旨在向讀者介紹可能與本發明之不同態樣相關之本技術之不同態樣,該等態樣在下文中描述及/或主張。據信此討論有助於向讀者提供背景資訊以促成對本發明之各種樣態之更佳理解。因此,應理解應據此閱讀此等陳述,而非作為先前技術之認可。 習知協定一般在一主機與記憶體裝置之間傳輸資料,其中具有相對較少的關於傳輸資料之情境資訊。因此,記憶體裝置之一控制器(例如,快閃轉譯層)儲存資料而不考慮資料之情境資訊(例如,後設資料及/或屬性)。舉例而言,在舊版資料放置技術中,情境資訊(諸如檔案識別符及/或後設資料旗標)不可用於記憶體裝置之控制器。因此,此情境資料不可用於檔案放置中。因此,此等舊版資料放置技術導致非基於資料之情境資訊之資料之不必要分段放置。此分段將導致較低效之資料儲存及/或存取。
將在下文中描述一或多個特定實施例。為努力提供此等實施例之一簡明描述,本說明書中並未描述一實際實施方案之所有特徵。應瞭解,在任何此實際實施方案的發展中,如在任何工程或設計項目中,必須作出大量實施方案特定決定以達成將隨不同實施方案變化之研發者的特定目標,諸如與系統相關及業務相關限制的相符性。再者,應瞭解,此一研發努力可能係複雜且耗時的,但對於具有獲利於本發明之一般技術者,該研發努力仍將係設計、製作及製造之一例常任務。概述
如將在下文中詳細討論,本發明大體係關於經由一記憶體系統協定提供與經傳送之資料區塊相關之情境檔案系統資料(例如,後設資料及/或屬性)至儲存該等資料區塊之協定之記憶體裝置。即,經由記憶體系統協定提供資料區塊之一主機裝置可調整特定操作以提供關於所提供資料之特定情境資訊至經由記憶體系統協定接收資料之一記憶體裝置。 圖1繪示一系統10,其根據一記憶體系統協定16 (例如,一嵌入式多媒體卡(eMMC)協定)經由一記憶體系統協定匯流排將來自一主機12之資料提供至一非揮發性管理記憶體系統14。在一項實施例中,記憶體系統協定16可係一基於封包協定,其實現記憶體裝置、運算裝置及類似物之間的資料封包之一有效(例如,功率有效、位元有效)傳輸。協定16可使用各種類型之記憶體及處理器(諸如自動機處理器、一記憶體內處理器、網路裝置、儲存設備、階層式記憶體、抽象記憶體及類似物)以數個組合實施。如本文中使用,處理器可包含能夠對一對應電子裝置執行可執行指令之任何適當處理器。協定16亦可促成一廣泛範圍之裝置,包含資料中心開關/路由器、網路路由器、行動裝置、儲存裝置、自動機處理器、流處理器、記憶體內處理器、移動工作處理器、大數據(Big Data)、大圖資(Big Graph)、安全記憶體、虛擬網路、一般抽象記憶體(例如,動態隨機存取記憶體(DRAM)、NAND及新興記憶體)及類似物。 主機裝置12不時可希望將資料從檔案系統18傳送(例如,寫入)資料至非揮發性管理記憶體系統14。舉例而言,可藉由提供來自主機裝置12之一驅動程式22之一或多個命令而將一或多個檔案20傳送至非揮發性管理記憶體系統14。命令可符合藉由記憶體系統協定16描述之特定命令。換言之,驅動程式22可根據記憶體系統協定16提供資料。 可在非揮發性管理記憶體系統14之控制器23處接收來自驅動程式22的根據記憶體系統協定16提供之命令。如可瞭解,控制器23可包含可根據控制器23之韌體24接收且解釋藉由記憶體系統協定16描述之命令之電路。換言之,控制器23可根據記憶體系統協定16接收且處理資料。在從主機裝置12接收資料之後,控制器23可將檔案20傳送至非揮發性管理記憶體系統14之非揮發性記憶體26。 如在當前實施例中繪示,主機裝置12可將一或多個檔案屬性28 (例如,與檔案20相關之情境資料及/或後設資料)提供至非揮發性管理記憶體系統14。舉例而言,如在下文中更詳細描述,驅動程式22可根據記憶體系統協定16提供命令,該等命令導致提供屬性28至非揮發性管理記憶體系統14之控制器23。因此,控制器23可將屬性28用於處理檔案20之功能。舉例而言,如相對於圖2及圖3更詳細討論,在一些實施例中,屬性28可包含經傳送之資料區塊之一檔案識別符,控制器23可使用該檔案識別符來以一更具有凝聚性、更少片段之一方式放置資料區塊(例如,檔案20之部分)。 使用本文提供之技術,控制器23可瞭解關於接收之資料區塊之額外資訊。舉例而言,資料區塊可與使控制器23能夠實施額外基於上下文之功能性之特定檔案識別符相關聯。圖2繪示一方塊圖40,其對比使用藉由主機裝置12使用記憶體系統協定命令提供之屬性28來實施之基於上下文檔案放置功能性與不使用屬性28之舊版檔案放置功能性。 在主機裝置12提供並行資料區塊寫入(例如,對於兩個不同檔案20A及20B之兩個不同資料區塊提供同時寫入命令)之情形中,在寫入操作期間使關於檔案識別之資訊與資料區塊相關聯可係有用的。為繪示此情境資料之優勢,提供舊版並行檔案寫入42A之放置結果44A以繪示與其中控制器(例如,圖1之控制器23)已知檔案識別符之並行檔案寫入42B之一比較。 如繪示,檔案20A及20B可藉由主機裝置12分別分為資料區塊46A及46B。資料區塊46A及46B可容許檔案20之較小部分從主機裝置12提供至非揮發性管理記憶體系統14。當檔案20A及20B之資料區塊46A及46B經由舊版技術(其中控制器不瞭解情境資料(例如,檔案屬性/後設資料,諸如一檔案識別符及/或後設資料旗標))並行提供至非揮發性管理記憶體系統14時,可交錯區塊46A及46B之放置,從而造成總檔案20A及20B之分段。舉例而言,如在結果44A中繪示,區塊46A與區塊46B交錯,此係因為隨著時間以一交錯方式接收區塊46A及46B之一些。因此,此等區塊46A及46B以一交錯方式放置於非揮發性管理記憶體系統14處。 相反地,如藉由結果44B繪示,當控制器瞭解情境資料(諸如與區塊46A及46B相關聯之檔案識別)時,控制器可基於與區塊46A及46B之各者相關聯之檔案識別將區塊46A及46B放置於記憶體26之不同部分(例如,部分48A及48B)中。舉例而言,如繪示,除隨著時間之區塊46A及46B之交錯接收外,區塊46A之各者放置於部分48A中且區塊46B之各者放置於部分48B中。 圖3係繪示圖2之基於上下文檔案放置功能性之效能改良之一曲線圖60。分段可對非揮發性管理記憶體系統14之讀取效能具有深遠影響。如在圖3中之作圖62繪示,在一舊版方法(其中控制器不瞭解檔案識別)下寫入之檔案導致增大的分段。分段與讀取操作之較低處理量相關。 然而,如藉由作圖64繪示,當使用本文描述之技術(其中根據控制器瞭解之檔案識別放置區塊)時,大幅減小分段。此資料放置可稱為檔案瞭解式記憶體系統(FAMS)。FAMS之減小的分段可導致讀取操作之較小之資料分段及較高之資料處理量。根據記憶體系統協定之實施方案
下列實施例繪示用於提供與在一寫入操作期間傳送至一記憶體裝置之資料區塊相關聯之情境資料(例如,檔案屬性/後設資料)之技術。可經由對應於一記憶體系統協定之訊息提供情境資料。舉例而言,下列描述係關於可在主機裝置(例如,圖1之主機裝置12)與一非揮發性記憶體裝置(例如,圖1之非揮發性管理記憶體系統14)之間提供之命令/資料,其中主機裝置12及非揮發性管理記憶體系統14根據一嵌入式多媒體卡(eMMC)協定通信。通信包含對應於從主機裝置12之一檔案系統寫入至管理記憶體系統14之資料之一或多個屬性及/或後設資料。eMMC協定包含可使命令佇列化之通信及/或在主機12與管理記憶體系統14之間提供單一命令之通信。下文之討論包含用於將情境資料傳輸至管理記憶體系統14之命令佇列化及單一命令實施例。 如可瞭解,在下列討論中,各種數量之資料可從主機裝置12傳輸至管理記憶體系統14。資料之臨限數量可根據一特定檔案系統18、從檔案系統18提供至控制器23之特定屬性28、韌體24或系統10之其他特性定義。舉例而言,在當前實施例中,8個位元組或16個位元組資料可用於描述一檔案識別符。此外,雖然下列實施例描述作為後設資料及/或屬性28傳遞之一檔案識別符及後設資料旗標,但在替代實施例中,可以類似於檔案識別符及後設資料旗標方式提供之一方式提供額外及/或替代後設資料及/或屬性28。此外,如下文討論,在下列實施例中,可使用記憶體系統協定16之現有命令來提供後設資料及/或屬性28,從而最小化額外命令、操作及/或暫存器改變,此可提供一更穩固及可再使用之系統10。 為使用協定16之寫入命令操作來實施至記憶體裝置之控制器23之後設資料及/或屬性的提供,提供將後設資料及/或屬性28提供至管理記憶體系統14之一特定寫入操作係一基於後設資料及/或屬性操作之一指示可係有用的。此一指示可幫助控制器23區分意在傳達資料區塊之命令與意在傳達後設資料及/或屬性28以及資料區塊之命令。如上文提及,在下列實施例中,將一檔案識別符及一後設資料旗標提供至控制器23。此等後設資料及/或屬性28如在圖2及圖3中討論般提供以實施基於檔案之寫入。因此,意在傳達情境資訊(例如,後設資料及/或屬性28)之命令之指示可在下列實施例中稱為一「基於檔案存取」指示。此外,後設資料及/或屬性28可稱為一「檔案識別符」及/或「後設資料旗標」,此係由於此等係下列實施例中提供之後設資料及/或屬性28。i . 命令佇列 化 實施例
現在參考用於使用命令佇列化技術來提供屬性及/或後設資料之特定實施例,圖4至圖15繪示特定命令佇列化實施例及程序,其等利用記憶體系統協定16之命令來提供對應於從主機裝置12提供至管理記憶體系統14之資料區塊之特定情境資料(例如,後設資料及/或屬性28)。在下列實施例中,後設資料及/或屬性28包含一檔案識別符及一後設資料旗標。然而,後設資料及/或屬性28不限於此資料。a . 在執行階段傳輸屬性之實施例
圖4至圖7繪示一未使用位元或特殊上下文識別符用來指示基於檔案之存取之實施例。在此等實施例中,在執行階段之開始傳送屬性。如本文描述,在一些例項中,在佇列化階段期間提供屬性之替代實施例可係更為所需的,此係由於該等屬性在任務執行之前係可用的。1. 指示基於檔案存取之未使用位元
首先從圖4開始,圖4繪示根據一實施例之用於使用記憶體系統協定之一命令中之一基於檔案存取請求位元來提供檔案後設資料之一詳細封包層級傳輸80。如在圖4中繪示,命令佇列化異動包含三個階段:一佇列化階段82、一輪詢階段84及一執行階段86。在佇列化階段82中,主機裝置12使用於在管理記憶體系統14處執行之所產生任務佇列化。在輪詢階段84中,主機裝置12可提供一輪詢詢問來判定經佇列化任務是否準備好在管理記憶體系統14處執行。當佇列化任務準備好執行時,執行階段86開始,導致準備好之佇列化任務的執行。 佇列化階段82包含協定16中指定之CMD44命令88及CMD45命令90。此等命令由主機12提供以使資料區塊寫入任務93及/或讀取任務95佇列化。 為使任務93及/或95佇列化,CMD44命令88從主機12提供至管理記憶體系統14。在接收CMD44命令88後,管理記憶體系統14將一認可回應89提供至主機12。作為回應,主機12提供一CMD45命令90。CMD45命令90可用於指示與命令佇列化模式中之任務95及/或93相關聯之一讀取及/或寫入操作之開始位址87。在裝置14處接收後,裝置14提供一後續回應91。 如繪示,在佇列化階段82期間,CMD44命令88可包含表示藉由協定16指定之特定項之32位後設資料。如繪示,位元0至15可指定區塊數目92,位元16至20可指定一任務ID 94,位元21及/或22可為未使用96 (例如,保留備將來之用)及/或可傳送一特定存取類型98,位元23可指示一優先級100,位元24可提供一強制程式化指示102,位元25至28可指示一上下文ID 104,位元29可提供一標記指示106,位元30可指示方向108,及/或位元31可指示一可靠寫入110。 在當前實施例中,在與寫入任務93相關聯之CMD44命令88中使用一未使用位元(例如,位元21或位元22)傳達基於檔案之存取指示符98。因此,在佇列化階段82期間傳送存取類型。未使用位元(例如,位元21或位元22)不時可重新定義為由協定16使用之一位元。因此,在使用一當前未使用位元(藉由協定16定義)之實施例中,可偶爾重新定義用於傳達基於檔案之存取指示符98之位元。舉例而言,若在協定16之一後續定義中,針對一不同功能性之使用定義位元22,則可使用位元21 (或其他後續未使用位元)傳達指示符98。 最後,主機12可排程一輪詢詢問(例如,輪詢階段84)。舉例而言,一系列CMD13命令112可由主機12提供至裝置14,以判定裝置是否準備開始執行階段86。裝置14用佇列狀態資訊114回應。主機12接著可決定佇列化任務是否準備好執行。 一旦接收裝置14準備好任務執行之一指示,則主機12可起始執行階段86。主機12可提供與佇列化任務93及/或95相關聯之一或多個CMD47命令116及/或CMD46命令118。 作為回應,裝置14可提供一回應至主機12。隨後,當主機12提供資料寫入(例如,使用CMD47命令116)時,資料區塊46及標頭120可由主機12提供至裝置14。寫入操作之標頭120可包含與藉由CMD47命令提供之資料區塊46相關聯之後設資料及/或屬性28。舉例而言,標頭可包含一檔案識別符及/或後設資料旗標。因為基於檔案之存取指示符98指示一基於檔案之存取指示,故裝置14可解釋標頭資訊包含後設資料及/或屬性28。 因為在實際資料傳送期間(例如,在資料傳送之標頭中)傳輸後設資料及/或屬性28,故若在資料傳送之前提供後設資料及/或屬性28,則裝置14可能無法利用可能可用的所有功能性。舉例而言,在一些場景中,當在資料傳送起始期間之前不瞭解後設資料時,基於後設資料放置資料區塊可係更困難的。因此,下文之特定實施例討論在資料傳送之前提供後設資料之可能性。 圖5繪示根據一實施例之用於使用一CMD44命令88之一未使用位元來提供後設資料及/或屬性28之一程序140。如上文提及,可藉由佇列化階段82使一或多個任務(例如,讀取及/或寫入)佇列化。佇列化命令可包含命令之未使用位元中之一指示符98 (方塊142)。舉例而言,在圖4中,寫入任務93包含位元22中之指示符98,位元22係協定定義中之一當前未使用位元。 接著,起始輪詢階段84以判定任務93及/或95之哪個及多少準備好實施。舉例而言,裝置14可提供使主機12能夠判定準備好實施之任務93及/或95之佇列狀態資訊114。 當裝置14準備好執行特定任務93及/或95時,執行階段86開始。從主機12至裝置14執行任務93及/或95。如在圖5中指示,在資料傳送期間,後設資料及/或屬性28經提供於標頭中(方塊144)。因此,在執行階段提供後設資料及/或屬性28。在一些實施例中,此可限制裝置14之特定功能性,然而,在其他實施例中,在執行階段提供之後設資料及/或屬性28可能亦係有用的。2. 指示基於檔案存取之特殊上下文識別符
替代實施例可使用協定命令之其他部分來指示後設資料及/或屬性28提供操作。圖6繪示根據一實施例之用於使用記憶體系統協定16之一命令中之一專用上下文識別符來提供檔案後設資料之一詳細封包層級傳輸160。 類似於圖4之實施例,圖6繪示命令佇列化異動,其包含三個階段:一佇列化階段82、一輪詢階段84及一執行階段86。佇列化階段82包含由主機12提供來使資料區塊寫入任務93及/或讀取任務95佇列化之CMD44協定16命令88及CMD45協定16命令90。 為使任務93及/或95佇列化,CMD44命令88從主機12提供至管理記憶體系統14。在接收CMD44命令88後,管理記憶體系統14將一認可回應89提供至主機12。作為回應,主機12提供一CMD45命令90。CMD45命令90可用於指示與命令佇列化模式中之任務93及/或95相關聯之經佇列化讀取及/或寫入操作之一開始位址87。在裝置14處接收後,裝置14提供一後續回應91。 類似於圖4之實施例,在佇列化階段82期間,CMD44命令88可包含表示藉由協定16指定之特定項之32位元後設資料。如繪示,位元0至15可指定區塊數目92,位元16至20可指定一任務ID 94,位元21及/或22可為未使用96 (例如,保留備將來之用),位元23可指示一優先級100,位元24可提供一強制程式化指示102,位元25至28可指示一上下文ID 164,位元29可提供一標記指示106,位元30可指示方向,及/或位元31可指示一可靠寫入。 在當前實施例中,藉由指定與寫入任務93相關聯之CMD44命令88之位元25至28中之一專用上下文識別符164而傳達基於檔案之存取指示符98。因此,在佇列化階段82期間傳送存取類型。 最後,主機12可排程一輪詢詢問(例如,輪詢階段84)。舉例而言,一系列CMD13命令112可由主機12提供至裝置14,以判定裝置是否準備開始執行階段86。裝置14用佇列狀態資訊114回應。主機12接著可決定佇列化任務是否準備好執行。 一旦接收裝置14準備好任務執行之一指示,則主機12可起始執行階段86。主機12可提供一或多個CMD47命令116及/或CMD46命令118。作為回應,裝置14可提供一回應至主機12。隨後,當主機12提供資料寫入(例如,使用CMD47命令116)時,資料區塊46及標頭120可由主機12提供至裝置14。寫入操作之標頭120可包含與藉由CMD47命令提供之資料區塊相關聯之後設資料及/或屬性28 (或後設資料及/或屬性28之部分28A及/或28B)。舉例而言,標頭可包含一檔案識別符及/或後設資料旗標。因為專用上下文指示符指示一基於檔案之存取指示,故裝置14可解釋標頭資訊包含後設資料及/或屬性28。 類似於圖4之實施例,因為在實際資料傳送期間(例如,在資料傳送之標頭中)傳輸後設資料及/或屬性28,故若在資料傳送之前提供後設資料及/或屬性28,則裝置14可能無法利用可能可用的所有功能性。舉例而言,當在執行階段之資料傳送起始之前不瞭解後設資料及/或屬性28時,基於後設資料及/或屬性28放置資料區塊可係更困難的。因此,下文之特定實施例討論在資料傳送之前提供後設資料及/或屬性28之可能性。 圖7繪示根據一實施例之用於使用一CMD44命令88之一專用上下文識別符來提供後設資料之一程序180。如上文提及,可藉由佇列化階段82使一或多個任務(例如,讀取及/或寫入)佇列化。佇列化命令可藉由提供命令中之一專用上下文識別符164而包含一指示符98 (方塊182)。舉例而言,在圖6中,寫入任務93包含作為CMD44 88之位元25至28中之一專用上下文識別符164之指示符98。 接著,起始輪詢階段84以判定任務93及/或95之哪個及多少準備好實施。舉例而言,裝置14可提供使主機12能夠判定準備好實施之任務93及/或95之佇列狀態資訊114。 當裝置14準備好執行特定任務93及/或95時,執行階段86開始。從主機12至裝置14執行任務93及/或95。如在圖7中指示,在資料傳送期間,後設資料及/或屬性28經提供於標頭中(方塊184)。因此,在執行階段提供後設資料及/或屬性28。在一些實施例中,此可限制裝置14之特定功能性,然而,在其他實施例中,在執行階段提供之後設資料及/或屬性28可能亦係有用的。 如上文提及,在執行階段86之前提供後設資料及/或屬性28可係有用的。舉例而言,較早提供後設資料及/或屬性28可使後設資料及/或屬性28能夠在執行階段86期間被使用。下列實施例繪示用於在執行階段86之前(例如,在佇列化階段82期間)提供後設資料及/或屬性28之技術。此可(例如)藉由提供指示一寫入操作93與後設資料及/或屬性28傳輸相關之一上下文指示而完成。接著可經由佇列化階段82中之一或多個命令提供後設資料及/或屬性28。b . 在佇列化階段傳輸屬性之實施例
如上文提及,在特定實施例中,在佇列化階段期間,可從主機裝置12將屬性傳送至管理記憶體系統14。在佇列化階段期間傳送屬性可比在執行階段期間傳送屬性更為所需的,此係由於屬性在執行階段中之任務執行之前係可用的。1. 經由 CMD44 傳輸一存取類型及屬性
舉例而言,參考圖6,在一些實施例中,可藉由一未使用位元(例如,保留備將來之用之一位元,諸如位元21)提供檔案存取類型指示符98。後設資料旗標可提供於標記指示106中(例如,在位元29處)。因此,可在執行階段86之前在佇列化階段82中經由CMD44命令88提供後設資料旗標。 此外,在一些實施例中,標記指示106 (例如,在位元29處)及未使用位元96 (例如,在位元21及或22處)可結合上下文識別符164 (例如,在位元25至28處)使用以提供即刻分區存取以及本文描述之基於檔案存取。舉例而言,未使用位元96可用作一即刻分區存取旗標162。即刻分區存取旗標可指示上下文識別符164表示一舊版上下文識別符(例如,藉由設定為「0」)或上下文識別符164表示即刻存取之一目標分區(例如,藉由設定為「1」)。在此等實施例中,未使用位元96 (例如,位元22)亦可用作一基於檔案之存取指示符166 (例如,以指示正傳輸後設資料及/或屬性28)。當基於檔案之存取指示符設定為「1」時,標記指示符106可描述經由上下文識別符164提供哪些後設資料及/或屬性28。舉例而言,當指示符166設定為「1」且標記指示符29設定為「0」時,所傳輸之資訊可係與資料區塊相關聯之檔案識別符。當標記指示符29設定為「1」時,所傳輸之資訊可係與資料相關聯之一後設資料旗標。 當指示符166設定為「1」且即刻分區存取指示符162設定為「0」時,實施基於檔案無即刻分區之存取。此外,當指示符166設定為「1」且即刻分區存取指示符162設定為「1」時,實施基於檔案及即刻分區存取。2. 經由一新的命令傳輸一存取類型及屬性
現在參考引入一新的命令以用於協定16通信中之一實施例,圖8繪示根據一實施例之用於使用指定存取類型及後設資料之記憶體系統協定之一新的命令來提供檔案後設資料之一詳細封包層級傳輸200。類似於其他命令佇列化實施例,傳輸200包含一佇列化階段82、一輪詢階段84及一執行階段86。 不同於圖4及圖6之實施例,在佇列化階段82中,當前實施例提供基於檔案之存取指示符及後設資料及/或屬性28 (例如,檔案識別符及/或後設資料旗標)兩者。此藉由引入一新的命令碼(例如,CMD58 202)完成,該命令碼可提供基於檔案之存取指示符98以及提供一標頭(例如,一4位元組標頭),該標頭含有後設資料及/或屬性28 (或後設資料及/或屬性之部分28A、28B等)。 CMD58命令202可替換CMD44命令(例如,圖4及圖6之命令88)。類似於在圖4及圖6中藉由接收CMD44命令88觸發之回應,在接收及/或處理CMD58命令202之後,裝置14可提供一回應89至主機12。此外,可在佇列化階段82中提供任何數目之CMD58命令202。CMD45命令90可用於指示與任務93及/或95相關聯之一讀取及/或寫入操作之一開始位址87。 最後,主機12可排程一輪詢詢問(例如,輪詢階段84)。舉例而言,一系列CMD13命令112可由主機12提供至裝置14,以判定裝置是否準備開始執行階段86。裝置14用佇列狀態資訊114回應。主機12接著可決定佇列化任務是否準備好執行。 一旦接收裝置14準備好任務執行之一指示,則主機12可起始執行階段86。主機12可提供一或多個CMD47命令116及/或CMD46命令118。作為回應,裝置14可提供一回應至主機12。隨後,當主機12提供資料寫入(例如,使用CMD47命令116)時,資料區塊46可由主機12提供至裝置14。 不同於圖4及圖6之實施例,後設資料及/或屬性26在佇列化階段82期間傳輸,且因此可用於在執行階段86期間使用。因此,後設資料及/或屬性28可用於促成在圖2之討論中描述之基於檔案後設資料及/或屬性28之放置技術。 圖9繪示根據一實施例之用於使用一新的命令(例如,圖8之CMD58 202)提供後設資料之一程序220。如上文提及,可藉由佇列化階段82使一或多個任務(例如,讀取及/或寫入)佇列化。佇列化命令202可接受可在佇列化階段82期間提供至裝置14之一指示符98及/或後設資料及/或屬性28。舉例而言,在圖8中,使用CMD58 202使寫入任務93佇列,CMD58 202提供指示符98、檔案識別符及/或一後設資料旗標(方塊222)。 接著,起始輪詢階段84以判定任務93及/或95之哪個及多少準備好實施。舉例而言,裝置14可提供使主機12能夠判定準備好實施之任務93及/或95之佇列狀態資訊114。 當裝置14準備好執行特定任務93及/或95時,執行階段86開始。從主機12至裝置14執行任務93及/或95。如在圖8中指示,在佇列化階段期間,在標頭中提供後設資料及/或屬性28。因此,後設資料及/或屬性28可在執行階段期間使用。3. 經由一上下文識別符傳輸一存取類型
如上文,具有一客製化佇列化命令之一些實施例可使用一專用上下文識別符來指示基於檔案存取。圖10至圖15繪示根據實施例之用於使用指定上下文及後設資料之記憶體系統協定之一系列命令來提供檔案後設資料之一詳細封包層級傳輸。 A. 經由一新的命令傳輸屬性 首先開始圖10之實施例,圖10繪示用於使用與一新的命令242 (例如,一CMD57命令)組合之一專用上下文識別符164來提供檔案後設資料及/或屬性28之一詳細封包層級傳輸240。 再次,封包層級傳輸240包含一佇列化階段82、一輪詢階段84及一執行階段86。在當前實施例中,指示符98可係使用一CMD44命令88傳送至裝置14之一專用上下文識別符164。另外,可使用一新的命令242 (例如,一CMD57命令)在區塊(例如,4位元組區塊,如繪示)中提供後設資料及/或屬性28。新的命令242在命令佇列化階段82期間發佈以將標頭(例如,具有後設資料及/或屬性28)傳送至裝置14。因此,類似於圖8之實施例,當前實施例在執行階段86之前傳送後設資料及/或屬性28,從而實現執行階段86期間之後設資料及/或屬性28之使用。 最後,主機12可排程一輪詢詢問(例如,輪詢階段84)。舉例而言,一系列CMD13命令112可由主機12提供至裝置14,以判定裝置是否準備開始執行階段86。裝置14用佇列狀態資訊114回應。主機12接著可決定佇列化任務是否準備好執行。 一旦接收裝置14準備好任務執行之一指示,則主機12可起始執行階段86。主機12可提供一或多個CMD47命令116及/或CMD46命令118。作為回應,裝置14可提供一回應117至主機12。隨後,當主機12提供資料寫入(例如,使用CMD47命令116)時,資料區塊46可由主機12提供至裝置14。 不同於圖4及圖6之實施例,後設資料及/或屬性26在佇列化階段82期間傳輸,且因此可用於在執行階段86期間使用。因此,後設資料及/或屬性28可用於促成在圖2之討論中描述之基於檔案後設資料及/或屬性28之放置技術。 圖11繪示根據一實施例之用於使用一新的命令(例如,圖8之CMD57 242)來提供一專用上下文識別符164指示符98及後設資料及/或屬性28之一程序260。如上文提及,可藉由佇列化階段82使一或多個任務(例如,讀取及/或寫入)佇列化。佇列化命令202可經由一專用上下文識別符164提供一指示符98 (方塊262)。此外,一新的佇列化命令242可在佇列化階段82期間將後設資料及/或屬性28提供至裝置14 (方塊264)。舉例而言,在圖10中,使用一CMD44命令88中之一專用上下文識別符164來使寫入任務93佇列化且使用一新的命令242 (例如,CMD57)來提供後設資料及/或屬性28。 接著,起始輪詢階段84以判定任務93及/或95之哪個及多少準備好實施。舉例而言,裝置14可提供使主機12能夠判定準備好實施之任務93及/或95之佇列狀態資訊114。 當裝置14準備好執行特定任務93及/或95時,執行階段86開始。從主機12至裝置14執行任務93及/或95。如在圖10中指示,在佇列化階段期間,在標頭中提供後設資料及/或屬性28。因此,後設資料及/或屬性28可在執行階段期間使用。 B. 經由若干CMD45命令傳輸屬性 圖12繪示根據一實施例之用於使用一或多個CMD45命令90及一指示符98經由一專用上下文識別符164提供檔案後設資料及/或屬性28之一詳細封包層級傳輸280。在圖12之實施例中,佇列化階段82包含CMD44命令88及CMD45命令90。CMD44命令88經由一專用上下文識別符164提供一指示符98。此外,CMD45命令90提供後設資料及/或屬性28之至少一部分。舉例而言,在所繪示之實施例中,經由兩個CMD45命令90提供8個位元組後設資料及/或屬性28之4個位元組區塊。如上文,CMD44命令88引起一回應89且CMD45命令90引起來自裝置14之一回應91。在後設資料及/或屬性28之傳送之後,一後續CMD45命令90可用於提供與任務93及/或95相關聯之佇列化操作之一開始位址87。 由此,可類似於圖10之實施例實施輪詢階段及執行階段。最後,主機12可排程一輪詢詢問(例如,輪詢階段84)。舉例而言,可由主機12提供一系列CMD13命令112至裝置14,以判定裝置是否準備開始執行階段86。裝置14用佇列狀態資訊114回應。主機12接著可決定佇列化任務是否準備好執行。 一旦接收裝置14準備好任務執行之一指示,則主機12可起始執行階段86。主機12可提供一或多個CMD47命令116及/或CMD46命令118。作為回應,裝置14可提供一回應117至主機12。隨後,當主機12提供資料寫入(例如,使用CMD47命令116)時,資料區塊46可由主機12提供至裝置14。 後設資料及/或屬性26在佇列化階段82期間傳輸,且因此可用於在執行階段86期間使用。因此,後設資料及/或屬性28可用於促成在圖2之討論中描述之基於檔案後設資料及/或屬性28之放置技術。 圖13繪示根據一實施例之用於使用CMD45命令90來提供一專用上下文識別符164指示符98及後設資料及/或屬性28之一程序300。如上文提及,可藉由佇列化階段82使一或多個任務(例如,讀取及/或寫入)佇列化。佇列化命令202可經由一專用上下文識別符164提供一指示符98 (方塊302)。此外,CMD45命令90可在佇列化階段82期間將後設資料及/或屬性28提供至裝置14 (方塊304)。舉例而言,在圖12中,使用一CMD44命令88中之一專用上下文識別符164來使寫入任務93佇列化且使用CMD45命令90來提供後設資料及/或屬性28。藉由再使用CMD45命令90,不需要引入新的命令來提供後設資料及/或屬性28。 接著,起始輪詢階段84以判定任務93及/或95之哪個及多少準備好實施。舉例而言,裝置14可提供使主機12能夠判定準備好實施之任務93及/或95之佇列狀態資訊114。 當裝置14準備好執行特定任務93及/或95時,執行階段86開始。從主機12至裝置14執行任務93及/或95。如在圖12中指示,在佇列化階段期間,在標頭中提供後設資料及/或屬性28。因此,後設資料及/或屬性28可在執行階段期間使用。 C. 經由若干CMD44/45對傳輸屬性 在一些實施例中,命令對可用於提供指示符98及後設資料及/或屬性28。圖14繪示此一實施例320。在圖14中,佇列化階段82包含CMD44命令88及CMD45命令90之對322。在一些實施例中,CMD44命令88經由一專用上下文識別符164提供一指示符98。替代地,可經由CMD44命令88中之另一位元(例如,位元22)提供一檔案存取類型指示符98。此外,CMD45命令90提供後設資料及/或屬性28之至少一部分。舉例而言,在所繪示之實施例中,可在將一整個檔案識別及/或後設資料旗標提供至裝置14之前提供對322。如上文,CMD44命令88引起一回應89且CMD45命令90引起來自裝置14之一回應91。在後設資料及/或屬性28之傳送之後,一後續CMD45命令90可用於提供與任務93及/或95相關聯之佇列化操作之一開始位址87。 由此,可類似於圖10及圖12之實施例實施輪詢階段及執行階段。最後,主機12可排程一輪詢詢問(例如,輪詢階段84)。舉例而言,一系列CMD13命令112可由主機12提供至裝置14,以判定裝置是否準備開始執行階段86。裝置14用佇列狀態資訊114回應。主機12接著可決定佇列化任務是否準備好執行。 一旦接收裝置14準備好任務執行之一指示,則主機12可起始執行階段86。主機12可提供每一對322之一或多個CMD47命令116及/或CMD46命令118。作為回應,裝置14可提供一回應117至主機12。隨後,當主機12提供資料寫入(例如,使用CMD47命令116)時,資料區塊46可由主機12提供至裝置14。4. 經由 CMD44/CMD45/CMD46 序列傳輸一存取類型及屬性
基於CMD44/45配對實施例320,在一些實施例中,一CMD48可用於擴展命令佇列化功能性及/或增強任務管理及裝置管理功能。可經由CMD44命令88之一未使用位元(例如,保留備將來之用之一位元,諸如圖6之位元22處之未使用位元96)添加一命令佇列化擴展位元(CQEXT位元)。當CQEST位元設定為「1」時,對322後可接著一CMD48命令,該CMD48命令可描述(例如)一檔案識別符散列、後設資料旗標等。CMD48命令可與一或多個任務描述符排齊且可產生新的任務管理描述符來描述一檔案識別符散列及/或後設資料旗標任務。 後設資料及/或屬性26在佇列化階段82期間傳輸,且因此可用於在執行階段86期間使用。因此,後設資料及/或屬性28可用於促成在圖2之討論中描述之基於檔案後設資料及/或屬性28之放置技術。 圖15繪示根據一實施例之用於經由一專用上下文識別符164提供一指示符98且使用CMD45命令90來提供後設資料及/或屬性28之一程序340。如上文提及,可藉由佇列化階段82使一或多個任務(例如,讀取及/或寫入)佇列化。佇列化命令202可經由一CMD44命令88之一專用上下文識別符164提供一指示符98且經由一或多個對應CMD45命令90將後設資料及/或屬性28提供至裝置14。CMD44命令88及CMD45命令90可經配對且經提供為一配對單元(方塊342)。可在佇列化階段82期間之所有後設資料及/或屬性之前提供額外對(例如,如藉由決定方塊344判定)。 接著,起始輪詢階段84以判定任務93及/或95之哪個及多少準備好實施。舉例而言,裝置14可提供使主機12能夠判定準備好實施之任務93及/或95之佇列狀態資訊114。 當裝置14準備好執行特定任務93及/或95時,執行階段86開始。從主機12至裝置14執行任務93及/或95。如在圖14中指示,在佇列化階段期間,在標頭中提供後設資料及/或屬性28。因此,後設資料及/或屬性28可在執行階段期間使用。 ii. 非命令佇列化實施例
現已討論涉及命令佇列化之實施例,現在討論非命令佇列化實施例,其中由主機12發送一單一命令至裝置14。對於非命令佇列化實施例,可存在用於傳輸後設資料及/或屬性28之多個選項。舉例而言,一個選項係經由一寫入操作之一標頭提供後設資料及/或屬性28。另外,暫存器(諸如一擴展卡特定資料(CSD)暫存器(EXT_CSD暫存器))可用於傳送後設資料及/或屬性28。此外,另一選項可係擴展一封裝命令機制來實現後設資料及/或屬性28之傳輸。a . 基於標頭之異動
首先參考基於標頭後設資料及/或屬性28傳輸之一討論,圖16繪示根據一實施例之用於使用記憶體系統協定之一基於標頭異動來提供檔案後設資料及/或屬性28之一詳細封包層級傳輸360。如在圖16中繪示,可從主機12提供一或多個CMD23命令362至裝置14以描述將在一寫入操作中寫入之區段之數目。 協定16可定義CMD23命令362之一特定位元結構364。舉例而言,位元0至15可包含寫入操作之數個資料區塊之一識別366。位元16至22可皆為「0」,如藉由368指示。位元23在協定16中可係未使用的。因此,位元23可經指派以提供寫入操作是否係一特殊寫入(例如,後設資料及/或屬性28之寫入)之一指示370。可在位元24中提供強制程式化資料372。可在位元25至28中提供一上下文識別符374。可在位元29中提供一標記376。可在位元30中提供封裝命令資料378且可在位元31中提供一可靠寫入指示符380。 由於主機12期望提供新的寫入操作至裝置14,故一或多個CMD23命令362經提供至裝置14。當將提供後設資料及/或屬性28時位元23處之指示370可設定為「1」。 回應於CMD23命令362,裝置14可提供一回應382,指示CMD23命令362經接收及/或裝置14準備好接收實際寫入操作。在接收回應382後,主機12可提供一寫入命令開始位址(例如,一CMD25命令384),其可觸發實際資料寫入操作。此外,在從裝置14接收一CMD25回應390之後,主機可收集後設資料及/或其他屬性28 (例如,一檔案識別符及/或一後設資料旗標)且提供後設資料及/或其他屬性28。舉例而言,如繪示,一寫入標頭392之提供可先於資料區塊46之提供。 如繪示,寫入標頭392可併入後設資料及/或屬性28 (諸如檔案識別符386及/或後設資料旗標388)。因此,在提供標頭392之後,裝置14可存取後設資料及/或屬性28。b . 基於暫存器之組態
在一些實施例,後設資料及/或屬性28可在寫入操作之前提供至裝置14之一暫存器,而非在寫入操作期間傳輸後設資料及/或屬性28。舉例而言,圖17繪示根據一實施例之用於使用記憶體系統協定之一基於暫存器異動(例如,一CMD6命令412)來提供檔案後設資料之一詳細封包層級傳輸410。CMD6命令412可用於提供特定後設資料及/或屬性28 (例如,檔案識別413)至一暫存器(例如,擴展卡特定資料(CSD)暫存器414)。在當前實施例中,擴展CSD暫存器414之8個未使用位元組(例如,位元組7至14)用於編碼檔案識別符413。 在接收且處理CMD6命令412之後,裝置14可提供一回應416至主機12。回應416可指示是否成功處理CMD6命令412。 隨後,一CMD23命令418可提供一後續寫入命令之上下文。舉例而言,CMD23命令418可提供一後續命令係一檔案識別更新422之一指示420或一後續命令係一後設資料旗標更新426之一指示424。在當前實施例中,位元23及22分別提供指示420及424。在替代實施例中,任何未使用位元可用於提供指示420及424。 可回應於接收且處理CMD23命令418提供一回應428。在接收回應428之後,主機12可判定可進行寫入操作。因此,一CMD25命令384可經提供至裝置14。CMD25可包含檔案識別符更新及/或後設資料旗標更新之一開始位址。 在接收及/或處理CMD25命令384之後,裝置14可提供一回應428至主機12。主機接著可發送資料區塊46至裝置14。c . 封裝命令擴展
在一些實施例中,後設資料及/或屬性28可具備封裝命令功能性。封裝命令容許一單一異動中之多個寫入操作。圖18繪示根據一實施例之用於使用記憶體系統協定16之封裝命令擴展來提供檔案後設資料及/或屬性28之一詳細封包層級傳輸450。 如上文,協定16可定義CMD23命令362之一特定位元結構364。舉例而言,位元0至15可包含寫入操作之數個資料區塊之一識別366。位元16至22可皆為「0」,如藉由368指示。位元23在協定16中可係未使用的。可在位元24中提供強制程式化資料372。可在位元25至28中提供一上下文識別符374。可在位元29中提供一標記376。可在位元30中提供封裝命令資料378且可在位元31中提供可靠寫入指示符380。 由於主機12期望提供封裝操作至裝置14,故一或多個CMD23命令362經提供至裝置14。CMD23命令362包含封裝操作452。 回應於CMD23命令362,裝置14可提供一回應382,指示CMD23命令362經接收及/或裝置14準備好接收實際寫入操作。在接收回應382後,主機12可提供一寫入命令(例如,一CMD25命令384),其可觸發實際資料寫入操作。此外,在從裝置14接收一CMD25回應390之後,主機可收集後設資料及/或其他屬性28 (例如,一檔案識別符422及/或一後設資料旗標426)且提供後設資料及/或其他屬性28。舉例而言,如繪示,一封裝命令標頭454之提供可先於資料區塊46之提供。封裝命令標頭454可包含一版本欄位456,該版本欄位456可充當將執行一特殊寫入(例如,一基於檔案存取)之一指示98。舉例而言,協定可定義版本為0。因此,版本可從零修改以提供指示98。 當存在指示98時,可從封裝命令標頭454獲得後設資料及/或屬性28。舉例而言,在當前實施例中,位元組8至23含有檔案識別符更新422且位元組24包含後設資料旗標更新426。 如繪示,寫入標頭392可併入後設資料及/或屬性28 (諸如檔案識別符386及/或後設資料旗標388)。因此,在提供標頭392之後,裝置14可存取後設資料及/或屬性28。 使用本文提供之技術,後設資料及/或屬性28可從一操作系統(例如,一主機12)之更高層級提供至一非揮發性管理記憶體系統14。此後設資料及/或屬性28可實現管理記憶體系統14處之新的功能性,從而導致管理記憶體系統14中之增大的效率。 雖然本文描述之實施例可具有各種修改及替代形式,但特定實施例已在圖式中藉由實例展示且已在本文中詳細描述。然而,應理解,本發明不旨在限於所揭示之特定形式。實情係,本發明將涵蓋落入由下列隨附申請專利範圍定義之本發明中描述之技術及系統之精神及範疇內之所有修改、等效物及替代例。
10‧‧‧系統
12‧‧‧主機裝置
14‧‧‧非揮發性管理記憶體系統
16‧‧‧記憶體系統協定
18‧‧‧檔案系統
20‧‧‧檔案
20A‧‧‧檔案
20B‧‧‧檔案
22‧‧‧驅動程式
23‧‧‧控制器
24‧‧‧韌體
26‧‧‧非揮發性記憶體
28‧‧‧屬性
28A‧‧‧部分
28B‧‧‧部分
40‧‧‧方塊圖
42A‧‧‧舊版並行檔案寫入
42B‧‧‧並行檔案寫入
44A‧‧‧結果
44B‧‧‧結果
46‧‧‧資料區塊
46A‧‧‧資料區塊
46B‧‧‧資料區塊
48A‧‧‧部分
48B‧‧‧部分
60‧‧‧曲線圖
80‧‧‧詳細封包層級傳輸
82‧‧‧佇列化階段
84‧‧‧輪詢階段
86‧‧‧執行階段
87‧‧‧開始位址
88‧‧‧CMD44命令
89‧‧‧回應
90‧‧‧CMD45命令
91‧‧‧回應
92‧‧‧區塊數目
93‧‧‧寫入任務
94‧‧‧任務ID
95‧‧‧讀取任務
96‧‧‧未使用位元
98‧‧‧指示符
100‧‧‧優先級
102‧‧‧強制程式化指示
104‧‧‧上下文ID
106‧‧‧標記指示
112‧‧‧CMD13命令
114‧‧‧佇列狀態資訊
116‧‧‧CMD47命令
117‧‧‧回應
118‧‧‧CMD46命令
120‧‧‧標頭
140‧‧‧程序
142‧‧‧方塊
144‧‧‧方塊
160‧‧‧詳細封包層級傳輸
162‧‧‧即刻分區存取指示符
164‧‧‧上下文識別符
166‧‧‧基於檔案之存取指示符
180‧‧‧程序
182‧‧‧方塊
184‧‧‧方塊
200‧‧‧詳細封包層級傳輸
202‧‧‧CMD58命令
220‧‧‧程序
222‧‧‧方塊
240‧‧‧詳細封包層級傳輸
242‧‧‧新的命令
260‧‧‧程序
262‧‧‧方塊
264‧‧‧方塊
280‧‧‧詳細封包層級傳輸
300‧‧‧程序
302‧‧‧方塊
304‧‧‧方塊
320‧‧‧實施例
322‧‧‧對
340‧‧‧程序
342‧‧‧方塊
344‧‧‧決定方塊
360‧‧‧詳細封包層級傳輸
362‧‧‧CMD23命令
364‧‧‧特定位元結構
366‧‧‧識別
368‧‧‧「0」
370‧‧‧指示
372‧‧‧強制程式化資料
374‧‧‧上下文識別符
376‧‧‧標記
378‧‧‧封裝命令資料
380‧‧‧可靠寫入指示符
382‧‧‧回應
384‧‧‧CMD25命令
386‧‧‧檔案識別符
388‧‧‧後設資料旗標
390‧‧‧CMD25回應
392‧‧‧寫入標頭
410‧‧‧詳細封包層級傳輸
412‧‧‧CMD6命令
413‧‧‧檔案識別
414‧‧‧擴展卡特定資料(CSD)暫存器
416‧‧‧回應
418‧‧‧CMD23命令
420‧‧‧指示
424‧‧‧指示
426‧‧‧後設資料旗標更新
428‧‧‧回應
450‧‧‧詳細封包層級傳輸
452‧‧‧封裝操作
454‧‧‧封裝命令標頭
456‧‧‧版本欄位
12‧‧‧主機裝置
14‧‧‧非揮發性管理記憶體系統
16‧‧‧記憶體系統協定
18‧‧‧檔案系統
20‧‧‧檔案
20A‧‧‧檔案
20B‧‧‧檔案
22‧‧‧驅動程式
23‧‧‧控制器
24‧‧‧韌體
26‧‧‧非揮發性記憶體
28‧‧‧屬性
28A‧‧‧部分
28B‧‧‧部分
40‧‧‧方塊圖
42A‧‧‧舊版並行檔案寫入
42B‧‧‧並行檔案寫入
44A‧‧‧結果
44B‧‧‧結果
46‧‧‧資料區塊
46A‧‧‧資料區塊
46B‧‧‧資料區塊
48A‧‧‧部分
48B‧‧‧部分
60‧‧‧曲線圖
80‧‧‧詳細封包層級傳輸
82‧‧‧佇列化階段
84‧‧‧輪詢階段
86‧‧‧執行階段
87‧‧‧開始位址
88‧‧‧CMD44命令
89‧‧‧回應
90‧‧‧CMD45命令
91‧‧‧回應
92‧‧‧區塊數目
93‧‧‧寫入任務
94‧‧‧任務ID
95‧‧‧讀取任務
96‧‧‧未使用位元
98‧‧‧指示符
100‧‧‧優先級
102‧‧‧強制程式化指示
104‧‧‧上下文ID
106‧‧‧標記指示
112‧‧‧CMD13命令
114‧‧‧佇列狀態資訊
116‧‧‧CMD47命令
117‧‧‧回應
118‧‧‧CMD46命令
120‧‧‧標頭
140‧‧‧程序
142‧‧‧方塊
144‧‧‧方塊
160‧‧‧詳細封包層級傳輸
162‧‧‧即刻分區存取指示符
164‧‧‧上下文識別符
166‧‧‧基於檔案之存取指示符
180‧‧‧程序
182‧‧‧方塊
184‧‧‧方塊
200‧‧‧詳細封包層級傳輸
202‧‧‧CMD58命令
220‧‧‧程序
222‧‧‧方塊
240‧‧‧詳細封包層級傳輸
242‧‧‧新的命令
260‧‧‧程序
262‧‧‧方塊
264‧‧‧方塊
280‧‧‧詳細封包層級傳輸
300‧‧‧程序
302‧‧‧方塊
304‧‧‧方塊
320‧‧‧實施例
322‧‧‧對
340‧‧‧程序
342‧‧‧方塊
344‧‧‧決定方塊
360‧‧‧詳細封包層級傳輸
362‧‧‧CMD23命令
364‧‧‧特定位元結構
366‧‧‧識別
368‧‧‧「0」
370‧‧‧指示
372‧‧‧強制程式化資料
374‧‧‧上下文識別符
376‧‧‧標記
378‧‧‧封裝命令資料
380‧‧‧可靠寫入指示符
382‧‧‧回應
384‧‧‧CMD25命令
386‧‧‧檔案識別符
388‧‧‧後設資料旗標
390‧‧‧CMD25回應
392‧‧‧寫入標頭
410‧‧‧詳細封包層級傳輸
412‧‧‧CMD6命令
413‧‧‧檔案識別
414‧‧‧擴展卡特定資料(CSD)暫存器
416‧‧‧回應
418‧‧‧CMD23命令
420‧‧‧指示
424‧‧‧指示
426‧‧‧後設資料旗標更新
428‧‧‧回應
450‧‧‧詳細封包層級傳輸
452‧‧‧封裝操作
454‧‧‧封裝命令標頭
456‧‧‧版本欄位
在閱讀以下實施方式及參考圖式之後將更佳理解本發明之各種態樣,其中: 圖1繪示根據一實施例之一運算系統之一實例之一方塊圖; 圖2繪示根據一實施例之使用一記憶體系統協定實施之基於後設資料檔案放置功能性之一實例之一方塊圖; 圖3繪示與舊版檔案放置技術對比之圖2之基於後設資料檔案放置功能性之效能改良; 圖4繪示根據一實施例之用於使用記憶體系統協定之一命令中之一基於檔案存取請求位元來提供檔案後設資料之一詳細封包層級傳輸; 圖5繪示根據一實施例之圖4之詳細封包層級傳輸之一流程圖; 圖6繪示根據一實施例之用於使用記憶體系統協定之一命令中之一專用上下文識別符來提供檔案後設資料之一詳細封包層級傳輸; 圖7繪示根據一實施例之圖6之詳細封包層級傳輸之一流程圖; 圖8繪示根據一實施例之用於使用指定存取類型及後設資料之記憶體系統協定之一新的命令來提供檔案後設資料之一詳細封包層級傳輸; 圖9繪示根據一實施例之圖8之詳細封包層級傳輸之一流程圖; 圖10繪示根據實施例之用於使用指定上下文及後設資料之記憶體系統協定之一系列新的命令來提供檔案後設資料之一詳細封包層級傳輸; 圖11繪示根據一實施例之圖10之詳細封包層級傳輸之一流程圖; 圖12繪示根據實施例之用於使用指定上下文及後設資料之記憶體系統協定之一系列CMD45命令來提供檔案後設資料之一詳細封包層級傳輸; 圖13繪示根據一實施例之圖12之詳細封包層級傳輸之一流程圖; 圖14繪示根據實施例之用於使用指定上下文及後設資料之一系列CMD44/CMD45命令對來提供檔案後設資料之一詳細封包層級傳輸; 圖15繪示根據一實施例之圖14之詳細封包層級傳輸之一流程圖; 圖16繪示根據一實施例之用於使用記憶體系統協定之一基於標頭異動來提供檔案後設資料之一詳細封包層級傳輸; 圖17繪示根據一實施例之用於使用記憶體系統協定之一基於暫存器異動來提供檔案後設資料之一詳細封包層級傳輸;及 圖18繪示根據一實施例之用於使用記憶體系統協定之經封裝命令擴展來提供檔案後設資料之一詳細封包層級傳輸。
10‧‧‧系統
12‧‧‧主機裝置
14‧‧‧非揮發性管理記憶體系統
16‧‧‧記憶體系統協定
18‧‧‧檔案系統
20‧‧‧檔案
22‧‧‧驅動程式
23‧‧‧控制器
24‧‧‧韌體
26‧‧‧非揮發性記憶體
28‧‧‧屬性
Claims (30)
- 一種記憶體裝置,其包括: 一記憶體組件,其經組態以儲存資料; 控制器電路,其經組態以: 從一主機電子裝置接收一記憶體系統協定之一或多個命令,其中該一或多個命令包括: 至少一個寫入命令,該寫入命令包括待儲存於該記憶體組件中之一或多個資料區塊;及 與該一或多個資料區塊相關之後設資料、屬性或兩者;及 執行該一或多個命令,使得該等區塊儲存於該記憶體組件中且該記憶體裝置之該控制器電路可存取該後設資料、屬性或兩者。
- 如請求項1之記憶體裝置,其中該一或多個命令包括經由命令佇列化實施之命令,其中在藉由該控制器電路執行之前佇列化複數個命令。
- 如請求項2之記憶體裝置,其中該一或多個命令包括: 一佇列命令,其包括將提供該後設資料、屬性或兩者至該控制器電路之一指示符,其中在與該佇列命令相關聯之一執行命令之一標頭中提供該後設資料、屬性或兩者。
- 如請求項3之記憶體裝置,其中該一或多個命令係一嵌入式多媒體卡(eMMC)協定之命令,其中該佇列命令包括一CMD44命令且該執行命令包括一CMD47命令。
- 如請求項2之記憶體裝置,其中該一或多個命令包括: 一佇列命令,其包括一上下文指示符,該上下文指示符包括一專用上下文,該專用上下文指示將提供該後設資料、屬性或兩者至該控制器電路,其中在與該佇列命令相關聯之一執行命令之一標頭中提供該後設資料、屬性或兩者。
- 如請求項5之記憶體裝置,其中該一或多個命令係一嵌入式多媒體卡(eMMC)協定之命令,其中該佇列命令包括一CMD44命令且該執行命令包括一CMD47命令。
- 如請求項2之記憶體裝置,其中該一或多個命令包括: 至少一個第一佇列命令,其經組態以提供將提供該後設資料、屬性或兩者至該控制器電路之一上下文指示符;及 至少一個第二佇列命令,其經組態以提供指定該後設資料、屬性或兩者之一標頭。
- 如請求項7之記憶體裝置,其中該一或多個命令係一嵌入式多媒體卡(eMMC)協定之命令,其中該第一佇列命令包括一CMD44命令且該第二佇列命令包括至該記憶體系統協定之一最新引入命令。
- 如請求項7之記憶體裝置,其中該一或多個命令係一嵌入式多媒體卡(eMMC)協定之命令,其中該第一佇列命令包括一CMD44命令且該第二佇列命令包括一CMD45命令。
- 如請求項9之記憶體裝置,其中該一或多個命令包括複數個CMD44及CMD45命令,其中CMD44及CMD45命令之對數目係基於該後設資料、屬性或兩者之一大小。
- 如請求項1之記憶體裝置,其中該一或多個命令包括在無命令佇列化的情況下實施之命令。
- 如請求項11之記憶體裝置,其中該一或多個命令包括使用一封裝命令方案組態之一第一命令; 其中該封裝命令方案實現將藉由該控制器電路經由一個命令執行之複數個異動; 其中該第一命令、與該第一命令相關聯之一標頭或兩者包括將提供該後設資料、屬性或兩者至該控制器電路之一指示符,及 其中基於接收該第一命令,藉由該控制器電路接收指定該後設資料、屬性或兩者之該標頭。
- 如請求項12之記憶體裝置,其中該一或多個命令係一嵌入式多媒體卡(eMMC)協定之命令,其中該第一命令包括一CMD23命令,且其中在先前藉由該eMMC協定定義為保留、未使用或兩者之該CMD23命令之一位元中指定該指示符。
- 如請求項12之記憶體裝置,其中該一或多個命令係一嵌入式多媒體卡(eMMC)協定之命令,其中該第一命令包括一CMD23命令,該CMD23命令包括封裝命令,且其中該指示符經指定為該標頭中之一版本。
- 如請求項11之記憶體裝置,其中該一或多個命令包括: 一第一命令,其經組態以將該後設資料、屬性或兩者編碼至一暫存器; 一第二命令,其經組態以指示將在一第三命令中提供該後設資料、屬性或兩者至該控制器電路;及 該第三命令,其經組態以在該記憶體裝置處更新該暫存器處之該編碼後設資料、屬性或兩者。
- 如請求項15之記憶體裝置,其中該一或多個命令係一嵌入式多媒體卡(eMMC)協定之命令,其中該第一命令包括一CMD6命令,其中該第二命令包括一CMD23命令,且其中該第三命令包括一CMD25命令。
- 一種主機電子裝置,其包括: 一檔案系統,其儲存一或多個檔案,該等檔案具有相關聯之後設資料、屬性或兩者; 驅動器電路,其經組態以: 提供一或多個命令至一記憶體裝置,其中該一或多個命令符合藉由該記憶體裝置使用之一記憶體系統協定,其中該一或多個命令包括: 至少一個寫入命令,該寫入命令包括待儲存於該記憶體組件中之一或多個資料區塊;及 與該一或多個資料區塊相關之後設資料、屬性或兩者; 其中該一或多個命令使該記憶體裝置能夠存取該後設資料、屬性或兩者。
- 如請求項17之主機電子裝置,其中該一或多個命令包括: 一佇列命令,其包括將提供該後設資料、屬性或兩者至該控制器電路之一指示符,其中在與該佇列命令相關聯之一執行命令之一標頭中提供該後設資料、屬性或兩者。
- 如請求項18之主機電子裝置,其中該一或多個命令係一嵌入式多媒體卡(eMMC)協定之命令,其中該佇列命令包括一CMD44命令且該執行命令包括一CMD47命令。
- 如請求項17之主機電子裝置,其中該一或多個命令包括: 一佇列命令,其包括一上下文指示符,該上下文指示符包括一專用上下文,該專用上下文指示將提供該後設資料、屬性或兩者至該控制器電路;其中在與該佇列命令相關聯之一執行命令之一標頭中提供該後設資料、屬性或兩者。
- 如請求項20之主機電子裝置,其中該一或多個命令係一嵌入式多媒體卡(eMMC)協定之命令,其中該佇列命令包括一CMD44命令且該執行命令包括一CMD47命令。
- 如請求項17之主機電子裝置,其中該一或多個命令包括: 至少一個第一佇列命令,其經組態以提供將提供該後設資料、屬性或兩者至該控制器電路之一上下文指示符;及 至少一個第二佇列命令,其經組態以提供指定該後設資料、屬性或兩者之一標頭。
- 如請求項22之主機電子裝置,其中該一或多個命令係一嵌入式多媒體卡(eMMC)協定之命令,其中該第一佇列命令包括一CMD44命令且該第二佇列命令包括至該記憶體系統協定之一最新引入命令。
- 如請求項22之主機電子裝置,其中該一或多個命令係一嵌入式多媒體卡(eMMC)協定之命令,其中該第一佇列命令包括一CMD44命令且該第二佇列命令包括一CMD45命令,且其中該一或多個命令包括複數個CMD44及CMD45命令,其中多個CMD44及CMD45命令對係基於該後設資料、屬性或兩者之一大小。
- 如請求項17之主機電子裝置,其中該一或多個命令包括使用一封裝命令方案組態之一第一命令; 其中該封裝命令方案實現將藉由該控制器電路經由一個命令執行之複數個異動; 其中該第一命令、與該第一命令相關聯之一標頭或兩者包括將提供該後設資料、屬性或兩者至該控制器電路之一指示符;及 其中基於接收該第一命令,藉由該控制器電路接收指定該後設資料、屬性或兩者之該標頭。
- 如請求項25之主機電子裝置,其中該一或多個命令係一嵌入式多媒體卡(eMMC)協定之命令,其中該第一命令包括一CMD23命令,且其中在先前藉由該eMMC協定定義為保留、未使用或兩者之該CMD23命令之一位元中指定該指示符。
- 如請求項25之主機電子裝置,其中該一或多個命令係一嵌入式多媒體卡(eMMC)協定之命令,其中該第一命令包括一CMD23命令,該CMD23命令包括封裝命令,且其中該指示符經指定為該標頭中之一版本。
- 如請求項17之主機電子裝置,其中該一或多個命令包括: 一第一命令,其經組態以將該後設資料、屬性或兩者編碼至一暫存器; 一第二命令,其經組態以指示將在一第三命令中提供該後設資料、屬性或兩者至該控制器電路;及 該第三命令,其經組態以在該記憶體裝置處更新該暫存器處之該編碼後設資料、屬性或兩者。
- 如請求項28之主機電子裝置,其中該一或多個命令係一嵌入式多媒體卡(eMMC)協定之命令,其中該第一命令包括一CMD6命令,其中該第二命令包括一CMD23命令,且其中該第三命令包括一CMD25命令。
- 一種記憶體裝置控制器電路實施之方法,其包括: 從一主機電子裝置接收一記憶體系統協定之一或多個命令,其中該一或多個命令包括: 至少一個寫入命令,該寫入命令包括待儲存於該記憶體組件中之一或多個資料區塊;及 與該一或多個資料區塊相關之後設資料、屬性或兩者;及 執行該一或多個命令,使得該等區塊儲存於該記憶體裝置之一記憶體組件中且該記憶體裝置之該控制器電路可存取該後設資料、屬性或兩者。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/860,326 | 2015-09-21 | ||
US14/860,326 US9880772B2 (en) | 2015-09-21 | 2015-09-21 | Systems and methods for providing file information in a memory system protocol |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201721403A true TW201721403A (zh) | 2017-06-16 |
TWI611344B TWI611344B (zh) | 2018-01-11 |
Family
ID=58282680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105130433A TWI611344B (zh) | 2015-09-21 | 2016-09-21 | 記憶體系統協定中提供檔案資訊之系統及方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9880772B2 (zh) |
CN (1) | CN108140005B (zh) |
TW (1) | TWI611344B (zh) |
WO (1) | WO2017053411A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108664218A (zh) * | 2018-04-23 | 2018-10-16 | 浙江大华技术股份有限公司 | 一种基于数据特征的ssd存储方法、装置及系统 |
US11119914B2 (en) * | 2019-11-15 | 2021-09-14 | Micron Technology, Inc. | Method of operating a memory with dynamically changeable attributes |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4596902B2 (ja) * | 2004-12-10 | 2010-12-15 | 株式会社日立製作所 | ストレージ管理装置、計算機システム、ストレージ管理方法及びストレージ管理プログラム |
US7949794B2 (en) * | 2006-11-02 | 2011-05-24 | Intel Corporation | PCI express enhancements and extensions |
US9110594B2 (en) * | 2009-11-04 | 2015-08-18 | Seagate Technology Llc | File management system for devices containing solid-state media |
US8250252B1 (en) * | 2010-06-29 | 2012-08-21 | Qlogic, Corporation | System and methods for using a DMA module for a plurality of virtual machines |
US8850114B2 (en) * | 2010-09-07 | 2014-09-30 | Daniel L Rosenband | Storage array controller for flash-based storage devices |
US9141296B2 (en) * | 2012-05-31 | 2015-09-22 | Sandisk Technologies Inc. | Method and host device for packing and dispatching read and write commands |
KR101919903B1 (ko) * | 2012-09-14 | 2018-11-19 | 삼성전자 주식회사 | 임베디드 멀티미디어 카드, 이를 제어하는 호스트, 및 이들의 동작 방법 |
US9652376B2 (en) | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
KR20140112303A (ko) | 2013-03-13 | 2014-09-23 | 삼성전자주식회사 | 불휘발성 메모리 장치, 전자 장치 그리고 그것을 포함하는 컴퓨팅 시스템 |
KR20140128824A (ko) * | 2013-04-29 | 2014-11-06 | 삼성전자주식회사 | 속성 데이터를 이용한 데이터 관리 방법 |
US9557937B2 (en) * | 2013-08-21 | 2017-01-31 | Netapp, Inc. | Systems, methods, and computer program products implementing hybrid file structures for data storage |
US9633041B2 (en) * | 2013-09-26 | 2017-04-25 | Taiwan Semiconductor Manufacturing Co., Ltd. | File block placement in a distributed file system network |
KR102204394B1 (ko) | 2013-10-14 | 2021-01-19 | 삼성전자주식회사 | 메모리 시스템에서의 코딩 방법 및 디코딩 방법 |
CN103647807B (zh) * | 2013-11-27 | 2017-12-15 | 华为技术有限公司 | 一种信息缓存方法、装置和通信设备 |
KR102111741B1 (ko) * | 2014-01-10 | 2020-05-15 | 삼성전자주식회사 | 임베디드 멀티미디어 카드 및 이의 동작 방법 |
US10108372B2 (en) * | 2014-01-27 | 2018-10-23 | Micron Technology, Inc. | Methods and apparatuses for executing a plurality of queued tasks in a memory |
US9454310B2 (en) * | 2014-02-14 | 2016-09-27 | Micron Technology, Inc. | Command queuing |
KR101546333B1 (ko) * | 2014-02-20 | 2015-08-25 | 주식회사 티맥스데이터 | 복합 저장소를 가지는 데이터베이스에서 질의 처리 장치 및 방법 |
CN104899175A (zh) * | 2014-03-04 | 2015-09-09 | 深圳市中兴微电子技术有限公司 | 一种基于片内总线协议的安全访问控制方法和装置 |
KR102254099B1 (ko) * | 2014-05-19 | 2021-05-20 | 삼성전자주식회사 | 메모리 스와핑 처리 방법과 이를 적용하는 호스트 장치, 스토리지 장치 및 데이터 처리 시스템 |
US9939865B2 (en) * | 2014-06-13 | 2018-04-10 | Seagate Technology Llc | Selective storage resource powering for data transfer management |
CN104536903B (zh) * | 2014-12-25 | 2018-02-23 | 华中科技大学 | 一种按数据属性分类存放的混合存储方法及系统 |
-
2015
- 2015-09-21 US US14/860,326 patent/US9880772B2/en active Active
-
2016
- 2016-09-21 TW TW105130433A patent/TWI611344B/zh active
- 2016-09-21 CN CN201680061713.6A patent/CN108140005B/zh active Active
- 2016-09-21 WO PCT/US2016/052864 patent/WO2017053411A1/en active Application Filing
-
2018
- 2018-01-04 US US15/862,472 patent/US10175908B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US9880772B2 (en) | 2018-01-30 |
WO2017053411A1 (en) | 2017-03-30 |
CN108140005B (zh) | 2021-03-26 |
CN108140005A (zh) | 2018-06-08 |
TWI611344B (zh) | 2018-01-11 |
US20180129442A1 (en) | 2018-05-10 |
US20170083260A1 (en) | 2017-03-23 |
US10175908B2 (en) | 2019-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112328435B (zh) | 目标数据备份和恢复的方法、装置、设备及存储介质 | |
WO2017008675A1 (zh) | 一种用于虚拟化环境下传输数据的方法与设备 | |
US9927984B2 (en) | Electronic system with interface control mechanism and method of operation thereof | |
EP3608790B1 (en) | Modifying nvme physical region page list pointers and data pointers to facilitate routing of pcie memory requests | |
US20190132198A1 (en) | Memory resource allocation in an end-point device | |
US10606677B2 (en) | Method of retrieving debugging data in UEFI and computer system thereof | |
KR20210119529A (ko) | 스토리지 장치 컨텐츠를 스트리밍하는 시스템들 및 방법들 | |
US20190199794A1 (en) | Efficient replication of changes to a byte-addressable persistent memory over a network | |
CN110389711B (zh) | 帮助端点设备实现sr-iov功能的方法、设备和非瞬态计算机可读介质 | |
CN110119304A (zh) | 一种中断处理方法、装置及服务器 | |
CN104731635A (zh) | 一种虚拟机访问控制方法,及虚拟机访问控制系统 | |
US10664418B2 (en) | Peripheral device controlling device, operation method thereof, and operation method of peripheral device controlling device driver | |
TWI611344B (zh) | 記憶體系統協定中提供檔案資訊之系統及方法 | |
US10545697B1 (en) | Reverse order request queueing by para-virtual device drivers | |
US10133492B2 (en) | Electronic system with interface control mechanism and method of operation thereof | |
US11194771B2 (en) | Methods for transferring reserves when moving virtual machines across systems | |
CN113835756B (zh) | 主机命令解析方法和装置、固态硬盘控制器、固态硬盘 | |
US10754661B1 (en) | Network packet filtering in network layer of firmware network stack | |
US10261715B2 (en) | Storage space management method and apparatus | |
CN104714911A (zh) | 至少部分地提供数据的至少一部分可供处理的至少一个指示 | |
CN110881277A (zh) | 一种数据存储方法、装置及相关设备 | |
WO2022126534A1 (zh) | 数据处理方法及相关设备 | |
WO2022121385A1 (zh) | 一种文件访问方法、存储节点以及网卡 | |
US20240168877A1 (en) | Solving submission queue entry overflow with an additional out-of-order submission queue entry | |
US9811492B2 (en) | System and method for providing internal system interface-based bridging support in management controller |