TWI673719B - 在快閃記憶體上提升存取效能之控制方法 - Google Patents
在快閃記憶體上提升存取效能之控制方法 Download PDFInfo
- Publication number
- TWI673719B TWI673719B TW106118570A TW106118570A TWI673719B TW I673719 B TWI673719 B TW I673719B TW 106118570 A TW106118570 A TW 106118570A TW 106118570 A TW106118570 A TW 106118570A TW I673719 B TWI673719 B TW I673719B
- Authority
- TW
- Taiwan
- Prior art keywords
- storage
- flash memory
- data
- control method
- block
- Prior art date
Links
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本發明係提供一種在快閃記憶體上提升存取效能之控制方法,其包含下列步驟。讀取每一複數個儲存區塊之一抹除次數。當此抹除次數超過一抹除上限門檻值時,或當偵測到該錯誤檢查糾正碼內發生錯誤之位元總個數大於等於一偵錯門檻值時,將此儲存區塊轉換為一單層式儲存格式,另外能搭配資料壓縮技術將多餘儲存空間暫時轉換為單層式儲存格式。將轉換為單層式儲存格式之儲存區塊加入所述資料快取區,其中此資料快取區係屬於單層式儲存格式。
Description
本案係關於一種在快閃記憶體上的控制方法,特別是有關於一種可以在快閃記憶體上提升資料存取效能的控制方法。
NAND快閃記憶體(Flash)是固態硬碟(SSD)用來承載、儲存資料的記憶體,固態硬碟可透過控制器(Controller)進行各種運算處理,而這些過程中的任何一個細節,都有可能影響到固態硬碟的產品效能表現、可靠度、穩定度等等。
快閃記憶體在格式上可分為單層式儲存(Single-Level Cell,SLC)、多層式儲存(Multiple-Level Cell,MLC)或是三層式儲存(Triple-Level Cell,TLC),其是以記憶體單元陣列的方式來儲存資料,而記憶體單元是由一浮動閘極電晶體(floating-gate transistor)來進行實作,透過控制浮動閘極電晶體上的電荷個數來設定導通此記憶體單元之所需臨界電壓,進而儲存至少一位元以上的資訊,而當一特定電壓施加於浮動閘極電晶體的控制閘極上時,浮動閘極電晶體的導通狀態便會指示出浮動閘極電晶體中所儲存的一或多個二進位數字。
然而,當記憶體單元無法完全支援所寫入的電壓位準或是電壓位準發生漂移(shift)或沾黏(sticky)的問題時,則此時資料的寫入便會發生錯誤,而發生此種錯誤的區塊便稱之為故障區塊(Bad Block)。
一般來說,故障區塊可區分為兩種,一種是在NAND快閃記憶體的製造過程中而產生的故障區塊,稱為早期故障區塊(Early Bad Block),另一種則
是在使用的過程中,隨著寫入、抹除的操作次數增加,而逐漸產生故障區塊,此種區塊則稱為後期故障區塊(Latter Bad Block)。
更進一步地說明,一故障區塊可根據錯誤檢查糾正碼(Error Detection and Correction code,ECC code)之個數來進行判斷。在NAND快閃記憶體中,每一個頁(page)都會伴隨著一固定長度之ECC code,當寫入一資料至此頁而發生錯誤時,若發生錯誤之位元長度少於固定長度,則此資料便可以利用此ECC code來進行修復,反之,一但大於此固定長度時,則此頁便無法使用ECC code來自我修復,控制器便會將包含此頁之使用區塊判斷為一故障區塊。
現行的故障區塊管理機制是透過利用控制器來達成,此控制器會偵測並標示NAND快閃記憶體中的故障區塊,以提升資料存取的可靠度(Reliability)。仔細地說,控制器的故障區塊管理機制會在第一次啟動NAND快閃記憶體時,建立一故障區塊表(Bad Block Table),爾後,控制器也會在使用的過程中將所判斷出的故障區塊記錄在此表內,以防止任何資料被寫入至此故障區塊表所記錄之故障區塊。
在現行的故障區塊管理機制中,被判斷為故障區塊之使用區塊將永遠沒有再被使用的價值,因此,若能妥善使用該些可能成為故障區塊的使用區塊,使其在成為故障區塊前另可產生額外的功能,將可有效地提升固態硬碟之使用效率,並可避免成本上的浪費。
基於上述目的,本發明係提供一種在快閃記憶體上提升存取效能之控制方法,其包含下列步驟。
讀取每一複數個儲存區塊之一抹除次數。
當此抹除次數超過一抹除上限門檻值時,將此儲存區塊轉換為一單層式儲存格式。
將此轉換為單層式儲存格式之儲存區塊加入所述資料快取區,其中此資料快取區係屬於單層式儲存格式。
較佳地,每一複數個儲存區塊包含複數個資料儲存頁。
較佳地,本發明之控制方法更可包含以下步驟。
讀取每一複數個資料儲存頁所包含之一錯誤檢查糾正碼。
當偵測到錯誤檢查糾正碼內發生錯誤之位元總個數大於等於一偵錯門檻值時,將此儲存區塊轉換為所述單層式儲存格式。
較佳地,此資料快取區係由快閃記憶體之一多餘儲存空間轉換而來。
較佳地,此多餘儲存空間是由所述控制單元對一寫入至快閃記憶體之資料執行一資料縮減技術而形成。
10‧‧‧快閃記憶體
11‧‧‧控制單元
12‧‧‧資料快取區
13‧‧‧儲存區塊
131‧‧‧資料儲存頁
14‧‧‧多餘儲存空間
15‧‧‧連接器
21‧‧‧主機系統
211‧‧‧電腦
2111‧‧‧中央處理器
2112‧‧‧動態隨機存取記憶體
2113‧‧‧系統匯流排
2114‧‧‧資料傳輸介面
212‧‧‧輸出/輸入裝置
22‧‧‧記憶體儲存裝置
221‧‧‧控制器
222‧‧‧記憶體晶片
S11~S13、S21~S22‧‧‧流程步驟
第1圖係為本發明實施例所繪示之主機系統與記憶體儲存裝置。
第2圖係為本發明所繪示的快閃記憶體與主機系統。
第3圖係為本發明之在快閃記憶體上提升存取效能之控制方法之第一步驟流程圖。
第4圖係為本發明之在快閃記憶體上提升存取效能之控制方法之第二步驟流程圖。
體現本案特徵與優點的一些典型實施例將在後段的說明中詳細敘述。應理解的是本案能夠在不同的態樣上具有各種的變化,其皆不脫離本案的範圍,且其中的說明及圖示在本質上係當作說明之用,而非用於限制本案。
請參閱第1圖,其係為本發明實施例所繪示之主機系統與記憶體儲存裝置。一般來說,記憶體儲存裝置22可包含一控制器221與記憶體晶片222,其
中此記憶體晶片222通常為一非揮發性記憶體,且此記憶體儲存裝置22係與一主機系統21共同使用。主機系統21可以將一資料寫入至此記憶體儲存裝置22,或是從記憶體儲存裝置22讀取此資料。而此記憶體儲存裝置22通常可為一隨身碟、記憶卡或是固態硬碟(Solid State Drive,SSD)等的可複寫式非揮發性記憶體儲存裝置。
如圖所示,本發明之主機系統21包含一電腦211與一輸出/輸入裝置212,其中此電腦211可包含一中央處理器2111、一動態隨機存取記憶體2112(Dynamic Random Access Memory,DRAM)、一系統匯流排2113及一資料傳輸介面2114,輸出/輸入裝置212可包含滑鼠、鍵盤、螢幕、印表機、麥克風及喇叭等。然而,可以理解的是,本發明之輸出/輸入裝置212並不侷限於上述之裝置,更可包含其他裝置。系統匯流排2113可連接中央處理器2111、一動態隨機存取記憶體2112及資料傳輸介面2114,可用以降低成本和促進模組化。
在本發明之實施例中,記憶體儲存裝置22係透過資料傳輸介面2114與電腦211進行連接。更進一步地說明,電腦211可透過中央處理器2111、動態隨機存取記憶體2112及輸出/輸入裝置212之操作,將資料寫入至記憶體儲存裝置22,或者是從記憶體儲存裝置22讀取資料,其中此資料傳輸介面2114可包含SCSI(Small Computer System Interface)、ATA(Advanced Technology Attachment)、SAS(Serial Attached SCSI)或SATA(Serial Advanced Technology Attachment)介面。
請參閱第2圖,其系為本發明所繪示的快閃記憶體與主機系統,並請一併參閱第1圖所繪示之主機系統及記憶體儲存裝置。在本實施例中,快閃記憶體10即為第1圖中之記憶體儲存裝置22,而此快閃記憶體10係透過連接器15與主機系統21進行連接,其中此連接器15內之傳輸介面係包含第1圖內之資料傳輸介面2114,而此連接器15本身可以為一SATA連接器、SAS連接器、iSCSI
連接器、USB連接器或M.2連接器,而快閃記憶體10本身則可為一多層式儲存快閃記憶體或一三層式儲存快閃記憶體。
在本實施例中,快閃記憶體10中可包含一資料快取區12、一控制單元11及複數個儲存區塊13,此控制單元11係用以執行以硬體型式或是韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統21的指令在儲存區塊13中進行資料的寫入、讀取與抹除等操作。儲存區塊13係用以儲存來自主機所寫入之資料,且其係控制單元11在快閃記憶體10中進行資料抹除時之一最小單位,在本實施例中,此儲存區塊13之格式可為一多層式儲存格式或一三層式儲存格式,即,此儲存區塊13本身可屬於一多層式儲存快閃記憶體或是一三層式儲存快閃記憶體。
在本發明中,資料快取區12係屬於一單層式儲存格式,其係由前述之多層式儲存格式或三層式儲存格式轉換而來。更詳細地說明,在本實施例中,資料快取區12原屬於儲存區塊13之一部份,其係透過韌體之執行將多層式儲存快閃記憶體或三層式儲存快閃記憶體模擬成單層式儲存格式之寫入方式,進而作為快取之用。此外,在本實施例中,儲存區塊13及此資料快取區12係電性連接至控制單元11,其中利用韌體模擬出單層式儲存格式之寫入方式為相關領域中既有之習知技藝,故在此不加以贅述。
請參閱第3圖及第4圖,其係為本發明之在快閃記憶體上提升存取效能之控制方法之第一步驟流程圖及第二步驟流程圖,如第3圖所示,在此快閃記憶體上提升存取效能之控制方法可包含下列步驟。
步驟S11讀取每一複數個儲存區塊之一抹除次數。
步驟S12係當此抹除次數超過一抹除上限門檻值時,將此儲存區塊轉換為一單層式儲存格式,其中當此儲存區塊屬於一多層式儲存快閃記憶體,則
此抹除上限門檻值可以為3000次,若屬於一三層式儲存快閃記憶體,則抹除上限門檻值則可以為500次。
步驟S13將轉換為單層式儲存格式之儲存區塊加入所述資料快取區,其中此資料快取區係屬於單層式儲存格式。
上述之步驟S11~S13可由控制單元進行操作。關於上述之儲存區塊及資料快取區,其可以屬於同一個記憶體晶粒(die)或屬於不同的記憶體晶粒,每一儲存區塊可分別包含複數個資料儲存頁。舉例來說,一儲存區塊可以由128個資料儲存頁所組成,然而,可以理解的是,本發明並不以此為限,儲存區塊也可以由64個資料儲存頁或是256個資料儲存頁所組成,其中每一個資料儲存頁可包含使用者資料(user data)位元區與冗餘(redundancy)位元區,前者用以儲存使用者之資料,後者用以儲存系統資料,如一錯誤檢查糾正碼(Error Checking & Correction Code)。
此外,屬於同一個儲存區塊的資料儲存頁可被獨立地寫入資料,並可在同一時間抹除同一儲存區塊上所有資料儲存頁上的資料。更詳細地說,資料儲存頁為控制單元進行寫入及讀取時之一最小單位。
在一較佳實施例中,本發明之控制方法更可包含以下步驟。
步驟S21係讀取每一複數個資料儲存頁所包含之一錯誤檢查糾正碼。
步驟S22係當偵測到所述錯誤檢查糾正碼內發生錯誤之位元總個數大於等於一偵錯門檻值時,將此儲存區塊轉換為單層式儲存格式,其中此偵錯門檻值之大小可由使用者自行制定。
在一實施例中,資料快取區可由快閃記憶體之一多餘儲存空間轉換而來,其中此多餘儲存空間是由控制單元對一寫入至快閃記憶體之資料執行一資料縮減技術而形成。
進一步地說明,此資料縮減技術係利用資料熵(Data Entropy)的概念來達到更高的效能。當利用此資料縮減技術將資料傳送到快閃記憶體時,它會使用刪除重複資料技術、壓縮技術或資料異化(Data Differencing)技術等來重新安排資訊,這會讓整體資訊占用儲存區塊上更少的儲存位元。而當資料從快閃記憶體被讀取後,資料縮減技術會藉由設計將原始的內容全部復原到主系統內,故此技術亦稱為無損耗式(Loss-less)資料縮減技術。
當使用此資料縮減技術來傳送資料到快閃記憶體時,此時實際所寫入至儲存區塊之所需大小必小於此資料之實際大小,而所多出之空間即為本發明之多餘儲存空間。舉例來說,若此快閃記憶體為一多層式儲存快閃記憶體,且此快閃記憶體之儲存區塊之總容量大小為128GB。當一實際大小為128GB的資料透過資料縮減技術寫入至此儲存區塊之後,其所實際佔據之空間大小為120GB,則此時所閒置出來之8GB即屬於一多餘儲存空間,使用者可將此多餘儲存空間之格式轉換為使用壽命較長且寫入速度較快的單層式儲存格式,並將其作為此快閃記憶體上之資料快取區,進而達到增加此快閃記憶體之存取效率之功效。
綜合以上所述,本發明之控制方法可以妥善使用可能成為故障區塊的使用區塊,其利用儲存區塊的抹除次數及資料儲存頁之錯誤檢查糾正碼來作為轉換成單層式儲存格式之依據,能夠將可能成為故障之儲存區塊轉換為快取區塊,進而有效地增加整體快閃記憶體之存取效率。
本案得由熟習此技術之人士任施匠思而為諸般修飾,然皆不脫如附申請專利範圍所欲保護者。
Claims (3)
- 一種在快閃記憶體上提升存取效能之控制方法,其中該快閃記憶體係屬於一多層式儲存快閃記憶體或一三層式儲存快閃記憶體,且該快閃記憶體包含一控制單元、一資料快取區及複數個儲存區塊,該控制方法包含:讀取每一該複數個儲存區塊之一抹除次數;當該抹除次數超過一抹除上限門檻值時,將該儲存區塊轉換為一單層式儲存格式;以及將轉換為該單層式儲存格式之該儲存區塊加入該資料快取區,其中該資料快取區係屬於該單層式儲存格式;其中,每一該儲存區塊包含複數個資料儲存頁,該控制方法更包含:讀取每一該資料儲存頁所包含之一錯誤檢查糾正碼;以及當偵測到該錯誤檢查糾正碼內發生錯誤之位元總個數大於等於一偵錯門檻值時,將該儲存區塊轉換為該單層式儲存格式。
- 如申請專利範圍第1項所述之控制方法,其中該資料快取區係由該快閃記憶體之一多餘儲存空間轉換而來。
- 如申請專利範圍第2項所述之控制方法,其中該多餘儲存空間是由該控制單元對一寫入至該快閃記憶體之資料執行一資料縮減技術而形成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106118570A TWI673719B (zh) | 2017-06-05 | 2017-06-05 | 在快閃記憶體上提升存取效能之控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106118570A TWI673719B (zh) | 2017-06-05 | 2017-06-05 | 在快閃記憶體上提升存取效能之控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201903782A TW201903782A (zh) | 2019-01-16 |
TWI673719B true TWI673719B (zh) | 2019-10-01 |
Family
ID=65803497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106118570A TWI673719B (zh) | 2017-06-05 | 2017-06-05 | 在快閃記憶體上提升存取效能之控制方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI673719B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140006688A1 (en) * | 2012-07-02 | 2014-01-02 | Super Talent Technology, Corp. | Endurance and Retention Flash Controller with Programmable Binary-Levels-Per-Cell Bits Identifying Pages or Blocks as having Triple, Multi, or Single-Level Flash-Memory Cells |
US20160077960A1 (en) * | 2014-09-17 | 2016-03-17 | Storart Technology Co.,Ltd. | Adaptive compression data storing method for non-volatile memories and system using the same |
US20170075812A1 (en) * | 2015-09-16 | 2017-03-16 | Intel Corporation | Technologies for managing a dynamic read cache of a solid state drive |
-
2017
- 2017-06-05 TW TW106118570A patent/TWI673719B/zh active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140006688A1 (en) * | 2012-07-02 | 2014-01-02 | Super Talent Technology, Corp. | Endurance and Retention Flash Controller with Programmable Binary-Levels-Per-Cell Bits Identifying Pages or Blocks as having Triple, Multi, or Single-Level Flash-Memory Cells |
US20160077960A1 (en) * | 2014-09-17 | 2016-03-17 | Storart Technology Co.,Ltd. | Adaptive compression data storing method for non-volatile memories and system using the same |
US20170075812A1 (en) * | 2015-09-16 | 2017-03-16 | Intel Corporation | Technologies for managing a dynamic read cache of a solid state drive |
Also Published As
Publication number | Publication date |
---|---|
TW201903782A (zh) | 2019-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5585919B2 (ja) | 電源遮断管理 | |
US8788876B2 (en) | Stripe-based memory operation | |
KR101405741B1 (ko) | 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작 | |
KR101491943B1 (ko) | 트랜잭션 로그 복구 | |
KR102549605B1 (ko) | Raid 스토리지 장치의 리커버리 방법 | |
US8417879B2 (en) | Method for suppressing errors, and associated memory device and controller thereof | |
US20200089566A1 (en) | Apparatus for diagnosing memory system and operating method thereof | |
US10503433B2 (en) | Memory management method, memory control circuit unit and memory storage device | |
CN112035060B (zh) | 一种存储介质的错误检测方法、***及存储*** | |
TWI539282B (zh) | 非揮發性儲存裝置與控制器 | |
US9778862B2 (en) | Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus | |
TWI501244B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN113590503B (zh) | 一种非挥发性记忆体存储器的垃圾回收方法与垃圾回收*** | |
CN113590502B (zh) | 一种非挥发性记忆体存储设备的垃圾回收方法与垃圾回收*** | |
CN112447238A (zh) | 存储器控制器及其操作方法 | |
TWI655541B (zh) | 延長固態硬碟壽命之方法 | |
CN111625187B (zh) | 一种存储器及其控制方法与存储*** | |
US11294598B2 (en) | Storage devices having minimum write sizes of data | |
US10824340B2 (en) | Method for managing association relationship of physical units between storage area and temporary area, memory control circuit unit, and memory storage apparatus | |
JP5908106B2 (ja) | 妥当性マスクを記憶する装置および方法ならびに操作装置 | |
TWI673719B (zh) | 在快閃記憶體上提升存取效能之控制方法 | |
CN111309642B (zh) | 一种存储器及其控制方法与存储*** | |
US9830077B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
KR20220077689A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
CN108984109A (zh) | 在闪存上提升存取效能的控制方法 |