TW202008171A - 資料寫入方法以及儲存控制器 - Google Patents
資料寫入方法以及儲存控制器 Download PDFInfo
- Publication number
- TW202008171A TW202008171A TW107125097A TW107125097A TW202008171A TW 202008171 A TW202008171 A TW 202008171A TW 107125097 A TW107125097 A TW 107125097A TW 107125097 A TW107125097 A TW 107125097A TW 202008171 A TW202008171 A TW 202008171A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- physical address
- write
- logical
- register
- 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
- 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
- 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/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
- 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/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- 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/7201—Logical 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)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本發明提供一種資料寫入方法。所述方法包括從主機系統接收第一寫入指令與對應所述第一寫入指令的第一資料,其中所述第一寫入指令指示將所述第一資料儲存至第一邏輯位址;複製所述第一資料至寄存器,回應所述主機系統所述第一寫入指令已完成,並且開始執行第一程式化操作以將所述第一資料從所述寄存器程式化至第一實體頁面;以及反應於判定所述第一程式化操作失敗,根據邏輯轉實體位址映射表來從所述寄存器讀取所述第一資料,以及強制程式化所述第一資料至第二實體頁面。
Description
本發明是有關於一種資料寫入方法,且特別是有關於一種適用於配置有可複寫式非揮發性記憶體模組的儲存裝置的資料寫入方法與儲存控制器。
一般來說,為了避免寫入操作失敗,儲存裝置的儲存控制器會使用較大的緩衝記憶體來儲存所欲執行的寫入操作的資料,以在寫入操作失敗時,從緩衝記憶體中讀取所述寫入資料,以重新執行所述寫入資料的寫入操作。
然而,隨著快閃記憶體的容量的提昇,因應於預防寫入操作失敗所需之儲存在緩衝記憶體的寫入資料的大小也增加,進而導致了緩衝記憶體的空間的需求提高,造成了儲存裝置的整體成本的增加。
因此,如何不經由使用緩衝記憶體以備份寫入資料的情況下,仍可復原所發生的失敗的寫入操作且維持寫入操作的正確性與可靠度,是本領域人員研究的課題之一。
本發明提供一種資料寫入方法,在緩衝記憶體不儲存寫入資料的情況下,可反應於對應所述寫入資料的程式化操作的失敗而從寄存器中直接讀取所述寫入資料,以重新執行對應所讀取之所述寫入資料的程式化操作,進而恢復應已被程式化至可複寫式非揮發性記憶體模組的所述寫入資料。
本發明的一實施例提供一種資料寫入方法,適用於配置有可複寫式非揮發性記憶體模組的儲存裝置,其中所述可複寫式非揮發性記憶體模組具有多個實體頁面。所述方法包括:從主機系統接收第一寫入指令與對應所述第一寫入指令的第一資料,將所述第一寫入指令儲存至緩衝記憶體中的一指令佇列,並且將所述第一資料儲存至所述緩衝記憶體,其中所述第一寫入指令指示將所述第一資料儲存至第一邏輯位址;開始執行所述第一寫入指令,複製所述第一資料至寄存器,記錄第一實體位址至一邏輯轉實體位址映射表以映射所述第一實體位址至所述第一邏輯位址,回應所述主機系統所述第一寫入指令已完成,並且開始執行第一程式化操作以將所述第一資料從所述寄存器程式化至所述第一實體頁面;以及反應於判定所述第一程式化操作失敗,執行對應所述第一資料的第一重新程式化操作,所述第一重新程式化操作包括:根據所述邏輯轉實體位址映射表來判斷是否從所述寄存器讀取所述第一資料;反應於判定從所述寄存器讀取所述第一資料,從所述寄存器讀取所述第一資料;以及強制程式化所述第一資料至第二實體頁面,並且在所述第一資料被程式化至所述第二實體頁面後,記錄所述第二實體頁面的第二實體位址至所述邏輯轉實體位址映射表以映射所述第二實體位址至所述第一邏輯位址,以完成所述第一重新程式化操作。
本發明的一實施例提供用於控制配置有可複寫式非揮發性記憶體模組的儲存裝置的一種儲存控制器。所述儲存控制器包括:連接介面電路、記憶體介面控制電路、寫入恢復操作電路單元以及處理器。連接介面電路用以耦接至主機系統。記憶體介面控制電路用以耦接至所述可複寫式非揮發性記憶體模組,其中所述可複寫式非揮發性記憶體模組具有多個實體頁面。所述處理器耦接至所述連接介面電路、所述記憶體介面控制電路與所述寫入恢復操作電路單元,並且用以從主機系統接收第一寫入指令與對應所述第一寫入指令的第一資料,將所述第一寫入指令儲存至緩衝記憶體中的指令佇列,並且將所述第一資料儲存至所述緩衝記憶體,其中所述第一寫入指令指示將所述第一資料儲存至第一邏輯位址。所述處理器更用以開始執行所述第一寫入指令,複製所述第一資料至寄存器,並且記錄第一實體位址至邏輯轉實體位址映射表以映射所述第一實體位址至所述第一邏輯位址,其中所述處理器更用以回應所述主機系統所述第一寫入指令已完成,並且指示所述記憶體介面控制電路開始執行第一程式化操作以將所述第一資料從所述寄存器程式化至所述第一實體頁面。此外,反應於判定所述第一程式化操作失敗,所述處理器更用以指示所述寫入恢復操作電路單元執行對應所述第一資料的一第一重新程式化操作。所述第一重新程式化操作包括:所述寫入恢復操作電路單元根據所述邏輯轉實體位址映射表來判斷是否從所述寄存器讀取所述第一資料;反應於判定從所述寄存器讀取所述第一資料,所述寫入恢復操作電路單元從所述寄存器讀取所述第一資料;以及所述寫入恢復操作電路單元強制程式化所述第一資料至一第二實體頁面,並且在所述第一資料被程式化至所述第二實體頁面後,記錄所述第二實體頁面的一第二實體位址至所述邏輯轉實體位址映射表以映射所述第二實體位址至所述第一邏輯位址,以完成所述第一重新程式化操作。
基於上述,本發明實施例所提供的資料寫入方法以及儲存控制器,可反應於判定對應一資料的程式化操作失敗,直接從寄存器中讀取所述資料,以重新程式化所述資料,進而恢復之前失敗的所述程式化操作。如此一來,儲存裝置的資料寫入操作的完整性及可靠度可被提昇。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
在本實施例中,儲存裝置包括可複寫式非揮發性記憶體模組(rewritable non-volatile memory module)與儲存裝置控制器(亦稱,儲存控制器或儲存控制電路)。此外,儲存裝置是與主機系統一起使用,以使主機系統可將資料寫入至儲存裝置或從儲存裝置中讀取資料。
圖1是根據本發明的一實施例所繪示的主機系統及儲存裝置的方塊示意圖。
請參照圖1,主機系統(Host System)10包括處理器(Processor)110、主機記憶體(Host Memory)120及資料傳輸介面電路(Data Transfer Interface Circuit)130。在本實施例中,資料傳輸介面電路130耦接(亦稱,電性連接)至處理器110與主機記憶體120。在另一實施例中,處理器110、主機記憶體120與資料傳輸介面電路130之間利用系統匯流排(System Bus)彼此耦接。
儲存裝置20包括儲存控制器(Storage Controller)210、可複寫式非揮發性記憶體模組(Rewritable Non-Volatile Memory Module)220及連接介面電路(Connection Interface Circuit)230。其中,儲存控制器210包括處理器211、資料管理電路(Data Management Circuit)212與記憶體介面控制電路(Memory Interface Control Circuit)213。
在本實施例中,主機系統10是透過資料傳輸介面電路130與儲存裝置20的連接介面電路230耦接至儲存裝置20來進行資料的存取操作。例如,主機系統10可經由資料傳輸介面電路130將資料儲存至儲存裝置20或從儲存裝置20中讀取資料。
在本實施例中,處理器110、主機記憶體120及資料傳輸介面電路130可設置在主機系統10的主機板上。資料傳輸介面電路130的數目可以是一或多個。透過資料傳輸介面電路130,主機板可以經由有線或無線方式耦接至儲存裝置20。儲存裝置20可例如是隨身碟、記憶卡、固態硬碟(Solid State Drive,SSD)或無線記憶體儲存裝置。無線記憶體儲存裝置可例如是近距離無線通訊(Near Field Communication,NFC)記憶體儲存裝置、無線傳真(WiFi)記憶體儲存裝置、藍牙(Bluetooth)記憶體儲存裝置或低功耗藍牙記憶體儲存裝置(例如,iBeacon)等以各式無線通訊技術為基礎的記憶體儲存裝置。此外,主機板也可以透過系統匯流排耦接至全球定位系統(Global Positioning System,GPS)模組、網路介面卡、無線傳輸裝置、鍵盤、螢幕、喇叭等各式I/O裝置。
在本實施例中,資料傳輸介面電路130與連接介面電路230是相容於高速周邊零件連接介面(Peripheral Component Interconnect Express, PCI Express)標準的介面電路。並且,資料傳輸介面電路130與連接介面電路230之間是利用快速非揮發性記憶體介面標準(Non-Volatile Memory express,NVMe)通訊協定來進行資料的傳輸。
然而,必須瞭解的是,本發明不限於此,資料傳輸介面電路130與連接介面電路230亦可以是符合並列先進附件(Parallel Advanced Technology Attachment,PATA)標準、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394標準、序列先進附件(Serial Advanced Technology Attachment,SATA)標準、通用序列匯流排(Universal Serial Bus,USB)標準、SD介面標準、超高速一代(Ultra High Speed-I,UHS-I)介面標準、超高速二代(Ultra High Speed-II,UHS-II)介面標準、記憶棒(Memory Stick, MS)介面標準、多晶片封裝(Multi-Chip Package)介面標準、多媒體儲存卡(Multi Media Card,MMC)介面標準、eMMC介面標準、通用快閃記憶體(Universal Flash Storage,UFS)介面標準、eMCP介面標準、CF介面標準、整合式驅動電子介面(Integrated Device Electronics,IDE)標準或其他適合的標準。此外,在另一實施例中,連接介面電路230可與儲存控制器210封裝在一個晶片中,或者連接介面電路230是佈設於一包含儲存控制器210之晶片外。
在本實施例中,主機記憶體120用以暫存處理器110所執行的指令或資料。例如,在本範例實施例中,主機記憶體120可以是動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)、靜態隨機存取記憶體(Static Random Access Memory,SRAM)等。然而,必須瞭解的是,本發明不限於此,主機記憶體120也可以是其他適合的記憶體。
儲存控制器210用以執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令並且根據主機系統10的指令在可複寫式非揮發性記憶體模組220中進行資料的寫入、讀取與抹除等運作。
更詳細來說,儲存控制器210中的處理器211為具備運算能力的硬體,其用以控制儲存控制器210的整體運作。具體來說,處理器211具有多個控制指令,並且在儲存裝置20運作時,此些控制指令會被執行以進行資料的寫入、讀取與抹除等運作。
值得一提的是,在本實施例中,處理器110與處理器211例如是中央處理單元(Central Processing Unit,CPU)、微處理器(micro-processor)、或是其他可程式化之處理單元(Microprocessor)、數位訊號處理器(Digital Signal Processor,DSP)、可程式化控制器、特殊應用積體電路(Application Specific Integrated Circuits,ASIC)、可程式化邏輯裝置(Programmable Logic Device,PLD)或其他類似電路元件,本發明並不限於此。
在一實施例中,儲存控制器210還具有唯讀記憶體(未繪示)及隨機存取記憶體(未繪示)。特別是,此唯讀記憶體具有開機碼(boot code),並且當儲存控制器210被致能時,處理器211會先執行此開機碼來將儲存於可複寫式非揮發性記憶體模組220中之控制指令載入至儲存控制器210的隨機存取記憶體中。之後,處理器211會運轉此些控制指令以進行資料的寫入、讀取與抹除等運作。在另一實施例中,處理器211的控制指令亦可以程式碼型式儲存於可複寫式非揮發性記憶體模組220的特定區域,例如,可複寫式非揮發性記憶體模組220中專用於存放系統資料的實體儲存單元中。
在本實施例中,如上所述,儲存控制器210還包括資料管理電路212與記憶體介面控制電路213。應注意的是,儲存控制器220各部件所執行的操作亦可視為儲存控制器220所執行的操作。
其中,資料管理電路212耦接至處理器211、記憶體介面控制電路213與連接介面電路230。資料管理電路212用以接受處理器211的指示來進行資料的傳輸。例如,經由連接介面電路230從主機系統10(如,主機記憶體120)讀取資料,並且將所讀取的資料經由記憶體介面控制電路213寫入至可複寫式非揮發性記憶體模組220中(如,根據來自主機系統10的寫入指令來進行寫入操作)。又例如,經由記憶體介面控制電路213從可複寫式非揮發性記憶體模組220的一或多個實體單元中讀取資料(資料可讀取自一或多個實體單元中的一或多個記憶胞),並且將所讀取的資料經由連接介面電路230寫入至主機系統10(如,主機記憶體120)中(如,根據來自主機系統10的讀取指令來進行讀取操作)。在另一實施例中,資料管理電路212亦可整合至處理器211中。
記憶體介面控制電路213用以接受處理器211的指示,配合資料管理電路212來進行對於可複寫式非揮發性記憶體模組220的寫入(亦稱,程式化,Programming)操作、讀取操作或抹除操作。
舉例來說,處理器211可執行寫入指令序列,以指示記憶體介面控制電路213將資料寫入至可複寫式非揮發性記憶體模組220中;處理器211可執行讀取指令序列,以指示記憶體介面控制電路213從可複寫式非揮發性記憶體模組220的對應讀取指令的一或多個實體單元(亦稱,目標實體單元)中讀取資料;處理器211可執行抹除指令序列,以指示記憶體介面控制電路213對可複寫式非揮發性記憶體模組220進行抹除操作。寫入指令序列、讀取指令序列及抹除指令序列可各別包括一或多個程式碼或指令碼並且用以指示對可複寫式非揮發性記憶體模組220執行相對應的寫入、讀取及抹除等操作。在一實施例中,處理器211還可以下達其他類型的指令序列給記憶體介面控制電路213,以對可複寫式非揮發性記憶體模組220執行相對應的操作。
此外,欲寫入至可複寫式非揮發性記憶體模組220的資料會經由記憶體介面控制電路213轉換為可複寫式非揮發性記憶體模組220所能接受的格式。具體來說,若處理器211要存取可複寫式非揮發性記憶體模組220,處理器211會傳送對應的指令序列給記憶體介面控制電路213以指示記憶體介面控制電路213執行對應的操作。例如,這些指令序列可包括指示寫入資料的寫入指令序列、指示讀取資料的讀取指令序列、指示抹除資料的抹除指令序列、以及用以指示各種記憶體操作(例如,改變預設讀取電壓組的多個預設讀取電壓值以進行讀取操作,或執行垃圾回收程序等等)的相對應的指令序列。這些指令序列可包括一或多個訊號,或是在匯流排上的資料。這些訊號或資料可包括指令碼或程式碼。例如,在讀取指令序列中,會包括讀取的辨識碼、記憶體位址等資訊。
應注意的是,在本實施例中,記憶體介面控制電路213包括寄存器2131,用以暫存欲寫入至可複寫式非揮發性記憶體模組220的資料。具體來說,在欲寫入至可複寫式非揮發性記憶體模組220的資料經由記憶體介面控制電路213轉換為可複寫式非揮發性記憶體模組220所能接受的格式後,所述已轉換的資料會被儲存至寄存器2131。接著,記憶體介面控制電路213會使用對應的程式化電壓來將儲存在寄存器2131中的已轉換的資料程式化至可複寫式非揮發性記憶體模組220。
可複寫式非揮發性記憶體模組220是耦接至儲存控制器210(記憶體介面控制電路213)並且用以儲存主機系統10所寫入之資料。可複寫式非揮發性記憶體模組220可以是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個位元的快閃記憶體模組)、多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元的快閃記憶體模組)、三階記憶胞(Triple Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元的快閃記憶體模組)、四階記憶胞(Quadruple Level Cell,QLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存4個位元的快閃記憶體模組)、三維NAND型快閃記憶體模組(3D NAND flash memory module)或垂直NAND型快閃記憶體模組(Vertical NAND flash memory module)等其他快閃記憶體模組或其他具有相同特性的記憶體模組。可複寫式非揮發性記憶體模組220中的記憶胞是以陣列的方式設置。
在本實施例中,可複寫式非揮發性記憶體模組220具有多個字元線,其中所述多個字元線的每一個字元線包括多個記憶胞。同一條字元線上的多個記憶胞會組成一或多個實體程式化單元(實體頁面)。此外,多個實體程式化單元可組成一個實體單元(實體區塊或實體抹除單元)。
在本實施例中,是以一個實體頁面作為寫入(程式化)資料的最小單位。實體單元為抹除之最小單位,即,每一實體單元含有最小數目之一併被抹除之記憶胞。此外,每個實體頁面的位址亦可稱為實體位址。
應注意的是,在本實施例中,用以記錄一實體單元的資訊的系統資料可利用該實體單元中的一或多個記憶胞來記錄,或是利用一個系統區中用以記錄所有系統資料的特定實體單元的一或多個記憶胞來記錄。
此外,必須瞭解的是,當處理器211對可複寫式非揮發性記憶體模組220中的記憶胞(或實體單元)進行分組以執行對應的管理操作時,此些記憶胞(或實體單元)是被邏輯地分組,而其實際位置並未更動。
儲存控制器210會配置多個邏輯單元給可複寫式非揮發性記憶體模組220。主機系統10是透過所配置的邏輯單元來存取儲存在多個實體單元中的使用者資料。在此,每一個邏輯單元可以是由一或多個邏輯位址組成。例如,邏輯單元可以是邏輯區塊(Logical Block)、邏輯頁面(Logical Page)或是邏輯扇區(Logical Sector)。一個邏輯單元可以是映射至一或多個實體單元,其中實體單元可以是一或多個實體位址、一或多個實體扇、一或多個實體程式化單元或者一或多個實體抹除單元。在本實施例中,邏輯單元為邏輯區塊,並且邏輯子單元為邏輯頁面。每一邏輯單元具有多個邏輯子單元。在本實施例中,邏輯子單元的位址亦稱為邏輯位址。
此外,儲存控制器210會建立邏輯轉實體位址映射表(Logical To Physical address mapping table)與實體轉邏輯位址映射表(Physical To Logical address mapping table),以記錄配置給可複寫式非揮發性記憶體模組220的邏輯位址與實體位址之間的映射關係。換言之,儲存控制器210可藉由邏輯轉實體位址映射表來查找一邏輯位址所映射的實體位址,並且儲存控制器210可藉由實體轉邏輯位址映射表來查找一實體位址所映射的邏輯位址。然而,上述有關邏輯位址與實體位址之間的映射關係的技術概念為本領域技術人員之慣用技術手段,不再贅述於此。在儲存控制器的一般運作中,所述邏輯轉實體位址映射表與實體轉邏輯位址映射表可被維護於緩衝記憶體216中。
在本實施例中,錯誤檢查與校正電路214是耦接至處理器211並且用以執行錯誤檢查與校正程序以確保資料的正確性。具體來說,當處理器211從主機系統10中接收到寫入指令時,錯誤檢查與校正電路214會為對應此寫入指令的資料產生對應的錯誤更正碼(error correcting code,ECC)及/或錯誤檢查碼(error detecting code,EDC),並且處理器211會將對應此寫入指令的資料與對應的錯誤更正碼及/或錯誤檢查碼寫入至可複寫式非揮發性記憶體模組220中。之後,當處理器211從可複寫式非揮發性記憶體模組220中讀取資料時會同時讀取此資料對應的錯誤更正碼及/或錯誤檢查碼,並且錯誤檢查與校正電路214會依據此錯誤更正碼及/或錯誤檢查碼對所讀取的資料執行錯誤檢查與校正程序。此外,在錯誤檢查與校正程序後,若成功解碼所讀取之資料,錯誤檢查與校正電路214可回傳錯誤位元值給處理器211。
在一實施例中,儲存控制器210還包括緩衝記憶體216與電源管理電路217。緩衝記憶體216是耦接至處理器211並且用以暫存來自於主機系統10的資料與指令、來自於可複寫式非揮發性記憶體模組220的資料或其他用以管理儲存裝置20的系統資料,以讓處理器211可快速地從緩衝記憶體216中存取所述資料、指令或系統資料。電源管理電路217是耦接至處理器211並且用以控制儲存裝置20的電源。
在本實施例中,寫入恢復操作電路單元215包括寫入資料管理電路2151與強制程式化電路2152。所述寫入恢復操作電路單元215用以接收處理器211指示來執行寫入指令或重新程式化操作。應注意的是,在一實施例中,上述寫入恢復操作電路單元215亦可整合至處理器211中,以使處理器211可實行本實施例所提供的資料寫入方法。
以下會配合多個圖式來詳細說明本發明之實施例所提供的資料寫入方法的細節,以及對應所述資料寫入方法的儲存控制器210與寫入恢復操作電路單元215的功能。
圖2是根據本發明的一實施例所繪示的資料寫入方法的流程圖。請同時參照圖1與圖2,在步驟S21中,處理器211從主機系統10接收第一寫入指令與對應所述第一寫入指令的第一資料,將所述第一寫入指令儲存至緩衝記憶體216中的指令佇列,並且將所述第一資料儲存至所述緩衝記憶體216,其中所述第一寫入指令指示將所述第一資料儲存至第一邏輯位址。
具體來說,處理器211可在緩衝記憶體216劃分一塊區域來做為指令佇列,所述指令佇列用以記錄(儲存)從主機系統10所接收之寫入指令與讀取指令。此外,指令佇列亦可記錄其他種類的指令。舉例來說,每當處理器211從主機系統接收一個指令,處理器211會將此指令儲存至指令佇列。接著,處理器211會根據先進先出(First In First Out)的方式來執行記錄在指令佇列中的指令。若所接收的是寫入指令,處理器211更會將從主機系統所接收的對應該寫入指令的資料儲存至緩衝記憶體216中的緩衝區(Buffer)或寫入資料緩衝區(Write Data Buffer)。
接著,在步驟S23中,處理器211開始執行所述第一寫入指令,複製所述第一資料至寄存器2131,記錄第一實體位址至邏輯轉實體位址映射表以映射所述第一實體位址至所述第一邏輯位址,回應所述主機系統10所述第一寫入指令已完成,並且開始執行第一程式化操作以將所述第一資料從所述寄存器2131程式化至所述第一實體頁面。
具體來說,依據指令佇列中所排列的多個指令的順序,處理器211欲執行第一寫入指令。接著,處理器211會從可複寫式非揮發性記憶體模組220的所有可用的實體區塊中,選擇其中一個實體區塊(亦稱,第一實體區塊)作為用以儲存第一資料的實體區塊,並且開始執行所述第一寫入指令,以將第一資料寫入至第一實體區塊的第一實體頁面。所述第一實體頁面的位址亦稱為第一實體位址。
接著,處理器211會從緩衝記憶體中讀取第一資料,並且複製所述第一資料至寄存器2131。在完成複製所述第一資料至寄存器2131的操作後,處理器211記錄第一實體位址至邏輯轉實體位址映射表以映射所述第一實體位址至所述第一邏輯位址。所述邏輯轉實體位址映射表被儲存在緩衝記憶體216中。在此並不限定邏輯轉實體位址映射表的具體格式。但,經由邏輯轉實體位址映射表,處理器211可知道儲存在可複寫式非揮發性記憶體模組220的第一實體位址的第一資料為主機系統所指示的儲存在第一邏輯位址的第一資料。
在經由記錄邏輯轉實體位址映射表以記錄第一實體位址與第一邏輯位址的映射關係後,處理器211回應所述主機系統10所述第一寫入指令已完成。
應注意的是,在一實施例中,在經由記錄邏輯轉實體位址映射表以記錄第一實體位址與第一邏輯位址的映射關係後,因為緩衝記憶體的空間需求/管理,儲存在所述緩衝記憶體216中的所述第一資料與所述指令佇列內的所述第一寫入指令可能會被刪除。在此情況下,第一資料會僅被儲存於寄存器2131中,並且尚未被程式化至可複寫式非揮發性記憶體模組220的第一實體位址(第一實體頁面)。也就是說,當第一資料被儲存至寄存器2131後,第一資料並不一定會被維持在緩衝記憶體中(即,緩衝記憶體216並不保證儲存有第一資料)。基此,若要重新程式化第一資料,處理器211或寫入恢復操作電路單元215並不會從緩衝記憶體216中來找尋第一資料。
接著,處理器211可指示記憶體介面控制電路213開始執行對應所述第一資料的程式化操作(亦稱,第一程式化操作),以經由施加程式化電壓將儲存於寄存器2131的第一資料程式化至第一實體頁面。
在本實施例中,記憶體介面控制電路213可在執行完第一程式化操作後,執行寫入檢驗操作,以利用施加一檢驗電壓來讀取第一實體頁面,以判斷第一程式化操作是否成功或失敗(獲得一檢驗結果)。本發明並不限於寫入檢驗操作的細節。記憶體介面控制電路213可回傳檢驗結果給處理器211,以讓處理器211判斷第一程式化操作是否成功或失敗。
在一實施例中,若在第一程式化操作的期間發生了異常(如,逾時事件),處理器211亦可判定所述第一程式化操作失敗。
在步驟S25中,反應於判定所述第一程式化操作失敗,處理器211用以指示寫入恢復操作電路單元215執行對應所述第一資料的第一重新程式化操作。
詳細來說,第一重新程式化操作可包括步驟S251、S252、S253、S254。
在步驟S251中,寫入恢復操作電路單元215(或寫入資料管理電路2151)根據所述邏輯轉實體位址映射表來判斷是否從所述寄存器2131讀取所述第一資料。也就是說,在第一資料還儲存在寄存器2131的情況下,寫入恢復操作電路單元215(或寫入資料管理電路2151)可根據所述邏輯轉實體位址映射表來進一步判斷是否需從所述寄存器2131讀取所述第一資料。以下會分別藉由圖3A、3B來詳細說明步驟S251的細節。
圖3A是根據本發明的一實施例所繪示的圖2的步驟S251的流程圖。
在步驟S2511中,寫入恢復操作電路單元215(或寫入資料管理電路2151)根據所述邏輯轉實體位址映射表來辨識所述第一邏輯位址所映射的第三實體位址。
具體來說,寫入恢復操作電路單元215(或寫入資料管理電路2151)會讀取最新的邏輯轉實體位址映射表,並且從所述邏輯轉實體位址映射表中查找第一邏輯位址所對應的實體位址(即,第三實體位址)。
如上所述,由於本實施例在執行第一寫入指令的期間,會在尚未程式化第一資料之前,就記錄對應第一邏輯位址的第一實體位址於邏輯轉實體位址映射表中。基此,若邏輯轉實體位址映射表中對應第一邏輯位址的實體位址不為之前所記錄的第一實體位址,寫入恢復操作電路單元215(或寫入資料管理電路2151)可判定在邏輯轉實體位址映射表中對應第一邏輯位址且不同於第一實體位址的第三實體位址中所儲存的資料是對應新的寫入指令的新資料(所述新的寫入指令也指示將新資料寫入至第一邏輯位址)。此時,寫入恢復操作電路單元215(或寫入資料管理電路2151)便判定不從寄存器2131中讀取較舊的第一資料。反之,寫入恢復操作電路單元215(或寫入資料管理電路2151)會認為沒有新的寫入指令來寫入新資料至第一邏輯位址,並且判定需從寄存器2131中讀取較舊的第一資料。
詳細來說,在步驟S2513中,寫入恢復操作電路單元215(或寫入資料管理電路2151)判斷所述第三實體位址是否等於所述第一實體位址。其中反應於判定所述第三實體位址等於所述第一實體位址(S2513à是),接續至步驟S2515,寫入恢復操作電路單元215(或寫入資料管理電路2151)判定從所述寄存器2131讀取所述第一資料(即,S251à是)。
反之,反應於判定所述第三實體位址不等於所述第一實體位址(S2513à否),接續至步驟S2517,寫入恢復操作電路單元215(或寫入資料管理電路2151)判定忽略所述第一資料且不從所述寄存器2131讀取所述第一資料(即,S251à否)。
然而,在另一實施例中,反應於判定所述第三實體位址等於所述第一實體位址(S2513à是),寫入恢復操作電路單元215(或寫入資料管理電路2151)會更根據指令佇列來判斷是否從所述寄存器2131讀取所述第一資料。
圖3B是根據本發明的另一實施例所繪示的圖2的步驟S251的流程圖。圖3B中的步驟S2511、S2513、S2515、S2517相同於圖3A的所述步驟,不贅述於此。以下僅說明圖3B與圖3A不同的步驟,即,步驟S2514。
在此另一實施例中,反應於判定所述第三實體位址等於所述第一實體位址(S2513à是),接續至步驟S2514,寫入恢復操作電路單元215(或寫入資料管理電路2151)判斷所述指令佇列是否儲存第二寫入指令,其中所述第二寫入指令指示將第二資料儲存至所述第一邏輯位址。
也就是說,在判定所述第三實體位址等於所述第一實體位址後,寫入恢復操作電路單元215(或寫入資料管理電路2151)會進一步檢查指令佇列中是否記錄有指示將資料(亦稱,第二資料)寫入至第一邏輯位址(相同於第一寫入指令所指示的邏輯位址)的其他寫入指令(亦稱,第二寫入指令)。若有(S2514à是),則寫入恢復操作電路單元215(或寫入資料管理電路2151)會認為不需要重新程式化第一資料(因為,就算重新程式化第一資料,對應的第一邏輯位址也會被新的第二資料所取代),進而接續至步驟S2517,寫入恢復操作電路單元215(或寫入資料管理電路2151)判定忽略所述第一資料且不從所述寄存器讀取所述第一資料(即,S251à否)。如此一來,可避免執行沒有效益的第一重新程式化操作。
反之(S2514à否),接續至步驟S2515,寫入恢復操作電路單元215(或寫入資料管理電路2151)判定從所述寄存器讀取所述第一資料(即,S251à是)。
請再回到圖2,在執行步驟S251後,反應於判定所述寄存器讀取所述第一資料(即,S251à是),接續至步驟S252,寫入恢復操作電路單元215(或寫入資料管理電路2151)從所述寄存器讀取所述第一資料。具體來說,寫入恢復操作電路單元215(或寫入資料管理電路2151)可利用對應可複寫式非揮發性記憶體模組220的一供應商指令(Vendor command)來從寄存器2131中讀取第一資料。所述第一資料可暫存於緩衝記憶體216。
接著,在步驟S253中,寫入恢復操作電路單元215(或強制程式化電路2151)強制程式化所述第一資料至一第二實體頁面,並且在所述第一資料被程式化至所述第二實體頁面後,記錄所述第二實體頁面的一第二實體位址至所述邏輯轉實體位址映射表以映射所述第二實體位址至所述第一邏輯位址,以完成所述第一重新程式化操作。
應注意的是,在第一重新程式化操作中,於步驟S253中所述的「強制程式化所述第一資料至第二實體頁面」(亦稱,第一強制程式化操作)的操作並不同於步驟S23所述的第一程式化操作。具體來說,差異至少有下面兩點。第一點,第一強制程式化操作是將第一資料程式化至第二實體頁面,即,不同於第一實體頁面的另個實體頁面。第二點,強制程式化電路2151會在更新所述邏輯轉實體位址映射表的操作(即,上述「記錄所述第二實體頁面的第二實體位址至所述邏輯轉實體位址映射表以映射所述第二實體位址至所述第一邏輯位址」的步驟)之前,就先強制將第一資料程式化至第二實體頁面。也就是說,在判定第一資料已被程式化至第二實體頁面後,才記錄所述第二實體頁面的第二實體位址至所述邏輯轉實體位址映射表以映射所述第二實體位址至所述第一邏輯位址。
應注意的是,強制程式化電路2152更可包含一大電容(未繪示),其提供一備用電力,此備用電力足以於重新程式化操作中強制程式化一筆資料且更新對應的邏輯轉實體位址映射表,以避免在強制程式化所述資料的過程中因發生斷電所導致的程式化失敗的錯誤。也就是說,在上述第一強制程式化操作中,就算發生了突然斷電事件,第一資料仍然可以被程式化至第二實體頁面,並且第二實體位址可被記錄至邏輯轉實體位址映射表(甚至邏輯轉實體位址映射表更可被寫入至可複寫式非揮發性記憶體模組220)。
在步驟S254中,寫入恢復操作電路單元215(或寫入資料管理電路2151)忽略所述第一資料且不從所述寄存器讀取所述第一資料,並且完成所述第一重新程式化操作。
應注意的是,在上述另一實施例(對應圖3B的實施例)中,反應於判定忽略所述第一資料且不從所述寄存器讀取所述第一資料,在所述完成所述第一重新程式化操作的步驟中,寫入恢復操作電路單元215(或強制程式化電路2152)更從所述緩衝記憶體216複製所述第二資料至所述寄存器2131,並且強制將所述第二資料程式化至所述第二實體頁面。此外,在所述第二資料已被程式化至所述第二實體頁面後,寫入恢復操作電路單元215(或寫入資料管理電路2151)記錄所述第二實體頁面的所述第二實體位址至所述邏輯轉實體位址映射表以映射所述第二實體位址至所述第一邏輯位址,以完成所述第一重新程式化操作。此時,處理器211亦可回應主機系統10第二寫入指令已完成。換言之,在上述另一實施例中,若發現指令佇列存在有對應同樣邏輯位址之其他寫入指令,寫入恢復操作電路單元215更會直接執行對應此其他寫入指令的第二資料的強制程式化操作,以確保此其他寫入指令的第二資料會被強制程式化至可複寫式非揮發性記憶體模組220。應注意的是,在一實施例中,在強制將所述第二資料程式化至所述第二實體頁面後且記錄所述第二實體頁面的所述第二實體位址至所述邏輯轉實體位址映射表之前,寫入恢復操作電路單元215(或寫入資料管理電路2151)可刪除所述緩衝記憶體216中的所述第二資料與所述指令佇列內的所述第二寫入指令。
值得一提的是,在開始執行所述第一重新程式化操作時,所述處理器211會先停止從所述主機系統10接收任何寫入指令或對應任何寫入指令的資料,並且停止執行所述指令佇列中的任何寫入指令。如此一來,可避免其他寫入指令的干擾,並且也可維持緩衝記憶體216的可用空間,以暫存欲重新程式化的第一資料。
此外,在完成所述第一重新程式化操作後,所述處理器211會恢復(Resume)從所述主機系統10接收所述任何寫入指令或對應所述任何寫入指令的所述資料,並且恢復所述指令佇列中的所述任何寫入指令。即,在完成所述第一重新程式化操作後,處理器211會將儲存控制器210的整體運作恢復為執行第一重新程式化操作之前的正常模式,來從主機系統10接收指令或資料,並且照常地處理指令佇列中的指令。此外,在第一重新程式化操作完成後,處理器211亦可將最新的維護於緩衝記憶體216中的邏輯轉實體位址映射表寫入至可複寫式非揮發性記憶體模組220。
應注意的是,在開始執行所述第一重新程式化操作後且完成所述第一重新程式化操作之前,若處理器211發現指令佇列中有排序在第一寫入指令後的第一讀取指令(所述第一讀取指令排序在第二寫入指令之前),其中第一讀取指令用以指示讀取儲存在第一邏輯位址的資料。此時,處理器211可直接從寄存器2131中讀取第一資料,並且將第一資料傳送給主機系統10,以直接完成第一讀取指令。
此外,在一實施例中,於步驟S23中的「記錄第一實體位址至邏輯轉實體位址映射表以映射所述第一實體位址至所述第一邏輯位址」的步驟亦可在完成第一程式化操作後再執行。
綜上所述,本發明實施例所提供的資料寫入方法以及儲存控制器,可反應於判定對應一資料的程式化操作失敗,直接從寄存器中讀取所述資料,以重新程式化所述資料,進而恢復之前失敗的所述程式化操作。如此一來,儲存裝置的資料寫入操作的完整性及可靠度可被提昇。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧主機系統20‧‧‧儲存裝置110、211‧‧‧處理器120‧‧‧主機記憶體130‧‧‧資料傳輸介面電路210‧‧‧儲存控制器212‧‧‧資料管理電路213‧‧‧記憶體介面控制電路2131‧‧‧寄存器214‧‧‧錯誤檢查與校正電路215‧‧‧寫入恢復操作電路單元2151‧‧‧寫入資料管理電路2152‧‧‧強制程式化電路216‧‧‧緩衝記憶體217‧‧‧電源管理電路220‧‧‧可複寫式非揮發性記憶體模組230‧‧‧連接介面電路S21、S23、S25、S251、S252、S253、S254‧‧‧資料寫入方法的流程步驟S2511、S2513、S2514、S2515、S2517‧‧‧步驟S251的流程步驟
圖1是根據本發明的一實施例所繪示的主機系統及儲存裝置的方塊示意圖。 圖2是根據本發明的一實施例所繪示的資料寫入方法的流程圖。 圖3A是根據本發明的一實施例所繪示的圖2的步驟S251的流程圖。 圖3B是根據本發明的另一實施例所繪示的圖2的步驟S251的流程圖。
S21、S23、S25、S251、S252、S253、S254‧‧‧資料寫入方法的流程步驟
Claims (10)
- 一種資料寫入方法,適用於配置有一可複寫式非揮發性記憶體模組的一儲存裝置,其中該可複寫式非揮發性記憶體模組具有多個實體頁面,所述方法包括: 從一主機系統接收一第一寫入指令與對應該第一寫入指令的一第一資料,將該第一寫入指令儲存至一緩衝記憶體中的一指令佇列,並且將該第一資料儲存至該緩衝記憶體,其中該第一寫入指令指示將該第一資料儲存至一第一邏輯位址; 開始執行該第一寫入指令,複製該第一資料至一寄存器,記錄一第一實體位址至一邏輯轉實體位址映射表以映射該第一實體位址至該第一邏輯位址,回應該主機系統該第一寫入指令已完成,並且開始執行一第一程式化操作以將該第一資料從該寄存器程式化至該第一實體頁面;以及 反應於判定該第一程式化操作失敗,執行對應該第一資料的一第一重新程式化操作,所述第一重新程式化操作包括: 根據該邏輯轉實體位址映射表來判斷是否從該寄存器讀取該第一資料; 反應於判定從該寄存器讀取該第一資料,從所述寄存器讀取所述第一資料;以及 強制程式化該第一資料至一第二實體頁面,並且在該第一資料被程式化至該第二實體頁面後,記錄該第二實體頁面的一第二實體位址至該邏輯轉實體位址映射表以映射該第二實體位址至該第一邏輯位址,以完成該第一重新程式化操作。
- 如申請專利範圍第1項所述的資料寫入方法,其中所述第一重新程式化操作更包括: 停止從該主機系統接收任何寫入指令或對應任何寫入指令的資料,並且停止執行該指令佇列中的任何寫入指令, 其中在完成所述第一重新程式化操作後,恢復從該主機系統接收所述任何寫入指令或對應所述任何寫入指令的所述資料,並且恢復該指令佇列中的所述任何寫入指令。
- 如申請專利範圍第1項所述的資料寫入方法,其中根據該邏輯轉實體位址映射表來判斷是否從該寄存器讀取該第一資料的步驟包括: 根據該邏輯轉實體位址映射表來辨識該第一邏輯位址所映射的一第三實體位址; 反應於該第三實體位址不等於該第一實體位址,判定忽略該第一資料且不從該寄存器讀取該第一資料,並且完成該第一重新程式化操作。
- 如申請專利範圍第3項所述的資料寫入方法,其中根據該邏輯轉實體位址映射表來判斷是否從該寄存器讀取該第一資料的步驟更包括: 反應於該第三實體位址等於該第一實體位址,判定從該寄存器讀取該第一資料。
- 如申請專利範圍第3項所述的資料寫入方法,其中根據該邏輯轉實體位址映射表來判斷是否從該寄存器讀取該第一資料的步驟更包括: 反應於該第三實體位址等於該第一實體位址,判斷該指令佇列是否儲存一第二寫入指令,其中該第二寫入指令指示將一第二資料儲存至該第一邏輯位址; 反應於判定該指令佇列儲存該第二寫入指令,判定忽略該第一資料且不從該寄存器讀取該第一資料,並且完成該第一重新程式化操作;以及 反應於判定該指令佇列沒有儲存該第二寫入指令,判定從該寄存器讀取該第一資料。
- 一種儲存控制器,用於控制配置有一可複寫式非揮發性記憶體模組的一儲存裝置,該儲存控制器包括: 一連接介面電路,用以耦接至一主機系統; 一記憶體介面控制電路,用以耦接至該可複寫式非揮發性記憶體模組,其中該可複寫式非揮發性記憶體模組具有多個實體頁面; 一寫入恢復操作電路單元;以及 一處理器,耦接至該連接介面電路、該記憶體介面控制電路及該寫入恢復操作電路單元, 其中該處理器用以從一主機系統接收一第一寫入指令與對應該第一寫入指令的一第一資料,將該第一寫入指令儲存至一緩衝記憶體中的一指令佇列,並且將該第一資料儲存至該緩衝記憶體,其中該第一寫入指令指示將該第一資料儲存至一第一邏輯位址, 其中該處理器更用以開始執行該第一寫入指令,複製該第一資料至一寄存器,並且記錄一第一實體位址至一邏輯轉實體位址映射表以映射該第一實體位址至該第一邏輯位址,其中該處理器更用以回應該主機系統該第一寫入指令已完成,並且指示該記憶體介面控制電路開始執行一第一程式化操作以將該第一資料從該寄存器程式化至該第一實體頁面, 其中反應於判定該第一程式化操作失敗,該處理器更用以指示該寫入恢復操作電路單元執行對應該第一資料的一第一重新程式化操作,所述第一重新程式化操作包括: 該寫入恢復操作電路單元根據該邏輯轉實體位址映射表來判斷是否從該寄存器讀取該第一資料; 反應於判定從該寄存器讀取該第一資料,該寫入恢復操作電路單元從該寄存器讀取該第一資料;以及 該寫入恢復操作電路單元強制程式化該第一資料至一第二實體頁面,並且在該第一資料被程式化至該第二實體頁面後,記錄該第二實體頁面的一第二實體位址至該邏輯轉實體位址映射表以映射該第二實體位址至該第一邏輯位址,以完成該第一重新程式化操作。
- 如申請專利範圍第6項所述的儲存控制器,其中所述第一重新程式化操作更包括: 該處理器停止從該主機系統接收任何寫入指令或對應任何寫入指令的資料,並且停止執行該指令佇列中的任何寫入指令, 其中在完成所述第一重新程式化操作後,該處理器恢復從該主機系統接收所述任何寫入指令或對應所述任何寫入指令的所述資料,並且恢復該指令佇列中的所述任何寫入指令。
- 如申請專利範圍第6項所述的儲存控制器,其中在上述該寫入恢復操作電路單元根據該邏輯轉實體位址映射表來判斷是否從該寄存器讀取該第一資料的運作中, 該寫入恢復操作電路單元根據該邏輯轉實體位址映射表來辨識該第一邏輯位址所映射的一第三實體位址, 其中反應於該第三實體位址不等於該第一實體位址,該寫入恢復操作電路單元判定忽略該第一資料且不從該寄存器讀取該第一資料,並且完成該第一重新程式化操作。
- 如申請專利範圍第8項所述的儲存控制器,其中在上述該寫入恢復操作電路單元根據該邏輯轉實體位址映射表來判斷是否從該寄存器讀取該第一資料的運作中, 反應於該第三實體位址等於該第一實體位址,該寫入恢復操作電路單元判定從該寄存器讀取該第一資料。
- 如申請專利範圍第8項所述的儲存控制器,其中在上述根據該邏輯轉實體位址映射表來判斷是否從該寄存器讀取該第一資料的運作中, 反應於該第三實體位址等於該第一實體位址,該寫入恢復操作電路單元判斷該指令佇列是否儲存一第二寫入指令,其中該第二寫入指令指示將一第二資料儲存至該第一邏輯位址, 其中反應於判定該指令佇列儲存該第二寫入指令,該寫入恢復操作電路單元判定忽略該第一資料且不從該寄存器讀取該第一資料,並且完成該第一重新程式化操作, 其中反應於判定該指令佇列沒有儲存該第二寫入指令,該寫入恢復操作電路單元判定從該寄存器讀取該第一資料。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107125097A TW202008171A (zh) | 2018-07-20 | 2018-07-20 | 資料寫入方法以及儲存控制器 |
US16/136,280 US10860247B2 (en) | 2018-07-20 | 2018-09-20 | Data writing method and storage controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107125097A TW202008171A (zh) | 2018-07-20 | 2018-07-20 | 資料寫入方法以及儲存控制器 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202008171A true TW202008171A (zh) | 2020-02-16 |
Family
ID=69161888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107125097A TW202008171A (zh) | 2018-07-20 | 2018-07-20 | 資料寫入方法以及儲存控制器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10860247B2 (zh) |
TW (1) | TW202008171A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112347010A (zh) * | 2020-11-09 | 2021-02-09 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
US11372590B2 (en) | 2020-10-30 | 2022-06-28 | Phison Electronics Corp. | Memory control method, memory storage device and memory control circuit unit |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10430117B2 (en) | 2017-10-23 | 2019-10-01 | Micron Technology, Inc. | Host accelerated operations in managed NAND devices |
KR20200019431A (ko) * | 2018-08-14 | 2020-02-24 | 에스케이하이닉스 주식회사 | 컨트롤러 및 그것의 동작방법 |
CN111161781A (zh) * | 2018-11-07 | 2020-05-15 | 爱思开海力士有限公司 | 用于处理编程错误的存储器系统及其方法 |
US11481152B2 (en) | 2019-12-30 | 2022-10-25 | Micron Technology, Inc. | Execution of commands addressed to a logical block |
TWI797464B (zh) * | 2020-07-28 | 2023-04-01 | 群聯電子股份有限公司 | 資料讀取方法、記憶體儲存裝置及記憶體控制電路單元 |
TWI783522B (zh) * | 2021-06-11 | 2022-11-11 | 群聯電子股份有限公司 | 資料重建方法、記憶體儲存裝置及記憶體控制電路單元 |
CN113360429A (zh) * | 2021-06-21 | 2021-09-07 | 群联电子股份有限公司 | 数据重建方法、存储器存储装置及存储器控制电路单元 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020144078A1 (en) * | 2001-03-30 | 2002-10-03 | Siroyan Limited | Address translation |
JP2006285919A (ja) * | 2005-04-05 | 2006-10-19 | Hitachi Ltd | 計算機システム、計算機及びリモートコピー処理方法 |
TWI320905B (en) * | 2006-07-21 | 2010-02-21 | Via Tech Inc | Buffer control method and device thereof |
US8209463B2 (en) * | 2008-02-05 | 2012-06-26 | Spansion Llc | Expansion slots for flash memory based random access memory subsystem |
TWI416523B (zh) * | 2009-06-10 | 2013-11-21 | Silicon Motion Inc | 非揮發性記憶體之寫入錯誤管理方法、非揮發性記憶體、記憶卡、以及非揮發性記憶體之控制器 |
US8493025B2 (en) * | 2010-02-23 | 2013-07-23 | Optimization Technologies, Inc. | Electric vehicle charging station advertising systems |
TWI443513B (zh) * | 2011-08-05 | 2014-07-01 | Phison Electronics Corp | 記憶體儲存裝置、記憶體控制器與資料寫入方法 |
US10025714B2 (en) | 2016-09-30 | 2018-07-17 | Super Micro Computer, Inc. | Memory type range register with write-back cache strategy for NVDIMM memory locations |
TWI616807B (zh) | 2016-11-17 | 2018-03-01 | 英屬維京群島商大心電子(英屬維京群島)股份有限公司 | 資料寫入方法以及儲存控制器 |
TWI620190B (zh) | 2016-12-27 | 2018-04-01 | 財團法人工業技術研究院 | 記憶體控制電路與記憶體測試方法 |
-
2018
- 2018-07-20 TW TW107125097A patent/TW202008171A/zh unknown
- 2018-09-20 US US16/136,280 patent/US10860247B2/en active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11372590B2 (en) | 2020-10-30 | 2022-06-28 | Phison Electronics Corp. | Memory control method, memory storage device and memory control circuit unit |
TWI800764B (zh) * | 2020-10-30 | 2023-05-01 | 群聯電子股份有限公司 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
CN112347010A (zh) * | 2020-11-09 | 2021-02-09 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
CN112347010B (zh) * | 2020-11-09 | 2023-07-04 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
Also Published As
Publication number | Publication date |
---|---|
US10860247B2 (en) | 2020-12-08 |
US20200026464A1 (en) | 2020-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10860247B2 (en) | Data writing method and storage controller | |
TWI579696B (zh) | 資料重建方法與系統及其記憶體控制電路單元 | |
TWI551991B (zh) | 記憶體管理方法與系統及其記憶體儲存裝置 | |
TWI592799B (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
US11157357B2 (en) | Operation methods of memory system and host, and computing system | |
TWI591482B (zh) | 資料保護方法、記憶體控制電路單元及記憶體儲存裝置 | |
US10642731B2 (en) | Memory management method and storage controller | |
CN112925481B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
TWI591640B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI668569B (zh) | 主機記憶體緩衝區配置方法、記憶體儲存裝置與記憶體控制電路單元 | |
TWI733375B (zh) | 資料轉移方法與記憶體儲存裝置 | |
CN111078146B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
TWI509615B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI796882B (zh) | 讀取干擾檢查方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI798680B (zh) | 主機記憶體緩衝區管理方法、記憶體儲存裝置與記憶體控制電路單元 | |
CN107045890B (zh) | 数据保护方法、存储器控制电路单元及存储器存储装置 | |
TWI678621B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI651650B (zh) | 記憶體管理方法及使用所述方法的儲存控制器 | |
TW201820114A (zh) | 資料寫入方法以及儲存控制器 | |
TWI695263B (zh) | 記憶體管理方法以及儲存控制器 | |
CN110764947B (zh) | 数据写入方法以及存储控制器 | |
TW202344970A (zh) | 基於資料優先級的風險評估方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN113724773B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
US20240028506A1 (en) | Mapping table re-building method, memory storage device and memory control circuit unit | |
CN110580230B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 |