TWI574274B - 循環區塊模式下的資料存取方法以及使用該方法的裝置 - Google Patents
循環區塊模式下的資料存取方法以及使用該方法的裝置 Download PDFInfo
- Publication number
- TWI574274B TWI574274B TW104114540A TW104114540A TWI574274B TW I574274 B TWI574274 B TW I574274B TW 104114540 A TW104114540 A TW 104114540A TW 104114540 A TW104114540 A TW 104114540A TW I574274 B TWI574274 B TW I574274B
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- physical
- page number
- data
- logical
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0653—Monitoring storage devices or systems
-
- 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/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- 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/7201—Logical to physical mapping or translation of blocks or pages
-
- 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/7202—Allocation control and policies
-
- 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)
- Human Computer Interaction (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本發明關連於一種快閃記憶體裝置,特別是一種循環區塊模式下的資料存取方法以及使用該方法的裝置。
快閃記憶體裝置通常分為NOR快閃裝置與NAND快閃裝置。NOR快閃裝置為隨機存取裝置,而可於位址腳位上提供任何的位址,用以存取NOR快閃裝置的主裝置(host),並及時地由NOR快閃裝置的資料腳位上獲得儲存於該位址上的資料。相反地,NAND快閃裝置並非隨機存取,而是序列存取。NAND快閃裝置無法像NOR快閃裝置一樣,可以存取任何隨機位址,主裝置反而需要寫入序列的位元組(bytes)的值到NAND快閃裝置中,用以定義請求命令(command)的類型(如,讀取、寫入、抹除等),以及用在此命令上的位址。位址可指向一個頁面(在快閃記憶體中的一個寫入作業的最小資料塊)或一個區塊(在快閃記憶體中的一個抹除作業的最小資料塊)。當NAND快閃裝置操作於區塊模式(block mode)時,處理單元可將連續性的資料(亦即是序列的邏輯區塊位址的資料)寫入一整個區塊,以提升資料存取效率。然而,當一個區塊中的部分資料被刪除並接著重新寫入時,處理單元需要耗費時間在NAND快閃
裝置尋找一個新的區塊以及將有效資料與重新寫入的資料儲存至新的區塊。本發明提出一種循環區塊模式下的資料存取方法以及使用該方法的裝置,用以改善如上所述的缺陷。
本發明的實施例提出一種循環區塊模式下的資料存取方法,由處理單元執行,至少包含下列步驟。從第一存取介面取得寫入命令、邏輯區塊位址以及第一資料。依據邏輯區塊位址計算邏輯區塊編號以及邏輯頁面編號,以及從實體儲存對照表讀取關聯於邏輯區塊編號的紀錄,其中,此紀錄包含實體區塊編號以及循環索引編號。依據邏輯頁面編號以及循環索引編號計算實體頁面編號。判斷第一資料是否可儲存至關聯於第一實體區塊編號以及實體頁面編號的第一區域。當第一資料不可儲存至關聯於第一實體區塊編號以及實體頁面編號的第一區域時,透過第二存取介面取得第二實體區塊編號,以及透過第二存取介面發送寫入指令給儲存單元,用以將第一資料寫入關聯於第二實體區塊編號從第0個實體頁面開始的第二區域。
本發明的實施例提出一種循環區塊模式下的資料存取裝置,至少包含第一存取介面、第二存取介面以及處理單元。第一存取介面耦接於主裝置,以及第二存取介面耦接於儲存裝置。處理單元耦接於第一存取介面以及第二存取介面,從第一存取介面取得寫入命令、邏輯區塊位址以及第一資料;依據邏輯區塊位址計算邏輯區塊編號以及邏輯頁面編號;從實體儲存對照表讀取關聯於邏輯區塊編號的紀錄,其中,此紀錄包
含第一實體區塊編號以及循環索引編號;依據邏輯頁面編號以及循環索引編號計算實體頁面編號;判斷第一資料是否可儲存至關聯於第一實體區塊編號以及實體頁面編號的第一區域。當第一資料不可儲存至關聯於第一實體區塊編號以及實體頁面編號的第一區域時,透過第二存取介面取得第二實體區塊編號,以及透過第二存取介面發送寫入指令給儲存單元,用以將第一資料寫入關聯於第二實體區塊編號從第0個實體頁面開始的第二區域。
本發明的實施例提出一種循環區塊模式下的資料存取方法,由處理單元執行,至少包含下列步驟。透過第一存取介面從主裝置取得讀取命令以及邏輯區塊位址。依據邏輯區塊位址計算邏輯區塊編號以及邏輯頁面編號,以及從實體儲存對照表讀取關聯於邏輯區塊編號的紀錄,其中,此紀錄包含實體區塊編號以及循環索引編號。依據邏輯頁面編號以及循環索引編號計算實體頁面編號。接著,透過第二存取介面發送讀取指令給儲存單元,用以從關聯於實體區塊編號及實體頁面編號的區域讀出邏輯區塊位址的資料,以及透過第一存取介面將資料回覆給主裝置。
10‧‧‧系統
110‧‧‧處理單元
120‧‧‧動態隨機存取記憶體
150‧‧‧存取介面
160‧‧‧主裝置
170‧‧‧存取介面
180‧‧‧儲存單元
210‧‧‧記憶體單元陣列
220‧‧‧行解碼單元
230‧‧‧列編碼單元
240‧‧‧位址單元
250‧‧‧資料緩存器
300‧‧‧區塊
300a~300f‧‧‧頁面
400‧‧‧區塊
400a~400f‧‧‧頁面
510、520‧‧‧區塊
510a、510b‧‧‧頁面
520a~520f‧‧‧頁面
610‧‧‧起始邏輯區塊位址編號欄位
620‧‧‧實體區塊編號欄位
630‧‧‧循環索引編號欄位
640‧‧‧下一空頁面編號欄位
710、720‧‧‧區塊
710a~710f、720a~720f‧‧‧頁面
S811~S877‧‧‧方法步驟
910、920‧‧‧區塊
910a~910f、920a~720f‧‧‧頁面
S1011~S1019‧‧‧方法步驟
第1圖係依據本發明實施例之快閃記憶體的系統架構示意圖。
第2圖係依據本發明實施例之快閃記憶體中的儲存單元示意圖。
第3A及3B圖係依據本發明實施例之於不同時間下的儲存單元中的區塊示意圖。
第4圖係依據本發明實施例之區塊模式中之資料寫入示意圖。
第5圖係依據本發明實施例之區塊模式中之資料寫入示意圖。
第6圖係依據本發明實施例之循環區塊模式下之紀錄的資料結構示意圖。
第7A及7B圖係依據本發明實施例之循環區塊模式中之區塊示意圖。
第8圖係依據本發明實施例之由處理單元執行的資料寫入方法流程圖。
第9圖係依據本發明實施例之循環區塊模式中之資料寫入示意圖。
第10圖係依據本發明實施例之由處理單元執行的資料寫入方法流程圖。
以下說明係為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。
必須了解的是,使用於本說明書中的”包含”、”包括”等詞,係用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任
意組合。
於權利要求中使用如”第一”、"第二"、"第三"等詞係用來修飾權利要求中的元件,並非用來表示之間具有優先權順序,先行關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。
第1圖係依據本發明實施例之快閃記憶體的系統架構示意圖。快閃記憶體的系統架構10中包含處理單元110,用以寫入資料到儲存單元180中的指定位址,以及從儲存單元180中的指定位址讀取資料。詳細來說,處理單元110透過存取介面170寫入資料到儲存單元180中的指定位址,以及從儲存單元180中的指定位址讀取資料。系統架構10使用數個電子訊號來協調處理單元110與儲存單元180間的資料與命令傳遞,包含資料線(data line)、時脈訊號(clock signal)與控制訊號(control signal)。資料線可用以傳遞命令、位址、讀出及寫入的資料;控制訊號線可用以傳遞晶片致能(chip enable,CE)、位址提取致能(address latch enable,ALE)、命令提取致能(command latch enable,CLE)、寫入致能(write enable,WE)等控制訊號。存取介面170可採用雙倍資料率(double data rate,DDR)通訊協定與儲存單元180溝通,例如,開放NAND快閃(open NAND flash interface,ONFI)、雙倍資料率開關(DDR toggle)或其他介面。處理單元110另可使用存取介面150透過指定通訊協定與主裝置160進行溝通,例如,通用序列匯流排(universal serial bus,USB)、先進技術附著(advanced technology attachment,ATA)、
序列先進技術附著(serial advanced technology attachment,SATA)、快速周邊元件互聯(peripheral component interconnect express,PCI-E)或其他介面。
第2圖係依據本發明實施例之快閃記憶體中的儲存單元示意圖。儲存單元180可包含由MxN個記憶體單元(memory cells)組成的陣列(array)210,而每一個記憶體單元儲存至少一個位元(bit)的資訊。快閃記憶體可以是NAND型快閃記憶體,或其他種類的快閃記憶體。為了正確存取資訊,行解碼單元220用以選擇記憶體單元陣列210中指定的行,而列編碼單元230用以選擇指定行中一定數量的位元組的資料作為輸出。位址單元240提供行資訊給行解碼器220,其中定義了選擇記憶體單元陣列210中的那些行。相似地,列解碼器230則根據位址單元240提供的列資訊,選擇記憶體單元陣列210的指定行中一定數量的列進行讀取或寫入操作。行可稱為為字元線(wordline),列可稱為位元線(bitline)。資料緩存器(data buffer)250可儲存從記憶體單元陣列210讀取出的資料,或欲寫入記憶體單元陣列210中的資料。記憶體單元可為單層式單元(single-level cells,SLCs)、多層式單元(multi-level cells,MLCs)或三層式單元(triple-level cells,TLCs)。
主裝置160可透過存取介面150提供邏輯區塊位址(LBA,Logical Block Address)給處理單元110,用以指示寫入或讀取特定區域的資料。於區塊模式中,儲存單元180中的一個區塊被配置為儲存連續性邏輯區塊位址的資料。第3A及3B圖係依據本發明實施例之於不同時間下的儲存單元中的區塊示
意圖。參考第3A圖,區塊300操作於區塊模式中,並且頁面300a至300e分別儲存LBA0至LBA4的資料。接著,參考第3B圖,頁面300e中LBA4的資料被刪除。於此須注意的是,雖然頁面300e中的資料是無效的,但因為沒經過抹除作業,頁面300e為不可使用狀態。當主裝置160透過存取介面150欲寫入LBA4及LBA5的資料時,處理單元110無法直接將LBA4及LBA5的資料分別寫入至頁面300e及300f。處理單元110可於區塊模式中使用以下兩種方式寫入LBA4及LBA5的資料。第4圖係依據本發明實施例之區塊模式中之資料寫入示意圖。於區塊模式中之第一種資料寫入方式,處理單元110透過存取介面170將區塊300中頁面300a至300d的資料分別搬移至新區塊400中的頁面400a至400d。接著,處理單元110透過存取介面170將LBA4及LBA5的資料分別寫入至頁面400e及400f。然而,LBA4及LBA5的資料寫入作業必須等到LBA0至LBA3的資料搬移作業完成才能開始,造成處理單元110延遲回覆主裝置160關於資料寫入作業完成的訊息。第5圖係依據本發明實施例之區塊模式中之資料寫入示意圖。於區塊模式中之第二種資料寫入方式,處理單元110透過存取介面170將LBA4及LBA5的資料分別寫入至暫存區塊510中的頁面510a及510b。之後,處理單元110將頁面300a至300d中LBA0至LBA3的資料分別搬移至新區塊520中的頁面520a至520d,以及將頁面510a至510b中LBA4至LBA5的資料分別搬移至新區塊520中的頁面520e至520f。雖然第二種資料寫入方式可解決如上所述延遲回覆的缺點,但卻需要耗費暫存區塊510。
本發明實施例提出一種循環區塊模式(circular block mode),用以讓區塊中的第一個頁面可不儲存最小LBA的資料。為最佳化資料寫入的效率,存取介面170可將一段具有連續邏輯區塊的資料分散地擺放在儲存單元180中的不同實體區域。動態隨機存取記憶體120中儲存一個實體儲存對照表(storage mapping table,又稱為H2F Host-to-Flash表),用以指出每個邏輯區塊的資料實際儲存於儲存單元180中的哪個位置。一個邏輯區塊可包含多個連續的LBA資料,並且每一個邏輯區塊位址對應到一個固定大小的實體儲存空間,例如256K、512K或1024K位元組(Bytes)。雖然本發明實施例以一個邏輯區塊儲存六個連續的LBA資料為例子,但熟習此技藝人士可將邏輯區塊設計為包含更多的LBA資料,例如128、192、256個LBA資料等。實體儲存對照表依照邏輯區塊的順序,儲存每一邏輯區塊的實體位置資訊。例如,實體儲存對照表依序儲存由邏輯區塊0至邏輯區塊1023的實體位置資訊。第6圖係依據本發明實施例之循環區塊模式下之紀錄的資料結構示意圖。針對循環區塊模式下的每個區塊,實體儲存對照表儲存一筆紀錄,可包含四個欄位:起始邏輯區塊位址編號(starting LBA number)610、實體區塊編號(physical block number)620、循環索引編號(circular index)630以及下一空頁面編號(next empty page number)640。起始邏輯區塊位址編號610指出此區塊儲存的資料中所關聯的最小邏輯區塊位址編號,循環索引編號630指出此區塊第一個頁面儲存的資料中所關聯的邏輯區塊位址編號,以及下一空頁面編號640指出下一個可用的頁面編號。第
7A圖係依據本發明實施例之循環區塊模式中之區塊示意圖。區塊710中的頁面710d至710f以及710a別儲存LBA0至LBA3的資料。實體儲存對照表中包含一筆關聯於區塊710的紀錄,其中,起始邏輯區塊位址編號為0,循環索引編號為3且下一空頁面編號為1。第7B圖係依據本發明實施例之循環區塊模式中之區塊示意圖。區塊720中的頁面720a至720e分別儲存LBA0至LBA3的資料。實體儲存對照表中包含一筆關聯於區塊720的紀錄,其中,起始邏輯區塊位址編號為0,循環索引編號為0且下一空頁面編號為4。於此須注意的是,區塊720中的資料擺放相容於如上所述區塊模式的資料擺放。
第8圖係依據本發明實施例之由處理單元執行的資料寫入方法流程圖。處理單元110透過存取介面150從主裝置160取得寫入命令、一或多個邏輯區塊位址以及待寫入的資料後(步驟S811),計算邏輯區塊編號及邏輯頁面編號(步驟S813)。於步驟S813,可使用以下範例的公式(1)計算邏輯區塊編號及邏輯頁面編號:L/n=a...b (1)其中,L代表從主裝置取得的邏輯區塊位址,n代表一個區塊所包含的頁面數目,a代表計算後的邏輯區塊編號,並且b代表計算後的邏輯頁面編號。假設一個區塊包含6個頁面並且接收到的邏輯區塊位址為4時,計算後的邏輯區塊編號為0,以及計算後的邏輯頁面編號為4。接著,從實體儲存對照表讀取關聯於邏輯區塊編號的紀錄(步驟S815),以及依據記錄中的資訊及邏輯頁面編號計算實體頁面編號(步驟S817)。於步驟S817,可使
用以下範例的公式(2)計算實體頁面編號:(b+i)/n=c...d (2)其中,b代表於步驟S813中計算出的邏輯頁面編號,i代表記錄中的循環索引編號,n代表一個區塊所包含的頁面數目,c代表計算後的商數,並且d代表計算後的實體頁面編號。請參考第7A圖。假設記錄中的循環索引編號為3,計算後的實體頁面編號為1。
處理單元110判斷此邏輯區塊位址的資料是否可儲存至關聯於實體區塊編號以及實體頁面編號的區域(步驟S831)。於步驟S831,處理單元110可判斷步驟S815所讀取記錄中的下一空頁面編號是否等於步驟S817所計算實體頁面編號。如果相等,則代表此邏輯區塊位址的資料可儲存至實體頁面編號的區域;反之,則代表此邏輯區塊位址的資料不可儲存至實體頁面編號的區域。若此邏輯區塊位址的資料可儲存至實體頁面編號的區域(步驟S831中”是”的路徑),則透過存取介面170發送寫入指令給儲存單元180,用以將此邏輯區塊位址的資料儲存至實體頁面編號的區域(步驟S851)。舉個例子,請參考第7A圖。假設記錄中的循環索引編號為3,計算後的實體頁面編號為1。處理單元將LBA4的資料寫入頁面710b。若此邏輯區塊位址的資料不可儲存至實體頁面編號的區域(步驟S831中”否”的路徑),透過存取介面170取得新實體區塊編號(步驟S871),透過存取介面170發送寫入指令給儲存單元180,用以將此邏輯區塊位址的資料寫入關聯於新實體區塊編號從第0個實體頁面開始的區域(步驟S873),透過存取介面170發送搬移
指令給儲存單元180,用以將關聯於步驟S815所讀取紀錄中的實體區塊編號的資料搬移至新實體區塊編號的區域(步驟S875),以及更新實體儲存對照表中關聯於邏輯區塊編號的紀錄,用以反映步驟S873及S875的操作(步驟S877)。舉另一個例子來說,第9圖係依據本發明實施例之循環區塊模式中之資料寫入示意圖。假設關聯於實體區塊910的紀錄儲存起始邏輯區塊位址編號為0,循環索引編號為3以及下一空頁面編號為2。當判斷記錄中的下一空頁面編號2不等於計算出的實體頁面編號1(步驟S831中”否”的路徑),處理單元110取得關聯於新實體區塊920的區塊編號(步驟S871),透過存取介面170發送寫入指令給儲存單元180,用以將LBA4的資料儲存至區塊920的頁面920a(步驟S873),透過存取介面170發送搬移指令給儲存單元180,用以將區塊910中頁面910d至910f以及910a的資料搬移至區塊920中頁面920c至920f(步驟S875),以及更新實體儲存對照表中關聯於邏輯區塊編號為0的紀錄,儲存起始邏輯區塊位址編號為0,循環索引編號為4以及下一空頁面編號為1(步驟S877)。
第10圖係依據本發明實施例之由處理單元執行的資料寫入方法流程圖。處理單元110透過存取介面150從主裝置160取得讀取命令以及一或多個邏輯區塊位址後(步驟S1011),計算邏輯區塊編號及邏輯頁面編號(步驟S1013)。於步驟S1013,可使用公式(1)來計算邏輯區塊編號及邏輯頁面編號。接著,從實體儲存對照表讀取關聯於邏輯區塊編號的紀錄(步驟S1015),以及依據記錄中的資訊及邏輯頁面編號計算實體頁
面編號(步驟S1017)。於步驟S1017,可使用公式(2)計算實體頁面編號。最後,透過存取介面170發送讀取指令給儲存單元180,用以從關聯於實體區塊編號及實體頁面編號的區域讀出此邏輯區塊位址的資料,並透過存取介面150將資料回覆給主裝置160(步驟S1019)。
雖然第1圖中包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,已達成更佳的技術效果。此外,雖然第8以及10圖的流程圖採用指定的順序來執行,但是在不違法發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順序,所以,本發明並不侷限於僅使用如上所述的順序。此外,熟習此技藝人士亦可以將若干步驟整合為一個步驟,或者是除了這些步驟外,循序或平行地執行更多步驟,本發明亦不因此而侷限。
雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請權利要求範圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。
S1011~S1019‧‧‧方法步驟
Claims (18)
- 一種循環區塊模式下的資料存取方法,由一處理單元執行,包含:從一第一存取介面取得一寫入命令、一邏輯區塊位址以及一第一資料;依據上述邏輯區塊位址計算一邏輯區塊編號以及一邏輯頁面編號;從一實體儲存對照表讀取關聯於上述邏輯區塊編號的一紀錄,其中上述紀錄包含一第一實體區塊編號以及一循環索引編號;依據上述邏輯頁面編號以及上述循環索引編號計算一實體頁面編號;判斷上述第一資料是否可儲存至關聯於上述第一實體區塊編號以及上述實體頁面編號的一第一區域;當上述第一資料不可儲存至關聯於上述第一實體區塊編號以及上述實體頁面編號的上述第一區域時,透過一第二存取介面取得一第二實體區塊編號;以及當上述第一資料不可儲存至關聯於上述第一實體區塊編號以及上述實體頁面編號的上述第一區域時,透過上述第二存取介面發送一寫入指令給一儲存單元,用以將上述第一資料寫入關聯於上述第二實體區塊編號從第0個實體頁面開始的一第二區域。
- 如申請專利範圍第1項所述的循環區塊模式下的資料存取方法,更包含: 當上述第一資料不可儲存至關聯於上述第一實體區塊編號以及上述實體頁面編號的上述第一區域時,透過上述第二存取介面發送一搬移指令給上述儲存單元,用以將關聯於上述第一實體區塊編號的一第二資料搬移至關聯於上述第二實體區塊編號中的一第三區域,其中上述第三區域在上述第二區域之後。
- 如申請專利範圍第2項所述的循環區塊模式下的資料存取方法,更包含:當上述第一資料不可儲存至關聯於上述第一實體區塊編號以及上述實體頁面編號的上述第一區域時,更新上述紀錄中之上述循環索引編號為上述實體頁面編號。
- 如申請專利範圍第1項所述的循環區塊模式下的資料存取方法,其中,上述邏輯區塊編號以及上述邏輯頁面編號之計算使用以下公式:L/n=a...b,L代表上述邏輯區塊位址,n代表一個區塊所包含的頁面數目,a代表上述邏輯區塊編號,以及b代表上述邏輯頁面編號。
- 如申請專利範圍第1項所述的循環區塊模式下的資料存取方法,其中,上述實體頁面編號之計算使用以下公式:(b+i)/n=c...d,b代表上述邏輯頁面編號,i代表上述循環索引編號,n代表一個區塊所包含的頁面數目,以及d代表上述實體頁面編號。
- 如申請專利範圍第1項所述的循環區塊模式下的資料存取方法,其中,上述紀錄更包含一下一空頁面編號,以及於判斷上述第一資料是否可儲存至關聯於上述第一實體區塊編號以及上述實體頁面編號的一第一區域的步驟中,更包含:判斷上述下一空頁面編號是否等於上述實體頁面編號。
- 如申請專利範圍第6項所述的循環區塊模式下的資料存取方法,其中,當上述下一空頁面編號不等於上述實體頁面編號時,代表上述第一資料不可儲存至關聯於上述第一實體區塊編號以及上述實體頁面編號的上述第一區域。
- 一種循環區塊模式下的資料存取裝置,包含:一第一存取介面,耦接於一主裝置;一第二存取介面,耦接於一儲存裝置;以及一處理單元,耦接於上述第一存取介面以及上述第二存取介面,從上述第一存取介面取得一寫入命令、一邏輯區塊位址以及一第一資料;依據上述邏輯區塊位址計算一邏輯區塊編號以及一邏輯頁面編號;從一實體儲存對照表讀取關聯於上述邏輯區塊編號的一紀錄,其中上述紀錄包含一第一實體區塊編號以及一循環索引編號;依據上述邏輯頁面編號以及上述循環索引編號計算一實體頁面編號;判斷上述第一資料是否可儲存至關聯於上述第一實體區塊編號以及上述實體頁面編號的一第一區域;當上述第一資料不可儲存至關聯於上述第一實體區塊編號以及上述實體頁面編號的上述第一區域時,透過一第二存取介面取得一第二 實體區塊編號;以及當上述第一資料不可儲存至關聯於上述第一實體區塊編號以及上述實體頁面編號的上述第一區域時,透過上述第二存取介面發送一寫入指令給一儲存單元,用以將上述第一資料寫入關聯於上述第二實體區塊編號從第0個實體頁面開始的一第二區域。
- 如申請專利範圍第8項所述的循環區塊模式下的資料存取裝置,其中,上述當上述第一資料不可儲存至關聯於上述第一實體區塊編號以及上述實體頁面編號的上述第一區域時,處理單元更透過上述第二存取介面發送一搬移指令給上述儲存單元,用以將關聯於上述第一實體區塊編號的一第二資料搬移至關聯於上述第二實體區塊編號中的一第三區域,其中上述第三區域在上述第二區域之後。
- 如申請專利範圍第9項所述的循環區塊模式下的資料存取裝置,其中,當上述第一資料不可儲存至關聯於上述第一實體區塊編號以及上述實體頁面編號的上述第一區域時,上述處理單元更新上述紀錄中之上述循環索引編號為上述實體頁面編號。
- 如申請專利範圍第8項所述的循環區塊模式下的資料存取裝置,其中,上述邏輯區塊編號以及上述邏輯頁面編號之計算使用以下公式:L/n=a...b,L代表上述邏輯區塊位址,n代表一個區塊所包含的頁面數目,a代表上述邏輯區塊編號,以及b代表上述邏輯頁面編號。
- 如申請專利範圍第8項所述的循環區塊模式下的資料存取裝置,其中,上述實體頁面編號之計算使用以下公式:(b+i)/n=c...d,b代表上述邏輯頁面編號,i代表上述循環索引編號,n代表一個區塊所包含的頁面數目,以及d代表上述實體頁面編號。
- 如申請專利範圍第8項所述的循環區塊模式下的資料存取裝置,其中,上述紀錄更包含一下一空頁面編號,以及上述處理單元藉由判斷上述下一空頁面編號是否等於上述實體頁面編號來判斷上述第一資料是否可儲存至關聯於上述第一實體區塊編號以及上述實體頁面編號的上述第一區域。
- 如申請專利範圍第13項所述的循環區塊模式下的資料存取裝置,其中,當上述下一空頁面編號不等於上述實體頁面編號時,代表上述第一資料不可儲存至關聯於上述第一實體區塊編號以及上述實體頁面編號的上述第一區域。
- 一種循環區塊模式下的資料存取方法,由一處理單元執行,包含:透過一第一存取介面從一主裝置取得一讀取命令以及一邏輯區塊位址;依據上述邏輯區塊位址計算一邏輯區塊編號以及一邏輯頁面編號; 從一實體儲存對照表讀取關聯於上述邏輯區塊編號的一紀錄,其中上述紀錄包含一實體區塊編號以及一循環索引編號;依據上述邏輯頁面編號以及上述循環索引編號計算一實體頁面編號;透過一第二存取介面發送一讀取指令給一儲存單元,用以從關聯於上述實體區塊編號及上述實體頁面編號的區域讀出上述邏輯區塊位址的一資料;以及透過上述第一存取介面將上述資料回覆給上述主裝置。
- 如申請專利範圍第15項所述的循環區塊模式下的資料存取方法,其中,上述邏輯區塊編號以及上述邏輯頁面編號之計算使用以下公式:L/n=a...b,L代表上述邏輯區塊位址,n代表一個區塊所包含的頁面數目,a代表上述邏輯區塊編號,以及b代表上述邏輯頁面編號。
- 如申請專利範圍第15項所述的循環區塊模式下的資料存取方法,其中,上述實體頁面編號之計算使用以下公式:(b+i)/n=c...d,b代表上述邏輯頁面編號,i代表上述循環索引編號,n代表一個區塊所包含的頁面數目,以及d代表上述實體頁面編號。
- 如申請專利範圍第15項所述的循環區塊模式下的資料存取方法,其中,上述實體儲存對照表儲存於一動態隨機存取 記憶體。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104114540A TWI574274B (zh) | 2015-05-07 | 2015-05-07 | 循環區塊模式下的資料存取方法以及使用該方法的裝置 |
CN201510292017.3A CN106201329B (zh) | 2015-05-07 | 2015-06-01 | 循环区块模式下的数据存取方法以及使用该方法的装置 |
US15/082,163 US10168951B2 (en) | 2015-05-07 | 2016-03-28 | Methods for accessing data in a circular block mode and apparatuses using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW104114540A TWI574274B (zh) | 2015-05-07 | 2015-05-07 | 循環區塊模式下的資料存取方法以及使用該方法的裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201640512A TW201640512A (zh) | 2016-11-16 |
TWI574274B true TWI574274B (zh) | 2017-03-11 |
Family
ID=57222621
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104114540A TWI574274B (zh) | 2015-05-07 | 2015-05-07 | 循環區塊模式下的資料存取方法以及使用該方法的裝置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10168951B2 (zh) |
CN (1) | CN106201329B (zh) |
TW (1) | TWI574274B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9965278B1 (en) * | 2016-12-20 | 2018-05-08 | Texas Instruments Incorporated | Streaming engine with compressed encoding for loop circular buffer sizes |
TWI602074B (zh) * | 2016-12-29 | 2017-10-11 | 慧榮科技股份有限公司 | 建立多重命名空間方法與存取多重命名空間的資料的方法 |
CN110633224A (zh) * | 2018-06-01 | 2019-12-31 | 深圳大心电子科技有限公司 | 逻辑转实体表更新方法及存储控制器 |
US10838621B2 (en) * | 2018-08-14 | 2020-11-17 | Silicon Motion, Inc. | Method and flash memory controller capable of avoiding inefficient memory block swap or inefficient garbage collection |
KR20200056533A (ko) * | 2018-11-14 | 2020-05-25 | 삼성전자주식회사 | 맵 스케줄링을 수행하기 위한 스토리지 장치 및 그것을 포함하는 전자 장치 |
US11347434B2 (en) * | 2020-04-21 | 2022-05-31 | Micron Technology, Inc. | Block family tracking for memory devices |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050144368A1 (en) * | 2003-12-30 | 2005-06-30 | Samsung Electronics Co., Ltd. | Address mapping method and mapping information managing method for flash memory, and flash memory using the same |
US20110055460A1 (en) * | 2009-09-02 | 2011-03-03 | Bo Chen | Method for managing a plurality of blocks of a flash memory, and associated memory device and controller thereof |
US8433844B2 (en) * | 2009-09-23 | 2013-04-30 | Silicon Motion Inc. | Method for managing a memory device having multiple channels and multiple ways, and associated memory device and controller thereof |
TWI409632B (zh) * | 2008-11-06 | 2013-09-21 | Silicon Motion Inc | 用來管理一記憶裝置之方法以及其相關之記憶裝置 |
TWI421869B (zh) * | 2009-10-14 | 2014-01-01 | Phison Electronics Corp | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 |
US20140095827A1 (en) * | 2011-05-24 | 2014-04-03 | Agency For Science, Technology And Research | Memory storage device, and a related zone-based block management and mapping method |
TWI438630B (zh) * | 2011-03-22 | 2014-05-21 | Phison Electronics Corp | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 |
TWI459198B (zh) * | 2011-07-08 | 2014-11-01 | Phison Electronics Corp | 記憶體儲存裝置、其記憶體控制器與有效資料識別方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8219776B2 (en) * | 2009-09-23 | 2012-07-10 | Lsi Corporation | Logical-to-physical address translation for solid state disks |
-
2015
- 2015-05-07 TW TW104114540A patent/TWI574274B/zh active
- 2015-06-01 CN CN201510292017.3A patent/CN106201329B/zh active Active
-
2016
- 2016-03-28 US US15/082,163 patent/US10168951B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050144368A1 (en) * | 2003-12-30 | 2005-06-30 | Samsung Electronics Co., Ltd. | Address mapping method and mapping information managing method for flash memory, and flash memory using the same |
TWI409632B (zh) * | 2008-11-06 | 2013-09-21 | Silicon Motion Inc | 用來管理一記憶裝置之方法以及其相關之記憶裝置 |
US20110055460A1 (en) * | 2009-09-02 | 2011-03-03 | Bo Chen | Method for managing a plurality of blocks of a flash memory, and associated memory device and controller thereof |
TWI450271B (zh) * | 2009-09-02 | 2014-08-21 | Silicon Motion Inc | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 |
US8433844B2 (en) * | 2009-09-23 | 2013-04-30 | Silicon Motion Inc. | Method for managing a memory device having multiple channels and multiple ways, and associated memory device and controller thereof |
TWI421869B (zh) * | 2009-10-14 | 2014-01-01 | Phison Electronics Corp | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 |
TWI438630B (zh) * | 2011-03-22 | 2014-05-21 | Phison Electronics Corp | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 |
US20140095827A1 (en) * | 2011-05-24 | 2014-04-03 | Agency For Science, Technology And Research | Memory storage device, and a related zone-based block management and mapping method |
TWI459198B (zh) * | 2011-07-08 | 2014-11-01 | Phison Electronics Corp | 記憶體儲存裝置、其記憶體控制器與有效資料識別方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106201329A (zh) | 2016-12-07 |
US10168951B2 (en) | 2019-01-01 |
TW201640512A (zh) | 2016-11-16 |
US20160328183A1 (en) | 2016-11-10 |
CN106201329B (zh) | 2019-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9697116B2 (en) | Storage system and writing method thereof | |
TWI574274B (zh) | 循環區塊模式下的資料存取方法以及使用該方法的裝置 | |
TWI692690B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI567554B (zh) | 緩存及讀取即將寫入儲存單元之資料的方法以及使用該方法的裝置 | |
KR101663437B1 (ko) | 메모리 블록들의 호스트-지원형 압축 | |
US20150347291A1 (en) | Flash memory based storage system and operating method | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
US20150098271A1 (en) | System and method of storing data in a data storage device | |
CN110806984B (zh) | 在存储器系统中搜索有效数据的设备和方法 | |
CN109117383B (zh) | 管理闪存模块的方法和闪存控制器 | |
JP2017503266A (ja) | フラッシュメモリ内に記憶されたデータの推測的プリフェッチ | |
US11640354B2 (en) | Logical-to-physical mapping of data groups with data locality | |
TWI512609B (zh) | 讀取命令排程方法以及使用該方法的裝置 | |
TWI659304B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
KR102595233B1 (ko) | 데이터 처리 시스템 및 그것의 동작 방법 | |
CN101354906A (zh) | 应用于固态硬盘的闪存控制器 | |
TW201631592A (zh) | 讀取快閃記憶體中儲存單元資料的方法以及使用該方法的裝置 | |
TWI657339B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器 | |
US11526299B2 (en) | Elastic buffer for media management of a memory sub-system | |
TWI503841B (zh) | 寫入方法、記憶體控制器與記憶體儲存裝置 | |
US11698856B2 (en) | Maintaining sequentiality for media management of a memory sub-system | |
US20240012564A1 (en) | Memory controller and storage device including the same | |
US10923178B1 (en) | Data storage with improved write performance for preferred user data | |
CN108536475A (zh) | 完整编程命令处理方法与装置 | |
US11287987B2 (en) | Coherency locking schemes |