TWI455136B - 用來進行資料整形之方法以及相關之記憶裝置及其控制器 - Google Patents
用來進行資料整形之方法以及相關之記憶裝置及其控制器 Download PDFInfo
- Publication number
- TWI455136B TWI455136B TW099121667A TW99121667A TWI455136B TW I455136 B TWI455136 B TW I455136B TW 099121667 A TW099121667 A TW 099121667A TW 99121667 A TW99121667 A TW 99121667A TW I455136 B TWI455136 B TW I455136B
- Authority
- TW
- Taiwan
- Prior art keywords
- random function
- data
- seed
- controller
- generator
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 32
- 238000007493 shaping process Methods 0.000 title claims description 27
- 230000006870 function Effects 0.000 claims description 182
- 230000015654 memory Effects 0.000 claims description 128
- 238000012905 input function Methods 0.000 claims description 2
- 102100039643 Rho-related GTP-binding protein Rho6 Human genes 0.000 description 21
- 101710199571 Rho-related GTP-binding protein Rho6 Proteins 0.000 description 21
- 238000012937 correction Methods 0.000 description 13
- 102100039640 Rho-related GTP-binding protein RhoE Human genes 0.000 description 9
- 108050007494 Rho-related GTP-binding protein RhoE Proteins 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 102100039642 Rho-related GTP-binding protein RhoN Human genes 0.000 description 7
- 108050007497 Rho-related GTP-binding protein RhoN Proteins 0.000 description 7
- 230000001413 cellular effect Effects 0.000 description 6
- 239000000463 material Substances 0.000 description 6
- 230000007717 exclusion Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Read Only Memory (AREA)
- Detection And Correction Of Errors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明係有關於快閃記憶體(Flash Memory)之存取(Access),尤指一種用來進行資料整形(Data Shaping)之方法以及相關之記憶裝置及其控制器。
近年來由於快閃記憶體的技術不斷地發展,各種可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡)或具備快閃記憶體之固態硬碟(Solid State Drive,SSD)被廣泛地實施於諸多應用中。因此,這些記憶裝置中之快閃記憶體的存取控制遂成為相當熱門的議題。
以常用的NAND型快閃記憶體而言,其主要可區分為單階細胞(Single Level Cell,SLC)與多階細胞(Multiple Level Cell,MLC)兩大類之快閃記憶體。單階細胞快閃記憶體中之每個被當作記憶單元的電晶體只有兩種電荷值,分別用來表示邏輯值0與邏輯值1。另外,多階細胞快閃記憶體中之每個被當作記憶單元的電晶體的儲存能力則被充分利用,係採用較高的電壓來驅動,以透過不同級別的電壓在一個電晶體中記錄兩組位元資訊(00、01、11、10);理論上,多階細胞快閃記憶體的記錄密度可以達到單階細胞快閃記憶體的記錄密度之兩倍,這對於曾經在發展過程中遇到瓶頸的NAND型快閃記憶體之相關產業而言,是非常好的消息。
相較於單階細胞快閃記憶體,由於多階細胞快閃記憶體之價格較便宜,並且在有限的空間裡可提供較大的容量,故多階細胞快閃記憶體很快地成為市面上之可攜式記憶裝置競相採用的主流。然而,多階細胞快閃記憶體的不穩定性所導致的問題也一一浮現。為了確保記憶裝置對快閃記憶體之存取控制能符合相關規範,快閃記憶體的控制器通常備有某些管理機制以妥善地管理資料之存取。
依據相關技術,有了這些管理機制的記憶裝置還是有不足之處。舉例來說,使用者可能基於其使用習慣而不斷地寫入具有某些特定資料型樣的資料,而這些特定資料型樣特別容易造成錯誤(例如:寫入錯誤、讀取錯誤...等);雖然在記憶裝置中設置有隨機函數發生器(Randomizer)來調整資料以期解決這樣的問題,卻由於傳統的低成本設計,以致調整後的資料不夠隨機。另外,一旦需要進行快閃記憶體的內部資料搬移,可能發生該隨機函數發生器之輸入種子(Seed)無法正確地產生之問題,進而導致資料錯誤。因此,需要一種新穎的方法針對該控制器所存取之資料來進行妥善的資料型樣管理,以減少錯誤的發生。
因此本發明之目的之一在於提供一種用來進行資料整形(Data Shaping)之方法以及相關之記憶裝置及其控制器,以解決上述問題。
本發明之另一目的在於提供一種用來進行資料整形之方法以及相關之記憶裝置及其控制器,以抑制資料錯誤。
本發明之另一目的在於提供一種用來進行資料整形之方法以及相關之記憶裝置及其控制器,以便在不將隨機函數發生器(Randomizer)之輸入種子(Seed)併入欲於一快閃記憶體(Flash Memory)寫入的資料之狀況下,進行該快閃記憶體的內部資料搬移。
本發明之較佳實施例中提供一種用來進行資料整形之方法,該方法係應用於一快閃記憶體的控制器,該快閃記憶體包含複數個區塊,該方法包含有:依據欲於該快閃記憶體寫入/讀取的資料之內容來產生/重獲(Recover)至少一隨機函數發生器/解隨機函數發生器(Derandomizer)之一輸入種子;以及利用該隨機函數發生器/解隨機函數發生器依據該輸入種子產生一隨機函數(Random Function),以供用來調整該資料之複數個位元。
本發明於提供上述方法之同時,亦對應地提供一種記憶裝置,其包含有:一快閃記憶體,該快閃記憶體包含複數個區塊;以及一控制器,用來存取(Access)該快閃記憶體以及管理該複數個區塊,並且另針對該控制器本身所存取之資料來進行資料整形。另外,該控制器包含有至少一隨機函數發生器/解隨機函數發生器,用來依據一輸入種子產生一隨機函數,以供用來於該控制器接收到一寫入/讀取命令時調整該資料之複數個位元,其中該寫入/讀取命令係用來指示該控制器於該快閃記憶體寫入/讀取該資料。此外,該控制器依據該資料之內容來產生/重獲該輸入種子。
本發明於提供上述方法之同時,亦對應地提供一種記憶裝置之控制器,該控制器係用來存取一快閃記憶體,該快閃記憶體包含複數個區塊,該控制器包含有:一唯讀記憶體(Read Only Memory,ROM),用來儲存一程式碼;一微處理器,用來執行該程式碼以控制對該快閃記憶體之存取以及管理該複數個區塊,其中在該微處理器之控制下,該控制器針對該控制器本身所存取之資料來進行資料整形;以及至少一隨機函數發生器/解隨機函數發生器,用來依據一輸入種子產生一隨機函數,以供用來於該控制器接收到一寫入/讀取命令時調整該資料之複數個位元,其中該寫入/讀取命令係用來指示該控制器於該快閃記憶體寫入/讀取該資料。另外,該控制器依據該資料之內容來產生/重獲該輸入種子。
請參考第1A圖,第1A圖為依據本發明一第一實施例之一種記憶裝置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包含一調整單元114A、一編碼器114E、一種子產生器(Seed Generator)114G、與至少一隨機函數發生器(Randomizer)/解隨機函數發生器(Derandomizer)114R。實作上,調整單元114A可為一互斥或(Exclusive OR,XOR)邏輯閘或一加法器。請注意,在此係以可攜式記憶裝置為例;這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之一變化例,記憶裝置100可為固態硬碟(Solid State Drive,SSD)。
於本實施例中,唯讀記憶體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還可針對其本身所存取之資料(例如:第1A圖所示之資料D1)來進行資料整形(Data Shaping)。尤其是,在微處理器112之控制下,針對記憶體控制器110本身所存取之資料,記憶體控制器110藉由利用隨機函數發生器/解隨機函數發生器114R之運作來進行資料整形以抑制資料錯誤。更明確而言,種子產生器114G可依據資料D1來產生一輸入種子S1,而隨機函數發生器/解隨機函數發生器114R係用來依據輸入種子S1產生一隨機函數(Random Function),以供用來於該控制器接收到一寫入/讀取命令時逐位元地調整該資料(諸如資料D1;尤其是在上述之寫入/讀取命令代表一寫入命令的狀況下)之複數個位元,其中該寫入/讀取命令係用來指示該控制器於快閃記憶體120寫入/讀取該資料。於是,第1A圖所示之調整單元114A依據隨機序列114RS(即上述之隨機函數之序列)調整資料D1以產生調整後之資料DRND1
。
依據本實施例,在上述之寫入/讀取命令代表該寫入命令的狀況下,當通過調整單元114A之資料路徑代表一寫入路徑時,資料D1可代表該控制器欲寫入快閃記憶體120之資料,而資料DRND1
可代表調整後的資料,以供編碼器114E進行編碼。另外,編碼器114E進行編碼,尤其是進行錯誤更正碼(Error Correction Code,ECC)編碼以產生編碼資料,並將該編碼資料寫入快閃記憶體120,其中該編碼資料可包含奇偶校驗碼(Parity Code)。這只是為了說明的目的而已,並非對本發明之限制。在上述之寫入/讀取命令代表一讀取命令的狀況下,當通過調整單元114A之資料路徑代表一讀取路徑時,該讀取路徑可耦接至一解碼器114D(未顯示於第1A圖中),其中解碼器114D對讀取自快閃記憶體120之編碼資料進行解碼,尤其是進行錯誤更正碼解碼以產生解碼資料諸如資料DRND1
。此狀況下,第1A圖所示之調整單元114A之輸入與輸出對調,即調整單元114A依據隨機序列114RS調整資料DRND1
以產生調整後之資料D1,以供進一步處理。依據本實施例之一特例,在上述之寫入/讀取命令代表該讀取命令的狀況下,種子產生器114G可用來作為一種子重獲(Recovery)器,並依據資料DRND1
重獲(Recover)輸入種子S1。依據本實施例之另一特例,記憶體控制器110包含一種子重獲器114Y(未顯示於第1A圖中),以供依據資料DRND1
重獲輸入種子S1,且在上述之寫入/讀取命令代表該讀取命令的狀況下,種子產生器114G係藉由切換電路之路徑切換而被代換為種子重獲器114Y。依據本實施例之一變化例,上述運作之至少一部分可利用程式碼112C中之一個或多個程式模組來實現;如此,上述運作所需之硬體之至少一部分可代換為透過微處理器112執行該一個或多個程式模組之記憶體控制器110。
第1B圖與第1C圖為第1A圖所示之記憶裝置100於一實施例中的實施細節。為了簡明起見,上述之調整單元114A係分別被併入第1B圖所示之種子產生器114G及第1C圖所示之種子重獲器114Y。也就是說,本實施例之種子產生器114G與種子重獲器114Y中之每一者包含調整單元114A。依據本實施例之一變化例,種子產生器114G與種子重獲器114Y可為同一個元件。
如第1B圖所示,在上述之寫入/讀取命令代表該寫入命令的狀況下,種子產生器114G接收資料D1並依據資料D1產生輸入種子S1,同時將資料D1暫時地儲存於緩衝記憶體116。另外,隨機函數發生器114RA自緩衝記憶體116讀出資料D1並依據輸入種子S1產生一隨機函數諸如上述之隨機函數,且依據該隨機函數之序列逐位元地調整資料D1之複數個位元以產生資料DRND1
。此外,編碼器114E對資料DRND1
進行錯誤更正碼編碼以產生編碼資料(於第1B圖之右上角係繪示為附加了奇偶校驗碼P1之資料DRND1
),並將該編碼資料寫入快閃記憶體120。
如第1C圖所示,在上述之寫入/讀取命令代表該讀取命令的狀況下,記憶體控制器110自快閃記憶體120所讀取之編碼資料(於第1C圖之右上角係繪示為附加了奇偶校驗碼P1之資料DRND1
)分別被傳送至解碼器114D、種子重獲器114Y、與緩衝記憶體116。在一實施例中,在記憶體控制器110之控制下,種子重獲器114Y只利用該編碼資料中之資料DRND1
而非奇偶校驗碼P1,而緩衝記憶體116只暫時地儲存資料DRND1
而非奇偶校驗碼P1。種子重獲器114Y接收資料DRND1
並依據資料DRND1
以重獲輸入種子S1之初步版本,同時將輸入種子S1之初步版本暫時地儲存於暫存器114REG。另外,解碼器114D對讀取自快閃記憶體120之編碼資料進行解碼;一旦偵測到錯誤,就產生更正資料以更正緩衝記憶體116中之資料DRND1
,並產生種子更正訊息以更正暫存器114REG中之輸入種子S1。在另一實施例中,解碼器114D得將種子更正訊息提供給種子重獲器114Y,以使種子重獲器114Y提取暫存器114REG中之輸入種子S1並依據種子更正訊息修正之,再將修正後之輸入種子S1儲存於暫存器114REG。於是,解隨機函數發生器114RB自暫存器114REG讀出正確的輸入種子S1並依據輸入種子S1產生一隨機函數諸如上述之隨機函數,且自緩衝記憶體116讀出資料DRND1
並依據該隨機函數之序列逐位元地調整資料DRND1
之複數個位元以產生資料D1,以供進一步處理。
依據第1C圖所示實施例之一變化例,隨機函數發生器114RA與解隨機函數發生器114RB可為同一個元件,因此,它們可合稱為隨機函數發生器/解隨機函數發生器114R。
第1D圖與第1E圖為第1A圖所示之記憶裝置100於另一實施例中的實施細節,其中上述之隨機函數發生器114RA與解隨機函數發生器114RB分別被代換為隨機函數發生器114RA’與解隨機函數發生器114RB’。
如第1D圖所示,在上述之寫入/讀取命令代表該寫入命令的狀況下,編碼器114E自緩衝記憶體116讀出資料D1並對資料D1進行錯誤更正碼編碼以產生編碼資料(於第1D圖中係繪示為附加了奇偶校驗碼P2之資料D1),並輸出該編碼資料予隨機函數發生器114RA’。另外,隨機函數發生器114RA’依據輸入種子S2產生一隨機函數,且依據該隨機函數之序列逐位元地調整該編碼資料之複數個位元以產生資料DRND2
,尤其是依據該隨機函數之序列逐位元地調整資料D1與奇偶校驗碼P2兩者當中之複數個位元以產生調整後之資料D1’與調整後之奇偶校驗碼P2’,其中資料DRND2
包含調整後之資料D1’與調整後之奇偶校驗碼P2’。此外,隨機函數發生器114RA’將資料DRND2
(於第1D圖之右下角係繪示為附加了奇偶校驗碼P2’之資料D1’)連同附加於資料DRND2
之輸入種子S2寫入快閃記憶體120。
如第1E圖所示,在上述之寫入/讀取命令代表該讀取命令的狀況下,記憶體控制器110自快閃記憶體120所讀取之資料DRND2
(於第1E圖之右下角係繪示為附加了奇偶校驗碼P2’之資料D1’)以及輸入種子S2被傳送至解隨機函數發生器114RB’。另外,解隨機函數發生器114RB’依據輸入種子S2產生一隨機函數,並依據該隨機函數之序列逐位元地調整資料DRND2
之複數個位元以產生資料D1以及附加於資料D1之奇偶校驗碼P2,即為第1D圖所示之編碼器114E所產生之編碼資料。此外,解碼器114D對接收自解隨機函數發生器114RB’之編碼資料(於第1E圖中係繪示為附加了奇偶校驗碼P2之資料D1)進行解碼以產生正確的資料D1,以供進一步處理。
依據本實施例之一變化例,隨機函數發生器114RA’與解隨機函數發生器114RB’可為同一個元件,因此,它們可合稱為隨機函數發生器/解隨機函數發生器114R’。
第1F圖與第1G圖為第1A圖所示之記憶裝置100於另一實施例中的實施細節,其中上述之隨機函數發生器114RA與解隨機函數發生器114RB分別被代換為隨機函數發生器114RA”與解隨機函數發生器114RB”。
如第1F圖所示,在上述之寫入/讀取命令代表該寫入命令的狀況下,隨機函數發生器114RA”自緩衝記憶體116讀出資料D1並依據輸入種子S3產生一隨機函數,且依據該隨機函數之序列逐位元地調整資料D1之複數個位元以產生資料DRND3
。另外,隨機函數發生器114RA”組合資料DRND3
與輸入種子S3以產生組合資料,並輸出該組合資料予編碼器114E。此外,編碼器114E對該組合資料進行錯誤更正碼編碼以產生編碼資料(於第1F圖之右下角係繪示為附加了輸入種子S3與奇偶校驗碼P3之資料DRND3
),並將該編碼資料寫入快閃記憶體120。
如第1G圖所示,在上述之寫入/讀取命令代表該讀取命令的狀況下,記憶體控制器110自快閃記憶體120所讀取之編碼資料(於第1G圖之右上角係繪示為附加了輸入種子S3與奇偶校驗碼P3之資料DRND3
)分別被傳送至解碼器114D與緩衝記憶體116,其中在記憶體控制器110之控制下,緩衝記憶體116只暫時地儲存資料DRND3
,而非輸入種子S3與奇偶校驗碼P3。解碼器114D對讀取自快閃記憶體120之編碼資料進行解碼;一旦偵測到錯誤,就產生更正資料以更正緩衝記憶體116中之資料DRND3
,並產生種子更正訊息以更正其所接收之編碼資料中之輸入種子S3。於是,解隨機函數發生器114RB”依據輸入種子S3產生一隨機函數,且自緩衝記憶體116讀出資料DRND3
並依據該隨機函數之序列逐位元地調整資料DRND3
之複數個位元以產生資料D1,以供進一步處理。
依據本實施例之一變化例,隨機函數發生器114RA”與解隨機函數發生器114RB”可為同一個元件,因此,它們可合稱為隨機函數發生器/解隨機函數發生器114R”。
基於第1B圖與第1C圖所示的實施例,該控制器能依據欲於快閃記憶體120寫入/讀取的資料之內容來產生/重獲至少一隨機函數發生器/解隨機函數發生器之輸入種子,其中將任何輸入種子併入欲於快閃記憶體120寫入的資料都是不必要的。因此,在進行快閃記憶體120的內部資料搬移時,本發明能確保該輸入種子的正確性。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之一變化例,該控制器可具有多個運作模式諸如第一、第二、與第三模式,其中第一模式之運作方式如同於第1B圖與第1C圖所示的實施例,第二模式之運作方式如同於第1D圖與第1E圖所示的實施例,且第三模式之運作方式如同於第1F圖與第1G圖所示的實施例。記憶體控制器110進行資料整形的相關細節可參考第2圖來進一步說明。
第2圖為依據本發明一實施例之一種用來進行資料整形之方法910的流程圖。該方法可應用於第1A圖所示之記憶裝置100,尤其是上述之控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110)。另外,該方法可藉由利用第1A圖所示之記憶裝置100來實施,尤其是藉由利用上述之控制器來實施。該方法說明如下:
步驟912:該控制器依據欲於快閃記憶體120寫入/讀取的資料(例如:資料D1)之內容來產生/重獲至少一隨機函數發生器/解隨機函數發生器諸如隨機函數發生器/解隨機函數發生器114R(例如:隨機函數發生器114RA及/或解隨機函數發生器114RB)之一輸入種子,諸如上述之輸入種子S1。尤其是,該控制器利用至少一種子產生器/種子重獲器(例如:種子產生器114G及/或種子重獲器114Y)依據該資料之內容來產生/重獲該輸入種子。
步驟914:該控制器利用該隨機函數發生器/解隨機函數發生器(諸如隨機函數發生器/解隨機函數發生器114R)依據該輸入種子產生一隨機函數諸如上述之隨機函數,以供用來逐位元地調整該資料之複數個位元。例如:這個運作可實施為對該資料與該隨機函數之序列進行互斥或(XOR)運算,尤其是對兩者(該資料以及該隨機函數之序列)之相對應位元進行互斥或運算,其中這樣的互斥或運算可稱為「位元互斥或」(Bitwise XOR)運算。
依據本實施例,該資料包含複數個部分,而該種子產生器/種子重獲器分別對該些部分中之至少兩部分之相對應位元進行互斥或(XOR)運算,以產生/重獲輸入種子S1;也就是說,該種子產生器/種子重獲器的運作包含至少一次(例如一次或多次)「位元互斥或」運算。尤其是,為了簡化運作,該些部分的數量可為偶數。例如:在資料D1具有八個位元組(Byte)的狀況下,資料D1中之第一個位元組的前兩個位元之值均為1,而資料D1之其餘位元之值均為0。如此,資料D1可寫成:{11000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000}。首先,種子產生器114G可對前兩個位元組之相對應位元進行互斥或運算以產生互斥或運算結果11000000,然後將此運算結果11000000與第三個位元組00000000之相對應位元進行互斥或運算以產生互斥或運算結果11000000,接著將最新的運算結果11000000與第四個位元組00000000之相對應位元進行互斥或運算以產生互斥或運算結果11000000,依此類推。當最後一個位元組00000000已被取用來進行位元互斥或運算時,種子產生器114G就產生最新的運算結果11000000作為輸入種子S1。請注意,依據本實施例,不論種子產生器114G與種子重獲器114Y是否為同一個元件,均不影響方法910的實施。另外,針對全為零的資料,該控制器可進行例外處理,及/或預先對資料進行可逆性更改。如此,可確保整體運作順暢。
於本實施例中,隨機函數發生器/解隨機函數發生器114R針對輸入種子S1所產生之該隨機函數之序列包含至少一對子序列,其中於每一對子序列當中,一子序列與另一子序列相同。例如:隨機函數發生器/解隨機函數發生器114R針對輸入種子S1(X1
)所產生之該隨機函數之序列{11110000,11001100,10101010,00110011,11110000,11001100,10101010,00110011}具有一對子序列{11110000,11001100,10101010,00110011}與{11110000,11001100,10101010,00110011},其中這兩個子序列彼此相同。為了便於理解,該隨機函數之序列亦可寫成{{11110000,11001100,10101010,00110011},{11110000,11001100,10101010,00110011}}。又例如:隨機函數發生器/解隨機函數發生器114R針對輸入種子S1(X2
)所產生之該隨機函數之序列{11110000,11001100,11110000,11001100,10101010,00110011,10101010,00110011}包含複數對子序列{11110000,11001100}與{11110000,11001100}以及{10101010,00110011}與{10101010,00110011}。為了便於理解,該隨機函數之序列亦可寫成{{{11110000,11001100},{11110000,11001100}},{{10101010,00110011},{10101010,00110011}}}。在這些例子當中,同一對的子序列彼此相鄰。這只是為了說明的目的而已,並非對本發明之限制。在其它例子當中,同一對的子序列可以不必彼此相鄰。例如:隨機函數發生器/解隨機函數發生器114R針對輸入種子S1(X3
)所產生之該隨機函數之序列{11110000,11001100,10101010,00110011,10101010,00110011,11110000,11001100}亦包含複數對子序列,其中有一對子序列是前兩個位元組{11110000,11001100}與後兩個位元組{11110000,11001100},而另一對子序列是第三位元組起之兩個位元組{10101010,00110011}與第五位元組起之兩個位元組{10101010,00110011}。
為了簡化運作,在該隨機函數之序列包含複數對子序列的狀況下,該些對子序列中之任一對子序列中之任一子序列的長度與該些對子序列中之另一對子序列中之任一子序列的長度相同。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之一變化例,該些對子序列中之一第一對子序列中之任一子序列的長度與該些對子序列中之一第二對子序列中之任一子序列的長度不相同。
另外,為了簡化運作,每一子序列的長度等於一個或多個位元組的長度。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之一變化例,在該隨機函數之序列包含複數對子序列的狀況下,於該些對子序列中之一對子序列當中,每一子序列的長度不等於一個或多個位元組的長度。例如:在隨機函數發生器/解隨機函數發生器114R針對輸入種子S1(X4
)所產生之該隨機函數之序列{11110000,11001100,10101111 00001100,11001010,10100011,00111010,00110011}當中,有一對子序列{11110000,11001100,1010}與{11110000,11001100,1010}中之每一子序列的長度等於二十個位元的長度,而另一對子序列{1010,00110011}與{1010,00110011}中之每一子序列的長度等於十二個位元的長度。為了便於理解,該隨機函數之序列亦可寫成{{{11110000,11001100,1010},{11110000,11001100,1010}},{{1010,00110011},{1010,00110011}}}。
請注意,在該控制器逐位元地調整該資料之複數個位元的過程中,隨機函數發生器/解隨機函數發生器114R(例如:隨機函數發生器114RA及/或解隨機函數發生器114RB)依據該隨機函數之序列逐位元地調整該資料之複數個位元。實作上,這個運作可為該資料與該隨機函數之序列之位元互斥或運算的結果。此狀況下,由於在該隨機函數之序列當中的子序列兩兩成對,在該種子產生器/種子重獲器(例如:種子產生器114G及/或種子重獲器114Y)重獲輸入種子S1的過程中,同一對子序列施加於資料DRND1
的作用會彼此抵消。
舉例來說,第1A圖所示之調整單元114A依據隨機序列114RS(即上述之隨機函數之序列)調整資料D1以產生調整後之資料DRND1
。參考本實施例以及第1B圖與第1C圖所示之實施例應可理解,在該隨機函數之序列當中的子序列兩兩成對的狀況下,種子重獲器114RB依據DRND1
所重獲之輸入種子正是種子產生器114RA依據資料D1所產生之輸入種子S1(例如:輸入種子S1(X1
)、S1(X2
)、S1(X3
)、或S1(X4
))。
第3A圖與第3B圖為第2圖所示之方法於一實施例中關於第1B圖所示之種子產生器114G及第1C圖所示之種子重獲器114Y的實施細節,其中標號300可分別代表種子產生器114G及種子重獲器114Y,且不論種子產生器114G及種子重獲器114Y是否實施為同一個元件,均不影響本實施例之運作。
如第3A圖所示,種子產生器/種子重獲器300包含W個互斥或邏輯閘310與一儲存單元320,其中標號W代表互斥或邏輯閘310之互斥或運算中所涉及之資料的位元數,且本實施例之W可代表大於1的正整數。輸入資料308係以W位元為單位進入互斥或邏輯閘310,而儲存單元320可暫時地儲存互斥或邏輯閘310的W位元互斥或運算結果(於第3B圖係標示為「W位元XOR運算結果」,即含有W位元之互斥或運算結果)。由於該控制器可將儲存單元320的初始值設為零,當資料308中之W位元資料308-1進入互斥或邏輯閘310時,其輸出資料318等同於W位元資料308-1,故儲存單元320暫時地儲存W位元資料308-1。
接下來,如第3B圖所示,種子產生器/種子重獲器300對W位元資料308-1與W位元資料308-2進行位元互斥或運算(於第3B圖係標示為「XOR運算」)以產生W位元互斥或運算結果318-1,然後對W位元互斥或運算結果318-1與W位元資料308-3進行位元互斥或運算以產生W位元互斥或運算結果318-2,接著對W位元互斥或運算結果318-2與W位元資料308-4進行位元互斥或運算以產生W位元互斥或運算結果318-3,依此類推。於是,種子產生器/種子重獲器300對W位元互斥或運算結果318-(K-2)與W位元資料308-K進行位元互斥或運算以產生W位元互斥或運算結果318-(K-1),作為輸出資料328,其中輸出資料328具有W位元。請注意,輸出資料328代表上述之輸入種子S1。實作上,為了簡化運作,W可為8或其倍數。
依據本實施例之某些變化例,第3B圖所示之互斥或運算的順序可以予以變化。也就是說,將第3B圖所示之W位元資料308-1、308-2、...、及308-K輸入至互斥或邏輯閘310的順序可以予以變化。
依據本實施例之某些變化例,W位元資料308-1、308-2、...、及308-K可區分為NP
(11)個部分,而每一部分包含W位元資料308-1、308-2、...、及308-K中之至少兩者。種子產生器/種子重獲器300可分別對該NP
(11)個部分進行位元互斥或運算,以產生NP
(11)個對應的W位元互斥或運算結果,其中針對每一部分,位元互斥或運算的次數係為所考慮的部分中之「W位元資料」的數量減一。然後,種子產生器/種子重獲器300對該NP
(11)個W位元互斥或運算結果進行位元互斥或運算,以產生最終的W位元互斥或運算結果。尤其是,依據該些變化例中之至少一者,可實施第3A圖所示之種子產生器/種子重獲器300之複數個複製品,以供平行地進行位元互斥或運算。
依據本實施例之某些變化例,W位元資料308-1、308-2、...、及308-K可區分為NP
(22)個部分,其中該NP
(22)個部分中之NP
(21)個部分之每一部分包含W位元資料308-1、308-2、...、及308-K中之至少兩者,而該NP
(22)個部分中之剩餘的部分之每一部分包含W位元資料308-1、308-2、...、及308-K中之一者。種子產生器/種子重獲器300可分別對該NP
(21)個部分進行位元互斥或運算,以產生NP
(21)個對應的W位元互斥或運算結果,其中針對每一部分,位元互斥或運算的次數係為所考慮的部分中之「W位元資料」的數量減一。然後,種子產生器/種子重獲器300對該NP
(21)個W位元互斥或運算結果以及上述之剩餘的部分之W位元資料進行位元互斥或運算,以產生最終的W位元互斥或運算結果。
第4A圖與第4B圖為第1A圖所示之記憶裝置100於另一實施例中的實施細節,其中本實施例之某些運作的順序和第1A圖所示實施例之相對應運作的順序不同。為了簡明起見,上述之調整單元114A係分別被併入第4A圖所示之種子產生器114G及第4B圖所示之種子重獲器114Y。也就是說,本實施例之種子產生器114G與種子重獲器114Y中之每一者包含調整單元114A。依據本實施例之一變化例,種子產生器114G與種子重獲器114Y可為同一個元件。
如第4A圖所示,在上述之寫入/讀取命令代表該寫入命令的狀況下,編碼器114E自緩衝記憶體116讀出資料D1並對資料D1進行錯誤更正碼編碼以產生編碼資料(於第4A圖中係繪示為附加了奇偶校驗碼P2之資料D1),並輸出該編碼資料予種子產生器114G,且透過種子產生器114G將該編碼資料輸出予隨機函數發生器114RA,其中種子產生器114G依據該編碼資料產生輸入種子S4。另外,隨機函數發生器114RA依據輸入種子S4產生一隨機函數,且依據該隨機函數之序列逐位元地調整該編碼資料之複數個位元以產生資料DRND4
,尤其是依據該隨機函數之序列逐位元地調整資料D1與奇偶校驗碼P2兩者當中之複數個位元以產生調整後之資料D1”與調整後之奇偶校驗碼P2”,其中資料DRND4
包含調整後之資料D1”與調整後之奇偶校驗碼P2”。此外,隨機函數發生器114RA將資料DRND4
(於第4A圖之右下角係繪示為附加了奇偶校驗碼P2”之資料D1”)寫入快閃記憶體120。
如第4B圖所示,在上述之寫入/讀取命令代表該讀取命令的狀況下,記憶體控制器110自快閃記憶體120所讀取之資料DRND4
(於第4B圖之右下角係繪示為附加了奇偶校驗碼P2”之資料D1”)被傳送至種子重獲器114Y,並透過種子重獲器114Y被傳送至解隨機函數發生器114RB,其中種子重獲器114Y依據資料DRND4
重獲輸入種子S4。另外,解隨機函數發生器114RB依據輸入種子S4產生一隨機函數,並依據該隨機函數之序列逐位元地調整資料DRND4
之複數個位元以產生資料D1以及附加於資料D1之奇偶校驗碼P2,即為第4A圖所示之編碼器114E所產生之編碼資料,其中緩衝記憶體116暫時地儲存資料D1。此外,解碼器114D對接收自解隨機函數發生器114RB之編碼資料(於第4B圖中係繪示為附加了奇偶校驗碼P2之資料D1)進行解碼;一旦偵測到錯誤,就產生更正資料以更正緩衝記憶體116中之資料D1,以供進一步處理。
依據本實施例之一變化例,隨機函數發生器114RA與解隨機函數發生器114RB可為同一個元件,因此,它們可合稱為隨機函數發生器/解隨機函數發生器114R。
本發明的好處之一是,藉由適當地設計該隨機函數之序列以及種子產生器/種子重獲器,輔以相關的資料流控制(例如:第1A圖至第1G圖之資料流控制),本發明能針對該控制器所存取之資料來進行妥善的資料型樣管理,以減少錯誤的發生。另外,依據以上各個實施例/變化例來實施並不會增加許多額外的成本,甚至比相關技術更能節省成本。因此,基於以上揭露的內容,相關技術的問題已被解決,且整體成本不會增加太多。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100...記憶裝置
110...記憶體控制器
112...微處理器
112C...程式碼
112M...唯讀記憶體
114...控制邏輯
114A...調整單元
114D...解碼器
114E...編碼器
114G...種子產生器
114R...隨機函數發生器/解隨機函數發生器
114RA,114RA’,114RA”...隨機函數發生器
114RB,114RB’,114RB”...解隨機函數發生器
114REG...暫存器
114RS...隨機序列
114Y...種子重獲器
116...緩衝記憶體
118...介面邏輯
120...快閃記憶體
300...種子產生器/種子重獲器
308,308-1,308-2,308-3,...,308-K,D1,D1’,DRND1
,DRND2
,DRND3
...資料
310...互斥或邏輯閘
318,318-1,318-2,...,318-(K-2),318-(K-1)...互斥或邏輯閘之運算結果
320...儲存單元
328,S1,S2,S3...隨機函數發生器/解隨機函數發生器之輸入種子
910...用來進行資料整形之方法
912,914...步驟
P1,P2,P2’,P3...奇偶校驗碼
W...互斥或運算中所涉及之資料的位元數
第1A圖為依據本發明一第一實施例之一種記憶裝置的示意圖。
第1B圖與第1C圖為第1A圖所示之記憶裝置於一實施例中的實施細節。
第1D圖與第1E圖為第1A圖所示之記憶裝置於另一實施例中的實施細節。
第1F圖與第1G圖為第1A圖所示之記憶裝置於另一實施例中的實施細節。
第2圖為依據本發明一實施例之一種用來進行資料整形(Data Shaping)之方法的流程圖。
第3A圖與第3B圖為第2圖所示之方法於一實施例中關於第1B圖所示之種子產生器及第1C圖所示之種子重獲(Recovery)器的實施細節。
第4A圖與第4B圖為第1A圖所示之記憶裝置於另一實施例中的實施細節。
910...用來進行資料整形之方法
912,914...步驟
Claims (15)
- 一種用來進行資料整形(Data Shaping)之方法,該方法係應用於一快閃記憶體(Flash Memory)的控制器,該快閃記憶體包含複數個區塊,該方法包含有:利用至少一種子產生器/種子重獲器以依據欲於該快閃記憶體寫入/讀取的資料之內容來產生/重獲(Recover)至少一隨機函數發生器(Randomizer)/解隨機函數發生器(Derandomizer)之一輸入種子(Seed);以及利用該隨機函數發生器/解隨機函數發生器依據該輸入種子產生一隨機函數(Random Function),以供用來調整該資料之複數個位元;其中該資料包含複數個部分;以及該種子產生器/種子重獲器分別對該些部分中之至少兩部分之相對應位元進行互斥或(Exclusive OR,XOR)運算,以產生/重獲該輸入種子。
- 如申請專利範圍第1項所述之方法,其中該些部分的數量係為偶數。
- 一種用來進行資料整形(Data Shaping)之方法,該方法係應用於一快閃記憶體(Flash Memory)的控制器,該快閃記憶體包含複數個區塊,該方法包含有: 依據欲於該快閃記憶體寫入/讀取的資料之內容來產生/重獲(Recover)至少一隨機函數發生器(Randomizer)/解隨機函數發生器(Derandomizer)之一輸入種子(Seed);以及利用該隨機函數發生器/解隨機函數發生器依據該輸入種子產生一隨機函數(Random Function),以供用來調整該資料之複數個位元;其中該隨機函數發生器/解隨機函數發生器針對該輸入種子所產生之該隨機函數之序列包含至少一對子序列;以及於每一對子序列當中,一子序列與另一子序列相同。
- 如申請專利範圍第3項所述之方法,其中該隨機函數發生器/解隨機函數發生器針對該輸入種子所產生之該隨機函數之序列包含複數對子序列;以及該些對子序列中之一第一對子序列中之任一子序列的長度與該些對子序列中之一第二對子序列中之任一子序列的長度不相同。
- 如申請專利範圍第3項所述之方法,其中該隨機函數發生器/解隨機函數發生器針對該輸入種子所產生之該隨機函數之序列包含複數對子序列;以及於該些對子序列中之一對子序列當中,每一子序列的長度不等於一個或多個位元組的長度。
- 一種記憶裝置,其包含有: 一快閃記憶體(Flash Memory),該快閃記憶體包含複數個區塊;以及一控制器,用來存取(Access)該快閃記憶體以及管理該複數個區塊,並且另針對該控制器本身所存取之資料來進行資料整形(Data Shaping),其中該控制器包含有:至少一隨機函數發生器(Randomizer)/解隨機函數發生器(Derandomizer),用來依據一輸入種子(Seed)產生一隨機函數(Random Function),以供用來於該控制器接收到一寫入/讀取命令時調整該資料之複數個位元,其中該寫入/讀取命令係用來指示該控制器於該快閃記憶體寫入/讀取該資料;至少一種子產生器/種子重獲器,用來依據該資料之內容來產生/重獲該輸入種子;其中該資料包含複數個部分;以及該種子產生器/種子重獲器分別對該些部分中之至少兩部分之相對應位元進行互斥或(Exclusive OR,XOR)運算,以產生/重獲該輸入種子。
- 如申請專利範圍第6項所述之記憶裝置,其中該些部分的數量係為偶數。
- 一種記憶裝置,其包含有:一快閃記憶體(Flash Memory),該快閃記憶體包含複數個區塊;以及 一控制器,用來存取(Access)該快閃記憶體以及管理該複數個區塊,並且另針對該控制器本身所存取之資料來進行資料整形(Data Shaping),其中該控制器包含有:至少一隨機函數發生器(Randomizer)/解隨機函數發生器(Derandomizer),用來依據一輸入種子(Seed)產生一隨機函數(Random Function),以供用來於該控制器接收到一寫入/讀取命令時調整該資料之複數個位元,其中該寫入/讀取命令係用來指示該控制器於該快閃記憶體寫入/讀取該資料;其中該控制器依據該資料之內容來產生/重獲(Recover)該輸入種子;且該隨機函數發生器/解隨機函數發生器針對該輸入種子所產生之該隨機函數之序列包含至少一對子序列;以及於每一對子序列當中,一子序列與另一子序列相同。
- 如申請專利範圍第8項所述之記憶裝置,其中該隨機函數發生器/解隨機函數發生器針對該輸入種子所產生之該隨機函數之序列包含複數對子序列;以及該些對子序列中之一第一對子序列中之任一子序列的長度與該些對子序列中之一第二對子序列中之任一子序列的長度不相同。
- 如申請專利範圍第8項所述之記憶裝置,其中該隨機函數發生器/解隨機函數發生器針對該輸入種子所產生之該隨機函數 之序列包含複數對子序列;以及於該些對子序列中之一對子序列當中,每一子序列的長度不等於一個或多個位元組的長度。
- 一種記憶裝置之控制器,該控制器係用來存取(Access)一快閃記憶體(Flash Memory),該快閃記憶體包含複數個區塊,該控制器包含有:一唯讀記憶體(Read Only Memory,ROM),用來儲存一程式碼;一微處理器,用來執行該程式碼以控制對該快閃記憶體之存取以及管理該複數個區塊,其中在該微處理器之控制下,該控制器針對該控制器本身所存取之資料來進行資料整形(Data Shaping);以及至少一隨機函數發生器(Randomizer)/解隨機函數發生器(Derandomizer),用來依據一輸入種子(Seed)產生一隨機函數(Random Function),以供用來於該控制器接收到一寫入/讀取命令時調整該資料之複數個位元,其中該寫入/讀取命令係用來指示該控制器於該快閃記憶體寫入/讀取該資料;至少一種子產生器/種子重獲器,用來依據該資料之內容來產生/重獲該輸入種子;其中該資料包含複數個部分;以及該種子產生器/種子重獲器分別對該些部分中之至少兩部分之相對應位元進行互斥或(Exclusive OR,XOR)運算,以產生/重獲該輸入種子。
- 如申請專利範圍第11項所述之控制器,其中該些部分的數量係為偶數。
- 一種記憶裝置之控制器,該控制器係用來存取(Access)一快閃記憶體(Flash Memory),該快閃記憶體包含複數個區塊,該控制器包含有:一唯讀記憶體(Read Only Memory,ROM),用來儲存一程式碼;一微處理器,用來執行該程式碼以控制對該快閃記憶體之存取以及管理該複數個區塊,其中在該微處理器之控制下,該控制器針對該控制器本身所存取之資料來進行資料整形(Data Shaping);以及至少一隨機函數發生器(Randomizer)/解隨機函數發生器(Derandomizer),用來依據一輸入種子(Seed)產生一隨機函數(Random Function),以供用來於該控制器接收到一寫入/讀取命令時調整該資料之複數個位元,其中該寫入/讀取命令係用來指示該控制器於該快閃記憶體寫入/讀取該資料;其中該控制器依據該資料之內容來產生/重獲(Recover)該輸入種子;且該隨機函數發生器/解隨機函數發生器針對該輸入種子所產生之該隨機函數之序列包含至少一對子序列;以及於每一對子序列當中,一子序列與另一子序列相同。
- 如申請專利範圍第13項所述之控制器,其中該隨機函數發生器/解隨機函數發生器針對該輸入種子所產生之該隨機函數之序列包含複數對子序列;以及該些對子序列中之一第一對子序列中之任一子序列的長度與該些對子序列中之一第二對子序列中之任一子序列的長度不相同。
- 如申請專利範圍第13項所述之控制器,其中該隨機函數發生器/解隨機函數發生器針對該輸入種子所產生之該隨機函數之序列包含複數對子序列;以及於該些對子序列中之一對子序列當中,每一子序列的長度不等於一個或多個位元組的長度。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099121667A TWI455136B (zh) | 2010-07-01 | 2010-07-01 | 用來進行資料整形之方法以及相關之記憶裝置及其控制器 |
US13/009,854 US8782329B2 (en) | 2010-07-01 | 2011-01-20 | Method for performing data shaping, and associated memory device and controller thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099121667A TWI455136B (zh) | 2010-07-01 | 2010-07-01 | 用來進行資料整形之方法以及相關之記憶裝置及其控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201203260A TW201203260A (en) | 2012-01-16 |
TWI455136B true TWI455136B (zh) | 2014-10-01 |
Family
ID=45400608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099121667A TWI455136B (zh) | 2010-07-01 | 2010-07-01 | 用來進行資料整形之方法以及相關之記憶裝置及其控制器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8782329B2 (zh) |
TW (1) | TWI455136B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI569275B (zh) * | 2015-07-17 | 2017-02-01 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI438778B (zh) * | 2010-03-25 | 2014-05-21 | Silicon Motion Inc | 用來抑制資料錯誤之方法以及相關之記憶裝置及其控制器 |
TWI441181B (zh) * | 2010-09-09 | 2014-06-11 | Silicon Motion Inc | 用來進行資料整形之方法以及其記憶裝置及控制器 |
KR20120082230A (ko) * | 2011-01-13 | 2012-07-23 | 에스케이하이닉스 주식회사 | 랜덤 코드 발생회로를 포함하는 반도체 장치 및 반도체 시스템과, 데이터 프로그래밍 방법 |
US20120221767A1 (en) | 2011-02-28 | 2012-08-30 | Apple Inc. | Efficient buffering for a system having non-volatile memory |
JP2012226822A (ja) * | 2011-04-15 | 2012-11-15 | Samsung Electronics Co Ltd | 不揮発性メモリ装置 |
KR20130052971A (ko) * | 2011-11-14 | 2013-05-23 | 삼성전자주식회사 | 비휘발성 메모리 장치의 동작 방법 |
US9459955B2 (en) | 2012-05-24 | 2016-10-04 | Sandisk Technologies Llc | System and method to scramble data based on a scramble key |
JP6427880B2 (ja) * | 2013-02-06 | 2018-11-28 | 株式会社リコー | 情報処理システム、情報処理装置及びプログラム |
KR102067611B1 (ko) | 2013-03-15 | 2020-01-20 | 삼성전자주식회사 | 메모리 컨트롤러의 동작 방법과 상기 메모리 컨트롤러를 포함하는 장치들 |
US9086456B2 (en) * | 2013-07-03 | 2015-07-21 | Storart Technology Co. Ltd | Optimization of a storage system containing ECC and scramble engines |
KR102247087B1 (ko) * | 2014-07-08 | 2021-05-03 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
KR102200108B1 (ko) | 2014-10-10 | 2021-01-08 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 그 동작 방법 |
US9996299B2 (en) * | 2015-06-25 | 2018-06-12 | Western Digital Technologies, Inc | Memory health monitoring |
US10223733B2 (en) * | 2015-06-30 | 2019-03-05 | Bank Of America Corporation | Providing consolidated order management |
US10019314B2 (en) * | 2016-04-27 | 2018-07-10 | Silicon Motion Inc. | Flash memory apparatus and storage management method for flash memory |
CN111679787B (zh) * | 2016-04-27 | 2023-07-18 | 慧荣科技股份有限公司 | 闪存装置、闪存控制器及闪存存储管理方法 |
CN110647287A (zh) * | 2018-06-26 | 2020-01-03 | 北京兆易创新科技股份有限公司 | 存储器的数据存储方法、装置、电子设备和存储介质 |
KR20210013397A (ko) | 2019-07-24 | 2021-02-04 | 삼성전자주식회사 | 스토리지 장치 |
US10997070B1 (en) * | 2019-12-30 | 2021-05-04 | Micron Technology, Inc. | Efficient scrambling and encoding for copyback procedures using precomputed values |
US11327884B2 (en) | 2020-04-01 | 2022-05-10 | Micron Technology, Inc. | Self-seeded randomizer for data randomization in flash memory |
US11256617B2 (en) | 2020-04-01 | 2022-02-22 | Micron Technology, Inc. | Metadata aware copyback for memory devices |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5570307A (en) * | 1995-01-06 | 1996-10-29 | Vlsi Technology, Inc. | Digital randomizer for on-chip generation and storage of random self-programming data block |
US20030233548A1 (en) * | 2002-06-13 | 2003-12-18 | Christophe Moreaux | Authentication of an electronic tag |
US20040059916A1 (en) * | 2002-09-11 | 2004-03-25 | Nagamasa Mizushima | Memory card |
US7158058B1 (en) * | 2002-12-09 | 2007-01-02 | Marvell International Ltd. | Method and apparatus for generating a seed set in a data dependent seed selector |
US20090204824A1 (en) * | 2007-12-31 | 2009-08-13 | Lin Jason T | System, method and memory device providing data scrambling compatible with on-chip copy operation |
US20100039860A1 (en) * | 2008-08-12 | 2010-02-18 | Micron Technology, Inc. | Memory devices and methods of storing data on a memory device |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101563647B1 (ko) * | 2009-02-24 | 2015-10-28 | 삼성전자주식회사 | 메모리 시스템 및 그것의 데이터 처리 방법 |
KR20100099961A (ko) * | 2009-03-04 | 2010-09-15 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그 동작 방법 |
TWI438778B (zh) * | 2010-03-25 | 2014-05-21 | Silicon Motion Inc | 用來抑制資料錯誤之方法以及相關之記憶裝置及其控制器 |
US8402349B2 (en) * | 2010-12-06 | 2013-03-19 | Apple Inc. | Two dimensional data randomization for a memory |
-
2010
- 2010-07-01 TW TW099121667A patent/TWI455136B/zh active
-
2011
- 2011-01-20 US US13/009,854 patent/US8782329B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5570307A (en) * | 1995-01-06 | 1996-10-29 | Vlsi Technology, Inc. | Digital randomizer for on-chip generation and storage of random self-programming data block |
US20030233548A1 (en) * | 2002-06-13 | 2003-12-18 | Christophe Moreaux | Authentication of an electronic tag |
US20040059916A1 (en) * | 2002-09-11 | 2004-03-25 | Nagamasa Mizushima | Memory card |
US20080082825A1 (en) * | 2002-09-11 | 2008-04-03 | Nagamasa Mizushima | Memory card |
US7158058B1 (en) * | 2002-12-09 | 2007-01-02 | Marvell International Ltd. | Method and apparatus for generating a seed set in a data dependent seed selector |
US20090204824A1 (en) * | 2007-12-31 | 2009-08-13 | Lin Jason T | System, method and memory device providing data scrambling compatible with on-chip copy operation |
US20100039860A1 (en) * | 2008-08-12 | 2010-02-18 | Micron Technology, Inc. | Memory devices and methods of storing data on a memory device |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI569275B (zh) * | 2015-07-17 | 2017-02-01 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
US9933958B2 (en) | 2015-07-17 | 2018-04-03 | Silicon Motion, Inc. | Data storage device and data maintenance method thereof |
Also Published As
Publication number | Publication date |
---|---|
US8782329B2 (en) | 2014-07-15 |
US20120005409A1 (en) | 2012-01-05 |
TW201203260A (en) | 2012-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI455136B (zh) | 用來進行資料整形之方法以及相關之記憶裝置及其控制器 | |
US20200042223A1 (en) | System and method for facilitating a high-density storage device with improved performance and endurance | |
TWI527048B (zh) | 應用於快閃記憶體裝置的錯誤更正碼單元、自我測試方法及相關的控制器 | |
TWI446350B (zh) | 用來減少無法更正的錯誤之方法以及記憶裝置及其控制器 | |
US8719491B2 (en) | Encoding flash memory data with a randomizer using different seeds for different sectors | |
US8612667B2 (en) | Method for performing data pattern management regarding data accessed by a controller of a flash memory, and associated memory device and controller thereof | |
WO2018192488A1 (zh) | 一种nand闪存设备的数据处理方法及装置 | |
US9032278B2 (en) | Method for performing data shaping, and associated memory device and controller thereof | |
CN109857584B (zh) | 于记忆装置进行访问控制的方法、记忆装置和其控制器 | |
US11119697B2 (en) | Read voltage management based on write-to-read time difference | |
TWI802324B (zh) | 異常斷電恢復方法、記憶體控制電路單元以及記憶體儲存裝置 | |
US20240086282A1 (en) | Multi-layer code rate architecture for copyback between partitions with different code rates | |
CN109783005B (zh) | 控制记忆装置的方法、记忆装置、及其控制器和电子装置 | |
US11868202B2 (en) | Granular error reporting on multi-pass programming of non-volatile memory | |
TW201921281A (zh) | 具備資料可靠性機制的儲存系統及其操作方法 | |
TW201926043A (zh) | 用來於一記憶裝置中進行存取控制之方法以及記憶裝置及其控制器 | |
US10872667B2 (en) | Decoding method, memory controlling circuit unit and memory storage device | |
TWI536749B (zh) | 解碼方法、記憶體儲存裝置與記憶體控制電路單元 | |
CN109426582B (zh) | 用于存储装置为错误处置进行数据处理的方法及控制器 | |
JP7177338B2 (ja) | メモリコントローラ装置、メモリコントローラ装置を有するメモリ装置及びメモリコントロール方法 | |
CN113094307B (zh) | 映射信息管理方法、存储器存储装置及存储器控制器 | |
US11994947B2 (en) | Multi-layer code rate architecture for special event protection with reduced performance penalty | |
US11798614B2 (en) | Automated voltage demarcation (VDM) adjustment for memory device | |
TWI829252B (zh) | 低密度奇偶校檢碼的解碼方法及電腦程式產品及裝置 | |
US11169878B2 (en) | Non-volatile memory accessing method using data protection with aid of look-ahead processing, and associated apparatus |