CN107111525A - 数据处理设备中的系统错误处置 - Google Patents

数据处理设备中的系统错误处置 Download PDF

Info

Publication number
CN107111525A
CN107111525A CN201580063372.1A CN201580063372A CN107111525A CN 107111525 A CN107111525 A CN 107111525A CN 201580063372 A CN201580063372 A CN 201580063372A CN 107111525 A CN107111525 A CN 107111525A
Authority
CN
China
Prior art keywords
condition
error
data processing
mistake
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.)
Granted
Application number
CN201580063372.1A
Other languages
English (en)
Other versions
CN107111525B (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 CN107111525A publication Critical patent/CN107111525A/zh
Application granted granted Critical
Publication of CN107111525B publication Critical patent/CN107111525B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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
    • 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
    • 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/0706Error 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 the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error 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 the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • 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/0793Remedial or corrective actions
    • 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/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • 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/522Barrier synchronisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Advance Control (AREA)
  • Debugging And Monitoring (AREA)

Abstract

提供了用于数据处理的设备及数据处理的方法。响应于数据处理指令进行数据处理操作。若数据处理操作未成功,则设置错误异常条件。确定是否存在错误存储器障碍条件并取决于是否存在错误存储器障碍条件来进行错误存储器障碍程序。若设置错误异常条件且若设置错误遮蔽条件,则错误存储器障碍程序包括:设置延迟错误异常条件;以及清除错误异常条件。

Description

数据处理设备中的系统错误处置
技术领域
本公开涉及数据处理。更具体地,本公开涉及处置数据处理设备中的系统错误。
背景技术
众所周知,当数据处理设备响应于所执行的数据处理指令进行数据处理操作时,数据处理设备所尝试的一些数据处理操作可导致系统错误。此系统错误可由各种原因造成,但大体上指示数据处理设备无法成功完成数据处理操作。为了处置这样的系统错误的发生,进一步已知可配置数据处理设备实施异常处置例程,此例程为程序设计师所提供的数据处理指令集合以便以可靠且一致的方式处置系统错误的发生。本公开涉及改良数据处理设备响应系统错误发生的方式。
发明内容
从第一实施例看,提供了一种用于数据处理的设备,该设备包括:处理电路,以响应于数据处理指令进行数据处理操作,以确定是否存在错误存储器障碍条件并取决于是否存在错误存储器障碍条件来进行错误存储器障碍程序,其中处理电路能够在检测到数据处理操作未成功后设置错误异常条件,且其中若设置错误异常条件且若设置错误遮蔽条件,则错误存储器障碍程序包括:设置延迟错误异常条件;及清除错误异常条件。从第二实施例看,提供一种数据处理方法,该方法包括以下步骤:响应于数据处理指令进行数据处理操作;在检测到数据处理操作未成功后设置错误异常条件;确定是否存在错误存储器障碍条件;以及取决于是否存在错误存储器障碍条件来进行错误存储器障碍程序,其中若设置错误异常条件且若设置错误遮蔽条件,则错误存储器障碍程序包括:设置延迟错误异常条件;以及清除错误异常条件。
从第三实施例看,提供一种用于数据处理的设备,该设备包括:响应于数据处理指令进行数据处理操作的装置;在检测到数据处理操作未成功后设置错误异常条件的装置;确定是否存在错误存储器障碍条件的装置;以及取决于是否存在错误存储器障碍条件来进行错误存储器障碍程序的装置,其中若设置错误异常条件且若设置错误遮蔽条件,错误存储器障碍程序包括:设置延迟错误异常条件;以及清除错误异常条件。
附图说明
将参看附图中所图示的本发明的实施例,仅通过实例方式进一步描述本发明,在附图中:
图1示意性图示一个实施例中的数据处理电路及关联存储器系统的实例;
图2更详细地示意性图示一个实施例中的图1中的一个些组件的配置;
图3图示可通过一个实施例中的处理电路执行的数据处理指令序列及一些相关数据处理操作及系统事件;
图4图示通过一个实施例中的处理电路实施的步骤的示例性集合;
图5图示通过一个实施例中的处理电路响应于数据处理指令实施的步骤序列;
图6示意性图示一个示例性实施例的虚拟化操作环境;
图7图示在虚拟化操作环境中运作中的一个个实施例中实施的步骤序列;
图8A与图8B示意性图示实施例中的多个异常状况与异常水平及当发生异常时这样的异常水平之间的一些示例性转换;
图9A图示一个实施例中的用于处置物理错误的当前及目标异常水平的示例性集合,以及如何处置相应错误异常条件的定义;
图9B图示一个实施例中的用于处置虚拟错误的当前异常水平及目标异常水平的示例性集合,以及如何处置相应错误异常条件的定义;
图9C图示在虚拟化操作环境中运作的实施例中的取决于两个参数设置而使用的物理及虚拟目标的表格;
图10A图示一个实施例中的界定错误存储器障碍指令的假码的示例性集合;以及
图10B图示使用错误存储器障碍指令的数据处理指令的示例性序列。
具体实施方式
本发明技术认识到,在用于通过进行异常处置程序(例程)响应系统错误(异步中止)的处理资料的设备中,当报告错误时,可出现针对系统识别此错误的来源的困难。此与这样的错误的异步本质相关,意谓在执行导致此系统错误发生的数据处理指令的点与将错误报告回处理器(处理电路)的点之间几乎不存在关联。更具体地,此可例如为关于存储器访问的以下情况:考虑到可与这样的存储器访问关联的潜时及存储器访问以各种方式皆不成功的潜在可能性,处理电路寻求响应于相应数据处理指令进行存储器访问。可例如由载入操作、储存操作、页表移动(page table walk)、指令撷取等等产生这样的错误。更具体地,本发明技术认识到,当将系统错误(可由不成功的存储器访问造成,或可具有另一来源)报告给处理电路,同时处理电路正进行前一异常(诸如中断请求)所触发的异常处置程序时,系统能够识别现必须处置的系统错误的来源系有益的,以使得例如可采取适当补救动作。应注意,可因此响应于设备中的不同事件设置错误异常条件。一方面,可响应于不成功存储器访问(也就是,并未按指示正确完成存储器访问的情况)加以设置,但另一方面,亦可响应于设备中诸如因随机事件或紊乱造成的其它类型错误异常条件(例如,同时正实施其它数据处理操作)加以设置。
为此,在系统错误导致在设备内设置错误异常条件及响应于此错误异常条件通常配置处理电路以进行异常处置程序的情况下,本发明技术引入错误遮蔽条件(可例如通过设置设备中所储存的错误遮蔽值得以设置),从而使得处理电路能够优先化其对系统错误的响应。更具体地,当将系统错误通知给处理电路(通过错误异常条件设置来通知),同时处理电路响应于图9B图示一个实施例中第一异常条件正进行异常处置程序,或在不可能通过进行异常处置程序响应系统错误的情况下,同时处理电路正执行预定义“关键程序代码”时,处理电路能够经由设置延迟错误异常条件及清除已作为系统错误发生的结果设置的错误异常条件来延迟其对此系统错误的响应。此不仅允许处理电路响应于未中断的第一异常或关键程序代码继续异常处置程序,而且使得系统能够更好地区别导致系统错误发生的来源(也就是,数据处理指令或至少数据处理指令集合)。更具体地,此使得系统能够区别系统错误源,该系统错误源由响应于第一异常优先启动异常处置程序的指令执行及形成针对第一异常的异常处置程序中的一部分的指令执行造成。此功能可在处理电路中经由错误存储器障碍条件得以配置,该错误存储器障碍条件可由系统程序设计师使其存在(设置)。存在可设置此错误存储器障碍条件的各种方式,例如经由专用指令,通过经界定在处理电路启动异常处置程序的进行时总是存在,通过经界定在处理电路启动异常处置程序的进行时若设置设备的进行“模式”则存在(例如,由设备中适用于此目的的值界定)等等。此排列有利地提供一种设备,此设备能够更有效率地处置这样的系统错误而无需例如在异常处置程序(例程)开始时利用数据与指令同步障碍,这样的同步障碍通常具有与障碍关联的大量处理及时间成本。
在一些实施例中,处理电路能够响应于所接收的存储器访问未成功的指示设置(也就是,经配置以设置)错误异常条件,但此可并非处理电路经配置以设置错误异常条件所响应的唯一事件类型,且在一些实施例中,处理电路经配置以响应于与不成功存储器访问不同的其它事件设置错误异常条件。举例而言,处理电路可响应于不成功数据处理操作等等设置错误异常条件。
处理电路可以各种方式响应错误异常条件,且在一些实施例中,若设置错误异常条件及未设置错误遮蔽条件,则处理电路能够进行异常处置程序。
数据处理操作可采取各种形式,且在一些实施例中,数据处理操作包括存储器访问,且处理电路能够接收存储器访问的错误响应,且其中若错误响应指示存储器访问未成功,则处理电路能够设置错误异常条件。
在一些实施例中,处理电路能够响应于数据处理指令中的错误存储器障碍指令确定存在错误存储器障碍条件。提供错误存储器障碍指令为系统程序设计师在确定何时对于处理电路存在(设置)错误存储器障碍条件方面提供了灵活性,则此外为处理电路提供了具有一配置的机会,根据此配置,当遇到错误存储器障碍指令时,不仅建立错误存储器障碍条件,而且进行其它动作。
在一些实施例中,作为异常处置程序的一部分且若设置延迟错误异常条件,处理电路能够启动关于至少一个数据处理指令的补救响应,其中至少一个数据处理指令包括在确定存在错误存储器障碍条件的前所执行的数据处理指令。
当处理电路已设置延迟错误异常条件作为进行错误存储器障碍程序的一部分时,可推断出在由处理电路确定存在错误存储器障碍条件(例如,通过错误存储器障碍指令的执行)的前执行的至少一个数据处理指令引发了错误响应,从而导致设置延迟错误异常条件,且随后可关于至少一个数据处理指令采取适当补救响应,例如以引发在数据处理指令的相同序列之后续再执行中得以避免。
在一些实施例中,设备进一步包括错误存储器障碍模式值储存器,其中当处理电路启动异常处置程序的进行时,处理电路能够取决于错误存储器障碍模式值储存器中所储存的错误存储器障碍模式值确定存在错误存储器障碍条件。举例而言,错误存储器障碍模式值储存器可储存单个位,此单个位指示在处理异常时是否在存在错误存储器障碍条件的模式中操作处理电路。此值可界定由系统程序设计师建立的处理电路的进行模式,根据此模式,界定错误存储器障碍条件在处理电路启动异常处置程序的进行时存在。在一些实施例中,亦可在设备内界定在启动异常处置程序的任何时候皆存在的错误存储器障碍条件,且在这样的实施例中,无需任何显式动作(例如,错误存储器障碍指令的执行或设置错误存储器障碍模式值)即可确定错误存储器障碍条件存在。
在一些实施例中,当进行错误存储器障碍程序时且若存在错误存储器障碍条件,处理电路能够等待尚未完成的每一存储器访问的错误响应,然后执行进一步数据处理指令。若处置该错误响应可潜在为破坏性,例如在响应于先前错误异常条件进行异常处置程序的中途发生,则通过等待尚未完成的每一存储器访问的错误响应,该等待可例如根据与处理电路关联的加载/储存单元的内容确定,处理电路可避免未完成存储器访问在进一步数据处理指令的执行期间传回其错误响应的潜在可能性。
可以各种方式设置错误遮蔽条件,但在一些实施例中,设备进一步包括错误遮蔽值储存器,其中处理电路能够取决于错误遮蔽值储存器中所储存的错误遮蔽值确定是否设置错误遮蔽条件。
在一些实施例中,处理电路能够在开始异常处置程序时设置错误遮蔽值。取决于设备及设备的处理电路的特定配置,总是在开始异常处置程序时设置错误遮蔽条件可为有益的,以使得若另一系统错误(例如,不成功存储器访问)的发生导致设置错误异常条件,则处理电路在进行错误存储器障碍程序时将通过延迟对此后一系统错误的响应而响应。此特定功能如何实施可例如取决于处理电路是否具有多个软件执行优先权水平,这样的软件执行优先权水平可影响响应于所接收的系统错误指示的各别异常处置程序的优先化。
在一些实施例中,如果未设置延迟错误异常条件,则处理电路能够作为异常处置程序中的一个部分而清除错误遮蔽值。以此方式清除错误遮蔽条件使得处理电路能够直接响应在设置了错误遮蔽值的同时搁置的错误或后续错误,也就是,此错误可直接产生异常。
在一些实施例中,如果未设置延迟错误异常条件,则处理电路能够设置错误遮蔽值并在已完成数据处理指令的预定集合后清除错误遮蔽值。此数据处理指令的预定集合可例如为程序代码的“关键”部分,此“关键”部分必须经原子级执行且因此在执行期间无法通过进行异常处置程序响应系统错误。在执行程序代码的此关键部分的前,必须设置错误遮蔽条件。一旦完成程序代码的此关键部分,可因此以此方式清除错误遮蔽条件,从而使得处理电路能够直接响应在设置错误遮蔽值的同时搁置的错误或后续错误,也就是,此错误可直接产生异常。
在一些实施例中,处理电路能够以来自多个异常水平的当前异常水平来进行异常处置程序,其中多个异常水平对应于多个软件进行优先权水平。在本情境中,在处理电路内提供多个软件执行优先权水平使得异常处置程序的优先化能够在与该等多个软件执行优先权水平关联的多个异常水平的不同水平处得以实施,此优先化可例如用于在欲执行的异常水平对应于比当前异常水平高的软件执行优先权水平情况下允许直接处理(也就是,且未延迟)后一异常处置响应(也就是,程序)。
在一些实施例中,如果(第一)异常处置程序将由处理电路以响应于另一错误异常条件进行另一异常处置程序的异常水平相同或更高的异常水平处来执行,则处理电路能够在启动(第一)异常处置程序时设置错误遮蔽条件。因此,错误遮蔽条件的设置可用于确保在较高异常水平(软件执行优先权水平)处进行的(第一)异常处置程序将不受到待在相同或较低异常水平处处置的错误异常条件的任何后续设置(例如,对处理电路的错误响应的通知)干扰。因此,在给定异常水平处,软件可确定哪些为需要保护的程序代码的“关键区域”,且此技术可因此用于实施该保护。
在一些实施例中,若将通过处理电路在比将响应于另一错误异常条件进行另一异常处置程序的异常水平低的异常水平处进行(第一)异常处置程序,则处理电路能够在启动第一异常处置程序时未设置错误遮蔽条件。通过以此方式不设置错误遮蔽条件,可确保当处理电路在较低软件执行优先权水平处进行异常处置程序时,将直接实施响应于错误异常条件之后续设置的异常处置程序(也就是,将产生异常)。
在一些实施例中,设备能够提供在内部操作至少一个虚拟机的虚拟化操作环境,其中虚拟机能够通过与处理电路交互而响应于数据处理指令进行数据处理操作。因此,设备所执行的数据处理指令可与虚拟机程序交互,该虚拟机程序模型化其与虚拟机硬件的交互。
在一些实施例中,设备能够设置虚拟错误异常条件,且其中若设置虚拟错误异常条件并未设置虚拟错误遮蔽条件,处理电路能够进行异常处置程序。可以各种方式设置虚拟错误异常条件,在一些实施例中通过硬件设置虚拟错误异常条件且在一些实施例中,设备能够运作控制虚拟化操作环境的操作的超管理器,且超管理器可设置虚拟错误异常条件。此使得硬件或超管理器能够将虚拟系统错误“注入”系统中,且这样的虚拟错误可用于各种目的。处理电路可随后通过进行异常处置程序用与响应物理错误相同的方式响应虚拟错误的事实是有利的,因为错误本质随后对访客(也就是,在超管理器控制下操作的虚拟机)是透明的。
在一些实施例中,若设置虚拟错误异常条件且若设置虚拟错误遮蔽条件,则错误存储器障碍程序进一步包括:设置虚拟延迟错误异常条件;以及清除虚拟错误异常条件。此排列为虚拟化操作环境内的本发明技术提供进一步支持。举例而言,在通过执行错误存储器障碍指令设置错误存储器障碍条件的情况下,这种避免不得不对超管理器中的错误存储器障碍指令设陷(trap)及仿效,这对于每一异常条目成本高昂。
在一些实施例中,当处理电路寻求确定是否设置延迟错误异常条件时,设备能够提供虚拟延迟错误异常条件的值,而不是延迟错误异常条件的值。可以各种方式提供此值,在一些实施例中由硬件提供此值,且在一些实施例中超管理器提供此值。因此,硬件或超管理器可由此维持虚拟延迟错误异常条件的值(及上述优势),但亦可保持完全隐瞒处理电路(也就是,隐瞒访客虚拟机)的虚拟延迟错误异常条件与延迟错误异常条件之间的此(虚拟)区别。
图1示意性图示数据处理设备2,该数据处理设备包括处理电路4、指令解码器6、缓存器组8及存储器系统10。存储器系统10包括一个或多个缓存器或存储器装置。处理电路4包括众多处理组件,诸如加法器12、乘法器14及移位器16。当处理数据时,指令解码器6响应于程序指令产生控制讯号,用于控制处理电路4处理缓存器8中所储存的资料并将处理结果储存回缓存器8。在指令解码器6的控制下,亦可控制数据处理设备2在缓存器8与存储器系统10之间传送数据(此传送系本文称为“存储器访问”的实例)。
尽管在图1的实例中,将处理电路4图示为处理缓存器8中所储存的数据并将数据处理的结果储存回缓存器8,但应了解,可使用任何其它种类的储存位置,而非缓存器8。应了解,数据处理设备2且特定而言处理电路4通常可包括图1中未图示的其它组件。
图2图示图1的数据处理设备2中的一个些组件的更多细节。图示处理器核心20、加载/储存单元22、存储器管理单元(memory management unit;MMU)24及存储器系统10。参看图1的处理器核心20包括处理电路4、解码器6及缓存器8,但为了图示清晰,图2仅图示缓存器8。处理器核心20(且特定而言该处理器核心内的处理电路)利用管线加载/储存单元22来处置响应于相应数据处理指令发布的存储器访问请求。由于与这样的存储器访问关联的潜时,加载/储存单元22管理与存储器系统的交互,且稍后将响应提供给处理器核心20,同时处理器核心20可继续其它数据处理指令执行。举例而言,如图所示,处理器核心20可提供具有存储器地址(A)的加载/储存单元22,处理器核心寻求对存储器地址(A)的访问(例如,自该存储器位置的加载)。如图所示,指令自左至右移动,且因此存储器地址(A)在经过一个循环并稍后传回数据(D)(因此导致上文论及的异步)。
图2图示存储器系统10包括L1缓存器(L1$)、L2缓存器(L2$)及主DRAM存储器。存储器系统10亦可具有关联MMU 24以管理处理器核心20与存储器系统10之间的交互的某些实施例,例如以提供处理器核心20所使用的虚拟地址与存储器系统10内使用的物理地址之间的地址变换等等。由加载/储存单元22发布给存储器系统10的存储器访问可由MMU 24接收,且若通过MMU 24将访问请求识别为无法成功实施,例如由于MMU 24内的页表中所储存的许可不允许此特定存储器访问,则此可已经导致错误传回至加载/储存单元22(并可能直接传回至处理器核心20,如虚线路径所示)。到达存储器系统10内的储存位置的存储器访问请求导致错误回应传回至加载/储存单元22,且若成功(且由存储器访问所界定),则伴随自相应存储器位置(地址)撷取的数据。因此,应了解,此处所使用的术语“错误响应”并非暗指必然发生错误,而是否发生错误可根据总是接收的错误响应的内容确定。随后可将此资料及错误响应自加载/储存单元22传递至处理器核心20,如图2中针对示例性资料D所示。
在本情境中,错误响应的内容具有特定相关性,尤其是若此对处理器核心20指示存储器访问未成功亦如此。在此情形中,处理器核心20内的处理电路将设置错误异常条件(通过将缓存器值ISR.A设置为1)以便触发相应异常处置程序。尽管如此,在多种情况下,处理器核心20可并未立即实施由错误异常条件的设置所触发的异常处置程序,下文将关于以下图式更详细论述这样的情况。为了通过处理器核心20提供此功能,配置此功能以在缓存器8内储存各种值。图2中的缓存器8示意性图示各种状态缓存器(缓存器配置当前处理器状态,例如堆栈指针、链路缓存器、程序计数器及其它通用缓存器值)及保持值PSTATE.A、ISR.A、DISR.A、AMO、VSE、VDISR.A及EMB模式所示的其它缓存器,但应注意,由后缀“.A”标记的保持值所图示的DISR及VDISR缓存器亦可保持其它相关值。举例而言,在DISR.A保持指示是否已设置此“延迟错误异常条件”的值同时,DISR缓存器的其它部分可储存在处置相关错误异常时使用的其它信息,诸如错误征候信息。此错误征候信息可例如包括错误类型的细节及/或错误对处理器状态的影响的细节。下文将进一步详细论述这样的缓存器及值的用法。
图3图示可通过系统的处理电路执行的数据处理指令的示例性序列。对于数据处理指令的第一部分,在对应于最低软件执行优先权水平的最低异常水平(EL0)处操作处理电路。此后,对于标记为对应于异常处置例程的数据处理指令,在对应于最高软件执行优先权水平的最高异常水平(EL3)处操作数据处理电路。如图式中可见,在数据处理指令的第一部分中所执行的加载(LDR)指令导致存储器访问,从而在其它执行的此图示实例中最终导致指示各别存储器访问未成功完成的错误响应,也就是,系统错误结果。因此,此响应表示异步中止,其中由处理电路对中止的接收时序可与何时执行启动相应存储器访问的指令几乎无关联。举例而言,基于图3的实例,在IRQ(中断请求)后,处理电路已接收到由LDR指令造成的错误响应。因此,对IRQ的接收引发在接收自LDR指令的错误响应的前设置第一异常条件(且因此启动异常处置例程),且当接收到自LDR(在EL0异常水平处执行)的错误响应时,处理器核心20在EL3异常水平处处理第一异常处置例程。
应注意,如异常处置例程开始时所指示,第一动作(由处理电路硬件实施)将设置错误遮蔽值PSTATE.A为1,因为在此实例中在最高异常水平(EL3)处处置第一异常处置例程,因此此异常水平必须与将响应于另一错误异常条件进行另一异常处置程序的异常水平相同或更高,且此错误遮蔽值指示设置错误遮蔽条件。根据本发明技术利用错误遮蔽条件的此设置来支持一机制,通过此机制由处理电路接收到的指示已发生系统错误(且因此设置错误异常条件)之后续错误响应将不会立即产生另一异常,而是将搁置(也就是,延迟)。下文将关于后续图式进一步描述此机制。
在图3所示的实例中,在异常处置例程初期由处理电路遇到的指令为本发明技术所提供的EMB(error memory barrier;错误存储器障碍)指令。遇到此EMB指令引发处理电路确定在设备(系统)内现存在错误存储器障碍条件。在其它实施例中,处理电路可确定每当启动异常处置例程时默认存在错误存储器障碍条件(也就是,并不需要明显包括EMB指令)或处理电路可参考处理器核心的缓存器(参看图2中的项目8)中所储存的EMB模式值确定是否存在错误存储器障碍条件,从而为系统程序设计师提供根据特定系统需求设置此模式的灵活性。最后,应注意,在异常处置例程后期,检查是否DISR.A=1(在此实施例中为通过软件实施的步骤),从而使得设备能够确定在异常处置例程期间是否已接收指示系统错误的错误响应。下文参看后续图式描述此步骤的更多细节。
图4图示一个实施例中的由处理电路(也就是,系统硬件)采取的步骤集合。这样的步骤对应于遇到EMB指令时所采取的动作,例如在如图3中所图示的异常处置例程开始时,或在设置EMB模式的同时进入(启动)异常处置例程时。遇到EMB指令对应于图4中的第一图示步骤(也就是,步骤40)。作为响应,处理电路(在步骤42处)等待自搁置存储器访问(也就是,具有在图2所示的加载/储存单元22中占用的相应条目且尚未完成的存储器访问)的任何未回复错误回应。另一系统错误仍可能在执行异常处置例程的同时得以通知给处理电路。
在步骤44处,处理电路确定是否已自各搁置存储器访问中的一个接收(物理)错误响应,此响应指示错误(也就是,搁置存储器访问最终不成功)。若情况并非如此,则流程直接行进至步骤54,在此步骤处继续进一步指令执行(最初处于异常处置例程内)。然而,若在步骤44处错误响应指示错误,从而引发通过处理电路设置错误异常条件(ISR.A=1),则流程行进至步骤46,在此步骤处处理电路通过检查是否设置错误遮蔽条件确定是否遮蔽此错误。
如果未遮蔽错误,则流程行进至步骤48,在此步骤处产生回应于此错误的异常并实施处置这样的异常的常用程序(例如,分支至另一异常处置例程)。处理此异常可包括向异常征候缓存器写入错误征候信息,且此错误征候信息可包括指示处理器的程序设计师可见状态是否正确或是否事实上被错误感染的信息。反的,若在步骤46处确定遮蔽错误,则流程行进至步骤50,在此步骤处处理电路设置DISR.A值为1及/或记录上文所论及的与DISR缓存器的其它部分中的错误相关的征候信息。此错误征候信息包括错误类型的细节及/或(如上所述)错误对处理器状态的影响的细节。错误类型信息亦可指示错误是否具有可由错误存储器障碍隔离的类型。举例而言,应注意(如上文所描述),在步骤42处,错误存储器障碍等待所有存储器访问完成并传回错误状态,但若出现并非由存储器访问诱发的错误,则错误存储器障碍可未“隔离”此错误。为解决此问题,当异常处置程序记录错误的征候信息时,此程序记录错误是否具有可由错误存储器障碍隔离的类型。
本文将设置DISR.A及/或记录错误征候信息称为设置延迟错误异常条件。随后,流程行进至步骤52,在此步骤处处理电路设置ISR.A值为0(也就是,已清除错误异常条件)。此后,处理电路继续指令执行,也就是在图3所示的实例的情境中继续进行紧随异常处置例程中的EMB指令后的后继指令。然而,应注意,系统程序设计师在数据处理指令内的任何点处自由添加EMB指令,且不一定在异常处置例程内(或实际上在异常处置例程开始时)添加,而在这样的情况中,步骤54处所示的指令执行的继续部分将具有无论何处发现该EMB指令将紧随EMB指令后的指令。
图5图示与图4所示的步骤互补的步骤序列,在一个示例性实施例中,此步骤序列由提供异常处置例程的软件实施。图5所示的第一步骤为异常处置例程的开始(步骤60)。应注意,在此点处,硬件适当设置遮蔽条件(例如,基于异常水平,如下文将更详细描述)。随后,在步骤62处,遇到设置错误存储器障碍条件的EMB指令。应注意,在其它实施例中,当启动异常处置例程(步骤60)时,可已经设置EMB模式并通过硬件设置错误存储器障碍条件,且随后可跳过步骤62。在步骤64处,由软件实施的下一步骤将保存任何暂态处理器状态(例如,至堆栈),包括通用缓存器、异常征候缓存器等等的内容。此使得能够发生异常之后期分析并恢复到开始处理异常时所在的点。
一旦已经保存处理器的依电性状态,在步骤66处,则确定DISR.A值当前是否为1。若情况并非如此,则可推断出指令执行已到达EMB操作的点,而处理电路尚未接收到系统错误,且在步骤68处,软件清除(也就是,设置为0)PSTATE.A值,也就是,清除此错误遮蔽值。随后流程行进至步骤70,在此步骤处继续指令执行,且如上文所论及,所接收的任何系统错误将以常见方式产生系统错误异常。可推断出,当处理电路接收到任何此系统错误时,指令执行已通过EMB操作的点。然而,若在步骤66处确定DISR.A值当前为1,则已知处理电路已接收到系统错误并搁置(延迟),且流程行进至步骤72,在此步骤处将分支带至专用错误恢复例程以关于程序代码(包括至少一个数据处理指令的数据处理指令的区段)采取补救动作,此先于EMB指令(或至少在指令执行中作出存在错误存储器障碍条件确定的点)。在图3中所图示的实例中,其中EMB指令处于异常处置例程开始时,此随后对应于异常处置例程的前关于程序代码所采取的补救动作,也就是,所示指令序列先于异常处置例程。
图6示意性图示提供虚拟化操作环境的实施例。此处,并非在与系统硬件直接交互的操作系统控制下执行应用程序200的数据处理指令,而是在与主操作系统220控制下的系统硬件230间接交互的客操作系统(虚拟机210)控制下执行数据处理指令。主操作系统上运作的超管理器维持虚拟化操作环境的总体控制,并指示虚拟机(也就是,客操作系统)在系统中可看到何者及与何者交互。虚拟机程序210支持连至应用程序200的应用程序编程接口(application program interface;API),此应用程序编程接口与原本由真实硬件提供的应用程序编程接口相同。
应注意,由硬件提供此“虚拟”API中的一个些实施例,特别是虚拟错误条件、虚拟错误遮蔽条件及VDISR缓存器,以便加速API。超管理器可通过将值AMO设置为1来将异常水平EL2设置为物理错误异常的目标异常水平。超管理器亦可在系统内建立“虚拟错误异常条件”。通过超管理器在将值AMO设置为1时设置VSE值为1来实行此举。虚拟错误异常的目标异常水平总是为EL1,也就是,客操作系统。因此,可通过客操作系统使用PSTATE.A错误遮蔽值遮蔽此虚拟错误(如上文所描述)。因此,当将值AMO设置为1时,PSTATE.A错误遮蔽值界定EL1处的“虚拟错误遮蔽条件”及EL2处的“物理错误遮蔽条件”。实际上,由于客操作系统的配置对于两种类型无需为不同,故客操作系统以与物理错误相同的方式处置这样的虚拟错误的特征有效使得这样的虚拟错误(与物理错误相比)的使用对客操作系统透通,因为处置这样的错误的方式相同。
因此,此处使用值AMO控制设备分别响应物理错误及虚拟错误的方式。在此示例性实施例中,将值AMO设置为1界定所有系统错误(异步中止)视为EL2以便至少最初由超管理器处置。因此,当处于异常水平EL1时,将在“较高”异常水平处处置物理错误条件,使得未设置物理错误遮蔽条件。AMO=1亦意谓在异常水平EL1处处置虚拟错误。因此,当处于异常水平EL1时,将在“较低或相同”异常水平处处置物理错误条件,使得设置虚拟错误遮蔽条件。
图7图示在此示例性实施例中回应于EL1中断异常处置器开始时遇到EMB指令所采取的步骤的示例性序列。图7所示的第一步骤表示在此虚拟化系统中由客操作系统遇到EMB指令的点(步骤80)。因此,应注意,此步骤紧随图4的实例中的步骤52之后,且应进一步注意,由于设置AMO位,未设置物理错误遮蔽条件,且与错误遮蔽值无关。此后,响应于EMB指令,确定虚拟系统错误是否搁置,也就是,是否VSE=1及AMO=1。若否,则流程直接行进至步骤92,在此步骤处继续紧随EMB指令后的数据处理指令的正常指令执行。然而,若VSE=1及AMO=1,则流程行进至步骤84,在此步骤处确定是否设置虚拟错误遮蔽条件,也就是,是否PSTATE.A=1及AMO=1。若否,则流程行进至步骤86,在此步骤处产生虚拟错误异常且随后作为响应由客操作系统在EL1处执行适当虚拟错误异常处置例程。然而,若在步骤84处确定遮蔽此虚拟错误,则流程行进至步骤88及90,在这样的步骤处设置虚拟延迟错误异常条件(将VDISR.A设置为1)且将虚拟系统错误异常条件指示(virtual system error exceptioncondition indication;VSE)重设为0。亦可在VDISR(如上文参考DISR已描述)中记录其它征候信息,信息例如包括错误类型的细节及/或错误对处理器状态的影响的细节。
随后流程行进至步骤92,以便继续指令执行(也就是,执行紧随EMB指令后的指令)。因此,图7所示的步骤使得虚拟化系统能够提供一环境,在此环境中可由客操作系统以与主操作系统处置物理错误相同的方式处置由作为主操作系统运作的超管理器所建立的虚拟系统错误。更具体地,客操作系统可以与主操作系统通过值PSTATE.A的设置遮蔽物理错误相同的方式遮蔽虚拟错误。又,参看图8A与图8B,应注意,在EL1中断处置器中的后期阶段,软件检查当前是否设置DISR.A等等,如参看图5所描述,但在将AMO值设置为1的此虚拟化实施例中,当对DISR.A值实行检查时,硬件介入以传回VDISR.A值。
图8A对应于通过数据处理设备提供此虚拟化操作环境的示例性实施例。在此图示示例性实施例中,提供四个异常水平(EL0-EL3),四个异常水平对应于三个异常状况(EL0与EL1形成一个异常状况),其中管理虚拟机的操作的超管理器在比客操作系统高的软件执行优先权水平处操作,客操作系统本身在比该客操作系统上运作的应用程序高的软件执行优先权水平处操作。图8A的右侧部分示意性图示对应于事件的说明性集合的异常水平之间的转换。所图示第一事件为在最低异常水平(EL0)处执行客操作系统下运作的应用程序的同时对处理电路所接收的物理(也就是,非虚拟)错误的接收。相应物理错误异常具有EL2的目标异常水平,也就是,由超管理器运作物理错误异常处置器。在此示例性实施例中,鉴于将值AMO设置为1的事实排列此配置,从而界定所有系统错误(异步中止)视为EL2以便至少最初由超管理器处置。
然而,超管理器无需完全实施对所接收系统错误的错误响应,因为超管理器经进一步经配置以能够将异常处置委派给客操作系统,此举可通过在系统内设置“虚拟错误”实行。通过超管理器在将值AMO设置为1时设置VSE值为1来进行此操作。尽管此并非异步事件,但可通过客操作系统使用PSTATE.A错误遮蔽值遮蔽此虚拟错误(如上文所描述)。当将值AMO设置为1时,PSTATE.A错误遮蔽值界定“虚拟错误遮蔽条件”。实际上,由于客操作系统的配置对于两种类型无需为不同,客操作系统以与物理错误相同的方式处置这样的虚拟错误的特征有效使得这样的虚拟错误(与物理错误相比)的使用对客操作系统透通,因为处置这样的错误的方式相同。下文将提供如何实现此透通的更多细节。
因此,当超管理器将异常水平返回至EL0以便接管应用程序时,虚拟错误异常的目标现将为EL1,以由客操作系统处置。然而,应注意,尽管在超管理器控制下于EL2处运作错误处置器,但由系统接收中断请求(interrupt request;IRQ)。因此,一旦软件执行优先权水平返回至EL0,则存在两个异常搁置,一个虚拟系统错误(由超管理器通过VSE设置而建立)及较近期接收的物理中断(IRQ)。可由系统程序设计师取决于特定系统需求界定处理这样的两个搁置异常的次序(也就是,此为界定的实施方式)。在图8A中所图示的实例中,此为对先处理的IRQ的响应,此具有EL1的目标。随后实施在EL1处所实施的中断处置器(异常处置例程)。如图所示,此异常处置例程以EMB指令开始,且因此虚拟机所实施的步骤与图4所示的步骤相关,其中对于此虚拟化实施例具有一些调适。
图8B对应于通过数据处理设备提供此虚拟化操作环境的另一示例性实施例,再次具有四个异常水平,但在此实例中仅论述EL0、EL1及EL2。此对应于图3的实例(不同的处在于此处EL2为到达的最高异常水平)。图8B的右侧部分示意性图示对应于事件的另一说明性集合的异常水平之间的转换。所图示的第一事件为EL0处的LDR指令的执行。在对此存储器访问的响应发生的前,IRQ异常视为EL1(也就是,客操作系统)。在EL1处,在客操作系统控制下执行EMB指令。EMB操作检测物理错误异常条件,且由于(如图4所示)并未遮蔽错误(由于设置AMO),此立即产生错误异常。错误异常视为EL2(也就是,主操作系统/超管理器)。主操作系统/超管理器筛分错误(通过错误处置器的动作)及通过设置VSE=1来设置“虚拟错误”将处置委派回到EL1。指令执行返回以再执行EMB指令。
在此点处,已经处理物理错误(IRQ),使得EMB现在处理虚拟错误。通过PSTATE.A遮蔽虚拟错误,因此使得如上文所描述设置VDISR.A。因此,通过EMB指令延迟所委派虚拟错误。应注意,在图8B的实例(与图8A的实例相比)中,在返回至EL0方面对于与搁置虚拟错误相比优先化IRQ不存在(任意)选择,且此外,此实例展示在虚拟情况中EMB指令如何障碍虚拟错误与物理错误两者。
图9A图示在提供虚拟化系统(在一个实例中)的示例性实施例中提供当前异常水平与目标异常水平之间对应关系的表格。这样的表格展示在这样的情形的各者中如何处置物理错误异常条件,也就是可(P)总是搁置物理错误异常条件(也就是,自动处理为遮蔽);若设置PSTATE.A,可(M)搁置物理错误异常条件(也就是,遮蔽物理系统错误),否则处理;或可(T)总是处理物理错误异常条件(也就是,不由PSTATE.A遮蔽)。图9B图示虚拟系统错误的对应表格,如图所示将总是具有EL1的目标异常水平(也就是,将由客操作系统处置),且在遇到虚拟系统错误(也就是,通过超管理器设置)时与当前异常水平无关。图9C图示提供虚拟化系统中的超管理器使用AMO及VSE值的表格以便界定物理系统错误的目标。
图10A图示一个示例性实施例中的界定错误存储器障碍指令的配置的假码的示例性集合。在图10A的假码中,使用以下功能及缩写:
HaveEL(异常水平)–若存在此异常水平,传回真;
SCR_EL3.EA–经设置以将系统错误(异步中止)的目标界定为异常水平EL3;
IsSecure()–若当前在安全状态(例如,由英国剑桥ARMLimited提供的TrustZone技术提供)下操作,传回真;
PSTATE.EL–界定当前异常水平;
HCR_EL2.TGE–经设置以界定将在EL2(与EL1相比)处处置所有异常;
HCR_EL2.AMO–对于执行水平EL2界定的上文指示的AMO值;
DISR_EL1.A–记录异常水平EL1处的延迟错误异常条件;
ISR_EL1.A–记录错误异常条件;
HCR_EL2.VSE–在异常水平EL2处设置的上文指示的VSE值;
VDISR_EL2.A–上文指示的VDISR值。
因此,应注意,在使用SCR_EL3.EA位情况下,图10A所示的假码实例将图9C所示的原理扩展至EL3。此位的值将物理错误异常的目标异常水平设置为EL3,并具有优于HCR_EL2.AMO的优先级。然而,应注意,在此示例性实施例中不存在进一步“虚拟错误”条件,也就是,无“SCR_EL3.VSE”位。
图10B图示异常条目的指令的示例性序列,其中异常处置器希望对调用者隔离错误。应注意,在此序列开始时使用EMB指令并在所示序列结束时使用MRS/TBNZ对(对应于图5中的步骤66及72)。应注意,MRS(“自系统移动至缓存器(Move to Register from System)-缓存器”用于读取例如DISR的值,STP(“储存对(Store Pair)”用于将一对缓存器储存至存储器,且TBNZ(“测试及若非零则产生分支(Test and Branch if Non-Zero)”用于测试缓存器中的位且若值为非零则产生分支。
尽管本文已参看附图详细描述本发明的说明性实施例,但应理解,本发明并不受限于该等精确实施例,且在不脱离随附申请专利范围所定义的本发明的范畴及精神的情况下可由熟习此项技术者实施各种变化、添加及修改。举例而言,在不脱离本发明的范畴的情况下,可将附属请求项的特征与独立请求项的特征进行各种组合。

Claims (20)

1.一种用于数据处理的设备,包括:
处理电路,用于响应于数据处理指令进行数据处理操作以确定是否存在错误存储器障碍条件,并取决于是否存在所述错误存储器障碍条件来进行错误存储器障碍程序,
其中所述处理电路能够在检测到数据处理操作未成功后设置错误异常条件,以及
其中如果设置了所述错误异常条件并且如果设置了所述错误遮蔽条件,则所述错误存储器障碍程序包括:
设置延迟错误异常条件;以及
清除所述错误异常条件。
2.如权利要求1所述的设备,其中如果设置了所述错误异常条件且未设置所述错误遮蔽条件,则所述处理电路能够进行异常处置程序。
3.如权利要求1或2所述的设备,其中所述数据处理操作包括存储器存取,以及
其中所述处理电路能够接收存储器存取的错误响应,且其中如果所述错误响应指示所述存储器存取未成功,则所述处理电路能够设置所述错误异常条件。
4.如前述权利要求中的任一项所述的设备,其中所述处理电路能够响应于所述等数据处理指令中的错误存储器障碍指令确定存在所述错误存储器障碍条件。
5.如权利要求2-4中的任一项所述的设备,其中所述处理电路能够作为所述异常处置程序的一部分,且如果设置了所述延迟错误异常条件,则所述处理电路能够启动关于至少一个数据处理指令的补救响应,其中所述至少一个数据处理指令包括在确定存在所述错误存储器障碍条件的前所执行的数据处理指令。
6.如权利要求2-5中的任一项所述的设备,还包括:错误存储器障碍模式值储存器,其中当所述处理电路启动所述异常处置程序的进行时,所述处理电路能够取决于所述错误存储器障碍模式值储存器中所储存中的一个错误存储器障碍模式值确定存在所述错误存储器障碍条件。
7.如权利要求3-6中的任一项所述的设备,其中当进行所述错误存储器障碍程序时且如果存在所述错误存储器障碍条件,则所述处理电路能够等待尚未完成的每存储器存取的所述错误响应,然后执行其它数据处理指令。
8.如前述权利要求中的任一项所述的设备,还包括:错误遮蔽值储存器,其中所述处理电路能够取决于所述错误遮蔽值储存器中所储存的错误遮蔽值确定是否设置所述错误遮蔽条件。
9.如权利要求2-8中的任一项所述的设备,其中所述处理电路能够在开始所述异常处置程序时设置所述错误遮蔽值。
10.如权利要求2-9中的任一项所述的设备,其中如果未设置所述延迟错误异常条件,则所述处理电路能够清除作为所述异常处置程序的一部分的所述错误遮蔽值。
11.如前述权利要求中的任一项所述的设备,其中如果未设置所述延迟错误异常条件,则所述处理电路能够设置所述错误遮蔽值且在已完成数据处理指令中的一个预定集合后清除所述错误遮蔽值。
12.如权利要求2-11中的任一项所述的设备,其中所述处理电路能够在来自多个异常水平的当前异常水平处进行所述异常处置程序,其中所述多个异常水平对应于多个软件执行优先权水平。
13.如权利要求12所述的设备,其中如果所述处理电路能够以响应于另一错误异常条件进行另一异常处置程序的异常水平相同或更高的异常水平处来执行所述异常处置程序,则所述处理电路能够在启动所述异常处置程序时设置所述错误遮蔽条件。
14.如权利要求12或13所述的设备,其中如果所述处理电路能够以响应于另一错误异常条件进行另一异常处置程序的异常水平更低的异常水平处来执行所述异常处置程序,则所述处理电路能够在启动所述异常处置程序时未设置所述错误遮蔽条件。
15.如前述权利要求中的任一项所述的设备,能够提供其中操作有至少一个虚拟机的虚拟化操作环境,其中虚拟机能够通过与所述处理电路系统交互来响应于所述数据处理指令进行所述数据处理操作。
16.如权利要求15所述的设备,其中如果设置了所述错误异常条件且未设置所述错误遮蔽条件,则所述处理电路能够进行异常处置程序,其中所述设备能够设置虚拟错误异常条件,且其中如果设置了所述虚拟错误异常条件且未设置虚拟错误遮蔽条件,则所述处理电路能够进行所述异常处置程序。
17.如权利要求15或16所述的设备,其中如果设置了所述虚拟错误异常条件且如果设置了所述虚拟错误遮蔽条件,则所述错误存储器障碍程序还包括:
设置虚拟延迟错误异常条件;以及
清除所述虚拟错误异常条件。
18.如权利要求17所述的设备,其中当所述处理电路寻求确定是否设置所述延迟错误异常条件时,所述设备能够提供所述虚拟延迟错误异常条件的值,而不是所述延迟错误异常条件的值。
19.一种数据处理方法,包括下述步骤:
响应于数据处理指令进行数据处理操作;
在检测到数据处理操作未成功后设置错误异常条件;
确定是否存在错误存储器障碍条件;以及
取决于是否存在所述错误存储器障碍条件来进行错误存储器障碍程序,
其中如果设置了所述错误异常条件且如果设置错误遮蔽条件,则所述错误存储器障碍程序包括:
设置延迟错误异常条件;以及
清除所述错误异常条件。
20.一种用于数据处理的设备,包括:
用于响应于数据处理指令进行数据处理操作的装置;
用于在检测到数据处理操作未成功后设置错误异常条件的装置;
用于确定是否存在错误存储器障碍条件的装置;以及
用于取决于是否存在所述错误存储器障碍条件来进行错误存储器障碍程序的装置,
其中如果设置了所述错误异常条件且如果设置错误遮蔽条件,则所述错误存储器障碍程序包括:
设置延迟错误异常条件;以及
清除所述错误异常条件。
CN201580063372.1A 2014-11-28 2015-10-21 数据处理设备中的系统错误处置 Active CN107111525B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1421134.6 2014-11-28
GB1421134.6A GB2532777B (en) 2014-11-28 2014-11-28 System error handling in a data processing apparatus
PCT/GB2015/053135 WO2016083773A1 (en) 2014-11-28 2015-10-21 System error handling in a data processing apparatus

Publications (2)

Publication Number Publication Date
CN107111525A true CN107111525A (zh) 2017-08-29
CN107111525B CN107111525B (zh) 2022-02-11

Family

ID=52349593

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580063372.1A Active CN107111525B (zh) 2014-11-28 2015-10-21 数据处理设备中的系统错误处置

Country Status (9)

Country Link
US (1) US11461104B2 (zh)
EP (1) EP3224718A1 (zh)
JP (1) JP6634083B2 (zh)
KR (1) KR102427949B1 (zh)
CN (1) CN107111525B (zh)
GB (1) GB2532777B (zh)
IL (1) IL252145B (zh)
TW (1) TWI748934B (zh)
WO (1) WO2016083773A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2017204139A1 (ja) * 2016-05-23 2019-03-22 日本電気株式会社 データ処理装置、データ処理方法、およびプログラム記録媒体
US10795800B2 (en) * 2018-09-10 2020-10-06 International Business Machines Corporation Programming language runtime deferred exception handling
US11328241B2 (en) * 2020-07-02 2022-05-10 Content Square SAS Identifying script errors in an online retail platform and quantifying such errors

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5454091A (en) * 1990-06-29 1995-09-26 Digital Equipment Corporation Virtual to physical address translation scheme with granularity hint for identifying subsequent pages to be accessed
CN1115443A (zh) * 1994-01-20 1996-01-24 阿尔卡塔尔澳大利亚有限公司 微处理机故障记录
US5887175A (en) * 1997-02-14 1999-03-23 Integrated Device Technology, Inc. Apparatus and method for managing interrupt delay on floating point error
CN1242546A (zh) * 1998-03-31 2000-01-26 英特尔公司 用于处理不精确异常的一种方法和装置
US6173248B1 (en) * 1998-02-09 2001-01-09 Hewlett-Packard Company Method and apparatus for handling masked exceptions in an instruction interpreter
US20110231633A1 (en) * 2010-03-15 2011-09-22 Arm Limited Operand size control

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5438677A (en) * 1992-08-17 1995-08-01 Intel Corporation Mutual exclusion for computer system
US7043582B2 (en) * 2002-09-06 2006-05-09 Intel Corporation Self-nesting interrupts
GB0623276D0 (en) 2006-11-22 2007-01-03 Transitive Ltd Memory consistency protection in a multiprocessor computing system
GB2478733B (en) * 2010-03-15 2013-08-14 Advanced Risc Mach Ltd Apparatus and method for handling exception events
GB2487575B (en) * 2011-01-28 2017-04-12 Advanced Risc Mach Ltd Controlling generation of debug exceptions
US9632976B2 (en) 2012-12-07 2017-04-25 Nvidia Corporation Lazy runahead operation for a microprocessor

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5454091A (en) * 1990-06-29 1995-09-26 Digital Equipment Corporation Virtual to physical address translation scheme with granularity hint for identifying subsequent pages to be accessed
CN1115443A (zh) * 1994-01-20 1996-01-24 阿尔卡塔尔澳大利亚有限公司 微处理机故障记录
US5887175A (en) * 1997-02-14 1999-03-23 Integrated Device Technology, Inc. Apparatus and method for managing interrupt delay on floating point error
US6173248B1 (en) * 1998-02-09 2001-01-09 Hewlett-Packard Company Method and apparatus for handling masked exceptions in an instruction interpreter
CN1242546A (zh) * 1998-03-31 2000-01-26 英特尔公司 用于处理不精确异常的一种方法和装置
US20110231633A1 (en) * 2010-03-15 2011-09-22 Arm Limited Operand size control

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ARM: "ARM Cortex (TM) -M Programming Guide to Memory Barrier", 《HTTP://INFOCENTER.ARM.COM/HELP/TOPIC/COM.ARM.DOC.DAI0321A/》 *

Also Published As

Publication number Publication date
JP6634083B2 (ja) 2020-01-22
IL252145B (en) 2020-06-30
GB2532777A (en) 2016-06-01
KR20170091641A (ko) 2017-08-09
EP3224718A1 (en) 2017-10-04
US11461104B2 (en) 2022-10-04
TWI748934B (zh) 2021-12-11
GB201421134D0 (en) 2015-01-14
GB2532777B (en) 2021-07-07
CN107111525B (zh) 2022-02-11
WO2016083773A1 (en) 2016-06-02
IL252145A0 (en) 2017-07-31
TW201633123A (zh) 2016-09-16
JP2017538214A (ja) 2017-12-21
US20160154654A1 (en) 2016-06-02
KR102427949B1 (ko) 2022-08-02

Similar Documents

Publication Publication Date Title
CN104412232B (zh) 事务处理方法、系统、介质
CN104335177B (zh) 有选择地控制事务处理中的指令执行
US9513911B2 (en) Method of detecting stack overflows and processor for implementing such a method
CN104380264B (zh) 运行时间检测报告
US9086969B2 (en) Establishing a useful debugging state for multithreaded computer program
JP7377812B2 (ja) トランザクションにおける例外ハンドリング
CN104335184A (zh) 事务执行分支指示
CN104335186A (zh) 处理器辅助设施
CN108469984A (zh) 一种基于虚拟机自省函数级虚拟机内核动态检测系统与方法
US20140365833A1 (en) Capturing trace information using annotated trace output
CN104380246A (zh) 事务执行中的程序中断筛选
CN104364768A (zh) 确定运行时间仪表控制的状态
CN105683985B (zh) 用于虚拟机内省的系统、方法及非暂时性计算机可读介质
CN104077220A (zh) Mips架构操作系统内核的调试方法和装置
CN107111525A (zh) 数据处理设备中的系统错误处置
US8799716B2 (en) Heap dump occurrence detection
US9092333B2 (en) Fault isolation with abstracted objects
CN104778087B (zh) 一种信息处理方法以及信息处理装置
CN103747336B (zh) 在恢复模式下保证系统稳定性的方法及装置
EP2960798B1 (en) Automatic memory leak detection
CN114996955A (zh) 一种云原生混沌工程实验的靶场环境构建方法及装置
US8695000B1 (en) Data transfer protection in a multi-tasking modeling environment having a protection mechanism selected by user via user interface
CN103154894A (zh) 用于管理微处理器中的或微处理器组件中的任务的方法
CN107742080B (zh) 针对虚拟化环境的漏洞挖掘方法及装置
CN104156445A (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