TWI415130B - 快閃記憶體之控制器以及於快閃記憶體存取資料的方法 - Google Patents

快閃記憶體之控制器以及於快閃記憶體存取資料的方法 Download PDF

Info

Publication number
TWI415130B
TWI415130B TW98126499A TW98126499A TWI415130B TW I415130 B TWI415130 B TW I415130B TW 98126499 A TW98126499 A TW 98126499A TW 98126499 A TW98126499 A TW 98126499A TW I415130 B TWI415130 B TW I415130B
Authority
TW
Taiwan
Prior art keywords
data
mapping data
flash memory
cross
error correction
Prior art date
Application number
TW98126499A
Other languages
English (en)
Other versions
TW201044404A (en
Inventor
Tsung Chieh Yang
Original Assignee
Silicon Motion Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Silicon Motion Inc filed Critical Silicon Motion Inc
Priority to US12/721,648 priority Critical patent/US8935589B2/en
Publication of TW201044404A publication Critical patent/TW201044404A/zh
Application granted granted Critical
Publication of TWI415130B publication Critical patent/TWI415130B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Stored Programmes (AREA)

Description

快閃記憶體之控制器以及於快閃記憶體存取資料的方法
本發明係有關於快閃記憶體,特別是有關於快閃記憶體之控制器。
快閃記憶體為一種可由電編程及清除其資料的非揮發性記憶體。快閃記憶體主要用來作記憶卡及通用序列匯流排(Universal Serial Bus,USB)裝置,以供電腦及其他數位產品之一般性資料儲存。快閃記憶體包含多個記憶單元,每一記憶單元用以儲存資料。快閃記憶體可依其記憶單元儲存的資料位元數目分為兩類。單層單元(single level cell,SLC)快閃記憶體的單一記憶單元僅能儲存一位元資料。多層單元(multi-level cell,MLC)快閃記憶體的單一記憶單元可儲存多位元資料。
快閃記憶體通常係以頁(page)為單位進行資料寫入或讀取。當控制器欲儲存資料於快閃記憶體時,快閃記憶體的相鄰頁所儲存的資料之穩定度會隨著該等相鄰頁所儲存的資料的位元內容而變化。第1A圖為一單層單元快閃記憶體100的部分電路圖。單層單元快閃記憶體100包括多列記憶單元101~104,111~114,121~124,…,1N1~1N4。每一記憶單元僅可儲存一位元資料。假設控制器先儲存一筆N位元之資料於快閃記憶體100的第一頁11,繼而再儲存一筆N位元之資料於快閃記憶體100的第二頁12。第一頁11的記憶單元101、111、121、…、1N1分別與第二頁的記憶單元102、112、122、…、1N2具有相鄰關係。當相鄰的記憶單元101與102、111與112、1N1與1N2係儲存不同數值的資料位元(0與1)時,由於相鄰的記憶單元所儲存的資料位元之電性會互相吸引,因此具有較高的資料穩定性。反之,當相鄰的記憶單元101與102、111與112、1N1與1N2係儲存相同數值的資料位元(0與0或1與1)時,由於相鄰的記憶單元所儲存的資料位元之電性會互相排斥,因此具有較低的資料穩定性。
第1B圖為一多層單元快閃記憶體之一記憶單元的臨界電壓機率分佈示意圖。假設多層單元快閃記憶體的記憶單元可儲存兩位元。當此兩位元為(0,0)時,記憶單元的臨界電壓大致為t1 。當此兩位元分別為(0,1)、(1,0)、(1,1)時,記憶單元的臨界電壓大致分別為t2 、t3 、t4 。當控制器儲存資料時,相鄰頁的對應資料位元(例如第1頁的第3位元及第2頁的第3位元)會被儲存於多層單元快閃記憶體之同一記憶單元。由第1B圖中可見,當相鄰頁的對應資料位元為(0,0)及(1,1)時,由於多層單元快閃記憶體之記憶單元的臨界電壓分別為最低值t1 及最高值t4 ,因此具有較高的資料穩定性。相反的,當相鄰頁的對應資料位元為(0,1)及(1,0)時,由於多層單元快閃記憶體之記憶單元的臨界電壓分別為中等值t2 及t3 ,因此具有較低的資料穩定性。
由第1A圖及第1B圖的實例,可知不同型態的快閃記憶體由於具有不同的電路結構,會需要儲存不同位元內容的資料,以提高資料的穩定度。因此,需要一種快閃記憶體之控制器,可更動欲儲存至快閃記憶體之資料位元的內容,以提高快閃記憶體所儲存之資料的穩定度。
有鑑於此,本發明之目的在於提供一種快閃記憶體之控制器,以解決習知技術存在之問題。於一實施例中,該控制器包括一選擇性映射器(selective mapper)以及一錯誤修正碼編碼器(error correction code encoder)。該選擇性映射器接收一第一原始資料,依據多個隨機序列(random sequence)分別處理該第一原始資料以產生多個第一映射資料,分別計算該等第一映射資料與一前次資料之多個互相關值(cross correlation value),依據該等互相關值自該等第一映射資料中選取一最佳映射資料,並依據該最佳映射資料產生一輸出映射資料。該錯誤修正碼編碼器依據該輸出映射資料編碼一第一錯誤修正碼,以供儲存於該快閃記憶體中。
本發明更提供一種於快閃記憶體存取資料的方法。首先,接收一第一原始資料。接著,依據多個隨機序列(random sequence)分別處理該第一原始資料,以產生多個第一映射資料。接著,分別計算該等第一映射資料與一前次資料之多個互相關值(cross correlation value)。接著,依據該等互相關值自該等第一映射資料中選取一最佳映射資料。最後,依據該最佳映射資料產生一輸出映射資料,以供儲存於該快閃記憶體中。
本發明更提供一種控制器,耦接至一快閃記憶體。於一實施例中,該控制器包括一錯誤修正碼編碼器(error correction code encoder)以及一選擇性映射器(selective mapper)。該錯誤修正碼編碼器接收一第一原始資料,並依據該第一原始資料編碼一第一錯誤修正碼。該選擇性映射器依據多個隨機序列(random sequence)分別處理該第一錯誤修正碼以產生多個第一映射資料,分別計算該等第一映射資料與一前次資料之多個互相關值(cross correlation value),依據該等互相關值自該等第一映射資料中選取一最佳映射資料,並依據該最佳映射資料產生一輸出映射資料,以供儲存於該快閃記憶體中。
如此一來,即可改變儲存於快閃記憶體中的資料之相關性,藉此降低寫入/讀取資料之干擾,以增進快閃記憶體所儲存之資料的穩定度。
為了讓本發明之上述和其他目的、特徵、和優點能更明顯易懂,下文特舉數較佳實施例,並配合所附圖示,作詳細說明如下:
第2圖為依據本發明之快閃記憶裝置204的區塊圖。快閃記憶裝置204耦接至主機202,用以儲存資料。於一實施例中,快閃記憶裝置204包括一控制器206及一快閃記憶體208。控制器206管理快閃記憶體208之資料存取。當主機202欲儲存資料至快閃記憶裝置204時,耦接於主機202之控制器206自主機202接收資料,再將資料寫入快閃記憶體208。當主機202欲自快閃記憶裝置204提取資料時,控制器206自快閃記憶體208讀取資料,再將資料傳遞至主機202。
於一實施例中,控制器206包括選擇性映射器(selective mapper)212、錯誤修正碼編碼器(error correction code encoder)214、錯誤修正碼解碼器(error correction code decoder)216、以及選擇性解映射器(selective demapper)218。當主機202欲儲存原始資料D1 至快閃記憶裝置204時,控制器206接收原始資料D1 。首先,選擇性映射器212將原始資料D1 轉換為一輸出映射資料M1 ,其中該輸出映射資料M1 與一前次儲存資料間的互相關值(cross correlation Value)較原始資料D1 與前次儲存資料間的互相關值有所變化。接著,錯誤修正碼編碼器214再將該輸出映射資料M1 編碼為錯誤修正碼C1 ,以供儲存於快閃記憶體208中。由於錯誤修正碼編碼器214於編碼時僅依據輸出映射資料M1 編碼一檢查碼(parity),再將檢查碼附加於輸出映射資料M1 之後以得到錯誤修正碼C1 ,而檢查碼僅佔錯誤修正碼C1 一小部分之長度,因此錯誤修正碼C1 與前次儲存資料間的互相關值仍可大幅度地被選擇性映射器212所決定。
因此,控制器206可改變所欲儲存的錯誤修正碼C1 與前次儲存資料間的互相關值,以提升快閃記憶體208所儲存的資料之穩定度。舉例來說,假設快閃記憶體208為多層單元(multi-level cell,MLC)快閃記憶體,則控制器206提升所欲儲存的錯誤修正碼C1 與前次儲存資料間的互相關值,以增加快閃記憶體208所儲存的資料之穩定度。假設快閃記憶體208為單層單元(single level cell,SLC)快閃記憶體,則控制器206減低所欲儲存的錯誤修正碼C1 與前次儲存資料間的互相關值,以增加快閃記憶體208所儲存的資料之穩定度。當主機202欲自快閃記憶裝置204提取資料時,控制器206首先自快閃記憶體208讀取錯誤修正碼C2 。接著,錯誤修正碼解碼器216將錯誤修正碼C2 解碼,以得到輸入映射資料M2 。接著,選擇性解映射器218再將輸入映射資料M2 還原為原始資料D2 ,並將原始資料D2 遞送至主機202,以完成資料之讀取。
第3圖為依據本發明之選擇性映射器300的區塊圖。於一實施例中,選擇性映射器300包括多個攪亂器301、302、…、30N,互相關評估模組312,選擇器314,以及附帶資訊附加器316。選擇性映射器300係依據第4圖之將原始資料D1 轉換為輸出映射資料M1 的方法400進行運作。首先,選擇性映射器300接收一原始資料(步驟402)。接著,攪亂器301、302、…、30N分別依據多個不同的隨機序列P1 、P2 、…、PN 其中之一處理原始資料,以產生多個不同的映射資料S1 、S2 、…、SN (步驟404)。於一實施例中,攪亂器301、302、…、30N分別對原始資料與該等隨機序列P1 、P2 、…、PN 其中之一的對應位元進行XOR運算,以分別產生該等映射資料S1 、S2 、…、SN 之位元。
接著,互相關評估模組312分別計算該等映射資料S1 、S2 、…、SN與一前次資料之多個互相關值(cross correlation value)(步驟406)。於一實施例中,互相關評估模組312對映射資料S1 、S2 、…、SN 與前次資料之對應位元進行XOR運算以得到多個XOR值,隨後再將對應同一映射資料的多個XOR值相加,以產生該等互相關值。在一實施例中,互相關評估模組312對映射資料S1 的第一位元及前次資料C0 的第一位元進行進行XOR運算以得到第一個XOR值、對映射資料S1 的第二位元及前次資料C0 的第二位元進行進行XOR運算以得到第二個XOR值......、對映射資料S1 的第N位元及前次資料C0 的第N位元進行進行XOR運算以得到第N個XOR值,隨後再將第一到第N個XOR值相加,以產生映射資料S1 的互相關值,其餘映射資料之互相關值亦以類似方式產生,在此不再贅述。接著,互相關評估模組312依據一選取規則自該等互相關值中選取一最佳互相關值J(步驟408)。於一實施例中,快閃記憶體208係一多層單元快閃記憶體,而互相關評估模組312自該等互相關值中選取一最大互相關值作為該最佳互相關值K,以提升快閃記憶體208所儲存資料的穩定度。於一實施例中,快閃記憶體208係一單層單元快閃記憶體,而互相關評估模組312自該等互相關值中選取一最小互相關值作為該最佳互相關值J,以提升快閃記憶體208所儲存資料的穩定度。接著,選擇器314自映射資料S1 、S2 、…、SN 中選取對應互相關評估模組312輸出之最佳互相關值(例如最佳互相關值K或J)之映射資料以輸出為最佳映射資料S(步驟409)。最後,附帶資訊附加器316產生關於對應於該最佳互相關值J之隨機序列的附帶資訊(side information),並附加該附帶資訊於最佳映射資料S之後以產生輸出映射資料M1 (步驟410)。
第5圖為依據本發明之選擇性解映射器500的區塊圖。於一實施例中,選擇性解映射器500包括附帶資訊分離器502、選擇器506、以及解攪亂器504。選擇性解映射器500係依據第6圖之將輸入映射資料M2 還原為原始資料D2 的方法600進行運作。首先,選擇性解映射器500接收一輸入映射資料M2 (步驟602)。接著,附帶資訊分離器502自輸入映射資料M2 取出其所包含之一映射資料S以及一附帶資訊I(步驟604)。接著,選擇器506依據該附帶資訊I自多個隨機序列P1 、P2 、P3 、…、PN 中選取一解映射隨機序列P* (步驟606),該解映射隨機序列P* 即為當初產生映射資料S所依據的隨機序列。接著,解攪亂器504依據解映射隨機序列P* 處理該映射資料S以將映射資料S還原為原始資料D2 (步驟608)。最後,控制器將選擇性解映射器500所產生的原始資料D2 遞送至主機,以完成資料讀取動作。
第7圖為依據本發明之控制器所產生之供寫入快閃記憶體之資料的過程的示意圖。於第7(a)圖中,假設控制器206收到一原始資料D1 。接著,選擇性映射器212將原始資料D1 轉換為第7(b)圖中之映射資料M1 (已包含附帶資訊)。接著,錯誤修正碼編碼器214依據映射資料M1 產生檢查碼K,並附加檢查碼K於映射資料M1 之後端以產生第7(b)圖中的編碼資料C1 。一般而言,原始資料D1 及映射資料M1 的大小約為主機之一個資料區段(sector)或快閃記憶體之一頁,亦可為任意大小。然而,選擇性映射器300會需要以多個暫存器儲存攪亂器301、302、…、30N所產生的多筆映射資料S1 、S2 、…、SN 。當映射資料S1 、S2 、…、SN 的大小過大時,會增加選擇性映射器300之暫存器的生產成本。
因此,於一實施例中,控制器206自主機202接收原始資料D1 後,會先將原始資料D1 分割成第7(c)圖的多個原始資料D11 、D12 、D13 、...、D1N ,再將原始資料D11 、D12 、D13 、…、D1N 依序送至選擇性映射器300,以依序產生第7(d)圖之多個映射資料M11 、M12 、M13 、…、M1N 。接著,再由錯誤修正碼編碼器214依序將映射資料M11 、M12 、M13 、…、M1N 編碼為第7(e)圖之編碼資料C11 、C12 、C13 、…、C1N 。由於原始資料D11 、D12 、D13 、…、D1N 的大小已縮減,因此可減少選擇性映射器300之暫存器的容量大小,進而減少選擇性映射器300之暫存器的生產成本。
第2圖之控制器206中,錯誤修正碼編碼器214係耦接於選擇性映射器212之後端。於另一實施例中,錯誤修正碼編碼器亦可耦接於選擇性映射器之前端。第8圖為依據本發明之快閃記憶裝置804之另一實施例的區塊圖。快閃記憶裝置804包括一控制器806及一快閃記憶體808。控制器806包括錯誤修正碼編碼器812、選擇性映射器814、選擇性解映射器816、以及錯誤修正碼解碼器818。當控制器806自主機802接收一原始資料D1 ,錯誤修正碼編碼器812首先將原始資料D1 編碼為錯誤修正碼C1 ’。接著,選擇性映射器814將錯誤修正碼C1 ’轉換為輸出映射資料M1 ’,以供儲存於快閃記憶體808中。選擇性映射器814之電路結構同於第3圖之選擇性映射器300。
如第7(f)圖所示,錯誤修正碼編碼器812將原始資料D1 編碼為包含檢查碼K的錯誤修正碼C1 ’。接著,選擇性映射器814再將第7(f)圖之錯誤修正碼C1 ’轉換為第7(g)圖之輸出映射資料M1 ’。因此,相較於第2圖之控制器206,第8圖之控制器806可改變包含檢查碼K之整體儲存資料與前次儲存資料的互相關值,以增進儲存資料的穩定度。當主機802欲自快閃記憶裝置804讀取資料,控制器806首先自快閃記憶體808讀取輸入映射資料M2 ’。接著,選擇性解映射器816將映射資料M2 ’轉換為錯誤修正碼C2 ’。選擇性解映射器816之電路結構類似於第5圖之選擇性解映射器500。最後,錯誤修正碼解碼器818解碼錯誤修正碼C2 ’以還原原始資料D2 。控制器806接著將原始資料D2 遞送至主機802,以完成資料讀取動作。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟習此項技術者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
(第1A圖)
101-104,111-114,121-124,1N1-1N4...記憶單元
(第2圖)
202...主機
204...快閃記憶裝置
206...控制器
208...快閃記憶體
212...選擇性映射器
214...錯誤修正碼編碼器
216...錯誤修正碼解碼器
218...選擇性解映射器
(第3圖)
300...選擇性映射器
301-30N...攪亂器
312...互相關評估模組
314...選擇器
316...附帶資訊附加器
(第5圖)
500...選擇性解映射器
502...附帶資訊分離器
504...解攪亂器
506...選擇器
(第8圖)
802...主機
804...快閃記憶裝置
806...控制器
808...快閃記憶體
812...錯誤修正碼編碼器
814...選擇性映射器
816...選擇性解映射器
818...錯誤修正碼解碼器
第1A圖為一單層單元快閃記憶體的部分電路圖;
第1B圖為一多層單元快閃記憶體之一記憶單元的臨界電壓機率分佈示意圖;
第2圖為依據本發明之快閃記憶裝置的區塊圖;
第3圖為依據本發明之選擇性映射器的區塊圖;
第4圖為依據本發明之將原始資料轉換為輸出映射資料的方法;
第5圖為依據本發明之選擇性解映射器的區塊圖;
第6圖為依據本發明之將輸入映射資料還原為原始資料的方法;
第7圖為依據本發明之控制器所產生之供寫入快閃記憶體之資料的過程的示意圖;以及
第8圖為依據本發明之快閃記憶裝置之另一實施例的區塊圖。
300...選擇性映射器
301-30N...攪亂器
312...互相關評估模組
314...選擇器
以及
316...附帶資訊附加器

Claims (29)

  1. 一種控制器,耦接至一快閃記憶體與一主機,包括:一選擇性映射器(selective mapper),接收一第一原始資料,依據多個隨機序列(random sequence)分別處理該第一原始資料以產生多個第一映射資料,分別計算該等第一映射資料與一前次資料之多個互相關值(cross correlation value),依據該等互相關值自該等第一映射資料中選取一最佳映射資料,並依據該最佳映射資料產生一輸出映射資料;以及一錯誤修正碼編碼器(error correction code encoder),依據該輸出映射資料編碼一第一錯誤修正碼,以供儲存於該快閃記憶體中。
  2. 如申請專利範圍第1項所述之控制器,其中該選擇性映射器產生用以辨識供產生該最佳映射資料之隨機序列的一第一附帶資訊(side information),並附加該第一附帶資訊於該最佳映射資料之後以產生該輸出映射資料。
  3. 如申請專利範圍第2項所述之控制器,其中該選擇性映射器包括:多個攪亂器(scrambler),分別依據該等多個隨機序列其中之一以處理該第一原始資料,以產生該等第一映射資料;一互相關評估模組,分別計算該等第一映射資料與該前次資料之該等互相關值,並依據一選取規則自該等互相關值中選取一最佳互相關值;以及一選擇器(selector),自該等第一映射資料中選取對應該最佳互相關值之第一映射資料以輸出該最佳映射資料。
  4. 如申請專利範圍第3項所述之控制器,其中該選擇性映射器更包括:一附帶資訊附加器,產生關於對應於該最佳互相關值之隨機序列的該第一附帶資訊,並附加該第一附帶資訊於該最佳映射資料之後以產生該輸出映射資料。
  5. 如申請專利範圍第3項所述之控制器,其中該等攪亂器分別對該第一原始資料與該等隨機序列其中之一的對應位元進行XOR運算,以產生該等第一映射資料。
  6. 如申請專利範圍第3項所述之控制器,其中該快閃記憶體係一多層單元(multi-level cell,MLC)快閃記憶體,該第一錯誤修正碼的位元與該前次資料的位元係儲存於該快閃記憶體之同一記憶單元,且該互相關評估模組自該等互相關值中選取一最大互相關值作為該最佳互相關值。
  7. 如申請專利範圍第3項所述之控制器,其中該快閃記憶體係一單層單元(single level cell,SLC)快閃記憶體,該第一錯誤修正碼的位元與該前次資料的位元係儲存於該快閃記憶體之相鄰的記憶單元,且該互相關評估模組自該等互相關值中選取一最小互相關值作為該最佳互相關值。
  8. 如申請專利範圍第2項所述之控制器,其中該控制器更包括:一錯誤修正碼解碼器(error correction code decoder),自該快閃記憶體接收一第二錯誤修正碼,並解碼該第二錯誤修正碼以得到一輸入映射資料;以及一選擇性解映射器(selective demapper),自該輸入映射資料取出一第二映射資料以及一第二附帶資訊,依據該第 二附帶資訊自該等多個隨機序列中選取一解映射隨機序列,並依據該解映射隨機序列處理該第二映射資料以還原一第二原始資料,以供傳送至該主機。
  9. 如申請專利範圍第8項所述之控制器,其中該選擇性解映射器包括:一附帶資訊分離器,自該輸入映射資料取出該第二映射資料以及該第二附帶資訊;一選擇器,依據該第二附帶資訊自該等多個隨機序列中選取該解映射隨機序列;一解攪亂器,依據該解映射隨機序列處理該第二映射資料以還原該第二原始資料。
  10. 如申請專利範圍第9項所述之控制器,其中該解攪亂器對該第二映射資料與該解映射隨機序列的對應位元進行XOR運算,以產生該第二原始資料。
  11. 一種於快閃記憶體存取資料的方法,包括下列步驟:接收一第一原始資料;依據多個隨機序列(random sequence)分別處理該第一原始資料以產生多個第一映射資料;分別計算該等第一映射資料與一前次資料之多個互相關值(cross correlation value);依據該等互相關值自該等第一映射資料中選取一最佳映射資料;以及依據該最佳映射資料產生一輸出映射資料,以供儲存於該快閃記憶體中。
  12. 如申請專利範圍第11項所述之於快閃記憶體存取資料的方法,其中該方法更包括:依據該輸出映射資料編碼一第一錯誤修正碼,以供儲存於該快閃記憶體中。
  13. 如申請專利範圍第11項所述之於快閃記憶體存取資料的方法,其中該輸出映射資料之產生包括:產生用以辨識供產生該最佳映射資料之隨機序列的一第一附帶資訊(side information);以及附加該第一附帶資訊於該最佳映射資料之後以產生該輸出映射資料。
  14. 如申請專利範圍第11項所述之於快閃記憶體存取資料的方法,其中該第一原始資料之處理包括:分別對該第一原始資料與該等隨機序列其中之一的對應位元進行XOR運算,以產生該等第一映射資料。
  15. 如申請專利範圍第12項所述之於快閃記憶體存取資料的方法,其中該快閃記憶體係一多層單元(multi-level cell,MLC)快閃記憶體,該第一錯誤修正碼的位元與該前次資料的位元係儲存於該快閃記憶體之同一記憶單元,且該最佳映射資料之選取包括:自該等互相關值中選取一最大互相關值;以及自該等第一映射資料中選取對應於該最大互相關值之第一映射資料作為該最佳映射資料。
  16. 如申請專利範圍第12項所述之於快閃記憶體存取資料的方法,其中該快閃記憶體係一單層單元(single level cell,SLC)快閃記憶體,該第一錯誤修正碼的位元與該前次 資料的位元係儲存於該快閃記憶體之相鄰的記憶單元,且該最佳映射資料之選取包括:自該等互相關值中選取一最小互相關值;以及自該等第一映射資料中選取對應於該最小互相關值之第一映射資料作為該最佳映射資料。
  17. 如申請專利範圍第13項所述之於快閃記憶體存取資料的方法,其中該方法更包括:接收一輸入映射資料;自該輸入映射資料取出一第二映射資料以及一第二附帶資訊;依據該第二附帶資訊自該等多個隨機序列中選取一解映射隨機序列;以及依據該解映射隨機序列處理該第二映射資料以還原一第二原始資料,以供傳送至一主機。
  18. 如申請專利範圍第17項所述之於快閃記憶體存取資料的方法,其中該方法更包括:自該快閃記憶體接收一第二錯誤修正碼;以及解碼該第二錯誤修正碼以得到該輸入映射資料。
  19. 如申請專利範圍第17項所述之於快閃記憶體存取資料的方法,其中對該第二映射資料之處理包括:對該第二映射資料與該解映射隨機序列的對應位元進行XOR運算,以產生該第二原始資料。
  20. 一種控制器,耦接至一快閃記憶體與一主機,包括:一錯誤修正碼編碼器(error correction code encoder),接 收一第一原始資料,並依據該第一原始資料編碼一第一錯誤修正碼;以及一選擇性映射器(selective mapper),依據多個隨機序列(random sequence)分別處理該第一錯誤修正碼以產生多個第一映射資料,分別計算該等第一映射資料與一前次資料之多個互相關值(cross correlation value),依據該等互相關值自該等第一映射資料中選取一最佳映射資料,並依據該最佳映射資料產生一輸出映射資料,以供儲存於該快閃記憶體中。
  21. 如申請專利範圍第20項所述之控制器,其中該選擇性映射器產生用以辨識供產生該最佳映射資料之隨機序列的一第一附帶資訊(side information),並附加該第一附帶資訊於該最佳映射資料之後以產生該輸出映射資料。
  22. 如申請專利範圍第21項所述之控制器,其中該選擇性映射器包括:多個攪亂器(scrambler),分別依據該等多個隨機序列其中之一處理該第一錯誤修正碼,以產生該等第一映射資料;一互相關評估模組,分別計算該等第一映射資料與該前次資料之該等互相關值,並依據一選取規則自該等互相關值中選取一最佳互相關值;一選擇器(selector),自該等第一映射資料中選取對應該最佳互相關值之第一映射資料以輸出該最佳映射資料;以及一附帶資訊附加器,產生關於對應於該最佳互相關值之隨機序列的該第一附帶資訊,並附加該第一附帶資訊於 該最佳映射資料之後以產生該輸出映射資料。
  23. 如申請專利範圍第22項所述之控制器,其中該等攪亂器分別對該第一錯誤修正碼與該等隨機序列其中之一的對應位元進行XOR運算,以產生該等第一映射資料。
  24. 如申請專利範圍第20項所述之控制器,其中該控制器更包括:一選擇性解映射器(selective demapper),自該快閃記憶體接收一輸入映射資料,自該輸入映射資料取出一第二映射資料以及一第二附帶資訊,依據該第二附帶資訊自該等多個隨機序列中選取一解映射隨機序列,並依據該解映射隨機序列處理該第二映射資料以還原一第二錯誤修正碼;以及一錯誤修正碼解碼器(error correction code decoder),解碼該第二錯誤修正碼以得到一第二原始資料,以供傳送至該主機。
  25. 如申請專利範圍第24項所述之控制器,其中該選擇性解映射器包括:一附帶資訊分離器,自該輸入映射資料取出該第二映射資料以及該第二附帶資訊;一選擇器,依據該第二附帶資訊自該等多個隨機序列中選取該解映射隨機序列;一解攪亂器,依據該解映射隨機序列處理該第二映射資料以還原該第二錯誤修正碼。
  26. 如申請專利範圍第25項所述之控制器,其中該解攪亂器對該第二映射資料與該解映射隨機序列的對應位元 進行XOR運算,以產生該第二錯誤修正碼。
  27. 如申請專利範圍第22項所述之控制器,其中該快閃記憶體係一多層單元(multi-level cell,MLC)快閃記憶體,該輸出映射資料的位元與該前次資料的位元係儲存於該快閃記憶體之同一記憶單元,且該互相關評估模組自該等互相關值中選取一最大互相關值作為該最佳互相關值。
  28. 如申請專利範圍第22項所述之控制器,其中該快閃記憶體係一單層單元(single level cell,SLC)快閃記憶體,該輸出映射資料的位元與該前次資料的位元係儲存於該快閃記憶體之相鄰的記憶單元,且該互相關評估模組自該等互相關值中選取一最小互相關值作為該最佳互相關值。
  29. 一種於快閃記憶體存取資料的方法,包括下列步驟:接收一第一原始資料;依據該第一原始資料編碼一第一錯誤修正碼;依據多個隨機序列(random sequence)分別處理該第一錯誤修正碼以產生多個第一映射資料;分別計算該等第一映射資料與一前次資料之多個互相關值(cross correlation value);依據該等互相關值自該等第一映射資料中選取一最佳映射資料;以及依據該最佳映射資料產生一輸出映射資料,以供儲存於該快閃記憶體中。
TW98126499A 2009-06-02 2009-08-06 快閃記憶體之控制器以及於快閃記憶體存取資料的方法 TWI415130B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/721,648 US8935589B2 (en) 2009-06-02 2010-03-11 Controller and data access method for flash memories

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US18316309P 2009-06-02 2009-06-02

Publications (2)

Publication Number Publication Date
TW201044404A TW201044404A (en) 2010-12-16
TWI415130B true TWI415130B (zh) 2013-11-11

Family

ID=43263810

Family Applications (1)

Application Number Title Priority Date Filing Date
TW98126499A TWI415130B (zh) 2009-06-02 2009-08-06 快閃記憶體之控制器以及於快閃記憶體存取資料的方法

Country Status (3)

Country Link
CN (1) CN101908378B (zh)
TW (1) TWI415130B (zh)
WO (1) WO2010139131A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103064755B (zh) * 2013-01-25 2015-03-25 珠海全志科技股份有限公司 Nand闪存写数据处理方法和装置
CN104102587A (zh) * 2014-07-09 2014-10-15 昆腾微电子股份有限公司 Nvm数据处理方法和装置
CN104679448B (zh) * 2015-02-05 2017-10-03 深圳市硅格半导体有限公司 数据比特流转换的方法和装置
CN107918571B (zh) * 2016-10-08 2021-04-30 上海宝存信息科技有限公司 测试储存单元的方法以及使用该方法的装置
CN110147200A (zh) * 2018-02-13 2019-08-20 矽创电子股份有限公司 闪存的控制器及控制方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040057285A1 (en) * 2002-09-24 2004-03-25 Sandisk Corporation Non-volatile memory and method with reduced neighboring field errors
US20040205352A1 (en) * 2003-04-08 2004-10-14 Shigeo Ohyama Scrambler circuit
US20050270855A1 (en) * 2004-06-03 2005-12-08 Inphase Technologies, Inc. Data protection system
US20070208905A1 (en) * 2006-03-06 2007-09-06 Ramot At Tel-Aviv University Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
WO2007132453A2 (en) * 2006-05-12 2007-11-22 Anobit Technologies Ltd. Distortion estimation and cancellation in memory devices
US20080151621A1 (en) * 2006-12-26 2008-06-26 Samsung Electronics Co., Ltd. Multi-level cell memory devices and methods of storing data in and reading data from the memory devices
US20080151618A1 (en) * 2006-12-24 2008-06-26 Sandisk Il Ltd. Flash memory device and system with randomizing for suppressing errors
US20080184006A1 (en) * 2007-01-29 2008-07-31 Min-Soo Moon Method and System for Preloading Page Using Control Flow

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100468576C (zh) * 2007-05-30 2009-03-11 忆正存储技术(深圳)有限公司 闪存数据读写处理方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040057285A1 (en) * 2002-09-24 2004-03-25 Sandisk Corporation Non-volatile memory and method with reduced neighboring field errors
US20040205352A1 (en) * 2003-04-08 2004-10-14 Shigeo Ohyama Scrambler circuit
US20050270855A1 (en) * 2004-06-03 2005-12-08 Inphase Technologies, Inc. Data protection system
US20070208905A1 (en) * 2006-03-06 2007-09-06 Ramot At Tel-Aviv University Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
WO2007132453A2 (en) * 2006-05-12 2007-11-22 Anobit Technologies Ltd. Distortion estimation and cancellation in memory devices
US20080198650A1 (en) * 2006-05-12 2008-08-21 Anobit Technologies Ltd. Distortion Estimation And Cancellation In Memory Devices
US20080151618A1 (en) * 2006-12-24 2008-06-26 Sandisk Il Ltd. Flash memory device and system with randomizing for suppressing errors
US20080151621A1 (en) * 2006-12-26 2008-06-26 Samsung Electronics Co., Ltd. Multi-level cell memory devices and methods of storing data in and reading data from the memory devices
US20080184006A1 (en) * 2007-01-29 2008-07-31 Min-Soo Moon Method and System for Preloading Page Using Control Flow

Also Published As

Publication number Publication date
CN101908378B (zh) 2013-03-27
CN101908378A (zh) 2010-12-08
TW201044404A (en) 2010-12-16
WO2010139131A1 (zh) 2010-12-09

Similar Documents

Publication Publication Date Title
US8935589B2 (en) Controller and data access method for flash memories
CN111326199B (zh) 用于存储器设备的多态编程
AU2014200492B2 (en) Method of reading data from a nonvolatile memory device, nonvolatile memory device, and method of operating a memory system
US9159437B2 (en) Device and method for resolving an LM flag issue
US8769374B2 (en) Multi-write endurance and error control coding of non-volatile memories
JP5785330B2 (ja) メモリエンデュランスのために動作させる装置および方法
US9411679B2 (en) Code modulation encoder and decoder, memory controller including them, and flash memory system
US8176234B2 (en) Multi-write coding of non-volatile memories
US20150043276A1 (en) Systems and methods of storing data
US11243838B2 (en) Methods and apparatuses for error correction
WO2013070368A1 (en) Soft information generation for memory systems
CN111352765B (zh) 控制器及存储器***
US9208021B2 (en) Data writing method, memory storage device, and memory controller
CN110444240B (zh) 存储器***的编码器和解码器及其方法
TWI415130B (zh) 快閃記憶體之控制器以及於快閃記憶體存取資料的方法
US10423484B2 (en) Memory controller, memory system, and control method
CN109471808B (zh) 具有数据可靠性机制的存储***及其操作方法
WO2023134299A1 (en) Memory device, memory system, and method of operating the same
US10042565B2 (en) All-flash-array primary storage and caching appliances implementing triple-level cell (TLC)-NAND semiconductor microchips
KR20160089870A (ko) 메모리 장치의 동작 방법 및 메모리 장치를 동작시키는 메모리 컨트롤러
US20210058097A1 (en) Memory system and method for controlling non-volatile memory
US9239751B1 (en) Compressing data from multiple reads for error control management in memory systems
US20160071597A1 (en) Storage device, memory controller and memory control method
US9473171B2 (en) Data encoding method for compressing data to be stored, data storage device with data encoder, and operating method of data storage device
CN106155916A (zh) 数据储存装置以及数据读取方法