CN101142557A - 具有基于自动页的ram遮蔽的计算设备及操作方法 - Google Patents

具有基于自动页的ram遮蔽的计算设备及操作方法 Download PDF

Info

Publication number
CN101142557A
CN101142557A CNA2006800084123A CN200680008412A CN101142557A CN 101142557 A CN101142557 A CN 101142557A CN A2006800084123 A CNA2006800084123 A CN A2006800084123A CN 200680008412 A CN200680008412 A CN 200680008412A CN 101142557 A CN101142557 A CN 101142557A
Authority
CN
China
Prior art keywords
page
equipment
leaf
memory
tabulation
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
CNA2006800084123A
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.)
Nokia Oyj
Original Assignee
Symbian Software Ltd
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 Symbian Software Ltd filed Critical Symbian Software Ltd
Publication of CN101142557A publication Critical patent/CN101142557A/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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • 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
    • 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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Power Sources (AREA)

Abstract

在诸如ROM的相对低速的非易失性存储器中为计算设备配备了可执行程序,可以通过遮蔽(那些程序借此被拷贝到诸如RAM的相对高速的易失性存储器中的一种过程)来提高设备性能。遮蔽通常是效率低的,因为被拷贝的代码使用太不频繁而不能受益于该过程,从而浪费处理时间和存储器。本发明通过剖析或通过该设备工作的密切知识来确定低速存储器的哪些部分最频繁被存取,然后仅遮蔽保证经常使用的可执行程序的那些页。在优选实施例中,最频繁使用的代码区域被一起群集在非易失性存储器的某些页上而最不频繁使用的代码区域则被群集在非易失性存储器的其它页上。

Description

具有基于自动页的RAM遮蔽的计算设备及操作方法
技术领域
本发明涉及计算设备,且特别涉及提高计算设备性能的改进的方法,其中该计算设备执行在相对低速的存储器中存储的代码。
背景技术
本文所用的术语“计算装置”将被广泛地理解为覆盖任何形式的电计算装置并且包括:数据记录装置、任意类型或形式的计算机(包括手持和个人计算机,例如个人数字助理(PDA))、任何形状因子的通信装置(包括:移动电话,智能电话,将通信、图像记录和/或重放、以及计算功能结合到单个装置中的通信器)、以及其他形式的无线和有线信息装置(包括数字照相机、MP3和其他音乐播放器、以及数字收音机)。
现代计算设备包括多种类型的存储器。这些类型的存储器中的一些(诸如传统的静态和动态RAM(随机存取存储器))是高速但易失性的存储器;仅当设备被上电时RAM的内容才被保留在那个存储器中。其它类型的存储器(诸如ROM(只读存储器)和闪存)速度明显低于RAM但却是非易失性的;这些类型的存储器的内容可以用于永久性存储,这是因为甚至在设备断电时内容也被保留。
广泛认可的是,作为生产过程的一部分,需要在一些类型的永久性非易失性存储器中为计算设备配备程序,这些程序是设备正常运行所必要的。这种程序可以是在设备被上电时运行的引导程序的一部分,或它们可以提供经常被请求的操作系统服务,或它们可以是重要的应用程序。因此它们需要被配备在非易失性存储器(诸如,ROM或闪存)中。
然而,也被广泛认可的是,这种非易失性存储器在操作中速度明显低于RAM,且这意味着执行非易失性存储器中的程序使设备不能以最佳速度操作。因为用户对他们的计算设备操作的速度期望值非常高,所以制造商已经开发了一种被称为“遮蔽(shadowing)”的技术,所述遮蔽设法减轻这一困难。遮蔽表示将可执行代码从一种类型的存储器拷贝到另一种类型的存储器,以便提高设备的性能。这最频繁地用在将系统软件从相对低速的XIP(就地执行)ROM拷贝到相对高速的RAM这一环境中。
在用于执行虚拟存储寻址的首批CPU变得广泛可用时,该方法首先在20世纪80年代中期的大量销售的计算设备市场中变得突出。这些CPU通常用于将通常使用的BIOS(基本输入输出系统)代码设置在ROM存储器中的设备中。用于将虚拟存储地址映射到不同的物理存储位置的这种CPU的能力意味着,已可以将相对低速的ROM BIOS的全部内容拷贝到更快速的RAM中,然后重新映射BIOS代码的虚拟地址以指向RAM中的副本。
本领域技术人员将知道的是,使用中的所有可寻址存储位置的总和被称为虚拟存储器,并且现代计算设备包含虚拟存储页到物理存储页的映射,保留于由存储器管理单元或MMU所维护的页表中。通过改变这些页表的内容,可以使一组虚拟存储地址指向可寻址物理存储器的任何期望区域。
尽管将ROM BIOS的内容拷贝到RAM中的过程花费一些时间,且该方法可论证地浪费了有用的存储器(因为可执行代码正被复制),但将可执行代码从相对低速存储器遮蔽到较高速存储器的这个过程的确改善了计算设备的整体性能,这是因为在设备的正常操作过程中BIOS代码已被如此频繁地执行:实质上,该设备已不再由于需要对每一个BIOS例程都访问ROM而被降速。
为提高性能而遮蔽可执行对象(executable)明确地是用于电池操作的移动计算设备(诸如,蜂窝式移动电话)的操作系统的特征。存在许多种方法来进行可用在这种设备中的遮蔽。这些方法中的两种在Micron技术的论文、标题为“Comparing XIP and CodeShadowing Architecture for 2.5G Cellular Phones”中被引用:
“可以用两种方式中的一种完成代码遮蔽:
·在引导时拷贝所有代码区域...代码空间的100%的开销被保留在RAM空间中以执行应用程序。
·按需拷贝(copy-on-demand)应用程序以用于执行...这几乎减少RAM空间的开销两倍(代码的50%需要被保留在RAM空间中),但也增加了动态下载的复杂性和等待时间。”(来自http://www.micron.com/publications/wireless3q034q03.html)
遮蔽的第一种类型的实例可以在MicrosoftTM的Windows CETM操作系统的某些实施中见到,其中:
“全部映像都被存储在闪存中...并在系统初始化过程中从闪存中拷贝到RAM中,然后从RAM中运行。”
(见http://www.intel.com/design/flcomp/applnots/29223701.pdf)
上述遮蔽的第二种变型可在Symbian OSTM操作系统(来自Symbian Software Limited的用于移动电话的高级操作系统)的某些实施中找到。该操作系统通过只把经常存取的可执行文件从相对低速的存储器拷贝到RAM(从中,文件以较高速度执行)来加速设备的操作。在设备引导时间而不是在设备操作过程中按需来执行该拷贝过程。
尽管上面描述的不同方法(遮蔽整个操作系统映像或者整个可执行文件)已知用于提高整体系统性能,但它们也广泛地被认为具有某些缺点:
·它们并不是有效率存储的。典型地,仅较小百分比的拷贝的代码被足够频繁地使用来保证遮蔽,但全部映像(对于WindowsCE)或可执行文件(对于Symbian OS)却都被拷贝,且这占用有价值的RAM。
·它们并不是省时的一这是从先前的缺点中得出的:拷贝未被足够频繁使用以保证遮蔽的代码可能降低该系统的速度。
在设备首先被接通时的引导进程中时间效率低是一个特别关注的问题。这里的优化对于移动的电池操作的设备(诸如,智能电话)被认为是尤为重要的,因为用户期望这些设备在上电时以最小的延迟变得充分运行。例如,在蜂窝式移动电话的情况下,在实际接通设备到能够打电话的长时段之间一般被认为使用户非常无奈,以及可能(例如在紧急情况下)引起用户高度关注。
然而,操作系统映像遮蔽和可执行文件遮蔽在这方面上都是次优选的,并为改善引导时间提供了清楚范围:
·作为引导进程的一部分的遮蔽整个操作系统映像是次优选的,因为并不是所有实际上被拷贝的代码都需要引导该设备。
·可执行文件遮蔽不仅浪费时间来遮蔽可执行文件的未使用部分,而且直到文件系统被初始化并准备使用时才能开始工作。因此,它可能仅用于引导进程的一部分。值得指出的是,以每个可执行对象为基础来遮蔽应用程序代码,这也可能降低应用程序启动速度。
因此,虽然遮蔽是被证实的用于提高把可执行代码存储在较低速类型的存储器中的计算设备的性能的方法,但是至今没有用于优化该特定功能的公开的方法。
发明内容
因此,本发明的目的是提供一种RAM遮蔽的改进形式。
根据本发明的第一方面,提供一种操作计算设备的方法,它包括把非易失性存储器中设置的一个或多个存储页遮蔽到相对更快速的易失性存储器中,并将所遮蔽的页映入先前与非易失性存储器中所述页相关的虚拟存储地址中。
根据本发明的第二方面,提供了一种计算设备,包括遮蔽装置,用于把非易失性存储器中设置的一个或多个存储页遮蔽到相对更快速的易失性存储器中,并将所遮蔽的页映入先前与非易失性存储器中的所述页相关的虚拟存储地址中。
根据本发明的第三方面,提供了一种用于计算设备的操作系统,用于使根据第二方面的计算设备根据第一方面的方法进行操作。
附图说明
现在将参考附图仅通过另外的实例描述本发明的实施例,其中:
图1示出了用于选择函数以遮蔽到RAM的进程;
图2示出了用于确定哪些所选函数可有益地被遮蔽到RAM的进程;
图3示意性示出了用于实施本发明的设备的ROM映像;
图4示出了用于遮蔽图3中示出的ROM映像的函数的进程;
图5示出了用于在计算设备中实施本发明的进程,该计算设备的操作系统一经要求就能够遮蔽可执行文件,以及
图6示出了本发明的一个优选实施例,其中最频繁地从低速存储器中加载的函数被配置成位于相同的页中。
具体实施方式
本发明基于代替遮蔽整个操作系统映像或者整个可执行文件,相反却按页来遮蔽可执行对象(executable)这一基础。这是特别有利的,因为按页遮蔽不仅去除了许多拷贝不足够频繁使用的代码以保证遮蔽的需要,而且优化了遮蔽的存储器使用和时间开销。此外,因为本发明并不以任何方式依赖编档系统(filing system),所以就可以在整个引导进程中使用它。
在本发明的一个实施例中,设想了能够按照可在系统启动时执行的频繁使用的代码的页进行RAM遮蔽的方法。在本实施例中的第一步骤是确定哪些代码区域需要优化。可用于实现这一点的方法可以包括:
a)人工选择:具有该系统的足够知识的本领域技术人员很可能知道哪些代码区域将会受益于布局优化。
b)自动选择:剖析器(profiler)可用于寻找低速存储器中最频繁被存取的代码区域。
理想地,专门的剖析器应该用于自动选择。这是因为存在传统剖析器仅会找到最经常被存取的那些代码区域的风险,且这不一定是待优化的代码。例如,其中,在程序的执行过程中仅从低速存储器中存取代码一次,然后该代码就在相对频繁的基础上重复运行,存取这个代码的后续努力将在CPU高速缓存器中找到它绝不是不可能的。因此,就不会有从低速存储器中进行后续存取的需要,这是因为它可以从CPU高速缓存器中运行。所以,遮蔽这样的代码将是次优选的。该过程在图1中示出。因此,使用的剖析器的类型应该仅考虑直接从低速存储器中进行的代码存取:本质上,这就等同于伴随有高速缓存缺失的存取的子集。
该第一步的输出,通过人工选择还是通过使用剖析器而自动执行是以函数或过程列表的形式(在下文中简称为函数)。对于每一个,除函数本身的名称外还确定可执行对象的名称或其所位于的库,如图2中所示。然后可以处理该原始函数列表以便根据对每个函数的存取的数量对其进行排序。
优选地,函数名称而不是实际地址用于该实施例中,这是因为只要为系统构造新的二进制映象,则因为围绕其的代码大小将会已经改变,给定函数的地址就相对可能改变。相反,对于函数名称,以及可执行对象的名称或其所处的库,它们被修改是很少见的。
如图2中所示,下一个步骤是,对于该系统的给定构造并把在上面第一步骤中得到的函数的有序列表作为输入,确定最通常被访问的函数所处的页。
设备中的每个函数的大小和存储页的大小都是已知的。因此函数列表可被安排在一系列可能的页中,并且这些可以按照从最频繁被访问到最不频繁被访问的顺序排列。
本领域技术人员将意识到的是,对于每个可能的页来说,在充分了解每个页中的代码和所述的计算设备的硬件规格说明(诸如用于读取和写入的可用存储器的各种类型(包括时钟频率、存取时间、等待状态和数据传送速度)、该设备上的任一CPU的规格说明(包括时钟频率和高速缓存器规格说明)的情况下,任何页现在都能够计算对快速存储器中页的所有存取的总时间和对低速存储器中页的所有存取所花费的总时间之间的差;这是确定性的数学操作。如果该时间差比用于将页从低速存储器拷贝到快速存储器中所花费的时间要大,则已知的是,遮蔽这样的页将会提高系统的性能。
如果该设备中的可用RAM稀缺,以及不可能遮蔽如上被确定来提供性能优势的所有那些页,则系统设计师将拥有所需的信息来为适当数量的被遮蔽的页设置数字,可能选择所分级的那些页以提供最大性能优势。记住,该优化将在该设备的设计过程中被实现,可选地决定增加系统中RAM的数量,如果性能优势能保证这一点话。
本领域技术人员应该意识到的是,用于嵌入式系统的可执行ROM映像的代表性构造过程包括为获得关于那个映像的符号信息所需的所有必要工具。这又提供了映像中的每个函数的地址。从正在使用的操作系统的存储器设置的这些地址和知识中,就可能获得页的地址。此外,对于本领域技术人员来说,无论何时建立新的映像,写入将自动确定地址的工具不是过度复杂的操作。以这种方式,确定将遮蔽哪些页的过程可完全自动化。
一旦将被遮蔽的页的详细资料(details),连同ROM本身的大小一起都是已知的,那么就可能在有足够大小的ROM映像中的代码的末端分配一些未使用的空间以保留将被遮蔽的页的地址阵列,如图3中所示。需要指出的是,几乎所有计算设备中的ROM都具有一些未使用的空间,因此对于ROM来说如此全满以至没有足够空间用于这种类型的小页阵列是很少见的。同样,如果在ROM映像中没有足够的空间用于保留该地址阵列,则若性能优势保证这一点的话也可以增加ROM映像的大小。
最后,所构建的ROM映像、其符号信息、和常见函数的列表被输入到实用程序中。由实用程序使用该符号信息和常见函数的列表来构造如上所述的将被遮蔽的页的阵列,且该信息被插入ROM映像的预分配区域中。写入这种程序对本领域技术人员来说并不认为是过度复杂的。在ROM中的预定位置处存储该阵列的大小和指向其起始地址的指针。有代表性地,这可以在由引导程序代码使用的数据区域中。这仅是几个字节代码的开销,因此并不引起任何性能问题。
在设备的使用中,只要该设备被上电,在ROM映像中存储的页的阵列就在引导进程的早期阶段被检查。当找到有效页地址时,引导进程就调用相关的遮蔽API以将这些页从ROM拷贝到RAM,然后就使存储器管理程序重新映射它们的虚拟地址。在图4中示出了该过程。一旦该过程已经完成,对相关代码的存取将总是发生在相对快速的RAM而不是在相对低速的ROM中。因此,以优化的方式且没有上述的性能损失来为设备提供遮蔽效果。
每当建立新的ROM映像时,页中的映像大小和函数位置很可能改变。因此,确定最通常被访问的函数所位于的页的步骤(包括:页的大小和函数,分配足够大小的ROM映像中的代码的末端处一些未使用空间以保留将被遮蔽的页地址的阵列,以及将该地址阵列插入ROM映像的预分配区域)可被重复,以便生成可被再次最佳地遮蔽的修正映像。
然而,上述的第一步骤仅在计算设备的设计或体系结构中存在较大改变(该改变可能导致频繁受访问的函数的列表的改变)时才需要被重复。
根据本发明的第二实施例,可以修改上述方法,使得它可用于其操作系统一经要求就遮蔽可执行文件的计算设备,这一点在上面提及的Micron论文中公开。这种类型的遮蔽能够合理地独立使用或是除在与任何可执行对象和应用程序(后来才要求被加载)相关的引导过程期间所要求使用的代码遮蔽外也被使用。下面将参考图5描述后一种变型。
在本发明的该实施例中,基本上,上述进程的开始阶段被分成两个部分。剖析(profile)引导进程揭示了哪个代码需要被遮蔽以优化启动时的性能;剖析随后被加载的应用程序揭示了其代码的哪些部分需要被遮蔽。因此开始阶段的输出是用于优化该引导进程的函数和过程的第一列表与用于待被遮蔽的每个应用程序的函数和过程的第二列表的结合。这在图5中的步骤10至步骤14中示出。
本实施例的下一阶段继续如上所述的由第一实施例的第一步骤生成的列表。然而,在该第二实施例中,应用程序的列表在图5的步骤16中被过滤以保证它们在启动时不复制将被遮蔽的页的列表中的任何条目。
在该实施例中,有必要不仅为在启动时将被使用的页的地址阵列,而且为也将被遮蔽的每个应用程序的单独阵列分配ROM中的空间。这在图5的步骤18中示出。这些后面的阵列可通过应用程序名称而单独被识别:紧挨在用于优化启动的阵列之后存储具有起始地址和长度的索引是可用于该目的的许多可能方法中的一种。然而,根据其设计,用于构造将被遮蔽的页的阵列的实用程序可能需要被修改以应付生成ROM的多个表。
如第一实施例中那样,在设备被上电时,所生成的用于引导进程的页的阵列被检验并起作用。然而,在该实施例中,设备中的应用程序加载器也被修改,以便其对于每个应用程序都检查是否已经为其构造了页阵列。在相关期限(term)中,为实施该检查而花费的时间是可忽略的。如果发现阵列对任一应用程序都存在,且如果那个阵列包含有效的页地址,则载入器调用有关的遮蔽API以将这些页从ROM拷贝到RAM并使存储器管理程序重新映射其虚拟地址,如在图5中的步骤20所示。与在引导期间被遮蔽的那些页一样,这将保证对相关代码的存取将总是发生在RAM而不是ROM中;再一次,该系统被提供了遮蔽效益,而没有现有技术的性能损失。
本发明的该实施例的可能优化是部分遮蔽的应用程序的终止伴随着当该应用程序被加载时所映射的存储页的释放,如在图5中的步骤22所示。
本发明的所有方面的进一步优化也都是可能的。例如,那些函数和过程(其保证通过参考从较低速存储器中最频繁被存取的那些函数和程序的列表上的排序而被遮蔽)的严格确定可能被放宽以考虑应用于存储页的最佳适配限制,使得太大而不适合页中的剩余空间的函数被忽略(pass over)以支持将会适合的那些函数。
参考图6,特别关注的一种优化是安排代码的布局,使得最频繁地从低速存储器中载入的、并因此从被遮蔽中得到最多利益的那些区域位于相同的页中。需要特别指出的是,该优化并不与已知的代码优化相同,已知的代码优化是基于局部性(locality)的现象,过去三十年都在研究它。局部性可以被定义为“在程序执行期间存储器引用(memory reference)倾向于被聚集在小的存储区域中的现象”(来自在第25届年度关于微型体系结构内容表的国际研讨会的会议录中由Youfeng Wu提出的“Ordering functions for improvingmemory reference locality in a shared memory multiprocessorsystem”,1992)。
上面由Youfeng Wu提供的论文公开了建立编译器的方法,其增加了程序中的局部性的数量。已知的是,随着伴随的性能方面的实质改善,增加的局部性可以导致高速缓存缺失和页错误的降低。
然而,优化函数布局使得被顺序存取的那些函数在存储器中彼此邻近或邻接与优化函数布局使得从低速存储器中最频繁存取的那些函数彼此邻近是非常不同的操作类型。前者的优化取决于空间测量,而在严格对比之下,后者的优化则取决于时间测量。
这两种类型的优化可能彼此具有相互影响且这是为什么不同的专门剖析工具可能被认为适合于用于优化遮蔽的原因。然而,因为高速缓存通常比遮蔽提供更大的性能优势,对于更好的高速缓存性能的空间优化应当优先于用于更高效的遮蔽的时间优化。数学模拟或测试的迭代过程因此可能伴随优化的每个循环以保证性能增加而未疏忽地变得降级。
本领域技术人员将理解的是,为了使从低速存储器中最频繁被加载的那些区域位于相同页,布局代码不仅对实施代码遮蔽的系统有益,而且无疑也对实施基于页的存储器管理的任何系统有益。
从该说明书中将注意到,对于借助于专业软件工程工具(诸如,剖析器、ROM分析器和性能模拟器)制造结合本发明的计算设备来说可以认为是有利的。也需要理解的是,在这种情况下,计算设备和用于生产该设备的任意这种工程工具都被认为落入本发明的范围内。
本发明提供超越遮蔽的已知方法的多个优点,包括:
·用于遮蔽基于XIP ROM的系统中的所有类型的可执行对象的存储高效方法。利用Symbian OSTM操作系统的实际实验已经显示,按页遮蔽而不是按文件遮蔽降低了大约10的因数的RAM需求,而在设备的性能方面并没有明显降低
·当与基于文件的调页方法相比较时,优化并不要求存在文件系统并因此可以在引导进程中更早地被启动,从而导致更快速的设备引导时间
·基于页的遮蔽比基于文件的遮蔽更快,这是因为它并不需要调用任何文件系统代码
·当与基于操作系统映像的调页方法相比较时,不需要拷贝并不保证遮蔽的页;因此,RAM开销较小且速度也更快
·把从低速存储器中频繁被存取的代码群集到页的共同组中也可以使得执行基于页的存储器管理程序的任何系统受益。
尽管已经参考特定实施例描述了本发明,但应该理解,在由所附权利要求限定的本发明的范围内可以实施各种修改。

Claims (33)

1.一种操作计算设备的方法,包括:将设置在非易失性存储器中的一个或多个存储页遮蔽到相对更快速的易失性存储器中,并将所遮蔽的页映射到先前与所述非易失性存储器中的所述页相关联的虚拟存储地址中。
2.根据权利要求1所述的方法,其中,从包括那些函数和过程的名称的列表中确定所述将被遮蔽的页,所述那些函数和过程的名称基于所述非易失性存储器中的所述存储页的存取频率而被排序。
3.根据权利要求1或2所述的方法,其中,以固定位置在所述设备的非易失性存储器中存储所述将被遮蔽的页的详细资料。
4.根据权利要求1或2所述的方法,其中,所述将被遮蔽的页的详细资料连同到被存储在固定位置的所述详细资料的所述位置的指针一起被存储在所述设备的非易失性存储器中的可变位置。
5.根据权利要求2至4中任一项所述的方法,其中,参考以下任意一个或多个而构造所述列表:
a.在所述设备上电时启动的引导进程;
b.一个或多个可执行对象;或
c.所述设备的一般用户的典型使用模式。
6.根据权利要求5所述的方法,其中,与每个可执行对象相关的所述页被存储在链表中或被索引引用。
7.根据权利要求5或6所述的方法,应用于一个或多个可执行对象,其中,用于可执行对象的系统加载器检索用于每个可执行对象的将被遮蔽的任何页的所述详细资料并安排如此指定的所述页的所述遮蔽。
8.根据权利要求5所述的方法,应用于上电时启动的所述引导进程或应用于一般用户的典型使用模式,其中,所述引导进程包括用于检索所述将被遮蔽的页的所述详细资料和如此指定的所述页的所述遮蔽的方式。
9.根据权利要求5至8中任一项所述的方法,其中,当所述列表从选项a、b或c中的一个以上的组合中被构造时,所述列表被设置成包括相互排斥的函数。
10.根据权利要求5至7中任一项或根据当从属于权利要求5至7中任一项时的权利要求9所述的方法,其中,从可执行对象中遮蔽的那些页在所述可执行对象终止时被释放。
11.根据权利要求2至10中任一项所述的方法,其中,基于所述体系结构的知识和所述计算设备的设计,所述列表通过人工过程被确定。
12.根据权利要求2至10中任一项所述的方法,其中,所述列表由用于识别从非易失性存储器中最频繁存取的那些页的剖析器确定。
13.根据权利要求2至12中任一项所述的方法,其中,通过参考下列因素中的任意一项或多项而编辑所述列表:
a.在所述设备上使用的所述存储页的大小;
b.所述列表的所述函数和过程的大小;
c.所述函数和过程通常所要求的CPU周期的数量;
d.所述函数和过程被引用的频率;
e.在所述设备上可用的各种类型的存储器的规格说明,
包括但不限于用于读取和写入的存储空间、时钟频率、存取时
间、等待状态和数据传送速度;
f.所述设备上的任一CPU的所述规格说明,包括时钟频率和高速缓存器规格说明;
g.在任一页中的剩余空间;
h.从所述设备的非易失性存储器的所述内容的先前构造中获得的符号信息。
14.根据权利要求13所述的方法,其中,通过自动工具、参考所述因素构造所述列表。
15.根据前述权利要求中任一项所述的方法,其中,被确定从所述非易失性存储器中最频繁存取的函数被集中到页中。
16.根据前述权利要求中任一项所述的方法,其中,确定与维持非易失性存储器中邻近位置处所述一个或多个页中的任一页相比,遮蔽易失性存储器中的所述一个或多个页中的任一页是否为所述设备提供任何性能优势,以及如果确定没有性能优势,或所述设备的性能被降低,那么所述一个或多个页中的任一页就不被遮蔽到易失性存储器中。
17.根据权利要求13所述的方法,其中,如果所述将被遮蔽的页不能在可用存储器中被容纳,则增加所述设备上的所述可用存储器的大小。
18.一种计算设备,包括遮蔽装置,用于将在非易失性存储器中设置的一个或多个存储页遮蔽到相对更快速的易失性存储器中,并将所遮蔽的页映射到先前与所述非易失性存储器中的所述页相关联的虚拟存储地址中。
19.根据权利要求18所述的设备,其中,所述遮蔽装置被设置成用于编辑包括那些函数和过程的名称的列表,所述那些函数和过程的名称基于所述非易失性存储器中的所述存储页的存取频率而被排序。
20.根据权利要求18或19所述的设备,其中,所述将被遮蔽的页的详细资料被存储在所述设备的非易失性存储器中的固定位置。
21.根据权利要求18或19所述的设备,被设置成用于将所述将被遮蔽的页的详细资料连同被存储在固定位置的所述详细资料的所述位置的指针一起存储在所述设备的非易失性存储器中的可变位置。
22.根据权利要求18至21中任一项所述的设备,被设置成用于参考以下任意一个和多个来构造所述列表:
a.在所述设备上电时启动的引导进程;
b.一个或多个可执行对象;或
c.所述设备的一般用户的典型使用模式。
23.根据权利要求22所述的设备,其中,与每个可执行对象相关的所述页被设置成存储在链表中或将由索引来引用。
24.根据权利要求22或23所述的设备,应用于一个或多个可执行对象,其中,用于所述可执行对象的系统加载器被设置成用于检索用于每个可执行对象的将被遮蔽的任何页的所述详细资料并安排如此指定的所述页的所述遮蔽。
25.根据权利要求22所述的设备,应用于上电时启动的引导进程或应用于一般用户的典型使用模式,其中,所述引导进程包括用于检索所述将被遮蔽的页的所述详细资料和如此指定的所述页的所述遮蔽的方式。
26.根据权利要求22至25中任一项所述的设备,其中,当所述列表从选项a、b或c中的一个以上的组合中被构造时,所述列表被设置成包括相互排斥的函数。
27.根据权利要求22至24中任一项或在从属于权利要求22至24中任一项时的权利要求26所述的设备,被设置成在所述可执行对象终止时从可执行对象中释放被遮蔽的那些页。
28.根据权利要求19至27中任一项所述的设备,包括:剖析器,用于通过识别从非易失性存储器中最频繁存取的那些页来编辑所述列表。
29.根据权利要求19至28中任一项所述的设备,被设置成用于参考任意一个或多个下述因素来编辑所述列表:
a.在所述设备上使用的所述存储页的大小;
b.所述列表的所述函数和过程的大小;
c.所述函数和过程通常所要求的CPU周期的数量;
d.所述函数和过程被引用的频率;
e.可用在所述设备上的所述各种类型的存储器的规格说明,包括但不限于用于读取和写入的存储空间、时钟频率、存取时间、等待状态和数据传送速度;
f.所述设备上的任一CPU的规格说明,包括时钟频率和高速缓存器规格说明;
g.在任一页中所剩余的空间;
h.从用于所述设备的非易失性存储器的所述内容的先前构造中获得的符号信息。
30.根据权利要求29所述的设备,包括用于参考所述因素来编辑所述列表的自动工具。
31.根据权利要求18至30中任一项所述的设备,被配置成把被确定从所述非易失性存储器中最频繁存取的函数集中到页中。
32.根据权利要求18至31中任一项所述的设备,被设置成用于确定与维持非易失性存储器中邻近位置处的所述一个或多个页中的所述任一页相比,遮蔽易失性存储器中的所述一个或多个页中的任一页是否为所述设备提供任何性能优势,以及如果确定没有性能优势,或所述设备的所述性能被降低,那么所述一个或多个页中的所述任一页就不被遮蔽到易失性存储器中。
33.一种用于使根据权利要求18至32中任一项所述的计算设备根据权利要求1至17中任一项所述的方法进行操作。
CNA2006800084123A 2005-03-15 2006-03-15 具有基于自动页的ram遮蔽的计算设备及操作方法 Pending CN101142557A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB0505289.9A GB0505289D0 (en) 2005-03-15 2005-03-15 Computing device with automated page based rem shadowing and method of operation
GB0505289.9 2005-03-15

Publications (1)

Publication Number Publication Date
CN101142557A true CN101142557A (zh) 2008-03-12

Family

ID=34509092

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2006800084123A Pending CN101142557A (zh) 2005-03-15 2006-03-15 具有基于自动页的ram遮蔽的计算设备及操作方法

Country Status (6)

Country Link
US (1) US20090063810A1 (zh)
EP (1) EP1861782A1 (zh)
JP (1) JP2008537618A (zh)
CN (1) CN101142557A (zh)
GB (2) GB0505289D0 (zh)
WO (1) WO2006097726A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102855137A (zh) * 2011-06-28 2013-01-02 西门子公司 用于自动化部件的编程的方法和程序设计系统

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5207434B2 (ja) * 2007-03-05 2013-06-12 株式会社メガチップス メモリシステム
US8225069B2 (en) * 2009-03-31 2012-07-17 Intel Corporation Control of on-die system fabric blocks
JP2011107925A (ja) * 2009-11-17 2011-06-02 Ubiquitous Corp プログラム、制御方法、並びに制御装置
CN103827776B (zh) 2011-09-30 2017-11-07 英特尔公司 通过pci高速组件减少功耗的活动状态功率管理(aspm)
US9098302B2 (en) * 2012-06-28 2015-08-04 Intel Corporation System and apparatus to improve boot speed in serial peripheral interface system using a baseboard management controller
US9703697B2 (en) 2012-12-27 2017-07-11 Intel Corporation Sharing serial peripheral interface flash memory in a multi-node server system on chip platform environment
CN105792751B (zh) 2013-11-27 2019-07-05 雅培糖尿病护理公司 用于修正基于永久rom的编程的系统和方法
AU2015349931B2 (en) 2014-11-19 2020-08-13 Abbott Diabetes Care Inc. Systems, devices, and methods for revising or supplementing ROM-based RF commands
US10353816B2 (en) 2015-01-28 2019-07-16 Hewlett-Packard Development Company, L.P. Page cache in a non-volatile memory
US10452561B2 (en) * 2016-08-08 2019-10-22 Raytheon Company Central processing unit architecture and methods for high availability systems
TWI647567B (zh) * 2017-12-13 2019-01-11 國立中正大學 使用記憶體位址定位冷熱存取區間之方法
US11237839B2 (en) * 2020-06-19 2022-02-01 Dell Products L.P. System and method of utilizing platform applications with information handling systems
US11340937B2 (en) * 2020-06-24 2022-05-24 Dell Products L.P. System and method of utilizing platform applications with information handling systems
US11836499B2 (en) * 2021-12-16 2023-12-05 Dell Products L.P. System and method of operating system executables with information handling systems (IHS)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4277826A (en) * 1978-10-23 1981-07-07 Collins Robert W Synchronizing mechanism for page replacement control
US4481573A (en) * 1980-11-17 1984-11-06 Hitachi, Ltd. Shared virtual address translation unit for a multiprocessor system
US4410941A (en) * 1980-12-29 1983-10-18 Wang Laboratories, Inc. Computer having an indexed local ram to store previously translated virtual addresses
US5063011A (en) * 1989-06-12 1991-11-05 Hoeganaes Corporation Doubly-coated iron particles
US5603011A (en) * 1992-12-11 1997-02-11 International Business Machines Corporation Selective shadowing and paging in computer memory systems
US5721917A (en) * 1995-01-30 1998-02-24 Hewlett-Packard Company System and method for determining a process's actual working set and relating same to high level data structures
US5819087A (en) * 1996-07-19 1998-10-06 Compaq Computer Corporation Flash ROM sharing between processor and microcontroller during booting and handling warm-booting events
US5951685A (en) * 1996-12-20 1999-09-14 Compaq Computer Corporation Computer system with system ROM including serial-access PROM coupled to an auto-configuring memory controller and method of shadowing BIOS code from PROM
US6862651B2 (en) * 2000-12-20 2005-03-01 Microsoft Corporation Automotive computing devices with emergency power shut down capabilities
GB2404748B (en) * 2003-08-01 2006-10-04 Symbian Ltd Computing device and method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102855137A (zh) * 2011-06-28 2013-01-02 西门子公司 用于自动化部件的编程的方法和程序设计系统
CN102855137B (zh) * 2011-06-28 2016-09-28 西门子公司 用于自动化部件的编程的方法和程序设计系统
US9910418B2 (en) 2011-06-28 2018-03-06 Siemens Aktiengesellschaft Method and programming system for programming an automation component

Also Published As

Publication number Publication date
WO2006097726A1 (en) 2006-09-21
GB2424294A (en) 2006-09-20
US20090063810A1 (en) 2009-03-05
EP1861782A1 (en) 2007-12-05
JP2008537618A (ja) 2008-09-18
GB0605216D0 (en) 2006-04-26
GB0505289D0 (en) 2005-04-20

Similar Documents

Publication Publication Date Title
CN101142557A (zh) 具有基于自动页的ram遮蔽的计算设备及操作方法
KR101288408B1 (ko) 플래시 메모리 시스템의 고속 웨이크-업을 용이하게 하는 방법과 시스템
US8417893B2 (en) Memory mapping techniques
CN108710578B (zh) 基于闪存的数据存储方法和装置
CN100492322C (zh) 非易失性存储系统中的损耗平衡
CN110908925B (zh) 高效能垃圾收集方法以及数据存储装置及其控制器
CN100538641C (zh) 操作计算装置的方法
Kwon et al. Swap space management technique for portable consumer electronics with NAND flash memory
US8930732B2 (en) Fast speed computer system power-on and power-off method
CN101634967A (zh) 用于闪存的区块管理方法、储存系统与控制器
TWI437569B (zh) 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器
Choudhuri et al. Performance improvement of block based NAND flash translation layer
US20080195854A1 (en) Electronic Systems Using Flash Memory Modules as Main Storage and Related System Booting Methods
CN101661431B (zh) 用于快闪存储器的区块管理方法、快闪储存系统及控制器
KR101392062B1 (ko) 고속 컴퓨터 시스템 파워 온 및 파워 오프 방법
CN101876927A (zh) 实现fat32文件系统的断电保护方法和装置
CN101609430B (zh) 内存储存空间管理方法
CN115509454A (zh) 一种固态硬盘数据的写入方法、装置、电子设备以及介质
CN102117183A (zh) 计算机装置与在计算机装置中使用固态硬盘的方法
TW202013183A (zh) 高效能垃圾收集方法以及資料儲存裝置及其控制器
KR100582403B1 (ko) 고속 부팅이 가능한 임베디드 시스템 및 그 방법
JPH1139210A (ja) フラッシュメモリのメモリ制御装置
Li et al. A content-aware writing mechanism for reducing energy on non-volatile memory based embedded storage systems
Jung et al. 2LGC: An Atomic-Unit Garbage Collection Scheme with a Two-Level List for NAND Flash Storage
KR20050075533A (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
ASS Succession or assignment of patent right

Owner name: NOKIA NETWORKS OY

Free format text: FORMER OWNER: SYMBIAN SOFTWARE LTD

Effective date: 20100618

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: LONDON, THE UNITED KINGDOM TO: ESPOO, FINLAND

TA01 Transfer of patent application right

Effective date of registration: 20100618

Address after: Espoo, Finland

Applicant after: Nokia Oyj

Address before: London, England

Applicant before: Symbian Software Ltd.

C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20080312