CN112585590A - 存储器访问控制 - Google Patents

存储器访问控制 Download PDF

Info

Publication number
CN112585590A
CN112585590A CN201980055101.XA CN201980055101A CN112585590A CN 112585590 A CN112585590 A CN 112585590A CN 201980055101 A CN201980055101 A CN 201980055101A CN 112585590 A CN112585590 A CN 112585590A
Authority
CN
China
Prior art keywords
memory address
process group
access
given
groups
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
CN201980055101.XA
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.)
ARM Ltd
Original Assignee
ARM 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 ARM Ltd filed Critical ARM Ltd
Publication of CN112585590A publication Critical patent/CN112585590A/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/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
    • 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/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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/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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Vehicle Body Suspensions (AREA)

Abstract

一种装置多线程处理元件,该多线程处理元件用于将处理线程作为一个或多个进程组来执行,其中,该一个或多个进程组各自具有一个或多个处理线程,每个进程组具有在一个或多个进程组中唯一的进程组标识符,并且进程组标识符通过能力数据与虚拟存储器地址空间中的相应存储器地址范围相关联;以及存储器地址转换电路,该存储器地址转换电路用于通过进程组中的一个进程组的处理线程将虚拟存储器地址转换为物理存储器地址;存储器地址转换电路被配置为:将许可数据与给定虚拟存储器地址到相应物理存储器地址的转换相关联,许可数据定义一个或多个进程组标识符,一个或多个进程组标识符表示被允许访问给定虚拟存储器地址的相应进程组;根据与请求存储器访问的处理线程的进程组相关联的能力数据,以及根据对许可数据是否定义请求存储器访问的处理线程的进程组的进程组标识符的检测,而禁止对给定虚拟存储器地址的访问。

Description

存储器访问控制
技术领域
本公开涉及存储器访问控制。
背景技术
数据处理装置的一些示例将进程处理为一个或多个所谓的隔间或进程组,该隔间或进程组中的每个具有一个或多个线程。存储器访问由所谓的能力数据确定,在所谓的混合隔间的情况下该能力数据为环境(通用)能力,或者在所谓的纯隔间的情况下该能力数据为隔间专用能力。
在论文“CHERI:用于可扩展软件隔间化的混合能力系统架构(CHERI:A HybridCapability-System Architecture for Scalable Software Compartmentalization)”(2015年IEEE安全与隐私研讨会,2015年5约17日至21日,ISBN 978-1-4673-6949-7)中论述了这样的隔间的示例,该论文的内容以引用方式并入本文中。
隔间通过共享存储器地址或区域相互通信可以是有用的。然而,认为能够撤销这样共享访问是有用的,例如,以将存储器地址或区域重新分配给另一用途。这可能是困难的,因为在任何时候,系统很难知道哪些正在进行的对共享存储器的引用仍然有效。
发明内容
在示例性布置中,提供一种装置,该装置包括:
多线程处理元件,该多线程处理元件用于将处理线程作为一个或多个进程组来执行,其中,该一个或多个进程组各自具有一个或多个处理线程,每个进程组具有在一个或多个进程组中唯一的进程组标识符,并且进程组标识符通过能力数据与虚拟存储器地址空间中的相应存储器地址范围相关联;以及
存储器地址转换电路,该存储器地址转换电路用于通过进程组中的一个进程组的处理线程将虚拟存储器地址转换为物理存储器地址;
存储器地址转换电路被配置为:将许可数据与给定虚拟存储器地址到相应物理存储器地址的转换相关联,许可数据定义一个或多个进程组标识符,一个或多个进程组标识符表示被允许访问给定虚拟存储器地址的相应进程组;根据与请求存储器访问的处理线程的进程组相关联的能力数据,以及根据对许可数据是否定义请求存储器访问的处理线程的所述进程组的所述进程组标识符的检测,而禁止对所述给定虚拟存储器地址的访问。
在另一示例性布置中,提供一种方法,该方法包括:
使用多线程处理元件将处理线程作为一个或多个进程组来执行,该进程组各自具有一个或多个处理线程,每个进程组具有在一个或多个进程组中唯一的进程组标识符,并且进程组标识符通过能力数据与虚拟存储器地址空间中的相应存储器地址范围相关联;
使用存储器地址转换电路,通过进程组中的一个进程组的处理线程将虚拟存储器地址转换为物理存储器地址;
存储器地址转换电路将许可数据与给定虚拟存储器地址到相应物理存储器地址的转换相关联,许可数据定义一个或多个进程组标识符,一个或多个进程组标识符表示被允许访问给定虚拟存储器地址的相应进程组;以及
存储器地址转换电路根据与请求存储器访问的处理线程的进程组相关联的能力数据,以及根据对许可数据是否定义请求存储器访问的处理线程的进程组的进程组标识符的检测,而禁止对给定虚拟存储器地址的访问。
本技术的其他相应方面及特征由所附权利要求限定。
附图说明
仅作为示例,将参考如附图中所示本技术的实施例来进一步描述本技术。
图1示意性地示出了数据处理装置;
图2示意性地示出了有界指针;
图3示意性地示出了能力寄存器的使用;
图4示意性地表示能力字段的集合;
图5示意性地示出了转换后备缓冲器(TLB)以及存储器管理单元(MMU)的使用;
图6为示出了通过TLB及MMU进行的操作的示意性流程图;
图7示意性地示出了隔间的集合;
图8示意性地示出了由隔间管理器进行的共享存储器区域的建立;
图9示意性地示出了共享存储器区域的使用;
图10示意性地示出了共享存储器区域的重新分配;
图11示意性地示出了存储器地址转换单元;
图12和图13示意性地示出了存储器访问条件;
图14至图16示意性地示出了共享存储器区域的重新分配;
图17至图21是示出了相应方法的示意性流程图;以及
图22示意性地示出了仿真器实现。
具体实现方式
在参考附图讨论实施例之前,提供对实施例的以下描述。
示例性实施例提供一种装置,该装置包括:
多线程处理元件,该多线程处理元件用于将处理线程作为一个或多个进程组来执行,其中,该一个或多个进程组各自具有一个或多个处理线程,每个进程组具有在一个或多个进程组中唯一的进程组标识符,并且进程组标识符通过能力数据与虚拟存储器地址空间中的相应存储器地址范围相关联;以及
存储器地址转换电路,该存储器地址转换电路用于通过进程组中的一个进程组的处理线程将虚拟存储器地址转换为物理存储器地址;
存储器地址转换电路被配置为:将许可数据与给定虚拟存储器地址到相应物理存储器地址的转换相关联,许可数据定义一个或多个进程组标识符,一个或多个进程组标识符表示被允许访问给定虚拟存储器地址的相应进程组;根据与请求存储器访问的处理线程的进程组相关联的能力数据,以及根据对许可数据是否定义请求存储器访问的处理线程的所述进程组的所述进程组标识符的检测,而禁止对所述给定虚拟存储器地址的访问。
本技术可以允许使用由诸如MMU和/或TLB之类的存储器地址转换电路处置的控制机制来在进程组或隔间之间共享存储器地址或区域,使得可仅通过改变由存储器地址转换电路所保存的许可数据来撤销共享访问。
在示例性布置中,处理元件被配置为实现进程组管理器,该进程组管理器可操作用于至少将进程组标识符分配给每个进程组。例如,对于要在两个或更多个进程组之间共享访问的存储器地址范围而言,进程组管理器可具有其他功能,例如,进程组管理器可操作用于向存储器地址转换电路提供两个或更多个进程组的进程组标识符。在此情况下,存储器地址转换电路可被配置为存储两个或更多个进程组的进程组标识符作为许可数据。这可以提供总体进程组管理器维持由存储器地址转换电路保存的许可数据的便利方式。在一些示例中,进程组管理器被配置为:通过启动从存储器地址转换电路所保存的许可数据中删除给定进程组的进程组标识符,启动撤销给定进程组对存储器地址范围的访问。
在示例性布置中,不同进程组类型之间的访问允许性可不同。例如,对于第一进程组类型,能力数据定义适用于第一类型的所有进程组的允许存储器地址范围;对于第二进程组类型的给定进程组,能力数据定义适用于第二进程组类型的给定进程组的允许存储器地址范围。
在一些示例中,对于第一进程组类型(例如,所谓混合类型)的给定进程组而言,存储器地址转换电路被配置为在以下情况中的一者或两者发生时允许对给定虚拟存储器地址的访问:
(i)能力数据指示给定虚拟存储器地址处于给定进程组的允许存储器地址范围内;以及
(ii)给定进程组的进程组标识符是由许可数据定义的进程组标识符;
并且其他情况下禁止访问。
在一些示例中,对于第二进程组类型(例如,所谓纯类型)的给定进程组,存储器地址转换电路被配置为在以下情况中的两者都发生时允许对给定虚拟存储器地址的访问:
(i)能力数据指示给定虚拟存储器地址处于给定进程组的允许存储器地址范围内;以及
(ii)给定进程组的进程组标识符是由许可数据定义的进程组标识符;
并且其他情况下禁止访问。
例如,存储器地址转换电路可包括以下项中的一者或两者:存储器管理单元;转换后备缓冲器。
另一示例实施例提供一种方法,该方法包括:
使用多线程处理元件将处理线程作为一个或多个进程组来执行,该进程组各自具有一个或多个处理线程,每个进程组具有进程组标识符,进程组标识符在一个或多个进程组中是唯一的,并且进程组标识符通过能力数据与虚拟存储器地址空间中的相应存储器地址范围相关联;
使用存储器地址转换电路,通过进程组中的一个进程组的处理线程将虚拟存储器地址转换为物理存储器地址;
存储器地址转换电路将许可数据与给定虚拟存储器地址到相应物理存储器地址的转换相关联,许可数据定义一个或多个进程组标识符,一个或多个进程组标识符表示被允许访问给定虚拟存储器地址的相应进程组;以及
存储器地址转换电路根据与请求存储器访问的处理线程的进程组相关联的能力数据,以及根据对许可数据是否定义请求存储器访问的处理线程的进程组的进程组标识符的检测,而禁止对给定虚拟存储器地址的访问。
现参考附图,图1示意性地示出了数据处理装置2的示例,该数据处理装置2包括用于处理指令的处理流水线4。在此示例中,处理流水线4包括多个流水线级,包括提取级6、解码级8、发出级10、执行级或处理元件12以及回写级14,但应理解,可以提供其他类型或组合的级。例如,在一些实现方式中,可以包括用于执行寄存器重命名的重命名级。待处理指令在级之间移动,并且当指令在级处待决(pending)时,另一指令可在流水线4的不同级处待决。
提取级6从层级1(L1)指令缓存20提取指令。通常,提取级6可以从连续的指令地址顺序地提取指令。然而,提取级也可以具有用于预测分支指令的结果的分支预测器22,并且提取级6可以在分支被预测为被采用的情况下,从(非顺序的)分支目标地址提取指令,或者在分支被预测为不被采用的情况下,从下一顺序地址提取指令。分支预测器22可以包括一个或多个分支历史表,用于存储用于预测某些分支是否很可能被采用的信息。例如,分支历史表可以包括计数器,用于追踪先前执行的分支的实际结果或表示对分支进行的预测的置信度。分支预测器22也可包括分支目标地址缓存(BTAC)24,用于缓存分支指令的先前目标地址以使得在后续遇到相同分支指令时可预测这些目标地址。
所提取的指令被传递到解码级8,该解码级8解码该指令以生成经解码指令。经解码指令可包括控制信息,该控制信息用于控制执行级12以执行适当处理操作。对于从缓存20提取的一些更复杂指令,解码级8可将这些指令映射到多个经解码指令,这可称为微操作(μops或uops)。因此,在从L1指令缓存20提取的指令与由流水线的后续级所见的指令之间可能不存在一对一的关系。一般地,本申请中对“指令”的引用应被解释为包括微操作。
经解码指令被传递到发出级10,该发出级10确定执行指令所需的操作数是否可用,并在操作数可用时发出指令以用于执行。一些实现方式可支持有序(in-order)处理,使得以对应于从L1指令缓存20中提取指令的程序顺序的顺序来发出指令以用于执行。其他实现方式可支持乱序(out-of-order)执行,使得可以以与程序顺序不同的顺序将指令发出到执行级12。乱序处理对于改良性能可以是有用的,因为虽然在等待操作数时先前指令被停止,但可首先执行程序顺序中操作数可用的后指令。
发出级10将指令发出到执行级12,在执行级12处执行指令以执行各种数据处理操作。例如,执行级可包括多个执行单元30、32、34,包括用于对整数值执行算术或逻辑运算的算术/逻辑单元(ALU)30、用于对以浮点(FP)形式表示的值执行运算的浮点单元32,及加载/存储单元34,该加载/存储单元34用于执行加载操作(以将数据值从层级1(L1)数据缓存36加载到寄存器40)或存储操作(以将数据值从寄存器40存储到L1数据缓存36)。应理解,这些仅为可提供的执行单元的类型的一些示例,并且也可以提供许多其他种类。为了执行处理操作,执行级12可以从寄存器40的集合读取数据值。然后,可以通过回写级14将已执行指令的结果回写至寄存器40。
L1指令缓存20及L1数据缓存36可以是包括多级缓存的缓存层次结构的一部分。例如,也可提供层级2(L2)缓存44,并且可选地,可提供其他层级的缓存。在此示例中,L2缓存44在L1指令缓存20与L1数据缓存36之间共享,但其他示例可以具有单独的L2指令及数据缓存。当待提取指令不在L1指令缓存20中时,则可从L2缓存44提取待提取指令,并且类似地,如果该指令不在L2缓存44中,则可从主存储器50提取该指令。类似地,响应于加载指令,如果数据不在L1数据缓存36中则可以从L2缓存44提取数据,并且在需要时从存储器50提取数据。可以使用任何已知方案来管理缓存层次结构。
被流水线4用于指代程序指令以及数据值的地址可以是虚拟地址,但至少主存储器50以及可选地缓存层次结构的至少一些层级可以是物理寻址的。因此,可提供转换后备缓冲器(TLB)52,其在存储器管理单元(MMU)53的控制下用于将流水线4所使用的虚拟地址转换为用于访问缓存或存储器的物理地址。例如,TLB 52可以包括多个条目,该多个条目各自指定虚拟地址空间的相应页面的虚拟页面地址(“VPA”)以及相应的物理页面地址(“PPA”),虚拟页面地址应映射到该相应的物理页面地址(“PPA”),以便将相应页面内的虚拟地址转换为物理地址。例如,虚拟页面地址和物理页面地址可以对应于相应的虚拟地址和物理地址的最高有效部分,而剩余的最低有效部分在虚拟地址映射到物理地址时保持不变。除了地址转换信息以外,每个TLB条目也可以包括指定访问许可(例如,指示在流水线4的某些模式下地址的某些页面是否可访问)的一些信息(“perm”)。在一些实现方式中,TLB条目也可以定义地址的相应页面的其他性质,例如,缓存策略信息,其定义响应于读取或写入操作而更新缓存层次结构的哪些层级(例如,缓存是应以回写还是直写模式操作),或定义是否可由存储器系统重新排序对相应页面中的地址的数据的访问(与由流水线4发出数据访问的顺序相比较)的信息。
虽然图1示出了单层级TLB 52,但应理解,可由MMU 53提供转换的层次结构和/或可提供多个TLB,使得层级1(L1)TLB 52可以包括用于转换多个最近访问的页面中的地址的TLB条目,并且可以提供层级2(L2)TLB用于存储更大数量页面的条目。当所需条目未存在于L1 TLB中时,则该条目可以从L2 TLB提取,或从层次结构中的其他TLB提取。替代地,可使用所谓的中间物理地址(IPA),使得第一转换为从虚拟地址转换到IPA,并且第二层级转换为从IPA转换到物理地址。以此方式,可以使用多层级地址转换,使得(例如)第一TLB(或TLB的层次结构)可用于将虚拟地址转换为中间地址,然后,使用一个或多个其他TLB的第二层级转换可以将中间地址转换为用于访问缓存或存储器的物理地址。这对于支持虚拟化可以是有用的,其中例如,第一层级地址转换可以由操作系统管理,并且第二层级地址转换可由超管理器管理。
在图1中,为了附图的清楚,示出了TLB 52的单个级以及单个层级。
如果要访问页面的所需条目未在TLB中的任一者中,则可由MMU 53执行页表游走(page table walk)以访问存储器50中的所谓页表。在本技术中可以使用任何已知TLB管理方案。
如图1中所示,装置2可具有有界指针寄存器60的集合。虽然在图1中有界指针寄存器的集合被示出为与通用数据寄存器40的集合物理分离,但在一个实现方式中,可使用相同的物理存储来提供通用数据寄存器和有界指针寄存器两者。
每个有界指针寄存器60包括可用于确定要访问的数据值的地址的指针值62,以及指定使用相应指针62时地址的允许范围的范围信息64。有界指针寄存器60也可以包括限制信息66(也称为许可信息),该限制信息66可定义关于指针的使用的一个或多个限制/许可。例如,限制66可以用于限制可使用指针62的指令的类型,或可在其中使用指针的流水线4的模式。因此,范围信息64和限制信息66可以被视为定义允许使用指针62的能力C0-CM-1。当试图使用在已定义能力之外的指针62时,可能触发错误。范围信息64对于(例如)确保指针保持在某些已知边界内并且不会偏离至可能包括敏感或安全信息的存储器地址空间的其他区域可以是有用的。在将同一物理存储用于通用数据寄存器与有界指针寄存器两者的实现方式中,在一个实现方式中,指针值62可以例如被存储在与用于对应的通用寄存器相同的存储位置内。
可以通过多线程处理元件来实现执行级12以执行一个或多个处理线程。
图2示出了示例性类型的指令,对于该类型的指令,允许范围被用于防止对数据或指令的未经授权的访问。如在图2的顶部部分中所示,特定有界指针寄存器PR1包括给定指针值62和范围信息64,在此示例中使用定义允许范围的下部边界的下部边界地址68以及定义允许范围的上部边界的上部边界地址69来指定该范围信息64。例如,边界68、69被设置为定义地址80000至81000的范围。当某些指令引用有界指针寄存器PR1并且根据指针62确定的地址在此范围之外时,可能触发错误。
例如,如图2的部分A中所示,在一些系统中,如果试图将指针寄存器60中的指针62的值设置为处于范围信息64所指定的范围(此处,假设指针直接指定地址)之外的值,则可能触发错误。这避免了指针62采用指定范围之外的任何值,使得可确保使用该指针的任何访问安全地处于允许范围内。替代地,如图2的部分B所示,当指令试图在指针62的地址处于指定范围之外时访问由该地址识别的位置时,可能触发错误。因此,可能仍允许将指针62设置为在指定范围之外的值,但一旦试图进行指针地址(或自指针导出的地址)处的数据访问,则当该地址处于允许范围之外时可能触发错误。其他系统可响应于图2的部分A和部分B中所示的指令的类型而触发错误。
可以以不同方式设置范围信息64,设置该范围信息64的方式为实现细节,并且本发明技术不依赖于所使用的特定方法。仅作为示例,特权指令、用户空间代码、安全代码,或操作系统或超管理器可以指定给定指针所允许的范围。例如,指令设置架构可以包括用于针对给定指针62设置或修改范围信息64的多个指令,并且这些指令的执行可以被限于处理器4的某些软件或某些模式或异常状态。可以使用用于设置或修改范围信息64的任何已知技术。
除了在执行引用指针的某些指令时可以在执行级12处使用的有界指针存储元件60的集合之外,也可以使用程序计数器能力(PCC)寄存器80以在从层级1指令缓存20提取指令时在提取级6处提供类似功能。特别地,程序计数器指针可以被存储在字段82中,其中PCC80也提供范围信息84和任何适当的限制信息86,类似于与有界指针存储元件60的集合中的指针中的每者一起提供的范围和限制信息。图1还示意性地示出了默认数据能力(DDC)寄存器90及系统访问能力(SAC)寄存器95,以下讨论此两者。
图3示意性地示出了如何与单独的数据块相关联地使用标签位以标识这些数据块是表示能力(即,有界指针和相关联的限制信息)还是表示正常数据。特别地,存储器地址空间110将存储一系列数据块115,数据块115通常将具有指定大小。仅为了说明,在此示例中假设每个数据块包括128个位。与每个数据块115相关联地,提供标签字段120,该标签字段120在一个示例中是称作标签位的单个位字段,标签位被置位以标识相关联数据块表示能力,并且被清零以指示相关联数据块表示正常数据并且因此不能被视为能力。应理解,与置位或清零状态相关联的实际值可根据实现方式而不同,但仅通过图示,在一个示例性实现方式中,如果标签位的值为1,则其指示相关联数据块为能力,且若其值为0,则其指示相关联数据块包括正常数据。
当将能力加载到有界指针寄存器60(也称作能力寄存器)中的一个中(例如,图3中所示的能力寄存器100)时,标签位随着能力信息而移动。因此,当能力被加载到能力寄存器100中时,指针102、范围信息104以及限制信息106(后文中称作许可信息)将被加载到能力寄存器中。此外,与该能力寄存器相关联或作为其内的特定位字段,标签位108将被置位以标识内容表示能力。类似地,当能力被存储回存储器时,将与其中存储了能力的数据块相关联地将相关标签位120置位。通过此方法,可以区分能力与正常数据,并且因此确保不会将正常数据用作能力。
返回图1,根据此处描述的技术,可生成可撤销的有界指针,除了与有界指针相关联的常见信息之外,还包括与相应存储器区域相关联的第一符记值(token value),该有界指针将用于控制对于该相应存储器区域的访问。此外,为了与可撤销有界指针(其与存储器区域的分配实例有关)相关联地使用,提供标头(header),该标头被存储在存储器中的标头位置处,其中该标头具有第一符记字段,该第一符记字段的存储值初始化为第一符记值(与可撤销有界指针相关联地使用)。标头位置被布置为可从可撤销有界指针所提供的范围信息导出,因此使得能够在有界指针用于生成存储器地址时定位标头。当随后对已分配存储器区域解除分配时,修改第一符记字段中的存储值。
能力
尽管可将更高级别应用程序布置为在“安全”约束执行环境(例如,JAVA和JavaScript)中运行,但系统的较低层一般必须提供到硬件上的实际执行的链路。因此,几乎所有这样的层当前都以C/C++程序语言编写,C/C++程序语言通常包括数千万行可信(但不值得信赖)的代码。
旨在提供种底层架构,以提供对恶意攻击更强的固有免疫力。能力可以提供此策略的一部分。
能力数据类型表示访问一个或多个架构定义的资源的可委托的权限符记。能力大致分为三种类型:
1)存储器能力,用于允许对用于数据传送及指令提取的存储器范围的访问
2)系统访问能力,用于对某些系统操作的访问
3)密封能力,用于封装具有对象类型的其他能力
每个能力包括多个逻辑字段,该多个逻辑字段中的一些逻辑字段仅存在于某些能力类型中。在图4中示意性地示出这些字段的示例。
能力寄存器用于保存能力以及定义存储器系统的扩展,使得在能力被保存在通用存储器中时强制执行能力性质。可提供指令以:从存储器加载并存储能力,使用能力寄存器以对存储器中的数据及能力进行访问,使用能力进行分支,以及操纵保存于能力寄存器中的能力而无需缔造(forge)新的权利。
由于使用能力而引起的限制超出了由现有MMU以及基于异常层级的限制所强制执行的限制。可将能力的使用设置为不会削弱这些机制已提供的保护。
环境能力
可提供定义环境能力的一个或多个(例如,三个)环境能力寄存器。使用这些设施,可在每个异常层级处启用和禁用能力扩展的环境作用。在异常层级处启用环境作用启用环境能力寄存器的作用,修改异常条目的行为并返回到该层级,并修改自然地对地址进行操作的若干现有指令的行为。在一些示例中,提供三个环境能力寄存器:
(a)程序计数器能力(PCC)寄存器
其限制指令提取的使用。可使用能力分支以及返回指令以及异常进入与返回来更新PCC边界及许可。
(b)默认数据能力(DDC)寄存器
PCC影响与程序计数器有关的数据访问。其他数据访问受到默认数据能力的隐式使用或作为基址寄存器的能力的显式使用的限制。
(c)系统访问能力(SAC)寄存器
对系统寄存器及系统操作的访问可受SAC寄存器中所保存的许可的限制。
转换后备缓冲器及存储器管理单元
在图1的装置中,需要MMU 53的主要原因在于MMU 53处置当前未本端地存储在TLB52中的地址转换。以下将进步论述执行此的方式。在处置这些问题时,参考图5,对于当前未由TLB 52保存的转换,MMU 130从TLB接收与待转换的虚拟地址500有关的请求510,并将响应520返回到TLB 52以指示然后由TLB 52输出的所需物理地址(PA)530。另一方面,已由TLB缓冲的转换仅由TLB输出,一般比TLB必须从MMU 53获得的转换略快些。因此,从系统的其余部分的角度来看,TLB提供了所需转换,但此情况发生的速度可取决于转换是否已由TLB缓冲。
这些操作亦由图6的流程图示意性地表示,向TLB 52供应VA 500形成了对相应PA530的请求(在图6中示为步骤600)。
如所提到的,TLB包括VA与PA之间的转换的缓存或存储器。可根据用于TLB的操作的已知技术来建立TLB用于存储特定VA至PA转换的标准。缓存的转换可包括最近使用的转换、频繁使用的转换和/或预期很快将需要的转换(例如,与接近最近访问的VA的VA有关的转换)。总体地,情况是TLB包括所有可能的VA至PA转换的集合的子集的缓存,使得当需要特定的VA至PA转换时,可能发现(或可能不会发现)转换已被保存在TLB处的缓存中。
因此,在下一步骤610处,TLB检测所需转换是否当前确实由TLB缓存(“命中”)。如果答案为是,则控制转至步骤640,在步骤640处,PA 530被返回以用于所需存储器访问。
如果答案为否,则控制转至步骤620,在步骤620处,TLB 52将包括所需VA 510的请求发送至MMU 53。MMU 53导出所需的VA至PA转换(例如,使用所谓的页表游走(PTW)技术)并且至少将对应于VA 510的PA 520(以及在本示例中,以下将论述的一些许可数据)发送回TLB 102,在TLB 102处其被存储作为被缓存的或缓冲的转换(在步骤630处)。
最后,在步骤640处,TLB 52应用存储于TLB 52处的转换以提供输出PA 530。
隔间
在本示例性装置中,将进程模型化为一个或多个所谓的隔间的集。例如,执行级12可由多线程处理元件实现,以将处理线程作为一个或多个进程组或隔间来执行,该一个或多个进程组或隔间各自具有一个或多个处理线程,每个进程组或隔间具有进程组隔间标识符(以下将论述的CID),进程组隔间标识符在一个或多个进程组中是唯一的,并且进程组隔间标识符通过能力数据与虚拟存储器地址空间中的相应存储器地址范围相关联。
隔间可以是混合的(混合隔间或HC)或纯的(纯隔间或PC),并且由隔间管理器(CM)的实例管理。隔间管理器CM被视为可信且可信赖的部件,其能够看到大部分或全部可用的虚拟存储器地址范围。因此,在示例性布置中,处理元件12被配置为实现进程组管理器,该进程组管理器可操作用于至少将进程组标识符分配给每个进程组。
隔间中的每个可以包括一个或多个线程。可调度条目为线程。图7示意性地示出了虚拟存储器地址(VMA)空间700(示意性地示出,其中如所绘示,存储器地址从左至右增大)中的这样的布置。应注意,仅可视化了用户空间条目。
对于混合隔间(例如,图7中的HC1、HC2),通过以上讨论的有关DDC来限制数据访问。混合隔间通常可由应用使用,并受环境能力限制。混合隔间可创建能力,但此并非要求。
对于纯隔间(例如,图7中的PC1、PC2),操作受针对该纯隔间特定的一个或多个能力的特定集合中所编码的范围限制。纯隔间不采用指针并且仅使用能力。
因此,在这些示例中,对于第一(混合)进程组类型,能力数据定义适用于第一类型的所有进程组的允许存储器地址范围;以及
对于第二(纯)进程组类型的给定进程组,能力数据定义适用于第二进程组类型的给定进程组的允许存储器地址范围。
在隔间化的示例性使用中,可提供特征,凭借该特征,通过允许隔间经由共享存储器或存储器区域相互通信,可减少系统调用的数目,(例如)以便提高效率。即,一个以上的隔间可访问此共享存储器或存储器区域。
图8示意性地示出了这样的布置,其中隔间管理器CM 800不仅监督隔间810、820的提供,而且也监督可由多个隔间访问虚拟存储器中的一个或多个共享存储器空间830的创建。
图9示意性地示出了(以类似于图7的格式的格式)在示例性纯隔间PC1与PC2之间共享的存储器区域SM1,以及在混合隔间HC1与HC2之间共享的另一示例性共享存储器空间SM2。通过箭头(例如,箭头900)示意性地指示对共享存储器空间的访问。
本发明实施例解决了此方法的基础版本的某些特征:
第一特征是为了在混合隔间之间共享存储器,共享存储器必须在由相应DDC形成的连续范围内。
第二特征是一旦在两个隔间之间共享了存储器区域,就无法以安全方式释放该存储器区域,因为对共享存储器的所有占优(prevailing)引用的集合是未知的。
有效引用可以(在任何特定时间)被存储在寄存器中,压入堆栈或保存为数据。因此,即使释放共享存储器,对其的有效引用仍可通过执行代码的某部分而以这些形式中的一种形式保存。这样的保留引用将提供潜在方式,以此方式,即使在该存储器区域被重新分配到重叠的存储器地址范围的后,仍可变更或“监听”(读取或采样)先前共享但不再共享的数据。可将此结果称作非期望的“释放后使用(use-after-free)”情况,并且在图10中示意性地示出,其表示先前(但不再)授权的隔间1000监听或访问现由CM 1020分配用于在隔间1030与1040之间共享的共享存储器1010。
本技术的实施例通过提供撤销机制(用于有效地撤销隔间访问或共享存储器区域的许可)而解决了这些问题。一种可能的替代性示例性撤销机制可以涉及高级MMU配置,其中频繁使用对存储器区域的映射和取消映射,从而撤销引用。然而,此方法并未用在本实施例中,因为其可能增加隔间管理器的代码复杂性,并有可能将TLB压力(处理要求)提升到不可接受的水平。
因此,本公开的实施例旨在提供另一技术来解决不留下有效引用并知晓其编号的问题。
隔间标识符
可始终在系统中唯一地标识隔间。为此,使用适当的标识符生成方法。隔间标识符(CID)类似于进程标识符(PID),不同之处在于隔间标识符(CID)与进程的内联部分有关。当前CID存储在寄存器中。每个CID(在这些示例中)在其他占优CID中是唯一的。
转换描述符
解决方案的基础为实现新的转换描述符(TD)格式作为扩展。这样的描述符可包括(例如)至多两个CID用于定义可以访问该存储器范围的隔间。如果在稍后将论述的至少些情况下(例如,关于纯隔间)无CID被设置在TD中,则不可访问该存储器。此外,当通过能力(包括环境能力)执行存储和加载操作时,应将架构改变为具有不同的存储器访问检查。
图11示意性地示出了TLB 52'或MMU 53'的使用(例如,在未使用TLB时),其在缓存1100中缓冲与每个VA到PA转换相关联的一个或多个属性1102,属性包括TD。TLB 52'和/或MMU 53'提供使用存储器地址转换电路的示例,该存储器地址转换电路包括以下项中的一者或两者:存储器管理单元;转换后备缓冲器。
在一些示例中,TLB 52'/MMU 53'可接收试图对特定存储器地址、页面或区域进行访问的隔间的CID 1110作为输入,并使用控制器1120参考所存储的属性来检测是否允许该访问。
可如下实现由控制器1120进行的检查以及所得的访问许可。
存储器地址转换电路(例如,TLB和/或MMU)被布置为响应于由进程组中的一者的处理线程进行的所请求的存储器访问,将虚拟存储器地址转换为物理存储器地址。其还被配置为将许可数据(例如,TD)与给定虚拟存储器地址到相应物理存储器地址的转换相关联,该许可数据定义表示被允许对给定虚拟存储器地址进行访问的相应进程组的一个或多个进程组标识符(CID);以及根据与请求存储器访问的处理线程的进程组相关联的能力数据,以及根据对许可数据是否定义请求存储器访问的处理线程的进程组的进程组标识符的检测,而禁止对所述给定虚拟存储器地址的访问。
针对混合隔间的访问
测试如下:[检查DDC]OR[针对CID检查MMU]
换句话说,如通过图12中的表所示,如果左边两行中的一行或两行为真(访问在允许DDC边界内;TD定义该CID),则允许访问。
所提出的布置可以简化与混合隔间的存储器共享。共享存储器可在DDC边界之外,但仍可访问。如果共享存储器由新的TD描述并且CID被恰当地设置,则MMU授权访问。如果共享存储器在DDC边界之外且不存在TD,则应拒绝访问。
因此,在这些示例中,对于第一(混合)进程组类型的给定进程组,存储器地址转换电路被配置为在以下情况中的一者或两者发生时允许对给定虚拟存储器地址进行访问:
(i)能力数据指示给定虚拟存储器地址处于给定进程组的允许存储器地址范围内;以及
(ii)给定进程组的进程组标识符是由许可数据定义的进程组标识符;
并且在其他情况下禁止访问。
针对纯隔间的访问
测试如下:[检查能力]AND[检查MMU和CID(如果设定了)]
换句话说,如通过图13中的表所示,如果左边两行均为真(访问由有效能力定义;TD定义该CID)并且存储器地址或区域未以其他方式映射,则允许访问。
当涉及纯隔间时,本布置可增强或加强安全性。先前,如果存在有效能力,则这些隔间可访问数据。所提出的TD格式改变了此行为。
因此,在这些示例中,对于第二(纯)进程组类型的给定进程组,存储器地址转换电路被配置为在以下情况中的两者都发生时允许对给定虚拟存储器地址进行访问:
(i)能力数据指示给定虚拟存储器地址处于给定进程组的允许存储器地址范围内;以及
(ii)给定进程组的进程组标识符是由许可数据定义的进程组标识符;
并且在其他情况下禁止访问。
将MMU用于这些测试
此布置提供了访问检查,其中将MMU视为上述许可特征的平等许可提供者,而不是(如在先前提出的MMU的情况下)低层访问控制器。
示例-图14至图16
现将参考图14至图16描述这些技术的示例,其中隔间管理器1400创建并监督对由虚拟存储器边界A、B所定义的共享存储器区域1410的访问。对共享存储器区域的访问需要由TLB 52'/MMU 53'(在其中查阅属性数据1102)进行的存储器地址转换。在图14至图16中,仅示出了上述与TD的CID有关的测试。
在图14中,已建立共享存储器区域1410,该共享存储器区域1410在具有相应CID(CID1以及CID2)的隔间1420、1430之间共享。TD指定“CID1或CID2”,因此,由隔间1420、1430进行的任何访问(从与CID有关的测试部分的角度来看)均为允许的。
在图15中,已将共享存储器重新分配给具有相应CID(CID3、CID4)的隔间1500、1510。TD现指定“CID3或CID4”,因此,由隔间1500、1510进行的任何访问(从与CID有关的测试部分的角度来看)均为允许的。然而,由具有CID=CID1的隔间1420进行的尝试访问未能通过在存储器转换处执行的CID测试,并且因此不被允许。
以此方式,已成功地重新分配共享存储器。通过修改与共享存储器区域相关联的TD,已移除给与隔间1420的先前许可,而无需标识和定位对共享存储器的任何未完成引用。
在图16中示出了另一示例,其中已撤销存储器区域1410的共享性质,因此,仅对于具有CID=CID3的隔间1500访问是允许的。不允许隔间1420、1510(或实际上任何其他隔间)的任何尝试访问(因为未通过与请求存储器转换的隔间的CID的TD比较)。
图17及图18为概述这些过程的示意性流程图。
图17涉及混合隔间。在步骤1700处,考虑由相关DDC设定的边界,关于是否允许存储器访问检查该存储器访问。如果(在步骤1710处)答案为是,则允许访问。如果为否,则在步骤1720处,由MMU或TLB进行关于CID是否被TD所指定的一个或多个CID的组所覆盖的检查。如果(在步骤1730处)为是,则允许访问。如果为否,则不允许访问。
图18涉及纯隔间。在步骤1800处,检查与访问隔间有关的能力的有效性。如果(在步骤1810处)其为有效的,则控制转至步骤1820。如果不是有效的,则访问不被允许。在步骤1820处,由TLB/MMU针对TD检查请求隔间的CID。如果(在步骤1830处)CID被TD所指定的一个或多个CID覆盖,则允许访问。若不被其覆盖,则不允许访问。
可能的益处
如上所述,即使有效引用仍存在,通过改变TD格式可以容易地撤销共享存储器的分配。除此之外,当CID以新的TD格式被恰当地设置时,可在任何时候重复使用VMA范围。可随时撤销共享存储器,但通过实际上将映射保持在共享的一侧,从而,(例如)就CID4而言,CID3与CID4之间的共享存储器可被撤销,但对于CID3,只需通过改变TD以仅指定CID3来维持共享存储器。
因为所有存储器访问无论如何皆完成地址转换,所以本解决方案不具有性能损失。
TD格式有可能简化TLB管理,从而有可能导致较少的TLB刷新。可以通过单个TLB条目来描述纯隔间,其中访问类型被编码于能力中。混合隔间可以对应于每存储器种类具有个TLB条目,其中访问类型由MMU强制执行。
TD的填入
参考图19,在示例性置中,隔间管理器(或进程组管理器)作为负责监督存储器的共享的进程进行操作。在一些示例中,CM本身可以填入TD字段,或在其他示例中,CM为具有请求内核填入TD字段的特权的实体。除CM之外的隔间(在示例布置中)不具有特权来填入TD字段或请求内核填入TD字段。
对于要在两个或更多个进程组之间共享访问的存储器地址范围,CM可提供或请求内核以(在步骤1900处)向存储器地址转换电路提供两个或更多个进程组的进程组标识符;并且存储器地址转换电路被配置为(在步骤1910处)存储两个或更多个进程组的进程组标识符作为许可数据。可作为建立共享存储器区域的一部分来执行此操作。
类似地,CM(进程组管理器)被配置为通过启动(在步骤2010处)从存储器地址转换电路所保存的许可数据中删除给定进程组的进程组标识符,启动(在图20的步骤2000处)撤销给定进程组对存储器地址范围的访问。
图21为示出了一种方法的示意性流程图,该方法包括:
使用多线程处理元件(在步骤2100处)将处理线程作为一个或多个进程组来执行,该进程组各自具有一个或多个处理线程,每个进程组具有进程组标识符,进程组标识符在一个或多个进程组中是唯一的,并且进程组标识符通过能力数据与虚拟存储器地址空间中的相应存储器地址范围相关联;
使用存储器地址转换电路,通过进程组中的一个进程组的处理线程将虚拟存储器地址转换(在步骤2110处)为物理存储器地址;
存储器地址转换电路将许可数据与给定虚拟存储器地址到相应物理存储器地址的转换相关联(在步骤2120处),该许可数据定义一个或多个进程组标识符,该一个或多个进程组标识符表示被允许访问给定虚拟存储器地址的相应进程组;以及
存储器地址转换电路根据与请求存储器访问的处理线程的进程组相关联的能力数据,以及根据对许可数据是否定义请求存储器访问的处理线程的进程组的进程组标识符的检测,而禁止(在步骤2130处)对给定虚拟存储器地址的访问。
图22示出了可使用的仿真器实现。虽然前述实施例在用于操作支持相关技术的特定处理硬件的装置以及方法方面实现了本技术,但也可以根据本文所述实施例提供指令执行环境,该指令执行环境通过使用计算机程序来实现。
经常将这样计算机程序称作仿真器,只要其提供硬件架构的基于软件的实现即可。仿真器计算机程序的种类包括仿真器、虚拟机、模型,以及二进制转换器(包括动态二进制转换器)。通常,仿真器实现可在主机处理器2230上运行,可选地,该主机处理器2230运行主机操作系统2220,从而支持仿真器程序2210。在一些布置中,在硬件与所提供的指令执行环境和/或被提供在同一主机处理器上的多个相异的指令执行环境之间可能存在多个模拟层。从历史上看,需要强大处理器提供以合理速度执行的仿真器实现,但在某些情境下此方法可能是有道理的,例如,当出于兼容性或重复使用原因而期望运行原生于另一处理器的代码时。例如,仿真器实现可提供具有额外功能(主机处理器硬件不支持该额外功能)的指令执行环境,或提供通常与不同硬件架构相关联的指令执行环境。在“一些高效架构模拟技术(Some Efficient Architecture Simulation Techniques)”(Robert Bedichek,1990年冬天的USENIX会议,第53-63页)中给出模拟的概述。
就先前已参考特定硬件构造或特征描述实施例而言,在模拟实施例中,可通过合适的软件构造或特征来提供等效功能。例如,特定电路可以在模拟实施例中实施作为计算机程序逻辑。类似地,存储器硬件(如寄存器或高速缓存)可以在模拟实施例中实现为软件数据结构。在前述实施例中引用的一个或多个硬件组件存在于主机硬件(例如,主机处理器2230)上的布置中,一些模拟实施例可以在适当的情况下利用主机硬件。
可将仿真器程序2210存储在计算机可读存储介质(其可为非暂态介质)上,并且该仿真器程序2210提供到目标程序代码2200(其可以包括应用、操作系统及超管理器)的程序接口(指令执行环境),该程序接口与通过仿真器程序2210模型化的硬件架构的应用编程接口相同。因此,可使用仿真器程序2210从指令执行环境内执行目标程序代码2200的程序指令(包括上述功能),以使得并不实际上具有上述装置的硬件特征的主计算机2230可模仿这些特征。
在本申请中,术语“被配置为......”用于表示装置的元件具有能执行所定义操作的配置。在此上下文中,“配置”是指硬件或软件互连的布置或方式。例如,装置可具有提供所定义操作的专用硬件、或编程为执行功能的处理器或其他处理装置(如上文讨论的处理组件)。“被配置为”并不意味着装置元件需要以任何方式改变以提供所定义操作。
虽然已参考附图在本文中详细描述了本技术的说明性实施例,但应理解,本技术不限于那些精确的实施例,并且所属技术领域中的技术人员可在不脱离由附加的权利要求所定义的本技术的范围及精神的情况下于本文中进行各种变化、添加和修改。例如,在不脱离本技术范围的情况下,所附权利要求的特征的各种组合可与独立权利要求的特征一起实施。

Claims (9)

1.一种装置,包括:
多线程处理元件,所述多线程处理元件用于将处理线程作为一个或多个进程组来执行,其中,所述一个或多个进程组各自具有一个或多个处理线程,每个进程组具有在所述一个或多个进程组中唯一的进程组标识符,并且所述进程组标识符通过能力数据与虚拟存储器地址空间中的相应存储器地址范围相关联;以及
存储器地址转换电路,所述存储器地址转换电路用于通过所述进程组中的一个进程组的处理线程将虚拟存储器地址转换为物理存储器地址;
所述存储器地址转换电路被配置为:将许可数据与给定虚拟存储器地址到相应物理存储器地址的转换相关联,所述许可数据定义一个或多个进程组标识符,所述一个或多个进程组标识符表示被允许访问所述给定虚拟存储器地址的相应进程组;根据与请求存储器访问的所述处理线程的所述进程组相关联的所述能力数据,以及根据对所述许可数据是否定义请求所述存储器访问的所述处理线程的所述进程组的所述进程组标识符的检测,而禁止对所述给定虚拟存储器地址的访问。
2.根据权利要求1所述的装置,其中,所述处理元件被配置为实现进程组管理器,所述进程组管理器可操作用于至少将进程组标识符分配给每进程组。
3.根据权利要求1所述的装置,其中:
对于第一进程组类型,所述能力数据定义适用于所述第一类型的所有进程组的允许存储器地址范围;以及
对于第二进程组类型的给定进程组,所述能力数据定义适用于所述第二进程组类型的所述给定进程组的允许存储器地址范围。
4.根据权利要求3所述的装置,其中,对于所述第一进程组类型的给定进程组,所述存储器地址转换电路被配置为在以下情况中的一者或两者发生时允许对所述给定虚拟存储器地址的访问:
(i)所述能力数据指示所述给定虚拟存储器地址处于所述给定进程组的所述允许存储器地址范围内;以及
(ii)所述给定进程组的所述进程组标识符是由所述许可数据定义的进程组标识符;
并且在其他情况下禁止访问。
5.根据权利要求3所述的装置,其中,对于所述第二进程组类型的给定进程组,所述存储器地址转换电路被配置为在以下情况中的两者都发生时允许对所述给定虚拟存储器地址的访问:
(i)所述能力数据指示所述给定虚拟存储器地址处于所述给定进程组的所述允许存储器地址范围内;以及
(ii)所述给定进程组的所述进程组标识符是由所述许可数据定义的进程组标识符;
并且在其他情况下禁止访问。
6.根据权利要求2所述的装置,其中:
对于要在两个或更多个进程组之间共享访问的存储器地址范围,所述进程组管理器可操作用于向所述存储器地址转换电路提供所述两个或更多个进程组的所述进程组标识符;并且
所述存储器地址转换电路被配置为存储所述两个或更多个进程组的所述进程组标识符作为所述许可数据。
7.根据权利要求6所述的装置,其中,所述进程组管理器被配置为:通过启动从所述存储器地址转换电路所保存的所述许可数据中删除所述给定进程组的所述进程组标识符,启动撤销给定进程组对存储器地址范围的访问。
8.根据权利要求1所述的装置,其中,所述存储器地址转换电路包括以下项中的一者或两者:存储器管理单元;转换后备缓冲器。
9.一种方法,包括:
使用多线程处理元件将处理线程作为一个或多个进程组来执行,所述进程组各自具有一个或多个处理线程,每个进程组具有在所述一个或多个进程组中唯一的进程组标识符,并且所述进程组标识符通过能力数据与虚拟存储器地址空间中的相应存储器地址范围相关联;
使用存储器地址转换电路,通过所述进程组中的一个进程组的处理线程将虚拟存储器地址转换为物理存储器地址;
所述存储器地址转换电路将许可数据与给定虚拟存储器地址到相应物理存储器地址的转换相关联,所述许可数据定义一个或多个进程组标识符,所述一个或多个进程组标识符表示被允许访问所述给定虚拟存储器地址的相应进程组;以及
所述存储器地址转换电路根据与请求所述存储器访问的所述处理线程的所述进程组相关联的所述能力数据,以及根据对所述许可数据是否定义请求所述存储器访问的所述处理线程的所述进程组的所述进程组标识符的检测,而禁止对所述给定虚拟存储器地址的访问。
CN201980055101.XA 2018-10-15 2019-08-23 存储器访问控制 Pending CN112585590A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1816742.9A GB2578099B (en) 2018-10-15 2018-10-15 Memory access control
GB1816742.9 2018-10-15
PCT/GB2019/052373 WO2020079387A1 (en) 2018-10-15 2019-08-23 Memory access control

Publications (1)

Publication Number Publication Date
CN112585590A true CN112585590A (zh) 2021-03-30

Family

ID=64394849

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980055101.XA Pending CN112585590A (zh) 2018-10-15 2019-08-23 存储器访问控制

Country Status (8)

Country Link
US (1) US11573911B2 (zh)
EP (1) EP3818447B1 (zh)
JP (1) JP7425786B2 (zh)
KR (1) KR20210068393A (zh)
CN (1) CN112585590A (zh)
GB (1) GB2578099B (zh)
TW (1) TWI807094B (zh)
WO (1) WO2020079387A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2593487B (en) * 2020-03-24 2022-05-04 Advanced Risc Mach Ltd Apparatus and method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845129A (en) * 1996-03-22 1998-12-01 Philips Electronics North America Corporation Protection domains in a single address space
CN101344860A (zh) * 2007-07-10 2009-01-14 米特尔网络公司 接合实时操作系统环境和本地主机操作系统的虚拟机环境
CN101520753A (zh) * 2008-02-29 2009-09-02 Arm有限公司 数据处理设备和控制虚拟机对安全存储器的访问的方法
US20150150145A1 (en) * 2013-11-22 2015-05-28 Oracle International Corporation Method and system for fast permission changes for virtual addresses
US20170032118A1 (en) * 2015-07-31 2017-02-02 Digital Guardian, Inc. Systems and methods of protecting data from injected malware

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02105240A (ja) * 1988-10-13 1990-04-17 Fuji Xerox Co Ltd 仮想記憶管理装置
US6564311B2 (en) * 1999-01-19 2003-05-13 Matsushita Electric Industrial Co., Ltd. Apparatus for translation between virtual and physical addresses using a virtual page number, a physical page number, a process identifier and a global bit
JP2000276405A (ja) * 1999-01-19 2000-10-06 Matsushita Electric Ind Co Ltd アドレス変換装置及びこのアドレス変換装置を有するコンピュータシステム
US7782329B2 (en) * 2004-12-10 2010-08-24 Rockwell Collins, Inc. Method and apparatus for protected graphics generation
WO2008155841A1 (ja) * 2007-06-20 2008-12-24 Fujitsu Limited 演算処理装置および演算処理方法
KR101013509B1 (ko) * 2008-01-04 2011-02-11 주식회사 마크애니 가상 응용 프로그램 시스템, 저장장치, 가상 응용 프로그램수행 방법 및 가상 환경 보호 방법
US8677098B2 (en) * 2008-01-11 2014-03-18 International Business Machines Corporation Dynamic address translation with fetch protection
US9164812B2 (en) * 2009-06-16 2015-10-20 International Business Machines Corporation Method and system to manage memory accesses from multithread programs on multiprocessor systems
US9747218B2 (en) * 2015-03-20 2017-08-29 Mill Computing, Inc. CPU security mechanisms employing thread-specific protection domains
US10007619B2 (en) 2015-05-29 2018-06-26 Qualcomm Incorporated Multi-threaded translation and transaction re-ordering for memory management units
GB2541714B (en) * 2015-08-27 2018-02-14 Advanced Risc Mach Ltd An apparatus and method for controlling instruction execution behaviour
US9766899B2 (en) * 2015-12-28 2017-09-19 Google Inc. Bootloader control via device identifier
US10402333B2 (en) * 2016-01-18 2019-09-03 Hitachi, Ltd. Computer system including plurality of types of memory devices and method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845129A (en) * 1996-03-22 1998-12-01 Philips Electronics North America Corporation Protection domains in a single address space
CN101344860A (zh) * 2007-07-10 2009-01-14 米特尔网络公司 接合实时操作系统环境和本地主机操作系统的虚拟机环境
CN101520753A (zh) * 2008-02-29 2009-09-02 Arm有限公司 数据处理设备和控制虚拟机对安全存储器的访问的方法
US20150150145A1 (en) * 2013-11-22 2015-05-28 Oracle International Corporation Method and system for fast permission changes for virtual addresses
US20170032118A1 (en) * 2015-07-31 2017-02-02 Digital Guardian, Inc. Systems and methods of protecting data from injected malware

Also Published As

Publication number Publication date
GB2578099B (en) 2021-05-12
US11573911B2 (en) 2023-02-07
EP3818447A1 (en) 2021-05-12
TWI807094B (zh) 2023-07-01
US20210334220A1 (en) 2021-10-28
GB2578099A (en) 2020-04-22
EP3818447B1 (en) 2023-08-23
WO2020079387A1 (en) 2020-04-23
KR20210068393A (ko) 2021-06-09
GB201816742D0 (en) 2018-11-28
TW202016742A (zh) 2020-05-01
JP7425786B2 (ja) 2024-01-31
JP2022502729A (ja) 2022-01-11

Similar Documents

Publication Publication Date Title
KR102605793B1 (ko) 자격들의 이용을 관리하는 장치 및 방법
TWI797347B (zh) 使用儲存在記憶體系統中的記憶體保護表的記憶體保護單元以控制對記憶體的存取的裝置、方法和電腦程式
EP3881189B1 (en) An apparatus and method for controlling memory accesses
EP3830719B1 (en) Binary search procedure for control table stored in memory system
US20230236925A1 (en) Tag checking apparatus and method
US11573911B2 (en) Memory access control
KR20230101826A (ko) 캐퍼빌리티들을 사용하여 메모리에 대한 액세스를 제약하기 위한 기술
US20240086579A1 (en) Key capability storage
KR20240004738A (ko) 캐퍼빌리티를 사용하여 메모리에 대한 액세스를 제약하기 위한 기술
TW202340955A (zh) 使用能力約束記憶體存取之技術
WO2024094956A1 (en) Region identifier based on instruction fetch address
TW202318210A (zh) 用於處理密封能力之技術

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination