TWI821965B - 編碼歷程資訊的存取方法及電腦程式產品及裝置 - Google Patents
編碼歷程資訊的存取方法及電腦程式產品及裝置 Download PDFInfo
- Publication number
- TWI821965B TWI821965B TW111112364A TW111112364A TWI821965B TW I821965 B TWI821965 B TW I821965B TW 111112364 A TW111112364 A TW 111112364A TW 111112364 A TW111112364 A TW 111112364A TW I821965 B TWI821965 B TW I821965B
- Authority
- TW
- Taiwan
- Prior art keywords
- page
- designated
- superpage
- line
- flash memory
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 110
- 238000004590 computer program Methods 0.000 title claims abstract description 6
- 230000008569 process Effects 0.000 claims description 79
- 238000012545 processing Methods 0.000 claims description 56
- 238000010586 diagram Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 5
- 238000012937 correction Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000004242 micellar liquid chromatography Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000004809 thin layer chromatography Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- 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/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- 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
-
- 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 Networks & Wireless Communication (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Read Only Memory (AREA)
- Debugging And Monitoring (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Stored Programmes (AREA)
- Complex Calculations (AREA)
Abstract
本發明涉及一種編碼歷程資訊的存取方法、電腦程式產品及裝置。該方法包含:提供多個閃存單元的儲存空間所形成的超塊;寫入編碼歷程資訊至閃存模組中的指定超頁線的指定第一頁面的元資料區段,其中,編碼歷程資訊包含歷程輪廓和歷程紀錄,歷程輪廓包含超塊中所涵蓋的區和歷程紀錄的數目,每個歷程紀錄包含指定區的指定超頁線中的指定第二頁面沒有經過引擎編碼以產生奇偶校驗碼的資訊。通過編碼歷程資訊,當指定區的指定超頁線中出現毀損的頁面時得依據編碼歷程資訊以回復毀損的頁面。
Description
本發明涉及儲存裝置,尤指一種編碼歷程資訊的存取方法及電腦程式產品及裝置。
閃存通常分為NOR閃存與NAND閃存。NOR閃存為隨機存取裝置,中央處理器(Host)可於位址腳位上提供任何存取NOR閃存的位址,並及時地從NOR閃存的資料腳位上獲得儲存於該位址上的資料。相反地,NAND閃存並非隨機存取,而是序列存取。NAND閃存無法像NOR閃存一樣,可以存取任何隨機位址,中央處理器反而需要寫入序列的位元組(Bytes)的值到NAND閃存中,用於定義請求命令(Command)的類型(如,讀取、寫入、抹除等),以及用在此命令上的位址。位址可指向一個頁面(閃存中寫入作業的最小資料塊)或一個區塊(閃存中抹除作業的最小資料塊)。提昇閃存模組中儲存資料的保護能力,一直是影響閃存控制器的資料安全性的重要課題。因此.本發明提出一種編碼歷程資訊的存取方法、電腦程式產品及裝置,用於提升資料安全性。
有鑑於此,如何減輕或消除上述相關領域的缺失,實為有待解決的問題。
本說明書涉及一種編碼歷程資訊的存取方法,包含:提供多個閃存單元的儲存空間所形成的超塊;寫入編碼歷程資訊至閃存模組中的
指定超頁線的指定第一頁面的元資料區段,其中,編碼歷程資訊包含歷程輪廓和歷程紀錄,歷程輪廓包含超塊中所涵蓋的區和歷程紀錄的數目,每個歷程紀錄包含指定區的指定超頁線中的指定第二頁面沒有經過引擎編碼以產生奇偶校驗碼的資訊。
本說明書另涉及一種電腦程式產品,包含程式碼。當處理單元執行所述程式碼時,實施如上所述的編碼歷程資訊的存取方法。
本說明書另涉及一種編碼歷程資訊的存取裝置,包含:閃存介面;和處理單元。處理單元用於提供多個閃存單元的儲存空間所形成的超塊;驅動閃存單元寫入編碼歷程資訊至閃存模組中的指定超頁線的指定第一頁面的元資料區段。
上述實施例的優點之一,通過編碼歷程資訊,當指定區的指定超頁線中出現毀損的頁面時得依據編碼歷程資訊以回復毀損的頁面。
本發明的其他優點將搭配以下的說明和圖式進行更詳細的解說。
10:電子裝置
110:主機端
130:閃存控制器
131:主機介面
134:處理單元
135:RAID引擎
136:隨機存取記憶體
139:閃存介面
150:閃存模組
151:介面
153#0~153#15:NAND閃存單元
CH#0~CH#3:通道
CE#0~CE#3:致能訊號
D#0~D#7:NAND閃存單元
SP#0~SP#47:超頁
310:頁面
STR#0~STR#7:超頁線
Z#0~Z#5:區
S510~S582:方法步驟
610~640:虛假頁面
S710~S770:方法步驟
圖1為依據本發明實施例的電子裝置的系統架構圖。
圖2為依據本發明實施例的閃存模組的示意圖。
圖3為依據本發明實施例的邏輯超塊的示意圖。
圖4為依據本發明實施例的邏輯超塊和區劃分的示意圖。
圖5為依據本發明實施例的資料寫入方法的流程圖。
圖6為依據本發明實施例的資料寫入範例的示意圖。
圖7為依據本發明實施例的讀取錯誤修正方法的流程圖。
以下說明為完成發明的較佳實現方式,其目的在於描述本發明的基本精神,但並不用以限定本發明。實際的發明內容必須參考之後的權利要求範圍。
必須了解的是,使用於本說明書中的“包含”、“包括”等詞,用以表示存在特定的技術特徵、數值、方法步驟、作業處理、元件以及/或
組件,但並不排除可加上更多的技術特徵、數值、方法步驟、作業處理、元件、組件,或以上的任意組合。
於權利要求中使用如“第一”、“第二”、“第三”等詞是用來修飾權利要求中的元件,並非用來表示之間具有優先順序,前置關係,或者是一個元件先於另一個元件,或者是執行方法步驟時的時間先後順序,僅用來區別具有相同名字的元件。
必須了解的是,當元件描述為“連接”或“耦接”至另一元件時,可以是直接連結、或耦接至其他元件,可能出現中間元件。相反地,當元件描述為“直接連接”或“直接耦接”至另一元件時,其中不存在任何中間元件。使用來描述元件之間關係的其他語詞也可類似方式解讀,例如“介於”相對於“直接介於”,或者是“鄰接”相對於“直接鄰接”等等。
參考圖1。電子裝置10包含主機端(Host Side)110、閃存控制器130及閃存模組150,並且閃存控制器130及閃存模組150可合稱為裝置端(Device Side)。電子裝置10可實施於個人電腦、筆記型電腦(Laptop PC)、平板電腦、手機、數位相機、數位攝影機等電子產品之中。主機端110與閃存控制器130的主機介面(Host Interface)131之間可以通用序列匯流排(Universal Serial Bus,USB)、先進技術附著(advanced technology attachment,ATA)、序列先進技術附著(serial advanced technology attachment,SATA)、快速周邊元件互聯(peripheral component interconnect express,PCI-E)、通用快閃記憶儲存(Universal Flash Storage,UFS)、嵌入式多媒體卡(Embedded Multi-Media Card,eMMC)等通訊協定彼此溝通。閃存控制器130的閃存介面(Flash Interface)139與閃存模組150之間可以雙倍資料率(Double Data Rate,DDR)通訊協定彼此溝通,例如,開放NAND快閃(Open NAND Flash Interface,ONFI)、雙倍資料率開關(DDR Toggle)或其他通訊協定。閃存控制器130包含
處理單元134,可使用多種方式實施,如使用通用硬體(例如,單一處理器、具平行處理能力的多處理器、圖形處理器或其他具運算能力的處理器),並且在執行軟體以及/或韌體指令時,提供之後描述的功能。處理單元134通過主機介面131接收主機命令,例如讀取命令(Read Command)、寫入命令(Write Command)、丟棄命令(Discard Command)、抹除命令(Erase Command)等,排程並執行這些命令。閃存控制器130另包含隨機存取記憶體(Random Access Memory,RAM)136,可實施為動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)、靜態隨機存取記憶體(Static RandomAccess Memory,SRAM)或上述兩者的結合,用於配置空間作為資料緩衝區,儲存從主機端110讀取並即將寫入閃存模組150的使用者資料(也可稱為主機資料),以及從閃存模組150讀取並即將輸出給主機端110的使用者資料。隨機存取記憶體136另可儲存執行過程中需要的資料,例如,變數、資料表、主機與閃存位址對照表(Host-to-Flash Address Mapping Table,簡稱H2F表)、閃存與主機位址對照表(Flash-to-Host Address Mapping Table,簡稱F2H表)等。閃存介面139包含NAND閃存控制器(NAND Flash Controller,NFC),提供存取閃存模組150時需要的功能,例如命令序列器(Command Sequencer)、低密度奇偶校驗(Low Density Parity Check,LDPC)等。
閃存控制器130中可配置共享匯流排架構(Shared Bus Architecture),用於讓元件之間彼此耦接以傳遞資料、位址、控制訊號等,這些元件包含主機介面131、處理單元134、獨立磁碟冗餘陣列引擎(Redundant Array of Independent Disks,RAID Engine)135、RAM 136、閃存介面139等。匯流排包含並行的物理線,連接閃存控制器130中兩個以上的組件。共享匯流排是一種共享的傳輸媒體,在任意的時間上,只能有兩個裝置可以使用這些線來彼此溝通,用於傳
遞資料。資料及控制訊號能夠在組件間分別沿資料和控制線進行雙向傳播,但另一方面,位址訊號只能沿位址線進行單向傳播。例如,當處理單元134想要讀取RAM 136的特定位址上的資料時,處理單元134在位址線上傳送此位址給RAM 136。接著,此位址的資料會在資料線上回覆給處理單元134。為了完成資料讀取操作,控制訊號會使用控制線進行傳遞。
閃存模組150提供大量的儲存空間,通常是數百個千兆位元組(Gigabytes,GB),甚至是數個兆兆位元組(Terabytes,TB),用於儲存大量的使用者資料,例如高解析度圖片、影片等。閃存模組150中包含控制電路以及記憶體陣列,記憶體陣列中的記憶單元可組態為單層式單元(Single Level Cells,SLCs)、多層式單元(Multiple Level Cells,MLCs)三層式單元(Triple Level Cells,TLCs)、四層式單元(Quad-Level Cells,QLCs)或上述的任意組合。處理單元134可通過閃存介面139寫入使用者資料到閃存模組150中的指定位址(目的位址),以及從閃存模組150中的指定位址(來源位址)讀取使用者資料。閃存介面139使用數個電子訊號來協調閃存控制器130與閃存模組150間的資料與命令傳遞,包含資料線(Data Line)、時脈訊號(Clock Signal)與控制訊號(Control Signal)。資料線可用於傳遞命令、位址、讀出及寫入的資料;控制訊號線可用於傳遞晶片致能(Chip Enable,CE)、位址提取致能(Address Latch Enable,ALE)、命令提取致能(Command Latch Enable,CLE)、寫入致能(Write Enable,WE)等控制訊號。
參考圖2,閃存模組150中的介面151可包含四個輸出入通道(I/O channels,以下簡稱通道)CH#0至CH#3,每一個通道連接四個NAND閃存單元,例如,通道CH#0連接NAND閃存單元153#0、153#4、153#8及153#12。每個NAND閃存單元可封裝為獨立的芯片(die)。閃存介面139可通過介面151發出致能訊號CE#0至CE#3中
的一個來致能NAND閃存單元153#0至153#3、153#4至153#7、153#8至153#11、或153#12至153#15,接著以並行的方式從致能的NAND閃存單元讀取使用者資料,或者寫入使用者資料至致能的NAND閃存單元。所屬技術領域人員可依據系統的需求改變閃存模組150的設計,在閃存模組150中配置更多或更少的通道,和/或將每個通道連接上更多或更少的NAND閃存單元,本發明並不因此受限。
RAID引擎135可依據處理單元134發出的指令執行清除和編碼(Clear and Encode)、編碼(Encode)、結束編碼(Terminate Encode)、中斷(Terminate)、中斷後回復(Resume)等功能。當接收到清除和編碼指令時,RAID引擎135中的控制器通過共享匯流排從RAM 136的指定位址(可稱為來源位址)讀取多個主頁面(例如32個主頁面)的資料,並且以讀取的資料覆寫RAID引擎135中的SRAM所儲存的資料。當接收到編碼指令時,RAID引擎135中的控制器通過共享匯流排從RAM 136的指定位址讀取多個主頁面的資料,將讀取的資料和RAID引擎135中的SRAM所儲存的資料進行互斥或(Exclusive-OR)計算,並且將計算結果覆寫RAID引擎135中的SRAM所儲存的資料。當接收到結束編碼指令時,RAID引擎135中的控制器通過共享匯流排從RAM 136的指定位址讀取多個主頁面的資料,將讀取的資料和RAID引擎135中的SRAM所儲存的資料進行互斥或(Exclusive-OR)計算,將計算結果覆寫RAID引擎135中的SRAM所儲存的資料,並且將計算結果通過共享匯流排儲存到RAM 136的指定位址(可稱為目的位址)。
參考圖3所示的一個邏輯超塊(Logical Super-block)的示意圖。舉例來說,閃存模組150中可設置八個NAND閃存單元D#0至D#7,每個NAND閃存單元提供多個實體塊(Physical Block)的儲存空間,每個實體塊可包含預設數目的(如384個)頁面,每個頁面可包含資料區段(Data Section)和元資料區段(Metadata Section)。每個
頁面的資料區段可儲存4KB的資料,並且此頁面中的元資料區段可儲存用於描述資料區段中的儲存內容的資訊。在NAND閃存單元D#0至D#7的每一個之中,一個實體塊可包含48個超頁(Super Pages),依序編號為SP#0至SP#47,每個超頁包含2個資料平面,並且每個資料平面包含4個頁面。也就是說一個超頁包含8個頁面。NAND閃存單元D#0至D#7中的相同超頁可形成一個超頁線(Super-page String),超頁線中的頁面可依序編號為P#0至P#63。
RAID引擎135可編碼(例如,執行互斥或運算)每個超頁線中的63個頁面以產生奇偶校驗碼,並儲存在超頁線中的指定頁面。例如,RAID引擎135可編碼一個超頁線中NAND閃存單元D#0的第0個資料平面的第0個頁面至NAND閃存單元D#7的第1個資料平面的第2個頁面,並將編碼的結果儲存在NAND閃存單元D#7的第1個資料平面的第3個頁面(可稱為奇偶校驗碼頁面)。這樣的編碼可實施在一般寫入處理(Normal Write Process)或者瞬間斷電後回復處理(Sudden Power-Off Recovery,SPOR Process)之中。在一般寫入處理中,某些頁面可能會填入沒有用的虛假值(Dummy Values),而這些虛假值並不需要用來被RAID引擎135編碼。儲存虛假值的頁面可稱為虛假頁面。在瞬間斷電後回復處理中,RAID引擎135不會使用無法錯誤修正頁面(Uncorrectable Error Correction Code,UECC Page)的資料來進行編碼。
在產生了虛假頁面或者偵測到UECC頁面時,處理單元134可標示這些頁面,並且將標示的資訊(可稱為編碼歷程資訊)寫入一個超塊中的指定位置。之後,當RAID引擎135需要回復某個發生錯誤的頁面時,處理單元134可先從閃存模組150的指定位置讀取標示的資訊,避免錯誤地使用虛假頁面和UECC頁面中的資料來進行解碼(或者錯誤校驗修正)。在一些實施方式中,可使用位元圖來表示標示的資訊,其中每個位元用於表示相應頁面是否已經經過RAID引擎135
的編碼,“1”代表已經經過編碼,“0”代表沒有經過編碼。舉例來說,位元圖中的第0個位元代表NAND閃存單元D#0的第0個資料平面的第0個頁面;第1個位元代表NAND閃存單元D#0的第0個資料平面的第1個頁面,依此類推。針對虛假頁面和UECC頁面中的每一個,位元圖中的相應位元為“0”。處理單元134可驅動閃存介面139,用於將位元圖寫入超頁面SP#40至SP#47中的最後一個頁面(如反斜線區域310所示)的元資料區段。然而,元資料區段中可用來儲存位元圖的空間有限。假設反斜線區域310中的每個元資料區段能提供40個位元組的儲存空間,也就是反斜線區域310中的所有元資料區段能表示40x8x8=2560個頁面。這樣的空間並不足以表示如圖3所示的超塊的組態,因為一個超塊中總共包含了384x8=3072個頁面。
為了解決上述的問題,本發明實施例將邏輯超塊做更近一步的劃分。舉例來說,參考圖4所示的一個邏輯超塊的示意圖。一個超塊可包含6區(Zones),依序編號為Z#0至Z#5,並且每區包含8個超頁線,編號為Str#0至Str#7。每個超頁線上的頁面可依序編號為P#0至P#63。編碼歷程資訊可包含歷程輪廓(History Profile)和多筆歷程紀錄。歷程輪廓可表示為以下的資料結構:{z_begin,z_end,h_qty,history[]},其中,z_begin和z_end分別代表開始區和結束區的編號,用於指出一個或多個歷程紀錄所在的區範圍;h_qty代表歷程紀錄的數目;history[]為歷程紀錄的陣列。歷程紀錄的最大數目可依據一個元資料區段中的可用空間而定。每個歷程紀錄可表示為以下的資料結構:{w,x,y,z},其中,w代表歷程紀錄所在的區編號;x代表歷程紀錄所在的超頁線編號;y代表歷程紀錄所關聯的開始頁面編號;z代表連續的頁面數目。
NAND閃存單元中的每個實體塊依其功能可區分為資料塊(Data Block)、當前塊(Current block)或系統塊(System block)。處理單元134可為每個NAND閃存單元選擇出一個空的實體塊做為當前
塊,用於預備寫入從主機端110接收的使用者資料。為了提昇資料寫入的效率,主機端110提供的使用者資料可並行地寫入多個NAND閃存單元中的當前塊中的特定頁面。如上所述的超塊可包含多個NAND閃存單元的當前塊中的全部或者一部分。一個當前塊中的所有頁面都儲存滿使用者資料之後,或者一個當前塊中的剩餘頁面都填入虛假值之後,當前塊就改變為資料塊,換句話說,其中儲存的使用者資料不會再改變。接著,處理單元134可選擇出另一個空的實體塊作為新的當前塊。此外,處理單元134可將特定實體塊設置為系統塊,用於儲存管理資訊,例如閃存識別碼(Flash Identifier,ID)、壞塊表(Bad Block Table)、壞行表(Bad Column Table)、主機-閃存對照表(Host-to-Flash,H2F Table)等。
如果資料寫入超塊的過程中發生瞬間斷電(sudden power off,SPO),則可能會損壞之前已經寫入的頁面資料。因此,系統在恢復供電後,處理單元134需要執行SPOR程序中再一次執行資料寫入程序,用於先找到中斷點(也就是UECC頁面),標記後再接著往下寫。
為了解決如上所述的問題,本發明實施例提出一種編碼歷程資訊的存取方法,使用處理單元134於載入並執行韌體轉換層(Firmware Translation Layer,FTL)的程式碼時實施,包含:提供多個閃存單元(例如,NAND閃存單元D#0至D#7)的儲存空間所形成的超塊;寫入編碼歷程資訊至閃存模組150中的指定超頁線的指定第一頁面的元資料區段,其中,編碼歷程資訊包含歷程輪廓和歷程紀錄,歷程輪廓包含超塊中所涵蓋的區和歷程紀錄的數目,每個歷程紀錄包含指定區的指定超頁線中的指定第二頁面沒有經過引擎編碼以產生奇偶校驗碼的資訊;當指定區的指定超頁線中出現毀損的頁面時,從閃存模組150中的指定超頁線的指定第一頁面的元資料區段讀取編碼歷程資訊;依據編碼歷程資訊捨棄指定第二頁面;以及將指定
區的指定超頁線中留下來的頁面內容逐頁饋入引擎以回復毀損的頁面。
參考圖5所示的由處理單元134於載入相關程式碼時所執行的資料寫入方法的流程圖。此方法包含一個反覆執行的外迴圈(步驟S510至S582)和內迴圈(步驟S522至S582),其中外迴圈用於寫入資料、元資料、奇偶校驗碼和編碼歷程資訊到一個超塊,而內迴圈則用於寫入資料、元資料、奇偶校驗碼和編碼歷程資訊到此超塊中的一個超頁線。詳細說明如下:
步驟S510:初始化執行過程中使用的變數:ZB=0;ZE=0;Zcur=0;STRcur=0;Npre=0;Ncur=0。ZB用於記錄歷程紀錄集合的開始區的編號,ZE用於記錄歷程紀錄集合的結束區的編號,Zcur用於記錄目前的區編號,STRcur用於記錄目前的超頁線編號,Npre用於記錄之前累計的歷程紀錄的數目,Ncur用於記錄目前超頁線的歷程紀錄的數目。
步驟S522:準備超頁線#STRcur的多個頁面的資料、元資料和奇偶校驗碼。
在一般資料寫入的程序中,處理單元134可將蒐集到的超頁線#STRcur的資料和元資料暫存在RAM 136,並且逐頁饋入到RAID引擎135,用於產生奇偶校驗碼。
在SPOR程序中,如果還沒有找到中斷點,則處理單元134可讀取超頁線#STRcur中的內容,並且檢查是否存在UECC頁面。如果在超頁線#STRcur中找到中斷點,處理單元134可將蒐集到的中斷點之後的資料和元資料暫存在RAM 136,並且將中斷點之前和中斷點之後的資料和元資料逐頁饋入到RAID引擎135,用於產生奇偶校驗碼。
在SPOR程序中,如果在超頁線#STRcur之前已經找到中斷點,處理單元134可將蒐集到的超頁線#STRcur的資料和元資料暫存在RAM 136,並且逐頁饋入到RAID引擎135,用於產生奇偶校驗碼。
步驟S524:判斷這些頁面中是否包含虛假頁面或者UECC頁面。如果是,則流程進行步驟S532的處理。否則,流程進行步驟S526的處理。
步驟S526:將Ncur設為0,用於指出這些頁面中不包含虛假頁面或者UECC頁面。
步驟S532:依據虛假頁面和/或UECC頁面的位置產生一個或多個歷程紀錄。例如,當第0區的第0個超頁線中的第15個頁面、第34至第35個頁面為虛假頁面時,處理單元134產生兩個歷程紀錄:{0,0,15,1}和{0,0,34,2}。
步驟S534:獲取歷程紀錄的數目Ncur。例如,如果在步驟S532中產生兩個歷程紀錄,則Ncur=2。
步驟S540:判斷Npre加上Ncur後是否大於MAXn,其中,MAXn是一個預設的常數,用於限定歷程紀錄的數目。如果是,代表目前所產生的歷程輪廓和歷程紀錄需要寫入到此超頁線中的一個頁面的元資料區段,流程繼續進行步驟S552的處理。否則,代表目前所產生的歷程輪廓和歷程紀錄還不需要寫入,可以繼續累積,流程繼續進行步驟S562的處理。
步驟S552:驅動閃存介面139將蒐集到的資料、元資料、奇偶校驗碼和編碼歷程資訊寫入相應於超頁線#STRcur的實體位址。例如,將資料和所屬元資料寫入相應於超頁線#STRcur中的頁面P#0至P#62的實體位址,將奇偶校驗碼和編碼歷程資訊寫入相應於超頁線#STRcur中的頁面P#63的實體位址。可以理解的是,當編碼歷程資訊寫入閃存模組150後,處理單元134可清除暫存於RAM 136中的編碼歷程資訊。在這裡需要注意的是,如果是在SPOR程序中並且還沒有發現中斷點的時候,則不需要驅動閃存介面139來進行實際的資料、元資料、奇偶校驗碼和編碼歷程資訊的寫入。
步驟S554:將Npre和Ncur都設為0。
步驟S556:如果STRcur小於MAXstr,代表此區的資料還沒有寫入完畢,則將ZB設為Zcur(也就是目前區的編號)。如果STRcur等於MAXstr,代表此區的資料已經寫入完畢,則將ZB設為Zcur加1(也就是下一區的編號)。
步驟S562:如果目前不是處理此超塊的最後一個超頁線,則驅動閃存介面139將蒐集到的資料、元資料和奇偶校驗碼寫入相應於超頁線#STRcur的實體位址。例如,將資料和所屬元資料寫入相應於超頁線#STRcur中的頁面P#0至P#62的實體位址,將奇偶校驗碼寫入相應於超頁線#STRcur中的頁面P#63的實體位址。如果目前正處理此超塊的最後一個超頁線,則驅動閃存介面139將蒐集到的資料、元資料、奇偶校驗碼和編碼歷程資訊寫入相應於超頁線#STRcur的實體位址。在這裡需要注意的是,如果是在SPOR程序中並且還沒有發現中斷點的時候,則不需要驅動閃存介面139來進行實際的資料、元資料、奇偶校驗碼和編碼歷程資訊的寫入。
步驟S564:將NE設為Ncur。
步驟S566:將Npre設為Ncur加上Npre,用於計算出未寫入閃存模組150的歷程紀錄的數目。
步驟S570:判斷STRcur是否等於MAXstr,其中,MAXstr是一個預設的常數,指出一個區中的最大的超頁線編號。如果是,代表接下來要進入下一區,則流程進行步驟S580。否則,代表接著還是在同一個區,則流程進行步驟S572。
步驟S572:將STRcur加1。
步驟S580:判斷Zcur是否等於MAXz,其中,MAXz是一個預設的常數,指出一個超塊中的最大區編號。如果是,代表接下來要進入下一個超塊,則流程進行步驟S510。否則,代表接著還是在同一個超塊,則流程進行步驟S582。
步驟S582:將Zcur加1,接著,將ZE設為Zcur,並且將STRcur設為0。
參考圖6所示的資料寫入範例。假設MAXn設為1:在處理區Z#0的超頁線STR#0的迴圈裡,處理單元134發現第15個頁面610、第34至第35個頁面620為虛假頁面(步驟S524中“是”的路徑),接著,產生兩個歷程紀錄:{0,0,15,1}和{0,0,34,2}(步驟S532)。由於處理單元134偵測到Npre+Ncur=2大於MAXn=1(步驟S540中“是”的路徑),將資料和所屬元資料寫入相應於區Z#0的超頁線STR#0中的頁面P#0至P#62的實體位址,並且將將奇偶校驗碼和編碼歷程資訊(包含z_begin=0,z_end=0,h_qty=2,history[]={0,0,15,1},{0,0,34,2})寫入相應於區Z#0的超頁線STR#0中的頁面P#63的實體位址。
在處理區Z#0的超頁線STR#7的迴圈裡,處理單元134發現第50至第51個頁面630為虛假頁面(步驟S524中“是”的路徑),接著,產生一個歷程紀錄:{0,7,50,2}(步驟S532)。由於處理單元134偵測到Npre+Ncur=1不大於MAXn=1(步驟S540中“否”的路徑),將資料和所屬元資料寫入相應於區Z#0的超頁線STR#7中的頁面P#0至P#62的實體位址,並且將將奇偶校驗碼寫入相應於區Z#0的超頁線STR#7中的頁面P#63的實體位址。
在處理區Z#1的超頁線STR#7的迴圈裡,處理單元134發現第55個頁面640為虛假頁面(步驟S524中“是”的路徑),接著,產生一個歷程紀錄:{1,7,55,1}(步驟S532)。由於處理單元134偵測到Npre+Ncur=2大於MAXn=1(步驟S540中“是”的路徑),將資料和所屬元資料寫入相應於區Z#1的超頁線STR#7中的頁面P#0至P#62的實體位址,並且將將奇偶校驗碼和編碼歷程資訊(包含z_begin=0,z_end=1,h_qty=2,history[]={0,7,50,2},{1,7,55,1})寫入相應於區Z#1的超頁線STR#7中的頁面P#63的實體位址。
在處理區Z#5的超頁線STR#7的迴圈裡,由於處理單元134沒有發現虛假頁面(步驟S524中“否”的路徑),將資料和所屬元資料寫入相
應於區Z#5的超頁線STR#7中的頁面P#0至P#62的實體位址,並且將將奇偶校驗碼和編碼歷程資訊(包含z_begin=2,z_end=5,h_qty=0,history[]=NULL)寫入相應於區Z#5的超頁線STR#7中的頁面P#63的實體位址。
雖然以上實施例描述了將編碼歷程資訊儲存在一個超頁線的最後一個頁面的元資料區段,並且此超頁線的最後一個頁面的資料區段儲存奇偶校驗碼,但是所屬技術領域人員可將編碼歷程資訊改變儲存在此超頁線的其他位置。
在另一些實施例中,處理單元134可不將編碼歷程資訊儲存在一個超頁線的最後一個頁面,而是將編碼歷程資訊儲存在包含此超頁線的奇偶校驗碼的頁面。例如,處理單元134可將一個超頁線的奇偶校驗碼儲存在此超頁線的頁面P#0的資料區段,並且將編碼歷程資訊儲存在此超頁線的頁面P#0的元資料區段。
在另一些實施例中,處理單元134可將編碼歷程資訊儲存在一個超頁線的最後一個頁面,但不將此超頁線的奇偶校驗碼的儲存在此超頁線的最後一個頁面。例如,處理單元134可將一個超頁線的奇偶校驗碼儲存在此超頁線的頁面P#0的資料區段,並且將編碼歷程資訊儲存在此超頁線的頁面P#63的元資料區段。
參考圖7所示的由處理單元134於載入相關程式碼時所執行的讀取錯誤修正方法的流程圖,說明如下:
步驟S710:在區Z#t的超頁線STR#u中偵測到毀損的頁面P#v,其中t為0到MAXz中的任何整數,MAXz代表一個超塊中的最大區編號;u為0到MAXu中的任何整數,MAXu代表一個區中的最大超頁線編號;v為0到MAXv中的任何整數,MAXv代表一個超頁線中的最大頁面編號。
步驟S720:從最後區的最後超頁線的最後頁面中的元資料區段讀取編碼歷程資訊。
步驟S730:判斷是否在編碼歷程資訊中發現區Z#t的超頁線STR#u的歷程紀錄。如果是,流程繼續進行步驟S750的處理;否則,流程繼續進行步驟S740的處理。
步驟S740:獲取前一個編碼歷程資訊。處理單元134可通過閃存介面139從開始區z_begin中的最後超頁線開始掃描每個超頁線的最後頁面中的元資料區段的指定位置,並且檢查是否可以發現編碼歷程資訊。最早發現的編碼歷程資訊就是前一個編碼歷程資訊。如果都找不到,則處理單元134可再通過閃存介面139從開始區z_begin的前一個區中的最後超頁線開始掃描每個超頁線的最後頁面中的元資料區段的指定位置,直到找到編碼歷程資訊為止。
步驟S750:從編碼歷程資訊獲取關聯於超頁線STR#u的編碼歷程。
步驟S760:依據編碼歷程捨棄不需要的頁面(也就是虛假頁面和UECC頁面),並且將留下來的頁面內容逐頁饋入到RAID引擎135以回復毀損的頁面P#v,並且依據回復後的超頁線STR#u的內容產生新的奇偶校驗碼。
步驟S770:驅動閃存介面139將回復後的超頁線STR#u的資料、元資料和奇偶校驗碼寫入到當前塊中的超頁線。
承續如圖6所示的範例,假設在區Z#0的超頁線STR#7中偵測到毀損的頁面P#0:處理單元134從最後區Z#5的最後超頁線STR#7的最後頁面P#63中的元資料區段讀取編碼歷程資訊(包含z_begin=2,z_end=5,h_qty=0,history[]=NULL)(步驟S720)。接著,處理單元134從區Z#2中的最後超頁線開始掃描每個超頁線的最後頁面中的元資料區段的指定位置,但沒有發現編碼歷程資訊。處理單元134繼續掃描區Z#1,並且在區Z#1的最後超頁線STR#7的最後頁面P#63中的元資料區段發現編碼歷程資訊(包含z_begin=0,z_end=1,h_qty=2,history[]={0,7,50,2},{1,7,55,1})(步驟S740)。由於在編碼歷程資訊中發現了
區Z#0的超頁線STR#7的歷程紀錄{0,7,50,2}(步驟S730中“是”的路徑),處理單元134依據歷程紀錄捨棄不需要的頁面P#50和P#51,並且將留下來的頁面內容逐頁饋入到RAID引擎135以回復毀損的頁面P#0,依據回復後的超頁線STR#u的內容產生新的奇偶校驗碼(步驟S760),並且將回復後的超頁線STR#u的資料、元資料和奇偶校驗碼寫入到當前塊中的超頁線(步驟S770)。
本發明所述的方法中的全部或部分步驟可以計算機指令實現,例如儲存裝置中的韌體轉換層(Firmware Translation Layer,FTL)、特定硬體的驅動程式等。此外,也可實現於其他類型程式。所屬技術領域具有通常知識者可將本發明實施例的方法撰寫成計算機指令,為求簡潔不再加以描述。依據本發明實施例方法實施的計算機指令可儲存於適當的電腦可讀取媒體,例如DVD、CD-ROM、USB碟、硬碟,亦可置於可通過網路(例如,網際網路,或其他適當載具)存取的網路伺服器。
雖然圖1、圖2中包含了以上描述的元件,但不排除在不違反發明的精神下,使用更多其他的附加元件,已達成更佳的技術效果。此外,雖然圖5、圖7的流程圖採用指定的順序來執行,但是在不違反發明精神的情況下,熟習此技藝人士可以在達到相同效果的前提下,修改這些步驟間的順序,所以,本發明並不侷限於僅使用如上所述的順序。此外,熟習此技藝人士亦可以將若干步驟整合為一個步驟,或者是除了這些步驟外,循序或平行地執行更多步驟,本發明亦不因此而侷限。
雖然本發明使用以上實施例進行說明,但需要注意的是,這些描述並非用以限縮本發明。相反地,此發明涵蓋了熟習此技藝人士顯而易見的修改與相似設置。所以,申請權利要求範圍須以最寬廣的方式解釋來包含所有顯而易見的修改與相似設置。
S510~S582:方法步驟
Claims (13)
- 一種編碼歷程資訊的存取方法,使用處理單元執行,所述方法包含:提供多個閃存單元的儲存空間所形成的超塊,其中,所述超塊包含多個區,每個所述區包含多個超頁線,以及每個所述超頁線包含橫跨多個所述閃存單元的多個頁面;以及寫入編碼歷程資訊至指定超頁線的指定第一頁面的元資料區段,其中,所述編碼歷程資訊包含歷程輪廓和歷程紀錄,所述歷程輪廓包含所述超塊中所涵蓋的區和所述歷程紀錄的數目,每個所述歷程紀錄包含指定區的所述指定超頁線中的指定第二頁面沒有經過引擎編碼以產生奇偶校驗碼的資訊,使得所述指定區的所述指定超頁線中出現毀損的頁面時依據所述編碼歷程資訊以回復所述毀損的頁面。
- 如請求項1所述的編碼歷程資訊的存取方法,包含:當所述指定區的所述指定超頁線中出現所述毀損的頁面時,從所述超頁線的所述指定第一頁面的所述元資料區段讀取所述編碼歷程資訊;依據所述編碼歷程資訊捨棄所述指定第二頁面;以及將所述指定區的所述指定超頁線中留下來的頁面內容逐頁饋入所述引擎以回復所述毀損的頁面。
- 如請求項1所述的編碼歷程資訊的存取方法,其中,所述指定第二頁面為虛假頁面或者無法錯誤修正頁面,其中所述虛假頁面填滿虛假值。
- 如請求項1所述的編碼歷程資訊的存取方法,其中,所述指定第一頁面的資料區段儲存所述指定超頁線中的多個所述頁面的奇偶校驗碼。
- 如請求項1所述的編碼歷程資訊的存取方法,其中,所述指定第一頁面為所述指定超頁線中的最後一個頁面。
- 如請求項1所述的編碼歷程資訊的存取方法,其中,所述指定第一頁面為所述指定超頁線中的最後一個頁面,並且所述指定第一頁面的資料區段儲存所述指定超頁線中的所述多個頁面的奇偶校驗碼。
- 一種電腦程式產品,包含程式碼,其中,當處理單元執行所述程式碼時,實施如請求項1至6中任一項所述的編碼歷程資訊的存取方法。
- 一種編碼歷程資訊的存取裝置,包含:閃存介面,耦接多個閃存單元;以及處理單元,耦接所述閃存介面,用於提供多個所述閃存單元的儲存空間所形成的超塊,其中,所述超塊包含多個區,每個所述區包含多個超頁線,以及每個所述超頁線包含橫跨多個所述閃存單元的多個頁面;以及驅動所述閃存介面以寫入編碼歷程資訊至指定超頁線的指定第一頁面的元資料區段,其中,所述編碼歷程資訊包含歷程輪廓和歷程紀錄,所述歷程輪廓包含所述超塊中所涵蓋的區和所述歷程紀錄的數目,每個所述歷程紀錄包含指定區的所述指定超頁線中的指定第二頁面沒有經過引擎編碼以產生奇偶校驗碼的資訊,使得所述指定區的所述指定超頁線中出現毀損的頁面時依據所述編碼歷程資訊以回復所述毀損 的頁面。
- 如請求項8所述的編碼歷程資訊的存取裝置,其中,所述處理單元用於當所述指定區的所述指定超頁線中出現所述毀損的頁面時,驅動所述閃存介面從所述超頁線的所述指定第一頁面的所述元資料區段讀取所述編碼歷程資訊;依據所述編碼歷程資訊捨棄所述指定第二頁面;以及將所述指定區的所述指定超頁線中留下來的頁面內容逐頁饋入所述引擎以回復所述毀損的頁面。
- 如請求項8所述的編碼歷程資訊的存取裝置,其中,所述指定第二頁面為虛假頁面或者無法錯誤修正頁面,其中所述虛假頁面填滿虛假值。
- 如請求項8所述的編碼歷程資訊的存取裝置,其中,所述指定第一頁面的資料區段儲存所述指定超頁線中的多個所述頁面的奇偶校驗碼。
- 如請求項8所述的編碼歷程資訊的存取裝置,其中,所述指定第一頁面為所述指定超頁線中的最後一個頁面。
- 如請求項8所述的編碼歷程資訊的存取裝置,其中,所述指定第一頁面為所述指定超頁線中的最後一個頁面,並且所述指定第一頁面的資料區段儲存所述指定超頁線中的所述多個頁面的奇偶校驗碼。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163249702P | 2021-09-29 | 2021-09-29 | |
US63/249,702 | 2021-09-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202314528A TW202314528A (zh) | 2023-04-01 |
TWI821965B true TWI821965B (zh) | 2023-11-11 |
Family
ID=85769324
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111112364A TWI821965B (zh) | 2021-09-29 | 2022-03-31 | 編碼歷程資訊的存取方法及電腦程式產品及裝置 |
TW111112706A TWI787110B (zh) | 2021-09-29 | 2022-04-01 | 寫入資料到閃存記憶體的方法及裝置 |
TW111112709A TWI799221B (zh) | 2021-09-29 | 2022-04-01 | 寫入資料到閃存記憶體的方法及裝置 |
TW111112708A TWI801191B (zh) | 2021-09-29 | 2022-04-01 | 寫入資料到閃存記憶體的方法及裝置 |
TW111112707A TWI805302B (zh) | 2021-09-29 | 2022-04-01 | 寫入資料到閃存記憶體的方法及電腦程式產品及裝置 |
Family Applications After (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111112706A TWI787110B (zh) | 2021-09-29 | 2022-04-01 | 寫入資料到閃存記憶體的方法及裝置 |
TW111112709A TWI799221B (zh) | 2021-09-29 | 2022-04-01 | 寫入資料到閃存記憶體的方法及裝置 |
TW111112708A TWI801191B (zh) | 2021-09-29 | 2022-04-01 | 寫入資料到閃存記憶體的方法及裝置 |
TW111112707A TWI805302B (zh) | 2021-09-29 | 2022-04-01 | 寫入資料到閃存記憶體的方法及電腦程式產品及裝置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11966604B2 (zh) |
CN (5) | CN115878020A (zh) |
TW (5) | TWI821965B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI470433B (zh) * | 2012-09-07 | 2015-01-21 | Storart Technology Co Ltd | 迴避由突然斷電所造成之損壞資料頁與損壞區塊的方法 |
CN110688242A (zh) * | 2019-09-10 | 2020-01-14 | 苏州浪潮智能科技有限公司 | SSD异常掉电后恢复block信息的方法及相关组件 |
TW202011392A (zh) * | 2018-09-03 | 2020-03-16 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
TWI691966B (zh) * | 2016-04-27 | 2020-04-21 | 慧榮科技股份有限公司 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置 |
CN112463433A (zh) * | 2016-04-27 | 2021-03-09 | 慧荣科技股份有限公司 | 存取闪存模块的方法及相关的闪存控制器与记忆装置 |
CN112823331A (zh) * | 2018-10-10 | 2021-05-18 | 阿里巴巴集团控股有限公司 | 用于具有较细粒度的并行多租户ssd中的数据恢复的系统和方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8027194B2 (en) * | 1988-06-13 | 2011-09-27 | Samsung Electronics Co., Ltd. | Memory system and method of accessing a semiconductor memory device |
US9582431B2 (en) * | 2010-03-22 | 2017-02-28 | Seagate Technology Llc | Storage address space to NVM address, span, and length mapping/converting |
TWI432987B (zh) | 2011-03-15 | 2014-04-01 | Phison Electronics Corp | 記憶體儲存裝置、其記憶體控制器與病毒掃描方法 |
US20130318285A1 (en) * | 2012-05-23 | 2013-11-28 | Violin Memory Inc | Flash memory controller |
US9383795B2 (en) * | 2013-03-10 | 2016-07-05 | Seagate Technololgy Llc | Storage device power failure infrastructure |
WO2016038710A1 (ja) * | 2014-09-11 | 2016-03-17 | 株式会社日立製作所 | ストレージシステム |
CN105653609B (zh) * | 2015-12-24 | 2019-08-09 | 中国建设银行股份有限公司 | 基于内存的数据处理方法及装置 |
CN109308280B (zh) * | 2017-07-26 | 2021-05-18 | 华为技术有限公司 | 数据处理方法和相关设备 |
TWI721565B (zh) * | 2017-10-20 | 2021-03-11 | 慧榮科技股份有限公司 | 儲存裝置以及其介面晶片 |
KR20190063054A (ko) * | 2017-11-29 | 2019-06-07 | 삼성전자주식회사 | 메모리 시스템 및 이의 동작 방법 |
TWI661307B (zh) | 2017-12-06 | 2019-06-01 | 慧榮科技股份有限公司 | 資料儲存裝置、主機裝置、以及資料寫入方法 |
CN109901782A (zh) * | 2017-12-07 | 2019-06-18 | 上海宝存信息科技有限公司 | 数据储存装置与数据储存方法 |
GB2569358B (en) * | 2017-12-15 | 2020-01-29 | Advanced Risc Mach Ltd | Code realms |
EP3726364B1 (en) * | 2017-12-28 | 2022-07-27 | Huawei Technologies Co., Ltd. | Data write-in method and solid-state drive array |
US10599548B2 (en) * | 2018-06-28 | 2020-03-24 | Intel Corporation | Cache monitoring |
TWI664634B (zh) | 2018-08-17 | 2019-07-01 | 慧榮科技股份有限公司 | 快閃記憶體控制器、管理快閃記憶體模組的方法及相關的電子裝置 |
TWI703501B (zh) * | 2018-08-23 | 2020-09-01 | 慧榮科技股份有限公司 | 具有分散式信箱架構的多處理器系統及其溝通方法 |
TWI703438B (zh) | 2018-09-11 | 2020-09-01 | 慧榮科技股份有限公司 | 映射表更新方法 |
US10909012B2 (en) * | 2018-11-12 | 2021-02-02 | H3 Platform, Inc. | System having persistent memory |
US11003373B2 (en) * | 2019-06-28 | 2021-05-11 | Western Digital Technologies, Inc. | Systems and methods for managing physical-to- logical address information |
CN112905854A (zh) * | 2021-03-05 | 2021-06-04 | 北京中经惠众科技有限公司 | 数据处理方法、装置、计算设备及存储介质 |
-
2022
- 2022-03-31 TW TW111112364A patent/TWI821965B/zh active
- 2022-03-31 CN CN202210333516.2A patent/CN115878020A/zh active Pending
- 2022-04-01 CN CN202210339875.9A patent/CN115878023A/zh active Pending
- 2022-04-01 CN CN202210338471.8A patent/CN115878021A/zh active Pending
- 2022-04-01 TW TW111112706A patent/TWI787110B/zh active
- 2022-04-01 TW TW111112709A patent/TWI799221B/zh active
- 2022-04-01 TW TW111112708A patent/TWI801191B/zh active
- 2022-04-01 TW TW111112707A patent/TWI805302B/zh active
- 2022-04-01 CN CN202210339320.4A patent/CN115878022A/zh active Pending
- 2022-04-01 CN CN202210339882.9A patent/CN115878024A/zh active Pending
- 2022-08-02 US US17/879,182 patent/US11966604B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI470433B (zh) * | 2012-09-07 | 2015-01-21 | Storart Technology Co Ltd | 迴避由突然斷電所造成之損壞資料頁與損壞區塊的方法 |
TWI691966B (zh) * | 2016-04-27 | 2020-04-21 | 慧榮科技股份有限公司 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置 |
CN112463433A (zh) * | 2016-04-27 | 2021-03-09 | 慧荣科技股份有限公司 | 存取闪存模块的方法及相关的闪存控制器与记忆装置 |
TW202011392A (zh) * | 2018-09-03 | 2020-03-16 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
CN112823331A (zh) * | 2018-10-10 | 2021-05-18 | 阿里巴巴集团控股有限公司 | 用于具有较细粒度的并行多租户ssd中的数据恢复的系统和方法 |
CN110688242A (zh) * | 2019-09-10 | 2020-01-14 | 苏州浪潮智能科技有限公司 | SSD异常掉电后恢复block信息的方法及相关组件 |
Also Published As
Publication number | Publication date |
---|---|
CN115878023A (zh) | 2023-03-31 |
TWI801191B (zh) | 2023-05-01 |
TWI787110B (zh) | 2022-12-11 |
TWI805302B (zh) | 2023-06-11 |
CN115878021A (zh) | 2023-03-31 |
CN115878024A (zh) | 2023-03-31 |
US11966604B2 (en) | 2024-04-23 |
TW202314516A (zh) | 2023-04-01 |
CN115878022A (zh) | 2023-03-31 |
TW202314528A (zh) | 2023-04-01 |
TW202314529A (zh) | 2023-04-01 |
TW202314515A (zh) | 2023-04-01 |
CN115878020A (zh) | 2023-03-31 |
TWI799221B (zh) | 2023-04-11 |
TW202314517A (zh) | 2023-04-01 |
US20230103723A1 (en) | 2023-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10127166B2 (en) | Data storage controller with multiple pipelines | |
KR102625637B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
TWI716417B (zh) | 資料儲存裝置和其操作方法 | |
TWI516927B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
US11983107B2 (en) | Enhanced filesystem support for zone namespace memory | |
KR102691851B1 (ko) | 불휘발성 메모리 장치, 이를 포함하는 데이터 저장 장치 및 그 동작 방법 | |
CN107957959B (zh) | 具有文件级安全擦除的存储器系统及其操作方法 | |
TWI766207B (zh) | 多命名空間的資料存取方法及電腦程式產品 | |
TWI435329B (zh) | 快閃記憶體管理方法、快閃記憶體控制器與儲存系統 | |
US11875036B2 (en) | Computing system including host and storage system and having increased write performance | |
CN107622018B (zh) | 存储器系统及其操作方法 | |
US11681638B2 (en) | Method of synchronizing time between host device and storage device and system performing the same | |
US20240070062A1 (en) | Nonvolatile memory, memory system, and control method of nonvolatile memory | |
US10642531B2 (en) | Atomic write method for multi-transaction | |
US11928353B2 (en) | Multi-page parity data storage in a memory device | |
KR102695482B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
TWI821965B (zh) | 編碼歷程資訊的存取方法及電腦程式產品及裝置 | |
KR102509987B1 (ko) | 호스트 및 스토리지 시스템을 포함하는 컴퓨팅 시스템 | |
TWI754396B (zh) | 快閃記憶體的資料儲存方法及裝置以及電腦程式產品 | |
CN115202933A (zh) | 映射表重建方法、存储器存储装置及存储器控制电路单元 | |
TW202145243A (zh) | 資料儲存裝置與資料處理方法 | |
TW202137006A (zh) | 寫入閃存管理表的電腦程式產品及方法及裝置 | |
US11966607B2 (en) | Method and non-transitory computer-readable storage medium and apparatus for accessing to encoding-history information | |
US20240201898A1 (en) | Storage device performing atomic write, host controlling storage device, and operating method of storage device | |
CN112445416B (zh) | 冷区域判断方法、存储器控制电路单元与存储器存储装置 |