CN105339910B - 在混合驱动器中的虚拟nand容量扩展 - Google Patents
在混合驱动器中的虚拟nand容量扩展 Download PDFInfo
- Publication number
- CN105339910B CN105339910B CN201480036908.6A CN201480036908A CN105339910B CN 105339910 B CN105339910 B CN 105339910B CN 201480036908 A CN201480036908 A CN 201480036908A CN 105339910 B CN105339910 B CN 105339910B
- Authority
- CN
- China
- Prior art keywords
- data
- lba
- memory
- group
- computer system
- 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.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 claims abstract description 175
- 238000003860 storage Methods 0.000 claims abstract description 50
- 238000000034 method Methods 0.000 claims abstract description 47
- 238000011084 recovery Methods 0.000 claims abstract description 13
- 230000007958 sleep Effects 0.000 claims abstract description 12
- 239000007787 solid Substances 0.000 claims description 45
- 238000013500 data storage Methods 0.000 claims description 16
- 238000007726 management method Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 3
- 230000008859 change Effects 0.000 abstract description 5
- 230000008569 process Effects 0.000 description 17
- 238000013507 mapping Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 9
- 230000005059 dormancy Effects 0.000 description 7
- 241001269238 Data Species 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000013523 data management Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004321 preservation Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 238000005299 abrasion Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 150000001786 chalcogen compounds Chemical class 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000010304 firing Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000009225 memory damage Effects 0.000 description 1
- 230000005039 memory span Effects 0.000 description 1
- 238000001465 metallisation Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000000284 resting effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000009987 spinning Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- 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
-
- 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/21—Employing a record carrier using a specific recording technology
- G06F2212/217—Hybrid disk, e.g. using both magnetic and solid state storage devices
-
- 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/22—Employing cache memory using specific memory technology
- G06F2212/222—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/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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本文公开了一种用于在数据储存设备中进行虚拟高速缓存存储器扩展的方法和***。储存设备可包括充当主存储器的高速缓存的存储器。用于储存设备的方法可包括维持与存储在高速缓存存储器中的数据相关联的一个或更多个逻辑块地址的映射信息,以及维持与未存储在高速缓存存储器中的数据相关联的一个或更多个逻辑块地址的映射信息。当高速缓存存储器的可用容量改变,例如,由于在休眠操作中存储恢复(resume)数据时,可以选择用于逐出(eviction)的存储在高速缓存存储器中的数据。选择的用于逐出的数据可以被传输到主存储器,但仍然跟踪作为虚拟扩展高速缓存的一部分,并且因此当不再需要恢复数据时,可以迅速复原(restore)到高速缓存存储器中。
Description
背景技术
数据储存设备通常用于在其上记录或存储数据或用于从记录介质中复制数据。数据储存设备能够包括用于提供这些用途的不同类型的非易失性存储器。一种类型的非易失性存储器包括旋转磁盘。除了磁盘之外,数据储存设备还能够包括第二类型的非易失性存储器,诸如固态存储器。利用磁盘和固态非易失性存储器两者的数据储存设备常常称为混合驱动器。
当与仅包括一种类型的非易失性存储器的传统储存驱动器相比较时,混合驱动器能够提供改善的性能特性。例如,由于包括磁盘,当在仍维持可负担性和其它益处的情况下,访问存储在固态存储器上的某些数据时,混合驱动器能够改善响应时间。不幸地,固态存储器通常比其它形式的非易失性存储器成本更多。因此,具有完全由固态存储器组成的储存驱动器的费用对于一些消费者或应用来说可能是过高的。混合驱动器利用传统非易失性存储器和固态存储器两者的混合,以维持更负担得起的产品,从而利用传统非易失性存储器的其它益处,诸如改善的耐久性。
由混合驱动提供的益处的具体示例能够在计算机***的休眠过程期间示出。在关闭或降低功率之前,计算机***可执行休眠过程,以在非易失性存储器中保存计算机***的状态。当功率稍后复原到计算机***时,计算机***的操作***执行恢复过程,以将计算机***复原到与休眠之前相同的状态。固态存储器,诸如闪存存储器,由于其高读取传输速率,所以一般应该能够在休眠后相对迅速的恢复。
附图说明
实施本发明的各种特征的***和方法现在将参考以下附图进行描述,其中:
图1示出根据本发明的一个实施例的主机***和实现虚拟高速缓存容量扩展的数据储存设备的组合的框图;
图2示出根据本发明的一个实施例的虚拟扩展高速缓存和映射表的框图;
图3A示出根据本发明的一个实施例的在由连接的主机***进入休眠模式期间虚拟扩展高速缓存和映射表的框图;
图3B示出根据本发明的一个实施例的在由连接的主机***从休眠模式退出期间图3A的虚拟扩展高速缓存和映射表的框图;
图4示出根据本发明的一个实施例的使用优先级信息的虚拟扩展高速缓存的数据储存操作的流程图;以及
图5示出根据本发明的一个实施例的被配置成与能够进入和离开休眠模式的主机***连接的虚拟扩展高速缓存的操作的流程图。
具体实施方式
虽然描述了某些实施例,但这些实施例仅以示例的方式提出,而并非旨在限制保护的范围。当然,本文所述的新型方法和***可以以各种其它形式来实施。此外,可以对本文所述的方法和***的形式进行各种省略、替换和改变,而不脱离保护的范围。
综述
利用多于一种类型的存储器用于电子数据的储存和访问的储存***,诸如混合储存设备,不仅应该为电子数据的储存确定可用存储器的块,还应该确定哪种类型的存储器用于储存或访问操作。在一些情况下,连接的主机***可经由信号将该确定提供给储存***。在其它情况下,所述确定可以经由逻辑评估由储存***本身与来自连接的主机***的信号相结合或者完全通过内部确定来进行。
储存目的地的确定可以基于与数据相关联的优先级。具有较高优先等级的数据可以在存储器类型或在储存***内的储存位置方面给予优先权。利用提供改善的操作性能的更昂贵的存储器类型(例如,固态存储器,诸如NAND闪存存储器)与成本较低的存储器类型(例如,磁储存器)的组合的混合储存设备,可设法将优先数据置于更昂贵的存储器中。然而,因为在储存***中的数据可随着用户执行不同任务在优先级上频繁改变,所以数据管理***应起作用以适当传输储存***内的数据,从而增加或优化性能。
在一个实施例中,混合驱动器可包括高速存储器,其中的一些或全部能够充当主要的较慢的存储器的高速缓存。对充当高速缓存可用的高速存储器的容量成为高速缓存的物理容量。混合驱动器可以被配置成通过跟踪存储在主存储器中的一些数据虚拟地扩展高速缓存的物理容量。在一个示例中,在混合驱动器中的高速的固态存储器(高速缓存存储器)可具有8GB的物理容量。数据结构,诸如高速缓存映射表可以用于跟踪存储在低速的磁存储器(主存储器)中的另外的8GB数据,使得跟踪的数据可以被认为是高速缓存的物理容量的虚拟扩展。由于较高优先级的数据具有优先权,或由于在***状态上的改变(例如,容纳来自主机的恢复数据)造成对固态存储器容量的改变,所以跟踪的数据可包括先前从高速存储器(例如,固态存储器)中逐出的数据。
对于数据的该优先级信息可以以许多不同的方式,诸如下列项中的一个或更多个的组合来确定:由主机***提供的优先级(例如,作为写入数据命令的一部分)、数据的访问频率、从数据的上次访问以来的持续时间、读取与写入数据的频率(例如,读写比)、在优先等级内数据的相对重要性、数据是否已与其它储存同步等。例如,频繁访问的数据可以被分配较高优先级,因为在高速缓存中保持频繁访问的数据可以改善数据储存设备的性能。又如,已经比其它数据被更近访问的数据可以被分配较高优先级,因为更近访问的数据可能有可能在未来被再次访问。又如,比写入更频繁地读取的数据可以被分配较高优先级,因为在高速缓存中保持此类频繁读取的数据可改善性能,同时降低非易失性固态存储器的磨损。在一些实施例中,优先级可以基于以上因素中的一个或更多个的加权组合来分配。
为了简化和说明起见,下面的描述集中于示例实施例,其中固态非易失性存储器充当主存储器(诸如,磁储存存储器)的高速缓存存储器。然而,本公开的范围并不限于此类实施例。例如,在其它实施例中,代替磁储存存储器的,数据储存设备可包括另一种类型的数据储存。代替或除了固态非易失性存储器之外,可以使用不同类型的存储器,例如,在储存***或设备中使用的比不同类型的存储器提供了更快的读取或写入性能的任何存储器。在其它实施例中,充当主存储器的高速缓存的非易失性存储器可以位于距主存储器的远程位置中,并且数据的同步可以发生在一个或更多个网络连接上。
***综述
首先转到图1,其示出了主机***110和实现虚拟扩展高速缓存的数据储存设备120的组合100的框图。如图所示,数据储存设备120(例如,混合磁盘驱动器)包括控制器130、固态储存器150,以及磁储存器160。在一个实施例中,固态储存器150可包括闪存储存器,和/或磁储存器可以包括磁介质。除了或替代固态储存器150和/或磁储存器160,数据储存设备120可包括各种非易失性存储器,诸如闪存集成电路、硫属化合物RAM(C-RAM)、相变存储器(PC-RAM或PRAM)、可编程金属化单元的RAM(PMC-RAM或PMCm)、双向通用存储器(OUM)、电阻式RAM(RRAM)、NAND存储器(例如,单级单元(SLC)存储器、多级单元(MLC)存储器,或它们的任何组合)、NOR存储器、EEPROM、铁电存储器(FeRAM)、磁阻RAM(MRAM)、其它离散型NVM(非易失性存储器)芯片,或它们的任何组合。固态储存器150能够包括一个或更多个存储器区域、诸如块、页等。在一个实施例中,固态储存器150能够作为用于磁储存器160的高速缓存。数据储存设备120还能够包括其它类型的储存器。
数据储存设备120的控制器130能够被配置成从主机***110的储存接口模块112接收数据和/或与数据相关联的优先级信息。数据和/或优先级信息可以在储存接口模块112和控制器130之间以命令140的形式(例如,储存或访问命令)传送,所述命令将优先级信息与在数据储存设备120中被储存或访问的适当数据相关联。控制器130也能够被配置成将命令140传送到储存接口模块112。通过储存接口模块112通信的命令140能够包括由主机***110发出的写入数据和读取数据命令连同相关联的优先级信息,例如作为写入数据和/或读取数据命令的元数据。读取和写入命令能够指定用于访问数据储存设备120上的信息的逻辑地址(例如,逻辑块地址或“LBA”)。控制器130能够执行在固态储存器150和/或磁储存器160中的接收命令140。
数据储存设备120能够存储通过主机***110通信的数据。换句话说,数据储存设备120能够作为用于主机***110的存储装置。为了便于该功能,控制器130能够实现逻辑接口。逻辑接口能够向主机***110呈现数据储存设备120的固态储存器150和/或磁储存器160作为其中能够储存主机***110的数据的一组逻辑地址(例如,连续的地址)。在内部,控制器130能够将逻辑地址映射到在固态储存器150、磁储存器160和/或其它储存模块中的各种物理位置或地址。物理位置能够被配置成存储数据。如本文更详细地讨论,控制器130可基于与此类数据相关联的优先级信息确定在固态储存器150和/或磁储存器160中将数据存储到哪里。例如,扩展的虚拟储存容量可以被配置用于利用磁储存器160的全部或一部分的固态储存器150,如以下更详细地讨论。
虚拟扩展存储器容量
接着转向图2,示出了其中示出虚拟扩展高速缓存210的框图200,虚拟扩展高速缓存210展示扩展存储器容量的配置或使用。虚拟扩展高速缓存210可包括与先前讨论的那些相同或类似的特征。在一个实施例中,虚拟扩展高速缓存210可对应于一种或更多种类型的非易失性存储器,诸如固态存储器(例如,NAND闪存存储器),或被配置成充当主存储器的高速缓存的其它高速缓存存储器,诸如混合驱动器。虚拟扩展高速缓存210具有多个映射容量,使得虚拟扩展高速缓存210能够将数据映射在扩展到其实际的物理存储器容量之外的存储器位置处。
如图所示,数据可被映射到虚拟扩展高速缓存210的实际物理容量230。例如,数据可以被映射到对应于物理上包含或连接为数据储存设备的一部分的固态存储器诸如NAND闪存存储器的物理容量的实际物理容量230。虚拟扩展高速缓存210还允许数据被映射到虚拟或扩展容量240。例如,数据可被映射到对应于包含或连接为数据储存设备的一部分的另一个非易失性存储器(例如,磁存储器)的虚拟或扩展容量240。在一些实施例中,该其它非易失性存储器可以是主存储器的一部分。因此,期望被存储在虚拟扩展高速缓存210中的数据可以被选择性地映射到实际物理容量230或映射到虚拟或扩展容量240,如本文更详细地讨论。
逻辑块地址映射表220与对应于虚拟扩展高速缓存210的实际物理容量230和虚拟或扩展容量240存储器位置的存储器位置相关联。逻辑块地址映射表220维持对应于在虚拟扩展高速缓存210的实际的物理容量内的数据的量(例如,固态存储器的可用容量)的第一组逻辑块地址(“LBA”)222或第一段逻辑块地址(“LBA”)222。此外,如图所示,第二组LBA224或第二段LBA 224与未存储在虚拟扩展高速缓存210的实际的物理容量内(例如,没有在固态存储器的可用容量内)的数据相关联。此类数据可以存储在主存储器诸如磁存储器中。数据可以存储在磁储存器内的常规映射方案的典型位置中,或另选地,存储在磁储存器内的专用位置中。因此,数据能够在较高速度高速缓存存储器的可用容量中或者低速主存储器中被存储或访问。
接着转向图3A,示出了在存储恢复数据到虚拟扩展高速缓存310的物理存储容量的操作或过程期间虚拟扩展高速缓存310的框图300。虚拟扩展高速缓存310可包括与先前讨论的那些相同或类似的特征。逻辑块地址映射表320与对应于虚拟扩展高速缓存310的实际物理容量330和虚拟或扩展容量340存储器位置的存储器位置相关联。如图所示,虚拟扩展高速缓存310具有多个映射容量,使得虚拟扩展高速缓存310能够将数据映射在扩展到其实际的物理容量之外的存储器位置处。如图所示,映射到实际物理容量330对应于固态储存器350(例如,闪存存储器,诸如NAND闪存)的可用容量。映射到虚拟或扩展容量340可对应于其它的低速存储器(例如,磁储存器)。
固态储存器350可以用于各种数据储存目的,诸如更频繁使用数据、更近使用数据的高速缓存等。对于连接的主机***,固态储存器350也可以被用于恢复数据370的储存。例如,主计算机***可以被配置成在低的或不频繁使用的时期或时间进入休眠模式。主计算机***可在减少***功率之前在非易失性存储器中保存主计算机***的当前状态(例如,通过产生或使用恢复数据370)。随后,在功率复原时,可以访问恢复数据370以便将主计算机***复原到所保存的状态。由于恢复数据370的高读取传输速率,所以固态非易失性存储器诸如固态储存器350允许计算机***迅速复原到所保存的状态。
代替分离出一部分专门用于恢复数据的固态储存器,在图3A所示的实施例示出允许恢复数据在固态储存器350中被存储和/或访问,而不与可能期望存储在固态储存器350中的其它高速缓存数据永久性干扰的实施例。因此,在一个优选实施例中,能够在不使用恢复数据的时候避免昂贵的固态储存器位置的传统浪费。
例如并且如图所示,在主计算机***进入休眠过程时,恢复数据370可以由主计算机***生成以便保存主计算机***的状态。为了改善性能,可能期望将恢复数据370存储在固态储存器350中。然而,在将恢复数据370储存在固态储存器350中之前,先前被映射到实际物理容量330的用于逐出的其它数据332(例如,存储在固态储存器350中的在其它高速缓存数据360旁边)必须被去除或传输384并映射到虚拟或扩展容量340。逐出可以,例如,包括(1)当相同副本已经存储在磁介质中时从固态储存器中去除数据,或(2)将数据从固态储存器传输到磁介质,其可覆盖磁介质上过时的副本。在这两种情况下,数据在逐出之后将驻留在主储存器(例如,磁储存器)中,并且映射表被更新以反映物理储存位置的改变(注意,例如,特定LBA现在在磁储存器上)和数据在虚拟或扩展容量340内的新的指定。
在一个实施例中,在主计算机***开始休眠过程时,恢复数据370的优先级被确定(例如,通过主机***和/或通过数据储存设备或结合虚拟扩展高速缓存310的设备)具有比用于逐出的数据332的优先级的更高的优先级,从而触发数据332的逐出。当与用于逐出的数据332的优先级相比时,各种逻辑评估或步骤中的任一项可以用于确定恢复数据370的相对优先级。在一个实施例中,在启动休眠时,没有进行优先级比较,因为恢复数据被原子地接受到固态存储器中,降低了其被用作高速缓存的物理容量的可用容量,并且因此潜在地触发对于逐出数据的需要。
在用于逐出的数据332已被去除或传输384并映射到虚拟或扩展容量340之后,储存空间被释放或使得在固态储存器350中可用,以便容纳恢复数据370。恢复数据370可能没有用完固态储存器350的所有空间,使得其它高速缓存数据360连同恢复数据370一起存在于固态储存器350中。
接着转向图3B,框图350示出在图3A中所讨论的虚拟扩展高速缓存310,但在主计算机***从休眠模式中退出之后的复原数据到虚拟扩展高速缓存310的物理存储容量的操作或过程期间。在开始从休眠模式中退出的过程时,恢复数据370(参考图3A)被访问并用于复原主计算机***的状态。在此类使用之后,恢复数据370不再需要,并且因此能够从固态储存器350中去除。结果,增加用于高速缓存的可用容量。此时,先前逐出的数据(图3A用于逐出的数据332)被再一次复原或传输386并映射到实际物理容量330,成为复原数据334再次驻留在固态储存器350中。当主计算机***从休眠或睡眠模式中退出时,数据的复原或传输386可自动发生(例如,没有来自外部设备或者主机的进一步的命令或信号)。通过跟踪在虚拟扩展高速缓存中的逐出数据332,在恢复时,数据储存设备能够迅速填充高速缓存的扩展物理容量。在其中不跟踪逐出数据的常规数据储存设备中,新增加的容量通常是随着时间的推移而填充,直到高速缓存算法重新认识到什么数据应该放在这里为止。与此相反,在本发明的某些实施例中,通过利用上述虚拟扩展高速缓存方案,数据的完整高速缓存能够因此在恢复时被立即重建,从而提供改善的数据访问性能。
图4示出使用在虚拟扩展高速缓存中被分配的数据的优先级信息的虚拟扩展高速缓存和映射***的操作的示例性流程图400。在一个实施例中,通过修改映射表可以在高速缓存中分配数据,但不需要在不同存储器位置之间物理移动数据。虚拟扩展高速缓存可包括与先前讨论的那些相同或类似的特征。在框405处,数据管理操作开始。这可发生在提供功率给包括虚拟扩展高速缓存的数据储存设备、提供功率给连接到数据储存设备的主机***、初始化数据储存设备和/或主机***、或以其它方式开始其中请求数据被读取或写入虚拟扩展高速缓存中的任何过程时。在框410处,数据储存设备的控制器接收命令(例如,来自主机***的主机数据命令或内部数据命令,诸如专用命令或涉及由数据储存设备本身所生成的数据储存设备的背景活动的命令),所述命令指示期望在数据储存设备中读取或写入数据。该命令可以是经由有线或其它导电连接或经由无线传送接收的电信号。
在框415处,确定与在框410处接收的命令相关联的数据的优先级。该优先级可以是对应于期望在高速缓存存储器中被分配的候选数据的优先级信息。优先级信息可以仅由数据储存设备来确定。在另一个实施例中,优先级信息可以通过控制器来接收(例如,优先级信息可以通过主机***被传送)。在框420处,数据储存设备基于相关联的优先级确定候选数据是否属于整个虚拟扩展高速缓存(要么在物理容量中要么在虚拟容量中)。例如,如果与在框410处接收的命令的候选数据相关联的优先级比已经存在于虚拟扩展高速缓存中的所有其它数据的优先级低,那么数据储存设备可确定候选数据不应该在虚拟扩展高速缓存中分配。
如果候选数据不属于虚拟扩展高速缓存,操作继续进行到框425,在该框中候选数据未在虚拟扩展高速缓存中分配。在混合驱动器示例中,候选数据可以经由磁介质简单地写入或访问,而不在指示其为高速缓存的数据的高速缓存映射表中添加任何跟踪元数据。接着,操作转回到框410,在该框中在控制器处接收新命令并且过程再次开始。然而,如果数据储存设备确定候选数据属于虚拟扩展高速缓存,诸如当与在框410处的数据相关联的优先级比对应于已经存在于虚拟扩展高速缓存中的数据的至少一个优先级高时,那么操作继续进行到框430。
在框430处,数据储存设备基于相关联的优先权确定在虚拟扩展高速缓存中要被分配的候选数据是否属于虚拟扩展高速缓存的物理容量。类似于上面的讨论,如果与在框410处的数据相关联的优先级比已经存在于虚拟扩展高速缓存的物理容量中的所有其它数据的优先级低,那么数据储存设备可确定候选数据不应该在物理容量中分配,并且操作继续进行到框435。如果与在框410处的数据相关联的优先级比对应于已经存在于虚拟扩展高速缓存的物理容量中的数据的至少一个优先级高,那么数据储存设备可确定候选数据应该在物理容量中分配,并且操作进行到框460。
在框435处,数据储存设备确定在用于候选数据的虚拟扩展高速缓存的扩展容量中是否存在任何可用的空间(room)或容量。例如,如果通过期望要被跟踪的数据的量确定虚拟扩展高速缓存的扩展容量为8千兆字节(GB),并且如果存储器的7.8GB目前正在由现有数据使用,但候选数据将占用超过该存储器的0.2GB,那么在虚拟扩展高速缓存的扩展容量中没有足够的空间或容量用于候选数据。在一个实施例中,虚拟扩展高速缓存的容量可对应于在高速缓存映射表中的LBA条目的最大数目,诸如,先前在图3A和图3B中所示。如果空间确实存在,那么操作继续进行到框440,并且候选数据在虚拟扩展高速缓存的扩展容量中被分配到可用存储器位置处,并且没有现有数据需要从扩展容量中移走。如以上先前所提到的,在一个实施例中,在扩展容量中存储数据包括在磁介质上存储数据并更新映射表以跟踪作为扩展虚拟高速缓存的一部分的数据(例如,LBA)。然后操作继续回到框410,在该框中在控制器处接收新命令并且再次开始过程。
如果空间不存在,那么操作代替转到框445,并且数据储存设备确定在虚拟扩展高速缓存的扩展容量中的哪些现有高速缓存数据应该从虚拟扩展高速缓存中去除。该确定可以基于与候选数据相关联的优先级信息和与在扩展容量中的现有高速缓存数据相关联的一个或更多个优先级信息的比较。例如,如果高速缓存数据具有比一个或更多个现有高速缓存数据的优先级高的优先级,那么现有高速缓存数据可以被确定为从虚拟扩展高速缓存中去除。在框450处,在框445中被确定为去除的现有高速缓存数据从扩展容量中去除。在一个实施例中,映射表被更新为不再跟踪数据,有效地去除作为高速缓存的一部分的数据。并且然后在框455处,候选数据在扩展容量中被分配(例如,候选数据写入到磁储存器并且映射表被更新以跟踪作为高速缓存的一部分的候选数据)。然后操作继续回到框410,在该框中在控制器处接收新命令并且再次开始过程。
返回到框430,如果基于相关联的优先级确定候选数据不属于虚拟扩展高速缓存的物理容量,那么在框460处,数据储存设备确定在虚拟扩展高速缓存的实际的物理容量中是否存在任何可用于候选数据的空间或容量。类似于针对框435的上述讨论,在一个示例中,如果虚拟扩展高速缓存的物理容量包括固态储存器的8千兆字节(GB),并且如果存储器的7.8GB目前正在由现有数据使用,但候选数据将占用超过该存储器的0.2GB,那么在虚拟扩展高速缓存的物理容量中没有足够的空间用于候选数据。如果空间确实存在,那么操作继续进行到框465,并且候选数据在虚拟扩展高速缓存的物理容量中被分配在可用的存储器位置处(例如,在固态储存器中),并且没有现有数据需要从物理容量中被移出。然后操作继续回到框410,在该框中在控制器处接收新命令并且再次开始过程。
然而,如果空间不存在,那么操作代替转到框470并且数据储存设备确定在虚拟扩展高速缓存的物理容量中的哪些现有高速缓存数据应该从虚拟扩展高速缓存的物理容量中被逐出。该确定可以基于与候选数据相关联的优先级信息和与在物理容量中的现有高速缓存数据相关联的一个或更多个优先级信息的比较。例如,如果候选数据具有比一个或更多个现有高速缓存数据的优先级高的优先级,那么该现有高速缓存数据可以被确定为被逐出。
在框470处确定用于逐出的现有高速缓存数据之后,操作继续进行到框475,并且类似于以上针对框435的讨论,数据储存设备确定在虚拟扩展高速缓存的扩展容量中是否存在任何可用于框470的逐出数据的空间或容量。例如,如果虚拟扩展高速缓存的扩展容量包括8千兆字节(GB),并且如果该存储器的7.8GB目前正在由现有数据使用,但逐出数据将占用超过该存储器的0.2GB,那么在虚拟扩展高速缓存的扩展容量中没有足够的空间用于逐出数据。如果空间确实存在,那么操作继续进行到框480,并且逐出数据在虚拟扩展高速缓存的扩展容量中被分配在可用的存储器位置处,并且没有现有数据需要从扩展容量中移走。在框485处,要在物理容量中被分配的候选数据(在框430处所确定)然后在虚拟扩展高速缓存存的物理容量中被分配在可用的存储器位置处(例如,在固态储存器中),例如,在通过逐出进入到扩展容量中的逐出数据被释放时的存储器位置处。然后操作继续回到框410,在该框中在控制器处接收新命令并且再次开始过程。
如果在扩展容量中不存在用于框470的逐出数据的空间,如在框475中所确定,那么操作代替进行到框490,并且数据储存设备确定在虚拟扩展高速缓存的扩展容量中的哪些现有高速缓存数据应该从虚拟扩展高速缓存中去除。该确定可以基于与逐出数据相关联的优先级信息和与在扩展容量中的现有高速缓存数据相关联的一个或更多个优先级信息的比较。例如,如果逐出数据具有比一个或更多个现有高速缓存数据的优先级高的优先级,那么该现有高速缓存数据可以被确定为被去除。在框492处,在框490中被确定为被去除的现有高速缓存数据从扩展容量中被去除(遵循类似于先前在框455处描述的过程),并且在框494处,框470的逐出数据在扩展容量中被分配,例如在通过在每框492的现有高速缓存数据消除释放的存储器位置处。在物理容量(每框430)中被分配的候选数据然后在虚拟扩展高速缓存的物理容量中被分配在可用的存储器位置处(例如,在固态储存器中),例如,在通过去除进入到扩展容量中的逐出数据释放的存储器位置处。然后操作继续回到框410,在该框中在控制器处接收新命令并且再次开始过程。
图5示出根据本发明的一个实施例的被配置成与进入和退出休眠模式的主机***连接的虚拟扩展高速缓存和映射***的操作的流程图500。虚拟扩展高速缓存和映射***可包括与先前讨论的那些相同或类似的特征,并且包括固态存储器的物理容量和储存器的虚拟容量。在框505处,数据管理操作开始。这可发生在提供功率给包括虚拟扩展高速缓存的数据储存设备、提供功率给连接到数据储存设备的主机***、初始化数据储存设备和/或主机***或以其它方式开始主机***的任何休眠过程时。在框510处,在主机***进入休眠模式时,数据储存设备的控制器接收来自主机***的恢复数据。
在框515处,在固态储存器的物理容量中一些或全部原始或现有数据从固态储存器的物理容量中逐出,这可包括数据的去除和到主储存器诸如磁储存器的数据的传输。在一个实施例中,逐出数据凭借存储一些映射信息被存储在高速缓存存储器的虚拟容量中,以指示数据属于虚拟扩展高速缓存。在框520处,在框510处从主机***接收的恢复数据存储在固态储存器的物理容量中,例如在由于在框515中原始或现有数据的逐出使得可用的存储器位置处。然后,主机***可以断电或以其它方式进入睡眠或休眠模式,其中经由保存在固态储存器的物理容量中的恢复数据保存其先前的状态。
在框525处,在主机***从睡眠或休眠模式退出时,数据储存设备的控制器从主机***接收指示主机***从休眠或睡眠模式退出的信号。在框530处,在使用在固态储存器的物理容量中的恢复数据以将主机***返回到其保存状态之后,恢复数据从固态储存器的物理容量中被逐出。在框535处,从固态储存器的物理容量中逐出原始数据(见框515)被再次存储在固态储存器的物理容量中。由于此类原始数据在虚拟扩展高速缓存中的跟踪,在框535中的原始数据的储存可自动地发生,而不需要来自主机***的指示原始数据将被返回到固态储存器的物理容量的任何进一步的信号或命令。在框540处,过程结束,例如,直到主机***再次开始进入休眠状态的过程,在该时间处,图5的过程将重新开始。
结论
公开的数据储存设备和过程利用了扩展到给定存储器的实际的物理存储器容量(诸如,固态存储器)之外的虚拟存储器容量。从连接的外部设备诸如主机***提供的或者由数据储存装置内部确定的优先级信息用于为作为数据储存设备的一部分而存储的数据的存储、传输或去除确定存储器位置。这能够例如,允许数据储存设备有效地管理存储在内部的数据,从而改善优先数据的访问速度。例如,能够容纳主机***的快速休眠和恢复功能,而不需要数据储存设备提供仅在此类情况下使用的另外的固态存储器。
其它变型形式
本领域技术人员将理解,在一些实施例中,公开的技术能够施加于由储存***执行的其它数据管理操作。例如,在磨损均衡、坏块管理等期间能够考虑数据的优先级。此外,附加的或另选的因素能够用于确定存储数据的优先级或与使用此类优先级结合以确定数据储存位置的管理。存储数据的优先级能够使用任何合适的因素的组合和将任何合适的功能施加于组合,例如平均、加权平均、最小二乘判定,以及其它线性和/或非线性函数来确定。在公开的过程中,例如图4和图5中所示的过程,所采取的实际步骤可以不同于附图中所示的步骤。另外,在一些实施例中,代替固态存储器,高速存储器可以是磁介质的一部分(例如,在磁盘外径上的高速缓存存储器区域,其中数据速率较高)。能够利用另外的***部件,并且能够组合或省略公开的***部件。根据实施例,可以去除以上明确描述的步骤中的某些,可以添加其它步骤,和/或可以在顺序上重新布置步骤。因此,本公开的范围旨在仅通过参考所附权利要求来限定。
虽然已经描述了某些实施例,但这些实施例已仅以示例的方式提出,而并非旨在限制保护的范围。当然,本文所述的新型方法和***可以以各种其它形式来实施。此外,可以对本文所述的方法和***的形式的进行各种省略、替换和改变,而不脱离保护的精神。所附权利要求及其等同物旨在覆盖如将落入保护的范围和精神内的此类形式或修改。例如,本文公开的***和方法能够施加于硬盘驱动器、固态驱动器等。此外,除此之外或另选地可以使用其它形式的储存器(例如,DRAM或SRAM、电池备份的易失性DRAM或SRAM设备、EPROM、EEPROM存储器等)。又如,在附图中所示的各种部件可以被实现为在处理器上的软件和/或固件、ASIC/FPGA,或专用硬件。另外,以上公开的具体实施例的特征和属性可以以不同方式组合,以形成另外的实施例,所有这些都落入本公开的范围内。虽然本公开提供了某些优选实施例和应用,但对本领域的普通技术人员来说显而易见的其它实施例,包括其中未提供本文所阐述的所有特征和优点的实施例,也在本公开的范围内。因此,本公开的范围旨在仅通过参考所附权利要求来限定。
Claims (18)
1.在具有被配置成充当主存储器的高速缓存的高速缓存存储器的数据储存设备中,一种管理在所述高速缓存存储器中的数据的方法,所述方法包括:
维持与存储在所述高速缓存存储器中的数据相关联的第一组逻辑块地址即第一组LBA,所述第一组LBA对应于在所述高速缓存存储器的可用容量内的数据的量;
维持与未存储在所述高速缓存存储器的所述可用容量内的数据相关联的第二组LBA;
比较第一优先级信息和第二优先级信息,所述第一优先级信息与第一数据相关联,所述第二优先级信息与第二数据相关联,所述第一数据与所述第一组LBA内的LBA相关联,所述第二数据与所述第二组LBA内的LBA相关联;
基于所述第一优先级信息和所述第二优先级信息的比较,从所述高速缓存存储器的所述可用容量中逐出所述第一数据;以及
使与所逐出的第一数据相关联的所述LBA和与所述第二数据相关联的所述LBA相关联。
2.根据权利要求1所述的方法,其中基于改变所述高速缓存存储器的所述可用容量的条件,触发从所述高速缓存存储器的所述可用容量中逐出所述第一数据。
3.根据权利要求2所述的方法,其中所述条件与容纳来自主机***的要存储在所述高速缓存存储器的所述可用容量中的***数据有关。
4.根据权利要求3所述的方法,其中所述***数据包括在所述主机***退出睡眠模式后用于复原所述主机***的恢复数据。
5.根据权利要求4所述的方法,还包括:
基于所述主机***退出所述睡眠模式,将所述第一数据复原到所述高速缓存存储器的所述可用容量中;以及
使与所述第一数据相关联的所述LBA与所述第一组LBA相关联。
6.根据权利要求1所述的方法,其中所述第一组LBA和所述第二组LBA维持在单个数据结构内。
7.根据权利要求1所述的方法,其中所述第一组LBA和所述第二组LBA维持在不同的数据结构内。
8.根据权利要求1所述的方法,其中所述数据储存设备是混合驱动器。
9.根据权利要求1所述的方法,其中所述高速缓存存储器的所述可用容量包括非易失性固态存储器。
10.根据权利要求1所述的方法,其中比较所述第一优先级信息和所述第二优先级信息包括确定所述第二数据是否比所述第一数据更近使用。
11.根据权利要求1所述的方法,其中比较所述第一优先级信息和所述第二优先级信息包括确定所述第二数据是否比所述第一数据更频繁使用。
12.根据权利要求1所述的方法,其中所述第一优先级信息从主机***接收。
13.一种数据储存设备,所述数据储存设备包括:
被配置成在其中存储数据的非易失性磁存储器;
被配置成在其中存储数据的非易失性固态存储器,所述非易失性固态存储器被配置成作为所述非易失性磁存储器的高速缓存;以及
与所述非易失性磁存储器和所述非易失性固态存储器相连接的控制器,所述控制器被配置成:
维持与存储在所述非易失性固态存储器中的数据相关联的第一组逻辑块地址即第一组LBA;
维持与未存储在所述非易失性固态存储器中的数据相关联的第二组LBA;
接收与所述第一组LBA内的LBA相关联的第一数据的优先级信息;
基于所述优先级信息,使与所述第一数据相关联的所述LBA与所述第二组LBA相关联;以及
基于所述优先级信息,使与所述第一数据相关联的所述LBA与所述第一组LBA重新关联。
14.根据权利要求13所述的数据储存设备,其中所述非易失性固态存储器包括NAND型闪存存储器。
15.根据权利要求13所述的数据储存设备,其中所述控制器还被配置成与主机***相连接,并且其中响应于所述主机***进入休眠模式,与所述第一数据相关联的所述LBA与所述第二组LBA相关联。
16.根据权利要求15所述的数据储存设备,其中响应于所述主机***从所述休眠模式恢复,与所述第一数据相关联的所述LBA与所述第一组LBA重新关联。
17.一种管理在混合数据储存设备中的数据的方法,所述混合数据储存设备具有非易失性磁储存器、被配置成作为所述非易失性磁储存器的高速缓存的非易失性闪存储存器,以及与所述非易失性磁储存器和所述非易失性闪存储存器通信的控制器,所述方法包括:
由所述控制器维持包括第一组逻辑块地址即第一组LBA和第二组LBA的数据结构,所述第一组LBA用于存储在所述非易失性闪存储存器中的数据,所述第二组LBA用于未存储在所述非易失性闪存储存器中的数据;
在所述控制器处接收来自主机***的第一数据;
使LBA与所述第一数据相关联;
在所述控制器处接收来自所述主机***的优先级信息,所述优先级信息对应于所述第一数据;以及
基于所述优先级信息,使与所述第一数据相关联的所述LBA与所述第一组逻辑块地址相关联。
18.根据权利要求17所述的方法,其中所述主机***被配置成进入或退出休眠模式,所述方法还包括:
基于所述主机***进入所述休眠模式,从所述非易失性闪存储存器中逐出所述第一数据;以及
基于所述主机***退出所述休眠模式,将所逐出的第一数据自动传输到所述非易失性闪存储存器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/928,318 US9208101B2 (en) | 2013-06-26 | 2013-06-26 | Virtual NAND capacity extension in a hybrid drive |
US13/928,318 | 2013-06-26 | ||
PCT/US2014/043647 WO2014209880A1 (en) | 2013-06-26 | 2014-06-23 | Virtual nand capacity extension in a hybrid drive |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105339910A CN105339910A (zh) | 2016-02-17 |
CN105339910B true CN105339910B (zh) | 2018-01-12 |
Family
ID=52116830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480036908.6A Expired - Fee Related CN105339910B (zh) | 2013-06-26 | 2014-06-23 | 在混合驱动器中的虚拟nand容量扩展 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9208101B2 (zh) |
CN (1) | CN105339910B (zh) |
HK (1) | HK1218796A1 (zh) |
WO (1) | WO2014209880A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9544230B2 (en) | 2013-09-17 | 2017-01-10 | Cisco Technology, Inc. | Migration support for bit indexed explicit replication |
US10003494B2 (en) | 2013-09-17 | 2018-06-19 | Cisco Technology, Inc. | Per-prefix LFA FRR with bit indexed explicit replication |
US9806897B2 (en) | 2013-09-17 | 2017-10-31 | Cisco Technology, Inc. | Bit indexed explicit replication forwarding optimization |
US20150089118A1 (en) * | 2013-09-20 | 2015-03-26 | Sandisk Technologies Inc. | Methods, systems, and computer readable media for partition and cache restore |
US9513904B2 (en) * | 2013-10-15 | 2016-12-06 | Mill Computing, Inc. | Computer processor employing cache memory with per-byte valid bits |
US9734066B1 (en) * | 2014-05-22 | 2017-08-15 | Sk Hynix Memory Solutions Inc. | Workload-based adjustable cache size |
US10341221B2 (en) | 2015-02-26 | 2019-07-02 | Cisco Technology, Inc. | Traffic engineering for bit indexed explicit replication |
TWI554945B (zh) * | 2015-08-31 | 2016-10-21 | 晨星半導體股份有限公司 | 例行工作的分配方法及應用其之多核心電腦 |
US10971215B1 (en) * | 2020-02-24 | 2021-04-06 | Western Digital Technologies, Inc. | Dynamically adjust data transfer speed for non-volatile memory die interfaces |
CN114067879A (zh) * | 2021-10-14 | 2022-02-18 | 西安紫光国芯半导体有限公司 | 3d非易失性存储装置及其读数据方法、写数据方法 |
CN115729849B (zh) * | 2022-11-04 | 2024-02-20 | 超聚变数字技术有限公司 | 内存管理方法及计算设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1527973A (zh) * | 2000-06-23 | 2004-09-08 | 英特尔公司 | 非易失性高速缓存 |
WO2011071818A3 (en) * | 2009-12-07 | 2011-10-06 | Microsoft Corporation | Extending ssd lifetime using hybrid storage |
Family Cites Families (111)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2256735B (en) | 1991-06-12 | 1995-06-21 | Intel Corp | Non-volatile disk cache |
US5414861A (en) | 1991-09-11 | 1995-05-09 | Fujitsu Limited | Data protection system using different levels of reserve power to maintain data in volatile memories for any period of time |
US5778418A (en) | 1991-09-27 | 1998-07-07 | Sandisk Corporation | Mass computer storage system having both solid state and rotating disk types of memory |
US5636355A (en) | 1993-06-30 | 1997-06-03 | Digital Equipment Corporation | Disk cache management techniques using non-volatile storage |
JPH0744325A (ja) | 1993-07-27 | 1995-02-14 | Fuji Electric Co Ltd | ディスク記憶装置の起動およびデータ読み書き方式 |
US6101574A (en) | 1995-02-16 | 2000-08-08 | Fujitsu Limited | Disk control unit for holding track data in non-volatile cache memory |
JP2988866B2 (ja) | 1996-02-29 | 1999-12-13 | 株式会社東芝 | コンピュータシステム |
US6092149A (en) | 1997-05-28 | 2000-07-18 | Western Digital Corporation | Disk drive cache system using a dynamic priority sequential stream of data segments continuously adapted according to prefetched sequential random, and repeating types of accesses |
US6018789A (en) | 1997-11-24 | 2000-01-25 | Western Digital Corporation | Disk drive with cache segment providing adaptively managed chunks |
KR100283243B1 (ko) | 1998-05-11 | 2001-03-02 | 구자홍 | 운영체제의 부팅방법 |
US6539456B2 (en) | 1999-10-13 | 2003-03-25 | Intel Corporation | Hardware acceleration of boot-up utilizing a non-volatile disk cache |
US6449683B1 (en) | 1999-12-14 | 2002-09-10 | Intel Corporation | Using non-volatile memory for power management in a computer |
US6795894B1 (en) | 2000-08-08 | 2004-09-21 | Hewlett-Packard Development Company, L.P. | Fast disk cache writing system |
US6798599B2 (en) | 2001-01-29 | 2004-09-28 | Seagate Technology Llc | Disc storage system employing non-volatile magnetoresistive random access memory |
US20030142561A1 (en) | 2001-12-14 | 2003-07-31 | I/O Integrity, Inc. | Apparatus and caching method for optimizing server startup performance |
US6968450B1 (en) | 2002-06-01 | 2005-11-22 | Western Digital Technologies, Inc. | Disk drive caching initial host requested data in non-volatile semiconductor memory to reduce start-up time of a host computer |
US7017037B2 (en) | 2002-06-27 | 2006-03-21 | Microsoft Corporation | Apparatus and method to decrease boot time and hibernate awaken time of a computer system utilizing disk spin-up-time |
US7170706B2 (en) | 2002-08-29 | 2007-01-30 | Freescale Semiconductor, Inc. | Hard disk system with non-volatile IC based memory for storing data |
US20040088481A1 (en) | 2002-11-04 | 2004-05-06 | Garney John I. | Using non-volatile memories for disk caching |
US6856556B1 (en) | 2003-04-03 | 2005-02-15 | Siliconsystems, Inc. | Storage subsystem with embedded circuit for protecting against anomalies in power signal from host |
US7340593B2 (en) | 2004-04-09 | 2008-03-04 | Dell Products L.P. | Hard drive reset cache |
US7330938B2 (en) | 2004-05-18 | 2008-02-12 | Sap Ag | Hybrid-cache having static and dynamic portions |
US7502256B2 (en) | 2004-11-30 | 2009-03-10 | Siliconsystems, Inc. | Systems and methods for reducing unauthorized data recovery from solid-state storage devices |
US7461202B2 (en) | 2005-05-03 | 2008-12-02 | International Business Machines Corporation | Method and apparatus using hard disk drive for enhanced non-volatile caching |
US20070005883A1 (en) | 2005-06-30 | 2007-01-04 | Trika Sanjeev N | Method to keep volatile disk caches warm across reboots |
US7318118B2 (en) | 2005-07-14 | 2008-01-08 | Hitachi Global Storage Technologies B.V. | System and method for selective write to flash memory in HDD |
US7634585B2 (en) | 2005-11-04 | 2009-12-15 | Sandisk Corporation | In-line cache using nonvolatile memory between host and disk device |
US7653778B2 (en) | 2006-05-08 | 2010-01-26 | Siliconsystems, Inc. | Systems and methods for measuring the useful life of solid-state storage devices |
US7765373B1 (en) | 2006-06-27 | 2010-07-27 | Siliconsystems, Inc. | System for controlling use of a solid-state storage subsystem |
US8108692B1 (en) | 2006-06-27 | 2012-01-31 | Siliconsystems, Inc. | Solid-state storage subsystem security solution |
US7509441B1 (en) | 2006-06-30 | 2009-03-24 | Siliconsystems, Inc. | Systems and methods for segmenting and protecting a storage subsystem |
US7447807B1 (en) | 2006-06-30 | 2008-11-04 | Siliconsystems, Inc. | Systems and methods for storing data in segments of a storage subsystem |
US7411757B2 (en) | 2006-07-27 | 2008-08-12 | Hitachi Global Storage Technologies Netherlands B.V. | Disk drive with nonvolatile memory having multiple modes of operation |
US8161227B1 (en) | 2006-10-30 | 2012-04-17 | Siliconsystems, Inc. | Storage subsystem capable of programming field-programmable devices of a target computer system |
US7568068B2 (en) | 2006-11-13 | 2009-07-28 | Hitachi Global Storage Technologies Netherlands B. V. | Disk drive with cache having volatile and nonvolatile memory |
US8549236B2 (en) | 2006-12-15 | 2013-10-01 | Siliconsystems, Inc. | Storage subsystem with multiple non-volatile memory arrays to protect against data losses |
US7596643B2 (en) | 2007-02-07 | 2009-09-29 | Siliconsystems, Inc. | Storage subsystem with configurable buffer |
US20080209198A1 (en) | 2007-02-26 | 2008-08-28 | Majni Timothy W | Boot Acceleration For Computer Systems |
US7685337B2 (en) | 2007-05-24 | 2010-03-23 | Siliconsystems, Inc. | Solid state storage subsystem for embedded applications |
US7685338B2 (en) | 2007-05-24 | 2010-03-23 | Siliconsystems, Inc. | Solid state storage subsystem for embedded applications |
US7685374B2 (en) | 2007-07-26 | 2010-03-23 | Siliconsystems, Inc. | Multi-interface and multi-bus structured solid-state storage subsystem |
US8095851B2 (en) | 2007-09-06 | 2012-01-10 | Siliconsystems, Inc. | Storage subsystem capable of adjusting ECC settings based on monitored conditions |
US8078918B2 (en) | 2008-02-07 | 2011-12-13 | Siliconsystems, Inc. | Solid state storage subsystem that maintains and provides access to data reflective of a failure risk |
US7962792B2 (en) | 2008-02-11 | 2011-06-14 | Siliconsystems, Inc. | Interface for enabling a host computer to retrieve device monitor data from a solid state storage subsystem |
US8082433B1 (en) | 2008-02-12 | 2011-12-20 | Western Digital Technologies, Inc. | Disk drive employing boot disk space to expedite the boot operation for a host computer |
US7733712B1 (en) | 2008-05-20 | 2010-06-08 | Siliconsystems, Inc. | Storage subsystem with embedded circuit for protecting against anomalies in power signal from host |
US8375151B1 (en) | 2009-02-12 | 2013-02-12 | Siliconsystems, Inc. | Command portal for securely communicating and executing non-standard storage subsystem commands |
US8583835B1 (en) | 2008-08-06 | 2013-11-12 | Siliconsystems, Inc. | Command portal for executing non-standard storage subsystem commands |
US9176859B2 (en) | 2009-01-07 | 2015-11-03 | Siliconsystems, Inc. | Systems and methods for improving the performance of non-volatile memory operations |
US8090899B1 (en) | 2009-03-04 | 2012-01-03 | Western Digital Technologies, Inc. | Solid state drive power safe wear-leveling |
US10079048B2 (en) | 2009-03-24 | 2018-09-18 | Western Digital Technologies, Inc. | Adjusting access of non-volatile semiconductor memory based on access time |
US9881039B2 (en) | 2009-05-26 | 2018-01-30 | International Business Machines Corporation | Rebalancing operation using a solid state memory device |
US8254172B1 (en) | 2009-09-30 | 2012-08-28 | Western Digital Technologies, Inc. | Wear leveling non-volatile semiconductor memory based on erase times and program times |
US8243525B1 (en) | 2009-09-30 | 2012-08-14 | Western Digital Technologies, Inc. | Refreshing non-volatile semiconductor memory by reading without rewriting |
US9753847B2 (en) | 2009-10-27 | 2017-09-05 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping |
US8261012B2 (en) | 2009-10-30 | 2012-09-04 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory comprising power fail circuitry for flushing write data in response to a power fail signal |
US8135903B1 (en) | 2009-10-30 | 2012-03-13 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory compressing data to improve performance |
US8397107B1 (en) | 2009-12-11 | 2013-03-12 | Western Digital Technologies, Inc. | Data storage device employing data path protection using both LBA and PBA |
US8443167B1 (en) | 2009-12-16 | 2013-05-14 | Western Digital Technologies, Inc. | Data storage device employing a run-length mapping table and a single address mapping table |
US8316176B1 (en) | 2010-02-17 | 2012-11-20 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory segregating sequential data during garbage collection to reduce write amplification |
US8407449B1 (en) | 2010-02-26 | 2013-03-26 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table |
US8725931B1 (en) | 2010-03-26 | 2014-05-13 | Western Digital Technologies, Inc. | System and method for managing the execution of memory commands in a solid-state memory |
US8713066B1 (en) | 2010-03-29 | 2014-04-29 | Western Digital Technologies, Inc. | Managing wear leveling and garbage collection operations in a solid-state memory using linked lists |
US8700949B2 (en) | 2010-03-30 | 2014-04-15 | International Business Machines Corporation | Reliability scheme using hybrid SSD/HDD replication with log structured management |
US8782327B1 (en) | 2010-05-11 | 2014-07-15 | Western Digital Technologies, Inc. | System and method for managing execution of internal commands and host commands in a solid-state memory |
US9026716B2 (en) | 2010-05-12 | 2015-05-05 | Western Digital Technologies, Inc. | System and method for managing garbage collection in solid-state memory |
US8341339B1 (en) | 2010-06-14 | 2012-12-25 | Western Digital Technologies, Inc. | Hybrid drive garbage collecting a non-volatile semiconductor memory by migrating valid data to a disk |
US8612669B1 (en) | 2010-06-28 | 2013-12-17 | Western Digital Technologies, Inc. | System and method for performing data retention in solid-state memory using copy commands and validity and usage data |
US8447920B1 (en) | 2010-06-29 | 2013-05-21 | Western Digital Technologies, Inc. | System and method for managing data access in non-volatile memory |
US8521972B1 (en) | 2010-06-30 | 2013-08-27 | Western Digital Technologies, Inc. | System and method for optimizing garbage collection in data storage |
US8639872B1 (en) | 2010-08-13 | 2014-01-28 | Western Digital Technologies, Inc. | Hybrid drive comprising write cache spanning non-volatile semiconductor memory and disk |
US8775720B1 (en) | 2010-08-31 | 2014-07-08 | Western Digital Technologies, Inc. | Hybrid drive balancing execution times for non-volatile semiconductor memory and disk |
US8638602B1 (en) | 2010-09-10 | 2014-01-28 | Western Digital Technologies, Inc. | Background selection of voltage reference values for performing memory read operations |
US8769190B1 (en) | 2010-09-15 | 2014-07-01 | Western Digital Technologies, Inc. | System and method for reducing contentions in solid-state memory access |
US8788779B1 (en) | 2010-09-17 | 2014-07-22 | Western Digital Technologies, Inc. | Non-volatile storage subsystem with energy-based performance throttling |
US8612804B1 (en) | 2010-09-30 | 2013-12-17 | Western Digital Technologies, Inc. | System and method for improving wear-leveling performance in solid-state memory |
US8601313B1 (en) | 2010-12-13 | 2013-12-03 | Western Digital Technologies, Inc. | System and method for a data reliability scheme in a solid state memory |
US8601311B2 (en) | 2010-12-14 | 2013-12-03 | Western Digital Technologies, Inc. | System and method for using over-provisioned data capacity to maintain a data redundancy scheme in a solid state memory |
US8615681B2 (en) | 2010-12-14 | 2013-12-24 | Western Digital Technologies, Inc. | System and method for maintaining a data redundancy scheme in a solid state memory in the event of a power loss |
US8458435B1 (en) | 2010-12-20 | 2013-06-04 | Western Digital Technologies, Inc. | Sequential write thread detection |
US8392635B2 (en) | 2010-12-22 | 2013-03-05 | Western Digital Technologies, Inc. | Selectively enabling a host transfer interrupt |
US8683113B2 (en) | 2011-02-04 | 2014-03-25 | Western Digital Technologies, Inc. | Concurrently searching multiple devices of a non-volatile semiconductor memory |
US8700950B1 (en) | 2011-02-11 | 2014-04-15 | Western Digital Technologies, Inc. | System and method for data error recovery in a solid state subsystem |
US8700951B1 (en) | 2011-03-09 | 2014-04-15 | Western Digital Technologies, Inc. | System and method for improving a data redundancy scheme in a solid state subsystem with additional metadata |
US8769232B2 (en) | 2011-04-06 | 2014-07-01 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory module enabling out of order host command chunk media access |
US8862804B2 (en) | 2011-04-29 | 2014-10-14 | Western Digital Technologies, Inc. | System and method for improved parity determination within a data redundancy scheme in a solid state memory |
US8751728B1 (en) | 2011-04-29 | 2014-06-10 | Western Digital Technologies, Inc. | Storage system bus transfer optimization |
US9021178B2 (en) | 2011-05-02 | 2015-04-28 | Western Digital Technologies, Inc. | High performance path for command processing |
US8503237B1 (en) | 2011-05-18 | 2013-08-06 | Western Digital Technologies, Inc. | System and method for data recovery in a solid state storage device |
US8793429B1 (en) | 2011-06-03 | 2014-07-29 | Western Digital Technologies, Inc. | Solid-state drive with reduced power up time |
US8719531B2 (en) | 2011-06-14 | 2014-05-06 | Western Digital Technologies, Inc. | System and method for performing data retention that incorporates environmental conditions |
US8423722B1 (en) | 2011-08-26 | 2013-04-16 | Western Digital Technologies, Inc. | System and method for high performance command processing in solid state drives |
US8527692B2 (en) | 2011-08-26 | 2013-09-03 | Hewlett-Packard Development Company, L.P. | Data storage apparatus with a HDD and a removable solid state device |
US8713357B1 (en) | 2011-09-06 | 2014-04-29 | Western Digital Technologies, Inc. | Systems and methods for detailed error reporting in data storage systems |
US8700834B2 (en) | 2011-09-06 | 2014-04-15 | Western Digital Technologies, Inc. | Systems and methods for an enhanced controller architecture in data storage systems |
US8707104B1 (en) | 2011-09-06 | 2014-04-22 | Western Digital Technologies, Inc. | Systems and methods for error injection in data storage systems |
US9244848B2 (en) | 2011-10-10 | 2016-01-26 | Intel Corporation | Host controlled hybrid storage device |
US8977803B2 (en) | 2011-11-21 | 2015-03-10 | Western Digital Technologies, Inc. | Disk drive data caching using a multi-tiered memory |
US8724422B1 (en) | 2012-02-29 | 2014-05-13 | Western Digital Technologies, Inc. | System and method for charging back-up charge storage element for data storage device using spindle phase switching elements |
US9003224B2 (en) | 2012-04-25 | 2015-04-07 | Western Digital Technologies, Inc. | Managing unreliable memory in data storage systems |
US8788778B1 (en) | 2012-06-04 | 2014-07-22 | Western Digital Technologies, Inc. | Garbage collection based on the inactivity level of stored data |
US8966343B2 (en) | 2012-08-21 | 2015-02-24 | Western Digital Technologies, Inc. | Solid-state drive retention monitor using reference blocks |
US8788880B1 (en) | 2012-08-22 | 2014-07-22 | Western Digital Technologies, Inc. | Efficient retry mechanism for solid-state memory failures |
US9268682B2 (en) | 2012-10-05 | 2016-02-23 | Skyera, Llc | Methods, devices and systems for physical-to-logical mapping in solid state drives |
US8972826B2 (en) | 2012-10-24 | 2015-03-03 | Western Digital Technologies, Inc. | Adaptive error correction codes for data storage systems |
US9177638B2 (en) | 2012-11-13 | 2015-11-03 | Western Digital Technologies, Inc. | Methods and devices for avoiding lower page corruption in data storage devices |
US8954694B2 (en) | 2012-11-15 | 2015-02-10 | Western Digital Technologies, Inc. | Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive |
US9021339B2 (en) | 2012-11-29 | 2015-04-28 | Western Digital Technologies, Inc. | Data reliability schemes for data storage systems |
US9059736B2 (en) | 2012-12-03 | 2015-06-16 | Western Digital Technologies, Inc. | Methods, solid state drive controllers and data storage devices having a runtime variable raid protection scheme |
US20140223255A1 (en) | 2012-12-18 | 2014-08-07 | Western Digital Technologies, Inc. | Decoder having early decoding termination detection |
US9430376B2 (en) | 2012-12-26 | 2016-08-30 | Western Digital Technologies, Inc. | Priority-based garbage collection for data storage systems |
-
2013
- 2013-06-26 US US13/928,318 patent/US9208101B2/en active Active
-
2014
- 2014-06-23 CN CN201480036908.6A patent/CN105339910B/zh not_active Expired - Fee Related
- 2014-06-23 WO PCT/US2014/043647 patent/WO2014209880A1/en active Application Filing
-
2016
- 2016-06-14 HK HK16106824.1A patent/HK1218796A1/zh unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1527973A (zh) * | 2000-06-23 | 2004-09-08 | 英特尔公司 | 非易失性高速缓存 |
WO2011071818A3 (en) * | 2009-12-07 | 2011-10-06 | Microsoft Corporation | Extending ssd lifetime using hybrid storage |
Also Published As
Publication number | Publication date |
---|---|
HK1218796A1 (zh) | 2017-03-10 |
US9208101B2 (en) | 2015-12-08 |
US20150006823A1 (en) | 2015-01-01 |
WO2014209880A1 (en) | 2014-12-31 |
CN105339910A (zh) | 2016-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105339910B (zh) | 在混合驱动器中的虚拟nand容量扩展 | |
US10126964B2 (en) | Hardware based map acceleration using forward and reverse cache tables | |
US9652386B2 (en) | Management of memory array with magnetic random access memory (MRAM) | |
US9378131B2 (en) | Non-volatile storage addressing using multiple tables | |
US9304904B2 (en) | Hierarchical flash translation layer | |
CN108121503B (zh) | 一种NandFlash地址映射及块管理方法 | |
US9128847B2 (en) | Cache control apparatus and cache control method | |
EP2939120B1 (en) | Priority-based garbage collection for data storage systems | |
US10489295B2 (en) | Systems and methods for managing cache pre-fetch | |
US8386698B2 (en) | Data accessing method for flash memory and storage system and controller using the same | |
US8443144B2 (en) | Storage device reducing a memory management load and computing system using the storage device | |
US9367451B2 (en) | Storage device management device and method for managing storage device | |
CN102707899B (zh) | 虚拟存储器***、虚拟存储器控制方法和程序 | |
CN105930282B (zh) | 一种用于nand flash的数据缓存方法 | |
US10740251B2 (en) | Hybrid drive translation layer | |
US20140129758A1 (en) | Wear leveling in flash memory devices with trim commands | |
JP2011198133A (ja) | メモリシステムおよびコントローラ | |
US10013174B2 (en) | Mapping system selection for data storage device | |
KR20150062039A (ko) | 반도체 장치 및 그 동작 방법 | |
CN106205707B (zh) | 存储器装置 | |
JP4734432B2 (ja) | データ記憶システム | |
CN111324287A (zh) | 一种存储器 | |
EP4303734A1 (en) | Systems, methods, and devices for using a reclaim unit based on a reference update in a storage device |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1218796 Country of ref document: HK |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180112 |