CN105408868A - 稳健的硬件/软件错误恢复系统 - Google Patents
稳健的硬件/软件错误恢复系统 Download PDFInfo
- Publication number
- CN105408868A CN105408868A CN201480041417.0A CN201480041417A CN105408868A CN 105408868 A CN105408868 A CN 105408868A CN 201480041417 A CN201480041417 A CN 201480041417A CN 105408868 A CN105408868 A CN 105408868A
- Authority
- CN
- China
- Prior art keywords
- error
- host
- host controller
- task
- software
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0706—Error 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/0721—Error 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]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0706—Error 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/0745—Error 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 in an input/output transactions management context
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0766—Error or fault reporting or storing
- G06F11/0772—Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3024—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/86—Event-based monitoring
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Retry When Errors Occur (AREA)
- Debugging And Monitoring (AREA)
- Hardware Redundancy (AREA)
Abstract
提供了一种其中主机控制器和主机软件一起协作的用于错误检测和恢复的方法。主机控制器可以:检测错误状况,设置错误中断或寄存器,和/或在主机控制器处中止任务执行或处理。主机软件可以:作为主机控制器已设置错误中断或寄存器的结果而检测错误状况,执行错误处置,以及清除错误状况。主机控制器随后在检测到主机软件已清除错误状况之际恢复对任务的执行或处理。
Description
根据35U.S.C.§119的优先权要求
本发明专利申请要求于2013年7月23日提交的题为“RobustHardware/SoftwareErrorRecoverySystem(稳健的硬件/软件错误恢复系统)”的美国临时专利申请No.61/857,571的优先权,该临时申请被转让给本申请受让人并由此通过援引明确纳入于此。
领域
各种方面一般涉及硬件/软件系统的错误恢复,尤其涉及跨硬件和软件同步错误恢复的系统、方法和/或设备。
背景
主机系统可包括I/O主机控制器(硬件)、输入/输出(I/O)主机软件(例如,驱动器)和目标I/O设备。主机控制器可与目标I/O设备通信以发送/接收任务(例如,数据、命令等)。主机软件可将任务提供给主机控制器。
有时会发生硬件操作错误,例如在控制器中。由于硬件工作快于软件,因此软件很难进行干预,例如以便从此类错误中恢复或纠正此类错误。在许多情形中,到软件作出反应所花费的时间,需要干预的事件已经过去,并且主机系统的状态已经改变。而且,硬件(例如,控制器)在软件正尝试调查其状态(例如,主机控制器和主机系统的状态)时可能仍在执行操作。
因此,需要提供一种允许软件高效地干预硬件操作以从错误中恢复的机制。
概述
提供了一种包括用于访问一个或多个寄存器的接口和耦合至该接口的处理电路的主机控制器。该处理电路可被适配成:(a)处理来自任务队列的一个或多个任务;(b)在处理任务的同时监视错误状况;(c)在检测到任务处理中的错误状况之际设置错误寄存器;(d)中止任务执行或任务处理;(e)轮询错误寄存器以查明是否已清除错误状况;和/或(f)在检测到已清除错误状况之际恢复对任务的执行或处理。主机控制器可在完成当前任务、当前命令、以及当前指令之一时中止执行或处理任务。错误寄存器可位于主机控制器外部的错误处置软件可访问的共享寄存器空间中。在一个示例中,可由外部错误处置软件清除错误状况。在一些实现中,任务可包括对外部存储设备的读或写操作中的至少一者。
还提供了一种在主机控制器处操作的方法。主机控制器可在监视错误状况的同时处理来自任务队列的一个或多个任务。可在检测到任务处理中的错误状况之际由主机控制器设置错误寄存器。另外,可由主机控制器中止任务执行或任务处理。主机控制器可在完成当前任务、当前命令、以及当前指令之一时中止执行或处理任务。主机控制器可随后轮询错误寄存器(或某个其他标志、寄存器、和/或指示符)以查明是否已清除错误状况。错误寄存器可位于主机控制器外部的错误处置软件可访问的共享寄存器空间中。一旦检测到已清除错误状况,主机控制器就可恢复对任务的执行或处理。主机控制器可进一步指令与主机控制器通信的外部目标设备清除该外部目标设备中的一些或所有任务。
还提供了一种具有一条或多条指令的非瞬态处理器可读存储介质,该指令在由至少一个处理电路执行时使得该至少一个处理电路:(a)处理来自任务队列的一个或多个任务;(b)在处理任务的同时监视错误状况;(c)在检测到任务处理中的错误状况之际设置错误寄存器;(d)中止任务执行或任务处理;(e)轮询错误寄存器以查明是否已清除错误状况;和/或(f)在检测到已清除错误状况之际恢复对任务的执行或处理。
还提供了一种主机设备,包括:一个或多个寄存器、主机控制器、以及耦合至该主机控制器和该一个或多个寄存器的处理电路。该处理电路执行主机软件,其中该主机软件可被适配成通过以下动作来对主机控制器执行错误处置:(a)轮询错误寄存器以查明主机控制器是否已设置错误;(b)在检测到已设置错误寄存器之际执行错误处置;和/或(c)在完成错误处置之际清除错误寄存器。处理电路和主机控制器可被集成到单个半导体设备中。在一个示例中,主机软件和主机控制器中的至少一者可进一步执行以下至少一者:(a)清除主机设备的任务队列上待决的所有任务;(b)清除主机设备的任务队列上待决的特定任务;和/或(c)指令与主机控制器通信的外部目标设备清除该目标设备中的一些或所有任务。
还提供了由主机设备上的软件执行的方法。可由主机软件轮询错误寄存器以查明主机控制器是否已设置错误。可在检测到已设置错误寄存器之际执行错误处置。可在完成错误处置之际清除错误寄存器。在一个示例中,该方法可进一步包括:(a)清除主机设备的任务队列上待决的所有任务;(b)清除主机设备的任务队列上待决的特定任务;和/或(c)指令与主机控制器通信的外部目标设备清除该目标设备中的一些或所有任务。
另外,提供了一种主机设备,包括:执行主机软件的处理电路,以及耦合至该处理电路的主机控制器。该主机控制器和主机软件被适配成:(a)在主机控制器处检查错误状况;(b)由主机控制器设置错误中断或寄存器;(c)由主机控制器中止任务执行或处理;(d)作为主机控制器已设置错误中断或寄存器的结果而在主机软件处检查错误状况;(e)由主机软件和主机控制器中的至少一者执行错误处置;(f)由主机软件清除错误状况;和/或(g)在检测到主机软件已清除错误状况之际在主机控制器处恢复对任务的执行或处理。主机控制器和主机软件可访问包括错误中断或寄存器的共享寄存器空间。主机软件可检查寄存器以查明错误状况的细节。
提供了一种在主机设备上操作的方法,包括:(a)在主机控制器处检查错误状况;(b)由主机控制器设置错误中断或寄存器;(c)由主机控制器中止任务执行或处理;(d)作为主机控制器已设置错误中断或寄存器的结果而在主机软件处检查错误状况;(e)由主机软件和主机控制器中的至少一者执行错误处置;(f)由主机软件清除错误状况;和/或(g)在检测到主机软件已清除错误状况之际在主机控制器处恢复对任务的执行或处理。主机软件和主机控制器中的至少一者可进一步执行以下至少一者:(a)清除主机设备的任务队列上待决的所有任务;(b)清除主机设备的任务队列上待决的特定任务;和/或(c)指令与主机控制器通信的目标设备清除该目标设备中的一些或所有任务。
附图
图1是包括主机设备的系统的框图,该主机设备经由总线耦合至外部目标I/O设备,其中该主机设备被适配成在发生错误之际中止操作以允许软件恢复或纠正该错误。
图2解说了在硬件/软件系统中进行错误检测的示例性办法。
图3解说了可在主机控制器上操作的用于中止和丢弃任务序列的示例性方法。
图4是解说被适配成促成硬件与软件之间的错误纠正和恢复的主机设备的框图。
图5是可被适配成促成错误处置的示例性主机控制器的框图。
图6解说了可在主机控制器与主机软件之间操作的用于执行错误检测和恢复的示例性方法。
图7解说了可由主机控制器操作的用于错误检测和恢复的示例性方法。
图8解说了可由主机软件操作的用于错误检测和恢复的示例性方法。
详细描述
以下结合附图所阐述的描述旨在作为各种配置的描述,而无意代表可实践本文中所描述的概念和特征的仅有的配置。以下描述包括具体细节来提供对各种概念的透彻理解。然而,对于本领域技术人员将显而易见的是,没有这些具体细节也可实践这些概念。在一些实例中,以框图形式示出众所周知的电路、结构、技术和组件以免湮没所描述的概念和特征。
本公开中通篇给出的各种概念可跨各种各样的电信系统、网络架构、电子设备、移动设备、计算设备和/或通信标准来实现。
总览
本公开的各种特征和方面涉及在错误发生之际冻结、中止、或挂起硬件操作以允许软件处置该错误(例如,执行恢复或纠正该错误)。例如,主机设备可包括主机控制器和软件,其中该主机控制器被适配或设计成在错误发生之际停止已知位置(例如,在队列的特定点处)和/或状态中的硬件操作。主机控制器冻结、中止、或挂起所有活动以使得软件可在该主机控制器和任何外部目标设备处于冻结或挂起状态时调查或处置错误。当主机控制器遇到错误并触发软件中断时,它中止所有硬件活动直至由软件指令恢复活动。类似地,当软件无论出于何种原因而决定干预硬件活动时,软件命令主机控制器中止或暂停操作。主机控制器可完成当前命令并在已知位置(例如,在队列的特定点内)或状态中止/挂起其操作。外部目标设备可等待主机控制器发起活动,因此目标设备在主机控制器中止或挂起其自己的活动时也被中止或挂起。主机控制器可指示软件(例如,在主机设备上运行的软件)其现在处于冻结或暂停状态。软件可在没有并行进程运行(即,硬件被中止或挂起)时介入、调查主机控制器和目标设备的当前状态,运行错误处置规程(例如,错误恢复规程、纠错规程、或任何其他规程)。当软件完成该规程时,它可以引导主机控制器恢复其操作。消除硬件/软件竞态条件和不确定性简化了错误恢复和其他硬件/软件规程。
示例性操作环境
图1是包括主机设备102的系统的框图,该主机设备102经由总线106耦合至外部目标I/O设备104,其中该主机设备被适配成在发生错误之际中止操作以允许软件恢复或纠正该错误。主机设备102可包括主机软件108、任务队列109、一个或多个寄存器107、和/或主机控制器110。目标I/O设备104可包括控制器112、任务队列114、以及存储设备116。主机任务队列109可以保持被发送给目标I/O设备104的任务(例如,操作或命令)。例如,这样的主机任务队列109可由主机软件108用来向主机控制器110提供任务,并且可被用来保持这些任务直至它们被发送给目标I/O设备104。寄存器107(例如,在主机控制器内或在主机设备102内的其他地方)可用于在软件108和/或主机控制器110之间传递状态信息。例如,寄存器107可包含关于主机任务队列109中的哪些任务已被发送给目标I/O设备104以及哪些任务未被发送的信息。
在一个实现中,目标I/O设备104可以与主机设备102分开或在主机设备102外部,或者可以连同主机设备102一起被集成为单个半导体芯片的一部分。在一个示例中,目标I/O设备104可以是兼容于电子器件工程联合委员会(JEDEC)的嵌入式多媒体控制器(eMMC)标准的闪存设备。在这样的示例中,主机设备102可从/向目标I/O设备104读取和/或写入数据(例如,在主机任务队列109中标识的数据)。
图2解说了在硬件/软件系统中进行错误检测的示例性办法。主机软件108可生成任务1…n(204)并将它们提供(206a)给主机控制器110。主机控制器110随后将任务1…n发送(206b)到目标控制器112,目标控制器112将它们提供(206c)给任务队列114,目标I/O设备104可从任务队列114执行或处理(208)这些任务。本文中所公开的“任务”可以是数据和/或非数据任务。目标I/O设备104可在执行或处理每个任务之际向主机设备102发回确收或指示符。
根据一个特征,一旦检测到错误(210),主机控制器110就可被适配成冻结/中止其执行或处理(212)。这样的冻结/中止点可以是例如当完成对当前任务(例如,命令的特定组合/多个命令)、命令(例如,基本指令的特定组合/多个基本指令)、指令(例如,当前指令)的处理之际。主机控制器110随后设置一个或多个错误寄存器(214),这使得主机软件108触发/检测(216)错误中断。一旦由主机软件108检测到这样的错误中断(216),主机软件108就可从寄存器查明错误状况(218)(例如,确定错误类型等)、中止任务序列(220)(例如,中止任务生成和/或处理)、以及执行错误处置(222)。在一个示例中,这样的错误处置可包括清除/移除一个或多个待决任务t…w(224a)。例如,这可涉及将特定任务t…w从主机任务队列109中移除和/或指令主机控制器110将它们移除或不执行那些特定任务。另外,在任务t…w已被发送给目标I/O设备104的情况下,主机软件108可向目标设备控制器112发送附加消息(224b)以清除这一个或多个任务t…w和/或将它们从目标设备任务队列114中移除。
一旦完成其错误处置操作(222),主机软件108就可随后清除错误中断和/或错误寄存器(228)和/或指令主机控制器110这样做(230)。一旦接收到已完成错误处置的此类指示,主机控制器就可恢复对主机任务队列109剩余任务的执行(232)。以此方式,主机控制器110与主机软件108协作以处置错误恢复,同时避免它们之间的竞态条件。
图3解说了可在主机控制器上操作的用于中止和丢弃任务序列的示例性方法。一旦检测到错误状况,主机软件就可发出中止指示符(302)(例如,将“1”写入第一可配置寄存器中的中止位)或使用其他方法来向主机控制器发出“中止”指令、指示符、标志、或中断。主机软件可随后轮询中止指示符(例如,第一可配置寄存器中的中止位),直至中止指示符完整或被设置(304)(例如,设置为“1”或高)。即,尽管主机软件先前已设置中止指示符,但其可能必须进行检查以确保所有其他进程已停止,从而确认中止指示符被实际设置。注意,代替对中止指示符进行轮询,可在中止指示符被完全设置时使用中断或其他通知方法来通知主机软件。
主机控制器可随后查明其任务队列中是否存在附加任务。例如,主机控制器可以读取任务寄存器(306)以查明是否存在要执行或待决的任何任务。如果任务寄存器为空(任务_寄存器=0),这意味着所有任务已被执行(即,任务队列中没有待决的任务),则主机控制器可清除中止指示符(例如,第一可配置寄存器中的中止位被设置为“0”或低)(308)并恢复操作。
否则,如果任务寄存器被设置(例如,任务_寄存器=“1”或高),则主机控制器可设置队列清除指示符以清除所有任务或清除任务队列中的特定任务(310)。主机控制器可随后轮询队列清除指示符(或对应的寄存器)以验证已从任务队列中清除了这些任务(312)。一旦完成此类错误恢复/纠正步骤,主机控制器就可重置中止指示符(中止位=0或低)(314)并恢复对任务的执行或处理。
示例性主机设备
图4是解说被适配成促成硬件与软件之间的错误纠正和恢复的主机设备的框图。主机设备402可包括处理电路404、主机控制器406、处理器可读存储介质/设备408、存储器设备430、收发机电路412、以及总线410。主机控制器406可从存储器设备430内的任务队列422获得任务并执行这些任务和/或经由收发机电路将这些任务(例如,包括数据和命令)发送给目标设备。例如,主机控制器406可对目标设备(例如,外部存储设备)执行读和/或写操作。主机控制器406可以在一个或多个寄存器420中维护正被处理的任务的状态信息,该一个或多个寄存器420可以在主机控制器406、存储器设备430、或其他地方内。主机控制器406可被适配成在检测到错误之际中止其对任务队列422中的任务的处理,并且要么触发软件中断要么设置标志(例如,在寄存器内)以向主机软件通知错误状况的发生。
处理电路可被适配成执行主机软件和/或功能电路。例如,错误检测模块/电路414可被适配成检测或监视主机控制器406何时设置了错误标志或触发了错误中断。错误处置模块/电路416可被适配成对主机控制器406执行错误恢复或纠正。例如,这样的错误处置模块/电路416可以清除任务队列422中的一个或多个任务和/或重置寄存器420中的一者或多者。错误状况清除模块/电路418可以清除软件中断、清除由主机控制器406设置的一个或多个标志、和/或以其他方式向主机控制器406通知错误已被处置以及主机控制器406可恢复处理。一旦被通知已清除错误处置,主机控制器406就可恢复对任务队列中的任务的处理。处理器可读存储介质/设备408可包括可由处理电路404执行以执行其功能的错误检测指令、错误处置指令426、和/或错误状况清除指令428。
图5是可被适配成促成错误处置的示例性主机控制器502的框图。在该示例中,主机控制器502可包括耦合至一个或多个寄存器508、和/或输入/输出接口电路510的控制器处理电路504。控制器处理电路504可包括任务处理模块/电路、错误状况检测模块/电路512、任务中止模块/电路514、错误状况指示符模块/电路516、和/或错误清除轮询模块/电路518。
任务处理模块/电路可以从任务队列取回任务,处理所取回的任务,并随后处理任务队列中的下一任务。此类任务可包括例如执行从/向外部目标设备的读或写操作。错误状况检测模块/电路512可查明在任务处理中是否发生了错误。响应于检测到错误状况,任务中止模块/电路514可中止、挂起、和/或冻结由主机控制器502的进一步处理(例如,中止对任何进一步任务的处理)。控制器处理电路可完成或终止当前任务,并随后中止任何进一步处理。错误状况指示符模块/电路516可设置标志、寄存器、和/或硬件/软件中断以指示主机控制器502已检测到错误状况。这可允许外部或内部软件执行错误处置以解决错误状况。错误清除轮询模块/电路518可查明是否和/或何时处置了错误状况以使得任务处理模块/电路能够恢复操作。
在一个示例中,主机控制器502可耦合至存储设备506(例如,经由I/O接口电路510)以获得一个或多个操作指令。例如,存储设备506可包括用于处理来自任务队列的任务的任务处理指令519,用于检测任务处理期间的错误的错误状况检测指令520,用于在检测到错误时中止任务处理的任务中止指令522,用于设置允许软件出于错误恢复目的而进行干预的标志、寄存器、或其他指示符的错误状况指示符指令524,和/或允许主机控制器监视、检测、和/或轮询对先前设置的标志、寄存器、或指示符的清除(即,已解决错误状况的指示)的错误清除轮询指令526。
图6解说了可在主机控制器与主机软件之间操作的用于执行错误检测和恢复的示例性方法。主机控制器可以:(a)检测错误状况(602)(例如,基于来自主机软件的通知),(b)设置错误中断或寄存器(604),和/或(c)中止任务执行或处理(606)。主机软件可以:(d)作为主机控制器已设置错误中断或寄存器的结果而检测错误状况(608),(e)执行错误处置(610),和/或清除错误状况(612)(在完成错误处置之际)。主机控制器可随后在检测到主机软件已清除错误状况之际恢复对任务的执行或处理(614)。注意,主机软件可由耦合至主机控制器的处理电路来执行。处理电路和主机控制器可被集成到单个半导体设备中。主机控制器和主机软件可访问包括错误中断或寄存器的共享寄存器空间。
在一个示例中,由主机软件和主机控制器中的至少一者来执行错误处置包括以下至少一者:(i)清除主机设备的任务队列上待决的所有任务;(ii)清除主机设备的任务队列上待决的特定任务;和/或(iii)指令与主机控制器通信的目标设备清除目标设备中的一些或所有任务。
在由主机软件和主机控制器中的至少一者执行错误处置的其他示例中,可以不或不需要从主机设备的任务队列和/或目标设备中的任务队列中清除待决任务。
注意,主机控制器可在完成当前任务、当前命令、以及当前指令之一时中止任务执行或处理。
图7解说了可由主机控制器操作的用于错误检测和恢复的示例性方法。主机控制器可处理任务(702)(例如,来自任务队列的任务)。例如,任务可以是从/向外部目标设备的读和/或写操作。主机控制器可以在处理任务的同时监视错误状况(704)。主机控制器可在检测到任务处理中的错误状况之际设置错误寄存器(706)。另外,主机控制器中止任务执行/处理(708)。由于由主机控制器进行的中止处理还会冻结寄存器的状态,因而可由主机软件来执行错误处置。当中止时,主机控制器可以轮询错误寄存器以查明是否已清除错误状况(710)。注意,在其他示例中,可使用不同的寄存器、指示符、标志或机制来向主机控制器指示已解决或清除错误状况。一旦检测到已清除错误状况,主机控制器就可恢复执行/处理(712)。
图8解说了可由主机软件操作的用于错误检测和恢复的示例性方法。一旦接收/检测到来自错误中断寄存器的错误中断(802),主机软件就可读取最后一个响应和/或最后一个响应索引寄存器(804)。主机软件也可读取错误处置寄存器以验证失败的任务索引和命令(806)。主机软件可随后执行任务中止序列或操作(808)并继续进行错误检测和处置序列(810)。
虽然以具体详情和细节讨论了上述方面、安排和实施例,但图1、2、3、4、5、6、7和/或8中解说的一个或多个组件、步骤、特征和/或功能可以被重新编排和/或组合成单个组件、步骤、特征或功能,或实施在数个组件、步骤、或功能中。附加的元件、组件、步骤、和/或功能也可被添加或不被利用,而不会脱离本公开。图1、2、4和/或5中解说的装置、设备和/或组件可以被配置成执行或采用图2、3、6、7和/或8中所描述的一个或多个方法、特征、参数和/或步骤。本文中描述的新颖算法还可以高效地实现在软件中和/或嵌入在硬件中。
另外,注意到至少一些实现是作为被描绘为流图、流程图、结构图、或框图的过程来描述的。尽管流程图可能会把诸操作描述为顺序过程,但是这些操作中有许多操作能够并行或并发地执行。另外,这些操作的次序可以被重新安排。过程在其操作完成时终止。过程可对应于方法、函数、规程、子例程、子程序等。当过程对应于函数时,它的终止对应于该函数返回调用方函数或主函数。本文中描述的各种方法可部分地或全部地由可存储在非瞬态机器可读、计算机可读和/或处理器可读存储介质中并由一个或多个处理器、机器和/或设备执行的编程(例如,指令和/或数据)来实现。
本领域技术人员将可进一步领会,结合本文中公开的实施例描述的各种解说性逻辑框、模块、电路、和算法步骤可被实现为硬件、软件、固件、中间件、微代码、或其任何组合。为清楚地解说这一可互换性,以上已经以其功能性的形式一般地描述了各种解说性组件、框、模块、电路和步骤。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。
与本文中所描述的和附图中所示的示例相关联的各种特征可实现在不同示例和实现中而不会脱离本公开的范围。因此,尽管某些具体构造和安排已被描述并在附图中示出,但此类实施例仅是解说性的并且不限制本公开的范围,因为对所描述的这些实施例的各种其他添加和修改、以及删除对于本领域普通技术人员而言将是明显的。因此,本公开的范围仅由所附权利要求的字面语言及其法律等效来确定。
Claims (26)
1.一种主机控制器,包括:
接口,其用于访问一个或多个寄存器;
处理电路,其耦合至所述接口并被适配成:
在检测到任务处理中的错误状况之际设置错误寄存器;
中止任务执行或任务处理;
在检测到已清除所述错误状况之际恢复对任务的执行或处理。
2.如权利要求1所述的主机控制器,其特征在于,所述处理电路被进一步适配成:
处理来自任务队列的一个或多个任务;以及
在处理所述任务的同时监视错误状况。
3.如权利要求1所述的主机控制器,其特征在于,所述处理电路被进一步适配成:
轮询所述错误寄存器以查明是否已清除所述错误状况。
4.如权利要求1所述的主机控制器,其特征在于,所述主机控制器在完成当前任务、当前命令、以及当前指令之一时中止执行或处理任务。
5.如权利要求1所述的主机控制器,其特征在于,所述错误寄存器位于所述主机控制器外部的错误处置软件能访问的共享寄存器空间中。
6.如权利要求1所述的主机控制器,其特征在于,所述错误状况由外部错误处置软件来清除。
7.如权利要求1所述的主机控制器,其特征在于,所述任务包括对外部存储设备的读或写操作中的至少一者。
8.一种在主机控制器处操作的方法,包括:
在检测到任务处理中的错误状况之际设置错误寄存器;
中止任务执行或任务处理;
在检测到已清除所述错误状况之际恢复对任务的执行或处理。
9.如权利要求8所述的方法,其特征在于,进一步包括:
处理来自任务队列的一个或多个任务;以及
在处理所述任务的同时监视错误状况。
10.如权利要求8所述的方法,其特征在于,进一步包括:
轮询所述错误寄存器以查明是否已清除所述错误状况。
11.如权利要求8所述的方法,其特征在于,所述主机控制器在完成当前任务、当前命令、以及当前指令之一时中止执行或处理任务。
12.如权利要求8所述的方法,其特征在于,所述错误寄存器位于所述主机控制器外部的错误处置软件能访问的共享寄存器空间中。
13.如权利要求8所述的方法,其特征在于,进一步包括:
指令与所述主机控制器通信的外部目标设备清除所述外部目标设备中的一些或所有任务。
14.一种具有一条或多条指令的非瞬态处理器可读存储介质,所述指令在由至少一个处理电路执行时使得所述至少一个处理电路:
在检测到任务处理中的错误状况之际设置错误寄存器;
中止任务执行或任务处理;
在检测到已清除所述错误状况之际恢复对任务的执行或处理。
15.如权利要求14所述的存储介质,其特征在于,所述一条或多条指令进一步使得所述至少一个处理电路:
处理来自任务队列的一个或多个任务;以及
在处理所述任务的同时监视错误状况。
16.如权利要求14所述的存储介质,其特征在于,所述一条或多条指令进一步使得所述至少一个处理电路:
轮询所述错误寄存器以查明是否已清除所述错误状况。
17.一种主机设备,包括:
一个或多个寄存器;
主机控制器;
处理电路,其耦合至所述主机控制器以及所述一个或多个寄存器并执行主机软件,其中所述主机软件被适配成通过以下动作来对所述主机控制器执行错误处置:
轮询错误寄存器以查明所述主机控制器是否已设置错误;
在检测到已设置所述错误寄存器之际执行错误处置;以及
在错误处置完成之际清除所述错误寄存器。
18.如权利要求17所述的主机设备,其特征在于,所述处理电路和主机控制器被集成到单个半导体设备中。
19.如权利要求17所述的主机设备,其特征在于,所述主机软件和主机控制器中的至少一者进一步执行以下至少一者:
清除所述主机设备的任务队列上待决的所有任务;
清除所述主机设备的任务队列上待决的特定任务;以及
指令与所述主机控制器通信的外部目标设备清除所述目标设备中的一些或所有任务。
20.一种由主机设备上的软件执行的方法,包括:
轮询错误寄存器以查明主机控制器是否已设置错误;
在检测到已设置所述错误寄存器之际执行错误处置;以及
在错误处置完成之际清除所述错误寄存器。
21.如权利要求20所述的方法,其特征在于,进一步包括:
清除所述主机设备的任务队列上待决的所有任务;
清除所述主机设备的任务队列上待决的特定任务;以及
指令与所述主机控制器通信的外部目标设备清除所述目标设备中的一些或所有任务。
22.一种主机设备,包括:
处理电路,其执行主机软件;
主机控制器,其耦合至所述处理电路,其中所述主机控制器和主机软件被适配成:
在所述主机控制器处检测错误状况;
由所述主机控制器设置错误中断或寄存器;
由所述主机控制器来中止任务执行或处理;
作为所述主机控制器已设置所述错误中断或寄存器的结果而在所述主机软件处检测错误状况;
由所述主机软件和主机控制器中的至少一者执行错误处置;
由所述主机软件清除所述错误状况;以及
在检测到所述主机软件已清除错误状况之际在所述主机控制器处恢复对任务的执行或处理。
23.如权利要求22所述的主机设备,其特征在于,所述主机控制器和主机软件能访问包括所述错误中断或寄存器的共享寄存器空间。
24.如权利要求22所述的主机设备,其特征在于,进一步包括:
由所述主机软件检查寄存器以查明所述错误状况的细节。
25.一种在主机设备上操作的方法,包括:
在主机控制器处检测错误状况;
由所述主机控制器设置错误中断或寄存器;
由所述主机控制器中止任务执行或处理;
作为所述主机控制器已设置所述错误中断或寄存器的结果而在主机软件处检测错误状况;
由所述主机软件和主机控制器中的至少一者执行错误处置;
由所述主机软件清除所述错误状况;以及
在检测到所述主机软件已清除错误状况之际在所述主机控制器处恢复对任务的执行或处理。
26.如权利要求25所述的方法,其特征在于,所述主机软件和主机控制器中的至少一者进一步执行以下至少一者:
清除所述主机设备的任务队列上待决的所有任务;
清除所述主机设备的任务队列上待决的特定任务;以及
指令与所述主机控制器通信的目标设备清除所述目标设备中的一些或所有任务。
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201361857571P | 2013-07-23 | 2013-07-23 | |
| US61/857,571 | 2013-07-23 | ||
| US14/338,279 US9442793B2 (en) | 2013-07-23 | 2014-07-22 | Robust hardware/software error recovery system |
| US14/338,279 | 2014-07-22 | ||
| PCT/US2014/047908 WO2015013460A1 (en) | 2013-07-23 | 2014-07-23 | Robust hardware/software error recovery system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN105408868A true CN105408868A (zh) | 2016-03-16 |
| CN105408868B CN105408868B (zh) | 2018-10-30 |
Family
ID=52391538
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201480041417.0A Active CN105408868B (zh) | 2013-07-23 | 2014-07-23 | 稳健的硬件/软件错误恢复系统 |
Country Status (17)
| Country | Link |
|---|---|
| US (1) | US9442793B2 (zh) |
| EP (2) | EP3985512B1 (zh) |
| JP (1) | JP6162336B2 (zh) |
| KR (1) | KR101770949B1 (zh) |
| CN (1) | CN105408868B (zh) |
| AR (1) | AR097140A1 (zh) |
| AU (1) | AU2014293070A1 (zh) |
| BR (1) | BR112016001232B1 (zh) |
| CA (1) | CA2917578A1 (zh) |
| CL (1) | CL2016000185A1 (zh) |
| MX (1) | MX349374B (zh) |
| MY (1) | MY182582A (zh) |
| PH (1) | PH12016500030B1 (zh) |
| SA (1) | SA516370444B1 (zh) |
| SG (1) | SG11201510140PA (zh) |
| TW (1) | TWI591478B (zh) |
| WO (1) | WO2015013460A1 (zh) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109669802A (zh) * | 2018-11-13 | 2019-04-23 | 北京时代民芯科技有限公司 | 一种用于edac验证的可配置存储器验证系统 |
| CN109933449A (zh) * | 2017-12-18 | 2019-06-25 | 英特尔公司 | 在系统中的错误处置设备中记录错误 |
| CN111434117A (zh) * | 2018-01-18 | 2020-07-17 | 三星电子株式会社 | 图像显示装置及其驱动方法 |
| TWI789075B (zh) * | 2021-10-26 | 2023-01-01 | 中華電信股份有限公司 | 偵測應用程式的異常執行的電子裝置及方法 |
Families Citing this family (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9442793B2 (en) * | 2013-07-23 | 2016-09-13 | Qualcomm Incorporated | Robust hardware/software error recovery system |
| US10007586B2 (en) | 2016-01-08 | 2018-06-26 | Microsoft Technology Licensing, Llc | Deferred server recovery in computing systems |
| US10606678B2 (en) | 2017-11-17 | 2020-03-31 | Tesla, Inc. | System and method for handling errors in a vehicle neural network processor |
| US11307921B2 (en) | 2017-12-08 | 2022-04-19 | Apple Inc. | Coordinated panic flow |
| US10860412B2 (en) * | 2017-12-08 | 2020-12-08 | Apple Inc. | Coordinated panic flow |
| KR102845569B1 (ko) * | 2021-04-05 | 2025-08-12 | 주식회사 멤레이 | 지속성 지원 방법 및 컴퓨팅 장치 |
| US12386657B2 (en) | 2021-04-05 | 2025-08-12 | MemRay Corporation | Method of supporting persistence and computing device |
| US11960350B2 (en) * | 2021-08-04 | 2024-04-16 | Samsung Electronics Co., Ltd. | System and method for error reporting and handling |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060277444A1 (en) * | 2005-06-03 | 2006-12-07 | Nicholas Holian | Recordation of error information |
| CN101901177A (zh) * | 2010-01-22 | 2010-12-01 | 威盛电子股份有限公司 | 多核微处理器及其除错方法 |
| US20120079312A1 (en) * | 2010-09-24 | 2012-03-29 | Sridhar Muthrasanallur | Method and system of live error recovery |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5513346A (en) * | 1993-10-21 | 1996-04-30 | Intel Corporation | Error condition detector for handling interrupt in integrated circuits having multiple processors |
| US6223299B1 (en) * | 1998-05-04 | 2001-04-24 | International Business Machines Corporation | Enhanced error handling for I/O load/store operations to a PCI device via bad parity or zero byte enables |
| US6546482B1 (en) | 1999-05-07 | 2003-04-08 | Advanced Micro Devices, Inc. | Invalid configuration detection resource |
| US6615374B1 (en) * | 1999-08-30 | 2003-09-02 | Intel Corporation | First and next error identification for integrated circuit devices |
| US6594785B1 (en) | 2000-04-28 | 2003-07-15 | Unisys Corporation | System and method for fault handling and recovery in a multi-processing system having hardware resources shared between multiple partitions |
| US6802039B1 (en) * | 2000-06-30 | 2004-10-05 | Intel Corporation | Using hardware or firmware for cache tag and data ECC soft error correction |
| US6966042B2 (en) * | 2003-03-13 | 2005-11-15 | International Business Machine Corporation | System for detecting and reporting defects in a chip |
| US7493513B2 (en) | 2003-04-29 | 2009-02-17 | International Business Machines Corporation | Automatically freezing functionality of a computing entity responsive to an error |
| US8775863B2 (en) | 2011-05-31 | 2014-07-08 | Freescale Semiconductor, Inc. | Cache locking control |
| US9442793B2 (en) * | 2013-07-23 | 2016-09-13 | Qualcomm Incorporated | Robust hardware/software error recovery system |
-
2014
- 2014-07-22 US US14/338,279 patent/US9442793B2/en active Active
- 2014-07-23 BR BR112016001232-1A patent/BR112016001232B1/pt active IP Right Grant
- 2014-07-23 AR ARP140102735A patent/AR097140A1/es not_active Application Discontinuation
- 2014-07-23 AU AU2014293070A patent/AU2014293070A1/en not_active Abandoned
- 2014-07-23 EP EP21213120.5A patent/EP3985512B1/en active Active
- 2014-07-23 KR KR1020167003158A patent/KR101770949B1/ko active Active
- 2014-07-23 MY MYPI2015704662A patent/MY182582A/en unknown
- 2014-07-23 MX MX2016000818A patent/MX349374B/es active IP Right Grant
- 2014-07-23 SG SG11201510140PA patent/SG11201510140PA/en unknown
- 2014-07-23 WO PCT/US2014/047908 patent/WO2015013460A1/en not_active Ceased
- 2014-07-23 EP EP14750860.0A patent/EP3025233B1/en active Active
- 2014-07-23 CA CA2917578A patent/CA2917578A1/en not_active Abandoned
- 2014-07-23 CN CN201480041417.0A patent/CN105408868B/zh active Active
- 2014-07-23 JP JP2016529874A patent/JP6162336B2/ja active Active
- 2014-07-24 TW TW103125377A patent/TWI591478B/zh active
-
2016
- 2016-01-05 PH PH12016500030A patent/PH12016500030B1/en unknown
- 2016-01-21 SA SA516370444A patent/SA516370444B1/ar unknown
- 2016-01-22 CL CL2016000185A patent/CL2016000185A1/es unknown
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060277444A1 (en) * | 2005-06-03 | 2006-12-07 | Nicholas Holian | Recordation of error information |
| CN101901177A (zh) * | 2010-01-22 | 2010-12-01 | 威盛电子股份有限公司 | 多核微处理器及其除错方法 |
| US20120079312A1 (en) * | 2010-09-24 | 2012-03-29 | Sridhar Muthrasanallur | Method and system of live error recovery |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109933449A (zh) * | 2017-12-18 | 2019-06-25 | 英特尔公司 | 在系统中的错误处置设备中记录错误 |
| CN111434117A (zh) * | 2018-01-18 | 2020-07-17 | 三星电子株式会社 | 图像显示装置及其驱动方法 |
| CN111434117B (zh) * | 2018-01-18 | 2023-01-13 | 三星电子株式会社 | 图像显示装置及操作图像显示装置的方法 |
| CN109669802A (zh) * | 2018-11-13 | 2019-04-23 | 北京时代民芯科技有限公司 | 一种用于edac验证的可配置存储器验证系统 |
| TWI789075B (zh) * | 2021-10-26 | 2023-01-01 | 中華電信股份有限公司 | 偵測應用程式的異常執行的電子裝置及方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| AR097140A1 (es) | 2016-02-24 |
| PH12016500030B1 (en) | 2018-11-23 |
| AU2014293070A1 (en) | 2016-03-03 |
| BR112016001232A2 (zh) | 2017-09-05 |
| KR20160034939A (ko) | 2016-03-30 |
| EP3025233B1 (en) | 2022-03-09 |
| SG11201510140PA (en) | 2016-02-26 |
| EP3985512B1 (en) | 2024-01-10 |
| CA2917578A1 (en) | 2015-01-29 |
| TW201516652A (zh) | 2015-05-01 |
| MX2016000818A (es) | 2016-05-24 |
| US9442793B2 (en) | 2016-09-13 |
| KR101770949B1 (ko) | 2017-08-24 |
| EP3985512C0 (en) | 2024-01-10 |
| HK1219325A1 (zh) | 2017-03-31 |
| EP3985512A1 (en) | 2022-04-20 |
| MX349374B (es) | 2017-07-25 |
| PH12016500030A1 (en) | 2016-04-04 |
| WO2015013460A1 (en) | 2015-01-29 |
| JP2016532192A (ja) | 2016-10-13 |
| BR112016001232B1 (pt) | 2022-10-25 |
| MY182582A (en) | 2021-01-25 |
| CN105408868B (zh) | 2018-10-30 |
| TWI591478B (zh) | 2017-07-11 |
| JP6162336B2 (ja) | 2017-07-12 |
| SA516370444B1 (ar) | 2018-08-08 |
| BR112016001232A8 (pt) | 2022-08-16 |
| EP3025233A1 (en) | 2016-06-01 |
| CL2016000185A1 (es) | 2016-07-29 |
| US20150033071A1 (en) | 2015-01-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN105408868B (zh) | 稳健的硬件/软件错误恢复系统 | |
| TWI619078B (zh) | 主機控制器、在一主機控制器上操作以用於與一目標裝置通信之方法及可讀儲存媒體 | |
| JP2008262538A (ja) | 入出力(i/o)エラーをハンドリングするための方法及びシステム | |
| CN103885847A (zh) | 一种基于嵌入式系统的喂狗方法及装置 | |
| TW201828071A (zh) | 開關裝置及偵測積體電路匯流排之方法 | |
| US20130247069A1 (en) | Creating A Checkpoint Of A Parallel Application Executing In A Parallel Computer That Supports Computer Hardware Accelerated Barrier Operations | |
| CN110704228A (zh) | 一种固态硬盘异常处理方法及系统 | |
| CN104346264A (zh) | 系统事件日志处理系统及方法 | |
| CN107408016A (zh) | 使用处理器事务性内存支持的内存访问保护 | |
| US20250238298A1 (en) | Correctable error counter and leaky bucket for peripheral component interconnect express (pcie) and compute express link (cxl) devices | |
| CN109828855B (zh) | 多处理器错误检测系统及其方法 | |
| US9069888B2 (en) | Tracking errors in a computing system | |
| CN115904793B (zh) | 一种基于多核异构系统的内存转存方法、系统及芯片 | |
| HK1219325B (zh) | 穩健的硬件/軟件錯誤恢復系統 | |
| KR101300806B1 (ko) | 다중 프로세스 시스템에서 오동작 처리 장치 및 방법 | |
| US20130055017A1 (en) | Device and method for restoring information in a main storage unit | |
| US20100318774A1 (en) | Processor instruction graduation timeout | |
| CN108415788B (zh) | 用于对无响应处理电路作出响应的数据处理设备和方法 | |
| CN108037942B (zh) | 一种嵌入式设备的自适应数据恢复与更新方法及装置 | |
| JP2017517808A (ja) | 致命的なエラーの発生の直後のコンピュータの処理モジュールレジスタに格納された情報の取得方法 | |
| US8020040B2 (en) | Information processing apparatus for handling errors | |
| CN107451035B (zh) | 用于计算机装置的错误状态数据提供方法 | |
| JP2024175590A (ja) | 異常監視方法及び制御システム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1219325 Country of ref document: HK |
|
| GR01 | Patent grant | ||
| GR01 | Patent grant |