CN110781093A - 能够改变映射高速缓存缓冲器大小的数据存储设备 - Google Patents
能够改变映射高速缓存缓冲器大小的数据存储设备 Download PDFInfo
- Publication number
- CN110781093A CN110781093A CN201811565349.4A CN201811565349A CN110781093A CN 110781093 A CN110781093 A CN 110781093A CN 201811565349 A CN201811565349 A CN 201811565349A CN 110781093 A CN110781093 A CN 110781093A
- Authority
- CN
- China
- Prior art keywords
- module
- mapping
- cache
- map
- allocation
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/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/0871—Allocation or management of cache space
-
- 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/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
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage 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/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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1056—Simplification
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- 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/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
-
- 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/46—Caching storage objects of specific type in disk cache
- G06F2212/466—Metadata, control data
-
- 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/60—Details of cache memory
- G06F2212/604—Details relating to cache allocation
-
- 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
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)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种数据存储设备,该数据存储设备包括:非易失性存储器装置;处理器,控制非易失性存储器装置的操作;以及存储器,加载有包括模块的闪存转换层(FTL),存储器包括高速缓存至少一个映射段的映射高速缓存缓冲器。模块包括:映射模块,管理与映射高速缓存缓冲器相关的映射高速缓存数据结构;以及映射高速缓存分配模块,从除映射模块之外的模块接收用于在映射高速缓存缓冲器中分配具有所需大小的区域的分配请求,将分配请求提供至映射模块,从映射模块接收可分配大小信息,并且将可分配大小信息提供至模块。
Description
相关申请的交叉引用
本申请要求2018年7月31日提交的申请号为10-2018-0089226的韩国申请的优先权,该韩国申请通过引用整体并入本文。
技术领域
各个实施例总体涉及一种半导体设备,更特别地,涉及一种能够改变映射高速缓存缓冲器的大小的数据存储设备。
背景技术
近年来,计算机环境范例已经转变成可以随时随地使用计算机系统的普适计算。因此,诸如移动电话、数码相机以及膝上型计算机的便携式电子设备的使用已经迅速增加。通常,便携式电子设备使用采用存储器装置的数据存储设备。这种存储设备可以用于存储在相关联的便携式电子设备中使用的数据。
使用存储器装置的数据存储设备不具有机械驱动单元,表现出优良的稳定性和耐用性,并且具有高信息访问速度以及低功耗。这种数据存储设备可以包括通用串行总线(USB)存储器装置、具有各种接口的存储卡、通用闪存(USF)装置、固态硬盘(SSD)等。
发明内容
实施例提供一种能够改变映射高速缓存缓冲器的大小的数据存储设备。
在本公开的实施例中,数据存储设备可以包括:非易失性存储器装置;处理器,被配置成控制非易失性存储器装置的操作;以及存储器,加载有包括模块的闪存转换层(FTL),存储器包括被配置成高速缓存至少一个映射段的映射高速缓存缓冲器。模块包括:映射模块,被配置成管理与映射高速缓存缓冲器相关的映射高速缓存数据结构;以及映射高速缓存分配模块,被配置成从除映射模块之外的模块接收用于在映射高速缓存缓冲器中分配具有所需大小的区域的分配请求,将分配请求提供至映射模块,从映射模块接收可分配大小信息,并且将可分配大小信息提供至模块。
在本公开的实施例中,数据存储设备可以包括:非易失性存储器装置;处理器,被配置成控制非易失性存储器装置的操作;以及存储器,加载有闪存转换层(FTL)并且包括映射高速缓存缓冲器,该映射高速缓存缓冲器高速缓存与非易失性存储器装置的操作相关的至少一个映射段。闪存转换层包括:操作模块,适于控制非易失性存储器装置的操作;映射模块,适于管理与映射高速缓存缓冲器相关的映射高速缓存数据结构;以及映射高速缓存分配模块,适于从操作模块接收对映射高速缓存缓冲器中待使用的大小的请求,将请求提供至映射模块,从映射模块接收可分配大小信息,并且将可分配大小信息提供至操作模块。映射模块响应于请求确定映射高速缓存缓冲器的可分配大小,并将指示所确定的可分配大小的可分配大小信息传输至映射高速缓存分配模块。
根据实施例,其它模块没有必要直接访问并校正通过映射模块管理的与映射相关的数据结构,从而通过消除其它模块和映射模块之间的依赖性可以降低发生操作错误的风险。
另外,除映射模块之外的其它模块可以利用向映射模块请求对映射高速缓存缓冲器内的区域的分配并使用从映射模块提供的可分配区域而不访问并校正与映射相关的数据结构的简单结构来实施,从而可以降低维护成本。
下面描述这些以及其它特征、方面和实施例。
附图说明
从以下结合附图的详细描述中,将更清楚地理解本公开的主题的上述和其它方面、特征及优点,其中:
图1是示出根据本公开的实施例的数据存储设备的框图;
图2是示出数据存储设备的存储器,诸如图1的数据存储设备的存储器的示图;
图3是示出存储器的闪存转换层(FTL),诸如图2的存储器的闪存转换层(FTL)的示图;
图4A是示出与映射高速缓存缓冲器相关的数据结构,诸如图2的与映射高速缓存缓冲器相关的数据结构的示图;
图4B是示出映射高速缓存列表,诸如图4A的映射高速缓存列表的示图;
图4C是示出映射高速缓存索引(MSI),诸如图4B的映射高速缓存索引(MSI)的示图;
图4D是示出映射高速缓存指针,诸如图4A的映射高速缓存指针的示图;
图5A是示出映射高速缓存缓冲器,诸如图2的映射高速缓存缓冲器的示图;
图5B是示出根据本公开的实施例的映射高速缓存指针被设置为指示映射段待被高速缓存在映射高速缓存缓冲器中的位置信息的值的示例的示图;
图6是示出根据本公开的实施例的映射高速缓存缓冲器分配进程的示图;
图7是示出包括根据本公开的实施例的固态硬盘(SSD)的数据处理系统的示图;
图8是示出控制器,诸如图7中所示的控制器的示图;
图9是示出包括根据本公开的实施例的数据存储设备的数据处理系统的示图;
图10是示出包括根据本公开的实施例的数据存储设备的数据处理系统的示图;
图11是示出包括根据本公开的实施例的数据存储设备的网络系统的示图;以及
图12是示出根据本公开的实施例的数据存储设备中包括的非易失性存储器装置的框图。
具体实施方式
将参照附图更详细地描述本发明的各个实施例。附图是各个实施例和中间结构的示意图。因此,将预期由例如制造技术和/或公差导致的图示的配置和形状的变化。因此,所描述的实施例不应被解释为限于本文示出的特定配置和形状,而是可以包括不脱离如所附权利要求中限定的本发明的精神和范围的配置和形状的偏差。
本文参照本发明的实施例的图示描述了本发明。然而,本发明公开的实施例以及附图的细节都不应被解释为限制本发明构思。虽然示出并描述了本发明的一些实施例,但是本领域技术人员将理解的是,在不脱离本发明的原理和精神的情况下,可以对这些实施例进行改变。在整个说明书中,对“实施例”等的参考不一定仅针对一个实施例,并且对任何这样的短语的不同参考不一定针对相同的实施例。
图1是示出根据实施例的数据存储设备10的框图。
参照图1,数据存储设备10可以存储待由诸如下列的主机设备(未示出)访问的数据:移动电话、MP3播放器、膝上型计算机、台式计算机、游戏机、电视(TV)或车载信息娱乐系统等。数据存储设备10可以被称为存储器系统。
根据联接至主机设备(未示出)的接口协议,数据存储设备10可以被配置为各种类型的存储设备中的任意一种。例如,数据存储设备10可以被配置为下列中的任意一种:固态硬盘(SSD)、多媒体卡(例如,MMC、eMMC、RS-MMC和微型-MMC)、安全数字卡(例如,SD、迷你-SD和微型-SD)、通用串行总线(USB)存储装置、通用闪存(UFS)装置、个人计算机存储卡国际协会(PCMCIA)卡型存储装置、外围组件互连(PCI)卡型存储装置、高速PCI(PCI-e或PCIe)卡型存储装置、紧凑型闪存(CF)卡、智能媒体卡、记忆棒等。
数据存储设备10可以被制造为各种类型的封装中的任意一种。例如,数据存储设备10可以被制造为下列中的任意一种:堆叠式封装(PoP)、系统级封装(SiP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)和晶圆级堆叠封装(WSP)。
数据存储设备10可以包括非易失性存储器装置100和控制器200。
非易失性存储器装置100可以作为数据存储设备10的存储介质而操作。非易失性存储器装置100可以包括诸如下列的各种类型的非易失性存储器装置中的任意一种:NAND闪速存储器装置、NOR闪速存储器装置、使用铁电电容器的铁电随机存取存储器(FRAM)、使用隧道磁阻(TMR)层的磁性随机存取存储器(MRAM)、使用硫族化物合金的相变随机存取存储器(PRAM)和使用过渡金属化合物的电阻式随机存取存储器(ReRAM)。
虽然为了清楚起见,图1中示出了一个非易失性存储器装置100,但是数据存储设备10可以包括多个非易失性存储器装置100,并且本公开可以同样地适用于包括多个非易失性存储器装置100的数据存储设备10。
非易失性存储器装置100可以包括存储器单元阵列,该存储器单元阵列包括布置在多个字线和多个位线相交的区域中的多个存储器单元。存储器单元阵列可以包括多个存储块,并且多个存储块中的每一个可以包括多个页面。
例如,存储器单元阵列中的存储器单元中的每一个可以是待存储单个位数据(例如,1位数据)的单层单元(SLC)、待存储2位数据的多层单元(MLC)、待存储3位数据的三层单元(TLC)、或者待存储4位数据的四层单元(QLC)。存储器单元阵列可以包括SLC、MLC、TLC和QLC之中的一个或多个单元。例如,存储器单元阵列可以包括具有二维(2D)水平结构的存储器单元或具有3D垂直结构的存储器单元。
控制器200可以通过驱动加载到存储器230中的固件或软件来控制数据存储设备10的整体操作。控制器200可以解码并驱动诸如固件或软件的代码类型指令或算法。控制器200可以用硬件或硬件和软件的组合来实施。
控制器200可以包括主机接口210、处理器220、存储器230和存储器接口240。虽然图1中未示出,但是控制器200可以进一步包括错误校正码(ECC)引擎,该ECC引擎被配置成通过ECC编码从主机设备提供的写入数据生成奇偶校验,并且使用奇偶校验来ECC解码从非易失性存储器装置100读出的读取数据。
主机接口210可以响应于主机设备的协议来执行主机设备和数据存储设备10之间的接口连接。例如,主机接口210可以通过下列之中的任意一种与主机设备通信:通用串行总线(USB)协议、通用闪存(UFS)协议、多媒体卡(MMC)协议、并行高级技术附件(PATA)协议、串行高级技术附件(SATA)协议、小型计算机系统接口(SCSI)协议、串列SCSI(SAS)协议、外围组件互连(PCI)协议和高速PCI(PCI-e或PCIe)协议。
处理器220可以被配置为微控制单元(MCU)和/或中央处理单元(CPU)。处理器220可以处理从主机设备接收的请求。为了处理这样的请求,处理器220可以驱动加载到存储器230中的代码类型指令或算法,例如固件,并且控制诸如主机接口210、存储器230和存储器接口240的内部功能块以及非易失性存储器装置100。
处理器220可以基于从主机设备接收的请求生成用于控制非易失性存储器装置100的操作的控制信号,并且通过存储器接口240将所生成的控制信号提供至非易失性存储器装置100。
存储器230可以被配置为诸如动态RAM(DRAM)或静态RAM(SRAM)的随机存取存储器。存储器230可以存储通过处理器220驱动的固件。存储器230可以存储驱动固件所需的数据(例如,元数据)。例如,存储器230可以作为处理器220的工作存储器而操作。
存储器230可以被配置成包括缓冲器,该缓冲器被配置成临时存储待从主机设备传输至非易失性存储器装置100的写入数据,或者待从非易失性存储器装置100传输至主机设备的读取数据。例如,存储器230可以作为处理器220的缓冲存储器而操作。
存储器接口240可以根据处理器220的控制来控制非易失性存储器装置100。存储器接口240可以被称为存储器控制器。存储器接口240可以将通过处理器220生成的控制信号提供至非易失性存储器装置100。控制信号可以包括用于控制非易失性存储器装置100的命令、地址、操作控制信号等。存储器接口240可以将写入数据提供至非易失性存储器装置100或者从非易失性存储器装置100接收读取数据。
图2是示出图1中的存储器230的示图。
参照图2,存储器230可以包括第一区域231、第二区域232、第三区域233、第四区域234、第五区域235和第六区域236。在第一区域231中,将存储闪存转换层(FTL)。在第二区域232中,将存储映射高速缓存数据结构(MCDS)。在第三区域233中,将存储映射高速缓存分配请求队列(MCARQ)。在用作写入数据缓冲器(WDB)的第四区域234中,将临时存储写入数据。在用作读取数据缓冲器(RDB)的第五区域235中,将临时存储读取数据。在用作映射高速缓存缓冲器(MCB)的第六区域236中,将高速缓存映射数据。除了上述区域之外,存储器230可以进一步包括用于各种目的的其它区域。
闪存转换层(FTL)可以是通过处理器220驱动的软件。处理器220可以通过驱动闪存转换层(FTL)来控制非易失性存储器装置100的内在操作并提供与主机设备的装置兼容性。通过驱动闪存转换层(FTL),主机设备可以通过将数据存储设备10识别为诸如硬盘的通用数据存储设备来使用数据存储设备10。闪存转换层(FTL)可以包括被配置成执行各种功能的模块以及驱动模块所需的元数据。闪存转换层(FTL)可以被存储在非易失性存储器装置100的系统区域(未示出)中。当数据存储设备10通电时,闪存转换层(FTL)可以被从非易失性存储器装置100的系统区域读出,并且被加载到存储器230的第一区域231中。
图3是示出图2中的闪存转换层(FTL)的示图。
参照图3,闪存转换层(FTL)可以包括读取模块(RM)、垃圾收集模块(GCM)、映射模块(MM)和映射高速缓存分配模块(MCAM),但是闪存转换层(FTL)的配置不限于该特定布置。例如,闪存转换层(FTL)可以进一步包括损耗均衡模块、坏块管理模块、地址映射等。
读取模块(RM)可以管理非易失性存储器装置100和存储器230以处理从主机设备接收的读取请求。当从主机设备接收到读取请求时,处理器220可以管理非易失性存储器装置100和存储器230以执行下列一系列操作:通过驱动读取模块(RM)从非易失性存储器装置100读取数据,将读取数据临时存储在图2所示的读取数据缓冲器(RDB)中,并将临时存储的读取数据传输至主机设备。
垃圾收集模块(GCM)可以管理非易失性存储器装置100和存储器230以执行下列操作:收集存储在非易失性存储器装置100的存储块中的有效数据,将收集的有效数据合并到一个存储块中,并对无效数据执行擦除操作。
由闪速存储器装置配置的非易失性存储器装置100可能由于结构特征而不支持数据重写。当数据被再次写入已经存储数据的存储器单元(例如,处于编程状态的存储器单元)中时,可能无法保证存储在相应存储器单元中的数据的可靠性。因此,可能不可避免地优先执行对处于编程状态的存储器单元的擦除操作,以将数据写入处于编程状态的存储器单元中。
由于以存储块为单元执行对非易失性存储器装置100的擦除操作,因此擦除操作可能需要相当长的时间。因此,当与待被写入的地址对应的存储器单元处于写入(或编程)状态时,处理器220可能不是执行擦除相应存储器单元,然后将数据写入该存储器单元中的操作,而是可能执行将数据写入已经处于擦除状态的另一存储器单元中的操作。在这种情况下,存储在最初待被写入的存储器单元中的数据可以是无效数据,存储在另一存储器单元中的数据可以是有效数据。
通过处理器220的这种操作,有效数据和无效数据可能在非易失性存储器装置100中混合。如果需要,处理器220可以执行下列一系列操作:通过驱动垃圾收集模块(GCM)将分散在多个存储块中的有效数据传送至一个存储块并擦除无效数据。该一系列操作可以被称为垃圾收集操作。
映射模块(MM)可以管理非易失性存储器装置100和存储器230以执行与映射数据相关的操作。与映射数据相关的操作可以主要包括映射高速缓存操作和映射更新操作,但是与映射数据相关的操作不限于此。
当从主机设备提供写入请求、待被写入的逻辑块地址和写入数据时,处理器220可以通过驱动映射模块(MM)来执行映射更新操作。映射更新操作将存储写入数据的物理块地址与待被写入的逻辑块地址进行映射,将映射信息存储在存储器230中,并且基于存储在存储器230中的映射信息来更新存储在非易失性存储器装置100中的地址映射表的映射信息。
处理器220可以通过驱动映射模块(MM)来执行映射高速缓存操作。映射高速缓存操作将与从主机设备经常或最近请求读取的逻辑块地址对应的映射段高速缓存在存储器230的映射高速缓存缓冲器(MCB)中。
映射高速缓存分配模块(MCAM)可以从闪存转换层(FTL)内的其它模块接收对映射高速缓存缓冲器(MCB)的分配请求,并将接收到的分配请求提供至映射模块(MM)。此外,映射高速缓存分配模块(MCAM)可以从映射模块(MM)接收可分配大小信息并将可分配大小信息提供至其它模块。
存储器230中用作写入数据缓冲器(WDB)、读取数据缓冲器(RDB)和映射高速缓存缓冲器(MCB)的区域可以具有设置大小。当从主机设备接收到顺序读取请求时,待从非易失性存储器装置100读取并且待存储的读取数据的大小可以大于所需映射数据的大小。在这种情况下,读取模块(RM)可以从映射模块(MM)接收对映射高速缓存缓冲器(MCB)的部分区域的分配并使用分配的部分区域作为读取数据缓冲器(RDB)。当分散在多个存储块中的有效数据的大小很大时,在执行垃圾收集操作时,垃圾收集模块(GCM)可以从映射模块(MM)接收对映射高速缓存缓冲器(MCB)的部分区域的分配并使用分配的部分区域作为垃圾收集缓冲器。
当映射高速缓存缓冲器(MCB)的部分区域被分配为读取数据缓冲器(RDB)或垃圾收集缓冲器时,需要使高速缓存在分配的区域中映射段无效并校正与映射高速缓存缓冲器(MCB)相关的数据结构(MCDS)。例如,与映射高速缓存缓冲器(MCB)相关的数据结构(MCDS)(映射高速缓存数据结构)可以包括高速缓存在映射高速缓存缓冲器(MCB)中的映射段的索引、映射段的数量以及映射段待被高速缓存的下一位置信息,但是不限于此。
映射高速缓存数据结构(MCDS)可以是通过映射模块(MM)管理的数据。因此,当读取模块(RM)或垃圾收集模块(GCM)直接访问并校正映射高速缓存数据结构(MCDS)以使用映射高速缓存缓冲器(MCB)的部分区域时,可能增加由于模块之间的依赖性而发生操作错误的风险。
因此,根据实施例的闪存转换层(FTL)可以包括用作映射模块(MM)和其它模块(例如,读取模块(RM)或垃圾收集模块(GCM))之间的接口的映射高速缓存分配模块(MCAM)。通过映射高速缓存分配模块(MCAM),这些其它模块接收对映射高速缓存缓冲器(MCB)的部分区域的分配并使用映射高速缓存缓冲器(MCB)的部分区域,而不直接访问映射模块(MM)的映射高速缓存数据结构(MCDS)。
例如,读取模块(RM)或垃圾收集模块(GCM)可以将包括所需大小信息的映射高速缓存缓冲器分配请求(分配请求)传输至映射高速缓存分配模块(MCAM)。映射高速缓存分配模块(MCAM)可以基于分配请求将包括请求分配的大小信息的分配信号提供至映射模块(MM)。映射模块(MM)可以基于接收到的分配信号参考映射高速缓存数据结构(MCDS)来确定当前可分配大小,并将可分配大小信息提供至映射高速缓存分配模块(MCAM)。
映射高速缓存分配模块(MCAM)可以将从映射模块(MM)提供的可分配大小信息提供至读取模块(RM)或垃圾收集模块(GCM),读取模块(RM)或垃圾收集模块(GCM)可以确定是否接受对与相应可分配大小对应的区域的分配并且使用分配的区域。然后,读取模块(RM)或垃圾收集模块(GCM)可以将使用允许请求传输至映射高速缓存分配模块(MCAM),或者将包括期望大小信息的分配请求重新传输至映射高速缓存分配模块(MCAM)。
当从读取模块(RM)或垃圾收集模块(GCM)传输使用允许请求时,映射高速缓存分配模块(MCAM)可以将指示接受使用允许请求的信号(使用允许信号)提供至映射模块(MM)。映射模块(MM)可以将与分配的区域对应的位置信息(例如,地址信息)提供至映射高速缓存分配模块(MCAM)。映射高速缓存分配模块(MCAM)可以将从映射模块(MM)接收的位置信息传输至读取模块(RM)或垃圾收集模块(GCM)。
当从读取模块(RM)或垃圾收集模块(GCM)重新传输分配请求时,映射高速缓存分配模块(MCAM)可以将分配信号再次提供至映射模块(MM)。此外,映射模块(MM)可以参考映射高速缓存数据结构(MCDS)确定相应时间的可分配大小。然后,映射模块(MM)可以将可分配大小信息再次提供至映射高速缓存分配模块(MCAM)。
当从映射高速缓存分配模块(MCAM)提供使用允许信号时,映射模块(MM)可以校正映射高速缓存数据结构(MCDS)。然后,映射模块(MM)可以将待分配的区域的位置信息(例如,地址信息)提供至映射高速缓存分配模块(MCAM)。下面将描述通过映射模块(MM)校正映射高速缓存数据结构(MCDS)的操作。
图4A是示出根据实施例的映射高速缓存数据结构,例如图2的映射高速缓存数据结构(MCDS)的示图。图4B是示出根据实施例的映射高速缓存列表,例如图4A的映射高速缓存列表(MCL)的示图。图4C是示出根据实施例的映射高速缓存索引,例如图4B的映射高速缓存索引(MSI)的示图。图4D是示出根据实施例的映射高速缓存指针,例如图4A的映射高速缓存指针(MCP)的示图。
参照图4A,映射高速缓存数据结构(MCDS)可以包括映射高速缓存列表(MCL)和映射高速缓存指针(MCP)。然而,映射高速缓存数据结构(MCDS)不限于该布置;相反,映射高速缓存数据结构(MCDS)可以包括与映射高速缓存缓冲器(MCB)相关的各种元数据。
参照图4B,映射高速缓存列表(MCL)可以存储高速缓存在映射高速缓存缓冲器(MCB)中的映射段的信息(MSI)。例如,映射高速缓存列表(MCL)可以存储n个高速缓存的映射段的信息(MSI)。此处,n可以是1或更大的整数。参照图4C,高速缓存的映射段中的每一个的信息(MSI)可以包括相应映射段的压缩大小和映射段的索引。
再次参照图2,映射段可以被高速缓存在映射高速缓存缓冲器(MCB)中,并且映射段中的每一个可以包括多个逻辑地址到物理地址(L2P)条目。压缩映射段和非压缩映射段可以被高速缓存在映射高速缓存缓冲器(MCB)中。高速缓存在映射高速缓存缓冲器(MCB)中的压缩映射段的压缩大小可以彼此不同。
再次参照图3,当从映射高速缓存分配模块(MCAM)提供分配信号时,映射模块(MM)可以参考映射高速缓存数据结构(MCDS)的映射高速缓存列表(MCL)来检查当前高速缓存在映射高速缓存缓冲器(MCB)中的映射段的压缩大小。映射模块(MM)可以从映射高速缓存缓冲器(MCB)的起始位置到结束位置或从映射高速缓存缓冲器(MCB)的结束位置到起始位置确定是否能够分配具有与请求分配的大小对应的大小的区域。
当具有与请求分配的大小对应的大小的区域可分配时,映射模块(MM)可以将指示具有请求大小的区域可分配的信号(例如,分配启用信号)提供至映射高速缓存分配模块(MCAM)。
当具有与请求分配的大小对应的大小的区域不可分配时,映射模块(MM)可以确定当前可分配区域的大小。然后,映射模块(MM)可以将大小信息提供至映射高速缓存分配模块(MCAM)。
当从映射高速缓存分配模块(MCAM)提供使用允许信号时,映射模块(MM)可以使高速缓存在映射高速缓存缓冲器(MCB)中待分配的区域中的映射段无效。而且,映射模块(MM)可以从映射高速缓存列表(MCL)中删除相应映射段的信息(MSI)。此外,映射模块(MM)可以将图4D中所示的映射高速缓存指针(MCP)的值变成指示映射段待被高速缓存的下一位置信息的值。
如图4D所示,映射高速缓存指针(MCP)可以是包括m位b0至bm-1的位映射。此处,m可以是0(零)或1或更大的自然数。映射高速缓存指针(MCP)可以被设置为指示映射段待被高速缓存在映射高速缓存缓冲器(MCB)中的下一位置的值。
图5A是示出根据实施例的映射高速缓存缓冲器(MCB)的示图。图5B是示出根据实施例的映射高速缓存指针(MCP)被设置为指示映射段待被高速缓存在映射高速缓存缓冲器(MCB)中的位置信息的值的示例的示图。
参照图5A,映射高速缓存缓冲器(MCB)可以包括i个高速缓存区域,例如第一高速缓存区域CR1至第i高速缓存区域CRi。此处,i可以是1或更大的自然数。当第一高速缓存区域CR1的起始地址是基地址时,第二高速缓存区域CR2至第i高速缓存区域CRi的起始地址可以是基地址分别偏移第一偏移至第(i-1)偏移,即Offset 1至Offset(i-1)而得到的值。
参照图5B,映射高速缓存指针(MCP)可以被设置为与第一高速缓存区域CR1至第i高速缓存区域CRi的起始地址对应的偏移,但是本发明不限于此。例如,当映射段被高速缓存在映射高速缓存缓冲器(MCB)的第一高速缓存区域CR1和第二高速缓存区域CR2中时,映射高速缓存指针(MCP)可以被设置为指示第二偏移Offset 2的值,该值表示关于映射段待被高速缓存在映射高速缓存缓冲器(MCB)中的下一位置的信息。在映射高速缓存操作中,映射模块(MM)可以检查映射高速缓存指针(MCP)并且将映射段高速缓存在第三高速缓存区域CR3中。
由于映射段不能被高速缓存在映射高速缓存缓冲器(MCB)的高速缓存区域之中、分配给其它模块的高速缓存区域中,因此映射模块(MM)可以设置偏移,使得映射高速缓存指针(MCP)指示未分配高速缓存区域中的一个高速缓存区域。
图6是示出根据本公开的实施例的映射高速缓存缓冲器分配进程的示图。
参照图6,映射高速缓存分配请求MCAR_R和MCAR_G可以按照传输顺序在映射高速缓存分配请求队列(MCARQ)中排队。可以分别从读取模块(RM)和垃圾收集模块(GCM)接收映射高速缓存分配请求MCAR_R和MCAR_G。映射高速缓存分配模块(MCAM)可以通过周期性地扫描映射高速缓存分配请求队列(MCARQ)来确定是否存在排队的映射高速缓存分配请求。当存在在映射高速缓存分配请求队列(MCARQ)中排队的映射高速缓存分配请求时,映射高速缓存分配模块(MCAM)可以使映射高速缓存分配请求按排队顺序出列。
映射高速缓存分配模块(MCAM)可以基于从映射高速缓存分配请求队列(MCARQ)出列的映射高速缓存分配请求MCAR_R和MCAR_G来提供分配信号REQ_AS。分配信号REQ_AS可以包括待被分配至映射模块(MM)的大小信息。
映射模块(MM)可以参考映射高速缓存数据结构(MCDS)来确定可分配区域的大小。此外,映射模块(MM)可以将包括可分配大小信息的响应信号RES_AS提供至映射高速缓存分配模块(MCAM)。映射高速缓存分配模块(MCAM)可以基于从映射模块(MM)提供的响应信号RES_AS将可分配大小信息(ASI)传输至读取模块(RM)和垃圾收集模块(GCM)。
读取模块(RM)和垃圾收集模块(GCM)可以检查从映射高速缓存分配模块(MCAM)接收的可分配大小信息(ASI),并且确定是否使用相应区域。此外,读取模块(RM)和垃圾收集模块(GCM)可以基于确定结果将使用允许请求MCUR_R和MCUR_G分别传输至映射高速缓存分配模块(MCAM)。可选地,读取模块(RM)和垃圾收集模块(GCM)可以基于确定结果将包括期望分配大小信息的映射高速缓存分配请求MCAR_R和MCAR_G重新传输至映射高速缓存分配模块(MCAM)。重新传输的映射高速缓存分配请求MCAR_R和MCAR_G可以按照传输顺序在映射高速缓存分配请求队列(MCARQ)中排队。
在上述实施例中,诸如读取模块(RM)和垃圾收集模块(GCM)的模块可以不直接访问并校正映射模块(MM)内的数据结构(例如,映射高速缓存数据结构(MCDS)),而是可以通过映射高速缓存分配模块(MCAM)将包括期望大小信息的分配请求传输至映射模块(MM)。此外,读取模块(RM)和垃圾收集模块(GCM)可以通过映射高速缓存分配模块(MCAM)接收可分配大小信息来确定是否使用分配的区域,并且使用分配的区域。因此,可以仅通过映射模块(MM)来执行对映射高速缓存数据结构(MCDS)的访问和管理,从而可以通过消除模块之间的依赖性来降低发生操作错误的风险。
读取模块(RM)和垃圾收集模块(GCM)可以以通过映射高速缓存分配模块(MCAM)将分配请求传输至映射模块(MM)并使用所提供的分配区域的简单结构来实施。因此,可以节省维护成本。
图7是示出包括根据实施例的固态硬盘(SSD)2200的数据处理系统2000的示图。参照图7,数据处理系统2000可以包括主机设备2100和SSD 2200。
SSD 2200可以包括控制器2210、缓冲存储器装置2220、非易失性存储器装置2231至223n、电源2240、信号连接器2250和电源连接器2260。
控制器2210可以控制SSD 2200的整体操作。
缓冲存储器装置2220可以临时存储待存储在非易失性存储器装置2231至223n中的数据。缓冲存储器装置2220可以临时存储从非易失性存储器装置2231至223n读取的数据。根据控制器2210的控制,临时存储在缓冲存储器装置2220中的数据可以被传输至主机设备2100或非易失性存储器装置2231到223n。
非易失性存储器装置2231至223n可以用作SSD 2200的存储介质。非易失性存储器装置2231至223n可以通过多个信道CH1至CHn联接至控制器2210。一个或多个非易失性存储器装置可以联接至一个信道。联接至相同信道的非易失性存储器装置可以联接至相同的信号总线和相同的数据总线。
电源2240可以将通过电源连接器2260输入的电力PWR提供至SSD 2200内部的组件。电源2240可以包括辅助电源2241。辅助电源2241可以供应电力以便当发生突然断电时SSD 2200正常终止。辅助电源2241可以包括能够对电力PWR充电的大容量电容器。
控制器2210可以通过信号连接器2250与主机设备2100交换信号SGL。信号SGL可以包括命令、地址、数据等。根据主机设备2100和SSD 2200之间的接口连接方法,信号连接器2250可以被配置为各种类型的连接器中的任意一种。
图8是示出根据本公开的实施例的控制器,例如图7的控制器2210的示图。参照图8,控制器2210可以包括主机接口2211、控制组件2212、随机存取存储器(RAM)1213、错误校正码(ECC)组件2214和存储器接口2215。
主机接口2211可以根据主机设备2100的协议执行主机设备2100和SSD 2200之间的接口连接。例如,主机接口2211可以通过下列中的任意一个与主机设备2100通信:安全数字协议、通用串行总线(USB)协议、多媒体卡(MMC)协议、嵌入式MMC(eMMC)协议、个人计算机存储卡国际协会(PCMCIA)协议、并行高级技术附件(PATA)协议、串行高级技术附件(SATA)协议、小型计算机系统接口(SCSI)协议、串列SCSI(SAS)协议、外围组件互连(PCI)协议、高速PCI(PCI-e或PCIe)协议和通用闪存(UFS)协议。主机接口2211可以执行盘模拟功能,使得主机设备2100将SSD 2200识别为通用数据存储设备,例如,硬盘驱动器HDD。
控制组件2212可以分析并处理从主机设备2100输入的信号SGL。控制组件2212可以根据用于驱动SSD 2200的固件和/或软件来控制内部功能块的操作。RAM 2213可以用作用于驱动固件或软件的工作存储器。
ECC组件2214可以生成待传送至非易失性存储器装置2231至223n的数据的奇偶校验数据。生成的奇偶校验数据可以与数据一起被存储在非易失性存储器装置2231至223n中。ECC组件2214可以基于奇偶校验数据来检测从非易失性存储器装置2231至223n读取的数据的错误。当检测到的错误在可校正范围内时,ECC组件2214可以校正检测到的错误。
存储器接口2215可以根据控制组件2212的控制将诸如命令和地址的控制信号提供至非易失性存储器装置2231至223n。存储器接口2215可以根据控制组件2212的控制与非易失性存储器装置2231至223n交换数据。例如,存储器接口2215可以将存储在缓冲存储器装置2220中的数据提供至非易失性存储器装置2231至223n,或者将从非易失性存储器装置2231至223n读取的数据提供至缓冲存储器装置2220。
图9是包括根据实施例的数据存储设备3200的数据处理系统3000的示图。参照图9,数据处理系统3000可以包括主机设备3100和数据存储设备3200。
主机设备3100可以诸如印刷电路板(PCB)的板形式配置。虽然图9中未示出,但是主机设备3100可以包括被配置成执行主机设备3100的功能的内部功能块。
主机设备3100可以包括连接端子3110,诸如插座、插槽或连接器。数据存储设备3200可以安装在连接端子3110上。
数据存储设备3200可以诸如PCB的板形式配置。数据存储设备3200可以被称为存储器模块或存储卡。数据存储设备3200可以包括控制器3210、缓冲存储器装置3220、非易失性存储器装置3231和3232、电源管理集成电路(PMIC)3240和连接端子3250。
控制器3210可以控制数据存储设备3200的整体操作。控制器3210可以与图8中所示的控制器2210相同或基本相同地配置。
缓冲存储器装置3220可以临时存储待存储在非易失性存储器装置3231和3232中的数据。缓冲存储器装置3220可以临时存储从非易失性存储器装置3231和3232读取的数据。根据控制器3210的控制,临时存储在缓冲存储器装置3220中的数据可以被传输至主机设备3100或非易失性存储器装置3231和3232。
非易失性存储器装置3231和3232可以用作数据存储设备3200的存储介质。
PMIC 3240可以将通过连接端子3250输入的电力提供至数据存储设备3200内的组件。PMIC 3240可以根据控制器3210的控制来管理数据存储设备3200的电力。
连接端子3250可以联接至主机设备3100的连接端子3110。通过连接端子3250,可以在主机设备3100和数据存储设备3200之间传输诸如命令、地址、数据的信号和电力。根据主机设备3100和数据存储设备3200之间的接口连接方法,连接端子3250可以被实施为各种形式中的任意一种。连接端子3250可以被布置在数据存储设备3200中或数据存储设备3200的任意一侧上。
图10是示出包括根据实施例的数据存储设备4200的数据处理系统4000的示图。参照图10,数据处理系统4000可以包括主机设备4100和数据存储设备4200。
主机设备4100可以以诸如印刷电路板(PCB)的板形式配置。虽然图10中未示出,但是主机设备4100可以包括被配置成执行主机设备4100的功能的内部功能块。
数据存储设备4200可以被实施为表面安装型封装形式。数据存储设备4200可以通过焊球4250安装到主机设备4100。数据存储设备4200可以包括控制器4210、缓冲存储器装置4220和非易失性存储器装置4230。
控制器4210可以控制数据存储设备4200的整体操作。控制器4210可以与图8中所示的控制器2210相同或基本相同地配置。
缓冲存储器装置4220可以临时存储待存储在非易失性存储器装置4230中的数据。缓冲存储器装置4220可以临时存储从非易失性存储器装置4230读取的数据。根据控制器4210的控制,临时存储在缓冲存储器装置4220中的数据可以被传输至主机设备4100或非易失性存储器装置4230。
非易失性存储器装置4230可以用作数据存储设备4200的存储介质。
图11是示出包括根据实施例的数据存储设备的网络系统5000的示图。参照图11,网络系统5000可以包括通过网络5500联接的服务器系统5300和多个客户端系统5410至5430。
服务器系统5300可以响应于多个客户端系统5410至5430的请求来服务数据。例如,服务器系统5300可以存储从多个客户端系统5410至5430提供的数据。再如,服务器系统5300可以将数据提供至多个客户端系统5410至5430。
服务器系统5300可以包括主机设备5100和数据存储设备5200。数据存储设备5200可以包括图1的数据存储设备10、图7的数据存储设备2200、图9的数据存储设备3200或图10的数据存储设备4200。
图12是示出根据实施例的数据存储设备中包括的非易失性存储器装置100的框图。参照图12,非易失性存储器装置100可以包括存储器单元阵列110、行解码器120、列解码器140、数据读取/写入块130、电压发生器150和控制逻辑160。
存储器单元阵列110可以包括布置在字线WL1至WLm和位线BL1至BLn彼此交叉的区域中的存储器单元MC。
行解码器120可以通过字线WL1至WLm联接至存储器单元阵列110。行解码器120可以根据控制逻辑160的控制而操作。行解码器120可以解码从外部设备(未示出)提供的地址。行解码器120可以基于解码结果来选择并驱动字线WL1至WLm。例如,行解码器120可以将从电压发生器150提供的字线电压提供至字线WL1至WLm。
数据读取/写入块130可以通过位线BL1至BLn联接至存储器单元阵列110。数据读取/写入块130可以包括对应于位线BL1至BLn的读取/写入电路RW1至RWn。数据读取/写入块130可以根据控制逻辑160的控制而操作。数据读取/写入块130可以根据操作模式而作为写入驱动器或读出放大器。例如,在写入操作中,数据读取/写入块130可以作为写入驱动器,该写入驱动器被配置成将从外部设备提供的数据存储在存储器单元阵列110中。再如,在读取操作中,数据读取/写入块130可以作为读出放大器,该读出放大器被配置成从存储器单元阵列110读取数据。
列解码器140可以通过控制逻辑160的控制而操作。列解码器140可以解码从外部设备(未示出)提供的地址。列解码器140可以基于解码结果将数据读取/写入块130的对应于位线BL1至BLn的读取/写入电路RW1至RWn与数据输入/输出(I/O)线(或数据I/O缓冲器)联接。
电压发生器150可以生成用于非易失性存储器装置100的内部操作的电压。通过电压发生器150生成的电压可以被施加到存储器单元阵列110的存储器单元。例如,在编程操作中生成的编程电压可以被施加到待执行编程操作的存储器单元的字线。再如,在擦除操作中生成的擦除电压可以被施加到待执行擦除操作的存储器单元的阱区。又如,在读取操作中生成的读取电压可以被施加到待执行读取操作的存储器单元的字线。
控制逻辑160可以基于从外部设备提供的控制信号来控制非易失性存储器装置100的整体操作。例如,控制逻辑160可以控制非易失性存储器装置100的操作,诸如非易失性存储器装置100的读取操作、写入操作、擦除操作。
本发明的上述实施例旨在说明而不是限制本发明。如本领域技术人员根据本公开将认识到的,各种替代方案和等同方案是可能的。本发明不受本文描述的实施例的限制。本发明也不限于任何特定类型的半导体装置。本发明包括落入所附权利要求的范围内的任何和所有增加、减少或修改。
Claims (14)
1.一种数据存储设备,包括:
非易失性存储器装置;
处理器,控制所述非易失性存储器装置的操作;以及
存储器,加载有包括模块的闪存转换层,即FTL,所述存储器包括高速缓存至少一个映射段的映射高速缓存缓冲器,
其中所述模块包括:
映射模块,管理与所述映射高速缓存缓冲器相关的映射高速缓存数据结构;以及
映射高速缓存分配模块:
从除所述映射模块之外的模块接收用于在所述映射高速缓存缓冲器中分配具有所需大小的区域的分配请求;
将所述分配请求提供至所述映射模块;
从所述映射模块接收可分配大小信息;并且
将所述可分配大小信息提供至所述模块。
2.根据权利要求1所述的数据存储设备,其中所述映射高速缓存数据结构包括:
映射高速缓存列表,存储高速缓存的映射段的压缩大小和索引;以及
映射高速缓存指针,被设置为指示所述映射段待被高速缓存在所述映射高速缓存缓冲器中的位置信息的值。
3.根据权利要求2所述的数据存储设备,其中当从所述映射高速缓存分配模块接收到所述分配请求时,所述映射模块参考所述映射高速缓存列表的压缩大小来确定所述可分配大小信息。
4.根据权利要求2所述的数据存储设备,其中所述模块通过检查从所述映射高速缓存分配模块提供的所述可分配大小信息来确定是否使用相应区域,并基于所述确定将使用允许请求传输至所述映射高速缓存分配模块或重新传输包括期望大小信息的分配请求。
5.根据权利要求4所述的数据存储设备,其中所述映射高速缓存分配模块将从所述模块接收的所述使用允许请求提供至所述映射模块,并且所述映射模块将所述映射高速缓存缓冲器中待分配的区域的位置信息提供至所述映射高速缓存分配模块。
6.根据权利要求5所述的数据存储设备,其中所述映射模块从所述映射高速缓存列表中删除与高速缓存在待分配的区域中的映射段对应的信息,并且将所述映射高速缓存指针变成指示所述映射高速缓存缓冲器的非分配区域之中的至少一个区域的位置信息的值。
7.根据权利要求1所述的数据存储设备,其中所述模块包括读取模块和垃圾收集模块中的至少一个模块。
8.根据权利要求7所述的数据存储设备,其中所述模块将包括所需大小信息的分配请求传输至所述映射高速缓存分配模块。
9.根据权利要求8所述的数据存储设备,其中所述映射模块参考所述映射高速缓存数据结构来确定所述映射高速缓存缓冲器中是否存在具有与所需大小对应的大小的可分配区域,并且当存在具有与所需大小对应的大小的可分配区域时,将分配启用信号提供至所述映射高速缓存分配模块。
10.根据权利要求9所述的数据存储设备,其中当不存在具有与所需大小对应的大小的可分配区域时,所述映射模块检查当前可分配区域的大小,然后将所述可分配大小信息提供至所述映射高速缓存分配模块。
11.根据权利要求1所述的数据存储设备,其中所述闪存转换层中的所述模块通过所述处理器驱动。
12.根据权利要求1所述的数据存储设备,其中所述存储器进一步包括映射高速缓存分配请求队列,所述映射高速缓存分配请求队列使从所述模块接收的所述分配请求按传输顺序排队。
13.根据权利要求12所述的数据存储设备,其中所述映射高速缓存分配模块通过周期性地扫描所述映射高速缓存分配请求队列来确定是否存在排队的分配请求,并且当存在所述排队的分配请求时,使所述排队的分配请求按排队顺序出列。
14.一种数据存储设备,包括:
非易失性存储器装置;
处理器,控制所述非易失性存储器装置的操作;以及
存储器,加载有闪存转换层,即FTL,并且包括映射高速缓存缓冲器,所述映射高速缓存缓冲器高速缓存与所述非易失性存储器装置的操作相关的至少一个映射段,
其中所述闪存转换层包括:
操作模块,控制所述非易失性存储器装置的操作;
映射模块,管理与所述映射高速缓存缓冲器相关的映射高速缓存数据结构;以及
映射高速缓存分配模块,从所述操作模块接收对所述映射高速缓存缓冲器中待使用的大小的请求,将所述请求提供至所述映射模块,从所述映射模块接收可分配大小信息,并将所述可分配大小信息提供至所述操作模块,
其中所述映射模块响应于所述请求确定所述映射高速缓存缓冲器的可分配大小,并将指示所确定的可分配大小的所述可分配大小信息传输至所述映射高速缓存分配模块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180089226A KR102596964B1 (ko) | 2018-07-31 | 2018-07-31 | 맵 캐시 버퍼 크기를 가변시킬 수 있는 데이터 저장 장치 |
KR10-2018-0089226 | 2018-07-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110781093A true CN110781093A (zh) | 2020-02-11 |
CN110781093B CN110781093B (zh) | 2023-03-14 |
Family
ID=69228745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811565349.4A Active CN110781093B (zh) | 2018-07-31 | 2018-12-20 | 能够改变映射高速缓存缓冲器大小的数据存储设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10684953B2 (zh) |
KR (1) | KR102596964B1 (zh) |
CN (1) | CN110781093B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200068944A (ko) * | 2018-12-06 | 2020-06-16 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
US10977174B2 (en) | 2018-12-31 | 2021-04-13 | Micron Technology, Inc. | Using a common pool of blocks for user data and a system data structure |
US11604080B2 (en) * | 2019-01-05 | 2023-03-14 | Telenav, Inc. | Navigation system with an adaptive map pre-caching mechanism and method of operation thereof |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060080972A (ko) * | 2005-01-06 | 2006-07-12 | 삼성전자주식회사 | 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에저장하는 장치 및 방법 |
CN103123608A (zh) * | 2006-10-19 | 2013-05-29 | 三星电子株式会社 | 用于在存储器装置中重新分配可寻址空间的方法和设备 |
CN103269361A (zh) * | 2013-05-03 | 2013-08-28 | 北京理工大学 | 一种用于深空通信的文件传输装置及其设计方法 |
KR20160064720A (ko) * | 2014-11-28 | 2016-06-08 | 삼성전자주식회사 | 캐시 메모리 장치 및 이를 포함하는 전자 시스템 |
US20170017571A1 (en) * | 2015-07-17 | 2017-01-19 | Samsung Electronics Co., Ltd. | Method and apparatus fori n-line deduplication in storage devices |
CN106708423A (zh) * | 2015-11-13 | 2017-05-24 | 三星电子株式会社 | 多模存储管理系统 |
CN107797759A (zh) * | 2016-09-05 | 2018-03-13 | 北京忆恒创源科技有限公司 | 访问缓存信息的方法、装置与驱动器 |
CN108280033A (zh) * | 2017-01-04 | 2018-07-13 | 爱思开海力士有限公司 | 数据存储设备及其操作方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100590751B1 (ko) * | 1999-02-23 | 2006-06-15 | 삼성전자주식회사 | 데이터라인크기변경시엔트리갯수가동일한캐시메모리시스템 |
US6904507B2 (en) * | 2002-09-30 | 2005-06-07 | Agilent Technologies, Inc. | Buffer management architecture and method for an infiniband subnetwork |
KR102457179B1 (ko) | 2016-03-02 | 2022-10-21 | 한국전자통신연구원 | 캐시 메모리 및 그것의 동작 방법 |
-
2018
- 2018-07-31 KR KR1020180089226A patent/KR102596964B1/ko active IP Right Grant
- 2018-12-10 US US16/214,268 patent/US10684953B2/en active Active
- 2018-12-20 CN CN201811565349.4A patent/CN110781093B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060080972A (ko) * | 2005-01-06 | 2006-07-12 | 삼성전자주식회사 | 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에저장하는 장치 및 방법 |
CN103123608A (zh) * | 2006-10-19 | 2013-05-29 | 三星电子株式会社 | 用于在存储器装置中重新分配可寻址空间的方法和设备 |
CN103269361A (zh) * | 2013-05-03 | 2013-08-28 | 北京理工大学 | 一种用于深空通信的文件传输装置及其设计方法 |
KR20160064720A (ko) * | 2014-11-28 | 2016-06-08 | 삼성전자주식회사 | 캐시 메모리 장치 및 이를 포함하는 전자 시스템 |
US20170017571A1 (en) * | 2015-07-17 | 2017-01-19 | Samsung Electronics Co., Ltd. | Method and apparatus fori n-line deduplication in storage devices |
CN106708423A (zh) * | 2015-11-13 | 2017-05-24 | 三星电子株式会社 | 多模存储管理系统 |
CN107797759A (zh) * | 2016-09-05 | 2018-03-13 | 北京忆恒创源科技有限公司 | 访问缓存信息的方法、装置与驱动器 |
CN108280033A (zh) * | 2017-01-04 | 2018-07-13 | 爱思开海力士有限公司 | 数据存储设备及其操作方法 |
Non-Patent Citations (1)
Title |
---|
王明乾: "一种基于STT-RAM的高速缓存设计", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》 * |
Also Published As
Publication number | Publication date |
---|---|
KR20200013956A (ko) | 2020-02-10 |
US20200042455A1 (en) | 2020-02-06 |
KR102596964B1 (ko) | 2023-11-03 |
CN110781093B (zh) | 2023-03-14 |
US10684953B2 (en) | 2020-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110858129B (zh) | 数据存储装置及其操作方法 | |
US10789161B2 (en) | Data storage device to identify and process a sequential read request and operating method thereof | |
CN108804023B (zh) | 数据存储装置及其操作方法 | |
US10877887B2 (en) | Data storage device and operating method thereof | |
KR102691851B1 (ko) | 불휘발성 메모리 장치, 이를 포함하는 데이터 저장 장치 및 그 동작 방법 | |
US11269765B2 (en) | Operating method of controller and memory system | |
CN109783008B (zh) | 数据存储装置及其操作方法 | |
CN109992202B (zh) | 数据存储设备、其操作方法以及包括其的数据处理系统 | |
CN110837342A (zh) | 数据存储装置及其操作方法 | |
CN111414313B (zh) | 数据存储装置及数据存储装置的操作方法 | |
US11526439B2 (en) | Storage device and operating method thereof | |
CN110781093B (zh) | 能够改变映射高速缓存缓冲器大小的数据存储设备 | |
CN111752853A (zh) | 控制器、存储器系统及其操作方法 | |
KR20200114212A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN112286443A (zh) | 控制器、存储器系统及其操作方法 | |
CN110119326B (zh) | 数据存储装置及其操作方法 | |
CN111752858A (zh) | 控制器、存储器系统及其操作方法 | |
CN113885782A (zh) | 存储装置及其操作方法 | |
CN110795360B (zh) | 数据存储设备以及该数据存储设备的操作方法 | |
CN112328516A (zh) | 控制器、控制器的操作方法以及包括控制器的存储装置 | |
CN108804338B (zh) | 数据存储装置及其操作方法 | |
CN111723023A (zh) | 存储器系统、计算设备及其操作方法 | |
CN112286444B (zh) | 控制器以及包括控制器的存储器系统 | |
CN113805793A (zh) | 存储装置及其操作方法 | |
KR20210001206A (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 |