TWI692771B - 用來控制一記憶裝置的運作之方法、記憶裝置及其控制器以及電子裝置 - Google Patents
用來控制一記憶裝置的運作之方法、記憶裝置及其控制器以及電子裝置 Download PDFInfo
- Publication number
- TWI692771B TWI692771B TW106139328A TW106139328A TWI692771B TW I692771 B TWI692771 B TW I692771B TW 106139328 A TW106139328 A TW 106139328A TW 106139328 A TW106139328 A TW 106139328A TW I692771 B TWI692771 B TW I692771B
- Authority
- TW
- Taiwan
- Prior art keywords
- empty page
- memory device
- data stream
- error correction
- correction code
- Prior art date
Links
Images
Classifications
-
- 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
- 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/1012—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 codes or arrangements adapted for a specific type of error
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Probability & Statistics with Applications (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本發明提供一種用來控制一記憶裝置的運作之方法、相關之記憶裝置及其控制器以及相關之電子裝置。該方法可包含:傳送一讀取指令至一非揮發性記憶體,以使它輸出一資料流;以及分別利用該控制器之一控制邏輯電路中之多個子電路,對該資料流進行平行處理。例如,分別利用該多個子電路對該資料流進行平行處理可包含:利用一隨機化/去隨機化及錯誤更正碼電路依據該資料流進行去隨機化及錯誤更正碼解碼,其中這個運作是關於該記憶裝置的初始化;以及利用一空頁偵測電路依據該資料流進行空頁偵測,其中這個運作是關於該記憶裝置的初始化之加速。
Description
本發明係有關於快閃記憶體(Flash memory)之存取(access)控制,尤指一種用來控制一記憶裝置的運作之方法、相關之記憶裝置及其控制器以及相關之電子裝置。
近年來由於記憶體的技術不斷地發展,各種可攜式或非可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD或UFS標準之記憶卡;又例如:固態硬碟;又例如:符合UFS或EMMC規格之嵌入式(embedded)儲存裝置)被廣泛地實施於諸多應用中。因此,這些記憶裝置中之記憶體的存取控制遂成為相當熱門的議題。
以常用的NAND型快閃記憶體而言,其主要可區分為單階細胞(single
level cell,SLC)與多階細胞(multiple level cell,MLC)兩大類之快閃記憶體。單階細胞快閃記憶體中之每個被當作記憶細胞(memory cell)的電晶體只有兩種電荷值,分別用來表示邏輯值0與邏輯值1。另外,多階細胞快閃記憶體中之每個被當作記憶單元的電晶體的儲存能力則被充分利用,係採用較高的電壓來驅動,以透過不同級別的電壓在一個電晶體中記錄至少兩組位元資訊(諸如00、01、11、10);理論上,多階細胞快閃記憶體的記錄密度可以達到單階細胞快閃記憶體的記錄密度之至少兩倍,這對於曾經在發展過程中遇到瓶頸的NAND型快
閃記憶體之相關產業而言,是非常好的消息。
相較於單階細胞快閃記憶體,由於多階細胞快閃記憶體之價格較便宜,並且在有限的空間裡可提供較大的容量,故多階細胞快閃記憶體很快地成為市面上之記憶裝置競相採用的主流。然而,多階細胞快閃記憶體的不穩定性所導致的問題也一一浮現。為了確保記憶裝置對快閃記憶體之存取控制能符合相關規範,快閃記憶體的控制器通常備有某些管理機制以妥善地管理資料之存取。
依據相關技術,有了這些管理機制的記憶裝置還是有不足之處。舉例來說,在記憶裝置的初始化完成之前,電子裝置無法使用記憶裝置中的儲存空間。在記憶裝置被設置於電子裝置中的狀況下,電子裝置的初始化可能被記憶裝置的初始化延遲。尤其是,電子裝置的系統資訊可能被儲存於記憶裝置中,所以電子裝置在開機的期間可能被迫等待記憶裝置的初始化的完成,才能讀取系統資訊,這可造成電子裝置開機時間過長。因此,需要一種新穎的方法及相關架構,以在沒有副作用或較不可能帶來副作用之狀況下提昇記憶裝置之效能。
本發明之一目的在於提供一種用來控制一記憶裝置的運作之方法、相關之記憶裝置及其控制器以及相關之電子裝置,以解決上述問題。
本發明之另一目的在於提供一種用來控制一記憶裝置的運作之方法、相關之記憶裝置及其控制器以及相關之電子裝置,以在沒有副作用或較不可能帶來副作用之狀況下提昇記憶裝置之效能。
本發明之至少一實施例提供一種用來控制一記憶裝置的運作之方法,其中該記憶裝置包含一非揮發性記憶體(non-volatile memory,NV memory),且該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element)。
該方法可包含:傳送一讀取指令至該非揮發性記憶體,以使該非揮發性記憶體輸出一資料流,其中該資料流代表該非揮發性記憶體中的多個預定區塊中之一區塊的一頁;以及分別利用該記憶裝置之一控制器之一控制邏輯電路中之多個子電路,對該資料流進行平行處理,其中該記憶裝置包含該控制器,且該多個子電路包含一隨機化(randomizing)/去隨機化(de-randomizing)及錯誤更正碼(Error Correction Code,ECC)電路與一空頁偵測電路。例如,分別利用該多個子電路對該資料流進行平行處理可包含:利用該隨機化/去隨機化及錯誤更正碼電路依據該資料流進行去隨機化及錯誤更正碼解碼,其中依據該資料流進行去隨機化及錯誤更正碼解碼是關於該記憶裝置的初始化;以及利用該空頁偵測電路依據該資料流進行空頁偵測,其中依據該資料流進行空頁偵測是關於該記憶裝置的初始化之加速。
本發明之至少一實施例提供一種記憶裝置,其可包含:一非揮發性記憶體,用來儲存資訊,其中該非揮發性記憶體包含至少一非揮發性記憶體元件;以及一控制器,耦接至該非揮發性記憶體,用來控制該記憶裝置之至少一運作。該控制器可包含:一控制邏輯電路,耦接至該非揮發性記憶體,用來控制該非揮發性記憶體;以及一處理電路,耦接至該控制邏輯電路。該控制邏輯電路可包含:一隨機化/去隨機化及錯誤更正碼電路,用來進行隨機化、去隨機化、錯誤更正碼編碼以及錯誤更正碼解碼中之至少一者;以及一空頁偵測電路,用來進行空頁偵測。例如:該處理電路可依據來自一主裝置的一指令控制該控制器,以容許該主裝置透過該控制器存取該非揮發性記憶體。另外,在該處理電路的控制下,該控制器可進行下列運作:傳送一讀取指令至該非揮發性記憶體,以使該非揮發性記憶體輸出一資料流,其中該資料流代表該非揮發性記憶體中的多個預定區塊中之一區塊的一頁;以及分別利用該控制邏輯電路中之多個子電路,對該資料流進行平行處理,其中該多個子電路包含該隨機化/
去隨機化及錯誤更正碼電路與該空頁偵測電路。例如,分別利用該多個子電路對該資料流進行平行處理可包含:利用該隨機化/去隨機化及錯誤更正碼電路依據該資料流進行去隨機化及錯誤更正碼解碼,其中依據該資料流進行去隨機化及錯誤更正碼解碼是關於該記憶裝置的初始化;以及利用該空頁偵測電路依據該資料流進行空頁偵測,其中依據該資料流進行空頁偵測是關於該記憶裝置的初始化之加速。
依據某些實施例,本發明另提供一種電子裝置,其可包含上述之記憶裝置,且另包含:該主裝置,耦接至該記憶裝置。該主裝置可包含:至少一處理器,用來控制該主裝置之運作;以及一電源供應電路,耦接至該至少一處理器,用來提供電源予該至少一處理器與該記憶裝置。另外,該記憶裝置可用來提供儲存空間給該主裝置。
本發明之至少一實施例提供一種記憶裝置之控制器,其中該記憶裝置包含該控制器與一非揮發性記憶體,且該非揮發性記憶體包含至少一非揮發性記憶體元件。該控制器可包含:一控制邏輯電路,耦接至該非揮發性記憶體,用來控制該非揮發性記憶體;以及一處理電路,耦接至該控制邏輯電路。該控制邏輯電路可包含:一隨機化/去隨機化及錯誤更正碼電路,用來進行隨機化、去隨機化、錯誤更正碼編碼以及錯誤更正碼解碼中之至少一者;以及一空頁偵測電路,用來進行空頁偵測。例如:該處理電路可依據來自一主裝置的一指令控制該控制器,以容許該主裝置透過該控制器存取該非揮發性記憶體。另外,在該處理電路的控制下,該控制器可進行下列運作:傳送一讀取指令至該非揮發性記憶體,以使該非揮發性記憶體輸出一資料流,其中該資料流代表該非揮發性記憶體中的多個預定區塊中之一區塊的一頁;以及分別利用該控制邏輯電路中之多個子電路,對該資料流進行平行處理,其中該多個子電路包含該隨機化/去隨機化及錯誤更正碼電路與該空頁偵測電路。例如,分別利用該多個子
電路對該資料流進行平行處理可包含:利用該隨機化/去隨機化及錯誤更正碼電路依據該資料流進行去隨機化及錯誤更正碼解碼,其中依據該資料流進行去隨機化及錯誤更正碼解碼是關於該記憶裝置的初始化;以及利用該空頁偵測電路依據該資料流進行空頁偵測,其中依據該資料流進行空頁偵測是關於該記憶裝置的初始化之加速。
本發明的好處之一是,本發明能針對該記憶裝置的運作進行妥善的控制,以避免電子裝置的初始化被記憶裝置的初始化延遲。另外,依據本發明之相關實施例來實施並不會增加許多額外的成本。因此,相關技術的問題可被解決,且整體成本不會增加太多。相較於相關技術,本發明能在沒有副作用或較不可能帶來副作用之狀況下提昇記憶裝置之效能。
10:電子裝置
50:主裝置
52:處理器
54:電源供應電路
100:記憶裝置
110:記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:控制邏輯電路
114A:空頁偵測電路
114E:隨機化/去隨機化及錯誤更正碼電路
114R:暫存器電路
116:揮發性記憶體
118:傳輸介面電路
120:非揮發性記憶體
122-1,122-2,...,122-N:非揮發性記憶體元件
205,230:暫存器
210:位元“0”累積器電路
220:比較器電路
300:方法
310,320,322-1,322-2,324-1,324-2,330,340,350,420,422,424:步驟
400:工作流程
500:頁
511-1,511-2,...,511-M:資料
512-1,512-2,...,512-M:奇偶校驗碼
Byte(0),Byte(1),Byte(2),...:位元組
BZC:位元零數
BZCth:位元零數門檻值
EMPTY_PAGE:空頁偵測訊號
第1圖為依據本發明一實施例之一種電子裝置的示意圖。
第2圖繪示第1圖所示記憶裝置於一實施例中之實施細節。
第3圖為依據本發明一實施例之一種用來控制一記憶裝置的運作之方法的流程圖。
第4圖繪示第3圖所示方法於一實施例中的工作流程。
第5圖繪示第3圖所示方法於一實施例中之編碼/解碼(encoding/decoding)控制方案。
I.記憶體系統
第1圖為依據本發明一實施例之一種電子裝置10的示意圖,其中電子
裝置10包含一主裝置(host device)50與一記憶裝置100。主裝置50可包含:至少一處理器52(例如一或多個處理器),用來控制主裝置50之運作;以及一電源供應電路54,耦接至上述至少一處理器52,用來提供電源予上述至少一處理器52與記憶裝置100、且輸出一或多個驅動電壓至記憶裝置100,其中記憶裝置100可用來提供儲存空間給主裝置50,且可從主裝置50取得該一或多個驅動電壓,作為記憶裝置100之電源。主裝置50的例子可包含(但不限於):多功能行動電話(multifunctional mobile phone)、平板電腦(tablet)、可穿戴裝置(wearable device)以及個人電腦(personal computer)諸如桌上型電腦與膝上型電腦。記憶裝置100的例子可包含(但不限於):可攜式記憶裝置(諸如符合SD/MMC、CF、MS、XD或UFS標準之記憶卡)、固態硬碟(solid state drive,SSD)以及各種嵌入式(embedded)儲存裝置(諸如符合UFS或EMMC規格之嵌入式儲存裝置)。依據本實施例,記憶裝置100可包含一控制器諸如記憶體控制器110,且可另包含一非揮發性記憶體(non-volatile memory,NV memory)120,其中該控制器係用來存取(access)非揮發性記憶體120,且非揮發性記憶體120係用來儲存資訊。非揮發性記憶體120可包含至少一非揮發性記憶體元件(NV memory element)(例如一或多個非揮發性記憶體元件),諸如複數個非揮發性記憶體元件122-1、122-2、...與122-N,其中符號「N」可代表大於一的正整數。例如:非揮發性記憶體120可為一快閃記憶體(Flash memory),而非揮發性記憶體元件122-1、122-2、...與122-N可分別為複數個快閃記憶體晶片(Flash memory chip;可簡稱為快閃晶片)或複數個快閃記憶體裸晶(Flash memory die;可簡稱為快閃裸晶),但本發明不限於此。
如第1圖所示,記憶體控制器110可包含處理電路諸如微處理器112、儲存器諸如唯讀記憶體(Read Only Memory,ROM)112M、控制邏輯電路114、揮發性記憶體116與傳輸介面電路118,其中這些元件中之至少一部分(例如一
部分或全部)可透過匯流排彼此耦接。揮發性記憶體116係以隨機存取記憶體(Random Access Memory,RAM)來實施,例如可為靜態隨機存取記憶體(Static RAM,SRAM),但本發明不限於此。揮發性記憶體116可用來提供內部儲存空間給記憶體控制器110,例如可暫時地儲存資料。另外,本實施例之唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對非揮發性記憶體120之存取。請注意,程式碼112C亦得儲存在揮發性記憶體116或任何形式之記憶體內。此外,控制邏輯電路114可用來控制非揮發性記憶體120。
控制邏輯電路114可包含多個子電路,諸如一隨機化(randomizing)/去隨機化(de-randomizing)及錯誤更正碼(Error Correction Code,ECC)電路114E、一空頁偵測電路114A以及一暫存器電路114R,以同時或不同時地進行多個運作,其中隨機化/去隨機化及錯誤更正碼電路114E可包含一隨機化器(randomizer)、一去隨機化器(de-randomizer)、一錯誤更正碼編碼器(ECC encoder)與一錯誤更正碼解碼器(ECC decoder),但本發明不限於此。傳輸介面電路118可符合一特定通訊標準(諸如串列高級技術附件(Serial Advanced Technology Attachment,SATA)標準、通用序列匯流排(Universal Serial Bus,USB)標準、快捷外設互聯(Peripheral Component Interconnect Express,PCIE)標準、嵌入式多媒體記憶卡(embedded Multi Media Card,eMMC)標準、或通用快閃記憶體儲存(Universal Flash Storage,UFS)標準)且可依據該特定通訊標準進行通訊。
於本實施例中,主裝置50可藉由傳送主裝置指令(host command)與對應的邏輯位址予記憶體控制器110來間接地存取記憶裝置100。記憶體控制器110接收主裝置指令與邏輯位址,並將主裝置指令轉譯成記憶體操作指令(可簡稱為操作指令),再以操作指令控制非揮發性記憶體120讀取或寫入(write)/編程(program)非揮發性記憶體120當中特定實體位址之記憶單位(memory unit)或資料頁(page),其中實體位址對應於邏輯位址。當記憶體控制器110對
非揮發性記憶體元件122-1、122-2、...與122-N中之任一非揮發性記憶體元件122-n進行一抹除(erase)運作時(符號「n」可代表區間[1,N]中之任一整數),非揮發性記憶體元件122-n的多個區塊中之至少一個區塊會被抹除,其中該多個區塊中之每一區塊可包含多個頁(諸如資料頁),且存取運作(例如讀取或寫入)可對一或多頁來進行。另外,於一寫入運作的期間,記憶體控制器110可分別利用該錯誤更正碼編碼器與該隨機化器進行錯誤更正碼編碼與隨機化,以將待儲存於非揮發性記憶體120之原始資料轉換為已編碼且已隨機化之一第一資料流,以供儲存至非揮發性記憶體120。於一讀取運作的期間,記憶體控制器110可分別利用該去隨機化器與該錯誤更正碼解碼器進行去隨機化與錯誤更正碼解碼,以將讀取自非揮發性記憶體120之一第二資料流轉換為讀出資料。當該錯誤更正碼解碼器之解碼成功時,該讀出資料等同於該原始資料。例如:該錯誤更正碼編碼器可對該原始資料進行錯誤更正碼編碼以保護該原始資料,尤其可產生對應於該原始資料之一碼字(codeword),其中該碼字包含該原始資料及其奇偶校驗碼(parity-check code);該隨機化器可對該碼字進行隨機化以產生該第一資料流,且可在此運作中維持總位元量不改變;該去隨機化器可對該第二資料流進行去隨機化以產生該碼字之一讀出版本,且可在此運作中維持總位元量不改變;以及該錯誤更正碼解碼器可對該碼字之該讀出版本進行錯誤更正碼解碼,以產生該讀出資料,其中該錯誤更正碼解碼器可偵測該讀出資料中之任何錯誤(若存在),並且可嘗試進行錯誤更正以取得該讀出資料;其中錯誤更正碼編碼可於隨機化之前進行,且錯誤更正碼解碼可於去隨機化之後進行,但本發明不限於此。依據某些實施例,錯誤更正碼編碼可於隨機化之後進行,且錯誤更正碼解碼可於去隨機化之前進行。
依據某些實施例,第1圖所示架構可予以變化。例如:記憶體控制器110可區分為三個部分:核心邏輯(core logic)電路,其可包含該處理電路諸如
微處理器112、該儲存器諸如唯讀記憶體112M、與揮發性記憶體116;NAND型快閃控制器(NAND Flash controller),其可包含控制邏輯電路114;以及主控制器(host controller),其可包含傳輸介面電路118;但本發明不限於此。
II.空頁偵測(empty-page detection)架構
記憶體控制器110可從主裝置50接收多個主裝置指令且執行該多個主裝置指令,並且回傳操作結果至主裝置50。尤其是,微處理器112可依據來自主裝置50的一指令(例如該多個主裝置指令中之任一者)控制記憶體控制器110,以容許主裝置50透過記憶體控制器110存取非揮發性記憶體120。為了有效率地進行存取管理,記憶體控制器110可將邏輯位址與實體位址之間的關係儲存於非揮發性記憶體120中之多個邏輯對實體位址映射表(logical-to-physical address mapping table)。由於這些關係可能隨時變化、且該多個邏輯對實體位址映射表的總資訊量可能很大,故記憶裝置100的初始化期間,記憶體控制器110可尋找非揮發性記憶體120中的多個預定區塊中之至少一區塊的最後一個有效頁,且依據記憶體控制器110先前在該最後一個有效頁的備用區(spare region)中所記錄的參考資訊來直接或間接地找到該多個邏輯對實體位址映射表,以確保記憶裝置100正確地運作。記憶體控制器110可透過控制邏輯電路114之該多個子電路當中之至少一部分子電路的平行處理來加速記憶裝置100的初始化,尤其可同時利用空頁偵測電路114A進行空頁偵測、以及利用隨機化/去隨機化及錯誤更正碼電路114E進行去隨機化及錯誤更正碼解碼。
第2圖繪示第1圖所示記憶裝置100於一實施例中之實施細節,其中包含多個位元組{Byte(0),Byte(1),Byte(2),...}之非揮發性記憶體資料流可作為該第二資料流之一例。空頁偵測電路114A可包含位元“0”累積器電路(bit “0” accumulator circuit)210與比較器電路220,而暫存器電路114R可包含暫存器205
與230。藉助於暫存器205與230,控制邏輯電路114和微處理器112可交換資訊以控制關於空頁偵測之某些運作,但本發明不限於此。當需要時,例如於開始對上述多個預定區塊中之一區塊的一頁進行空頁偵測時,空頁偵測電路114A可重設位元“0”累積器電路210,以確保空頁偵測的正確性。位元“0”累積器電路210可累積該第二資料流(諸如該非揮發性記憶體資料流)中之位元“0”的數量(尤其可計數(count)這個數量),以產生或更新位元零數(bit-zero count)BZC。比較器電路220可從暫存器205取得位元零數門檻值BZCth,其中該處理電路諸如微處理器112可預先設定位元零數門檻值BZCth,尤其可依據隨機化/去隨機化及錯誤更正碼電路114E(例如其內之錯誤更正碼編碼器/錯誤更正碼解碼器)的編碼/解碼能力來決定位元零數門檻值BZCth。例如:當隨機化/去隨機化及錯誤更正碼電路114E對每1024位元組的資料所能更正的錯誤位元的個數的最大值是40,微處理器112可將位元零數門檻值BZCth設定為同一數值40(BZCth=40);但本發明不限於此。透過比較位元零數BZC與位元零數門檻值BZCth,比較器電路220可判斷位元零數BZC是否小於或等於位元零數門檻值BZCth,以產生空頁偵測訊號EMPTY_PAGE,其中空頁偵測訊號EMPTY_PAGE可指出位元零數BZC是否小於或等於位元零數門檻值BZCth。例如:當位元零數BZC小於或等於位元零數門檻值BZCth時,空頁偵測訊號EMPTY_PAGE可載有邏輯值1以指出該頁可能是空頁;否則,空頁偵測訊號EMPTY_PAGE可載有邏輯值0以指出該頁不是空頁;但本發明不限於此。比較器電路220可將空頁偵測訊號EMPTY_PAGE輸出至暫存器230,以將空頁偵測訊號EMPTY_PAGE所載的邏輯值(例如1或0)儲存作為暫存器230中之一相對應位元。
為了便於理解,假設該頁可包含M個碼字(M可代表正整數)。更精確地說,該頁的大小可等同於該M個碼字的大小,且該頁在非揮發性記憶體120中可被儲存為該M個碼字的已編碼且已隨機化之版本。空頁偵測電路114A可進
行分別對應於該M個碼字之M個局部(partial)空頁偵測運作,且暫存器230可對應地儲存M個位元以分別指出該M個局部空頁偵測運作之各自的偵測結果。在該M個局部空頁偵測運作中之任一局部空頁偵測運作被進行之前,空頁偵測電路114A可重設位元“0”累積器電路210。在該局部空頁偵測運作中,位元“0”累積器電路210可累積該第二資料流之局部資料流中之位元“0”的數量,諸如對應於一個碼字的多個位元當中位元“0”的數量,以產生位元零數BZC於該局部空頁偵測運作中之最新值。透過比較(該局部空頁偵測運作中之)位元零數BZC與位元零數門檻值BZCth,比較器電路220可判斷位元零數BZC是否小於或等於位元零數門檻值BZCth,以產生空頁偵測訊號EMPTY_PAGE,其中空頁偵測訊號EMPTY_PAGE所載的邏輯值(例如1或0)被儲存作為該M個位元當中對應於該局部空頁偵測運作之某一位元。於該M個局部空頁偵測運作已完成之後,微處理器112可從暫存器230取得該M個位元。微處理器112可依據M個位元判斷該頁是否為空頁,尤其可檢查是否該M個位元中之每一者指出該頁可能是空頁(例如該M個位元中之每一者等於邏輯值1)、或檢查是否該M個位元中之任一者指出該頁不是空頁(例如該M個位元中之任一者等於邏輯值0)。當該M個位元中之每一者等於邏輯值1時,微處理器112可判斷該頁是空頁;否則,微處理器112可判斷該頁不是空頁;但本發明不限於此。
該多個位元組{Byte(0),Byte(1),Byte(2),...}可作為該局部資料流之一例。前三個位元組{Byte(0),Byte(1),Byte(2)}分別是01000110、00111011與11111111且其位元“0”的數量分別為5、3與0,所以位元“0”累積器電路210可累積這些數值且得到位元零數BZC的最新值(例如:(5+3+0)=8)。假設該多個位元組{Byte(0),Byte(1),Byte(2),...}中之其它位元組中之每一者是11111111,這表示該局部資料流中之後續位元均為1,所以BZC=8。在BZC=8且BZCth=40的狀況下,比較器電路220可偵測到BZC<BZCth且使空頁偵測訊
號EMPTY_PAGE載有邏輯值1,以將對應於該局部空頁偵測運作之該位元設定為邏輯值1。
III.系統管理
第3圖為依據本發明一實施例之一種用來控制一記憶裝置的運作之方法300的流程圖,其中方法300可應用於電子裝置10及記憶裝置100,且可應用於該控制器諸如記憶體控制器110,尤其可應用於該處理電路諸如微處理器112。
於步驟310中,記憶體控制器110(例如微處理器112)可傳送讀取指令至非揮發性記憶體120,以使非揮發性記憶體120輸出一資料流(例如該第二資料流,諸如其局部資料流),其中該資料流可代表上述多個預定區塊中之該區塊的該頁。
於步驟320中,記憶體控制器110(例如微處理器112)可分別利用控制邏輯電路114中之該多個子電路,對該資料流進行平行處理,諸如分別對應於步驟{322-1,322-2}與步驟{324-1,324-2}之平行處理,尤其對該資料流進行平行處理以加速記憶裝置100的初始化,但本發明不限於此。
於步驟322-1中,記憶體控制器110(例如微處理器112)可利用隨機化/去隨機化及錯誤更正碼電路114E(例如分別利用其內的去隨機化器與錯誤更正碼解碼器)進行去隨機化及錯誤更正碼解碼,尤其依據該資料流進行去隨機化及錯誤更正碼解碼,其中依據該資料流進行去隨機化及錯誤更正碼解碼可以是關於記憶裝置100的初始化。依據本實施例,記憶體控制器110(例如微處理器112)可利用隨機化/去隨機化及錯誤更正碼電路114E依據該資料流進行去隨機化及錯誤更正碼解碼,以嘗試於該頁尋找記憶裝置100的初始化之相關資訊。
於步驟322-2中,記憶體控制器110(例如微處理器112)可利用隨機
化/去隨機化及錯誤更正碼電路114E(例如該錯誤更正碼解碼器)檢查是否解碼成功。當解碼成功,進入步驟330;否則,進入步驟324-2。
於步驟324-1中,記憶體控制器110(例如微處理器112)可利用空頁偵測電路114A(例如位元“0”累積器電路210)累積位元“0”的數量,以產生位元零數BZC。
於步驟324-2中,記憶體控制器110(例如微處理器112)可利用空頁偵測電路114A(例如比較器電路220)檢查是否BZCBZCth。透過步驟324-1與步驟324-2的運作,記憶體控制器110(例如微處理器112)可利用空頁偵測電路114A依據該資料流進行空頁偵測,其中依據該資料流進行空頁偵測可以是關於記憶裝置100的初始化之加速。依據本實施例,記憶體控制器110(例如微處理器112)可利用空頁偵測電路114A依據該資料流進行空頁偵測,以判斷該頁是否為空頁。例如,藉由利用空頁偵測電路114A進行空頁偵測,記憶體控制器110(例如微處理器112)可減少在任何空頁尋找記憶裝置100的初始化之該相關資訊的機率。當BZCBZCth,進入步驟340;否則,進入步驟350。
於步驟330中,記憶體控制器110(例如微處理器112)可讀取資料,諸如錯誤更正碼解碼成功時所取得的資料,以從所讀取的資料取得記憶裝置100的初始化之該相關資訊,其中所讀取的資料可包含該頁的備用區中之參考資訊,而該參考資訊可作為該相關資訊之一例。此狀況下,該頁可作為該最後一個有效頁之一例。
於步驟340中,當偵測到空頁,記憶體控制器110(例如微處理器112或空頁偵測電路114A)可觸發進一步空頁搜尋。依據本實施例,當偵測到該頁為空頁時,記憶體控制器110(例如微處理器112或空頁偵測電路114A)可觸發非揮發性記憶體120中的另一頁的空頁偵測,以判斷該另一頁是否為空頁。例如:針對同一區塊當中該頁之前一頁(若前一頁存在),記憶體控制器110可依
據方法300進行類似的運作。又例如:針對另一區塊中之某一頁(諸如最後一頁),記憶體控制器110可依據方法300進行類似的運作。
於步驟350中,記憶體控制器110(例如微處理器112)可進行讀取重試(read-retry)設定。例如:針對同一區塊中之同一頁,記憶體控制器110可調整非揮發性記憶體120的某些讀取控制參數,諸如讀取非揮發性記憶體120時用來判斷位元資訊之電壓門檻值,但本發明不限於此。
關於步驟322-2的檢查結果,解碼成功表示該頁包含有效資料,而解碼失敗表示該頁不包含有效資料。當這個檢查結果是解碼失敗時,萬一該頁是空頁,直接對該頁進行讀取重試以嘗試重新解碼該頁會很浪費時間(例如:此狀況下的讀取重試的重新解碼不可能成功,所以讀取重試可能被進行多次),這可能造成整個系統的開機時間過長。依據本實施例,在這個檢查結果是解碼失敗的狀況下,記憶體控制器110可先透過空頁偵測的偵測結果確定該頁是否為空頁(例如進入步驟324-2),而非直接對該頁進行讀取重試。因此,本發明的方法(諸如方法300)與相關架構(諸如電子裝置10、記憶裝置100與記憶體控制器110)可透過一次的頁讀取(page-read)判斷出某一頁是否為空頁,其中若為空頁,則跳過讀取重試,否則,需要進行讀取重試,以有效地節省時間。
另外,空頁的典型特性可以是:已隨機化之一整頁都是位元“1”。
由於非揮發性記憶體120中會出現少量的錯誤位元,故對空頁而言,從非揮發性記憶體120讀出的資料流中之位元通常會有少量的位元“0”,而不會全部是位元“1”。當某一頁的在非揮發性記憶體120中的已隨機化之版本幾乎都是位元“1”時(例如:BZCBZCth;又例如:該M個位元全都是邏輯值1),記憶體控制器110可正確地且迅速地判定這一頁是空頁。依據某些實施例,記憶體控制器110(例如微處理器112)可依據該M個位元來分析非揮發性記憶體120的狀態,例如判斷哪些頁是未編程頁(Un-programmed page)或空頁,但本發明不限於此。
第4圖繪示第3圖所示方法300於一實施例中的工作流程400。步驟310、步驟330、步驟340與步驟350的運作可分別如同前面所述。
於步驟420中,記憶體控制器110(例如微處理器112)可分別利用控制邏輯電路114中之該多個子電路,對該資料流進行平行處理,諸如分別對應於步驟{322-1,322-2,422}與步驟{324-1,324-2,424}之平行處理,尤其對該資料流進行平行處理以加速記憶裝置100的初始化,其中步驟{322-1,322-2}與步驟{324-1,324-2}的運作可如同前面所述、且上述平行處理可包含對應至一頁之處理,但本發明不限於此。
於步驟422中,記憶體控制器110(例如微處理器112)可利用隨機化/去隨機化及錯誤更正碼電路114E(例如該錯誤更正碼解碼器)檢查是否已完成一頁之處理。例如該頁可包含該M個碼字,且當該M個碼字都解碼成功時,對應於步驟{322-1,322-2,422}之處理可分別針對該M個碼字被進行M次。當完成該頁之處理,進入步驟330;否則,進入步驟322-1。
於步驟424中,記憶體控制器110(例如微處理器112)可利用空頁偵測電路114A檢查是否已完成一頁之處理。例如該頁可包含該M個碼字,且當該M個位元中之每一者都是邏輯值1(這表示:在該M個局部空頁偵測運作中,BZCBZCth每次都成立),對應於步驟{324-1,324-2,424}之處理可分別針對該M個碼字被進行M次。當完成該頁之處理,進入步驟340;否則,進入步驟324-1。
為了簡明,本實施例與前述實施例相仿的內容在此不重複贅述。
第5圖繪示第3圖所示方法300於一實施例中之編碼/解碼控制方案。第5圖所示之頁500可作為該頁之一例。頁500可包含資料{511-1,511-2,...,511-M}及其各自的奇偶校驗碼{512-1,512-2,...,512-M},其中資料{511-1,511-2,...,511-M}中之每一者的資料量可為1024位元組、且奇偶校驗碼{512-1,512-2,...,512-M}中之每一者的資料量可為70位元組,但本發明不限於此。包含
資料511-1與奇偶校驗碼512-1的碼字、包含資料511-2與奇偶校驗碼512-2的碼字、...與包含資料511-M與奇偶校驗碼512-M的碼字可分別作為該M個碼字的例子。為了簡明,本實施例與前述實施例相仿的內容在此不重複贅述。
依據某些實施例,記憶體控制器110(例如微處理器112)可利用空頁偵測電路114A暫時地關閉該去隨機化器,以取得步驟310中所述之該資料流,但本發明不限於此。依據某些實施例,記憶體控制器110(例如微處理器112)可利用空頁偵測電路114A反向(invert)該第二資料流,以取得該第二資料流之一反向資料流,其中該第二資料流中之位元“0”變成該反向資料流中之位元“1”、且該第二資料流中之位元“1”變成該反向資料流中之位元“0”。例如空頁偵測電路114A可包含一反向器(inverter)以進行該反向運作,且位元“0”累積器電路210可被取代為位元“1”累積器電路(bit “1” accumulator circuit),其中位元零數BZC可被取代為位元壹數(bit-one count)BOC,且位元零數門檻值BZCth可被取代為位元壹數門檻值BOCth。該位元“1”累積器電路可累積該反向資料流中之位元“1”的數量,以產生位元壹數BOC。例如位元壹數門檻值BOCth可等於位元零數門檻值BZCth。另外,記憶體控制器110(例如微處理器112)可利用隨機化/去隨機化及錯誤更正碼電路114E(例如該錯誤更正碼解碼器)嘗試對該反向資料流的反向資料進行錯誤更正碼解碼。當解碼成功時,記憶體控制器110(例如微處理器112或該錯誤更正碼解碼器)可判定對應於該反向資料的該頁是空頁。為了簡明,這些實施例與前述實施例相仿的內容在此不重複贅述。
依據某些實施例,記憶體控制器110(例如微處理器112)可從非揮發性記憶體元件122-1、122-2、...與122-N的各自的多個區塊選擇一部分區塊,作為上述多個預定區塊,例如該選擇運作可基於一預定規則來進行。另外,記憶體控制器110(例如微處理器112)可在上述多個預定區塊中的任一區塊的多
個頁中之任一頁的備用區中記錄對應的參考資訊,諸如該多個邏輯對實體位址映射表中的某一邏輯對實體位址映射表的位置資訊,且可依據該位置資訊找到這個邏輯對實體位址映射表,並且可依據這個邏輯對實體位址映射表找到用來儲存這一頁之實體區塊,以存取這一頁,但本發明不限於此。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
10:電子裝置
50:主裝置
52:處理器
54:電源供應電路
100:記憶裝置
110:記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:控制邏輯電路
114A:空頁偵測電路
114E:隨機化/去隨機化及錯誤更正碼電路
114R:暫存器電路
116:揮發性記憶體
118:傳輸介面電路
120:非揮發性記憶體
122-1,122-2,...,122-N:非揮發性記憶體元件
Claims (17)
- 一種用來控制一記憶裝置的運作之方法,該記憶裝置包含一非揮發性記憶體(non-volatile memory,NV memory),該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element),該方法包含有:傳送一讀取指令至該非揮發性記憶體,以使該非揮發性記憶體輸出一資料流,其中該資料流代表該非揮發性記憶體中的多個預定區塊中之一區塊的一頁;以及分別利用該記憶裝置之一控制器之一控制邏輯電路中之多個子電路來同時對該資料流進行不同類型的平行處理,以加速該記憶裝置的初始化,其中該記憶裝置包含該控制器,該多個子電路包含一隨機化(randomizing)/去隨機化(de-randomizing)及錯誤更正碼(Error Correction Code,ECC)電路與一空頁偵測電路,其中該空頁偵測電路用以累積位元0的數量以產生位元零數,且分別利用該多個子電路來同時對該資料流進行不同類型的平行處理包含實質上同時且相互獨立地進行以下兩步驟:利用該隨機化/去隨機化及錯誤更正碼電路依據該資料流進行去隨機化及錯誤更正碼解碼,其中依據該資料流進行去隨機化及錯誤更正碼解碼是關於該記憶裝置的初始化;以及利用該空頁偵測電路依據該資料流進行空頁偵測,其中依據該資料流進行空頁偵測是關於該記憶裝置的初始化之加速;其中當該去隨機化及錯誤更正碼解碼失敗時,該空頁偵測電路根據該位元零數是否小於或等於一位元零數門檻值來決定是否進行空頁偵測;若該位元零數小於該位元零數門檻值,判斷偵測到空頁,觸發進一步空頁搜尋;以及,若該位元零數大於該位元零數門檻值,則進行 讀取重設設定。
- 如申請專利範圍第1項所述之方法,其中利用該隨機化/去隨機化及錯誤更正碼電路依據該資料流進行去隨機化及錯誤更正碼解碼之步驟另包含:利用該隨機化/去隨機化及錯誤更正碼電路依據該資料流進行去隨機化及錯誤更正碼解碼,以嘗試於該頁尋找該記憶裝置的初始化之相關資訊。
- 如申請專利範圍第2項所述之方法,其另包含:讀取錯誤更正碼解碼成功時所取得的資料,以從所讀取的資料取得該記憶裝置的初始化之該相關資訊。
- 如申請專利範圍第1項所述之方法,其中利用該空頁偵測電路依據該資料流進行空頁偵測之步驟另包含:利用該空頁偵測電路依據該資料流進行空頁偵測,以判斷該頁是否為空頁,其中藉由利用該空頁偵測電路進行空頁偵測,在任何空頁尋找該記憶裝置的初始化之相關資訊的機率被減少。
- 如申請專利範圍第4項所述之方法,其另包含:當偵測到該頁為空頁時,觸發該非揮發性記憶體中的另一頁的空頁偵測,以判斷該另一頁是否為空頁。
- 如申請專利範圍第1項所述之方法,其另包含: 在該記憶裝置的初始化期間,尋找該多個預定區塊中之至少一區塊的最後一個有效頁,且依據該控制器先前在該最後一個有效頁的備用區(spare region)中所記錄的參考資訊來直接或間接地找到該記憶裝置的多個邏輯對實體位址映射表(logical-to-physical address mapping table),以確保該記憶裝置正確地運作。
- 一種記憶裝置,包含有:一非揮發性記憶體(non-volatile memory,NV memory),用來儲存資訊,其中該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element);以及一控制器,耦接至該非揮發性記憶體,用來控制該記憶裝置之至少一運作,其中該控制器包含:一控制邏輯電路,耦接至該非揮發性記憶體,用來控制該非揮發性記憶體,其中該控制邏輯電路包含:一隨機化(randomizing)/去隨機化(de-randomizing)及錯誤更正碼(Error Correction Code,ECC)電路,用來進行隨機化、去隨機化、錯誤更正碼編碼以及錯誤更正碼解碼中之至少一者;以及一空頁偵測電路,用來進行空頁偵測,其中該空頁偵測電路用以累積位元0的數量以產生位元零數;以及一處理電路,耦接至該控制邏輯電路,用來依據來自一主裝置(host device)的一指令控制該控制器,以容許該主裝置透過該控制器存取(access)該非揮發性記憶體,其中在該處理電路的控制下,該控制器進行下列運作: 傳送一讀取指令至該非揮發性記憶體,以使該非揮發性記憶體輸出一資料流,其中該資料流代表該非揮發性記憶體中的多個預定區塊中之一區塊的一頁;以及分別利用該控制邏輯電路中之多個子電路來同時對該資料流進行不同類型的平行處理,以加速該記憶裝置的初始化,其中該多個子電路包含該隨機化/去隨機化及錯誤更正碼電路與該空頁偵測電路,且分別利用該多個子電路來同時對該資料流進行不同類型的平行處理包含實質上同時且相互獨立地進行以下兩步驟:利用該隨機化/去隨機化及錯誤更正碼電路依據該資料流進行去隨機化及錯誤更正碼解碼,其中依據該資料流進行去隨機化及錯誤更正碼解碼是關於該記憶裝置的初始化;以及利用該空頁偵測電路依據該資料流進行空頁偵測,其中依據該資料流進行空頁偵測是關於該記憶裝置的初始化之加速;其中當該去隨機化及錯誤更正碼解碼失敗時,該空頁偵測電路根據該位元零數是否小於或等於一位元零數門檻值來決定是否進行空頁偵測;若該位元零數小於該位元零數門檻值,判斷偵測到空頁,觸發進一步空頁搜尋;以及,若該位元零數大於該位元零數門檻值,則進行讀取重設設定。
- 如申請專利範圍第7項所述之記憶裝置,其中該控制器利用該隨機化/去隨機化及錯誤更正碼電路依據該資料流進行去隨機化及錯誤更正碼 解碼,以嘗試於該頁尋找該記憶裝置的初始化之相關資訊。
- 如申請專利範圍第8項所述之記憶裝置,其中該控制器讀取錯誤更正碼解碼成功時所取得的資料,以從所讀取的資料取得該記憶裝置的初始化之該相關資訊。
- 如申請專利範圍第7項所述之記憶裝置,其中該控制器利用該空頁偵測電路依據該資料流進行空頁偵測,以判斷該頁是否為空頁,其中藉由利用該空頁偵測電路進行空頁偵測,該控制器減少在任何空頁尋找該記憶裝置的初始化之相關資訊的機率。
- 如申請專利範圍第10項所述之記憶裝置,其中當偵測到該頁為空頁時,該控制器觸發該非揮發性記憶體中的另一頁的空頁偵測,以判斷該另一頁是否為空頁。
- 一種電子裝置,其包含如申請專利範圍第7項所述之記憶裝置,且另包含:該主裝置,耦接至該記憶裝置,其中該主裝置包含:至少一處理器,用來控制該主裝置之運作;以及一電源供應電路,耦接至該至少一處理器,用來提供電源予該至少一處理器與該記憶裝置;其中該記憶裝置係用來提供儲存空間給該主裝置。
- 一種記憶裝置之控制器,該記憶裝置包含該控制器與一非揮發性記 憶體(non-volatile memory,NV memory),該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element),該控制器包含有:一控制邏輯電路,耦接至該非揮發性記憶體,用來控制該非揮發性記憶體,其中該控制邏輯電路包含:一隨機化(randomizing)/去隨機化(de-randomizing)及錯誤更正碼(Error Correction Code,ECC)電路,用來進行隨機化、去隨機化、錯誤更正碼編碼以及錯誤更正碼解碼中之至少一者;以及一空頁偵測電路,用來進行空頁偵測,其中該空頁偵測電路用以累積位元0的數量以產生位元零數;以及一處理電路,耦接至該控制邏輯電路,用來依據來自一主裝置(host device)的一指令控制該控制器,以容許該主裝置透過該控制器存取(access)該非揮發性記憶體,其中在該處理電路的控制下,該控制器進行下列運作:傳送一讀取指令至該非揮發性記憶體,以使該非揮發性記憶體輸出一資料流,其中該資料流代表該非揮發性記憶體中的多個預定區塊中之一區塊的一頁;以及分別利用該控制邏輯電路中之多個子電路來同時對該資料流進行不同類型的平行處理,以加速該記憶裝置的初始化,其中該多個子電路包含該隨機化/去隨機化及錯誤更正碼電路與該空頁偵測電路,且分別利用該多個子電路來同時對該資料流進行不同類型的平行處理包含:利用該隨機化/去隨機化及錯誤更正碼電路依據該資料流進行去隨機化及錯誤更正碼解碼,其中依據該資料流進行 去隨機化及錯誤更正碼解碼是關於該記憶裝置的初始化;以及利用該空頁偵測電路依據該資料流進行空頁偵測,其中依據該資料流進行空頁偵測是關於該記憶裝置的初始化之加速;其中當該去隨機化及錯誤更正碼解碼失敗時,該空頁偵測電路根據該位元零數是否小於或等於一位元零數門檻值來決定是否進行空頁偵測;若該位元零數小於該位元零數門檻值,判斷偵測到空頁,觸發進一步空頁搜尋;以及,若該位元零數大於該位元零數門檻值,則進行讀取重設設定。
- 如申請專利範圍第13項所述之控制器,其中該控制器利用該隨機化/去隨機化及錯誤更正碼電路依據該資料流進行去隨機化及錯誤更正碼解碼,以嘗試於該頁尋找該記憶裝置的初始化之相關資訊。
- 如申請專利範圍第14項所述之控制器,其中該控制器讀取錯誤更正碼解碼成功時所取得的資料,以從所讀取的資料取得該記憶裝置的初始化之該相關資訊。
- 如申請專利範圍第13項所述之控制器,其中該控制器利用該空頁偵測電路依據該資料流進行空頁偵測,以判斷該頁是否為空頁,其中藉由利用該空頁偵測電路進行空頁偵測,該控制器減少在任何空頁尋找該記憶裝置的初始化之相關資訊的機率。
- 如申請專利範圍第16項所述之控制器,其中當偵測到該頁為空頁時,該控制器觸發該非揮發性記憶體中的另一頁的空頁偵測,以判斷該另一頁是否為空頁。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106139328A TWI692771B (zh) | 2017-11-14 | 2017-11-14 | 用來控制一記憶裝置的運作之方法、記憶裝置及其控制器以及電子裝置 |
CN201810666231.4A CN109783005B (zh) | 2017-11-14 | 2018-06-26 | 控制记忆装置的方法、记忆装置、及其控制器和电子装置 |
US16/162,377 US10613932B2 (en) | 2017-11-14 | 2018-10-16 | Method for controlling operations of memory device, associated memory device and controller thereof, and associated electronic device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106139328A TWI692771B (zh) | 2017-11-14 | 2017-11-14 | 用來控制一記憶裝置的運作之方法、記憶裝置及其控制器以及電子裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201919048A TW201919048A (zh) | 2019-05-16 |
TWI692771B true TWI692771B (zh) | 2020-05-01 |
Family
ID=66432170
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106139328A TWI692771B (zh) | 2017-11-14 | 2017-11-14 | 用來控制一記憶裝置的運作之方法、記憶裝置及其控制器以及電子裝置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10613932B2 (zh) |
CN (1) | CN109783005B (zh) |
TW (1) | TWI692771B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11354231B2 (en) * | 2019-05-30 | 2022-06-07 | Silicon Motion, Inc. | Method for performing access management of memory device with aid of information arrangement, associated memory device and controller thereof, associated electronic device |
US10811075B1 (en) * | 2019-08-19 | 2020-10-20 | Silicon Motion, Inc. | Method for performing access control regarding quality of service optimization of memory device with aid of machine learning, associated memory device and controller thereof |
KR20210050304A (ko) * | 2019-10-28 | 2021-05-07 | 에스케이하이닉스 주식회사 | 메모리 장치 및 그 동작 방법 |
TWI720852B (zh) | 2020-03-20 | 2021-03-01 | 慧榮科技股份有限公司 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130219246A1 (en) * | 2008-09-12 | 2013-08-22 | Kwan-Ho Kim | Method and Apparatus for Detecting Free Page and a Method and Apparatus for Decoding Error Correction Code Using the Method and Apparatus for Detecting Free Page |
US8782490B2 (en) * | 2010-05-10 | 2014-07-15 | Samsung Electronics Co., Ltd. | Data storage device and program method that modifies arrangement of program data to eliminate interfering data patterns |
US20170277589A1 (en) * | 2016-03-28 | 2017-09-28 | Via Technologies, Inc. | Non-volatile memory apparatus and empty page detection method thereof |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI527048B (zh) * | 2013-11-29 | 2016-03-21 | 慧榮科技股份有限公司 | 應用於快閃記憶體裝置的錯誤更正碼單元、自我測試方法及相關的控制器 |
CN106250050B (zh) * | 2015-06-10 | 2021-02-05 | 恩智浦美国有限公司 | 用于数据传输中的实时空白页检测的方法和装置 |
CN106847342B (zh) * | 2016-03-28 | 2020-05-29 | 威盛电子股份有限公司 | 非易失性存储器装置及其空页检测方法 |
KR20180123265A (ko) * | 2017-05-08 | 2018-11-16 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
-
2017
- 2017-11-14 TW TW106139328A patent/TWI692771B/zh active
-
2018
- 2018-06-26 CN CN201810666231.4A patent/CN109783005B/zh active Active
- 2018-10-16 US US16/162,377 patent/US10613932B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130219246A1 (en) * | 2008-09-12 | 2013-08-22 | Kwan-Ho Kim | Method and Apparatus for Detecting Free Page and a Method and Apparatus for Decoding Error Correction Code Using the Method and Apparatus for Detecting Free Page |
US8782490B2 (en) * | 2010-05-10 | 2014-07-15 | Samsung Electronics Co., Ltd. | Data storage device and program method that modifies arrangement of program data to eliminate interfering data patterns |
US20170277589A1 (en) * | 2016-03-28 | 2017-09-28 | Via Technologies, Inc. | Non-volatile memory apparatus and empty page detection method thereof |
Also Published As
Publication number | Publication date |
---|---|
TW201919048A (zh) | 2019-05-16 |
US20190146872A1 (en) | 2019-05-16 |
CN109783005A (zh) | 2019-05-21 |
CN109783005B (zh) | 2022-04-12 |
US10613932B2 (en) | 2020-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9564239B2 (en) | Memory controller and operating method thereof | |
US9043678B2 (en) | Detecting effect of corrupting event on preloaded data in non-volatile memory | |
US20150169406A1 (en) | Decoding techniques for a data storage device | |
TWI692771B (zh) | 用來控制一記憶裝置的運作之方法、記憶裝置及其控制器以及電子裝置 | |
TWI446350B (zh) | 用來減少無法更正的錯誤之方法以及記憶裝置及其控制器 | |
US10977116B2 (en) | Data access method, memory control circuit unit and memory storage device | |
US9208021B2 (en) | Data writing method, memory storage device, and memory controller | |
TWI664634B (zh) | 快閃記憶體控制器、管理快閃記憶體模組的方法及相關的電子裝置 | |
US10782920B2 (en) | Data access method, memory storage apparatus and memory control circuit unit | |
TW201926042A (zh) | 用來於一記憶裝置中進行存取控制之方法以及記憶裝置及其控制器 | |
US10872667B2 (en) | Decoding method, memory controlling circuit unit and memory storage device | |
CN109426582B (zh) | 用于存储装置为错误处置进行数据处理的方法及控制器 | |
CN111984462B (zh) | 无预警断电复原管理方法、记忆装置、控制器及电子装置 | |
US11190217B2 (en) | Data writing method, memory controlling circuit unit and memory storage device | |
US20200066366A1 (en) | Memory testing method and memory testing system | |
US20190198115A1 (en) | Data writing method, valid data identifying method and memory storage apparatus | |
CN110875081B (zh) | 存储器测试方法与存储器测试系统 | |
US12079483B2 (en) | Method for accessing flash memory module, flash memory controller, and memory device | |
US12039171B2 (en) | Method for accessing flash memory module, flash memory controller, and memory device | |
US11145372B2 (en) | Decoding method, memory controlling circuit unit, and memory storage device | |
US10922019B2 (en) | Data writing method, memory controlling circuit unit and memory storage device | |
US10169224B2 (en) | Data protecting method for preventing received data from losing, memory storage apparatus and memory control circuit unit | |
CN116126210A (zh) | 数据存取方法、存储器存储装置及存储器控制器 | |
CN118016120A (zh) | 能够降低功耗的存储器、控制器和计算系统 | |
CN111324478A (zh) | 解码方法、存储器控制电路单元以及存储器存储装置 |