CN111352856B - 存储器***及其操作方法 - Google Patents
存储器***及其操作方法 Download PDFInfo
- Publication number
- CN111352856B CN111352856B CN201910931348.5A CN201910931348A CN111352856B CN 111352856 B CN111352856 B CN 111352856B CN 201910931348 A CN201910931348 A CN 201910931348A CN 111352856 B CN111352856 B CN 111352856B
- Authority
- CN
- China
- Prior art keywords
- logical address
- target
- target logical
- history list
- count
- 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.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims abstract description 106
- 238000011017 operating method Methods 0.000 title description 5
- 230000004044 response Effects 0.000 claims abstract description 8
- 238000000034 method Methods 0.000 claims description 31
- 230000003247 decreasing effect Effects 0.000 claims 1
- 238000012545 processing Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 8
- 101001138022 Homo sapiens La-related protein 1 Proteins 0.000 description 5
- 102100020859 La-related protein 1 Human genes 0.000 description 5
- 239000007787 solid Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 101710101924 Endo-1,4-beta-xylanase 1 Proteins 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 1
- 239000002041 carbon nanotube Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 229910000679 solder Inorganic materials 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
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/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/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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
-
- 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/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
-
- 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/0658—Controller construction 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
- 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/0688—Non-volatile semiconductor memory arrays
-
- 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- 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/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- 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/6024—History based prefetching
-
- 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- 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/7211—Wear leveling
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)
Abstract
本发明涉及一种存储器***,该存储器***包括:非易失性存储器装置;以及控制器,被配置为从主机装置接收针对目标逻辑地址的操作命令,并且响应于操作命令来控制非易失性存储器装置,其中控制器确定多个逻辑地址范围之中的、包括目标逻辑地址的目标逻辑地址范围,并且基于与多个逻辑地址范围对应的计数之中的、与目标逻辑地址范围对应的目标计数来确定目标逻辑地址是否具有顺序属性。
Description
相关申请的交叉引用
本申请要求于2018年12月21日提交的申请号为10-2018-0167683的韩国申请的优先权,该韩国申请通过引用整体并入本文。
技术领域
各个实施例总体涉及一种存储器***,并且更特别地,涉及一种包括非易失性存储器装置的存储器***。
背景技术
存储器***可以被配置为响应于来自主机装置的写入请求,存储从主机装置提供的数据。并且,存储器***可以被配置为响应于主机装置的读取请求,将存储的数据提供到主机装置。主机装置是能够处理数据的电子装置,并且可以包括计算机、数码相机、移动电话等。存储器***可以通过内置在主机装置中来操作,或者可以通过被制造为可分离的形式并且被联接到主机装置来操作。
发明内容
各个实施例涉及一种存储器***及其操作方法,能够有效地对顺序数据和随机数据进行分类。
在实施例中,一种存储器***可以包括:非易失性存储器装置;以及控制器,被配置为从主机装置接收针对目标逻辑地址的操作命令,并且响应于操作命令来控制所述非易失性存储器装置,其中控制器确定多个逻辑地址范围之中的、包括目标逻辑地址的目标逻辑地址范围,并且基于与多个逻辑地址范围对应的计数之中的、与目标逻辑地址范围对应的目标计数来确定目标逻辑地址是否具有顺序属性。
在实施例中,一种存储器***的操作方法可以包括:确定多个逻辑地址范围之中的、包括与从主机装置接收的操作命令对应的目标逻辑地址的目标逻辑地址范围;以及基于与多个逻辑地址范围对应的计数之中的、与目标逻辑地址范围对应的目标计数来确定目标逻辑地址是否具有顺序属性。
在实施例中,一种存储器***可以包括:存储器装置;以及控制器,适于:接收针对存储器装置的至少一个命令和与该命令相关联的逻辑地址的序列;确定多个逻辑地址范围之中的、与逻辑地址中的每一个对应的地址范围;基于确定的地址范围对多个逻辑地址范围中的每一个的数量进行计数;并且基于计数的数量来确定逻辑地址中的每一个是否是顺序的。
根据实施例的存储器***及其操作方法可以有效地对顺序数据和随机数据进行分类。
附图说明
图1是示出根据实施例的存储器***的框图。
图2A至图2F是示出根据实施例的顺序确定电路的操作方法的示例的示图。
图3是示出根据实施例的顺序确定电路的操作方法的流程图。
图4A和图4B是示出根据实施例的顺序确定电路基于目标计数确定目标逻辑地址的顺序属性的方法的流程图。
图5是示出根据实施例的顺序确定电路增加目标计数的方法的流程图。
图6是示出根据实施例的包括固态驱动器(SSD)的数据处理***的示图。
图7是示出根据实施例的包括存储器***的数据处理***的示图。
图8是示出根据实施例的包括存储器***的数据处理***的示图。
图9是示出根据实施例的包括存储器***的网络***的示图。
图10是示出根据实施例的存储器***中包括的非易失性存储器装置的框图。
具体实施方式
在下文中,通过实施例的各个示例参照附图描述存储器***及其操作方法。
在本公开中,在结合附图阅读以下示例性实施例之后,优点、用于实现优点的特征和方法将变得更加明显。然而,本公开可以以不同的形式实施,而不应被解释为限于本文所阐述的实施例。而是,提供这些实施例是为了详细描述本公开到本公开所属领域的技术人员可以容易地实现本公开的技术构思的程度。
本文中将理解的是,本公开的实施例不限于附图中所示的细节,附图不一定按比例绘制,而且在某些情况下,为了更清楚地描述本公开的某些特征,比例可能已经被夸大。虽然本文中使用了特定的术语,但是将理解的是,本文中使用的术语仅为了描述特定实施例的目的,而不是旨在限制本公开的范围。
如本文中使用的,短语“和/或”包括一个或多个相关所列项目的任意一个和全部组合。将理解的是,当元件被称为在另一元件“上”、“连接到”或“联接到”另一元件时,该元件可以直接在另一元件上、直接连接或联接到另一元件,或者可以存在中间元件。如本文中使用的,除非上下文另有明确说明,否则单数形式也旨在包括复数形式。将进一步理解的是,当在本说明书中使用时,术语“包括”和/或“包括有”指定至少一个所陈述的特征、步骤、操作和/或元件的存在,但不排除一个或多个其它特征、步骤、操作和/或元件的存在或添加。
图1是示出根据实施例的存储器***10的框图。
参照图1,存储器***10可以被配置为响应于主机装置20的写入命令来存储从主机装置20提供的数据。并且,存储器***10可以被配置为响应于主机装置20的读取命令将存储的数据提供到主机装置20。
存储器***10可以通过个人计算机存储卡国际协会(PCMCIA)卡、紧凑型闪存(CF)卡、智能媒体卡、记忆棒、各种多媒体卡(例如,MMC、eMMC、RS-MMC和微型MMC)、各种安全数字卡(例如,SD、迷你SD和微型SD)、通用闪存(UFS)、固态驱动器(SSD)等进行配置。
存储器***10可以包括控制器110和非易失性存储器装置200。
控制器100可以控制存储器***10的一般操作。控制器100可以根据主机装置20的诸如写入命令和读取命令的操作命令来控制非易失性存储器装置200执行前台操作。前台操作可以包括将数据写入非易失性存储器装置200中和从非易失性存储器装置200读取数据的操作。
此外,控制器100可以独立于主机装置20的操作命令来控制非易失性存储器装置200执行内部所需的后台操作。后台操作可以包括非易失性存储器装置200的损耗均衡操作、垃圾收集操作和擦除操作。与前台操作类似,后台操作还可以包括将数据写入非易失性存储器装置200中和从非易失性存储器装置200读取数据的操作。
控制器100可以包括主机接口110、处理器120、缓冲器130、存储器接口140和总线150。主机接口110、处理器120、缓冲器130和存储器接口140可以通过总线150彼此联接。
主机接口110可以与主机装置20通信。主机接口110可以从主机装置20接收针对目标逻辑地址的操作命令。主机接口110可以将操作命令传送到处理器120。而且,主机接口110可以将从主机装置20传送的写入数据临时存储在缓冲器130中,并且可以将从非易失性存储器装置200传送并临时存储在缓冲器130中的读取数据传送到主机装置20。
处理器120可以控制控制器100的一般操作。处理器120可以处理从主机装置20接收的操作命令,从而可以通过存储器接口140控制非易失性存储器装置200的内部操作,诸如写入操作和读取操作。处理器120可以包括将在下面描述的顺序确定电路121。
缓冲器130可以临时存储待在主机装置20和非易失性存储器装置200之间传送的写入数据和读取数据。可选地,与图1的图示不同,缓冲器130可以位于控制器100外部。
存储器接口140可以与非易失性存储器装置200联接,并且可以在处理器120的控制下控制非易失性存储器装置200的内部操作。存储器接口140可以将用于控制非易失性存储器装置200的控制信号传送到非易失性存储器装置200。存储器接口140可以将临时存储在缓冲器130中的写入数据传送到非易失性存储器装置200,并且可以将从非易失性存储器装置200接收的读取数据临时存储在缓冲器130中。
从主机装置20提供的数据可以具有顺序属性或随机属性。例如,顺序属性可以出现在基本上不改变的诸如照片和动态图像的大数据中。例如,随机属性可以出现在频繁更新的诸如主机装置20的***数据的数据中。具有顺序属性的顺序数据可以是冷数据,具有随机属性的随机数据可以是热数据。通常,主机装置20可以通过向顺序数据分配连续的逻辑地址来管理顺序数据。
当区别地处理顺序数据和随机数据时,存储器***10可以有效地操作。例如,如稍后将描述的,存储器***10可以将数据分类为顺序数据或随机数据。此外,存储器***10可以将顺序数据存储在非易失性存储器装置200的顺序区域210中,并将随机数据存储在非易失性存储器装置200的随机区域220中。以这种方式,当具有相同属性的数据被一起存储时,执行垃圾收集操作的计数可以减少,并且可以抑制非易失性存储器装置200的擦除计数的增加,从而可以延长非易失性存储器装置200的寿命。
当确定待从非易失性存储器装置200读取的数据是顺序数据时,存储器***10可以预测主机装置20将连续地读取顺序数据并且可以预先准备。
因此,顺序确定电路121可以确定从主机装置20接收的操作命令的目标逻辑地址是否具有顺序属性。当目标逻辑地址具有顺序属性时,可以确定与目标逻辑地址对应的数据是顺序数据。
详细地,顺序确定电路121可以确定多个逻辑地址范围之中的、包括目标逻辑地址的目标逻辑地址范围。多个逻辑地址范围可以是通过将主机装置20使用的全部逻辑地址划分为预定数量的范围而获得的逻辑地址范围。顺序确定电路121可以基于分别与多个逻辑地址范围对应的计数CNT之中的、与目标逻辑地址范围对应的目标计数来确定目标逻辑地址是否具有顺序属性。
在这方面,顺序确定电路121可以在确定目标逻辑地址是否具有顺序属性之前或之后增加目标计数。详细地,顺序确定电路121可以增加目标计数,并且可以基于增加的目标计数来确定目标逻辑地址是否具有顺序属性。可选地,顺序确定电路121可以首先基于目标计数确定目标逻辑地址是否具有顺序属性,然后可以增加目标计数。在后一种情况下,当确定后续操作命令的目标逻辑地址的属性时,可以参考增加的目标计数。
当目标计数大于或等于参考值时,顺序确定电路121可以确定目标逻辑地址具有顺序属性。相反地,当目标计数小于参考值时,顺序确定电路121可以确定目标逻辑地址具有随机属性。
顺序确定电路121可以进一步管理具有预设大小的历史列表LIST,以在预定范围内管理计数CNT。历史列表LIST可以包括从主机装置20接收并且最近即在当前时间之前处理的一个或多个操作命令的一个或多个逻辑地址。历史列表LIST中包括的逻辑地址可以以处理器120中处理逻辑地址的顺序布置在历史列表LIST中。例如,历史列表LIST可以具有先进先出(FIFO)队列的结构。因为逻辑地址被添加到历史列表LIST的顺序是处理器120中处理逻辑地址的顺序,所以逻辑地址被添加到历史列表LIST的顺序可以与从主机装置20接收逻辑地址的顺序不同。
详细地,当历史列表LIST未满时,顺序确定电路121可以将目标逻辑地址添加到历史列表LIST并增加目标计数。
当历史列表LIST已满时,顺序确定电路121可以在添加目标逻辑地址之前擦除历史列表LIST中的最旧逻辑地址并减少计数CNT之中的、与包括擦除的逻辑地址的逻辑地址范围对应的计数。当在擦除历史列表LIST中的最旧逻辑地址之后将目标逻辑地址添加到历史列表LIST时,顺序确定电路121可以增加目标计数。
在该示例中,计数CNT的总和可以等于历史列表LIST中包括的逻辑地址的数量。可以在历史列表LIST的预设大小内,即在可以包括在历史列表LIST中的逻辑地址的最大数量内,管理计数CNT的总和。
同时,可以从主机装置20接收针对一个或多个目标逻辑地址的单个操作命令。顺序确定电路121可以确定单个操作命令的一个或多个目标逻辑地址之中的仅一个代表性目标逻辑地址的顺序属性,并且可以将其结果应用于操作命令的剩余目标逻辑地址。例如,代表性目标逻辑地址可以是单个操作命令的一个或多个目标逻辑地址之中的初始目标逻辑地址。这可能是因为用于存储历史列表LIST和计数CNT的存储器的容量是有限的。
例如,当从主机装置20接收针对目标逻辑地址0至目标逻辑地址9的单个操作命令时,顺序确定电路121可以通过仅确定初始目标逻辑地址0的目标逻辑地址范围然后执行上述进程来确定初始目标逻辑地址0是具有顺序属性还是随机属性。当确定初始目标逻辑地址0具有顺序属性时,顺序确定电路121可以确定操作命令的剩余目标逻辑地址,即目标逻辑地址1至目标逻辑地址9,具有顺序属性。
将参照图2A至图2F详细描述上述顺序确定电路121的操作方法。
非易失性存储器装置200可以在存储器接口140的控制下存储从存储器接口140接收的写入数据,并读取存储的数据并将读取的数据传送到存储器接口140。
非易失性存储器装置200可以包括顺序区域210和随机区域220。顺序区域210可以用于存储顺序数据。随机区域220可以用于存储随机数据。当顺序确定电路121确定待存储在非易失性存储器装置200中的数据是顺序数据或随机数据时,非易失性存储器装置200可以在存储器接口140的控制下将顺序数据存储在顺序区域210中并且将随机数据存储在随机区域220中。
非易失性存储器装置200可以包括诸如NAND闪存或NOR闪存的闪速存储器、铁电随机存取存储器(FeRAM)、相变随机存取存储器(PCRAM)、磁阻随机存取存储器(MRAM)、电阻随机存取存储器(ReRAM)等。
虽然在图1中示出存储器***10包括一个非易失性存储器装置200,但是将注意的是,存储器***10中包括的非易失性存储器装置的数量不限于此。当存储器***10包括多个非易失性存储器装置时,每个非易失性存储器装置可以包括顺序区域210和随机区域220。可选地,顺序区域210和随机区域220可以位于不同的非易失性存储器装置中。
图2A至图2F是示出根据实施例的顺序确定电路,例如图1的顺序确定电路121的操作方法的示图。参照图2A至图2F,作为示例示出了由顺序确定电路121管理的历史列表LIST和计数CNT。
历史列表LIST可以具有先进先出(FIFO)队列的结构。因此,图2A至图2F示出了历史列表LIST的开始和结束。在图2A至图2F中,历史列表LIST的大小被示为5。因为历史列表LIST的大小是5,所以计数CNT的总和可以小于或等于5。
计数CNT可以分别对应于逻辑地址范围LAR0至LAR4。当主机装置20使用逻辑地址LA0至LA99时,逻辑地址LA0至LA99可以被划分为逻辑地址范围LAR0至LAR4。逻辑地址范围LAR0至LAR4中的每一个可以包括连续的逻辑地址。例如,逻辑地址范围LAR0可以包括逻辑地址LA0至LA19,逻辑地址范围LAR1可以包括逻辑地址LA20至LA39,逻辑地址范围LAR2可以包括逻辑地址LA40至LA59,逻辑地址范围LAR3可以包括逻辑地址LA60至LA79,并且逻辑地址范围LAR4可以包括逻辑地址LA80至LA99。逻辑地址范围LAR0至LAR4可以由与所示相同数量的逻辑地址来配置。可选地,逻辑地址范围LAR0至LAR4可以由不同数量的逻辑地址来配置。
在图2A至图2F中,目标逻辑地址LA38至LA43可以分别对应于不同的六个操作命令。因此,顺序确定电路121可以确定目标逻辑地址范围并且针对各个目标逻辑地址LA38至LA43增加计数CNT。
序列EX1可以是处理器120中处理目标逻辑地址LA38至LA43的顺序。也就是说,可以第一处理目标逻辑地址LA40,可以第二处理目标逻辑地址LA39,可以第三处理目标逻辑地址LA42,可以第四处理目标逻辑地址LA41,可以第五处理目标逻辑地址LA43,并且可以最后处理目标逻辑地址LA38。
目标逻辑地址LA38至LA43可以是与顺序数据对应的逻辑地址。即,目标逻辑地址LA38至LA43可以具有顺序属性。然而,目标逻辑地址LA38至LA43可能在目标逻辑地址LA38至LA43的连续性如所示的序列EX1中那样被破坏的情况下被处理。例如,即使在保持目标逻辑地址LA38至LA43的连续性的同时从主机装置20顺序地接收目标逻辑地址LA38至LA43,目标逻辑地址LA38至LA43也可能如所示的序列EX1存储在主机接口110中并且由处理器120以序列EX1进行处理。再例如,由于目标逻辑地址LA38至LA43在主机装置20中被作为多个线程进行处理,因此在目标逻辑地址LA38至LA43的连续性已经被破坏的情况下,可能从主机装置20以序列EX1接收目标逻辑地址LA38至LA43。然而,顺序确定电路121可以以下面描述的方法有效地检测目标逻辑地址LA38至LA43的顺序属性。
在下文中,将参照图2A至图2F描述处理目标逻辑地址LA38至LA43的方法。
在图2A中,当处理目标逻辑地址LA40时,顺序确定电路121可以确定历史列表LIST是否已满。由于历史列表LIST未满,因此顺序确定电路121可以将目标逻辑地址LA40添加到历史列表LIST。顺序确定电路121可以增加与包括目标逻辑地址LA40的目标逻辑地址范围LAR2对应的目标计数。由于与目标逻辑地址范围LAR2对应的目标计数“1”小于参考值RCNT“2”,因此顺序确定电路121可以确定目标逻辑地址LA40具有随机属性。
在图2B中,当处理目标逻辑地址LA39时,顺序确定电路121可以确定历史列表LIST是否已满。由于历史列表LIST未满,因此顺序确定电路121可以将目标逻辑地址LA39添加到历史列表LIST。顺序确定电路121可以增加与包括目标逻辑地址LA39的目标逻辑地址范围LAR1对应的目标计数。由于与目标逻辑地址范围LAR1对应的目标计数“1”小于参考值RCNT“2”,因此顺序确定电路121可以确定目标逻辑地址LA39具有随机属性。
在图2C中,当处理目标逻辑地址LA42时,顺序确定电路121可以确定历史列表LIST是否已满。由于历史列表LIST未满,因此顺序确定电路121可以将目标逻辑地址LA42添加到历史列表LIST。顺序确定电路121可以增加与包括目标逻辑地址LA42的目标逻辑地址范围LAR2对应的目标计数。由于与目标逻辑地址范围LAR2对应的目标计数“2”等于参考值RCNT“2”,因此顺序确定电路121可以确定目标逻辑地址LA42具有顺序属性。
在图2D中,当处理目标逻辑地址LA41时,顺序确定电路121可以确定历史列表LIST是否已满。由于历史列表LIST未满,因此顺序确定电路121可以将目标逻辑地址LA41添加到历史列表LIST。顺序确定电路121可以增加与包括目标逻辑地址LA41的目标逻辑地址范围LAR2对应的目标计数。由于与目标逻辑地址范围LAR2对应的目标计数“3”大于参考值RCNT“2”,因此顺序确定电路121可以确定目标逻辑地址LA41具有顺序属性。
在图2E中,当处理目标逻辑地址LA43时,顺序确定电路121可以确定历史列表LIST是否已满。由于历史列表LIST未满,因此顺序确定电路121可以将目标逻辑地址LA43添加到历史列表LIST。顺序确定电路121可以增加与包括目标逻辑地址LA43的目标逻辑地址范围LAR2对应的目标计数。由于与目标逻辑地址范围LAR2对应的目标计数“4”大于参考值RCNT“2”,因此顺序确定电路121可以确定目标逻辑地址LA43具有顺序属性。
在图2F中,当处理目标逻辑地址LA38时,顺序确定电路121可以确定历史列表LIST是否已满。由于历史列表LIST已满,顺序确定电路121可以擦除历史列表LIST中的最旧逻辑地址LA40,并且可以减少与包括擦除的逻辑地址LA40的逻辑地址范围LAR2对应的计数。然后,顺序确定电路121可以将目标逻辑地址LA38添加到历史列表LIST,并且可以增加与包括目标逻辑地址LA38的目标逻辑地址范围LAR1对应的目标计数。由于与目标逻辑地址范围LAR1对应的目标计数“2”等于参考值RCNT“2”,因此顺序确定电路121可以确定目标逻辑地址LA38具有顺序属性。
综上所述,实施例可以通过历史列表LIST和计数CNT检测目标逻辑地址LA38至LA43的顺序属性,并且可以通过确定与目标逻辑地址LA38至LA43对应的数据是否是顺序数据来处理目标逻辑地址LA38至LA43。
同时,将目标逻辑地址添加到历史列表LIST的进程和增加与目标逻辑地址范围对应的目标计数的进程中的任意一个可以先于另一个。
在图2A至图2F中,顺序确定电路121增加与目标逻辑地址范围对应的目标计数,并基于增加的目标计数确定目标逻辑地址的属性。可选地,顺序确定电路121可以首先基于与目标逻辑地址范围对应的目标计数来确定目标逻辑地址的属性,然后增加目标计数。根据该实施例,在图2C中,当处理目标逻辑地址LA42时,顺序确定电路121可以将与目标逻辑地址范围LAR2对应的目标计数即1与参考值RCNT进行比较。由于与目标逻辑地址范围LAR2对应的目标计数小于参考值RCNT,因此顺序确定电路121可以确定目标逻辑地址LA42具有随机属性。此后,顺序确定电路121可以将目标逻辑地址LA42添加到历史列表LIST,并且可以增加与目标逻辑地址范围LAR2对应的目标计数。
图3是示出根据实施例的顺序确定电路,例如图1的顺序确定电路121的操作方法的流程图。
参照图3,在步骤S110中,顺序确定电路121可以确定多个逻辑地址范围之中的目标逻辑地址范围。目标逻辑地址范围可以包括从主机装置20接收的操作命令的目标逻辑地址。
在步骤S120中,顺序确定电路121可以基于与逻辑地址范围对应的计数CNT之中的、与目标逻辑地址范围对应的目标计数来确定目标逻辑地址是否具有顺序属性。例如,当目标计数大于或等于参考值时,顺序确定电路121可以确定目标逻辑地址具有顺序属性。相反地,当目标计数小于参考值时,顺序确定电路121可以确定目标逻辑地址具有随机属性。
图4A和图4B是示出根据实施例的顺序确定电路,例如图1的顺序确定电路121基于目标计数确定目标逻辑地址的顺序属性的方法的流程图。例如,图4A和图4B可以是图3的步骤S120的详细实施例。
参照图4A,在步骤S211中,顺序确定电路121可以增加与目标逻辑地址范围对应的目标计数。
在步骤S212中,顺序确定电路121可以基于增加的目标计数来确定目标逻辑地址是否具有顺序属性。
参照图4B,在步骤S221中,顺序确定电路121可以基于与目标逻辑地址范围对应的目标计数来确定目标逻辑地址是否具有顺序属性。
在步骤S222中,顺序确定电路121可以增加与目标逻辑地址范围对应的目标计数。
图5是示出根据实施例的顺序确定电路,例如图1的顺序确定电路121增加目标计数的方法的流程图。例如,图5可以是图4A的步骤S211和图4B的步骤S222的详细实施例。
参照图5,在步骤S310中,顺序确定电路121可以确定历史列表LIST是否已满。当确定历史列表LIST已满(S310,是)时,进程可以进行到步骤S320。当确定历史列表LIST未满(S310,否)时,进程可以进行到步骤S330。
在步骤S320中,顺序确定电路121可以擦除历史列表LIST中的最旧逻辑地址,并且可以减少计数CNT之中的、与包括擦除的逻辑地址的逻辑地址范围对应的计数。
在步骤S330中,顺序确定电路121可以将目标逻辑地址添加到历史列表LIST,并且可以增加与包括目标逻辑地址的目标逻辑地址范围对应的目标计数。
图6是示出根据实施例的包括固态驱动器(SSD)1200的数据处理***1000的示图。参照图6,数据处理***1000可以包括主机装置1100以及SSD 1200。
SSD 1200可以包括控制器1210、缓冲存储器装置1220、多个非易失性存储器装置1231至123n、电源1240、信号连接器1250和电源连接器1260。
控制器1210可以控制SSD 1200的一般操作。控制器1210可以包括主机接口单元1211、控制单元1212、随机存取存储器1213、错误校正码(ECC)单元1214和存储器接口单元1215。
主机接口单元1211可以通过信号连接器1250与主机装置1100交换信号SGL。信号SGL可以包括命令、地址、数据等。根据主机装置1100的协议,主机接口单元1211可以接口连接主机装置1100和SSD1200。例如,主机接口单元1211可以通过诸如以下的标准接口协议中的任意一种与主机装置1100通信:安全数字、通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、个人计算机存储卡国际协会(PCMCIA)、并行高级技术附件(PATA)、串行高级技术附件(SATA)、小型计算机***接口(SCSI)、串联SCSI(SAS)、***组件互连(PCI)、PCI高速(PCI-e或PCIe)和通用闪存(UFS)。
控制单元1212可以分析并处理从主机装置1100接收的信号SGL。控制单元1212可以根据用于驱动SSD 1200的固件或软件来控制内部功能块的操作。随机存取存储器1213可以用作存储这种固件或软件的工作存储器。
控制单元1212可以包括顺序确定电路1216。顺序确定电路1216可以以与图1所示的顺序确定电路121相同的方式操作。
ECC单元1214可以生成待被传送到非易失性存储器装置1231至123n中的至少一个的数据的奇偶校验数据。生成的奇偶校验数据可以与该数据一起存储在非易失性存储器装置1231至123n中。ECC单元1214可以基于奇偶校验数据,检测从非易失性存储器装置1231至123n中的至少一个读取的数据的错误。如果检测到的错误在可校正的范围内,则ECC单元1214可以校正检测到的错误。
根据控制单元1212的控制,存储器接口单元1215可以将诸如命令和地址的控制信号提供到非易失性存储器装置1231至123n中的至少一个。此外,存储器接口单元1215可以根据控制单元1212的控制,与非易失性存储器装置1231至123n中的至少一个交换数据。例如,存储器接口单元1215可以将存储在缓冲存储器装置1220中的数据提供到非易失性存储器装置1231至123n中的至少一个,或将从非易失性存储器装置1231至123n中的至少一个读取的数据提供到缓冲存储器装置1220。
缓冲存储器装置1220可以临时存储待存储在非易失性存储器装置1231至123n中的至少一个中的数据。此外,缓冲存储器装置1220可以临时存储从非易失性存储器装置1231至123n中的至少一个读取的数据。可以根据控制器1210的控制将临时存储在缓冲存储器装置1220中的数据传送到主机装置1100或非易失性存储器装置1231至123n中的至少一个。
非易失性存储器装置1231至123n可以用作SSD 1200的存储介质。非易失性存储器装置1231至123n可以分别通过多个通道CH1至CHn与控制器1210联接。一个或多个非易失性存储器装置可以联接到一个通道。联接到每个通道的非易失性存储器装置可以联接到相同的信号总线和数据总线。
电源1240可以将通过电源连接器1260输入的电力PWR提供到SSD 1200的内部。电源1240可以包括辅助电源1241。辅助电源1241可以供应电力,以允许SSD 1200在发生突然断电时正常终止。辅助电源1241可以包括大容量电容器。
根据主机装置1100和SSD 1200之间的接口方案,信号连接器1250可以由各种类型的连接器来配置。
根据主机装置1100的供电方案,电源连接器1260可以由各种类型的连接器来配置。
图7是示出根据实施例的包括存储器***2200的数据处理***2000的示图。参照图7,数据处理***2000可以包括主机装置2100和存储器***2200。
主机装置2100可以以诸如印刷电路板的板的形式配置。虽然未示出,但是主机装置2100可以包括用于执行主机装置的功能的内部功能块。
主机装置2100可以包括诸如插座、插槽或连接器的连接端子2110。存储器***2200可以安装到连接端子2110。
存储器***2200可以以诸如印刷电路板的板的形式来配置。存储器***2200可以被称为存储器模块或存储卡。存储器***2200可以包括控制器2210、缓冲存储器装置2220、非易失性存储器装置2231和2232、电源管理集成电路(PMIC)2240和连接端子2250。
控制器2210可以控制存储器***2200的一般操作。控制器2210可以以与图6所示的控制器1210相同的方式来配置。
缓冲存储器装置2220可以临时存储待存储在非易失性存储器装置2231和2232中的数据。此外,缓冲存储器装置2220可以临时存储从非易失性存储器装置2231和2232读取的数据。可以根据控制器2210的控制将临时存储在缓冲存储器装置2220中的数据传送到主机装置2100或非易失性存储器装置2231和2232。
非易失性存储器装置2231和2232可以用作存储器***2200的存储介质。
PMIC 2240可以将通过连接端子2250输入的电力提供到存储器***2200的内部。PMIC 2240可以根据控制器2210的控制来管理存储器***2200的电力。
连接端子2250可以联接到主机装置2100的连接端子2110。通过连接端子2250,可以在主机装置2100和存储器***2200之间传送诸如命令、地址、数据等的信号以及电力。根据主机装置2100和存储器***2200之间的接口方案,连接端子2250可以被配置成各种类型。连接端子2250可以设置在存储器***2200的任意一侧上。
图8是示出根据实施例的包括存储器***3200的数据处理***3000的示图。参照图8,数据处理***3000可以包括主机装置3100和存储器***3200。
主机装置3100可以以诸如印刷电路板的板的形式配置。虽然未示出,但是主机装置3100可以包括用于执行主机装置的功能的内部功能块。
存储器***3200可以以表面安装型封装的形式配置。存储器***3200可以通过焊球3250安装到主机装置3100。存储器***3200可以包括控制器3210、缓冲存储器装置3220和非易失性存储器装置3230。
控制器3210可以控制存储器***3200的一般操作。控制器3210可以以与图6所示的控制器1210相同的方式来配置。
缓冲存储器装置3220可以临时存储待存储在非易失性存储器装置3230中的数据。此外,缓冲存储器装置3220可以临时存储从非易失性存储器装置3230读取的数据。可以根据控制器3210的控制将临时存储在缓冲存储器装置3220中的数据传送到主机装置3100或非易失性存储器装置3230。
非易失性存储器装置3230可以用作存储器***3200的存储介质。
图9是示出根据实施例的包括存储器***4200的网络***4000的示图。参照图9,网络***4000可以包括通过网络4500联接的服务器***4300和多个客户端***4410至4430。
服务器***4300可以响应于来自多个客户端***4410至4430的请求来服务数据。例如,服务器***4300可以存储从多个客户端***4410至4430提供的数据。再例如,服务器***4300可以将数据提供到多个客户端***4410至4430。
服务器***4300可以包括主机装置4100和存储器***4200。存储器***4200可以由图1所示的存储器***10、图6所示的SSD 1200、图7所示的存储器***2200或图8所示的存储器***3200来配置。
图10是示出根据实施例的存储器***中包括的非易失性存储器装置300的框图。参照图10,非易失性存储器装置300可以包括存储器单元阵列310、行解码器320、数据读取和写入(读取/写入)块330、列解码器340、电压生成器350和控制逻辑360。
存储器单元阵列310可以包括布置在字线WL1至WLm和位线BL1至BLn彼此相交的区域处的存储器单元MC。
行解码器320可以通过字线WL1至WLm与存储器单元阵列310联接。行解码器320可以根据控制逻辑360的控制进行操作。行解码器320可以对从外部装置(例如,图1的控制器100)提供的地址进行解码。行解码器320可以基于解码结果来选择并驱动字线WL1至WLm。例如,行解码器320可以将从电压生成器350提供的字线电压提供到字线WL1至WLm。
数据读取/写入块330可以通过位线BL1至BLn与存储器单元阵列310联接。数据读取/写入块330可以包括分别对应于字线BL1至BLn的读取/写入电路RW1至RWn。数据读取/写入块330可以根据控制逻辑360的控制进行操作。数据读取/写入块330可以根据操作模式而作为写入驱动器或读出放大器操作。例如,在写入操作中,数据读取/写入块330可以作为将从外部装置提供的数据存储在存储器单元阵列310中的写入驱动器操作。再例如,在读取操作中,数据读取/写入块330可以作为从存储器单元阵列310读出数据的读出放大器操作。
列解码器340可以根据控制逻辑360的控制进行操作。列解码器340可以对从外部装置提供的地址进行解码。列解码器340可以基于解码结果将数据读取/写入块330的、分别对应于位线BL1至BLn的读取/写入电路RW1至RWn与数据输入/输出线或数据输入/输出缓冲器联接。
电压生成器350可以生成待用于非易失性存储器装置300的内部操作的电压。由电压生成器350生成的电压可以应用于存储器单元阵列310的存储器单元。例如,在编程操作中生成的编程电压可以应用于将执行编程操作的存储器单元的字线。再例如,在擦除操作中生成的擦除电压可以应用于将执行擦除操作的存储器单元的阱区。又例如,在读取操作中生成的读取电压可以应用于将执行读取操作的存储器单元的字线。
控制逻辑360可以基于从外部装置提供的控制信号来控制非易失性存储器装置300的一般操作。例如,控制逻辑360可以控制非易失性存储器装置300的操作,诸如非易失性存储器装置300的读取操作、写入操作和擦除操作。
虽然上面已经描述了各个实施例,但是本领域技术人员将理解的是,所描述的实施例仅是示例。因此,不应基于所描述的实施例来限制本文中描述的存储器***及其操作方法。
Claims (19)
1.一种存储器***,包括:
非易失性存储器装置;以及
控制器,从主机装置接收针对目标逻辑地址的操作命令,并且响应于所述操作命令来控制所述非易失性存储器装置,
其中所述控制器确定多个逻辑地址范围之中的、包括所述目标逻辑地址的目标逻辑地址范围,并且基于与所述多个逻辑地址范围对应的计数之中的、与所述目标逻辑地址范围对应的目标计数来确定所述目标逻辑地址是否具有顺序属性。
2.根据权利要求1所述的存储器***,其中在确定所述目标逻辑地址是否具有所述顺序属性之前或之后,所述控制器增加所述目标计数。
3.根据权利要求2所述的存储器***,其中在历史列表未满的情况下,所述控制器将所述目标逻辑地址添加到所述历史列表并且增加所述目标计数。
4.根据权利要求3所述的存储器***,其中在所述历史列表已满的情况下,在将所述目标逻辑地址添加到所述历史列表之前,所述控制器擦除所述历史列表中的最旧逻辑地址并且减少所述计数之中的、与包括所述最旧逻辑地址的逻辑地址范围对应的计数。
5.根据权利要求3所述的存储器***,其中所述历史列表以与最近处理的一个或多个操作命令对应的一个或多个逻辑地址被处理的顺序包括所述逻辑地址。
6.根据权利要求1所述的存储器***,其中当所述目标计数大于或等于参考值时,所述控制器确定所述目标逻辑地址具有所述顺序属性。
7.根据权利要求1所述的存储器***,其中当所述目标计数小于参考值时,所述控制器确定所述目标逻辑地址具有随机属性。
8.根据权利要求1所述的存储器***,
其中所述非易失性存储器装置包括顺序区域和随机区域,并且
其中所述控制器基于所述目标逻辑地址是否具有所述顺序属性,将与所述目标逻辑地址对应的数据存储在所述顺序区域或所述随机区域中。
9.根据权利要求1所述的存储器***,其中当所述操作命令对应于多个目标逻辑地址时,所述控制器选择所述多个目标逻辑地址中的任意一个作为所述目标逻辑地址,确定所述目标逻辑地址是否具有所述顺序属性,并且将所述多个目标逻辑地址之中的剩余目标逻辑地址的属性确定为与所述目标逻辑地址的属性相同。
10.一种存储器***的操作方法,包括:
确定多个逻辑地址范围之中的、包括与从主机装置接收的操作命令对应的目标逻辑地址的目标逻辑地址范围;以及
基于与所述多个逻辑地址范围对应的计数之中的、与所述目标逻辑地址范围对应的目标计数来确定所述目标逻辑地址是否具有顺序属性。
11.根据权利要求10所述的操作方法,进一步包括:
在确定所述目标逻辑地址是否具有所述顺序属性之前或之后,增加所述目标计数。
12.根据权利要求11所述的操作方法,其中增加所述目标计数包括:
在历史列表未满的情况下,将所述目标逻辑地址添加到所述历史列表并且增加所述目标计数。
13.根据权利要求12所述的操作方法,其中增加所述目标计数进一步包括:
在所述历史列表已满的情况下,在将所述目标逻辑地址添加到所述历史列表之前,擦除所述历史列表中的最旧逻辑地址并且减少所述计数之中的、与包括所述最旧逻辑地址的逻辑地址范围对应的计数。
14.根据权利要求12所述的操作方法,其中所述历史列表以与最近处理的一个或多个操作命令对应的一个或多个逻辑地址被处理的顺序包括所述逻辑地址。
15.根据权利要求10所述的操作方法,其中确定所述目标逻辑地址是否具有所述顺序属性包括:
当所述目标计数大于或等于参考值时,确定所述目标逻辑地址具有所述顺序属性。
16.根据权利要求10所述的操作方法,其中确定所述目标逻辑地址是否具有所述顺序属性包括:
当所述目标计数小于参考值时,确定所述目标逻辑地址具有随机属性。
17.根据权利要求10所述的操作方法,进一步包括:
基于所述目标逻辑地址是否具有所述顺序属性,确定存储与所述目标逻辑地址对应的数据的区域。
18.根据权利要求10所述的操作方法,进一步包括:
当所述操作命令对应于多个目标逻辑地址时,选择所述多个目标逻辑地址中的任意一个作为所述目标逻辑地址,以确定所述目标逻辑地址范围;
确定所述目标逻辑地址是否具有所述顺序属性;以及
将所述多个目标逻辑地址之中的剩余目标逻辑地址的属性确定为与所述目标逻辑地址的属性相同。
19.一种存储器***,包括:
存储器装置;以及
控制器:
接收针对所述存储器装置的至少一个命令和与所述命令相关联的逻辑地址的序列;
确定多个逻辑地址范围之中的、与所述逻辑地址中的每一个对应的地址范围;
基于确定的地址范围对所述多个逻辑地址范围中的每一个的数量进行计数;并且
基于计数的数量来确定所述逻辑地址中的每一个是否是顺序的。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0167683 | 2018-12-21 | ||
KR1020180167683A KR20200078101A (ko) | 2018-12-21 | 2018-12-21 | 메모리 시스템 및 그것의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111352856A CN111352856A (zh) | 2020-06-30 |
CN111352856B true CN111352856B (zh) | 2023-04-07 |
Family
ID=71096849
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910931348.5A Active CN111352856B (zh) | 2018-12-21 | 2019-09-29 | 存储器***及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10929055B2 (zh) |
KR (1) | KR20200078101A (zh) |
CN (1) | CN111352856B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10990311B2 (en) * | 2019-06-19 | 2021-04-27 | Western Digital Technologies, Inc. | Multi-stream non-volatile storage system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160021957A (ko) * | 2014-08-18 | 2016-02-29 | 삼성전자주식회사 | 메모리 컨트롤러의 동작 방법 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템 |
CN105683897A (zh) * | 2013-08-07 | 2016-06-15 | 桑迪士克科技股份有限公司 | 具有陈旧数据机制的数据贮存***及其操作方法 |
CN108073470A (zh) * | 2016-11-07 | 2018-05-25 | 三星电子株式会社 | 执行地址映射表的纠错的存储器***及其控制方法 |
CN108280033A (zh) * | 2017-01-04 | 2018-07-13 | 爱思开海力士有限公司 | 数据存储设备及其操作方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010211618A (ja) | 2009-03-11 | 2010-09-24 | Toshiba Corp | 半導体記憶装置 |
US9690694B2 (en) * | 2011-09-27 | 2017-06-27 | Sandisk Technologies, Llc | Apparatus, system, and method for an address translation layer |
US9588886B2 (en) * | 2013-03-15 | 2017-03-07 | Seagate Technology Llc | Staging sorted data in intermediate storage |
US9423971B2 (en) * | 2014-10-03 | 2016-08-23 | Sandisk Technologies Llc | Method and system for adaptively assigning logical block address read counters using a tree structure |
US9959204B1 (en) * | 2015-03-09 | 2018-05-01 | Western Digital Technologies, Inc. | Tracking sequential ranges of non-ordered data |
US9921956B2 (en) * | 2016-07-20 | 2018-03-20 | Sandisk Technologies Llc | System and method for tracking block level mapping overhead in a non-volatile memory |
US11263124B2 (en) * | 2018-08-03 | 2022-03-01 | Micron Technology, Inc. | Host-resident translation layer validity check |
US10725930B2 (en) * | 2018-08-27 | 2020-07-28 | Micron Technology, Inc. | Logical to physical memory address mapping tree |
-
2018
- 2018-12-21 KR KR1020180167683A patent/KR20200078101A/ko active Search and Examination
-
2019
- 2019-08-01 US US16/529,215 patent/US10929055B2/en active Active
- 2019-09-29 CN CN201910931348.5A patent/CN111352856B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105683897A (zh) * | 2013-08-07 | 2016-06-15 | 桑迪士克科技股份有限公司 | 具有陈旧数据机制的数据贮存***及其操作方法 |
KR20160021957A (ko) * | 2014-08-18 | 2016-02-29 | 삼성전자주식회사 | 메모리 컨트롤러의 동작 방법 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템 |
CN108073470A (zh) * | 2016-11-07 | 2018-05-25 | 三星电子株式会社 | 执行地址映射表的纠错的存储器***及其控制方法 |
CN108280033A (zh) * | 2017-01-04 | 2018-07-13 | 爱思开海力士有限公司 | 数据存储设备及其操作方法 |
Non-Patent Citations (2)
Title |
---|
Exploring and exploiting the multilevel parallelism inside SSDs for improved performance and endurance;Hu Y;《IEEE Transactions on Computers》;20121231;1141-1155 * |
小型PLC的数据配置与ARM-FPGA总线接口的研制;李刚;《中国优秀硕士学位论文全文数据库信息科技辑》;20170705(第07期);I137-21 * |
Also Published As
Publication number | Publication date |
---|---|
US10929055B2 (en) | 2021-02-23 |
US20200201557A1 (en) | 2020-06-25 |
CN111352856A (zh) | 2020-06-30 |
KR20200078101A (ko) | 2020-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220138096A1 (en) | Memory system | |
US12026398B2 (en) | Memory system performing flush operation for buffer region | |
US20200174921A1 (en) | Data storage device, operation method thereof, and storage system including the same | |
US10698830B2 (en) | Obtaining data in a nonvolatile memory device through the use of descriptors | |
US20210216458A1 (en) | Memory system performing host map management | |
US10754552B2 (en) | Data storage device and operating method thereof | |
CN110389907B (zh) | 电子装置 | |
US20200125285A1 (en) | Memory system and operating method thereof | |
US20200150898A1 (en) | Memory system and operating method thereof | |
CN112783430A (zh) | 存储器*** | |
US20230289059A1 (en) | Memory system and operating method thereof | |
CN111352856B (zh) | 存储器***及其操作方法 | |
CN108417232B (zh) | 数据存储装置及其操作方法 | |
US11366736B2 (en) | Memory system using SRAM with flag information to identify unmapped addresses | |
US10776008B2 (en) | Memory system and operating method thereof | |
US10628067B2 (en) | Memory system and operating method thereof | |
CN112084118A (zh) | 数据存储装置及其操作方法 | |
CN111309647B (zh) | 存储装置 | |
US11954351B2 (en) | Memory system, operating method thereof, and data processing system for processing duplicate data | |
CN110825654B (zh) | 存储器***及其操作方法 | |
US20210223956A1 (en) | Memory system and data processing system including the same | |
US20210294513A1 (en) | Memory system | |
KR20220068385A (ko) | 메모리 시스템 | |
CN111061424A (zh) | 数据存储装置及数据存储装置的操作方法 |
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 | ||
OR01 | Other related matters | ||
OR01 | Other related matters |