CN101770430B - 分析移动到非易失性存储器的ram存储对象的方法和设备 - Google Patents
分析移动到非易失性存储器的ram存储对象的方法和设备 Download PDFInfo
- Publication number
- CN101770430B CN101770430B CN2009102123664A CN200910212366A CN101770430B CN 101770430 B CN101770430 B CN 101770430B CN 2009102123664 A CN2009102123664 A CN 2009102123664A CN 200910212366 A CN200910212366 A CN 200910212366A CN 101770430 B CN101770430 B CN 101770430B
- Authority
- CN
- China
- Prior art keywords
- memory
- storage object
- nonvolatile memory
- write
- storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3471—Address tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2024—Rewritable memory not requiring erasing, e.g. resistive or ferroelectric RAM
-
- 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/205—Hybrid memory, e.g. using both volatile and non-volatile memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
存储器分析***分析存储在易失性存储器中的存储对象并识别作为将要被存储在存储器管理单元中以及从存储器管理单元直接读取的候选者的存储对象。该分析***通过页面错误监视存储器存取并且识别将要被载入易失性存储器中的存储对象。分析***使用页面错误来确定页面错误类型以及存储对象的写入频率,并确定存储对象的存储器存取类型。分析***确定对象的存储器存取类型是否满足非易失性存储器技术的能力。如果存储器存取类型满足非易失性存储器技术的能力,则分析***将存储对象识别为将要被转移至非易失性存储器并且从非易失性存储器直接读取的候选者。分析***将存储对象候选者存储在非易失性存储器中以使得该存储对象从非易失性存储器直接读取。
Description
技术领域
本发明的实施例涉及分析用于移动到非易失性存储器的易失存储对象。特别地,本发明的实施例涉及识别位于随机存取存储器中的作为存储于和直接读取于非易失性存储器的候选者的存储对象以及将候选存储对象转移至非易失性存储器。
背景技术
许多计算机架构存储器要么是(1)主存储器,其是易失的(意为当存储器关闭时信息会丢失),但是相对较快,例如随机存取存储器(RAM),要么是(2)辅助存储器,其是非易失的,但是相对较慢,例如闪存以及硬盘。一般地,原始设备制造商(OEM)将永久文件存储于非易失性的存储器,并在RAM中创建以及存储绝大多数其他对象。例如,OEM将代码存储于闪存而将数据存于DRAM。然而,随着时间的过去,OEM开始将代码存于易失性存储器,并使用大量的DRAM。许多存于DRAM中的对象可以被转变为能直接执行代码的非易失性存储器技术(例如,或非存储器(NOR)技术和相变存储器(PCM)技术)。然而,OEM一般都缺少识别存于DRAM的能被存储及直接读取于非易失性存储器的存储对象的工具。
发明内容
根据本发明的实施方式,提供了一种方法,该方法包括:
监视对在易失性存储器中的存储对象的存储器存取以收集并创建分析数据;
使用所述分析数据来确定在所述易失性存储器中的存储对象是否是将 要被存储在非易失性存储器中以及从所述非易失性存储器直接读取的候选者;以及
将存储对象候选者存储在所述非易失性存储器中以使得该存储对象从所述非易失性存储器中直接读取。
根据本发明的另一实施方式,提供了一种机器可存取存储介质,该机器可存取存储介质提供指令,该指令如果由机器执行将使得所述机器执行操作,该操作包括:
监视对在易失性存储器中的存储对象的存储器存取以收集并创建分析数据;
使用所述分析数据来确定在所述易失性存储器中的存储对象是否是将要被存储在非易失性存储器中以及从所述非易失性存储器直接读取的候选者;以及
将所述存储对象候选者存储在所述非易失性存储器中以使得所述存储对象从所述非易失性存储器中直接读取。
根据本发明的又一实施方式,提供了一种***,该***包括:
处理器;
与所述处理器耦合的非易失性存储器;以及
与所述处理器耦合的随机存取存储器,所述处理器将存储在所述随机存取存储器中的存储对象转移至所述非易失性存储器中,其中被转移的存储对象是从所述非易失性存储器中直接存取的。
附图说明
本发明的实施例是以示例的方式示出的,并不限于附图中的图,其中相似的附图标记表示相似的元素,其中:
图1示出了根据本发明的一个实施例的存储器分析***;
图2示出了根据本发明的一个实施例的存储器分析***的结构图;
图3是一种用于识别存储于易失性存储器中的作为要从非易失性存储器直接读取的候选者的存储对象的方法的一个实施例的流程图;
图4是一种确定存储对象是否是要被存储于以及直接读取于非易失性存储器的候选者的方法的一个实施例的另一流程图;
图5是一种确定存储对象的写入频率的方法的一个实施例的流程图;以及
图6是一种确定存储对象的写入频率是否达到写入频率阈值的方法的一个实施例的流程图。
具体实施方式
本发明的实施例提供了一种对存于易失性存储器(如RAM和DRAM)的作为要被移动至并直接读取于非易失性存储器(如NOR和PCM)的候选者的存储对象进行分析的方法和***。该存储器分析***通过页面错误监视存储器存取并且识别要被载入易失性存储器的存储对象。该分析***使用页面错误来确定页错误类型以及存储对象的写入频率,并且确定该存储对象的存储器存取类型。该分析***确定该对象的存储器存取类型是否达到非易失性存储器技术的能力。如果该存储器存取类型达到非易失性存储器技术的能力,则该分析***将该存储对象识别为被转移到非易失性存储器(如NOR和PCM)的候选者。该分析***将存储对象候选者存于非易失性存储器,这样该存储对象可以直接从非易失性存储器中读取。该方法和***通过识别可直接从非易失性储存器(如NOR和PCM)中读取而不是从易失性储存器(如RAM和DRAM)载入或读取的存储对象而有更好的性能。
图1示出了根据本发明的一个实施例的存储器分析***100。对于一个实施例,该***100具有无线接口120。该无线接口120与天线140耦合。 该无线接口120接收并发送数据和信息。然而,实施例并不限于无线通信的实施例。其他非无线的应用可以使用本发明的实施例。
该***100包括与接口105耦合的处理器110。该接口105可以用于在处理器110和***存储器115中的存储装置之间提供通信或信息。接口105可以包括串行和/或并行总线来与被用于在处理器110和***存储器115之间提供信号交换的控制信号线路分享信息。
***存储器115可以选择性地被用于存储由处理器110执行的命令。***存储器115可以由一个或多个不同类型的存储器提供,并且可以包括易失性存储器(例如随机存取存储器143(RAM)和动态随机存取存储器(DRAM))和非易失性存储器(例如只读存储器150(ROM)和具有相变材料的非易失性存储器155)。非易失性存储器155的例子包括NOR闪存、相变存储器(PCM)、相变随机存取存储器(PRAM或PCRAM)、双向通用存储器(OUM)或硫化物随机存取存储器(C-RAM)。易失性存储器143的例子是RAM和DRAM。***存储器115包括存储器管理器141以对易失性存储器中的要从非易失性存储器中直接读取的存储对象进行分析和转移。
RAM 143一般包含立即能被处理器110获取的数据和/或目前正被处理器110运行的程序模块。图1示出了操作***145、应用程序147、其他程序模块149以及程序数据151。易失性存储器143和非易失性存储器150、155可以通过堆叠处理而被结合从而减少主板上的针脚,独立包装,或置于多片包装中,存储器组件置于处理器的顶端。该实施例还示出了可以嵌于非易失性存储器中的一个或多个处理器核心160、180。
对于一个实施例,***100包括带有整体存储器管理单元(MMU)130的处理器110。在其他实施例中,存储器管理单元130是独立芯片。该存储器管理单元(MMU)130是负责处理由处理器110请求的对存储器存取的硬件装置或电路。存储器管理单元130支持虚拟存储器以及通过将虚拟地址转 换为物理地址进行页面调度。该存储器管理单元130将虚拟地址空间(由处理使用的地址的范围)分割成页面,每个页面具有的大小是2的幂(即,2N)。地址底部N位(页面内偏移)是不变的。上层地址位是虚拟页码。
存储器管理单元130可以包括保存有将虚拟页码转换成物理页码的表的少量存储器(如缓存)。该表可以作为转换后备缓冲(TLB),其将虚拟地址与物理地址相匹配。所有对数据的请求都被发送至存储器管理单元130,该存储器管理单元130确定该数据是否存储于易失性存储器143或需要从大容量存储器装置(例如磁盘驱动器170)中获取。如果该数据不在任何存储器中,则存储器管理单元130发布页面错误中断。
图2示出了根据本发明的一个实施例的存储器分析***200的框图。***200使用页面类型虚拟地址方案并且包括存储器管理者141来对在易失性存储器中的要从非易失性存储器中直接读取的存储对象进行分析和转移。所有对数据的请求被发送至MMU 130,该MMU 130确定存储对象是否存储于易失性存储器(例如DRAM)。存储对象具有包括虚拟页码和页码偏移的虚拟地址。MMU 130一般通过转换后备缓冲202(TLB)将虚拟页码转换成物理页码。例如,如果程序正在运行并试图访问存储对象,则MMU 130在TLB202中查找地址。如果MMU 130在TLB 202中发现虚拟页面的对应(TLB命中),其物理位置被获取从而该程序可以访问该存储对象。然而,TLB 202可以保存页面转换的固定页码,而如果TLB 202没有转换(TLB失败),则MMU 130访问203页面表204,一种包含硬件特定数据结构的机制。
页面表204包含页面表项207A-E(PTE),其中每一项定义一页面的物理位置(206A、206B、206D或206E)。页面是RAM143的确定长度的相邻部分,并且可以存储任何类型的数据。该页面表项207A-E还可以包括关于该页面(存储对象)是否被写入、该页面何时被最后一次载入、什么类别的处理可能对该页面进行读取和写入、以及该页面是否应被缓存的信息。
如果MMU 130没有在页面表204中发现对应虚拟地址的有效项,则MMU 130产生被称为页面错误205中断(或页面错误)的处理器中断。例如,当某存储对象在DRAM中不可获取,MMU 130发现在页面表204(例如207C)中没有转换,MMU 130产生一页面错误205。当页面错误205发生时,MMU 130将控制转移至页面错误处理器220。
页面错误处理器220决定如何处理页面错误205。页面错误处理器220确定该虚拟地址是否有效。如果该虚拟地址是有效的,则页面错误处理器220寻找一个可获得的页面,将存储对象置于那个页面,并利用转换来更新页面表204。页面错误处理器220通知MMU 130重试操作。MMU 130重试该操作,页面(存储对象)被载入易失性存储器(例如DRAM)。
页面错误处理器220包括分析器209以对载入在DRAM中的作为要被存储以及直接读取于非易失性存储器(例如NOR、PCM)的候选者的存储对象进行分析。分析器209使用页面错误205来识别要被载入于DRAM的存储对象并监视页面表活动以产生用于确定存储对象是否是要从非易失性存储器直接读取的候选者的分析数据。分析数据可以包括存储对象的地址、对象多久被载入DRAM一次、以及对象多久被写入一次。分析器209使用这些分析数据对存储对象的存储器存取类型进行分类,并确定该存储器存取类型是否适合作为NOR或PCM存储器的候选者。表1示例性地示出了四种适合作为NOR或PCM技术候选者的存储器存取类型(例如,“只读”、“很少读写”、“读写”以及“频繁读写”)。
存储器存取类型 | NOR的候选者? | PCM的候选者? |
只读 | 是 | 是 |
很少读写 | 是 | 是 |
读写 | 否 | 是 |
频繁读写 | 否 | 否 |
表1
理想的候选者包括只读或很少写入的存储对象。词语“很少”和“频繁”用于指代***中的存储技术类型的具体参数。图6在下面对存储器存取类型进行了更详细的描述。
分析器209通过确定存储对象的写入频率确定存储对象的存储器存取类型。分析器209在一段时间(分析期)内监视页面表活动。写入频率是在分析期中存储对象被写入的次数。分析器209通过在每次存储对象被写入时记录存储对象页面错误205而确定存储对象的写入频率。分析器209包括页面表项(PTE)清理器208来清理页面表的页面表项。当载入一页面时,PTE清理器208将该载入的页面重新标记为未载入。在一个实施例中,PTE清理器在预定的时间间隔(如10ms)内周期性地将载入的页面标记为未载入。将载入的页面标记为未载入人工地清理了页面表204,并使得当存储对象被请求时出现分析器209能检测的页面错误。分析器209检测该页面错误并确定存储对象是否被写入。分析器209记录存储对象被写入的次数。
例如,***200示出了页面206A和页面206B。分析器209确定页面206A被载入单次且对该页面206A没有进行写入活动。因此,分析器209将页面206A归类为只读存储器存取类型。分析器209确定页面206B在分析期内只被载入一次且只写入一次。因此,分析器209将页面206B归类为很少读写存储器存取类型。
分析器209能以原始数据文件输出分析数据,该原始数据文件包含十六进制或二进制的信息。对于一个实施例,记录器210接收分析器209的输出,创建一个新的存储器映象(例如存储器配置文件),并且根据新的存储器映象自动重建***存储。总的来说,页面(例如,206A-206E)在其被存储到非易失性存储器之前被压缩。当页面被请求时,操作***将从存于非易失性存储器的压缩图象中读取页面,将该页面解压缩,并将解压缩的页面载入DRAM中。新的存储器映象定义哪个页面在其被存储到非易失性存储器前保 持不被压缩,这样该页面能够从非易失性存储器中直接读取,而不再载入DRAM。例如,如果分析器209将页面206A识别为只读存储器存取类型,则页面206A是保留于非易失性存储器(例如PCM)的候选者。创建的新的存储器映象定义页面206A在PCM中不被压缩,而是在PCM中保持为未压缩的图象。因此,当下次页面206A被请求时,页面206A不载入DRAM,而是直接从PCM中读取。
对于另一个实施例,记录器210将由分析器209产生的分析数据格式化为用户能使用的格式,用户能使用该格式手动改变***的存储器映象并且手动重建***存储器。记录器210接收分析器的输出并将其映射回具体页面(例如,特定数据对象、特定文件、特定可执行图像、特定数据库文件等、以及所述文件内的偏移)。该格式可以是柱状图,该柱状图能示出哪些页面被频繁地载入以及哪些页面很少被载入。用户可以根据柱状图提供的数据手动改变***存储器映象以及手动重建***存储器。
对于另一个实施例,***200包括存储器重配器240来动态地重新配置***存储器。存储器重配器240自动地接收分析器209的输出并识别哪些页面应被作为未压缩的图像存于非易失性存储器。使用分析器209的输出,存储器重配器240解压缩所识别的页面并且将信息(例如,新的存储器映象)提供到存储器调动器(relocator)230。
存储器调动器230使用新的存储器映象与页面错误处理器220进行交互以使得存储对象可根据新的存储器映象从NOR或PCM获得。使用上述示例,存储器调动器230探测到对页面206A的请求,识别页面206A是PCM中的未压缩图像,并通知页面错误处理器220不将页面206A载入DRAM而是从PCM中直接读取页面206A。
图3是用于识别存于易失性存储器中的作为要从非易失性存储器直接读取的候选者的存储对象的方法的一个实施例的流程图。该方法可以通过处理 逻辑实施,该处理逻辑可包含硬件(例如电路、专用逻辑等)、软件(如在通用计算机***或专用机器上运行)或两者的结合。对于一个实施例,处理逻辑存在于图1的存储器分析***100中。
在框301处,处理逻辑监视载入易失性存储器(如DRAM)中的存储对象的存储器存取,以收集和创建分析数据。分析数据可以包括存储对象的地址、该对象多久被载入DRAM一次、以及该对象多久被写入一次。在框303处,处理逻辑使用分析数据确定存储对象是否是要被转移至非易失性存储器并从非易失性存储器直接读取的候选者。在框305处,处理逻辑将存储对象候选者以未压缩存储对象存于非易失性存储器,从而该存储对象可以从非易失性存储器直接读取。
图4是用于确定存储对象是否为要被存储于并且直接读取于非易失性存储器的候选者的方法的一个实施例的另一个流程图。该方法可以通过处理逻辑实施,该处理逻辑可包含硬件(例如电路、专用逻辑等)、软件(如在通用计算机***或专用机器上运行)或两者的结合。对于一个实施例,处理逻辑存在于图1的存储器分析***100中。
在框401处,处理逻辑检测页面错误并用页面错误识别要被载入DRAM的存储对象。处理逻辑通过在一段时间或分析时间内监视页面表的活动检测页面错误。分析时间可以是预定的时间段或用户定义的时间段。例如,OEM可以运行两小时的测试,从而处理逻辑在两小时的时间段内监视页面表的活动。处理逻辑可以通过地址和存取类型(例如读或写)来识别对象。
在框403处,处理逻辑确定存储对象的写入频率。写入频率是存储对象被写入的次数。下面结合图5对写入频率进行了更详细的讨论。在框405处,处理逻辑确定写入频率是否达到写入阈值。下面的图6对达到写入阈值进行了更详细的描述。在框407处,处理逻辑根据写入频率是否达到写入阈值来识别作为直接从非易失性存储器直接读取的候选者的存储对象。
图5是用于确定存储对象的写入频率的方法500的一个实施例的流程图。该方法可以通过处理逻辑实施,该处理逻辑可包含硬件(例如电路、专用逻辑等)、软件(如在通用计算机***或专用机器上运行)或两者的结合。对于一个实施例,处理逻辑存在于图1的存储器分析***100中。
在框501处,处理逻辑监视页面表的活动。在框503处,处理逻辑确定是否存在页面错误。如果处理逻辑检测到页面错误(框503),则处理逻辑识别在框505处引发页面错误的存储对象的地址。在框507处,处理逻辑记录该存储对象的地址。可选地,处理逻辑可以确定存储对象以前载入过并且因此已经记录过。在框509处,处理逻辑将存储对象以只读形式载入并且在框511处记录该存储对象已载入。
如果处理逻辑没有检测到页面错误(框503),则处理逻辑确定存储对象是否在框513处被写入。如果处理逻辑检测到写入活动(框513),则处理逻辑记录对存储对象的写入活动(框515)并且确定分析时间是否在框521处过期。
在框513处,如果处理没有检测到写入活动,则处理逻辑确定在框517处是否清理页面表。处理逻辑根据用户定义的时间段是否过去来确定是否清理页面表项。例如,OEM可以定义处理逻辑每10ms清理一次页面表项。如果处理逻辑确定用户定义时间段已经过去(框517),则处理逻辑在框519处将当前载入于DRAM的存储对象重新标记为未载入,从而迫使存储对象被重新载入。如果处理逻辑确定用户定义时间段没有过去(在框517处),则处理逻辑在框521处确定分析时间是否过期。
在框521处,如果处理逻辑确定分析时间没有过期,则处理逻辑返回到框501继续监视页面表活动。如果处理逻辑确定分析时间已经过期(框521),则处理逻辑在框523处使用记录的数据确定存储对象被写入的次数。
图6是用于确定存储对象是否达到要被存储于并且直接读取于非易失性 存储器的写入阈值的方法600的一个实施例的流程图。该方法可以通过处理逻辑实施,该处理逻辑可包含硬件(例如电路、专用逻辑等)、软件(如在通用计算机***或专用机器上运行)或两者的结合。对于一个实施例,处理逻辑存在于图1的存储器分析***100中。
在框601处,处理逻辑确定存储对象的写入频率是否小于或等于PCM阈值。PCM阈值是PCM技术的当前写入性能速率。例如,PCM当前的写入性能是10MB/s的速率。然而,随着技术的发展,PCM将来的写入性能可能是,例如,40MB/s的速率。如果处理逻辑确定存储对象的写入频率不小于或等于PCM阈值(框601),则处理逻辑识别该存储对象不是非易失性存储器的候选者(框603),方法600完成。
表2A至2C示出了每种存储器存取类型的阈值的示例。
存储对象写入速率 | 存储器存取类型 |
0MB/s | 只读 |
>0MB/s至[当前NOR写入性能速率] | 很少读写 |
[>当前NOR写入性能速率]至 [当前PCM写入性能速率] | 读写 |
[>当前PCM写入性能速率]至 [当前DRAM写入性能速率] | 频繁读写 |
表2A
例如,表2A示出了对于包含NOR、PCM和DRAM技术的***,NOR,PCM和DRAM的当前写入性能参数为词语“很少”和“频繁”提供了参考点。因此,如果技术的写入性能常数改变,词语“很少”和“频繁”根据该改变调整。下面的表2B示出了用作用于定义包含NOR、PCM以及DRAM技术的***的存储器存取类型的参考的当前写入性能速率。
存储对象写入速率 | 存储器存取类型 | NOR的候选者? | PCM的候选者? |
0MB/s | 只读 | 是 | 是 |
>0MB/s至1MB/s | 很少读写 | 是 | 是 |
>1MB/s至10MB/s | 读写 | 否 | 是 |
>10MB/s至100MB/s | 频繁读写 | 否 | 否 |
表2B
如表2B中所示,NOR的当前写入性能是1MB/s的速率,作为词语“很少”的参考点。PCM的当前写入性能是10MB/s的速率,作为“读写”存储器存取类型的参考点。DRAM的当前写入性能是100MB/s的速率,作为词语“频繁”的参考点。因此,如果存储对象具有1MB/s或更低的写入频率,则该对象是“很少读写”存储器存取类型,如果存储对象具有5MB/s的写入频率,则该对象是“读写”存储器存取类型,如果存储对象具有30MB/s的写入频率,则该对象是“频繁读写”存储器存取类型。
下面的表2C示出了对于PCM技术的写入性能参数变为40MB/s的速率的示例。在该示例中,如果对象的写入频率是30MB/s,则该对象现在是“读写”存储器存取类型,而不是表2B中定义的“频繁读写”存储器存取类型。
存储对象写入速率 | 存储器存取类型 | NOR的候选者? | PCM的候选者? |
0MB/s | 只读 | 是 | 是 |
>0MB/s至1MB/s | 很少读写 | 是 | 是 |
>1MB/s至40MB/s | 读写 | 否 | 是 |
>40MB/s至100MB/s | 频繁读写 | 否 | 否 |
表2C
回到图6,如果处理逻辑确定存储对象的写入频率小于或等于PCM阈值(框601),则在框605处处理逻辑确定该存储对象的写入频率是否小于或等于NOR阈值。NOR阈值是NOR技术的当前写入性能速率。例如,NOR的当前写入性能速率为1MB/s。如果处理逻辑确定该存储对象的写入频率不小于或等于NOR阈值(框605),则在框607处处理逻辑识别该存储对象是要被存储于并且直接读取于PCM存储器的候选者。如果处理逻辑确定该存储对象的写入频率小于或等于NOR阈值(框605),则在框609处处理逻辑识别该存储对象是要被存储于并直接读取于PCM存储器和NOR存储器的候选者。
算法在这里一般地被认为是获得所想要的结果的行为或操作的自相容的序列。这些包括物理量的物理控制。虽然不是必须的,但这些量通常采用能被存储、转移、结合、比较以及其他操作的电或磁信号的形式。将这些信号表达为比特、值、元素、符号、字符、词语、数字及其类似,时常证明是便利的,尤其是对于通用的原因。所有的这些以及类似的词语是与恰当的物理量相关联的,只是应用于这些量的便利的标记。
除非以其他方式具体声明,从以下讨论中很明显的是,可以理解,在整个说明书讨论中使用例如“监视”、“存储”、“检测”、“使用”、“识别”、“标记”、“接收”、“载入”、“重新配置”、“格式化”、“确定”或其类似的词语来指代计算机、计算机***或类似的电子计算装置的行为和/或处理,所述计算机、计算机***或类似的电子计算装置将在计算机***注册表和/或存储器内的表示为例如电的物理量的数据处理和/或转变为类似地表示为在计算机***的存储器、注册表或其它这样的信息存储器、传输或显示装置中的物理量的其他数据。
本发明的实施例可以包括用于实施这里的操作的设备。该设备可以根据所想要的目的特定地构造,或者该设备可以包括通用计算装置,该通用计算 装置被存于该装置的程序选择性地激活或重新配置。这样的程序可以被存储于存储器媒介中,例如但不限于包括软盘、光盘、光盘只读存储器(CD-ROM)、磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、电可编程只读存储器(EPROM)、电可檫可编程只读存储器(EEPROM)、磁卡或光卡的任意类型的磁盘、或者适于储存电子指令且能与计算装置的***总线耦合的任意其他类型的媒介。
各种通用***可以使用根据这里教导的程序,或者可以为了方便构造更专用的设备来实施所期望的方法。用于各种这些***的所期望的结构将出现在下面的描述中。另外,本发明的实施例并不是以任何特定的程序语言作为参考描述的。各种程序语言可以用于实施这里所描述的本发明的教导。另外,应当理解,这里所描述的操作、能力以及特征可以用硬件(分立电路或集成电路)和软件的任意结合实施。
在前述的说明中,已经对本发明的具体实施例做了参考。然而在不偏离本发明更宽泛的精神和范围的情况下,显然可以做出各种修改和改变。因此,说明书和附图被认为是示例性的而不是限制性的。
Claims (12)
1.一种将存储对象从易失性存储器移动到非易失性存储器的方法,该方法包括:
监视对在易失性存储器中的存储对象的存储器存取以收集并创建与该存储器存取相关的分析数据,该分析数据包括所述存储对象的地址、所述存储对象多久被载入所述易失性存储器一次以及多久对所述存储对象写入一次;
基于所述分析数据来确定在所述易失性存储器中的存储对象是否是将要被存储在非易失性存储器中以及从所述非易失性存储器直接读取的候选者;以及
将存储对象候选者存储在所述非易失性存储器中以使得该存储对象从所述非易失性存储器中直接读取。
2.根据权利要求1所述的方法,其中监视对在所述易失性存储器中的存储对象的存储器存取包括:
监视页面表的活动;
在页面表活动中检测页面错误;以及
使用所述页面错误来识别将被载入到所述易失性存储器中的存储对象。
3.根据权利要求1所述的方法,其中确定在所述易失性存储器中的存储对象是否是将要被存储在所述非易失性存储器中以及从所述非易失性存储器直接读取的候选者包括:
基于多久对所述存储对象写入一次确定所述存储对象的写入频率,其中所述写入频率是所述存储对象在分析期内被写入的次数;
确定所述写入频率是否达到写入阈值;以及
基于所确定的所述写入频率达到所述写入阈值,识别所述存储对象是将要从所述非易失性存储器直接读取的候选者。
4.根据权利要求3所述的方法,其中确定所述写入频率是否达到所述写入阈值包括:
确定所述写入频率是否等于或小于相变存储器阈值,其中所述相变存储器阈值是相变存储器技术的当前写入性能速率;以及
基于所确定的所述写入频率等于或小于所述相变存储器阈值,识别所述存储对象是将要从所述非易失性存储器直接读取的候选者。
5.根据权利要求4所述的方法,该方法还包括:
确定所述写入频率是否超过或非非易失性存储器阈值,其中或非非易失性存储器阈值是或非存储器技术的当前写入性能速率;以及
基于所确定的所述写入频率超过所述或非非易失性存储器阈值,识别所述存储对象是将要从相变存储器直接读取的候选者。
6.根据权利要求5所述的方法,该方法还包括:
基于所确定的所述写入频率没有超过所述或非非易失性存储器阈值,则识别所述存储对象是将要从所述或非存储器和所述相变存储器中的至少一者直接读取的候选者。
7.根据权利要求3所述的方法,其中确定所述存储对象的写入频率包括:
将所述存储对象作为只读存储对象载入;
在一时间段内监视对所述存储对象写入的尝试,其中所述时间段是用户定义的时间段;以及
确定所述存储对象在所述时间段内被写入的次数。
8.根据权利要求1所述的方法,其中将所述存储对象候选者存储在所述非易失性存储器中以使得所述存储对象从所述非易失性存储器中直接读取包括:
根据所述分析数据重新配置***存储器,其中重新配置所述***存储器包括解压缩在所述非易失性存储器中的存储对象并且将该存储对象作为未压缩的存储对象存储在所述非易失性存储器中。
9.根据权利要求1所述的方法,其中将所述存储对象候选者存储在所述非易失性存储器中以使得所述存储对象从所述非易失性存储器中直接读取包括:
将所述分析数据格式化为用于重建***存储器的格式;以及
提供被格式化的数据以重建所述***存储器。
10.一种将存储对象从易失性存储器移动到非易失性存储器的***,该***包括:
非易失性存储器;
耦合到所述非易失性存储器的处理器,该处理器被配置成监视对在易失性存储器中的存储对象的存储器存取,创建与该存储器存取相关的分析数据,该分析数据包括所述存储对象的地址、所述存储对象多久被载入所述易失性存储器一次以及多久对所述存储对象写入一次;以及
基于所述分析数据来确定在所述易失性存储器中的存储对象是否是将要被存储在非易失性存储器中以及从所述非易失性存储器直接读取的候选者;以及
与所述处理器耦合的随机存取存储器,所述处理器将存储在所述随机存取存储器中的存储对象转移至所述非易失性存储器中,其中被转移的存储对象是从所述非易失性存储器中直接存取的。
11.根据权利要求10所述的***,该***还包括:
与所述处理器相关联的存储器管理单元,该存储器管理单元用于在所述存储对象在所述随机存取存储器中不可获得时产生页面错误,其中所述随机存取存储器使用所述页面错误来识别将被转移至所述非易失性存储器的一个或多个存储对象。
12.根据权利要求10所述的***,其中所述随机存取存储器还重新配置***存储器映射来将存储在所述随机存取存储器中的存储对象转移至所述非易失性存储器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/345,306 US20100169708A1 (en) | 2008-12-29 | 2008-12-29 | Method and apparatus to profile ram memory objects for displacment with nonvolatile memory |
US12/345,306 | 2008-12-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101770430A CN101770430A (zh) | 2010-07-07 |
CN101770430B true CN101770430B (zh) | 2013-06-19 |
Family
ID=42221049
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102123664A Expired - Fee Related CN101770430B (zh) | 2008-12-29 | 2009-11-12 | 分析移动到非易失性存储器的ram存储对象的方法和设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20100169708A1 (zh) |
JP (1) | JP5570790B2 (zh) |
CN (1) | CN101770430B (zh) |
DE (1) | DE102009051339A1 (zh) |
TW (1) | TWI501237B (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101612922B1 (ko) * | 2009-06-09 | 2016-04-15 | 삼성전자주식회사 | 메모리 시스템 및 메모리 시스템 관리 방법 |
EP2273373A1 (en) * | 2009-07-02 | 2011-01-12 | Vodafone Holding GmbH | Storing of frequently modified data in an IC card |
US8850151B2 (en) * | 2010-03-24 | 2014-09-30 | Apple Inc. | Hybrid-device storage based on environmental state |
US9465745B2 (en) * | 2010-04-09 | 2016-10-11 | Seagate Technology, Llc | Managing access commands by multiple level caching |
CN102693095B (zh) * | 2011-03-25 | 2014-12-31 | 国基电子(上海)有限公司 | 数据操作方法及数据操作装置 |
US9471622B2 (en) | 2012-04-30 | 2016-10-18 | International Business Machines Corporation | SCM-conscious transactional key-value store |
CN104380259B (zh) * | 2012-10-17 | 2018-09-21 | 华为技术有限公司 | 降低内存***功耗的方法和内存控制器 |
CN104216837A (zh) * | 2013-05-31 | 2014-12-17 | 华为技术有限公司 | 一种内存***、内存访问请求的处理方法和计算机*** |
EP3204859B1 (en) * | 2014-10-07 | 2020-12-02 | Google LLC | Methods and systems for cache lines de-duplication |
US10387315B2 (en) * | 2016-01-25 | 2019-08-20 | Advanced Micro Devices, Inc. | Region migration cache |
TWI585676B (zh) | 2016-03-18 | 2017-06-01 | 慧榮科技股份有限公司 | 資料儲存裝置、記憶體控制器及其操作方法 |
CN107203476B (zh) | 2016-03-18 | 2021-08-31 | 慧荣科技股份有限公司 | 数据储存装置、存储器控制器及其数据管理方法 |
KR102614083B1 (ko) * | 2016-08-31 | 2023-12-18 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
US10261876B2 (en) | 2016-11-08 | 2019-04-16 | Micron Technology, Inc. | Memory management |
US10649665B2 (en) | 2016-11-08 | 2020-05-12 | Micron Technology, Inc. | Data relocation in hybrid memory |
US10430085B2 (en) | 2016-11-08 | 2019-10-01 | Micron Technology, Inc. | Memory operations on data |
US10083751B1 (en) | 2017-07-31 | 2018-09-25 | Micron Technology, Inc. | Data state synchronization |
KR101851122B1 (ko) * | 2018-01-26 | 2018-04-24 | (주)베스트케이에스 | 페이지 테이블 기반의 데이터 관리 방법 |
US10916324B2 (en) | 2018-09-11 | 2021-02-09 | Micron Technology, Inc. | Data state synchronization involving memory cells having an inverted data state written thereto |
JP7013360B2 (ja) * | 2018-11-06 | 2022-01-31 | 株式会社東芝 | 情報処理装置、情報処理方法、およびプログラム |
US11436041B2 (en) | 2019-10-03 | 2022-09-06 | Micron Technology, Inc. | Customized root processes for groups of applications |
US11474828B2 (en) | 2019-10-03 | 2022-10-18 | Micron Technology, Inc. | Initial data distribution for different application processes |
US11599384B2 (en) | 2019-10-03 | 2023-03-07 | Micron Technology, Inc. | Customized root processes for individual applications |
US11429445B2 (en) | 2019-11-25 | 2022-08-30 | Micron Technology, Inc. | User interface based page migration for performance enhancement |
US12026387B2 (en) * | 2022-03-24 | 2024-07-02 | Advanced Micro Devices, Inc. | Page swapping to protect memory devices |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1677565A (zh) * | 2004-03-30 | 2005-10-05 | 三星电子株式会社 | 进行高速缓存读取的方法和器件 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4017177B2 (ja) * | 2001-02-28 | 2007-12-05 | スパンション エルエルシー | メモリ装置 |
JP2004272817A (ja) * | 2003-03-11 | 2004-09-30 | Ricoh Co Ltd | 画像メモリ制御方法 |
JP2005216053A (ja) * | 2004-01-30 | 2005-08-11 | Matsushita Electric Ind Co Ltd | 最適メモリ配置演算装置及び最適メモリ配置方法 |
US7257684B1 (en) * | 2004-05-25 | 2007-08-14 | Storage Technology Corporation | Method and apparatus for dynamically altering accessing of storage drives based on the technology limits of the drives |
JP4452158B2 (ja) * | 2004-11-10 | 2010-04-21 | シャープ株式会社 | 不揮発性メモリシステム |
JP4761980B2 (ja) * | 2005-09-13 | 2011-08-31 | 株式会社東芝 | 半導体集積回路装置 |
JP4528242B2 (ja) * | 2005-10-20 | 2010-08-18 | 富士通セミコンダクター株式会社 | メモリシステムおよびメモリシステムの動作方法 |
JP2007293604A (ja) * | 2006-04-25 | 2007-11-08 | Toshiba Corp | 情報処理装置およびプログラムロード方法 |
JP2008033788A (ja) * | 2006-07-31 | 2008-02-14 | Matsushita Electric Ind Co Ltd | 不揮発性記憶装置、データ記憶システム、およびデータ記憶方法 |
JP5224706B2 (ja) * | 2007-03-23 | 2013-07-03 | キヤノン株式会社 | 記憶装置及び記憶装置の制御方法 |
-
2008
- 2008-12-29 US US12/345,306 patent/US20100169708A1/en not_active Abandoned
-
2009
- 2009-10-30 DE DE102009051339A patent/DE102009051339A1/de not_active Withdrawn
- 2009-11-10 JP JP2009273923A patent/JP5570790B2/ja active Active
- 2009-11-12 CN CN2009102123664A patent/CN101770430B/zh not_active Expired - Fee Related
- 2009-11-26 TW TW098140389A patent/TWI501237B/zh active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1677565A (zh) * | 2004-03-30 | 2005-10-05 | 三星电子株式会社 | 进行高速缓存读取的方法和器件 |
Non-Patent Citations (1)
Title |
---|
US 6,072,745 A,2000.06.06,全文. |
Also Published As
Publication number | Publication date |
---|---|
DE102009051339A1 (de) | 2010-07-01 |
TWI501237B (zh) | 2015-09-21 |
US20100169708A1 (en) | 2010-07-01 |
JP5570790B2 (ja) | 2014-08-13 |
CN101770430A (zh) | 2010-07-07 |
JP2010157218A (ja) | 2010-07-15 |
TW201032232A (en) | 2010-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101770430B (zh) | 分析移动到非易失性存储器的ram存储对象的方法和设备 | |
US20210182166A1 (en) | Zoned namespace management of non-volatile storage devices | |
KR101562781B1 (ko) | 비휘발성 스토리지에 대한 셀프-저널링 및 계층적 일치성 | |
US20110107042A1 (en) | Formatting data storage according to data classification | |
US20090132621A1 (en) | Selecting storage location for file storage based on storage longevity and speed | |
RU2008140263A (ru) | Способы и устройства для упреждающего управления памятью | |
CN103270500A (zh) | 事务日志恢复 | |
US11676671B1 (en) | Amplification-based read disturb information determination system | |
CN104620230A (zh) | 管理存储器的方法 | |
US11989452B2 (en) | Read-disturb-based logical storage read temperature information identification system | |
CN113419675B (zh) | 用于存储器的写操作方法及读操作方法 | |
Nazari et al. | FRCD: Fast recovery of compressible data in flash memories | |
US11922067B2 (en) | Read-disturb-based logical storage read temperature information maintenance system | |
US11922019B2 (en) | Storage device read-disturb-based block read temperature utilization system | |
US11922020B2 (en) | Read-disturb-based read temperature information persistence system | |
US11929135B2 (en) | Read disturb information determination system | |
CN112000296A (zh) | 一种全闪存阵列中的性能优化*** | |
US11914494B2 (en) | Storage device read-disturb-based read temperature map utilization system | |
US11989441B2 (en) | Read-disturb-based read temperature identification system | |
US11983424B2 (en) | Read disturb information isolation system | |
US11907063B2 (en) | Read-disturb-based physical storage read temperature information identification system | |
US11995340B2 (en) | Read-disturb-based read temperature information access system | |
US11763898B2 (en) | Value-voltage-distirubution-intersection-based read disturb information determination system | |
US11928354B2 (en) | Read-disturb-based read temperature determination system | |
US11983431B2 (en) | Read-disturb-based read temperature time-based attenuation system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130619 Termination date: 20141112 |
|
EXPY | Termination of patent right or utility model |