CN104956342B - 使用存储器保护单元来支持客户操作系统的虚拟化 - Google Patents

使用存储器保护单元来支持客户操作系统的虚拟化 Download PDF

Info

Publication number
CN104956342B
CN104956342B CN201380071716.4A CN201380071716A CN104956342B CN 104956342 B CN104956342 B CN 104956342B CN 201380071716 A CN201380071716 A CN 201380071716A CN 104956342 B CN104956342 B CN 104956342B
Authority
CN
China
Prior art keywords
memory
license
group
address
process circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201380071716.4A
Other languages
English (en)
Other versions
CN104956342A (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 CN104956342A publication Critical patent/CN104956342A/zh
Application granted granted Critical
Publication of CN104956342B publication Critical patent/CN104956342B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • 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
    • G06F12/145Protection 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 the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • 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/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
    • G06F12/1425Protection 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 the protection being physical, e.g. cell, word, block
    • 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
    • G06F12/1425Protection 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 the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection 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 the protection being physical, e.g. cell, word, block for a range
    • 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/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • 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/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • 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/152Virtualized environment, e.g. logically partitioned system

Abstract

向处理器(20)提供第一存储器保护单元(38)和第二存储器保护单元(40),其中第一存储器保护单元应用第一组许可,第二存储器保护单元应用第二组许可。存储器访问将仅在第一组许可和第二组许可都被满足时被许可。处理器还包括用于从虚拟地址VA转换到物理地址PA的存储器管理单元(42)。在选择位的控制下,第一存储器保护单元(38)和存储器管理单元(42)中可选的一者在任何给定时间是活跃的,选择位由在比客户操作系统执行所处的异常级别有更高特权的异常级别处执行的超管理程序(2)设置。

Description

使用存储器保护单元来支持客户操作系统的虚拟化
技术领域
本发明涉及数据处理系统的领域。更特别地,本发明涉及数据处理系统内存储器保护单元的提供和使用。
背景技术
为了通过在系统上执行的程序来控制对存储区域的访问这一目的而向数据处理系统提供存储器保护单元(MPU)的做法是公知的。存储器保护单元接收物理地址,并根据一组访问许可来判定存储器访问操作是否被许可。存储器保护单元非常适合于在实时系统内使用,在所述实时系统中,关于完成特定处理任务要花费多长时间期望确定的行为。在这样的系统中使用虚拟寻址是有问题的,因为由于转换后备缓冲器错过需要页表行走在主存储器内以便检索将虚拟地址转换为物理地址所需的翻译数据,虚拟寻址(例如)可能引入潜在的长延时。
随着处理系统技术的进步,伴随着在每单元时间可以被执行的处理量方面的那些系统性能的上升。此外,在可能的情况下降低数据处理系统的成本存在持续的压力。
发明内容
从一个方面看,本发明提供用于对数据进行处理的装置,该装置包括:
处理电路,该处理电路被配置为执行程序指令流;
第一存储器保护单元,该第一存储器保护单元被配置为:
接收直接指定存储器内存储器地址位置的物理地址,以便所述处理电路执行存储器访问操作;以及
根据第一组许可来判定所述存储器访问操作是否被许可;和第二存储器保护单元,该第二存储器保护单元被配置为:
接收所述物理地址;以及
根据第二组许可来判定所述存储器访问操作是否被许可;其中
仅当所述存储器访问操作满足所述第一组许可和所述第二组许可二者时,所述存储器访问操作被许可。
本技术提供用于对数据进行处理的装置,该装置包括第一存储器保护单元和第二存储器保护单元;仅当存储器访问操作满足由这些存储器保护单元监督的许可时存储器访问操作被许可,例如,第一存储器保护单元代表客户实时操作系统(使用所有的物理地址)应用第一组访问许可,第二存储器保护单元代表超管理程序应用第二组访问许可,超管理程序管理多个客户操作系统之间底层硬件的共享。由于每个虚拟实时系统可以使用第一存储器保护单元来执行它的存储器访问许可,然后管理客户操作系统的超管理程序可以使用第二存储器保护单元来执行由超管理程序监督的访问许可,因此具有这种形式的系统能够虚拟化一个或多个实时系统。实时处理器的虚拟化采取行动来反对技术领域内的已接受的智慧和偏见,因为这通常将被视为不可接受地危害实时处理器的确定性行为,并可能抑制它充分及时地处理任务的能力。然而,本技术认识到,随着由处理器技术的进步提供的处理速度的提高,在仍旧维持可接受的处理速度和响应水平的同时对实时处理器进行虚拟化是可能的。使用第一存储器保护单元(操作物理地址以执行与虚拟实时处理器相关联的许可)和第二存储器保护单元(也操作物理地址以执行与超管理程序相关联的许可)起到的作用是:即使对于虚拟实时处理器,也可以避免与处理虚拟地址相关联的无限延迟,并且可以提供存储器访问操作可接受的最大处理延迟。提供虚拟实时处理器具有降低成本的优势,因为可以避免该处理器的单独的真实实例。
在支持异常级别层级的系统内可以通过以下操作来辅助虚拟实时处理器和超管理程序之间安全性的管理:对处理电路进行配置,使得当在第一异常级别处操作时处理电路被许可改变第一组许可并且不被许可改变第二组许可,而当在第二异常级别处操作时处理电路被许可改变第二组许可。因此,除了系统在第二异常级别处操作之外,可以防止第二组许可被改变,由此管理一个或多个虚拟实时处理器(它的客户操作系统在第一异常级别处操作)的超管理程序(其在第二异常级别处操作)的安全性可以得到保护。
处理器可以支持多个实时处理器,每个实时处理器执行被选中的实时操作系统并且具有相关联的第一组许可。系统可以与一个或多个其它处理器(其没有这种实时操作限制)相结合地提供一个或多个虚拟实时处理器也是可能的,例如,支持图形用户界面(GUI)的“丰富”操作系统。
应当领会的是,在一些实施例中,第一存储器保护单元和第二存储器保护单元可以作为完全分离的电路被提供。在其它实施例中第一存储器保护单元和第二存储器保护单元的实现方式也可能是它们共享它们的一些或全部硬件。在一些实施例中,可能提供一组硬件,这组硬件先进行操作以执行当前活跃的客户操作系统的第一组许可来用作第一存储器保护单元,然后进行操作以执行超管理程序的第二组许可并因此用作第二存储器保护单元。
本技术在对多个处理器进行虚拟化方面的能力还可以通过提供存储器管理单元来得到加强,存储器管理单元用于接收虚拟地址并根据存储器映射数据将这些虚拟地址转换为物理地址。对这种存储器管理单元的规定允许装置对操作虚拟存储器的处理器进行虚拟化。存储器管理单元可以用于根据存储器映射数据内的一组虚拟存储器许可来许可或不许可虚拟存储器访问操作。
通过以下操作可以促进超管理程序的安全性:对处理电路进行配置,使得当处理电路在第一异常级别处操作时它被许可改变存储器映射数据而不被许可改变第二组许可(其被超管理程序使用)。
选择电路可以辅助实时处理器的虚拟化和处理器(支持虚拟存储器)的虚拟化之间的切换,其中,当从第二异常级别(其可以是超管理程序级别)转变到第一异常级别(其可以是实时操作系统的内核或支持虚拟存储器的操作系统的内核)以选择第一存储器保护单元或存储器管理单元中的一者使之在处理电路继续以第一异常级别(或访问权限更小的更低的异常级别(低级特权))操作时处于活跃状态时,选择电路进行操作以执行这两个选项之间的切换。因此,当从第二异常级别返回第一异常级别时,系统在第一存储器保护单元或存储器管理单元之间选择将处于活跃状态的一者。
可以依靠选择位来控制选择电路,当系统在第二异常级别处操作时选择位被写。当在第一异常级别处操作时选择位不能被处理电路写,则安全性被提高,从而确保在第二异常级别处选择的第一存储器保护单元或存储器管理单元中的任一者将在第一异常级别处执行的处理期间继续使用。
异常控制电路可以辅助不同处理器的虚拟化之间的切换,异常控制电路被配置为当从第一异常级别切换到第二异常级别时存储上下文数据,并且当从第二异常级别切换到第一异常级别时恢复上下文数据。上下文数据可以包括选择位。每一组上下文数据(例如,寄存器内容、配置数据等)可以与不同的虚拟处理器相关联。
存储器管理单元可以采取各种不同的形式,但在至少一些实施例中包括转换后备缓冲器,转换后备缓冲器被配置为存储将虚拟地址映射到物理地址的转换数据。存储器管理单元可以被配置为通过存储在主存储器内的页数据执行页表行走操作以判定存储器映射数据;存储器映射数据的量通常为高,因此一般不能同时被全部保持在存储器管理单元内。
如本技术的至少一些实施例所支持的使用虚拟存储器的处理器可以执行支持图形用户界面并使用虚拟存储器地址空间的非实时操作系统和一个或多个应用程序。这种使用图形用户界面的操作系统和应用程序通常不受实时操作限制,因为它们一般与不需要有保证的最大存储器访问延迟和其它实时限制的处理类型相关联。
一种系统可以辅助虚拟实时处理器和使用虚拟存储器的虚拟处理器之间的安全分离,在这种系统中,当第一存储器保护单元活跃时,第一组许可可以由处理电路来写,指示页表数据的起始位置以判定存储器映射数据的转换表基址寄存器值不可以由处理电路来写。因此,阻止虚拟实时处理器更改与虚拟处理器(其使用虚拟存储器)相关联的配置。相反,当存储器管理单元活跃时,则处理电路可以被配置,以便它不可以改变第一组许可但可以改变转换表基址寄存器值。因此,使用虚拟存储器的虚拟处理器可以更新它自己的配置(例如转换表基址寄存器值),但是被阻止改变与虚拟实时处理器相关联的第一组许可数据。
在一些实施例中,第一组许可和转换基址寄存器值可以被存储为协处理器内的寄存器映射值,协处理器被耦接到处理电路。根据适当的异常级别控制或取决于第一存储器保护单元还是存储器管理单元处于活跃状态,以协处理器内的寄存器映射值的形式提供这种配置数据允许它在适当的时候能够容易地被访问(反过来能够容易地被保护)。
从另一方面看,本发明提供用于对数据进行处理的方法,该方法包括以下步骤:
用处理电路执行程序指令流;
使用第一存储器保护单元来执行以下操作:
接收直接指定存储器内存储器地址位置的物理地址,以便所述处理电路执行存储器访问操作;以及
根据第一组许可来判定所述存储器访问操作是否被许可;和使用第二存储器保护单元来执行以下操作:
接收所述物理地址;以及
根据第二组许可来判定所述存储器访问操作是否被许可;其中
仅当所述存储器访问操作满足所述第一组许可和所述第二组许可二者时,所述存储器访问操作被许可。
附图说明
现在将仅通过实例的方式参照附图来描述本发明的实施例,在附图中:
图1示意性地示出支持多个虚拟实时处理器以及使用虚拟存储器的虚拟处理器的系统;
图2示意性地示出提供第一存储器保护单元和第二存储器保护单元以及存储器管理单元的处理系统;
图3示意性地示出协处理器中的配置数据的存储;
图4是示意性地示出当第一存储器保护单元活跃时对存储器访问的处理的流程图;
图5是示意性地示出当存储器管理单元活跃时对存储器访问的处理的流程图;
图6是示意性地示出虚拟处理器之间经由超管理程序的切换和不同的相关联的异常水平的图;
图7示出具有地址转换单元的处理系统的示例,地址转换单元用于与第一存储器保护单元同时操作;
图8示意性地示出对图7的处理系统的不同操作系统的存储器访问的处理;
图9示出由将处理电路生成的用于存储器访问操作的地址映射到标识存储器中的物理地址的示例;
图10示出图7的处理系统的协处理器内的配置数据的存储;
图11更详细地示出第一存储器保护单元、地址转换单元和故障产生电路;
图12示出存储在第一存储器保护单元中的一组许可数据的示例;
图13示出存储在地址转换单元中的地址转换条目的示例;
图14示出如果第一存储器保护单元判定对特定特权级别的存储器访问不被许可,则抑制故障状态的产生的示例;
图15示出对第一存储器检测单元的许可数据进行更新的遗留接口的示例;
图16示出对第一存储器保护单元的许可数据进行更新的主接口的示例;
图17是示出使用图7的系统对存储器访问操作进行处理的方法的流程图;
图18示出包括存储器保护缓存和地址转换缓存的示例,存储器保护缓存和地址转换缓存用于分别加快存储器保护单元和地址转换单元的查找操作;
图19示出包括选择单元的示例,选择单元选择存储器保护单元和地址转换单元中的哪一个用于处理存储器访问请求。
具体实施方式
图1示意性地示出支持多个虚拟实时处理器的系统和使用虚拟存储器的虚拟处理器。超管理程序2工作在第二异常级别EL2处,并且用于控制虚拟处理器之间的切换并对这些虚拟处理器进行彼此间的保护/隔离。第一虚拟实时处理器使用第一实时操作系统4来支持实时应用6的运行。当实时应用6和实时操作系统4指定存储器访问操作时,它们都生成物理地址PA。实时应用6生成的物理地址PA受到第一存储器保护单元执行的第一级别的存储器保护(代表客户实时操作系统4),第一存储器保护单元由实时操作系统4控制。如果存储器访问请求被该第一组许可所许可,则存储器访问操作也对照第二组许可被检查,第二组许可由超管理程序2使用第二存储器保护单元进行管理。第一存储器保护单元和第二存储器保护单元由硬件元件提供,硬件元件被配置有适当的第一组许可数据和第二组许可数据,以分别执行实时操作系统4和超管理程序2的策略。因此,由实时操作系统4和超管理程序2控制的第一组许可数据和第二组许可数据可以被存储器保护单元硬件执行,而不需要实时操作系统4或超管理程序2在当时运行。
图1中还示出支持多个实时应用10、12的另一实时操作系统8。与之前一样,实时应用10、12生成物理地址PA,第一存储器保护单元和第二存储器保护单元分别对照第一组许可和第二组许可对物理地址PA进行检查。实时操作系统4和实时应用6被认为在虚拟实时处理器上运行,该虚拟实时处理器与实时操作系统8和实时应用10、12运行在其上的虚拟实时处理器不同。超管理程序2通过交换底层硬件上的上下文/配置数据来在这两个虚拟实时处理器之间切换。底层硬件提供第一存储器保护单元和第二存储器保护单元,以便以与实时操作相一致的方式支持第一组许可和第二组许可的快速应用。
图1中还示出另一操作系统14,操作系统14是支持图形用户界面(例如,Windows、iOS、Linux等)的“丰富”操作系统的形式。多个应用16、18使用该另一操作系统14运行。应用16、18生成由存储器管理单元转换的虚拟地址,存储器管理单元被该另一操作系统14配置和控制。虚拟地址被转换成物理地址,然后由第二存储器保护单元对照第二组许可对物理地址进行检查。因此,该另一操作系统14利用存储器管理单元来代表该另一操作系统14转换并应用适当的许可,然后第二存储器保护单元用于代表超管理程序2应用许可。
图2示意性地示出适于支持图1中所示出的软件架构的一种形式的处理硬件。微处理器核20包括用于执行程序指令流的处理器电路22。程序指令流从存储器23被读取,存储器23包括提供超管理程序24、第一实时操作系统26、第二实时操作系统28、实时应用30、另一“非实时”操作系统32和用于该另一操作系统的应用34的程序指令。还包括在存储器23中的是被用于经由页表行走操作形成存储器映射数据的页表数据36。
微处理器核20包括第一存储器保护单元38、第二存储器保护单元40和存储器管理单元42。存储器管理单元42包括转换后备缓冲器44、页表行走电路46和转换表基址寄存器48。转换表基址寄存器48存储指向存储器23内页表数据36的开始的转换表基址寄存器值。页表行走电路46在执行页表行走操作中使用该转换表基址寄存器值,以将存储器映射数据读取到转换后备缓冲器44中。
第一存储器保护单元38应用第一组许可,第一组许可从协处理器(coprocessor)50内的寄存器被读取。第二存储器保护单元40应用第二组许可,第二组许可也从协处理器50被读取。第一存储器保护单元38和第二存储器保护单元40使用相同的物理地址并行操作,以分别根据第一组许可和第二组许可执行检查。异常级别控制电路52用于控制处理电路22当前操作所处的当前异常级别(即,针对应用的EL0、针对操作系统的EL1和针对超管理程序的EL2)。选择电路54被提供,以控制在给定时间点存储器管理单元44和第一存储器保护单元38中的哪一者是活跃的。当正执行的代码是实时代码(例如,实时操作系统4、8中的一者,或实时应用6、10、12中的一者)时,第一存储器保护单元38将是活跃的。当另一操作系统14或应用16、18中的一者正执行时,存储器管理单元42将是活跃的。当超管理程序活跃时,则仅第二存储器处理单元40将被使用,以便避免存储器管理单元42或第一存储器保护单元38不适当地干扰超管理程序2的动作。经由到第二异常级别EL2的转变并且在超管理程序2(运行在第二异常级别EL2处)的控制下,在活跃的第一存储器保护单元38和活跃的存储器管理单元42之间做出改变。当从第二异常级别EL2和超管理程序2返回到操作系统4、8、14中的一者时,选择位从处理电路输出到选择电路54并且用于控制第一存储器保护单元38将是活跃的还是存储器管理单元42将是活跃的。
处理电路22生成地址,该地址与将在存储器23内被执行的存储器访问相关联。如果第一存储器保护单元38当前被选择为是活跃的,则这些存储器地址将是物理地址PA。如果存储器管理单元42被选择为是活跃的,则这些存储器地址将是虚拟地址VA。第一MPU 38对照第一组许可数据对物理地址PA进行检查以生成通过(pass)信号,通过信号被提供给第二MPU 40。第二MPU 40也将对照第二组许可对物理地址进行检查。如果第一MPU 38的检查结果是通过并且第二MPU 40也对照它的第二组许可通过存储器访问,则物理地址PA被输出到存储器23以驱动存储器访问。
在存储器管理单元42是活跃的情况下,处理电路22生成与存储器访问相关联的虚拟地址VA。虚拟地址VA被提供给存储器管理单元42并经由存储器映射数据被转换(被保持在转换后备缓冲器44内或经由页表行走从页表数据36被恢复)以生成物理地址PA。存储器管理单元42还对照虚拟存储器许可对虚拟地址VA执行检查,虚拟存储器许可被包含在从页表数据36读取的存储器管理数据内。如果虚拟地址VA被成功转换并通过虚拟存储器许可,则存储器管理单元42将经转换的物理地址PA和指示虚拟存储器许可的通过的信号输出到第二MPU 40。第二MPU 40然后代表超管理程序2应用第二组许可数据,并且如果该检查被通过,则物理地址PA被输出到存储器23以执行所请求的存储器访问。由于存储器管理单元42的动作可能包括需要执行页表行走操作,则执行给定的存储器访问所需要的时间可能变化较大,并且这是为什么在实时操作被需要时,使用存储器管理单元42进行虚拟寻址是不适当的原因。
图3示意性地示出协处理器50内的一组存储器映射寄存器。当第一MPU 38处于活跃状态时,这些存储器映射寄存器被示出为处于状态A。当存储器管理单元42处于活跃状态时,相同的寄存器被示出为处于状态B。第一组许可被存储在一组寄存器56内,该组寄存器56可以在第一MPU 38处于活跃状态时被处理电路22和第一MPU 38访问。当第一MPU38处于活跃状态时,转换表基址寄存器58是无法被处理电路22访问的。一组寄存器60代表超管理程序2存储第二组许可,超管理程序2被第二MPU 40使用。该第二组许可仅当在与超管理程序2相对应的第二异常级别(EL2)处运行时是可访问的。
图3中B所示出的是当存储器管理单元42处于活跃状态时的情况。在该情况中,寄存器56对于处理电路22来说是不可访问的,转换表基址寄存器58对于处理电路22来说是可访问的,并且存储第二组许可的寄存器60仅在第二异常级别EL2处于活跃状态时对于超管理程序来说又是可访问的。
图4是流程图,该流程图示意性地示出当第一MPU 38处于活跃状态时图2的电路的操作。在步骤62处,处理等待,直到存储器访问被生成为止。在步骤64处,第一存储器保护单元38对照第一组许可检查所接收到的物理地址PA。如果步骤66处判定访问不被许可,则步骤68触发许可故障以根据已经代表实时操作系统4、8中的一者建立的任何策略被处理。然后,处理终止。
如果步骤66处的判定是访问被第一存储器保护单元38许可,则步骤70用于由第二存储器保护单元40对照第二组许可对物理地址PA执行检查。步骤72判定该第二组许可是否指示访问被许可。如果访问不被许可,则步骤74代表超管理程序2执行故障处理。如果访问被许可,则步骤76用于将访问发送到存储器22。
图5是流程图,该流程图示意性地示出当存储器管理单元42处于活跃状态时的处理。在步骤78处,处理等待,直到存储器访问被生成为止。步骤80对应于存储器管理单元42将虚拟地址VA转换成物理地址PA并对照虚拟存储器许可检查地址。如果步骤82处的判定是访问不被许可,则在步骤84处代表操作系统14执行故障处理。如果在步骤82处访问被许可,则步骤86用于由第二存储器保护单元40对照所应用的第二组许可对步骤80处生成的物理地址进行检查。如果步骤88处的判定是访问根据第二组许可被许可,则步骤90用于将访问发送到存储器22。如果步骤88处的判定是访问不被许可,则步骤92代表超管理程序2执行故障处理。
图6是示意性地示出第一存储器保护单元38是处于活跃状态还是存储器管理单元42处于活跃状态之间切换的示图。在时间段94处,实时应用在最低(最低特权)异常级别EL0处运行。在时间段96处,处理已经被传递到处于异常级别EL1的实时操作系统4、8的内核的执行。此时,处理可以再次返回到另一实时应用并转变回异常级别EL0。然而,在所示出的示例中,当实时操作系统内核96正在运行时,发生中断IRQ或生成(yield)触发,并且这在时间段98中触发超管理程序的运行并将处理电路切换到异常级别EL2。在时间段94中实时应用和时间段96中实时操作系统内核的整个运行期间,第一MPU 38和第二MPU 40是活跃的。时间段98中超管理程序的动作包括在虚拟机问交换上下文,以被图2的处理硬件从其中第一MPU 38处于活跃状态的状态虚拟化到其中MMU 42处于活跃状态的状态。这种上下文切换通常将涉及交换:与所存储的、来自虚拟机的先前执行的上下文相关联的寄存器内容被换入,以及寄存器中所存储的数据和与虚拟机相关联的其它数据被换出。当在时间段98中超管理程序2完成它的运行时,系统移动回异常级别EL1,并对被输出到选择电路54的选择位进行设置。这用于从第一存储器保护单元38处于活跃状态切换到存储器管理单元42处于活跃状态。在时间段102中应用16、18的运行被执行之前,时间段100对应于支持操作系统14的图形用户界面在异常级别EL1处的运行。时间段102中的处理将生成虚拟地址VA,并将使用存储器管理单元42来执行虚拟地址VA到物理地址PA的转换以及应用虚拟存储器许可。
图7示出处理装置的第二示例。在该示例中,微处理器核20与图2中的一样,不同之处在于它还包括地址转换单元120和故障生成电路122。在其它方面,图7中的处理装置的元件与图2中相应的元件一样,并以相同的参考标号被示出。
地址转换单元(ATU)120包括存储转换条目的转换后备缓冲器(TLB)126,每个转换条目针对存储器地址空间的相应页指定虚拟到物理地址映射。存储器的页是与TLB 126中的转换后备缓冲器条目相对应的存储器地址空间的范围。与MMU 42不同的是,ATU 120不具有页表行走电路46或转换表基址寄存器48。相反,对ATU 120的TLB 126的更新由在处理电路22上运行的软件来执行。软件(例如,实时操作系统软件)将更新的数据写到协处理器50的存储器映射寄存器,TLB 126从协处理器50读取更新的数据。通过消除ATU 120的页表行走,ATU适于在实时系统中使用,即使具有虚拟到物理地址转换。
图8示意性地示出图7的实施例中的各种存储器访问处理单元之间的关系。如图1中所示出的,系统可以在实时软件(例如,实时操作系统(RTOL)26、28或实时应用30)或非实时软件(例如,“丰富GUI”操作系统32或非实时应用34)两者中的任一者的控制下操作。图8中所示出的实时和非实时状态之间的切换以与上面针对图1-6所讨论的方式相同的方式被控制。
当非实时软件活跃时,MMU 42将处理器22指定的虚拟地址转换为直接标识存储器23中的物理位置的物理地址,物理地址然后被传递到级别第MPU 40,以在异常级别EL2处基于由超管理程序24设置的访问许可控制存储器访问是否被许可。这与先前关于图1-6所讨论的MPU 42相同。
当实时软件26、28、30活跃时,由处理器22生成的存储器访问操作的目标地址A被传递到第一MPU 38和ATU 120这两者。第一MPU 38执行保护查找,以判定第一MPU 38是否存储与目标地址相对应的任何组许可数据。此外,ATU 120执行转换查找,以判定ATU 120是否存储与目标地址相对应的任何转换条目。第一MPU 38和ATU 120是可在异常级别EL1处由操作系统软件编程的。
如果目标地址命中第一MPU 38,则目标地址被解释为物理地址PA,物理地址PA直接指定存储器23内的存储器位置。在这种情况下,第一MPU 38使用与包括目标地址的区域相对应的许可数据组来判定存储器访问操作是否被允许。如果存储器访问操作被允许,则物理地址(等同于目标地址)被第二MPU 40用于应用超管理程序访问许可。
另一方面,如果目标地址与地址转换单元120中的转换条目(TLB126的TLB条目)相对应,则目标地址被解释为虚拟地址VA,并通过使用ATU 120的相应的转换条目被转换为物理地址PA。由ATU 120生成的物理地址PA然后被提供给第二MPU 40,以使用超管理程序控制的许可数据来控制访问是否被许可。可选地,ATU 120还可以提供一些访问许可控制。
因此,当实时软件活跃时,第一MPU 38和ATU 120同时活跃,其中一些存储器访问通过使用第一MPU 38被处理,其它存储器访问通过使用ATU 120被处理。这不同于MMU 42和第一MPU 38之间的关系,即取决于实时软件或非实时软件是否被执行,这些单元中仅一个单元是活跃的。基于存储器访问操作的目标地址,选择第一MPU 38和ATU 120中的哪一者被用于处理给定的存储器访问操作。如图9中所示出的,处理电路22所看到的存储器地址空间被有效地分成与第一MPU 38相对应的一些地址范围130和与ATU 120相对应的其它地址范围132。与第一MPU 38相对应的存储器区域130中的地址被直接映射到物理地址空间中相应的物理地址。与地址转换单元120相对应的区域132中的虚拟地址可以使用ATU120的转换条目被转换成不同的物理地址。区域130、132的划分由软件设定,使得软件程序员可以控制哪些单元38、120应当用于每个存储器访问。
第一MPU 38和ATU 120的组合可用于实时应用。通常,第一MPU38将是首选,因为它直接用物理地址操作,并因此提供快速和确定的响应时间。然而,对于一些遗留软件应用30,这些软件所引用的地址可能与用于其它应用的地址相冲突,因此使用ATU 120的虚拟到物理地址转换来重置地址空间中的这些地址使得这种应用能够共存。由于ATU不具有页表行走电路46并且可直接由软件编程,ATU 120具有相当确定性的响应时间,并因此适于实时系统。
第一MPU 38的许可数据组以及ATU 120中TLB 126的转换表条目可由使用协处理器50的存储器映射配置寄存器的软件来编程。图10示出配置寄存器的示例。图10与图3相同,不同之处在于该实施例中的协处理器包括额外的寄存器140用于存储对ATU 120的转换表条目进行定义的数据。对转换表条目进行定义的寄存器140仅当处于状态A时可以被访问并且在状态B中不可以被访问,在状态A中选择电路54已经选择第一MPU38和ATU 120是活跃的,在状态B中MMU 42是活跃的。
图11更详细地示出第一MPU 38、ATU 120和故障生成电路122的示例。目标地址被提供给第一MPU 38和ATU 120两者,并且单元38和120这两者都执行查找操作以搜索与目标地址相对应的数据。
在一些示例中,并行于ATU 120查找目标地址的转换条目,第一MPU可以查找与目标地址相对应的许可数据。因为两种查找可以同时执行,这种实现方式更快速。然而,在ATU120查找在第一MPU 38中的查找之后被执行的情况下,可以提供更有效的实现方式。如果第一MPU 38使用已获得的许可数据组判定存储器访问不被许可,则在ATU 120中执行查找可能不是必要的,并且省去ATU查找以节省电力(假设系统设计者希望禁止未被第一MPU 38许可的所有存储器访问;这可能不总是如下面关于图14所讨论的情况)。因此,第一MPU 38可以向ATU发出通过信号150,该通过信号150指示(如果有MPU命中)相应的许可数据是否指示存储器访问是否是可允许的。如果通过信号150指示访问不是可允许的,则ATU 120省去查找,而如果在MPU 38中没有命中或者访问是可允许的,则ATU 120执行查找。
如图11中所示出的,第一MPU 38生成一组保护命中信号155,每个保护命中信号与第一MPU 38的条目相对应,并且指示目标地址是否在针对相应的条目所定义的地址空间的区域内。类似地,ATU 120生成一组转换命中信号160,每个转换命中信号与TLB 126中的转换条目里的一个转换条目相对应,并且指示该相应的条目是否用于包括目标地址的地址页。
故障生成电路122在多于一个的命中信号155、160指示命中的情况下生成故障状态。故障可通过命中第一MPU 38和ATU 120这两者而引起,或者可通过多次命中第一MPU 38的不同的条目而引起,或者可通过多次命中ATU 120的不同的条目而引起。通过防止多个同时命中,对存储器访问请求的处理能够确保是可预测的和安全的。如果有多个命中,则这可能导致不可预知的行为。例如,尝试使用第一MPU 38应用两组不同的访问许可或者尝试使用第一MPU 38将相同的目标地址解释为物理地址和使用ATU 120将相同的目标地址解释为虚拟地址可能导致不确定结果。通过生成故障,这些情况可以被标记。可以在存储器23中向装置提供故障处理软件例程以对故障进行寻址或标记故障来引起系统操作者的注意。因此,故障生成电路122确保系统的程序员应当避免图9中所示出的针对MPU和ATU所定义的区域130、132之间的重叠。
故障生成电路122还可以在没有一个命中信号155、160指示MPU或TLB条目与目标地址相对应的情况下生成故障。
图12示出第一MPU 38的许可条目的示例。每个条目170可以包括定义相应的存储器区域的基址的区域基址172和定义该区域的极限地址的区域极限地址174。通常情况下,极限地址174将具有比基址172更大的值。当执行保护查找时,如果目标地址位于基址172和极限地址174之间(或等于地址172、174中的一者),第一MPU 38将判定条目170与目标地址相对应。基址172和极限地址174使得任意大小的存储器区域能够使用第一MPU 38被定义。MPU条目170还包括针对具有不同的特权级别EL0、EL1的存储器访问请求所定义的许可数据176、178。例如,许可数据176针对应用特权级别EL0被定义,许可数据178针对操作系统特权级别EL1被定义。许可数据176、178包括控制存储器访问的特性的各种参数。例如,许可数据可以定义读操作是否被允许或写操作是否被允许。此外,许可数据可以定义控制在存储器23处对存储器访问的处理的区域属性,例如操作是否是必须按程序顺序被处理的严格排序类型的存储器访问操作,或者操作是否是可以相对于程序顺序不按次序执行的正常操作。虽然图12示出的示例中区域的端部使用区域极限地址174被定义,但是使用区域大小参数对区域限制进行定义也是可能的。
图13示出ATU 120的转换表条目180的示例。每个条目包括虚拟页地址182和物理页地址184,虚拟页地址将被转换成物理页地址。条目180还包括指示目标地址(目标地址落入将对其应用该转换的页内)的范围的页大小参数186。例如,页大小可以选自一组有限的选项,如4千字节或64千字节。因此,与可以使用基址172和极限地址174定义更任意区域的MPU 38相比,ATU 120中的转换表条目可以被限制为定义具有预定大小的页。当ATU 120针对给定目标地址执行转换查找时,如果目标地址的最显著部分与转换条目180的虚拟页地址182相匹配,则条目180被判定为与目标地址相对应。将与虚拟页地址182进行匹配的部分的大小取决于页大小186。例如,对于使用32位地址定义的地址空间,页地址182将是地址的高20位,而低12位将标识相同页内不同的地址(212=4096=4千字节)。因此,如果目标地址的高20位与转换条目180中的一个转换条目的虚拟页地址182相匹配,ATU 120中将发生命中。如果命中被检测到,则目标地址的虚拟页地址182被转换成相应的转换条目180的物理页地址184。目标地址的其余位(上面给定的示例中的低12位)指定页偏移量,并在转换后保持不变。
如果多个命中信号155、160指示命中,则图11的故障生成电路122生成故障状态。然而,有时候可能希望抑制故障的生成,即使有命中。如图14中所示出的,操作系统可以为它自己的存储器访问保留地址空间的部分190。应用也可以使用保留给操作系统的部分190的子部分192。在这种情况下,区域192的MPU 170通常将许可176设为应用特权级别EL0以指示对区域190的读和写不被允许,并将许可178设为操作系统特权级别EL1以指示读和写被允许。在这种情况下,应用EL0对区域190的访问将是不可能的,并且当ATU和MPU两者都标识目标地址的匹配条目时如果生成故障,则应用不能被执行。
如图14的下部所示出的,为使应用能够被执行,特权级别EL0对子区域192的访问可以使用ATU 120将它们的地址转换为物理地址,以便它使用物理地址空间的不同部分,避免与保留给操作系统的部分190的冲突。当发生以下事件时,故障生成电路122可以抑制故障状态的生成:(a)在第一MPU 38中针对目标地址有命中;(b)在ATU 120中也有命中;(c)存储器访问操作具有预定的特权级别(例如,EL0);以及(d)第一MPU 38使用相应的一组许可数据来判定存储器访问不被许可。因此,尽管在第一MPU 38和ATU 120两者中都有命中,但是对转换地地址的访问可以继续。
预定特权级别(针对该特权级别的故障生成被抑制)可以是软件(其将使用ATU120在存储器地址空间中被重定位以避免与其它软件的冲突)的特权级别。虽然图14示出的示例中来自特权级别EL0的访问使它们的目标地址被转换以避免与特权级别EL1的冲突,但在其它示例中这可能完全相反,有可能EL1的访问使它们的地址被转换,而EL0的访问保留地址空间的原有部分。此外,为了在存储器访问不被MPU 38许可时允许存储器访问继续使用地址转换,ATU 120应当执行转换查找,而不论第一MPU 38中的查找的结果(与上面所描述的特征不同,在上述特征中,如果MPU 38判定存储器访问不被允许,则ATU 120可以省去转换查找)。
协处理器50被用于对第一MPU 38和ATU 120进行编程。先前的MPU已经被使用图15中所示出的遗留接口196的软件编程。协处理器50可以具有更新存储位置用于存储区域选择器200、区域基址202、区域极限地址204、对特权级别EL0的一组访问许可206和对特权级别EL1的一组访问许可208。存储位置例如可以是寄存器或寄存器的子部分。为了对第一MPU38中的一组许可数据进行更新,由处理电路22执行的软件将要更新的许可数据的标识符写入区域选择器存储位置200,并将所需的基址、极限地址和许可的值写入其它存储位置202、204、206、208。如果第一MPU 38中需要更新多于一组许可数据,则这些许可数据被顺序更新,其中每个更新被隔离操作分离,以确保在下一次更新的数据被写入位置200-208之前被写入存储位置200-208的数据已经被第一MPU 38读取。这在更新存储器保护数据时可能导致延迟,在实时操作系统中这种延迟可能是不利的。
为了解决这个问题,本技术提供了一种更新接口210,如图16中所示出的。不同于提供一组位置200-208用于一次更新单个MPU条目,图16中所示出的接口210包括多组更新存储位置212。为了更新一组给定的许可数据,由处理电路22执行的软件将更新数据写入与需要被更新的那组许可数据相对应的一组更新存储位置212。这避免需要使用隔离操作来分离对不同的MPU条目的更新,加快更新。
尽管图16中所示出的主接口210更适于实时系统,如果该系统执行已经针对图15的遗留接口而设计的遗留软件,则协处理器50中可以提供这两种接口,以允许新软件和遗留软件都能对第一MPU 38进行更新。
图17示出使用第一MPU 38和ATU 120对存储器访问操作进行处理的方法。在步骤300处,存储器访问操作被指定目标地址A的处理电路22触发。在步骤302处,第一MPU 38执行保护查找以搜寻与包括目标地址A的区域相对应的许可数据组。在步骤304处,第一MPU38判定针对任何区域x是否已经存在保护命中(即,目标地址在由MPU条目x所定义的区域内)。如果存在命中,则在步骤306处第一MPU 38将区域x的保护命中信号x设为1。如果没有命中,则在步骤308处第一MPU 38将与区域x相对应的保护命中信号x设为0。针对第一MPU38中所定义的每个区域重复步骤304-308。
在第一MPU 38进行操作的同时,地址转换单元120在步骤310处执行转换查找,以检查针对目标地址A是否存在相应的转换表条目。在步骤312处,ATU 120判定在任何转换条目y中是否已经有命中。如果存在针对转换条目y的转换命中,则在步骤314处与条目y相对应的转换命中信号被设为1,而如果没有命中则在步骤316处转换命中信号y被设为0。此外,针对ATU 120的每个条目重复步骤312-316。
如果在第一MPU 38中已经有命中,则步骤306之后方法前进到步骤320,在步骤320处,第一MPU 38使用在与目标地址相匹配的条目中针对当前的异常级别所定义的那组许可来判定存储器访问是否被许可。如果访问被许可,则在步骤322处通过信号150被设为1,而如果访问不被许可,在在步骤324处通过信号被设为0。通过信号150被提供给第二MPU40。如果通过信号150等于1,则第二MPU在步骤326处判定访问是否符合访问许可。如果第二MPU判定访问被许可,则在步骤328处访问被发送到存储器以被处理。另一方面,如果第一MPU 38或第二MPU 40两者中的任一者判定访问不被许可,则在步骤330处或332处执行故障处理(步骤330与操作系统许可故障处理相对应,步骤332与超管理程序故障许可处理相对应)。
如果目标地址已经与转换单元中的条目相匹配,则在步骤314之后方法进行到步骤340,在步骤340处,目标地址A根据ATU 120的转换条目从虚拟地址VA转换为物理地址PA。在步骤342处,转换得到的物理地址被传递到第二MPU 40,第二MPU 40然后在步骤344处检查访问是否被许可。步骤344、346、348与上述步骤326、328、332相同。第二MPU40的访问许可检查是相同的,而不管目标地址命中第一MPU还是ATU120。
同时,继从步骤302到316的保护查找和转换查找操作,在步骤350处,故障生成电路122判定(a)多个命中信号155、160是否等于1;或(b)无一命中信号155、160等于1。如果系统已经被正确编程,则单个命中信号将等于1,其它命中信号155、160将等于0。在这种情况下,在步骤352处,故障生成电路122不触发故障状态。
然而,如果已经触发零个、两个或更多个命中,则在步骤354处,故障生成电路122检测是否发生事件的以下组合:(i)存储器访问来自预定特权级别(在本示例中,EL0);(ii)在ATU 120中有命中;以及(iii)所接收到的来自第一MPU 38的通过信号150指示访问不被许可。如果是这样的话,则因为基于由ATU 120提供的转换存储器访问被允许继续,在步骤352处没有故障状态被触发(这是图14中所示的情况)。另一方面,如果在步骤354处未检测到事件的这种组合,则在步骤356处生成故障状态。对于所有类型的错误故障可以是相同的,或者可替代地,取决于在MPU中是否已经有多个命中、在ATU中是否已经有多个命中、在MPU和ATU中是否已经分别有一个命中或者在MPU和ATU中是否没有命中,故障生成电路122可以生成不同种类的故障。在步骤358处,系统执行故障处理软件用于处理故障。例如,系统可以激活警报灯以通知用户有问题存在、可以暂停对触发故障的存储器访问请求的处理或可以提供对由多个命中引起的潜在的不安全情况进行处理的一些其它方式。
图18示出另一示例,其中第一MPU 38具有相应的存储器保护缓存(微MPU)400,ATU120具有相应的地址转换缓存(微ATU)410。微MPU 400存储第一MPU 38的许可数据组的子集。微ATU 410存储ATU120的地址转换条目的子集。响应于存储器访问操作,目标地址被提供给第一MPU 38、微MPU 400、ATU 120和微ATU 410中的每一者。
如果微MPU 400存储与包括目标地址的区域相应的一组许可数据,则使用这组许可数据对存储器访问的访问许可进行控制,并且可以省去对第一MPU 38的完整的查找。如果微MPU 400不存储相对应的这组许可数据,则对第一MPU 38执行完整的查找,并且如果在第一MPU 38中有命中,则使用所获得的这组许可数据(其还可以被放置在微MPU 400中,以便对后续存储器的相同区域的访问可以更快速地被处理)对存储器访问进行处理。由于微MPU 400存储的许可数据组比第一MPU 38少,因此对微MPU 400的查找比对第一MPU 38的查找更快、更节能。
类似地,如果微ATU 410存储与包括目标地址的页相对应的地址转换条目,则使用所获得的地址转换条目将目标地址从虚拟地址转换为物理地址,并且可以省去对ATU 120的完整的查找。另一方面,如果微ATU 410不存储相应的条目,则对ATU 120执行完整的查找,并且如果有命中,则使用ATU 120中获得的条目对目标地址进行转换。然后可以用从ATU120获得的条目对微ATU 410进行更新。
与由第一MPU 38和ATU 120生成的命中信号155、160类似,微MPU 400和微ATU 410也生成相应的命中信号420、430,其指示与目标地址相对应的数据是否已经被标识。如前述,如果没有命中信号155、160、420、430指示命中,或者如果多个命中信号155、160、420、430指示命中(除非出现关于图17的步骤354和图14所描述的情况),则故障生成电路122生成故障。
任何种类的缓存线填充和驱逐方案可以被用于控制哪个数据被放置在微MPU 400或微ATU 410中。虽然本示例示出双级MPU和双级ATU,但是在其它示例中可以提供其它级别的缓存。此外,MPU缓存级别的数目并不是必须与ATU缓存级别的数目相同。
图19示出另一示例,该示例中提供选择单元450用于选择第一MPU38和ATU 120中的哪一者应当处理特定的存储器访问。选择单元450可以存储一组选择条目,其定义应当被用于第一MPU 38的一些存储器范围130以及应当被用于ATU 120的其它存储器范围132(以类似于图9的示例的方式有效地划分地址空间)。选择单元450将MPU选择信号传递到第一MPU 38并将ATU选择信号470传递到ATU 120,指示每个单元是否被选择以用于处理存储器访问。由于选择单元450仅选择第一MPU 38和ATU 120中的一者,在本实施例中故障生成电路122可能不是必要的,因为对于给定的存储器访问MPU 38和ATU 120两者不可能都是活跃的。然而,如果期望在第一MPU 38的多个条目中有命中或ATU 120的多个条目中有命中的情况下生成故障,则仍然可以提供故障生成电路122。
虽然已经参照附图在本文中对本发明的说明性实施例进行了详细的描述,但是应当理解,本发明不限于那些精确的实施例,并且其中可以由本领域技术人员实现各种变化和修改而不背离由所附权利要求所限定的本发明的范围和精神。

Claims (19)

1.一种用于对数据进行处理的装置,包括:
处理电路,所述处理电路被配置为执行程序指令流;
第一存储器保护单元,所述第一存储器保护单元被配置为:
接收直接指定存储器内存储器地址位置的物理地址,以便所述处理电路执行存储器访问操作;以及
根据第一组许可来判定所述存储器访问操作是否被许可;和
第二存储器保护单元,所述第二存储器保护单元被配置为:
接收所述物理地址;以及
根据第二组许可来判定所述存储器访问操作是否被许可;其中
仅当所述存储器访问操作满足所述第一组许可和所述第二组许可二者时,所述存储器访问操作被许可,
其中,所述处理电路被配置为在异常级别层级内的可选的异常级别处操作;
当在所述异常级别层级内的第一异常级别处操作时,所述处理电路被许可改变所述第一组许可,并且不被许可改变所述第二组许可;以及
当在所述异常级别层级内的第二异常级别处操作时,所述处理电路被许可改变所述第二组许可。
2.如权利要求1所述的装置,其中,所述处理电路被配置为:当在所述第一异常级别处操作时执行实时操作系统的程序指令,当在所述第二异常级别处操作时执行超管理程序的程序指令。
3.如权利要求2所述的装置,其中,所述超管理程序控制所述处理电路执行多个实时操作系统中选中的一个实时操作系统,所述多个实时操作系统各自具有相关联的第一组许可。
4.如权利要求1所述的装置,其中,分别使用所述第一组许可和所述第二组许可向所述第一存储器保护单元和所述第二存储器保护单元提供至少部分共享的硬件。
5.如前述权利要求中的任一项所述的装置,包括:
存储器管理单元,所述存储器管理单元被配置为:
接收指定虚拟存储器地址空间内虚拟存储器地址位置的虚拟地址,以便所述处理电路执行所述虚拟存储器访问操作;以及
根据存储器映射数据将所述虚拟地址转换为直接指定所述存储器内物理存储器地址位置的物理地址。
6.如权利要求5所述的装置,其中,所述存储器管理单元被配置为根据所述存储器映射数据内的一组虚拟存储器许可判定所述虚拟存储器访问操作是否被许可。
7.如权利要求1所述的装置,其中,
当在所述第一异常级别处操作时,所述处理电路被许可改变所述存储器映射数据,并且不被许可改变所述第二组许可。
8.如权利要求1所述的装置,包括选择电路,所述选择电路被配置为:当从所述第二异常级别切换到所述第一异常级别时进行操作,以将所述第一存储器保护单元和所述存储器管理单元中的一者选为在所述处理电路以所述第一异常级别进行操作时为活跃的。
9.如权利要求8所述的装置,其中,
所述选择电路的所述选择取决于所述处理电路在所述第二异常级别处操作时所写的选择位;并且
所述选择位不能由所述处理电路在所述第一异常级别处操作时来写。
10.如权利要求9所述的装置,包括异常控制电路,所述异常控制电路被配置为:当从所述第一异常级别切换到所述第二异常级别时存储上下文数据,当从所述第二异常级别切换到所述第一异常级别时恢复所述上下文数据,其中所述选择位是所述上下文数据的一部分。
11.如权利要求5所述的装置,其中,所述存储器管理单元包括转换后备缓冲器,所述转换后备缓冲器被配置为存储将虚拟地址映射到物理地址的转换数据。
12.如权利要求5所述的装置,其中,所述存储器管理单元被配置为通过存储在所述存储器内的页表数据执行页表行走操作,以确定所述存储器映射数据。
13.如权利要求5所述的装置,其中,所述处理电路被配置为使用所述虚拟存储器地址空间执行支持图形用户界面的操作系统以及一个或多个应用程序。
14.如权利要求5所述的装置,其中,
当所述第一存储器保护单元活跃时,所述第一组许可能够由所述处理电路来写,转换表基址寄存器值不能由所述处理电路来写,所述转换表基址寄存器值指示用于确定所述存储器映射数据的页表数据的起始位置;并且
当所述存储器管理单元活跃时,所述第一组许可不能由所述处理电路来写,转换表基址寄存器值能够由所述处理电路来写,所述转换表基址寄存器值指示用于确定所述存储器映射数据的页表数据的起始位置。
15.如权利要求14所述的装置,其中,所述第一组许可和所述转换表基址寄存器值被存储为协处理器电路内的寄存器映射值,所述协处理器电路被耦接到所述处理电路。
16.如权利要求1所述的装置,其中,所述第一存储器保护单元和所述第二存储器保护单元被配置为并行操作,以分别检查所述第一组许可和所述第二组许可。
17.一种对数据进行处理的方法,所述方法包括以下步骤:
用处理电路执行程序指令流;
使用第一存储器保护单元来执行以下操作:
接收直接指定存储器内存储器地址位置的物理地址,以便所述处理电路执行存储器访问操作;以及
根据第一组许可来判定所述存储器访问操作是否被许可;和
使用第二存储器保护单元来执行以下操作:
接收所述物理地址;以及
根据第二组许可来判定所述存储器访问操作是否被许可;其中
仅当所述存储器访问操作满足所述第一组许可和所述第二组许可二者时,所述存储器访问操作被许可
所述方法还包括以下步骤:
在异常级别层级内的可选的异常级别处操作所述处理电路;
当在所述异常级别层级内的第一异常级别处操作时,许可所述处理电路改变所述第一组许可,并且不许可改变所述第二组许可;以及
当在所述异常级别层级内的第二异常级别处操作时,许可所述处理电路改变所述第二组许可。
18.如权利要求17所述的方法,包括使用存储器管理单元的以下步骤:
接收指定虚拟存储器地址空间内虚拟存储器地址位置的虚拟地址,以便所述处理电路执行所述虚拟存储器访问操作;以及
根据存储器映射数据将所述虚拟地址转换为直接指定所述存储器内物理存储器地址位置的物理地址。
19.如权利要求17和18中任一项所述的方法,包括以下步骤:当从所述第二异常级别切换到所述第一异常级别时,将所述第一存储器保护单元和所述存储器管理单元中的一者选为在所述处理电路以所述第一异常级别进行操作时为活跃的。
CN201380071716.4A 2013-02-05 2013-02-05 使用存储器保护单元来支持客户操作系统的虚拟化 Active CN104956342B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/GB2013/050257 WO2014122415A1 (en) 2013-02-05 2013-02-05 Virtualisation supporting guest operating systems using memory protection units

Publications (2)

Publication Number Publication Date
CN104956342A CN104956342A (zh) 2015-09-30
CN104956342B true CN104956342B (zh) 2018-04-27

Family

ID=47678887

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380071716.4A Active CN104956342B (zh) 2013-02-05 2013-02-05 使用存储器保护单元来支持客户操作系统的虚拟化

Country Status (7)

Country Link
US (1) US9747052B2 (zh)
EP (1) EP2954419B1 (zh)
JP (1) JP6106765B2 (zh)
KR (1) KR102051816B1 (zh)
CN (1) CN104956342B (zh)
IL (1) IL239668B (zh)
WO (1) WO2014122415A1 (zh)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014208848A1 (de) * 2014-05-12 2015-11-12 Robert Bosch Gmbh Verfahren zum Überwachen eines elektronischen Sicherheitsmoduls
GB2539436B (en) 2015-06-16 2019-02-06 Advanced Risc Mach Ltd Secure initialisation
GB2539433B8 (en) 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Protected exception handling
GB2539428B (en) 2015-06-16 2020-09-09 Advanced Risc Mach Ltd Data processing apparatus and method with ownership table
GB2539429B (en) * 2015-06-16 2017-09-06 Advanced Risc Mach Ltd Address translation
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
EP3264317B1 (en) * 2016-06-29 2019-11-20 Arm Ltd Permission control for contingent memory access program instruction
US11442760B2 (en) * 2016-07-01 2022-09-13 Intel Corporation Aperture access processors, methods, systems, and instructions
GB2553102B (en) * 2016-08-19 2020-05-20 Advanced Risc Mach Ltd A memory unit and method of operation of a memory unit to handle operation requests
US10114768B2 (en) * 2016-08-29 2018-10-30 Intel Corporation Enhance memory access permission based on per-page current privilege level
US10713177B2 (en) 2016-09-09 2020-07-14 Intel Corporation Defining virtualized page attributes based on guest page attributes
DE102016222695A1 (de) * 2016-11-17 2018-05-17 Continental Teves Ag & Co. Ohg Verfahren zur automatischen und dynamischen Re-Konfiguration einer Speicherschutz-Einheit sowie ein Mikrocontroller mit einer Speicherschutz-Einheit
US10649678B2 (en) * 2017-01-13 2020-05-12 Arm Limited Partitioning of memory system resources or performance monitoring
US20180203807A1 (en) 2017-01-13 2018-07-19 Arm Limited Partitioning tlb or cache allocation
US10394454B2 (en) 2017-01-13 2019-08-27 Arm Limited Partitioning of memory system resources or performance monitoring
US10268379B2 (en) 2017-01-13 2019-04-23 Arm Limited Partitioning of memory system resources or performance monitoring
US10664306B2 (en) 2017-01-13 2020-05-26 Arm Limited Memory partitioning
JP6541912B2 (ja) * 2017-03-02 2019-07-10 三菱電機株式会社 情報処理装置およびアクセス管理プログラム
GB2562102B (en) * 2017-05-05 2019-09-04 Advanced Risc Mach Ltd An apparatus and method for managing use of capabilities
GB2563009B (en) * 2017-05-25 2019-12-25 Advanced Risc Mach Ltd An apparatus and method for interpreting permissions associated with a capability
US10664400B2 (en) 2017-07-11 2020-05-26 Arm Limited Address translation cache partitioning
CN110383256B (zh) * 2018-02-02 2022-01-14 华为技术有限公司 一种内核完整性保护方法及装置
JP6990150B2 (ja) * 2018-06-18 2022-01-12 ルネサスエレクトロニクス株式会社 データ処理装置及びメモリ保護方法
GB2575877B (en) 2018-07-27 2021-06-09 Advanced Risc Mach Ltd Memory protection unit using memory protection table stored in memory system
US11256625B2 (en) 2019-09-10 2022-02-22 Arm Limited Partition identifiers for page table walk memory transactions
FR3100901B1 (fr) * 2019-09-12 2021-08-27 Stmicroelectronics Grand Ouest Sas Système de protection de la mémoire
GB2596103B (en) 2020-06-17 2022-06-15 Graphcore Ltd Dual level management
CN113360422B (zh) * 2021-07-13 2022-02-18 科东(广州)软件科技有限公司 一种异构系统中实时操作系统设备收发数据的方法及装置
CN117916720A (zh) * 2021-10-15 2024-04-19 华为技术有限公司 调节对内存的访问

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6578110B1 (en) * 1999-01-21 2003-06-10 Sony Computer Entertainment, Inc. High-speed processor system and cache memories with processing capabilities
WO2001057657A1 (en) * 2000-02-01 2001-08-09 Cirrus Logic, Inc. Methods and circuits for selectively operating a system in a secure environment
US20020069341A1 (en) * 2000-08-21 2002-06-06 Gerard Chauvel Multilevel cache architecture and data transfer
DE60308215T2 (de) * 2002-11-18 2007-08-23 Arm Ltd., Cherry Hinton Prozessorschaltung zwischen sicheren und nicht sicheren modi
JP4302641B2 (ja) * 2002-11-18 2009-07-29 エイアールエム リミテッド デバイスによるメモリへのアクセスの制御
GB0226874D0 (en) * 2002-11-18 2002-12-24 Advanced Risc Mach Ltd Switching between secure and non-secure processing modes
GB0226875D0 (en) * 2002-11-18 2002-12-24 Advanced Risc Mach Ltd Control of access to a memory by a device
US7975117B2 (en) * 2003-03-24 2011-07-05 Microsoft Corporation Enforcing isolation among plural operating systems
US20070174910A1 (en) * 2005-12-13 2007-07-26 Zachman Frederick J Computer memory security platform
KR101396831B1 (ko) * 2007-03-30 2014-05-21 삼성전자주식회사 메모리 접근 제어 방법
GB2460393B (en) * 2008-02-29 2012-03-28 Advanced Risc Mach Ltd A data processing apparatus and method for controlling access to secure memory by virtual machines executing on processing circuitry
US8205197B2 (en) * 2008-11-12 2012-06-19 Lenovo (Singapore) Pte. Ltd. Apparatus, system, and method for granting hypervisor privileges
US20110202740A1 (en) * 2010-02-17 2011-08-18 Arm Limited Storing secure page table data in secure and non-secure regions of memory
WO2014122414A1 (en) * 2013-02-05 2014-08-14 Arm Limited Handling memory access operations in a data processing apparatus
US9215129B2 (en) * 2013-04-11 2015-12-15 International Business Machines Corporation Automatically constructing protection scope in a virtual infrastructure

Also Published As

Publication number Publication date
IL239668B (en) 2019-02-28
EP2954419B1 (en) 2017-03-29
US20150347052A1 (en) 2015-12-03
JP2016510469A (ja) 2016-04-07
WO2014122415A1 (en) 2014-08-14
CN104956342A (zh) 2015-09-30
EP2954419A1 (en) 2015-12-16
KR102051816B1 (ko) 2019-12-04
JP6106765B2 (ja) 2017-04-05
IL239668A0 (en) 2015-08-31
KR20150117278A (ko) 2015-10-19
US9747052B2 (en) 2017-08-29

Similar Documents

Publication Publication Date Title
CN104956342B (zh) 使用存储器保护单元来支持客户操作系统的虚拟化
US9940268B2 (en) Handling memory access protection and address translation in a data processing apparatus
US9753868B2 (en) Memory management device and non-transitory computer readable storage medium
JP7133615B2 (ja) アドレス変換キャッシュ
CN104516830A (zh) 多阶段地址转换中的转换旁路
US20190286831A1 (en) Handling access attributes for data accesses
EP2537097A2 (en) Storing secure mode page table data in secure and non-secure regions of memory
CN108292272A (zh) 用于管理有界指针的装置和方法
CN109426624B (zh) 用于高效利用地址转换缓存的装置和方法
KR102346255B1 (ko) 조건부 메모리 액세스 프로그램 명령에 대한 허가 제어
JP7444853B2 (ja) メモリ・アクセスを制御するための装置及び方法
JP7397057B2 (ja) メモリ・システム内に記憶されている制御テーブルのための二分探索手順
US10558486B2 (en) Memory address translation management
EP3916568A1 (en) Tag checking apparatus and method
EP3818447B1 (en) Memory access control
US11734011B1 (en) Context partitioning of branch prediction structures
WO2012156850A1 (en) Managing the translation look-aside buffer (tlb) of an emulated machine

Legal Events

Date Code Title Description
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant