TWI648628B - 避免讀取擾動的資料搬移方法以及使用該方法的裝置 - Google Patents
避免讀取擾動的資料搬移方法以及使用該方法的裝置 Download PDFInfo
- Publication number
- TWI648628B TWI648628B TW106113733A TW106113733A TWI648628B TW I648628 B TWI648628 B TW I648628B TW 106113733 A TW106113733 A TW 106113733A TW 106113733 A TW106113733 A TW 106113733A TW I648628 B TWI648628 B TW I648628B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- block
- abnormal
- page
- entity
- 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/0647—Migration mechanisms
-
- 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
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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
-
- 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
- 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/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
- G11C29/4401—Indication or identification of errors, e.g. for repair for self repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- 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
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)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本發明的實施例提出一種避免讀取擾動的資料搬移方法,由處理單元執行,包含以下步驟:從多個實體塊中找尋一個異常實體塊;對異常實體塊中第i個實體頁面進行讀取測試;判斷異常實體塊中第i個實體頁面的資料是否通過讀取測試;以及當異常實體塊中第i個實體頁面沒通過讀取測試時,驅動存取介面將異常實體塊中第i個實體頁面及至少一個相鄰實體頁面的資料搬遷至有效實體塊。
Description
本發明關連於一種快閃記憶體裝置,特別是一種避免讀取擾動的資料搬移方法以及使用該方法的裝置。
快閃記憶體裝置通常分為NOR快閃裝置與NAND快閃裝置。NOR快閃裝置為隨機存取裝置,可於位址腳位上提供任何主裝置(host)請求的位址,用以存取NOR快閃裝置,並及時地由NOR快閃裝置的資料腳位上獲得儲存於該位址上的資料。相反地,NAND快閃裝置並非隨機存取,而是序列存取。NAND快閃裝置無法像NOR快閃裝置一樣,可以存取任何隨機位址,而是需要一次性寫入一系列位元組(bytes)的值到NAND快閃裝置,或從NAND快閃裝置一次性讀取一系列位元組的值。主裝置提供請求命令(command)的類型(如,讀取、寫入、抹除等),以及用在此命令上的位址。位址可指向一個頁面(在快閃記憶體中的一個寫入作業的最小資料塊)或一個區塊(在快閃記憶體中的一個抹除作業的最小資料塊)。實際上,NAND快閃裝置通常從記憶體單元(memory cells)上讀取或寫入完整的數頁資料。當一整頁的資料從陣列讀取到裝置中的緩存器(buffer)後,藉由使用提取訊號(strobe signal)順序地敲出(clock out)內容,讓主裝置可逐位元組或字元組(words)存取資料。
讀取NAND快閃記憶體久了,可能導致鄰近的實體頁面(或字元線)改變狀態(變成寫入)。如果持續從一個實體頁面讀取資料,此實體頁面並不會失效,然而,周遭的實體頁面卻會受影響,於之後的讀取中發生錯誤。於兩次抹除作業之間,允許的讀取次數為上千次。這也就是熟習此技藝人士了解的讀取擾動(read disturbance)。因此,本發明提出一種資料搬移方法以及使用該方法的裝置,用以避免讀取擾動。
本發明的實施例提出一種避免讀取擾動的資料搬移方法,由處理單元執行,包含以下步驟:從多個實體塊中找尋一個異常實體塊;對異常實體塊中第i個實體頁面進行讀取測試;判斷異常實體塊中第i個實體頁面的資料是否通過讀取測試;以及當異常實體塊中第i個實體頁面沒通過讀取測試時,驅動存取介面將異常實體塊中第i個實體頁面及至少一個相鄰實體頁面的資料搬遷至有效實體塊。
本發明的實施例提出一種避免讀取擾動的資料搬移裝置,包含存取介面及處理單元。存取介面耦接於儲存單元,且儲存單元儲存多個實體塊。處理單元耦接於存取介面,從實體塊中找尋異常實體塊;對異常實體塊中第i個實體頁面進行讀取測試;判斷異常實體塊中第i個實體頁面的資料是否通過讀取測試;以及當異常實體塊中第i個實體頁面沒通過讀取測試時,驅動存取介面將異常實體塊中第i個實體頁面及至少一相鄰實體頁面的資料搬遷至有效實體塊。
本發明實施例中的i為大於等於0的整數。
10‧‧‧系統
110‧‧‧處理單元
120‧‧‧揮發性記憶體
130‧‧‧錯誤檢查修正單元
150‧‧‧存取介面
160‧‧‧主裝置
170‧‧‧存取介面
170_0~170_j‧‧‧存取子介面
180‧‧‧儲存單元
180_0_0~180_j_i‧‧‧儲存子單元
320_0_0~320_0_i‧‧‧晶片致能控制訊號
BL0‧‧‧第0個實體塊
WL0、WL1、WL2、...、WL(i-2)、WL(i-1)、WL(i)、WL(i+1)、WL(i+2)、...、WL253、WL254、WL255‧‧‧字元線
400、510、530‧‧‧讀取計數資料表
400_0、400_511、510_0、510_511、530_0、530_511‧‧‧儲存格
t0、t1、t2‧‧‧時間點
S611~S653‧‧‧方法步驟
第1圖係依據本發明實施例之快閃記憶體的系統架構示意圖。
第2圖係依據本發明實施例之存取介面與儲存單元的方塊圖。
第3圖係依據本發明實施例之一個存取子介面與多個儲存子單元的連接示意圖。
第4及5圖係依據本發明實施例之讀取計數表及實體塊的對應示意圖。
第6圖係依據本發明實施例的避免讀取擾動的資料搬移方法。
以下說明係為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。
必須了解的是,使用於本說明書中的”包含”、”包括”等詞,係用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。
於權利要求中使用如”第一”、"第二"、"第三"等詞係用來修飾權利要求中的元件,並非用來表示之間具有優先權 順序,先行關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。
本發明實施例提出一種避免讀取擾動的資料搬移方法及使用此方法的裝置。其精神在於處理單元從多個實體塊中找尋一個異常實體塊;對異常實體塊中第i個實體頁面進行讀取測試;判斷異常實體塊中第i個實體頁面的資料是否通過讀取測試;以及當異常實體塊中第i個實體頁面沒通過讀取測試時,驅動存取介面將異常實體塊中第i個實體頁面及至少一個相鄰實體頁面的資料搬遷至有效實體塊。
第1圖係依據本發明實施例之快閃記憶體的系統架構示意圖。快閃記憶體裝置的系統架構10中包含處理單元110,用以寫入資料到儲存單元180中的指定位址,以及從儲存單元180中的指定位址讀取資料。詳細來說,處理單元110透過存取介面170寫入資料到儲存單元180中的指定位址,以及從儲存單元180中的指定位址讀取資料。處理單元110可使用多種方式實施,例如以專用硬體電路或通用硬體(例如,單一處理器、具平行處理能力的多處理器或其他具運算能力的處理器),並且從先進先出(FIFO,First-In-First-Output)緩存器提取指令及依據指令驅動存取介面170。處理單元110可包含運算邏輯單元(ALU,Arithmetic and Logic Unit)以及位移器(bit shifter)。運算邏輯單元負責執行布林運算(如AND、OR、NOT、NAND、NOR、XOR、XNOR等),而位移器負責位移運算及位元旋轉。系統架構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從選擇出的儲存子單元的指定位置讀取資料。
第4及5圖係依據本發明實施例之讀取計數表及實體塊的對應示意圖。儲存單元180的記憶單元(memory cells)可劃分成m個實體塊(physical blocks),每個實體塊包含n個實體頁面(physical pages),以及每個實體頁面的資料儲存於p個字元線(wordline)。例如,儲存單元180可包含512個實體塊,每個實體塊可包含256個實體頁面,以及每個實體頁面的資料可儲存於1個字元線。儲存子單元180_0_0包含第0個實體塊BL0,第0個實體塊BL0包含256個字元線WL0至WL255,而每個字元線儲存一個實體頁面的資料。快閃記憶體裝置的系統架構10中包含揮發性記憶體120,用以儲存執行過程中需要的資料,例如,變數、資料表(data tables)、資料結構等。
於一些實施例中,參考第4圖,揮發性記憶體120儲存讀取計數資料表(read-count table)400,讀取計數資料表400包含m個儲存格,每個儲存格紀錄一個實體塊從上次抹除作業後的讀取次數。例如,讀取計數資料表400包含512個儲存格 400_0至400_511,而其中的第0個儲存格400_0紀錄實體塊BL0從上次抹除作業後的讀取次數。當一個實體塊被抹除後,相應儲存格的值更新為0。於系統開機成功後,處理單元110透過存取介面170從儲存單元180讀出讀取計數資料表(read-count table)400並儲存至揮發性記憶體120。每次從儲存單元180讀取資料後,更新揮發性記憶體120的計數資料表400。於系統關機前,處理單元110將揮發性記憶體120的讀取計數資料表400透過存取介面170寫入至儲存單元180。
於另一些實施例中,參考第5圖,揮發性記憶體120可更儲存讀取計數資料表510及530。讀取計數資料表510包含m個儲存格,每個儲存格紀錄一個實體塊於一段時間t0至t1的讀取次數,另讀取計數資料表530包含m個儲存格,每個儲存格紀錄一個實體塊於一段時間t1至t2的讀取次數。讀取計數資料表510包含512個儲存格510_0至510_511,而其中的第0個儲存格510_0紀錄實體塊BL0於一段時間t0至t1的讀取次數,而讀取計數資料表530包含512個儲存格530_0至530_511,而其中的第0個儲存格530_0紀錄實體塊BL0於一段時間t1至t2的讀取次數。於此須注意的是,由於揮發性記憶體120為重要資源且空間有限,讀取計數資料表400、510及530以實體塊為基本單位儲存讀取次數,而不是以實體頁面為基本單元。雖然第4圖及第5圖的實施例描述一個實體頁面儲存於一個儲存子單元,但是,熟習此技藝人士亦可將一個實體頁面分散儲存於多個儲存子單元,本發明並不受限於此。
第6圖係依據本發明實施例的避免讀取擾動的資 料搬移方法,由處理單元110載入及執行相關程式碼時實施。此方法周期性地執行,例如,每隔10、20或30分鐘。於每一回合中,嘗試找尋異常實體塊(singular blocks)(步驟S611),並且判斷是否存在異常實體塊(步驟S613)。當存在異常實體塊時(步驟S613中”是”的路徑),檢查異常實體塊中的實體頁面是否發生讀取擾動,以及將發生讀取擾動的相關實體頁面的資料搬移至有效實體塊的空實體頁面(步驟S631至S653)。當不存在異常實體塊時(步驟S613中”否”的路徑),計數一段預設時間(步驟S617)。於到達預設時間時,進行下一回合的處理。於步驟S611的一些實施例,參考第4圖,處理單元110可判斷讀取計數資料表400中的每一儲存格的值(或稱為讀取次數)是否超過閥值(threshold),例如76800、51200、25600或其他出廠時的預設數值。當發現至少一個儲存格的值超過閥值時,處理單元110判定相應於這些儲存格的實體塊為異常。例如,儲存格400_0的值超過閥值時,處理單元110判定實體塊BL0為異常。於步驟S611的另一些實施例,參考第5圖,處理單元110將讀取計數資料表530中第k個儲存格的值(或稱為第二讀取次數)減去讀取計數資料表510中第k個儲存格的值(或稱為第一讀取次數),並且將計算後的值(或稱為第三讀取次數)寫入暫存資料表中第k個儲存格,其中,k為0至m-1。接著,處理單元110依據暫存資料表中的值判斷是否可能存在讀取擾動的現象。於一些實施方式,可判斷暫存資料表中是否存在一個值超過預設閥值。於另一些實施方式,可判斷暫存資料表中是否存在一個值遠超過所有值的平均值,例如,某一儲存格的值數倍(如,五倍、十倍 等)以上於所有儲存格的值的平均值。當暫存資料表中第0儲存格的值超過預設閥值或數倍以上於所有儲存格的值的平均值時,處理單元110判定實體塊BL0為異常。
當選擇一個異常實體塊後(步驟S631),以變數i來控制此異常實體塊的實體頁面讀取測試。異常實體塊的實體頁面讀取測試,詳細說明如下。變數i初始為0(步驟S633),對此異常實體塊中第0個實體頁面進行讀取測試(步驟S635),接著判斷是否通過讀取測試(步驟S637)。於步驟S635及S637,詳細來說,處理單元110驅動存取介面170讀取此異常實體塊中第0個實體頁面的資料並傳送至錯誤檢查修正(ECC,Error Check-and-Correction)單元130,以及從錯誤檢查修正單元130取得結果,用以指出此異常實體塊中第0個實體頁面的資料是否通過錯誤檢查修正。錯誤檢查修正單元130可輸出訊息,指出此異常實體塊中第0個實體頁面的資料的錯誤情形。例如,此訊息可指出此異常實體塊中第0個實體頁面的資料的錯誤程度或錯誤位元數。當此異常實體塊中第0個實體頁面的資料的錯誤程度到達預設程度或更糟時,或者,當此異常實體塊中第0個實體頁面的資料的錯誤位元數超過預設閥值時,處理單元110判定此異常實體塊中第0個實體頁面的資料不通過讀取測試。當通過讀取測試(步驟S637中”是”的路徑),將變數i加1(步驟S639),並對此異常實體塊中第1個(亦即是下一個)實體頁面的資料進行讀取測試(步驟S635及S637)。當不通過讀取測試(步驟S637中”否”的路徑),將此異常實體塊中第0至j個實體頁面搬遷至有效實體塊(available physical-block)(步驟S651),接著將 變數i設為i+j+1,其中j可為1或2的常數(步驟S653)。於步驟S653,詳細來說,當j設為1時,處理單元110驅動存取介面170將此異常實體塊中第0至1個實體頁面搬遷至有效實體塊。當j設為2時,處理單元110驅動存取介面170將此異常實體塊中第0至2個實體頁面搬遷至有效實體塊。可了解的是,當此異常實體塊中第0個實體頁面不通過讀取測試時,處理單元110判定此異常實體塊中第1個實體頁面有很高的機會因過多的連續讀取而造成第0及2個實體頁面發生讀取擾動。若第1個實體頁面真發生過多的連續讀取且j設為2時,可一次性地將發生讀取擾動的第0及2個實體頁面搬遷至有效實體塊。若第1個實體頁面並沒有發生過多的連續讀取且j設為1時,可避免不必要地將第2個實體頁面搬遷至有效實體塊。
當變數i大於0時,對此異常實體塊中第i個實體頁面進行讀取測試(步驟S635),接著判斷是否通過讀取測試(步驟S637)。當通過讀取測試(步驟S637中”是”的路徑),將變數i加1(步驟S639),並對此異常實體塊中下一個(i+1)實體頁面的資料進行讀取測試(步驟S635及S637)。步驟S635及S637的技術細節可參考如上段落的說明,不再贅述以求簡潔。當不通過讀取測試(步驟S637中”否”的路徑),將此異常實體塊中第i-j至i+j個實體頁面搬遷至有效實體塊(步驟S651),接著將變數i設為i+j+1,其中j為1或2的常數(步驟S653)。於步驟S653,詳細來說,當j設為1時,處理單元110驅動存取介面170將此異常實體塊中第i-1至i+1個實體頁面搬遷至有效實體塊。當j設為2時,處理單元110驅動存取介面170將將此異常實體塊中第i-2至i+2 個實體頁面搬遷至有效實體塊。於此須注意的是,於步驟S651,由於每個實體塊都有邊界實體頁面,當i-j小於0時,將此異常實體塊中第0至i+j個實體頁面搬遷至有效實體塊;當i+j大於或等於n時,將此異常實體塊中第i-j至n-1個實體頁面搬遷至有效實體塊。
於每回合的實體頁面讀取測試中,於變數i更新後(步驟S639或S653),判斷變數i是否大於或等於每個實體塊的實體頁面總數n(步驟S615)。當變數i小於n時(步驟S615中”否”的路徑),對此異常實體塊中下一個(i+1個或i+j+1個)實體頁面的資料進行讀取測試(步驟S635及S637)。當變數i大於或等於n時(步驟S615中”是”的路徑),接著判斷是否還有其他異常實體塊未處理(步驟S617)。如果存在其他異常實體塊未處理(步驟S617中”是”的路徑),選擇下一個異常實體塊進行後續處理(步驟S631)。如果沒有其他異常實體塊未處理(步驟S617中”否”的路徑),計數上述預設時間(步驟S619)。
雖然第1至3圖中包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,已達成更佳的技術效果。此外,雖然第6圖的處理步驟採用特定的順序來執行,但是在不違反發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順序,所以,本發明並不侷限於僅使用如上所述的順序。
雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請權 利要求範圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。
Claims (18)
- 一種避免讀取擾動的資料搬移方法,由一處理單元執行,包含:從多個實體塊中找尋一異常實體塊;對上述異常實體塊中第i個實體頁面進行讀取測試,i為大於等於0的整數;判斷上述異常實體塊中第i個實體頁面的資料是否通過讀取測試;以及當上述異常實體塊中第i個實體頁面沒通過讀取測試時,將上述異常實體塊中上述第i個實體頁面及至少一相鄰實體頁面的資料搬遷至一有效實體塊,其中,於上述從多個實體塊中找尋一異常實體塊的步驟中,包含:從一讀取計數資料表取得相應於上述實體塊的多個讀取次數,其中,上述讀取計數資料表中相應於上述異常實體塊的上述讀取次數超過一閥值。
- 如申請專利範圍第1項所述的避免讀取擾動的資料搬移方法,其中,上述第i個實體頁面的資料儲存於一第一字元線及上述相鄰實體頁面的資料儲存於一第二字元線,以及上述第一字元線相鄰於上述第二字元線。
- 如申請專利範圍第1項所述的避免讀取擾動的資料搬移方法,其中,上述第i個實體頁面及至少一相鄰實體頁面包含第i-1個實體頁面至第i+1個實體頁面。
- 如申請專利範圍第1項所述的避免讀取擾動的資料搬移方 法,其中,上述第i個實體頁面及至少一相鄰實體頁面包含第i-2個實體頁面至第i+2個實體頁面。
- 如申請專利範圍第1項所述的避免讀取擾動的資料搬移方法,其中,於對上述異常實體塊中第i個實體頁面進行讀取測試的步驟中,更包含:驅動一存取介面,用以從上述異常實體塊中上述第i個實體頁面讀取資料並傳送到一錯誤檢查修正單元,於判斷上述異常實體塊中第i個實體頁面的資料是否通過讀取測試的步驟中,更包含:從上述錯誤檢查修正單元取得一結果;以及依據上述結果判斷上述異常實體塊中上述第i個實體頁面的資料是否通過錯誤檢查修正。
- 如申請專利範圍第5項所述的避免讀取擾動的資料搬移方法,其中,上述結果指出上述異常實體塊中上述第i個實體頁面的資料的錯誤情形。
- 如申請專利範圍第6項所述的避免讀取擾動的資料搬移方法,其中,上述結果指出上述異常實體塊中第i個實體頁面的資料的一錯誤程度,以及於依據上述結果判斷上述異常實體塊中上述第i個實體頁面的資料是否通過錯誤檢查修正的步驟中,更包含:判斷上述異常實體塊中上述第i個實體頁面的資料的上述錯誤程度是否到達預設程度或更糟;以及 當上述異常實體塊中上述第i個實體頁面的資料的上述錯誤程度到達預設程度或更糟時,判定上述異常實體塊中上述第i個實體頁面的資料不通過錯誤檢查修正。
- 如申請專利範圍第6項所述的避免讀取擾動的資料搬移方法,其中,上述結果指出上述異常實體塊中第i個實體頁面的資料的一錯誤位元數,以及於依據上述結果判斷上述異常實體塊中上述第i個實體頁面的資料是否通過錯誤檢查修正的步驟中,更包含:判斷上述異常實體塊中上述第i個實體頁面的資料的上述錯誤位元數是否超過一預設閥值;以及當上述異常實體塊中上述第i個實體頁面的資料的上述錯誤位元數超過上述預設閥值時,判定上述異常實體塊中上述第i個實體頁面的資料不通過錯誤檢查修正。
- 如申請專利範圍第1項所述的避免讀取擾動的資料搬移方法,其中,上述讀取計數資料表儲存每一上述實體塊從上次抹除作業後的讀取次數。
- 一種避免讀取擾動的資料搬移裝置,包含:一存取介面,耦接於一儲存單元,其中上述儲存單元儲存多個實體塊;一揮發性記憶體,儲存一讀取計數資料表;一處理單元,耦接於上述存取介面,從上述實體塊中找尋一異常實體塊;對上述異常實體塊中第i個實體頁面進行讀取測試,i為大於等於0的整數;判斷上述異常實體塊中第i個 實體頁面的資料是否通過讀取測試;以及當上述異常實體塊中第i個實體頁面沒通過讀取測試時,驅動上述存取介面將上述異常實體塊中上述第i個實體頁面及至少一相鄰實體頁面的資料搬遷至一有效實體塊,其中,上述處理單元從上述讀取計數資料表取得相應於上述實體塊的多個讀取次數,以及上述讀取計數資料表中相應於上述異常實體塊的上述讀取次數超過一閥值。
- 如申請專利範圍第10項所述的避免讀取擾動的資料搬移裝置,其中,上述第i個實體頁面的資料儲存於一第一字元線及上述相鄰實體頁面的資料儲存於一第二字元線,以及上述第一字元線相鄰於上述第二字元線。
- 如申請專利範圍第10項所述的避免讀取擾動的資料搬移裝置,其中,上述第i個實體頁面及至少一相鄰實體頁面包含第i-1個實體頁面至第i+1個實體頁面。
- 如申請專利範圍第10項所述的避免讀取擾動的資料搬移裝置,其中,上述第i個實體頁面及至少一相鄰實體頁面包含第i-2個實體頁面至第i+2個實體頁面。
- 如申請專利範圍第10項所述的避免讀取擾動的資料搬移裝置,更包含:一錯誤檢查修正單元;其中,上述處理單元驅動上述存取介面,用以從上述異常實體塊中上述第i個實體頁面讀取資料並傳送到上述錯誤檢查修正單元;從上述錯誤檢查修正單元取得一結果;以及依據 上述結果判斷上述異常實體塊中上述第i個實體頁面的資料是否通過錯誤檢查修正。
- 如申請專利範圍第14項所述的避免讀取擾動的資料搬移裝置,其中,上述結果指出上述異常實體塊中上述第i個實體頁面的資料的錯誤情形。
- 如申請專利範圍第15項所述的避免讀取擾動的資料搬移裝置,其中,上述結果指出上述異常實體塊中第i個實體頁面的資料的一錯誤程度,以及上述處理單元判斷上述異常實體塊中上述第i個實體頁面的資料的上述上述錯誤程度是否到達預設程度或更糟;以及當上述異常實體塊中上述第i個實體頁面的資料的上述到達預設程度或更糟時,判定上述異常實體塊中上述第i個實體頁面的資料不通過錯誤檢查修正。
- 如申請專利範圍第15項所述的避免讀取擾動的資料搬移裝置,其中,上述結果指出上述異常實體塊中第i個實體頁面的資料的一錯誤位元數,以及上述處理單元判斷上述異常實體塊中上述第i個實體頁面的資料的上述錯誤位元數是否超過一預設閥值;以及當上述異常實體塊中上述第i個實體頁面的資料的上述錯誤位元數超過上述預設閥值時,判定上述異常實體塊中上述第i個實體頁面的資料不通過錯誤檢查修正。
- 如申請專利範圍第10項所述的避免讀取擾動的資料搬移裝置,其中,上述讀取計數資料表儲存每一上述實體塊從上 次抹除作業後的讀取次數。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710137038.7A CN108572786B (zh) | 2017-03-09 | 2017-03-09 | 避免读取扰动的数据搬移方法以及使用该方法的装置 |
??201710137038.7 | 2017-03-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201833779A TW201833779A (zh) | 2018-09-16 |
TWI648628B true TWI648628B (zh) | 2019-01-21 |
Family
ID=63444773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106113733A TWI648628B (zh) | 2017-03-09 | 2017-04-25 | 避免讀取擾動的資料搬移方法以及使用該方法的裝置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10254994B2 (zh) |
CN (1) | CN108572786B (zh) |
TW (1) | TWI648628B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108572920B (zh) * | 2017-03-09 | 2022-04-12 | 上海宝存信息科技有限公司 | 避免读取扰动的数据搬移方法以及使用该方法的装置 |
CN108572786B (zh) | 2017-03-09 | 2021-06-29 | 上海宝存信息科技有限公司 | 避免读取扰动的数据搬移方法以及使用该方法的装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120155167A1 (en) * | 2010-12-21 | 2012-06-21 | Kabushiki Kaisha Toshiba | Non-volatile storage device, information processing system and write control method of non-volatile storage device |
US20120195117A1 (en) * | 2011-01-27 | 2012-08-02 | Hynix Semiconductor Inc. | Semiconductor system and data programming method |
TWI520153B (zh) * | 2013-11-05 | 2016-02-01 | 威盛電子股份有限公司 | 非揮發性記憶體裝置及其操作方法 |
TWI551991B (zh) * | 2015-11-20 | 2016-10-01 | 群聯電子股份有限公司 | 記憶體管理方法與系統及其記憶體儲存裝置 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7681109B2 (en) * | 2005-10-13 | 2010-03-16 | Ramot At Tel Aviv University Ltd. | Method of error correction in MBC flash memory |
US8190810B2 (en) | 2008-04-18 | 2012-05-29 | Silicon Motion, Inc. | Non-volatile memory apparatus and method for accessing a non-volatile memory apparatus |
US20100125696A1 (en) * | 2008-11-17 | 2010-05-20 | Prasanth Kumar | Memory Controller For Controlling The Wear In A Non-volatile Memory Device And A Method Of Operation Therefor |
US8495423B2 (en) * | 2009-08-11 | 2013-07-23 | International Business Machines Corporation | Flash-based memory system with robust backup and restart features and removable modules |
US20130184999A1 (en) | 2012-01-05 | 2013-07-18 | Yan Ding | Systems and methods for cancer-specific drug targets and biomarkers discovery |
US8930778B2 (en) * | 2012-11-15 | 2015-01-06 | Seagate Technology Llc | Read disturb effect determination |
US9280497B2 (en) * | 2012-12-21 | 2016-03-08 | Dell Products Lp | Systems and methods for support of non-volatile memory on a DDR memory channel |
JP5522283B1 (ja) | 2013-02-27 | 2014-06-18 | 日本電気株式会社 | リストベクトル処理装置、リストベクトル処理方法、プログラム、コンパイラ、及び、情報処理装置 |
CN103345518B (zh) * | 2013-07-11 | 2016-08-10 | 清华大学 | 基于数据块的自适应数据存储管理方法及系统 |
CN104424127A (zh) * | 2013-08-23 | 2015-03-18 | 慧荣科技股份有限公司 | 存取快闪存储器中储存单元的方法以及使用该方法的装置 |
CN104425020A (zh) * | 2013-08-23 | 2015-03-18 | 慧荣科技股份有限公司 | 存取快闪存储器中储存单元的方法以及使用该方法的装置 |
CN104934066B (zh) | 2014-03-19 | 2018-03-27 | 安华高科技通用Ip(新加坡)公司 | Nand闪存中的读取干扰处理 |
US9361182B2 (en) | 2014-05-20 | 2016-06-07 | Transcend Information, Inc. | Method for read disturbance management in non-volatile memory devices |
US9612957B2 (en) | 2014-07-30 | 2017-04-04 | Qualcomm Innovation Center, Inc. | Read disturb and data retention handling for NAND devices |
US9678827B2 (en) | 2014-10-07 | 2017-06-13 | SK Hynix Inc. | Access counts for performing data inspection operations in data storage device |
TWI545433B (zh) * | 2015-03-04 | 2016-08-11 | 慧榮科技股份有限公司 | 實體儲存對照表維護方法以及使用該方法的裝置 |
US9710317B2 (en) * | 2015-03-30 | 2017-07-18 | Netapp, Inc. | Methods to identify, handle and recover from suspect SSDS in a clustered flash array |
KR20180059208A (ko) | 2016-11-25 | 2018-06-04 | 삼성전자주식회사 | 리클레임 제어부를 갖는 메모리 콘트롤러 및 그에 따른 동작 제어 방법 |
CN108572786B (zh) | 2017-03-09 | 2021-06-29 | 上海宝存信息科技有限公司 | 避免读取扰动的数据搬移方法以及使用该方法的装置 |
-
2017
- 2017-03-09 CN CN201710137038.7A patent/CN108572786B/zh active Active
- 2017-04-25 TW TW106113733A patent/TWI648628B/zh active
- 2017-11-09 US US15/807,820 patent/US10254994B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120155167A1 (en) * | 2010-12-21 | 2012-06-21 | Kabushiki Kaisha Toshiba | Non-volatile storage device, information processing system and write control method of non-volatile storage device |
US20120195117A1 (en) * | 2011-01-27 | 2012-08-02 | Hynix Semiconductor Inc. | Semiconductor system and data programming method |
TWI520153B (zh) * | 2013-11-05 | 2016-02-01 | 威盛電子股份有限公司 | 非揮發性記憶體裝置及其操作方法 |
TWI551991B (zh) * | 2015-11-20 | 2016-10-01 | 群聯電子股份有限公司 | 記憶體管理方法與系統及其記憶體儲存裝置 |
Also Published As
Publication number | Publication date |
---|---|
CN108572786A (zh) | 2018-09-25 |
CN108572786B (zh) | 2021-06-29 |
TW201833779A (zh) | 2018-09-16 |
US20180260156A1 (en) | 2018-09-13 |
US10254994B2 (en) | 2019-04-09 |
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 | |
US10373693B2 (en) | Storage device and method of operating the storage device | |
KR102546229B1 (ko) | 리드 리클레임 동작 시에 버퍼 메모리를 이용하는 스토리지 장치 | |
US11037639B2 (en) | Memory controller and method of operating the same for processing the failed read operation | |
TWI759686B (zh) | 記憶體系統及用於控制該記憶體系統的方法 | |
US11698748B2 (en) | Memory comprising memory controller configured to determine a logical address of a target zone system and method of operating the memory controller | |
US10445252B2 (en) | Storage device and operating method performed by the same | |
US20140372831A1 (en) | Memory controller operating method for read operations in system having nonvolatile memory device | |
US10168951B2 (en) | Methods for accessing data in a circular block mode and apparatuses using the same | |
KR20160076668A (ko) | 초기 문턱 전압 분포 변화를 보상할 수 있는 데이터 저장 장치, 이의 작동 방법, 및 이를 포함하는 데이터 처리 시스템 | |
KR20190106282A (ko) | 저전압 감지 회로 및 이를 포함하는 메모리 장치 | |
KR20190043860A (ko) | 메모리 시스템 및 이의 동작 방법 | |
TWI648628B (zh) | 避免讀取擾動的資料搬移方法以及使用該方法的裝置 | |
TWI633435B (zh) | 避免讀取擾動的資料搬移方法以及使用該方法的裝置 | |
JP2023033158A (ja) | データをリフレッシュするデータ記憶装置およびその動作方法 | |
US9236138B2 (en) | Semiconductor memory device | |
TWI502591B (zh) | 用來管理一記憶裝置之方法以及記憶裝置與控制器 | |
US11782644B2 (en) | Memory system and method of operating the same | |
US20240061616A1 (en) | Memory device command history management | |
KR20230153181A (ko) | 메모리 장치 및 그 프로그래밍 속도 조절 방법 |