CN114138502A - 数据处理 - Google Patents

数据处理 Download PDF

Info

Publication number
CN114138502A
CN114138502A CN202111033244.6A CN202111033244A CN114138502A CN 114138502 A CN114138502 A CN 114138502A CN 202111033244 A CN202111033244 A CN 202111033244A CN 114138502 A CN114138502 A CN 114138502A
Authority
CN
China
Prior art keywords
resource
data
lock
processing
resource type
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
CN202111033244.6A
Other languages
English (en)
Inventor
M·S·拉特兰
G·R·斯托克韦尔
C·达尔
J·E·C·阿尔格拉夫
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 CN114138502A publication Critical patent/CN114138502A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/524Deadlock detection or avoidance
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明题为“数据处理”。本发明公开了一种装置,所述装置包括数据存储器,所述数据存储器用于存储一组处理资源中的每个处理资源的锁数据,所述锁数据表示锁状态数据和标签数据,所述标签数据指示选自多种资源类型的资源类型;和处理元件,所述处理元件用于相对于给定处理资源的所述锁数据执行原子操作,所述原子操作至少包括:检测所述给定处理资源是否属于需要的资源类型;根据所述锁状态数据检测所述给定处理资源当前是否被解锁;以及当检测到所述给定处理资源当前被解锁并且属于所述需要的资源类型时,相对于所述锁状态数据和所述标签数据中的一者或两者执行预先确定的动作。

Description

数据处理
背景技术
本公开涉及数据处理方法和装置。
在多个处理元件、包括线程的过程等可共享处理资源诸如存储器颗粒 或区域的数据处理系统中,可能需要在特定处理元件、过程、线程等正在 访问这些处理资源时提供对这些处理资源的锁定,以便避免访问冲突。
处理资源也可与不同的相应资源类型相关联。例如,存储器颗粒可被 分配用于数据存储、页表条目存储、元数据存储或其他功能。该分配不一 定由正尝试锁定给定处理资源的同一实体执行。
发明内容
在一个示例性布置中,提供了一种装置,该装置包括:
数据存储器,该数据存储器用于存储一组处理资源中的每个处理资源 的锁数据,该锁数据表示锁状态数据和标签数据,该标签数据指示选自多 种资源类型的资源类型;和
处理元件,该处理元件用于相对于给定处理资源的该锁数据执行原子 操作,该原子操作至少包括:
检测该给定处理资源是否属于需要的资源类型;
根据该锁状态数据检测该给定处理资源当前是否被解锁;以及
当检测到该给定处理资源当前被解锁并且属于需要的资源类型 时,相对于锁状态数据和标签数据中的一者或两者执行预先确定的动 作。
在另一个示例性布置中,提供了一种方法,该方法包括:
存储一组数据处理资源中的每个数据处理资源的锁数据,该锁数据表 示锁状态数据和标签数据,该标签数据指示选自多种资源类型的资源类 型;以及
相对于给定处理资源的锁数据执行原子操作,该原子操作至少包括:
检测该给定处理资源是否属于需要的资源类型;
根据该锁状态数据检测该给定处理资源当前是否被解锁;以及
当检测到该给定处理资源当前被解锁并且属于需要的资源类型 时,相对于锁状态数据和标签数据中的一者或两者执行预先确定的动 作。
本公开的另外的相应方面和特征由所附权利要求限定。
附图说明
将参考如附图所示的本发明的实施方案,仅以举例的方式进一步描述 本技术,其中:
图1示意性地示出了数据处理装置的示例;
图2示意性地示出了处理电路可在其中操作的多个域;
图3示意性地示出了支持颗粒保护查找的处理系统的示例;
图4示意性地示出了多个物理地址空间向识别存储器系统中的位置的 系统物理地址空间上的别名;
图5示意性地示出了数据处理装置的另一个示例;
图6示意性地示出了所谓的标签锁;并且
图7至图12是示出相应方法的示意性流程图。
具体实施方式
数据处理装置
示例性实施方案适用于各种类型的数据处理装置,其中提供了数据存 储器和处理元件。现在将合适的装置的第一示例和第二示例描述为下文将 进一步描述的技术的技术背景。从根本上说,本技术适用于(例如)其中 可信软件的主体与在逻辑上由非可信软件管理的资源进行交互的任何布 置。下文讨论的第一示例性数据处理装置和第二示例性数据处理装置仅提 供了可实现本技术的数据处理环境的示例。
第一示例性数据处理装置
现在参见附图,图1示意性地示出了具有至少一个请求器设备4和至 少一个完成器设备6的数据处理系统或装置2的示例。互连件8提供请求 器设备4与完成器设备6之间的通信。请求器设备能够发出请求对特定可 寻址存储器系统位置的存储器访问的存储器访问请求。完成器设备6是负 责为指向其的存储器访问请求提供服务的设备。尽管图1中未示出,但是 一些设备可能能够既充当请求器设备又充当完成器设备。请求器设备4可 例如包括处理元件诸如中央处理单元(CPU)或图形处理单元(GPU), 或其他主设备诸如总线主设备、网络接口控制器、显示控制器等。完成器 设备可包括负责控制对对应存储器存储单元的访问的存储器控制器、用于 控制对外围设备的访问的外围控制器等。图1更详细地示出了请求器设备4 之一的示例性配置,但应当理解,其他请求器设备4可具有类似配置。另 选地,其他请求器设备可具有与图1左侧所示的请求器设备4不同的配 置。
请求器设备4具有用于参考存储在寄存器12中的数据来响应于指令而 执行数据处理的处理电路10。寄存器12可包括用于存储操作数和经处理的 指令的结果的通用寄存器,以及用于存储控制数据以便配置处理电路如何 执行处理的控制寄存器。例如,控制数据可包括用于选择哪个操作域是当 前域的当前域指示14,以及指示哪个异常级别是处理电路10正在操作的当 前异常级别的当前异常级别指示15。
处理电路10可能能够发出存储器访问请求,所述存储器访问请求指定 识别要访问的可寻址位置的虚拟地址(VA)和识别当前域的域标识符(域 ID或“安全状态”)。地址转换电路16(例如,存储器管理单元 (MMU))通过基于存储在存储器系统中的页表结构中定义的页表数据的 地址转换的一个或多个阶段来将虚拟地址转换成物理地址(PA)。转换后 备缓冲器(TLB)18充当查找高速缓存以便高速缓存该页表信息中的一些 信息,从而比每次需要地址转换时必须从存储器获取页表信息的情形更快 地访问。在该示例中,除了生成物理地址之外,地址转换电路16还选择与 物理地址相关联的多个物理地址空间之一并且输出识别所选择的物理地址 空间的物理地址空间(PAS)标识符。下文将更详细地讨论PAS的选择。
PAS滤波器20充当请求器侧滤波电路以便基于转换的物理地址和PAS 标识符来检查是否允许在PAS标识符所识别的指定的物理地址空间内访问 该物理地址。该查找基于存储器系统内存储的颗粒保护表结构中存储的颗 粒保护信息。与页表数据在TLB 18中的高速缓存类似,颗粒保护信息可高 速缓存在颗粒保护信息高速缓存22内。虽然颗粒保护信息高速缓存22在 图1的示例中被示出为与TLB 18分开的结构,但在其他示例中,可将这些 类型的查找高速缓存组合成单个查找高速缓存结构以使得组合的结构的条 目的单次查找提供页表信息和颗粒保护信息两者。颗粒保护信息定义限制 可从其访问给定物理地址的物理地址空间的信息,并且基于该查找,PAS 滤波器20确定是否允许存储器访问请求继续发出到一个或多个高速缓存24 和/或互连件8。如果不允许存储器访问请求的指定的PAS访问指定的物理 地址,则PAS滤波器20阻断该事务并且可发信号通知故障。
虽然图1示出了包括具有多个请求器设备4的系统的示例,但为图1 的左手侧上的一个请求器设备示出的特征也可包括在仅存在一个请求器设 备(诸如单核处理器)的系统中。
虽然图1示出了由地址转换电路16执行给定请求对PAS的选择的示 例,但在其他示例中,可由地址转换电路16将用于确定要选择哪个PAS的 信息连同PA一起输出到PAS滤波器20,并且PAS滤波器20可选择PAS 并检查是否允许在所选择的PAS内访问PA。
PAS滤波器20的提供有助于支持可在多个操作域中操作的系统,每个 操作域与其自身隔离的物理地址空间相关联,其中对于存储器系统的至少 一部分而言(例如,对于一些高速缓存或一致性实施机构诸如探听滤波器 而言),即使这些地址空间内的地址实际上涉及存储器系统中的相同物理 位置,也将单独物理地址空间看作是它们涉及识别单独存储器系统位置的 完全单独的地址集合。换句话讲,处理元件可被配置为在现行安全状态下执行程序指令,该现行安全状态选自一组安全状态,每个安全状态与相应 的安全权限相关联,使得在一个安全状态下执行的指令不能访问在另一安 全状态异常级别下执行的指令能够访问的资源。这对于安全目的可能是有 用的。
图2示出了处理电路10可操作的不同操作状态和域的示例,以及可在 不同异常级别和域中执行的软件的类型的示例(当然,应当理解,安装在 系统上的特定软件由管理该系统的各方选择,因此不是硬件架构的基本特 征)。
处理电路10可在多个不同异常级别80(在该示例中,被标记为 EL0、EL1、EL2和EL3的四个异常级别)处操作,其中在该示例中,EL3 是指具有最高权限级别的异常级别,而EL0是指具有最低权限的异常级 别。应当理解,其他架构可选择相反(或至少不同的)编号,例如以使得 具有最高编号的异常级别可被视为具有最低权限。在该示例中,最低权限 的异常级别EL0用于应用程序级代码,次高权限的异常级别EL1用于操作 系统级代码,次高权限的异常级别EL2用于管理多个虚拟化操作系统之间 的切换的管理程序级代码,而最高权限的异常级别EL3用于管理相应域之 间的切换和物理地址向物理地址空间的分配的监控代码,如稍后描述。
当在处理软件处于特定异常级别时发生异常的时候,对于一些类型的 异常而言,产生至更高(更高权限)的异常级别的异常,其中基于发生的 特定异常的属性来选择将产生该异常的特定异常级别。然而,在一些情况 下,有可能在与和在产生异常时处理的代码相关联的异常级别相同的异常 级别处产生其他类型的异常。当产生异常时,可保存表征在产生该异常时 的处理器的状态的信息,包括例如产生该异常时的当前异常级别,因此一旦已处理异常处理程序以处理该异常,处理可就返回到前一处理并且保存 的信息可用于识别处理应返回到的异常级别。
除了不同异常级别之外,处理电路还支持多个操作域,包括根域82、 安全(S)域84、较不安全域86和领域域88。为了便于参考,较不安全域 在下文中将被描述为“非安全”(NS)域,但应当理解,这并非旨在暗示 安全的任何特定级别(或缺乏安全)。相反,“非安全”仅仅指示非安全 域旨在用于不如在安全域中操作的代码那样安全的代码。在处理电路10处 于最高异常级别EL3时选择根域82。当处理电路处于其他异常级别EL0至 EL2之一时,基于当前域指示符14来选择当前域,该当前域指示符指示其 他域84、86、88中的哪个域是活动的。对于其他域84、86、88中的每个 域而言,处理电路可处于异常级别EL0、EL1或EL2中的任何异常级别。
在引导时间,可例如在更高权限的异常级别EL3或EL2内执行引导代 码(例如,BL1、BL2、OEM引导)的多个片段。引导代码BL1、BL2可 与例如根域相关联,并且OEM引导代码可在安全域中操作。然而,一旦引 导该系统,在运行时,处理电路10就可被视为一次在域82、84、86和88 之一中操作。域82至88中的每个域与其自身的相关联的物理地址空间(PAS)相关联,这实现了将来自不同域的数据隔离在存储器系统的至少 一部分内。这将在下文更详细地描述。
非安全域86可用于常规应用程序级处理,并且可用于操作系统和管理 程序活动以便管理此类应用程序。从而,在非安全域86内,可存在在EL0 处操作的应用程序代码30、在EL1处操作的操作系统(OS)代码32以及 在EL2处操作的管理程序代码34。
安全域84使某些片上系统安全性、介质或系统服务能够隔离到与用于 非安全处理的物理地址空间分开的物理地址空间中。非安全域代码无法访 问与安全域84相关联的资源,而安全域可访问安全资源和非安全资源两 者,从这个意义上讲,安全域和非安全域不等同。支持安全域84和非安全 域86的这种分区的系统的示例是基于安谋公司(
Figure BDA0003245992200000061
Limited)提供的
Figure BDA0003245992200000062
架构的系统。安全域可运行EL0处的可信应用程序36、EL1处 的可信操作系统38以及任选地EL2处的安全分区管理器40,如果支持安 全分区,则该安全分区管理器使用阶段2页表来支持在安全域84中执行的 不同可信操作系统38之间的隔离,其采用的方式类似于管理程序34可管 理在非安全域86中执行的虚拟机或客操作系统32之间的隔离的方式。
将该系统扩展到支持安全域84在近年来已变得很普遍,因为其使单个 硬件处理器能够支持隔离的安全处理,从而避免了在单独硬件处理器上执 行该处理的需要。然而,随着安全域的使用的日益普及,许多具有这种安 全域的实际系统现已在安全域内支持各种各样的不同软件提供商所提供的 相对复杂的混合服务环境。例如,在安全域84中操作的代码可包括由以下 (除了别的之外)提供的软件的不同片段:制造集成电路的硅片提供商、将硅片提供商所提供的集成电路组装成电子设备诸如移动电话的原始设备 制造商(OEM)、为该设备提供操作系统32的操作系统供应商(OSV); 和/或管理云服务器的云平台提供商,该云服务器通过云来支持用于多个不 同客户端的服务。
然而,越来越期望为提供用户级代码(通常可能预期该用户级代码作 为非安全域86内的应用程序30来执行)的各方提供安全计算环境,可信 任所述安全计算环境不会将信息泄露给在相同物理平台上操作代码的其他 方。可能期望此类安全计算环境可在运行时动态地分配,并且被认证和可 证明,以使得用户能够在信任该设备处理潜在敏感的代码或数据之前验证 是否在物理平台上提供足够的安全保证。这种软件的用户可能不希望信任提供可能通常在非安全域86中操作的富操作系统32或管理程序34的一方(或即使可信任这些提供商自身,用户也可能希望保护他们自身免于操作 系统32或管理程序34受到攻击者的损害)。另外,虽然安全域84可用于 需要安全处理的此类用户提供的应用程序,但实际上这会给提供需要安全 计算环境的代码的用户和在安全域84内操作的现有代码的提供商带来问 题。对于在安全域84内操作的现有代码的提供商而言,在安全域内添加任 意的用户提供的代码将增加对其代码的潜在攻击的攻击面,这可能是不期 望的,因此可能强烈建议不要允许用户将代码添加到安全域84中。另一方 面,提供需要安全计算环境的代码的用户可能不愿意信任在安全域84中操 作的代码的不同片段的所有提供商都有权访问其数据或代码,如果需要在 特定域中操作的代码的认证或证明作为用户提供的代码执行其处理的先决 条件,则可能难以审核和认证不同软件提供商所提供的在安全域84中操作 的代码的所有不同片段,这可限制第三方提供更安全的服务的机会。
因此,如图2所示,提供了附加域88(称为领域域),该附加域可由 此类用户引入的代码使用以提供与和在安全域24中操作的部件相关联的任 何安全计算环境正交的安全计算环境。在领域域中,所执行的软件可包括 多个领域,其中可由在异常级别EL2处操作的领域管理监控(RMM)46 将每个领域与其他领域隔离。RMM 46可例如通过定义页表结构中的访问 权限和地址映射来控制执行领域域88的相应领域42、44之间的隔离,其 采用的方式类似于管理程序34管理在非安全域86中操作的不同部件之间 的隔离的方式。在该示例中,所述领域包括在EL0处执行的应用程序级领 域42以及跨异常级别EL0和EL1执行的封装应用程序/操作系统领域44。 应当理解,没有必要同时支持EL0和EL0/EL1类型的领域,并且可由RMM 46建立相同类型的多个领域。
与安全域84类似,领域域88具有向其分配的其自身物理地址空间, 但领域域88和安全域84可各自访问与非安全域86相关联的非安全PAS, 而领域域88和安全域84无法访问彼此的物理地址空间,从这个意义上 讲,领域域正交于安全域84。这意味着在领域域88和安全域84中执行的 代码彼此没有依赖性。领域域中的代码仅需要信任硬件RMM 46和在根域 82中操作的管理域之间的切换的代码,这意味着证明和认证变得更可行。 证明使软件的给定片段能够请求验证安装在设备上的代码匹配某些预期特 性。这可通过以下方式实现:检查安装在设备上的程序代码的散列是否匹 配可信方使用密码协议签署的预期值。可例如通过以下方式证明RMM 46 和监控代码29:检查该软件的散列是否匹配可信方签署的预期值,该可信 方诸如为制造包括处理系统2的集成电路的硅片提供商或设计支持基于域的存储器访问控制的处理器架构的架构提供商。这可允许用户提供的代码 42、44在执行任何安全或敏感功能之前验证是否可信任基于域的架构的完 整性。
从而,可以看出,与领域42、44相关联的代码(该代码先前已在非安 全域86中执行,如虚线所示,这些虚线示出了这些过程先前已执行的非安 全域中的间隙)现在可移动到领域域,在该领域域中,它们可具有更强的 安全保证,因为它们的数据和代码不会被在非安全域86中操作的其他代码 访问。然而,由于领域域88和安全域84正交并因此无法看到彼此的物理 地址空间的事实,这意味着领域域中的代码的提供商不需要信任安全域中 的代码的提供商,反之亦然。领域域中的代码可简单地信任为根域82提供 监控代码29的可信固件以及可由硅片提供商或处理器所支持的指令集架构 的提供商(在代码在其设备上执行时,该提供商可能已经内在地需要被信 任)提供的RMM 46,以使得不需要与其他操作系统供应商、OEM或云主 机的进一步信任关系,就能够为用户提供安全计算环境。
这可用于一系列应用程序和用例,包括例如移动钱包和支付应用程 序、游戏防作弊和盗版机制、操作系统平台安全增强、安全虚拟机托管、 机密计算、联网或物联网设备的网关处理。应当理解,用户可找到领域支 持有用的许多其他应用程序。
为了支持向领域提供的安全保证,处理系统可支持证明报告功能,其 中在引导时间或在运行时间,对固件图像和配置(例如,监控代码图像和 配置或RMM代码图像和配置)进行测量,并且在运行时,测量领域内容 和配置,以使得领域所有者可将相关证明报告回溯到已知实现和认证,从 而对是否在该系统上操作作出信任决策。
如图2所示,提供了管理域切换的单独根域82,并且该根域具有其自 身的隔离的根物理地址空间。即使对于仅具有非安全域86和安全域84但 没有领域域88的系统,根域的创建和其资源与安全域的隔离也允许更稳健 的实现,但还可用于不支持领域域88的实现。根域82可使用由硅片提供 商或架构设计者提供(或认证)的监控软件29来实现,并且可用于提供安 全引导功能、可信引导测量、片上系统配置、调试控制和其他方(诸如 OEM)所提供的固件部件的固件更新的管理。可由硅片提供商或架构设计 者在不依赖于最终设备的情况下开发、认证和部署根域代码。相比之下, 可由OEM管理安全域84以便实现某些平台和安全服务。可由操作系统32 控制非安全域86的管理以提供操作系统服务,而领域域88允许开发新形 式的可信执行环境,这些可信执行环境可专用于用户或第三方应用程序, 同时与安全域84中的现有安全软件环境相互隔离。
图3示意性地示出了用于支持这些技术的处理系统2的另一个示例性 表示。用相同附图标记示出与图1中相同的元件。图3更详细地示出了地 址转换电路16,该地址转换电路包括阶段1存储器管理单元50和阶段2存 储器管理单元52。阶段1MMU 50可负责将虚拟地址转换为物理地址(当 该转换由EL2或EL3代码触发时)或转换为中间地址(当该转换由EL0或 EL1代码在一定操作状态下触发时,在该操作状态下,需要由阶段2MMU 52进行进一步阶段2转换)。阶段2MMU可将中间地址转换成物理地 址。阶段1MMU可基于由操作系统控制的用于从EL0或EL1发起的转换 的页表、由管理程序控制的用于来自EL2的转换的页表或由监控代码29控 制的用于来自EL3的转换的页表。另一方面,阶段2MMU 52可基于由管 理程序34、RMM 46或安全分区管理器14定义的页表结构,具体取决于要 使用哪个域。以这种方式将这些转换分成两个阶段允许操作系统管理其自 身和应用程序的地址转换(假设它们是在该系统上运行的唯一操作系 统),而RMM 46、管理程序34或SPM40可管理在相同域中运行的不同 操作系统之间的隔离。
如图3所示,使用地址转换电路16的地址转换过程可返回安全属性 54,所述安全属性与当前异常级别15和当前域14(或安全状态)相结合, 允许响应于给定存储器访问请求而访问特定物理地址空间(由PAS标识符 或“PAS TAG”识别)的一部分。可在提供先前描述的颗粒保护信息的颗 粒保护表56中查找物理地址和PAS标识符。在该示例中,PAS滤波器20 被示出为颗粒状存储器保护单元(GMPU),其验证是否允许所选择的 PAS访问请求的物理地址,如果是这样,则允许该事务传递到作为存储器 系统的系统结构的一部分的任何高速缓存24或互连件8。
GMPU 20允许将存储器分配到单独地址空间,同时提供基于硬件的强 隔离保证并且在物理存储器向这些地址空间中分配的方法方面提供空间和 时间灵活性以及高效共享方案。如先前所描述,该系统中的执行单元被逻 辑地分区为虚拟执行状态(域或“世界”),其中存在位于最高异常级别 (EL3)处的一个执行状态(根世界),该执行状态被称为“根世界”,其 管理物理存储器向这些世界的分配。
单个系统物理地址空间被虚拟化成多个“逻辑”或“架构”物理地址 空间(PAS),其中每个此类PAS是具有独立一致性属性的正交地址空 间。通过用PAS标签扩展系统物理地址来将该系统物理地址映射到单个 “逻辑”物理地址空间。
允许给定世界访问逻辑物理地址空间的子集。这由硬件滤波器20实 施,该硬件滤波器可附接到存储器管理单元16的输出。
世界使用用于地址转换的页表的转换表描述符中的字段来定义该访问 的安全属性(PAS标签)。硬件滤波器20有权访问表(颗粒保护表56或 GPT),该表为系统物理地址空间中的每页定义颗粒保护信息(GPI),该 GPI指示与之相关联的PAS TAG和(任选地)其他颗粒保护属性。
硬件滤波器20比照颗粒的GPI来检查世界ID和安全属性,并且决定 是否可授予访问权限,从而形成颗粒状存储器保护单元(GMPU)。
例如,GPT 56可驻留在片上SRAM中或片外DRAM中。如果在片外 存储,则GPT 56可由片上存储器保护引擎来进行完整性保护,该片上存储 器保护引擎可使用加密、完整性和新鲜度机制来保持GPT 56的安全性。
将GMPU 20定位在该系统的请求器侧上(例如,MMU输出上)而不 是定位在完成器侧上允许按页粒度分配访问权限,同时允许互连件8继续 跨多个DRAM端口对该页进行散列化/剥离。
事务仍然标记有PAS TAG,因为它们在整个系统结构24、8中传播直 到到达被定义为物理别名点60的位置。这允许将滤波器定位在主侧上,而 与从侧滤波相比不会削弱安全保证。由于该事务在整个系统中传播,PAS TAG可用作用于地址隔离的纵深安全机制:例如,高速缓存可将PAS TAG 添加到高速缓存中的地址标签,从而防止使用错误PAS TAG对相同PA进 行的访问在高速缓存中命中并因此改善抗侧信道攻击。PAS TAG还可用作 附接到存储器控制器的保护引擎的上下文选择器,其在将数据写入到外部 DRAM之前对数据进行加密。
物理别名点(PoPA)是PAS TAG被剥离并且地址从逻辑物理地址变 回到系统物理地址的系统中的位置。PoPA可位于高速缓存下方的系统的完 成器侧处,在此处(使用通过PAS TAG解决的加密上下文)对物理 DRAM进行访问。另选地,其可位于高速缓存上方以便以安全性降低的代 价简化系统实现。
在任何时间点,世界均可请求将页从一个PAS转换到另一个PAS。对 EL3处的监控代码29作出请求,该监控代码检查GPI的当前状态。EL3可 仅允许发生特定组的转换(例如,从非安全PAS到安全PAS,但不从领域 PAS到安全PAS)。为了提供干净转变,该系统支持新指令-“数据清理和 无效至物理别名点”,EL3可在将页转变到新PAS之前提交该指令–这保证与前一PAS相关联的任何残余状态从PoPA 60上游(比PoPA 60更靠近请 求器侧)的任何高速缓存刷新。
可通过将GMPU 20附接到主侧来实现的另一种特性是存储器在世界之 间的高效共享。可能期望为N个世界的子集授予共享访问物理颗粒的权 限,同时防止其他世界访问该物理颗粒。这可通过以下方式实现:将“限 制性共享”语义添加到颗粒保护信息,同时迫使其使用特定PAS TAG。作 为一个示例,GPI可指示物理颗粒可仅由“领域世界”88和“安全世界” 84访问,同时标记有安全PAS 84的PAS TAG。
图4示出了相应物理地址空间向硬件中提供的物理存储器上的别名的 概念。如先前所描述,域82、84、86、88中的每个域具有其自身的相应物 理地址空间61。
在地址转换电路16生成物理地址的时间点,物理地址具有由该系统支 持的一定数值范围62内的值,不论选择哪个物理地址空间,该值都相同。 然而,除了物理地址的生成之外,地址转换电路16还可基于当前域14和/ 或用于导出物理地址的页表条目中的信息来选择特定物理地址空间 (PAS)。另选地,并非地址转换电路16执行PAS的选择,而是地址转换 电路(例如,MMU)可输出从页表条目(PTE)导出的用于选择PAS的物 理地址和信息,然后PAS滤波器或GMPU 20可使用该信息来选择PAS。
可根据处理电路10在发出存储器访问请求时正在操作的当前域,按照 下表中定义的规则来限制给定存储器访问请求对PAS的选择:
当前域 非安全PAS 安全PAS 领域PAS 根PAS
非安全 可访问 不可访问 不可访问 不可访问
安全 可访问 可访问 不可访问 不可访问
领域 可访问 不可访问 可访问 不可访问
可访问 可访问 可访问 可访问
对于存在可供选择的多个物理地址空间的那些域而言,来自用于提供 物理地址的访问的页表条目的信息用于在可用PAS选项之间选择。
从而,在PAS滤波器20将存储器访问请求输出到系统结构24、8的 时间点(假设其通过了任何滤波检查),存储器访问请求与物理地址 (PA)和所选择的物理地址空间(PAS)相关联。
从在物理别名点(PoPA)60之前操作的存储器系统部件(诸如高速缓 存、互连件、探听滤波器等)的角度来看,相应物理地址空间61被看作是 对应于存储器内的不同系统位置的完全单独的地址范围。这意味着,从前 PoPA存储器系统部件的角度来看,存储器访问请求所识别的地址范围实际 上是可在地址转换中输出的范围62的大小的四倍,因为实际上PAS标识符 被看作是物理地址自身旁边的附加地址位,以使得根据选择哪个PAS,可 将相同物理地址PAx映射到不同物理地址空间61中的多个别名物理地址 63。这些别名物理地址63实际上全都对应于物理硬件中实现的相同存储器 系统位置,但前PoPA存储器系统部件将别名地址63看作是单独地址。从 而,如果存在为此类地址分配条目的任何前PoPA高速缓存或探听滤波器, 则别名地址63将被映射到具有单独高速缓存命中/未命中决策和单独一致性 管理的不同条目中。这降低了攻击者使用高速缓存或一致性侧信道作为探 测其他域的操作的机构的可能性或有效性。
该系统可包括超过一个PoPA 60。在每个PoPA 60处,别名物理地址 收缩成系统物理地址空间64中的单个去别名地址65。在任何后PoPA部件 的下游提供去别名地址65,以使得实际上识别存储器系统位置的系统物理 地址空间64再一次为与在请求器侧上执行的地址转换中可输出的物理地址 范围相同的大小。例如,在PoPA 60处,可从这些地址中剥离PAS标识 符,并且对于下游部件而言,这些地址可简单地使用物理地址值来识别, 而不指定PAS。另选地,对于期望存储器访问请求的一些完成器侧滤波的 一些情况而言,PAS标识符仍可在PoPA 60的下游提供,但可不被解释为 地址的一部分,以使得在不同物理地址空间60中出现的相同物理地址将在 PoPA的下游解释为涉及相同存储器系统位置,但供应的PAS标识符仍可 用于执行任何完成器侧安全检查。
第二示例性数据处理装置
图5示意性地示出了用于执行下文将更详细讨论的技术的合适的数据 处理装置的第二示例。提供了一个或多个处理元件(PE)500、510、520, 该一个或多个PE如前所述可以是CPU、GPU等。PE 500...520能够在现行 安全状态下执行程序指令,该现行安全状态选自一组安全状态,每个安全 状态与相应安全权限相关联,使得在一个安全状态下执行的指令不能访问 在另一安全状态异常级别下执行的指令能够访问的资源。然而,不一定要 求如上所述提供世界和领域的特定布置。
在一些示例中,PE中的一个或多个PE可在特定安全状态下执行不可 信过程诸如管理程序进程,并且在不同安全状态下执行将在下文讨论的另 一个可信过程。
PE经由互连器530连接到各种外围设备,图5中仅示出了这些外围设 备中的一个外围设备(存储器系统540)。
资源锁定
在提供了多于一个PE的情况下,或者在由给定PE执行不同过程或线 程的情况下,那些PE、过程或线程可共享处理资源,诸如由存储器系统 540提供的存储器颗粒或参考图1至图4所述的等效布置。为了允许这在使 对特定处理资源的访问不冲突的情况下发生,提供了锁定此类资源的系统 并且将在下文中进一步描述。
在图1至图4的布置的上下文中,上述RMM表示可信软件部件,该 可信软件部件在管理程序和领域之间进行协调,以便允许领域的可信计算 基础之外的过程或代理管理系统资源,而不违反该领域的安全属性。RMM 本身(在这些示例性实施方案中)不包括存储器分配器,而是依赖于不可 信过程(例如,形成管理程序的功能的一部分)来将功能与存储器的微粒 相关联。此类功能的示例包括提供页表条目等。RMM监督存储器颗粒从一 种状态到另一种状态的实际转变以及颗粒可如何根据其状态使用。
因此,在示例中,所讨论的处理资源可包括存储器地址空间内的相应 可寻址颗粒。
描述每个存储器颗粒的数据结构和存储器颗粒本身的内容两者均可至 少原则上同时由多个CPU访问,并且如上所述,为了避免访问冲突,使用 锁来同步这种多个可能的访问。
在RMM的上下文中,由RMM处理的对象是从过程诸如在领域的可 信计算基础之外的管理程序向该RMM提供的存储器颗粒,因此指向这些 存储器颗粒的指针不一定是可信的。虽然RMM可在不使用下文所述的技 术的情况下相对于特定存储器颗粒的预期对象类型进行操作,但该RMM 将无法在不首先获取对象上的锁的情况下验证对象的类型。然而,考虑到 锁定可能需要按根据相同类型的其他锁定对象应用的排序(例如,预先确 定的排序或在系统引导处建立的排序)执行,以便避免死锁或类似问题, RMM缺乏在锁定之前确保对象类型的能力可能会导致操作问题。
就图5的更一般的布置而言,(i)对象类型与对象诸如存储器颗粒的关 联和(ii)锁定可通过不一定相互信任的单独的过程、线程或CPU来执行。
标签锁
图6示意性地示出了所谓的标签锁600,该标签锁表示解决上述潜在 问题的锁定技术的至少一个部件。标签锁特别适用于与图1至图4的布置 的RMM结合使用,但通常适用于需要同步对未知(或至少可能未知或不 可信)类型的对象的访问的任何布置,诸如图5的通用数据处理布置。在 下面的讨论中,为了文本描述和代码示例之间的一致性,标签锁将被称为 “tag_lock”。
使用标签锁的技术可通过评估待锁定的对象的类型并尝试获取锁作为 单个原子操作来操作。此处,提及的“原子操作”是指完全且不可分割地 完成或未完成的总体操作。因此,这意味着在原子操作包括第一操作和第 二操作的情况下,原子操作成功地完成(因为第一操作和第二操作两者均 成功地完成,并且来自这些操作的任何结果都是可观察的)或未完成(在 这种情况下,第一操作的任何结果和第二操作的任何结果都不是可观察的)。
作为示例性示例,tag_lock的数据结构可用C语言如下进行描述:
“‘C
typedef union tag_lock{
uint64_t tl;
struct{
uint32_t t;
uint32_t l;
};
}tag_lock_t
“‘
此处,函数“typedef”为该定义提供可读名称,并且表示“union”表 示存储器项的全部分配。对“uintXX”的引用涉及以位为单位的给定大小 XX的无符号整数变量。但是概括地说,在该示例中,tag_lock 600被提供 作为8字节无符号整数,其中的4个字节表示标签数据,并且其中的4个 字节表示锁定或锁状态数据。
对tag_lock的原子操作相对于tag_lock 600的所有8个字节发生。正是 tag_lock的这种特性(对包括标签数据和锁状态数据的所有8个字节执行操 作的能力)允许执行这种原子操作。
例如,由标签数据指示的资源类型可以是选自由以下各项组成的列表 的类型:
·指示存储页表对象的颗粒的资源类型,该页表对象提供地址转换 信息;
·指示存储进程执行上下文信息的颗粒的资源类型;
·指示存储工作数据的颗粒的资源类型,该工作数据供由处理元件 执行的程序使用;和
·指示存储元数据对象的颗粒的资源类型。
对应的资源(诸如存储器颗粒)可以是由相应的资源类型指示的类 型。
锁获取
图7是表示可用以下示例性形式表示的锁获取过程的示意性流程图, 其中tag_lock_t*tl是所获取的tag_lock,并且uint32_t expected_type是预期 资源类型。示例性函数返回布尔结果,该布尔结果指示下面将讨论的原子 操作的成功和失败:
*‘bool tl_try_acquire(tag_lock_t*tl,uint32_t expected_type)’.
该过程在步骤700处开始。为了解释清楚起见,步骤710、720、 740、750、760在图7中示意性地示出为连续步骤,但事实上(如它们在图 7中共同的虚线轮廓所示)作为上述类型的原子操作来执行。所绘制的这些 步骤涉及:在步骤710处检测给定tag_lock的当前标签状态或值;检测720 当前标签类型是否与预期标签类型相同、检测740当前锁状态;检测750 tag_lock当前是否被解锁;以及当该类型如预期那样并且当前未被解锁(也 就是说,当前未被锁定,例如通过另一个过程(在该处理元件或另一个处 理元件上)或通过处理元件)时,执行760操作诸如锁定tag_lock。
如所提及的,这些步骤作为单个原子操作来执行。如果步骤720示出 标签不是预期标签类型,则原子操作在示意性步骤730处失败。
如果标签是预期标签类型,但tag_lock当前被另一个过程或处理元件 锁定(也就是说,当前未被解锁),则如来自步骤750的负面结果所示, 锁定过程“旋转”并等待tag_lock在解锁条件下可用。在该等待过程期 间,如果在任何阶段标签指示不是预期类型的类型,例如因为锁定tag_lock 的另一个CPU或过程同时已经改变了与该tag_lock相关联的类型,则原子 操作在步骤730处失败。
然而,如果标签是预期类型并且锁定状态使得tag_lock当前被解锁, 则控制转到步骤760,在该步骤采用锁定并且函数成功完成。
因此,根据该技术操作的图1至图4的装置或图5的装置提供了装置 的示例,该装置包括:数据存储器6(540),该数据存储器用于存储一组 处理资源中的每个处理资源的锁数据,该锁数据表示锁状态数据和标签数 据,该标签数据指示选自多种资源类型的资源类型;和处理元件4(500- 520),该处理元件用于相对于给定处理资源的锁数据执行原子操作,该原 子操作至少包括:检测710、720给定处理资源是否属于需要的资源类型; 根据锁状态数据检测740、750给定处理资源当前是否被解锁;以及当检测 到该给定处理资源当前被解锁并且属于需要的资源类型时,相对于锁状态 数据和标签数据中的一者或两者执行760预先确定的动作。
第一操作710、720被配置为响应于检测到给定处理资源属于不同于需 要的资源类型的资源类型而失败730。
例如,预先确定的动作可包括设置(760)锁状态数据,以指示给定处 理资源被该过程和/或处理元件锁定。这可涉及相对于与需要的资源类型相 同的资源类型的其他当前锁定的处理资源应用给定处理资源的锁定排序 (诸如预先确定的排序),该锁定排序限定与需要的资源类型相同的资源 类型的处理资源被锁定和解锁的顺序,以及/或者相对于其他当前锁定的处 理资源应用给定处理资源的第二锁定排序(诸如预先确定的排序),第二锁定排序限定处理资源被锁定和解锁的顺序。这些是用于如在不同处理元 件、过程或过程中的阶段之间协调资源的锁定和解锁的技术。例如,在表 示页表数据的资源的上下文中,这些可能需要按适合于页表本身的分支结 构的层级顺序来锁定和解锁。通过相对于相同资源类型(该类型是例如页 表数据或与特定页表走步相关的数据)的其他当前锁定的处理资源应用锁 定排序,可按正确的序列化顺序执行页表颗粒的锁定和解锁。然而,通过 还任选地允许相对于其他当前锁定的处理资源应用锁定排序,还可提供锁 定和解锁的全局序列化。
如所讨论的,响应于检测到给定处理资源当前被另一过程或处理元件 锁定并且属于需要的资源类型,图7的过程涉及(通过从步骤750的负面 结果循环回到步骤710)等待直到给定处理资源变成解锁的。如所提及的, 如果在等待期间的任何阶段检测到标签不再表示预期标签类型,则这可被 布置为失败。
这些布置可相对于上述类型的多处理器系统操作,该多处理器系统包 括被配置为访问该一个或多个处理资源的一组两个或更多个处理元件,这 些处理元件中的每个处理元件被配置为相对于锁数据执行原子操作。
tag_lock的示例性使用概述
原子操作(包括锁状态和资源类型的检测,以及锁定或其他预先确定 的操作)可与具有相关联数据颗粒地址“expected_data_granule_addr”的各 种操作(以下示例性代码中的“rmm_command”)结合使用。
void rmm_command(unsigned long expected_data_granule_addr){
tag_lock_t*tl;
bool r;
[在以下代码段中,地址expected_data_granule_addr的tag_lock数据由 函数addr_to_tl定位,并且设置布尔变量r以指示根据 TYPE_DATA_GRANULE的预期资源类型(使用图7的技术)获取该锁的 原子尝试的成功或失败。]
Figure BDA0003245992200000181
[代码仅在变量r指示先前步骤成功时才达到该点。然后,在tag_lock 被锁定到本过程时可进行被指示为通用“CRITICAL SECTION ACCESSING DATA GRANULE CONTENTS”的操作…]
/*CRITICAL SECTION ACCESSING DATA GRANULE CONTENTS*/
[…在释放tag_lock之前]
tl_release(tl);
}
标签读取函数
图8是表示读取标签函数800uint32_t tl_get_tag的示意性流程图,其 中自变量tag_lock_t*tl表示相关tag_lock。
这可表示为:
*‘uint32_t tl_get_tag(tag_lock_t*tl)’。
任选地,可提供步骤810、820、830,使得在步骤810处检测锁状 态,并且如果在步骤820处tag_lock当前未被锁定到正在尝试读取标签状 态的设备,则在步骤830处该函数可能失败。然而,如所提及的,这些步 骤被任选地实施,并且相反可被留作良好实践,使得除了正在调用的设备 或过程已经保存相关锁的情况之外,不调用读取标签函数。
在步骤840处,检测当前标签状态,并且在步骤850处将该当前标签 状态连同成功完成函数的指示一起返回。
因此,这提供了当给定处理资源当前被该处理元件锁定时,提供指示 由与给定处理资源相关联的标签数据表示的资源类型的数据输出的示例。
释放锁函数
图9是表示释放锁函数“tl_release”900的示意性流程图。这可表示 为:
*‘void tl_release(tag_lock_t*tl)’。
如前所述,任选地,可提供步骤910、920、930,使得在步骤910处 检测锁状态,并且如果在步骤920处tag_lock当前未被锁定到正在尝试释 放锁的设备,则在步骤930处该函数可能失败。然而,如所提及的,这些 步骤被任选地实施,并且相反可被留作良好实践,使得除了正在调用的设 备或过程已经保存相关锁的情况之外,不调用释放锁函数。
在步骤940处,锁被释放并且该函数返回成功的结果。
写入标签和释放函数
图10是表示释放锁函数“tl_set_release”1000的示意性流程图,其中 第二自变量指示新资源类型“uint32_t new_type”。这可表示为:
*‘void tl_set_release(tag_lock_t*tl,uint32_t new_type)’。
如前所述,任选地,可提供步骤1010、1020、1030,使得在步骤1010 处检测锁状态,并且如果在步骤1020处tag_lock当前未被锁定到正在尝试 执行该函数的设备,则在步骤1030处该函数可能失败。然而,如所提及 的,这些步骤被任选地实施,并且相反可被留作良好实践,使得除了正在 调用的设备或过程已经保存相关锁的情况之外,不调用该函数。
步骤1040涉及相对于给定处理资源的锁数据执行原子解锁操作,该原 子解锁操作包括第一解锁操作和第二解锁操作,该第一解锁操作包括有条 件地改变标签数据以指示可能不同于先前由该标签数据指示的资源类型的 资源类型,并且该第二解锁操作包括设置锁状态数据以指示给定处理资源 被解锁。
在步骤1050处,该函数返回成功的结果。
标签改变函数
图11是表示释放锁函数1100的示意性流程图。这可表示为:
*‘void tl_set_tag(tag_lock_t*tl,uint32_t new_type)’。
如前所述,任选地,可提供步骤1111、1120、1130,使得在步骤1110 处检测锁状态,并且如果在步骤1120处tag_lock当前未被锁定到正在尝试 执行该函数的设备,则在步骤1130处该函数可能失败。然而,如所提及 的,这些步骤被任选地实施,并且相反可被留作良好实践,使得除了正在 调用的设备或过程已经保存相关锁的情况之外,不调用该函数。
步骤1140涉及,当给定处理资源当前被该处理元件锁定时,将给定资 源类型写入标签数据。在步骤1150处,该函数返回成功的结果。换句话 讲,这类似于图10的布置,但不释放tag_lock。
与管理程序进程交互
如上所述,给定处理资源的资源类型可通过管理程序或由相同或另一 处理元件执行的另一其他过程与颗粒相关联。在该布置中,管理程序或另 一其他过程确定颗粒或其他资源的资源类型,但依赖于通过RMM或类似 的可信布置调用过程,以便(例如,使用图10或图11的技术)设置 tag_lock到新关联的资源类型。
因此,在实施例中,处理元件被配置为发起原子操作以锁定给定处理 资源,并且当该给定处理资源被锁定时,设置该给定处理资源的标签数据 以指示通过另一过程与该给定处理资源相关联的资源类型。
发明内容方法
图12是示出示例性方法的示意性流程图,该方法包括:
(在步骤1200处)存储一组处理资源中的每个处理资源的锁数据,该 锁数据表示锁状态数据和标签数据,该标签数据指示选自多种资源类型的 资源类型;以及
(在步骤1210处)相对于给定处理资源的锁数据执行原子操作,该原 子操作至少包括:
(在步骤1220处)检测给定处理资源是否属于需要的资源类型;
(在步骤1230处)根据锁状态数据检测给定处理资源当前是否被 解锁;以及
当检测到给定处理资源当前被解锁并且属于需要的资源类型时, (在步骤1240处)相对于锁状态数据和标签数据中的一者或两者执行 预先确定的动作。
在本申请中,字词“被配置为...”用于意指装置的元件具有能够执行 所限定的操作的配置。在该上下文中,“配置”意指硬件或软件的互连的 布置或方式。例如,该装置可具有提供所限定的操作的专用硬件,或者可 对处理器或其他处理设备进行编程以执行该功能。“被配置为”并不意味 着装置元件需要以任何方式改变以便提供所限定的操作。
虽然本文已结合附图详细描述了本发明技术的示例性实施方案,但应 当理解,本发明技术并不限于那些精确的实施方案,并且在不脱离所附权 利要求书所限定的本发明技术的范围和实质的前提下,本领域的技术人员 可在其中实现各种变化、增加和修改。例如,在不脱离本发明技术的范围 的情况下,从属权利要求的特征可与独立权利要求的特征一起进行各种组 合。

Claims (15)

1.一种装置,包括:
数据存储器,所述数据存储器用于存储一组处理资源中的每个处理资源的锁数据,所述锁数据表示锁状态数据和标签数据,所述标签数据指示选自多种资源类型的资源类型;和
处理元件,所述处理元件用于相对于给定处理资源的所述锁数据执行原子操作,所述原子操作至少包括:
检测所述给定处理资源是否属于需要的资源类型;
根据所述锁状态数据检测所述给定处理资源当前是否被解锁;以及
当检测到所述给定处理资源当前被解锁并且属于所述需要的资源类型时,相对于所述锁状态数据和所述标签数据中的一者或两者执行预先确定的动作。
2.根据权利要求1所述的装置,其中所述预先确定的动作包括设置所述锁状态数据以指示所述给定处理资源被所述处理元件执行的过程锁定。
3.根据权利要求1或权利要求2所述的装置,其中响应于检测到所述给定处理资源当前未被解锁并且属于所述需要的资源类型,所述处理元件被配置为等待直到所述给定处理资源变成解锁的。
4.根据权利要求1至3中任一项所述的装置,其中所述原子操作被配置为响应于检测到所述给定处理资源属于不同于所述需要的资源类型的资源类型而失败。
5.根据前述权利要求中任一项所述的装置,其中所述处理元件被配置为相对于与所述需要的资源类型相同的资源类型的其他当前锁定的处理资源应用所述给定处理资源的锁定排序,所述锁定排序限定与所述需要的资源类型相同的资源类型的处理资源被锁定和解锁的顺序。
6.根据权利要求5所述的装置,其中所述处理元件被配置为相对于其他当前锁定的处理资源应用所述给定处理资源的第二锁定排序,所述第二锁定排序限定处理资源被锁定和解锁的顺序。
7.根据前述权利要求中任一项所述的装置,其中当所述给定处理资源当前被所述处理元件锁定时,所述处理元件被配置为将给定资源类型写入所述标签数据。
8.根据前述权利要求中任一项所述的装置,其中当所述给定处理资源当前被所述处理元件锁定时,所述处理元件被配置为提供指示由与所述给定处理资源相关联的所述标签数据表示的所述资源类型的数据输出。
9.根据前述权利要求中任一项所述的装置,其中所述处理元件被配置为相对于所述给定处理资源的所述锁数据执行原子解锁操作,所述原子解锁操作包括第一解锁操作和第二解锁操作,所述原子解锁操作包括改变所述标签数据以指示不同于所述需要的资源类型的资源类型,以及设置所述锁状态数据以指示所述给定处理资源被解锁。
10.根据前述权利要求中任一项所述的装置,其中所述处理资源包括存储器地址空间内的相应可寻址颗粒,并且其中所述资源类型是选自由以下各项组成的列表的类型:
指示存储页表对象的颗粒的资源类型,所述页表对象提供地址转换信息;
指示存储进程执行上下文信息的颗粒的资源类型;
指示存储工作数据的颗粒的资源类型,所述工作数据供由所述处理元件执行的程序使用;和
指示存储元数据对象的颗粒的资源类型。
11.根据前述权利要求中任一项所述的装置,包括被配置为访问所述一个或多个处理资源的一组两个或更多个处理元件,所述处理元件中的每个处理元件被配置为相对于所述锁数据执行所述原子操作。
12.根据前述权利要求中任一项所述的装置,其中所述处理元件被配置为执行另一过程以将资源类型与所述给定处理资源相关联。
13.根据权利要求12所述的装置,其中所述处理元件被配置为发起所述原子操作以及锁定所述给定处理资源,并且当所述给定处理资源被锁定时,设置所述给定处理资源的所述标签数据以指示通过所述另一过程与所述给定处理资源相关联的所述资源类型。
14.根据权利要求12或权利要求13所述的装置,其中:
所述处理元件被配置为在现行安全状态下执行程序指令,所述现行安全状态选自一组安全状态,每个安全状态与相应安全权限相关联,使得在一个安全状态下执行的指令不能访问在另一安全状态异常级别下执行的指令能够访问的资源;
其中所述处理器被配置为在所述安全状态中的预先确定的一个安全状态下执行指令,以便相对于所述锁数据执行所述原子操作。
15.一种方法,包括:
存储一组处理资源中的每个处理资源的锁数据,所述锁数据表示锁状态数据和标签数据,所述标签数据指示选自多种资源类型的资源类型;以及
相对于给定处理资源的所述锁数据执行原子操作,所述原子操作至少包括:
检测所述给定处理资源是否属于需要的资源类型;
根据所述锁状态数据检测所述给定处理资源当前是否被解锁;以及
当检测到所述给定处理资源当前被解锁并且属于所述需要的资源类型时,相对于所述锁状态数据和所述标签数据中的一者或两者执行预先确定的动作。
CN202111033244.6A 2020-09-03 2021-09-03 数据处理 Pending CN114138502A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP20305977.9 2020-09-03
EP20305977.9A EP3964959A1 (en) 2020-09-03 2020-09-03 Data processing

Publications (1)

Publication Number Publication Date
CN114138502A true CN114138502A (zh) 2022-03-04

Family

ID=73476075

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111033244.6A Pending CN114138502A (zh) 2020-09-03 2021-09-03 数据处理

Country Status (3)

Country Link
US (1) US11726839B2 (zh)
EP (1) EP3964959A1 (zh)
CN (1) CN114138502A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117724833A (zh) * 2023-12-06 2024-03-19 无锡众星微系统技术有限公司 一种基于流属性的PCIe tag缓存自适应资源分配方法和装置
CN117724833B (zh) * 2023-12-06 2024-05-28 无锡众星微系统技术有限公司 一种基于流属性的PCIe tag缓存自适应资源分配方法和装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11620217B2 (en) * 2021-03-31 2023-04-04 Arm Limited Partition identifier space selection

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4649513A (en) * 1983-11-15 1987-03-10 International Business Machines Corporation Apparatus and method for processing system printing data records on a page printer
DE3854384T2 (de) * 1987-11-30 1996-03-28 Ibm Verfahren zum Betreiben eines einen anteilig genutzten virtuellen Speicher verwendenden Multiprozessorsystems.
JP2755390B2 (ja) * 1988-05-19 1998-05-20 株式会社日立製作所 データベース処理装置及びデータベース処理方法
US4959854A (en) * 1990-01-26 1990-09-25 Intervoice Inc. Apparatus and method for automatically reconfiguring telephone network resources
JPH07191944A (ja) * 1991-09-11 1995-07-28 Internatl Business Mach Corp <Ibm> 多重プロセッサによる多数の資源への命令におけるデッドロックを防止するためのシステムおよび方法
US5485607A (en) * 1993-02-05 1996-01-16 Digital Equipment Corporation Concurrency-control method and apparatus in a database management system utilizing key-valued locking
US5604904A (en) * 1994-09-26 1997-02-18 Intel Corporation Method and apparatus for accessing system management functions of a computer system
JP3259620B2 (ja) * 1995-12-21 2002-02-25 株式会社日立製作所 資源割り当て方法
US7215663B1 (en) * 1996-01-16 2007-05-08 C2 Global Technologies, Inc. Private IP communication network architecture
US6044367A (en) * 1996-08-02 2000-03-28 Hewlett-Packard Company Distributed I/O store
US6009269A (en) * 1997-03-10 1999-12-28 Digital Equipment Corporation Detecting concurrency errors in multi-threaded programs
US5895492A (en) * 1997-05-28 1999-04-20 International Business Machines Corporation Processor associated blocking symbol controls for serializing the accessing of data resources in a computer system
US6226376B1 (en) * 1997-08-20 2001-05-01 At&T Corp. Method and apparatus for reusing service circuit resources in a telecommunications network
US5983225A (en) * 1998-01-26 1999-11-09 Telenor As Parameterized lock management system and method for conditional conflict serializability of transactions
US6449614B1 (en) * 1999-03-25 2002-09-10 International Business Machines Corporation Interface system and method for asynchronously updating a share resource with locking facility
US6751617B1 (en) * 1999-07-12 2004-06-15 Xymphonic Systems As Method, system, and data structures for implementing nested databases
US6529983B1 (en) * 1999-11-03 2003-03-04 Cisco Technology, Inc. Group and virtual locking mechanism for inter processor synchronization
US6757769B1 (en) * 2000-11-28 2004-06-29 Emc Corporation Cooperative lock override procedure
US7246187B1 (en) * 2000-11-28 2007-07-17 Emc Corporation Method and apparatus for controlling exclusive access to a shared resource in a data storage system
US6901446B2 (en) * 2001-02-28 2005-05-31 Microsoft Corp. System and method for describing and automatically managing resources
US7185339B2 (en) * 2001-08-03 2007-02-27 Oracle International Corporation Victim selection for deadlock detection
US7111174B2 (en) * 2001-08-29 2006-09-19 Activcard Ireland Limited Method and system for providing access to secure entity or service by a subset of N persons of M designated persons
US6981108B1 (en) * 2001-10-23 2005-12-27 P-Cube Ltd. Method for locking shared resources connected by a PCI bus
CA2369621C (en) * 2002-01-25 2009-06-09 Ibm Canada Limited-Ibm Canada Limitee Method and apparatus for handling resource transaction requests
US7337290B2 (en) * 2003-04-03 2008-02-26 Oracle International Corporation Deadlock resolution through lock requeing
US7735089B2 (en) * 2005-03-08 2010-06-08 Oracle International Corporation Method and system for deadlock detection in a distributed environment
US7856636B2 (en) * 2005-05-10 2010-12-21 Hewlett-Packard Development Company, L.P. Systems and methods of sharing processing resources in a multi-threading environment
GB0518013D0 (en) * 2005-09-03 2005-10-12 Ibm Method,apparatus and computer program product for sharing resources
US8584131B2 (en) * 2007-03-30 2013-11-12 International Business Machines Corporation Method and system for modeling and analyzing computing resource requirements of software applications in a shared and distributed computing environment
US20090125703A1 (en) * 2007-11-09 2009-05-14 Mejdrich Eric O Context Switching on a Network On Chip
US8463908B2 (en) * 2010-03-16 2013-06-11 Alcatel Lucent Method and apparatus for hierarchical management of system resources
US9542237B2 (en) * 2012-09-04 2017-01-10 Red Hat Israel, Ltd. Shared locking for storage centric exclusive locks
US9195857B2 (en) * 2013-09-30 2015-11-24 Infineon Technologies Ag Computational system
US9882828B1 (en) * 2014-11-11 2018-01-30 Amdocs Software Systems Limited System, method, and computer program for planning distribution of network resources in a network function virtualization (NFV) based communication network
US10237224B2 (en) * 2014-04-21 2019-03-19 Dropbox, Inc. Context aware serialization
US10108456B2 (en) * 2016-02-02 2018-10-23 Western Digital Technologies, Inc. Accelerated atomic resource allocation on a multiprocessor platform
US10572390B2 (en) * 2016-02-29 2020-02-25 Apple Inc. Methods and apparatus for loading firmware on demand
US10303482B2 (en) * 2017-03-07 2019-05-28 Red Hat, Inc. Dynamic processor frequency selection
US11126474B1 (en) * 2017-06-14 2021-09-21 Amazon Technologies, Inc. Reducing resource lock time for a virtual processing unit
GB2563883B (en) * 2017-06-28 2019-10-09 Advanced Risc Mach Ltd Invalidation of a target realm in a realm hierarchy
US11068319B2 (en) * 2018-10-18 2021-07-20 Oracle International Corporation Critical section speedup using help-enabled locks
US11294737B2 (en) * 2019-06-24 2022-04-05 International Business Machines Corporation Self-managed lock access
US11245608B1 (en) * 2020-09-11 2022-02-08 Juniper Networks, Inc. Tunnel processing distribution based on traffic type and learned traffic processing metrics

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117724833A (zh) * 2023-12-06 2024-03-19 无锡众星微系统技术有限公司 一种基于流属性的PCIe tag缓存自适应资源分配方法和装置
CN117724833B (zh) * 2023-12-06 2024-05-28 无锡众星微系统技术有限公司 一种基于流属性的PCIe tag缓存自适应资源分配方法和装置

Also Published As

Publication number Publication date
EP3964959A1 (en) 2022-03-09
US11726839B2 (en) 2023-08-15
US20220066840A1 (en) 2022-03-03

Similar Documents

Publication Publication Date Title
US20230176983A1 (en) Apparatus and method using plurality of physical address spaces
CN115552382A (zh) 转换表地址存储电路系统
US11726839B2 (en) Data processing
US11526443B2 (en) Read-if-hit-pre-PoPA request
EP4127950B1 (en) Apparatus and method
US20230185733A1 (en) Data integrity check for granule protection data
US20230132695A1 (en) Apparatus and method using plurality of physical address spaces
WO2022214776A1 (en) Apparatus and method for handling stashing transactions
EP4315076A1 (en) Partition identifier space selection

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