TW201939288A - 資料移動方法及儲存控制器 - Google Patents
資料移動方法及儲存控制器 Download PDFInfo
- Publication number
- TW201939288A TW201939288A TW107108136A TW107108136A TW201939288A TW 201939288 A TW201939288 A TW 201939288A TW 107108136 A TW107108136 A TW 107108136A TW 107108136 A TW107108136 A TW 107108136A TW 201939288 A TW201939288 A TW 201939288A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- plane
- physical
- block address
- particle
- Prior art date
Links
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
- 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
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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
-
- 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
- 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
-
- 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/7205—Cleaning, compaction, garbage collection, erase control
-
- 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
-
- 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)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本發明提出一種資料移動方法及儲存控制器。資料移動方法包括:獲得有效資料;當有效資料為連續資料時,傳送第一讀取指令以從第一顆粒的第一平面及第二平面讀取第一資料及第二資料,傳送第二讀取指令以從第二顆粒的第一平面及第二平面讀取第三資料及第四資料,並依序將第一資料、第三資料、第二資料及第四資料傳送到緩衝記憶體;以及傳送第一程式化指令將第一資料及第二資料程式化到的第三顆粒的第一平面及第二平面,並傳送第二程式化指令將第三資料及第四資料程式化到的第四顆粒的第一平面及第二平面。
Description
本發明是有關於一種資料移動方法及儲存控制器,且特別是有關於一種能夠在連續資料移動之後保持資料連續性的資料移動方法及儲存控制器。
當連續資料被程式化到快閃記憶體時,維持資料的實體區塊位址的連續性是提升讀取效能的關鍵。然而,在一些資料搬移操作中,例如垃圾收集(Garbage Collection,GC)或磨損平衡(Wear Leveling)等操作,資料的連續性無法被維持。舉例來說,在垃圾收集操作中,為了減少垃圾收集時間,會無法保持收集到的有效資料的連續性。資料的排列順序會取決於錯誤校正碼(Error Correction Code,ECC)校正的速度及多通道或多顆粒的反應速度。因此,如何在資料搬移操作中維持資料的連續性是本領域技術人員所應致力的目標。
本發明提供一種資料移動方法及儲存控制器,能夠在資料搬移操作中維持資料的連續性。
本發明提出一種資料移動方法,適用於控制配置有快閃記憶體(flash)的儲存裝置。快閃記憶體包括多個顆粒(die)。上述顆粒包括第一顆粒對應第一通道(channel)及第二顆粒對應第二通道。每個顆粒包括多個平面,如第一平面(plane)及第二平面。資料移動方法包括:執行資料移動操作,以從多個來源區塊中獲得有效資料,有效資料包括第一資料、第二資料、第三資料及第四資料;判斷有效資料是否為連續資料;當有效資料為連續資料時,傳送第一二平面(2-plane)讀取指令以藉由第一通道從第一顆粒的第一平面及第二平面分別讀取第一資料及第二資料,傳送第二二平面讀取指令以藉由第二通道從第二顆粒的第一平面及第二平面分別讀取第三資料及第四資料,並依序將第一資料、第三資料、第二資料及第四資料傳送到緩衝記憶體;以及傳送第一二平面程式化指令將第一資料及第二資料分別程式化到上述顆粒的第三顆粒的第一平面及第二平面,並傳送第二二平面程式化指令將第三資料及第四資料分別程式化到上述顆粒的第四顆粒的第一平面及第二平面。
本發明提出一種儲存控制器,適用於控制配置有快閃記憶體的儲存裝置。快閃記憶體包括多個顆粒。上述顆粒包括第一顆粒對應第一通道及第二顆粒對應第二通道。每個顆粒包括第一平面及第二平面。儲存控制器包括:處理器;以及記憶體,耦接到處理器,記憶體包括緩衝(buffer)記憶體。上述處理器執行資料移動操作,以從多個來源區塊中獲得有效資料,有效資料包括第一資料、第二資料、第三資料及第四資料;上述處理器判斷有效資料是否為連續資料;當有效資料為連續資料時,傳送第一二平面(2-plane)讀取指令以藉由第一通道從第一顆粒的第一平面及第二平面分別讀取第一資料及第二資料,傳送第二二平面讀取指令以藉由第二通道從第二顆粒的第一平面及第二平面分別讀取第三資料及第四資料,並依序將第一資料、第三資料、第二資料及第四資料傳送到緩衝記憶體;上述處理器傳送第一二平面程式化指令將第一資料及第二資料分別程式化到上述顆粒的第三顆粒的第一平面及第二平面,並傳送第二二平面程式化指令將第三資料及第四資料分別程式化到上述顆粒的第四顆粒的第一平面及第二平面。
基於上述,本發明的資料移動方法及儲存控制器會判斷要執行資料移動操作的有效資料是否為連續資料。若要執行資料移動操作的有效資料為連續資料,處理器會依序將有效資料中的第一資料、第三資料、第二資料及第四資料傳送到緩衝記憶體,再將第一資料、第三資料、第二資料及第四資料程式化到顆粒中,而不改變資料移動操作前第一資料、第三資料、第二資料及第四資料的資料連續性。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
在本實施例中,儲存裝置包括可複寫式非揮發性記憶體模組(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 Transfer 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中。以下會再配合多個圖式與實施例來詳細說明本發明中資料管理電路212的功能。
記憶體介面控制電路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執行對應的操作。例如,這些指令序列可包括指示寫入資料的寫入指令序列、指示讀取資料的讀取指令序列、指示抹除資料的抹除指令序列、以及用以指示各種記憶體操作(例如,改變讀取電壓組準位或執行垃圾回收程序等等)的相對應的指令序列。這些指令序列可包括一或多個訊號,或是在匯流排上的資料。這些訊號或資料可包括指令碼或程式碼。例如,在讀取指令序列中,會包括讀取的辨識碼、記憶體位址等資訊。
可複寫式非揮發性記憶體模組220是耦接至儲存控制器210(記憶體介面控制電路213)並且用以儲存主機系統10所寫入之資料。可複寫式非揮發性記憶體模組220可以是單階記憶胞(Single Level Cell,SLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存1個位元的快閃記憶體模組)、多階記憶胞(Multi Level Cell,MLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存2個位元的快閃記憶體模組)、三階記憶胞(Triple Level Cell,TLC)NAND型快閃記憶體模組(即,一個記憶胞中可儲存3個位元的快閃記憶體模組)、三維NAND型快閃記憶體模組(3D NAND flash memory module)或垂直NAND型快閃記憶體模組(Vertical NAND flash memory module)等其他快閃記憶體模組或其他具有相同特性的記憶體模組。可複寫式非揮發性記憶體模組220中的記憶胞是以陣列的方式設置。
在本實施例中,可複寫式非揮發性記憶體模組220的記憶胞會構成多個實體程式化單元(亦稱,實體子單元),並且此些實體程式化單元會構成多個實體區塊(亦稱,實體抹除單元或實體單元)。具體來說,同一條字元線(或同一個字元線層)上的記憶胞會組成一或多個實體程式化單元。
在本實施例中,是以實體子單元作為寫入(程式化)資料的最小單位。實體單元為抹除之最小單位,即,每一實體單元含有最小數目之一併被抹除之記憶胞。每一實體單元會具有多個實體子單元。實體子單元可為實體頁面(page)或是實體扇(sector)。在本實施例中,實體子單元包括資料位元區與冗餘(redundancy)位元區。資料位元區用以儲存使用者資料,而冗餘位元區用以儲存系統資料。系統資料例如為錯誤更正碼、錯誤檢查碼或元資料(Meta Data)。
所述資料寫入操作例如是根據對應一邏輯位址的資料寫入資作來程式化對應的資料至所述實體單元的一或多個實體頁面(亦稱,實體子單元),或例如是程式化資料至所述實體單元的其他型態的實體位址(如,實體扇區)。在本實施例中,當完成對於一個邏輯頁面(邏輯位址)的資料寫入操作(如,對應的資料已被程式化至一實體頁面)時,處理器211會對應地更新邏輯轉實體表,以記錄該邏輯位址所對應的實體頁面的位址(實體位址)。此外,處理器211會將對應的元資料記錄至對應所述實體頁面的冗餘位元區中。在本實施例中,所述元資料可記錄所述實體頁面所映射之邏輯位址。在另一實施例中,所述元資料亦可記錄對應所述寫入操作的時間戳記,即,當所述實體頁面的資料寫入操作完成時,處理器211可記錄一個時間戳記來記錄完成所述實體頁面的資料寫入操作的當前時間。
主機系統10是透過儲存控制器210配置多個邏輯單元給可複寫式非揮發性記憶體模組220。所配置的邏輯單元用以存取儲存在可複寫式非揮發性記憶體模組220的多個實體單元中的使用者資料。在此,每一個邏輯單元可以是由一或多個邏輯位址組成。例如,邏輯單元可以是邏輯區塊(Logical Block)、邏輯頁面(Logical Page)或是邏輯扇區(Logical Sector)。一個邏輯單元可以是映射至一或多個實體單元,其中實體單元可以是一或多個實體位址、一或多個實體扇、一或多個實體程式化單元或者一或多個實體抹除單元。
在以下實施例中,為了方便說明,邏輯單元為邏輯區塊,邏輯子單元指邏輯頁面,並且邏輯位址指對應的邏輯頁面或其位址。每一邏輯單元具有多個邏輯頁面(邏輯位址);實體單元指實體區塊,實體子單元指實體頁面,並且實體位址指對應的實體頁面或其位址。然而,在另一實施例中,一個實體單元/實體子單元亦可以分別是指任意數目的記憶胞組成,視實務上的需求而定,並且實體位址可指實體區括或實體頁面的位址。
此外,儲存控制器210會建立邏輯轉實體表(Logical To Physical table)與實體轉邏輯表(Physical To Logical table),以記錄配置給可複寫式非揮發性記憶體模組220的邏輯單元(如,邏輯區塊、邏輯頁面、邏輯位址或邏輯扇區)與實體單元(如,實體抹除單元、實體程式化單元、實體位址或實體扇區)之間的映射關係。換言之,儲存控制器210可藉由邏輯轉實體表來查找一邏輯單元所映射的實體單元,並且儲存控制器210可藉由實體轉邏輯表來查找一實體單元所映射的邏輯單元。然而,上述有關邏輯單元與實體單元映射的技術概念為本領域技術人員之慣用技術手段,不再贅述於此。
在一實施例中,儲存控制器210還包括緩衝記憶體與電源管理電路。緩衝記憶體是耦接至處理器211並且用以暫存來自於主機系統10的資料與指令、來自於可複寫式非揮發性記憶體模組220的資料或其他用以管理儲存裝置20的系統資料(如,邏輯轉實體表與實體轉邏輯表、修剪資訊清單等),以讓處理器211可快速地從緩衝記憶體中存取所述資料、指令或系統資料。電源管理電路是耦接至處理器211並且用以控制儲存裝置20的電源。
圖2為根據本發明一實施例的所繪示的可複寫式非揮發性記憶體模組的示意圖。
請參照圖2,可複寫式非揮發性記憶體模組220可具有多個顆粒221。每個顆粒221可具有一到多個平面,例如平面0到平面Y。每個平面可具有多個區塊,例如區塊0到區塊Z。每個區塊可具有多個頁面,例如頁面0到頁面N-1。
圖3為根據本發明一實施例的所繪示的顆粒的示意圖。圖4為根據本發明一實施例單平面(single plane)讀取的示意圖。圖5為根據本發明一實施例二平面(2-plane)讀取的示意圖。
請參照圖3到圖5,在本實施例中,顆粒321有兩個平面,即平面0及平面1,且每個平面都包括多個實體區塊位址(Physical Block Address,PBA),例如平面0包括PBA 330等區塊位址且平面1包括PBA 331等區塊位址。當處理器211要讀取儲存在同一平面的兩筆資料時,只能下達兩個單平面讀取指令來讀取資料,如圖4所示。在傳送位址與資料輸出中間會有一段65微秒的時間(tR),代表了資料從快閃記憶體陣列傳送到快閃記憶體快取暫存器的時間。由於圖4是下達兩個單平面讀取指令,因此需要兩次的tR時間。當處理器211要讀取儲存在不同平面的兩筆資料(例如對應PBA 330及PBA 331的資料)時,則可下達一個二平面讀取指令來讀取資料,如圖5所示。在二平面讀取資料的過程中,只需要一次tR時間,因此資料讀取的效率比兩次單平面讀取還好。圖5中的tDBSY(Dummy Busy Time)為用於多平面設定的虛擬忙碌時間。在圖4及圖5中,指令1、指令2、指令3、指令4為讀取指令且指令5、指令6為資料出(Data Out)指令。由圖3到圖5可得知,將連續資料儲存在顆粒321的不同平面並利用二平面讀取指令來讀取資料可獲得較高的資料讀取效率。值得注意的是,圖4及圖5中的虛線連接正方形中的「1」及「2」是用來連接上下連續的時間軸。
圖6為根據本發明一實施例的連續資料儲存方式的示意圖。
請參照圖6,可複寫示非揮發性記憶體模組620包括顆粒621及顆粒622。顆粒621及顆粒622可分別通過不同的通道來進行資料的存取。在邏輯轉實體表610中,邏輯區塊位址LBA(0)、…、LBA(L1)、LBA(L1+1)、LBA(L1+2)、LBA(L1+3)、…、LBA(N)分別對應到實體區塊位址PBA(X)、…、PBA(Z0)、PBA(Z1)、PBA(Z2)、PBA(Z3)、…、PBA(Y)。資料0、資料1、資料2、資料3的連續資料分別儲存在LBA(L1)、LBA(L1+1)、LBA(L1+2)、LBA(L1+3)及PBA(Z0)、PBA(Z1)、PBA(Z2)、PBA(Z3)中。
圖7為根據本發明一實施例的資料讀取的時間軸的示意圖。圖8為根據本發明一實施例的連續資料儲存方式的示意圖。
請參照圖6、圖7及圖8,當處理器211先對顆粒621下達對應資料0(D0)及資料1(D1)的二平面讀取指令再對顆粒622下達對應資料2(D2)及資料3(D3)的二平面讀取指令時,D0及D2被讀取到緩衝記憶體的時間點會比D1及D3被讀取到緩衝記憶體的時間點還早,因此處理器211會先對D0及D2下達二平面程式化指令再對D1及D3下達二平面程式化指令。如此一來,D0及D1可能分別被儲存在顆粒821的PBA(W0)及顆粒822的PBA(W2)中,如圖8所示。如此一來,當處理器211要讀取連續資料D0及D1時,就無法通過一個二平面讀取指令來讀取D0及D1。此外,D1也有可能被儲存在顆粒821的平面0中。在這種狀況下,處理器211必須通過兩個單平面讀取指令來讀取D0及D1,這會造成連續資料的讀取效能下降。
圖9為根據本發明另一實施例的連續資料儲存方式的示意圖。
請參照圖6、圖7及圖9,雖然D0及D2被讀取到緩衝記憶體的時間點會比D1及D3被讀取到緩衝記憶體的時間點還早,但因為D0、D1、D2、D3是連續資料,處理器211會下達二平面程式化指令將D0及D1分別儲存在顆粒921的平面0的PBA(W0)及平面1的PBA(W1),並下達二平面程式化指令將D2及D3分別儲存在顆粒922的平面0的PBA(W2)及平面1的PBA(W3)。顆粒921及顆粒922可分別通過不同的通道來進行資料的存取。如此一來,處理器211可通過單一二平面讀取指令來讀取D0及D1,而維持較高的讀取效率。值得注意的是,一個平面的PBA大小可為一個實體區塊的大小,也可為一個實體頁面的大小,本發明並不對此做出限制。
圖10為根據本發明一實施例的資料移動方法的流程圖。
請參照圖10,在步驟S1001中,開始資料移動操作。具體來說,資料移動操作可以是垃圾收集(Garbage Collection,GC)操作、磨損平衡(Wear Leveling)操作或其他資料移動操作。在資料移動操作中,處理器211會選擇一到多個來源區塊並將來源區塊中的有效資料移動到目標區塊中。來源區塊為儲存有效資料並且其中部分有效資料可能已經變成無效資料的區塊。目標區塊為經過抹除操作後還沒被程式化的區塊,並用來儲存移動後的資料。
在步驟S1003中,判斷來源區塊中有效資料的類型。具體來說,處理器211可根據來源區塊中有效資料的位址、大小或同時根據來源區塊中有效資料的位址及大小來判斷有效資料的類型。以下將舉例說明處理器211如何判斷來源區塊中有效資料。處理器211可根據實體轉邏輯表尋找對應一筆資料的實體區塊位址對應的邏輯區塊位址,再根據邏輯轉實體表尋找上述邏輯區塊位址對應的實體區塊位址。若從邏輯轉實體表獲得的實體區塊位址與此資料的實體區塊位址相同,則處理器211判斷這筆資料為有效資料。
在步驟S1005中,判斷有效資料是否為連續資料。具體來說,處理器211會先判斷一筆資料(例如,第一資料)是否為有效資料。若第一資料為有效資料,處理器211會尋找與第一資料的實體區塊位址直接相鄰的另一筆資料(例如,第二資料),並根據實體轉邏輯表尋找第二資料的實體區塊位址對應的邏輯區塊位址。若第二資料為有效資料且第二資料的邏輯區塊位址與第一資料的邏輯區塊位址直接相鄰,則處理器211可判斷第一資料與第二資料為連續資料。
若有效資料為連續資料,在步驟S1007中,依序將有效資料讀到緩衝記憶體中。在步驟S1009中,判斷連續資料是否已經全部都讀到緩衝記憶體中。具體來說,在判斷有效資料是否為連續資料時,處理器211就可先判斷連續資料的長度(或稱為大小)。判斷連續資料的大小的基本單位可以是一個頁面大小(例如,16KB)、一個碼字大小(例如,2KB)或一個邏輯區塊位址大小(例如,4KB)等。本發明並不對其做出限制。除了判斷連續資料的長度之外,處理器211還會給定對應連續資料的識別碼(ID),以判斷目前正在移動的哪一筆的連續資料。若連續資料還沒全部都讀到緩衝記憶體中,則回到步驟S1007,繼續依序將有效資料讀到緩衝記憶體中。
在一實施例中,若連續資料的大小太大,則處理器211可根據預定大小來切割連續資料。預定大小可為一顆粒中平面數量個實體子單元的大小。舉例來說,當一顆粒有兩個平面則預定大小可為兩個實體子單元的大小。當一顆粒有四個平面則預定大小可為四個實體子單元的大小,以此類推。
若連續資料已經全部都讀到緩衝記憶體中,則在步驟S1011中,將連續資料程式化到目標區塊中。在將連續資料程式化到目標區塊的過程中,處理器211會保持程式化的連續資料與來源區塊中的原始連續資料有相同的排列順序。舉例來說,在圖6中,資料0、資料1、資料2、資料3的連續資料是依序排列在顆粒621的平面0、顆粒621的平面1、顆粒622的平面0、顆粒621的平面1。因此在資料移動操作後,資料0、資料1、資料2、資料3的連續資料會依序排列在顆粒921的平面0、顆粒921的平面1、顆粒922的平面0、顆粒921的平面1,如圖9所示。這樣的排列方式可以讓處理器211在讀取連續資料時有更高的效能,因為處理器211可通過不同通道分別下達二平面讀取指令來讀取資料0、資料1、資料2、資料3的連續資料。
在此範例中,資料0、資料1、資料2、資料3在顆粒621及顆粒622的實體區塊位址,即PBA(Z0)、PBA(Z1)、PBA(Z2)、PBA(Z3),是平行排列。因此資料0、資料1、資料2、資料3在顆粒621及顆粒622的實體區塊位址,即PBA(W0)、PBA(W1)、PBA(W2)、PBA(W3),也是平行排列。實體區塊位址平行排列也代表了PBA(Z0)、PBA(Z1)、PBA(Z2)、PBA(Z3)在顆粒621的平面0、顆粒621的平面1、顆粒622的平面0、顆粒622的平面1的索引值相同。平面0及平面1的索引值可使用實體區塊位址的大小為一個基本單位。例如平面0的第一個實體區塊位址的索引值為1且第二個實體區塊位址的索引值為2,以此類推。
若有效資料不為連續資料,也就是說若有效資料為隨機資料,在步驟S1013中,將隨機資料讀到緩衝記憶體中。在步驟S1015中,將隨機資料程式化到目標區塊中。
在步驟S1017中,更新邏輯轉實體表及實體轉邏輯表。具體來說,當所有有效資料都從來源區塊被移動到目標區塊後,處理器211會根據有效資料的實體區塊位址及邏輯區塊位址來更新邏輯轉實體表及實體轉邏輯表,最後才完成資料移動操作。
在一實施例中,連續資料例如是一部電影而電影中可能包含了字幕等元資料(metadata)。當主機系統10在電影檔案在資料移動操作的過程中更新了字幕,可能會造成日後讀取的錯誤。因此,在資料移動操作中,處理器211會判斷連續資料中的一資料(例如,第一資料)對應的實體區塊位址,與第一資料對應的實體區塊位址經由實體轉邏輯表轉換的邏輯區塊位址再經由邏輯轉實體表轉換的實體位址是否相同。若判斷結果相同,代表第一資料並未在資料移動操作的過程中被主機系統10所更新,因此處理器211可直接利用第一資料的目標區塊中的實體區塊位址來更新邏輯轉實體表。若判斷結果不同,則處理器211將第一資料設定為無效。
在一實施例中,若資料移動操作中,處理器211從主機系統10接收到程式化指令指示將一資料(例如,第五資料)程式化且第五資料的邏輯區塊位址與連續資料中的一資料(例如,第一資料)的邏輯區塊位址相同,則處理器211會直接將第五資料程式化到目標區塊以直接取代第一資料。
綜上所述,本發明的資料移動方法及儲存控制器會判斷要執行資料移動操作的有效資料是否為連續資料。若要執行資料移動操作的有效資料為連續資料,處理器會依序將有效資料中的第一資料、第三資料、第二資料及第四資料傳送到緩衝記憶體,再將第一資料、第三資料、第二資料及第四資料程式化到顆粒中,而不改變資料移動操作前第一資料、第三資料、第二資料及第四資料的資料連續性。如此一來,連續資料在經過資料移動操作後還是可以保持原始的連續性,從而能提高連續資料的讀取時的效能。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧主機系統
20‧‧‧儲存裝置
110、211‧‧‧處理器
120‧‧‧主機記憶體
130‧‧‧資料傳輸介面電路
210‧‧‧儲存控制器
212‧‧‧資料傳輸管理電路
213‧‧‧記憶體介面控制電路
220、620、820、920‧‧‧可複寫式非揮發性記憶體模組
230‧‧‧連接介面電路
221、321、621、622、821、822、921、922‧‧‧顆粒
330、331‧‧‧實體區塊位址
610、810、910‧‧‧邏輯轉實體表
S1001、S1003、S1005、S1007、S1009、S1011、S1013、S1015、S1017‧‧‧資料移動方法的步驟
圖1為根據本發明一實施例的所繪示的主機系統及儲存裝置的方塊圖。 圖2為根據本發明一實施例的所繪示的可複寫式非揮發性記憶體模組的示意圖。 圖3為根據本發明一實施例的所繪示的顆粒的示意圖。 圖4為根據本發明一實施例單平面讀取的示意圖。 圖5為根據本發明一實施例二平面讀取的示意圖。 圖6為根據本發明一實施例的連續資料儲存方式的示意圖。 圖7為根據本發明一實施例的資料讀取的時間軸的示意圖。圖8為根據本發明一實施例的連續資料儲存方式的示意圖。 圖9為根據本發明另一實施例的連續資料儲存方式的示意圖。 圖10為根據本發明一實施例的資料移動方法的流程圖。
Claims (22)
- 一種資料移動方法,適用於控制配置有一快閃記憶體(flash)的一儲存裝置,該儲存裝置藉由一儲存控制器來控制,該快閃記憶體包括多個顆粒(die),該些顆粒包括一第一顆粒對應一第一通道(channel)及一第二顆粒對應一第二通道,每個該些顆粒包括一第一平面(plane)及一第二平面,該資料移動方法包括: 藉由該儲存控制器來執行一資料移動操作,以從多個來源區塊中獲得一有效資料,該有效資料包括一第一資料、一第二資料、一第三資料及一第四資料; 藉由該儲存控制器來判斷該有效資料是否為一連續資料; 當該有效資料為該連續資料時,藉由該儲存控制器來傳送一第一二平面(2-plane)讀取指令以藉由該第一通道從該第一顆粒的該第一平面及該第二平面分別讀取該第一資料及該第二資料,傳送一第二二平面讀取指令以藉由該第二通道從該第二顆粒的該第一平面及該第二平面分別讀取該第三資料及該第四資料,並依序將該第一資料、該第三資料、該第二資料及該第四資料傳送到一緩衝記憶體;以及 藉由該儲存控制器來傳送一第一二平面程式化指令將該第一資料及該第二資料分別程式化到該些顆粒的一第三顆粒的該第一平面及該第二平面,並傳送一第二二平面程式化指令將該第三資料及該第四資料分別程式化到該些顆粒的一第四顆粒的該第一平面及該第二平面。
- 如申請專利範圍第1項所述的資料移動方法,其中該第三顆粒的及該第四顆粒中的第一資料、該第二資料、該第三資料及該第四資料具有連續的實體區塊位址(Physical Block Address,PBA)。
- 如申請專利範圍第1項所述的資料移動方法,更包括:產生對應該連續資料的一識別碼(ID)及一資料長度,並將該連續資料讀取到該緩衝記憶體直到到達該連續資料的該資料長度。
- 如申請專利範圍第1項所述的資料移動方法,其中判斷該有效資料是否為該連續資料的步驟包括:根據一邏輯轉實體(L2P)表及一實體轉邏輯(P2L)表判斷該有效資料是否為該連續資料。
- 如申請專利範圍第4項所述的資料移動方法,更包括: 根據該實體轉邏輯表獲得該第一資料的一第一實體區塊位址對應的一第一邏輯區塊位址; 當從該邏輯轉實體表獲得的該第一邏輯區塊位址對應的實體區塊位址為該第一實體區塊位址時,判斷該第一資料有效; 獲得與該第一實體區塊位址直接相鄰的一第二實體區塊位址,該第二實體區塊位址儲存該第二資料; 根據該實體轉邏輯表獲得該第二資料的該第二實體區塊位址對應的一第二邏輯區塊位址; 當從該邏輯轉實體表獲得的該第二邏輯區塊位址對應的實體區塊位址為該第二實體區塊位址時,判斷該第二資料有效; 當該第二邏輯區塊位址與該第一邏輯區塊位址直接相鄰,則判斷該第一資料及該第二資料為該連續資料。
- 如申請專利範圍第1項所述的資料移動方法,其中該連續資料以一預定大小進行切割,該預定大小可為一顆粒中平面數量個實體子單元的大小。
- 如申請專利範圍第1項所述的資料移動方法,其中在該第一資料、該第二資料、該第三資料及該第四資料分別程式化到該第三顆粒及該第四顆粒之後,根據該第一資料、該第二資料、該第三資料及該第四資料的實體區塊位址來更新一邏輯轉實體(L2P)表及一實體轉邏輯(P2L)表。
- 如申請專利範圍第1項所述的資料移動方法,其中該第一資料在該第三顆粒的該第一平面的索引值、該第二資料在該第三顆粒的該第二平面的索引值、該第三資料在該第四顆粒的該第一平面的索引值、該第四資料在該第四顆粒的該第二平面的索引值皆相同。
- 如申請專利範圍第1項所述的資料移動方法,其中該第一資料、該第二資料、該第三資料及該第四資料的單位為一頁面、一碼字或一邏輯區塊位址單元。
- 如申請專利範圍第1項所述的資料移動方法,其中在傳送該第一二平面讀取指令後,判斷該第一顆粒的該第一資料對應的實體區塊位址,與該第一顆粒的該第一資料對應的實體區塊位址經由一實體轉邏輯表轉換的邏輯區塊位址再經由一邏輯轉實體表轉換的實體位址是否相同,若判斷結果不同則將該第一顆粒的該第一資料設定為無效。
- 如申請專利範圍第1項所述的資料移動方法,其中若在傳送該第一二平面讀取指令後,從一主機系統接收到一程式化指令指示將一第五資料程式化到該快閃記憶體且該第五資料的邏輯區塊位址與該第一資料的邏輯區塊位址相同,則根據該第一二平面程式化指令將該第五資料及該第二資料分別程式化到該第三顆粒的該第一平面及該第二平面。
- 一種儲存控制器,適用於控制配置有一快閃記憶體的一儲存裝置,該快閃記憶體包括多個顆粒,該些顆粒包括一第一顆粒對應一第一通道及一第二顆粒對應一第二通道,每個該些顆粒包括一第一平面及一第二平面,該儲存控制器包括: 一處理器;以及 一記憶體,耦接到該處理器,該記憶體包括一緩衝(buffer)記憶體,其中 該處理器執行一資料移動操作,以從多個來源區塊中獲得一有效資料,該有效資料包括一第一資料、一第二資料、一第三資料及一第四資料; 該處理器判斷該有效資料是否為一連續資料; 當該有效資料為該連續資料時,該處理器傳送一第一二平面(2-plane)讀取指令以藉由該第一通道從該第一顆粒的該第一平面及該第二平面分別讀取該第一資料及該第二資料,傳送一第二二平面讀取指令以藉由該第二通道從該第二顆粒的該第一平面及該第二平面分別讀取該第三資料及該第四資料,並依序將該第一資料、該第三資料、該第二資料及該第四資料傳送到一緩衝記憶體;以及 該處理器傳送一第一二平面程式化指令將該第一資料及該第二資料分別程式化到該些顆粒的一第三顆粒的該第一平面及該第二平面,並傳送一第二二平面程式化指令將該第三資料及該第四資料分別程式化到該些顆粒的一第四顆粒的該第一平面及該第二平面。
- 如申請專利範圍第12項所述的儲存控制器,其中該第三顆粒的及該第四顆粒中的第一資料、該第二資料、該第三資料及該第四資料具有連續的實體區塊位址(Physical Block Address,PBA)。
- 如申請專利範圍第12項所述的儲存控制器,其中該處理器產生對應該連續資料的一識別碼及一資料長度,並將該連續資料讀取到該緩衝記憶體直到到達該連續資料的該資料長度。
- 如申請專利範圍第12項所述的儲存控制器,其中該處理器根據一邏輯轉實體表及一實體轉邏輯表判斷該有效資料是否為該連續資料。
- 如申請專利範圍第15項所述的儲存控制器,其中 該處理器根據該實體轉邏輯表獲得該第一資料的一第一實體區塊位址對應的一第一邏輯區塊位址; 當從該邏輯轉實體表獲得的該第一邏輯區塊位址對應的實體區塊位址為該第一實體區塊位址時,該處理器判斷該第一資料有效; 該處理器獲得與該第一實體區塊位址直接相鄰的一第二實體區塊位址,該第二實體區塊位址儲存該第二資料; 該處理器根據該實體轉邏輯表獲得該第二資料的該第二實體區塊位址對應的一第二邏輯區塊位址; 當從該邏輯轉實體表獲得的該第二邏輯區塊位址對應的實體區塊位址為該第二實體區塊位址時,該處理器判斷該第二資料有效; 當該第二邏輯區塊位址與該第一邏輯區塊位址直接相鄰,則該處理器判斷該第一資料及該第二資料為該連續資料。
- 如申請專利範圍第12項所述的儲存控制器,其中該連續資料以一預定大小進行切割,該預定大小為一顆粒中平面數量個實體子單元大小。
- 如申請專利範圍第12項所述的儲存控制器,其中在該第一資料、該第二資料、該第三資料及該第四資料分別程式化到該第三顆粒及該第四顆粒之後,該處理器根據該第一資料、該第二資料、該第三資料及該第四資料的實體區塊位址來更新一邏輯轉實體表及一實體轉邏輯表。
- 如申請專利範圍第12項所述的儲存控制器,其中該第一資料在該第三顆粒的該第一平面的索引值、該第二資料在該第三顆粒的該第二平面的索引值、該第三資料在該第四顆粒的該第一平面的索引值、該第四資料在該第四顆粒的該第二平面的索引值皆相同。
- 如申請專利範圍第12項所述的儲存控制器,其中該第一資料、該第二資料、該第三資料及該第四資料的單位為一頁面、一碼字或一邏輯區塊位址單元。
- 如申請專利範圍第12項所述的儲存控制器,其中在傳送該第一二平面讀取指令後,該處理器判斷該第一顆粒的該第一資料對應的實體區塊位址,與該第一顆粒的該第一資料對應的實體區塊位址經由一實體轉邏輯表轉換的邏輯區塊位址再經由一邏輯轉實體表轉換的實體位址是否相同,若判斷結果不同則該處理器將該第一顆粒的該第一資料設定為無效。
- 如申請專利範圍第12項所述的儲存控制器,其中若在傳送該第一二平面讀取指令後,該處理器從一主機系統接收到一程式化指令指示將一第五資料程式化到該快閃記憶體且該第五資料的邏輯區塊位址與該第一資料的邏輯區塊位址相同,則該處理器根據該第一二平面程式化指令將該第五資料及該第二資料分別程式化到該第三顆粒的該第一平面及該第二平面。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107108136A TWI679537B (zh) | 2018-03-09 | 2018-03-09 | 資料移動方法及儲存控制器 |
US15/974,707 US10339046B1 (en) | 2018-03-09 | 2018-05-09 | Data moving method and storage controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107108136A TWI679537B (zh) | 2018-03-09 | 2018-03-09 | 資料移動方法及儲存控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201939288A true TW201939288A (zh) | 2019-10-01 |
TWI679537B TWI679537B (zh) | 2019-12-11 |
Family
ID=67069388
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107108136A TWI679537B (zh) | 2018-03-09 | 2018-03-09 | 資料移動方法及儲存控制器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10339046B1 (zh) |
TW (1) | TWI679537B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI717171B (zh) * | 2019-12-26 | 2021-01-21 | 大陸商深圳大心電子科技有限公司 | 資料讀取方法、儲存控制器與儲存裝置 |
TWI756854B (zh) * | 2020-04-27 | 2022-03-01 | 慧榮科技股份有限公司 | 管理資料儲存的方法及裝置以及電腦程式產品 |
TWI760880B (zh) * | 2020-10-07 | 2022-04-11 | 瑞昱半導體股份有限公司 | 與儲存裝置相關的傳輸控制電路、資料傳輸系統及操作資料傳輸系統的方法 |
CN114372009A (zh) * | 2020-10-15 | 2022-04-19 | 瑞昱半导体股份有限公司 | 传输控制电路、数据传输系统及操作数据传输系统的方法 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102395538B1 (ko) * | 2017-04-28 | 2022-05-10 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US11526299B2 (en) * | 2019-12-19 | 2022-12-13 | Micron Technology, Inc. | Elastic buffer for media management of a memory sub-system |
US11144450B2 (en) * | 2019-12-19 | 2021-10-12 | Micron Technology, Inc. | Maintaining sequentiality for media management of a memory sub-system |
CN113900582A (zh) * | 2020-06-22 | 2022-01-07 | 慧荣科技股份有限公司 | 数据处理方法及对应的数据储存装置 |
TWI798726B (zh) * | 2021-06-18 | 2023-04-11 | 慧榮科技股份有限公司 | 快閃記憶體的資料讀取方法及快閃記憶體控制器與電子裝置 |
US11861212B2 (en) * | 2022-02-24 | 2024-01-02 | Silicon Motion, Inc. | Flash memory device, controller, and method capable of performing access operation upon data unit(s) of multiple planes of flash memory device in response one simplified command sequence |
US11935595B2 (en) | 2022-02-24 | 2024-03-19 | Silicon Motion, Inc. | Flash memory device, controller, and method capable of performing access operation upon data unit(s) of multiple planes of flash memory device in response one simplified command sequence |
US11977752B2 (en) | 2022-02-24 | 2024-05-07 | Silicon Motion, Inc. | Flash memory controller and method capable of sending data toggle set-feature signal to enable, disable, or configure data toggle operation of flash memory device |
US11972146B2 (en) | 2022-02-24 | 2024-04-30 | Silicon Motion, Inc. | Flash memory controller and method capable of sending read command or data toggle command to ask for flash memory device return more plane data of different planes |
US11977776B2 (en) | 2022-02-24 | 2024-05-07 | Silicon Motion, Inc. | Flash memory controller and method capable of sending read command or data toggle command to ask for flash memory device return more plane data of different planes |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100918707B1 (ko) * | 2007-03-12 | 2009-09-23 | 삼성전자주식회사 | 플래시 메모리를 기반으로 한 메모리 시스템 |
TWI585778B (zh) * | 2013-11-05 | 2017-06-01 | 威盛電子股份有限公司 | 非揮發性記憶體裝置的操作方法 |
TWI525625B (zh) * | 2013-12-09 | 2016-03-11 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
TWI575374B (zh) * | 2015-08-04 | 2017-03-21 | 群聯電子股份有限公司 | 映射表格更新方法、記憶體儲存裝置及記憶體控制電路單元 |
US9886208B2 (en) * | 2015-09-25 | 2018-02-06 | International Business Machines Corporation | Adaptive assignment of open logical erase blocks to data streams |
KR20170061221A (ko) * | 2015-11-25 | 2017-06-05 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
-
2018
- 2018-03-09 TW TW107108136A patent/TWI679537B/zh active
- 2018-05-09 US US15/974,707 patent/US10339046B1/en active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI717171B (zh) * | 2019-12-26 | 2021-01-21 | 大陸商深圳大心電子科技有限公司 | 資料讀取方法、儲存控制器與儲存裝置 |
TWI756854B (zh) * | 2020-04-27 | 2022-03-01 | 慧榮科技股份有限公司 | 管理資料儲存的方法及裝置以及電腦程式產品 |
TWI760880B (zh) * | 2020-10-07 | 2022-04-11 | 瑞昱半導體股份有限公司 | 與儲存裝置相關的傳輸控制電路、資料傳輸系統及操作資料傳輸系統的方法 |
CN114372009A (zh) * | 2020-10-15 | 2022-04-19 | 瑞昱半导体股份有限公司 | 传输控制电路、数据传输系统及操作数据传输系统的方法 |
Also Published As
Publication number | Publication date |
---|---|
US10339046B1 (en) | 2019-07-02 |
TWI679537B (zh) | 2019-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI679537B (zh) | 資料移動方法及儲存控制器 | |
TWI592800B (zh) | 記憶體管理方法及使用所述方法的儲存控制器 | |
TWI681295B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
TWI592799B (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN109491588B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
TWI587135B (zh) | 資料儲存方法、記憶體儲存裝置及記憶體控制電路單元 | |
TW201911058A (zh) | 資料備份方法、資料恢復方法以及儲存控制器 | |
US20200057725A1 (en) | Data storage device and operating method thereof | |
CN107590080B (zh) | 映射表更新方法、存储器控制电路单元及存储器存储装置 | |
TWI705331B (zh) | 有效資料合併方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI650639B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TW201947402A (zh) | 記憶體管理方法以及儲存控制器 | |
TWI651650B (zh) | 記憶體管理方法及使用所述方法的儲存控制器 | |
TW202201229A (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TW201908957A (zh) | 資料寫入方法、記憶體控制電路單元及記憶體儲存裝置 | |
TW201729208A (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI603335B (zh) | 映射表載入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI760697B (zh) | 記憶體之資料整理方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI711048B (zh) | 快閃記憶體之資料整理方法、控制電路單元與儲存裝置 | |
TWI724427B (zh) | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN110286846B (zh) | 数据移动方法及储存控制器 | |
TWI818370B (zh) | 資料儲存分配方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI823792B (zh) | 映射表更新方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI813362B (zh) | 部分抹除管理方法、記憶體儲存裝置及記憶體控制電路單元 |