CN101714062A - 改进的混合驱动器 - Google Patents
改进的混合驱动器 Download PDFInfo
- Publication number
- CN101714062A CN101714062A CN200910178442A CN200910178442A CN101714062A CN 101714062 A CN101714062 A CN 101714062A CN 200910178442 A CN200910178442 A CN 200910178442A CN 200910178442 A CN200910178442 A CN 200910178442A CN 101714062 A CN101714062 A CN 101714062A
- Authority
- CN
- China
- Prior art keywords
- hdd
- ssd
- piece
- frequent
- read
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/122—Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
-
- 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
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- 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
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- 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/1021—Hit rate 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种改进的混合驱动器,其包括硬盘驱动器HDD,其具有在多个块中的第一容量用于在其中存储信息,非易失性固态存储器SSD,其具有小于该第一存储容量的第二存储容量,用于在其中存储信息。该存储系统包括控制器,其具有易失性存储器和用于控制该HDD的读操作和该SSD的读/写操作。控制器在第一时间段内将从HDD中读取的块的地址存储在易失性存储器中并在第一时间段内确定多个最频繁读取的块。随后控制器使SSD存储来自HDD的最频繁读取的块的信息,之后当存储系统被请求存取来自最频繁读取的块的信息时,从该SSD中读取信息。控制器在第二时间段之后重置易失性存储器中的最频繁读取的块的身份,其中第二时间段比第一时间段长。
Description
技术领域
本发明涉及一种改进的存储装置,该装置包括硬盘驱动器和非易失性存储器高速缓存。
背景技术
在本领域中混合驱动器为公知的。混合驱动器包括具有用作高速缓冲存储器的固态驱动器(SSD)的硬盘驱动器(HDD)。混合驱动器所吸引人的地方在于将从HDD中频繁存取的数据或程序存储在SSD的非易失性存储器中,而SSD担当HDD的高速缓存。因此,在理论上认为混合驱动器可以提高性能,缩短存取时间并且降低功率。然而,出于多种原因,混合驱动器还不能满足这种期望。
典型地,在现有技术中,混合驱动器和常规高速缓冲存储器几乎一样地运行。首先,当从HDD中检索或读取数据块时,也将其存储在SSD中。如果后续读取请求是针对同一块,则从SSD读取数据。然而,如果后续读取请求是针对不同块,则从不同块读取数据并将其同时存储在SSD中。一旦SSD被填写并且作出向HDD后续读取请求,则典型地,将从向HDD的最近请求中读取的数据存储在SSD的特定位置中,及时替换在SSD中存取最早的数据块。这个理论是,如果SSD中的数据块已没被存取持续最长时间,则其将被替换。
在一些混合驱动器中,SSD存储器的一部分专门用于存储始终被使用的操作系统程序或类似物,并且无论它们使用得多么不频繁也永远不被替换。
然而,混合驱动器无法实现它们的期望,这是因为发现在SSD中频繁使用的程序和数据经常不够。这一部分是由于在SSD中使用的非易失性存储器花费太高所引起。因此用在SSD中的总存储器的量小。此外,用于SSD的优化使用的常规方法依赖于用于HDD的静态存储器高速缓存的SSD。
因此,需要提高混合驱动器的性能。
发明内容
因此,在本发明中,非易失性存储系统包括硬盘驱动器(HDD),该硬盘驱动器具有在多个块中的第一容量用于在其中存储信息。该存储系统还包括非易失性固态存储器(SSD),该非易失性固态存储器具有小于该第一存储容量的第二存储容量,用于在其中存储信息。最后,该存储系统包括控制器,该控制器具有易失性存储器和用于控制该HDD的读操作和该SSD的读/写操作。该控制器在第一时间段内将从HDD中读取的块的地址存储在该易失性存储器中,并在该第一时间段内确定多个最频繁读取的块。随后该控制器引起SSD存储来自该HDD的该最频繁读取的块的信息,之后当该存储系统被请求存取来自该最频繁读取的块的信息时,从该SSD中读取信息。该控制器在第二时间段之后重置易失性存储器中的该最频繁读取的块的身份,其中该第二时间段比所述第一时间段长。
本发明还涉及读取存储在前述的非易失性存储系统的数据的方法。
附图说明
图1为本发明的改进的存储系统的块级图;
图2为用在图1所示的控制器中的缓冲器的一个实施例的示意图。
具体实施方式
参考图1,其示出了本发明的改进的非易失性存储系统10的块级图。该系统包括连接于主机设备12的控制器20。主机设备12典型地为处理器或计算机。控制器20包括易失性存储器30、微处理器22和非易失性存储器(NVM)24。该NVM 24存储由微处理器22执行的程序。当然,存储在该NVM 24的所存储的程序还可以由主机设备12更新。微处理器22接收来自NVM 24的存储的程序和执行其上的指令并且控制易失性存储器30。此外,该控制器连接至硬盘驱动器(HDD)40。最后,该系统10包括固态驱动器(SSD)50,该固态驱动器还被连接到控制器20并在控制器20的控制下。根据以下描述的本发明,在执行来自NVM 24的所存储的程序中的微处理器22还控制HDD 40和SSD 50以及易失性存储器30的运行。
HDD 40是常规磁盘驱动器,同时SSD 50也是常规固态驱动器,其包括非易失性固态存储器集成电路芯片。
在系统10的运行中,当接通电源时易失性存储器30被“重置”,这是因为通过限定当关断电源时易失性存储器30“丢失”存储在其中的所有内容。起初,当主机12向系统10请求读操作时,控制器读取HDD 40并且从中检索数据。控制器20将HDD 40划分成多个块。从其中一个块中读取由主机12请求的特定数据。该块的地址随后被存储在易失性存储器30中,其中由主机12请求从该地址读取数据。与请求从中读取数据的该块的该地址相关联的还有表示从HDD 40中读取块的数据的次数的计数器。
用于找回来自HDD 40的数据(当主机10发出每一个新读取请求时)并将已存取特定块的次数记录在易失性存储器中的该过程持续第一时间段N。一旦超过第一时间段N,控制器20从易失性存储器30中确定在第一时间段N的期间内已存取的块的列表。控制器20选择或确定从HDD 40被最频繁地存取的块的列表,以便将来自那些最频繁地存取的块的数据存储在SSD 50中。当然,一部分SSD 50可以包含与本发明的方法无关的保持静态地存储在SSD 50中的操作程序等,以使那些用于引导目的的程序可以通过从SSD 50而非HDD 40中存取从而快速引导。
一旦识别出最频繁读取或存取的块,则将来自HDD 40的来自那些最频繁存取的块的数据存储在SSD 50中。这可以通过以下两种方式之一来实现。第一,当主机12向系统作出每一读取请求用于针对来自HDD40的最频繁存取的块的数据的读操作时,从该块中读取数据并将其存储在SSD 50中,同时也将来自该块的数据提供给主机12。替代或除第一种方式之外的第二种方式是:当系统10为空闲时和没有接收到来自主机12的任何命令或请求(读或写)时,系统10可以读取来自HDD 40的来自最频繁存取的块的块,并将它们存储在SSD 50中。在该方式中,系统10可以用于此存储操作而不妨碍到来自主机12的任何请求。
一旦将来自最频繁存取的块的数据存储在SSD 50中,则当通过系统10接收来自主机12的每一新读取请求时,控制器20首先检查易失性存储器30以确定该数据是否在SSD 50中。在数据在SSD 50中的情况下,读取来自SSD 50的数据。然而,如果数据不是来自最频繁存取的块中的一个,则从HDD 40读取数据。在任一情况中,在每次从HDD 40或从SSD50中读取数据块时,易失性存储器30中使用计数器的频率增加。如果主机12向最频繁存取的块的其中一个写入数据,则该新块的数据也被重写入SSD 50中以及HDD 40中。这持续第二时间段N。
在第二时间段N的结束处,控制器20重新检查在易失性存储器30中使用计数器的频率中存储的值。控制器20再次从易失性存储器30中确定从HDD 40中最频繁存取的块的列表,以便将来自那些最频繁存取的块的数据存储在SSD 50中。因为要存储在SSD 50中的一些数据很可能从第一时间段N已被存储在SSD 50中,所以被频繁存取的块几乎不发生变化,即便是来自在第一时间段N期间为最频繁存取的块。因此,在第二时间段N之后,需要用以存储来自最频繁存取的块的数据的时间少于第一时间段N之后最初存储在SSD 50中的时间。
重复在每一时间段N之后重复地检查频繁存取的块的操作,直到总时间段M过去。通常,在一段时间M(例如24小时)下存在多个时间段N(每一N为一个小时),其中SSD 50通过易失性存储器30中使用计数器的频率来更新。然而,在M时间段的结束处,重置易失性存储器30中使用计数器的总频率。
参考图2a和图2b,示出了用在图1所示的控制器20中的易失性存储器30的一个实施例的示意图。易失性存储器30包括两个缓冲器:图2a所示的第一缓冲器32和图2b所示的第二缓冲器34。也将第一缓冲器32称为HDD缓冲器32。将第二缓冲器34称为SSD缓冲器34。
假设HDD 40具有128GB的总存储容量。进一步假设每一数据块为128KB。在HDD 40中存在1百万个不同块,每一个代表128KB的数据块。HDD缓冲器32具有2MB的存储容量,即一百万个项,每个项具有2字节或16位。对于对应于一个块的每一项,HDD缓冲器32具有14位以在第一时间段N的期间对那个块的存取频率保持计数。进一步,每一块具有用于指示对应的项是否在SSD缓冲器34中的项(1位)(称为“SSD中”(In-SSD)位)。在该位被置位的情况中,其指示HDD的项也被存储在SSD缓冲器34中。最后,每一块具有用于指示该块是否被锁定的项(1位)(称为“锁定”(Locked)位)。在该位被置位的情况中,其指示数据块在SSD 50中并被锁定,且其不能被移除或被频繁存取的块所替代。
如果每一块为128KB,并且如果我们假设SSD 50具有4GB的总存储容量,则可以将总数为8k的不同块(每一个为128KB)存储在SSD50中。因此,SSD缓冲器34具有8k个项,可以将针对每一个不同块的项存储在SSD 50中。对于SSD 50中的每一项,为了块对应的HDD 40中的地址保留二十(20)位。进一步,为了项“In-SSD的分区”保留一(1)位,其指示对应于HDD地址的数据是否存储在SSD 50中。
在以上所描述的具有易失性存储器缓冲器32和34的系统10的运行中,当加电时,缓冲器32和34均为空。让我们假设SSD 50也为空。因此,在HDD缓冲器32中的每一个块项中的标记“In-SSD”为空,指示数据未存储在SSD缓冲器34中。进一步,对应于每一块项的“锁定”位也未被置位。当存取HDD 40的块中的每一项时,在HDD缓冲器32中的相应块项中的“使用频率”字段增加。随后在第一时间段N之后,例如六十(60)分钟后,HDD缓冲器32中的许多项被检查以确定在“使用频率”字段中具有最高或最大计数的8k个项。那么如之前所讨论,在向那些来自HDD 40的块项进行后续读取期间,其中在HDD 40中将来自那些所读取的块的数据复制到SSD 50中,或当系统10为空闲和没有服务任何来自主机12的请求时,从HDD 40读取来自具有最高或最大“使用频率”的8k个项的数据块并随后将其复制到SSD 50中。在任一情况中,当从HDD40读取数据块并随后将其复制到SSD 50中时,对应于来自HDD 40的所读取的块的HDD缓冲器32中的标记“In-SSD”随后被置位。随后特定HDD地址存储在字段“HDD地址”中的SSD缓冲器34中的8K个项的其中一个中,从该特定的HDD地址中读取块。随后标记“In-SSD的分区”也被置位以指示数据在SSD 50中。这将持续直到所有8K个项均从HDD 40复制到SSD 50。
在复制操作期间,或在所有8K个项均被复制之后,当通过系统10从主机12接收读取请求时,将主机12请求从中读取块的HDD地址和存储在SSD缓冲器34中的HDD地址进行比较。如果由主机12请求的该特定HDD地址匹配字段“HDD地址”中SSD缓冲器34中的其中一个项,那么从SSD 50中的该相应项读取数据。如果由主机12请求的该特定HDD地址不匹配字段“HDD地址”中SSD缓冲器34中的任何项,那么从HDD 40读取数据。这将持续第二时间段N,其为另一个六十(60)分钟。如之前所讨论,在第二时间段N期间,继续更新HDD缓冲器32中使用计数器的频率。最后在为二十四(24)小时的时间段M之后,重置HDD缓冲器32中使用计数器的频率。当然N和M的值是动态改变的。
在时间段M之后,将在HDD缓冲器32中的所有一(1)百万个项中的字段“使用频率”重置为零。那么重复持续第一时间段N的存取HDD 40以读取的操作。进一步,当如之前描述的来自HDD 40的每一块被存取时,HDD缓冲器32的“使用频率”增加。
如此前所讨论,在第二时间段N过去之后,提交到HDD缓冲器32中的使用频率被整理。再一次选择具有最高块的8K个项。随后控制器20检查以查看针对所选择的8K个项的HDD地址是否也存在于SSD缓冲器34中。如果针对所选择的项的HDD地址在SSD缓冲器34中,则不作为。然而如果对于所选择的块项的HDD地址不在SSD缓冲器34中,则针对SSD缓冲器34中的HDD地址的标记“In-SSD”被置位以指示HDD地址不在SSD缓冲器34中。此外,检查SSD缓冲器34,并且随后将未被选择的对于HDD地址的所有项从SSD缓冲器34中移除。随后将HDD缓冲器32中的为8K个所选择的项的一部分的且不在SSD缓冲器34中的所有其他项复制到SSD缓冲器34中的自由项中。针对那些所复制的项的相应标记“In-SSD”被置位以指示字段在SSD缓冲器34中。然而针对那个HDD地址的标记“In-SSD的分区”未置位,直到将对于那个HDD地址的数据复制和存储到SSD 50中。
此后,当每一读操作发生时,将来自主机12的HDD地址与存储在SSD缓冲器34中的HDD地址进行比较。如果地址不匹配,则其指示所请求的地址不是8K个项之一,和该数据直接从HDD 40读取。然而,如果地址匹配,则检查标记“In-SSD的分区”。如果标记有效,则从SSD存储器50中读取数据。然而,如果标记无效,则再次向HDD 40作出读请求,其中读取对于块的数据并将其提供给主机12。同时,将该数据存储在SSD存储器50中,和随后对于“In-SSD的分区”的标记被置位以使之有效,指示可以从SSD存储器50进行后续的读取。
为了保持数据连贯性和一致性,在向HDD 40的任何写操作期间,在某些块地址处,任何进入HDD 40的写操作将引起相同数据被写入到SSD 50中,即使针对该相同块地址的数据也被存储在SSD 50中。
通过以下实例可以看出本发明的方法和装置的一个优点。连同主机12一起的系统10为PC系统。在运行的第一天,用户可以使用PC来创建文件,使用文本编辑程序和存储文本文件。在该会话期间,这些程序和数据将被最频繁地使用。因此,SSD 50将存储该程序和数据用于响应主机12的最有效读取。在第二天,该PC可以用于电子数据表分析。该电子数据表程序和相关的文档将存储在SSD 50中用于该操作。因此,当使用改变时,存储在SSD 50中的数据/程序将改变以优化来自系统10的读操作。
对于本领域一个普通技术人员来说应该理解,本发明存在多种变形。首先,SSD 50中的分区可以是多位字段,其中每一位对应于传送的最小单元。例如,对于每次存取4KB数据的具有128KB分区的存储装置,可以存在每次可以存取和传送的32页。因此,制造该字段32位可以标记每一被传送的页。进一步,不必立刻传送所有128KB的块,尤其是如果每次用户请求4KB。因此,每次传送一页,在对于所传送的块的该字段中标记相应的位。
其次,可以将HDD缓冲器32和SSD缓冲器34合并为单个缓冲器,该缓冲器具有带有SSD字段中的分区的HDD缓冲器32的相应字段中的SSD 50中的块地址。这将创建对于在SSD 50中所请求的HDD块的更有效的查找。然而,这需要比两个缓冲器32和34更大的缓冲器页面。
Claims (15)
1.一种非易失性存储系统,包括:
硬盘驱动器(HDD),该硬盘驱动器具有在多个块中的第一存储容量以用于在其中存储信息;
非易失性固态存储器(SSD),该非易失性固态存储器具有小于该第一存储容量的第二存储容量,用于在其中存储信息;和
具有易失性存储器的控制器,该控制器用于控制该HDD的读操作和该SSD的读/写操作,其中所述控制器用于在第一时间段内在所述易失性存储器中存储从所述HDD读取的块的地址;用于在所述第一时间段内确定多个最频繁读取的块;用于在所述SSD中存储来自所述HDD的所述最频繁读取的块的所述信息;用于其后当所述非易失性存储系统被请求以存取来自所述最频繁读取的块的信息时读取来自所述SSD的信息;和用于在第二时间段之后重置在所述易失性存储器中的该最频繁读取的块的身份,其中所述第二时间段比所述第一时间段长。
2.根据权利要求1所述的非易失性存储系统,其中在每次加电之后重置所述易失性存储器中的最频繁读取的块的所述身份。
3.根据权利要求1所述的非易失性存储系统,其中所述第二时间段包括多个第一时间段。
4.根据权利要求3所述的非易失性存储系统,其中在每一个第一时间段之后所述控制器确定来自所述HDD的多个该最频繁读取的块。
5.一种读取存储在非易失性存储系统中的数据的方法,其中所述非易失性存储系统具有硬盘驱动器(HDD),该硬盘驱动器具有在多个块中的第一存储容量用于在其中存储数据;非易失性固态存储器(SSD),该非易失性固态存储器具有小于该第一存储容量的第二存储容量以用于在其中存储数据;和具有易失性存储器的控制器,该控制器用于控制该HDD的读操作和该SSD的读/写操作;所述方法包括:
读取来自所述HDD的块的数据持续第一时间段;
在所述易失性存储器中存储所读取的来自所述HDD的块的地址;
在所述第一时间段内确定多个该最频繁读取的块;
在所述SSD中存储来自所述HDD的所述最频繁读取的块的所述数据;
当所述非易失性存储系统被请求以存取来自所述最频繁读取的块的信息时读取来自所述SSD的数据;以及
在第二时间段之后重置在所述易失性存储器中的该最频繁读取的块的身份,其中所述第二时间段比所述第一时间段长。
6.根据权利要求5所述的方法,其中在所述SSD中存储来自所述HDD的所述最频繁读取的块的所述数据的所述步骤是通过当所述数据从所述非易失性存储系统被请求并且从所述HDD中被读取时,在所述SSD中存储来自所述HDD的所述最频繁读取的块的所述数据来实现。
7.根据权利要求5所述的方法,其中在所述SSD中存储来自所述HDD的所述最频繁读取的块的所述数据的所述步骤是通过当没有向所述非易失性存储系统请求时,在所述SSD中存储来自所述HDD的所述最频繁读取的块的所述数据来实现。
8.根据权利要求5所述的方法,其中所述第二时间段包括多个第一段时间。
9.根据权利要求8所述的方法,其中与存储在所述易失性存储器中的每一个来自所述HDD的该读取的块的地址相关联的是计数器,其中在完成对来自所述HDD的该关联的地址的读操作之后,使每一计数器增加。
10.根据权利要求9所述的方法,其中所述重置步骤在所述第二时间段之后重置每一个计数器。
11.根据权利要求10所述的方法,其中所述确定步骤根据在所述易失性存储器中的计数器,在每一个所述第一时间段之后确定该所读取的块的频率。
12.一种控制器,用于控制硬盘驱动器(HDD)和非易失性固态存储器(SSD)的操作;所述控制器包括:
易失性存储器;
非易失性存储器,用于存储所存储的程序;和
微处理器,其用于执行该存储的程序以用于控制该HDD的读操作和该SSD的读/写操作,其中所述微处理器用于在第一时间段内在所述易失性存储器中存储从所述HDD读取的块的地址;用于在所述第一时间段内确定多个最频繁读取的块;用于在所述SSD中存储来自所述HDD的所述最频繁读取的块的所述信息;用于其后当所述非易失性存储系统被请求以存取来自所述最频繁读取的块的信息时读取来自所述SSD的信息;和用于在第二时间段之后重置在所述易失性存储器中的最频繁读取的块的身份,其中所述第二时间段比所述第一时间段长。
13.根据权利要求12所述的控制器,其中所述微处理器用于执行所存储的程序,该程序用于在每次加电后重置在所述易失性存储器中的最频繁读取的块的所述身份。
14.根据权利要求12所述的控制器,其中所述第二时间段包括多个第一时间段。
15.根据权利要求13所述的控制器,其中所述微处理器用于执行所存储的程序,该程序用于在每一个第一时间段之后确定来自所述HDD的多个该最频繁读取的块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/246327 | 2008-10-06 | ||
US12/246,327 US20100088459A1 (en) | 2008-10-06 | 2008-10-06 | Improved Hybrid Drive |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101714062A true CN101714062A (zh) | 2010-05-26 |
Family
ID=42076701
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910178442A Pending CN101714062A (zh) | 2008-10-06 | 2009-09-27 | 改进的混合驱动器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20100088459A1 (zh) |
CN (1) | CN101714062A (zh) |
TW (1) | TW201017405A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012129987A1 (en) * | 2011-03-31 | 2012-10-04 | International Business Machines Corporation | Managing high speed memory |
CN104685443A (zh) * | 2012-09-30 | 2015-06-03 | 苹果公司 | 锁定引导数据用以更快引导 |
CN104850355A (zh) * | 2014-02-14 | 2015-08-19 | 株式会社东芝 | 存储装置、存储系统及存储装置的地址信息处理方法 |
CN104951239A (zh) * | 2014-03-26 | 2015-09-30 | 国际商业机器公司 | 高速缓存驱动器、主机总线适配器及其使用的方法 |
CN105653524A (zh) * | 2014-11-10 | 2016-06-08 | 阿里巴巴集团控股有限公司 | 一种数据存储方法、装置和系统 |
Families Citing this family (73)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101350981B1 (ko) * | 2008-12-04 | 2014-01-14 | 도시바삼성스토리지테크놀러지코리아 주식회사 | 복합 광 디스크 드라이브 및 그 구동 방법 및 이를 적용하는 전자 시스템 |
US8195878B2 (en) * | 2009-02-19 | 2012-06-05 | Pmc-Sierra, Inc. | Hard disk drive with attached solid state drive cache |
US8195891B2 (en) * | 2009-03-30 | 2012-06-05 | Intel Corporation | Techniques to perform power fail-safe caching without atomic metadata |
US9176883B2 (en) * | 2009-04-30 | 2015-11-03 | HGST Netherlands B.V. | Storage of data reference blocks and deltas in different storage devices |
US9582222B2 (en) | 2009-04-30 | 2017-02-28 | Western Digital Technologies, Inc. | Pre-cache similarity-based delta compression for use in a data storage system |
US9413527B2 (en) | 2009-04-30 | 2016-08-09 | HGST Netherlands B.V. | Optimizing signature computation and sampling for fast adaptive similarity detection based on algorithm-specific performance |
US8321630B1 (en) * | 2010-01-28 | 2012-11-27 | Microsoft Corporation | Application-transparent hybridized caching for high-performance storage |
US8850151B2 (en) * | 2010-03-24 | 2014-09-30 | Apple Inc. | Hybrid-device storage based on environmental state |
US20110246790A1 (en) * | 2010-03-31 | 2011-10-06 | Gainteam Holdings Limited | Secured removable storage device |
USRE49818E1 (en) * | 2010-05-13 | 2024-01-30 | Kioxia Corporation | Information processing method in a multi-level hierarchical memory system |
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 |
US9471240B2 (en) | 2010-06-24 | 2016-10-18 | International Business Machines Corporation | Performing read and write operations with respect to at least one solid state disk and at least one non-solid state disk |
US8959284B1 (en) | 2010-06-28 | 2015-02-17 | Western Digital Technologies, Inc. | Disk drive steering write data to write cache based on workload |
US9146875B1 (en) | 2010-08-09 | 2015-09-29 | Western Digital Technologies, Inc. | Hybrid drive converting non-volatile semiconductor memory to read only based on life remaining |
US9058280B1 (en) | 2010-08-13 | 2015-06-16 | Western Digital Technologies, Inc. | Hybrid drive migrating data from disk to non-volatile semiconductor memory based on accumulated access time |
US8639872B1 (en) | 2010-08-13 | 2014-01-28 | Western Digital Technologies, Inc. | Hybrid drive comprising write cache spanning non-volatile semiconductor memory and disk |
US9268499B1 (en) | 2010-08-13 | 2016-02-23 | Western Digital Technologies, Inc. | Hybrid drive migrating high workload data from disk to non-volatile semiconductor memory |
US8775720B1 (en) | 2010-08-31 | 2014-07-08 | Western Digital Technologies, Inc. | Hybrid drive balancing execution times for non-volatile semiconductor memory and disk |
US8683295B1 (en) | 2010-08-31 | 2014-03-25 | Western Digital Technologies, Inc. | Hybrid drive writing extended error correction code symbols to disk for data sectors stored in non-volatile semiconductor memory |
US8782334B1 (en) | 2010-09-10 | 2014-07-15 | Western Digital Technologies, Inc. | Hybrid drive copying disk cache to non-volatile semiconductor memory |
US8825976B1 (en) | 2010-09-28 | 2014-09-02 | Western Digital Technologies, Inc. | Hybrid drive executing biased migration policy during host boot to migrate data to a non-volatile semiconductor memory |
US8825977B1 (en) | 2010-09-28 | 2014-09-02 | Western Digital Technologies, Inc. | Hybrid drive writing copy of data to disk when non-volatile semiconductor memory nears end of life |
US8670205B1 (en) | 2010-09-29 | 2014-03-11 | Western Digital Technologies, Inc. | Hybrid drive changing power mode of disk channel when frequency of write data exceeds a threshold |
US8699171B1 (en) | 2010-09-30 | 2014-04-15 | Western Digital Technologies, Inc. | Disk drive selecting head for write operation based on environmental condition |
US8612798B1 (en) | 2010-10-21 | 2013-12-17 | Western Digital Technologies, Inc. | Hybrid drive storing write data in non-volatile semiconductor memory if write verify of disk fails |
US8427771B1 (en) | 2010-10-21 | 2013-04-23 | Western Digital Technologies, Inc. | Hybrid drive storing copy of data in non-volatile semiconductor memory for suspect disk data sectors |
US8429343B1 (en) | 2010-10-21 | 2013-04-23 | Western Digital Technologies, Inc. | Hybrid drive employing non-volatile semiconductor memory to facilitate refreshing disk |
US8560759B1 (en) | 2010-10-25 | 2013-10-15 | Western Digital Technologies, Inc. | Hybrid drive storing redundant copies of data on disk and in non-volatile semiconductor memory based on read frequency |
US9069475B1 (en) | 2010-10-26 | 2015-06-30 | Western Digital Technologies, Inc. | Hybrid drive selectively spinning up disk when powered on |
US20120191701A1 (en) | 2011-01-26 | 2012-07-26 | International Business Machines Corporation | Database index profile based weights for cost computation |
US9792218B2 (en) * | 2011-05-20 | 2017-10-17 | Arris Enterprises Llc | Data storage methods and apparatuses for reducing the number of writes to flash-based storage |
US9069678B2 (en) * | 2011-07-26 | 2015-06-30 | International Business Machines Corporation | Adaptive record caching for solid state disks |
KR101861170B1 (ko) | 2011-08-17 | 2018-05-25 | 삼성전자주식회사 | 마이그레이션 관리자를 포함하는 메모리 시스템 |
KR20130024271A (ko) * | 2011-08-31 | 2013-03-08 | 삼성전자주식회사 | 하드 디스크 드라이브와 불휘발성 메모리를 포함하는 스토리지 시스템 |
US9195530B1 (en) | 2011-09-06 | 2015-11-24 | Western Digital Technologies, Inc. | Systems and methods for improved data management in data storage systems |
US8713357B1 (en) | 2011-09-06 | 2014-04-29 | Western Digital Technologies, Inc. | Systems and methods for detailed error reporting 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 |
US8700834B2 (en) | 2011-09-06 | 2014-04-15 | Western Digital Technologies, Inc. | Systems and methods for an enhanced controller architecture in data storage systems |
US8630056B1 (en) | 2011-09-12 | 2014-01-14 | Western Digital Technologies, Inc. | Hybrid drive adjusting spin-up profile based on cache status of non-volatile semiconductor memory |
US8909889B1 (en) | 2011-10-10 | 2014-12-09 | Western Digital Technologies, Inc. | Method and apparatus for servicing host commands by a disk drive |
WO2013062542A1 (en) | 2011-10-26 | 2013-05-02 | Hewlett-Packard Development Company | Segmented caches |
US9268701B1 (en) | 2011-11-21 | 2016-02-23 | Western Digital Technologies, Inc. | Caching of data in data storage systems by managing the size of read and write cache based on a measurement of cache reliability |
US8977803B2 (en) | 2011-11-21 | 2015-03-10 | Western Digital Technologies, Inc. | Disk drive data caching using a multi-tiered memory |
US8977804B1 (en) | 2011-11-21 | 2015-03-10 | Western Digital Technologies, Inc. | Varying data redundancy in storage systems |
US8904091B1 (en) | 2011-12-22 | 2014-12-02 | Western Digital Technologies, Inc. | High performance media transport manager architecture for data storage systems |
US9053008B1 (en) | 2012-03-26 | 2015-06-09 | Western Digital Technologies, Inc. | Systems and methods for providing inline parameter service in data storage devices |
CN102662459A (zh) * | 2012-04-22 | 2012-09-12 | 复旦大学 | 利用固态硬盘与机械硬盘混合存储减少服务器能源消耗的方法 |
CN103631737A (zh) * | 2012-08-27 | 2014-03-12 | 鸿富锦精密工业(深圳)有限公司 | 存储器数据处理系统及方法 |
US8959281B1 (en) | 2012-11-09 | 2015-02-17 | Western Digital Technologies, Inc. | Data management for a storage device |
US20140207996A1 (en) * | 2013-01-18 | 2014-07-24 | Lsi Corporation | Hybrid hard disk drive having a flash storage processor |
US9141176B1 (en) | 2013-07-29 | 2015-09-22 | Western Digital Technologies, Inc. | Power management for data storage device |
US9244624B2 (en) | 2013-08-01 | 2016-01-26 | International Business Machines Corporation | File load times with dynamic storage usage |
US9070379B2 (en) | 2013-08-28 | 2015-06-30 | Western Digital Technologies, Inc. | Data migration for data storage device |
US8917471B1 (en) | 2013-10-29 | 2014-12-23 | Western Digital Technologies, Inc. | Power management for data storage device |
US9323467B2 (en) | 2013-10-29 | 2016-04-26 | Western Digital Technologies, Inc. | Data storage device startup |
WO2015072925A1 (en) * | 2013-11-14 | 2015-05-21 | Agency For Science, Technology And Research | Method for hot i/o selective placement and metadata replacement for non-volatile memory cache on hybrid drive or system |
US10534686B2 (en) | 2014-01-30 | 2020-01-14 | Micron Technology, Inc. | Apparatuses and methods for address detection |
US10089227B1 (en) | 2015-05-06 | 2018-10-02 | American Megatrends, Inc. | Systems, devices and methods using a solid state device as a caching medium with a write cache flushing algorithm |
US10019362B1 (en) | 2015-05-06 | 2018-07-10 | American Megatrends, Inc. | Systems, devices and methods using solid state devices as a caching medium with adaptive striping and mirroring regions |
US10108344B1 (en) * | 2015-05-06 | 2018-10-23 | American Megatrends, Inc. | Systems, devices and methods using a solid state device as a caching medium with an SSD filtering or SSD pre-fetch algorithm |
US10055354B1 (en) | 2015-05-07 | 2018-08-21 | American Megatrends, Inc. | Systems, devices and methods using a solid state device as a caching medium with a hashing algorithm to maintain sibling proximity |
US10176103B1 (en) | 2015-05-07 | 2019-01-08 | American Megatrends, Inc. | Systems, devices and methods using a solid state device as a caching medium with a cache replacement algorithm |
US10114566B1 (en) | 2015-05-07 | 2018-10-30 | American Megatrends, Inc. | Systems, devices and methods using a solid state device as a caching medium with a read-modify-write offload algorithm to assist snapshots |
US9703485B2 (en) | 2015-07-15 | 2017-07-11 | Western Digital Technologies, Inc. | Storage management in hybrid drives |
US9880913B2 (en) * | 2015-12-14 | 2018-01-30 | International Business Machines Corporation | Storing data in multi-region storage devices |
US20170329684A1 (en) * | 2016-05-13 | 2017-11-16 | Synology Incorporated | Method and apparatus for performing data recovery in redundant storage system |
US9990134B2 (en) | 2016-06-15 | 2018-06-05 | Seagate Technology Llc | Command tunneling in a hybrid data storage device |
US10459658B2 (en) | 2016-06-23 | 2019-10-29 | Seagate Technology Llc | Hybrid data storage device with embedded command queuing |
US10628045B2 (en) | 2016-06-23 | 2020-04-21 | Seagate Technology Llc | Internal data transfer management in a hybrid data storage device |
US10067683B2 (en) * | 2016-07-19 | 2018-09-04 | Western Digital Technologies, Inc. | Systems and methods for classifying data in solid state drives |
US9927981B2 (en) | 2016-08-29 | 2018-03-27 | Seagate Technology Llc | Hybrid data storage device with partitioned local memory |
US10552053B2 (en) | 2016-09-28 | 2020-02-04 | Seagate Technology Llc | Hybrid data storage device with performance mode data path |
US10394493B2 (en) | 2017-06-30 | 2019-08-27 | Seagate Technology Llc | Managing shingled magnetic recording (SMR) zones in a hybrid storage device |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6910106B2 (en) * | 2002-10-04 | 2005-06-21 | Microsoft Corporation | Methods and mechanisms for proactive memory management |
US7490197B2 (en) * | 2004-10-21 | 2009-02-10 | Microsoft Corporation | Using external memory devices to improve system performance |
US7424577B2 (en) * | 2005-08-26 | 2008-09-09 | Network Appliance, Inc. | Dynamic optimization of cache memory |
US7966450B2 (en) * | 2005-09-01 | 2011-06-21 | Micron Technology, Inc. | Non-volatile hard disk drive cache system and method |
US8032699B2 (en) * | 2007-06-15 | 2011-10-04 | Seagate Technology Llc | System and method of monitoring data storage activity |
US8375190B2 (en) * | 2007-12-11 | 2013-02-12 | Microsoft Corporation | Dynamtic storage hierarachy management |
-
2008
- 2008-10-06 US US12/246,327 patent/US20100088459A1/en not_active Abandoned
-
2009
- 2009-09-16 TW TW098131198A patent/TW201017405A/zh unknown
- 2009-09-27 CN CN200910178442A patent/CN101714062A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012129987A1 (en) * | 2011-03-31 | 2012-10-04 | International Business Machines Corporation | Managing high speed memory |
GB2504027A (en) * | 2011-03-31 | 2014-01-15 | Ibm | Managing high speed memory |
US8825951B2 (en) | 2011-03-31 | 2014-09-02 | International Business Machines Corporation | Managing high speed memory |
GB2504027B (en) * | 2011-03-31 | 2014-09-03 | Ibm | Managing high speed memory |
US8898389B2 (en) | 2011-03-31 | 2014-11-25 | International Business Machines Corporation | Managing high speed memory |
US9430365B2 (en) | 2011-03-31 | 2016-08-30 | International Business Machines | Managing high speed memory |
CN104685443A (zh) * | 2012-09-30 | 2015-06-03 | 苹果公司 | 锁定引导数据用以更快引导 |
CN104685443B (zh) * | 2012-09-30 | 2018-12-14 | 苹果公司 | 锁定引导数据用以更快引导 |
CN104850355A (zh) * | 2014-02-14 | 2015-08-19 | 株式会社东芝 | 存储装置、存储系统及存储装置的地址信息处理方法 |
CN104951239A (zh) * | 2014-03-26 | 2015-09-30 | 国际商业机器公司 | 高速缓存驱动器、主机总线适配器及其使用的方法 |
CN105653524A (zh) * | 2014-11-10 | 2016-06-08 | 阿里巴巴集团控股有限公司 | 一种数据存储方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
TW201017405A (en) | 2010-05-01 |
US20100088459A1 (en) | 2010-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101714062A (zh) | 改进的混合驱动器 | |
US10922235B2 (en) | Method and system for address table eviction management | |
CN107622023B (zh) | 限制数据存储设备中的访问操作 | |
US9052826B2 (en) | Selecting storage locations for storing data based on storage location attributes and data usage statistics | |
CN107622022B (zh) | 数据存储设备中的高速缓存超量配置 | |
US10739996B1 (en) | Enhanced garbage collection | |
KR101288408B1 (ko) | 플래시 메모리 시스템의 고속 웨이크-업을 용이하게 하는 방법과 시스템 | |
EP0852766B1 (en) | Memory systems | |
US8312204B2 (en) | System and method for wear leveling in a data storage device | |
CN111475427A (zh) | 使用低延迟非易失性存储器进行逻辑至物理映射管理 | |
US7657572B2 (en) | Selectively utilizing a plurality of disparate solid state storage locations | |
US20110055458A1 (en) | Page based management of flash storage | |
US7600073B2 (en) | Cache disk storage upgrade | |
US7529879B2 (en) | Incremental merge methods and memory systems using the same | |
KR102663661B1 (ko) | 메모리 시스템 내 저장된 데이터를 제어하는 방법 및 장치 | |
US8572325B2 (en) | Dynamic adjustment of read/write ratio of a disk cache | |
WO2009089426A1 (en) | Selecting storage location for file storage based on storage longevity and speed | |
CN105103234A (zh) | 固态驱动器体系结构 | |
CN103270500A (zh) | 事务日志恢复 | |
CN101131672A (zh) | 具有可变逻辑存储块大小的文件系统 | |
CN101135952B (zh) | 对盘驱动事务处理采用存取日志 | |
CN104854554A (zh) | 储存转换层 | |
US6959359B1 (en) | Software prefetch system and method for concurrently overriding data prefetched into multiple levels of cache | |
KR20210038692A (ko) | 비휘발성 메모리를 위한 멀티-레벨 웨어 레벨링 | |
US10503651B2 (en) | Media cache band cleaning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20100526 |