CN101131671A - 控制对非易失性存储器的访问 - Google Patents

控制对非易失性存储器的访问 Download PDF

Info

Publication number
CN101131671A
CN101131671A CNA2006101689093A CN200610168909A CN101131671A CN 101131671 A CN101131671 A CN 101131671A CN A2006101689093 A CNA2006101689093 A CN A2006101689093A CN 200610168909 A CN200610168909 A CN 200610168909A CN 101131671 A CN101131671 A CN 101131671A
Authority
CN
China
Prior art keywords
data segment
nonvolatile memory
weight
memory
stored
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
Application number
CNA2006101689093A
Other languages
English (en)
Inventor
李政桓
苏廷桓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LG Electronics Inc
Original Assignee
LG Electronics Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by LG Electronics Inc filed Critical LG Electronics Inc
Publication of CN101131671A publication Critical patent/CN101131671A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • G06F12/127Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

控制对非易失性存储器的访问,其中将第一数据从硬盘加载到非易失性存储器,根据访问频率、访问时新性和第一数据段的大小中的至少一个来计算非易失性存储器中所存储的所述第一数据段的权重。根据存储在权重表中的至少一个权重来计算第一数据段的移除等级,确定非易失性存储器的存储容量的使用是否超过预定阈值,并根据该移除等级从非易失性存储器中移除数据段。

Description

控制对非易失性存储器的访问
技术领域
本发明公开涉及计算机存储器管理,且一个特定实现涉及控制计算机系统中的诸如闪存等非易失性存储器的存储容量。
背景技术
非易失性存储器是一种不需要电力来维持存储的信息的存储器。非易失性存储器的例子包括只读存储器、硬盘驱动器和闪存。闪存可以是NOR闪存或NAND闪存,其中NOR闪存具有长的写和擦除时间但允许对任何存储器位置的随机访问,而NAND闪存较快的访问时间但只允许依次访问数据。
发明内容
根据一个一般的实现,通过从硬盘将第一数据段加载到非易失性存储器中,根据访问频率、访问时新性(recency)和第一数据段的大小中的至少一个来计算非易失性存储器中所存储的第一数据段的权重并将计算出的权重存储在权重表中来控制计算机系统中的非易失性存储器的存储容量。根据存储在权重表中的至少一个权重来计算第一数据段的移除等级,确定该非易失性存储器的存储容量的使用是否超过预定阈值,并根据该移除等级从非易失性存储器中移除数据段。
实现可以包括下列特征中的一个或多个。例如,当非易失性存储器中不存在该数据段时,可以将第一数据段从硬盘加载到非易失性存储器中。可以将该数据段从非易失性存储器加载至易失性存储器。
根据另一个一般的实现,计算机系统中的第一非易失性存储器的存储容量是通过计算存储在第一非易失性存储器中的数据段的移除等级,并确定第一非易失性存储器的存储容量是否被使用超过预定阈值来控制的。另外,根据移除等级从第一非易失性存储器中移除数据段。
实现可包括下列特征中的一个或多个。例如,计算数据段的移除等级还可以包括向该数据段分配权重并比较分配给该数据段的权重和分配给第一非易失性存储器中所存储的其它数据段的权重。向数据段分配权重可以包括根据该数据段的大小来向该数据段分配权重,或根据关于该数据段的访问历史的统计信息来向该数据段分配权重。关于数据段的访问历史的统计信息可以包括该数据段的访问频率,或该数据段的访问时新性。可以例如当第一非易失性存储器中不存在该数据段时,将该数据段从第二非易失性存储器加载到第一非易失性存储器中。第二非易失性存储器可以是硬盘驱动器,而第一非易失性存储器可以是闪存。
根据另一个一般的实现,用于控制计算机系统中的第一非易失性存储器的存储容量的装置包括配置成存储数据段的第一非易失性存储器和控制器。控制器被配置成将第一数据段从硬盘加载到闪存中,根据访问频率、访问时新性和第一数据段的大小中的至少一个来计算存储在第一非易失性存储器中的第一数据段的权重,并将计算出的权重存储在权重表中。该控制器还被配置成根据存储在权重表中的至少一个权重来计算第一数据段的移除等级,并确定非易失性存储器的存储容量是否被使用超过预定阈值,并根据移除等级从非易失性存储器中移除数据段。
根据另一个一般实现,一种用于控制计算机系统中的第一非易失性存储器的存储容量的装置包括配置成存储数据段的第一非易失性存储器和控制器。该控制器被配置成计算存储在第一非易失性存储器中的数据段的移除等级,确定非易失性存储器的存储容量是否被使用超过预定阈值,并根据移除等级从第一非易失性存储器中移除数据段。
在附图和以下说明书中列举出一个或多个实现的细节。其它特征将从说明书和附图和从权利要求书中显而易见。
附图简要说明
图1和2示出使用非易失性存储器的示例性计算机系统。
图3是示出用于控制计算机系统中的非易失性存储器的示例性方法的流程图。
图4和5是示出使用非易失性存储器的另一示例性计算机系统的框图。
图6是示出存储在非易失性存储器上的数据段的移除等级的计算的流程图。
图7示出存储非易失性存储器上加载的数据段的移除等级的示例性数据结构。
图8-10是示出用于控制计算机系统中的非易失性存储器的示例性方法的流程图。
具体实施方式
闪存被用于高速缓存以减少计算机系统加电、访问程序和将数据段写入硬盘所花的时间。高速缓存是中央处理单元(CPU)能比它可访问诸如硬盘等其它类型的存储器更迅速地访问的存储器。当CPU处理数据段时,它首先在高速缓存中查找,且如果它在那从先前读取的数据段中找到该数据段,则不必花费更多时间从其它类型的存储器中读取数据。如果闪存在用作系统高速缓存时变满,则在存储其它数据段时必须删除已存储的某些数据。然而,不加选择地从闪存中删除数据段会对计算机硬盘的访问尝试次数增加,进而导致功耗增加及访问延迟。
图1示出在INTEL@中心体系结构(IHA)体系结构中使用非易失性存储器的示例性计算机系统100。IHA是将专用总线用于在两个主处理器芯片之间传递数据的INTEL@800串联芯片组设计。诸如闪存等非易失性存储器可以在计算机系统100中用作象高速缓存那样的存储器以减少计算机系统加电、访问程序和将数据写入硬盘所花的时间。
计算机系统100包括接口至图形/存储器控制中心(GMCH)120的CPU110。GMCH 120提供到图形控制器130和非易失性存储器140的接口。非易失性存储器140可以包括动态随机访问存储器(DRAM)140a和随机访问存储器(RAM)140b。另外,GMCH 120接口至控制主板160和硬盘驱动器(HDD)170的输入/输出控制中心(ICH)150。通常,对易失性存储器140的访问进行得远远快于对HDD 170的访问。
主板硬件160包括非易失性存储器160a和用于控制该非易失性存储器160a的非易失性控制芯片160b。因为非易失性存储器160a具有显著的存储容量并且比HDD 140快,所以它可以被用作HDD 170的高速缓存。诸如操作系统文件等大量数据可以被存储在非易失性存储器160a上。在一个例子中,存储在HDD 170上的数据段在非易失性控制芯片160b的帮助下被加载到非易失性存储器160a中。非易失性存储器160b可以允许能将数据段从诸如易失性存储器140或HDD 170等各种存储器存储装置加载至非易失性存储器160a。
以类似的方式,非易失性控制芯片160b还可以允许将数据段从非易失性存储器160a传送至诸如易失性存储器140或HDD 170等存储器存储装置。非易失性存储器160a可以是诸如NOR或NAND闪存等闪存、只读存储器(ROM)或其它类型的非易失性存储器。在其它实现中,非易失性存储器160a被定位在诸如通用串行总线(USB)快闪驱动器等可拆卸设备上。
图2示出在北桥/南桥体系结构中使用非易失性存储器的示例性计算机系统200。闪存在计算机系统200中的使用与它在计算机系统100中的使用方式非常相似。计算机系统200包括接口至北桥215和南桥220的CPU 210。北桥215提供到视频控制器220和易失性存储器230的接口。易失性存储器230可以包括DRAM和/或RAM。
南桥220提供用于输入/输出控制器235、HDD 240、非易失性存储器245以及诸如键盘控制器250或电源按钮255等外围设备的接口。类似于计算机系统100,非易失性存储器可以用作HDD 240和易失性存储器230之间的中间存储器。例如,非易失性存储器245作为使计算机系统200能更快速地运行的非易失性高速缓存可以存储诸如操作系统文件等经常被访问的数据段。CPU 210可以允许将数据段从诸如易失性存储器230或HDD 240等其它存储器存储装置加载至非易失性存储器245。类似地,CPU 210可以允许将数据段从非易失性存储器245加载至易失性存储器230或加载回HDD 240。
图3是示出用于控制诸如计算机系统200等计算机系统中的非易失性存储器的示例性方法的流程图300。当方法300开始(S301)时,计算机系统200的通电(S305),并且例如在用户启动诸如Web浏览器或Word处理器等应用程序时,由用户输入命令(S310)。在一个替换实现中,用户命令不被输入计算机系统200中。
计算机系统200确定诸如程序、系统驱动器等数据段还是其它数据被存储在非易失性存储器245中(S315)。如果数据段被存储在非易失性存储器245中(S315),则将该数据段从非易失性存储器245加载至易失性存储器230(S320),且方法300结束(S321)。如果数据段没有被存储在非易失性存储器245中(S315),则从HDD 240读取该数据段(S325)并将加载到非易失性存储器245中(S330)。然而,非易失性存储器245可能没有足够的空间来存储从HDD 240读取的数据段。
如果确定非易失性存储器245满了或对其的使用超过预定阈值(S335),则随机地删除存储在该非易失性存储器245中的数据段直至对闪存的使用不再超过预定阈值(S335),或者盖写该数据段(S340)。预定阈值可以用诸如90%或100兆字节等百分数或实际存储容量来表示。
如果确定非易失性存储器245具有足够的空间来存储来自HDD 240的数据段(即,对该非易失性存储器的使用没有超过预定阈值),则来自HDD 240的数据段被存储在非易失性存储器245中(S345)。非易失性存储器245可以用作非易失性高速缓存以使计算机系统200能通过将该数据段加载到诸如DRAM或RAM等易失性存储器230(S320)来更快速地运行,从而结束方法300(S321)。
从闪存中随机地移除数据段的一个问题是在下一存储器访问期间可能需要相同的数据段。因此,必须再次将最近移除的数据段从HDD加载至闪存中。然而,对HDD的每一次访问增加了计算机系统的功耗并增加了访问延迟,因为从HDD读取数据段的延迟远远大于从闪存读取数据段的延迟。结果,期望通过提供一种从闪存中移除不使用的数据段的智能方法来减少计算机系统中的功耗和访问延迟两者。因此,闪存应维持那些在统计上更可能在未来被访问的数据段。另外,应考虑到诸如存储的数据段的大小等其它因素以更好地利用闪存。
图4是示出例如在IHA体系结构中利用双非易失性存储器的另一个示例性计算机系统400的框图。计算机系统400包括:CPU 405、GMCH 410和ICH415。GMCH 410控制图形处理器和诸如DRAM等易失性存储器420。ICH 415控制主板425和HDD 430。主板425还包括双非易失性存储器435和440以及控制芯片445。
类似于计算机系统100和200,非易失性存储器可以用作HDD 430和易失性存储器420之间的中间存储器。可以将数据段从易失性存储器420或HDD430加载到非易失性存储器435和440。类似地,可将数据段从非易失性存储器435和440加载到易失性存储器420或HDD 430。另外,非易失性存储器435和440可以属于诸如基于NAND或基于NOR的闪存等不同的类型。
高速缓存驱动器450可以被储存在CPU 405的寄存器中以使非易失性存储器435和440能用作计算机系统400的非易失性高速缓存。因为高速缓存是CPU 405能比它能访问诸如HDD 430或易失性存储器420等其它类型的存储器更快速地访问的存储器,所以CPU 405在从其它类型的存储器寻找数据段之前先在高速缓存中搜索数据段。
图5是示出通过外围部件互连总线(PCI)体系结构来使用非易失性存储器的另一个示例性计算机系统500的框图。计算机系统500包括软件组件510和硬件组件525,其中软件组件510包括与分区管理器512接口连接的文件系统511,该文件系统511进而与盘类程驱动器513接口连接。盘类程驱动器与盘物理设备对象(PDO)514接口连接,盘PDO 514表示存储器端口驱动器515上的单个设备,它是例如MICROSOFT@或INTEL@矩阵存储管理器(iMSM)。另外,软件组件510包括诸如EMD IMD管理器等通过盘PDO 517与诸如MICROSOFT@WINDOWS@驱动器模块(WDM)功能驱动器等非易失性存储器518接口连接的虚拟存储管理器。存储器端口驱动器515通过包括高速缓存引擎动态链接库(DLL)520的高速缓存接口519与非易失性存储器驱动器通信。
硬件组件525包括具有非易失性存储器530a的主板530和HDD 540。HDD540存储文件系统和相应的系统软件。主板530存储虚拟存储管理器和非易失性存储管理软件。主板530通过PCI总线与HDD 540接口连接,其中通过PCI总线将数据段从HDD 540移至非易失性存储器530a。另外,通过软件组件510的高速缓存接口来高速缓存HDD 540上所存储的数据段。
图6是用于计算存储在非易失性存储器上的数据段的移除等级的方法600的流程图。当方法600开始(S601)时,计算机系统被通电(S610)。用户可以将命令输入至计算机系统(S620),例如启动象Web浏览器那样的应用程序。或基于用户的命令或自动地从HDD读取数据段(S630)并将数据段加载到非易失性存储器中(S640)。也可以将来自HDD的相同数据段加载到诸如DRAM等易失性存储器中。
一旦数据段被加载到非易失性存储器中,该加载的数据段就被分配移除等级(S650)。移除等级指示当非易失性存储器变得被过度使用或满时将从非易失性存储器移除数据段的次序。例如,特定数据段的移除等级1可以指示在新数据段需要空间时该数据段将首先被删除。计算出的移除等级可以以表的形式存储在非易失性存储器、HDD或易失性存储器上。另外或作为选择地,计算出的移除等级可以以诸如树等其它形式的数据结构来存储。
加载的数据段的移除等级是根据各种因素来计算的。这些因素可以是关于数据段的访问历史的统计信息,包括:数据访问频率、数据访问时新性或其它关于对该数据段的访问尝试的历史的统计信息。另外,还可以考虑数据段的大小。因此,将存储偏好和低关联的移除等级给予频繁地/最近访问的且不太大的数据段。
另一方面,将大的并且用得少的数据段标记成从非易失性存储器移除。例如,如果数据段在上个月中至少被访问过一次则该数据段的权重可以被增加。在另一个例子中,每次数据段被访问时该数据段的权重可以被增加。最后,对于每N兆字节的数据段的大小,数据段的权重可以被降低。数据段的权重的增加/减小可以根据系统的配置而变化。因此,如果非易失性存储器具有大的存储容量,则它可以能存储更多数据,因此可以将每N兆字节的权重降低选择成小于最近或频繁访问的权重增加。
另外,在具有小非易失性存储器容量的系统中,如果它与其它数据段相比时非常大,则即使最近访问的数据段也可能被更快地移除。在非易失性存储器中存储较小块的数据可以防止对HDD的频繁访问尝试,这些尝试不论被访问的数据大小通常都消耗相当大的电量。
可以在每次将新数据段加入非易失性存储器中时计算非易失性存储器中所存储的数据段的移除等级。另外,可以以周期的时间间隔或基于用户的命令来计算移除等级。
图7示出存储非易失性存储器上加载的数据段的移除等级的示例性数据结构700。数据结构700的行710-713各对应于存储在非易失性存储器中的不同数据段。例如,行710包括根据访问频率和数据大小分配给数据段的单个权重值。另外,行710包括该数据段的总计权重和该数据段的相应移除等级,该移除等级是基于该段相对于其它数据段的总计权重。行711-713包括其它数据段的类似权重和等级。
如列701所反映的,每一数据段的权重对每一次访问尝试增加1。例如,与行710-713相关联的数据段分别被访问0、1、2和5次,它们对于访问频率的相应单个权重值分别被计算成0、1、2和5。
另外,如列702中所反映的,数据段在与最小数据段相比时每增加10兆字节就被分配以负的权重值。因此,如果由行710-713表示的数据段的大小为10、20、30和60兆字节,则数据段的单个权重值分别被计算成0、-1、-2和-5。因此,且如列703中所反映的,数据段的总计权重被计算成所有类别的单个权重值的总和且对于行710-713分别为1、4、-2和-3。
因此,由行703表示的数据段具有最高移除等级,因为它因其大小较大而具有最低总计权重(-3)。另一方面,由行711表示的数据段具有最低移除等级,因为它是非易失性存储器中最频繁被访问的数据段且大小也相对较小。
图8是示出用于控制计算机系统中的非易失性存储器的示例性方法800的流程图。当方法800开始(S801)时,计算机系统被通电(S805),并且例如在用户启动象Web浏览器或Word处理器那样的应用程序时由用户输入命令(S810)。在一个替换实现中,用户不将命令输入到计算机系统中,而该计算机系统自动进行。
计算机系统确定诸如应用程序、系统驱动器等用于操作系统的数据段或其它数据是否被存储在非易失性存储器中(S815)。如果数据段被存储在非易失性存储器中(S815),则例如通过用高速缓存驱动器将数据从该非易失性存储器加载至诸如DRAM或RAM等易失性存储器。另外,用参照图6和7讨论的过程来更新或生成存储非易失性存储器上所存储的数据段的移除等级的数据结构(S825)。该数据结构可以是权重表或树。
如果数据没有被存储在非易失性存储器中(S815),则计算机系统确定非易失性存储器是否满或对其的使用超过预定阈值(S830)。如果非易失性存储器是满的或对其的使用超过预定阈值(S830),则删除非易失性存储器中具有最高移除等级的数据段(S835)。如果确定该非易失性存储器具有足够的空间来存储来自HDD的数据(S830),则来自HDD的数据被存储在该非易失性存储器中(S840)。执行一个核查以确保数据被合适地加载(S845),且如果将数据从HDD加载至非易失性存储器的过程遇到问题,则计算机系统删除具有最高移除等级的数据段(S835)。
如果将数据从HDD加载到非易失性存储器被正确地进行(S845),则还将数据从非易失性存储器加载到易失性存储器(S820)。可以用高速缓存驱动器来加载数据。另外,根据参照图6和7讨论的过程来更新或生成存储非易失性存储器上所存储的数据段的移除等级的数据结构(S825),且方法800结束(S826)。
图9和10是示出用于控制计算机系统中的非易失性存储器的示例性方法900和1000的流程图。当方法900开始(S901)时,将第一数据段从硬盘加载到非易失性存储器中(S902),并根据访问频率、访问时新性和第一数据段的大小中的至少一个来计算非易失性存储器中所存储的第一数据段的权重(S904)。当数据段不存在非易失性存储器中时,可以将第一数据段从硬盘加载到非易失性存储器中。
计算出的权重被存储在权重表中(S905),并根据存储在权重表中的至少一个权重来计算第一数据段的移除等级(S906)。确定对非易失性存储器的存储容量的使用是否超过预定阈值(S907),且如果对非易失性存储器的存储容量的使用超过预定阈值(S907),则根据移除等级从非易失性存储器中移除数据段(S909)。可以将数据段从非易失性存储器加载至易失性存储器(S910),以结束方法900(S911)。
参见图10,当方法1000开始(S1001)时,可以例如在数据段不存在于第一非易失性存储器中时,将数据段从第二非易失性存储器加载至第一非易失性存储器(S1002)。第二非易失性存储器可以是硬盘驱动器,而第一非易失性存储器可以是闪存。
对存储在第一非易失性存储器中的数据段计算移除等级(S1004)。计算数据段的移除等级还可以包括向数据段分配权重和将该数据段所分配的权重与第一非易失性存储器中所存储的其它数据段所分配的权重相比较。向数据段分配权重可以包括根据数据段的大小向该数据段分配权重,或根据关于该数据段的访问历史的统计信息向该数据段分配权重。关于数据段的访问历史的统计信息可以包括数据段的访问频率或数据段的访问时新性。
确定对第一非易失性存储器的存储容量的使用是否超过预定阈值(S1005)。根据移除等级从第一非易失性存储器中移除数据段(S1006),以结束方法1000(S1007)。
根据另一个一般实现,用于控制计算机系统中的第一非易失性存储器的存储容量的装置包括配置成存储数据段的第一非易失性存储器和控制器。控制器被配置成将第一数据段从硬盘加载到闪存中,根据访问频率、访问时新性和第一数据段的大小中的至少一个来计算存储在第一非易失性存储器中的第一数据段的权重,并将计算出的权重存储在权重表中。控制器还被配置成根据存储在权重表中的至少一个权重来计算第一数据段的移除等级,确定对非易失性存储器的存储容量的使用是否超过预定阈值,并根据移除等级从非易失性存储器中移除数据段。
根据另一个一般的实现,一种用于控制计算机系统中的第一非易失性存储器的存储容量的装置包括配置成存储数据段的第一非易失性存储器和控制器。该控制器被配置成计算存储在第一非易失性存储器中的数据段的移除等级,确定对第一非易失性存储器的存储容量的使用是否超过预定阈值,并根据移除等级从第一非易失性存储器移除数据段。
我们了解可以进行各种修改而不背离权利要求书的精神和范围。因此,如果以不同的次序执行所公开的技术的步骤和/或如果以不同的方式组合或用其它部件替换所公开的系统中的部件,仍旧可以实现所述有益效果。例如,不仅可以从HDD还可以从其它存储设备加载数据。非易失性存储器即可以是计算机系统内部是也可以位于诸如USB闪存驱动器等外部/可拆卸设备上。另外,可以使用其它类型的存储器来代替非易失性存储器,包括易失性存储器和非易失性存储器。
已用特定的示例性实施例描述了所述安排。应了解概念和实现却并不限于上述实施例并且可以进行各种变化和修改。

Claims (15)

1.一种控制计算机系统中的非易失性存储器的存储容量的方法,所述方法包括:
将第一数据段从硬盘加载到非易失性存储器中,
根据访问频率、访问时新性和第一数据段的大小中的至少一个来计算存储在所述非易失性存储器中的所述第一数据段的权重;
将计算出的权重存储在权重表中;
根据存储在所述权重表中的至少一个权重来计算所述第一数据段的移除等级;
确定所述非易失性存储器的存储容量的使用超过预定阈值;以及
根据数据段的移除等级从所述非易失性存储器中移除数据段。
2.如权利要求1所述的方法,其特征在于,当所述数据段不存在于所述非易失性存储器中时,将所述第一数据段从所述硬盘加载到所述非易失性存储器中。
3.如权利要求1所述的方法,其特征在于,还包括将所述数据段从所述非易失性存储器加载至易失性存储器中。
4.一种控制计算机系统中的第一非易失性存储器的存储容量的方法,所述方法包括:
计算存储在第一非易失性存储器中的数据段的移除等级;
确定所述第一非易失性存储器的存储容量的使用超过预定阈值;以及
根据所述移除等级从所述第一非易失性存储器中移除数据段。
5.如权利要求4所述的方法,其特征在于,计算所述数据段的移除等级包括向所述数据段分配权重并将分配给所述数据段的权重与分配给存储在所述第一非易失性存储器中的其它数据段的权重相比较。
6.如权利要求5所述的方法,其特征在于,向所述数据段分配权重包括根据所述数据段的大小来向所述数据段分配权重。
7.如权利要求5所述的方法,其特征在于,向所述数据段分配权重包括根据与所述数据段的访问历史相关的统计信息来向所述数据段分配权重。
8.如权利要求7所述的方法,其特征在于,所述与数据段的访问历史相关的统计信息包括所述数据段的访问频率。
9.如权利要求5所述的方法,其特征在于,所述与数据段的访问历史相关的统计信息包括所述数据段的访问时新性。
10.如权利要求4所述的方法,其特征在于,所述数据段是从第二非易失性存储器被加载到所述第一非易失性存储器中的。
11.如权利要求10所述的方法,其特征在于,当所述数据段不存在于所述第一非易失性存储器中时,所述数据段从所述第二非易失性存储器被加载到所述第一非易失性存储器中。
12.如权利要求11所述的方法,其特征在于,所述第二非易失性存储器是硬盘驱动器。
13.如权利要求4所述的方法,其特征在于,所述第一非易失性存储器是闪存。
14.一种用于控制计算机系统中的第一非易失性存储器的存储容量的装置,所述装置包括:
配置成用于存储数据段的第一非易失性存储器;以及
控制器,它被配置成用于:
将第一数据段从硬盘加载到闪存中;
根据访问频率、访问时新性和第一数据段的大小中的至少一个来计算存储在所述第一非易失性存储器中的所述第一数据段的权重;
将计算出的权重存储在权重表中;
根据存储在所述权重表中的至少一个权重来计算所述第一数据段的移除等级;
确定所述非易失性存储器的存储容量的使用超过预定阈值;以及
根据所述移除等级从所述非易失性存储器中移除数据段。
15.一种用于控制计算机系统中的第一非易失性存储器的存储容量的装置,所述装置包括:
配置成用于存储数据段的第一非易失性存储器;
控制器,它被配置成用于:
计算存储在第一非易失性存储器中的数据段的移除等级;
确定所述非易失性存储器的存储容量的使用超过预定阈值;以及
根据所述移除等级从所述第一非易失性存储器中移除数据段。
CNA2006101689093A 2006-08-23 2006-12-08 控制对非易失性存储器的访问 Pending CN101131671A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020060079674 2006-08-23
KR1020060079674A KR101128234B1 (ko) 2006-08-23 2006-08-23 메모리 접근 제어 장치 및 방법

Publications (1)

Publication Number Publication Date
CN101131671A true CN101131671A (zh) 2008-02-27

Family

ID=39128944

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2006101689093A Pending CN101131671A (zh) 2006-08-23 2006-12-08 控制对非易失性存储器的访问

Country Status (3)

Country Link
US (1) US7853762B2 (zh)
KR (1) KR101128234B1 (zh)
CN (1) CN101131671A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102487422A (zh) * 2010-12-02 2012-06-06 北京市三希电子科技开发公司 语音提示文件的处理方法和装置
CN102609276A (zh) * 2011-01-20 2012-07-25 宏碁股份有限公司 预先载入常用应用程序的方法及其电子装置
WO2012146998A1 (en) * 2011-04-29 2012-11-01 International Business Machines Corporation Runtime dynamic performance skew elimination
CN104821790A (zh) * 2014-01-31 2015-08-05 瑞士优北罗股份有限公司 可靠的晶体振荡器启动方法
WO2017080383A1 (zh) * 2015-11-12 2017-05-18 华为技术有限公司 加载软件模块的方法和装置
CN107179996A (zh) * 2016-03-10 2017-09-19 爱思开海力士有限公司 数据存储装置和其操作方法
US9852058B2 (en) 2012-09-28 2017-12-26 International Business Machines Corporation NVS thresholding for efficient data management
CN112117937A (zh) * 2020-09-08 2020-12-22 绍兴文理学院元培学院 一种永磁同步电机控制系统及电机转速测量方法

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070152076A1 (en) * 2004-12-13 2007-07-05 Chiang Kuo C Monitoring system with a wireless transmitting/receiving module
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US8402201B2 (en) 2006-12-06 2013-03-19 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery in solid-state storage
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
TW200905545A (en) * 2007-07-16 2009-02-01 Prolific Technology Inc External storage device
US20090094423A1 (en) * 2007-10-05 2009-04-09 Prostor Systems, Inc. Methods for implementation of an archiving system which uses removable disk storage system
US8930651B2 (en) 2007-10-05 2015-01-06 Imation Corp. Archiving system with partitions of individual archives
US8140787B2 (en) * 2007-10-05 2012-03-20 Imation Corp. Methods for implementation of an active archive in an archiving system and managing the data in the active archive
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
CN101551779B (zh) * 2008-04-02 2014-11-05 深圳市朗科科技股份有限公司 计算机及数据存储方法
US20100005335A1 (en) * 2008-07-01 2010-01-07 International Business Machines Corporation Microprocessor interface with dynamic segment sparing and repair
US8234540B2 (en) 2008-07-01 2012-07-31 International Business Machines Corporation Error correcting code protected quasi-static bit communication on a high-speed bus
US8601222B2 (en) 2010-05-13 2013-12-03 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
CN102597910B (zh) 2009-09-09 2015-03-25 弗森-艾奥公司 存储设备中用于功率减小管理的装置、系统及方法
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
US8725934B2 (en) 2011-12-22 2014-05-13 Fusion-Io, Inc. Methods and appratuses for atomic storage operations
WO2012016089A2 (en) 2010-07-28 2012-02-02 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
US8984216B2 (en) 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US20120239860A1 (en) 2010-12-17 2012-09-20 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
US9141527B2 (en) 2011-02-25 2015-09-22 Intelligent Intellectual Property Holdings 2 Llc Managing cache pools
WO2012129191A2 (en) 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
JP5175953B2 (ja) * 2011-06-02 2013-04-03 株式会社東芝 情報処理装置およびキャッシュ制御方法
JP2014534520A (ja) 2011-10-26 2014-12-18 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. セグメント化されたキャッシュ
EP2783290A4 (en) * 2011-11-21 2016-06-08 Hewlett Packard Development Co MEMORY AMOUNT FOR PERFORMING AN APPLICATION
US9274937B2 (en) 2011-12-22 2016-03-01 Longitude Enterprise Flash S.A.R.L. Systems, methods, and interfaces for vector input/output operations
US10114750B2 (en) 2012-01-23 2018-10-30 Qualcomm Incorporated Preventing the displacement of high temporal locality of reference data fill buffers
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US10359972B2 (en) 2012-08-31 2019-07-23 Sandisk Technologies Llc Systems, methods, and interfaces for adaptive persistence
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US10102144B2 (en) 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
US10558561B2 (en) 2013-04-16 2020-02-11 Sandisk Technologies Llc Systems and methods for storage metadata management
US9842128B2 (en) 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
US10019320B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for distributed atomic storage operations
US10073630B2 (en) 2013-11-08 2018-09-11 Sandisk Technologies Llc Systems and methods for log coordination
CN105824570B (zh) * 2015-01-04 2018-11-23 致伸科技股份有限公司 可降低耗电的硬盘装置以及降低硬盘装置耗电的方法
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
US10963425B2 (en) 2018-08-17 2021-03-30 Microsoft Technology Licensing, Llc Data placement on magnetic data storage tape

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030110357A1 (en) * 2001-11-14 2003-06-12 Nguyen Phillip V. Weight based disk cache replacement method
CN1527973A (zh) * 2000-06-23 2004-09-08 英特尔公司 非易失性高速缓存

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3568110B2 (ja) * 1999-10-15 2004-09-22 インターナショナル・ビジネス・マシーンズ・コーポレーション キャッシュメモリの制御方法、コンピュータシステム、ハードディスクドライブ装置およびハードディスク制御装置
JP2002135857A (ja) * 2000-10-20 2002-05-10 Mitsubishi Heavy Ind Ltd 遠隔監視装置および遠隔監視方法
JP2002140234A (ja) * 2000-11-02 2002-05-17 Hitachi Ltd キャッシュ装置
US7275135B2 (en) * 2001-08-31 2007-09-25 Intel Corporation Hardware updated metadata for non-volatile mass storage cache
US6910106B2 (en) * 2002-10-04 2005-06-21 Microsoft Corporation Methods and mechanisms for proactive memory management
US7076611B2 (en) * 2003-08-01 2006-07-11 Microsoft Corporation System and method for managing objects stored in a cache
US7380055B2 (en) * 2004-06-21 2008-05-27 Dot Hill Systems Corporation Apparatus and method in a cached raid controller utilizing a solid state backup device for improving data availability time
US20060282620A1 (en) * 2005-06-14 2006-12-14 Sujatha Kashyap Weighted LRU for associative caches

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1527973A (zh) * 2000-06-23 2004-09-08 英特尔公司 非易失性高速缓存
US20030110357A1 (en) * 2001-11-14 2003-06-12 Nguyen Phillip V. Weight based disk cache replacement method

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102487422A (zh) * 2010-12-02 2012-06-06 北京市三希电子科技开发公司 语音提示文件的处理方法和装置
CN102609276A (zh) * 2011-01-20 2012-07-25 宏碁股份有限公司 预先载入常用应用程序的方法及其电子装置
US9104316B2 (en) 2011-04-29 2015-08-11 International Business Machines Corporation Runtime dynamic performance skew elimination
WO2012146998A1 (en) * 2011-04-29 2012-11-01 International Business Machines Corporation Runtime dynamic performance skew elimination
US8365023B2 (en) 2011-04-29 2013-01-29 International Business Machines Corporation Runtime dynamic performance skew elimination
US8443241B2 (en) 2011-04-29 2013-05-14 International Business Machines Corporation Runtime dynamic performance skew elimination
GB2505115A (en) * 2011-04-29 2014-02-19 Ibm Runtime dynamic performance skew elimination
US8719645B2 (en) 2011-04-29 2014-05-06 International Business Machines Corporation Runtime dynamic performance skew elimination
US8738975B2 (en) 2011-04-29 2014-05-27 International Business Machines Corporation Runtime dynamic performance skew elimination
US9852058B2 (en) 2012-09-28 2017-12-26 International Business Machines Corporation NVS thresholding for efficient data management
US9852059B2 (en) 2012-09-28 2017-12-26 International Business Machines Corporation NVS thresholding for efficient data management
US10007600B2 (en) 2012-09-28 2018-06-26 International Business Machines Corporation NVS thresholding for efficient data management
US10031844B2 (en) 2012-09-28 2018-07-24 International Business Machines Corporation NVS thresholding for efficient data management
CN104821790A (zh) * 2014-01-31 2015-08-05 瑞士优北罗股份有限公司 可靠的晶体振荡器启动方法
CN104821790B (zh) * 2014-01-31 2019-03-29 瑞士优北罗股份有限公司 可靠的晶体振荡器启动方法
WO2017080383A1 (zh) * 2015-11-12 2017-05-18 华为技术有限公司 加载软件模块的方法和装置
CN107179996A (zh) * 2016-03-10 2017-09-19 爱思开海力士有限公司 数据存储装置和其操作方法
CN107179996B (zh) * 2016-03-10 2020-12-08 爱思开海力士有限公司 数据存储装置和其操作方法
CN112117937A (zh) * 2020-09-08 2020-12-22 绍兴文理学院元培学院 一种永磁同步电机控制系统及电机转速测量方法

Also Published As

Publication number Publication date
KR101128234B1 (ko) 2012-03-23
US20080052477A1 (en) 2008-02-28
KR20080017886A (ko) 2008-02-27
US7853762B2 (en) 2010-12-14

Similar Documents

Publication Publication Date Title
CN101131671A (zh) 控制对非易失性存储器的访问
US8595451B2 (en) Managing a storage cache utilizing externally assigned cache priority tags
US7979631B2 (en) Method of prefetching data in hard disk drive, recording medium including program to execute the method, and apparatus to perform the method
KR101288408B1 (ko) 플래시 메모리 시스템의 고속 웨이크-업을 용이하게 하는 방법과 시스템
CN102708065B (zh) 一种预留页面文件的方法及计算机系统
CN102543179A (zh) 串行接口存储器中的同时读取与写入存储器操作
US20050138283A1 (en) Writing cache lines on a disk drive
US8606982B2 (en) Derivative logical output
US20080114923A1 (en) Apparatus and method for controlling operation processing in nonvolatile memory
US6683816B2 (en) Access control system for multi-banked DRAM memory
US9977732B1 (en) Selective nonvolatile data caching based on estimated resource usage
US8145839B2 (en) Raid—5 controller and accessing method with data stream distribution and aggregation operations based on the primitive data access block of storage devices
JP3935873B2 (ja) プリフェッチ・バッファを用いたメモリ電力管理
US20060248327A1 (en) Computer rapid boot system and method
US7600062B2 (en) Method and apparatus for micro-code execution
US6393498B1 (en) System for reducing processor workloads with memory remapping techniques
US8291178B2 (en) Machine-implemented method for categorizing storage media, and machine-implemented method for storing target codes
US7836277B2 (en) Pre-tracing instructions for CGA coupled processor in inactive mode for execution upon switch to active mode and continuing pre-fetching cache miss instructions
US7213107B2 (en) Dedicated cache memory
US20100191899A1 (en) Information Processing Apparatus and Data Storage Apparatus
US8667188B2 (en) Communication between a computer and a data storage device
CN114168495A (zh) 存储设备的增强的预读能力
US10795771B2 (en) Information handling system with reduced data loss in block mode
US6425029B1 (en) Apparatus for configuring bus architecture through software control
US11750893B2 (en) Pre-fetch of data using seek intervals

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20080227