CN108139906B - 一种处理数据的方法及装置 - Google Patents

一种处理数据的方法及装置 Download PDF

Info

Publication number
CN108139906B
CN108139906B CN201680057785.3A CN201680057785A CN108139906B CN 108139906 B CN108139906 B CN 108139906B CN 201680057785 A CN201680057785 A CN 201680057785A CN 108139906 B CN108139906 B CN 108139906B
Authority
CN
China
Prior art keywords
data
exception
syndrome
program
handling
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
CN201680057785.3A
Other languages
English (en)
Other versions
CN108139906A (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
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 CN108139906A publication Critical patent/CN108139906A/zh
Application granted granted Critical
Publication of CN108139906B publication Critical patent/CN108139906B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3865Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Executing Machine-Instructions (AREA)
  • Storage Device Security (AREA)
  • Microcomputers (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Abstract

数据处理系统(2)包括意外处理电路(26)以检测包括利用寄存器库(20)的给定寄存器来传送数据值的意外触发处理操作的尝试执行。当检测到这样的意外触发处理操作时,症候群数据被存储在表征该意外触发处理操作的症候群寄存器(32)中,并且该症候群数据包括数据值。在中止写入指令的情形中,当出现意外时,值可被存储在症候群寄存器中。在中止读取指令的情况下,可以通过仿真由意外触发的代码来将数据值存储在症候群寄存器中。

Description

一种处理数据的方法及装置
技术领域
本公开涉及数据处理系统的领域。更具体地,本公开涉及数据处理系统内的意外处理。
背景技术
已知在数据处理系统的操作期间可能出现需要执行意外处理的意外状况,例如,数据中止、未定义的指令等。当检测到这样的动作时,可能触发意外处理程序指令的执行。
其中出现意外处理的一种情形是经虚拟化的系统的上下文。超管理器程序可以为访客操作系统及应用程序提供虚拟执行环境。访客操作系统或应用程序可能尝试被捕获为意外并然后由超管理器仿真的数据访问。为了超管理器可以仿真数据访问,需要访问访客系统的状态。然而,在一些情形中,出于安全原因,当访客系统包括专用/秘密/安全数据时可能期望不允许超管理器来访问访客系统的状态。
发明内容
本公开的至少一些实施例提供了用于处理数据的装置,包括:多个寄存器;意外处理电路,用于检测包括利用所述多个寄存器中的给定寄存器来传送数据值的意外触发处理操作的尝试执行,并且用于触发意外处理程序指令的执行以至少部分地仿真所述意外触发处理操作;以及症候群 (syndrome)数据存储,用于存储表征所述意外触发处理操作并包括所述数据值的症候群数据;其中,所述意外处理电路使用所述症候群数据内的所述数据值来利用所述给定寄存器执行所述传送。
本公开的至少一些实施例提供了用于处理数据的装置,包括:多个寄存器装置,用于存储数据;意外处理装置,用于检测包括利用所述多个寄存器装置中的给定寄存器装置来传送数据值的意外触发处理操作的尝试执行,并且用于触发意外处理程序指令的执行以至少部分地仿真所述意外触发处理操作;以及症候群数据存储装置,用于存储表征所述意外触发处理操作并包括所述数据值的症候群数据;其中,所述意外处理装置使用所述症候群数据内的所述数据值来利用所述给定寄存器装置执行所述传送。
本公开的至少一些实施例提供了一种处理数据的方法,包括:将数据存储在多个寄存器内;检测包括利用所述多个寄存器中的给定寄存器装置来传送数据值的意外触发处理操作的尝试执行;触发意外处理程序指令的执行以至少部分地仿真所述意外触发处理操作;以及存储表征所述意外触发处理操作并包括所述数据值的症候群数据;以及使用所述症候群数据内的所述数据值来利用所述给定寄存器装置执行所述传送。
附图说明
现在将参考附图以仅示例的方式描述示例实施例,其中:
图1示意性地示出了数据处理系统;
图2是示意性地示出意外处理的流程图;
图3是示意性地示出虚拟化程序和访客程序的图示;以及
图4示意性地示出了两阶段虚拟到物理地址变换。
具体实施方式
图1示意性地示出了数据处理系统2,其包括经由互连电路6连接至存储器8和一个或多个存储器映射输入/输出设备10的处理器核心4。存储器8包括一个或多个专用区域10,其存储专用于使用处理器核心4在虚拟化环境中执行的访客程序的数据。存储器8还包括一个或多个共享区域 12,其在访客程序和为访客程序提供虚拟化执行环境的虚拟化程序之间共享。例如,虚拟化程序可以是超管理器程序并且访客程序可以是访客操作系统程序,其本身为一个或多个应用程序提供虚拟化执行环境。
处理器核心4包括指令提取单元14,其从存储器8提取待执行的程序指令并且将这些程序指令提供给解码器16,其中程序指令被译码以产生控制信号,这些控制信号然后控制处理器核心4内的其他电路以执行由经解码的程序指令指定的处理操作。处理器核心4包括处理电路18,其包括寄存器库20(包括多个通用寄存器)以执行诸如算术运算和逻辑运算之类的处理操作。使用加载存储单元22来执行存储器访问操作,例如响应于加载指令(LDR)的加载操作,从而从存储器8读取数据值并且将该数据值存储在寄存器库20的寄存器中。加载存储单元22还执行由存储指令 (STR)指定的存储操作,其中从寄存器库20的寄存器读取数据值并且将这些数据值存储在存储器8内的存储器地址中。可能存在这些加载及存储指令的变体。输入/输出设备10是存储器映射的并且因此可以使用加载指令及存储指令以从输入/输出设备10读取数据值并且将这些数据值存储在寄存器库20内的寄存器中。类似地,可以使用存储操作来从寄存器库20 读取值并且将这些值写入至输入/输出设备10。
存储器管理单元24使用存储在存储器8内的页表数据来管理在处理器核心4上执行的存储器访问指令对存储器地址空间(包括存储器8及输入/输出设备10)的访问。存储器管理单元24检测何时尝试违反访问许可或以其他方式不许可的存储器访问。这引起数据中止。意外处理电路26 响应于由存储器管理单元24指示的数据中止而触发意外处理。意外处理响应可以包括使用跟随指示意外处理程序指令的起始地址的意外向量来开始这些意外处理程序指令的执行(例如,将向量地址加载到程序计数器)。此外,作为意外响应的一部分,意外处理电路26可以将如保持在CPSR寄存器28(当前程序状态寄存器)中的表示处理器核心4的当前处理状态的状态数据保存在SPSR寄存器30(所保存的程序状态寄存器)中,当意外处理已完成时可以从SPSR寄存器3复原状态数据且使得返回至初始程序流。症候群寄存器32被耦合至意外处理电路26并且存储表征使得意外被意外处理电路26处理的意外触发处理操作(至少针对一些存储器访问) 得的数据。在一些实施例中,可以使用一个以上症候群寄存器。(一个或多个)症候群寄存器是症候群数据存储的示例。在数据中止的情形中,症候群数据包括,例如:与已中止的存储器访问相关联的存储器地址空间内的地址;指示存储器访问是写入至该存储器地址还是从该存储器地址读取的标志;指示正被访问的数据值的大小(例如,字节、半字、字、双字等) 的大小值。此外,在作为写入存储器地址空间内的存储器地址的中止存储器访问的情形中,则症候群寄存器包括待写入的数据值。该数据值可被从加载存储单元22提供给症候群寄存器32。在中止存储器访问是从存储器地址空间读取数据值的情形中,则症候群寄存器32包括可以通过意外处理程序指令(执行意外处理处理操作)将该数据值存储在其中的空间,以使得当重放中止存储器访问指令时,所读取的数据值可以从症候群寄存器 32恢复并且被返回到加载存储单元22及处理器核心4(例如,返回到寄存器库20的适当的寄存器中)。
数据处理系统2支持虚拟化,从而超管理器程序为一个或多个访客操作系统程序及应用程序提供虚拟化执行环境。为增强系统的安全性,由存储器管理单元24保持的存储器访问数据可用于拒绝给予超管理器访问与访客程序相关联的数据(例如存储在属于该客程序的专用区域10内的数据)的能力。在访客程序的执行期间存储在寄存器库20内的数据以及与访客程序相关联的其他状态数据(例如,CPSR数据、状态配置数据等) 也可保持为专用于访客程序。超管理器程序进行操作以捕获访客程序对某些存储器地址的存储器访问,诸如存储器映射输入/输出设备10。超管理器程序代表使用意外处理程序指令来执行意外处理处理操作的访客程序来仿真这些捕获的存储器访问。作为示例,访客程序可能设法执行将数据值写入存储器映射输入/输出设备。存储器管理单元24使用其页表数据检测到写入访问是由超管理器程序捕获和仿真的访问,并且因此产生被传递到意外处理电路26的数据中止意外。意外处理电路26将表征经中止写入的数据保存到症候群寄存器32中。表征写入的该数据包括:指示中止操作是写入操作的标志;所尝试的写入操作的地址;将由所尝试的写入操作写入的数据值;待写入的数据值的大小;以及如在模拟中止写入操作中可能有用的其他数据(诸如下文所论述的重放状态数据)。意外处理电路还将当前程序状态寄存器内容28存储到所保存的程序状态寄存器30中。在中止写入操作之前的症候群寄存器32的内容构成当前程序状态的一部分并且因此还被保存为意外处理的一部分。若在中止存储器访问的仿真期间出现另一意外,则该时间的当前症候群数据将类似地被保存为当前程序状态数据的一部分,以使得在意外展开时可被恢复。
由所尝试的写入操作的数据中止触发的意外处理程序指令用于从症候群寄存器32读取症候群数据并使用该数据来完成所期望的写入操作。例如,该完成可能涉及将由访客程序指定的写入的地址变换为将由意外处理程序指令使用的不同地址,这些不同地址作为超管理器程序的一部分并对应于如由超管理器程序管理的存储器映射输入输出设备10的物理地址。
在由意外处理程序指令捕获并仿真的中止存储器访问指令是从存储器映射输入/输出设备10读取数据值的情形中,意外处理程序指令从症候群寄存器32读取将被读取的存储器地址并然后执行从如由超管理器程序管理的适当存储器地址的读取。从该读取返回的数据值被存储在症候群寄存器32中作为症候群数据的一部分。
当在从意外处理返回时重新启动访客程序时,则发布中止存储器访问指令(无论是写入还是读取)以用于重新执行。在读取的情形中,则由仿真该读取的意外处理存储在症候群寄存器32内的数据值然而作为该读取的结果被返回,例如,被存储在如由原始读取指令指定的寄存器库20的适当的目的地寄存器中。在重新执行写入指令的情形中,仿真意外处理程序指令将已经代表访客程序执行了所指定的写入操作且因此可在无需进一步动作的情况下完成(退出)写入程序指令。
症候群寄存器32存储重放状态数据作为症候群数据的一部分。该重放状态数据可以是具有第一状态或第二状态的标志。使用重放状态数据来指示已经在再次尝试执行该存储器访问指令时仿真了中止存储器访问指令。因此,当在访客程序的程序流内首次遇到中止存储器访问指令时,它触发意外处理并且由意外处理程序指令仿真。作为仿真的一部分,将重放状态数据(其可以是症候群数据的一部分或被保持在别处)设至为第一状态。当已经完成仿真并且再次尝试执行中止存储器访问指令时,意外处理电路 26检测到重放状态数据具有第一状态并且因此检测到已经仿真了中止存储器访问。若中止存储器访问是写入,则意外处理电路26可以简单地将该写入标记为完成,如同先前所执行的仿真已经执行了所期望的写入。在中止存储器访问是读取的情形中,则症候群寄存器32包括通过仿真意外处理程序指令针对该读取返回的数据值。在此情形中,意外处理电路26使用来自症候群寄存器32的该数据值并将其提供为数据读取的结果(例如,将来自症候群寄存器32的读取数据传送到由中止读取指令指定的寄存器库20内的适当的目的地寄存器),并且然后将读取指令处理为完成。
图2是示意性地示出意外处理数据中止的流程图。在步骤27处,处理等待直至数据中止出现为止。可以不同方式处理其他类型的意外。当数据中止出现时,在步骤29处,意外处理电路32用于访问症候群数据寄存器32。步骤31确定在症候群寄存器32内访问的重放状态数据是否具有第二状态。若重放状态数据具有第二状态,则这指示尚未仿真中止存储器访问指令。
若重放状态数据具有第二状态,则步骤33将重放状态数据设置为第一状态以使得当再次遇到中止存储器访问时,则可以检测到其已经被模拟。步骤34确定中止存储器访问是否是加载指令。若中止存储器访问是加载指令,则步骤36用于将数据存储在症候群寄存器32中,作为表征该加载指令的症候群数据的一部分,该数据包括作为加载指令的目标的存储器地址、加载指令的数据大小、以及指示中止存储器访问是读取的标志。若步骤34处的确定是中止存储器访问是存储指令(即非加载),则步骤38用于将存储指令的目标地址、作为存储指令的一部分待写入的数据值、数据值之数据大小、以及指示中止存储器访问是写入的标志存储在症候群寄存器32中,作为症候群数据的一部分。
在步骤36及38两者之后,步骤40用于触发意外处理指令的执行。该触发可以采用遵循关于数据中止被设置为数据处理系统2的配置的一部分的意外向量的形式,其中,使用该向量来设定程序计数器值以使得开始意外处理程序指令的执行。
步骤42由意外处理程序指令执行并且确定中止指令是否是加载。可以通过检查如在步骤36及38处设置的存储在症候群寄存器32中的症候群数据内的读取/写入标志来执行此确定。若正被仿真的中止存储器访问是加载,则步骤44用于通过从症候群寄存器中的存储器地址(或该存储器地址的转换版本)读取数据值、将从数据读取返回的读取数据值存储回症候群寄存器32中、以及执行任何其他动作以完成中止读取操作的仿真来仿真该加载。若步骤42处的确定为待仿真的中止存储器访问是存储操作,则步骤46用于通过将存储在症候群寄存器32中的数据值写入到如由存储在症候群寄存器32内的存储器地址所指示的存储器地址(或该存储器地址之转换版本)来完成该存储操作。
在步骤44及46两者之后,处理进行至步骤48,在步骤48处,通过返回至中止触发程序指令来执行从意外返回。将理解,意外处理程序指令在意外处理与模拟操作期间可以执行其他操作,例如,处理其他程序状态的存储以及该程序状态的恢复。
在步骤48之后,处理返回至步骤27。因为步骤48已经将处理返回到中止触发指令(中止访客程序内的存储器访问),则步骤27将检测到该指令由于受存储器管理单元24的相同保护而再次中止。在此情形中,步骤30处的确定将是重放状态数据不等于第二状态并且因此处理进行至步骤50。步骤50将重放状态数据设置为第二状态。步骤52检测存储器存取指令是否是加载。若中止存储器访问指令是加载,则步骤54用于返回存储在症候群寄存器值32内的数据值作为中止加载指令的结果。然后,步骤56通过将其标记为完成并且处理返回至步骤27来退出指令。若步骤52 处的确定是中止存储器访问指令不是加载,则绕过步骤54并且处理直接进行至步骤56,在步骤56处退出中止存储器访问指令(在此情形中是存储)并且将其标记为完成。
将理解,图2所示的流程图包括由硬件(例如,由意外处理电路26) 执行的一些步骤及由软件执行的一些步骤。在此实例中,标记有“*”的步骤由使用意外处理程序指令的软件执行。其他处理步骤在意外处理电路 26和数据处理系统2内的其他组件(需要时)的硬件控制下执行。将理解,在其他实施例中,可以使用在硬件及软件中执行的步骤之间的不同分配。
图3示意性地示出了虚拟化程序(以超管理器程序58的形式)与访客程序(以防客操作系统60、62及应用程序64、66、68、70的形式)之间的关系。超管理器程序58以高于防客程序60-70的优先权等级(意外等级)操作。超管理器程序58为访客程序60-70提供虚拟化执行环境。作为该虚拟化执行的一部分,超管理器程序58提供对输入/输出设备10的虚拟访问。超管理器程序58还可以虚拟化对数据处理系统2的其他存储器地址或资源(例如,系统配置寄存器)的访问。可以使用利用症候群寄存器 32的当前技术来提供对意外处理程序指令的其他意外触发处理操作(例如,所捕获的对系统寄存器的访问)的仿真。在这些情形中,还可以在不需要仿真以访问访客程序的专用数据的情况下,使用存储在症候群寄存器32内的症候群数据来执行仿真。执行仿真所需的数据可在硬件控制下存储至症候群寄存器32中,可以通过仿真程序指令来从症候群寄存器32读取该数据。
图4示意性地示出了由存储器管理单元24执行的两阶段地址变换。应用程序64、66、68、70可以使用虚拟地址来产生存储器访问指令。然后,由存储器管理单元24使用由适当的访客操作系统60、62控制的页表数据来执行第一阶段转换72,以形成对应于如由访客操作系统60、62提供的物理地址的中间物理地址。访客操作系统60、62本身正在虚拟化环境中执行,并且因此存储器管理单元24使用由超管理器58管理的页表数据来执行第二阶段转换74以产生物理地址,其然后寻址包括存储器8及输入/输出设备10的存储器地址空间。由第二阶段转换74产生的物理地址对应物理存储器地址空间的超管理器视图。
第一阶段转换72使用由访客操作系统60、62管理的页表数据。该第一阶段转换72可用于阻止超管理器程序58对专用于访客操作系统60、62 (或应用程序64-70)的存储器8内的专用区域10的尝试存储器访问。即使超管理器程序58具有高于访客操作系统60、62的优先权等级,如由访客操作系统60、62管理的第一阶段转换72可以阻止超管理器访问数据。对应于第一阶段转换72的页表数据可被存储在专用区域10内以保护其安全性。
使用由超管理器程序58管理的页表数据来执行第二阶段转换74。可使用该第二阶段转换数据74来捕获访客操作系统60、62对诸如输入输出设备10之类存储器地址的存储器访问,这些存储器地址由超管理器程序 58控制并且要求由超管理器程序58使用症候群寄存器32及上文讨论的症候群数据来进行仿真。
上述示例性实施例使用重放状态数据以在尝试重新执行意外触发程序指令时控制行为。替代示例实施例可以不需要使用该重放状态数据。在意外触发程序指令是存储指令的情形中,意外处理程序指令可以在使用在存储指令之后(即不尝试重新执行存储指令)的程序指令的意外处理之后重新开始执行。在意外触发程序指令是加载指令的情形中,可以通过在意外处理程序指令的结束时配设并使用新指令而避免需要使用重放状态数据,该新指令控制意外处理电路以在将执行返回到加载指令之后的指令之前,将数据值从症候群寄存器盲复制至其意图的目的地寄存器。
尽管本文已经参考附图详细描述了本发明的说明性实施例,但将理解的是,权利要求不限于这些精确的实施例,并且可以由本领域技术人员实现各种改变、添加、以及修改而不脱离所附权利要求的范围和精神。例如,从属权利要求的特征的各种组合可以与独立权利要求的特征相一致。

Claims (18)

1.用于处理数据的装置,包括:
多个寄存器;
意外处理电路,所述意外处理电路用于检测包括利用所述多个寄存器中的给定寄存器来传送数据值的意外触发处理操作的尝试执行,并且用于触发意外处理程序指令的执行以至少部分地仿真所述意外触发处理操作;以及
症候群数据存储,所述症候群数据存储用于存储表征所述意外触发处理操作并且包括所述数据值的症候群数据;其中
所述意外处理电路使用所述症候群数据内的所述数据值来利用所述给定寄存器执行所述传送;并且
所述症候群数据包括具有第一状态和第二状态的重放状态数据;
当所述重放状态数据具有所述第二状态并且在尝试执行所述意外触发处理操作时,所述意外处理电路将所述重放状态数据设置为所述第一状态,并且触发所述意外处理程序指令的执行;以及
当所述重放状态数据具有所述第一状态并且在尝试执行所述意外触发处理操作时,所述意外处理电路将所述重放状态数据设置为所述第二状态,抑制所述意外处理程序指令的触发并且将所述意外触发处理操作信令为完成。
2.根据权利要求1所述的装置,其中,
所述意外触发处理操作是加载操作以将所述数据值从存储器地址传送到所述给定寄存器;
所述意外处理程序指令将所述数据值从所述存储器地址传送到所述症候群数据存储;并且
所述意外处理电路在尝试重新执行所述加载操作时将所述数据值从所述症候群数据存储传送到所述给定寄存器。
3.根据权利要求1所述的装置,其中,
所述意外触发处理操作是存储操作以将所述数据值从所述给定寄存器传送到存储器地址;
所述意外处理电路在所述尝试执行所述存储操作时将所述数据值从所述给定寄存器传送到所述症候群数据存储;并且
所述意外处理程序指令将所述数据值从所述症候群数据存储传送到所述存储器地址。
4.根据权利要求1-3中的任一项所述的装置,其中,当所述重放状态数据具有所述第一状态并且在尝试执行所述意外触发处理操作时,所述意外处理电路将所述数据值从所述症候群数据存储传送到所述给定寄存器。
5.根据权利要求1-3中的任一项所述的装置,其中,在完成所述意外处理程序指令时,所述意外处理电路触发尝试重新执行所述意外触发处理操作。
6.根据权利要求1-3中的任一项所述的装置,其中,所述症候群数据是所保存的当前程序状态数据的一部分,并且在意外进入和退出时被恢复。
7.根据权利要求1-3中的任一项所述的装置,其中,所述意外触发处理操作触发数据中止。
8.根据权利要求1-3中的任一项所述的装置,其中,对应于所述意外触发处理操作的程序指令是访客程序的一部分,并且所述意外处理程序指令是提供用于所述访客程序的执行环境的虚拟化程序的一部分。
9.根据权利要求8所述的装置,其中,所述虚拟化程序被阻止访问所述访客程序的专用状态数据。
10.根据权利要求9所述的装置,其中,所述专用状态数据包括所述访客程序的执行期间所述多个寄存器内的数据值。
11.根据权利要求9或10所述的装置,包括存储器管理单元,所述存储器管理单元根据包括第一阶段映射数据和第二阶段映射数据的映射数据来管理对存储器的访问,其中,所述访客程序管理所述第一阶段映射数据,所述虚拟化程序管理所述第二阶段映射数据,并且所述意外触发处理操作使用所述第二阶段映射数据被检测到。
12.根据权利要求11所述的装置,其中,所述第一阶段映射阻止所述虚拟化程序对所述访客程序的所述专用状态数据的访问。
13.根据权利要求1-3中的任一项所述的装置,其中,所述传送在所述给定寄存器和输入/输出设备之间。
14.根据权利要求1-3中的任一项所述的装置,其中,所述症候群数据包括指示存储器地址的地址数据,并且所述数据值的所述传送在所述给定寄存器和所述存储器地址之间。
15.根据权利要求1-3中的任一项所述的装置,其中,所述症候群数据包括所述数据值的大小数据。
16.根据权利要求1-3中的任一项所述的装置,其中,所述症候群数据指定所述传送是到所述给定寄存器的所述数据值的加载还是来自所述给定寄存器的所述数据值的写入。
17.根据权利要求1-3中的任一项所述的装置,其中,所述症候群数据存储是症候群寄存器。
18.一种处理数据的方法,包括:
将数据存储在多个寄存器内;
检测包括利用所述多个寄存器中的给定寄存器装置来传送数据值的意外触发处理操作的尝试执行;
触发意外处理程序指令的执行以至少部分地仿真所述意外触发处理操作;并且
存储表征所述意外触发处理操作并且包括所述数据值的症候群数据;以及
使用所述症候群数据内的所述数据值来利用所述给定寄存器装置执行所述传送;并且
所述症候群数据包括具有第一状态和第二状态的重放状态数据;
当所述重放状态数据具有所述第二状态并且在尝试执行所述意外触发处理操作时,将所述重放状态数据设置为所述第一状态,并且触发所述意外处理程序指令的执行;以及
当所述重放状态数据具有所述第一状态并且在尝试执行所述意外触发处理操作时,将所述重放状态数据设置为所述第二状态,抑制所述意外处理程序指令的触发并且将所述意外触发处理操作信令为完成。
CN201680057785.3A 2015-10-14 2016-09-09 一种处理数据的方法及装置 Active CN108139906B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1518165.4A GB2543306B (en) 2015-10-14 2015-10-14 Exception handling
GB1518165.4 2015-10-14
PCT/GB2016/052784 WO2017064453A1 (en) 2015-10-14 2016-09-09 Exception handling

Publications (2)

Publication Number Publication Date
CN108139906A CN108139906A (zh) 2018-06-08
CN108139906B true CN108139906B (zh) 2022-09-02

Family

ID=55131018

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680057785.3A Active CN108139906B (zh) 2015-10-14 2016-09-09 一种处理数据的方法及装置

Country Status (9)

Country Link
US (1) US10649787B2 (zh)
EP (1) EP3341834B1 (zh)
JP (1) JP6920286B2 (zh)
KR (1) KR102613643B1 (zh)
CN (1) CN108139906B (zh)
GB (1) GB2543306B (zh)
IL (1) IL257898B (zh)
TW (1) TWI724034B (zh)
WO (1) WO2017064453A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2579617B (en) * 2018-12-06 2021-01-27 Advanced Risc Mach Ltd An apparatus and method for handling exception causing events
FR3100901B1 (fr) * 2019-09-12 2021-08-27 Stmicroelectronics Grand Ouest Sas Système de protection de la mémoire
US11816217B2 (en) * 2020-04-10 2023-11-14 Vmware, Inc. Decoy memory allocation

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1286772A (zh) * 1997-08-11 2001-03-07 全斯美达有限公司 用于高级微处理器的翻译存储器保护装置
CN102037448A (zh) * 2008-05-23 2011-04-27 Arm有限公司 主机数据处理设备内的装置仿真支持
CN102460376A (zh) * 2009-06-26 2012-05-16 英特尔公司 无约束事务存储器(utm)系统的优化

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5327567A (en) * 1989-11-16 1994-07-05 Texas Instruments Incorporated Method and system for returning emulated results from a trap handler
US5751945A (en) * 1995-10-02 1998-05-12 International Business Machines Corporation Method and system for performance monitoring stalls to identify pipeline bottlenecks and stalls in a processing system
US6189093B1 (en) * 1998-07-21 2001-02-13 Lsi Logic Corporation System for initiating exception routine in response to memory access exception by storing exception information and exception bit within architectured register
US8127121B2 (en) * 1999-01-28 2012-02-28 Ati Technologies Ulc Apparatus for executing programs for a first computer architechture on a computer of a second architechture
US6615343B1 (en) * 2000-06-22 2003-09-02 Sun Microsystems, Inc. Mechanism for delivering precise exceptions in an out-of-order processor with speculative execution
GB2369464B (en) * 2000-11-27 2005-01-05 Advanced Risc Mach Ltd A data processing apparatus and method for saving return state
US7607133B2 (en) * 2004-02-11 2009-10-20 Arm Limited Interrupt processing control
US7802080B2 (en) * 2004-03-24 2010-09-21 Arm Limited Null exception handling
US7406634B2 (en) * 2004-12-02 2008-07-29 Cisco Technology, Inc. Method and apparatus for utilizing an exception handler to avoid hanging up a CPU when a peripheral device does not respond
US7920584B2 (en) * 2005-05-04 2011-04-05 Arm Limited Data processing system
US8463969B2 (en) * 2005-06-30 2013-06-11 Intel Corporation Extended message signal interrupt
US7657694B2 (en) * 2006-12-20 2010-02-02 Arm Limited Handling access requests in a data processing apparatus
US8135894B1 (en) * 2009-07-31 2012-03-13 Altera Corporation Methods and systems for reducing interrupt latency by using a dedicated bit
US9244686B2 (en) * 2011-04-07 2016-01-26 Via Technologies, Inc. Microprocessor that translates conditional load/store instructions into variable number of microinstructions
US20120260073A1 (en) * 2011-04-07 2012-10-11 Via Technologies, Inc. Emulation of execution mode banked registers
US9152548B2 (en) * 2012-01-17 2015-10-06 Vmware, Inc. Controlling access to a privileged resource in user-mode system level mobile virtualization using a ptrace () system call
US9317452B1 (en) * 2013-11-18 2016-04-19 Amazon Technologies, Inc. Selective restrictions to memory mapped registers using an emulator
US9396056B2 (en) * 2014-03-15 2016-07-19 Intel Corporation Conditional memory fault assist suppression
US10289414B2 (en) * 2014-06-02 2019-05-14 International Business Machines Corporation Suppressing branch prediction on a repeated execution of an aborted transaction
US9864541B2 (en) * 2015-02-13 2018-01-09 Google Llc Transparent hardware-assisted memory decompression

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1286772A (zh) * 1997-08-11 2001-03-07 全斯美达有限公司 用于高级微处理器的翻译存储器保护装置
CN102037448A (zh) * 2008-05-23 2011-04-27 Arm有限公司 主机数据处理设备内的装置仿真支持
CN102460376A (zh) * 2009-06-26 2012-05-16 英特尔公司 无约束事务存储器(utm)系统的优化

Also Published As

Publication number Publication date
EP3341834A1 (en) 2018-07-04
GB201518165D0 (en) 2015-11-25
CN108139906A (zh) 2018-06-08
US10649787B2 (en) 2020-05-12
TW201715408A (zh) 2017-05-01
KR102613643B1 (ko) 2023-12-14
JP6920286B2 (ja) 2021-08-18
GB2543306A (en) 2017-04-19
IL257898A (en) 2018-05-31
IL257898B (en) 2020-03-31
US20180239607A1 (en) 2018-08-23
TWI724034B (zh) 2021-04-11
WO2017064453A1 (en) 2017-04-20
KR20180067581A (ko) 2018-06-20
GB2543306B (en) 2019-05-01
EP3341834B1 (en) 2021-05-12
JP2018531462A (ja) 2018-10-25

Similar Documents

Publication Publication Date Title
TWI509518B (zh) 用於改良巢式虛擬化之性能的方法、中央處理單元裝置及系統
EP1939754B1 (en) Providing protected access to critical memory regions
US8099541B2 (en) Minivisor entry point in virtual machine monitor address space
US8561060B2 (en) Processor and method configured to determine an exit mechanism using an intercept configuration for a virtual machine
WO2000033170A1 (en) Method of communication between firmware written for different instruction set architectures
TWI663547B (zh) 用於於虛擬化環境中保存/復原受防護之儲存器控制之電腦程式產品、電腦實施方法及電腦系統
CN108139906B (zh) 一种处理数据的方法及装置
JP2022503899A (ja) スタック・ポインタを検証すること
US8438340B2 (en) Executing atomic store disjoint instructions
US10963280B2 (en) Hypervisor post-write notification of control and debug register updates
WO2016118031A2 (en) Computer security systems and methods using hardware-accelerated access to guest memory from below the operating system
JP5318197B2 (ja) ホストデータ処理装置内におけるデバイスエミュレーションのサポート
JP2022505011A (ja) メモリ・アクセスを制御するための装置及び方法
JP2018531462A6 (ja) 例外処理
US9383935B1 (en) Secondary CPU MMU initialization using page fault exception
JP7349437B2 (ja) メモリ・アクセスにおける保護タグ・チェックの制御
US11216280B2 (en) Exception interception
US20120323552A1 (en) Apparatus and Method for Hardware Initiation of Emulated Instructions
CN111158863B (zh) 中断控制器的处理方法、装置及电子设备
JP7369720B2 (ja) アクションをトリガするための装置及び方法
CN118113411A (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
GR01 Patent grant
GR01 Patent grant