TW589528B - Posted write-through cache for flash memory - Google Patents
Posted write-through cache for flash memory Download PDFInfo
- Publication number
- TW589528B TW589528B TW090123765A TW90123765A TW589528B TW 589528 B TW589528 B TW 589528B TW 090123765 A TW090123765 A TW 090123765A TW 90123765 A TW90123765 A TW 90123765A TW 589528 B TW589528 B TW 589528B
- Authority
- TW
- Taiwan
- Prior art keywords
- flash memory
- command
- memory
- cache
- flash
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Charge And Discharge Circuits For Batteries Or The Like (AREA)
Description
五、發明説明( 發明背景 本發明一般有關電腦系統, 憶體操作。 。 統的快㈣ 2·相關拮藝教日q 二閃記憶體是一種特殊的記憶體類型,一次可寫入及讀 α ('且的貝料,但清除卻是整個區塊的資料。快閃 區塊A/jm8KB(千位元組)細ΚΒ之間。若要 變更健存在快閃記憶體位置的資料,則要先清除該位置。 由於僅能整個區塊清除’因此新資料必須寫入先前清除區 :鬼未使用的位置’而且任何識別資料位置的指標也必須跟 著變更。如果有_大部份的資料必須保持原封不動(例如數 '、I表)即使僅變更—位元組,也必須將整個資料複製 到另一區塊。清除功能可以很耗時,也可以只花一秒鐘就 完成。 :閃記憶體的讀取操作效能非常良好,但卻因上述因素 使得寫人及清除操作效能相當糟糕。快閃記憶體管理器已 發展出隔離應用程式與快閃記憶體的方法。圖i顯示一傳 統快閃記憶體系統10。-傳統快閃記憶體管理器11的使用 包a别台作業管理器12、一後台作業管理器14及一資料 仔列13。資料佇列13在實際執行命令至快閃記憶體μ之前 ,可提供暫時緩衝區儲存應用程式15的寫入及清除命令。 使得應用程式在快閃記憶體特性所造成的不穩定等待期間 可以解除耦合。資料佇列也可協助解決同時發生的問題。
本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公爱) 589528 五、發明説明(2 ) 寫入:7的位置放在資料件列η後’但快閃記憶體16的資 ;斗還又4更士Π果應用程式"試圖讀取 料仔列讀取最新版本的資料。 1吏““ ⑴°作業S理☆ 12連接應用程式、起動讀取及寫入功能 、二及將寫人命令放人f料仔列13。讀取命令可由前台作 業管理器直接傳送到快閃記憶體16。後台作業管理器14一 般以先進先出的原則從仔列13接收寫入命令,然後起始實 際的記憶體操作到快閃記憶體16。透過可用空間功能17,、 前台:業管理器η還可偵測快閃記憶體空間是否足夠執行 寫入刼作。如果不夠’就會通知應用程式這項事實,並且 放棄該寫入或採取其他補救措施。如果空間足夠,寫入命 令即可放在仔列,並會通知應用程式已發生 ,後台作業管理器只是判定如何將資料及關聯資料的結構 寫入快閃記憶體16,而這些判定在寫入操作從資料佇列移 除並且由後台作業管理器處理時,還會影響到實際的可用 空間有多少。前台作業管理器12因而可預測命令是否成功( 不論命令到達快閃記憶體時的”有多少),如預測成功, 便將命令放在仔列13。如果後台作業管理器Μ試圖執行命 令時’因為快閃記憶體16沒有足夠空間寫入資料而遇到「 快閃填滿」的狀況’便會產生嚴重的錯誤程式碼,並關閉 '常處理。為了預防這種狀況’前台作業管理器〗2必須預 測取壞的情況,導致快閃記憶體的操作毫無效率可一 嘗試寫入操作到快閃記憶體16前,如果判定办:。足夠 後台作業管理器Η基本上會重新執行可用空間工從而 I - D - 本纸張尺度適财® ®家標準(CNS) Α4規格(21GX297公董) 589528 A7
造就快閃記憶體管理器η的複製能力。快閃記… u通常在軟體或勒體執行時,可在不同時間執::, 及後台作業的可用空間功能,使得空間監視 並對快閃記憶體管理的總處理能力效能產生負面的影響; 圖式簡單說明 圖1顯示先前技藝之系統。 圖2顯示本發明之系統。 圖3顯示快取記憶體之部分内部結構。 圖4顯示本發明方法之流程圖。 發明詳細說明 本發明包括一快取記憶體具有-快閃記憶體管ί里器,以 增^效管理快閃記憶體操作的能力。此快取記憶體藉由 在前台作業處理命令以及快取該命令的寫入/清除元件,可 消除傳統快閃記憶體管理器f料件列以及關聯處理命令的 稷製能力。只要將後台作業的許多基本功能移到前台作業 &理器即可大幅降低後台作業的決策及複雜度。藉由消 除後台作業「快閃填滿」的狀況,本發明也就不需要命令 預測及其關聯的錯誤處理。 圖2顯示本發明一具體實施例的系統2〇。應用程式乃可 對快閃記憶體管理器21做出讀取及寫入的要求。前台作業 管理器22可直接執行讀取,同時可在透過可用空間功能27 判定空間是否足夠後,傳送寫入命令到快取記憶體23。雖 然圖中將可用空間功能顯示為前台作業管理器22及快閃記 憶體26之間的一區塊,但可用空間功能可以不同方式達成 -6 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公董)
裝 訂
:例如在快閃記憶體管理器21中追縱空間使用,或對快閃 σ己隐體26傳送杳,。去|中卜五μ ^ ^寻迖一珣判疋快閃圮憶體26可用空間的確切方 ,就本發明實務上來說並不重要。後台作業管理器Μ可 從快取記憶體23擷取寫人及清除命令輸人項,並且將其遞 运到快閃記憶體26。和傳统系絲χ 括λα β μ m统不—樣的是,後台作業管 爾寫入資料到記憶體之前 否足夠。 』疋二間疋 本發明運用一顯出直寫快取記憶體的方法。當快閃記憶 體寫入命令的資料放在快取記憶體23時,該資料並未㈣ 寫入快閃記憶體26’但只要後台作業管理器24_取得,隨 I7寫入快閃記憶體26。I台作業管理器24將寫人資料寫到 ;決閃记憶體26的順序’和從前台作業管理器22接收寫入資 料的順序—樣。—旦寫人快閃記憶體,便會黯關聯的: 取記憶體輸入項。 、 陕取=憶體23的輸入項在遞送到快閃記憶體26後就刪除 *具有幾項優點。一般的快取記憶體最後都會填滿,不留 空間給新輸入項。因而需要沖掉(亦即刪除)快取記憶體各 輸入項以騰出空間給新輸入項。特定數量的預測涉及判定 哪些輸入項可以在影響系統效能最小的情況下沖掉,亦即 哪些輸入項最不可能再度受到存取。 快取圮憶體輸入項只要一遞送到快閃記憶體26就刪除, 使得快取記憶體23不斷排淨,因此不太可能填滿。這些例 子中/、荨後台作業管理器24遞送更多的寫入資料到快閃 記憶體26 ,便刪除關聯的輸入項,只要一填滿就排淨,使 589528 A7
侍空間維持可用。由於資料遞送後,沒有資料要從快取記 I· 憶體存取,所以也就不需要預測的結構。 :: 前台作業及後台作業管理器的任務分工和傳統系統有所 : 不同。前台作業管理器22可接收及確認應用程式25的命令 Γ ,判定需要放在快取記憶體23的命令,然後傳遞讀取命令 ; 到快閃記憶體26。在判定快閃記憶體26的可用空間後,前 : 台作業管理器22也可判定寫入命令在快閃記憶體定址的肖 ·丨 定位置,包括所有多位元組寫入操作的需要位置。前台作 :
業管理器一旦指派這些位置給寫入資料,後續的寫入, 就無法使用該位置,而後台作業管理器24在現有寫入命令 I 遞送到快閃記憶體26後,也就不需要再判定空間是否可用 琴 。如果後台作業管理器24接著清除額外的區塊,則可用空 | 間會比前台作業管理器22所預測的還多,而且不會使可用 ; 空間更少,因而後台作業管理器24也就不需要再判定可用 ‘ 空間。如此避免了傳統「快閃填滿」的錯誤狀況,其中後 : 台作業管理器必須先判定預測空間是否足夠,並且必須採 : 取緊急的回應措施。 b 後台作業一次可以處理一個快取記憶體輸入項,並在處 j
理後使該輸入項失效。後台作業使一輸入項失效後,前台 I
作業就可提供這些快取記憶體空間給後續輸入項使用。指 I 標及記數器可持續追縱有效及無效的輸入項(類似環狀緩冑 j 區),其中適當的指標會在達到快取空間終點時環繞到快取 i 空間的起點。環狀緩衝區及關聯的指標及記數器已廣為人 : 知,在此不再贅述。 :
L ___ -8_ 本紙張尺度適财國s家賴CNS) 公爱T 589528 A7
589528 A7 -- —_—___ B7 五、發明説明(7 ) 效或無效(由於淘汰資料之細小片段不能個別清除,故全部 標記為無效),且可識別快閃記憶體中關聯位置為可配置或 不可配置,以預防已經標記使用的位置接著由其他命令使 用。標記欄位可包括快閃記憶體中用於寫入或清除命令的 目標位址、要轉移的資料大小以及指示其他快取記憶體輸 入項特性的狀態位元,這樣才能使後台作業進行適當處理 。表格1說明一具體實施例中,各種可包括在標記欄位中 的資訊類型。 圖4顯示本發明方法的流程圖4〇。從前台作業管理号開 始,在步驟41判定快閃記憶體的空間足夠執行命令。在步 驟42 ,該命令分成數個輸入項並且寫入快取記憶體。步驟 43將這些輸入項放在對應命令指定優先權的標記及資料陣 列中。接著,在步驟44,後台作業管理器接管,將每一快 取記憶體輸入項執行到快閃記憶體。執行一寫入輪入項包 括從快取記憶體讀取資料,以及將資料寫入輸入項指定= 快閃記憶體位置。執行一清除輸入項包括清除輸入項指定 的快閃記憶體區塊。在步驟45,快取記憶體輸入項已=疋 除,並且騰出空間供後續快取記憶體輸入項使用。 -10- 589528
A7 B7 五、發明説明( 表格1 標記棚位 位址 快閃記憶體的實體位址,也是快取關聯資料 的寫入位置。由後台作業管理器使用,以將標題/ 資料放在快閃記憶體,或清除快閃記憶體的區塊。 尺寸 快取RAM關聯資料的尺寸。此項判定快閃記憶體 需要的空間數量。 迅塵位元-標題配置 快取RAM的標題可用在快閃記憶體的配置狀態。 狀態位元—標題/資料 有效 —-- 快取RAM標題/資料可用在快閃記憶體的有效狀態 〇 狀態位元-使下一個 失效 ---— 指示後台作業下一個快取記憶體輸入項為失效標 題。如此有助於減少快取記憶體輸入項。後台作 業將現有輸入項置於配置狀態,如果此位元已設 定,在將此輸入項移至有效狀態之前,會處理下 一輸入項使舊標題失效。 元-複製資料 快取RAM包含複製的來源快閃記憶體位址。 狀態位元—複製區塊 單位 一回收利用元件可將位址所識別的區塊中所有有 效標題及關聯資料,複製到一備用區塊。此為高 階的回收利用命令,有助於減少快取記憶體輸入 項。後台作業可將該命令分成一回收利用狀態一 複製,以允許混合「處理中回收利用」寫入。 狀態位元-清除 一回收利用元件,指示要清除的指定區塊。其尺 寸設定為零且該回收利用元件狀態位元也已設定。 狀態位元—回收利用 元件 指示後台作業該輸入項為一回收利用處理 〇 狀態位元—回收利用 需求 指示「需要」該回收利用,且該回收利用元件因 此必須較後續寫入優先處理。 — ——-— 其他具體實施例可以實作的功能,詳細說明如下。 讀取 在寫入輸入項放在快取記憶體的時間及其執行至快閃記 -11 - 589528 五、發明説明(9 憶體位置的時間之間,只有快閃記恃 料版本。在此時間之内,快閃記憶體的讀取=㈣聯資 記憶體而非快閃記憶體擷取資料。因此一=可從快取 可以搜尋該資料的快取記憶體,也 ^讀取操作不僅 讀取。如果資料在快取記憶體,亦即如仃快閃記憶體的 生「命中」,則能使用快取的資料::= 取記憶體發 直讀結構忽略 '放棄或決不嘗試的、:取3己憶體 是說,快取記憶體可以像傳統快取記憶=體=取。也就 ,-旦快取的寫入已經遞送 ’刼作。不過 ^ ^ ^ ^ ^ 圯隐體,即可從快取記 憶體刪除該快取記憶體輸入項,而不像傳統…憶體, 裝 還保留者以供後續讀取使用。這是因為,如果 及快間記憶體都有相同的資料,快取記憶體輸入項^明 顯增進请取效能,甚至可能會降低。在命令遞送㈣㈣ 憶體26後保留在快取記憶體23,就會佔據快取記憶體的不 必要空間,使得後續命令無法使用。還有,栽入式系統快 閃記憶體的讀取效能相當於一般快取記憶體使用的靜態隨 機存取記憶體(SRAM),導致快取記憶體發生命中時產生微 不足道的速度增進。因此,從快取記憶體刪除遞送的命令 ,將使得快取記憶體的整體使用更有效率,同時對讀取回 應時間沒有任何重大影響。 如果一讀取操作產纟一快取「失誤」,,亦即資料不在快 取記憶體,該快取記憶體就無法和傳統快取記憶體一樣和 該資料一起更新。由於本發明快取記憶體宗旨之一在於增 進寫入操作,而非讀取操作,如果快閃記憶體已經有正確 -12- 本紙張尺度適用中國國家標準(CNS) A4規格(21〇x 297公釐) 589528
的資料,就沒理由把該資料放在快取記憶體。 一具體實施例中’多位元組的讀取操作可在資料某些部 分產生快取命中,而在資料其他部分產生快取失誤。本例 中’在快取記憶體發現的資料可結合其他快閃記憶體的資 料以產生最終資料。 _關聯性 具體貫施例使用一種完全關聯的快取技術。雖然如此 在搜尋快取命中時需要更多的搜尋時間,但是一種完全關 聯的方法在提供最大彈性時,可維持快取記憶體的小尺寸。 快取記憶體也可以完全在軟體中執行,其中部分由快閃 記憶體管理器使用的記憶體可指定為快取記㈣,而且專 供該目的使用。本發明巾,快閃記憶體可當作傳統記憶體 階層中的主記憶體’而快取記憶體使用的記憶體則可當作 傳統記憶體階層中的快取記憶體。 快取線尺寸 採用τ1的線尺寸原因是快閃檔案管理的可變尺寸本 質/、體貫施例中’寫入線尺寸大小從一位元組資料到 一整個片段資料都有’ _般為128_512位元組。該尺寸可 維持在標記陣列及目的地位址。 快取替換廣gif -般的快取系統中’除非發生「快取填滿」或「快取沖 掉」狀況’否則均可維i主次· , m 、准持貝枓。如果快取已經填滿,一般 就會發生選擇性快取記憶體輸入項替換。如果快取已經沖 掉貝J所有輸入項均已失效。本發明一具體實施例中,一
裝 訂
-13-
589528
填滿快取不會發生選擇性㈣,因為快取記憶體輸入項為 寫入後並已經依照進入快取記憶體的順序一一刪除。因此 ,本發明基本上是採取先進先出(FIF0)的原則。如果快取 已經填滿,則可延遲一新的快取記憶體輸入項,直到依序 寫入快閃記憶體排淨快取記憶體以騰出足夠空間為止/因 為本發明透過快取替換原則自然沖掉快取記憶體;因此不 需要「快取沖掉」的功能。 程式碼重津 大部分傳統後台作業功能都可移到前台作業。一具體實 施例中,所有樓案管理傳統上都由後台作業完成,:回收 利用任務則由前台作業完成,但快閃記憶體的實際寫入或 ’月除例外。一皁一後台作業任務也可以處理快取記憶體輸 入項以及寫入或清除快閃記憶體。為了更有效率,後台作 業任務也可處理許多@力損&回復(PLR)流程以&更高階的 回收利用狀態事項。 刖台作業管理器可消除傳統系統的符列,並可執行一次 空間檢查。進入快取記憶體的輸入項可包括進入快閃記: 體的最終目的地。如此,因為後台作業管理器並不決定放 置貝料的位置’而只是把資料放在前台作業管理器先前配 置的位置’所以後台作業不會發生「快閃填滿」的狀況。 回收利用 利用快閃記.It體,1收利用程序為—種清除記憶體區 塊並使後續寫人操作使用的程序,這樣就能「时利用」 該區塊。如果舊區塊(要清除的區塊)包含任何必須儲存的 -14- 裝 訂 f ____ _ 14 _ 本紙張尺㈣财關家料 589528 A7
貪料,則回收利用可在清除前包括讀取舊區塊的某些資料 ,亚且將該資料放進一新的、先前清除的區塊,以供後續 使用。在寫入新區塊之前,舊資料可以結合或不結合其他 來源的資料。因此一回收利用程序可包括一個或多個回收 利用元件,例如:丨)從舊區塊讀取舊資料,2)將舊資料寫 入新區塊,3)將其他資料寫入新區塊,以及4)清除舊區塊 上述每項都可個別成為一快取記憶體輸入項。因為每 項都可以個別處理,所以其他快取記憶體輸入項也可以 在相關回收利用元件之間處理。一回收利用處理中指示器 可用來指示已執行非自動的回收利用操作。 一回收利用元件可以分成「需要」或「不需要」。如果 快閃記憶體已經填滿,或至少沒有足夠空間以完成現有寫 入操作,便必須回收利用快閃記憶體的一區塊,以提供必 要的空間完成寫入。因為重新開始正常處理之前必須完成 回收利用,因此回收利用操作的回收利用元件就屬於「需 要」。不過,有些回收利用是以推理方式完成,亦即回收 利用的區塊預計給目前還不需要的後續需要使用。而這些 就屬於「不需要」。需要的回收利用具有最高優先權,而 -不需要的回收利用則具有較低優先權。兩種回收利用元件 的類型都可由前台作業管理器起始,並放在快取記憶體以 供後台作業管理器進行後續處理。標記襴位可維持一種指 出回收利用元件為需要或不需要的狀態位元。 如果進入的快取回收利用元件為「不需要」,則最先處 理该快取記憶體的後續寫入。一具體實施例中,唯一的情 _ -15- 本紙張尺度適用巾@國家標準(CNS) A4規格(21GX 297公董)— ----------
裝 訂
589528 A7 -------一 —____B7 五、發明説明(^ 一~""一' "~ ---- 況是快取記憶體輸入項不按順序處理。如果進入的回收利 用疋件為「需要」,則在後台作業執行該快取記憶體輸入 項時,即可依照順序處理。因其進入最高優先權快取記憶 體’所以在執行需要的回收利用元件之前,不會處理較低 優先權快取記憶體的輸入項。如果找到一快取的「需要」 回收利用元件_ |箭· y古·「 「 干仁先刖又有不需要」的回收利用元件,則 所有「不需要」元件就會變更成「需要」的狀態並且立刻 處理。 快取填滿虛^ 一「快取填滿」狀況表示快取記憶體中已無空間或空間 不足,無法維持現有的寫入操作。有關大型資料的命令, 例如大型表格命令的「替換群組表格」較有可能發生這種 情形。除非執行-快取的回收利用,否則該快取記憶體無 法接受此輸入項。更糟的是,回收利用的完成及後續快取 的寫入執行都必須依照順序,以提供適當快取給最終快取 記憶體輸入項。 -具體實施例中,並未划快取填滿預測,因為太費時 ,而且必須在每一命令開始時就做好。而且也不計算命令 疋否適合放在快取記憶體中,而是在應用程式介面(八卩^提 供兩種替代方案:等候及不等候。如果發生一快取填滿狀 況且指定為「不等候」,則可透過API堆疊傳回「快取填滿 」狀態,由應用程式處理。如果發生快取填滿狀況並且指 定為「等候」,則命令處理就等到排淨快取記憶體以騰出 足夠容納該命令的空間才處理。 • 16 - 本纸張尺度適用中國®家標準(CNS) A4規格(210 X 297公釐)'一 -- ⑽528 ⑽528 五 、發明説明(14 ) :發明-具體實施例中,_管理器可在軟體中執行, 、取5己憶體可當作執行快閃記憶體 行。本發明另一且栌本於7, 々丨』屺丨思體部份執 八體““列中,快閃管理 ::㈣憶體可在揮發性記憶體中執行,該揮::t =由執行快閃管理器程式㈣相同處理器定址 明 ::广:體實施例中’快閃管理器的部分也可以在電路中 仃匕括一個或多個狀態機器。 本發明可以當作一種方法執行。 :本。發明也可以當作機器可讀取媒體儲存的指令來執行, 該機裔可讀取媒體至少可由一個處理器讀取及執行,以完 成^文所料功能。—機器可讀取媒體包括任何機器(例^ 電)可項取形式的儲存或傳輸資訊機制。例如,機器可浐 、某體可包括唯4 €憶體(R〇M)、隨機存取記憶體(RAM)、 、碟=存媒體:光學儲存媒體、快閃記憶體裝置以及電子 “ 曰a或其他形式之傳訊號(例如載波、紅外線訊號 、數位訊號等)等等。 、、以上描述係用於解說而非限制。熟知技藝人士應清楚知 〔本^月仍有5午多變化,而且本發明僅受隨附申請專利範 圍的精神與範疇所限制。
Claims (1)
- 申請專利範圍 1 · 一種用以寫入一快閃記八 法,該方法包括: 叩々至—快閃記憶體之方 將該快閃記憶體命令寫入該快取記憶體· 將該快取記憶體的該快閃記 體;以及 卩7冩入快閃記憶 從該快取記憶體刪除該快閃記憶體命令。 2 .如申請專利範圍第丨項的方 為-寫人命令及—㈣命令。J該快閃記憶體命令 3.如申請專利範圍第!項的方 及該寫入快閃記憶體由—可程式〜十中機:寫入快取記憶體 .,^ ^ 往式叹5十機裔的程式碼執杆 4·如申4利範圍第3項的方法,其中仃。 係一前台作業的操作。 μ ··“ 、 6己憶體 5 ·如申請專利範圍第3項的方法 係-後台作業的操作。 、中该寫入快閃.己憶體 6.=請專圍第1項的方法,其中寫人快取記憶體包 =二聯該快閃記憶體命令的優先權等級;以及 一:::記憶體命令儲存在-關聯指定優先權等級的 “ δ己陣列及資料陣列。 7.如申請專利範圍第I項的方法,其令: 寫入快取記憶體包括判定 @ ^ 夬閃記憶體的可用空間是 否,仃快閃記愧體的該快閃記憶體命令;以及 記憶體不包括判定該快閃記憶體的可用空間 疋否足夠執行快閃記憶體的該快閃記憶體命令。 O:\73\73431-920820.DOC 5 ^ 本紙張尺度適财®i格⑵〇 X 297公董丁 MW» ττ、申请專利範圍 s.—種機器可讀取媒體,具有 一處理器執行時,合-子八中的指令,該指令由 τ彳會使該處理器執行: 將-快閃記憶體命令寫 將該快取記憶體… 己憶體; 體;以及 ,、〇、閃圮憶體命令寫入一快閃記憶 刪除該快取記憶體的該 9.如申請專利範圍第8項 二體… 為-寫入命令及-清除命:體’其中該快閃記憶體命令 10:申:專利範圍第8項的媒體’其 係-前台作業的操作。 3八决取』媸 11.如申請專利範 體係-後台作業的操作體,其中該寫入快閃記憶 12·Γ請專利範圍第8項的媒體,其中寫入快取記憶體包 指定—關聯該快閃記憶體命令的優先權等級;以及 將該命令儲存在一關聯 資料陣列。 疋谩先權專,及的標記陣列及 13·如申請專利範圍第8項的媒體,其中: 寫入快取記憶體包括判定該快閃記憶體的可用空間是 否足夠執行快閃記憶體的該快閃記憶體命令;以及 寫入陕閃汜憶體不包括判定快閃記憶體的可用空間是 否足夠執行快閃記憶體的該快閃記憶體命令。二Β疋 14· 一種用以寫入一合士日日^ 、 叩τ至一快閃記憶體之裝置,該裝置包 括: -2 - 裝 O:\73\73431-920820.DOC 5 589528 圍範利專 請中該快閃記憶體; 一快取記憶體麵合該快閃記憶體,以儲存 閃記憶體的該命令;以及 δ ' 一快閃管理器耦合該快閃記憶體及該快取記憶體,以 將該命令寫入該快取記憶體 '從該快取記憶體讀取該命 令、執行該命令到該快閃記憶體以及從該快取記憶體刪 除該命令。 15·如申請專利範圍第14項的裝置,其中該快閃管理器可在 一軟體及韌體中執行。 16·如申請專利範圍第14項的裝置,其中該快取記憶體包括: 一第一標記陣列及一第一資料陣列,以儲存具有一第 一優先權的命令;以及 一第二標記陣列及一第二資料陣列,以儲存具有一第 二優先權的命令。 17.如申請專利範圍第14項的裝置,其中該快閃管理器包括 一前台作業管理器以·· 判定該快閃記憶體的可用空間是否足夠執行該命令; 以及 指派一快閃記憶體位址到該命令。 18·—種用以寫入一命令至一快閃記憶體之系統,該系統包 括: 一處理器;. 該快閃記憶體; 一快取記憶體耦合該快閃記憶體及該處理器,以儲存 O:\73\73431-920820.DOC 5 - 3 - 本紙張尺度適用中國國家標準(CNS) Α4規格(210 X 297公釐)589528 A8 B8 C8 D8 六、申請專利範圍 要執仃到該快閃記憶體的來自該處理器之該命令;以及 ▲ |夬閃管王里器轉合該十夬閃記憶體及該快取記憶體,以 =X P 7寫入3亥快取記憶體、從該快取記憶體讀取該命 一 5 “ °P々到該快閃記憶體以及從該快取記憶體刪 除該命令。 19.如申#專利範圍第18項的系統,其中該快閃管理器可在 一軟體及韌體中執行。 20·如申明專利範圍第18項的系統,其中該快取記憶體包括: 一第一標記陣列及一第一資料陣列,以儲存具有一第 一優先權的命令;以及 一第二標記陣列及一第二資料陣列,以儲存具有一第 二優先權的命令。 21·如申請專利範圍第18項的系統,其中該快閃管理器包括 一前台作業管理器以: 判定該快閃記憶體的可用空間是否足夠執行該命令; 以及 ^ 指派一快閃記憶體位址到該命令。 -4- O:\73\73431-920820.DOC 5 本紙張尺度適用中國國家標準(CNS) Α4規格(210 X 297公釐)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/669,609 US6704835B1 (en) | 2000-09-26 | 2000-09-26 | Posted write-through cache for flash memory |
Publications (1)
Publication Number | Publication Date |
---|---|
TW589528B true TW589528B (en) | 2004-06-01 |
Family
ID=24686988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW090123765A TW589528B (en) | 2000-09-26 | 2001-09-26 | Posted write-through cache for flash memory |
Country Status (9)
Country | Link |
---|---|
US (1) | US6704835B1 (zh) |
EP (1) | EP1323044B1 (zh) |
KR (1) | KR100584255B1 (zh) |
CN (1) | CN100557580C (zh) |
AT (1) | ATE467181T1 (zh) |
AU (1) | AU2001292928A1 (zh) |
DE (1) | DE60142060D1 (zh) |
TW (1) | TW589528B (zh) |
WO (1) | WO2002027496A2 (zh) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100389867B1 (ko) | 2001-06-04 | 2003-07-04 | 삼성전자주식회사 | 플래시 메모리 관리방법 |
US7093071B2 (en) * | 2002-10-09 | 2006-08-15 | Intel Corporation | Queued copy command |
US7117306B2 (en) * | 2002-12-19 | 2006-10-03 | Intel Corporation | Mitigating access penalty of a semiconductor nonvolatile memory |
JP4241175B2 (ja) * | 2003-05-09 | 2009-03-18 | 株式会社日立製作所 | 半導体装置 |
CN100428358C (zh) * | 2003-06-24 | 2008-10-22 | 群联电子股份有限公司 | 闪存高速大区块的数据写入方法 |
US20050132128A1 (en) * | 2003-12-15 | 2005-06-16 | Jin-Yub Lee | Flash memory device and flash memory system including buffer memory |
JP2005267497A (ja) * | 2004-03-22 | 2005-09-29 | Hitachi Global Storage Technologies Netherlands Bv | データ記憶装置、その制御方法及び磁気ディスク記憶装置 |
US6967869B1 (en) * | 2004-07-22 | 2005-11-22 | Cypress Semiconductor Corp. | Method and device to improve USB flash write performance |
US20060101192A1 (en) * | 2004-11-09 | 2006-05-11 | Zilavy Daniel V | Systems and methods of nonvolatile memory management |
CN1304957C (zh) * | 2005-01-07 | 2007-03-14 | 清华大学 | 基于移动存储的计算机系统磁盘同步写性能提高方法 |
JP5162846B2 (ja) * | 2005-07-29 | 2013-03-13 | ソニー株式会社 | 記憶装置、コンピュータシステム、および記憶システム |
US8230175B1 (en) * | 2005-08-09 | 2012-07-24 | Hewlett-Packard Development Company, L.P. | Data throughput optimization of a storage device having sequential data access |
JP2008108227A (ja) * | 2006-09-25 | 2008-05-08 | Hitachi Ltd | ストレージシステム及び監査ログ管理方法 |
TWI326028B (en) | 2006-11-20 | 2010-06-11 | Silicon Motion Inc | Method for flash memory data management |
KR100869675B1 (ko) * | 2007-02-05 | 2008-11-21 | 지인정보기술 주식회사 | 디스크립터 배열을 이용한 플래시 메모리 제어 시스템 및방법 |
US7987332B2 (en) * | 2007-03-21 | 2011-07-26 | Sandisk Technologies Inc. | Methods for storing memory operations in a queue |
US20080235480A1 (en) * | 2007-03-21 | 2008-09-25 | Shai Traister | Systems for storing memory operations in a queue |
US7934069B2 (en) * | 2007-04-27 | 2011-04-26 | Hewlett-Packard Development Company, L.P. | Enabling and disabling cache in storage systems |
CN101308479A (zh) * | 2007-05-18 | 2008-11-19 | 鸿富锦精密工业(深圳)有限公司 | 数据存储设备及其数据存储方法 |
US20090006720A1 (en) * | 2007-06-27 | 2009-01-01 | Shai Traister | Scheduling phased garbage collection and house keeping operations in a flash memory system |
US8504784B2 (en) * | 2007-06-27 | 2013-08-06 | Sandisk Technologies Inc. | Scheduling methods of phased garbage collection and housekeeping operations in a flash memory system |
US20090083482A1 (en) * | 2007-09-21 | 2009-03-26 | Vizio | Increasing the speed at which flash memory is written and read |
US9607664B2 (en) | 2007-09-27 | 2017-03-28 | Sandisk Technologies Llc | Leveraging portable system power to enhance memory management and enable application level features |
TWI344085B (en) * | 2007-11-15 | 2011-06-21 | Genesys Logic Inc | Storage system for improving efficiency in accessing flash memory and method for the same |
JP4675985B2 (ja) * | 2008-03-01 | 2011-04-27 | 株式会社東芝 | メモリシステム |
CN101459627B (zh) * | 2008-04-07 | 2012-09-05 | 中兴通讯股份有限公司 | 消息管理方法 |
US8732409B2 (en) * | 2008-11-17 | 2014-05-20 | Entropic Communications, Inc. | Cache management policy and corresponding device |
GB2472216A (en) | 2009-07-28 | 2011-02-02 | Gyrus Medical Ltd | Bipolar electrosurgical instrument with four electrodes |
US9135261B2 (en) * | 2009-12-15 | 2015-09-15 | Emc Corporation | Systems and methods for facilitating data discovery |
US9164554B2 (en) | 2010-04-12 | 2015-10-20 | Sandisk Enterprise Ip Llc | Non-volatile solid-state storage system supporting high bandwidth and random access |
US8700842B2 (en) * | 2010-04-12 | 2014-04-15 | Sandisk Enterprise Ip Llc | Minimizing write operations to a flash memory-based object store |
US8874515B2 (en) | 2011-04-11 | 2014-10-28 | Sandisk Enterprise Ip Llc | Low level object version tracking using non-volatile memory write generations |
CN102254322A (zh) * | 2011-06-09 | 2011-11-23 | 上海智翔信息科技股份有限公司 | 一种图像提取方法及装置 |
US9135064B2 (en) | 2012-03-07 | 2015-09-15 | Sandisk Enterprise Ip Llc | Fine grained adaptive throttling of background processes |
US9201784B2 (en) * | 2012-09-07 | 2015-12-01 | Kabushiki Kaisha Toshiba | Semiconductor storage device and method for controlling nonvolatile semiconductor memory |
US9785545B2 (en) * | 2013-07-15 | 2017-10-10 | Cnex Labs, Inc. | Method and apparatus for providing dual memory access to non-volatile memory |
US9348747B2 (en) | 2013-10-29 | 2016-05-24 | Seagate Technology Llc | Solid state memory command queue in hybrid device |
US10031869B1 (en) | 2014-03-28 | 2018-07-24 | Adesto Technologies Corporation | Cached memory structure and operation |
US10310923B1 (en) | 2014-08-28 | 2019-06-04 | Seagate Technology Llc | Probabilistic aging command sorting |
US10372602B2 (en) | 2015-01-30 | 2019-08-06 | Hewlett Packard Enterprise Development Lp | Ordering updates for nonvolatile memory accesses |
US10831403B2 (en) | 2017-05-19 | 2020-11-10 | Seagate Technology Llc | Probabalistic command aging and selection |
KR20210108208A (ko) * | 2020-02-25 | 2021-09-02 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69033438T2 (de) * | 1989-04-13 | 2000-07-06 | Sandisk Corp | Austausch von fehlerhaften Speicherzellen einer EEprommatritze |
US6256642B1 (en) | 1992-01-29 | 2001-07-03 | Microsoft Corporation | Method and system for file system management using a flash-erasable, programmable, read-only memory |
US5715424A (en) * | 1992-12-10 | 1998-02-03 | International Business Machines Corporation | Apparatus and method for writing data onto rewritable optical media |
US5559988A (en) * | 1993-12-30 | 1996-09-24 | Intel Corporation | Method and circuitry for queuing snooping, prioritizing and suspending commands |
US5696917A (en) * | 1994-06-03 | 1997-12-09 | Intel Corporation | Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory |
JPH08115597A (ja) * | 1994-10-17 | 1996-05-07 | Mitsubishi Electric Corp | 半導体ディスク装置 |
US5696929A (en) | 1995-10-03 | 1997-12-09 | Intel Corporation | Flash EEPROM main memory in a computer system |
US5799168A (en) * | 1996-01-05 | 1998-08-25 | M-Systems Flash Disk Pioneers Ltd. | Standardized flash controller |
GB2317720A (en) | 1996-09-30 | 1998-04-01 | Nokia Mobile Phones Ltd | Managing Flash memory |
GB2317722B (en) * | 1996-09-30 | 2001-07-18 | Nokia Mobile Phones Ltd | Memory device |
KR19990019377A (ko) * | 1997-08-29 | 1999-03-15 | 윤종용 | 플래시 메모리 이용 보조기억장치 및 그 방법 |
-
2000
- 2000-09-26 US US09/669,609 patent/US6704835B1/en not_active Expired - Fee Related
-
2001
- 2001-09-20 KR KR1020037004330A patent/KR100584255B1/ko not_active IP Right Cessation
- 2001-09-20 EP EP01973338A patent/EP1323044B1/en not_active Expired - Lifetime
- 2001-09-20 DE DE60142060T patent/DE60142060D1/de not_active Expired - Lifetime
- 2001-09-20 AU AU2001292928A patent/AU2001292928A1/en not_active Abandoned
- 2001-09-20 AT AT01973338T patent/ATE467181T1/de not_active IP Right Cessation
- 2001-09-20 CN CNB018192998A patent/CN100557580C/zh not_active Expired - Fee Related
- 2001-09-20 WO PCT/US2001/029604 patent/WO2002027496A2/en active IP Right Grant
- 2001-09-26 TW TW090123765A patent/TW589528B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
EP1323044B1 (en) | 2010-05-05 |
ATE467181T1 (de) | 2010-05-15 |
US6704835B1 (en) | 2004-03-09 |
CN100557580C (zh) | 2009-11-04 |
KR100584255B1 (ko) | 2006-05-26 |
DE60142060D1 (de) | 2010-06-17 |
WO2002027496A2 (en) | 2002-04-04 |
AU2001292928A1 (en) | 2002-04-08 |
CN1476562A (zh) | 2004-02-18 |
EP1323044A2 (en) | 2003-07-02 |
KR20040007395A (ko) | 2004-01-24 |
WO2002027496A3 (en) | 2002-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW589528B (en) | Posted write-through cache for flash memory | |
US4466059A (en) | Method and apparatus for limiting data occupancy in a cache | |
KR102395360B1 (ko) | 비휘발성 데이터 저장장치 내부에서 원자적으로 복수의 기록 트랜잭션을 수행하는 장치 제어기 및 방법 | |
US6571326B2 (en) | Space allocation for data in a nonvolatile memory | |
CN103714015B (zh) | 减少来自侦听过滤器的后无效事务的方法、装置和系统 | |
JP4226057B2 (ja) | 包含キャッシュにおける望ましくない置換動作を低減するための先行犠牲選択のための方法及び装置 | |
US9183132B2 (en) | Storage device, computer system, and storage system | |
US9779027B2 (en) | Apparatus, system and method for managing a level-two cache of a storage appliance | |
TW508575B (en) | CLFLUSH micro-architectural implementation method and system | |
US9910798B2 (en) | Storage controller cache memory operations that forego region locking | |
US20100293337A1 (en) | Systems and methods of tiered caching | |
US20050033930A1 (en) | High-speed snapshot method | |
JPH10133950A (ja) | ページテーブル更新方法および装置 | |
KR101779174B1 (ko) | 저널링 파일시스템의 데이터 폐기 방법 및 이를 구현하기 위한 메모리 관리 장치 | |
US20240152454A1 (en) | Cache management method, solid state drive controller and solid state drive | |
JPWO2015046552A1 (ja) | ストレージシステムとノード装置とキャッシュ制御方法並びにプログラム | |
US20170160940A1 (en) | Data processing method and apparatus of solid state disk | |
KR102043932B1 (ko) | 솔리드 스테이트 드라이브 캐싱 환경에서 디스크 조각 모음 관리 방법 | |
CN108228088B (zh) | 用于管理存储系统的方法和设备 | |
JP4189342B2 (ja) | ストレージ装置、ストレージコントローラ及びライトバックキャッシュ制御方法 | |
US9323671B1 (en) | Managing enhanced write caching | |
JP3320562B2 (ja) | キャッシュメモリを有する電子計算機 | |
US7107404B2 (en) | Method and system for data processing for controlling a cache memory | |
US20090327614A1 (en) | Cache tentative read buffer | |
JP2010160544A (ja) | キャッシュメモリシステム及びキャッシュメモリの制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |