TWI520140B - 資料儲存裝置以及快閃記憶體控制方法 - Google Patents
資料儲存裝置以及快閃記憶體控制方法 Download PDFInfo
- Publication number
- TWI520140B TWI520140B TW103138007A TW103138007A TWI520140B TW I520140 B TWI520140 B TW I520140B TW 103138007 A TW103138007 A TW 103138007A TW 103138007 A TW103138007 A TW 103138007A TW I520140 B TWI520140 B TW I520140B
- Authority
- TW
- Taiwan
- Prior art keywords
- flash memory
- control unit
- spot check
- block
- blocks
- Prior art date
Links
Classifications
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- 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
- 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
- G11C2029/0411—Online error correction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Description
本發明係有關於資料儲存裝置,特別有關於快閃記憶體(flash memory)控制技術。
現今資料儲存裝置常以快閃記憶體(flash memory)為儲存媒體,常見型式包括非及閘型快閃記憶體(即NAND flash)…等。
快閃記憶體常用作記憶卡(memory card)、通用序列匯流排閃存裝置(USB flash device)、固態硬碟(SSD)...等產品。另外有一種應用是採多晶片封裝、將快閃記憶體與其控制器包裝在一起-稱為嵌入式快閃記憶體模組(如eMMC)。
快閃記憶體的實體空間通常包括複數個區塊(blocks)。各區塊包括複數頁(pages)。一區塊需要完整抹除(erase)後方能被重新配置。快閃記憶體之資料更新並非對同樣儲存空間作複寫,而是將更新資料儲存在閒置空間,至於舊儲存內容則轉為無效。快閃記憶體如此操作特性使得其儲存空間之管理明顯複雜、且不同於其他類型的儲存記憶元件。針對快閃記憶體而特別設計的快閃記憶體控制器相應產生。
特別是,隨著製程技術發展,快閃記憶體的空間密度遽增,相對的,數據狀態保持(data retention)更易受到外
在環境影響。例如,高溫、或低溫環境都容易使得數據轉態,超過資料檢查與校錯(ecc)程序所能應付的錯誤位元量(即錯誤位元量超過一無力校錯量),數據將永久遺失。
針對快閃記憶體所實現的資料儲存裝置,本發明揭露一種自發抽查與維護快閃記憶體的程序,避免久未翻新的區塊所儲存之資料失效。如此一來,快閃記憶體資料可靠度提升。
根據本發明一種實施方式所提供的資料儲存裝置包括:一快閃記憶體;以及一控制單元。該控制單元耦接於一主機與該快閃記憶體之間,包括根據該主機之指示操作該快閃記憶體。該控制單元更對操作於該快閃記憶體的指令作指令統計,並基於指令統計的結果觸發對該快閃記憶體作抽查與維護。在一種實施方式中,該控制單元係將不通過抽查的危險區塊之資料完整搬移至該快閃記憶體之複數區塊中一閒置區塊。
根據本發明另外一種實施方式所揭露的快閃記憶體控制方法包括以下步驟:於操作一快閃記憶體時更對操作於該快閃記憶體的指令作指令統計;並且,基於上述指令統計的結果觸發對該快閃記憶體作抽查與維護。一種實施方式係更將不通過抽查的危險區塊之資料完整搬移至該快閃記憶體之複數區塊中一閒置區塊。
下文特舉實施例,並配合所附圖示,詳細說明本發明內容。
100‧‧‧資料儲存裝置
102‧‧‧快閃記憶體
104‧‧‧控制單元
106‧‧‧主機
110‧‧‧系統內程式區塊
112‧‧‧閒置區塊
114‧‧‧資料區塊集合
120‧‧‧微控制器
122‧‧‧隨機存取記憶體
124‧‧‧唯讀記憶體
BLK_ED‧‧‧危險區塊
BLK_S‧‧‧用以完整儲存BLK_ED內容的閒置區塊
C_BLK‧‧‧資料接收區塊
S202…S210‧‧‧步驟
第1圖圖解根據本發明一種實施方式所實現的一資料儲存裝置100;以及第2圖,本案流程圖。
以下敘述列舉本發明的多種實施例。以下敘述介紹本發明的基本概念,且並非意圖限制本發明內容。實際發明範圍應依照申請專利範圍界定之。
第1圖圖解根據本發明一種實施方式所實現的一資料儲存裝置100,其中包括一快閃記憶體102以及一控制單元104。控制單元104耦接於一主機106與該快閃記憶體102之間。
快閃記憶體102之空間係規劃如下:系統內程式區塊110、閒置區塊112、資料接收區塊C_BLK、以及資料區塊集合114。系統內程式區塊110用於儲存系統內程式(in-system programs)。資料接收區塊C_BLK係由閒置區塊112供應,不再用作接收資料後將推入資料區塊集合114。
控制單元104包括一微控制器120、一隨機存取記憶體122(如SRAM)以及一唯讀記憶體124。唯讀記憶體124存有唯讀程式碼(如,ROM code)。微控制器120係藉由執行該唯讀記憶體124所載之唯讀程式碼或/以及該快閃記憶體102系統內程式區塊110所載之系統內程式運作,使該控制單元104除了根據主機106所下達的指示操作該快閃記憶體102,更對操作於該快閃記憶體102的指令作指令統計,並基於指令統計的結果觸發對該快閃記憶體102作抽查與維護。如此一來,控制單元104
將自發抽查與維護該快閃記憶體102,將明顯解決久未翻新的區塊所儲存之資料失效問題。快閃記憶體資料可靠度提升。隨機存取記憶體122之空間可用來作指令統計之統計資料暫存。此外,統計的指令不限定為主機106下達的指令,由微控制器120所執行的程式所主導之快閃記憶體102操作指令亦可為指令統計目標。
在一種實施方式中,控制單元104係將不通過抽查的危險區塊之資料完整搬移至該快閃記憶體102之複數區塊中一閒置區塊。根據一種實施方式,不通過抽查的該危險區塊中,至少一頁經錯誤檢查與校錯運算(ecc)所得之錯誤位元量雖未達一無力校錯量、但已超過一臨界位元量。
例如,倘若資料區塊集合114經抽查有危險區塊BLK_ED存在(即,存有「瀕損頁」,該「瀕損頁」經錯誤檢查與校錯運算(ecc)所得之錯誤位元量雖未達一無力校錯量、但已超過一臨界位元量),則控制單元104會將不通過抽查的危險區塊BLK_ED之資料完整搬移至選自該快閃記憶體102之閒置區塊112的一區塊BLK_S。如此區塊資料完整搬移動作更可達到「平均抹寫(wear leveling)」的目的。在一種實施方式中,該控制單元104單次抽查係對該快閃記憶體102之複數區塊之一的局部作錯誤檢查與校錯運算,例如,係抽查該快閃記憶體102之該等區塊中抹除計數(erase count)較低之區塊之一。如此一來,久未變動的區塊數據會被控制單元104自發抽查,即便發生環境所致之數據轉態、導致瀕臨損毀,也可藉控制單元104如此自發的抽查與維護及時處置之。
控制單元104所統計的指令可為施行於該快閃記憶體102上的讀取指令(read command)、寫入指令(write command)、抹除指令(erase command)、多區塊資料整合指令(garbage collection command)…等。
第2圖根據本發明一種實施方式以流程圖圖解快閃記憶體102的控制程序。資料儲存裝置100的電源啟動後,控制單元104包括根據主機106指示操作該快閃記憶體102。所揭露技術更以步驟S202對操作於該快閃記憶體102上的指令作指令統計。統計的指令不限定為主機106下達的指令,由微控制器120所執行的程式所主導之快閃記憶體102操作指令亦可為指令統計目標。第2圖實施例統計的指令為讀取指令、或/以及寫入指令、或/以及抹除指令、或/以及多區塊資料整合指令。若步驟S204判斷出每有n1筆讀取指令發生、或每有n2筆寫入指令發生、或每有n3筆抹除指令發生、或每有n4筆多區塊資料整合指令,流程進行步驟S206,抽查該快閃記憶體102內的資料。一種實施方式係對該快閃記憶體102之複數區塊之一的局部作錯誤檢查與校錯運算。步驟S208判斷抽查資料是否瀕臨損毀(例如,是否有抽查頁經錯誤檢查與校錯運算所得之錯誤位元量雖未達一無力校錯量、但已超過一臨界位元量)。倘若已有抽查資料瀕臨損毀,流程進行步驟S210,將抽查出的危險區塊之資料完整搬移至該快閃記憶體102之閒置區塊112之一。倘若步驟S208沒有發現瀕臨損毀的抽查資料,流程回到步驟S202。此外,倘若步驟S204所監控的各種狀況都不成立,流程同樣回到步驟S202。
一種實施方式係令n4為1,即每發生多區塊資料整合指令(garbage collection command)即對快閃記憶體102作抽查與維護。
基於以上技術內容,本案更涉及快閃記憶體的控制方法,不限定以特定架構的控制單元實現。此外,其他採用同樣概念控制一快閃記憶體的技術都屬於本案所欲保護的範圍。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100‧‧‧資料儲存裝置
102‧‧‧快閃記憶體
104‧‧‧控制單元
106‧‧‧主機
110‧‧‧系統內程式區塊
112‧‧‧閒置區塊
114‧‧‧資料區塊集合
120‧‧‧微控制器
122‧‧‧隨機存取記憶體
124‧‧‧唯讀記憶體
BLK_ED‧‧‧危險區塊
BLK_S‧‧‧用以完整儲存BLK_ED內容的閒置區塊
C_BLK‧‧‧資料接收區塊
Claims (14)
- 一種資料儲存裝置,包括:一快閃記憶體;以及一控制單元,耦接於一主機與該快閃記憶體之間,並根據該主機之指示操作該快閃記憶體;其中:該控制單元更對操作於該快閃記憶體的指令作指令統計,並基於指令統計的結果觸發對該快閃記憶體作抽查與維護;該控制單元係將不通過抽查的危險區塊之資料完整搬移至該快閃記憶體之複數區塊中一閒置區塊;該控制單元單次抽查係對該快閃記憶體之複數區塊之一的局部作錯誤檢查與校錯運算;且該控制單元係抽查該快閃記憶體之該等區塊中抹除計數較低之區塊之一。
- 如申請專利範圍第1項所述之資料儲存裝置,其中:不通過抽查的該危險區塊中,至少一頁經錯誤檢查與校錯運算所得之錯誤位元量雖未達一無力校錯量、但已超過一臨界位元量。
- 如申請專利範圍第1項所述之資料儲存裝置,其中:該控制單元於對該快閃記憶體每完成n1筆讀取指令後,觸發對該快閃記憶體作抽查與維護;且n1為數字。
- 如申請專利範圍第1項所述之資料儲存裝置,其中: 該控制單元於對該快閃記憶體每完成n2筆寫入指令後,觸發對該快閃記憶體作抽查與維護;且n2為數字。
- 如申請專利範圍第1項所述之資料儲存裝置,其中:該控制單元於對該快閃記憶體每完成n3筆抹除指令後,觸發對該快閃記憶體作抽查與維護;且n3為數字。
- 如申請專利範圍第1項所述之資料儲存裝置,其中:該控制單元於對該快閃記憶體每完成n4筆多區塊資料整合指令後,觸發對該快閃記憶體作抽查與維護;且n4為數字。
- 如申請專利範圍第6項所述之資料儲存裝置,其中n4為1。
- 一種快閃記憶體控制方法,包括:於操作一快閃記憶體時更對操作於該快閃記憶體的指令作指令統計;基於上述指令統計的結果觸發對該快閃記憶體作抽查與維護;以及將不通過抽查的危險區塊之資料完整搬移至該快閃記憶體之複數區塊中一閒置區塊;其中,單次抽查係對該快閃記憶體之複數區塊之一的局部作錯誤檢查與校錯運算,且抽查係施作在該快閃記憶體之該等區塊中抹除計數較低之區塊之一。
- 如申請專利範圍第8項所述之快閃記憶體控制方法,其中: 不通過抽查的該危險區塊中,至少一頁經錯誤檢查與校錯運算所得之錯誤位元量雖未達一無力校錯量、但已超過一臨界位元量。
- 如申請專利範圍第8項所述之快閃記憶體控制方法,更包括:於對該快閃記憶體每完成n1筆讀取指令後,觸發對該快閃記憶體作抽查與維護;其中,n1為數字。
- 如申請專利範圍第8項所述之快閃記憶體控制方法,更包括:於對該快閃記憶體每完成n2筆寫入指令後,觸發對該快閃記憶體作抽查與維護;其中,n2為數字。
- 如申請專利範圍第8項所述之快閃記憶體控制方法,更包括:於對該快閃記憶體每完成n3筆抹除指令後,觸發對該快閃記憶體作抽查與維護;其中,n3為數字。
- 如申請專利範圍第8項所述之快閃記憶體控制方法,更包括:於對該快閃記憶體每完成n4筆多區塊資料整合指令後,觸發對該快閃記憶體作抽查與維護,其中,n4為數字。
- 如申請專利範圍第13項所述之快閃記憶體控制方法,其中 n4為1。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103138007A TWI520140B (zh) | 2014-11-03 | 2014-11-03 | 資料儲存裝置以及快閃記憶體控制方法 |
CN201410758930.3A CN105740161A (zh) | 2014-11-03 | 2014-12-11 | 数据储存装置以及快闪存储器控制方法 |
US14/920,386 US20160124806A1 (en) | 2014-11-03 | 2015-10-22 | Data Storage Device and Flash Memory Control Method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103138007A TWI520140B (zh) | 2014-11-03 | 2014-11-03 | 資料儲存裝置以及快閃記憶體控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI520140B true TWI520140B (zh) | 2016-02-01 |
TW201618113A TW201618113A (zh) | 2016-05-16 |
Family
ID=55810284
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103138007A TWI520140B (zh) | 2014-11-03 | 2014-11-03 | 資料儲存裝置以及快閃記憶體控制方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20160124806A1 (zh) |
CN (1) | CN105740161A (zh) |
TW (1) | TWI520140B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10025526B2 (en) | 2016-03-09 | 2018-07-17 | Silicon Motion, Inc. | Storage device and data moving method for storage device |
TWI632458B (zh) * | 2016-03-09 | 2018-08-11 | 慧榮科技股份有限公司 | 儲存裝置及其控制單元、可用於儲存裝置的資料搬移方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10042701B2 (en) * | 2015-09-29 | 2018-08-07 | Apple Inc. | Storing address of spare in failed memory location |
CN106980473B (zh) * | 2017-03-30 | 2020-02-18 | 四川长虹电器股份有限公司 | 提升eeprom读写可靠性及速率的方法 |
CN110888591B (zh) * | 2018-09-07 | 2023-05-30 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
CN114327240A (zh) * | 2020-09-29 | 2022-04-12 | 慧荣科技股份有限公司 | 计算机可读存储介质、闪存存储器的数据存储方法及装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5265883B2 (ja) * | 2007-05-24 | 2013-08-14 | 株式会社メガチップス | メモリアクセスシステム |
US9189385B2 (en) * | 2010-03-22 | 2015-11-17 | Seagate Technology Llc | Scalable data structures for control and management of non-volatile storage |
CN103329103B (zh) * | 2010-10-27 | 2017-04-05 | 希捷科技有限公司 | 使用用于基于闪存的数据存储的自适应ecc技术的方法和设备 |
US20140059278A1 (en) * | 2011-11-14 | 2014-02-27 | Lsi Corporation | Storage device firmware and manufacturing software |
US9141533B2 (en) * | 2012-05-31 | 2015-09-22 | Silicon Motion, Inc. | Data storage device and flash memory control method for performing garbage collection |
US9009566B2 (en) * | 2012-09-12 | 2015-04-14 | Macronix International Co., Ltd. | Outputting information of ECC corrected bits |
US9013922B2 (en) * | 2012-09-20 | 2015-04-21 | Silicon Motion, Inc. | Data storage device and flash memory control method thereof |
US9329991B2 (en) * | 2013-01-22 | 2016-05-03 | Seagate Technology Llc | Translation layer partitioned between host and controller |
US20160027521A1 (en) * | 2014-07-22 | 2016-01-28 | NXGN Data, Inc. | Method of flash channel calibration with multiple luts for adaptive multiple-read |
-
2014
- 2014-11-03 TW TW103138007A patent/TWI520140B/zh active
- 2014-12-11 CN CN201410758930.3A patent/CN105740161A/zh active Pending
-
2015
- 2015-10-22 US US14/920,386 patent/US20160124806A1/en not_active Abandoned
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10025526B2 (en) | 2016-03-09 | 2018-07-17 | Silicon Motion, Inc. | Storage device and data moving method for storage device |
TWI632458B (zh) * | 2016-03-09 | 2018-08-11 | 慧榮科技股份有限公司 | 儲存裝置及其控制單元、可用於儲存裝置的資料搬移方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105740161A (zh) | 2016-07-06 |
TW201618113A (zh) | 2016-05-16 |
US20160124806A1 (en) | 2016-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI520140B (zh) | 資料儲存裝置以及快閃記憶體控制方法 | |
TWI522804B (zh) | 快閃記憶體控制器以及資料儲存裝置以及快閃記憶體控制方法 | |
TWI569273B (zh) | 非揮發性記憶體裝置讀取干擾管理方法 | |
US8914702B2 (en) | Bit error repair method and information processing apparatus | |
US10474573B2 (en) | Method for managing flash memory module and associated flash memory controller and electronic device | |
CN101174473A (zh) | 在包括闪存的半导体存储装置中提供块状态信息的方法 | |
US8285954B2 (en) | Memory system managing a plurality of logs | |
US8407559B2 (en) | Monitoring memory | |
US8495281B2 (en) | Intra-block memory wear leveling | |
TW201525691A (zh) | 資料儲存裝置以及快閃記憶體控制方法 | |
TWI652577B (zh) | 資料儲存裝置及非揮發式記憶體操作方法 | |
JP2008192267A (ja) | ビットエラーの予防方法、情報処理装置 | |
US20150178001A1 (en) | Data Storage Device and Data Maintenance Method Thereof | |
US10642731B2 (en) | Memory management method and storage controller | |
US9368226B2 (en) | Data storage device and method for restricting access thereof | |
US10254979B1 (en) | Relocating or aborting a block of data by a host, based on media policies managed by a storage device | |
US20160019142A1 (en) | Method of collecting garbage blocks in a solid state drive | |
TWI608350B (zh) | 儲存裝置及其控制單元、可用於儲存裝置的資料搬移方 法 | |
US9804796B1 (en) | Emergency mode operation of a solid state drive | |
CN104765695A (zh) | 一种nand flash坏块管理系统及方法 | |
JP2016522513A (ja) | オンデマンドブロック管理 | |
US11720278B2 (en) | Data removal marking in a memory device | |
KR100871700B1 (ko) | 불휘발성 메모리 장치에서 전하 손실에 기인한 오류 데이터정정 방법 | |
US20230143181A1 (en) | Write buffer control in managed memory system | |
TW201608475A (zh) | 非揮發性記憶體裝置之損耗平均管理方法 |