CN105190571A - 页表数据管理 - Google Patents

页表数据管理 Download PDF

Info

Publication number
CN105190571A
CN105190571A CN201480025574.2A CN201480025574A CN105190571A CN 105190571 A CN105190571 A CN 105190571A CN 201480025574 A CN201480025574 A CN 201480025574A CN 105190571 A CN105190571 A CN 105190571A
Authority
CN
China
Prior art keywords
write
page
permission flag
access
table 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.)
Granted
Application number
CN201480025574.2A
Other languages
English (en)
Other versions
CN105190571B (zh
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.)
ARM Ltd
Original Assignee
Advanced Risc Machines 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 Advanced Risc Machines Ltd filed Critical Advanced Risc Machines Ltd
Publication of CN105190571A publication Critical patent/CN105190571A/zh
Application granted granted Critical
Publication of CN105190571B publication Critical patent/CN105190571B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/151Emulated environment, e.g. virtual machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

用于存储器地址空间内的每一页的页表数据包括写入许可标志及已使用位修饰符标志。写入许可标志被初始化为指示不准许写入存取的值。当写入存取发生时,已使用位修饰符标志指示是否可推翻写入许可标志的动作。若该写入许可标志的动作可被推翻,则准许该写入存取且该写入许可标志被改变为指示此后准许写入存取。写入许可标志指示准许写入的页为已使用页。

Description

页表数据管理
技术领域
本发明涉及数据处理系统领域。更具体而言,本发明涉及此类数据处理系统内的页表数据的管理。
背景技术
提供具有用于管理存储器的区域的页表数据的数据处理系统为已知的。例如,此页表数据可指定虚拟地址与物理地址之间的映射、对数据页的存取许可以及数据页的其他属性(例如,是否可缓存数据页)。已知,在页表数据内包括已使用位(dirtybit)信息以指示自从数据页例如从诸如硬盘驱动之类的非易失性存储设备被复制到工作存储器中以来,该数据页已经被修改。已使用位信息是有用的,因为当数据页被从工作存储器移除且返回至非易失性存储设备时,如果该页的已使用位指示它尚未经修改,则不需要将数据页复制回非易失性存储设备。此外,当希望页入(自非易失性存储设备复制到工作存储器)新数据页时,此已使用位信息可用来识别待被页出(自工作存储器复制到非易失性存储设备)的可能候选者。
管理此已使用位信息的一种方式是对存储器管理单元硬件提供在对存储器的页内的存储器地址进行第一次写入存取时更新与存储器的页相关联的已使用位信息的能力。对页表数据内的已使用位信息的基于硬件的更新具有速度方面的优势,但是它增加了硬件的复杂性。
用于存储器地址空间内的存储器的页的已使用状态的管理的另一方法是使用基于软件的管理。在此技术中,将被页入的每一新页标记为只读的。若试图对此页写入,则产生软件异常。软件异常处置程序然后可决定是否准许对该页进行写入。若允许写入,则将页的状态改变为准许写入,且将页标记为已使用的。若不允许对页写入,则以正常方式进一步处理写入许可失败异常。此基于软件的管理技术用来捕获对数据页的第一次写入,且将该页标记为已使用的。此后,该页被标记为准许写入而不产生异常,且因此不会放慢后来的写入操作。此方法的问题在于产生触发异常的写入的处理电路将正常情况下需要具有执行软件异常处置需求的能力。不具有自身处置异常处置代码的执行的能力的处理电路可触发到不同处理电路的中断,该不同处理电路随后将代表该处理电路执行异常处置。然而,此方法是较慢的。
现有技术的另一问题在于不可能在共享相同页表数据的系统(例如,共享虚拟存储器系统)内将对已使用状态的基于硬件的管理与对已使用状态的基于软件的管理混合。基于硬件的方法依赖于页自一开始即适当地标记为允许写入并且在对该页的第一次写入之后即进行对已使用状态进行基于硬件的更新。相反,基于软件的方法依赖于页在其最初经置放于工作存储器中时标记为不准许写入,并且此状态用来触发异常及将页标记为准许写入的改变且在对该页的第一次存取之后即设定已使用状态。对页表数据的使用因此在此两种方法之间是不兼容的。
发明内容
自一个方面来看,本发明提供一种用于处理数据的装置,该装置包括:
处理电路,被配置为管理页表数据,该页表数据指定与存储器地址空间内的存储器的页相关联的存取管理参数;其中
对于存储器的每一页,该存取管理参数包括:
写入许可标志,指示是否准许对该页的写入存取;以及
已使用位修饰符标志,若该写入许可标志指示不准许对该页写入存取,则该已使用位修饰符标志指示是否准许写入许可标志的动作被推翻以准许对该页的写入存取且改变写入许可标志以指示准许对该页的写入存取。
本技术认识到需要能够支持使用共享页表数据内的已使用状态的基于软件的管理及共享页表数据内的已使用状态的基于硬件的管理两者的异构系统。为了同时支持这两种方式,本技术增加了已使用位修饰符标志,该已使用位修饰符标志用来指示:如果写入许可标志自身指示不准许写入存取,则写入许可标志的动作可被推翻从而准许写入存取,并且然后改变写入许可标志以指示准许该写入存取。已使用位修饰符标志因此验证写入许可标志的资格并指示写入许可是否真的不被准许或者它是否不被准许以用于捕获对页的第一次写入存取,从而准许对页的已使用状态的基于软件的管理的目的。
正常执行页的已使用状态的基于硬件的管理的存储器管理单元(即,硬件更新存储器管理电路)需要修改来利用已使用位修饰符标志。更具体而言,这样的硬件更新存储器管理电路被形成为:通过读取与写入许可标志相关联的已使用位修饰符标志来对页(其中,写入许可标志指示不准许写入许可)的写入存取的生成进行回应,并且如果已使用位修饰符标志指示写入许可标志的动作可被推翻,则作为硬件控制的操作(即,不需要任何软件执行)来准许执行写入存取且改变写入许可标志以指示写入存取被准许。
为保护页表数据的完整性,希望硬件更新存储器管理单元被配置为作为原子操作来执行包含已使用位修饰符及写入许可标志的页表数据的读取及具有改变的写入许可标志的页表数据的写入(即,两个动作是一起完成的,从而使得任何代理不能够在读取和写入动作之间修改页表数据)。此原子操作可例如通过使用读-修改-写操作来更新包括写入许可标志及已使用位修饰符标志之页表数据来施行。
将认识到,与硬件更新存储器管理电路相关联的处理电路可采取各种不同形式。这些形式的处理电路的示例包括通用处理器,该通用处理器被配置为在软件控制下执行处理操作,且被配置为使用硬件更新管理电路来执行硬件控制数据管理。其他示例包括图形处理单元及/或直接存储器访问单元,该图形处理单元及/或该直接存储器访问单元分别被配置为执行硬件控制页表数据管理。
其他实施例可代替硬件更新存储器管理电路或与硬件更新存储器管理电路组合地利用软件更新存储器管理电路的一个或多个实例。此软件更新存储器管理电路通过触发软件管理的异常处理来响应对页的写入存取,该页具有指示不准许写入存取的写入许可标志,其中软件管理的异常处理包括写入许可标志的改变。此软件管理的异常处理可读取或可不读取已使用位修饰符标志,以便决定是否应改变写入许可标志,因为软件可访问能够指示是否应改变写入许可标志的其他信息。然而,对已使用位修饰符标志的读取将是软件更新管理电路决定是否应改变写入许可标志及是否准许写入的快速方式。软件更新存储器管理电路可至少部分包括执行软件的通用处理器,该软件管理关于修改写入许可标志及由此捕获页的已使用状态的页表数据的更新。
在一些实施例中,管理页表数据的处理电路可执行操作系统程序,该操作系统程序包括根据以上所述技术管理写入许可标志及已使用位修饰符标志的能力。此处理电路可包括通用处理器,该通用处理器被配置为在软件控制下执行处理操作,其中这些处理操作包括软件控制的页表数据管理。
如先前所提及,本技术可用于包括硬件更新存储器管理电路的一个或多个实例、软件更新存储器管理电路的一个或多个实例或这些实例的混合实例的系统内。即使系统并非异构的(即,系统包含硬件更新存储器管理电路及软件更新存储器管理电路的混合),利用本技术亦存在优点,因为具有单个电路块设计为适当的,该电路块可布署于各种不同的系统单芯片集成电路中,其中该电路块可与希望与其共享虚拟存储器地址空间且因此共享页表数据的其他电路组件混合。此外,在同构系统中,技术可改良与异构系统的软件兼容性。
本技术的特定益处出现在利用共享相同页表数据的软件更新存储器管理电路及硬件更新存储器管理电路的组合的实施例中。在此类实施例中,通常便利的是,使用软件更新存储器管理电路且因此具有执行程序指令的能力的处理电路应负责初始化共享存储器内的页表数据,因为此通常最便利地经执行为诸如初始启动时的软件任务。
写入许可标志可具有各种不同形式且可具有与其意义组合的额外信息。在一些实施例中,写入许可标志可指示对页的“只读”存取许可或者对页的“读取和写入”存取许可中的相应一者。
本技术可与使用页表数据的存储器管理(转换)的给定级段相关联地使用,该给定级段例如由操作系统程序及等同的基于硬件的控制利用的级段。本技术可被用于利用页表数据的多个级段的系统内,例如包括用于管理一个或多个客操作系统的存取的主管理器页表数据及以供由一个或多个客操作系统使用的操作系统页表数据两者的系统。
在使用主管理器页表数据的系统的上下文中,主管理器页表数据可包括主管理器写入许可标志,该主管理器写入许可标志用来指示是否独立于是否准许对页的读取存取而准许对页写入。在主管理器的上下文中,存在可适合于提供对页的写入存取但并不提供对该页的读取存取的情形。
如先前所论述,页表数据可用来提供关于被管理的数据页的各种其他信息。在一些实施例中,页表数据可针对页指定页在虚拟存储器地址空间内的虚拟地址与页在物理地址页内的物理地址之间的映射。此在支持如共享虚拟寻址存储器之类的存储器电路中是有用的。
自另一方面来看,本发明提供一种用于处理数据的装置,包括:
用于管理页表数据的处理装置,该页表数据指定与存储器地址空间内的存储器的页相关联的存取管理参数;其中
对于存储器的每一页,存取管理参数包括:
写入许可标志,指示是否准许对该页写入存取;及
已使用位修饰符标志,若该写入许可标志指示不准许对该页写入存取,则该已使用位修饰符标志指示是否准许写入许可标志的动作被推翻以准许对该页的写入存取且改变该写入许可标志以指示准许对该页写入存取。
自又一方面来看,本发明提供一种处理数据的方法,包括以下步骤:
使用页表数据来管理对存储器地址空间内的存储器的页的存取,该页表数据指定与该页相关联的存取管理参数;其中
对于存储器的每一页,存取管理参数包括:
写入许可标志,指示是否准许对该页写入存取;及
已使用位修饰符标志,若该写入许可标志指示不准许对该页写入存取,则该已使用位修饰符标志指示是否准许写入许可标志的动作被推翻以准许对该页的写入存取且改变该写入许可标志以指示准许对该页写入存取。
附图说明
仅通过示例的方式,将参考附图中图示的本发明的实施例来进一步描述本发明,其中:
图1示意性地示出包括共享具有共享页表数据的虚拟存储器地址空间的处理电路的多个实例的数据处理系统;
图2示意性地示出页表数据项;
图3示意性地示出包括硬件更新存储器管理电路的多个实例的数据处理系统;
图4是示意性地示出使用由相应页表数据管理的多级转换的系统中的主管理器、客操作系统与应用程序之间的关系的图表。
图5示意性地示出主管理器页表数据的示例;
图6是示意性地示出软件更新存储器管理电路的操作的流程图;
图7为示意性地示出硬件更新存储器管理电路的操作的流程图;以及
图8为示意性地示出在查询页是否为已使用时执行的处理的流程图。
具体实施方式
图1示意性地示出数据处理系统2,该数据处理系统包括处理电路的多个实例,包括通用处理器4、直接存储器访问单元6及图形处理单元8。通用处理器4、直接存储器访问单元6及图形处理单元8共享工作存储器10,该工作存储器分别由通用处理器4、直接存储器访问单元6及图形处理单元8中每一者使用共享页表数据24虚拟寻址。
通用处理器4执行软件程序指令以执行操作系统12,该操作系统代表应用程序14、16管理对存储器地址空间中的页的存取。通用处理器4产生虚拟存储器地址空间内的虚拟地址,该虚拟地址被供应至软件更新存储器管理电路18。软件更新存储器管理电路18执行虚拟至物理地址转换及检查关于待执行的存储器存取的许可。此等许可可包括是否准许写入存取(writeaccess)。软件更新存储器管理电路18产生工作存储器10的物理地址空间内的物理地址,且将此物理地址传递至缓存20。存储器存取根据普通技术可由缓存20服务或可由存储器10服务。在工作存储器10可连接至诸如硬盘驱动之类的非易失性存储设备22中,其中数据页自硬盘驱动22页入工作存储器10及页出工作存储器10。工作存储器10存储页表数据24,该页表数据由处理电路4、6、8之实例中每一者共享。
直接存储器访问单元6产生虚拟地址,该虚拟地址由硬件更新存储器管理电路26转换为物理地址。图形处理单元8使用虚拟地址来产生存储器存取,该虚拟地址由硬件更新存储器管理电路28转换为物理地址,该物理地址自该硬件更新存储器管理电路经由缓存30传递至工作存储器10。响应于写入存取请求,硬件更新存储器管理电路26、28中每一者对写入许可标志及已使用位修饰符标志执行原子(atomic)硬件更新操作,如将在下文所述。此原子操作为操作的不同部分不可分隔的操作,例如,该不同部分全部执行或该不同部分全部不执行,使得对含有已使用位修饰符及写入许可标志的页表数据的读取以及对具有经改变的写入许可标志的页表数据的写入作为原子操作予以执行,亦即,两个动作一起完成,使得任何代理不能在读取与写入之间修改页表数据。此原子操作的示例实现可使用读-修改-写操作。硬件更新存储器管理电路26、28读取写入许可标志及已使用位修饰符标志,修改写入许可标志,然后将写入许可标志写回页表数据24。应以原子方式处置此等处理,以避免页表数据在读取与写入之间改变的可能性。
软件更新存储器管理电路18在将执行写入存取时读取用于相关数据页的写入许可标志。含有此写入许可标志的页表数据可自工作存储器10读取,或可被缓存在软件更新存储器管理电路18内(例如,转换后备缓冲器内)。若写入许可标志指示不准许写入存取,则软件更新存储器管理电路18产生软件异常,该软件异常触发通用处理器4来执行软件管理的异常处理。若软件管理的异常处理决定写入存取为应正确地进行的存取(即,写入许可标志已经设定来指示不准许写入存取用于捕获第一次写入存取且因此设定已使用状态(dirtystatus)),则软件管理的异常处理原子地改变写入许可标志以指示此后准许写入存取且允许进行相关的写入存取。若所请求的写入存取为真正不应进行的存取,则接着进行针对此情形的正常异常处理响应。操作系统12可处置异常处理。软件管理的异常处理可利用已使用位修饰符标志来决定写入许可标志的动作是否可被推翻以准许要进行的写入存取以及利用该标志来触发对写入许可标志的改变。可替换地,软件管理的异常处理可使用其他数据或机制来决定是否覆写写入许可标志。若需要,则已使用位修饰符标志提供对此指示的快速访问。
硬件更新存储器管理电路26、28通过读取与正被试图写入存取的数据页的写入许可标志相关联的已使用位修饰符标志来响应于由直接存储器访问单元6及图形处理单元8中的相应一者进行的写入存取的生成。若写入许可标志指示不准许写入存取,则对于已使用位修饰符标志所读取的值指示是否可推翻该写入许可标志的动作。若写入许可标志的动作要被推翻,则准许写入存取且硬件更新存储器管理电路26、28改变写入许可标志以指示以后准许对此页的写入存取。以此方式,已使用位修饰符标志用来向硬件更新存储器管理电路26、28指示写入许可标志是被设定来指示不准许写入用于捕获对页的第一次写入存取及因此标示该页的已使用状态的目的,还是如此设定是因为在第一次写入存取试图及所有后续写入存取试图两者时真正地不允许对该页的写入存取,直至写入许可标志被改变为止。
页表数据内的写入许可标志及已使用位修饰符标志的使用准许软件更新存储器管理电路18及硬件更新存储器管理电路26、28两者一起存在于数据处理系统2内且共享页表数据24,同时保留追踪且标示页的已使用状态的能力,而不管写入存取是经由软件更新存储器管理电路18还是经由硬件更新存储器管理电路26、28发生。
图2示意性地示出由操作系统12初始化的页表数据项。此页表数据项包括诸如虚拟至物理地址映射数据32及访问控制数据34之类的数据。访问控制数据包括写入许可标志AP[2]。若此写入许可标志具有为“1”的值,则此指示对该页只读存取。若此写入许可标志具有为“0”的值,则这指示允许对该页读取存取及写入存取。
访问控制数据34亦包括已使用位修饰符(dirty-bit-modifier)标志DBM。若已使用位修饰符标志具有为“1”的值,则此指示可推翻写入许可标志AP[2]的动作且准许写入存取,即使写入许可标志AP[2]的值为“1”亦如此。若已使用位修饰符标志的值为“0”,则不准许对写入许可标志的动作的推翻。
图3示意性地示出数据处理系统36,该数据处理系统包括两个通用处理器38、40,该两个通用处理器各自具有藉以与含有共享页表数据48的共享存储器46进行通信的相应硬件更新存储器管理电路42、44。在此示例实施例中,用于存储器的每一页的页表数据48包括如先前所述的写入许可标志及已使用位修饰符标志两者。可利用包括写入许可标志及已使用位修饰符标志两者的页表数据的其他形式的数据处理系统包括仅含有软件更新存储器管理电路、仅含有硬件更新存储器管理电路或含有以上两者的混合电路的数据处理系统。
图4示意性地示出主管理器(hypervisor)50,两个客操作系统52、54与相应应用程序56、58、60、62、64之间的关系。客操作系统52、54使用操作系统页表数据来代表其各自的应用程序56至64管理对存储器的页的存取。此操作系统页表数据可包括将虚拟地址映射至物理地址的数据及控制存取许可及存储器的页的其他特性的数据。
主管理器50可使用主管理器页表数据来管理针对相应客操作系统52、54的存储器的页的存取。此主管理器页表数据在图5中示出且可包括将操作系统物理地址映射至主管理器物理地址的映射数据66。主管理器页表数据内的访问控制数据68包括主管理器写入许可标志HAP[2]。若主管理器写入许可标志具有为“1”的值,则此指示准许对相关页的写入。若主管理器写入许可标志的值为“0”,则此指示不准许对该页的写入。主管理器写入许可标志HAP[2]的动作与是否准许对该页进行读取存取(其可用单独的标志来指示)无关。主管理器页表数据亦包括与主管理器写入许可标志有关的已使用位修饰符标志DBM。若已使用位修饰符标志具有为“1”的值,则此指示可推翻主管理器写入许可标志的动作。类似地,若已使用位修饰符标志具有为“0”的值,则此指示主管理器写入许可标志的动作不可被推翻。
图6为示意性地示出软件更新存储器管理电路18的动作的流程图。在步骤70处,处理等至接收到对页的写入存取。步骤72然后读取相关数据页的写入许可标志。步骤74决定写入许可标志是否指示准许写入。若写入许可标志指示准许写入,则步骤76执行此写入且处理返回步骤70。若写入许可标志指示不准许写入,则步骤78触发软件异常,并且相关联的处理电路(诸如图1的通用处理器4)被触发以执行软件异常处置。在步骤80处,软件异常处置可选地读取与在步骤72处获取的写入标志相关联的已使用位修饰符标志。步骤82决定是否准许推翻由写入许可标志指示的写入许可。若该推翻不被准许,则步骤84继续根据标准技术作为许可错误进行处理。若步骤82指示推翻被准许,则步骤86用来改变写入许可标志以指示准许写入,且处理进行步骤76,此处执行写入存取。
图6的处理的整体动作为:当初始化页表数据时,所有页的写入许可标志被设定为只读,而不管只读存取对于这些页是否意欲为连续有效。当对页发生第一次写入存取时,所设定的默认只读许可触发图6中待调用的软件异常处置。此软件异常处置根据已使用位修饰符标志(或其他数据)决定相关存储器的页是写入许可事实上将被阻止的页,还是写入许可标志被设定为只读以用于捕获第一次写入存取且因此将页标示为已使用(亦即,页已具有对其进行的至少一次写入存取)的页。
图7是示意性地示出硬件更新存储器管理电路26、28、42、44的动作的流程图。在步骤88处,处理等至进行对页的写入存取为止。在步骤90处,读取该页的写入许可标志。步骤92决定写入许可标志是否指示准许对该页的写入。若准许写入,则步骤94执行写入。若如由写入许可标志所指示不准许写入,则步骤94读取该页的对应的已使用位修改标志。步骤96然后依赖于已使用位修饰符标志决定是否准许对写入许可标志的动作的推翻。若不准许推翻,则在步骤98处(例如,通过触发到可处置此真实许可错误的通用处理器的中断)触发许可错误。
若在步骤96处的决定为准许推翻写入许可标志的动作,则步骤100用来以原子方式设定该页的写入许可标志,以指示现在准许写入,且然后处理进行至步骤94,此处执行写入。对写入许可标志的原子设定以指示写入被准许是以使得它不能够与对已使用位修饰符标志的读取94的执行相分离地方式进行的。硬件更新存储器管理电路的动作的原子本性可通过使用读-修改-写操作来实现。
图8是示意性地示出可如何决定页的已使用状态的流程图。步骤102等至接收到查询页的已使用状态的请求为止。步骤104然后决定针对该页的写入许可标志的值。若写入许可标志指示不准许写入,如在步骤106处所决定,则步骤108返回该页未被使用(clean)的指示。当写入许可标志作为默认值初始化为指示不准许写入的值时,则写入许可标志仍指示不准许写入的任何页是可能尚未进行任何写入的页。当对页面执行第一次写入时,则这使得写入许可标志自指示不准许写入的值改变成指示准许写入的值。因此,至少已发生一次写入的任何页将具有指示准许写入的写入许可标志,且此在步骤106处决定且在步骤110处报告。

Claims (19)

1.用于处理数据的装置,包括:
处理电路,被配置为管理页表数据,所述页表数据指定与存储器地址空间内存储器的页相关联的存取管理参数;其中
针对存储器的每个页,所述存取管理参数包括:
指示对于所述页的写入存取是否被准许的写入许可标志;以及
已使用位修饰符标志,该已使用位修饰符标志指示如果所述写入许可标志指示对于所述页的写入存取不被准许,则是否准许所述写入许可标志被推翻来准许对于所述页的写入存取以及改变所述写入许可标志来指示对于所述页的写入存取被准许。
2.如权利要求1所述的装置,包括硬件更新存储器管理电路,该硬件更新存储器管理电路被耦接至所述处理电路并且被配置为通过以下动作来对所述处理电路对页的写入存取的生成进行响应:读取与所述写入许可标志相关联的己使用位修饰符标志,并且如果所述己使用位修饰符标志指示准许所述写入许可标志的动作被推翻,则作为硬件控制的操作来允许所述写入存取并执行所述写入许可标志的改变,其中所述页具有指示对于所述页的写入存取不被准许的写入许可标志。
3.如权利要求2所述的装置,其中所述硬件更新存储器管理电路被配置为作为原子操作来执行对所述己使用位修饰符标志的读取以及对所述写入许可标志的改变。
4.如权利要求2和3中任一项所述的装置,其中所述处理电路被配置为执行硬件控制的页表数据管理。
5.如权利要求2、3和4中任一项所述的装置,其中所述处理电路为以下各者之一:
通用处理器,被配置为在软件控制下执行处理操作并且执行硬件控制的页表数据管理;
图形处理单元,被配置为执行硬件控制的页表数据管理;以及
直接存储器访问单元,被配置为执行硬件控制的页表数据管理。
6.如前述权利要求中任一项所述的装置,包括软件更新存储器管理电路,该软件更新存储器管理电路被耦接至所述处理电路并且被配置为通过触发由所述处理电路进行的软件管理的异常处理来对由所述处理电路对页的写入存取的生成进行响应,其中所述页具有指示对于所述页的写入存取不被准许的写入许可标志,所述软件管理的异常处理包括对所述写入许可标志的改变。
7.如权利要求6所述的装置,其中处理电路被配置为执行操作系统程序,该操作系统程序管理包括所述写入许可标志和所述己使用位修饰符标志的所述页表数据。
8.如权利要求6和7中任一项所述的装置,其中所述处理电路被配置为执行软件控制的页表数据管理。
9.如权利要求6、7和8中任一项所述的装置,其中所述处理电路包括通用处理器,该通用处理器被配置为在软件控制下执行包括软件控制的页表数据管理的处理操作。
10.如前述权利要求中任一项所述的装置,其中所述处理电路包括第一处理电路和第二处理电路,并且包括:
软件更新存储器管理电路,该软件更新存储器管理电路被耦接至所述第一处理电路并且被配置为通过触发由所述处理电路进行的软件管理的异常处理来对由所述处理电路对页的写入存取的生成进行响应,其中所述页具有指示对于所述页的写入存取不被准许的写入许可标志,所述软件管理的异常处理包括对所述写入许可标志的改变;以及
硬件更新存储器管理电路,该硬件更新存储器管理电路被耦接至所述第二处理电路并且被配置为通过以下动作来对所述处理电路对页的写入存取的生成进行响应:读取与所述写入许可标志相关联的已使用位修饰符标志,并且如果所述已使用位修饰符标志指示准许所述写入许可标志的动作被推翻,则作为硬件控制的操作来允许所述写入存取并执行所述写入许可标志的改变,其中所述页具有指示对于所述页的写入存取不被准许的写入许可标志。
11.如权利要求10所述的装置,其中包括由所述第一处理电路和所述第二处理电路共享的共享存储器,并且其中所述页表数据被存储在所述共享存储器内。
12.如权利要求11所述的装置,其中所述第一处理电路被配置为初始化所述共享存储器内的所述页表数据。
13.如前述权利要求中任一项所述的装置,其中所述写入许可标志的不同值指示以下各者中的相应一者:
对于所述页的只读存取许可被准许;以及
对于所述页的读取和写入存取许可被准许。
14.如前述权利要求中任一项所述的装置,其中所述页表数据包括用于管理由一个或多个操作系统进行的存取的主管理器页表数据,以及用于所述一个或多个操作系统中每一者的操作系统页表数据。
15.如权利要求14所述的装置,其中所述主管理器页表数据包括主管理器写入许可标志,并且其中所述主管理器写入许可标志的不同值指示以下各者中的相应一者:
不论对于所述页的读取存取是否被准许,对于所述页的写入存取不被准许;以及
不论对于所述页的读取存取是否被准许,对于所述页的写入存取被准许。
16.如前述权利要求中任一项所述的装置,所述页表数据针对所述页指定所述页在虚拟存储器地址空间内的虚拟地址与所述页在物理地址空间内的物理地址之间的映射。
17.如权利要求16所述的装置,包括存储器电路,该存储器电路充当共享虚拟寻址存储器。
18.用于处理数据的装置,包括:
用于管理页表数据的处理装置,所述页表数据指定与存储器地址空间内的存储器的页相关联的存取管理参数;其中
对于存储器的每个页,所述存取管理参数包括:
指示对于所述页的写入存取是否被准许的写入许可标志;以及
己使用位修饰符标志,该己使用位修饰符标志指示如果所述写入许可标志指示对于所述页的写入存取不被准许,则是否准许所述写入许可标志被推翻来准许对于所述页的写入存取以及改变所述写入许可标志来指示对于所述页的写入存取被准许。
19.一种处理数据的方法,包括以下步骤:
使用页表数据来管理对存储器地址空间内的存储器的页的存取,所述页表数据指定与所述页相关联的存取管理参数;其中
对于存储器的每个页,所述存取管理参数包括:
指示对于所述页的写入存取是否被准许的写入许可标志;以及
己使用位修饰符标志,该己使用位修饰符标志指示如果所述写入许可标志指示对于所述页的写入存取不被准许,则是否准许所述写入许可标志被推翻来准许对于所述页的写入存取以及改变所述写入许可标志来指示对于所述页的写入存取被准许。
CN201480025574.2A 2013-05-13 2014-03-12 页表数据管理 Active CN105190571B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GB1308507.1A GB2514107B (en) 2013-05-13 2013-05-13 Page table data management
GB1308507.1 2013-05-13
US13/926,140 US9218302B2 (en) 2013-05-13 2013-06-25 Page table management
US13/926,140 2013-06-25
PCT/GB2014/050724 WO2014184515A1 (en) 2013-05-13 2014-03-12 Page table data management

Publications (2)

Publication Number Publication Date
CN105190571A true CN105190571A (zh) 2015-12-23
CN105190571B CN105190571B (zh) 2018-10-12

Family

ID=48672183

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480025574.2A Active CN105190571B (zh) 2013-05-13 2014-03-12 页表数据管理

Country Status (10)

Country Link
US (1) US9218302B2 (zh)
EP (1) EP2997477B1 (zh)
JP (1) JP6314212B2 (zh)
KR (1) KR102294562B1 (zh)
CN (1) CN105190571B (zh)
AR (1) AR096255A1 (zh)
GB (1) GB2514107B (zh)
IL (1) IL242154B (zh)
TW (1) TWI603195B (zh)
WO (1) WO2014184515A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108369624A (zh) * 2015-12-24 2018-08-03 英特尔公司 用于以最小性能降级检测恶意软件的技术
CN109144432A (zh) * 2018-10-08 2019-01-04 郑州云海信息技术有限公司 一种非易失性内存储器页分配方法与装置
CN109791521A (zh) * 2016-09-28 2019-05-21 Arm有限公司 提供数据访问的原子集的装置及方法

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015061731A1 (en) * 2013-10-27 2015-04-30 Advanced Micro Devices, Inc. Input/output memory map unit and northbridge
US9785577B2 (en) * 2014-05-28 2017-10-10 Red Hat, Inc. Kernel key handling
US10558375B2 (en) * 2014-11-13 2020-02-11 Netapp, Inc. Storage level access control for data grouping structures
US20160179662A1 (en) * 2014-12-23 2016-06-23 David Pardo Keppel Instruction and logic for page table walk change-bits
US9619396B2 (en) 2015-03-27 2017-04-11 Intel Corporation Two level memory full line writes
GB2539433B8 (en) * 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Protected exception handling
GB2539435B8 (en) 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Data processing memory access control, in which an owning process for a region of memory is specified independently of privilege level
GB2539429B (en) 2015-06-16 2017-09-06 Advanced Risc Mach Ltd Address translation
GB2539428B (en) * 2015-06-16 2020-09-09 Advanced Risc Mach Ltd Data processing apparatus and method with ownership table
US10664183B1 (en) 2016-07-25 2020-05-26 Oracle International Corporation Method and apparatus for storing memory attributes
US10114768B2 (en) * 2016-08-29 2018-10-30 Intel Corporation Enhance memory access permission based on per-page current privilege level
GB2563009B (en) * 2017-05-25 2019-12-25 Advanced Risc Mach Ltd An apparatus and method for interpreting permissions associated with a capability
US20190050342A1 (en) * 2017-08-08 2019-02-14 Honeywell International Inc. Selective page tracking for process controller redundancy
US10969980B2 (en) 2019-03-28 2021-04-06 Intel Corporation Enforcing unique page table permissions with shared page tables
US11620233B1 (en) * 2019-09-30 2023-04-04 Amazon Technologies, Inc. Memory data migration hardware
US12013791B2 (en) * 2021-06-01 2024-06-18 International Business Machines Corporation Reset dynamic address translation protection instruction
US11593275B2 (en) * 2021-06-01 2023-02-28 International Business Machines Corporation Operating system deactivation of storage block write protection absent quiescing of processors

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6073243A (en) * 1997-02-03 2000-06-06 Intel Corporation Block locking and passcode scheme for flash memory
JP2004527044A (ja) * 2001-03-30 2004-09-02 ミップス テクノロジーズ インコーポレイテッド コンピュータメモリ保護方式の拡張機構
US6854046B1 (en) * 2001-08-03 2005-02-08 Tensilica, Inc. Configurable memory management unit
US20070126756A1 (en) * 2005-12-05 2007-06-07 Glasco David B Memory access techniques providing for override of page table attributes
US20080109592A1 (en) * 2006-11-04 2008-05-08 Virident Systems Inc. Seamless application access to hybrid main memory
US20100162038A1 (en) * 2008-12-24 2010-06-24 Jared E Hulbert Nonvolatile/Volatile Memory Write System and Method
US20120072669A1 (en) * 2010-09-21 2012-03-22 Fujitsu Limited Computer-readable, non-transitory medium storing memory access control program, memory access control method, and information processing apparatus
US20120072906A1 (en) * 2010-09-16 2012-03-22 Red Hat Israel, Ltd. Memory Overcommit by Using an Emulated IOMMU in a Computer System without a Host IOMMU
CN102591702A (zh) * 2011-12-31 2012-07-18 华为技术有限公司 虚拟化处理方法及相关装置和计算机系统
CN102971727A (zh) * 2010-05-11 2013-03-13 英特尔公司 在软件分布式共享存储器系统中记录脏信息

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2200483B (en) * 1987-01-22 1991-10-16 Nat Semiconductor Corp Memory referencing in a high performance microprocessor
JP2586112B2 (ja) * 1988-07-13 1997-02-26 富士通株式会社 アドレス変換テーブルのアクセス制御方式
JP2504137B2 (ja) * 1988-09-27 1996-06-05 日本電気株式会社 メモリ書き込みプロテクト回路
EP0526114A1 (en) * 1991-07-29 1993-02-03 Motorola, Inc. A method and apparatus for performing address translation in a data processor using masked protection indirection page descriptors
DE19735948C1 (de) * 1997-08-19 1998-10-01 Siemens Nixdorf Inf Syst Verfahren zur Verbesserung der Steuerungsmöglichkeit in Datenverarbeitungsanlagen mit Adreßübersetzung
US6907600B2 (en) * 2000-12-27 2005-06-14 Intel Corporation Virtual translation lookaside buffer
US20040268084A1 (en) * 2003-06-30 2004-12-30 Steve Longerbeam Protected RAM filesystem
US7353361B2 (en) * 2005-06-06 2008-04-01 International Business Machines Corporation Page replacement policy for systems having multiple page sizes
WO2009063536A1 (ja) * 2007-11-16 2009-05-22 Netcleus Systems Corporation タスク処理装置
US9256552B2 (en) * 2011-11-21 2016-02-09 Cisco Technology, Inc. Selective access to executable memory
US9354916B2 (en) * 2012-11-29 2016-05-31 Red Hat Israel, Ltd. Detection of guest disk cache

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6073243A (en) * 1997-02-03 2000-06-06 Intel Corporation Block locking and passcode scheme for flash memory
JP2004527044A (ja) * 2001-03-30 2004-09-02 ミップス テクノロジーズ インコーポレイテッド コンピュータメモリ保護方式の拡張機構
US6854046B1 (en) * 2001-08-03 2005-02-08 Tensilica, Inc. Configurable memory management unit
US20070126756A1 (en) * 2005-12-05 2007-06-07 Glasco David B Memory access techniques providing for override of page table attributes
US20080109592A1 (en) * 2006-11-04 2008-05-08 Virident Systems Inc. Seamless application access to hybrid main memory
US20100162038A1 (en) * 2008-12-24 2010-06-24 Jared E Hulbert Nonvolatile/Volatile Memory Write System and Method
CN102971727A (zh) * 2010-05-11 2013-03-13 英特尔公司 在软件分布式共享存储器系统中记录脏信息
US20120072906A1 (en) * 2010-09-16 2012-03-22 Red Hat Israel, Ltd. Memory Overcommit by Using an Emulated IOMMU in a Computer System without a Host IOMMU
US20120072669A1 (en) * 2010-09-21 2012-03-22 Fujitsu Limited Computer-readable, non-transitory medium storing memory access control program, memory access control method, and information processing apparatus
CN102591702A (zh) * 2011-12-31 2012-07-18 华为技术有限公司 虚拟化处理方法及相关装置和计算机系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108369624A (zh) * 2015-12-24 2018-08-03 英特尔公司 用于以最小性能降级检测恶意软件的技术
CN108369624B (zh) * 2015-12-24 2023-01-06 英特尔公司 用于以最小性能降级检测恶意软件的技术
CN109791521A (zh) * 2016-09-28 2019-05-21 Arm有限公司 提供数据访问的原子集的装置及方法
CN109791521B (zh) * 2016-09-28 2023-02-28 Arm有限公司 提供数据访问的原子集的装置及方法
CN109144432A (zh) * 2018-10-08 2019-01-04 郑州云海信息技术有限公司 一种非易失性内存储器页分配方法与装置

Also Published As

Publication number Publication date
EP2997477B1 (en) 2021-09-01
EP2997477A1 (en) 2016-03-23
TW201502780A (zh) 2015-01-16
TWI603195B (zh) 2017-10-21
IL242154B (en) 2018-10-31
US20140337585A1 (en) 2014-11-13
WO2014184515A1 (en) 2014-11-20
JP6314212B2 (ja) 2018-04-18
JP2016521425A (ja) 2016-07-21
US9218302B2 (en) 2015-12-22
GB2514107B (en) 2020-07-29
KR20160007549A (ko) 2016-01-20
AR096255A1 (es) 2015-12-16
CN105190571B (zh) 2018-10-12
GB201308507D0 (en) 2013-06-19
KR102294562B1 (ko) 2021-08-27
GB2514107A (en) 2014-11-19

Similar Documents

Publication Publication Date Title
CN105190571A (zh) 页表数据管理
US9836409B2 (en) Seamless application access to hybrid main memory
CN103198450B (zh) 图像形成装置
CN103164342B (zh) 数据可用性的挂载时协调
US6088759A (en) Method of performing reliable updates in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
CN105917308B (zh) 分区为包括元数据区域的多个区域的字节可寻址非易失性读写主存储器
JP4886866B2 (ja) 主記憶装置へのアクセスを高速化する方法および記憶装置システム
CN105431858A (zh) 安全特权等级执行和访问保护
KR101826047B1 (ko) 저장 장치 및 그 구동 방법
KR101336258B1 (ko) 비휘발성 메모리의 데이터 처리 장치 및 방법
CN108431783A (zh) 访问请求处理方法、装置及计算机系统
CN109508142A (zh) 数据存储装置及其操作方法
CN104021089A (zh) 快闪存储器控制芯片与存储装置以及快闪存储器控制方法
CN109521944A (zh) 数据储存装置以及数据储存方法
CN107291507B (zh) 一种虚拟机虚拟硬盘的升级方法及电子设备
US9535796B2 (en) Method, apparatus and computer for data operation
JPH113287A (ja) 記憶装置およびそれに用いられる記憶領域管理方法
JP4892414B2 (ja) 制御回路、記憶媒体、処理装置、組込みシステムならびに領域管理方法
JP2013109404A (ja) 情報処理装置
CN109344089B (zh) 一种操作norflash的方法及装置
JP2009211245A (ja) フラッシュメモリ制御システムおよび制御方法
CN115827550A (zh) 一种数据处理方法及相关装置
JP2008250395A (ja) メモリシステム及びコンピュータシステム
JP2007094735A (ja) オペレーティングシステム、キャッシュメモリの制御方法、プログラム及び記憶媒体
JP2007164391A (ja) メモリカードおよびその制御方法

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