TW202139013A - 管理垃圾回收程序的電腦程式產品及方法及裝置 - Google Patents
管理垃圾回收程序的電腦程式產品及方法及裝置 Download PDFInfo
- Publication number
- TW202139013A TW202139013A TW109111695A TW109111695A TW202139013A TW 202139013 A TW202139013 A TW 202139013A TW 109111695 A TW109111695 A TW 109111695A TW 109111695 A TW109111695 A TW 109111695A TW 202139013 A TW202139013 A TW 202139013A
- Authority
- TW
- Taiwan
- Prior art keywords
- pages
- block
- type
- physical block
- flash memory
- Prior art date
Links
Images
Landscapes
- Memory System (AREA)
Abstract
本發明涉及一種垃圾回收程序管理方法,由閃存控制器執行,包含:決定待處理的多個來源塊;將來源塊中小於第一類型實體塊的空頁面總數的有效頁面的使用者資料寫入第二類型實體塊中的空頁面,其中第一類型實體塊的空頁面總數大於第二類型實體塊的空頁面總數;以及將第二類型實體塊中剩餘的空頁面填滿虛假值。
Description
本發明涉及儲存裝置,尤指一種管理垃圾回收程序的電腦程式產品及方法及裝置。
閃存通常分為NOR閃存與NAND閃存。NOR閃存為隨機存取裝置,中央處理器(Host)可於位址腳位上提供任何存取NOR閃存的位址,並及時地從NOR閃存的資料腳位上獲得儲存於該位址上的資料。相反地,NAND閃存並非隨機存取,而是序列存取。NAND閃存無法像NOR閃存一樣,可以存取任何隨機位址,中央處理器反而需要寫入序列的位元組(Bytes)的值到NAND閃存中,用於定義請求命令(Command)的類型(如,讀取、寫入、抹除等),以及用在此命令上的位址。位址可指向一個頁面(閃存中寫入作業的最小資料塊)或一個區塊(閃存中抹除作業的最小資料塊)。
經過多次的存取後,一個實體塊可能包含有效及無效頁面(又稱為過期頁面),其中,有效頁面儲存有效的使用者資料,無效頁面儲存無效的(舊的)使用者資料。當閃存控制器偵測到儲存裝置的可用空間低於閥值時,可發出讀取命令指示儲存裝置讀取並蒐集數個實體塊中有效頁面的使用者資料,接著,發出寫入命令指示儲存裝置重新寫入蒐集起來的有效使用者資料至閒置區塊或主動區塊的空實體頁面,使得這些包含無效的使用者資料的資料塊可變更成為閒置區塊,於抹除後,即可提供資料儲存空間。如上所述的程序稱為垃圾回收(Garbage Collection,GC)。然而,垃圾回收程序若設計不良會影響儲存裝置的整體效能。因此,本發明提出一種管理垃圾回收程序的電腦程式產品及方法及裝置,用於優化垃圾回收程序的執行時間。
有鑑於此,如何減輕或消除上述相關領域的缺失,實為有待解決的問題。
本說明書涉及一種電腦程式產品,用於管理垃圾回收程序,包含由閃存控制器的處理單元載入並執行的程式碼:決定待處理的多個來源塊;將來源塊中小於第一類型實體塊的空頁面總數的有效頁面的使用者資料寫入第二類型實體塊中的空頁面;以及將第二類型實體塊中剩餘的空頁面填滿虛假值。
本說明書另涉及一種垃圾回收程序管理方法,由閃存控制器執行,包含:決定待處理的多個來源塊;將來源塊中小於第一類型實體塊的空頁面總數的有效頁面的使用者資料寫入第二類型實體塊中的空頁面;以及將第二類型實體塊中剩餘的空頁面填滿虛假值。
本說明書更另涉及一種垃圾回收程序管理裝置,包含:閃存介面;和處理單元。閃存介面耦接閃存模組,並處理單元耦接閃存介面。處理單元決定閃存模組中待處理的多個來源塊;驅動閃存介面將來源塊中小於第一類型實體塊的空頁面總數的有效頁面的使用者資料寫入第二類型實體塊中的空頁面;以及驅動閃存介面將第二類型實體塊中剩餘的空頁面填滿虛假值。
每個來源塊包含至少一個無效頁面,第一類型實體塊的空頁面總數大於第二類型實體塊的空頁面總數。
上述實施例的優點之一,通過如上所述的寫入操作,可減少關閉實體塊所需使用的資源和時間,提升執行垃圾回收程序的效率。
本發明的其他優點將搭配以下的說明和圖式進行更詳細的解說。
以下說明為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。
必須了解的是,使用於本說明書中的“包含”、“包括”等詞,用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。
於權利要求中使用如“第一”、“第二”、“第三”等詞是用來修飾權利要求中的元件,並非用來表示之間具有優先順序,前置關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。
必須了解的是,當元件描述為“連接”或“耦接”至另一元件時,可以是直接連結、或耦接至其他元件,可能出現中間元件。相反地,當元件描述為“直接連接”或“直接耦接”至另一元件時,其中不存在任何中間元件。使用來描述元件之間關係的其他語詞也可類似方式解讀,例如“介於”相對於“直接介於”,或者是“鄰接”相對於“直接鄰接”等等。
參考圖1。電子裝置10包含主機端(Host Side)110、閃存控制器130及閃存模組150,並且閃存控制器130及閃存模組150可合稱為裝置端(Device Side)。電子裝置10可實施於個人電腦、筆記型電腦(Laptop PC)、平板電腦、手機、數位相機、數位攝影機等電子產品之中。主機端110與閃存控制器130的主機介面(Host Interface)137可以通用序列匯流排(Universal Serial Bus,USB)、先進技術附著(advanced technology attachment,ATA)、序列先進技術附著(serial advanced technology attachment,SATA)、快速周邊元件互聯(peripheral component interconnect express,PCI-E)、通用快閃記憶儲存(Universal Flash Storage UFS)、嵌入式多媒體卡(Embedded Multi-Media Card eMMC)等通訊協定彼此溝通。閃存控制器130的閃存介面(Flash Interface)139與閃存模組150可以雙倍資料率(Double Data Rate DDR)通訊協定彼此溝通,例如,開放NAND快閃介面(Open NAND Flash Interface ONFI)、雙倍資料率開關(DDR Toggle)或其他通訊協定。閃存控制器130包含處理單元134,可使用多種方式實施,如使用通用硬體(例如,單一處理器、具平行處理能力的多處理器、圖形處理器或其他具運算能力的處理器),並且在執行軟體以及/或韌體指令時,提供之後描述的功能。處理單元134通過主機介面131接收主機命令,例如讀取命令(Read Command)、寫入命令(Write Command)、抹除命令(Erase Command)等,排程並執行這些命令。閃存控制器130另包含隨機存取記憶體(Random Access Memory, RAM)136,可實施為動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)、靜態隨機存取記憶體(Static Random Access Memory,SRAM)或上述兩者的結合,用於配置空間作為資料緩衝區,儲存從主機端110讀取並即將寫入閃存模組150的使用者資料(也可稱為主機資料),以及從閃存模組150讀取並即將輸出給主機端110的使用者資料。隨機存取記憶體136另可儲存執行過程中需要的資料,例如,變數、資料表、主機-閃存對照表(Host-to-Flash,H2F Table)、閃存-主機對照表(Flash-to-Host,F2H Table)等。閃存介面139包含NAND閃存控制器(NAND Flash Controller,NFC),提供存取閃存模組150時需要的功能,例如命令序列器(Command Sequencer)、低密度奇偶校驗(Low Density Parity Check,LDPC)等。
閃存控制器130中可配置匯流排架構(Bus Architecture)132,用於讓元件之間彼此耦接以傳遞資料、位址、控制訊號等,這些元件包含主機介面131、處理單元134、RAM 136、直接記憶體存取(Direct Memory Access,DMA)控制器138、閃存介面139等。於一些實施例中,主機介面131、處理單元134、RAM 136、DMA控制器138與閃存介面139可通過單一匯流排彼此耦接。於另一些實施例中,閃存控制器130中可配置高速匯流排,用於讓處理單元134、DMA控制器138與RAM 136彼此耦接,並且配置低速匯流排,用於讓處理單元134、DMA控制器138、主機介面131與閃存介面139彼此耦接。DMA控制器138可依據處理單元134的指令,通過匯流排架構132在元件間搬移資料,例如,將主機介面131或閃存介面139中特定資料緩存器(Data Buffer)的資料搬到RAM 136中的特定位址,將RAM 136中特定位址的資料搬到將主機介面131或閃存介面139中的特定資料緩存器等。
匯流排包含並行的物理線,連接閃存控制器130中兩個以上的組件。匯流排是一種共享的傳輸媒體,在任意的時間上,只能有兩個裝置可以使用這些線來彼此溝通,用於傳遞資料。資料及控制訊號能夠在組件間分別沿資料和控制線進行雙向傳播,但另一方面,位址訊號只能沿位址線進行單向傳播。例如,當處理單元134想要讀取RAM 136的特定位址上的資料時,處理單元134在位址線上傳送此位址給RAM 136。接著,此位址的資料會在資料線上回覆給處理單元134。為了完成資料讀取操作,控制訊號會使用控制線進行傳遞。
閃存模組150提供大量的儲存空間,通常是數百個千兆位元組(Gigabytes,GB),甚至是數個兆兆位元組(Terabytes,TB),用於儲存大量的使用者資料,例如高解析度圖片、影片等。閃存模組150中包含控制電路以及記憶體陣列,記憶體陣列中的記憶單元可包含單層式單元(Single Level Cells,SLCs)、多層式單元(Multiple Level Cells,MLCs)三層式單元(Triple Level Cells,TLCs)、四層式單元(Quad-Level Cells,QLCs)或上述的任意組合。處理單元134通過閃存介面139寫入使用者資料到閃存模組150中的指定位址(目的位址),以及從閃存模組150中的指定位址(來源位址)讀取使用者資料。閃存介面139使用數個電子訊號來協調閃存控制器130與閃存模組150間的資料與命令傳遞,包含資料線(Data Line)、時脈訊號(clock signal)與控制訊號(control signal)。資料線可用於傳遞命令、位址、讀出及寫入的資料;控制訊號線可用於傳遞晶片致能(Chip Enable CE)、位址提取致能(Address Latch Enable ALE)、命令提取致能(Command Latch Enable CLE)、寫入致能(Write Enable WE)等控制訊號。
當一個實體塊的每個記憶單元設置為單層式單元而可記錄二個狀態時,一個實體字元線只儲存單一頁面的使用者資料。當一個實體塊的每個記憶單元設置為多層式單元而可記錄四個狀態時,一個實體字元線可儲存二個頁面的使用者資料,包含最高有效位元頁面(Most Significant Bit,MSB Page)和最低有效位元頁面(Least Significant Bit page,LSB)。當一個實體塊的每個記憶單元設置為三層式單元而可記錄八個狀態時,一個實體字元線可儲存三個頁面的使用者資料,包含最高有效位元頁面、中間有效位元頁面(Center Significant Bit,CSB Page)和最低有效位元頁面。當一個實體塊的每個記憶單元設置為四層式單元而可記錄十六個狀態時,一個實體字元線可儲存除了最高有效位元頁面、中間有效位元頁面和最低有效位元頁面的使用者資料之外,更包括儲存頂部有效位元頁面(Top Significant Bit,TSB Page)的使用者資料。以上所述包含SLC、MLC、TLC及QLC的記憶單元的實體塊可視為不同類型的實體塊。
參考圖2,閃存模組150中的介面151可包含四個輸出入通道(I/O channels,以下簡稱通道)CH#0至CH#3,每一個通道連接四個NAND閃存單元,例如,通道CH#0連接NAND閃存單元153#0、153#4、153#8及153#12。每個NAND閃存單元可封裝為獨立的芯片(die)。閃存介面139可通過介面151發出致能訊號CE#0至CE#3中的一個來致能NAND閃存單元153#0至153#3、153#4至153#7、153#8至153#11、或153#12至153#15,接著以並行的方式從致能的NAND閃存單元讀取使用者資料,或者寫入使用者資料至致能的NAND閃存單元。
每個NAND閃存單元可包含多個資料平面(Data Planes),每個資料平面可包含多個實體塊(Physical Blocks),並且每個實體塊可包含多個實體頁面(Physical Pages)。參考圖3的實施例,NAND閃存單元153#0包含兩個資料平面310及330。資料平面310包含實體塊310#0至310#m,且資料平面330包含實體塊330#0至330#m。每個實體塊包含n+1個實體頁面。NAND閃存單元、實體塊和實體頁面可分別使用邏輯單元號(Logical Block Number,LUN)、塊編號(Block Number)和頁面編號(Page Number)識別,而以上編號的任意組合可稱為閃存模組150的實體位址。每個資料平面中的任一個實體塊可設置為SLC、MLC、TLC或QLC塊。
當閃存模組150的可用儲存空間少於閥值時,例如1/2的實體塊、1/3的實體塊,閃存控制器130啟動垃圾回收(Garbage Collection,GC)程序,用於釋放出無效頁面的儲存空間。在這裡需要注意的是,GC程序是一種閃存控制器130主動發動的程序,而不是受到主機端110的指揮來發動。在一些實施方式中,處理單元134可蒐集多個SLC塊(可稱為來源塊)的有效頁面的使用者資料,然後將搜集完成的使用者資料寫入TLC塊(可稱為目的塊)的空頁面。來源塊被處理單元134抹除後,即可提供儲存空間給未來接收到的使用者資料。然而,當來源塊的有效頁面的數目少於一個TLC塊的頁面總數時,剩餘未寫入使用者資料的空頁面需要填滿虛假值來關閉實體塊(Close Block)。參考圖4,處理單元134搜集SLC塊410#0至410#5中有效頁面的使用者資料(以斜線的方塊表示),並且將蒐集到的使用者資料寫入TLC塊430中的空頁面(以斜線的方塊表示)。接著,處理單元134將剩餘的空頁面填滿虛假值(Dummy Values)。雖然虛假值是沒有用的,但填滿虛假值也是一種寫入操作,閃存模組150同樣需要花費相同於寫入使用者資料的時間來完成操作。
為了解決如上所述實施方式的問題,本發明實施例提出一種GC程序的管理方法,由處理單元134載入和執行相關韌體或軟體指令時實施。參考圖5,詳細步驟說明如下:
步驟S510:決定閃存模組150中待處理的來源塊。處理單元134可選擇多個包含無效頁面的實體塊,當作來源塊。來源塊可以是SLC、MLC、TLC、QLC塊,或者以上的任意組合。
步驟S520:計算來源塊中的有效頁面數目。
步驟S530:判斷有效頁面數目是否等於或大於一個TLC塊的頁面總數。如果是,流程進行步驟S540的處理;否則,流程進行步驟S550的處理。
步驟S540:將來源塊中ixN個有效頁面的使用者資料寫入閃存模組150中至少一個TLC塊(也稱為目的塊),ixN>M,i代表大於零的正整數,M代表有效頁面數目,N代表一個TLC塊的頁面總數。處理單元134驅動閃存介面139來完成多個來源塊中ixN個有效頁面的讀取操作,以及TLC塊的寫入操作。
步驟S550:將來源塊中剩餘有效頁面(其數目不足一個TLC塊的頁面總數)的使用者資料寫入閃存模組150中至少一個SLC塊(也稱為目的塊)的空頁面。於此需注意的是,來源塊中剩餘有效頁面的數目可能超過一個SLC塊的頁面總數。處理單元134驅動閃存介面139來完成一個或多個來源塊中剩餘有效頁面的讀取操作,以及一個或多個SLC塊的寫入操作。
步驟S560:將閃存模組150中SLC塊(目的塊)中剩餘的空頁面填滿虛假值。在這裏需要注意的是,由於TLC塊的寫入操作使用粗略到精細(Foggy-to-Fine,F2F)的技術,其寫入資料的步驟複雜度相較於寫入SLC塊為高,並且其所需要的時間通常也較長。此外,由於TLC塊的空頁面總數相較於SLC塊的空頁面總數為多,大約是SLC塊的空頁面的三倍,TLC塊的剩餘空頁面總數通常會比SLC塊的剩餘空頁面總數多。
對比於圖4所示的使用案例,參考圖6。通過如上所述的方法,由於處理單元134將蒐集到的SLC塊410#0至410#5中有效頁面的使用者資料(以斜線的方塊表示)寫入SLC塊610中的空頁面(以斜線的方塊表示),因此,需要填寫的虛假值較少。
此外,參考圖7所示的另一個使用案例。處理單元134搜集SLC塊710#0至710#5中有效頁面的使用者資料(以斜線的方塊表示),將蒐集到的使用者資料寫入TLC塊730中的所有頁面(以斜線的方塊表示),並且將剩餘的使用者資料寫入SLC塊750中的頁面(以斜線的方塊表示)。接著,處理單元134將SLC塊750中的剩餘空頁面填滿虛假值)。
雖然圖6和圖7顯示的每個實體塊中的有效頁面和無效頁面分別是兩塊連續的區域,但這只是方便說明的簡化表達。實際上,每個實體塊中的有效頁面和無效頁面經常是互相交錯,本發明並不因此受限。例如,一個實體塊的有效頁面為頁面P#0~5、P#10~15、P#20~25和P#30~35。
如上所述本發明實施例的GC程序管理方法可經過適當修改後應用到QLC塊的情境。步驟S530可修改為判斷有效頁面數目是否等於或大於一個QLC塊的頁面總數。步驟S540可修改為將閃存模組150的來源塊中ixN個有效頁面的使用者資料寫入閃存模組150中至少一個QLC塊(也稱為目的塊)的空頁面,ixN>M,i代表大於零的正整數,M代表有效頁面數目,N代表一個QLC塊的頁面總數。步驟S550可修改為將來源塊中剩餘有效頁面(其數目不足一個QLC塊的頁面總數)的使用者資料寫入閃存模組150中至少一個SLC塊(也稱為目的塊)的空頁面。
於本發明的一個面向,處理單元134決定待處理的多個來源塊,其中,每個來源塊包含至少一個無效頁面;將來源塊中不足(或小於)一個第一類型實體塊的頁面總數的有效頁面的使用者資料寫入第二類型實體塊中的空頁面,其中,一個第一類型實體塊的頁面總數高於一個第二類型實體塊的頁面總數;以及將第二類型實體塊中剩餘的空頁面填滿虛假值,用於避免花費太多時間和資源來填寫虛假值。舉例來說,一個第一類型實體塊(如TLC或QLC塊)的頁面總數至少兩倍於一個第二類型實體塊(如SLC塊)的頁面總數。一個第一類型實體塊的頁面總數和一個第二類型實體塊的頁面總數分別指在一個第一類型實體塊和一個第二類型實體塊中用來儲存使用者資料的最大空頁面總數。
所以,相較於以前的實施方式,通過步驟S530的判斷和步驟S560的寫入操作,可減少關閉實體塊所需使用的資源和時間,提升執行垃圾回收程序的效率。
本發明所述的方法中的全部或部分步驟可以計算機指令實現,例如儲存裝置中的韌體轉換層(Firmware Translation Layer,FTL)、特定硬體的驅動程式等。此外,也可實現於其他類型程式。所屬技術領域具有通常知識者可將本發明實施例的方法撰寫成計算機指令,為求簡潔不再加以描述。依據本發明實施例方法實施的計算機指令可儲存於適當的電腦可讀取媒體,例如DVD、CD-ROM、USB碟、硬碟,亦可置於可通過網路(例如,網際網路,或其他適當載具)存取的網路伺服器。
雖然圖1、2中包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,已達成更佳的技術效果。此外,雖然圖5的流程圖採用指定的順序來執行,但是在不違反發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順序,所以,本發明並不侷限於僅使用如上所述的順序。此外,熟習此技藝人士亦可以將若干步驟整合為一個步驟,或者是除了這些步驟外,循序或平行地執行更多步驟,本發明亦不因此而侷限。
雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請權利要求範圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。
10:電子裝置
110:主機端
130:閃存控制器
131:主機介面
132:匯流排
134:處理單元
136:隨機存取記憶體
138:直接記憶體存取控制器
139:閃存介面
150:閃存模組
151:介面
153#0~153#15:NAND閃存單元
CH#0~CH#3:通道
CE#0~CE#3:致能訊號
310、330:資料平面
310#0~310#m,330#0~330#m:實體塊
P#0~P#n:實體頁面
410#0~410#5:SLC塊
430:TLC塊
S510~S560:方法步驟
610:SLC塊
710#0~710#5:SLC塊
730:TLC塊
750:SLC塊
圖1為依據本發明實施例的電子裝置的系統架構圖。
圖2為依據本發明實施例的閃存模組的示意圖。
圖3為依據本發明實施例的NAND閃存單元的示意圖。
圖4為依據一些實施方式的垃圾回收示意圖。
圖5為依據本發明實施例的垃圾回收程序的寫入方法的流程圖。
圖6和圖7為依據本發明實施例的垃圾回收示意圖。
S510~S560:方法步驟
Claims (13)
- 一種電腦程式產品,用於管理垃圾回收程序,包含由一閃存控制器的一處理單元載入並執行的程式碼: 決定待處理的多個來源塊,其中,每個上述來源塊包含至少一個無效頁面; 將上述來源塊中小於一個第一類型實體塊的頁面總數的有效頁面的使用者資料寫入一第二類型實體塊中的空頁面,其中上述一個第一類型實體塊的頁面總數大於一個上述第二類型實體塊的頁面總數;以及 將上述第二類型實體塊中剩餘的空頁面填滿虛假值。
- 如請求項1所述的電腦程式產品,包含由上述閃存控制器的上述處理單元載入並執行的程式碼: 計算上述來源塊中的一有效頁面數目; 判斷上述來源塊中的上述有效頁面數目是否等於或大於一個上述第一類型實體塊的頁面總數; 當上述來源塊中的上述有效頁面數目等於或大於一個上述第一類型實體塊的頁面總數時,將上述來源塊中ixN個有效頁面的使用者資料寫入至少一個上述第一類型實體塊中的空頁面,ixN>M,i代表大於零的正整數,M代表上述有效頁面數目,N代表一個上述第一類型實體塊的頁面總數,以及將上述來源塊中剩餘的有效頁面的使用者資料寫入上述第二類型實體塊中的空頁面;以及 當上述來源塊中的上述有效頁面數目小於一個上述第一類型實體塊的頁面總數時,將上述來源塊中有效頁面的使用者資料寫入上述第二類型實體塊中的空頁面。
- 如請求項1至2中任一項所述的電腦程式產品,其中,一個上述第一類型實體塊的頁面總數是一個上述第二類型實體塊的頁面總數的兩倍或以上。
- 如請求項1至2中任一項所述的電腦程式產品,其中,上述第一類型實體塊是三層式單元塊或四層式單元塊,上述第二類型實體塊是單層式單元塊。
- 如請求項1至2中任一項所述的電腦程式產品,其中,每個上述來源塊是單層式單元塊。
- 一種垃圾回收程序管理方法,由一閃存控制器執行,包含: 決定待處理的多個來源塊,其中,每個上述來源塊包含至少一個無效頁面; 將上述來源塊中小於一個第一類型實體塊的頁面總數的有效頁面的使用者資料寫入一第二類型實體塊中的空頁面,其中一個上述第一類型實體塊的頁面總數大於一個上述第二類型實體塊的頁面總數;以及 將上述第二類型實體塊中剩餘的空頁面填滿虛假值。
- 如請求項6所述的垃圾回收程序管理方法,其中,一個上述第一類型實體塊的頁面總數是一個上述第二類型實體塊的頁面總數的兩倍或以上。
- 如請求項6所述的垃圾回收程序管理方法,其中,上述第一類型實體塊是三層式單元塊或四層式單元塊,上述第二類型實體塊是單層式單元塊。
- 一種垃圾回收程序管理裝置,包含: 一閃存介面,耦接一閃存模組;以及 一處理單元,耦接上述閃存介面,用於決定上述閃存模組中待處理的多個來源塊,其中,每個上述來源塊包含至少一個無效頁面;驅動上述閃存介面將上述來源塊中小於一個第一類型實體塊的頁面總數的有效頁面的使用者資料寫入上述閃存模組的一第二類型實體塊中的空頁面,其中一個上述第一類型實體塊的頁面總數大於一個上述第二類型實體塊的頁面總數;以及驅動上述閃存介面將上述第二類型實體塊中剩餘的空頁面填滿虛假值。
- 如請求項9所述的垃圾回收程序管理裝置,其中,上述處理單元計算上述來源塊中的一有效頁面數目;判斷上述來源塊中的上述有效頁面數目是否等於或大於一個上述第一類型實體塊的頁面總數;當上述來源塊中的上述有效頁面數目等於或大於一個上述第一類型實體塊的頁面總數時,驅動上述閃存介面將上述閃存模組中上述來源塊中ixN個有效頁面的使用者資料寫入至少一個上述第一類型實體塊中的空頁面,ixN>M,i代表大於零的正整數,M代表上述有效頁面數目,N代表一個上述第一類型實體塊的頁面總數,驅動上述閃存介面將上述閃存模組的上述來源塊中剩餘有效頁面的使用者資料寫入上述第二類型實體塊中的空頁面;以及當上述來源塊中的有效頁面數目小於一個上述第一類型實體塊的頁面總數時,驅動上述閃存介面將上述閃存模組的上述來源塊中有效頁面的使用者資料寫入上述第二類型實體塊中的空頁面。
- 如請求項9至10中任一項所述的垃圾回收程序管理裝置,其中,一個上述第一類型實體塊的頁面總數是一個上述第二類型實體塊的頁面總數的兩倍或以上。
- 如請求項9至10中任一項所述的垃圾回收程序管理裝置,其中,上述第一類型實體塊是三層式單元塊或四層式單元塊,上述第二類型實體塊是單層式單元塊。
- 如請求項9至10中任一項所述的垃圾回收程序管理裝置,其中,每個上述來源塊是單層式單元塊。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109111695A TWI740446B (zh) | 2020-04-08 | 2020-04-08 | 管理垃圾回收程序的電腦程式產品及方法及裝置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109111695A TWI740446B (zh) | 2020-04-08 | 2020-04-08 | 管理垃圾回收程序的電腦程式產品及方法及裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI740446B TWI740446B (zh) | 2021-09-21 |
TW202139013A true TW202139013A (zh) | 2021-10-16 |
Family
ID=78778218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109111695A TWI740446B (zh) | 2020-04-08 | 2020-04-08 | 管理垃圾回收程序的電腦程式產品及方法及裝置 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI740446B (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4280055B2 (ja) * | 2001-11-28 | 2009-06-17 | 株式会社Access | メモリ制御方法および装置 |
JP5603997B2 (ja) * | 2010-10-26 | 2014-10-08 | 株式会社日立製作所 | ストレージ装置及びデータ制御方法 |
EP2631916B1 (en) * | 2011-09-06 | 2015-08-26 | Huawei Technologies Co., Ltd. | Data deletion method and apparatus |
US10521339B2 (en) * | 2013-02-28 | 2019-12-31 | Technion Research And Development Foundation Ltd. | Retired page utilization (RPU) for improved write capacity of solid state drives |
TWI653538B (zh) * | 2017-11-13 | 2019-03-11 | 慧榮科技股份有限公司 | 資料儲存裝置與記憶體裝置之資料處理方法 |
-
2020
- 2020-04-08 TW TW109111695A patent/TWI740446B/zh active
Also Published As
Publication number | Publication date |
---|---|
TWI740446B (zh) | 2021-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI409633B (zh) | 快閃記憶體儲存裝置、其控制器與資料寫入方法 | |
TWI719654B (zh) | 閃存實體資源集合管理裝置及方法以及電腦程式產品 | |
KR102595233B1 (ko) | 데이터 처리 시스템 및 그것의 동작 방법 | |
TWI698749B (zh) | 資料儲存裝置與資料處理方法 | |
TWI737031B (zh) | 多平面上頁面的片段資料讀取方法及電腦程式產品 | |
KR20210098717A (ko) | 컨트롤러, 컨트롤러의 동작 방법 및 이를 포함하는 저장 장치 | |
KR20200114212A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR102434840B1 (ko) | 데이터 저장 장치 | |
KR20200114086A (ko) | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 | |
KR20220103340A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN113495850B (zh) | 管理垃圾回收程序的方法、装置及计算机可读取存储介质 | |
TWI740446B (zh) | 管理垃圾回收程序的電腦程式產品及方法及裝置 | |
TWI749490B (zh) | 寫入閃存管理表的電腦程式產品及方法及裝置 | |
KR20210006556A (ko) | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 | |
TWI754396B (zh) | 快閃記憶體的資料儲存方法及裝置以及電腦程式產品 | |
US11157401B2 (en) | Data storage device and operating method thereof performing a block scan operation for checking for valid page counts | |
KR20220076803A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN114625307A (zh) | 计算机可读存储介质、闪存芯片的数据读取方法及装置 | |
TWI835027B (zh) | 更新主機與閃存位址對照表的方法及電腦程式產品及裝置 | |
CN113448487B (zh) | 写入闪存管理表的计算机可读取存储介质、方法及装置 | |
TWI810876B (zh) | 因應主機丟棄命令的資料存取方法及產品電腦程式及裝置 | |
TW202101229A (zh) | 資料儲存裝置與資料處理方法 | |
KR20210002190A (ko) | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 | |
TWI758745B (zh) | 排程主機命令執行的電腦程式產品及方法及裝置 | |
KR102583244B1 (ko) | 스토리지 장치 및 스토리지 장치의 동작 방법 |