TWI755739B - 記憶體控制器與資料處理方法 - Google Patents
記憶體控制器與資料處理方法 Download PDFInfo
- Publication number
- TWI755739B TWI755739B TW109117419A TW109117419A TWI755739B TW I755739 B TWI755739 B TW I755739B TW 109117419 A TW109117419 A TW 109117419A TW 109117419 A TW109117419 A TW 109117419A TW I755739 B TWI755739 B TW I755739B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- memory
- protection
- buffer memory
- written
- Prior art date
Links
Images
Classifications
-
- 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
- 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
- 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/1048—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 arrangements adapted for a specific error detection or correction feature
-
- 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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- 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/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0653—Monitoring storage devices or 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/0656—Data buffering arrangements
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Storage Device Security (AREA)
Abstract
一種記憶體控制器,耦接一記憶體裝置與一主機裝置,用以控制記憶體裝置的存取操作,包括一緩衝記憶體、一主機介面、一微處理器以及一資料保護引擎。主機介面耦接主機裝置,用以將自主機裝置接收之資料寫入緩衝記憶體,並且於資料被寫入緩衝記憶體後,發出一緩衝記憶體寫入完成通知。微處理器響應於緩衝記憶體寫入完成通知觸發一資料保護操作。資料保護引擎用以根據儲存於緩衝記憶體之資料執行資料保護操作以產生對應之保護資訊。微處理器於確認資料被寫入緩衝記憶體後直接觸發資料保護操作。
Description
本發明係關於一種資料處理方法,尤指一種可有效保護記憶體裝置儲存之資料的資料處理方法。
隨著資料儲存裝置的科技在近幾年快速地成長,許多資料儲存裝置,如符合安全數位(Secure Digital,縮寫為SD)/多媒體卡(Multi Media Card,縮寫為MMC)規格、複合式快閃記憶體(Compact flash,縮寫為CF)規格、記憶條(Memory Stick,縮寫為MS)規格與極數位(Extreme Digital,縮寫為XD)規格的記憶卡、固態硬碟、嵌入式多媒體記憶卡(embedded Multi Media Card,縮寫為eMMC)以及通用快閃記憶體儲存(Universal Flash Storage,縮寫為UFS)已經廣泛地被應用在多種用途上。因此,在這些資料儲存裝置上,有效率的存取控制也變成一個重要的議題。
為了提高資料儲存裝置的存取效能,並保護記憶體裝置所儲存之資料,本發明提出一種新穎的資料處理方法,可有效地保護記憶體裝置所儲存之資料,並且可避免因錯誤保護機制的實施而降低資料儲存裝置的存取效能。
本發明之一目的在於有效地保護記憶體裝置所儲存之資料,並且可
避免因錯誤保護機制的實施而降低資料儲存裝置的存取效能。
根據本發明之一實施例,一種記憶體控制器,耦接一記憶體裝置與一主機裝置,用以控制記憶體裝置的存取操作,包括一緩衝記憶體、一主機介面、一微處理器以及一資料保護引擎。主機介面耦接主機裝置,用以將自主機裝置接收之資料寫入緩衝記憶體,並且於資料被寫入緩衝記憶體後,發出一緩衝記憶體寫入完成通知。微處理器響應於緩衝記憶體寫入完成通知觸發一資料保護操作。資料保護引擎用以根據儲存於緩衝記憶體之資料執行資料保護操作以產生對應之保護資訊。微處理器於確認資料被寫入緩衝記憶體後直接觸發資料保護操作。
根據本發明之另一實施例,一種資料處理方法,由耦接一記憶體裝置之一記憶體控制器所執行,包括:將自一主機裝置接收之資料寫入記憶體控制器之一緩衝記憶體;以及於資料被寫入緩衝記憶體後直接執行一資料保護操作,用以根據儲存於緩衝記憶體之資料產生對應之保護資訊。
100:資料儲存裝置
110:記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:記憶體介面
116:緩衝記憶體
115:資料保護引擎
118:主機介面
120:記憶體裝置
130:主機裝置
132:編碼器
134:解碼器
136:電壓偵測電路
310,320,D[0],D[1],D[2],D[3],D[4],D[5],D[6],D[7],D[8],D[9],D[10],D[11],D[12],D[13],D[14],D[15]:資料
315:保護資訊
第1圖係顯示根據本發明之一實施例所述之資料儲存裝置100的示意圖。
第2圖係顯示根據本發明之一實施例所述之資料處理方法流程圖。
第3圖係顯示根據本發明之一實施例所述之記憶體控制器之工作排程範例。
在下文中,描述了許多具體細節以提供對本發明實施例的透徹理解。然而,本領域技術人員仍將理解如何在缺少一個或多個具體細節或依賴於其他方法、元件或材料的情況下實施本發明。在其他情況下,未詳細示出或描
述公知的結構、材料或操作,以避免模糊本發明的主要概念。
在整個說明書中對「一個實施例」、「一實施例」、「一個範例」或「一範例」的引用意味著結合該實施例或範例所描述的特定特徵、結構或特性係包括於本發明之多個實施例的至少一個實施例中。因此,貫穿本說明書在各個地方出現的短語「在一個實施例中」、「在一實施例中」、「在一個範例中」或「在一範例中」不一定都指到相同的實施例或範例。此外,特定特徵、結構或特性可以在一個或多個實施例或範例中以任何合適的組合和/或子組合進行結合。
此外,為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出本發明之具體實施例,並配合所附圖式,作詳細說明如下。目的在於說明本發明之精神而非用以限定本發明之保護範圍,應理解下列實施例可經由軟體、硬體、韌體、或上述任意組合來實現。
第1圖係顯示根據本發明之一實施例所述之資料儲存裝置100的示意圖。資料儲存裝置100包括一記憶體裝置120,例如,一快閃記憶體(Flash Memory)模組,以及一記憶體控制器110。記憶體控制器110用以存取(Access)記憶體裝置120。根據本發明一實施例,記憶體控制器110包含一微處理器112、一唯讀記憶體(Read Only Memory,ROM)112M、一記憶體介面114、一資料保護引擎115、一緩衝記憶體116、與一主機介面118。唯讀記憶體112M係用以儲存一程式碼112C,程式碼112C可包含一或多個程式模組,例如開機載入器(boot loader)碼,於主機裝置130供電給資料儲存裝置100時,微處理器112可執行程式碼112C來進行初始化運作,以從記憶體裝置120載入一群系統內編程(In-System Programming,縮寫為ISP)(圖未繪示)。微處理器112可執行該群ISP碼,使資料儲存裝置100具備各種功能。依據本實施例,該群ISP碼可包含(但不限於)關於存取(例如讀取、寫入及抹除)的多個程式模組,諸如一讀取操作模組、一查表模組、
一耗損平(wear leveling)模組、一讀取刷新(read refresh)模組、一讀取回收(read reclaim)模組、一垃圾收集(garbage collection)模組、一突然斷電回復(sudden power off recovery,縮寫為SPOR)模組以及一不可更正錯誤更正碼(uncorrectable error correction code,縮寫為UECC)模組,以供分別進行讀取、查表、耗損平均、讀取刷新、讀取回收、垃圾收集、突然斷電回復以及針對UECC錯誤的錯誤處置。記憶體介面114包含了一編碼器132、一解碼器134以及一電壓偵測電路136。編碼器132用以對寫入到記憶體裝置120中的資料進行編碼以產生對應的校驗碼(或稱,錯誤更正碼(Error Correction Code),ECC)。解碼器134用以將從記憶體裝置120所讀出的資料進行解碼。電壓偵測電路136用以偵測記憶體裝置120的一電壓位準,例如,電源電壓的位準,並產生對應之一偵測結果。微處理器112可根據偵測結果判斷記憶體裝置120是否發生電源電壓變化(例如,電源電壓不穩定),或者發生非預期或突然斷電(SPO)等。資料保護引擎115用以根據接收自主機裝置130的資料產生對應之保護資訊,以及用以根據保護資訊恢復損壞或遺失的資料,其中保護資訊可以是根據所欲保護之資料產生之編碼過的資訊,例如,同位(parity)位元資訊。當一既定保護資訊所保護之資料的一部分發生損壞或被遺失時,資料保護引擎115可根據此既定保護資訊與其所保護之資料之剩餘部分執行對應的解碼操作,藉此推導出被損壞或被遺失的部分。
於典型狀況下,記憶體裝置120包含了多個快閃記憶體晶片或晶粒,而每一個快閃記憶體晶片或晶粒包含複數個記憶體區塊(Block),而記憶體控制器110對記憶體裝置120進行抹除資料運作係以區塊為單位來進行。另外,一記憶體區塊可記錄(包含)特定數量的資料頁(Page),即,物理資料頁,其中記憶體控制器110對記憶體裝置120進行寫入資料之運作係以資料頁為單位來進行寫入。
實作上,記憶體控制器110可利用其本身內部之元件來進行諸多控制
運作,例如:利用記憶體介面114來控制記憶體裝置120之存取運作(尤其是對至少一區塊或至少一資料頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用主機介面118來與一主機裝置(Host Device)130溝通。其中,主機介面118亦可被視為一前端控制器引擎,用以於記憶體控制器110與主機裝置130之間傳遞溝通訊號、傳遞主機裝置130寫入/讀取之資料、以及控制讀/寫資料的工作排程等。記憶體介面114亦可被視為一後端控制器引擎,用以於記憶體控制器110與記憶體裝置120之間傳遞溝通訊號、傳遞欲寫入/讀取自記憶體裝置120之資料、於將資料寫入記憶體裝置120前透過編碼器132執行對應之編碼操作,以及於自記憶體裝置120讀取資料後透過解碼器134對資料執行對應之解碼操作。
在一實施例中,記憶體控制器110透過主機介面118並使用一標準通訊協定與主機裝置130溝通。舉例而言,上述之標準通訊協定包含(但不限於):通用序列匯流排(Universal Serial Bus,縮寫為USB)標準、安全數位(Secure Digital,縮寫為SD)介面標準、超高速一代(Ultra High Speed-I,縮寫為UHS-I)介面標準、超高速二代(Ultra High Speed-II,縮寫為UHS-II)介面標準、複合式快閃記憶體(Compact flash,縮寫為CF)介面標準、多媒體卡(Multimedia Card,縮寫為MMC)介面標準、嵌入式多媒體卡(Embedded Multimedia Card,縮寫為eMMC)介面標準、通用快閃記憶體(Universal Flash Storage,縮寫為UFS)介面標準、高技術組態(Advanced Technology Attachment,縮寫為ATA)標準、序列高技術組態(Serial ATA,縮寫為SATA)標準、快捷外設互聯標準(Peripheral Component Interconnect Express,縮寫為PCI-E)標準、並列先進附件(Parallel Advanced Technology Attachment,縮寫為PATA)標準。
在一實施例中,緩衝記憶體116係以隨機存取記憶體(Random Access Memory,縮寫為RAM)來實施。例如,緩衝記憶體116可以是靜態隨機存取記憶體(Static RAM,縮寫為SRAM),但本發明不限於此。於其它實施例中,緩衝記
憶體116可以是動態隨機存取記憶體(Dynamic RAM,縮寫為DRAM)。
在一實施例中,資料儲存裝置100可以是可攜式記憶體裝置(例如:符合SD/MMC、CF、MS、XD、UFS標準之記憶卡),且主機裝置130為一可與資料儲存裝置連接的電子裝置,例如手機、筆記型電腦、桌上型電腦...等等。而在另一實施例中,資料儲存裝置100可以是固態硬碟或UFS或eMMC規格之嵌入式儲存裝置,以設置在一電子裝置中,例如設置在手機、筆記型電腦、桌上型電腦之中,而此時主機裝置130可以是該電子裝置的一處理器。
主機裝置130可對資料儲存裝置100發出指令,例如,讀取指令或寫入指令,用以存取記憶體裝置120所儲存之資料,或者進一步控制、管理資料儲存裝置100。
根據本發明之一實施例,記憶體裝置120所包含之複數個記憶體區塊中可包括單層單元(Single-Level Cell,縮寫為SLC)記憶體區塊、多層單元(Multiple-Level Cell,縮寫為MLC)記憶體區塊以及/或是三層單元(Triple-Level Cell,縮寫為TLC)記憶體區塊。SLC記憶體區塊的每個記憶體單元中儲存一個位元資料,MLC記憶體區塊的每個記憶體單元中儲存兩個位元資料,TLC記憶體區塊的每個記憶體單元中儲存三個位元資料。根據本發明之一實施例,記憶體裝置120為一立體NAND型快閃記憶體(3D NAND-type flash)。
一般而言,為了保護記憶體裝置不會因為記憶體單元的損壞而發生有效資料遺失,記憶體裝置可運用容錯式磁碟陣列(Redundant Array of Independent Disks,縮寫RAID)技術中所採用的錯誤保護機制進行資料保護。於RAID所採用的錯誤保護機制中,記憶體控制器可根據被寫入記憶體裝置的資料計算出保護資訊。當發現有效資料遺失時,便可利用保護資訊反向推導出被遺失的有效資料內容。
然而,於某些情況中,於資料被寫入記憶體裝置之際,便已發生記
憶體單元損壞或資料損壞。被損壞的記憶體單元可能會導致其所儲存的資料發生錯誤。舉例而言,被損壞的記憶體單元可能無法維持固定的電壓位準,因此,於每次讀取儲存於被損壞的記憶體單元的資料時,記憶體控制器110都可能得到不同的數值。如此一來,便無法利用此筆資料反向推導出被遺失的有效資料內容。
因此,為了確保保護資訊係根據未受損壞的資料(即,正確的資料)被產生,記憶體控制器的工作排程通常被設計為在確定資料已成功被寫入記憶體裝置,且資料未發生錯誤或未被損壞,或者得知正確的資料的資訊後,才開始根據被寫入記憶體裝置的正確資料計算出對應之保護資訊。
然而,上述工作排程將大幅折損記憶體裝置120的寫入效率。舉例而言,緩衝記憶體116必須保留自主機裝置130接收的資料直到資料保護引擎115產生該資料所對應之保護資訊。因此,必須於資料保護引擎115產生保護資訊後,緩衝記憶體116的對應儲存空間才能被清除並再用來儲存下一筆主機裝置130寫入的資料。如此一來,緩衝記憶體116的空間利用率與記憶體裝置120的寫入效率都無法提升。
為解決上述問題,本發明提出一種新穎的資料處理方法,可有效地保護記憶體裝置所儲存之資料,並且可藉由新穎的工作排程使得緩衝記憶體116的空間利用率與記憶體裝置120的寫入效率可大幅提升。
第2圖係顯示根據本發明之一實施例所述之資料處理方法流程圖。本發明之資料處理方法可由記憶體控制器110或記憶體控制器所包含之一或多個元件執行,並包含以下步驟:
步驟S202:自主機裝置130接收資料,並且將資料寫入(暫存於)緩衝記憶體116。
步驟S204:於資料被寫入緩衝記憶體116後,驅動資料保護引擎115
執行該資料所對應之一資料保護操作,以及驅動記憶體介面114執行該資料所對應之一資料寫入操作。
步驟S206:根據該資料所對應之該資料寫入操作之相關資訊判斷於產生該資料所對應之該保護資訊時是否需排除該資料之一部分。若是,則執行步驟S208。若否,則執行步驟S210。
步驟S208:自保護資訊去除該資料之該部分的相關內容以重新產生保護資訊,並將重新產生的保護資訊寫入記憶體裝置120。
步驟S210:將保護資訊寫入記憶體裝置120。
根據本發明之一實施例,主機介面118係用以將自主機裝置130接收之資料寫入緩衝記憶體116,並且於資料被寫入緩衝記憶體116後,主機介面118可發出一緩衝記憶體寫入完成通知,用以通知微處理器112資料已被寫入緩衝記憶體116。
響應於接收自主機介面118之緩衝記憶體寫入完成通知,微處理器112可驅動資料保護引擎115對該筆資料執行對應之一資料保護操作,用以根據儲存於緩衝記憶體116之該筆資料產生對應之保護資訊。
根據本發明之一實施例,微處理器112可藉由緩衝記憶體寫入完成通知得知該筆資料已被寫入緩衝記憶體116,並且於微處理器112確認該筆資料已被寫入緩衝記憶體116後,便可直接觸發資料保護操作。換言之,記憶體控制器於資料被寫入緩衝記憶體116後可直接執行對應之一資料保護操作,用以根據儲存於緩衝記憶體116之資料產生對應之保護資訊。根據本發明之一實施例,所述之直接執行對應之保護操作係指資料保護引擎115於儲存於緩衝記憶體116之資料被寫入記憶體裝置120前便開始執行資料保護操作。
此外,響應於接收自主機介面118之緩衝記憶體寫入完成通知,微處理器112亦可驅動記憶體介面114對該筆資料執行對應之一資料寫入操作,用以
將儲存於緩衝記憶體116之該資料寫入記憶體裝置120。
根據本發明之一實施例,響應於前述緩衝記憶體寫入完成通知,微處理器112可同時或近乎同時驅動資料保護引擎115執行該筆資料所對應之資料保護操作以及驅動記憶體介面114執行該筆資料所對應之資料寫入操作。舉例而言,微處理器112可於同一時間點發出對應之指令,用以驅動資料保護引擎115與記憶體介面114執行前述對應之操作。或者,微處理器112可於時間差極小的不同時間點發出對應之指令,而微處理器112發出用以驅動資料保護引擎115與記憶體介面114執行前述對應之操作的指令的時間差可小於一既定數值或小於一既定數量的時脈脈衝。其中,用以觸發資料保護操作的指令可早於或晚於用以觸發資料寫入操作的指令。
此外,於本發明之一實施例中,微處理器112可於該筆資料所對應之資料寫入操作完成前驅動資料保護引擎115執行該筆資料所對應之資料保護操作。於本發明之另一實施例中,微處理器112可於該筆資料所對應之資料保護操作完成前驅動記憶體介面114執行該筆資料所對應之資料寫入操作。
值得注意的是,於本發明之其他實施例中,微處理器112亦可於具有顯著時間差的不同時間點發出對應之指令,用以驅動資料保護引擎115與記憶體介面114執行前述對應之操作。
此外,根據本發明之一實施例,資料保護引擎115執行一筆資料所對應之資料保護操作的執行時間與記憶體介面114執行同一筆資料所對應之資料寫入操作的執行時間重疊。如此一來,可有效縮短緩衝記憶體116保留該筆資料的時間。
第3圖係顯示根據本發明之一實施例所述之記憶體控制器之工作排程範例,其中橫軸為時間軸。於此範例中,主機裝置130欲將兩筆資料(主機資料)寫入記憶體裝置120,被寫入緩衝記憶體116的資料310為第一筆資料,被寫入緩
衝記憶體116的資料320為第二筆資料,其中各筆資料可包含多個部分,例如圖中所示之資料D[0]~D[7]以及D[8]~D[15](如圖中第一列所示)。其中資料的一個部分可包含,例如,一資料頁或一既定數量之資料頁。
此外,於此範例中,記憶體裝置120可包含八個記憶體晶粒,記憶體介面114可包含兩個傳輸通道CH[0]與CH[1],而各傳輸通道分別耦接四個記憶體晶粒,用以傳輸這四個記憶體晶粒的資料。因此,於圖中顯示為耦接通道CH[0]之記憶體晶粒Die[0]~Die[3]的資料處理操作,以及耦接通道CH[1]之記憶體晶粒Die[0]~Die[3]的資料處理操作。在多晶粒與多通道的架構下,微處理器112可藉由適當的排程將資料透過多通道平行地寫入記憶體裝置120,使得資料寫入操作可更有效率。
於第3圖所示之範例中,分布於時間軸的資料長度(即,方框長度)可顯示出處理該筆資料所需的相對時間。其中,圖中第一列可表示出主機資料被寫入緩衝記憶體116的操作。圖中第二列至第九列可表示出被寫入緩衝記憶體116的主機資料透過通道CH[0]或CH[1]傳送至記憶體裝置120,並且被寫入對應之記憶體晶粒的操作。圖中最末列可表示出資料保護引擎115根據主機資料產生保護資訊的操作。
如圖所示,以第二列的操作為例,標示資料D[0]的方框代表通道CH[0]傳輸資料D[0]的操作,而填入斜線的線條代表記憶體忙碌的狀態。於資料D[0]被寫入或編程(program)到對應之記憶體晶粒Die[0]的過程中,記憶體的狀態為忙碌,因此,可拉起對應之一忙碌旗標,用以指示記憶體忙碌的狀態。待編程結束後,對應之忙碌旗標可被重置,代表記憶體非忙碌狀態。
此外,圖中最末列顯示出資料保護引擎115依序讀取被寫入緩衝記憶體116的資料,並產生對應的保護資訊,例如,資料保護引擎115可產生第一筆資料310所對應的保護資訊315以及第二筆資料320所對應的保護資訊(因繪圖字
體限制未示於圖中)。
根據本發明之一實施例,對於同一筆資料,微處理器112可同時或近乎同時驅動資料保護引擎115執行該筆資料所對應之資料保護操作以及驅動記憶體介面114執行該筆資料所對應之資料寫入操作。此外,對於儲存於緩衝記憶體116之同一筆資料,該筆資料所對應之資料保護操作與資料寫入操作的執行時間重疊。
此外,如上所述,於自主機裝置130接收之資料可包括複數部分,例如圖中所示之資料D[0]~D[7]以及D[8]~D[15],微處理器112於確認各部分被寫入緩衝記憶體116後(例如,根據各部分所對應之緩衝記憶體寫入完成通知確認),便可直接驅動資料保護引擎115對該部分執行對應之資料保護操作。例如第3圖中垂直方向的虛線所示,於資料D[0]~D[7]以及D[8]~D[15]被寫入緩衝記憶體116後,便立刻開始執行各資料所對應之資料寫入操作與資料保護操作。
對於一筆資料,例如,資料310,而言,於本發明之實施例中,於將資料310寫入記憶體裝置120之資料寫入操作完成後,緩衝記憶體116用於儲存資料310的對應儲存空間便可被釋放並再用來儲存下一筆主機裝置130寫入的資料。這是因為對於同一筆資料而言,資料保護引擎115執行資料保護操作的速度通常快於記憶體介面114執行資料寫入操作的速度。
如此一來,每當記憶體忙碌的狀態結束後,便立刻開始執行次一筆資料所對應之資料寫入操作以及資料保護操作,而無須如上述因交錯(不重疊)的資料寫入操作與資料保護操作的執行時間,導致資料保護操作須等待資料寫入操作結束,且記憶體忙碌的狀態結束後才能開始執行。此外,於先前技術中,待較晚被執行的資料保護操作執行完成後,才能釋放緩衝記憶體116的對應儲存空間使得緩衝記憶體116可接收下一筆主機裝置130寫入的資料。因而大幅折損緩衝記憶體116的空間利用率與記憶體裝置120的寫入效率。
不同於先前的設計,藉由本發明提出新穎的資料處理方法,其利用前述的工作排程可使得緩衝記憶體116的空間利用率與記憶體裝置120的寫入效率大幅提升。
由於資料保護操作於尚未確認資料已成功被寫入記憶體裝置120時便提前被執行,因此,於本發明的實施例中,如步驟S206所示,微處理器112可更根據各資料所對應之資料寫入操作之相關資訊判斷資料保護引擎115於產生該資料所對應之保護資訊時是否需排除該資料之一部分。
若微處理器112於步驟S206中判斷需排除該資料之一部分(例如,一或多個資料頁)時,可再指示資料保護引擎115執行對應之一資料排除操作,用以將該部分的相關內容自保護資訊中去除,此結果相當於資料保護引擎115根據該資料中不包含該部分之其他部分產生對應之保護資訊。或者,微處理器112指示資料保護引擎115排除此部分後重新產生對應之保護資訊,即,資料保護引擎115可重新根據該資料中不包含該部分之其他部分產生對應之保護資訊。以上操作均可被視為重新產生保護資訊,並且其所產生的保護資訊均可被視為重新產生的保護資訊。
於本發明之實施例中,所述之資料排除操作可以是產生保護資訊之一反向操作。舉例而言,當資料保護引擎115藉由執行互斥或(XOR)運算產生保護資訊時,資料排除操作可以是反向的互斥或運算。需注意的是,資料保護引擎115亦可藉由執行其他運算產生保護資訊,因此,本發明並不限於使用互斥或(XOR)運算產生保護資訊。
此外,本發明之實施例中,前述資料寫入操作之相關資訊可包括記憶體裝置120之狀態及/或被寫入記憶體裝置120之資料的狀態。
舉例而言,微處理器112可偵測記憶體裝置120於執行寫入操作後回傳之一狀態訊息,用以得知寫入操作為成功或失敗。微處理器112可主動詢問記
憶體裝置120的狀態並等待記憶體裝置120回傳狀態訊息。當狀態訊息指示出資料之某一部分的寫入操作失敗時,微處理器112可決定資料保護引擎115於產生該資料所對應之保護資訊時需排除該部分,並指示資料保護引擎115排除該部分的相關內容以重新產生保護資訊。
舉另一例,電壓偵測電路136可於偵測到記憶體裝置發生電源電壓變化(例如,電壓下降、電壓不穩、或記憶體裝置斷電等)時發出一訊息通知微處理器112,使微處理器112可得知記憶體裝置120於執行寫入操作的狀態。當該狀態指示出於執行資料之某一部分所對應的寫入操作的過程中記憶體裝置120發生電源電壓變化時,因不穩定的電壓可能導致寫入資料錯誤或者資料無法被寫入,微處理器120可決定資料保護引擎115於產生該資料所對應之保護資訊時需排除該部分,並指示資料保護引擎115排除該部分的相關內容以重新產生保護資訊。
舉又另一例,微處理器120亦可根據資料儲存裝置100的狀態判斷記憶體裝置120於執行寫入操作的狀態。若資料儲存裝置100於記憶體裝置120於執行寫入操作的過程中發生突然斷電,對記憶體裝置120而言同樣是發生了發生突然斷電。因突然斷電可能傷及正在被寫入的資料,因此當狀態指示出於執行資料之某一部分所對應的寫入操作的過程中記憶體裝置120發生突然斷電,微處理器120可決定資料保護引擎115於產生該資料所對應之保護資訊時需排除該部分,並指示資料保護引擎115排除該部分的相關內容以重新產生保護資訊。
根據本發明之另一實施例,微處理器112可讀取被寫入記憶體裝置120的資料並嘗試透過解碼器134解碼其內容,以得知是否發生資料錯誤(例如,錯誤位元過多導致解碼器134無法更正其錯誤內容)。當被寫入記憶體裝置120的資料的狀態指示出資料之某一部分已發生錯誤或包含無法更正的錯誤時,微處理器120可決定資料保護引擎115於產生該資料所對應之保護資訊時需排除該部
分,並指示資料保護引擎115排除該部分的相關內容以重新產生保護資訊。
綜上所述,於本發明提出之新穎的資料處理方法中,利用前述的工作排程,使得同一筆資料所對應之資料保護操作與資料寫入操作的執行時間可重疊,且資料保護操作與資料寫入操作的執行可於相同時間或近乎相同的時間開始。或者,資料保護操作可於資料寫入操作完成前提早開始。因資料保護操作可被提前執行,且保護資訊可於產生後再根據資料寫入操作之相關資訊被調整,因此,相較於先前技術,緩衝記憶體116的空間利用率與記憶體裝置120的寫入效率可大幅提升。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100:資料儲存裝置
110:記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:記憶體介面
116:緩衝記憶體
115:資料保護引擎
118:主機介面
120:記憶體裝置
130:主機裝置
132:編碼器
134:解碼器
136:電壓偵測電路
Claims (14)
- 一種記憶體控制器,耦接一記憶體裝置與一主機裝置,用以控制該記憶體裝置的存取操作,包括:一緩衝記憶體;一主機介面,耦接該主機裝置,用以將自該主機裝置接收之資料寫入該緩衝記憶體,並且於該資料被寫入該緩衝記憶體後,發出一緩衝記憶體寫入完成通知;一微處理器,響應於該緩衝記憶體寫入完成通知觸發一資料保護操作;以及一資料保護引擎,用以根據儲存於該緩衝記憶體之該資料執行該資料保護操作以產生對應之保護資訊,其中該微處理器於確認該資料被寫入該緩衝記憶體後直接觸發該資料保護操作。
- 如申請專利範圍第1項所述之記憶體控制器,其中自該主機裝置接收之該資料包括複數部分,於確認各部分被寫入該緩衝記憶體後,該微處理器直接驅動該資料保護引擎對該部分執行對應之該資料保護操作。
- 如申請專利範圍第1項所述之記憶體控制器,更包括:一記憶體介面,耦接該記憶體裝置,其中響應於該緩衝記憶體寫入完成通知,該微處理器更驅動該記憶體介面執行一資料寫入操作,於該資料寫入操作,該記憶體介面將儲存於該緩衝記憶體之該資料寫入該記憶體裝置。
- 如申請專利範圍第3項所述之記憶體控制器,其中該微處理器響應於該緩衝記憶體寫入完成通知同時驅動該資料保護引擎執行該資料保護操作以及驅動該記憶體介面執行該資料寫入操作。
- 如申請專利範圍第3項所述之記憶體控制器,其中該資料所對應之該資料保護操作的執行時間與該資料所對應之該資料寫入操作的執行時間重疊。
- 如申請專利範圍第3項所述之記憶體控制器,其中該微處理器於該資料所對應之該資料寫入操作完成前驅動該資料保護引擎執行該資料所對應之該資料保護操作。
- 如申請專利範圍第3項所述之記憶體控制器,其中該微處理器更根據該資料所對應之該資料寫入操作判斷該資料保護引擎於產生該資料所對應之該保護資訊時是否需排除該資料之一部分,並且當該微處理器判斷於產生該資料所對應之該保護資訊時需排除該資料之一部分時,該微處理器更指示該資料保護引擎自該保護資訊去除該資料之該部分的相關內容。
- 一種資料處理方法,由耦接一記憶體裝置之一記憶體控制器所執行,包括:將自一主機裝置接收之資料寫入該記憶體控制器之一緩衝記憶體;以及於該資料被寫入該緩衝記憶體後直接執行一資料保護操作,用以根據儲存於該緩衝記憶體之該資料產生對應之保護資訊。
- 如申請專利範圍第8項所述之資料處理方法,其中自該主機裝置接收之該資料包括複數部分,該記憶體控制器之一資料保護引擎於各部分被寫入該緩衝記憶體後直接被驅動用以對該部分執行對應之該資料保護操作。
- 如申請專利範圍第8項所述之資料處理方法,更包括:於該資料被寫入該緩衝記憶體後執行一資料寫入操作,用以將儲存於該緩衝記憶體之該資料寫入該記憶體裝置。
- 如申請專利範圍第10項所述之資料處理方法,其中該資料所對應之該資料保護操作與該資料所對應之該資料寫入操作係同時被執行。
- 如申請專利範圍第10項所述之資料處理方法,其中該資料所對應之該資料保護操作的執行時間與該資料所對應之該資料寫入操作的執行時間重疊。
- 如申請專利範圍第10項所述之資料處理方法,其中該資料所對應之該資料保護操作係於該資料所對應之該資料寫入操作完成前被執行。
- 如申請專利範圍第10項所述之資料處理方法,更包括:根據該資料所對應之該資料寫入操作判斷於產生該資料所對應之該保護資訊時是否需排除該資料之一部分;以及當判斷於產生該資料所對應之該保護資訊時需排除該資料之一部分時,執行一資料排除操作,用以將該部分的相關內容自該保護資訊中去除。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109117419A TWI755739B (zh) | 2020-05-26 | 2020-05-26 | 記憶體控制器與資料處理方法 |
CN202010547894.1A CN113722144B (zh) | 2020-05-26 | 2020-06-16 | 数据储存装置与数据处理方法 |
US17/329,189 US11656791B2 (en) | 2020-05-26 | 2021-05-25 | Data storage device and data processing method with overlapped performance time of different operations corresponding to the same data to improve access performance of the data storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109117419A TWI755739B (zh) | 2020-05-26 | 2020-05-26 | 記憶體控制器與資料處理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202145004A TW202145004A (zh) | 2021-12-01 |
TWI755739B true TWI755739B (zh) | 2022-02-21 |
Family
ID=78672261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109117419A TWI755739B (zh) | 2020-05-26 | 2020-05-26 | 記憶體控制器與資料處理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11656791B2 (zh) |
CN (1) | CN113722144B (zh) |
TW (1) | TWI755739B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI806628B (zh) * | 2022-05-25 | 2023-06-21 | 瑞昱半導體股份有限公司 | 固態硬碟控制器與電路控制器 |
TWI824885B (zh) * | 2022-12-15 | 2023-12-01 | 慧榮科技股份有限公司 | 資料儲存裝置與錯誤回復執行方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12019903B2 (en) * | 2022-10-04 | 2024-06-25 | Western Digital Technologies, Inc. | Data storage device with flow tracking ability |
TWI826216B (zh) * | 2022-12-29 | 2023-12-11 | 瑞昱半導體股份有限公司 | 記憶體控制系統與記憶體控制方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201227298A (en) * | 2010-12-22 | 2012-07-01 | Samsung Electronics Co Ltd | Operation method of data storage device |
CN107402725A (zh) * | 2017-03-20 | 2017-11-28 | 威盛电子股份有限公司 | 非易失性存储装置及其数据去重复方法 |
CN109669800A (zh) * | 2017-10-13 | 2019-04-23 | 爱思开海力士有限公司 | 用于写入路径错误的高效数据恢复 |
CN109726147A (zh) * | 2017-10-30 | 2019-05-07 | 三星电子株式会社 | 使用数据保护访问带内存储器的设备和方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102486757B (zh) * | 2010-12-06 | 2016-09-28 | 群联电子股份有限公司 | 存储器储存装置及其存储器控制器与回应主机指令的方法 |
JP5346354B2 (ja) * | 2011-05-17 | 2013-11-20 | シャープ株式会社 | 不揮発性半導体記憶装置 |
CN104252317B (zh) * | 2013-06-26 | 2017-06-06 | 群联电子股份有限公司 | 数据写入方法、存储器控制器与存储器存储装置 |
KR102392844B1 (ko) * | 2017-03-10 | 2022-05-03 | 삼성전자주식회사 | 메모리 컨트롤러 및 그것을 포함하는 저장 장치 |
KR102398186B1 (ko) * | 2017-07-03 | 2022-05-17 | 삼성전자주식회사 | 메모리 컨트롤러의 동작 방법 및 사용자 장치의 동작 방법 |
US10613985B2 (en) * | 2017-07-06 | 2020-04-07 | Seagate Technology Llc | Buffer management in a data storage device wherein a bit indicating whether data is in cache is reset after updating forward table with physical address of non-volatile memory and jettisoning the data from the cache |
KR102536637B1 (ko) * | 2018-03-29 | 2023-05-26 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
US11481118B2 (en) * | 2019-01-11 | 2022-10-25 | Marvell Asia Pte, Ltd. | Storage media programming with adaptive write buffer release |
-
2020
- 2020-05-26 TW TW109117419A patent/TWI755739B/zh active
- 2020-06-16 CN CN202010547894.1A patent/CN113722144B/zh active Active
-
2021
- 2021-05-25 US US17/329,189 patent/US11656791B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201227298A (en) * | 2010-12-22 | 2012-07-01 | Samsung Electronics Co Ltd | Operation method of data storage device |
CN107402725A (zh) * | 2017-03-20 | 2017-11-28 | 威盛电子股份有限公司 | 非易失性存储装置及其数据去重复方法 |
CN109669800A (zh) * | 2017-10-13 | 2019-04-23 | 爱思开海力士有限公司 | 用于写入路径错误的高效数据恢复 |
CN109726147A (zh) * | 2017-10-30 | 2019-05-07 | 三星电子株式会社 | 使用数据保护访问带内存储器的设备和方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI806628B (zh) * | 2022-05-25 | 2023-06-21 | 瑞昱半導體股份有限公司 | 固態硬碟控制器與電路控制器 |
TWI824885B (zh) * | 2022-12-15 | 2023-12-01 | 慧榮科技股份有限公司 | 資料儲存裝置與錯誤回復執行方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113722144A (zh) | 2021-11-30 |
US11656791B2 (en) | 2023-05-23 |
US20210373800A1 (en) | 2021-12-02 |
CN113722144B (zh) | 2023-08-22 |
TW202145004A (zh) | 2021-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI755739B (zh) | 記憶體控制器與資料處理方法 | |
US8175012B2 (en) | Decoding/encoding method for booting from a NAND flash and system thereof | |
KR101369444B1 (ko) | 정정 불가능한 에러를 해결하는 하이브리드 에러 정정 코딩 | |
KR102571747B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
TWI479492B (zh) | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 | |
US8331151B2 (en) | Semiconductor memory including control unit responsive to erase command to determine selection of redundant memory block | |
TWI527040B (zh) | 資料寫入方法、記憶體儲存裝置與記憶體控制器 | |
KR20110089728A (ko) | 솔리드 스테이트 드라이브의 에러 제어 방법 | |
WO2018022188A1 (en) | Systems and methods of memory reads | |
CN112286721B (zh) | 瞬间断电恢复处理方法及计算机可读取存储介质以及装置 | |
TWI802324B (zh) | 異常斷電恢復方法、記憶體控制電路單元以及記憶體儲存裝置 | |
KR20170012006A (ko) | 메모리 컨트롤러와 이를 포함하는 메모리 시스템 | |
CN104182293A (zh) | 数据写入方法、存储器存储装置与存储器控制器 | |
CN114981784A (zh) | 用于控制数据储存装置之方法及相关闪存控制器 | |
US11995224B2 (en) | Data storage device and data processing method | |
US20230153011A1 (en) | Multi-page parity data storage in a memory device | |
CN112905107A (zh) | 数据存储装置及其操作方法 | |
CN108664350B (zh) | 数据保护方法、存储器存储装置及存储器控制电路单元 | |
US20210278994A1 (en) | Data storage device and data processing method | |
CN110008145B (zh) | 数据保护方法、存储器控制电路单元与存储器存储装置 | |
CN102890969B (zh) | 数据处理方法、存储器控制器及存储器储存装置 | |
CN111724851B (zh) | 数据保护方法、存储器存储装置及存储器控制电路单元 | |
US11604586B2 (en) | Data protection method, with disk array tags, memory storage device and memory control circuit unit | |
CN104008072A (zh) | 控制方法、连接器与存储器存储装置 | |
US20230376208A1 (en) | Data storage device related to read efficiency, and controller, memory device, and operating method related to read efficiency |