TWI626540B - 一般及垃圾回收的資料存取方法以及使用該方法的裝置 - Google Patents
一般及垃圾回收的資料存取方法以及使用該方法的裝置 Download PDFInfo
- Publication number
- TWI626540B TWI626540B TW106109512A TW106109512A TWI626540B TW I626540 B TWI626540 B TW I626540B TW 106109512 A TW106109512 A TW 106109512A TW 106109512 A TW106109512 A TW 106109512A TW I626540 B TWI626540 B TW I626540B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- buffer
- garbage collection
- data access
- read
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 239000000872 buffer Substances 0.000 claims abstract description 138
- 238000012545 processing Methods 0.000 claims abstract description 44
- 230000004044 response Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 12
- 239000000463 material Substances 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
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
- 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/0253—Garbage collection, i.e. reclamation of unreferenced 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/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
-
- 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/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/0877—Cache access modes
-
- 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/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/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‧‧‧資料緩存器
120a‧‧‧讀取緩存器
120b‧‧‧寫入緩存器
120c‧‧‧垃圾回收緩存器
130‧‧‧動態隨機存取記憶體
150‧‧‧存取介面
160‧‧‧主裝置
170‧‧‧存取介面
170_0~170_j‧‧‧存取子介面
180‧‧‧儲存單元
180_0_0~180_j_i‧‧‧儲存子單元
320_0_0~320_0_i‧‧‧晶片致能控制訊號
Rstart‧‧‧最低位址
Wstart‧‧‧最高位址
GCstart‧‧‧垃圾回收緩存器的最低位址
GCend‧‧‧垃圾回收緩存器的最高位址
510、530、550、570‧‧‧區塊
511、533、555、557‧‧‧區段
P1、P2、P3、P4‧‧‧頁面
S610~S690‧‧‧方法步驟
第1圖係依據本發明實施例之快閃記憶體的系統架構示意
圖。
第2圖係依據本發明實施例之存取介面與儲存單元的方塊圖。
第3圖係依據本發明實施例之一個存取子介面與多個儲存子單元的連接示意圖。
第4A圖係依據本發明實施例之於一般資料存取模式下的緩存器配置示意圖。
第4B圖係依據本發明實施例之於垃圾回收資料存取模式下的緩存器配置示意圖。
第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從選擇出的儲存子單元的指定位置讀取資料。
本發明實施例提出一種一般及垃圾回收的資料存取方法,於資料緩存器120中動態地配置空間給一般及垃圾回收的資料讀取及寫入。於一些實施例中,資料緩存器120可實施於動態隨機存取記憶體130之中。本發明實施例以二種模式來配置資料緩存器120中的空間:一般資料存取;及垃圾回收資料存取。第4A圖係依據本發明實施例之於一般資料存取模式下的緩存器配置示意圖。於一般資料存取模式,資料緩存器120
的空間被配置來儲存一般資料存取所需的資料,包含相應於主裝置160傳送的資料讀取及寫入命令所需的資料。資料緩存器120的最低位址為Rstart,資料緩存器120的最高位址為Wstart,並且資料緩存器120為雙向環形緩存器(bi-directional ring buffer),包含可變長度的讀取緩存器及寫入緩存器。初始時,讀取緩存器的位址範圍從最低位址Rstart開始,寫入緩存器的位址範圍從最高位址Wstart開始。讀取緩存器及寫入緩存器的邊界位址可依據資料讀取及寫入命令所需儲存的資料長度動態決定。例如,當處理單元110偵測到讀取命令所需儲存的資料長度大於寫入命令所需儲存的資料長度時,邊界位址設為較靠近最高位址Wstart的位址;反之,邊界位址設為較靠近最低位址Rstart的位址。當處理單元110透過存取介面150從主裝置160接收讀取命令後,將讀取命令中的邏輯位置轉換成實體位置,驅動存取介面170的實體位置從儲存單元180讀取資料,並且儲存資料至讀取緩存器。讀取的資料(亦即是待敲出給主裝置160的資料)從讀取緩存器的低位址向高位址儲存。當處理單元110透過存取介面150從主裝置160接收寫入命令後,將寫入命令中的待寫入資料儲存於儲存資料至寫入緩存器。待寫入的資料從寫入緩存器的高位址向低位址儲存。熟習此技藝人士可使用習知技術來存取可變長度的讀取緩存器及寫入緩存器中的資料,不再贅述以求簡潔。第4B圖係依據本發明實施例之於垃圾回收資料存取模式下的緩存器配置示意圖。資料緩存器120分為三個部分:讀取緩存器120a(位址範圍為Rstart至GCstart-1);垃圾回收緩存器120c(位址範圍為GCstart至GCend);及寫入緩存器120b(位
址範圍為Wstart至GCend+1)。於垃圾回收資料存取模式,資料緩存器120的空間被配置來儲存一般資料存取所需的資料,包含相應於主裝置160傳送的資料讀取及寫入命令所需的資料,以及垃圾回收程序所需的資料。於垃圾回收資料存取模式,相應於主裝置160的第一個讀取命令的讀取資料從資料緩存器120的位址Rstart向高位址儲存,相應於主裝置160的第一個寫入命令的待寫入的資料從資料緩存器120的位址Wstart向低位址儲存。此外,於垃圾回收資料存取模式,執行垃圾回收程序的指令以驅動存取介面170從儲存單元180讀取多頁的資料,收集讀取資料中的有效資料,及驅動存取介面170將收集的資料寫入儲存單元180中的空區塊。於垃圾回收資料存取模式,資料緩存器120配置一段從位址GCstart至位址GCend的空間,用以儲存收集的有效資料。
第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個區段。接著,處理單元110
可透過存取子介面170讀取區塊530中的頁面P2的資料,保留頁面P2的第1個區段533的資料,並儲存至資料緩存器120中配置空間的第1個區段。接著,處理單元110可透過存取子介面170讀取區塊550中的頁面P3的資料,保留頁面P3的第2個及第3個區段555及557的資料,並儲存至資料緩存器120中配置空間的第2個及第3個區段。最後,處理單元110可透過存取子介面170將資料緩存器120中配置空間的資料寫入區塊570中的頁面P4。
動態隨機存取記憶體130中儲存一個旗標,用以指出快閃記憶體目前處於一般資料存取及垃圾回收資料存取模式中之何者。例如,當旗標為”0”時,代表快閃記憶體目前處於一般資料存取模式。當旗標為”1”時,代表快閃記憶體目前處於垃圾回收資料存取模式。第6圖係依據本發明實施例之模式選擇方法的流程圖。此方法由處理單元110於載入並執行特定微碼或軟體指令時實施。週期性地執行一般資料存取模式的資料存取作業後(步驟S610),取得儲存單元180的空區塊數目(步驟S630)及判斷儲存單元180的空區塊數目是否小於閥值(步驟S650)。於步驟S610,處理單元110可設定動態隨機存取記憶體130中的旗標,用以指出快閃記憶體目前處於一般資料存取模式。資料緩存器120可配置為如第4A圖所示的類型。此外,處理單元110可執行一段預設時間、預設資料量或預設交易筆數的一般資料存取模式的資料存取作業。當儲存單元180的空區塊數目是否小於閥值時(步驟S650中”是”的路徑),執行垃圾回收資料存取模式的資料存取作業(步驟S670)。此外,週期性地執行垃圾回收資料存取模式的資料存取作業後(步驟
S670),判斷垃圾回收資料存取模式是否結束(步驟S690)。當垃圾回收資料存取模式結束時(步驟S690中”是”的路徑),執行一般資料存取模式的資料存取作業(步驟S610)。於步驟S670,處理單元110可設定動態隨機存取記憶體130中的旗標,用以指出快閃記憶體目前處於垃圾回收資料存取模式。資料緩存器120可配置為如第4B圖所示的類型。此外,處理單元110可執行一段預設時間、預設資料量或預設交易筆數的垃圾回收資料存取模式的資料存取作業。
於一般資料存取模式中(步驟S610),處理單元110使用讀指針(read pointer)及寫指針(write pointer)來存取相應於主裝置160發出的讀取命令的資料,又可稱為相應於讀取命令的讀指針及寫指針。此外,處理單元110使用讀指針及寫指針來存取相應於主裝置160發出的寫入命令的資料,又可稱為相應於寫入命令的讀指針及寫指針。
於垃圾回收資料存取模式中(步驟S670),讀取緩存器120a、垃圾回收緩存器120c及寫入緩存器120b設置為環形緩存器(ring buffers)。處理單元110使用讀指針及寫指針來進行讀取緩存器120a中的資料存取。讀指針指向讀取緩存器120a中尚未被敲出給主裝置160的第一頁資料的開始位址。寫指針指向讀取緩存器120a中可用空間的開始位址。因應主裝置160發送的讀取命令,處理單元110從儲存單元180讀取數頁的資料並儲存至讀取緩存器120a,以及逐頁從讀取緩存器120a讀取資料並敲出給主裝置160。詳細來說,處理單元110從儲存單元180讀取主裝置160請求的一頁資料並儲存至讀取緩存器120a中寫指
針指向的位址後,移動寫指針至儲存資料的下一位址並判斷寫指針是否指向垃圾回收緩存器120c的位址範圍。如果是,則移動寫指針以指向讀取緩存器120a的起始位址Rstart。處理器110可從讀指針指向的讀取緩存器120a的位址讀取至少一頁的資料,將讀取的資料敲出給主裝置160,移動讀指針以指向讀取緩存器120a中讀取資料的下一個位址,接著,判斷讀指針是否指向垃圾回收緩存器120c的位址範圍。如果是,則移動讀指針以指向讀取緩存器120a的起始位址Rstart。
於垃圾回收資料存取模式中(步驟S670),處理單元110使用讀指針及寫指針來進行讀取緩存器120b中的資料存取。讀指針指向寫入緩存器120b中尚未被寫入儲存單元180的第一頁資料的開始位址。寫指針指向寫入緩存器120b中可用空間的開始位址。因應主裝置160發送的寫入命令,處理單元110將主裝置160傳送的待寫入資料儲存至寫入緩存器120b,以及從寫入緩存器120b讀取資料並逐頁寫入儲存單元180。詳細來說,處理單元110從主裝置160取得一頁資料並儲存至寫入緩存器120b中寫指針指向的位址後,移動寫指針至寫入資料的前一位址並判斷寫指針是否指向垃圾回收緩存器120c的位址範圍。如果是,則移動寫指針以指向寫入緩存器120b的起始位址Wstart。處理器110可從讀指針指向的寫入緩存器120b的位址讀取至少一頁的資料,將讀取的資料寫入儲存單元180,移動讀指針以指向寫入緩存器120b中讀取資料的前一個位址,接著,判斷讀指針是否指向垃圾回收緩存器120c的位址範圍。如果是,則移動讀指針以指向寫入緩存器120b的起始位址Wstart。
於垃圾回收資料存取模式中(步驟S670),處理單元110使用讀指針及寫指針來進行垃圾回收緩存器120c中的資料存取。讀指針指向垃圾回收緩存器120c中尚未被寫入儲存單元180的第一頁資料的開始位址。寫指針指向垃圾回收緩存器120c中可用空間的開始位址。處理單元110將待寫入的有效資料儲存至垃圾回收緩存器120c,以及從垃圾回收緩存器120c讀取資料並逐頁寫入儲存單元180。詳細來說,處理單元110從儲存單元180收集一頁的有效資料並儲存至垃圾回收緩存器120c中寫指針指向的位址後,移動寫指針至儲存資料的下一位址並判斷寫指針是否指向寫入緩存器120b的位址範圍。如果是,則移動寫指針以指向垃圾回收緩存器120c的起始位址GCstart。處理器110可從讀指針指向的垃圾回收緩存器120c的位址讀取至少一頁的有效資料,將讀取的資料寫入儲存單元180,移動讀指針以指向垃圾回收緩存器120c中讀取資料的下一個位址,接著,判斷讀指針是否指向寫入緩存器120b的位址範圍。如果是,則移動讀指針以指向垃圾回收緩存器120c的起始位址GCstart。
雖然第1至3圖中包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,已達成更佳的技術效果。此外,雖然第6圖的流程圖採用指定的順序來執行,但是在不違反發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順序,所以,本發明並不侷限於僅使用如上所述的順序。此外,熟習此技藝人士亦可以將若干步驟整合為一個步驟,或者是除了這些步驟
外,循序或平行地執行更多步驟,本發明亦不因此而侷限。
雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請權利要求範圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。
Claims (14)
- 一種一般及垃圾回收的資料存取方法,由一處理單元執行,包含:於執行一一般資料存取模式的一資料存取作業時,將一資料緩存器配置為一第一類型;以及於執行一垃圾回收資料存取模式的一資料存取作業時,將上述資料緩存器配置為一第二類型;其中,當上述資料緩存器配置為上述第一類型時,上述資料緩存器包含可變長度的一讀取緩存器及可變長度的一寫入緩存器,以及當上述資料緩存器配置為上述第二類型時,上述資料緩存器於上述讀取緩存器及上述寫入緩存器之間提供一垃圾回收緩存器。
- 如申請專利範圍第1項所述的一般及垃圾回收的資料存取方法,其中,上述第一類型的上述資料緩存器儲存相應於一主裝置傳送的一讀取命令及一寫入命令所需的資料,以及上述第二類型的上述資料緩存器儲存相應於上述主裝置傳送的上述讀取命令及上述寫入命令所需的資料,以及一垃圾回收程序所需的資料。
- 如申請專利範圍第2項所述的一般及垃圾回收的資料存取方法,其中,上述垃圾回收程序驅動一存取介面從一儲存單元讀取多頁的資料,收集上述讀取資料中的有效資料並儲存至上述第二類型的上述資料緩存器,及驅動上述存取介面從上述第二類型的上述資料緩存器讀取上述有效資料 並寫入上述儲存單元中的空區塊。
- 如申請專利範圍第1項所述的一般及垃圾回收的資料存取方法,其中,於上述一般資料存取模式的資料存取作業中,上述處理單元從上述讀取緩存器中的一低位址向一高位址儲存待敲出給一主裝置的資料,以及從上述寫入緩存器的一高位址向一低位址儲存待寫入至一儲存單元的資料。
- 如申請專利範圍第1項所述的一般及垃圾回收的資料存取方法,其中,上述處理單元從上述讀取緩存器中的一低位址向一高位址儲存待敲出給一主裝置的資料,從上述寫入緩存器的一高位址向一低位址儲存待寫入至一儲存單元的資料,以及儲存相應於一垃圾回收程序的資料至上述垃圾回收緩存器。
- 如申請專利範圍第1項所述的一般及垃圾回收的資料存取方法,更包含:於執行上述一般資料存取模式的上述資料存取作業後,取得一儲存單元的一空區塊數目以及判斷上述空區塊數目是否小於一閥值;以及當上述空區塊數目小於上述閥值時,執行上述垃圾回收資料存取模式的上述資料存取作業。
- 如申請專利範圍第1項所述的一般及垃圾回收的資料存取方法,更包含:於執行上述垃圾回收資料存取模式的上述資料存取作業後,判斷上述垃圾回收資料存取模式是否結束;以及 當上述垃圾回收資料存取模式結束時,執行上述一般資料存取模式的上述資料存取作業。
- 一種一般及垃圾回收的資料存取裝置,包含:一資料緩存器;以及一處理單元,耦接於上述資料緩存器,於執行一一般資料存取模式的一資料存取作業時,將上述資料緩存器配置為一第一類型;以及於執行一垃圾回收資料存取模式的一資料存取作業時,將上述資料緩存器配置為一第二類型;其中,當上述資料緩存器配置為上述第一類型時,上述資料緩存器包含可變長度的一讀取緩存器及可變長度的一寫入緩存器,以及當上述資料緩存器配置為上述第二類型時,上述資料緩存器於上述讀取緩存器及上述寫入緩存器之間提供一垃圾回收緩存器。
- 如申請專利範圍第8項所述的一般及垃圾回收的資料存取裝置,其中,上述第一類型的上述資料緩存器儲存相應於一主裝置傳送的一讀取命令及一寫入命令所需的資料,以及上述第二類型的上述資料緩存器儲存相應於上述主裝置傳送的上述讀取命令及上述寫入命令所需的資料,以及一垃圾回收程序所需的資料。
- 如申請專利範圍第9項所述的一般及垃圾回收的資料存取裝置,更包含:一存取介面,耦接於一儲存單元; 其中,上述垃圾回收程序驅動上述存取介面從上述儲存單元讀取多頁的資料,收集上述讀取資料中的有效資料並儲存至上述第二類型的上述資料緩存器,及驅動上述存取介面從上述第二類型的上述資料緩存器讀取上述有效資料並寫入上述儲存單元中的空區塊。
- 如申請專利範圍第8項所述的一般及垃圾回收的資料存取裝置,其中,於上述一般資料存取模式的資料存取作業中,上述處理單元從上述讀取緩存器中的一低位址向一高位址儲存待敲出給一主裝置的資料,以及從上述寫入緩存器的一高位址向一低位址儲存待寫入至一儲存單元的資料。
- 如申請專利範圍第8項所述的一般及垃圾回收的資料存取裝置,其中,上述處理單元從上述讀取緩存器中的一低位址向一高位址儲存待敲出給一主裝置的資料,從上述寫入緩存器的一高位址向一低位址儲存待寫入至一儲存單元的資料,以及儲存相應於一垃圾回收程序的資料至上述垃圾回收緩存器。
- 如申請專利範圍第8項所述的一般及垃圾回收的資料存取裝置,其中,上述處理單元於執行上述一般資料存取模式的上述資料存取作業後,取得一儲存單元的一空區塊數目以及判斷上述空區塊數目是否小於一閥值;以及當上述空區塊數目小於上述閥值時,執行上述垃圾回收資料存取模式的上述資料存取作業。
- 如申請專利範圍第8項所述的一般及垃圾回收的資料存取裝置,其中,上述處理單元於執行上述垃圾回收資料存取 模式的上述資料存取作業後,判斷上述垃圾回收資料存取模式是否結束;以及當上述垃圾回收資料存取模式結束時,執行上述一般資料存取模式的上述資料存取作業。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106109512A TWI626540B (zh) | 2017-03-22 | 2017-03-22 | 一般及垃圾回收的資料存取方法以及使用該方法的裝置 |
CN201710292973.0A CN108628754A (zh) | 2017-03-22 | 2017-04-28 | 一般及垃圾回收的数据存取方法以及使用该方法的装置 |
US15/863,898 US20180275915A1 (en) | 2017-03-22 | 2018-01-06 | Methods for regular and garbage-collection data access and apparatuses using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106109512A TWI626540B (zh) | 2017-03-22 | 2017-03-22 | 一般及垃圾回收的資料存取方法以及使用該方法的裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI626540B true TWI626540B (zh) | 2018-06-11 |
TW201835766A TW201835766A (zh) | 2018-10-01 |
Family
ID=63255791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106109512A TWI626540B (zh) | 2017-03-22 | 2017-03-22 | 一般及垃圾回收的資料存取方法以及使用該方法的裝置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20180275915A1 (zh) |
CN (1) | CN108628754A (zh) |
TW (1) | TWI626540B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7401193B2 (ja) * | 2019-04-17 | 2023-12-19 | キヤノン株式会社 | 情報処理装置及びその制御方法並びにプログラム |
CN113495850B (zh) * | 2020-04-08 | 2024-02-09 | 慧荣科技股份有限公司 | 管理垃圾回收程序的方法、装置及计算机可读取存储介质 |
US11494299B2 (en) | 2021-02-18 | 2022-11-08 | Silicon Motion, Inc. | Garbage collection operation management with early garbage collection starting point |
US20210216239A1 (en) * | 2021-03-27 | 2021-07-15 | Intel Corporation | Host controlled garbage collection in a solid state drive |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200813713A (en) * | 2006-09-07 | 2008-03-16 | Super Talent Technology Ltd | Managing bad blocks in flash memory for electronic data flash card |
TW201135458A (en) * | 2009-12-18 | 2011-10-16 | Sandisk Corp | Non-volatile memory with multi-gear control using on-chip folding of data |
TW201403318A (zh) * | 2012-07-02 | 2014-01-16 | Infomicro Electronics Shenzhen Ltd | 具耐用轉換層並能轉移暫存讓記憶體耐磨損的硬碟驅動器 |
TW201510722A (zh) * | 2009-09-03 | 2015-03-16 | Pioneer Chip Technology Ltd | 以頁面為基礎管理快閃儲存裝置 |
Family Cites Families (7)
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 |
JP2013137665A (ja) * | 2011-12-28 | 2013-07-11 | Toshiba Corp | 半導体記憶装置、半導体記憶装置の制御方法、およびメモリコントローラ |
US20140122774A1 (en) * | 2012-10-31 | 2014-05-01 | Hong Kong Applied Science and Technology Research Institute Company Limited | Method for Managing Data of Solid State Storage with Data Attributes |
KR102074329B1 (ko) * | 2013-09-06 | 2020-02-06 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 데이터 처리 방법 |
CN105630638B (zh) * | 2014-10-31 | 2018-01-12 | 国际商业机器公司 | 用于为磁盘阵列分配缓存的设备和方法 |
TWI573143B (zh) * | 2015-03-04 | 2017-03-01 | 慧榮科技股份有限公司 | 資料重新寫入方法以及使用該方法的裝置 |
US9940234B2 (en) * | 2015-03-26 | 2018-04-10 | Pure Storage, Inc. | Aggressive data deduplication using lazy garbage collection |
-
2017
- 2017-03-22 TW TW106109512A patent/TWI626540B/zh active
- 2017-04-28 CN CN201710292973.0A patent/CN108628754A/zh active Pending
-
2018
- 2018-01-06 US US15/863,898 patent/US20180275915A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200813713A (en) * | 2006-09-07 | 2008-03-16 | Super Talent Technology Ltd | Managing bad blocks in flash memory for electronic data flash card |
TW201510722A (zh) * | 2009-09-03 | 2015-03-16 | Pioneer Chip Technology Ltd | 以頁面為基礎管理快閃儲存裝置 |
TW201135458A (en) * | 2009-12-18 | 2011-10-16 | Sandisk Corp | Non-volatile memory with multi-gear control using on-chip folding of data |
TW201403318A (zh) * | 2012-07-02 | 2014-01-16 | Infomicro Electronics Shenzhen Ltd | 具耐用轉換層並能轉移暫存讓記憶體耐磨損的硬碟驅動器 |
Also Published As
Publication number | Publication date |
---|---|
TW201835766A (zh) | 2018-10-01 |
CN108628754A (zh) | 2018-10-09 |
US20180275915A1 (en) | 2018-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10628319B2 (en) | Methods for caching and reading data to be programmed into a storage unit and apparatuses using the same | |
KR100610647B1 (ko) | 직접실행제어 기능과 스토리지 기능이 복합된 대용량저장장치 | |
US20180307496A1 (en) | Methods for gc (garbage collection) por (power off recovery) and apparatuses using the same | |
EP2973572B1 (en) | System and method of reading data from memory concurrently with sending write data to the memory | |
US20180275921A1 (en) | Storage device | |
TWI626540B (zh) | 一般及垃圾回收的資料存取方法以及使用該方法的裝置 | |
US9396141B2 (en) | Memory system and information processing device by which data is written and read in response to commands from a host | |
US10990325B2 (en) | Write control method, associated data storage device and controller thereof | |
US9304900B2 (en) | Data reading method, memory controller, and memory storage device | |
US10776042B2 (en) | Methods for garbage collection and apparatuses using the same | |
KR102106261B1 (ko) | 메모리 컨트롤러의 작동 방법과 이를 포함하는 장치들의 작동 방법들 | |
US11210226B2 (en) | Data storage device and method for first processing core to determine that second processing core has completed loading portion of logical-to-physical mapping table thereof | |
CN108228483B (zh) | 处理原子写命令的方法和设备 | |
CN107239225B (zh) | 存储器管理方法、存储器储存装置及存储器控制电路单元 | |
CN111796759A (zh) | 多平面上的片段数据读取的计算机可读取存储介质及方法 | |
CN111722792B (zh) | 存储器*** | |
US9990280B2 (en) | Methods for reading data from a storage unit of a flash memory and apparatuses using the same | |
CN111813703A (zh) | 数据储存装置及逻辑至物理地址映射表的更新方法 | |
CN114253461A (zh) | 混合通道存储设备 | |
CN114253462A (zh) | 提供混合通道存储设备的方法 | |
US11029854B2 (en) | Memory controller for concurrently writing host data and garbage collected data and operating method thereof | |
TW201710898A (zh) | 內部資料搬移方法以及使用該方法的裝置 | |
US11494113B2 (en) | Computer program product and method and apparatus for scheduling execution of host commands | |
TWI417889B (zh) | 快閃記憶體之寫入逾時控制方法及其記憶裝置 | |
CN111045961B (zh) | 数据处理方法及使用所述方法的存储控制器 |