TWI539282B - 非揮發性儲存裝置與控制器 - Google Patents
非揮發性儲存裝置與控制器 Download PDFInfo
- Publication number
- TWI539282B TWI539282B TW103135326A TW103135326A TWI539282B TW I539282 B TWI539282 B TW I539282B TW 103135326 A TW103135326 A TW 103135326A TW 103135326 A TW103135326 A TW 103135326A TW I539282 B TWI539282 B TW I539282B
- Authority
- TW
- Taiwan
- Prior art keywords
- controller
- block
- physical
- data
- abnormal state
- 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/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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
-
- 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/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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication 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/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
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
-
- 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/7207—Details relating to flash memory management management of metadata or control data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
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)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Description
本發明是關於非揮發性記憶體的儲存裝置與控制器,且特別是關於具有異常狀況後修復功能的非揮發性記憶體的儲存裝置與控制器。
快閃記憶體等非揮發性記憶體近年來快速發展,並且出現在各式各樣的電子裝置。目前看來,接下來不管是容量或是技術的發展,還會繼續加強。一旦越來越多的資料被放在這類的非揮發性記憶體,為了確保儲存資料的正確性與安全性,如果發生異常現象,例如突然斷電等,提供有效而且可靠的修復機制也就越來越重要。
本發明提供一種非揮發性儲存裝置,包括一非揮發性存儲器,劃分成複數實體區塊,每一實體區塊劃分成複數實體頁;一連接界面,供連接至一主機;以及一控制器,其中該控制器透過該連接界面接收來自該主機之一系列寫入命令,該些寫入命令的位址分別對應到相應的邏輯區塊中之相應的邏輯頁;該控制器從該複數實體區塊選擇一個實體區塊作為一操作實體區塊,並將不同邏輯區塊的不同邏輯頁寫入到該操作實體區塊中;以及當該控制器在一異常狀態後進行一修復操作
時,即使該操作實體區塊還有空間可寫入資料,選擇另一個實體區塊作為該操作實體區塊,以進行後續的資料寫入操作。
一種控制器,用於一非揮發性儲存裝置,該非揮發性儲存裝置包含一非揮發性存儲器與一連接界面,該非揮發性儲存器劃分成複數實體區塊,每一實體區塊劃分成複數實體頁,該連接界面連接一主機,其中該控制器透過該連接界面接收來自該主機之一系列寫入命令,該些寫入命令的位址分別對應到相應的邏輯區塊中之相應的邏輯頁;該控制器從該複數實體區塊選擇一個實體區塊作為一操作實體區塊,不同邏輯區塊的不同邏輯頁寫入到該操作實體區塊中;以及當該控制器在一異常狀態後進行一修復操作時,即使該操作實體區塊還有空間可寫入資料,選擇另一個實體區塊作為該操作實體區塊,以進行後續的資料寫入操作。
10‧‧‧電腦
12‧‧‧隨身碟
20‧‧‧主機
22‧‧‧資料儲存裝置
24‧‧‧記憶體模組
41‧‧‧系統區塊群組
43‧‧‧資料區塊群組
45‧‧‧備用區塊群組
102‧‧‧USB傳輸介面
201‧‧‧管理模組
203‧‧‧第一傳輸介面
221‧‧‧微控制器
223‧‧‧記憶體管理模組
225‧‧‧重組編碼模組
227‧‧‧第二傳輸介面
229‧‧‧緩衝記憶體
231‧‧‧第一模組介面
241‧‧‧第二模組介面
243‧‧‧控制電路
245‧‧‧記憶體區塊陣列
130~132P、PB1~PB9‧‧‧實體區塊
P1~P12‧‧‧頁
LB0~LB3‧‧‧邏輯區塊
1321、1322、P_1~P_N‧‧‧資料頁
1301、1302‧‧‧操作實體區塊
VG_0~VG_N‧‧‧電壓
M_1~M_K‧‧‧記憶單元
VT_1~VT_7、VT_1’~VT_7’‧‧‧操作電壓
VLSB、VCSB1、VCSB2、VMSB1~VMSB4‧‧‧電壓
L0~L7‧‧‧區間
1401、1403、1405、1407、1409、1411、1413‧‧‧步驟
圖1舉例說明根據本發明第一實施例的使用方式。
圖2舉例說明根據發明第一實施例的一種實作示意圖。
圖3舉例說明實體區塊與頁之間的關聯。
圖4舉例說明邏輯區塊被分成三種區域。
圖5舉例說明邏輯區塊跟實體區塊之間的對應關係。
圖6舉例說明邏輯區塊和實體區塊之間的關聯。
圖7例示一個NAND結構快閃記憶體的記憶元件的一個區塊。
圖8是一個三層式儲存單元(TLC)的快閃記憶體儲存單元
存放電量跟操作電壓的示意圖。
圖9例示如果對儲存單元施加操作電壓VT_1所可能發生的情形。
圖10例示在一次的讀取操作時,依序使用7個不同的電壓對儲存單元進行讀取操作。
圖11例示用來找CSB的方法。
圖12例示用來找MSB的方法。
圖13例示異常模式前後的操作實體區塊的對應關係。
圖14例示控制器找尋有效寫入資料頁的方法。
本發明的實施例是一種非揮發性儲存裝置跟其中的控制器,例如一種閃存外接碟或一種閃存外接硬盤。這個非揮發性儲存裝置可透過USB、SATA等連接界面連接到一主機,作為該主機的存儲裝置。在非揮發性儲存裝置包含一個或多個非揮發性存儲器,也可包括一個或多個隨機讀取記憶體或傳統磁性硬碟。主機透過連接界面將存取命令,例如讀取或寫入命令傳到這個非揮發性儲存裝置。控制器根據這些讀取或寫入命令,對於存儲器進行操作。
為了加快閃存記憶體的整體存取速度或是減少耗損,可以透過設置一些隨機讀取記憶體作為快取或是緩存。換言之,有些資料並不是直接寫入到閃存記憶體,而是暫時先寫入到隨機讀取記憶體。另一種可能的做法是,將速度比較快的單層(SLC)閃存記憶體作為第一階的快取,另外配置比較便宜的多層(MLC)閃存記憶體實際存放大量資料。
這類的做法雖然能產生一定的效能,但當遇到不正常的狀況,例如突然斷電、使用者未適當處理即從主機取下非揮發性存儲裝置,有些資料可能需要進行重新寫入等修復工作。
在這類的異常狀態後的修復操作中,本發明的實施例包括對於不穩定的資料頁,例如跟其他資料頁屬於同一個硬體電路元件或區域,彼此間會互相影響,為了避免錯誤的蔓延,直接將有效的資料頁複製到另外的實體區塊,不要再使用原先的實體區塊。本實施例也包括在找哪個是有效資料頁的時候,只讀取部份的資料根據統計值來判斷是否為有效資料頁以加速判斷的流程。
以下將先介紹這些實施例所可適用的架構,之後透過圖示解釋這些實施例的概念。
請參照圖1,其舉例示範根據本發明第一實施例的使用示意圖。
電腦10具有USB傳輸介面102,並且電腦10透過USB傳輸介面102對隨身碟12進行資料存取的操作。這個例子只是作為說明,並非用於限制本發明的範圍。舉例來說,電腦10可替換成各種電子裝置,例如手機、平板電腦、電視、相機等各類需要資料儲存裝置的電子設備。隨身碟12可替換成連接在電腦10外部的其他類別外接儲存裝置,也可替換成固定安裝在電腦內部的內部儲存裝置。USB傳輸介面102可替換成各種資料傳輸介面,例如IEEE1394介面、SATA介面、MS介面、MMC介面、SD介面、CF介面、IDE介面、PCI介面等。
以隨身碟、外接硬碟或是內接磁盤或是快閃盤為例,當這些資料儲存裝置經由傳輸介面被連接到電腦等電子裝置時,電腦等電子裝置會對這些資料儲存裝置進行資料讀取,以判斷這些資料儲存裝置是否已經格式化。如果尚未格式化,電腦等電子裝置通常會詢問使用者是否對資料儲存裝置進行格式化操作。當使用者決定對資料儲存裝置進行格式化,電腦等電子裝置可發出命令給資料儲存裝置,由資料儲存裝置自行按照命令進行格式化。另一種做法是,電腦等電子裝置會提供格式化所需的細節控制指令,例如在資料儲存裝置中建立檔案對照表、預設數值填寫等等。
請參照圖2,其舉例示範圖1對應的裝置內部架構的一種實作方式。
主機20具有管理模組201與第一傳輸介面203。主機20透過管理模組201的硬體或軟體或軟體硬體的組合,經由第一傳輸介面203存取資料儲存裝置22。這裡提到的主機20可以對應到圖1的電腦10。其中管理模組201的範例包括在主機上執行,負責檔案與資料儲存的作業系統、對應的驅動程式以及相關的控制電路的組合。
資料儲存裝置22則具有第二傳輸介面227、微控制器221、緩衝記憶體229、記憶體管理模組223、重組編碼模組225以及第一模組介面231。資料儲存裝置22更具有記憶體模組24,而記憶體模組24則具有第二模組介面241、控制電路243與記憶體區塊陣列245。
在這個範例中,第二傳輸介面227與主機20的第一
傳輸介面203對應,提供例如機械、電子跟相關的信號傳輸處理。緩衝記憶體227作為資料儲存裝置22在讀出跟寫入資料時,作為信號傳輸過程的緩衝或是建構快取架構使用。整個資料儲存裝置22的運作則主要由微控制器221執行預定的指令碼,在適當的時候產生適當的控制信號來控制各個元件的操作。記憶體管理模組223與重組編碼模組225可透過電路硬體來實作,或透過電路配合給微控制器221執行的指令碼進行運作,也可全部透過對應的指令碼實作,由微控制器221執行。
第一模組介面231用來跟記憶體模組24進行溝通。記憶體模組24內的第二模組介面241跟第一模組介面231對應,控制電路243根據微控制器221的指令對記憶體區塊陣列245進行存取。記憶體區塊陣列245可包括複數個快閃記憶體實體區塊。
記憶體管理模組223包括處理邏輯跟對照表格,用來將記憶體區塊陣列245的實體區塊跟邏輯區塊進行比對紀錄。此外,資料儲存裝置22也可以包括錯誤更正模組(未圖示)等。
其中,重組編碼模組225負責對寫入記憶體模組24的原始資料進行重組編碼,產生對應的重組編碼資料,以及對於從記憶體模組24讀出的重組編碼資料進行反重組編碼,以還原回原始資料的數值。這包括對於特定位置的位元進行位置交換、反相部分位置的位元、對於奇數位址跟偶數位址的資料用不同的方式進行反重組編碼等等。
重組編碼的目的可以包括資料的穩定性。舉例來說,在快閃記憶體中,假如相鄰單元存放的數值相同,例如都
是0或都是1,有可能會因為電子特性,影響到儲存資料存放的穩定性。換言之,透過進行重組編碼,是相鄰單元存放的數字可以盡量是0與1交錯,就能增加資料存放的穩定性。因此,具有重組編碼功能,就能使用成本更低的快閃記憶體,而仍能維持一定的儲存品質。
重組編碼也可以基於各種其他的目的,例如避免存在資料儲存裝置的資料被未經授權者讀取等等。重組編碼也可以使用任何目前已經知道或日後開發的各種編碼方式,只要能夠將原始資料進行編碼、解碼後再還原回原始資料,都算是重組編碼的範圍。
請參照圖3,其舉例說明在快閃記憶體中,實體區塊與頁之間的關係。
在圖3中,總共有四個實體區塊PB1、PB2、PB3跟PB4。每個實體區塊裡頭進一步區隔成複數個頁,P1、P2、P3到P12。在這個範例中,一個實體區塊對應到12個頁,當然,在實際的設計中,一個實體區塊包括的頁數目可以作各種不同的調整。在不同的應用環境中,有可能對於實體區塊、頁給予不同的名稱,或甚至對於實體區塊跟頁進行分組。這些都是熟悉此項技術領域的人所熟悉的,所以在此不再贅述。
對於快閃記憶體來說,例如NAND快閃記憶體或是NOR快閃記憶體,對於沒有使用過的快閃記憶體要進行資料寫入動作前,實體區塊必須先進行抹除動作。抹除動作以實體區塊作為基本單位,而寫入則可以頁作為基本單位。經過抹除過的實體區塊接著就能對想寫入的頁進行資料寫入。然而,如果
某個頁已經被進行寫入操作,要再進行寫入操作的話,就必須先對包括這個頁的實體區塊進行抹除的處理。
由於實體區塊的範圍大於頁的範圍,所以,如果要進行上述曾經寫入過的頁再進行寫入時,就必須先進行資料的搬移。換言之,對於邏輯上同樣位址的資料,可能在資料寫入跟重新寫入的過程,從一個實體區塊被搬移到另一個實體區塊。
接著,請參照圖4,其示範一種將實體區塊進行分類的做法。
所有的實體區塊被區分成三類,系統區塊群組41、資料區塊群組43跟備用區塊群組45。系統區塊群組41包括用來存放邏輯區塊跟實體區塊的對照表、微控制器的指令碼、各種指標等系統資料。除了系統區塊群組41,資料區塊群組43則指那些用來實際存放資料的實體區塊。備用區塊群組45則用來存放用來作資料搬移與備用的實體區塊。
如上所述,當進行對曾經寫過的頁要再進行寫入時,需要先進行抹除操作才能進行。換言之,這個頁所處的實體區塊的其他頁的資料也要一起先複製到別的實體區塊,這個實體區塊就從備用區塊群組45中挑選。等資料複製到這個備用區塊群組45的實體區塊後,這個實體區塊被分類到資料區塊群組43,而原先的實體區塊則經過抹除操作被分類到備用區塊群組45。
換言之,不但對應到邏輯位址的實體區塊可能一直在改變,甚至哪個實體區塊對應到哪個區域也在改變。因此
系統必須紀錄邏輯區塊與實體區塊之間的對應關係。
請參照圖5,其例示邏輯區塊與實體區塊的對應關係。在這個例子中,邏輯區塊LB0對應到實體區塊PB5,邏輯區塊LB1對應到實體區塊PB0,邏輯區塊LB2對應到實體區塊PB6,而邏輯區塊LB3則對應到實體區塊PB9。
資料儲存裝置可以透過對照表或其他方式來儲存這些對應關係。
圖6舉例示範用一個對照表來紀錄邏輯區塊跟實體區塊之間的對應關係。在圖6的例子中,邏輯區塊435對應到實體區塊221,邏輯區塊212對應到實體區塊779,邏輯區塊112對應到實體區塊832,並且邏輯區塊554對應到實體區塊21。
請參考圖7,其例示一個NAND結構快閃記憶體的記憶元件的一個區塊(block)。在這個區塊中具有一定數目的資料頁(page),亦即P_0、P_1、P_2、到P_N。每一個資料頁則具有M_0、M_1、M_2、到M_K個記憶單元(cell)。透過對每資料頁設定適當的電壓VG_0、VG_1、VG_2到VG_N,可讀取存於每個儲存單元的浮動閘(Floating Gate)的電位,進而得到每個儲存單元所存放的資料。
對於單層式儲存單元(SLC)快閃記憶體來說,每個儲存單元只存放一個位元的資料,也就是0或1。此時,理論上,只要給每資料頁適當的一個設定電壓VG_0、VG_1、VG_2到VG_N,就可以偵測出到底儲存單元存放的電量,而得出對應的資料值。
相對的,假如是多層式儲存單元(MLC)快閃記憶體,針對一次的讀取動作就需要施加多個不同的設定電壓,以判斷到底儲存單元裡頭存放的電量到底是多少,而換算出實際存放的資料內容。
圖8是一個三層式儲存單元(TLC)的快閃記憶體儲存單元存放電量跟操作電壓的示意圖。在這個示意圖中可看到,一個儲存單元根據儲存的電量落在L0、L1、L2...L7區間,而代表存放的位元資料分別為111,011,001,...110。
對於這樣的儲存單元,理論上,在施加VT_1的操作電壓時,偵測電路可以判斷到底儲存單元存放的電量是屬於L0這一邊,也就是資料111,或是L1,L2,L3,L4,L5,L6,L7那一邊,也就是資料為111,011,001,101,100,000或110。
透過有次序的施加多個不同的電壓組合,理論上就可以判斷出所有三個位元的資料,也就是最大位元MSB(Most Significant Bit)、CSB(Central Significant Bit)與LSB(Least Significant Bit)的資料內容。
但是,如上所述,隨著半導體製程持續朝密集化以及微小化的方向發展,以及快閃記憶體為了降低成本或是使用時間越來越長,相關的電路以及記憶體儲存單元的穩定性的問題越來越大。
圖9例示一種可能的狀況,也就是如果對儲存單元施加操作電壓VT_1,有可能因為位元狀態間出現部分重疊或甚至位移,導致解讀出的資料發生不正確的情形。在這樣的情況下,就需要透過各種不同錯誤校驗方法,或是動態調整操作電
壓來解決資料判斷不準確的問題。
圖10例示在一次的讀取操作時,依序使用7個不同的電壓對儲存單元進行讀取操作,偵測儲存單元內浮動閘的電量,以判讀儲存單元存放的資料的LSB數值到底是0還是1。
從圖10可以清楚看到,如果儲存單元儲存的電量分佈落在VLSB的左側L0,L1,L2,L3,代表LSB的內容是0。相反的,如果是落在VLSB的右側L4,L5,L6,L7,則代表LSB的內容是1。
由於在狀態間有重疊的問題,因此,可依序施加不同的電壓VLSB,VLSB+D,VLSB-D,VLSB+2D,VLSB-2D,VLSB+3D,VLSB-3D。藉此,假如儲存單元的電量分佈剛好落在例如VLSB+D與VLSB之間,就可以從偵測的結果得到一定的情報。
每次施加一個電壓可以得到一個位元結果,因此7次電壓就可以得到7個位元。這7個位元總共有八種可能的組合。由這7個位元對應的位元序(bit sequence),可配合LDPC的解碼電路跟方法,用來計算校驗碼以及用來找出正確的位元資料,也就是利用所取得之軟資訊(soft information)搭配LDPC與BCH等方法,用來進行錯誤校驗。
圖11例示用來找CSB的方法。由於CSB代表第二個位元,在圖11中可看到如果儲存單元的電量是落在L2,L3,L4,L5則代表儲存單元儲存的CSB是0。另一方面,如果儲存單元的電量落在L0,L1,L6,L7區間,則代表儲存單元儲存的CSB是1。在這樣的配置下,可以理解的是需要使用VCSB1與
VCSB2兩個操作電壓來過濾出到底儲存單元的電量是落在哪個區間。
相似於上述的說明,VCSB1與VCSB2也可以施加多個步進調整量,依序多次用不同的電壓進行讀取的動作。每次讀取的結果產生位元序,可搭配LDPC與BCH等方法,用來進行錯誤校驗。
圖12例示用來找MSB的方法。由於MSB代表最高的位元,在圖6中可看到如果儲存單元的電量是落在L0,L3,L4,L7區間,則代表儲存單元存放的MSB位元為1。相對的,假如儲存單元的電量是落在L1,L2,L5,L6區間,則代表儲存單元存放的MSB位元為0。
相似於上述的說明,VMSB1,VMSB2,VMSB3,VMSB4也可以施加多個步進調整量,依序多次用不同的電壓進行讀取的動作。每次讀取的結果產生位元序,可搭配LDPC與BCH等方法,用來進行錯誤校驗。
在上述的各種架構說明後,以下配合圖示進一步說明本發明實施例在異常模式後,進行修復操作的做法。
首先,圖13例示兩個實體區塊1301與1302。實體區塊1301是異常模式前從多數個實體區塊中選擇出來,作為操作實體區塊。所謂操作實體區塊的意思就是,當控制器要對閃存等非揮發性記憶體進行寫入的時候,並非針對每一筆寫入資料都存取不同的實體區塊。甚至,即使一連串的寫入操作都是屬於不同的邏輯區塊,控制器仍然將這些資料寫到同一個操作實體區塊。
舉例來說,在實體區塊1301中,當P001~P005對應到第一個邏輯區塊的五個邏輯資料頁(未圖示),P006~P007可以對應到第二個邏輯區塊的兩個邏輯資料頁(未圖示)。這樣的對應關係可以透過控制器維護一個對照表來達成。
在從異常模式恢復後,控制器對於資料跟相關表格進行檢查,並且試圖修復能夠修復的資料。在這些修復的操作中,其中一項就是選擇一個新的操作實體區塊1302,而不再繼續使用先前的操作實體區塊1301。
此外,由於上述在多層閃存記憶體中,可能有多個記憶單元彼此之間屬於同一個硬體元件,或是彼此之間有物理電性關聯的硬體元件。為了避免異常模式(例如無預期的斷電)造成對硬體元件的不穩定操作,進而擴散這些錯誤到之後的操作,控制器將之前的操作實體區塊1301最後寫入的一個或多個實體頁P010、P011、P012的內容複製到新的操作實體區塊1302。此外,由於這些實體頁已經搬移到新的實體區塊,控制器也會調整對應表,以完成這些實體頁與邏輯頁之間正確的對照關係。
接著,請參考圖14,其說明控制器在修復操作的時候為了找出到底操作實體區塊哪些資料頁是有效資料頁的一種實施做法。首先,控制器取消重組編碼、錯誤更正編碼(步驟1401),接著控制器一個資料頁接著一個資料頁分別讀取一定的資料,例如1K位元的資料(步驟1403)。接著,控制器統計這些讀取的資料中有多少個數值為“1”的位元(步驟1405)。如果數值為“1”的位元個數小於或等於五個(步驟1407),控制器
判斷這個資料頁是空白頁(步驟1409)。否則,控制器判斷這個資料頁存有有效資料(步驟1411)。在判斷完有效資料頁是哪些後,控制器更新對應的表格(步驟1413),這樣之後如果要寫入新的資料,控制器就知道這個操作實體區塊是否有足夠的空間,以及如果有足夠的空間,應該從哪個資料頁開始進行寫入的操作。
綜上所陳,本發明無論就目的、手段及功效,在在均顯示其迥異於習知技術之特徵,懇請 貴審查委員明察,早日賜准專利,俾嘉惠社會,實感德便。惟應注意的是,上述諸多實施例僅係為了便於說明而舉例而已,本發明所主張之權利範圍自應以申請專利範圍所述為準,而非僅限於上述實施例。
1401、1403、1405、1407、1409、1411、1413‧‧‧步驟
Claims (20)
- 一種非揮發性儲存裝置,包含:一非揮發性存儲器,劃分成複數實體區塊,每一實體區塊劃分成複數實體頁;一連接界面,供連接至一主機;以及一控制器,其中該控制器透過該連接界面接收來自該主機之一系列寫入命令,該些寫入命令的位址分別對應到相應的邏輯區塊中之相應的邏輯頁;該控制器從該複數實體區塊選擇一個實體區塊作為一操作實體區塊,並將不同邏輯區塊的不同邏輯頁寫入到該操作實體區塊中;以及當該控制器在一異常狀態後進行一修復操作時,即使該操作實體區塊還有空間可寫入資料,選擇另一個實體區塊作為該操作實體區塊,以進行後續的資料寫入操作。
- 如申請專利範圍第1項所述的非揮發性儲存裝置,其中在該異常狀態後進行該修復操作時,該控制器將該異常狀態前最後寫入到該操作實體區塊的至少一實體頁複製到新選擇的該操作實體區塊。
- 如申請專利範圍第1項所述的非揮發性儲存裝置,其中該異常狀態後進行該修復操作時,該控制器找出該異常狀態前對於該操作實體區塊最後寫入的有效實體頁。
- 如申請專利範圍第3項所述的非揮發性儲存裝置,其中該異常狀態後進行該修復操作時,該控制器讀取該操作實體區 塊的複數實體頁,針對每個讀物的實體頁讀取一預定數目的資料,並且透過判斷該資料的數值統計值來判斷哪些是被有效寫入的實體頁。
- 如申請專利範圍第4項所述的非揮發性儲存裝置,其中該控制器在正常讀取該操作實體區塊時,如果無法讀取資料,會啟動不同電位來進行重試,但在該異常狀態後進行該修復操作時,關閉該重試機制讀取該預定數目的資料來判斷哪些是被有效寫入的實體頁。
- 如申請專利範圍第4項所述的非揮發性儲存裝置,其中該控制器在正常讀取該操作實體區塊時,會啟動錯誤更正機制來辨識及更正錯誤,但在該異常狀態後進行該修復操作時,關閉該錯誤更正機制讀取該預定數目的資料來判斷哪些是被有效寫入的實體頁。
- 如申請專利範圍第4項所述的非揮發性儲存裝置,其中該控制器在正常讀取該操作實體區塊時,會啟動重組解碼機制來還原資料,但在該異常狀態後進行該修復操作時,關閉該重組解碼機制以讀取該預定數目的資料來判斷哪些是被有效寫入的實體頁。
- 如申請專利範圍第1項所述的非揮發儲存裝置,其中該控制透過一表格記錄該操作實體區塊的該些實體頁對應到哪些邏輯區塊的邏輯頁,在該異常狀態後進行該修復操作時,該控制器更新該表格。
- 如申請專利範圍第1項所述的非揮發儲存裝置,其中該非揮發性存儲器為一閃存記憶體。
- 如申請專利範圍第1項所述的非揮發儲存裝置,其中該非揮發性存儲器為一閃存硬碟。
- 一種控制器,用於一非揮發性儲存裝置,該非揮發性儲存裝置包含一非揮發性存儲器與一連接界面,該非揮發性儲存器劃分成複數實體區塊,每一實體區塊劃分成複數實體頁,該連接界面連接一主機,其中該控制器透過該連接界面接收來自該主機之一系列寫入命令,該些寫入命令的位址分別對應到相應的邏輯區塊中之相應的邏輯頁;該控制器從該複數實體區塊選擇一個實體區塊作為一操作實體區塊,不同邏輯區塊的不同邏輯頁寫入到該操作實體區塊中;以及當該控制器在一異常狀態後進行一修復操作時,即使該操作實體區塊還有空間可寫入資料,選擇另一個實體區塊作為該操作實體區塊,以進行後續的資料寫入操作。
- 如申請專利範圍第11項所述的控制器,其中在該異常狀態後進行該修復操作時,該控制器將該異常狀態前最後寫入到該操作實體區塊的至少一實體頁複製到新選擇的該操作實體區塊。
- 如申請專利範圍第11項所述的控制器,其中該異常狀態後進行該修復操作時,該控制器找出該異常狀態前對於該操作實體區塊最後寫入的有效實體頁。
- 如申請專利範圍第11項所述的控制器,其中該異常狀態後進行該修復操作時,該控制器讀取該操作實體區塊的複數實體頁,針對每個讀物的實體頁讀取一預定數目的資料,並且透過判斷該資料的數值統計值來判斷哪些是被有效寫 入的實體頁。
- 如申請專利範圍第14項所述的控制器,其中該控制器在正常讀取該操作實體區塊時,如果無法讀取資料,會啟動不同電位來進行重試,但在該異常狀態後進行該修復操作時,關閉該重試機制讀取該預定數目的資料來判斷哪些是被有效寫入的實體頁。
- 如申請專利範圍第14項所述的控制器,其中該控制器在正常讀取該操作實體區塊時,會啟動錯誤更正機制來辨識及更正錯誤,但在該異常狀態後進行該修復操作時,關閉該錯誤更正機制讀取該預定數目的資料來判斷哪些是被有效寫入的實體頁。
- 如申請專利範圍第14項所述的控制器,其中該控制器在正常讀取該操作實體區塊時,會啟動重組解碼機制來還原資料,但在該異常狀態後進行該修復操作時,關閉該重組解碼機制以讀取該預定數目的資料來判斷哪些是被有效寫入的實體頁。
- 如申請專利範圍第11項所述的控制器,其中該控制透過一表格記錄該操作實體區塊的該些實體頁對應到哪些邏輯區塊的邏輯頁,在該異常狀態後進行該修復操作時,該控制器更新該表格。
- 如申請專利範圍第11項所述的控制器,其中該非揮發性存儲器為一閃存記憶體。
- 如申請專利範圍第11項所述的控制器,其中該非揮發性存儲器為一閃存硬碟。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103135326A TWI539282B (zh) | 2014-10-13 | 2014-10-13 | 非揮發性儲存裝置與控制器 |
US14/614,442 US9430159B2 (en) | 2014-10-13 | 2015-02-05 | Non-volatile memory devices and controllers |
CN201510065062.5A CN105988936B (zh) | 2014-10-13 | 2015-02-09 | 非挥发性储存装置与控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103135326A TWI539282B (zh) | 2014-10-13 | 2014-10-13 | 非揮發性儲存裝置與控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201614504A TW201614504A (en) | 2016-04-16 |
TWI539282B true TWI539282B (zh) | 2016-06-21 |
Family
ID=55655468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103135326A TWI539282B (zh) | 2014-10-13 | 2014-10-13 | 非揮發性儲存裝置與控制器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9430159B2 (zh) |
CN (1) | CN105988936B (zh) |
TW (1) | TWI539282B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106847342B (zh) * | 2016-03-28 | 2020-05-29 | 威盛电子股份有限公司 | 非易失性存储器装置及其空页检测方法 |
KR20200057866A (ko) * | 2018-11-16 | 2020-05-27 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 이의 동작 방법 |
CN110308872A (zh) * | 2019-05-16 | 2019-10-08 | 深圳市金泰克半导体有限公司 | 一种固态硬盘数据处理方法、装置、固态硬盘及存储介质 |
CN111949196A (zh) * | 2019-05-16 | 2020-11-17 | 北京兆易创新科技股份有限公司 | 一种数据重建方法、装置及存储设备 |
CN112925670B (zh) * | 2021-03-17 | 2023-07-21 | 江西昌河汽车有限责任公司 | 一种基于ecc机制的flash异常自修复处理*** |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003233993A (ja) | 2002-02-08 | 2003-08-22 | Matsushita Electric Ind Co Ltd | 不揮発性記憶装置の書き換え方法 |
CN100377119C (zh) * | 2003-06-20 | 2008-03-26 | 深圳市朗科科技有限公司 | 闪存介质中数据保护方法 |
KR100684887B1 (ko) | 2005-02-04 | 2007-02-20 | 삼성전자주식회사 | 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법 |
JP4863749B2 (ja) * | 2006-03-29 | 2012-01-25 | 株式会社日立製作所 | フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム |
US8706950B2 (en) * | 2008-03-01 | 2014-04-22 | Kabushiki Kaisha Toshiba | Memory system |
CN101251788A (zh) * | 2008-03-07 | 2008-08-27 | 威盛电子股份有限公司 | 储存单元管理方法及*** |
CN101241472B (zh) * | 2008-03-07 | 2010-12-22 | 威盛电子股份有限公司 | 映射管理方法及*** |
US8954654B2 (en) * | 2008-06-18 | 2015-02-10 | Super Talent Technology, Corp. | Virtual memory device (VMD) application/driver with dual-level interception for data-type splitting, meta-page grouping, and diversion of temp files to ramdisks for enhanced flash endurance |
US9223642B2 (en) * | 2013-03-15 | 2015-12-29 | Super Talent Technology, Corp. | Green NAND device (GND) driver with DRAM data persistence for enhanced flash endurance and performance |
US8959280B2 (en) * | 2008-06-18 | 2015-02-17 | Super Talent Technology, Corp. | Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear |
TWI393146B (zh) | 2008-10-15 | 2013-04-11 | Genesys Logic Inc | 具有錯誤修正碼容量設定單元之快閃記憶體控制器及其方法 |
JP4439578B1 (ja) * | 2008-12-24 | 2010-03-24 | 株式会社東芝 | 不揮発性半導体メモリドライブ装置および不揮発性半導体メモリドライブ装置のデータ管理方法 |
TWI417884B (zh) | 2009-04-23 | 2013-12-01 | Phison Electronics Corp | 用於快閃記憶體的資料存取方法、儲存系統與控制器 |
TWI435328B (zh) | 2009-07-20 | 2014-04-21 | Silicon Motion Inc | 針對一快閃記憶體的控制器所存取之資料來進行資料型樣管理之方法以及相關之記憶裝置及其控制器 |
CN102449607B (zh) * | 2009-07-22 | 2015-05-27 | 株式会社日立制作所 | 具有多个闪存封装的存储*** |
US8255620B2 (en) * | 2009-08-11 | 2012-08-28 | Texas Memory Systems, Inc. | Secure Flash-based memory system with fast wipe feature |
US8402217B2 (en) * | 2009-09-15 | 2013-03-19 | Marvell International Ltd. | Implementing RAID in solid state memory |
CN101727402B (zh) * | 2009-10-23 | 2012-07-04 | 深圳市江波龙电子有限公司 | 一种非易失性存储器数据的读写控制方法及*** |
US8677203B1 (en) * | 2010-01-11 | 2014-03-18 | Apple Inc. | Redundant data storage schemes for multi-die memory systems |
CN103384877B (zh) * | 2011-06-07 | 2016-03-23 | 株式会社日立制作所 | 包括闪存的存储***和存储控制方法 |
WO2013038442A1 (en) * | 2011-09-13 | 2013-03-21 | Hitachi, Ltd. | Storage system comprising flash memory, and storage control method |
US9164887B2 (en) * | 2011-12-05 | 2015-10-20 | Industrial Technology Research Institute | Power-failure recovery device and method for flash memory |
CN103164345B (zh) * | 2011-12-08 | 2016-04-27 | 光宝科技股份有限公司 | 固态存储装置遭遇断电后的数据存储方法 |
TWI514405B (zh) | 2012-06-08 | 2015-12-21 | Silicon Motion Inc | 修正快閃記憶體之至少一儲存單元之資料位元的方法、控制器及記憶體裝置 |
US9110824B2 (en) | 2012-06-08 | 2015-08-18 | Silicon Motion Inc. | Method, controller, and memory device for correcting data bit(s) of at least one cell of flash memory |
US9405621B2 (en) * | 2012-12-28 | 2016-08-02 | Super Talent Technology, Corp. | Green eMMC device (GeD) controller with DRAM data persistence, data-type splitting, meta-page grouping, and diversion of temp files for enhanced flash endurance |
US20150339058A1 (en) * | 2013-03-26 | 2015-11-26 | Hitachi, Ltd. | Storage system and control method |
JP6055544B2 (ja) * | 2013-06-03 | 2016-12-27 | 株式会社日立製作所 | ストレージ装置およびストレージ装置制御方法 |
US9891989B2 (en) * | 2013-10-11 | 2018-02-13 | Hitachi, Ltd. | Storage apparatus, storage system, and storage apparatus control method for updating stored data stored in nonvolatile memory |
TWI537816B (zh) * | 2014-10-13 | 2016-06-11 | 慧榮科技股份有限公司 | 非揮發性儲存裝置與控制器進行的控制方法 |
-
2014
- 2014-10-13 TW TW103135326A patent/TWI539282B/zh active
-
2015
- 2015-02-05 US US14/614,442 patent/US9430159B2/en active Active
- 2015-02-09 CN CN201510065062.5A patent/CN105988936B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US20160103622A1 (en) | 2016-04-14 |
TW201614504A (en) | 2016-04-16 |
CN105988936A (zh) | 2016-10-05 |
CN105988936B (zh) | 2019-04-12 |
US9430159B2 (en) | 2016-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI537816B (zh) | 非揮發性儲存裝置與控制器進行的控制方法 | |
TWI527037B (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
KR101405741B1 (ko) | 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작 | |
TWI520153B (zh) | 非揮發性記憶體裝置及其操作方法 | |
US9177656B2 (en) | Data writing method, memory storage device and memory controlling circuit unit | |
TWI539282B (zh) | 非揮發性儲存裝置與控制器 | |
TWI479314B (zh) | 系統資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
US8694748B2 (en) | Data merging method for non-volatile memory module, and memory controller and memory storage device using the same | |
US9141530B2 (en) | Data writing method, memory controller and memory storage device | |
TWI585778B (zh) | 非揮發性記憶體裝置的操作方法 | |
US10268546B2 (en) | Non-volatile memory devices and controllers | |
CN108958961B (zh) | 数据储存装置以及数据错误管理方法 | |
US10503433B2 (en) | Memory management method, memory control circuit unit and memory storage device | |
US11625298B2 (en) | Memory block defect detection and management | |
TWI509615B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI501244B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI553477B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI606458B (zh) | 非揮發性記憶體裝置的操作方法 | |
US9830077B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
TWI750811B (zh) | 用於記憶體的資料保護寫入方法、用於記憶體的資料保護讀取方法以及記憶體資料保護系統 | |
KR20200070686A (ko) | 저장 장치 및 그 동작 방법 | |
TWI823649B (zh) | 快閃記憶體控制器的控制方法、快閃記憶體控制器以及電子裝置 | |
TWI673719B (zh) | 在快閃記憶體上提升存取效能之控制方法 | |
US20230186995A1 (en) | Performing data integrity checks to identify defective wordlines | |
TWI667656B (zh) | 解碼方法及相關的快閃記憶體控制器與電子裝置 |