TW201435730A - 快閃記憶體之資料搬移方法 - Google Patents
快閃記憶體之資料搬移方法 Download PDFInfo
- Publication number
- TW201435730A TW201435730A TW102108366A TW102108366A TW201435730A TW 201435730 A TW201435730 A TW 201435730A TW 102108366 A TW102108366 A TW 102108366A TW 102108366 A TW102108366 A TW 102108366A TW 201435730 A TW201435730 A TW 201435730A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- flash memory
- unit
- moved
- moving
- Prior art date
Links
Landscapes
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一種快閃記憶體之資料搬移方法,用以於儲存裝置之快閃記憶體區塊搬移資料。所述快閃記憶體區塊包含複數個快閃記憶體分頁,所述之資料搬移方法包含下列步驟:判斷資料寫入作業是否為內部資料搬移,若是,則進行下一步驟;判斷一待搬移資料是否位於由單位元快閃記憶體單元組成之一記憶體緩衝區,若是,則進行下列步驟;自記憶體緩衝區讀取待搬移資料;忽略資料除錯程序,將待搬移資料進行一打亂程序之處理;將經過打亂處理後之資料回存該快閃記憶體區塊之一快閃記憶體分頁。
Description
本發明係關於一種快閃記憶體之資料搬移方法,特別是一種用以於快閃記憶體區塊的內部搬移資料之方法。
快閃記憶體(flash memory)具有體積小、重量輕、省電、且資料不隨供應電源斷電而消失之非揮發性(non-volatile)的優點,因此以快閃記憶體為儲存元件之固態儲存裝置係被大量地採用。而舉凡作為多媒體的儲存媒介,或是維持電子系統的正常操作皆有其應用。快閃記憶體目前正處於一個需求量逐年增大,成本與售價卻逐年降低的正循環,已為半導體產業中相當重要的產品之一。
而隨著影音規格的提高,消費者對於快閃記憶體的容量規格也隨之提升。為了因應這樣的趨勢,快閃記憶體單元(flash memory cell)的設計,由最原始的單位元快閃記憶體單元(single-layer cell,SLC)設計,亦即每一快閃記憶體單元儲存一個位元的設計,演進為二位元快閃記憶體單元(multi-layer cell,MLC),甚至是三位元快閃記憶體單元(three-layer cell,TLC)之多位元設計。如此同樣的快閃記憶體單元個數下,可以儲存的資料位元數即能大符地提升。然而相對地,多位元之快閃記憶體單元之設計伴隨而來的,是資料保存(data retention)時間的下降、可重覆寫入次數的降低、以及處理多位元資料帶來的速度犧牲。
第1圖為習知之快閃記憶體存取之電路方塊圖100。記憶體緩衝區130可以是快閃記憶體內部之某一記憶體分頁,或者快閃記憶體外部之一動態隨機存取記憶體(dynamic random-access-memory,DRAM)或靜態隨機存取記憶體(static random-access-memory,SRAM)。在習知技術中,為了降低讀取記憶體緩衝區130或是快閃記憶體區塊可能發生的錯誤,並且增加資料保存的時間,快閃記憶體區塊160以及記憶體緩衝區130之間,
需經過錯誤檢查及校正單元140以及打亂程序單元150,以分別進行一資料除錯之編碼及解碼程序(error checking & correcting,ECC),以及一打亂程序(scrambling)。打亂程序係由於目前半導體製程的進步,使得快閃記憶體單元之間的物理距離愈來愈小,然而當相鄰位址,亦即在物理結構上係為相鄰的快閃記憶體單元存放相同的資料時,容易造成資料錯誤率上升而最後使得錯誤更正碼(error correction code)已無法修正的情形,而且資料保存時間亦隨之下降。因此,資料在寫入時,必須經過打亂的程序,使相鄰資料的變化機率增加,以減少上述的負面影響。打亂程序的實現可分為加法式(additive)以及乘法式(multiplicative)的實現方式。加法式的打亂程序係利用一種子碼(seed code)輸入線性回授位移暫存器(linear feedback shift register),其輸出具有隨機性質,並將之與原始資料逐筆進行加法之運算以產生打亂程序之結果。而乘法式的打亂程序則利用輸入之原始資料的延遲回授,與輸入資料進行相加之運算以產生打亂程序之結果,此二者皆為本領域具有通常知識者所習之,在此不另贅述。然而以電路複雜度而言,錯誤檢查及校正技術之相關電路,亦即錯誤檢查及校正單元140較為複雜,因此容易成為快閃記憶體讀寫速度的瓶頸。
例如在先進製程中,三位元快閃記憶體單元之設計係利用OBP(on-board programming)的技術,即當進行對快閃記憶體寫入資料時,會先將資料寫入單位元快閃記憶體單元組成之快閃記憶體區塊,等到收集了3個區塊(block)的資料後,再將此3個區塊資料透過內部資料搬移(internal copy back)之動作,合併並寫入一個三位元快閃記憶體區塊。這是由於三位元快閃記憶體區塊的寫入動作係為一不可中斷的動作,因此以單位元快閃記憶體單元組成之快閃記憶體區塊收集資料,再進行內部資料搬移的方式較有效率。此處所指的內部資料搬移之動作,快閃記憶體之供應商通常會提供對應程序之指令,使內部資料搬移之作業完全發生於快閃記憶體之內部,然而由於快閃記憶體之內部通常並未包括錯誤檢查及校正單元140以及打亂程序單元150,因此所述指令雖然具有速度快之優點,卻無法避免讀取資料時發生錯誤,或在寫入後相鄰的快閃記憶體分頁存在相同資料的可能性,因而造成如前述之資料保存時間下降的不利影響。值得注意的是,此處所謂的單位元快閃記憶體單元,並非以物理結構為限,亦
可以三位元快閃記憶體單元作為單位元快閃記憶體單元來使用,以進行上述之動作。
因此,為了確保資料的正確性,並且不影響資料保存的時間,在利用快閃記憶體進行系統設計時可選擇不使用快閃記憶體之供應商所提供之指令,來進行上述內部資料搬移的動作,而是在有內部資料搬移的需求發生時,將待搬移資料經過快閃記憶體外部之錯誤檢查及校正單元140以及打亂程序單元150的處理,以確保資料的正確性並確保相鄰的快閃記憶體分頁寫入不同的資料。然而這種作法卻又造成讀寫速度的限制。
鑒於以上的問題,本發明係提供一種快閃記憶體之資料搬移方法,用以於儲存裝置之快閃記憶體區塊的搬移資料,並提升進行資料搬移之速度。
本發明提出一種快閃記憶體之資料搬移方法,適用於儲存裝置,用以於儲存裝置之快閃記憶體區塊的搬移資料,所述之資料搬移方法包含下列步驟。
判斷資料寫入作業是否為內部資料搬移,若是,則進行下一步驟。
判斷待搬移資料是否位於由單位元快閃記憶體單元組成之記憶體緩衝區,若是,則進行下列步驟。
自該記憶體緩衝區讀取待搬移資料。
忽略資料除錯程序,將該待搬移資料進行一打亂程序之處理。
將經過打亂處理後之資料回存快閃記憶體區塊之一快閃記憶體分頁。
本發明的功效在於,在快閃記憶體區塊的內部搬移資料時,仍然進行打亂程序之處理,並省略電路複雜度較高之錯誤檢查及校正單元之處理程序,以大幅提升進行內部資料搬移之速度,並維持原有的資料保存時間,以提升整體效能。
有關本發明的特徵、實作與功效,茲配合圖式作
最佳實施例詳細說明如下。
100‧‧‧習知之快閃記憶體存取之電路方塊圖
130、230‧‧‧記憶體緩衝區
140、240‧‧‧錯誤檢查及校正單元
150、250‧‧‧打亂程序單元
160、260‧‧‧快閃記憶體區塊
200‧‧‧本發明之快閃記憶體存取之電路方塊圖
第1圖為習知之快閃記憶體存取之電路方塊圖。
第2圖為本發明所揭露之快閃記憶體存取之電路方塊圖。
第3圖為本發明所揭露之快閃記憶體之資料搬移方法流程圖。
第2圖為本發明所揭露之快閃記憶體之資料搬移方法之相關電路200之電路方塊圖。電路200包括記憶體緩衝區230、錯誤及校正檢查單元240(Error Checking and Correcting Unit,ECC Unit)、打亂程序單元250(Scrambling Unit)以及快閃記憶體區塊260。
如第2圖所示,快閃記憶體區塊260係由複數個快閃記憶體分頁組成,每個快閃記憶體分頁又包含了複數個快閃記憶體單元,例如單位元快閃記憶體單元、二位元快閃記憶體單元或是三位元快閃記憶體單元。快閃記憶體區塊260係將數位資料進行非揮發性地儲存,並供讀取儲存之資料。而在由二位元快閃記憶體單元或是三位元快閃記憶體單元所組成的快閃記憶體區塊260中,亦可以部分分頁作為單位元快閃記憶體單元使用,以期能以單位元快閃記憶體單元進行頻繁的資料存取作業,而以二位元快閃記憶體單元或是三位元快閃記憶體單元獲得較大之單位面積儲存容量。。
如第2圖所示,打亂程序單元250與快閃記憶體區塊260之間進行資料交換,當快閃記憶體區塊260進行寫入資料時,打亂程序單元250會先將欲寫入的資料進行打亂程序,以減少相鄰的快閃記憶體單元存放相同的資料的機率;而當欲將資料從快閃記憶體區塊260讀出時,打亂程序單元250會將讀出之資料先進行打亂程序之還原動作。
如第2圖所示,記憶體緩衝區230與打亂程序單元250之間進行資料交換。記憶體緩衝區230可以是快閃記憶體內部之某一記憶體分頁,或者快閃記憶體外部之一動態隨機存取記憶體或靜態隨機存取記憶體。
進一步說明,當進行內部資料搬移之作業時,係將指定之快閃記憶體分頁中,亦即記憶體緩衝區230儲存之資料,搬移到不同的快閃記憶體分頁,例如由SLC組成之記憶體緩衝區230之資料已經佔滿儲存空間,必須搬移至快閃記憶體區塊260中之MLC或TLC分頁時。本發明所揭露之相關電路200將略過習知之錯誤檢查及校正單元240,使記憶體緩衝區230與打亂程序單元250之間直接進行資料交換。例如SLC分頁在存取上具有較低的資料錯誤率,因此當內部資料搬移之作業係由位於SLC分頁讀出資料,並回存快閃記憶體區塊之其他分頁時(MLC、TLC),即可跳過資料除錯之編碼及解碼程序而仍保有可接受之錯誤率。
另外,在相同的打亂程序的處理下,相鄰的記憶體分頁仍可能寫入相同的資料串,而使得保存時間下降。因此,當打亂程序單元250處理相鄰的快閃記憶體分頁的資料串時,可選擇可以就相鄰位址產生不同結果的打亂程序來實現。例如在本發明所揭露之實施例中,可以利用快閃記憶體之位址作為種子碼,進行加法式的打亂程序,如此即使以相同之原始資料分別儲存於相鄰之快閃記憶體位址時,打亂程序將對應相鄰之快閃記憶體位址,產生不同之打亂資料,再將經過打亂處理後之資料對應地儲存至快閃記憶體區塊之該相鄰位址,以提升記憶體之資料保存時間。又例如相鄰位址之打亂程序,可分別選擇加法式與乘法式的方式來進行,以盡可能降低相鄰位址儲存相同資料的可能性。
如前所述,由於資料除錯之編碼及解碼程序之電路複雜度較高,為習知記憶體存取速度之瓶頸,因此跳過錯誤檢查及校正之程序可以使內部資料搬移之操作速度進一步提升。在習知技術中,錯誤檢查及校正單元140為記憶體存取速度之瓶頸,因此打亂程序單元150之設計只需配合錯誤檢查及校正單元140之時脈速度進行設計即可。
而本發明所揭露之快閃記憶體之資料搬移方法之相關電路200中,係先判斷資料寫入作業是否為內部資料搬移,並判斷待搬移資料是否位於由單位元快閃記憶體單元組成之記憶體緩衝區。若為快閃記憶體區塊260內部之資料搬移,且記憶體緩衝區230係由單位元快閃記憶體單元組成,則省略錯誤檢查及校正單元240之電路及其相關程序。因此打亂程序單元250的時脈速度可以不受到錯誤檢查及校正單元240之時脈速度之限
制,從而提升快閃記憶體區塊260內部資料之搬移之操作速度。又由於打亂程序單元250之電路複雜度相對並不高,提升其操作速度並不會增加晶片整體之面積,因此不會增加太多的成本。如此一來,記憶體的一般存取動作以及內部搬移動作可以不同時脈頻率操作,例如第1圖中之習知設計其時脈頻率設計為133MHz(Mega-Hertz,每秒百萬次),而本發明所揭露之相關電路200之操作時脈頻率則可達333MHz,因而提升了整體效能。
第3圖為本發明所揭露之快閃記憶體之資料搬移方法流程圖,適用於儲存裝置,用以於儲存裝置之快閃記憶體區塊的搬移資料,包含下列步驟。
如步驟310以及320所示,當需要從記憶體緩衝區230將資料寫入快閃記憶體區塊260時,系統先判斷資料寫入作業是否為快閃記憶體區塊260之內部資料搬移,且待搬移資料是否位於由單位元快閃記憶體單元組成之一記憶體緩衝區,若兩者皆是,例如快閃記憶體區塊260的SLC分頁之資料已經佔滿儲存空間,必須搬移至快閃記憶體區塊260中之MLC或TLC分頁,則系統進行步驟330,自快閃記憶體區塊260讀取待搬移資料。值得注意的是,此處所謂的SLC分頁,並非以物理結構為限,亦可以MLC分頁或是TLC分頁作為SLC分頁之功能來使用,以進行上述之動作。
參閱第2圖及第3圖所示,如步驟340所示,接著忽略資料除錯程序,打亂程序單元250不經過錯誤檢查及校正單元240,直接讀取記憶體緩衝區230之待搬移資料,並進行一打亂程序之處理。
如步驟350所示,打亂程序單元250直接將經過打亂處理後之資料回存快閃記憶體區塊260。
前述步驟350將資料打亂並寫入快閃記憶體區塊260之步驟,係略過錯誤檢查及校正單元,省略電路複雜度較高之錯誤檢查及校正單元之處理程序,以大幅提升進行內部搬移之速度,進而提升整體效能。
另外,若系統判斷資料寫入作業並非為快閃記憶體區塊260之內部資料搬移,或是判斷待搬移資料並非位於由單位元快閃記憶體單元組成之一記憶體緩衝區,例如係將位於快閃記憶體外部之記憶體緩衝區230之資料寫入快閃記憶體區塊260之動作,則由於在讀取記憶體緩衝區230時可能發生錯誤的機率較高,因此即如步驟360所示,在讀取待搬移資料
後,如步驟370所示,利用錯誤檢查及校正單元240,將待搬移資料進行資料除錯之編碼以及解碼程序,並如步驟380所示,利用打亂程序單元250,將經過資料除錯程序之資料進行打亂程序之處理。最後如步驟350所示,打亂程序單元250直接將經過打亂處理後之資料回存快閃記憶體區塊260。
雖然本發明之實施例揭露如上所述,然並非用以限定本發明,任何熟習相關技藝者,在不脫離本發明之精神和範圍內,舉凡依本發明申請範圍所述之形狀、構造、特徵及數量當可做些許之變更,因此本發明之專利保護範圍須視本說明書所附之申請專利範圍所界定者為準。
Claims (5)
- 一種快閃記憶體之資料搬移方法,適用於儲存裝置,用以於該儲存裝置之一快閃記憶體區塊搬移資料,所述快閃記憶體區塊包含複數個快閃記憶體分頁,該資料搬移方法包含下列步驟:判斷資料寫入作業是否為內部資料搬移,若是,則進行下一步驟;判斷一待搬移資料是否位於由單位元快閃記憶體單元組成之一記憶體緩衝區,若是,則進行下列步驟;自該記憶體緩衝區讀取該待搬移資料;忽略資料除錯程序,將該待搬移資料進行一打亂程序之處理;以及將經過打亂處理後之資料回存該快閃記憶體區塊之一快閃記憶體分頁。
- 如請求項第1項所述之快閃記憶體之資料搬移方法,其中若判斷資料寫入作業並非內部資料搬移,則進行下列步驟;讀取待搬移資料;將該待搬移資料進行一資料除錯程序;將經過資料除錯程序之資料進行該打亂程序之處理;以及將經過打亂處理後之資料回存該快閃記憶體區塊之一快閃記憶體分頁。
- 如請求項第1項所述之快閃記憶體之資料搬移方法,其中若判斷該待搬移資料並非位於由單位元快閃記憶體單元組成之一記憶體緩衝區,則進行下列步驟;讀取該待搬移資料;將該待搬移資料進行資料除錯程序;將經過資料除錯程序之資料進行該打亂程序之處理;以及將經過打亂處理後之資料儲存該快閃記憶體區塊之一快閃記憶體分頁。
- 如請求項第2或3項所述之快閃記憶體之資料搬移方法,其中當判斷資料寫入作業係為內部資料搬移,而且待搬移資料位於由單位元快閃記憶體單元組成之記憶體緩衝區時,進行該打亂程序之處理之硬體時脈,係高於當判斷資料寫入作業並非內部資料搬移,或者待搬移資料並非位於由單位元快閃記憶體單元組成之記憶體緩衝區時,進行該打亂程序之處理之硬體時脈。
- 如請求項第1項所述之快閃記憶體之資料搬移方法,其中當欲以相同之原始資料分別儲存於相鄰之快閃記憶體位址時,該打亂程序將對應該相鄰之快閃記憶體位址,產生不同之打亂資料,再將經過打亂處理後之資料對應地儲存至該快閃記憶體區塊之該相鄰位址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102108366A TW201435730A (zh) | 2013-03-08 | 2013-03-08 | 快閃記憶體之資料搬移方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102108366A TW201435730A (zh) | 2013-03-08 | 2013-03-08 | 快閃記憶體之資料搬移方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201435730A true TW201435730A (zh) | 2014-09-16 |
Family
ID=51943387
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102108366A TW201435730A (zh) | 2013-03-08 | 2013-03-08 | 快閃記憶體之資料搬移方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TW201435730A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI570557B (zh) * | 2015-09-11 | 2017-02-11 | 慧榮科技股份有限公司 | 內部資料搬移方法以及使用該方法的裝置 |
US10923178B1 (en) | 2020-02-27 | 2021-02-16 | Western Digital Technologies, Inc. | Data storage with improved write performance for preferred user data |
-
2013
- 2013-03-08 TW TW102108366A patent/TW201435730A/zh unknown
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI570557B (zh) * | 2015-09-11 | 2017-02-11 | 慧榮科技股份有限公司 | 內部資料搬移方法以及使用該方法的裝置 |
CN106527962A (zh) * | 2015-09-11 | 2017-03-22 | 慧荣科技股份有限公司 | 内部数据搬移方法以及使用该方法的装置 |
US10338843B2 (en) | 2015-09-11 | 2019-07-02 | Silicon Motion, Inc. | Methods for moving data internally and apparatuses using the same |
CN106527962B (zh) * | 2015-09-11 | 2019-10-11 | 慧荣科技股份有限公司 | 内部数据搬移方法以及使用该方法的装置 |
US10923178B1 (en) | 2020-02-27 | 2021-02-16 | Western Digital Technologies, Inc. | Data storage with improved write performance for preferred user data |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9087614B2 (en) | Memory modules and memory systems | |
US10002073B2 (en) | Selective data recycling in non-volatile memory | |
US9558805B2 (en) | Memory modules and memory systems | |
US9417958B2 (en) | Flash memory control method, controller and electronic apparatus | |
US11043259B2 (en) | System and method for in-memory compute | |
US9646718B2 (en) | Semiconductor memory device having selective ECC function | |
US10496472B2 (en) | Combined XOR buffer memory for multiple open blocks of non-volatile memory | |
US8432735B2 (en) | Memory system and related method of programming | |
US9348694B1 (en) | Detecting and managing bad columns | |
KR20170121798A (ko) | 반도체 메모리 장치 및 이의 동작 방법 | |
US10691530B2 (en) | Apparatuses and methods for correcting errors and memory controllers including the apparatuses for correcting errors | |
KR20130049332A (ko) | 메모리 시스템 및 그것의 동작 방법 | |
US20130176785A1 (en) | Method for accessing a flash memory, and associated flash memory system | |
JP2010512601A (ja) | メモリにおけるキャッシュを利用した誤り検出及び訂正方法及び装置 | |
US9830087B2 (en) | Memory wear leveling | |
Guo et al. | DPA: A data pattern aware error prevention technique for NAND flash lifetime extension | |
US8588003B1 (en) | System, method and computer program product for programming and for recovering from a power failure | |
US10628247B2 (en) | Flash memory testing according to error type pattern | |
US9672894B2 (en) | Device and method of controlling refresh operation for dynamic random access memory (DRAM) | |
US9672105B2 (en) | Device and method for processing data using logical information and physical information | |
US9786388B1 (en) | Detecting and managing bad columns | |
Guo et al. | Data-pattern-aware error prevention technique to improve system reliability | |
TW201435730A (zh) | 快閃記憶體之資料搬移方法 | |
US20140198593A1 (en) | Redundancy circuit and semiconductor memory device including the same | |
KR20160065468A (ko) | 솔리드 스테이트 드라이브의 동작 방법 |