TW201721654A - 快閃記憶體之廢料收集方法以及使用該方法的裝置 - Google Patents

快閃記憶體之廢料收集方法以及使用該方法的裝置 Download PDF

Info

Publication number
TW201721654A
TW201721654A TW104141255A TW104141255A TW201721654A TW 201721654 A TW201721654 A TW 201721654A TW 104141255 A TW104141255 A TW 104141255A TW 104141255 A TW104141255 A TW 104141255A TW 201721654 A TW201721654 A TW 201721654A
Authority
TW
Taiwan
Prior art keywords
storage
pages
valid data
data
flash memory
Prior art date
Application number
TW104141255A
Other languages
English (en)
Other versions
TWI602186B (zh
Inventor
邱慎廷
Original Assignee
慧榮科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 慧榮科技股份有限公司 filed Critical 慧榮科技股份有限公司
Priority to TW104141255A priority Critical patent/TWI602186B/zh
Priority to CN201610221754.9A priority patent/CN106855789B/zh
Priority to US15/349,722 priority patent/US10394486B2/en
Publication of TW201721654A publication Critical patent/TW201721654A/zh
Application granted granted Critical
Publication of TWI602186B publication Critical patent/TWI602186B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, 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)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Abstract

本發明的實施例提出一種快閃記憶體之廢料收集方法,由處理單元執行,包含下列步驟。從多個儲存子單元讀取n*m個頁面的有效資料,其中,n代表共享一個通道的儲存子單元的數量,m代表每一儲存子單元的最小寫入頁面的數量。反覆執行一個迴圈,用以逐一驅動儲存子單元以寫入m個頁面的有效資料,直到儲存子單元皆處於忙碌狀態為止。

Description

快閃記憶體之廢料收集方法以及使用該方法的裝置
本發明關連於一種快閃記憶體裝置,特別是一種快閃記憶體之廢料收集方法以及使用該方法的裝置。
快閃記憶體裝置通常分為NOR快閃裝置與NAND快閃裝置。NOR快閃裝置為隨機存取裝置,而可於位址腳位上提供任何的位址,用以存取NOR快閃裝置的主裝置(host),並及時地由NOR快閃裝置的資料腳位上獲得儲存於該位址上的資料。相反地,NAND快閃裝置並非隨機存取,而是序列存取。NAND快閃裝置無法像NOR快閃裝置一樣,可以存取任何隨機位址,主裝置反而需要寫入序列的位元組(bytes)的值到NAND快閃裝置中,用以定義請求命令(command)的類型(如,讀取、寫入、抹除等),以及用在此命令上的位址。位址可指向一個頁面(在快閃記憶體中的一個寫入作業的最小資料塊)或一個區塊(在快閃記憶體中的一個抹除作業的最小資料塊)。實際上,NAND快閃裝置通常從記憶體單元(memory cells)上讀取或寫入完整的數頁資料。當一整頁的資料從陣列讀取到裝置中的緩存器(buffer)後,藉由使用提取訊號(strobe signal)順序地敲出(clock out)內容,讓主單元可逐位元組或字元組(words)存取資料。
若區塊中的部分頁面的資料已經不需要(亦稱為過期頁面),則讀取這些區塊中儲存有效資料的頁面並重新寫入至另一個先前經過抹除的空區塊。接著,這些釋放的區塊在經過抹除作業後就可被用以寫入新資料。以上處理稱為廢料收集(GC,Garbage Collection)。廢料收集處理牽涉到讀取及重新寫入資料至快閃記憶體,也就是一次新的寫入前需要讀取完整個區塊的資料。然而,廢料收集耗費大量的時間。因此,需要一種快閃記憶體之廢料收集方法以及使用該方法的裝置,用以減少存取時間。
本發明的實施例提出一種快閃記憶體之廢料收集方法,由處理單元執行,包含下列步驟。從多個儲存子單元讀取n*m個頁面的有效資料。反覆執行一個迴圈,用以逐一驅動儲存子單元以寫入m個頁面的有效資料,直到儲存子單元皆處於忙碌狀態為止。
本發明的實施例另提出一種快閃記憶體之廢料收集方法,由處理單元執行,包含下列步驟。將n*m個頁面的有效資料的多個讀取命令進行排程。除了接收相應於最後的讀取命令及實體位址的有效資料外,於接收相應於每一已傳送的資料讀取命令及實體位址的有效資料前,傳送下一資料讀取命令及實體位址給儲存子單元中之指定下一者。驅動儲存子單元以寫入n*m個頁面的有效資料。
本發明的實施例提出一種快閃記憶體之廢料收集裝置,至少包含通道以及處理單元。通道耦接於多個儲存子單 元,而處理單元耦接於通道。處理單元從儲存子單元讀取n*m個頁面的有效資料;以及反覆執行一個迴圈,用以逐一驅動上述儲存子單元以寫入m個頁面的有效資料,直到儲存子單元皆處於忙碌狀態為止。
本發明的實施例另提出一種快閃記憶體之廢料收集裝置,至少包含通道以及處理單元。通道耦接於多個儲存子單元,而處理單元耦接於通道。處理單元將n*m個頁面的有效資料的多個讀取命令進行排程;除了接收相應於最後一讀取命令及實體位址的有效資料外,於接收相應於每一已傳送的資料讀取命令及實體位址的有效資料前,傳送下一資料讀取命令及實體位址給儲存子單元中之指定下一者;以及驅動儲存子單元以寫入n*m個頁面的有效資料。
其中,n代表共享一個通道的儲存子單元的數量,m代表每一儲存子單元的最小寫入頁面的數量。
10‧‧‧系統
110‧‧‧處理單元
130‧‧‧動態隨機存取記憶體
150‧‧‧存取介面
160‧‧‧主裝置
170‧‧‧存取介面
170_0~170_j‧‧‧存取子介面
180‧‧‧儲存單元
180_0_0~180_j_i‧‧‧儲存子單元
210‧‧‧記憶體單元陣列
220‧‧‧行解碼單元
230‧‧‧列編碼單元
240‧‧‧位址單元
250‧‧‧資料緩存器
410_0‧‧‧資料線
420_0_0~420_0_i‧‧‧晶片致能控制訊號
CE0~CE4‧‧‧儲存子單元
R0‧‧‧從CE0接收資料的時間
R1‧‧‧從CE1接收資料的時間
R2‧‧‧從CE2接收資料的時間
R3‧‧‧從CE3接收資料的時間
S511~S557‧‧‧方法步驟
S711~S791‧‧‧方法步驟
S911~S977‧‧‧方法步驟
T61‧‧‧讀取資料的時間區間
T63‧‧‧寫入資料的時間區間
T81‧‧‧讀取資料的時間區間
T83‧‧‧寫入資料的時間區間
tR‧‧‧儲存子單元準備資料的時間
tProg‧‧‧儲存子單元實際寫入資料的時間
W0‧‧‧傳送資料至CE0的時間
W1‧‧‧傳送資料至CE1的時間
W2‧‧‧傳送資料至CE2的時間
W3‧‧‧傳送資料至CE3的時間
第1圖係依據本發明實施例之快閃記憶體的系統架構示意圖。
第2圖係依據本發明實施例之快閃記憶體中的儲存單元示意圖。
第3圖係依據本發明實施例之存取介面與儲存單元的方塊圖。
第4圖係依據本發明實施例之一個存取子介面與多個儲存子單元的連接示意圖。
第5圖係依據本發明實施例之執行於處理單元中之快閃記憶體之廢料收集方法流程圖。
第6圖係依據本發明實施例之廢料收集處理示意圖。
第7圖係依據本發明實施例之執行於處理單元中之快閃記憶體之廢料收集方法流程圖。
第8圖係依據本發明實施例之廢料收集處理示意圖。
第9A及9B圖係依據本發明實施例之執行於處理單元中之快閃記憶體之廢料收集方法流程圖。
以下說明係為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。
必須了解的是,使用於本說明書中的”包含”、”包括”等詞,係用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。
於權利要求中使用如”第一”、"第二"、"第三"等詞係用來修飾權利要求中的元件,並非用來表示之間具有優先權順序,先行關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。
第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)。
儲存單元180可包含多個儲存子單元,每一個儲存子單元實施於一個晶粒(die)上,各自使用關聯的存取子介面與處理單元110進行溝通。第3圖係依據本發明實施例之存取介面與儲存單元的方塊圖。快閃記憶體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,Chip Enable)控制訊號。換句話說,當欲對指定的儲存子單元進行資料讀取或寫入時,需要驅動關聯的存取子介面致能此儲存子單元的晶片致能 控制訊號。第4圖係依據本發明實施例之一個存取子介面與多個儲存子單元的連接示意圖。處理單元110可透過存取子介面170_0使用獨立的晶片致能控制訊號420_0_0至420_0_i來從連接的儲存子單元180_0_0至180_0_i中選擇出其中一者,接著,透過共享的資料線410_0傳送命令或資料給選擇出的儲存子單元,或者從選擇出的儲存子單元接收指定位置上的資料。
主裝置160可透過存取介面150提供邏輯區塊位址(LBA,Logical Block Address)給處理單元110,用以指示寫入或讀取特定區域的資料。存取介面170為最佳化資料寫入的效率,可將一段具有連續邏輯區塊位址的資料分散地擺放在不同儲存子單元中的不同區域。因此,需要一個對照表(又稱為H2F表),用以指出每個邏輯區塊位址的資料實際上存放在哪個儲存子單元中的哪個位置。於一種實施方式中,可於動態隨機存取記憶體130中配置足夠大的空間來儲存此對照表。
假設n個儲存子單元共享一個通道,一個儲存子單元的最小寫入單位為m個頁面。為了讓廢料收集處理的資料寫入更有效率,本發明實施例從數個區塊中讀取n*m個頁面的有效資料,接著,逐一驅動儲存子單元寫入m個頁面的有效資料,直到所有儲存子單元皆處於忙碌狀態(busy state)為止。於此須注意的是,當m個頁面的有效資料傳送至一個儲存子單元完畢後,不需要等待儲存子單元執行完實體寫入作業即可傳送另外m個頁面的有效資料給下一個儲存子單元。透過以上的設計,可讓處理單元110於一個儲存子單元執行實體寫入作業的期間傳送資料給下一個儲存子單元,並且在所有儲存子單元執行實 體寫入作業的期間,轉而執行其他的運算作業。第5圖係依據本發明實施例之執行於處理單元中之快閃記憶體之廢料收集方法流程圖。處理單元110經由存取介面170讀取n*m個頁面的有效資料並儲存於動態隨機存取記憶體130後(步驟S511),初始化變數k(k=k0)(步驟S513)。其中,除了有效資料外,讀取區塊另包含過期資料。k0為一個常數,介於0至n-1之間,用以指示第一個寫入資料的儲存子單元的編號。於此須注意的是,動態隨機存取記憶體130擁有足夠大的空間來儲存n*m個頁面的有效資料。於步驟S511,處理單元可依據動態隨機存取記憶體130中的H2F表取得n*m個頁面的有效資料的實體位址並且驅動儲存單元180從這些實體位址讀取資料。接著,處理單元110反覆執行一個迴圈(步驟S531至S557),直到n*m個頁面的有效資料都寫入儲存單元180為止。
於每一回合中,處理單元110從動態隨機存取記憶體130讀取m個頁面的有效資料,以及經由存取介面170傳送資料寫入命令及實體位址給第k個儲存子單元(步驟S531)。參考第4圖。舉例來說,於步驟S531,處理單元110可透過存取子介面170_0致能獨立的晶片致能控制訊號420_0_0至420_0_i中之指定一者,用以從儲存子單元180_0_0至180_0_i中選擇出第k個儲存子單元,接著,透過共享的資料線410_0傳送資料寫入命令及實體位址給選擇出的第k個儲存子單元。於此須注意的是,實體位址指示同一個區塊的m個頁面。接著,處理單元110傳送m個頁面的有效資料給第k個儲存子單元(步驟S533),以及傳送開始寫入訊號給第k個儲存子單元,用以指示開始執行實 體寫入作業(步驟S535)。參考第4圖。舉例來說,於步驟S533,處理單元110可透過共享的資料線410_0傳送m個頁面的有效資料給選擇出的第k個儲存子單元。舉例來說,於步驟S535,處理單元110可轉態(toggle)相應於第k個儲存子單元的寫入致能(WE,Write Enable)訊號,用以指示開始執行實體寫入作業。當第k個儲存子單元接收到處理單元110的指示後,進入忙碌狀態並執行實體寫入作業,用以將m個頁面的有效資料寫入指定的實體位址。接著,當尚未完成整個寫入作業時(步驟S551中”否”的路徑),處理單元110將變數k加1(步驟S553),以及判斷變數k是否大於或等於n(步驟S555)。若是,處理單元110將變數k設為0(步驟S557),並接著驅動第0個儲存子單元寫入m個頁面的有效資料(步驟S531至S553)。否則,處理單元110接著驅動第k個儲存子單元寫入m個頁面的有效資料(步驟S531至S553)。當完成整個寫入作業時(步驟S551中”是”的路徑),處理單元110結束n*m個頁面的廢料收集處理。
第6圖係依據本發明實施例之廢料收集處理示意圖。假設4個儲存子單元共享一個通道,一個儲存子單元的最小寫入單位為2個頁面,每個頁面可包含4K、8K或16K或其他長度的位元組資料。參考第4圖及第5圖。於步驟S511,處理單元110可於時間區間T61透過存取介面170從4個儲存子單元(表示為CE0至CE3)讀取8(4x2)個頁面的有效資料,以及儲存於動態隨機存取記憶體130。詳細來說,處理單元110透過共享的資料線410_0發送資料讀取命令以及實體位址給指定的儲存子單元後,等待一段時間tR(例如,30、40或70微秒(μs)),用以讓 儲存子單元準備實體位址上的資料。接著,處理單元110於一段時間Rx(例如,45或50微秒(μs))透過共享的資料線410_0接收指定頁面的資料,x可為0至3中之任一者。為了縮短廢料收集處理中的資料寫入時間T63,於步驟S531至S535,處理單元110可於一段時間Wx(例如,90或100微秒(μs))透過存取介面170傳送資料寫入命令、實體位址及開始寫入訊號給指定的儲存子單元後,不需等待此儲存子單元執行完實體寫入作業,隨即透過存取介面170傳送資料寫入命令、實體位址及開始寫入訊號給下一個的儲存子單元,x可為0至3中之任一者。儲存子單元於時間區間tProg(例如,1200、1250或1300微秒(μs))執行實體寫入作業,並且可於結束時通知處理單元110實體寫入作業是否成功。當實體寫入作業成功時,處理單元110可更新動態隨機存取記憶體130中的H2F表,用以反應實體寫入作業的結果。
為了讓廢料收集處理的資料讀取更有效率,本發明實施例先將n*m個頁面的有效資料的多個讀取命令及實體位址進行排程,並在除了接收相應於最後一個讀取命令及實體位址的有效資料外,於接收相應於一個已傳送的資料讀取命令及實體位址的有效資料前,傳送下一個資料讀取命令及實體位址給下一個指定的儲存子單元。透過以上的設計,使得從儲存子單元讀取有效資料的時間可緊密地安排在一起,縮短如第6圖所示讀取二個頁面間的空閒時間(idle time)。第7圖係依據本發明實施例之執行於處理單元中之快閃記憶體之廢料收集方法流程圖。首先,處理單元110排程讀取n*m個頁面的有效資料的命令,以及初始化變數l(l=0),其中變數l用以指示讀取命令的 編號(步驟S711)。於步驟S711,處理單元可依據動態隨機存取記憶體130中的H2F表取得n*m個頁面的有效資料的實體位址,並據以排程資料讀取命令。接著,處理單元110經由存取介面170傳送第1個(亦即是第0個)資料讀取命令及實體位址給相應的儲存子單元(步驟S713)。接著,處理單元110反覆執行一個迴圈(步驟S731至S751),直到n*m個頁面的有效資料的資料讀取命令都傳送給儲存單元180為止。
於每一回合中,處理單元110經由存取介面170傳送第l+1個資料讀取命令及實體位址給相應的儲存子單元後(步驟S731),從相應的儲存子單元接收相應於第l個資料讀取命令及實體位址的有效資料(步驟S733),儲存讀取的有效資料至動態隨機存取記憶體130(步驟S735),以及將變數l加一(步驟S737)。接著,處理單元110判斷變數l是否大於或等於n*m(步驟S751)。若否,則處理單元110繼續經由存取介面170傳送第l+1個資料讀取命令及實體位址給相應的儲存子單元,用以進行下一回合的有效資料讀取(步驟S731)。若是,處理單元從相應的儲存子單元接收相應於第l個資料讀取命令及實體位址的有效資料(步驟S771),以及儲存讀取的有效資料至動態隨機存取記憶體130(步驟S773)。
處理單元110讀取完n*m個頁面的有效資料並儲存至動態隨機存與記憶體130後,經由存取介面170將n*m個頁面的有效資料寫入儲存單元180(步驟S791)。
第8圖係依據本發明實施例之廢料收集處理示意圖。假設4個儲存子單元共享一個通道,一個儲存子單元的最 小寫入單位為2個頁面,每個頁面可包含4K、8K或16K或其他長度的位元組資料。參考第4圖及第7圖。時間區間T81為讀取n*m個頁面的有效資料的時間。於步驟S713,處理單元110透過共享的資料線410_0發送資料讀取命令以及實體位址給指定的儲存子單元。接著,反覆執行如步驟S731至S751的迴圈,使得處理單元110透過共享的資料線410_0發送下一個資料讀取命令以及實體位址給指定的儲存子單元後,接著接收相應於此資料讀取命令及實體位址的有效資料。例如,處理單元110透過共享的資料線410_0傳送資料讀取命令及實體位址給儲存子單元CE1,從儲存子單元CE0接收有效資料,傳送資料讀取命令及實體位址給儲存子單元CE3,從儲存子單元CE1接收有效資料,依此類推。於執行完迴圈後,處理單元110透過共享的資料線410_0從儲存子單元CE0接收最後的有效資料。比較第6圖,使用第7圖所示的方法,可縮短讀取二個頁面間的空閒時間。
第9A及9B圖係依據本發明實施例之執行於處理單元中之快閃記憶體之廢料收集方法流程圖。此方法兼備了第7圖所示的資料讀取效率及第5圖所示的資料寫入效率。步驟S911至S943的詳細實施細節可參考第7圖中步驟S711至S773的說明。步驟S951至步驟S971的詳細實施細節可參考第5圖中步驟S513至S557的說明。
雖然第1至4圖中包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,已達成更佳的技術效果。此外,雖然第5、7、9A及9B圖的流程圖採 用指定的順序來執行,但是在不違反發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順序,所以,本發明並不侷限於僅使用如上所述的順序。此外,熟習此技藝人士亦可以將若干步驟整合為一個步驟,或者是除了這些步驟外,循序或平行地執行更多步驟,本發明亦不因此而侷限。
雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請權利要求範圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。
S511~S557‧‧‧方法步驟

Claims (20)

  1. 一種快閃記憶體之廢料收集方法,由一處理單元執行,包含:從多個儲存子單元讀取n*m個頁面的有效資料,其中,n代表共享一通道的上述儲存子單元的數量,m代表每一上述儲存子單元的最小寫入頁面的數量;以及反覆執行一迴圈,用以逐一驅動上述儲存子單元以寫入m個頁面的有效資料,直到上述儲存子單元皆處於忙碌狀態為止。
  2. 如申請專利範圍第1項所述的快閃記憶體之廢料收集方法,其中,於上述迴圈中,當m個頁面的有效資料傳送至上述儲存子單元中之一者後,不需要等待上述儲存子單元執行完一實體寫入作業即可傳送另外m個頁面的有效資料給上述儲存子單元中之下一者。
  3. 如申請專利範圍第1項所述的快閃記憶體之廢料收集方法,其中,於從多個儲存子單元讀取n*m個頁面的有效資料的步驟中,更包含:將上述n*m個頁面的有效資料儲存於一動態隨機存取記憶體;以及其中,於上述迴圈中的每一回合,從上述動態隨機存取記憶體讀取m個頁面的有效資料,並且驅動上述儲存子單元以寫入上述m個頁面的有效資料。
  4. 如申請專利範圍第1項所述的快閃記憶體之廢料收集方法,其中於反覆執行一迴圈的步驟中,更包含: 於每一回合中,傳送一資料寫入命令及一實體位址給上述儲存子單元中之指定一者;傳送m個頁面的有效資料給上述指定的儲存子單元;以及傳送一開始寫入訊號給上述指定的儲存子單元。
  5. 如申請專利範圍第4項所述的快閃記憶體之廢料收集方法,其中,於上述傳送一資料寫入命令及一實體位址給上述儲存子單元中之指定一者的步驟中,更包含:致能多個晶片致能控制訊號中之指定一者,用以從上述儲存子單元選擇出上述指定一者;以及透過上述儲存子單元共享的一資料線傳送上述資料寫入命令及上述實體位址給上述儲存子單元中之指定一者。
  6. 如申請專利範圍第5項所述的快閃記憶體之廢料收集方法,其中,於上述傳送m個頁面的有效資料給上述指定的儲存子單元的步驟中,更包含:透過上述資料線傳送m個頁面的有效資料給上述指定的儲存子單元。
  7. 如申請專利範圍第1項所述的快閃記憶體之廢料收集方法,其中,於上述從多個儲存子單元讀取n*m個頁面的有效資料的步驟中,更包含:將上述n*m個頁面的有效資料的多個讀取命令進行排程;以及除了接收相應於最後一讀取命令及實體位址的有效資料外,於接收相應於每一已傳送的資料讀取命令及實體位址 的有效資料前,傳送下一資料讀取命令及實體位址給上述儲存子單元中之指定下一者。
  8. 一種快閃記憶體之廢料收集方法,由一處理單元執行,包含:將n*m個頁面的有效資料的多個讀取命令進行排程,其中n代表共享一通道的上述儲存子單元的數量,m代表每一上述儲存子單元的最小寫入頁面的數量;除了接收相應於最後一讀取命令及實體位址的有效資料外,於接收相應於每一已傳送的資料讀取命令及實體位址的有效資料前,傳送下一資料讀取命令及實體位址給上述儲存子單元中之指定下一者;以及驅動上述儲存子單元以寫入上述n*m個頁面的有效資料。
  9. 如申請專利範圍第8項所述的快閃記憶體之廢料收集方法,其中,於從多個儲存子單元讀取n*m個頁面的有效資料的步驟中,更包含:將上述n*m個頁面的有效資料儲存於一動態隨機存取記憶體。
  10. 如申請專利範圍第8項所述的快閃記憶體之廢料收集方法,其中,上述資料讀取命令及上述實體位址透過上述儲存子單元共享之一資料線傳送,以及上述每一頁面的有效資料透過上述資料線接收。
  11. 一種快閃記憶體之廢料收集裝置,包含:一通道,耦接於多個儲存子單元; 一處理單元,耦接於上述通道,用以從上述儲存子單元讀取n*m個頁面的有效資料,其中n代表共享上述通道的上述儲存子單元的數量,m代表每一上述儲存子單元的最小寫入頁面的數量;以及反覆執行一迴圈,用以逐一驅動上述儲存子單元以寫入m個頁面的有效資料,直到上述儲存子單元皆處於忙碌狀態為止。
  12. 如申請專利範圍第11項所述的快閃記憶體之廢料收集裝置,其中,於上述迴圈中,當m個頁面的有效資料傳送至上述儲存子單元中之一者後,上述處理單元不需要等待上述儲存子單元執行完一實體寫入作業即可傳送另外m個頁面的有效資料給上述儲存子單元中之下一者。
  13. 如申請專利範圍第11項所述的快閃記憶體之廢料收集裝置,其中,上述處理單元更將上述n*m個頁面的有效資料儲存於一動態隨機存取記憶體,以及,於上述迴圈中的每一回合,上述處理單元從上述動態隨機存取記憶體讀取m個頁面的有效資料,並且驅動上述儲存子單元以寫入上述m個頁面的有效資料。
  14. 如申請專利範圍第11項所述的快閃記憶體之廢料收集裝置,其中,於上述迴圈的每一回合中,上述處理單元傳送一資料寫入命令及一實體位址給上述儲存子單元中之指定一者;傳送m個頁面的有效資料給上述指定的儲存子單元;以及傳送一開始寫入訊號給上述指定的儲存子單元。
  15. 如申請專利範圍第14項所述的快閃記憶體之廢料收集裝置,其中,上述處理單元更致能上述通道中的多個晶片致 能控制訊號中之指定一者,用以從上述儲存子單元選擇出上述指定一者;以及透過上述儲存子單元共享的上述通道中的一資料線傳送上述資料寫入命令及上述實體位址給上述儲存子單元中之指定一者。
  16. 如申請專利範圍第15項所述的快閃記憶體之廢料收集裝置,其中,上述處理單元透過上述資料線傳送m個頁面的有效資料給上述指定的儲存子單元。
  17. 如申請專利範圍第11項所述的快閃記憶體之廢料收集裝置,其中,上述處理單元將上述n*m個頁面的有效資料的多個讀取命令進行排程;以及除了接收相應於最後一讀取命令及實體位址的有效資料外,於接收相應於每一已傳送的資料讀取命令及實體位址的有效資料前,傳送下一資料讀取命令及實體位址給上述儲存子單元中之指定下一者。
  18. 一種快閃記憶體之廢料收集裝置,包含:一通道,耦接於多個儲存子單元;一處理單元,耦接於上述通道,將n*m個頁面的有效資料的多個讀取命令進行排程,其中n代表共享一通道的上述儲存子單元的數量,m代表每一上述儲存子單元的最小寫入頁面的數量;除了接收相應於最後一讀取命令及實體位址的有效資料外,於接收相應於每一已傳送的資料讀取命令及實體位址的有效資料前,傳送下一資料讀取命令及實體位址給上述儲存子單元中之指定下一者;以及驅動上述儲存子單元以寫入上述n*m個頁面的有效資料。
  19. 如申請專利範圍第18項所述的快閃記憶體之廢料收集裝 置,其中,上述處理單元將上述n*m個頁面的有效資料儲存於一動態隨機存取記憶體。
  20. 如申請專利範圍第18項所述的快閃記憶體之廢料收集裝置,其中,上述資料讀取命令及上述實體位址透過上述通道中由上述儲存子單元共享的一資料線傳送,以及上述每一頁面的有效資料透過上述資料線接收。
TW104141255A 2015-12-09 2015-12-09 快閃記憶體之廢料收集方法以及使用該方法的裝置 TWI602186B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW104141255A TWI602186B (zh) 2015-12-09 2015-12-09 快閃記憶體之廢料收集方法以及使用該方法的裝置
CN201610221754.9A CN106855789B (zh) 2015-12-09 2016-04-11 快闪存储器的废料收集方法以及使用该方法的装置
US15/349,722 US10394486B2 (en) 2015-12-09 2016-11-11 Methods for garbage collection in a flash memory and apparatuses using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW104141255A TWI602186B (zh) 2015-12-09 2015-12-09 快閃記憶體之廢料收集方法以及使用該方法的裝置

Publications (2)

Publication Number Publication Date
TW201721654A true TW201721654A (zh) 2017-06-16
TWI602186B TWI602186B (zh) 2017-10-11

Family

ID=59020774

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104141255A TWI602186B (zh) 2015-12-09 2015-12-09 快閃記憶體之廢料收集方法以及使用該方法的裝置

Country Status (3)

Country Link
US (1) US10394486B2 (zh)
CN (1) CN106855789B (zh)
TW (1) TWI602186B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109213623B (zh) * 2017-06-30 2022-02-22 慧荣科技股份有限公司 降低快闪储存介面中传收数据错误方法及装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8463826B2 (en) * 2009-09-03 2013-06-11 Apple Inc. Incremental garbage collection for non-volatile memories
US8266501B2 (en) 2009-09-29 2012-09-11 Micron Technology, Inc. Stripe based memory operation
US8572311B1 (en) * 2010-01-11 2013-10-29 Apple Inc. Redundant data storage in multi-die memory systems
US8874872B2 (en) * 2011-01-21 2014-10-28 Seagate Technology Llc Garbage collection management in memories
US9652376B2 (en) * 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US9727245B2 (en) * 2013-03-15 2017-08-08 Avalanche Technology, Inc. Method and apparatus for de-duplication for solid state disks (SSDs)
TWI515735B (zh) * 2013-12-09 2016-01-01 群聯電子股份有限公司 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置
US9329797B2 (en) * 2013-12-30 2016-05-03 Sandisk Technologies Inc. Method and system for adjusting block erase or program parameters based on a predicted erase life

Also Published As

Publication number Publication date
CN106855789B (zh) 2020-10-16
CN106855789A (zh) 2017-06-16
US10394486B2 (en) 2019-08-27
TWI602186B (zh) 2017-10-11
US20170168750A1 (en) 2017-06-15

Similar Documents

Publication Publication Date Title
US11199996B2 (en) Method of scheduling requests to banks in a flash controller
KR101663437B1 (ko) 메모리 블록들의 호스트-지원형 압축
TWI512609B (zh) 讀取命令排程方法以及使用該方法的裝置
US8996794B2 (en) Flash memory controller
TWI467574B (zh) 記憶體儲存裝置、記憶體控制器與其資料傳輸方法
CN111045593B (zh) 用来进行读取加速的方法以及数据存储装置及其控制器
TWI612473B (zh) 垃圾回收方法以及使用該方法的裝置
CN109471819B (zh) 为来自主机的读取请求提供短的读取响应时间的存储设备
US20190310795A1 (en) Suspending and resuming a read operation for a non-volatile memory
TWI631565B (zh) 快閃記憶體之廢料收集方法以及使用該方法的裝置
TW201710897A (zh) 讀取及寫入命令排程方法以及使用該方法的裝置
TWI545433B (zh) 實體儲存對照表維護方法以及使用該方法的裝置
TWI602186B (zh) 快閃記憶體之廢料收集方法以及使用該方法的裝置
TW201710898A (zh) 內部資料搬移方法以及使用該方法的裝置
US20110010512A1 (en) Method for controlling storage system having multiple non-volatile memory units and storage system using the same
CN108536475B (zh) 完整编程命令处理方法与装置
US11194514B2 (en) Just in time data placement in NAND flash
TWI594245B (zh) 資料寫入工作排程方法以及使用該方法的裝置
CN109508205B (zh) 支持原位操作的nvm芯片、其操作方法以及固态存储设备
TW201523617A (zh) 資料存取命令執行方法以及使用該方法的快閃記憶體裝置
TW201721439A (zh) 讀取及寫入命令排程方法以及使用該方法的裝置