TWI435328B - 針對一快閃記憶體的控制器所存取之資料來進行資料型樣管理之方法以及相關之記憶裝置及其控制器 - Google Patents
針對一快閃記憶體的控制器所存取之資料來進行資料型樣管理之方法以及相關之記憶裝置及其控制器 Download PDFInfo
- Publication number
- TWI435328B TWI435328B TW098124411A TW98124411A TWI435328B TW I435328 B TWI435328 B TW I435328B TW 098124411 A TW098124411 A TW 098124411A TW 98124411 A TW98124411 A TW 98124411A TW I435328 B TWI435328 B TW I435328B
- Authority
- TW
- Taiwan
- Prior art keywords
- linear feedback
- controller
- translation register
- random function
- feedback translation
- Prior art date
Links
Classifications
-
- 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/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
-
- 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/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/025—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in signal lines
-
- 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/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- 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
- G11C29/50—Marginal testing, e.g. race, voltage or current testing
- G11C29/50008—Marginal testing, e.g. race, voltage or current testing of impedance
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
Landscapes
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明係有關於快閃記憶體(Flash Memory)之存取(Access),尤指一種針對一快閃記憶體的控制器所存取之資料來進行資料型樣(Data Pattern)管理之方法以及相關之記憶裝置及其控制器。
近年來由於快閃記憶體的技術不斷地發展,各種可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡)被廣泛地實施於諸多應用中。因此,這些可攜式記憶裝置中之快閃記憶體的存取控制遂成為相當熱門的議題。
以常用的NAND型快閃記憶體而言,其主要可區分為單階細胞(Single Level Cell,SLC)與多階細胞(Multiple Level Cell,MLC)兩大類之快閃記憶體。單階細胞快閃記憶體中之每個被當作記憶單元的電晶體只有兩種電荷值,分別用來表示邏輯值0與邏輯值1。另外,多階細胞快閃記憶體中之每個被當作記憶單元的電晶體的儲存能力則被充分利用,係採用較高的電壓來驅動,以透過不同級別的電壓在一個電晶體中記錄兩組位元資訊(00、01、11、10);理論上,多階細胞快閃記憶體的記錄密度可以達到單階細胞快閃記憶體的記錄密度之兩倍,這對於曾經在發展過程中遇到瓶頸的NAND型快閃記憶體之相關產業而言,是非常好的消息。
相較於單階細胞快閃記憶體,由於多階細胞快閃記憶體之價格較便宜,並且在有限的空間裡可提供較大的容量,故多階細胞快閃記憶體很快地成為市面上之可攜式記憶裝置競相採用的主流。然而,多階細胞快閃記憶體的不穩定性所導致的問題也一一浮現。為了確保可攜式記憶裝置對快閃記憶體之存取控制能符合相關規範,快閃記憶體的控制器通常備有某些管理機制以妥善地管理資料之存取。
依據相關技術,有了這些管理機制的可攜式記憶裝置還是有不足之處。舉例來說,使用者可能基於其使用習慣而不斷地寫入具有某些特定資料型樣的資料,而這些特定資料型樣特別容易造成錯誤(例如:寫入錯誤、讀取錯誤...等)。因此,需要一種新穎的方法針對該控制器所存取之資料來進行資料型樣管理,以減少錯誤的發生。
因此本發明之目的之一在於提供一種針對一快閃記憶體(Flash Memory)的控制器所存取(Access)之資料來進行資料型樣(Data Pattern)管理之方法以及相關之記憶裝置及其控制器,以解決上述問題。
本發明之較佳實施例中提供一種針對一快閃記憶體的控制器所存取之資料來進行資料型樣管理之方法,該方法包含有:於該控制器接收到一寫入命令時,產生一第一隨機函數(Random Function),其中該寫入命令係用來指示該控制器將該資料寫入該快閃記憶體;以及依據該第一隨機函數之序列來逐位元地調整該資料之複數個位元以產生一虛擬亂碼位元序列,並將該虛擬亂碼位元序列寫入該快閃記憶體以代表該資料,藉此調整該資料之資料型樣分佈。
本發明於提供上述方法之同時,亦對應地提供一種記憶裝置,其包含有:一快閃記憶體,該快閃記憶體包含複數個區塊;以及一控制器,用來存取該快閃記憶體以及管理該複數個區塊,並且另針對該控制器本身所存取之資料來進行資料型樣管理。另外,該控制器包含有一隨機函數發生器(Randomizer),用來於該控制器接收到一寫入命令時,產生一第一隨機函數,其中該寫入命令係用來指示該控制器將該資料寫入該快閃記憶體。此外,該控制器依據該第一隨機函數之序列來逐位元地調整該資料之複數個位元以產生一虛擬亂碼位元序列,並將該虛擬亂碼位元序列寫入該快閃記憶體以代表該資料,藉此調整該資料之資料型樣分佈。
本發明於提供上述方法之同時,亦對應地提供一種記憶裝置之控制器,該控制器係用來存取一快閃記憶體,該快閃記憶體包含複數個區塊,該控制器包含有:一唯讀記憶體(Read Only Memory,ROM),用來儲存一程式碼;一微處理器,用來執行該程式碼以控制對該快閃記憶體之存取以及管理該複數個區塊;以及一隨機函數發生器,用來於該控制器接收到一寫入命令時,產生一第一隨機函數,其中該寫入命令係用來指示該控制器將資料寫入該快閃記憶體。另外,該控制器依據該第一隨機函數之序列來逐位元地調整該資料之複數個位元以產生一虛擬亂碼位元序列,並將該虛擬亂碼位元序列寫入該快閃記憶體以代表該資料,藉此調整該資料之資料型樣分佈。
請參考第1圖,第1圖為依據本發明一第一實施例之一種記憶裝置100的示意圖,其中本實施例之記憶裝置100尤其係為可攜式記憶裝置,例如:符合SD/MMC、CF、MS、XD標準之記憶卡,或通用序列匯流排快閃碟(Universal Serial Bus Flash Drive,USB Flash Drive,亦稱為USB Flash Disk),即所謂的隨身碟,但不以此為限。記憶裝置100包含有:一快閃記憶體(Flash Memory)120;以及一控制器,用來存取快閃記憶體120,其中該控制器例如一記憶體控制器110。依據本實施例,記憶體控制器110包含一微處理器112、一唯讀記憶體(Read Only Memory,ROM)112M、一控制邏輯114、一緩衝記憶體116、與一介面邏輯118。另外,控制邏輯114包含一錯誤更正碼(Error Correction Code,ECC)解碼器1142、一隨機函數發生器(Randomizer)1144、一解隨機函數發生器(Derandomizer)1146、與一錯誤更正碼解碼器1148。
於本實施例中,唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對快閃記憶體120之存取(Access)。於典型狀況下,快閃記憶體120包含複數個區塊(Block),而該控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110)對快閃記憶體120進行抹除資料之運作係以區塊為單位來進行抹除。另外,一區塊可記錄特定數量的頁(Page),其中上述之控制器對快閃記憶體120進行寫入資料之運作係以頁為單位來進行寫入。
實作上,透過微處理器112執行程式碼112C之記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用控制邏輯114來控制快閃記憶體120之存取運作(尤其是對至少一區塊或至少一頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用介面邏輯118來與一主裝置(Host Device)溝通。依據本實施例,除了能存取快閃記憶體120,記憶體控制器110還能妥善地管理該複數個區塊。
另外,記憶體控制器110還可針對該控制器本身所存取之資料來進行資料型樣(Data Pattern)管理。於本實施例中,錯誤更正碼編碼器1142對使用者資料(例如錯誤更正碼編碼器1142所輸入之「使用者資料位元」)進行錯誤更正碼編碼,以產生編碼資料作為該資料,其中該編碼資料包含上述之使用者資料、內部奇偶校驗碼(Parity of the Inner Code)、與外部奇偶校驗碼(Parity of the Outer Code),均藉由編碼資料位元序列1143輸入至隨機函數發生器1144。記憶體控制器110進行資料型樣管理的相關細節可參考第2圖來進一步說明。
第2圖為依據本發明一實施例之一種針對一快閃記憶體的控制器所存取之資料來進行資料型樣管理之方法910的流程圖。該方法可應用於第1圖所示之記憶裝置100,尤其是上述之控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110)。另外,該方法可藉由利用第1圖所示之記憶裝置100來實施,尤其是藉由利用上述之控制器來實施。該方法說明如下:
步驟912:於該控制器接收到一寫入命令時,隨機函數發生器1144產生一第一隨機函數(Random Function),其中該寫入命令係用來指示該控制器將該資料寫入快閃記憶體120。
步驟914:該控制器(於本實施例,尤其是其內之隨機函數發生器1144)依據該第一隨機函數之序列來逐位元地調整該資料之複數個位元(例如編碼資料位元序列1143)以產生一虛擬亂碼位元序列1145,並將該虛擬亂碼位元序列寫入快閃記憶體120以代表該資料,藉此調整該資料之資料型樣分佈,其中調整後之資料型樣分佈比調整前之資料型樣分佈更為平均。然而,這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之一變化例,隨機函數發生器1144可設置於控制邏輯114之外,其中編碼資料位元序列1143與虛擬亂碼位元序列1145之間設置有一加法器,用來注入該第一隨機函數之序列並據以調整編碼資料位元序列1143。
步驟916:於該控制器接收到一讀取命令時,解隨機函數發生器1146產生一第二隨機函數,其中該讀取命令係用來指示該控制器從快閃記憶體120讀取該資料。
步驟918:該控制器(於本實施例尤其是其內之解隨機函數發生器1146)依據該第二隨機函數之序列來逐位元地調整從快閃記憶體120所讀取之該虛擬亂碼位元序列(即解隨機函數發生器1146從快閃記憶體120所讀出之虛擬亂碼位元序列1145’),以重現(Reproduce)該資料(例如復原資料位元序列1147),藉此復原該資料之原始資料型樣分佈。然而,這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之一變化例,解隨機函數發生器1146可設置於控制邏輯114之外,其中虛擬亂碼位元序列1145’與復原資料位元序列1147之間設置有一加法器,用來注入該第二隨機函數之序列並據以調整虛擬亂碼位元序列1145’。
於步驟918中,解隨機函數發生器1146已復原該資料之原始資料型樣分佈,故錯誤更正碼解碼器1148即可依據復原資料位元序列1147所代表之使用者資料、內部奇偶校驗碼、與外部奇偶校驗碼進行錯誤更正碼解碼,以取得解碼後之使用者資料(例如錯誤更正碼解碼器1148所輸出之「使用者資料位元」)。
第3圖為第2圖所示之方法於一實施例中所涉及之資料型樣調整的示意圖。第3圖左半部可代表步驟914所述調整前之資料型樣分佈,而第3圖右半部則代表步驟914所述調整後之資料型樣分佈,其中橫軸代表資料型樣類型,而縱軸代表資料型樣機率。於執行步驟918之後,解隨機函數發生器1146復原該資料之原始資料型樣分佈,如第3圖左半部所示。
請注意,調整後之資料型樣分佈比調整前之資料型樣分佈更為平均,其中在資料型樣類型的個數甚多的狀況下,資料型樣機率的平均值會趨近於零。另外,在步驟914的調整之前,第3圖左半部所示之問題資料型樣(即以虛線標示之資料型樣)原本具有相當大的相對機率密度;於步驟914的調整之後,這些問題資料型樣的相對機率密度都降低了,如第3圖右半部所示。因此,相較於習知技術,在某些特定資料型樣特別容易造成錯誤(例如:寫入錯誤、讀取錯誤...等)的狀況下,當使用者基於其使用習慣而不斷地寫入具有這些特定資料型樣的資料時,本發明之方法以及相關之記憶裝置及其控制器能將存取資料之錯誤率大幅地降低。
依據本發明一實施例,尤其是該第一實施例之一特例,該控制器包含有至少一線性反饋平移暫存器(Linear Feedback Shift Register,LFSR),用來產生至少一隨機函數。例如:記憶體控制器110包含兩個線性反饋平移暫存器,分別設置於隨機函數發生器1144與解隨機函數發生器1146中,其中隨機函數發生器1144與解隨機函數發生器1146中之每一者包含一線性反饋平移暫存器。依據本實施例,這兩個線性反饋平移暫存器中之每一者包含有至少一開關,以構成至少一可編程(Programmable)線性反饋平移暫存器,例如第4A圖所示之可編程線性反饋平移暫存器410。然而,這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之一變化例,隨機函數發生器1144與解隨機函數發生器1146亦可共用同一個可編程線性反饋平移暫存器。
實作上,可編程線性反饋平移暫存器410包含:複數個加法器412-1、412-2、412-3、與412-4,複數個暫存器414-0、414-1、414-2、414-3、與414-4,以及複數個開關416-1、416-2、416-3、與416-4。加法器412-1、412-2、412-3、與412-4可為模加法器(modulo 2 adder)。請注意,暫存器414-0、414-1、414-2、414-3、與414-4在初始狀態下暫存一系列數值{0,1,0,1,0},分別標示於各個暫存器上。然而,這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之其它變化例,暫存器414-0、414-1、414-2、414-3、與414-4在初始狀態下亦可暫存別的數值。
另外,可編程線性反饋平移暫存器410之每一開關係設置於可編程線性反饋平移暫存器410之一線性組合路徑。記憶體控制器110將至少一鎖鑰(Key)輸入至可編程線性反饋平移暫存器410之開關,以利用該鎖鑰來設定可編程線性反饋平移暫存器410之線性組合路徑。依據本實施例,開關416-1、416-2、416-3、與416-4分別依據對應於該鎖鑰之切換訊號SW-1、SW-2、SW-3、與SW-4來切換。當一開關416-n(n=1、2、3、或4)所接收之切換訊號SW-n對應於一開啟狀態時(例如切換訊號SW-n為邏輯值1時,可記為“SW-n=1”,則開關416-n接通其所處之線性組合路徑,也就是從暫存器414-n的輸出端反饋至加法器412-n的路徑;否則(即切換訊號SW-n對應於一關閉狀態時,例如切換訊號SW-n為邏輯值0時,可記為“SW-n=0”),開關416-n斷開其所處之線性組合路徑。因此,藉由改變輸入可編程線性反饋平移暫存器410之鎖鑰,記憶體控制器110能重新設定可編程線性反饋平移暫存器410之線性組合路徑,亦即改變可編程線性反饋平移暫存器410之結構。
更詳細地說,藉由改變輸入可編程線性反饋平移暫存器410之鎖鑰,記憶體控制器110能重新設定可編程線性反饋平移暫存器410用來產生隨機函數之產生方程式。舉例來說,如第4B圖之可編程線性反饋平移暫存器420,其隨機函數產生方程式為G1
,而其所產生之隨機函數序列S1
為“0000101011101100011111001101001”。若暫存器424-0、424-1、424-2、424-3、與424-4在初始狀態下所暫存之系列數值為{0,1,0,0,0},則可編程線性反饋平移暫存器420會自隨機函數序列S1
的第1個位元(“0”)開始循序輸出隨機函數序列S1
的各個位元。當該隨機函數序列S1
已全部被輸出(最後一個位元“1”),則可編程線性反饋平移暫存器420會接著輸出隨機函數序列S1
的第1個位元(“0”)。如此週而復始地輸出隨機函數序列S1
。暫存器424-0~424-4的初始狀態會決定可編程線性反饋平移暫存器420從隨機函數序列S1
中第幾個位元開始輸出該序列。例如,若暫存器424-0~424-4的初始狀態為{1,1,0,1,0},則可編程線性反饋平移暫存器420會自隨機函數序列S1
的第5個位元(“1”)開始循序輸出隨機函數序列S1
的各個位元。在另一實施例中,如第4C圖之可編程線性反饋平移暫存器430,其隨機函數產生方程式為G2
,而其所產生之隨機函數序列S2
為“0000110101001000101111101100111”。
如此一來,藉由輸入不同的可編程線性反饋平移暫存器410之鎖鑰,記憶體控制器110能使可編程線性反饋平移暫存器410產生不同的隨機函數。從而增加虛擬亂碼位元序列1145的亂度(entropy),使得調整後之資料型樣分佈更為平均。請注意到,第4A、4B、4C圖中所示之暫存器、加法器、開關等相關元件個數僅為說明之用。使用者當得依據其需要增加或減少暫存器與加法器個數。
在另一實施例中,為了增加虛擬亂碼位元序列1145的亂度,記憶體控制器110可以改變鎖鑰使可編程線性反饋平移暫存器410以複數個不同的隨機函數對編碼資料位元序列1143中之一頁資料進行處理。例如,編碼資料位元序列1143中之一頁資料有512千位元組(kilobyte,即1024位元組),記憶體控制器110以第1鎖鑰設定可編程線性反饋平移暫存器410,使隨機函數發生器1144以隨機函數序列S1
處理編碼資料位元序列1143中之該頁資料的第1~31位元,接著記憶體控制器110以第2鎖鑰設定可編程線性反饋平移暫存器410,使隨機函數發生器1144以隨機函數序列S2
處理編碼資料位元序列1143中之該頁資料的第32~62位元,依此類推。如此一來虛擬亂碼位元序列1145的亂度即可增加。
依據本實施例,可編程線性反饋平移暫存器410可應用於第1圖所示之隨機函數發生器1144或解隨機函數發生器1146。例如:當標號400代表隨機函數發生器1144時,位元序列402與408分別代表編碼資料位元序列1143與虛擬亂碼位元序列1145。又例如:當標號400代表解隨機函數發生器1146時,位元序列402與408分別代表虛擬亂碼位元序列1145’與復原資料位元序列1147。然而,這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之一變化例(例如接續步驟914所述之變化例),在隨機函數發生器1144設置於控制邏輯114之外的狀況下,可編程線性反饋平移暫存器410代表隨機函數發生器1144,其中位元序列402與408分別代表編碼資料位元序列1143與虛擬亂碼位元序列1145,而加法器405則用來注入該第一隨機函數之序列並據以調整編碼資料位元序列1143。其中,加法器405可為模加法器(modulo 2 adder)。依據本實施例之另一變化例(例如接續步驟918所述之變化例),在解隨機函數發生器1146設置於控制邏輯114之外的狀況下,可編程線性反饋平移暫存器410代表解隨機函數發生器1146,其中位元序列402與408分別代表虛擬亂碼位元序列1145’與復原資料位元序列1147,而加法器405則用來注入該第二隨機函數之序列並據以調整虛擬亂碼位元序列1145’。
依據本實施例之另一變化例,可編程線性反饋平移暫存器410可藉由程式碼112C中之軟體模組來實現,而記憶體控制器110利用鎖鑰改變由程式碼112C之軟體模組所實現之可編程線性反饋平移暫存器410的隨機函數產生方程式。其中加法器405仍設置於控制邏輯114之內,用來注入該第一隨機函數之序列或該第二隨機函數之序列,並據以調整位元序列402。依據本變化例或其它變化例,隨機函數發生器1144之至少一部分可藉由執行程式碼112C之微處理器112來實施;相仿地,解隨機函數發生器1146之至少一部分亦可藉由執行程式碼112C之微處理器112來實施。
依據本實施例,該鎖鑰的產生方法係定義於程式碼112C,故透過微處理器112執行程式碼112C之記憶體控制器110可決定該鎖鑰。例如:記憶體控制器110可決定該鎖鑰為某一鎖鑰值,該鎖鑰值之二進位形式的數個位元分別代表切換訊號SW-n(n=1、2、3、4)的開啟/關閉狀態,其中該鎖鑰值之這些位元可為邏輯值1或0,分別代表開啟狀態與關閉狀態。然而,這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之一變化例,該鎖鑰值係為一預定值,其各個位元分別代表預定的開啟/關閉狀態。請注意到,鎖鑰之位元數可依開關數而定。
依據本實施例之另一變化例,該鎖鑰係對應於可編程線性反饋平移暫存器410之輸入而變化。例如:該鎖鑰包含至少一區塊位址或至少一頁位址,尤其是位元序列402所代表的資料之邏輯位址或其儲存在快閃記憶體120中之實體位址。當記憶體控制器110決定某一區塊位址或頁位址作為該鎖鑰之一鎖鑰值時,該區塊位址或頁位址之二進位形式的數個位元就能用來即時設定可編程線性反饋平移暫存器410之線性組合路徑以決定其隨機函數產生方程式。
依據本實施例之另一變化例,該鎖鑰對應於至少一區塊位址或至少一頁位址,尤其是位元序列402所代表的資料之位址。記憶體控制器110可依據一運算規則,來決定某一區塊位址或頁位址所對應之鎖鑰值,其中該鎖鑰值的數個位元就能用來即時設定可編程線性反饋平移暫存器410之線性組合路徑。例如,該運算規則可為,以該區塊位址或頁位址之奇數位元(或偶數位元)為所對應之鎖鑰值,或者,以該區塊位址或頁位址之一部分為所對應之鎖鑰值等。
依據本實施例之另一變化例,該鎖鑰對應於至少一區塊位址或至少一頁位址,尤其是位元序列402所代表的資料之邏輯位址或其儲存在快閃記憶體120之實體位址。記憶體控制器110可依據一查對表(Look-up Table),來查找某一區塊位址或頁位址所對應之鎖鑰值,其中該鎖鑰值的數個位元就能用來即時設定可編程線性反饋平移暫存器410之線性組合路徑。
第5圖為依據本發明一第二實施例之一種記憶裝置200的示意圖,其中本實施例係為第一實施例之變化例。如第5圖所示,上述之控制邏輯114被代換為控制邏輯214,其中除了第1圖所示之原屬控制邏輯114的各個元件之外,控制邏輯214另包含一鎖鑰產生器2140。因應上述之架構上的改變,該控制器於本實施例中改稱為記憶體控制器210。
請注意,本實施例之鎖鑰產生器2140可用來取代前述之各個實施例/變化例當中對該鎖鑰之產生機制,尤其是用來取代程式碼112C所定義之該鎖鑰的產生方法,其中該鎖鑰的產生方法仍可比照前述之各個實施例/變化例。例如:鎖鑰產生器2140可藉由利用上述之查對表來產生該鎖鑰之一系列鎖鑰值。
第6圖為第5圖所示之鎖鑰產生器2140於一實施例中所採用的查對表,其中該查對表之左半部可代表上述之至少一區塊位址或至少一頁位址,而該查對表之右半部則代表該鎖鑰之鎖鑰值。然而,這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之一變化例,鎖鑰產生器2140可依據該查對表或另一查對表,來設定暫存器414-0、414-1、414-2、414-3、與414-4在初始狀態或其它狀態下所暫存之一系列數值。
依據本實施例之另一變化例,在隨機函數發生器1144與解隨機函數發生器1146中之每一者包含一第一可編程線性反饋平移暫存器(其實施方式例如第4A圖所示之可編程線性反饋平移暫存器410)之狀況下,記憶體控制器110利用一第二可編程線性反饋平移暫存器(其實施方式例如第4A圖所示之可編程線性反饋平移暫存器410)作為鎖鑰產生器2140,其中鎖鑰產生器2140所產生之該鎖鑰係被輸入至該第一可編程線性反饋平移暫存器。請注意,本變化例之鎖鑰產生器2140內之一個或多個線性組合路徑可依據預設路徑安排,直接以導線導通,故不需要設置上述的開關416-n。第二可編程線性反饋平移暫存器之數個暫存器之初始狀態可對應於至少一區塊位址或至少一頁位址,尤其是位元序列402所代表的資料之邏輯位址或其儲存在快閃記憶體120之實體位址,以增加其亂度。此外,第二可編程線性反饋平移暫存器亦得以類似於第4A圖所示之可編程線性反饋平移暫存器410之形式實現。本變化例與前述之各個實施例/變化例相仿之處不再重覆贅述。
依據本實施例之另一變化例,在隨機函數發生器1144與解隨機函數發生器1146共用同一個第一可編程線性反饋平移暫存器之狀況下,記憶體控制器110利用該第二可編程線性反饋平移暫存器作為鎖鑰產生器2140,其中鎖鑰產生器2140所產生之該鎖鑰係被輸入至該第一可編程線性反饋平移暫存器。本變化例與前述之各個實施例/變化例相仿之處不再重覆贅述。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100,200...記憶裝置
110,210...記憶體控制器
112...微處理器
112C...程式碼
112M...唯讀記憶體
114,214...控制邏輯
1142...錯誤更正碼編碼器
1143...編碼資料位元序列
1144...隨機函數發生器
1145,1145’...虛擬亂碼位元序列
1146...解隨機函數發生器
1147...復原資料位元序列
1148...錯誤更正碼解碼器
116...緩衝記憶體
118...介面邏輯
120...快閃記憶體
2140...鎖鑰產生器
400...隨機函數發生器或解隨機函數發生器
402,408...位元序列
405,412-1,412-2,412-3,412-4...加法器
410,420,430...可編程線性反饋平移暫存器
414-0,414-1,414-2,414-3,414-4...暫存器
416-1,416-2,416-3,416-4...開關
SW-1,SW-2,SW-3,SW-4...對應於鎖鑰之切換訊號
910...針對一快閃記憶體的控制器所存取之資料來進行資料型樣管理之方法
912,914,916,918...步驟
第1圖為依據本發明一第一實施例之一種記憶裝置的示意圖。
第2圖為依據本發明一實施例之一種針對一快閃記憶體(Flash Memory)的控制器所存取(Access)之資料來進行資料型樣(Data Pattern)管理之方法的流程圖。
第3圖為第2圖所示之方法於一實施例中所涉及之資料型樣調整的示意圖。
第4A至4C圖為第1圖所示之記憶裝置於數個實施例中所採用的可編程線性反饋平移暫存器(Programmable Linear Feedback Shift Register,Programmable LFSR)的示意圖,其中該些可編程線性反饋平移暫存器可應用於第1圖所示之隨機函數發生器(Randomizer)或解隨機函數發生器(Derandomizer)。
第5圖為依據本發明一第二實施例之一種記憶裝置的示意圖。
第6圖為第5圖所示之鎖鑰產生器於一實施例中所採用的查對表(Look-up Table)。
910...針對一快閃記憶體的控制器所存取之資料來進行資料型樣管理之方法
912,914,916,918...步驟
Claims (13)
- 一種針對一快閃記憶體(Flash Memory)的控制器所存取(Access)之資料來進行資料型樣(Data Pattern)管理之方法,該方法包含有:於該控制器接收到一寫入命令時,產生一第一隨機函數(Random Function),其中該寫入命令係用來指示該控制器將該資料寫入該快閃記憶體;依據該第一隨機函數之序列來逐位元地調整該資料之複數個位元以產生一虛擬亂碼位元序列,並將該虛擬亂碼位元序列寫入該快閃記憶體以代表該資料,藉此調整該資料之資料型樣分佈;於該控制器中提供至少一線性反饋平移暫存器(Linear Feedback Shift Register,LFSR);利用該至少一線性反饋平移暫存器來產生至少一隨機函數,其中該至少一隨機函數包含該第一隨機函數;於該至少一線性反饋平移暫存器中提供至少一開關,以構成至少一可編程(Programmable)線性反饋平移暫存器,其中該可編程線性反饋平移暫存器之每一開關係設置於該可編程線性反饋平移暫存器之一線性組合路徑;以及將至少一鎖鑰(Key)輸入至該可編程線性反饋平移暫存器之開關,以利用該至少一鎖鑰來設定該可編程線性反饋平移暫存器之線性組合路徑。
- 如申請專利範圍第1項所述之方法,其中該鎖鑰係對應於該可編程線性反饋平移暫存器之輸入而變化。
- 如申請專利範圍第2項所述之方法,其中該鎖鑰包含至少一區塊位址或至少一頁位址;或該鎖鑰對應於至少一區塊位址或至少一頁位址。
- 如申請專利範圍第1項所述之方法,其中該至少一可編程線性反饋平移暫存器包含一第一可編程線性反饋平移暫存器與一第二可編程線性反饋平移暫存器;以及該方法另包含有:利用該第二可編程線性反饋平移暫存器作為一鎖鑰產生器;以及將該鎖鑰產生器所產生之鎖鑰輸入至該第一可編程線性反饋平移暫存器。
- 一種記憶裝置,其包含有:一快閃記憶體(Flash Memory),該快閃記憶體包含複數個區塊;以及一控制器,用來存取(Access)該快閃記憶體以及管理該複數個區塊,並且另針對該控制器本身所存取之資料來進行資料型樣(Data Pattern)管理,其中該控制器包含有:一隨機函數發生器(Randomizer),用來於該控制器接收到一寫入命令時,產生一第一隨機函數(Random Function),其中 該寫入命令係用來指示該控制器將該資料寫入該快閃記憶體;以及至少一線性反饋平移暫存器(Linear Feedback Shift Register,LFSR),用來產生至少一隨機函數,其中該隨機函數發生器包含該至少一線性反饋平移暫存器中之一者;其中該控制器依據該第一隨機函數之序列來逐位元地調整該資料之複數個位元以產生一虛擬亂碼位元序列,並將該虛擬亂碼位元序列寫入該快閃記憶體以代表該資料,藉此調整該資料之資料型樣分佈;該至少一線性反饋平移暫存器包含有至少一開關,以構成至少一可編程(Programmable)線性反饋平移暫存器;該可編程線性反饋平移暫存器之每一開關係設置於該可編程線性反饋平移暫存器之一線性組合路徑;以及該控制器將至少一鎖鑰(Key)輸入至該可編程線性反饋平移暫存器之開關,以利用該至少一鎖鑰來設定該可編程線性反饋平移暫存器之線性組合路徑。
- 如申請專利範圍第5項所述之記憶裝置,其中該鎖鑰係對應於該可編程線性反饋平移暫存器之輸入而變化。
- 如申請專利範圍第6項所述之記憶裝置,其中該鎖鑰包含至少一區塊位址或至少一頁位址;或該鎖鑰對應於至少一區塊位址或至少一頁位址。
- 如申請專利範圍第5項所述之記憶裝置,其中該至少一可編程線性反饋平移暫存器包含一第一可編程線性反饋平移暫存器與一第二可編程線性反饋平移暫存器;以及該控制器利用該第二可編程線性反饋平移暫存器作為一鎖鑰產生器,其中該鎖鑰產生器所產生之鎖鑰係被輸入至該第一可編程線性反饋平移暫存器。
- 一種記憶裝置之控制器,該控制器係用來存取(Access)一快閃記憶體(Flash Memory),該快閃記憶體包含複數個區塊,該控制器包含有:一唯讀記憶體(Read Only Memory,ROM),用來儲存一程式碼;一微處理器,用來執行該程式碼以控制對該快閃記憶體之存取以及管理該複數個區塊;一隨機函數發生器(Randomizer),用來於該控制器接收到一寫入命令時,產生一第一隨機函數(Random Function),其中該寫入命令係用來指示該控制器將資料寫入該快閃記憶體;以及至少一線性反饋平移暫存器(Linear Feedback Shift Register,LFSR),用來產生至少一隨機函數,其中該隨機函數發生器包含該至少一線性反饋平移暫存器中之一者;其中該控制器依據該第一隨機函數之序列來逐位元地調整該資料之複數個位元以產生一虛擬亂碼位元序列,並將該虛擬亂碼位元序列寫入該快閃記憶體以代表該資料,藉此調整該資料之資料 型樣(Data Pattern)分佈;該至少一線性反饋平移暫存器包含有至少一開關,以構成至少一可編程(Programmable)線性反饋平移暫存器;該可編程線性反饋平移暫存器之每一開關係設置於該可編程線性反饋平移暫存器之一線性組合路徑;以及該控制器將至少一鎖鑰(Key)輸入至該可編程線性反饋平移暫存器之開關,以利用該至少一鎖鑰來設定該可編程線性反饋平移暫存器之線性組合路徑。
- 如申請專利範圍第9項所述之控制器,其中該鎖鑰係對應於該可編程線性反饋平移暫存器之輸入而變化。
- 如申請專利範圍第10項所述之控制器,其中該鎖鑰包含至少一區塊位址或至少一頁位址;或該鎖鑰對應於至少一區塊位址或至少一頁位址。
- 如申請專利範圍第9項所述之控制器,其中該至少一可編程線性反饋平移暫存器包含一第一可編程線性反饋平移暫存器與一第二可編程線性反饋平移暫存器;以及該控制器利用該第二可編程線性反饋平移暫存器作為一鎖鑰產生器,其中該鎖鑰產生器所產生之鎖鑰係被輸入至該第一可編程線性反饋平移暫存器。
- 如申請專利範圍第9項所述之控制器,其中該隨機函數發生器 之至少一部分係藉由執行該程式碼之該微處理器來實施。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW098124411A TWI435328B (zh) | 2009-07-20 | 2009-07-20 | 針對一快閃記憶體的控制器所存取之資料來進行資料型樣管理之方法以及相關之記憶裝置及其控制器 |
US12/647,555 US8612667B2 (en) | 2009-07-20 | 2009-12-28 | Method for performing data pattern management regarding data accessed by a controller of a flash memory, and associated memory device and controller thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW098124411A TWI435328B (zh) | 2009-07-20 | 2009-07-20 | 針對一快閃記憶體的控制器所存取之資料來進行資料型樣管理之方法以及相關之記憶裝置及其控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201104688A TW201104688A (en) | 2011-02-01 |
TWI435328B true TWI435328B (zh) | 2014-04-21 |
Family
ID=43466041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098124411A TWI435328B (zh) | 2009-07-20 | 2009-07-20 | 針對一快閃記憶體的控制器所存取之資料來進行資料型樣管理之方法以及相關之記憶裝置及其控制器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8612667B2 (zh) |
TW (1) | TWI435328B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9430159B2 (en) | 2014-10-13 | 2016-08-30 | Silicon Motion, Inc. | Non-volatile memory devices and controllers |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8817928B2 (en) * | 2010-06-01 | 2014-08-26 | Ternarylogic Llc | Method and apparatus for rapid synchronization of shift register related symbol sequences |
US8935532B2 (en) * | 2010-10-21 | 2015-01-13 | Qumu Corporation | Content distribution and aggregation |
KR20120095609A (ko) * | 2011-02-21 | 2012-08-29 | 삼성전자주식회사 | 반도체 메모리 시스템 및 이의 프로그램 방법 |
KR20130052971A (ko) * | 2011-11-14 | 2013-05-23 | 삼성전자주식회사 | 비휘발성 메모리 장치의 동작 방법 |
KR101811298B1 (ko) * | 2011-12-28 | 2017-12-27 | 삼성전자주식회사 | 랜덤마이져로 씨드를 제공하는 씨드 컨트롤러 및 그것을 포함한 메모리 컨트롤러 |
KR20140114516A (ko) | 2013-03-15 | 2014-09-29 | 삼성전자주식회사 | 메모리 컨트롤러 및 이의 동작 방법 |
JP2014224879A (ja) * | 2013-05-16 | 2014-12-04 | 株式会社メガチップス | 乱数生成装置、暗号処理装置、記憶装置及び情報処理システム |
TWI533305B (zh) | 2014-02-10 | 2016-05-11 | 慧榮科技股份有限公司 | 將資料寫入至快閃記憶體的方法及相關的記憶裝置與快閃記憶體 |
KR102233808B1 (ko) * | 2014-03-14 | 2021-03-30 | 삼성전자주식회사 | 저장 장치 및 그것의 테이블 관리 방법 |
KR20150122825A (ko) * | 2014-04-23 | 2015-11-03 | 에스케이하이닉스 주식회사 | 메모리 컨트롤 유닛 및 그것을 포함하는 데이터 저장 장치 |
KR102200108B1 (ko) | 2014-10-10 | 2021-01-08 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 그 동작 방법 |
US10330313B2 (en) * | 2016-07-11 | 2019-06-25 | Well Traveled Imports INC | Twirling flame heater |
US9921956B2 (en) * | 2016-07-20 | 2018-03-20 | Sandisk Technologies Llc | System and method for tracking block level mapping overhead in a non-volatile memory |
JP2023111422A (ja) * | 2022-01-31 | 2023-08-10 | キオクシア株式会社 | 情報処理装置 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5799168A (en) * | 1996-01-05 | 1998-08-25 | M-Systems Flash Disk Pioneers Ltd. | Standardized flash controller |
US6240183B1 (en) * | 1997-06-19 | 2001-05-29 | Brian E. Marchant | Security apparatus for data transmission with dynamic random encryption |
JP3602984B2 (ja) * | 1999-07-09 | 2004-12-15 | 富士通株式会社 | メモリ装置 |
US6978412B1 (en) * | 1999-08-16 | 2005-12-20 | Advanced Micro Devices, Inc. | Method and apparatus for adaptive frame tracking |
TW455870B (en) * | 1999-12-09 | 2001-09-21 | Acer Labs Inc | Memory mapping method |
KR20010081335A (ko) * | 2000-02-12 | 2001-08-29 | 구자홍 | 차세대 고밀도 기록 매체를 위한 디지털 데이터의 오류정정 부호화 방법 |
JP3459609B2 (ja) * | 2000-03-17 | 2003-10-20 | 三洋電機株式会社 | ライトキャッシュ回路、ライトキャッシュ回路を備えた記録装置、およびライトキャッシュ方法 |
US20020196935A1 (en) * | 2001-02-25 | 2002-12-26 | Storymail, Inc. | Common security protocol structure and mechanism and system and method for using |
US20060072747A1 (en) * | 2001-03-30 | 2006-04-06 | Wood Matthew D | Enhancing entropy in pseudo-random number generators using remote sources |
TW594477B (en) * | 2003-05-02 | 2004-06-21 | Genesys Logic Inc | Method and related device for accessing non-volatile memory of dual platforms for PC and X-BOX |
JP3826401B2 (ja) * | 2003-09-09 | 2006-09-27 | 船井電機株式会社 | Ieee1394シリアルバスに接続されるコントローラ機器 |
CN1632828A (zh) * | 2003-12-24 | 2005-06-29 | 劲永国际股份有限公司 | 一种对资料加密保护的usb界面资料处理卡 |
JP2005285153A (ja) * | 2004-03-26 | 2005-10-13 | Toshiba Corp | 情報記録媒体、情報再生装置、情報再生方法、および情報記録方法 |
US7444577B2 (en) * | 2005-08-04 | 2008-10-28 | Rambus Inc. | Memory device testing to support address-differentiated refresh rates |
US7734866B2 (en) * | 2005-08-04 | 2010-06-08 | Rambus Inc. | Memory with address-differentiated refresh rate to accommodate low-retention storage rows |
US7565479B2 (en) * | 2005-08-04 | 2009-07-21 | Rambus Inc. | Memory with refresh cycle donation to accommodate low-retention-storage rows |
US7398351B2 (en) * | 2006-05-23 | 2008-07-08 | International Business Machines Corporation | Method and system for controlling access to data of a tape data storage medium using encryption/decryption of metadata |
US20080133832A1 (en) * | 2006-12-01 | 2008-06-05 | Dilip Bhavnani | Flash drive-radio combination |
US20080148001A1 (en) * | 2006-12-14 | 2008-06-19 | Telefonaktiebolaget L M Ericsson (Publ) | Virtual Secure On-Chip One Time Programming |
US8127200B2 (en) * | 2006-12-24 | 2012-02-28 | Sandisk Il Ltd. | Flash memory device and system with randomizing for suppressing errors |
US8370561B2 (en) | 2006-12-24 | 2013-02-05 | Sandisk Il Ltd. | Randomizing for suppressing errors in a flash memory |
US8233624B2 (en) * | 2007-05-25 | 2012-07-31 | Splitstreem Oy | Method and apparatus for securing data in a memory device |
-
2009
- 2009-07-20 TW TW098124411A patent/TWI435328B/zh active
- 2009-12-28 US US12/647,555 patent/US8612667B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9430159B2 (en) | 2014-10-13 | 2016-08-30 | Silicon Motion, Inc. | Non-volatile memory devices and controllers |
Also Published As
Publication number | Publication date |
---|---|
TW201104688A (en) | 2011-02-01 |
US20110016263A1 (en) | 2011-01-20 |
US8612667B2 (en) | 2013-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI435328B (zh) | 針對一快閃記憶體的控制器所存取之資料來進行資料型樣管理之方法以及相關之記憶裝置及其控制器 | |
US10157098B2 (en) | Flash memory apparatus and storage management method for flash memory | |
JP6606039B2 (ja) | メモリシステムおよび制御方法 | |
TWI455144B (zh) | 使用於快閃記憶體的控制方法與控制器 | |
TWI455136B (zh) | 用來進行資料整形之方法以及相關之記憶裝置及其控制器 | |
TWI438778B (zh) | 用來抑制資料錯誤之方法以及相關之記憶裝置及其控制器 | |
TWI446350B (zh) | 用來減少無法更正的錯誤之方法以及記憶裝置及其控制器 | |
CN108268337B (zh) | 于记忆装置中进行数据管理的方法、记忆装置及其控制器 | |
US9582224B2 (en) | Memory control circuit unit, memory storage apparatus and data accessing method | |
US9213636B2 (en) | Data accessing method for flash memory storage device having data perturbation module, and storage system and controller using the same | |
US11294589B2 (en) | Method for performing access control in a memory device, associated memory device and controller thereof | |
US20170168893A1 (en) | Data reading method, memory control circuit unit and memory storage apparatus | |
US10043573B2 (en) | Apparatus and method for endurance friendly programming using lower voltage thresholds | |
US11675714B2 (en) | Memory sub-system including an in package sequencer separate from a controller | |
TWI698742B (zh) | 用來於一記憶裝置中進行存取控制之方法以及記憶裝置及其控制器 | |
US10546640B2 (en) | Data protecting method and memory storage device | |
TWI442406B (zh) | 針對一快閃記憶體的控制器之錯誤管理機制來提升驗證效率之方法以及相關之記憶裝置及其控制器 | |
US10642509B2 (en) | Method for designating specific world-lines of data storage device as reserved word-lines, and selecting a writing mode accordingly | |
CN108664350B (zh) | 数据保护方法、存储器存储装置及存储器控制电路单元 | |
US8583855B2 (en) | Flash memory preprocessing system and method | |
CN102034542B (zh) | 数据型样管理的方法以及相关的记忆装置及其控制器 |