CN111610931A - 数据储存装置以及非挥发式存储器控制方法 - Google Patents
数据储存装置以及非挥发式存储器控制方法 Download PDFInfo
- Publication number
- CN111610931A CN111610931A CN201910824203.5A CN201910824203A CN111610931A CN 111610931 A CN111610931 A CN 111610931A CN 201910824203 A CN201910824203 A CN 201910824203A CN 111610931 A CN111610931 A CN 111610931A
- Authority
- CN
- China
- Prior art keywords
- write
- mapping table
- queue
- group mapping
- command
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 115
- 238000013500 data storage Methods 0.000 title claims abstract description 35
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000013507 mapping Methods 0.000 claims abstract description 103
- 230000009977 dual effect Effects 0.000 claims description 3
- 238000012005 ligant binding assay Methods 0.000 description 10
- 239000007787 solid Substances 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000009966 trimming Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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/0877—Cache access modes
- G06F12/0882—Page mode
-
- 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
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- 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/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- 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/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/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/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及高效能的数据储存装置以及非挥发式存储器控制方法。根据一主机交予的一写入指令,一控制器在一暂存存储器上更新一群组映射表。该群组映射表对应该写入指令所指的逻辑群组、且是载自一非挥发式存储器。该群组映射表尚未载入该暂存存储器时,该控制器令该写入指令伫列于一等待伫列,以免拖累该数据储存装置的效能。
Description
技术领域
本发明有关于数据储存装置,特别有关于映射资讯的维护。
背景技术
非挥发式存储器有多种形式─例如,快闪存储器(flash memory)、磁阻式随机存取存储器(magnetoresistive RAM)、铁电随机存取存储器(ferroelectric RAM)、电阻式随机存取存储器(resistive RAM)、自旋转移力矩随机存取存储器(Spin Transfer Torque-RAM,STT-RAM)…等,用于长时间数据保存。
非挥发式存储器有其特殊的储存特性,其操作以及管理需特殊设计。
发明内容
根据本发明一种实施方式实现的一数据储存装置包括一非挥发式存储器、一控制器、一暂存存储器、以及一等待伫列。根据一主机交予的一写入指令,该控制器在该暂存存储器上更新一群组映射表。该群组映射表对应该写入指令所指的逻辑群组、且是载自该非挥发式存储器。该群组映射表尚未载入该暂存存储器时,该控制器令该写入指令伫列于这些待伫列,以免拖累该数据储存装置的效能。
一种实施方式中,该控制器是自一指令伫列取得该写入指令。该写入指令是由该主机伫列至该指令伫列。
将该群组映射表完全载入该暂存存储器之前,该控制器可将该写入指令指示的写入数据快取至该暂存存储器,并回复一完成元件填入一完成伫列。根据该完成伫列上的该完成元件,该主机将该指令伫列所伫列的一接续指令交予该控制器。
将该群组映射表载入该暂存存储器之后,该控制器可自这些待伫列取得该写入指令,据以将快取于该暂存存储器的上述写入数据程式化至该非挥发式存储器。
自这些待伫列取得该写入指令之前,该控制器可执行该接续指令。
一种实施方式中,该控制器为双核心。将该群组映射表载入该暂存存储器时,该控制器执行该接续指令。
将该群组映射表完全载入该暂存存储器之前,该控制器可清理该暂存存储器内容至该非挥发式存储器,以腾出快取该写入指令所指示的写入数据的空间。该控制器快取该写入指令所指示的写入数据后,该控制器回复一完成元件填入一完成伫列;且根据该完成伫列上的该完成元件,该主机将该指令伫列所伫列的一接续指令交予该控制器。将该群组映射表载入该暂存存储器之后,该控制器自这些待伫列取得该写入指令,据以将快取于该暂存存储器的上述写入数据程式化至该非挥发式存储器;且自这些待伫列取得该写入指令之前,该控制器执行该接续指令。
以上控制器对非挥发式存储器的操作也可以由其他结构实现。本发明更可以前述概念实现非挥发式存储器的控制方法,包括:根据一主机交予的一写入指令,在一暂存存储器上更新一群组映射表,该群组映射表对应该写入指令所指的逻辑群组、且是载自一非挥发式存储器;且在该群组映射表尚未载入该暂存存储器时,令该写入指令伫列于一等待伫列。
下文特举实施例,并配合附图,详细说明本发明内容。
附图说明
图1图解一区块BLK的结构;
图2图解群组映射表L2P_G#的定义;
图3为方块图,图解根据本发明一种实施方式所实施的一数据储存装置300;且
图4A、图4B、图4C为流程图,根据本发明一种实施方式图解SSD控制器304应付主机308一写入指令的细节。
符号说明
300~数据储存装置;
302~快闪存储器;
304~固态硬碟(SSD)控制器;
306~暂存存储器;
308~主机;
310~系统资讯区块池;
312~备用区块池;
314~主动区块;
316~数据区块池;
318~主机端存储器;
320~指令伫列;
322~完成伫列;
324~写入数据;
326~数据快取区;
328~群组映射表暂存区;
330~等待伫列;
BLK~区块;
L2P~逻辑地址-物理空间映射表;
L2P_G0、L2P_G1、L2P_G2~群组映射表、且
S402…S450~步骤。
具体实施方式
以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本发明内容。实际发明范围应依照权利要求书来界定。
非挥发式存储器可以是快闪存储器(Flash Memory)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式存储器(Resistive RAM,RRAM)、自旋转移力矩随机存取存储器(Spin Transfer Torque-RAM,STT-RAM)…等,提供长时间数据保存的储存媒体。以下特别以快闪存储器为例进行讨论。
现今数据储存装置常以快闪存储器为储存媒体,用以储存来自于主机的使用者数据。数据储存装置的种类众多,包括记忆卡(Memory Card)、通用串行总线闪存装置(USBFlash Device)、固态硬碟(SSD)…等产品。有一种应用是采多晶片封装、将快闪存储器与其控制器包装在一起─称为嵌入式快闪存储器模组(如eMMC)。
以快闪存储器为储存媒体的数据储存装置可应用于多种电子装置中。所述电子装置包括智慧型手机、穿戴装置、平板电脑、虚拟实境设备…等。电子装置的运算模块可视为主机(Host),操作所使用的数据储存装置,以存取快闪存储器所储存的数据。
以快闪存储器为储存媒体的数据储存装置也可用于建构数据中心。例如,伺服器可操作固态硬碟(SSD)阵列形成数据中心。伺服器即可视为主机,操作所连结的固态硬碟,以存取其中快闪存储器。
快闪存储器的物理空间是划分为多个区块(Blocks)配置使用。图1图解区块BLK的结构,其中包括多个页面(Pages),例如,页面0…页面255。各页面包括多个区段(Sectors),例如32个区段,每一区段可储存512B长度的使用者数据。在4KB数据管理模式下,可将8个区段视为一个数据单元。16KB长度的页面可由四个数据单元所组成。一种实施方式中,数据单元是根据页面编号,由低至高编号(例如,页面0至页面255)配置来储存使用者数据。一种实施方式中,数据储存装置采用多通道技术,是以跨通道的超级区块(Super Block)、超级页面(Super Page)管理快闪存储器的储存空间,可提升数据储存装置的数据吞吐量。
快闪存储器有其特殊的储存特性。旧数据更新并非同空间复写。新版的数据需被写入闲置空间,而旧空间内容将被标为无效。区块中可能零星留存有效数据,可以执行垃圾回收(Garbage Collection)程序而将有效数据整并到另一区块。当区块中不存在任何有效数据时,此区块在被抹除(Erase)后可以再利用。快闪存储器的物理空间是动态地被配置使用。相较于主机端是以逻辑地址(例如,逻辑区块地址LBA或全域主机页编号GHP…等)区别数据,各逻辑地址究竟对应至快闪存储器哪一个物理地址,例如,由区块编号、页面编号、偏移量等资讯来表示,需以逻辑-物理地址(Logical-to-Physical,L2P)映射表管理。
快闪存储器多种操作都需参考、或更改L2P映射表所记录的映射资讯。读取快闪存储器中的数据(使用者数据)需要参考L2P映射表所记录的映射资讯;写入数据至快闪存储器则需更新L2P映射表所记录的映射资讯。除了适应主机(Host)的读取、写入要求,快闪存储器可能还有垃圾回收程序以外其他操作,例如:空间修整(Trimming)、区块数据搬移(Block Data Transfer)程序…等。以上操作都涉及L2P映射表所记录的映射资讯的参考或更新。适应地,数据储存装置中通常会配置暂存存储器(如DRAM)以加速L2P映射表的存取。
然而,随着快闪存储器尺寸提升,L2P映射表的维护变成负担。一种实施方式中,4KB大小的数据单元的物理地址以4B大小的数值所表示,则1TB储存空间需要1GB大小的空间来储存L2P映射表。由于L2P映射表的尺寸庞大,因此,可将逻辑地址分为多个逻辑地址群组G#(#为编号),据以将L2P映射表划分为多个群组映射表L2P_G#。被呼叫到的群组映射表L2P_G#才载至DRAM以供参考或更新。相较于逻辑地址-物理空间L2P映射表,群组映射表L2P_G#的存取会容易许多。
图2图解群组映射表L2P_G#的定义。一种实施方式是以定量的逻辑地址切割该逻辑地址-物理空间L2P映射表,形成对应不同逻辑地址群组G#的多个群组映射表L2P_G#。
考量到DRAM的配置成本,数据储存装置可能仅配置小容量的DRAM。在此条件下,如何有效率地管理群组映射表L2G_G#的运作,包括读取、暂存、参考或更新,成为一门重要的技术课题。
图3为方块图,图解根据本发明一种实施方式所实施的数据储存装置300,其中包括快闪存储器302、固态硬碟(SSD)控制器304以及暂存存储器306。主机308透过SSD控制器304来存取快闪存储器302。数据储存装置300内部也可发动快闪存储器302的最佳化操作;例如,SSD控制器304可对快闪存储器302进行垃圾回收程序、空间修整、区块数据搬移程序…等。SSD控制器304进行运算时是以暂存存储器306暂存数据。暂存存储器306可为DRAM或SRAM,暂存存储器306较佳置于SSD控制器304的外部。
快闪存储器302具有系统资讯区块池310,例如:储存群组映射表L2P_G#(全数)以及系统参数表。备用区块池312供应主动区块314,用于写入来自于主机308的写入数据。主动区块314关闭后(例如,写入区块结尾(End Of Block,简称EOB)资讯后),将视为数据区块,属于数据区块池316。数据区块中不存在任何有效数据时,则将此数据区块作为备用区块,并属于备用区块池312。主动区块314也可以作为垃圾回收程序或区块数据搬移程序的目的地。
数据储存装置300并非将来自主机308的写入数据(使用者数据)直接写入主动区块314,而是先快取至暂存存储器306,同一时间,取得写入数据所相应的群组映射表L2P_G#。之后,将写入数据写入至主动区块314,并且更新群组映射表L2P_G#的映射关系,以下详述之。
主机308在主机端存储器308规划有指令伫列(Submission Queue)320、完成伫列(Completion Queue)322,并提供空间暂存写入数据324。数据储存装置300的SSD控制器304在暂存存储器306中规划数据快取区326以及群组映射表暂存区328,群组映射表暂存区328例如可暂存16个群组映射表L2P_G#。特别是,本发明数据储存装置300更规划等待伫列330。等待伫列330可以规划在暂存存储器306或SSD控制器304内部的静态随机存取存储器(SRAM)。
图4A、图4B、图4C为根据本发明一种实施方式写入指令执行方法的流程图。步骤S402,SSD控制器304接收来自主机308的写入指令,其中,写入指令指示写入数据324以及写入数据324的LBA。当主机308欲输出写入指令至数据储存装置300时,主机308将写入指令伫列于指令伫列320,写入指令例如是写入LBA#1016~#1023的使用者数据。之后,数据储存装置300的SSD控制器304自指令伫列320取得写入指令,完成写入指令的接收。
步骤S404,SSD控制器304判断写入数据324所对应的目标群组映射表L2P_G#是否已暂存至群组映射表暂存区328,若判断为是则执行步骤S406,若判断为否则执行步骤S420(图4B)。由于LBA#1016~#1023的映射关系乃记录在群组映射表L2P_G#0,因此,SSD控制器304判断目标群组映射表L2P_G#(即群组映射表L2P_G#0)是否已暂存至群组映射表暂存区328中,其中,SSD控制器304可依据管理群组映射表暂存区328内容的寻找表(LookupTable)或链结串列来加速判断的过程。
步骤S406,SSD控制器304判断数据快取区326是否有足够的数据快取空间以快取写入数据324,若判断为是则执行步骤S408,若判断为否则执行步骤S414。LBA#1016~#1023的每一使用者数据的大小为512B,快取这些使用者数据共计需要4KB的数据快取空间,SSD控制器304判断数据快取区326是否有大于等于4KB大小的数据快取空间。
步骤S408,SSD控制器304将写入数据324快取至数据快取区326。SSD控制器304自主机端存储器318下载LBA#1016~#1023的使用者数据(324),并将这些使用者数据(324)快取至数据快取区326。另外,SSD控制器304可在快取完成时,填入完成元件(CompleteElement)至完成伫列322,等同完成写入指令的执行,以增加写入指令的执行效率。在检查完成元件的内容后,主机308可再输出其他写入指令至SSD控制器304。
步骤S410,SSD控制器304将快取至数据快取区326的写入数据324编程至快闪存储器302。SSD控制器304将数据快取区326中LBA#1016~#1023的使用者数据编程至主动区块314。然而,为了提高数据编程的效率,SSD控制器304亦可判断快取的使用者数据的数量是否到达编程阀值,例如:32笔LBA的使用者数据,如果快取的使用者数据的数量未达到编程阀值,则SSD控制器304可继续累积写入数据;例如,重新步骤S402。
步骤S412,SSD控制器304更新目标群组映射表L2P_G#中写入数据324的映射资讯。SSD控制器304以LBA#1016~#1023的使用者数据在主动区块314的物理地址来更新群组映射表L2P_G#0的映射资讯。如果完成元件未在步骤S408填入至完成伫列322,SSD控制器304可在步骤S410或步骤S412完成之后,再填入完成元件至完成伫列322。群组映射表暂存区328所储存的群组映射表L2P_G#需写入系统资讯区块池310,非挥发式储存。
步骤S414,SSD控制器304将数据快取区326的快取数据编程至快闪存储器302。数据快取区326的快取数据为尚未编程至快闪存储器302的数据,当数据快取区326的数据快取空间不够时,SSD控制器304将尚未编程的数据编程至快闪存储器302以增加数据快取空间。
在上述中,如果步骤S404的判断结果为否时,SSD控制器304进入图4B流程。
步骤S420,SSD控制器304将写入指令推入等待伫列330。由于群组映射表L2P_G#0(即目标群组映射表L2P_G#)并未暂存至群组映射表暂存区328,则SSD控制器304将写入指令推入等待伫列330,并准备执行写入指令所需的群组映射表L2P_G#0以及LBA#1016~#1023的使用者数据。
一种实施方式中,SSD控制器304为双CPU架构,第一个CPU主要负责写入指令的执行,第二个CPU主要负责快闪存储器302的操作。由于群组映射表L2P_G#0并未暂存至群组映射表暂存区328,这表示SSD控制器304需要从快闪存储器302中读取群组映射表L2P_G#0,因此,由第二个CPU执行步骤S422,负责群组映射表L2P_G#0的读取。另外,由于第二个CPU会取得群组映射表L2P_G#0,因此,第一个CPU可以继续执行步骤S424、步骤S402、或其他程序。换句话说,SSD控制器304无需暂停以等待群组映射表L2P_G#0的读取,SSD控制器304可继续执行后续的步骤S424、下一个写入指令或其他程序,如此一来,数据储存装置300效能可有效地提升。
步骤S422,SSD控制器304读取目标群组映射表L2P_G#。SSD控制器304(第二个CPU)可依据群组-物理地址(Group-Physical Address,G2F)映射表以取得群组映射表L2P_G#0在快闪存储器302中的物理地址,接着,读取此物理地址以取得群组映射表L2P_G#0,并将群组映射表L2P_G#0上传至群组映射表暂存区328。
步骤S424,如同步骤S406,SSD控制器304判断数据快取区326是否有足够的数据快取空间以快取写入数据324,若判断为是则执行步骤S426,若判断为否则执行步骤S442(图4C)。
步骤S426,如同步骤S408,SSD控制器304将写入数据324快取至数据快取区326。SSD控制器304此时可填入完成元件至完成伫列322,提早告知主机308可提供下一个指令。在检查完成元件的内容后,主机308可再输出其他写入指令至SSD控制器304。或着,SSD控制器304也可在更后续程序填入完成元件至完成伫列322。只要使主机308得以早点发现该完成状态,使接续指令得以提早被执行,即落入本发明欲保护范围。
步骤S428,SSD控制器304判断写入数据324所对应的目标群组映射表L2P_G#是否完成载入群组映射表暂存区328,若判断为是则执行步骤S430,若判断为否则持续监控。如果群组映射表L2P_G#0尚未完全上传至群组映射表暂存区328,SSD控制器304的第一CPU仍可应付主机308要求的其他程序。
步骤S430,SSD控制器304将快取至数据快取区326的写入数据324编程至快闪存储器302。
步骤S432,如同步骤S412,SSD控制器304更新目标群组映射表L2P_G#中写入数据324的映射资讯。
在接续指令插入进行的同时,等待伫列330中的写入指令确实完成。
在上述中,如果步骤S424的判断结果为否时,SSD控制器304进入图4C流程。
步骤S442腾出数据快取区304,如同步骤S414,SSD控制器304将数据快取区326的快取数据编程(清理)至快闪存储器302。
步骤S444,如同步骤S408,SSD控制器304将写入数据324快取至数据快取区326。SSD控制器304此时可填入完成元件至完成伫列322,提早告知主机308可提供下一个指令。在检查完成元件的内容后,主机308可再输出其他写入指令至SSD控制器304。或着,SSD控制器304也可在更后续程序填入完成元件至完成伫列322。只要使主机308得以早点发现该完成状态,使接续指令得以提早被执行,即落入本发明欲保护范围。
步骤S446,SSD控制器304判断写入数据324所对应的目标群组映射表L2P_G#是否完成载入群组映射表暂存区328,若判断为是则执行步骤S448,若判断为否则重新执行步骤S446。如果群组映射表L2P_G#0尚未完全上传至群组映射表暂存区328,SSD控制器304的第一CPU仍可应付主机308要求的其他程序。
步骤S448,SSD控制器304将快取至数据快取区326的写入数据324编程至快闪存储器302。
步骤S450,如同步骤S412,SSD控制器304更新目标群组映射表L2P_G#中写入数据324的映射资讯。
在接续指令插入进行的同时,等待伫列330中的写入指令确实完成。
以上SSD控制器304对快闪存储器302的操作设计也可以由其他结构实现。凡是利用等待伫列330的技术,都属于本发明欲保护范围。本发明更可以前述概念实现非挥发式存储器的控制方法。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当由权利要求书界定为准。
Claims (18)
1.一种数据储存装置,包括:
一非挥发式存储器;
一控制器、与一暂存存储器,其中,根据一主机交予的一写入指令,该控制器在该暂存存储器上更新一群组映射表,该群组映射表对应该写入指令所指的逻辑群组、且是载自该非挥发式存储器;以及
一等待伫列,
其中,该群组映射表尚未载入该暂存存储器时,该控制器令该写入指令伫列于这些待伫列。
2.如权利要求1所述的数据储存装置,其特征在于:
该控制器是自一指令伫列取得该写入指令;且
该写入指令是由该主机伫列至该指令伫列。
3.如权利要求2所述的数据储存装置,其特征在于:
将该群组映射表完全载入该暂存存储器之前,该控制器将该写入指令指示的写入数据快取至该暂存存储器,并回复一完成元件填入一完成伫列;且
根据该完成伫列上的该完成元件,该主机将该指令伫列所伫列的一接续指令交予该控制器。
4.如权利要求3所述的数据储存装置,其特征在于:
将该群组映射表载入该暂存存储器之后,该控制器自这些待伫列取得该写入指令,据以将快取于该暂存存储器的上述写入数据程式化至该非挥发式存储器。
5.如权利要求4所述的数据储存装置,其特征在于:
自这些待伫列取得该写入指令之前,该控制器执行该接续指令。
6.如权利要求5所述的数据储存装置,其特征在于:
该控制器为双核心;且
将该群组映射表载入该暂存存储器时,该控制器执行该接续指令。
7.如权利要求2所述的数据储存装置,其特征在于:
将该群组映射表完全载入该暂存存储器之前,该控制器清理该暂存存储器内容至该非挥发式存储器,以腾出快取该写入指令所指示的写入数据的空间。
8.如权利要求7所述的数据储存装置,其特征在于:
快取该写入指令所指示的写入数据后,该控制器回复一完成元件填入一完成伫列;且
根据该完成伫列上的该完成元件,该主机将该指令伫列所伫列的一接续指令交予该控制器。
9.如权利要求8所述的数据储存装置,其特征在于:
将该群组映射表载入该暂存存储器之后,该控制器自这些待伫列取得该写入指令,据以将快取于该暂存存储器的上述写入数据程式化至该非挥发式存储器;且
自这些待伫列取得该写入指令之前,该控制器执行该接续指令。
10.一种非挥发式存储器控制方法,包括:
根据一主机交予的一写入指令,在一暂存存储器上更新一群组映射表,该群组映射表对应该写入指令所指的逻辑群组、且是载自一非挥发式存储器;且
在该群组映射表尚未载入该暂存存储器时,令该写入指令伫列于一等待伫列。
11.如权利要求10所述的非挥发式存储器控制方法,其特征在于,还包括:
自一指令伫列取得该写入指令,
其中,该写入指令是由该主机伫列至该指令伫列。
12.如权利要求11所述的非挥发式存储器控制方法,其特征在于,还包括:
将该群组映射表完全载入该暂存存储器之前,将该写入指令指示的写入数据快取至该暂存存储器,并回复一完成元件填入一完成伫列,
其中,根据该完成伫列上的该完成元件,该主机发出该指令伫列所伫列的一接续指令。
13.如权利要求12所述的非挥发式存储器控制方法,其特征在于,还包括:
将该群组映射表载入该暂存存储器之后,自这些待伫列取得该写入指令,据以将快取于该暂存存储器的上述写入数据程式化至该非挥发式存储器。
14.如权利要求13所述的非挥发式存储器控制方法,其特征在于,还包括:
自这些待伫列取得该写入指令之前,执行该接续指令。
15.如权利要求14所述的非挥发式存储器控制方法,其特征在于,还包括:
以双核心硬体,在载入该群组映射表至该暂存存储器时,执行该接续指令。
16.如权利要求11所述的非挥发式存储器控制方法,其特征在于,还包括:
将该群组映射表完全载入该暂存存储器之前,清理该暂存存储器内容至该非挥发式存储器,以腾出快取该写入指令所指示之写入数据的空间。
17.如权利要求16所述的非挥发式存储器控制方法,其特征在于,还包括:
快取该写入指令所指示的写入数据后,回复一完成元件填入一完成伫列,
其中,根据该完成伫列上的该完成元件,该主机发出该指令伫列所伫列的一接续指令。
18.如权利要求17所述的非挥发式存储器控制方法,其特征在于,还包括:
将该群组映射表载入该暂存存储器之后,自这些待伫列取得该写入指令,据以将快取于该暂存存储器的上述写入数据程式化至该非挥发式存储器;且
自这些待伫列取得该写入指令之前,执行该接续指令。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962810422P | 2019-02-26 | 2019-02-26 | |
US62/810,422 | 2019-02-26 | ||
TW108128179 | 2019-08-08 | ||
TW108128179A TWI726381B (zh) | 2019-02-26 | 2019-08-08 | 資料儲存裝置以及非揮發式記憶體控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111610931A true CN111610931A (zh) | 2020-09-01 |
CN111610931B CN111610931B (zh) | 2023-05-02 |
Family
ID=72141667
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910824203.5A Active CN111610931B (zh) | 2019-02-26 | 2019-09-02 | 数据储存装置以及非挥发式存储器控制方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11126558B2 (zh) |
CN (1) | CN111610931B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115878051A (zh) * | 2023-03-03 | 2023-03-31 | 浪潮电子信息产业股份有限公司 | 一种数据同步方法、数据同步系统、存储介质和电子设备 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778911B (zh) * | 2021-08-04 | 2023-11-21 | 成都佰维存储科技有限公司 | L2p数据缓存方法、装置、可读存储介质及电子设备 |
KR20240053298A (ko) * | 2022-10-17 | 2024-04-24 | 에스케이하이닉스 주식회사 | 호스트와 메모리 시스템에서 맵데이터를 관리하는 장치 및 방법 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101667158A (zh) * | 2009-09-15 | 2010-03-10 | 威盛电子股份有限公司 | 串流上下文的高速缓存系统 |
CN101719103A (zh) * | 2009-11-25 | 2010-06-02 | 成都市华为赛门铁克科技有限公司 | 基于存储设备的信息处理方法以及存储设备 |
TWI521343B (zh) * | 2011-08-01 | 2016-02-11 | Toshiba Kk | An information processing device, a semiconductor memory device, and a semiconductor memory device |
US20160124649A1 (en) * | 2014-10-30 | 2016-05-05 | ScaleFlux | METHOD TO REDUCE FLASH MEMORY IOs WITH HOST MAINTAINED ADDRESS MAPPING TABLE |
US20170083451A1 (en) * | 2015-09-23 | 2017-03-23 | Phison Electronics Corp. | Buffer memory management method, memory control circuit unit and memory storage device |
TW201810017A (zh) * | 2016-04-21 | 2018-03-16 | 慧榮科技股份有限公司 | 資料儲存裝置、其控制單元及其任務排序方法 |
CN108121664A (zh) * | 2016-11-28 | 2018-06-05 | 慧荣科技股份有限公司 | 数据储存装置以及其操作方法 |
US20180276114A1 (en) * | 2017-03-22 | 2018-09-27 | Toshiba Memory Corporation | Memory controller |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5319778A (en) | 1991-07-16 | 1994-06-07 | International Business Machines Corporation | System for manipulating elements in linked lists sharing one or more common elements using head nodes containing common offsets for pointers of the linked lists |
US20030204702A1 (en) | 2002-04-30 | 2003-10-30 | Adc Dsl Systems, Inc. | Flexible memory architecture for an embedded processor |
US8112574B2 (en) | 2004-02-26 | 2012-02-07 | Super Talent Electronics, Inc. | Swappable sets of partial-mapping tables in a flash-memory system with a command queue for combining flash writes |
JP4420351B2 (ja) | 2005-09-30 | 2010-02-24 | 富士通株式会社 | 階層ストレージシステム、制御方法及びプログラム |
US8745315B2 (en) | 2006-11-06 | 2014-06-03 | Rambus Inc. | Memory Systems and methods supporting volatile and wear-leveled nonvolatile physical memory |
US8539150B2 (en) | 2010-12-27 | 2013-09-17 | Hitachi, Ltd. | Storage system and management method of control information using a cache memory with multiple cache partitions |
US9128845B2 (en) | 2012-07-30 | 2015-09-08 | Hewlett-Packard Development Company, L.P. | Dynamically partition a volatile memory for a cache and a memory partition |
US9690695B2 (en) | 2012-09-20 | 2017-06-27 | Silicon Motion, Inc. | Data storage device and flash memory control method thereof |
US20140181415A1 (en) | 2012-12-21 | 2014-06-26 | Advanced Micro Devices, Inc. | Prefetching functionality on a logic die stacked with memory |
US9256384B2 (en) | 2013-02-04 | 2016-02-09 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and system for reducing write latency in a data storage system by using a command-push model |
TWI514140B (zh) * | 2013-02-05 | 2015-12-21 | Via Tech Inc | 非揮發性記憶裝置及其操作方法 |
US20150339058A1 (en) | 2013-03-26 | 2015-11-26 | Hitachi, Ltd. | Storage system and control method |
US9916248B2 (en) | 2013-12-12 | 2018-03-13 | Hitachi, Ltd. | Storage device and method for controlling storage device with compressed and uncompressed volumes and storing compressed data in cache |
US9383927B2 (en) | 2014-05-28 | 2016-07-05 | SandDisk Technologies LLC | Method and system for creating a mapping table cache from an interleaved subset of contiguous mapping data for a storage device |
US9460025B1 (en) | 2014-06-12 | 2016-10-04 | Emc Corporation | Maintaining a separate LRU linked list for each thread for multi-threaded access |
US9529731B1 (en) | 2014-06-12 | 2016-12-27 | Emc Corporation | Contention-free approximate LRU for multi-threaded access |
KR20160118836A (ko) | 2015-04-03 | 2016-10-12 | 에스케이하이닉스 주식회사 | 호스트 커맨드 큐를 포함하는 메모리 컨트롤러 및 그것의 동작 방법 |
TWI659307B (zh) | 2017-01-06 | 2019-05-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及快閃記憶體控制方法 |
US10628326B2 (en) | 2017-08-21 | 2020-04-21 | Micron Technology, Inc. | Logical to physical mapping |
US10810123B1 (en) | 2017-10-25 | 2020-10-20 | EMC IP Holding Company, LLC | Flush strategy for using DRAM as cache media system and method |
KR20190090635A (ko) | 2018-01-25 | 2019-08-02 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
TWI660346B (zh) | 2018-09-07 | 2019-05-21 | 大陸商深圳大心電子科技有限公司 | 記憶體管理方法以及儲存控制器 |
WO2020164064A1 (en) | 2019-02-14 | 2020-08-20 | Micron Technology, Inc. | Partial caching of media address mapping data |
US10997082B2 (en) | 2019-06-25 | 2021-05-04 | Intel Corporation | Memory system, computing system, and methods thereof for cache invalidation with dummy address space |
-
2019
- 2019-09-02 CN CN201910824203.5A patent/CN111610931B/zh active Active
- 2019-12-27 US US16/728,294 patent/US11126558B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101667158A (zh) * | 2009-09-15 | 2010-03-10 | 威盛电子股份有限公司 | 串流上下文的高速缓存系统 |
CN101719103A (zh) * | 2009-11-25 | 2010-06-02 | 成都市华为赛门铁克科技有限公司 | 基于存储设备的信息处理方法以及存储设备 |
TWI521343B (zh) * | 2011-08-01 | 2016-02-11 | Toshiba Kk | An information processing device, a semiconductor memory device, and a semiconductor memory device |
US20160124649A1 (en) * | 2014-10-30 | 2016-05-05 | ScaleFlux | METHOD TO REDUCE FLASH MEMORY IOs WITH HOST MAINTAINED ADDRESS MAPPING TABLE |
US20170083451A1 (en) * | 2015-09-23 | 2017-03-23 | Phison Electronics Corp. | Buffer memory management method, memory control circuit unit and memory storage device |
TW201810017A (zh) * | 2016-04-21 | 2018-03-16 | 慧榮科技股份有限公司 | 資料儲存裝置、其控制單元及其任務排序方法 |
CN108121664A (zh) * | 2016-11-28 | 2018-06-05 | 慧荣科技股份有限公司 | 数据储存装置以及其操作方法 |
US20180276114A1 (en) * | 2017-03-22 | 2018-09-27 | Toshiba Memory Corporation | Memory controller |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115878051A (zh) * | 2023-03-03 | 2023-03-31 | 浪潮电子信息产业股份有限公司 | 一种数据同步方法、数据同步系统、存储介质和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US11126558B2 (en) | 2021-09-21 |
CN111610931B (zh) | 2023-05-02 |
US20200272570A1 (en) | 2020-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109240938B (zh) | 存储系统以及控制非易失性存储器的控制方法 | |
US10496334B2 (en) | Solid state drive using two-level indirection architecture | |
CN110955384B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
US10915475B2 (en) | Methods and apparatus for variable size logical page management based on hot and cold data | |
JP6016137B2 (ja) | ソリッドステートドライブおよびその動作方法 | |
KR101790913B1 (ko) | 플래시 메모리에 저장된 데이터의 추론적 프리페칭 | |
US10545876B2 (en) | Control unit for data storage system and method for updating logical-to-physical mapping table | |
CN111610931B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
US9507523B1 (en) | Methods, devices and systems for variable size logical page management in a solid state drive | |
CN111610930B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
TWI718710B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
EP4170506A1 (en) | Systems, methods, and devices for ordered access of data in block modified memory | |
KR100963009B1 (ko) | 파일 관리 시스템 및 방법 | |
TWI726381B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
CN111610929B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
US11269534B2 (en) | Data storage device and non-volatile memory control method | |
TWI705328B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
KR20100055374A (ko) | 파일 관리 시스템 및 방법 | |
CN117369715A (zh) | 基于存储设备中的引用更新使用回收单元的系统、方法和设备 | |
KR20240006427A (ko) | 스토리지 장치 내의 참조 업데이트에 기반한 리클레임 유닛을 사용하기 위한 시스템들, 방법들, 및 장치들 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |