CN105190525B - 管理在节电模式中对混合式驱动器的访问 - Google Patents
管理在节电模式中对混合式驱动器的访问 Download PDFInfo
- Publication number
- CN105190525B CN105190525B CN201380075937.9A CN201380075937A CN105190525B CN 105190525 B CN105190525 B CN 105190525B CN 201380075937 A CN201380075937 A CN 201380075937A CN 105190525 B CN105190525 B CN 105190525B
- Authority
- CN
- China
- Prior art keywords
- priority
- levels
- hybrid drive
- lba
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
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/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
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3268—Power saving in hard disk drive
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- 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
-
- 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
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Abstract
一种混合式驱动器包括多个部分:性能部分(例如,闪速存储器设备)和基础部分(例如,磁性或者其它旋转盘驱动器)。驱动器访问系统通常是计算设备的操作系统的一部分,所述驱动器访问系统向混合式驱动器发出输入/输出(I/O)命令,以将数据存储到混合式驱动器并且从混合式驱动器取回数据。驱动器访问系统支持多个优先级水平,并且获取对于由逻辑块地址(LBA)标识的数据组的优先级水平。在设备在节电模式中操作时所读取的LBA被指派至少作为由设备支持的多个优先级水平中的最低优先级水平的优先级水平,从而增大在设备在节电模式中操作时读取的LBA被存储在混合式驱动器的性能部分中的可能性。
Description
背景技术
计算机传统上具有存储设备,诸如程序指令和用户数据之类的数据可以被存储在这些存储设备上。随着技术的进步,这些存储设备已经包括了磁性软盘、磁性硬盘、固态驱动器(例如,闪速存储器驱动器)等等。一些混合式驱动器也被开发,其包括较大的容量(但较便宜)的硬盘驱动器和较小容量(但是较贵)的闪速存储器驱动器。虽然这样的混合式驱动器可能是有益的,但是它们不是没有它们的问题。一个这样的问题在于其仍然难以确定哪些数据要被存储在混合式驱动器的闪速存储器驱动器上。关于将哪些数据存储在闪速存储器驱动器上的糟糕确定可以导致混合式驱动器与传统磁介质硬盘驱动器相比具有很少的(如果有的话)性能改进,从而导致用户由于尽管混合式驱动器具有较高成本但还是缺乏性能改进而失望。
发明内容
提供本发明内容来以简化的形式介绍概念的选择,这些概念还将在下文的具体实施方式中描述。本发明内容不打算标识所要求保护的主题的关键特征或者必要特征,其也不打算被用来限制所要求保护的主题的范围。
按照一个或者多个方面,多个优先级水平中的一个优先级水平被指派给通过在计算设备在节电模式中操作时向混合式驱动器发出一个或者多个输入/输出(I/O)命令而访问的数据组。混合式驱动器包括性能部分(performance part)和基础部分(base part)(数据组可以被存储在其中),并且多个优先级水平中的一个优先级水平是至少是该多个优先级水平中的最低优先级水平的优先级水平,以便在计算设备处于节电模式中时减少对基础部分的访问。在计算设备处于节电模式中时所访问的数据组的所指派的优先级水平的指示通过向混合式驱动器发出一个或者多个I/O命令而被传送到混合式驱动器。
按照一个或者多个方面,做出关于计算设备在节电模式中操作的确定,其中计算设备访问混合式驱动器,混合式驱动器包括性能部分和基础部分,数据组被存储在其中。标识出通过在计算设备在节电模式中操作时向混合式驱动器发出一个或者多个输入/输出(I/O)命令而访问的数据组的记录被保持。在计算设备在节电模式中操作时所访问的数据组被指派多个优先级水平中的一个优先级水平,其是至少是该多个优先级水平中的最低优先级水平的优先级水平,以便在计算设备处于节电模式中时减少对基础部分的访问。
附图说明
贯穿图,相同数字被用来指代相同特征。
图1图示了按照一个或者多个实施例的实施节电模式混合式驱动器访问管理的示例系统。
图2图示了按照一个或者多个实施例的示例驱动器访问系统。
图3图示了按照一个或者多个实施例的逻辑块地址(LBA)优先级记录的标准记录的示例位图集。
图4图示了按照一个或者多个实施例的LBA优先级记录的稀疏位图的示例。
图5图示了按照一个或者多个实施例的LBA优先级记录的节电模式记录的示例位图。
图6是图示了按照一个或者多个实施例的用于节电模式混合式驱动器访问管理的示例过程的流程图。
图7是图示了按照一个或者多个实施例的用于节电模式混合式驱动器访问管理的另一个示例过程的流程图。
图8图示了包括示例计算设备的示例系统,该计算设备代表可以实施本文描述的各种技术的一个或者多个系统和/或设备。
具体实施方式
本文讨论了节电模式混合式驱动器访问管理。混合式驱动器包括多个部分:性能部分(例如,闪速存储器设备)和基础部分(例如,硬盘驱动器)。驱动器访问系统(通常是计算设备的操作系统的一部分)向混合式驱动器发出输入/输出(I/O)命令,以将数据存储到混合式驱动器并且从混合式驱动器取回数据。驱动器访问系统支持多个优先级水平,并且获取由逻辑块地址(LBA)标识的数据组的优先级水平。通过每个I/O命令,驱动器访问系统可以包括与该I/O命令相关联的(一个或者多个)LBA的优先级水平的指示。混合式驱动器至少部分地基于从驱动器访问系统中接收的优先级水平指示来确定哪些LBA将被存储在混合式驱动器的哪个或者哪些部分上。
在实施驱动器访问系统的设备在节电模式中操作时所访问的LBA记录被保持。在设备在节电模式中操作时所访问(例如,读取)的LBA可以被指派比由设备支持的多个优先级水平中的最低优先级水平更高的优先级水平。通过对在设备在节电模式中操作时所访问(例如,读取)的LBA指派更高的优先级水平,在设备在节电模式中操作时所访问的数据更可能被存储在混合式驱动器的性能部分中,并且在设备在节电模式中操作时,对于混合式驱动器的基础部分的访问可以被减少。
图1图示了按照一个或者多个实施例的实施节电模式混合式驱动器访问管理的示例系统100。系统100包括混合式驱动器102、操作系统104和一个或者多个应用106。混合式驱动器102可以以不同的方式来实施,诸如在计算设备中的固定驱动器、耦合到计算设备(例如,经由通用串行总线(USB)连接)的可移除设备等等。
在一个或者多个实施例中,系统100被实施在单个计算设备上。系统100可以被实施在各种各样不同类型的设备上,诸如台式计算机、服务器计算机、膝上型或者上网本计算机、平板或者笔记本计算机、移动站、娱乐器具、通信地耦合到显示设备的机顶盒、电视或者其他显示设备、蜂窝或者其他无线电话、游戏控制台、车用计算机等等。因此,系统100可以被实施在范围从具有大量存储器和处理器资源的完整资源设备(例如,个人计算机、游戏控制台)到具有有限存储器和/或处理资源的低资源设备(例如,传统机顶盒、手持式游戏控制台)的计算设备上实施。
可替换地,系统100可以在多个不同设备上实施。例如,操作系统104和应用106可以被实施在一个设备(例如,如上文讨论的各种各样不同类型的计算设备中的任何计算设备)上,并且混合式驱动器102可以作为单独的设备来实施。当单独实施时,实施操作系统104的设备可以以不同方式与混合式驱动器102通信,诸如经由有线和/或无线连接(例如,经由USB连接、无线USB连接等等)、经由网络(例如,经由局域网(LAN)、个域网(PAN)等等)等等。
混合式驱动器102包括两个部分:性能部分112和基础部分114。性能部分112是比基础部分114更高的性能部分。部分112和114的性能可以涉及部分112和114的各种不同特性,诸如所述部分的速度(例如,可以据以从所述部分中读取信息和/或将信息写入到所述部分中的速率)和/或所述部分的电力消耗(例如,当处于活动中并且能够从所述部分读取和/或对其写入时其所消耗的电力量)。性能部分112比基础部分114更快和/或具有更少的电力消耗,并且因此被称为比基础部分114更高的性能部分。然而,性能部分112通常每存储单元(例如,每千兆字节)比基础部分114耗费得更多。因此,基础部分114常常比性能部分112拥有更多的存储容量,这也被称为,基础部分114大于性能部分112或者基础部分114的大小大于性能部分112的大小。
性能部分112和基础部分114可以以不同的方式来实施。在一个或者多个实施例中,性能部分112是固态设备(例如,闪速存储器设备)并且基础部分114是旋转存储设备(例如,磁性硬盘驱动器)。可替换地,部分112和114可以以其他方式来实施。例如,性能部分112可以是某种类型的固态设备(例如,单层单元(SLC)闪速存储器)而基础部分114可以是另一类型的固态设备(例如,多层单元(MLC)闪速存储器)。作为另一个示例,部分112和114中的一个或者两者可以使用各种其他类型的存储设备和技术(诸如忆阻器存储器技术、相变存储器技术等等)来实施。
虽然混合式驱动器102包括多个部分,但是从操作系统104的角度来看,混合式驱动器102操作为单个的存储驱动器。混合式驱动器102的大小(存储容量)是性能部分112和基础部分114中的较大者的大小,其通常为基础部分114,这是因为基础部分114的每存储单元成本较低。混合式驱动器102作为单个存储设备呈现给操作系统104——操作系统104从混合式驱动器102读取数据并且向混合式驱动器102写入数据,就好像驱动器102是单个的存储设备一样。然而,操作系统104知晓,混合式驱动器102包括多个部分,并且因此操作系统104向混合式驱动器102提供关于各种数据的重要性的指示或者暗示,以协助混合式驱动器102确定将数据存储在哪个部分中,如下文中将更详细讨论的。混合式驱动器102可以以各种方式作为单个存储设备被呈现给操作系统104。例如,混合式驱动器102可以将其自身作为单个存储设备呈现给操作系统104,混合式驱动器102可以是硬件控制器将其作为单个存储设备呈现给操作系统104的全然不同的设备,混合式驱动器102可以是在操作系统104上运行的软件驱动器将其作为单个的存储设备呈现给操作系统104的多个设备等等。
操作系统104包括发出用于访问混合式驱动器102的I/O命令的I/O模块116,所述I/O命令包括用于从混合式驱动器102读取数据的命令以及用于向混合式驱动器102写入数据的命令。用于读取和写入数据的命令可以来自操作系统104的其他模块以及应用106。如本文使用的,从混合式驱动器102读取的并且写入到混合式驱动器102的数据包括从混合式驱动器102读取的和/或写入到混合式驱动器102的任何比特——所述数据可以包括用户数据或者程序数据、程序指令、二进制代码等等。
操作系统104向逻辑块地址(LBA)组指派优先级水平。LBA是在混合式驱动器102上的其中存储了数据的某个位置的地址,并且在该位置处存储的数据也被称为LBA数据。在特定LBA处存储的数据量可以基于实施混合式驱动器102的方式来变化。被指派给特定LBA的优先级水平也被称为被指派给存储在该特定LBA处的数据。因为优先级水平被指派给LBA组,所以优先级水平也可以被称为指派给了数据组(其由LBA所标识)。
操作系统104以多个LBA的组的粒度向LBA指派优先级(但是可替换地,操作系统104可以以LBA的粒度来指派优先级)。通过使用多个LBA的组的粒度,LBA组的大小可以变化,诸如作为存储了16千字节数据的LBA的聚合或者存储了64千字节数据的LBA的聚合。在一个或者多个实施例中,每个LBA组是连续范围的地址。可替换地,某个组可以以其他方式来包括LBA,在此情况下,在某组中的LBA可以不是连续范围的地址。对于LBA组的优先级水平可以基于各种信息来指派,诸如关于该组中的LBA被访问的频率的信息、关于在访问LBA期间或者之前发生的事件的信息等等。向某个LBA指派如下这样的优先级,即:其被指派给了包括该LBA的组,并且在组中的所有LBA都被指派了同一优先级。
对于发给混合式驱动器102的每个I/O命令而言,与I/O命令一起,I/O模块116可以包括被指派给由I/O命令访问的LBA的优先级水平的指示。虽然I/O模块116可以包括被指派给由I/O命令访问的LBA的优先级水平的指示,但是I/O模块116不是必需包括优先级水平,并且在一些情形中,可以不包括优先级水平。
指派给LBA的优先级水平可以被混合式驱动器102保持,以促进混合式驱动器102中的LBA的管理。优先级水平是对于操作系统104的所察觉的存储在LBA处的数据的重要性(也被称为所察觉的LBA重要性)的指示。一般地,所察觉的数据重要性涉及所期望的数据访问的速度和/或数据被期望的频率。期望快速访问(例如,以便改进计算设备开机或者启动应用的速度)的数据可以被视作是比快速访问不是依照期望的数据更加重要。此外,频繁访问的数据可以被视作是比不频繁访问的数据更加重要。操作系统104希望基于针对LBA的数据的优先级水平,将针对LBA的数据存储在部分112和114中(也被称为存储LBA),以使得在具有较高优先级水平的LBA处的数据被存储在性能部分112中(附加地存储在基础部分114中,或者,不存储在基础部分114中)。然而,混合式驱动器102不被约束为或者不是必需将任何特定优先级水平的LBA处的数据存储在性能部分112中,并且操作系统104不需要具有并且通常不具有特定LBA处的数据被存储在部分112和114中的哪个中的知识。在特定LBA处的数据被存储在哪个部分中由混合式驱动器102自身来确定,而不是由操作系统104确定,但是这个确定通常由混合式驱动器102基于由I/O模块116指示的优先级水平做出。
应该指出的是,虽然混合式驱动器102基于来自操作系统104的指示确定了特定LBA数据被存储在部分112和114中的哪个中,但是混合式驱动器102可以包括附加的一个或者多个模块来确定特定LBA数据被存储在部分112和114中的哪个中。例如,混合式驱动器102自身可以监控I/O访问,并且至少部分地基于这个监控来确定特定LBA数据被存储在部分112和114中的哪个中。操作系统104不需要并且通常不具有混合式驱动器102的这样的附加模块或者监控的知识,并且如本文中讨论的,继续向混合式驱动器102提供优先级水平的指示,而不管混合式驱动器102的任何这样的附加模块或者监控。
还应该指出的是,虽然采用两个部分112和114图示了混合式驱动器102,但是这些部分中的每个部分可以由多个组件构成。例如,性能部分112可以由多个闪速存储器芯片或者单个闪速存储器芯片构成。作为另一个示例,基础部分114可以由单个硬盘驱动器或者多个硬盘驱动器构成。这些不同组件全部都可以在相同设备(例如,相同的驱动器外壳)中实施或者可替换地,分散在多个彼此耦合(例如,经由USB或者无线USB连接或经由网络)的设备(例如,多个不同外壳)上。
此外,应该指出的是,虽然混合式驱动器102在本文中讨论为包括两个部分,但是混合式驱动器102可以可替换地包括三个或者更多部分。例如,混合式驱动器102可以包括中间性能部分,其是比基础部分114更高的性能部分,但是是比性能部分112更低的性能部分。在这样的情形中,除了基础部分114之外的部分也可被称为性能部分。不论部分的数量,LBA的优先级水平的指示由操作系统104提供给混合式驱动器102,并且混合式驱动器102基于这些优先级水平指示确定哪个或者哪些部分存储LBA。
图2图示了按照一个或者多个实施例的示例驱动器访问系统200。驱动器访问系统200可以被实施为诸如图1的操作系统104之类的操作系统的一部分。可替换地,驱动器访问系统200可以被实施为访问混合式驱动器102的另一程序或者应用的一部分,诸如Web浏览器程序、数据访问或者存储程序等等。
驱动器访问系统200包括优先级标识模块202、LBA优先级记录204和I/O模块206。I/O模块206和图1的I/O模块116可以是相同的模块。驱动器访问系统200可以被实施为单个设备的一部分(例如,计算设备的操作系统的一部分)或者在多个设备上。例如,LBA优先级记录204和I/O模块206可以由一个计算设备来实施,并且优先级标识模块202的至少一部分可以由另一个设备(例如,经由网络耦合到计算设备的服务器)来实施。
一般地,优先级标识模块202获取被指派给特定LBA的优先级水平。优先级标识模块202可以以不同方式获取优先级水平,诸如基于关于对混合式驱动器102的I/O访问的信息来确定对于LBA的优先级水平,从采用对于LBA的优先级水平来预先配置的远程服务或者系统获取对于LBA的优先级水平,其组合等等。在I/O模块206向混合式驱动器102发出I/O命令时,I/O模块206向混合式驱动器102提供被指派给与那些I/O命令相关联的特定LBA的优先级水平的指示。例如,被指派了优先级水平212的LBA 210在图2中图示。附加数据(例如,要被写入到混合式驱动器102)也可以与LBA 210和优先级水平212一同发送给混合式驱动器102。
一般地,基于将数据放置在性能部分112中是否被预期为增大了用户可注意到的设备速度(例如,计算设备开机或者启动应用的速度)和/或减低了计算设备的电力消耗,来为该数据指派特定优先级水平。例如,当计算设备开机时、将计算设备从休眠中恢复时、将存储器的页面从易失性存储器转移或者交换到混合式驱动器102时、在计算设备上启动应用时等等读取的数据可以比其他一般使用数据(例如,在运行时由应用访问的数据)指派更高的优先级水平,以增大用户可注意的设备速度,因为这样的数据更可能被存储在性能部分112中。附加地,数据可以被指派特定优先级水平,以使得在性能部分112中存在处于最低优先级水平的足够的数据量(例如,1千兆字节或者4千兆字节的数据),以使得被指派了最低优先级水平的LBA数据可以从性能部分112中移除,并且依期望存储在基础部分114中(因此在性能部分112中维持具有较高优先级水平的LBA数据)。
在性能部分112中保持处于最低优先级水平的足够的数据量,这允许混合式驱动器102扰动性能部分112中的处于最低优先级水平的数据,而不会不利地影响性能部分112中的处于较高优先级水平的数据。在性能部分112中不存在足够空间来存储用于对混合式驱动器102进行的所有I/O访问的LBA数据的情形中,混合式驱动器102从处于最低优先级的数据开始(并且对于处于该最低优先级的数据而言,按照一些规则,诸如首先转移最近最少使用(LRU)的数据)将数据从性能部分112转移到基础部分114(其可以包括在删除数据之前将该数据从性能部分112复制到基础部分114,或者从性能部分112删除已经被复制到了基础部分114的数据)。在与处于较高优先级的数据相比时,维持处于最低优先级的数据量相对大,这确保了随着性能部分112中的空间变得稀缺,存在要首先转移到基础部分114的低优先级数据,并且因此较高优先级的数据不太可能被转移。附加地,通过维持处于最低优先级的数据量相对大,被添加到性能部分112的处于最低优先级的数据被准许,在即便性能部分112可能相对满的情况下,也在性能部分112中维持一个合理长度的时间量。例如,通过在确定首先将哪些数据转移出性能部分112时实施LRU规则,在新添加的数据被转移出性能部分112之前,存在将被转移出性能部分112的足够的数据量(例如,1千兆字节的数据、4千兆字节的数据等等)。
多个不同优先级水平可以受驱动器访问系统200的支持,并且优先级水平可以以不同方式标记。在一个或者多个实施例中,存在四个优先级水平,其被标记为:优先级水平4、优先级水平3、优先级水平2和优先级水平1。然而,可替换地,可存在任何数量的优先级水平。优先级水平还可以以不同方式标记,诸如使用字母、不同字符或者符号等等。除了优先级水平之外,驱动器访问系统200可以支持对于一些LBA的无优先级水平。被指派了无优先级水平的LBA数据被存储在基础部分114中,而不是性能部分112中——不需要由混合式驱动器102做出关于该LBA数据存储在哪个部分中的确定。还应该指出的是,在一个或者多个实施例中,混合式驱动器102可以实施一个或者多个附加隐藏或者私有优先级水平。这些附加的隐藏或者私有优先级水平不被驱动器访问系统200使用或者对驱动器访问系统200不可见,但是可以被混合式驱动器102使用来按照混合式驱动器102的内部规则来管理将LBA数据存储在哪里。
LBA优先级记录204是被指派给特定LBA的优先级水平的标识。一般地,LBA优先级记录204指示了对于给定LBA,向该LBA指派的优先级水平。然而,在一些情形中,特定LBA可以被指派无优先级水平,在该情况中,所指派的优先级水平的标识可以不被包括在对于该LBA的LBA优先级记录204中。
优先级标识模块202获取对于LBA的优先级水平,并且视情况在各种时间生成(或者更新)LBA优先级记录204。在一个或者多个实施例中,模块202获取优先级水平并且以规律或者不规律的间隔生成或者更新记录204,诸如大约每天、大约每周、在某个事件之后的某个时间量(例如,在被通电或者从休眠模式恢复后的大约24小时)等等。因此,应该指出的是,被指派给各种LBA的优先级水平可以随时间改变。如下讨论的,模块202还可以响应于由I/O模块206对尚未设置与其对应的优先级水平的LBA做出I/O访问或者在实施驱动器访问系统的设备在节电模式中操作时,确定优先级水平(并且可选地,更新记录204),这也被称为是在运行时间确定优先级水平。
实施驱动器访问系统200的设备可以在多个不同电力模式中操作。优先级标识模块202可以以各种各样不同方式确定设备的当前电力模式,诸如通过访问记录了设备当前电力模式的存储区域、从设备操作系统接收设备当前电力模式的通知等等。优先级标识模块202将设备的一个或者多个电力模式分类为节电模式。哪些电力模式被分类为节电模式可以以各种方式被确定,诸如基于特定预定义电力模式(例如,设备可以具有多个预定义电力模式的集合,并且采用那些多个预定义的电力模式中的哪个或者哪些是节电模式的指示来预先配置模块202)、基于从其他服务或者系统获取的信息、基于特定设备设置(例如,屏幕亮度、设备处理器电力模式等等)等等。
在一个或者多个实施例中,设备可以在其中操作的节电模式之一被称为连接待机模式。在连接待机模式中,设备的一些硬件组件(例如处理器)被通电,但是在低电力模式中操作,而设备的其他硬件组件(例如显示器)被断电。在连接待机模式中,网络连接可以维持活跃,或者可替换地,以规律或者不规律的间隔重新建立。因此,在连接待机模式中,设备在低电力模式中操作,但是允许规律或者不规律的网络访问以支持各种通信或者通知(例如,更新电子邮件或者其他消息)。
在设备在节电模式中操作时所访问的LBA可以被指派高于由驱动器访问系统200支持的最低优先级水平的优先级水平(或者可替换地,可以被指派由驱动器访问系统200支持的最低优先级水平)。这种指派可以由各种模块执行,诸如优先级标识模块202或者I/O模块206。通过向在设备在节电模式中操作时所访问的LBA指派高于由系统200支持的最低优先级水平的优先级水平,下一次LBA在节电模式中被访问时,对于该LBA的数据驻留在性能部分112中的可能性增大,因此减少了在设备在节电模式中操作时对基础部分114的访问,并且避免了在设备在节电模式中操作时从基础部分114获取对于LBA的数据方面的任何增大的电力消耗。
例如,如果系统200支持优先级水平4、3、2、1和0,其中优先级水平0是最低优先级水平,优先级水平4是最高优先级水平,则模块202可以向在设备在节电模式中操作时所访问的LBA指派优先级水平2。模块202可以可选地向在设备在节电模式中操作时读取的LBA指派与写入的LBA不同的优先级水平。例如,继续之前的示例,模块202可以向在设备在节电模式中操作时读取的LBA指派优先级水平2,并且向在设备在节电模式中操作时写入的LBA指派优先级水平0。
LBA优先级记录204包括标准记录214和节电模式记录216。节电模式记录204标识了在实施了系统200的设备在节电模式中操作时读取的LBA(并且可选地写入的LBA)。这种标识可以例如是,在实施了系统200的设备在节电模式中操作时向读取的LBA(并且可选地写入的LBA)指派特定优先级水平。标准记录214标识出,基于除了设备在节电模式中操作之外的准则向LBA指派的优先级水平。标准记录214和节电模式记录216中的每一个可以通过优先级标识模块202或者可替换地其他设备或者模块采用针对LBA的优先级水平来填充。
在一个或者多个实施例中,标准记录214是一个或者多个位图的集合。图3图示了按照一个或者多个实施例的LBA优先级记录的标准记录的示例位图集合300。该位图集合300包括多个(x)位图302(1)、……、302(x),每个对应于被图示为优先级水平1、……、优先级水平x的多个优先级水平之一。在一个或者多个实施例中,每个位图具有存储一个比特的多个单元,每个单元对应于特定范围的LBA(LBA组,诸如其中存储了16千字节数据或者64千字节数据的LBA组,如上讨论的)。在单元中的一个值(例如,值0)指示了对应于该单元的LBA不具有对应于位图的优先级水平,而单元中的另一个值(例如,值1)指示了对应于单元的LBA具有对应于位图的优先级水平。例如,看着每个位图302的最左边的单元,对应于最左边的单元的LBA具有优先级水平1(因为在该单元中的比特在位图302(1)中具有值1而在位图302(x)中具有值0)。
图2的标准记录214还可以使用稀疏位图来实施,以便减少用来维持记录214的存储空间量。稀疏位图是指多级或者多层图,图的在某一层中的每个单元表示较低层的多个单元。稀疏位图可以以各种各样不同方式来实施。
图4图示了按照一个或者多个实施例的LBA优先级记录的稀疏位图400的示例。稀疏位图400包括两层,其具有下层位图402和上层位图404。下层位图402包括多个单元,每个单元对应于一个LBA。下层位图402可以是例如图3的位图302。在位图402和图404中的单元被图示为指派了值0,以指示对应于该单元的LBA不具有对应于位图402的优先级水平,以及被图示为指派了值1,以指示对应于该单元LBA确实具有对应于位图402的优先级水平。然而,应该指出的是,可以可替换地使用其他值(例如,值1指示对应于该单元的LBA不具有对应于位图402的优先级水平,而值0指示对应于该单元的LBA的确具有对应于位图402的优先级水平)。
上层位图404包括多个单元,每个单元表示下层位图402中的多个单元。如果在由图404中的特定单元所表示的位图402中的所有单元都具有值0,则图404中的该特定单元也被指派了值0。如果由图404中的特定单元所表示的位图402中的单元中的至少一个单元具有值1,则在图404中的该特定单元也被指派值1。因此,为了确定特定LBA是否对应于与位图402对应的优先级水平,可以对图404中的单元的值做出检查,并且对于在图404中具有值0的特定单元而言,容易知道,对应于由位图404中的该特定单元所表示的位图402中的单元的LBA都不具有对应于位图402的优先级水平。
通过使用稀疏位图,位图集合可以以较少的存储器要求被存储和访问。例如,上层图404可以被复制到计算设备的随机存取存储器,但是只有由值1表示的位图402的部分被复制到随机存取存储器。此外,对于稀疏位图的部分(例如,单元组)的访问可以被监控(例如,通过图2的驱动器访问系统200),并且不频繁访问的部分(例如,被访问小于阈值时间量的部分)可以被压缩。该压缩节约了存储空间(例如,随机存取存储器),并且已压缩的部分在被访问的情况下可以被解压缩。
位图402和图404的大小可以至少部分地基于在位图中的每个比特表示的数据量(例如,字节数量)和基于在混合式驱动器的基础部分中的存储空间量来变化。例如,如果混合式驱动器的基础部分具有1兆兆字节的存储空间,并且在下层位图402中的每个比特表示16千字节,则下层位图402将是8兆字节。下层位图402可以被分解成4千字节位图,每个表示混合式驱动器的基础部分的512兆字节。上层图404因此将是2千比特。
虽然上层图404在上文中被讨论为其中每个单元被指派值0或者1的位图,但是应该指出的是,上层图404可以以其他方式来实施。例如,上层图404中的每个单元可以包括针对下层位图402的指示器(例如,针对在由上层图404的单元所表示的下层位图402中的单元之一的指示器),而不是值0或者1。还可以保持各种附加信息,诸如与上层图404的每个单元相关联的用于在访问上层图404和/或下层位图402时保持同步的锁定值。
虽然在图4中图示了两层,但是应该指出,稀疏位图可以包括任何数量的层,其中在位图中处于最低层的每个单元对应于LBA,而在位图中处于较高层的每个单元表示较低层的多个单元。
在一个或者多个实施例中,图2的节电模式记录216也是一个或者多个位图的集合。图5图示了按照一个或者多个实施例的LBA优先级记录的节电模式记录的示例位图500。在一个或者多个实施例中,位图500具有存储一比特的多个单元,每个单元对应于特定范围的LBA(LBA组,诸如其中存储了16千字节数据或者64千字节数据的LBA组,如上讨论的),其类似于图3的位图302。在单元中的某一个值(例如,值1)指示对应于单元的LBA在实施图2的驱动器访问系统200的设备在节电模式中操作时被访问(例如,读取),而在单元中的另一个值(例如,值0)指示对应于单元的LBA在实施驱动器访问系统200的设备在节电模式中操作时未被访问(例如,读取)。例如,看位图500的最左边的单元,对应于最左边的单元的LBA在实施驱动器访问系统200的设备在节电模式中操作时未被访问(例如,读取)(因为在位图500中,该单元中的比特具有值0)。
节电模式记录216还可以使用稀疏位图来实施,以便减少用来维持记录216的存储空间量。稀疏位图可以以上文讨论的各种各样不同的方式来实施。例如,位图500可以是图4的下层位图402。
在一个或者多个实施例中,图5的位图500与对应的优先级水平的图3的位图302在逻辑上作或运算,或者以其他方式与其组合。该对应优先级水平是指在设备处于节电模式中时据以读取混合式驱动器102或者对混合式驱动器102做出的其他访问的优先级水平。例如,如果在设备在节电模式中操作时所读取的LBA被指派了优先级水平2,则位图500在逻辑上与优先级水平2的位图302作或运算。当在逻辑上将两个位图作或运算时,对于位图的每个对应单元,如果在两个位图中的单元之一或者两者具有特定值(例如,1),则结果是值1,并且如果在两个位图中的单元两者都具有另一值(例如,0),则结果是值0。例如,如果位图302的最左边的单元的值是“0”而位图500的最左边的单元的值是“1”,则结果将是值“1”。
将位图500与对应优先级水平的位图302在逻辑上作或运算的结果指示了LBA是否具有相对应的优先级水平。该指示类似于上文关于位图302的讨论,但是用来确定LBA是否具有对应优先级水平的值是将两个位图在逻辑上作或运算的结果,而不仅仅是位图302。通过在逻辑上将位图500与对应优先级水平的位图302作或运算,在设备在节电模式中操作时所访问的LBA被指派了相对应的优先级水平,即便LBA由另一设备或者模块指派了较低的优先级水平。
返回图2,应该指出,LBA优先级记录204可以以其他方式来实施,而不是使用用于标准记录214和/或节电模式记录216的位图。例如,各种其他列表、树或者其他数据结构可以被用来记录哪些LBA被指派了哪些优先级和/或哪些LBA在设备在节电模式中操作时被访问(例如,读取)。这样的记录可以例如是包括针对在设备在节电模式中操作时发生的每个I/O的起始LBA、LBA的计数和I/O类型(读取和/或写入)的元组的列表或者阵列。应该进一步指出的是,LBA优先级记录204不需要包括标准记录214。在这样的情形中,优先级标识模块202可以以不同方式获取被指派给LBA的优先级水平(例如在LBA被访问时确定优先级水平),并且使用节电模式记录216来继续向在设备在节电模式中操作时所访问(例如,读取)的LBA指派适当的优先级水平(例如,在上文讨论的示例中,优先级水平2)。
在一个或者多个实施例中,节电模式记录216保持在特定时间范围内在设备在节电模式中操作时所访问(例如,读取)的LBA的指示。该特定时间范围可以是例如特定数量的天或者周,诸如两周。指示可以以各种各样不同的方式来保持。例如,节电模式记录216可以是位图,并且不同位图可以被用来标识在不同时间范围(例如,每小时、每天等等)内在设备在节电模式中时LBA是否被访问。这些不同的位图然后可以被组合(例如,在逻辑上作或运算)以确定在特定时间范围内哪些LBA被访问。例如,每天可以生成标识出在这一天期间在设备在节电模式中时所访问的LBA的不同位图,并且在两周的时间段内,在这两周的时间段内的每天的位图在逻辑上作或运算,以确定哪些LBA被访问。
可替换地,在特定时间范围内被访问(例如,读取)的LBA的指示可以以不同方式来保持。例如,对于被访问的LBA的每个指示而言(例如,在位图中的每个单元或者在另一数据结构中的每一个条目),时间戳或者其他指示可以与标识出LBA被访问的日期和/或时间的指示相关联。考虑到这些时间戳,在特定时间范围内哪些LBA被访问的指示可以被容易地确定。
如上文讨论的,在实施驱动器访问系统200的设备在节电模式中操作时所访问的LBA由节电模式记录216指示。节电模式记录216可选地可以采用在设备在节电模式中操作时很可能访问的LBA的指示来预先填充。在设备在节电模式中操作时很可能访问的LBA可以由设备的驱动器访问系统200和/或操作系统的开发者来确定,诸如基于流行的程序(例如,流行程序的LBA)以经验为主地确定等等。通过采用在设备在节电模式中操作时很可能访问的LBA的指示来预先填充节电模式记录216,性能部分112包括在节电模式中访问的LBA的可能性增大,即便在设备还没有进入节电模式的情形下。
例如,如果在设备上的程序正在回放音乐,存储音乐数据(例如,在当前正在被回放的播放列表中)的LBA可被标识为在设备在节电模式中操作时很可能访问的LBA,并且因此,节电模式记录216可以采用这样的LBA的指示来预先填充。设备随后可能处于节电模式中,并且向用户表现为在回放音乐时以其他方式关闭或者处于节电模式中,并且性能部分112包括这样的LBA的可能性因为这样的LBA的指示被包括在节电模式记录216中而增大。
在一个或者多个实施例中,驱动器访问系统200支持四个优先级水平,其被标记为:优先级水平Q、优先级水平R、优先级水平S、优先级水平T和优先级水平U。优先级水平Q是最高的优先级水平,优先级水平R是其后最高的优先级水平(在优先级水平Q之下的一个水平),优先级水平S是其后最高的优先级水平(在优先级水平Q之下的一个水平),优先级水平T是其后最高的优先级水平(在优先级水平U之下的一个水平),而优先级水平U是最低的优先级水平。用于在计算设备开机期间的I/O访问的LBA被指派优先级水平Q。用于在将存储器页面文件交换给混合式驱动器或者从混合式驱动器交换存储器页面文件时的I/O访问的LBA被指派优先级水平R。用于在将计算设备置于休眠时的I/O访问的LBA被指派优先级水平R(或者可替换地优先级水平Q)。用于在启动在前景中运行的应用期间的I/O访问的LBA被指派优先级水平S,而用于在启动不在前景中运行的应用期间的I/O访问的LBA被指派优先级水平T。在计算设备在节电模式中操作时所读取的LBA被指派优先级水平S,而在计算设备在节电模式中操作时所写入的LBA被指派优先级水平U。在计算设备将要进入或者离开待机模式时、当用户登入或者登出计算设备时或者当在计算设备上的当前用户之间切换时所访问的LBA被指派优先级水平S。其他未被指派优先级水平Q、R或者S的LBA可以被指派优先级水平T,或者可替换地,可以被指派无优先级水平,以指示这样的其他LBA要被存储在基础部分114中,而不是性能部分112中。
优先级标识模块202被讨论为获取对于LBA的优先级水平。模块202可以获取优先级水平,并且LBA优先级记录204可以在每用户的基础上或者在每计算设备的基础上提供对LBA的优先级水平的指示。因此,模块202可以为实施驱动器访问系统200的计算设备的个体用户获取对于LBA的优先级水平,或者可替换地,可以为计算设备的所有用户获取对于LBA的单个优先级水平集合。
应该进一步指出的是,可能发生这样的情形,其中由优先级标识模块202和/或LBA优先级记录204支持的优先级水平数量大于由混合式驱动器102支持的优先级水平数量。在这样的情形中,由驱动器访问系统200使用的优先级水平被映射到由混合式驱动器102使用的优先级水平。具体的映射可以基于所支持的优先级水平数量、驱动器访问系统200的开发者的期望、实施驱动器访问系统200的计算设备的管理员或者用户的期望等等而变化。这种映射可以在各种事件发生,诸如当对于LBA的优先级水平被确定(因此,例如,LBA优先级记录204将指示对于由混合式驱动器102支持的优先级水平的位图)时、当对于LBA的优先级水平被确定或者以其他方式被获取以使得I/O模块206可以包括对于混合式驱动器102的I/O访问中的指示。
还应该指出的是,混合式驱动器实施了被称为按需进行高速缓存的技术。优先级水平被指派给LBA,并且向混合式驱动器102指示对于给定LBA的优先级水平以及对于该LBA的I/O访问。因此,混合式驱动器102能够基于所指示的优先级水平,将用于I/O访问的数据存储在适当部分112或者114中。性能部分112不需要采用被指派较高优先级水平的LBA来预先填充,而是可以视情况基于在所接收的I/O访问中指示的优先级水平来填充,并且可以在被指派给各种LBA的优先级水平改变的情况下随时间自动调整。
然而,应该进一步指出的是,在一些情形中,性能部分112可以采用对于LBA的数据来预先填充。例如,当混合式驱动器102被首次安装在计算设备上或者包括混合式驱动器102的计算设备被建立时,混合式驱动器102可以采用被预期具有较高优先级的数据来预先填充。这种被预期具有较高优先级的数据可以以不同方式来确定,诸如基于其他计算设备的分配给LBA的优先级水平的知识、基于计算设备的开发者或者制造者的知识等等。然而,被指派给对于这样的预先填充数据的LBA的优先级水平不需要并且通常不具有与由优先级标识模块202获取的优先级水平相同的优先级水平。例如,性能部分112可以采用被自动指派了最低优先级水平的对于LBA的数据来预先填充,其随后可以在从I/O模块206接收I/O访问时由混合式驱动器102改变。
图6是图示了按照一个或者多个实施例的用于节电模式混合式驱动器访问管理的示例过程600的流程图。过程600由驱动器访问系统实行,诸如图2的驱动器访问系统200,并且可以以软件、固件、硬件或者其组合来实施。过程600被示为动作集合,并且不限于所示出用于执行各种动作的操作的次序。过程600是用于节电模式混合式驱动器访问管理的示例过程;节电模式混合式驱动器访问管理的附加讨论参考不同图被包括在本文中。
在过程600中,优先级水平被指派给通过在实施驱动器访问系统的设备在节电模式中操作时向混合式驱动器发出一个或者多个I/O命令而访问的多个数据组(动作602)。在动作602中,可以指派不同优先级水平,并且如上文讨论的,对于从混合式驱动器读取的数据组的优先级水平可以被指派作为由驱动器访问系统支持的至少最低优先级水平的优先级水平(例如,作为由驱动器访问系统支持的最低优先级水平的优先级水平或者高于由驱动器访问系统支持的最低优先级水平的优先级水平)。
在向混合式驱动器发出I/O命令时,对于数据组的优先级水平的指示被传送到混合式驱动器(动作604)。如上文讨论的,访问特定数据组的每个I/O命令包括对于该数据组的优先级水平的指示。对于每个数据组的优先级水平向混合式驱动器提供了是否预期该混合式驱动器将该数据组存储在该混合式驱动器的性能部分中的指示,但是混合式驱动器不被约束为所指示的优先级水平,并且并非必需将任何特定的数据组存储在性能部分中,如上文描述的。作为数据组在计算设备在节电模式中操作时被访问(例如,读取)的结果指派给该数据组的优先级水平仍然是指派给该数据组的优先级水平,即便计算设备不再在节电模式中操作。
图7是图示了按照一个或者多个实施例的用于节电模式混合式驱动器访问管理的另一示例过程700的流程图。过程700由驱动器访问系统实行,诸如图2的驱动器访问系统200,并且可以以软件、固件、硬件或者其组合来实施。过程700被示为动作集合,并且不限于所示出用于执行各种动作的操作的次序。过程700是用于节电模式混合式驱动器访问管理的示例过程;节电模式混合式驱动器访问管理的附加讨论参考不同图被包括在本文中。
在过程700中,做出实施驱动器访问系统的设备在节电模式中操作的确定(动作702)。可以以各种各样不同方式来做出确定,如上文讨论的。
标识通过在设备在节电模式中操作时向混合式驱动器发出一个或者多个I/O命令而访问的数据组的记录被保持(动作704)。这个记录可以采取各种不同形式,并且可以是上文讨论的一个或者多个位图。
在向混合式驱动器发出I/O命令时,对于数据组的优先级水平的指示被传送到混合式驱动器(动作706)。访问特定数据组的每个I/O命令包括对于该数据组的优先级水平的指示,其类似于上文讨论的图6的动作604。
本文讨论了由各种模块执行的各种动作。在本文中被讨论为执行动作的特定模块包括,该特定模块自身执行该动作,或者可替换地,该特定模块调用或者以其他方式访问执行该动作(或者连同该特定模块来执行动作)的另一组件或者模块。因此,执行动作的特定模块包括,执行该动作的该特定模块自身和/或由执行该动作的该特定模块调用或者以其他方式访问的另一模块。
虽然在本文中参考特定模块讨论了特定功能性,但是应该指出,本文讨论的个体模块的功能性可以被分成多个模块和/或多个模块的至少一些功能性可以被组合成单个模块。
图8图示了一般地在800处的示例系统,其包括表示可实施本文描述的各种技术的一个或者多个系统和/或设备的示例计算设备802。计算设备802可以例如是服务提供商的服务器、与客户端相关联的设备(例如,客户端设备)、芯片上系统和/或任何其他适当的计算设备或者计算系统。
所图示的示例计算设备802包括彼此通信地耦合的处理系统804、一个或者多个计算机可读介质806、和一个或者多个I/O接口808。虽然未示出,但是计算设备802可以进一步包括将各种组件彼此耦合的系统总线或者其他数据和命令传递系统。系统总线可以包括不同总线结构的任何一种或者组合,诸如利用各种各样的总线架构中的任何架构的存储器总线或者存储器控制器、外围总线、通用串行总线和/或处理器或者局部总线。也预期各种各样的其他示例,诸如控制和数据线。
处理系统804表示使用硬件执行一种或者多种操作的功能性。因此,处理系统804被图示为包括可以被配置为处理器、功能块等等的硬件元件810。这可以包括作为使用一个或者多个半导体形成的专用集成电路或者其他逻辑设备的按照硬件的实施方式。硬件元件810不被形成其的材料或者其中采用的处理机制所限制。例如,处理器可以由(一个或者多个)半导体和/或晶体管(例如,电子集成电路(IC))组成。在这样的上下文中,处理器可执行指令可以是电子可执行指令。
计算机可读介质806被图示为包括存储器/存储装置812。存储器/存储装置812表示与一个或者多个计算机可读介质相关联的存储器/存储装置能力。存储器/存储装置812可以包括易失性介质(诸如随机存取存储器(RAM))和/或非易失性介质(诸如只读存储器(ROM)、闪速存储器、光盘、磁盘等等)。存储器/存储装置812可以包括固定介质(例如,RAM、ROM、固定硬盘驱动器等等)以及可移除介质(例如,闪速存储器、可移除硬驱动器、光盘等等)。计算机可读介质806可以以各种各样其他方式来配置,如下文进一步描述的。
(一个或者多个)输入/输出接口808表示这样的功能性,其允许用户使用各种输入/输出设备而将命令和信息键入到计算设备802并且还允许使用各种输入/输出设备而将信息呈现给用户和/或其他组件或者设备。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风(例如用于话音输入)、扫描仪、触摸功能性(例如,被配置成检测物理触摸的电容或者其他传感器)、相机(例如,其可以采用可见波长或者不可见波长(诸如红外频率)来检测不涉及如手势之类的触摸的移动)等等。输出设备的示例包括显示设备(例如,监视器或者投影仪)、扬声器、打印机、网卡、触觉响应设备等等。因此,计算设备802可以以如将在下文中进一步讨论的各种各样的方式进行配置,以支持用户交互。
计算设备802还包括驱动器访问系统814。驱动器访问系统814提供各种功能性,其包括确定对于LBA的优先级水平,如上文讨论的。驱动器访问系统814可以实施例如图2的驱动器访问系统200。
在本文中,可以在软件、硬件元件或者程序模块的一般上下文中描述各种技术。一般地,这样的模块包括执行特定任务或者实施特定抽象数据类型的例程、程序、对象、元件、组件、数据结构等等。本文使用的术语“模块”、“功能性”和“组件”一般表示软件、固件、硬件或者其组合。本文描述的技术特征是独立于平台的,这意味着这些技术可以在具有各种各样的处理器的各种各样的计算平台上实施。
所描述的模块和技术的实施方式可以被存储在某种形式的计算机可读介质上或者在其上传输。计算机可读介质可以包括可以被计算设备802访问的各种各样的介质。作为示例而不是限制,计算机可读介质可以包括“计算机可读存储介质”和“计算机可读信号介质”。
“计算机可读存储介质”指代使得能够持久地存储信息的介质和/或设备和/或与只有信号传输、载波或者信号本身相反的有形的存储装置。因此,计算机可读存储介质指代非信号承载介质。计算机可读存储介质包括诸如易失性和非易失性、可移除和不可移除介质之类的硬件和/或以适用于信息(诸如计算机可读指令、数据结构、程序模块、逻辑元件/电路或者其他数据)存储的方法或者技术实施的存储设备。计算机可读存储介质的示例可以包括但不限于RAM、ROM、EEPROM、闪速存储器或者其他存储器技术、CD-ROM、数字多用盘(DVD)或者其他光学存储装置、硬盘、磁盒、磁带、磁存储装置或者其他磁存储设备、或者其他存储设备、有形介质、或者适用于存储期望的信息并且可以被计算机访问的制品。
“计算机可读信号介质”指代被配置成诸如经由网络将指令传输到计算设备802的硬件的信号承载介质。信号介质通常可以体现计算机可读指令、数据结构、程序模块、或者在诸如载波、数据信号、或者其他传输机制之类的已调制数据信号中的其他数据。信号介质还包括任何信息递送介质。术语“已调制数据信号”意味着这样的信号,即:使其特性中的一个或者多个特性以如下的方式设置或者改变,即:将信息编码在信号中。作为示例而不是限制,通信介质包括诸如有线网络或者直接有线连接之类的有线介质和诸如声学、RF、红外和其他无线介质之类的无线介质。
如之前描述的,硬件元件810和计算机可读介质806表示以可以在一些实施例中被采用以实施本文描述的技术的至少一些方面的以硬件形式实施的指令、模块、可编程设备逻辑和/或固定设备逻辑。硬件元件可以包括以下部件的组件:集成电路或者芯片上系统、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)、和以硅或者在其他硬件设备中的其他实施方式。在这个上下文中,硬件元件可以操作为执行由指令、模块和/或逻辑定义的程序任务的处理设备,这些指令、模块和/或逻辑由硬件元件以及被用来存储指令以用于执行的硬件设备(例如,之前描述的计算机可读存储介质)来体现。
前述的组合还可以被采用来实施本文描述的各种技术和模块。因此,软件、硬件或者程序模块和其他程序模块可以被实施为在某种形式的计算机可读存储介质上和/或由一个或者多个硬件元件810体现的一个或者多个指令和/或逻辑。计算设备802可以被配置成实施对应于软件和/或硬件模块的特定指令和/或功能。因此,作为可由计算设备802作为软件执行的模块的模块实施方式可以至少部分地在硬件中实现,例如通过使用处理系统的计算机可读存储介质和/或硬件元件810。指令和/或功能可以是可由一个或者多个制品(例如,一个或者多个计算设备802和/或处理系统804)执行/操作的,以实施本文描述的技术、模块和示例。
如在图8中进一步图示的,示例系统800使得能够当在个人计算机(PC)、电视设备和/或移动设备上运行应用时实现对于无缝用户体验的普遍存在的环境。当在利用应用、玩视频游戏、看视频等等的同时从一个设备转变到下一个设备时,为了共同的用户体验,服务和应用基本上在所有三个环境中相似地运行。
在示例系统800中,多个设备通过中央计算设备互连。中央计算设备可以对多个设备是本地的,或者可以位于离多个设备远的位置。在一个或者多个实施例中,中央计算设备可以是通过网络、互联网或者其他数据通信链路连接到多个设备的一个或者多个服务器计算机的云。
在一个或者多个实施例中,这个互连架构使得功能性能够在多个设备中递送,以便向多个设备的用户提供共同和无缝的体验。多个设备中的每一个设备可以具有不同的物理要求和能力,并且中央计算设备使用平台来使得能够将针对设备定制的并且也针对所有设备共同的体验递送到设备。在一个或者多个实施例中,目标设备类别被创建,并且将体验定制到一般的设备类别。设备的类别可以通过物理特征、使用类型、或者设备的其他共同特性来定义。
在各种实施方式中,计算设备802可假设各种各样的不同配置,以便诸如供计算机816、移动装置818和电视机820使用。这些配置中的每个配置包括可以具有一般不同构造和能力的设备,并且因此计算设备802可以按照不同设备类别中的一个或者多个类别来配置。例如,计算设备802可以被实施为设备的计算机816类,其包括个人计算机、台式计算机、多屏幕计算机、膝上型计算机、上网本等等。
计算设备802还可以被实施为设备的移动装置818类,其包括移动设备,诸如移动电话、便携式音乐播放器、便携式游戏设备、平板计算机、多屏幕计算机等等。计算设备802还可以被实施为设备的电视820类,其包括具有或者连接到在放松观看环境中一般较大的屏幕的设备。这些设备包括电视、机顶盒、游戏控制台等等。
本文描述的技术可以由计算设备802的这些各种配置来支持,而不限于本文描述的技术的特定示例。这种功能性还可以全部地或者部分地通过使用分布式系统(诸如经由平台822在“云”820上,如下文描述的)来实施。
云822包括和/或表示用于资源826的平台824。平台824将云822的硬件(例如,服务器)和软件资源的底层功能性抽象化。资源826可以包括可以在计算机处理在远离计算设备802的服务器上执行时所利用的应用和/或数据。资源826还可以包括在互联网上和/或通过订户网络(诸如蜂窝或者Wi-Fi网络)提供的服务。
平台824可以将资源和功能抽象化来将计算设备802与其他计算设备连接。平台824还可以用来将资源的缩放抽象化,以便针对所遇到的对于经由平台824实施的资源826的要求,提供相应的缩放水平。因此,在互连设备的实施例中,本文描述的功能性的实施方式可以遍布系统800分布。例如,功能性可以部分地在计算设备802上实施以及经由对云822的功能性抽象化的平台824来实施。
虽然以特定于结构特征和/或方法动作的语言描述了本主题,但是应理解的是,在所附权利要求中定义的主题不必限于上文所描述的特定特征或者动作。而是,上文描述的特定特征和动作作为实施权利要求的示例形式被公开。
Claims (10)
1.一种用于指派优先级水平的方法,包括:
将多个优先级水平中的一个优先级水平指派给通过在计算设备在节电模式中操作时向混合式驱动器发出一个或者多个输入/输出(I/O)命令而访问的数据组,所述混合式驱动器包括性能部分和基础部分两者,数据组可以被存储在其中,所述多个优先级水平中的一个优先级水平包括至少作为所述多个优先级水平中的最低优先级水平的优先级水平,以减少在计算设备在节电模式中操作时对基础部分的访问,所述最低优先级水平被指派给特定数据组,使得在混合式驱动器的性能部分中处于最低优先级水平的数据量大于处于所述多个优先级水平中的至少一个其他优先级水平的数据量,最低优先级水平是用于在混合式驱动器的性能部分和基础部分之间转移所述特定数据组的基准,以及指派所述多个优先级水平中的一个优先级水平至少部分地基于对混合式驱动器的一个或多个I/O命令是否与读取请求或写请求相关联;和
向混合式驱动器传送通过在计算设备在节电模式中时向混合式驱动器发出一个或者多个I/O命令而访问的数据组的所述多个优先级水平中的所指派的优先级水平的指示。
2.如权利要求1中记载的方法,所述节电模式包括连接待机模式。
3.如权利要求1中记载的方法,所述混合式驱动器在将被指派较高优先级水平的数据从性能部分转移到基础部分之前,将被指派较低优先级水平的数据组从性能部分转移到基础部分。
4.如权利要求1中记载的方法,所述指派包括,向从混合式驱动器读取数据的I/O命令所访问的数据组指派高于最低优先级水平的优先级水平,并且向对混合式驱动器写入数据的I/O命令所访问的数据组指派不同的优先级水平。
5.如权利要求1中记载的方法,被指派给每个数据组的所述多个优先级水平中的一个优先级水平向混合式驱动器提供了所述混合式驱动器是否被预期将数据组存储在性能部分中的指示。
6.如权利要求1中记载的方法,所述多个优先级水平中的一个优先级水平包括与被指派给用户登入或者登出计算设备时所访问的数据组的优先级水平相同的优先级水平。
7.一种用于保持记录的方法,包括:
确定计算设备在节电模式中操作,所述计算设备访问包括性能部分和基础部分两者的混合式驱动器,数据组能够被存储在性能部分和基础部分中;和
保持标识出通过在计算设备在节电模式中操作时向混合式驱动器发出一个或多个输入/输出(I/O)命令而访问的数据组的记录,在计算设备在节电模式中操作时所访问的数据组被指派多个优先级水平中的一个优先级水平,所述多个优先级水平包括最低优先级水平以减少在计算设备在节电模式中时对基础部分的访问,所述最低优先级水平被指派给特定数据组,使得在混合式驱动器的性能部分中处于最低优先级水平的数据量大于处于所述多个优先级水平中的至少一个其他优先级水平的数据量,最低优先级水平是用于在混合式驱动器的性能部分和基础部分之间转移所述特定数据组的基准,以及所述记录根据与对混合式驱动器的一个或多个I/O命令相关联的I/O类型标识出所述多个优先级水平。
8.如权利要求7中记载的方法,被指派给数据组的所述多个优先级水平中的一个优先级水平向混合式驱动器提供了所述混合式驱动器是否被预期将所述数据组存储在性能部分中的指示。
9.如权利要求7中记载的方法,保持记录包括,保持标识通过在特定时间范围内并且在计算设备在节电模式中操作时向混合式驱动器发出一个或者多个I/O命令而访问的数据组的记录。
10.如权利要求9中记载的方法,所述记录包括位图,其包括指示在所述特定时间范围期间并且在计算设备在节电模式中操作时从混合式驱动器读取了哪些数据组的多个单元。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/869,622 US9626126B2 (en) | 2013-04-24 | 2013-04-24 | Power saving mode hybrid drive access management |
US13/869622 | 2013-04-24 | ||
PCT/US2013/058840 WO2014175911A1 (en) | 2013-04-24 | 2013-09-10 | Management of access to a hybrid drive in power saving mode |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105190525A CN105190525A (zh) | 2015-12-23 |
CN105190525B true CN105190525B (zh) | 2018-08-07 |
Family
ID=49213157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380075937.9A Active CN105190525B (zh) | 2013-04-24 | 2013-09-10 | 管理在节电模式中对混合式驱动器的访问 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9626126B2 (zh) |
EP (1) | EP2989536B1 (zh) |
CN (1) | CN105190525B (zh) |
BR (1) | BR112015026474A2 (zh) |
WO (1) | WO2014175911A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8812744B1 (en) | 2013-03-14 | 2014-08-19 | Microsoft Corporation | Assigning priorities to data for hybrid drives |
US9946495B2 (en) | 2013-04-25 | 2018-04-17 | Microsoft Technology Licensing, Llc | Dirty data management for hybrid drives |
US9280200B1 (en) * | 2013-05-20 | 2016-03-08 | Western Digital Technologies, Inc. | Automatic peak current throttle of tiered storage elements |
JP2014238771A (ja) * | 2013-06-10 | 2014-12-18 | 富士通株式会社 | ストレージ制御装置、アクセス制御方法、及び制御プログラム |
US9513692B2 (en) * | 2013-09-18 | 2016-12-06 | Intel Corporation | Heterogenous memory access |
TWI525428B (zh) * | 2014-06-04 | 2016-03-11 | 仁寶電腦工業股份有限公司 | 複合儲存單元的管理方法及其電子裝置 |
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 |
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 |
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 |
US9898470B2 (en) * | 2015-08-05 | 2018-02-20 | Bank Of America Corporation | Transferring archived data |
US9823854B2 (en) * | 2016-03-18 | 2017-11-21 | Qualcomm Incorporated | Priority-based access of compressed memory lines in memory in a processor-based system |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201022927A (en) * | 2008-12-01 | 2010-06-16 | Ibm | Optimization of data distribution and power consumption in a data center |
Family Cites Families (180)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0682336B2 (ja) | 1986-04-28 | 1994-10-19 | 日本電気株式会社 | ブロック閉塞を用いたロールバックリカバリシステム |
US5123104A (en) | 1988-04-08 | 1992-06-16 | International Business Machines Corporation | Method and apparatus for concurrent modification of an index tree in a transaction processing system utilizing selective indication of structural modification operations |
US4995004A (en) | 1989-05-15 | 1991-02-19 | Dallas Semiconductor Corporation | RAM/ROM hybrid memory architecture |
WO1991016775A1 (en) | 1990-04-25 | 1991-10-31 | Telxon Corporation | Communication system with adaptive media access control |
US5276344A (en) | 1990-04-27 | 1994-01-04 | Mitsubishi Denki Kabushiki Kaisha | Field effect transistor having impurity regions of different depths and manufacturing method thereof |
US5307497A (en) | 1990-06-25 | 1994-04-26 | International Business Machines Corp. | Disk operating system loadable from read only memory using installable file system interface |
GB2251323B (en) | 1990-12-31 | 1994-10-12 | Intel Corp | Disk emulation for a non-volatile semiconductor memory |
EP0506236A1 (en) | 1991-03-13 | 1992-09-30 | International Business Machines Corporation | Address translation mechanism |
US5663901A (en) | 1991-04-11 | 1997-09-02 | Sandisk Corporation | Computer memory cards using flash EEPROM integrated circuit chips and memory-controller systems |
US6347051B2 (en) | 1991-11-26 | 2002-02-12 | Hitachi, Ltd. | Storage device employing a flash memory |
US6256642B1 (en) | 1992-01-29 | 2001-07-03 | Microsoft Corporation | Method and system for file system management using a flash-erasable, programmable, read-only memory |
JPH05233426A (ja) | 1992-02-20 | 1993-09-10 | Fujitsu Ltd | フラッシュ・メモリ使用方法 |
JP3087429B2 (ja) | 1992-04-03 | 2000-09-11 | 株式会社日立製作所 | 記憶装置システム |
US5420998A (en) | 1992-04-10 | 1995-05-30 | Fujitsu Limited | Dual memory disk drive |
JPH05299616A (ja) | 1992-04-16 | 1993-11-12 | Hitachi Ltd | 半導体記憶装置 |
JP3328321B2 (ja) | 1992-06-22 | 2002-09-24 | 株式会社日立製作所 | 半導体記憶装置 |
JPH06195258A (ja) | 1992-07-08 | 1994-07-15 | Nec Corp | 半導体記憶装置 |
US5822781A (en) | 1992-10-30 | 1998-10-13 | Intel Corporation | Sector-based storage device emulator having variable-sized sector |
JP2856621B2 (ja) | 1993-02-24 | 1999-02-10 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置 |
JP3078946B2 (ja) | 1993-03-11 | 2000-08-21 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | 一括消去型不揮発性メモリの管理方法及び半導体ディスク装置 |
US5519843A (en) | 1993-03-15 | 1996-05-21 | M-Systems | Flash memory system providing both BIOS and user storage capability |
KR970008188B1 (ko) | 1993-04-08 | 1997-05-21 | 가부시끼가이샤 히다찌세이사꾸쇼 | 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치 |
US5636355A (en) | 1993-06-30 | 1997-06-03 | Digital Equipment Corporation | Disk cache management techniques using non-volatile storage |
US5682497A (en) | 1993-09-28 | 1997-10-28 | Intel Corporation | Managing file structures for a flash memory file system in a computer |
US6026027A (en) | 1994-01-31 | 2000-02-15 | Norand Corporation | Flash memory system having memory cache |
US5696917A (en) | 1994-06-03 | 1997-12-09 | Intel Corporation | Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory |
US5627533A (en) | 1994-08-05 | 1997-05-06 | Hayes Microcomputer Products, Inc. | Adjusting encoding table size and memory allocation for data compression in response to input data |
US5634112A (en) | 1994-10-14 | 1997-05-27 | Compaq Computer Corporation | Memory controller having precharge prediction based on processor and PCI bus cycles |
US5701433A (en) | 1994-10-14 | 1997-12-23 | Compaq Computer Corporation | Computer system having a memory controller which performs readahead operations which can be aborted prior to completion |
CA2203000A1 (en) | 1994-10-18 | 1996-04-25 | Iomega Corporation | Disk cartridge detection methods and apparatus |
JP3332619B2 (ja) | 1994-11-29 | 2002-10-07 | キヤノン株式会社 | 復号装置およびその方法 |
US6741494B2 (en) | 1995-04-21 | 2004-05-25 | Mark B. Johnson | Magnetoelectronic memory element with inductively coupled write wires |
US5758174A (en) | 1995-06-07 | 1998-05-26 | International Business Machines Corporation | Computer system having a plurality of stored system capability states from which to resume |
GB2291991A (en) | 1995-09-27 | 1996-02-07 | Memory Corp Plc | Disk drive emulation with a block-erasable memory |
US6018806A (en) | 1995-10-16 | 2000-01-25 | Packard Bell Nec | Method and system for rebooting a computer having corrupted memory using an external jumper |
US5867641A (en) | 1995-10-27 | 1999-02-02 | Scm Microsystems (U.S.) Inc. | Flash translation layer cleanup system and method |
US6014724A (en) | 1995-10-27 | 2000-01-11 | Scm Microsystems (U.S.) Inc. | Flash translation layer block indication map revision system and method |
US5799305A (en) | 1995-11-02 | 1998-08-25 | Informix Software, Inc. | Method of commitment in a distributed database transaction |
US5799168A (en) | 1996-01-05 | 1998-08-25 | M-Systems Flash Disk Pioneers Ltd. | Standardized flash controller |
GB9606928D0 (en) | 1996-04-02 | 1996-06-05 | Memory Corp Plc | Memory devices |
US5864671A (en) | 1996-07-01 | 1999-01-26 | Sun Microsystems, Inc. | Hybrid memory access protocol for servicing memory access request by ascertaining whether the memory block is currently cached in determining which protocols to be used |
KR100260028B1 (ko) | 1996-08-13 | 2000-06-15 | 윤종용 | 화일시스템의 정보 복구방법 |
US6321234B1 (en) | 1996-09-18 | 2001-11-20 | Sybase, Inc. | Database server system with improved methods for logging transactions |
GB2317721B (en) | 1996-09-30 | 2001-09-12 | Nokia Mobile Phones Ltd | Memory device |
US5745418A (en) | 1996-11-25 | 1998-04-28 | Macronix International Co., Ltd. | Flash memory mass storage system |
US5956473A (en) | 1996-11-25 | 1999-09-21 | Macronix International Co., Ltd. | Method and system for managing a flash memory mass storage system |
JPH10154101A (ja) | 1996-11-26 | 1998-06-09 | Toshiba Corp | データ記憶システム及び同システムに適用するキャッシュ制御方法 |
US6279069B1 (en) | 1996-12-26 | 2001-08-21 | Intel Corporation | Interface for flash EEPROM memory arrays |
US6418506B1 (en) | 1996-12-31 | 2002-07-09 | Intel Corporation | Integrated circuit memory and method for transferring data using a volatile memory to buffer data for a nonvolatile memory array |
US6035379A (en) | 1997-01-09 | 2000-03-07 | Microsoft Corporation | Transaction processing for user data employing both logging and shadow copying |
US6073232A (en) | 1997-02-25 | 2000-06-06 | International Business Machines Corporation | Method for minimizing a computer's initial program load time after a system reset or a power-on using non-volatile storage |
US5887198A (en) | 1997-04-07 | 1999-03-23 | The United States Of America As Represented By The Secretary Of The Navy | Programmable stand-alone drive apparatus for interfacing a host computer with PCMCIA memory cards having multiple formats |
US5974546A (en) | 1997-05-08 | 1999-10-26 | Micron Electronics, Inc. | Apparatus and method to determine cause of failed boot sequence to improve likelihood of successful subsequent boot attempt |
JPH117505A (ja) | 1997-06-17 | 1999-01-12 | Fujitsu Ltd | カード型記憶媒体 |
GB9713094D0 (en) | 1997-06-21 | 1997-08-27 | Philips Electronics Nv | Optical disc drive |
US6000006A (en) | 1997-08-25 | 1999-12-07 | Bit Microsystems, Inc. | Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage |
US5960434A (en) | 1997-09-26 | 1999-09-28 | Silicon Graphics, Inc. | System method and computer program product for dynamically sizing hash tables |
US5991778A (en) | 1997-09-30 | 1999-11-23 | Stratfor Systems, Inc. | Method and apparatus for real-time secure file deletion |
US6070174A (en) | 1997-09-30 | 2000-05-30 | Infraworks Corporation | Method and apparatus for real-time secure file deletion |
US6061788A (en) | 1997-10-02 | 2000-05-09 | Siemens Information And Communication Networks, Inc. | System and method for intelligent and reliable booting |
US5937425A (en) | 1997-10-16 | 1999-08-10 | M-Systems Flash Disk Pioneers Ltd. | Flash file system optimized for page-mode flash technologies |
US6148349A (en) | 1998-02-06 | 2000-11-14 | Ncr Corporation | Dynamic and consistent naming of fabric attached storage by a file system on a compute node storing information mapping API system I/O calls for data objects with a globally unique identification |
US6101601A (en) | 1998-04-20 | 2000-08-08 | International Business Machines Corporation | Method and apparatus for hibernation within a distributed data processing system |
US6226728B1 (en) | 1998-04-21 | 2001-05-01 | Intel Corporation | Dynamic allocation for efficient management of variable sized data within a nonvolatile memory |
US6223284B1 (en) | 1998-04-30 | 2001-04-24 | Compaq Computer Corporation | Method and apparatus for remote ROM flashing and security management for a computer system |
KR100283243B1 (ko) | 1998-05-11 | 2001-03-02 | 구자홍 | 운영체제의 부팅방법 |
US6192488B1 (en) | 1998-07-13 | 2001-02-20 | Chung-Ping Li | Restoring method for hard disk |
JP3519954B2 (ja) | 1998-07-30 | 2004-04-19 | 富士通株式会社 | チップイネーブル信号生成回路及びメモリ装置 |
US6230285B1 (en) | 1998-09-08 | 2001-05-08 | Symantec Corporation | Boot failure recovery |
US6209088B1 (en) | 1998-09-21 | 2001-03-27 | Microsoft Corporation | Computer hibernation implemented by a computer operating system |
US6308265B1 (en) | 1998-09-30 | 2001-10-23 | Phoenix Technologies Ltd. | Protection of boot block code while allowing write accesses to the boot block |
US6336158B1 (en) | 1998-10-30 | 2002-01-01 | Intel Corporation | Memory based I/O decode arrangement, and system and method using the same |
JP3311305B2 (ja) | 1998-11-19 | 2002-08-05 | 沖電気工業株式会社 | 同期式バースト不揮発性半導体記憶装置 |
US6122745A (en) | 1998-12-31 | 2000-09-19 | Sun Microsystems Incorporated | Method and apparatus for managing power consumption in data processing systems |
US6850995B1 (en) | 1999-01-25 | 2005-02-01 | Canon Kabushiki Kaisha | Control unit selectively connected with a first bus and a second bus for controlling a displaying process in parallel with a scanning process |
GB9903490D0 (en) | 1999-02-17 | 1999-04-07 | Memory Corp Plc | Memory system |
US6380581B1 (en) | 1999-02-26 | 2002-04-30 | Micron Technology, Inc. | DRAM technology compatible non volatile memory cells with capacitors connected to the gates of the transistors |
US20030070065A1 (en) | 1999-03-31 | 2003-04-10 | Fleming Bruce L. | Suspending to nonvolatile storage |
JP3389186B2 (ja) | 1999-04-27 | 2003-03-24 | 松下電器産業株式会社 | 半導体メモリカード及び読み出し装置 |
KR100313514B1 (ko) | 1999-05-11 | 2001-11-17 | 김영환 | 하이브리드 메모리 장치 |
DE69930605D1 (de) | 1999-05-31 | 2006-05-18 | St Microelectronics Srl | Synchroner nichtflüchtiger mehrwertiger Speicher und Leseverfahren dafür |
US6438750B1 (en) | 1999-06-18 | 2002-08-20 | Phoenix Technologies Ltd. | Determining loading time of an operating system |
JP3204251B2 (ja) | 1999-06-30 | 2001-09-04 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ハイバネーション装置及び方法、それを格納した記録媒体並びにそれを適用したコンピュータ |
US6493807B1 (en) | 1999-07-01 | 2002-12-10 | Intel Corporation | Updating flash blocks |
TW484064B (en) | 1999-07-12 | 2002-04-21 | Feiya Technology Corp | Flash memory management, data linking architecture and algorithm |
US6539456B2 (en) | 1999-10-13 | 2003-03-25 | Intel Corporation | Hardware acceleration of boot-up utilizing a non-volatile disk cache |
JP2001142774A (ja) | 1999-11-11 | 2001-05-25 | Toshiba Corp | メモリカード及び同カードに適用されるアドレス変換方法 |
US6377500B1 (en) | 1999-11-11 | 2002-04-23 | Kabushiki Kaisha Toshiba | Memory system with a non-volatile memory, having address translating function |
US6609182B1 (en) | 2000-01-20 | 2003-08-19 | Microsoft Corporation | Smart hibernation on an operating system with page translation |
KR100383774B1 (ko) | 2000-01-26 | 2003-05-12 | 삼성전자주식회사 | 공통 인터페이스 방식의 메모리 장치들을 구비한 시스템 |
US7073014B1 (en) | 2000-07-28 | 2006-07-04 | Micron Technology, Inc. | Synchronous non-volatile memory system |
JP2001297316A (ja) | 2000-04-14 | 2001-10-26 | Mitsubishi Electric Corp | メモリカード及びその制御方法 |
JP2001338468A (ja) | 2000-05-26 | 2001-12-07 | Hitachi Ltd | 記憶装置の制御方法および記憶装置 |
JP3871853B2 (ja) | 2000-05-26 | 2007-01-24 | 株式会社ルネサステクノロジ | 半導体装置及びその動作方法 |
US6785767B2 (en) * | 2000-12-26 | 2004-08-31 | Intel Corporation | Hybrid mass storage system and method with two different types of storage medium |
US6510488B2 (en) | 2001-02-05 | 2003-01-21 | M-Systems Flash Disk Pioneers Ltd. | Method for fast wake-up of a flash memory system |
US7327780B2 (en) | 2001-03-14 | 2008-02-05 | Mercury Computer Systems, Inc. | Wireless communications systems and methods for multiple operating system multiple user detection |
US6327207B1 (en) | 2001-04-09 | 2001-12-04 | Lsi Logic Corporation | Synchronizing data operations across a synchronization boundary between different clock domains using two-hot encoding |
JP4059002B2 (ja) | 2001-06-13 | 2008-03-12 | 株式会社日立製作所 | メモリ装置 |
TWI240864B (en) | 2001-06-13 | 2005-10-01 | Hitachi Ltd | Memory device |
JP2003006041A (ja) | 2001-06-20 | 2003-01-10 | Hitachi Ltd | 半導体装置 |
US6670234B2 (en) | 2001-06-22 | 2003-12-30 | International Business Machines Corporation | Method of integrating volatile and non-volatile memory cells on the same substrate and a semiconductor memory device thereof |
JP4042359B2 (ja) * | 2001-07-10 | 2008-02-06 | 日本電気株式会社 | キャッシュ制御方法及びキャッシュ装置 |
JP2003036204A (ja) | 2001-07-23 | 2003-02-07 | Matsushita Electric Ind Co Ltd | フラッシュ型メモリの更新方法 |
GB0123415D0 (en) | 2001-09-28 | 2001-11-21 | Memquest Ltd | Method of writing data to non-volatile memory |
US7162549B2 (en) | 2001-10-29 | 2007-01-09 | Onspec Electronics, Inc. | Multimode controller for intelligent and “dumb” flash cards |
US6621746B1 (en) | 2002-02-27 | 2003-09-16 | Microsoft Corporation | Monitoring entropic conditions of a flash memory device as an indicator for invoking erasure operations |
US7010662B2 (en) | 2002-02-27 | 2006-03-07 | Microsoft Corporation | Dynamic data structures for tracking file system free space in a flash memory device |
US6901499B2 (en) | 2002-02-27 | 2005-05-31 | Microsoft Corp. | System and method for tracking data stored in a flash memory device |
US7136966B2 (en) | 2002-03-18 | 2006-11-14 | Lsi Logic Corporation | Method and apparatus for using a solid state disk device as a storage controller cache |
CN1447242A (zh) | 2002-03-25 | 2003-10-08 | 太和科技股份有限公司 | 可适用于快闪存储卡的控制装置及其建构方法 |
EP1351146A1 (en) | 2002-04-04 | 2003-10-08 | Hewlett-Packard Company | Power management system and method with recovery after power failure |
US20050036387A1 (en) | 2002-04-24 | 2005-02-17 | Seal Brian K. | Method of using flash memory for storing metering data |
US6966006B2 (en) | 2002-05-09 | 2005-11-15 | International Business Machines Corporation | Adaptive startup policy for accelerating multi-disk array spin-up |
JP4186509B2 (ja) | 2002-05-10 | 2008-11-26 | 株式会社日立製作所 | ディスクシステムとそのキャッシュ制御方法 |
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 |
US7082495B2 (en) | 2002-06-27 | 2006-07-25 | Microsoft Corporation | Method and apparatus to reduce power consumption and improve read/write performance of hard disk drives using non-volatile memory |
US7313684B2 (en) | 2002-08-14 | 2007-12-25 | T1 Technologies Limited | Method and apparatus for booting a computer system |
US6910106B2 (en) | 2002-10-04 | 2005-06-21 | Microsoft Corporation | Methods and mechanisms for proactive memory management |
US6799231B2 (en) | 2002-10-22 | 2004-09-28 | Asix Electronics Corp. | Virtual I/O device coupled to memory controller |
US7181611B2 (en) | 2002-10-28 | 2007-02-20 | Sandisk Corporation | Power management block for use in a non-volatile memory system |
US7035974B2 (en) | 2002-11-06 | 2006-04-25 | Synology Inc. | RAID-5 disk having cache memory implemented using non-volatile RAM |
US7082512B2 (en) | 2002-11-21 | 2006-07-25 | Microsoft Corporation | Dynamic data structures for tracking file system free space in a flash memory device |
CN1717662B (zh) | 2002-11-28 | 2010-04-28 | 株式会社瑞萨科技 | 存储器模块、存储器系统和信息仪器 |
US6922754B2 (en) | 2002-12-09 | 2005-07-26 | Infabric Technologies, Inc. | Data-aware data flow manager |
KR100526186B1 (ko) | 2003-04-04 | 2005-11-03 | 삼성전자주식회사 | 플래시 메모리의 오류블록 관리방법 및 장치 |
US7752380B2 (en) | 2003-07-31 | 2010-07-06 | Sandisk Il Ltd | SDRAM memory device with an embedded NAND flash controller |
US6859068B1 (en) | 2003-08-08 | 2005-02-22 | Sun Microsystems, Inc. | Self-correcting I/O interface driver scheme for memory interface |
US6854984B1 (en) | 2003-09-11 | 2005-02-15 | Super Talent Electronics, Inc. | Slim USB connector with spring-engaging depressions, stabilizing dividers and wider end rails for flash-memory drive |
US7171526B2 (en) | 2003-11-07 | 2007-01-30 | Freescale Semiconductor, Inc. | Memory controller useable in a data processing system |
US7480760B2 (en) | 2003-12-17 | 2009-01-20 | Wegener Communications, Inc. | Rotational use of memory to minimize write cycles |
US6862206B1 (en) | 2003-12-19 | 2005-03-01 | Hewlett-Packard Development Company, L.P. | Memory module hybridizing an atomic resolution storage (ARS) memory and a magnetic memory |
KR101085406B1 (ko) | 2004-02-16 | 2011-11-21 | 삼성전자주식회사 | 불 휘발성 메모리를 제어하기 위한 컨트롤러 |
US20080082736A1 (en) | 2004-03-11 | 2008-04-03 | Chow David Q | Managing bad blocks in various flash memory cells for electronic data flash card |
US20050204091A1 (en) | 2004-03-11 | 2005-09-15 | Kilbuck Kevin M. | Non-volatile memory with synchronous DRAM interface |
KR100568115B1 (ko) | 2004-06-30 | 2006-04-05 | 삼성전자주식회사 | 점진적 머지 방법 및 그것을 이용한 메모리 시스템 |
KR100622349B1 (ko) | 2004-08-04 | 2006-09-14 | 삼성전자주식회사 | 불량 블록 관리 기능을 가지는 플레시 메모리 장치 및플레시 메모리 장치의 불량 블록 관리 방법. |
US7698698B2 (en) | 2004-09-30 | 2010-04-13 | Smith Micro Software, Inc. | Method for over-the-air firmware update of NAND flash memory based mobile devices |
WO2006060670A2 (en) | 2004-12-02 | 2006-06-08 | Storage Dna, Inc. | Managing disk storage media |
CN100511145C (zh) | 2004-12-30 | 2009-07-08 | 英业达股份有限公司 | 更新系统管理基本输入输出系统数据的方法 |
US20060184710A1 (en) | 2005-02-17 | 2006-08-17 | Nokia Inc. | Bridge between a single channel high speed bus and a multiple channel low speed bus |
US7366825B2 (en) | 2005-04-26 | 2008-04-29 | Microsoft Corporation | NAND flash memory management |
US7352621B2 (en) | 2005-06-23 | 2008-04-01 | Intel Corporation | Method for enhanced block management |
US20060294295A1 (en) | 2005-06-24 | 2006-12-28 | Yukio Fukuzo | DRAM chip device well-communicated with flash memory chip and multi-chip package comprising such a device |
US7853749B2 (en) | 2005-09-01 | 2010-12-14 | Cypress Semiconductor Corporation | Flash drive fast wear leveling |
CN100520734C (zh) | 2005-11-18 | 2009-07-29 | 凌阳科技股份有限公司 | 闪存的控制装置与方法 |
US7360022B2 (en) | 2005-12-29 | 2008-04-15 | Intel Corporation | Synchronizing an instruction cache and a data cache on demand |
US7716411B2 (en) | 2006-06-07 | 2010-05-11 | Microsoft Corporation | Hybrid memory device with single interface |
WO2007146845A2 (en) | 2006-06-08 | 2007-12-21 | Bitmicro Networks, Inc. | Configurable and scalable hybrid multi-tiered caching storage system |
US8307148B2 (en) | 2006-06-23 | 2012-11-06 | Microsoft Corporation | Flash management techniques |
US8296521B2 (en) | 2006-06-30 | 2012-10-23 | Mosaid Technologies Incorporated | Method of configuring non-volatile memory for a hybrid disk drive |
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 |
KR100801015B1 (ko) | 2006-08-30 | 2008-02-04 | 삼성전자주식회사 | 하이브리드 하드 디스크 드라이브와 데이터 저장 방법 |
WO2008131058A2 (en) | 2007-04-17 | 2008-10-30 | Rambus Inc. | Hybrid volatile and non-volatile memory device |
US7792882B2 (en) * | 2007-09-27 | 2010-09-07 | Oracle America, Inc. | Method and system for block allocation for hybrid drives |
US7970983B2 (en) | 2007-10-14 | 2011-06-28 | Sandisk Il Ltd. | Identity-based flash management |
TWI358068B (en) | 2007-10-19 | 2012-02-11 | Phison Electronics Corp | Writing method for non-volatile memory and control |
US8082384B2 (en) | 2008-03-26 | 2011-12-20 | Microsoft Corporation | Booting an electronic device using flash memory and a limited function memory controller |
US8756369B2 (en) | 2008-09-26 | 2014-06-17 | Netapp, Inc. | Priority command queues for low latency solid state drives |
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 |
US9165021B2 (en) | 2009-04-14 | 2015-10-20 | International Business Machines Corporation | Managing database object placement on multiple storage devices |
US8225035B2 (en) | 2009-04-21 | 2012-07-17 | Apple Inc. | Systems and methods for operating a disk drive |
US8161251B2 (en) | 2009-05-27 | 2012-04-17 | Microsoft Corporation | Heterogeneous storage array optimization through eviction |
US8407403B2 (en) | 2009-12-07 | 2013-03-26 | Microsoft Corporation | Extending SSD lifetime using hybrid storage |
US8868837B2 (en) * | 2010-01-15 | 2014-10-21 | International Business Machines Corporation | Cache directory lookup reader set encoding for partial cache line speculation support |
CN101833989A (zh) | 2010-05-27 | 2010-09-15 | 华为技术有限公司 | 多接口固态硬盘及其处理方法和系统 |
US8307014B2 (en) | 2010-08-25 | 2012-11-06 | International Business Machines Corporation | Database rebalancing in hybrid storage environment |
US8862845B2 (en) | 2010-12-06 | 2014-10-14 | Xiotech Corporation | Application profiling in a data storage array |
US20120284544A1 (en) | 2011-05-06 | 2012-11-08 | Microsoft Corporation | Storage Device Power Management |
US20120317337A1 (en) | 2011-06-09 | 2012-12-13 | Microsoft Corporation | Managing data placement on flash-based storage by use |
WO2012119449A1 (zh) | 2011-09-30 | 2012-09-13 | 华为技术有限公司 | 在混合存储环境下配置存储设备的方法和系统 |
WO2013055312A1 (en) | 2011-10-10 | 2013-04-18 | Intel Corporation | Host controlled hybrid storage device |
US9286162B2 (en) | 2012-02-02 | 2016-03-15 | Netapp, Inc. | System and method for guaranteeing consistent data synchronization from a volatile data source |
US20130285911A1 (en) * | 2012-04-30 | 2013-10-31 | Oluf Nissen | Controlling a computer using a wireless mouse |
US9639466B2 (en) | 2012-10-30 | 2017-05-02 | Nvidia Corporation | Control mechanism for fine-tuned cache to backing-store synchronization |
US9417820B2 (en) | 2012-12-06 | 2016-08-16 | Kabushiki Kaisha Toshiba | Low-overhead storage of a hibernation file in a hybrid disk drive |
US8812744B1 (en) | 2013-03-14 | 2014-08-19 | Microsoft Corporation | Assigning priorities to data for hybrid drives |
US9946495B2 (en) | 2013-04-25 | 2018-04-17 | Microsoft Technology Licensing, Llc | Dirty data management for hybrid drives |
-
2013
- 2013-04-24 US US13/869,622 patent/US9626126B2/en active Active
- 2013-09-10 WO PCT/US2013/058840 patent/WO2014175911A1/en active Application Filing
- 2013-09-10 EP EP13763423.4A patent/EP2989536B1/en active Active
- 2013-09-10 CN CN201380075937.9A patent/CN105190525B/zh active Active
- 2013-09-10 BR BR112015026474A patent/BR112015026474A2/pt not_active Application Discontinuation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201022927A (en) * | 2008-12-01 | 2010-06-16 | Ibm | Optimization of data distribution and power consumption in a data center |
Also Published As
Publication number | Publication date |
---|---|
BR112015026474A2 (pt) | 2017-07-25 |
US9626126B2 (en) | 2017-04-18 |
EP2989536B1 (en) | 2018-10-24 |
WO2014175911A1 (en) | 2014-10-30 |
US20140325166A1 (en) | 2014-10-30 |
CN105190525A (zh) | 2015-12-23 |
EP2989536A1 (en) | 2016-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105190525B (zh) | 管理在节电模式中对混合式驱动器的访问 | |
US10416932B2 (en) | Dirty data management for hybrid drives | |
US9323460B2 (en) | Assigning priorities to data for hybrid drives | |
CN104106054B (zh) | 节能应用通知系统 | |
CN108351772A (zh) | 跨应用实例的标识符 | |
CN104704530B (zh) | 对于显示子系统的混合显示帧缓冲器 | |
CN102929786A (zh) | 非易失性存储设备集合的易失性存储器表示 | |
CN104583979A (zh) | 动态物理存储器分区技术 | |
US20190004841A1 (en) | Memory Sharing For Virtual Machines | |
CN104679581B (zh) | 后台运行程序的方法及装置 | |
CN104156248A (zh) | 一种在开机过程中显示定制化信息的方法和bios芯片 | |
CN110321331A (zh) | 利用多级散列函数来确定存储地址的对象存储系统 | |
CN108304142A (zh) | 一种数据管理方法和装置 | |
CN112698793B (zh) | 一种数据存储方法、装置、机器可读介质及设备 | |
CN112559127B (zh) | 虚拟机创建方法、装置、主机及存储介质 | |
CN104581403A (zh) | 用于分享视频内容的方法和装置 | |
JP2003288243A (ja) | 記憶装置システムの制御方法および記憶装置、管理装置、およびプログラム | |
US11816088B2 (en) | Method and system for managing cross data source data access requests | |
US20230244390A1 (en) | Collecting quality of service statistics for in-use child physical functions of multiple physical function non-volatile memory devices | |
KR101132389B1 (ko) | 분산자료구조 기반 체크포인트메모리 구조화 장치 및 방법 | |
CN116028230A (zh) | 一种资源配置方法、装置、设备、介质及云平台 | |
KR101371324B1 (ko) | 하이브리드방식의 디스크 용량 확장 방법 | |
CN114238253A (zh) | 虚拟云桌面存储共享方法、装置、计算机设备和存储介质 | |
CN115310074A (zh) | 资源管理方法、资源管理装置、电子设备和可读存储介质 | |
KR101031792B1 (ko) | 웹 디스크 저장용량 확장 시스템 및 이에 사용되는 웹디스크 서버 |
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 |