TW201835757A - 垃圾回收方法以及使用該方法的裝置 - Google Patents
垃圾回收方法以及使用該方法的裝置 Download PDFInfo
- Publication number
- TW201835757A TW201835757A TW106109513A TW106109513A TW201835757A TW 201835757 A TW201835757 A TW 201835757A TW 106109513 A TW106109513 A TW 106109513A TW 106109513 A TW106109513 A TW 106109513A TW 201835757 A TW201835757 A TW 201835757A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- garbage collection
- access interface
- storage unit
- processing unit
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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
- 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/0608—Saving storage space on storage 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/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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- 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/064—Management of blocks
-
- 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/0656—Data buffering arrangements
-
- 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]
-
- 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)
Abstract
本發明的實施例提出一種垃圾回收方法,由處理單元執行,包含下列步驟:執行垃圾回收程序的指令以驅動第一存取介面從儲存單元讀取資料,收集讀取資料中的有效資料,及驅動第一存取介面將有效資料寫入儲存單元中的空區塊。於垃圾回收程序中,每當計時器計數至一段時間時,驅動第二存取介面將主裝置請求資料中的至少一部分敲出給主裝置,以及重設計時器。
Description
本發明關連於一種快閃記憶體裝置,特別是一種垃圾回收方法以及使用該方法的裝置。
快閃記憶體裝置通常分為NOR快閃裝置與NAND快閃裝置。NOR快閃裝置為隨機存取裝置,主裝置(host)可於位址腳位上提供存取NOR快閃裝置的任意位址,並即時地由NOR快閃裝置的資料腳位上獲得儲存於該位址上的資料。相反地,NAND快閃裝置並非隨機存取,而是序列存取。NAND快閃裝置無法像NOR快閃裝置一樣,可以存取任何隨機位址,主裝置反而需要寫入序列的位元組(bytes)值到NAND快閃裝置中,用以定義請求命令(command)的類型(如,讀取、寫入、抹除等),以及此命令上的位址。位址可指向一個頁面(在快閃記憶體中的一個寫入作業的最小資料塊)或一個區塊(在快閃記憶體中的一個抹除作業的最小資料塊)。實際上,NAND快閃裝置通常從記憶體單元(memory cells)上讀取或寫入完整的數頁資料。當一整頁的資料從陣列讀取到裝置中的緩存器(buffer)後,藉由使用提取訊號(strobe signal)順序地敲出(clock out)內容,讓主單元可逐位元組或字元組(words)存取資料。
如果區塊中之部分頁面的資料已經無效(又稱為過 期頁面),讀取這些區塊中具有效資料的頁面並重新寫入其他之前被抹除的空區塊。接著,這些被釋放的頁面加上過期資料的頁面,可收集起來以寫入新的資料。如上所述的程序稱為垃圾回收(garbage collection)。垃圾回收程序牽涉到從快閃記憶體讀取資料以及重新寫入資料至快閃記憶體。這代表快閃控制器首先需要讀出整個區塊,接著將區塊中擁有有效資料的部分頁面寫入。然而,這可能會影響原本主裝置的存取作業。於最差的情況下,可能造成主裝置發出的存取命令逾時。因此,本發明提出一種垃圾回收方法以及使用該方法的裝置,用以降低對主裝置存取作業的影響。
本發明的實施例提出一種垃圾回收方法,由處理單元執行,包含下列步驟:執行垃圾回收程序的指令以驅動第一存取介面從儲存單元讀取資料,收集讀取資料中的有效資料,及驅動第一存取介面將有效資料寫入儲存單元中的空區塊。於垃圾回收程序中,每當計時器計數至一段時間時,驅動第二存取介面將主裝置請求資料中的至少一部分敲出給主裝置,以及重設計時器,使得主裝置不會因為過了最大容許時間還沒有收到回覆的資料而發生讀取錯誤。
本發明的實施例提出一種垃圾回收裝置,包含第一存取介面、第二存取介面及處理單元。第一存取介面耦接於儲存單元,第二存取介面耦接於主裝置,以及處理單元耦接於第一存取介面及第二存取介面。處理單元執行垃圾回收程序的指令以驅動第一存取介面從儲存單元讀取資料,收集讀取資料 中的有效資料,及驅動第一存取介面將有效資料寫入儲存單元中的空區塊。於垃圾回收程序中,每當計時器計數至一段時間時,驅動第二存取介面將主裝置請求資料中的至少一部分敲出給主裝置,以及重設計時器,使得主裝置不會因為過了最大容許時間還沒有收到回覆的資料而發生讀取錯誤。
10‧‧‧系統
110‧‧‧處理單元
120‧‧‧資料緩存器
130‧‧‧動態隨機存取記憶體
150‧‧‧存取介面
160‧‧‧主裝置
170‧‧‧存取介面
170_0~170_j‧‧‧存取子介面
180‧‧‧儲存單元
180_0_0~180_j_i‧‧‧儲存子單元
320_0_0~320_0_i‧‧‧晶片致能控制訊號
S410~S473‧‧‧方法步驟
510、530、550、570‧‧‧區塊
511、533、555、557‧‧‧區段
P1、P2、P3、P4‧‧‧頁面
CMDread‧‧‧讀取命令
REQr‧‧‧資料讀取請求
DATAr‧‧‧主裝置請求資料
DATAp‧‧‧主裝置請求資料
DATAgc‧‧‧垃圾回收資料
REQgc_r‧‧‧垃圾回收程序中的資料讀取請求
REQgc_w‧‧‧垃圾回收程序中的資料寫入請求
tc‧‧‧時間區間
第1圖係依據本發明實施例之快閃記憶體的系統架構示意圖。
第2圖係依據本發明實施例之存取介面與儲存單元的方塊圖。
第3圖係依據本發明實施例之一個存取子介面與多個儲存子單元的連接示意圖。
第4圖係依據本發明實施例之垃圾回收方法的流程圖。
第5圖係依據本發明實施例之垃圾回收示意圖。
第6圖係依據本發明實施例之整合主裝置讀取及垃圾回收程序的訊息交換圖。
以下說明係為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。
必須了解的是,使用於本說明書中的”包含”、”包括”等詞,係用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術 特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。
於權利要求中使用如”第一”、"第二"、"第三"等詞係用來修飾權利要求中的元件,並非用來表示之間具有優先權順序,先行關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。
第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)或其他介面。
儲存單元180可包含多個儲存子單元,每一個儲存子單元實施於一個晶粒(die)上,各自使用關聯的存取子介面與處理單元110進行溝通。第2圖係依據本發明實施例之存取介面與儲存單元的方塊圖。快閃記憶體10可包含j+1個存取子介面170_0至170_j,存取子介面又可稱為通道(channel),每一個存取子介面連接i+1個儲存子單元。換句話說,i+1個儲存子單元共享一個存取子介面。例如,當快閃記憶體10包含4個通道(j=3)且每一個通道連接4個儲存單元(i=3)時,快閃記憶體10一共擁有16個儲存單元180_0_0至180_j_i。處理單元110可驅動存取子介面170_0至170_j中之一者,從指定的儲存子單元讀取資料。每個儲存子單元擁有獨立的晶片致能(CE)控制訊號。換句話說,當欲對指定的儲存子單元進行資料讀取時,需要驅動關聯的存取子介面致能此儲存子單元的晶片致能控制訊號。第3圖係依據本發明實施例之一個存取子介面與多個儲存子單元的連接示意圖。處理單元110可透過存取子介面170_0使用獨立的晶片致能控制訊號320_0_0至320_0_i來從連接的儲存子單元180_0_0至180_0_i中選擇出其中一者,接著,透過共享的資料線310_0從選擇出的儲存子單元的指定位置讀取資料。
經過多次的存取後,一個頁面可能包含有效及無效的資料。為解決如上所述的缺陷,本發明實施例提出一種垃 圾回收方法,以交錯的方式讀取及回覆主裝置160請求的資料以及垃圾回收程序中的資料讀取及寫入作業。例如,執行垃圾回收程序的指令以驅動存取介面170從儲存單元180讀取資料,收集讀取資料中的有效資料,及驅動存取介面170將有效資料寫入儲存單元180中的空區塊(spare block)。於垃圾回收程序中,每當計時器計數至一段時間時,驅動存取介面150將主裝置160請求資料中的至少一部分敲出給主裝置160,以及重設計時器,使得主裝置160不會因為過了最大容許時間還沒有收到回覆的資料而發生讀取錯誤。第4圖係依據本發明實施例之垃圾回收方法的流程圖。此方法由處理單元110於載入並執行特定微碼或軟體指令時實施。每次透過存取介面150從主裝置160接收讀取命令後(步驟S410),判斷是否需要執行垃圾回收程序(步驟S430)。於步驟S410,讀取命令包含邏輯位置或邏輯位置區間的資訊,用以請求讀取邏輯位置或邏輯位置區間的資料。邏輯位置或邏輯位置區間可以邏輯區塊位址(LBA,Logical Block Address)表示。於步驟S430,可判斷儲存單元180的空區塊數目是否小於閥值。若是則需要執行垃圾回收程序;否則不需要執行垃圾回收程序。
當判定不需要執行垃圾回收程序時(步驟S430中”否”的路徑),驅動存取介面170將讀取命令請求的資料從儲存單元180讀出並儲存至資料緩存器120(步驟S471),以及驅動存取介面150將資料緩存器120的資料敲出給主裝置160(步驟S473)。為最佳化資料寫入的效率,一段具有連續邏輯區塊位址的資料會分散地擺放在儲存單元180中的不同實體區域。因 此,動態隨機存取記憶體130儲存一個實體儲存對照表(storage mapping table,又稱為H2F Host-to-Flash表),用以指出每個邏輯區塊位址的資料實際儲存於儲存單元280中的哪個位置。於步驟S471,處理單元110從實體儲存對照表讀取邏輯位置或邏輯位置區間的相應實體位置或實體位置區間,接著,驅動存取介面170從儲存單元180讀取實體位置或實體位置區間的資料。例如,儲存單元180可包含2個通道,每個通道包含4個儲存子單元。儲存單元180可驅動2個存取子介面從8個儲存子單元一次讀取128K位元組的資料,並儲存資料至資料緩存器120。於步驟S473,處理單元110可設定存取介面150中的寄存器,用以將逐頁敲出給主裝置160。例如,一個頁面包含16K位元組的資料,處理單元110可以8個批次,每次敲出一個頁面的資料給主裝置160。於一些實施例中,資料緩存器120可實施於動態隨機存取記憶體130之中。
當判定需要執行垃圾回收程序時(步驟S430中”是”的路徑),設定計時器計數一段時間,此段時間短於主裝置160等待資料的最大容許時間,例如50毫秒(50milliseconds)(步驟S451),驅動存取介面170將讀取命令請求的資料從儲存單元180讀出並儲存至資料緩存器120(步驟S453),執行垃圾回收程序的指令以讀取或寫入一個頁面的資料(步驟S455),並且判斷是否完成垃圾回收程序(步驟S457)。於一些實施例中,最大容許時間可於出廠時設定,並儲存於非揮發性儲存裝置,並且於步驟S451從非揮發性儲存裝置讀取。於一些實施例中,最大容許時間可乘載於主裝置160發送的讀取命令。
第5圖係依據本發明實施例之垃圾回收示意圖。假設一個頁面可儲存四個區段的資料:經過多次存取後,區塊510中的頁面P1的第0個區段511為有效資料,其餘為無效資料。區塊530中的頁面P2的第1個區段533為有效資料,其餘為無效資料。區塊550中的頁面P3的第2個及第3個區段555及557為有效資料,其餘為無效資料。為了將頁面P1至P3中的有效資料回收成一個頁面以儲存至區塊570中的新頁面P4,可執行垃圾回收程序。詳細來說,資料緩存器120可配置空間以儲存一個頁面的資料。處理單元110可透過存取子介面170讀取區塊510中的頁面P1的資料,保留頁面P1的第0個區段511的資料,並儲存至資料緩存器120中配置空間的第0個區段(步驟S455)。接著,處理單元110可透過存取子介面170讀取區塊530中的頁面P2的資料,保留頁面P2的第1個區段533的資料,並儲存至資料緩存器120中配置空間的第1個區段(步驟S455)。接著,處理單元110可透過存取子介面170讀取區塊550中的頁面P3的資料,保留頁面P3的第2個及第3個區段555及557的資料,並儲存至資料緩存器120中配置空間的第2個及第3個區段(步驟S455)。最後,處理單元110可透過存取子介面170將資料緩存器120中配置空間的資料寫入區塊570中的頁面P4(步驟S455)。
於一些實施例中,當計數器計數至上述時間時,會發出中斷給處理單元110,使得處理單元110中斷目前執行的任務,例如,垃圾回收程序的指令執行,並且執行中斷服務程序(ISR,Interrupt Service Routine)。當中斷服務程序執行時,設定存取介面150中的寄存器,用以將一頁的資料敲出給主裝 置160,接著,重新設定計時器以計數上述時間。當中斷服務程序執行完畢,處理單元110繼續中斷的任務,例如,垃圾回收程序的指令執行。
於一些實施例中,於步驟S455,處理單元可於讀取或寫入一個頁面的資料後,讀取計數器的值,並且判斷計數器是否已經計數至上述時間。當計數至上述時間時,處理單元110可設定存取介面150中的寄存器,用以將一頁的資料敲出給主裝置160,接著,重新設定計時器以計數上述時間。
以下更舉出實例來說明如上所述的垃圾回收方法。第6圖係依據本發明實施例之整合主裝置讀取及垃圾回收程序的訊息交換圖。處理單元110透過存取介面150從主裝置160接收讀取命令CMDread以讀取128K位元組的資料,並儲存資料至資料緩存器120(步驟S410)。接著,當需要執行垃圾回收程序時(步驟S430中”是”的路徑),設定計時器以計數一段時間tc(步驟S451),及透過存取介面170發送資料讀取請求REQr給儲存單元180,並且從儲存單元180接收128K位元組的資料DATAr並儲存至資料緩存器120(步驟S453)。接著,週期性地執行垃圾回收程序的指令,例如,資料讀取請求REQgc_r以讀取一個頁面的資料,或資料寫入請求REQgc_w以寫入一個頁面的資料(步驟S455)。每當計時器計數一段時間tc,處理單元110設定存取介面150中的寄存器,用以將資料緩存器120中一個頁面(16K位元組)的資料DATAp敲出給主裝置160。
雖然第1至3圖中包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,已達成 更佳的技術效果。此外,雖然第4圖的流程圖採用指定的順序來執行,但是在不違反發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順序,所以,本發明並不侷限於僅使用如上所述的順序。此外,熟習此技藝人士亦可以將若干步驟整合為一個步驟,或者是除了這些步驟外,循序或平行地執行更多步驟,本發明亦不因此而侷限。
雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請權利要求範圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。
Claims (14)
- 一種垃圾回收方法,由一處理單元執行,包含:執行一垃圾回收程序的指令以驅動一第一存取介面從一儲存單元讀取資料,收集上述讀取資料中的有效資料,及驅動上述第一存取介面將上述有效資料寫入上述儲存單元中的空區塊;以及於上述垃圾回收程序中,每當一計時器計數至一段時間時,驅動一第二存取介面將一主裝置請求資料中的至少一部分敲出給上述主裝置,以及重設上述計時器。
- 如申請專利範圍第1項所述的垃圾回收方法,其中,上述一段時間短於上述主裝置等待資料的最大容許時間。
- 如申請專利範圍第1項所述的垃圾回收方法,其中,當上述計時器計數至上述一段時間時,發出一中斷給上述處理單元,使得上述處理單元中斷目前執行的任務,並且執行一中斷服務程序,以及當上述中斷服務程序執行時,驅動上述第二存取介面將上述主裝置請求資料中的至少一部分敲出給上述主裝置,以及重設上述計時器。
- 如申請專利範圍第1項所述的垃圾回收方法,更包含:每當驅動上述第一存取介面從上述儲存單元讀取資料,或驅動上述第一存取介面將上述有效資料寫入上述儲存單元後,判斷上述計數器是否已經計數至上述一段時間;以及當上述計數器已經計數至上述一段時間,驅動上述第二存取介面將上述主裝置請求資料中的至少一部分敲出給上述主裝置,以及重設上述計時器。
- 如申請專利範圍第1項所述的垃圾回收方法,更包含:從上述主裝置接收一讀取命令後,判斷上述儲存單元中的空區塊數目是否小於閥值;以及當上述儲存單元中的空區塊數目小於閥值時,執行上述垃圾回收程序。
- 如申請專利範圍第5項所述的垃圾回收方法,更包含:驅動上述第一存取介面從上述儲存單元讀取上述讀取命令請求的資料,以及儲存上述請求的資料至一資料緩存器。
- 如申請專利範圍第6項所述的垃圾回收方法,其中,上述處理單元使用上述第二存取介面透過通用序列匯流排、先進技術附著、序列先進技術附著或快速周邊元件互聯的通訊協定從上述主裝置接收上述讀取命令。
- 一種垃圾回收裝置,包含:一第一存取介面,耦接於一儲存單元;一第二存取介面,耦接於一主裝置;一處理單元,耦接於上述第一存取介面及上述第二存取介面,執行一垃圾回收程序的指令以驅動上述第一存取介面從上述儲存單元讀取資料,收集上述讀取資料中的有效資料,及驅動上述第一存取介面將上述有效資料寫入上述儲存單元中的空區塊;以及於上述垃圾回收程序中,每當一計時器計數至一段時間時,驅動上述第二存取介面將上述主裝置請求資料中的至少一部分敲出給上述主裝置,以及重設上述計時器。
- 如申請專利範圍第8項所述的垃圾回收裝置,其中,上述一 段時間短於上述主裝置等待資料的最大容許時間。
- 如申請專利範圍第8項所述的垃圾回收裝置,其中,當上述計時器計數至上述一段時間時,發出一中斷給上述處理單元,使得上述處理單元中斷目前執行的任務,並且執行一中斷服務程序,以及當上述中斷服務程序執行時,驅動上述第二存取介面將上述主裝置請求資料中的至少一部分敲出給上述主裝置,以及重設上述計時器。
- 如申請專利範圍第8項所述的垃圾回收裝置,其中,每當上述處理單元驅動上述第一存取介面從上述儲存單元讀取資料,或驅動上述第一存取介面將上述有效資料寫入上述儲存單元後,判斷上述計數器是否已經計數至上述一段時間;以及當上述計數器已經計數至上述一段時間,上述處理單元驅動上述第二存取介面將上述主裝置請求資料中的至少一部分敲出給上述主裝置,以及重設上述計時器。
- 如申請專利範圍第8項所述的垃圾回收裝置,其中,上述處理單元從上述主裝置接收一讀取命令後,判斷上述儲存單元中的空區塊數目是否小於閥值;以及當上述儲存單元中的空區塊數目小於閥值時,上述處理單元執行上述垃圾回收程序。
- 如申請專利範圍第12項所述的垃圾回收裝置,更包含:一資料緩存器;其中,上述處理單元驅動上述第一存取介面從上述儲存單元讀取上述讀取命令請求的資料,以及儲存上述請求的資料至上述資料緩存器。
- 如申請專利範圍第13項所述的垃圾回收裝置,其中,上述處理單元使用上述第二存取介面透過通用序列匯流排、先進技術附著、序列先進技術附著或快速周邊元件互聯的通訊協定從上述主裝置接收上述讀取命令。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106109513A TWI612473B (zh) | 2017-03-22 | 2017-03-22 | 垃圾回收方法以及使用該方法的裝置 |
CN201710294143.1A CN108628543B (zh) | 2017-03-22 | 2017-04-28 | 垃圾回收方法以及使用该方法的装置 |
US15/863,894 US10776042B2 (en) | 2017-03-22 | 2018-01-06 | Methods for garbage collection and apparatuses using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106109513A TWI612473B (zh) | 2017-03-22 | 2017-03-22 | 垃圾回收方法以及使用該方法的裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI612473B TWI612473B (zh) | 2018-01-21 |
TW201835757A true TW201835757A (zh) | 2018-10-01 |
Family
ID=61728437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106109513A TWI612473B (zh) | 2017-03-22 | 2017-03-22 | 垃圾回收方法以及使用該方法的裝置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10776042B2 (zh) |
CN (1) | CN108628543B (zh) |
TW (1) | TWI612473B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI748542B (zh) * | 2020-07-01 | 2021-12-01 | 慧榮科技股份有限公司 | 電子裝置、快閃記憶體控制器及快閃記憶體模組進行垃圾收集操作的方法 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200021815A (ko) * | 2018-08-21 | 2020-03-02 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법 |
KR20200073017A (ko) * | 2018-12-13 | 2020-06-23 | 에스케이하이닉스 주식회사 | 데이터 저장 장치와, 그것의 동작 방법 |
CN113495850B (zh) * | 2020-04-08 | 2024-02-09 | 慧荣科技股份有限公司 | 管理垃圾回收程序的方法、装置及计算机可读取存储介质 |
EP3926452A1 (en) * | 2020-06-19 | 2021-12-22 | NXP USA, Inc. | Norflash sharing |
CN118093449A (zh) * | 2022-11-25 | 2024-05-28 | 长江存储科技有限责任公司 | 一种存储器***及其垃圾回收方法、电子设备 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5640529A (en) * | 1993-07-29 | 1997-06-17 | Intel Corporation | Method and system for performing clean-up of a solid state disk during host command execution |
US5832529A (en) * | 1996-10-11 | 1998-11-03 | Sun Microsystems, Inc. | Methods, apparatus, and product for distributed garbage collection |
TW442749B (en) * | 1998-05-19 | 2001-06-23 | Matsushita Electric Ind Co Ltd | Data storage apparatus and access method thereof |
JP3484657B2 (ja) * | 2000-06-08 | 2004-01-06 | 株式会社 エキシー総合研究所 | 生ごみ液状化装置およびその管理方法 |
KR100528973B1 (ko) * | 2003-11-05 | 2005-11-16 | 한국전자통신연구원 | 가비지 콜렉션 방법 및 그 장치 |
US20060161724A1 (en) * | 2005-01-20 | 2006-07-20 | Bennett Alan D | Scheduling of housekeeping operations in flash memory systems |
US7315917B2 (en) * | 2005-01-20 | 2008-01-01 | Sandisk Corporation | Scheduling of housekeeping operations in flash memory systems |
US20130191580A1 (en) * | 2012-01-23 | 2013-07-25 | Menahem Lasser | Controller, System, and Method for Mapping Logical Sector Addresses to Physical Addresses |
CN103135946B (zh) * | 2013-03-25 | 2014-11-26 | 中国人民解放军国防科学技术大学 | 基于ssd的大规模存储***中的文件布局方法 |
CN103135945B (zh) * | 2013-03-25 | 2014-11-26 | 中国人民解放军国防科学技术大学 | 用于ssd的多通道动态读写调度方法 |
US9195406B2 (en) * | 2013-06-28 | 2015-11-24 | Micron Technology, Inc. | Operation management in a memory device |
US9898404B2 (en) * | 2013-07-14 | 2018-02-20 | Cnex Labs | Method and apparatus for providing improved garbage collection process in solid state drive |
CN103530237B (zh) * | 2013-10-31 | 2016-02-17 | 厦门大学 | 一种固态盘阵列的垃圾回收方法 |
TWI537816B (zh) * | 2014-10-13 | 2016-06-11 | 慧榮科技股份有限公司 | 非揮發性儲存裝置與控制器進行的控制方法 |
US9727456B2 (en) * | 2014-11-03 | 2017-08-08 | Pavilion Data Systems, Inc. | Scheduled garbage collection for solid state storage devices |
US20160188233A1 (en) * | 2014-12-26 | 2016-06-30 | Mediatek Inc. | Method for interrupting cleaning procedure of flash memory |
TWI562154B (en) * | 2015-02-17 | 2016-12-11 | Silicon Motion Inc | Methods for reading data from a storage unit of a flash memory and apparatuses using the same |
US9940234B2 (en) * | 2015-03-26 | 2018-04-10 | Pure Storage, Inc. | Aggressive data deduplication using lazy garbage collection |
CN106326136A (zh) * | 2015-07-02 | 2017-01-11 | 广明光电股份有限公司 | 固态硬盘搜集垃圾区块的方法 |
CN105892941A (zh) * | 2016-03-30 | 2016-08-24 | 联想(北京)有限公司 | 垃圾回收方法、垃圾回收装置和电子设备 |
-
2017
- 2017-03-22 TW TW106109513A patent/TWI612473B/zh active
- 2017-04-28 CN CN201710294143.1A patent/CN108628543B/zh active Active
-
2018
- 2018-01-06 US US15/863,894 patent/US10776042B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI748542B (zh) * | 2020-07-01 | 2021-12-01 | 慧榮科技股份有限公司 | 電子裝置、快閃記憶體控制器及快閃記憶體模組進行垃圾收集操作的方法 |
US11194502B1 (en) | 2020-07-01 | 2021-12-07 | Silicon Motion, Inc. | Electronic device, flash memory controller and method for performing garbage collection operation on flash memory module |
Also Published As
Publication number | Publication date |
---|---|
CN108628543A (zh) | 2018-10-09 |
US10776042B2 (en) | 2020-09-15 |
US20180275914A1 (en) | 2018-09-27 |
TWI612473B (zh) | 2018-01-21 |
CN108628543B (zh) | 2021-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI612473B (zh) | 垃圾回收方法以及使用該方法的裝置 | |
TWI628542B (zh) | 快閃記憶體的垃圾回收斷電回復方法以及使用該方法的裝置 | |
JP5759623B2 (ja) | メモリシステムコントローラを含む装置および関連する方法 | |
US10114675B2 (en) | Apparatus and method of managing shared resources in achieving IO virtualization in a storage device | |
KR101560469B1 (ko) | 메모리 시스템 컨트롤러들을 포함하는 장치 및 관련 방법들 | |
TWI463314B (zh) | 包含記憶體系統控制器之裝置及相關方法 | |
TWI512609B (zh) | 讀取命令排程方法以及使用該方法的裝置 | |
US9304900B2 (en) | Data reading method, memory controller, and memory storage device | |
TWI698749B (zh) | 資料儲存裝置與資料處理方法 | |
TWI726314B (zh) | 資料儲存裝置與資料處理方法 | |
TW202139012A (zh) | 用來進行記憶裝置的存取管理之方法、記憶裝置及其控制器、主裝置以及電子裝置 | |
TWI715248B (zh) | 主機輸出入命令的執行裝置及方法及電腦程式產品 | |
TW202026891A (zh) | 閃存的資料寫入方法及電腦程式產品 | |
TWI626540B (zh) | 一般及垃圾回收的資料存取方法以及使用該方法的裝置 | |
TWI709975B (zh) | 寫入控制方法以及資料儲存裝置及其控制器 | |
CN113196225A (zh) | 开放信道矢量命令执行 | |
TW201710897A (zh) | 讀取及寫入命令排程方法以及使用該方法的裝置 | |
US9152348B2 (en) | Data transmitting method, memory controller and data transmitting system | |
JP5447617B2 (ja) | フラッシュメモリコントローラ、フラッシュメモリシステム、及びフラッシュメモリ制御方法 | |
TWI564809B (zh) | 單一中斷服務常式執行緒中處理關連於多個請求的返回實體的方法以及使用該方法的裝置 | |
TWI417889B (zh) | 快閃記憶體之寫入逾時控制方法及其記憶裝置 | |
TW201710898A (zh) | 內部資料搬移方法以及使用該方法的裝置 | |
TWI697778B (zh) | 資料儲存裝置與資料處理方法 | |
TWI621015B (zh) | 讀取及寫入命令排程方法以及使用該方法的裝置 | |
TWI758745B (zh) | 排程主機命令執行的電腦程式產品及方法及裝置 |