CN104731717A - 存储器装置及存储器管理方法 - Google Patents
存储器装置及存储器管理方法 Download PDFInfo
- Publication number
- CN104731717A CN104731717A CN201410797820.8A CN201410797820A CN104731717A CN 104731717 A CN104731717 A CN 104731717A CN 201410797820 A CN201410797820 A CN 201410797820A CN 104731717 A CN104731717 A CN 104731717A
- Authority
- CN
- China
- Prior art keywords
- logical
- classification
- storage section
- memory segments
- section
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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
-
- 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
- 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
- G06F2212/1024—Latency reduction
-
- 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
-
- 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/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- 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
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 (AREA)
Abstract
本发明公开了一种存储器装置及存储器管理方法,以管理包括多个物理存储器区段的存储器装置。基于使用规格将逻辑存储器空间分类成多个分类。基于多个分类以及物理存储器区段的使用统计,将多个物理存储器区段配置至对应的逻辑地址。数据结构是被维持记录逻辑存储器空间中的逻辑地址与物理存储器区段的实体地址之间的转换。多个分类包括第一及第二分类,第二分类具有不同于第一分类的使用统计需求。可将具有第二分类的逻辑地址重新寻址至被配置至具有第一分类的逻辑地址的实体区段,且可更新数据结构以记录重新寻址的逻辑地址。闲置命令可释放配置为供主存储器使用的物理存储器区段。
Description
技术领域
本发明是有关于包括存储器管理的存储器装置及系统。
背景技术
用于大型储存器的储存媒体可以比用于高速存取的主存储器装置的媒体慢三个数量级以上。在主存储器与储存器之间的这种性能差距,已经变成计算系统的一个重要设计议题,这是因为多数应用程序需要在主存储器与储存器之间密集的输入/输出。某些类型的非易失性存储器(例如相变化存储器),因为其字节可寻址能性、非易失性、容量扩展性,以及高存取效能,故可被使用于主存储器及存储器两者。然而,非易失性存储器常具有耐写度限制。对于非易失性存储器(例如相变化材料式的存储器)的耐写度限制可以是大约106-109循环,而对于动态随机存取存储器(DRAM)的读取/写入限制可以是1015循环以上。在不需要关于循环计算的存储器管理的情况下,某些部分的储存媒体可能被过度使用,且过早地磨损或甚至导致系统故障。这些问题特别有可能发生在将非易失性存储器使用于主存储器及大量储存两者时的状况。
理想上是可提供一种存储器管理方案,以允许非易失性存储器(例如相变化存储器)用于多个目的(例如供主存储器及大量储存两者使用),同时保持低的输入/输出流量。
发明内容
本发明提供一种方法,用于管理一种具有多个物理存储器区段的存储器装置。基于使用规格(例如用以适合主存储器的快速读取规格的类别,及用以适合大量储存的耐久性规格的类别),一逻辑存储器空间是被分类成多个分类。基于多个分类中的逻辑地址的分类,及基于物理存储器区段的使用统计,多个物理存储器区段是被配置至对应的逻辑地址。一个数据结构是被维持以记录逻辑存储器空间中的逻辑地址与物理存储器区段的实体地址之间的转换。数据结构可包括关于各个分类的逻辑至实体转换表,以及一转译后备缓冲器(Translation Lookaside Buffer,TLB)被一存储器管理系统使用以改善逻辑至实体地址转换的速度。多个分类可包括一第一分类(例如适合长期储存使用),以及一第二分类(例如适合主存储器使用),第二分类具有不同于第一分类的使用统计需求。具有第二分类的逻辑地址所映像至的高度使用的实体区段,可通过将它们的逻辑地址重新寻址到被配置至具有第一分类的逻辑地址的实体区段,而受到保护免于超过耐久度限制。数据结构可被更新,以记录重新寻址的逻辑地址。
在于此所说明的技术中,闲置物理存储器区段的多组储存桶(bucket)所包含的识别符,是可基于闲置存储器区段的使用统计而被维持。一储存桶为一数据结构,可包括一连串的实体区段,这些实体区段具有符合应用至储存桶的使用基准的使用统计。多组储存桶可一对一或多对一地对应至多个分类。一闲置存储器区段可例如通过更新逻辑至实体地址的映像,而被配置至对应于符合特定分类的使用统计的一逻辑地址,该逻辑地址为一储存桶的多个分类的一特定分类中的逻辑地址。当一闲置存储器区段被配置时,闲置存储器区段是从储存桶被移除。举例而言,如果操作系统释放存储器空间,或如果其不再符合关于分类的使用基准的话,则一物理存储器区段可被取消配置。当一物理存储器区段被取消配置并变成一闲置存储器区段时,该物理存储器区段是被加至多组储存桶的一组中的一储存桶,其中该取消配置的物理存储器区段具有一使用统计,该使用统计与该物理存储器区段所加入的该储存桶的使用统计相符合。
提供链结及取消链结命令,以将主存储器使用的逻辑存储器区段重新寻址至配置为长期储存器使用配置的实体区段,而不是实体上从一长期储存装置复制数据至一主存储器装置,藉以降低在主存储器与长期储存器之间的加载及储存数据方面的成本。提供一闲置命令,以允许主机系统释放一不再被主机系统所使用的一逻辑存储器区段给主存储器使用。
本发明的其他实施样态及优点可在图式、详细说明与随附的权利要求范围获得了解。
附图说明
图1为存储器管理系统的一例的方块图。
图1A显示一主机系统中的主存储器空间及储存空间及一存储器装置中的对应的物理存储器区段。
图2显示一种数据结构,用以在逻辑存储器空间中的逻辑地址与物理存储器区段的实体地址之间转换用。
图2A显示使用图2所显示的数据结构的逻辑至实体地址转换的例子。
图3显示主存储器管理器的一实施例。
图4显示储存器管理器的一实施例。
图5显示空间管理器的一实施例。
图6为用于将一闲置存储器区段配置至存储器装置的逻辑存储器空间中具有第一分类的逻辑存储器区段的流程图。
图7为用于舍弃一物理存储器区段的流程图。
图8为用于将一闲置存储器区段配置至存储器装置的逻辑存储器空间中具有第二分类的逻辑存储器区段的流程图。
图9为用于降级一物理存储器区段的流程图。
图10为关于一链结命令的流程图。
图11为使用如图10中的链结命令的一例子。
图12为关于一取消链结命令的流程图。
图13为关于一闲置命令的流程图。
【符号说明】
100:存储器管理系统
101:逻辑主存储器空间
102:逻辑储存空间
110:主机系统
121:主存储器装置驱动器
122:储存装置驱动器
130:存储器控制器/存储器转换层
132:主存储器管理器
134:储存管理器
136:空间管理器
138:转译后备缓冲器
140:存储器控制器
170:存储器装置/实体段码
180:物理存储器空间(又称为实体存储器空间)
190:管理空间
210:存储器区段项目
211:实体地址/物理存储器区段
212:分页码
213:区段码
214:间接位
215:物理存储器分页/逻辑储存分页
280:存储器区段项目
290:储存区段项目
291:物理存储器区段(又称为实体存储器区段)
310:区段地址
320:区段偏移
330:“硬件查找表”部件
350:实体装置地址
410:区段地址
420:区段偏移
430:地址转换
440:实体区段地址
450:实体地址
510:方块
518:方块
528:头部
538:圆形
540:舍弃阈值
550:降级阈值
610至680:步骤
710至750:步骤
810至890:步骤
910至950:步骤
1010至1060:步骤
1210至1230:步骤
1310至1350:步骤
具体实施方式
以下参考图式提供本发明的实施例的详细说明。下述说明一般将参考特定的构造实施例及方法。应理解的是,本发明并非限制于揭露的实施例及方法,本发明可通过使用其他特征、元件、方法及实施例而被实行。较佳实施例是被描述以说明本发明,而非限制其范围,其范围是由权利要求范围所定义。熟习本项技艺者将认定在随后的说明上的各种等效变化。各种实施例中的相同的元件通常指向具有相同的参考数字。
图1为存储器管理系统100的一例的方块图,存储器管理系统100包括一主机系统110、一存储器控制器140及一存储器装置170。主机系统110被耦接至一主存储器装置驱动器121及一储存装置驱动器122。存储器控制器140包括一存储器转换层130,存储器转换层130包括一主存储器管理器132、一储存管理器134、一空间管理器136以及一转译后备缓冲器(TLB)138。存储器装置170包括物理存储器(又称实体存储器)空间180(包括多个物理存储器区段),以及一管理空间190。物理存储器空间180中的物理存储器区段可被配置,以供主存储器使用或较长期储存使用。管理空间可储存一存储器区段表、一储存区段表、一闲置物理存储器区段的储存桶清单(bucket list),以及由链结及取消链结命令所使用的链结信息,如说明书中所说明的。存储器控制器140被耦接至主机系统110、主存储器装置驱动器121、储存装置驱动器122与存储器装置170。虽然只显示一个存储器装置,但存储器控制器可被耦接至并控制多个存储器装置。主机系统经由主存储器装置驱动器121及储存装置驱动器122发布主存储器需求、储存需求、一闲置命令、一链结命令以及一取消链结命令给存储器控制器。
如果一逻辑地址是由一主存储器请求而被要求以供主存储器使用,则主存储器管理器132操作从请求的逻辑地址至存储器装置中的对应的实体地址的地址转换。如果一逻辑地址是由一储存请求而被要求以供长期储存使用,则储存管理器134操作从请求的逻辑地址至存储器装置中的对应的实体地址的地址转换。如果请求的逻辑地址并未映像至任何实体地址,则调用空间管理器136,以基于耐写度配置供主存储器管理器或储存管理器用的一物理存储器区段。转译后备缓冲器(TLB)138储存一逻辑地址及一实体地址之间的转换结果,用于改善地址转换的性能,其中该逻辑位置是由主机系统110所使用的一逻辑区段的逻辑地址,以及该实体位置是由存储器装置170所使用的一实体区段的一对应的实体地址。
存储器装置的逻辑存储器空间是基于使用规格而被分类成多个分类。这些使用规格可包括具有短期储存使用且供一中央处理单元(CPU)快速存取的主存储器,以及具有长期储存使用的储存存储器。多个分类可包括一第一分类(例如适合长期储存使用),以及一第二分类(例如适合主存储器使用),第二分类具有不同于第一分类的使用统计需求。
图1A显示主机系统中的主存储器空间及储存空间,以及在一存储器装置中的对应的物理存储器区段。在一个实施例中,在具有64.1GB(千兆位组)大小的一存储器装置中,64.1GB的100MB(亦即,0.1GB)可被保存以供管理空间(例如190)用,而64.1GB的64GB可被保存以供物理存储器空间(例如180)中的物理存储器区段用。主机系统可维持对应于物理存储器空间180的64GB的一逻辑存储器空间,包括供主存储器使用的一逻辑主存储器空间(例如101),以及供长期储存使用的一逻辑储存空间(例如102)。例如,逻辑主存储器空间101可具有8GB,而逻辑储存空间102可具有56GB。虽然于此例子中,供主存储器使用的存储器与供长期储存使用的存储器的比率为8比56,但此比率可以由存储器管理系统所定义。
图2显示一种数据结构,用以在逻辑存储器空间中的逻辑地址与存储器装置中的物理存储器区段的实体地址之间转换用。数据结构可包括一个供为长期储存使用所配置的物理存储器区段的储存区段表,以及一个供主存储器使用所配置的物理存储器区段的存储器区段表。储存区段表与存储器区段表可被储存于管理空间(例如190)中。
在一个实施例中,多个物理存储器区段中的每个物理存储器区段可具有一固定大小,例如4MB(兆字节),并可被使用作为供存储器配置及地址转换用的单元。每个物理存储器区段可更进一步被分为固定大小的实体分页(例如,4KB分页),且每个实体分页可包括一固定数目的实体线,其中一实体线的大小是与一CPU(中央处理单元)的快取线大小(例如,64B)相同。一快取线为CPU用以存取存储器的基本单元。存储器装置中的每个物理存储器区段可轮流地被配置以供主存储器使用,通过尽可能公平地分配写入至每个物理存储器区段,以使非易失性存储器作为主存储器的耐写度问题可被解决。
存储器装置的逻辑存储器空间是基于使用规格被分类成多个分类。例如,使用规格可包括关于主存储器使用及关于长期储存使用的规格。每个分类可更进一步分为固定大小的逻辑存储器区段,其具有与物理存储器区段相同的大小。每个逻辑存储器区段可更进一步分为具有与实体分页相同大小的固定大小的逻辑分页,以及具有与实体线相同大小的逻辑线。因此,一逻辑存储器区段可被映像至一物理存储器区段。
储存区段表包括多个储存区段项目。每个储存区段项目(例如290)包括映像至一对应的逻辑区段的一物理存储器区段的地址(例如291)以供长期储存使用。当存储器装置中的一实体区段被配置至储存空间中的一逻辑存储器区段时,实体区段的实体地址被记录在储存区段项目中。同样地,存储器区段表包括多个存储器区段项目(例如210、280)。每个存储器区段项目(例如210)包括映像至一对应的逻辑区段的一物理存储器区段的地址(例如211)以供主存储器使用。当存储器装置中的一实体区段是被配置至主存储器空间中的一逻辑存储器区段时,实体区段的实体地址是被记录在存储器区段项目中。
每个存储器区段项目(例如210)亦可包括一分页码(例如212)、一区段码(例如213)以及关于主存储器空间中的一区段中的每个分页的一间接位(例如214),间接位被链接至供长期储存使用所配置的一实体区段中的一分页。例如,如果一存储器区段具有4,096KB的大小,而一分页具有4KB(千字节)的大小,则存储器区段包括4,096KB/4KB=1024存储器分页,而供存储器区段用的存储器区段项目可包括高达1024组的分页码、区段码与间接位。分页码、区段码与间接位是被一链结命令及一取消链结命令所使用。链结及取消链结命令是更进一步结合图10及图11作说明。
图2A显示使用图2所显示的数据结构的逻辑至实体地址转换的例子。如显示于图2A的例子中,一物理存储器空间具有64GB的大小并包括物理存储器区段0-16383。每个物理存储器区段具有4MB的大小。物理存储器区段0、1、2、3及16383是分别位于实体地址0GB、0.004GB、0.008GB、0.012GB以及63.996GB。物理存储器区段1包括一物理存储器分页215,物理存储器分页215是同时由存储器区段表与储存区段表所使用。如果一物理存储器区段是被配置以供主存储器使用或长期储存使用的话,则此物理存储器区段为已使用,否则此物理存储器区段为闲置以被配置。例如,物理存储器区段0-3已使用,而物理存储器区段16383被闲置。
如于图2A的例子中所显示的,存储器区段表包括供逻辑主存储器空间(例如图1A的101)中的逻辑存储器区段用的多个存储器区段项目。逻辑主存储器空间具有8GB的大小(从逻辑存储器地址0GB开始),并包括逻辑存储器区段0-2047。每个逻辑存储器区段具有与物理存储器空间中的每个物理存储器区段相同的大小,譬如4MB。逻辑存储器区段0及2047是分别位于逻辑地址0GB及7.996GB。
供逻辑存储器区段0用的存储器区段项目包括实体地址0GB(例如211),藉以指出位于实体地址0GB的一物理存储器区段已被配置至逻辑主存储器空间中的逻辑存储器区段0。
供逻辑存储器区段0用的存储器区段项目亦包括一具有′0′的数值的分页码(例如212)、一具有′0′的数值的区段码(例如213)、以及一具有′1′的数值的间接位(例如214),藉以指出逻辑存储器区段0的最终逻辑分页已被链接至物理存储器区段′1′中的逻辑储存区段0的逻辑储存分页0(例如215),从而使主存储器空间中的逻辑存储器区段0的最终分页并未被转换至位于实体地址0GB的实体区段0(例如211)。分页码212、区段码213以及间接位214表示逻辑存储器区段0的最终分页被映像至逻辑储存区段0的第一逻辑储存LBA(逻辑区块地址)。
如使用于本发明说明书中的,一分页表示一逻辑主存储器空间中的基本单元,而一LBA(逻辑区块地址)表示一逻辑储存空间中的基本单元。在一个实施例中,一分页的大小是与一LBA的大小相同,以使在一分页与一LBA的不同大小之间的转换可被消除。例如,一分页可具有4KB的大小,而一LBA可具有4KB的相同的大小。
如果一逻辑存储器分页的间接位具有′0′的数值,则逻辑存储器区段是被转换至存储器区段项目中的实体地址(例如211)。例如,供逻辑存储器区段2047用的存储器区段项目中的实体地址为0.012GB,而间接位具有供逻辑存储器区段2047中的所有逻辑分页用的′0′的数值(例如284)。因此,逻辑存储器区段2047中的每个逻辑存储器分页是被转换至位于实体地址0.012GB的物理存储器区段3中的一对应的存储器分页。
当供一逻辑存储器分页用的一存储器区段项目中的间接位具有′0′的数值时,存储器区段项目中的分页码及区段码具有′NULL′的数值,表示主存储器空间中的逻辑存储器分页并未链接至任何物理存储器区段中的任何实体分页。
如于图2A的例子中所显示的,储存区段表包括供逻辑储存空间(例如图1A的102)中的逻辑储存段区用的多个储存区段项目。逻辑储存空间具有56GB的大小(从0GB的逻辑储存地址开始),并包括逻辑存储器区段0-14335。每个逻辑存储器区段具有与物理存储器空间中的每个物理存储器区段相同的大小,譬如4MB。逻辑存储器区段0、1及14335是分别位于逻辑地址0GB、0.004GB及55.996GB。
供长期储存使用的逻辑储存空间(例如102)中的逻辑储存区段0用的储存区段项目包括实体地址0.004GB,藉以指出位于实体地址0.004GB的一物理存储器区段已被配置至供位于逻辑储存空间中的逻辑储存地址0.000GB的长期储存使用的逻辑储存区段0。同样地,供长期储存使用的逻辑储存空间(例如102)中的逻辑储存区段1的储存区段项目包括实体地址0.008GB,藉以指出位于实体地址0.008GB的一物理存储器区段已被配置至供位于逻辑储存空间中的逻辑储存地址0.004GB的长期储存使用的辑储存区段1。
图3显示主存储器管理器(例如图1的132)的一实施例。由于允许主存储器需求执行地址转换的时间有限,主存储器管理器是被地址转换硬件所支持,用以将请求地址转换成其对应的实体地址。如图3的例子所示,当接收一主存储器需求以存取主存储器时,请求地址被分为一区段地址(例如310)及一区段偏移(例如320)。区段地址表示请求地址驻留的逻辑存储器区段,以使其可被作为一索引来使用,以通过查储存于地址转换硬件的“硬件查找表(hardware lookup)”部件(例如330)中的存储器区段表发现其存在逻辑区段的对应的物理存储器区段的地址。由“硬件查找表”部件(例如340)所产生的实体区段地址,是通过如以一具有加号的圆形表示的硬件电路而与区段偏移(例如320)结合,用以导出接收的主存储器需求的实体装置地址(例如350)。可使用导出的实体区段地址以存取存储器装置170中的一物理存储器区段。
存储器区段表(图2)可依需求而被储存于管理空间(例如图1的190)中并加载至“硬件查找表”部件(例如330)。如果存储器区段表可适合于地址转换硬件,存储器区段表亦可储存于地址转换硬件中。
图4显示储存管理器的一实施例。储存管理器(例如图1的134)管理储存于管理空间中的储存段区表(图2),以供从请求地址转换至它们对应的实体地址。储存区段表可从存储器装置中的管理空间被加载。对于储存需求的地址转换(例如430)并不需要如主存储器需求所需要的地址转换硬件的支持,这是因为对于服务储存需求只花一小部分的时间。然而,即使一非易失性存储器装置(例如一相变化存储器装置)为字节可寻址,且接收需求后是以处理器字或快取线的单位来存取存储器地址,来自主机系统的储存需求还是以一分页为单位(例如4096字节)中。因此,从主机系统发布的存取数据分页的一储存需求,可被一装置驱动器所预先处理,以使储存需求被转换成为相关于分页的对应的存储器地址的一连串的需求,如图4所示。当储存管理器接收一转换的储存需求时,请求地址被分为一区段地址(例如410)及一区段偏移(例如420)。区段地址表示请求地址驻留的逻辑区段,于其中,以使请求地址被作为一索引使用,以查找关于其对应的逻辑区段的实体区段的储存区段表。导出的实体区段地址(例如440)是与区段偏移(例如420)合并,用以导出接收的储存需求的实体地址(例如450)。接着可使用实体地址(例如450),以存取存储器装置170中的一物理存储器区段。
图5显示空间管理器的一实施例,使用对应于多个分类的闲置存储器区段的多组储存桶。空间管理器(例如图1的136)基于多个分类中的分类,以及基于物理存储器区段的使用统计,来管理并配置闲置实体区段。空间管理器是被主存储器管理器132调用,以将闲置实体区段配置至逻辑存储器区段以供主存储器使用,或被储存管理器134调用以将闲置实体段配置至逻辑存储器区段以供长期储存使用。
空间管理器可通过使用物理存储器区段的使用统计中的信息,来维持闲置存储器区段的多组储存桶。例如,使用统计可包括闲置存储器区段的写入次数(write count)。在一个实施例中,当针对物理存储器区段执行一写入操作时,增加了一物理存储器区段的写入次数。如图5的例子所示,储存桶8至0是按照较高写入次数来维护,其中储存桶8具有最低写入次数,而储存桶0具有最高的写入次数。每个储存桶链结具有类似的写入次数的闲置实体区段。当实体区段被主机系统所释放时,可将一闲置实体区段加至一对应的储存桶的尾部,例如以每个储存桶的一圆形(例如储存桶8的538)来表示。当闲置实体区段是被配置至一逻辑区段时,一闲置实体区段可从储存桶的头部(例如储存桶8的528)被移除。
一物理存储器区段的剩下的写入次数,可通过从对应于存储器装置的耐写度的剩下的写入次数上限,减去物理存储器区段的写入次数而被导出。一物理存储器区段的写入次数可以是物理存储器区段中的实体分页及/或实体线的写入次数的最高者。如图5的例子所示,储存桶8中的物理存储器区段的剩下的写入次数大约是108,如方块518所示,而储存桶0中的物理存储器区段的剩下的写入次数大约是100,如方块510所示。于此例子中,剩下的写入次数上限可以是108。邻近储存桶的写入次数或剩下的写入次数可以不同一个数量级。
在一个实施例中,第一分类(例如供长期储存使用)是对应至包括在一舍弃阈值(例如540)与一降级阈值(例如550)之间的储存桶3与4的一组储存桶,而第二分类(例如供主存储器使用)是对应至包括在降级阈值550之上的储存桶5至8的一组储存桶。如果一闲置实体区段的剩下的写入次数是在降级阈值以下,则闲置实体区段可被移动至在降级阈值以下的一储存桶,并重新被配置至供长期储存使用的逻辑地址。在降级阈值之上的闲置实体区段可被称为年轻区段,在舍弃阈值与降级阈值之间的闲置实体段可被称为年老区段。因为储存桶0至2的剩下的写入次数太低,例如大约100至102,所以在舍弃阈值540(例如在储存桶0至2)以下的闲置实体区段可被舍弃。
虽然图5通过使用闲置存储器区段的多组储存桶说明空间管理器的一实施例,但空间管理器可利用其他数据结构(例如一种树状结构(tree-basestructure),树状结构可被应用至主存储器及储存转换层的一接合点来实施。
图6为用以将一闲置存储器区段分配至存储器装置的逻辑存储器空间中具有第一分类的一逻辑存储器区段的流程图,其中第一分类具有不同于第二分类的使用统计需求。
于步骤610,接收一需求以将一闲置存储器区段配置至具有第一分类(例如供长期储存使用)的一逻辑存储器区段。于步骤620,执行一搜寻,用以寻找一闲置存储器区段,其写入次数符合第一分类,并小于符合第一分类的其他闲置存储器区段的写入次数。参考图5,可从降级阈值550朝向舍弃阈值540的方向搜寻。于步骤630,决定闲置存储器区段是否被找到。于步骤680,如果找到闲置存储器区段,则将闲置存储器区段配置至逻辑存储器区段。
否则,于步骤640,执行一搜寻,用以寻找一闲置存储器区段,其写入次数符合第二分类,并大于符合第二分类(例如供主存储器使用)的其他闲置存储器区段的写入次数。参考图5,可从降级阈值550朝向具有最低写入次数(例如储存桶8)的储存桶的方向搜寻。于步骤650,决定第二闲置存储器区段是否被找到。如果找到第二闲置存储器区段,则于步骤660,将第二闲置存储器区段配置至具有第一分类的逻辑存储器区段。如果第二闲置存储器区段并未被找到,则于步骤670,将存储器装置设定为一磨损装置(worn out device),这是因为存储器装置已到达其寿命的末端。
图7为用以舍弃一物理存储器区段的流程图。于步骤710,接收一需求以写入至被配置于具有第一分类(例如供长期储存使用)的一逻辑存储器区段的一物理存储器区段。于步骤720,更新物理存储器区段的使用统计,其中使用统计可包括物理存储器区段的一写入次数。于步骤730,决定写入次数是否高于一舍弃阈值(例如图5的540)。如果是,则于步骤740,将具有小于舍弃阈值的一写入次数的一闲置存储器区段配置至具有第一分类的逻辑存储器区段。于步骤750,舍弃原始要求被写入的物理存储器区段。
图8为用以将一闲置存储器区段配置至存储器装置的逻辑存储器空间中具有第二分类的一逻辑存储器区段的流程图。于步骤810,接收一需求以将一闲置存储器区段配置至具有第二分类(例如供主存储器使用)的一逻辑存储器区段。于步骤820,执行一搜寻,寻找一闲置存储器区段,其写入次数符合第二分类,并小于符合第二分类的其他闲置存储器区段的写入次数。参考图5,可从具有最低写入次数(例如储存桶8)的储存桶朝向降级阈值(例如550)的方向搜寻。于步骤830,决定闲置存储器区段是否被找到。如果是,则于步骤890,将闲置存储器区段配置至逻辑存储器区段。
否则,于步骤840,执行一搜寻,寻找一第二存储器区段,其写入次数符合第一分类,且小于符合第一分类的其他存储器区段的写入次数。于步骤850,决定第二是否被发现。如果是,则于步骤860,执行一搜寻,寻找符合第一分类的写入次数的一第二闲置存储器区段,而于步骤870,将第二存储器区段中的数据移动至第二闲置存储器区段。于步骤880,第二存储器区段被重新配置至具有第二分类的逻辑存储器区段。
图9为用以降级一物理存储器区段的流程图。于步骤910,接收一需求以写入至被配置至具有第二分类(例如供主存储器使用)的一逻辑存储器区段的一物理存储器区段。于步骤920,更新物理存储器区段的使用统计,使用统计可包括物理存储器区段的一写入次数。于步骤930,决定写入次数是否高于一降级阈值(例如图5的550)。如果是,则于步骤940,将具有小于降级阈值的一第二写入次数的一闲置存储器区段配置至逻辑存储器区段。于步骤950,将原始要求被写入的物理存储器区段,从适合配置至第二分类(例如供主存储器使用)降级至适合配置至第一分类(例如供长期储存使用)。
图10为一链结命令的流程图。主机系统可经由储存装置驱动器发布一链结命令给存储器控制器,以将供主存储器使用的逻辑存储器区段重新寻址至被配置供长期储存使用的实体区段,而不是发布一命令以从一长期储存装置实体上复制数据至一主存储器装置。
如于图10的例子所显示的,于步骤1010,接收一命令以将具有第一分类(例如供长期储存使用)的一第一范围的逻辑地址链结至具有第二分类(例如供主存储器使用)的一第二范围的逻辑地址。于步骤1020,决定物理存储器区段是否被配置至在第一范围的逻辑地址及第二范围的逻辑地址中的逻辑存储器区段。如果不是,则于步骤1030,将闲置物理存储器区段配置至逻辑存储器区段。于步骤1040,设定指示符(indicators),指示符表示具第二范围的逻辑地址被重新寻址。于步骤1050,设定链结信息,将具有第二分类的第二范围的逻辑地址,重新寻址至被至具有第一分类的第一范围的逻辑地址的实体区段。链结信息可包括存储器区段表的存储器区段项目中的分页码及区段码(如图2所说明的)。指示符及链结信息可被储存在管理空间(例如图1的190)中。于步骤1060,链结信息可被加载至一表格后备缓冲器(Table Lookaside Buffer),以供存储器管理系统使用,用于以改善逻辑至实体地址转换的速度(例如1060)。
图11为使用链结命令的一例,如在图10中所说明的。此例子假设逻辑存储器空间具有64GB的大小,包括从0GB至8GB的主存储器空间以及从8GB至64GB的储存空间。物理存储器空间具有供物理存储器区段用的64GB的大小,物理存储器区段可被配置供主存储器使用及储存使用。假设一逻辑存储器区段具有4MB的大小并包括多个逻辑存储器分页,并假设一物理存储器区段具有4MB的大小并包括多个实体LBA(逻辑区块地址)。如本发明说明书中所使用的,一分页表示在逻辑主存储器空间中的一基本单元,而一LBA表示在逻辑储存空间中的一基本单元。在一个实施例中,分页的大小是与LBA的大小相同,以使在分页与LBA的不同大小之间的转变可被消除。例如,一分页可具有4KB的大小,而一LBA可具有4KB的相同大小。
如于图11的例子中所显示的,储存装置驱动器(例如图1的122)接收来自主机系统的一链结命令,以将储存空间中的一第一范围的逻辑地址链结至主存储器空间中的一第二范围的逻辑地址。链结命令包括第一范围的一第一起始LBA地址LBA_L、第二范围的一第二起始分页地址Page_P,以及一长度len,表示第一范围中的连续LBA的数目以及第二范围中的连续分页的数目。于此例子中,LBA_L=0,Page_P=1024,而len=6。因此,第一范围是从LBA_L至(LBA_L+len),而第二范围是从Page_P至(Page_P+len)。
在一个实施例中,当由主机系统的第一范围及第二范围分别为LBA单位与分页单位时,物理存储器为字节单位(如同字节可寻址)。装置驱动器分别将LBA单位的请求的第一范围及分页单位的请求的第二范围,转变成对应于物理存储器地址的字节单位中的一连串的需求。装置驱动器将以LBA单位及以分页单位的逻辑存储器空间LBA起始地址LBA_L与分页起始地址Page_P,转变成字节单位的物理存储器区段的对应的起始字节地址Addr_L及Addr_P。装置驱动器将逻辑地址的第一范围(例如LBA_L至(LBA_L+len)),转变成实体地址的第一范围(例如Addr_L至(Addr_L+size)),并将逻辑地址的第二范围(例如Page_P至(Page_P+len))转变成实体地址的第二范围(例如Addr_P至(Addr_P+size)),其中size为等于len LBAs及len分页中的数据大小的连续的字节数目,以使在物理存储器区段中的逻辑地址的第二范围Page_P至(Page_P+len)可一对一映像至的逻辑地址的第一范围LBA_L至(LBA_L+len)。
如于图11的例子中所显示的,假设一分页具有4096字节而一LBA具有4096字节,LBA_L=0LBA,Page_P=1024分页,主存储器空间具有从0GB开始的地址,而储存空间具有从8GB开始的地址,
Addr_L=8GB+LBA_L*4096字节=8GB+0*4096字节=8GB;
Addr_P=0GB+Page_P*4096字节=1024*4096字节=4MB。
然后,装置驱动器通过使用字节单位的实体地址的第二范围(例如Addr_P至(Addr_P+size))与字节单位的实体地址的第一范围(例如Addr_L至(Addr_L+size)),将一链结命令传送至存储器控制器。
响应于来自装置驱动器的链结命令,存储器控制器可通过使用LBA大小(例如4096字节)、区段大小(例如4MB)以及储存空间的起始地址(例如8GB),而将起始字节地址Addr_L(例如8GB)转变成相对于储存空间的一起始存储器区段中的一起始LBA的一第一相对区段码的一相对的LBA数目。于此例子中,相对LBA数目为0,而第一相对区段码为0,因此起始字节地址Addr_L是对应至储存空间的起始物理存储器区段中的起始LBA。
存储器控制器可通过使用分页大小(例如4096字节)、区段大小(例如4MB)与主存储器空间的起始地址(例如0GB),而将字节地址Addr_P(例如4MB)转变成相对于主存储器空间的一起始存储器区段中的一起始分页的一第二相对区段码的一相对的分页数目。于此例子中,相对的分页码为0,而第二相对区段码为1,因此起始字节地址Addr_P是对应至主存储器空间的第二物理存储器区段中的第一分页。
存储器控制器可记录存储器区段表的存储器区段项目中的多个指示符,指示符表示第二范围的逻辑地址是被重新寻址。这些指示符可包括供主存储器空间的一逻辑存储器区段中的每个逻辑存储器分页用的一间接位。每个间接位可表示其对应的逻辑存储器分页是否被链接至为长期储存使用配置的一实体分页。例如,数值′1′可表示一逻辑存储器分页是被链接,而数值′0′可表示一逻辑存储器分页并未被链接。
在执行链结命令之后,第一分类(例如供长期储存使用)中的第一范围的逻辑地址是被链接至一实体分页码及一实体区段码,藉以指出为长期储存使用配置的一物理存储器分页。因此,从主机系统的观点而言,存储器装置采取的行动犹如数据是从一长期储存装置实体上被复制至一主存储器装置。
图12为关于一取消链结命令的流程图。主机系统可经由储存装置驱动器发布一取消链结命令给存储器控制器,而不是发布一命令从一主存储器装置实体上写入数据返回至一长期储存装置。
如于图12的例子中所显示的,于步骤1210,接收一命令以取消链结具有第二分类(例如供主存储器使用)的一范围的逻辑地址,以及取消被配置至具有第一分类(例如供长期储存使用)的逻辑地址的实体区段。于步骤1220,复位多个指示符,这些指示符表示具有第二分类的范围的逻辑地址是被重新寻址。于步骤1230,复位链结信息,链结信息将具有第二分类的此范围的逻辑地址重新寻址至具有第一分类的逻辑地址。
在一个实施例中,此范围的逻辑地址可以从Page_P至(Page_P+len),其中Page_P为一起始分页地址,而len为于Page_P开始的连续分页的数目。装置驱动器将分页单元中的逻辑存储器空间的起始分页地址Page_P,转变成字节单元中的物理存储器区段的对应的字节地址Addr_P。装置驱动器将此范围的逻辑地址(例如Page_P至(Page_P+len)),转变成一范围的实体地址(例如Addr_P至(Addr_P+size)),此size为等于在len分页中的数据的大小的一些连续的字节。接着,装置驱动器将一取消链结命令传送至存储器控制器,以取消链结此范围的实体地址(例如Addr_P至(Addr_P+size))。
响应于来自装置驱动器的取消链结命令,存储器控制器复位此些指示符,此些指示符表示第二分类中的此范围的逻辑地址是被重新寻址;且存储器控制器复位链结信息,此链结信息重新寻址此范围的逻辑地址,此链结信息可包括供存储器区段表中的存储器区段项目用的分页码及区段码(图2)。
图13为关于一闲置命令的流程图。可提供一闲置命令以允许主机系统释放一逻辑存储器区段以供主存储器使用,逻辑存储器区段是不再被主机系统所使用。例如,在主机系统中,每个流程可具有映像至一范围的逻辑存储器区段的其自己的地址空间,并可在其执行期间从主机系统要求更多存储器(亦即,分页),或释放存储器至主机系统。当终止此流程时,配置至此流程的存储器分页被回复至主机系统。
在图13所显示的例子中,主机系统(例如图1的110)决定落在供主存储器使用的一范围的一逻辑存储器区段中的所有逻辑存储器分页是否不再被使用。如果是这样,主机系统发布一闲置命令给主存储器装置驱动器(例如图1的121),以闲置被配置至逻辑存储器区段的物理存储器区段(步骤1310)。闲置命令参照供逻辑存储器区段用的一逻辑区段码。由闲置命令所参照的逻辑区段码,为相对于供主机系统的逻辑存储器空间中的所有逻辑存储器区段使用的一起始逻辑存储器区段码。
响应于来自主机系统的闲置命令,主存储器装置驱动器将起始逻辑存储器区段码加至由闲置命令所参照的逻辑区段码,用于导出一第二逻辑区段码。第二逻辑区段码可被转变成存储器装置中的一对应的实体区段码(例如图1的170)(步骤1320)。接着,主存储器装置驱动器发布一具有第二逻辑段码的闲置命令给存储器控制器(例如图1的130)(步骤1330)。
然后,存储器控制器通过使用存储器区段表将第二逻辑区段码转变成存储器装置中的一对应的实体区段码(图2)(步骤1340)。存储器控制器(例如图1的140)接着发布一闲置命令给具有相对应的实体区段码的存储器装置,用于释放具有相对应的实体区段码的物理存储器区段(步骤1350)。在一个实施例中,释放的物理存储器区段可被插入至闲置存储器区段的多组储存桶的一组中的一储存桶。
举例而言,主机系统中的逻辑存储器区段的逻辑区段码为5,主机系统中的所有逻辑存储器区段的起始逻辑存储器区段码为0,且第二逻辑区段码因此为0+5=5。存储器区段表将5的第二逻辑区段数转变成7的实体区段数。因此,具有7的实体区段数的物理存储器区段是被释放。
于此所说明的技术是适合于非易失性存储器,包括相变化存储器、NOR快闪、磁性随机存取存储器以及电阻式随机存取存储器。于此所说明的主存储器及储存转换层可在一存储器管理系统的硬件或任何硬件层(包括存储器管理单元(Memory Management Unit,MMU)、中央处理单元(Central Processing Unit,CPU)以及硬件IP(Intellectual Property)核心层或区块中被实现。于此所说明的主存储器及储存转换层,可被应用至包括整合式主存储器及储存装置(包括将主存储器及储存存储器整合在一个装置中的混合式架构)的系统。
虽然本发明已参考上述详细说明的较佳实施例及例子而被揭露,但应理解到这些例子是呈现一种说明而非限制的意义。考虑到熟习本项技艺者将轻易地想到修改及组合,其修改及组合将是在本发明的精神以及随附权利要求范围的范畴之内。
Claims (12)
1.一种用以管理具有多个物理存储器区段的存储器装置的方法,该方法包括:
基于多个使用规格,将一逻辑存储器空间中的多个逻辑地址分为多个分类;及
基于这些分类以及这些物理存储器区段的多个使用统计,将这些物理存储器区段配置给对应的这些逻辑地址;
其中这些分类包括一第一分类及一第二分类,该第二分类具有不同于该第一分类的多个使用统计需求。
2.根据权利要求1所述的方法,包括:
维持一数据结构,该数据结构记录该逻辑存储器空间中的这些逻辑地址与这些物理存储器区段的多个实体地址之间的转换;其中该配置包括:
基于多个闲置存储器区段的多个使用统计,维持这些闲置存储器区段的多组储存桶;
将一闲置存储器区段配置至一逻辑地址,该逻辑地址位于这些分类中的一特定分类的一储存桶,该储存桶是对应于符合该特定分类的这些使用统计,并在该配置之后从这些储存桶移除该闲置存储器区段;及
取消配置一物理存储器区段,并将该物理存储器区段加至该多组储存桶的一组中的该储存桶;
其中该物理存储器区段具有一使用统计,该物理存储器区段的该使用统计符合该物理存储器区段所加入的该储存桶的使用统计。
3.根据权利要求1所述的方法,其中这些使用统计包括一写入次数,该方法包括:
将具有该第二分类的这些逻辑地址,重新寻址到被配置具有该第一分类的这些逻辑地址的这些实体区段,并更新一数据结构以记录重新寻址的这些逻辑地址,其中该数据结构维持记录该逻辑存储器空间中的这些逻辑地址与这些物理存储器区段的多个实体地址之间的转换;
接收一需求以将一闲置存储器区段配置至具有该第一分类的一逻辑存储器区段;
搜寻该闲置存储器区段,该闲置存储器区段具有一写入次数,该闲置存储器区段的该写入次数符合该第一分类且小于符合该第一分类的其他闲置存储器区段的写入次数;
如果找到该闲置存储器区段,则将该闲置存储器区段配置至该逻辑存储器区段,否则搜寻一第二闲置存储器区段,该第二闲置存储器区段具有一第二写入次数,该第二闲置存储器区段的该第二写入次数符合该第二分类且高于符合该第二分类的其他闲置存储器区段的写入次数;及
如果找到该第二闲置存储器区段,则将该第二闲置存储器区段配置至具有该第一分类的该逻辑存储器区段。
4.根据权利要求1所述的方法,其中该使用统计包括一写入次数,该方法包括:
接收一需求以将一闲置存储器区段配置至具有该第二分类的一逻辑存储器区段;
搜寻该闲置存储器区段,该闲置存储器区段具有一写入次数,该闲置存储器区段的该写入次数符合该第二分类且小于符合该第二分类的其他闲置存储器区段的写入次数;
如果找到该闲置存储器区段,则将该闲置存储器区段配置至该逻辑存储器区段,否则搜寻一第二存储器区段,该第二存储器区段具有一写入次数,该第二闲置存储器区段的该写入次数符合该第一分类且小于符合该第一分类的其他存储器区段的写入次数;
如果找到该第二存储器区段,则搜寻一第二闲置存储器区段,该第二闲置存储器区段具有一写入次数,该第二闲置存储器区段的该写入次数符合该第一分类,移动该第二存储器区段中的数据至该第二闲置存储器区段,以及将该第二存储器区段重新配置至具有该第二分类的该逻辑存储器区段;
接收该需求以写入至一物理存储器区段,该物理存储器区段被配置至具有该第一分类的该逻辑存储器区段;
更新该物理存储器区段的这些使用统计;以及
如果该更新的使用统计具有高于一舍弃阈值的写入次数,则将具有小于该舍弃阈值的一第二写入次数的该闲置存储器区段配置至该逻辑存储器区段,以及舍弃该物理存储器区段。
5.根据权利要求1所述的方法,其中该使用统计包括一写入次数,该方法包括:
接收一需求以写入至一物理存储器区段,该物理存储器区段被配置至具有该第二分类的一逻辑存储器区段;
更新该物理存储器区段的使用统计;及
如果该更新的使用统计具有高于一降级阈值的写入次数,则将具有小于该降级阈值的一第二写入次数的一闲置存储器区段配置至该逻辑存储器区段;
接收一命令以将具有该第一分类的一第一范围的这些逻辑地址链结至具有该第二分类的一第二范围的这些逻辑地址;
如果该物理存储器区段并未被配置至该第一范围中的这些逻辑地址的逻辑存储器区段或未被配置至该第二范围中的这些逻辑地址的逻辑存储器区段,则将该闲置物理存储器区段配置至该第一范围中的这些逻辑地址的逻辑存储器区段或该第二范围中的这些逻辑地址的逻辑存储器区段;
设定多个指示符,这些指示符表示具有该第二分类的该第二范围的这些逻辑地址被重新寻址;及
设定一链结信息,该链结信息将具有该第二分类的该第二范围的这些逻辑地址,重新寻址至这些物理存储器区段,这些实体区段为被配置至具该第一分类的该第一范围的这些逻辑地址的物理存储器区段。
6.根据权利要求1所述的方法,包括:
接收一命令以取消具有该第二分类的一范围的这些逻辑地址与被配置至具有该第一分类的这些逻辑地址的这些物理存储器区段的链结;
复位多个指示符,这些指示符表示具有该第二分类的该范围的这些逻辑地址被重新寻址;
复位一链结信息,该链结信息重新寻址具有该第二分类的该范围的这些逻辑地址;
接收该命令以闲置一逻辑存储器区段,该逻辑存储器区段具有一第一逻辑区段码,该第一逻辑区段码对应于该逻辑存储器空间中的多个逻辑存储器区段的一起始逻辑区段码;
基于该第一逻辑区段码与该起始逻辑区段码,导出一第二逻辑区段码;
将该第二逻辑区段码转换至一实体区段码;以及
释放一物理存储器区段,该物理存储器区段具有这些物理存储器区段中的该实体区段码。
7.一种设备,包括:
一存储器装置,具有多个物理存储器区段;及
一存储器控制器,耦接至该存储器装置,包括:
一第一逻辑电路,用以基于多个使用规格,将一逻辑存储器空间中的多个逻辑地址分为多个分类;及
一第二逻辑电路,用以基于这些分类以及这些物理存储器区段的多个使用统计,将这些物理存储器区段配置给对应的这些逻辑地址;
其中这些分类包括一第一分类及一第二分类,该第二分类具有不同于该第一分类的多个使用统计需求。
8.根据权利要求7所述的设备,该存储器控制器包括:
一第三逻辑电路,用以维持一数据结构,该数据结构记录该逻辑存储器空间中的这些逻辑地址与这些物理存储器区段的多个实体地址之间的转换;
一第四逻辑电路,用以接收一命令以将具有该第一分类的一第一范围的这些逻辑地址链结至具有该第二分类的一第二范围的这些逻辑地址;
一第五逻辑电路,用以如果一物理存储器区段并未被配置至该第一范围中的这些逻辑地址的逻辑存储器区段或未被配置至该第二范围中的这些逻辑地址的逻辑存储器区段,则将一闲置物理存储器区段配置至该第一范围中的这些逻辑地址的逻辑存储器区段或该第二范围中的这些逻辑地址的逻辑存储器区段;
一第六逻辑电路,用以设定多个指示符,这些指示符表示具有该第二分类的该第二范围的这些逻辑地址被重新寻址;
一第七逻辑电路,用以设定一链结信息,该链结信息将具有该第二分类的该第二范围的这些逻辑地址,重新寻址至多个物理存储器区段,这些实体区段为被配置至具该第一分类的该第一范围的这些逻辑地址的物理存储器区段;及
一第八逻辑电路,用以将具有该第二分类的这些逻辑地址,重新寻址到被配置具有该第一分类的这些逻辑地址的这些实体区段,并更新一数据结构以记录重新寻址的这些逻辑地址,其中该数据结构维持记录该逻辑存储器空间中的这些逻辑地址与这些物理存储器区段的多个实体地址之间的转换。
9.根据权利要求8所述的设备,其中该存储器控制器包括:
一第九逻辑电路,用以基于多个闲置存储器区段的多个使用统计,维持这些闲置存储器区段的多组储存桶;
一第十逻辑电路,用以将一闲置存储器区段配置至一逻辑地址,该逻辑地址位于这些分类中的一特定分类的一储存桶,该储存桶是对应于符合该特定分类的这些使用统计,并在该配置之后从这些储存桶移除该闲置存储器区段;及
一第十一逻辑电路,用以取消配置一物理存储器区段,并将该物理存储器区段加至该多组储存桶的一组中的该储存桶;
其中该物理存储器区段具有一使用统计,该物理存储器区段的该使用统计符合该物理存储器区段所加入的该储存桶的使用统计。
10.根据权利要求8所述的设备,其中该使用统计包括一写入次数,且该存储器控制器包括:
一第十二逻辑电路,用以接收一需求以将一闲置存储器区段配置至具有该第一分类的一逻辑存储器区段;
一第十三逻辑电路,用以搜寻该闲置存储器区段,该闲置存储器区段具有一写入次数,该闲置存储器区段的该写入次数符合该第一分类且小于符合该第一分类的其他闲置存储器区段的写入次数;
一第十四逻辑电路,用以如果找到该闲置存储器区段,则将该闲置存储器区段配置至该逻辑存储器区段,否则搜寻一第二闲置存储器区段,该第二闲置存储器区段具有一第二写入次数,该第二闲置存储器区段的该第二写入次数符合该第二分类且高于符合该第二分类的其他闲置存储器区段的写入次数;及
一第十五逻辑电路,用以如果找到该第二闲置存储器区段,则将该第二闲置存储器区段配置至具有该第一分类的该逻辑存储器区段;
一第十六逻辑电路,用以接收该需求以将该闲置存储器区段配置至具有该第二分类的该逻辑存储器区段;
一第十七逻辑电路,用以搜寻该闲置存储器区段,该闲置存储器区段具有该写入次数,该闲置存储器区段的该写入次数符合该第二分类且小于符合该第二分类的其他闲置存储器区段的写入次数;
一第十八逻辑电路,用以如果找到该闲置存储器区段,则将该闲置存储器区段配置至该逻辑存储器区段,否则搜寻一第二存储器区段,该第二存储器区段具有一写入次数,该第二存储器区段的该写入次数符合该第一分类且小于符合该第一分类的其他存储器区段的写入次数;及
一第十九逻辑电路,用以如果找到该第二存储器区段,则搜寻该第二闲置存储器区段,该第二闲置存储器区段具有该写入次数,该第二闲置存储器区段的该写入次数符合该第一分类,移动该第二存储器区段中的数据至该第二闲置存储器区段,以及将该第二存储器区段重新配置至具有该第二分类的该逻辑存储器区段。
11.根据权利要求8所述的设备,其中该使用统计包括一写入次数,且该存储器控制器包括:
一第二十逻辑电路,用以接收一需求以写入至一物理存储器区段,该物理存储器区段被配置至具有该第一分类的一逻辑存储器区段;
一第二十一逻辑电路,用以更新该物理存储器区段的这些使用统计;以及
一第二十二逻辑电路,用以如果该更新的使用统计具有高于一舍弃阈值的写入次数,则将具有小于该舍弃阈值的一第二写入次数的一闲置存储器区段配置至该逻辑存储器区段,以及舍弃该物理存储器区段;
一第二十三逻辑电路,用以接收该需求以写入至该物理存储器区段,该物理存储器区段被配置至具有该第二分类的该逻辑存储器区段;
一第二十四逻辑电路,用以更新该物理存储器区段的这些使用统计;及
一第二十五逻辑电路,用以如果这些更新的使用统计具有高于一降级阈值的写入次数,则将具有小于该降级阈值的该第二写入次数的该闲置存储器区段配置至该逻辑存储器区段。
12.根据权利要求8所述的设备,其中该存储器控制器包括:
一第二十六逻辑电路,用以接收一命令以取消具有该第二分类的一范围的这些逻辑地址与被配置至具有该第一分类的这些逻辑地址的多个物理存储器区段的链结;
一第二十七逻辑电路,用以复位多个指示符,这些指示符表示具有该第二分类的该范围的这些逻辑地址被重新寻址;
一第二十八逻辑电路,用以复位一链结信息,该链结信息重新寻址具有该第二分类的该范围的这些逻辑地址;
一第二十九逻辑电路,用以接收该命令以闲置一逻辑存储器区段,该逻辑存储器区段具有一第一逻辑区段码,该第一逻辑区段码对应于该逻辑存储器空间中的多个逻辑存储器区段的一起始逻辑区段码;
一第三十逻辑电路,用以基于该第一逻辑区段码与该起始逻辑区段码,导出一第二逻辑区段码;
一第三十一逻辑电路,用以将该第二逻辑区段码转换至一实体区段码;及
一第三十二逻辑电路,用以释放一物理存储器区段,该物理存储器区段具有这些物理存储器区段中的该实体区段码。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361918616P | 2013-12-19 | 2013-12-19 | |
US61/918,616 | 2013-12-19 | ||
US201462005816P | 2014-05-30 | 2014-05-30 | |
US62/005,816 | 2014-05-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104731717A true CN104731717A (zh) | 2015-06-24 |
CN104731717B CN104731717B (zh) | 2018-01-09 |
Family
ID=53400066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410797820.8A Active CN104731717B (zh) | 2013-12-19 | 2014-12-19 | 存储器装置及存储器管理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9513815B2 (zh) |
CN (1) | CN104731717B (zh) |
TW (1) | TWI559138B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897026A (zh) * | 2016-10-07 | 2017-06-27 | 威盛电子股份有限公司 | 非易失性存储器装置及其地址分类方法 |
CN108292196A (zh) * | 2015-12-02 | 2018-07-17 | 净睿存储股份有限公司 | 将数据写入包括第一类型的存储设备和第二类型的存储设备的存储系统 |
CN108461105A (zh) * | 2017-02-22 | 2018-08-28 | 意法半导体股份有限公司 | 管理半导体存储器的方法、相应的接口、存储器和设备 |
CN110874330A (zh) * | 2018-08-29 | 2020-03-10 | 爱思开海力士有限公司 | 非易失性存储器装置、数据存储装置及其操作方法 |
US10733107B2 (en) | 2016-10-07 | 2020-08-04 | Via Technologies, Inc. | Non-volatile memory apparatus and address classification method thereof |
US11762764B1 (en) | 2015-12-02 | 2023-09-19 | Pure Storage, Inc. | Writing data in a storage system that includes a first type of storage device and a second type of storage device |
TWI825803B (zh) * | 2022-05-05 | 2023-12-11 | 南亞科技股份有限公司 | 資料儲存裝置及其非暫時性電腦可讀媒介 |
US11983066B2 (en) | 2022-05-05 | 2024-05-14 | Nanya Technology Corporation | Data storage device storing associated data in two areas |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8914603B2 (en) * | 2010-07-30 | 2014-12-16 | Motorola Mobility Llc | System and method for synching Portable Media Player content with storage space optimization |
US9317446B2 (en) * | 2014-09-23 | 2016-04-19 | Cisco Technology, Inc. | Multi-level paging and address translation in a network environment |
CA2876379A1 (en) * | 2014-12-29 | 2016-06-29 | Adam J. Storm | Memory management in presence of asymmetrical memory transfer costs |
US9836243B1 (en) * | 2016-03-31 | 2017-12-05 | EMC IP Holding Company LLC | Cache management techniques |
JP6666813B2 (ja) | 2016-08-24 | 2020-03-18 | キオクシア株式会社 | 記憶装置及びその制御方法 |
US10437734B2 (en) * | 2017-08-31 | 2019-10-08 | Micron Technology, Inc. | Memory constrained translation table management |
US11340810B2 (en) * | 2018-10-09 | 2022-05-24 | Western Digital Technologies, Inc. | Optimizing data storage device operation by grouping logical block addresses and/or physical block addresses using hints |
US11150812B2 (en) * | 2019-08-20 | 2021-10-19 | Micron Technology, Inc. | Predictive memory management |
US11049585B1 (en) | 2020-03-27 | 2021-06-29 | Macronix International Co., Ltd. | On chip block repair scheme |
US20210303204A1 (en) * | 2020-03-30 | 2021-09-30 | Kioxia Corporation | Simple elastic file-based multi-class storage layer (efms) |
DE102020212897A1 (de) * | 2020-10-13 | 2022-04-14 | Robert Bosch Gesellschaft mit beschränkter Haftung | Zugriffsverfahren auf Daten in einem externen Speicher eines Mikrocontrollers |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6975595B2 (en) * | 2001-04-24 | 2005-12-13 | Atttania Ltd. | Method and apparatus for monitoring and logging the operation of a distributed processing system |
US6883066B2 (en) * | 2001-09-14 | 2005-04-19 | Seagate Technology Llc | Method and system for cache management algorithm selection |
US9152349B2 (en) * | 2007-03-23 | 2015-10-06 | Emc Corporation | Automated information life-cycle management with thin provisioning |
US8966155B1 (en) * | 2008-04-01 | 2015-02-24 | Daniel P. Mulligan | System and method for implementing a high performance data storage system |
US7903457B2 (en) | 2008-08-19 | 2011-03-08 | Macronix International Co., Ltd. | Multiple phase change materials in an integrated circuit for system on a chip application |
US9189385B2 (en) * | 2010-03-22 | 2015-11-17 | Seagate Technology Llc | Scalable data structures for control and management of non-volatile storage |
US8374019B2 (en) | 2011-01-05 | 2013-02-12 | Macronix International Co., Ltd. | Phase change memory with fast write characteristics |
TWI459393B (zh) * | 2011-01-19 | 2014-11-01 | Phison Electronics Corp | 用於非揮發性記憶體的資料寫入方法、控制器與儲存裝置 |
US8626989B2 (en) * | 2011-02-02 | 2014-01-07 | Micron Technology, Inc. | Control arrangements and methods for accessing block oriented nonvolatile memory |
WO2012164718A1 (ja) * | 2011-06-02 | 2012-12-06 | 株式会社日立製作所 | ストレージ管理システム、計算機システム、及びストレージ管理方法 |
JP5813380B2 (ja) * | 2011-06-03 | 2015-11-17 | 株式会社東芝 | 半導体記憶装置 |
US8935493B1 (en) * | 2011-06-30 | 2015-01-13 | Emc Corporation | Performing data storage optimizations across multiple data storage systems |
CN103842975B (zh) * | 2011-09-19 | 2016-12-14 | 马维尔国际贸易有限公司 | 用于监视和管理存储器块以改善节电的系统和方法 |
CN103946819B (zh) * | 2011-09-30 | 2017-05-17 | 英特尔公司 | 用于非易失性系统存储器的统计耗损均衡 |
US9037779B2 (en) * | 2011-12-19 | 2015-05-19 | Sandisk Technologies Inc. | Systems and methods for performing variable flash wear leveling |
KR20140112303A (ko) * | 2013-03-13 | 2014-09-23 | 삼성전자주식회사 | 불휘발성 메모리 장치, 전자 장치 그리고 그것을 포함하는 컴퓨팅 시스템 |
US9378136B1 (en) * | 2014-06-30 | 2016-06-28 | Emc Corporation | Techniques for selecting write endurance classification of flash storage based on read-write mixture of I/O workload |
-
2014
- 2014-10-24 US US14/523,006 patent/US9513815B2/en active Active
- 2014-12-19 CN CN201410797820.8A patent/CN104731717B/zh active Active
- 2014-12-19 TW TW103144424A patent/TWI559138B/zh active
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108292196A (zh) * | 2015-12-02 | 2018-07-17 | 净睿存储股份有限公司 | 将数据写入包括第一类型的存储设备和第二类型的存储设备的存储系统 |
CN108292196B (zh) * | 2015-12-02 | 2021-06-29 | 净睿存储股份有限公司 | 数据写入方法、装置和计算机可读存储介质 |
US11762764B1 (en) | 2015-12-02 | 2023-09-19 | Pure Storage, Inc. | Writing data in a storage system that includes a first type of storage device and a second type of storage device |
CN106897026A (zh) * | 2016-10-07 | 2017-06-27 | 威盛电子股份有限公司 | 非易失性存储器装置及其地址分类方法 |
CN106897026B (zh) * | 2016-10-07 | 2020-02-07 | 威盛电子股份有限公司 | 非易失性存储器装置及其地址分类方法 |
US10733107B2 (en) | 2016-10-07 | 2020-08-04 | Via Technologies, Inc. | Non-volatile memory apparatus and address classification method thereof |
CN108461105A (zh) * | 2017-02-22 | 2018-08-28 | 意法半导体股份有限公司 | 管理半导体存储器的方法、相应的接口、存储器和设备 |
CN108461105B (zh) * | 2017-02-22 | 2021-12-17 | 意法半导体股份有限公司 | 管理半导体存储器的方法、相应的接口、存储器和设备 |
CN110874330A (zh) * | 2018-08-29 | 2020-03-10 | 爱思开海力士有限公司 | 非易失性存储器装置、数据存储装置及其操作方法 |
CN110874330B (zh) * | 2018-08-29 | 2023-03-21 | 爱思开海力士有限公司 | 非易失性存储器装置、数据存储装置及其操作方法 |
TWI825803B (zh) * | 2022-05-05 | 2023-12-11 | 南亞科技股份有限公司 | 資料儲存裝置及其非暫時性電腦可讀媒介 |
US11983066B2 (en) | 2022-05-05 | 2024-05-14 | Nanya Technology Corporation | Data storage device storing associated data in two areas |
Also Published As
Publication number | Publication date |
---|---|
TW201539186A (zh) | 2015-10-16 |
TWI559138B (zh) | 2016-11-21 |
CN104731717B (zh) | 2018-01-09 |
US20150178010A1 (en) | 2015-06-25 |
US9513815B2 (en) | 2016-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104731717A (zh) | 存储器装置及存储器管理方法 | |
US10126964B2 (en) | Hardware based map acceleration using forward and reverse cache tables | |
CN110678836B (zh) | 用于键值存储的持久性存储器 | |
JP6832187B2 (ja) | データストレージサブシステムにおけるキャッシングのための方法およびシステム | |
US9104327B2 (en) | Fast translation indicator to reduce secondary address table checks in a memory device | |
Lee et al. | FAST: An efficient flash translation layer for flash memory | |
JP5907739B2 (ja) | 不揮発性記憶装置 | |
CN106708423B (zh) | 多模存储管理系统 | |
US20100115175A9 (en) | Method of managing a large array of non-volatile memories | |
CN108139902A (zh) | 用于提供混合模式来访问ssd驱动器的方法和装置 | |
US9063862B2 (en) | Expandable data cache | |
US20150347310A1 (en) | Storage Controller and Method for Managing Metadata in a Cache Store | |
WO2014074449A2 (en) | Wear leveling in flash memory devices with trim commands | |
WO2016067328A1 (ja) | 不揮発メモリデバイスを有するストレージ装置、及び、不揮発メモリデバイス | |
KR20120030137A (ko) | 영구 가비지 컬렉션을 갖는 메모리 시스템 | |
CN110928487A (zh) | 存储装置和存储装置的操作方法 | |
SG193114A1 (en) | Data storage device and method of managing a cache in a data storage device | |
US11144224B2 (en) | Locality-aware, memory-efficient, time-efficient hot data identification using count-min-sketch for flash or streaming applications | |
US9268700B2 (en) | Cache control device, cache control method, and program thereof | |
CN109840048A (zh) | 存储命令处理方法及其存储设备 | |
CN115079957A (zh) | 请求处理方法、装置、控制器、设备及存储介质 | |
JP2013196155A (ja) | メモリシステム | |
CN109840219B (zh) | 大容量固态存储设备的地址转换系统与方法 | |
CN109960667B (zh) | 大容量固态存储设备的地址转换方法与装置 | |
CN110688056A (zh) | Nvm组的存储介质替换 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |