JP6162336B2 - ロバストハードウェア/ソフトウェアエラー回復システム - Google Patents

ロバストハードウェア/ソフトウェアエラー回復システム Download PDF

Info

Publication number
JP6162336B2
JP6162336B2 JP2016529874A JP2016529874A JP6162336B2 JP 6162336 B2 JP6162336 B2 JP 6162336B2 JP 2016529874 A JP2016529874 A JP 2016529874A JP 2016529874 A JP2016529874 A JP 2016529874A JP 6162336 B2 JP6162336 B2 JP 6162336B2
Authority
JP
Japan
Prior art keywords
host
error
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.)
Active
Application number
JP2016529874A
Other languages
English (en)
Other versions
JP2016532192A5 (ja
JP2016532192A (ja
Inventor
アサフ・シャチャム
イタイ・ラネル
マヤ・ハイム
Original Assignee
クアルコム,インコーポレイテッド
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 クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2016532192A publication Critical patent/JP2016532192A/ja
Publication of JP2016532192A5 publication Critical patent/JP2016532192A5/ja
Application granted granted Critical
Publication of JP6162336B2 publication Critical patent/JP6162336B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/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/0745Error 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
    • 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
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3409Recording 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-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)

Description

米国特許法第119条の下での優先権の主張
本特許出願は、本出願の譲受人に譲渡され、参照により本明細書に明確に組み込まれている、2013年7月23日に出願された、「Robust Hardware/Software Error Recovery System」と題する米国特許仮出願第61/857,571号の優先権を主張する。
種々の態様は包括的には、ハードウェア/ソフトウェアシステムのエラー回復に関し、より詳細には、ハードウェアおよびソフトウェアにわたってエラー回復を同期させるシステム、方法および/またはデバイスに関する。
ホストシステムが、I/Oホストコントローラ(ハードウェア)と、入力/出力(I/O)ホストソフトウェア(たとえば、ドライバ)と、ターゲットI/Oデバイスとを備えることができる。ホストコントローラは、ターゲットI/Oデバイスと通信して、タスク(たとえば、データ、コマンドなど)を送信/受信することができる。ホストソフトウェアは、タスクをホストコントローラに与えることができる。
たとえば、コントローラにおいて、ハードウェア動作エラーが生じる場合がある。ハードウェアはソフトウェアより速く作動するので、ソフトウェアが介入する、たとえば、ソフトウェアがそのようなエラーから回復するか、またはそのようなエラーを訂正するのは難しい。多くの場合に、介入を必要としたイベントはすでに過ぎ去っており、ホストシステムの状態は、ソフトウェアが応答するのに要する時間だけ変化している。さらに、ソフトウェアがハードウェアの状態(たとえば、ホストコントローラおよびホストシステムの状態)を調査しようと試みているときに、ハードウェア(たとえば、コントローラ)は依然として動作を実行している場合がある。
結果として、ソフトウェアが、エラーから回復するためにハードウェアの動作に効率的に介入できるようにする機構を提供することが必要とされている。
1つまたは複数のレジスタにアクセスするためのインターフェースと、インターフェースに結合される処理回路とを備えるホストコントローラが提供される。処理回路は、(a)タスクキューからの1つまたは複数のタスクを処理し、(b)タスクを処理しながら、エラー条件を監視し、(c)タスクの処理中にエラー条件を検出すると、エラーレジスタを設定し、(d)タスクのタスク実行または処理を休止し、(e)エラー条件がクリアされたか否かを確認するためにエラーレジスタをポーリングし、および/または(f)エラー条件がクリアされたことを検出すると、タスクの実行または処理を再開するように構成することができる。ホストコントローラは、現在のタスク、現在のコマンドおよび現在の命令のうちの1つを終了すると、タスクの実行または処理を休止することができる。エラーレジスタは、ホストコントローラの外部にあるエラーハンドリングソフトウェアにアクセス可能な共有レジスタ空間内に位置することができる。一例では、エラー条件は、外部エラーハンドリングソフトウェアによってクリアされる場合がある。いくつかの実施態様では、タスクは、外部記憶デバイスでの読出し動作または書込み動作のうちの少なくとも1つを含むことができる。
また、ホストコントローラにおいて使用できる方法も提供される。ホストコントローラは、エラー条件を監視しながら、タスクキューからの1つまたは複数のタスクを処理することができる。タスクの処理中にエラー条件を検出すると、ホストコントローラによってエラーレジスタを設定することができる。さらに、ホストコントローラによって、タスクのタスク実行または処理を休止することができる。ホストコントローラは、現在のタスク、現在のコマンドおよび現在の命令のうちの1つを終了すると、タスクの実行または処理を休止することができる。その後、ホストコントローラは、エラー条件がクリアされたか否かを確認するためにエラーレジスタ(または何らかの他のフラグ、レジスタおよび/もしくはインジケータ)をポーリングすることができる。エラーレジスタは、ホストコントローラの外部にあるエラーハンドリングソフトウェアにアクセス可能な共有レジスタ空間内に位置することができる。エラー条件がクリアされたことを検出すると、ホストコントローラは、タスクの実行または処理を再開することができる。ホストコントローラはさらに、ホストコントローラが通信する外部ターゲットデバイスに、外部ターゲットデバイス内のいくつかまたはすべてのタスクをクリアするように指示することができる。
1つまたは複数の命令を有する非一時的プロセッサ可読記憶媒体も提供され、少なくとも1つの処理回路によって実行されるときに、その命令は少なくとも1つの処理回路に、(a)タスクキューからの1つまたは複数のタスクを処理させ、(b)タスクを処理しながら、エラー条件を監視させ、(c)タスクの処理中にエラー条件を検出すると、エラーレジスタを設定させ、(d)タスクのタスク実行または処理を休止させ、(e)エラー条件がクリアされたか否かを確認するためにエラーレジスタをポーリングさせ、および/または(f)エラー条件がクリアされたことを検出すると、タスクの実行または処理を再開させる。
また、1つまたは複数のレジスタと、ホストコントローラと、ホストコントローラおよび1つまたは複数のレジスタに結合される処理回路とを備えるホストデバイスも提供される。処理回路はホストソフトウェアを実行し、ホストソフトウェアは、(a)ホストコントローラによってエラーが設定されたか否かを確認するためにエラーレジスタをポーリングし、(b)エラーレジスタが設定されたのを検出すると、エラーハンドリングを実行し、および/または(c)エラーハンドリングが完了するとエラーレジスタをクリアすることによって、ホストコントローラ上でエラーハンドリングを実行するように構成することができる。処理回路およびホストコントローラは、単一の半導体デバイスに集積することができる。一例では、ホストソフトウェアおよびホストコントローラのうちの少なくとも1つがさらに、(a)ホストデバイスのタスクキューにおいて未処理のすべてのタスクをクリアすること、(b)ホストデバイスのタスクキューにおいて未処理の特定のタスクをクリアすること、および/または(c)ホストコントローラが通信する外部ターゲットデバイスに、ターゲットデバイス内のいくつかまたはすべてのタスクをクリアするように指示することのうちの少なくとも1つを実行することができる。
ホストデバイス上のソフトウェアによって実行される方法も提供される。ホストコントローラによってエラーが設定されたか否かを確認するために、ホストソフトウェアによって、エラーレジスタをポーリングすることができる。エラーレジスタが設定されたことを検出すると、エラーハンドリングを実行することができる。エラーハンドリングが完了すると、エラーレジスタをクリアすることができる。一例では、その方法はさらに、(a)ホストデバイスのタスクキューにおいて未処理のすべてのタスクをクリアすること、(b)ホストデバイスのタスクキューにおいて未処理の特定のタスクをクリアすること、および/または(c)ホストコントローラが通信する外部ターゲットデバイスに、ターゲットデバイス内のいくつかまたはすべてのタスクをクリアするように指示することを含むことができる。
さらに、ホストソフトウェアを実行する処理回路と、処理回路に結合されるホストコントローラとを備えるホストデバイスが提供される。ホストコントローラおよびホストソフトウェアは、(a)ホストコントローラにおいてエラー条件を検出し、(b)ホストコントローラによってエラー割込みまたはレジスタを設定し、(c)ホストコントローラによってタスク実行または処理を休止し、(d)ホストコントローラがエラー割込みまたはレジスタを設定した結果として、ホストソフトウェアにおいてエラー条件を検出し、(e)ホストソフトウェアおよびホストコントローラのうちの少なくとも1つによってエラーハンドリングを実行し、(f)ホストソフトウェアによってエラー条件をクリアし、ならびに/または(g)ホストソフトウェアによってエラー条件がクリアされたことを検出すると、ホストコントローラにおいてタスクの実行または処理を再開するように構成される。ホストコントローラおよびホストソフトウェアは、エラー割込みまたはレジスタを含む共有レジスタ空間にアクセスすることができる。ホストソフトウェアは、エラー条件の詳細を確認するためにレジスタをチェックすることができる。
ホストデバイス上で使用できる方法であって、(a)ホストコントローラにおいてエラー条件を検出すること、(b)ホストコントローラによってエラー割込みまたはレジスタを設定すること、(c)ホストコントローラによってタスク実行または処理を休止すること、(d)ホストコントローラがエラー割込みまたはレジスタを設定した結果として、ホストソフトウェアにおいてエラー条件を検出すること、(e)ホストソフトウェアおよびホストコントローラのうちの少なくとも1つによってエラーハンドリングを実行すること、(f)ホストソフトウェアによってエラー条件をクリアすること、ならびに/または(g)ホストソフトウェアによってエラー条件がクリアされたことを検出すると、ホストコントローラにおいてタスクの実行または処理を再開することを含む。ホストソフトウェアおよびホストコントローラのうちの少なくとも1つがさらに、(a)ホストデバイスのタスクキューにおいて未処理のすべてのタスクをクリアすること、(b)ホストデバイスのタスクキューにおいて未処理の特定のタスクをクリアすること、および/または(c)ホストコントローラが通信する外部ターゲットデバイスに、ターゲットデバイス内のいくつかまたはすべてのタスクをクリアするように指示することのうちの少なくとも1つを実行することができる。
バスを介して外部ターゲットI/Oデバイスに結合されるホストデバイスを備えるシステムのブロック図であって、ホストデバイスは、エラーが発生すると、動作を休止し、ソフトウェアがエラーを回復させるか、または訂正できるように構成される、システムのブロック図である。 ハードウェア/ソフトウェアシステムにおけるエラー検出の例示的手法を示す図である。 タスクシーケンスを休止し、破棄するためにホストコントローラ上で使用できる例示的方法を示す図である。 ハードウェアとソフトウェアとの間のエラー訂正および回復を容易にするように構成されるホストデバイスを示すブロック図である。 エラーハンドリングを容易にするように構成することができる例示的なホストコントローラのブロック図である。 エラー訂正および回復を実行するためにホストコントローラとホストソフトウェアとの間で使用できる例示的方法を示す図である。 エラー訂正および回復のためにホストコントローラによって使用できる例示的方法を示す図である。 エラー訂正および回復のためにホストソフトウェアによって使用できる例示的方法を示す図である。
添付の図面に関連して以下に記載される説明は、様々な構成の説明として意図されており、本明細書において記載される概念および特徴を実践することができる唯一の構成を表すことは意図していない。以下の説明は、様々な概念を完全に理解してもらうために、具体的な細部を含む。しかしながら、これらの概念はこれらの具体的な細部がなくても実践できることは、当業者には明らかであろう。場合によっては、説明される概念および特徴を曖昧にするのを回避するために、周知の回路、構造、技法および構成要素がブロック図の形式で示される。
本開示全体にわたって提示される様々な概念は、広範な電気通信システム、ネットワークアーキテクチャ、電子デバイス、モバイルデバイス、コンピューティングデバイスおよび/または通信規格にわたって実現することができる。
概説
本開示の種々の特徴および態様は、エラーが発生すると、ソフトウェアがエラーをハンドリングする(たとえば、回復を実行するか、またはエラーを訂正する)ことができるように、ハードウェアの動作をフリーズさせるか、休止するか、または一時停止することに関連する。たとえば、ホストデバイスが、ホストコントローラと、ソフトウェアとを含むことができ、ホストコントローラは、エラーが発生すると、ハードウェアの動作を既知の場所(たとえば、キューの特定の点)および/または状態において停止するように構成または設計される。ホストコントローラおよび任意の外部ターゲットデバイスがフリーズ状態または一時停止状態にある間にソフトウェアがエラーを調査またはハンドリングできるように、ホストコントローラは、すべての活動をフリーズさせるか、休止するか、または一時停止する。ホストコントローラがエラーに直面し、ソフトウェア割込みをトリガするとき、ホストコントローラは、ソフトウェアによって活動を再開するように指示されるまで、すべてのハードウェア活動を休止する。同様に、ソフトウェアが、何らかの理由で、ハードウェア活動に介入することに決めるとき、ソフトウェアは、ホストコントローラに動作を休止または中断するように命令する。ホストコントローラは現在のコマンドを完了することができ、既知の場所(たとえば、キューの特定の点)または状態において、その動作を休止/一時停止する。外部ターゲットデバイスが、ホストコントローラが活動を再開するのを待つことができ、それにより、ホストコントローラが自らの活動を休止または一時停止するとき、ターゲットデバイスも休止または一時停止される。ホストコントローラは、(たとえば、ホストデバイス上で実行されている)ソフトウェアに、現在フリーズ状態または中断状態にあることを指示することができる。ソフトウェアはステップインし、ホストコントローラおよびターゲットデバイス内の現在の状態を調査し、並列にプロセスが実行されない(すなわち、ハードウェアが休止または一時停止される)間に、エラーハンドリング手順(たとえば、エラー回復手順、エラー訂正手順または任意の他の手順)を実行することができる。その手順がソフトウェアによって完了されるとき、ソフトウェアはホストコントローラにその動作を再開するように指示することができる。ハードウェア/ソフトウェア競合条件および不確定性を解消することによって、エラー回復および他のハードウェア/ソフトウェア手順が簡単になる。
例示的な動作環境
図1は、バス106を介して外部ターゲットI/Oデバイス104に結合されるホストデバイス102を備えるシステムのブロック図であり、ホストデバイスは、エラーが発生すると、ソフトウェアがエラーを回復または訂正できるようにするために、動作を休止するように構成される。ホストデバイス102は、ホストソフトウェア108、タスクキュー109、1つまたは複数のレジスタ107、および/またはホストコントローラ110を含むことができる。ターゲットI/Oデバイス104は、コントローラ112と、タスクキュー114と、記憶デバイス116とを含むことができる。ホストタスクキュー109は、ターゲットI/Oデバイス104に送信されるタスク(たとえば、演算またはコマンド)を保持することができる。たとえば、そのようなホストタスクキュー109は、ホストコントローラ110にタスクを与えるためにホストソフトウェア108によって用いられる場合があり、タスクがターゲットI/Oデバイス104に送信されるまでタスクを保持するために用いられる場合がある。(たとえば、ホストコントローラ内、またはホストデバイス102内の他の場所内の)レジスタ107は、ソフトウェア108および/またはホストコントローラ110間でステータス情報を転送する役割を果たすことができる。たとえば、レジスタ107は、ホストタスクキュー109内のどのタスクがターゲットI/Oデバイス104に送信されたか、および送信されていないかについての情報を含むことができる。
一実施態様では、ターゲットI/Oデバイス104は、ホストデバイス102とは別に、若しくはホストデバイス102の外部に存在する場合があるか、またはホストデバイス102とともに単一の半導体チップの一部として集積される場合がある。一例では、ターゲットI/Oデバイス104は、電子装置技術統合評議会(JEDEC:Joint Electron Device Engineering Council)による組み込みマルチメディアコントローラ(eMMC:Embedded Multi-Media Controller)標準規格に準拠するフラッシュ記憶デバイスとすることができる。そのような例において、ホストデバイス102は、(たとえば、ホストタスクキュー109内で特定される)データを、ターゲットI/Oデバイス104から読み出し、および/またはターゲットI/Oデバイス104に書き込むことができる。
図2は、ハードウェア/ソフトウェアシステムにおけるエラー検出の例示的手法を示す。ホストソフトウェア108はタスク1...nを生成(204)し、それらのタスクをホストコントローラ110に与える(206a)ことができる。その後、ホストコントローラ110は、タスク1...nをターゲットコントローラ112に送信し(206b)、ターゲットコントローラ112は、それらのタスクをタスクキュー114に与え(206c)、タスクキューからのタスクを、ターゲットI/Oデバイス104によって実行するか、または処理する(208)ことができる。本明細書において開示される「タスク」は、データタスクおよび/または非データタスクとすることができる。ターゲットI/Oデバイス104は、各タスクを実行または処理すると、ホストデバイス102に確認応答またはインジケータを返送することができる。
1つの特徴によれば、エラーを検出する(210)と、ホストコントローラ110は、その実行または処理をフリーズさせる/休止する(212)ように構成することができる。そのようなフリーズ/休止点は、たとえば、現在のタスク(たとえば、特定の組合せ/複数のコマンド)、コマンド(たとえば、特定の組合せ/複数の基本命令)、命令(たとえば、現在の命令)の処理の終了時とすることができる。その後、ホストコントローラ110は、1つまたは複数のエラーレジスタを設定し(214)、エラーレジスタを用いて、ホストソフトウェア108によってエラー割込みがトリガ/検出される(216)。ホストソフトウェア108によってそのようなエラー割込みが検出される(216)と、ホストソフトウェア108は、レジスタからのエラー条件を確認し(218)(たとえば、エラーのタイプを判断するなど)、タスクシーケンスを休止し(220)(たとえば、タスク生成および/または処理を休止する)、エラーハンドリングを実行する(222)ことができる。一例では、そのようなエラーハンドリングは、1つまたは複数の未処理のタスクt...wをクリア/削除する(224a)ことを含むことができる。たとえば、これは、ホストタスクキュー109から特定のタスクt...wを削除すること、および/またはホストコントローラ110に、それらの特定のタスクを削除するように、または実行しないように指示することを伴うことができる。さらに、タスクt...wがターゲットI/Oデバイス104にすでに送信されていた場合、ホストソフトウェア108は、ターゲットデバイスタスクキュー114から1つまたは複数のタスクt...wをクリアし、および/または削除するために、ターゲットデバイスコントローラ112に付加メッセージを送信する(224b)ことができる。
そのエラーハンドリング動作(222)を完了すると、その後、ホストソフトウェア108は、エラー割込みおよび/またはエラーレジスタをクリアする(228)ことができ、および/またはホストコントローラ110にそうするように指示する(230)ことができる。エラーハンドリングが完了したというそのような指示を受信すると、ホストコントローラは、ホストタスクキュー109に残っているタスクの実行を再開する(232)ことができる。このようにして、ホストコントローラ110は、ホストソフトウェア108と協働して、その間の競合条件を回避しながら、エラー回復をハンドリングする。
図3は、タスクシーケンスを休止し、破棄するためにホストコントローラ上で使用できる例示的方法を示す。エラー条件を検出すると、ホストソフトウェアは、休止インジケータを発行する(302)(たとえば、第1の構成可能レジスタ内の休止ビット(halt bit)に“1”を書き込む)ことができるか、または「休止」命令、インジケータ、フラグまたは割込みをホストコントローラに対して発行するための他の方法を用いることができる。その後、ホストソフトウェアは、休止インジケータが完了するか、または設定される(“1”またはHighに設定される)まで、休止インジケータ(たとえば、第1の構成可能レジスタ内の休止ビット)をポーリングする(304)ことができる。すなわち、ホストソフトウェアが休止インジケータを以前に設定していた場合であっても、ホストソフトウェアは、休止インジケータが実際に設定されたことを確認するために、すべての他のプロセスが停止したことを確かめなければならない場合がある。休止インジケータに関するポーリングの代わりに、割込み、または他の通知方法を用いて、いつ休止インジケータが完全に設定されたかをホストソフトウェアに通知することができることに留意されたい。
その後、ホストコントローラは、タスクキュー内にさらなるタスクが存在するか否かを確認することができる。たとえば、ホストコントローラは、タスクレジスタを読み出し(306)て、実行されるべき、または未処理であるタスクが存在するか否かを確認することができる。タスクレジスタがクリアされている(task_register=0)場合には、これは、すべてのタスクが実行された(すなわち、タスクキュー内に未処理のタスクがない)ことを意味するので、ホストコントローラは、休止インジケータをクリアして(308)(たとえば、第1の構成可能レジスタ内の休止ビットが“0”またはLowに設定される)、動作を再開することができる。
そうではなく、タスクレジスタが設定される(たとえば、task_register=“1”またはハイ)場合には、ホストコントローラは、タスクキュー内のすべてのタスクをクリアするか、または特定のタスクをクリアするために、キュークリアインジケータを設定する(310)ことができる。
その後、ホストコントローラはキュークリアインジケータ(または対応するレジスタ)をポーリングし、タスクがタスクキューからクリアされたことを検証する(312)ことができる。そのようなエラー回復/訂正ステップが完了すると、ホストコントローラは、休止インジケータをリセットする(314)ことができ(休止ビット=0またはLow)、タスクの実行または処理を再開する。
例示的なホストデバイス
図4は、ハードウェアとソフトウェアとの間のエラー訂正および回復を容易にするように構成されるホストデバイスを示すブロック図である。ホストデバイス402は、処理回路404と、ホストコントローラ406と、プロセッサ可読記憶媒体/デバイス408と、メモリデバイス430と、トランシーバ回路412と、バス410とを含むことができる。ホストコントローラ406は、メモリデバイス430内のタスクキュー422からタスクを入手し、そのタスクを実行することができ、および/または(たとえば、データおよびコマンドを含む)そのタスクをトランシーバ回路を介してターゲットデバイスに送信することができる。たとえば、ホストコントローラ406は、ターゲットデバイス(たとえば、外部記憶デバイス)上で読出しおよび/または書込み動作を実行することができる。ホストコントローラ406は、1つまたは複数のレジスタ420内で処理されているタスクに関するステータス情報を保持することができ、レジスタは、ホストコントローラ406内に、メモリデバイス430内に、または他の場所に存在する場合がある。ホストコントローラ406は、エラーを検出すると、タスクキュー422内のタスクの処理を休止するように構成することができ、ソフトウェア割込みをトリガするか、または(たとえば、レジスタ内の)フラグを設定して、エラー条件の発生をホストソフトウェアに通知する。
処理回路は、ホストソフトウェアおよび/または機能回路を実行するように構成することができる。たとえば、エラー検出モジュール/回路414は、ホストコントローラ406がエラーフラグを設定したか、またはエラー割込みをトリガした時点を検出または監視するように構成することができる。エラーハンドリングモジュール/回路416は、ホストコントローラ406上でエラー回復または訂正を実行するように構成することができる。たとえば、そのようなエラーハンドリングモジュール/回路416は、タスクキュー422内の1つまたは複数のタスクをクリアし、および/またはレジスタ420のうちの1つまたは複数をリセットすることができる。エラー条件クリアモジュール/回路418は、ソフトウェア割込みをクリアすることができ、ホストコントローラ406によって設定された1つまたは複数のフラグをクリアすることができ、および/または別の方法で、エラーがハンドリングされたことを、そしてホストコントローラ406が処理を再開できることをホストコントローラ406に通知する。エラーハンドリングがクリアされたことを通知されると、ホストコントローラ406は、タスクキュー内のタスクの処理を再開することができる。プロセッサ可読記憶媒体/デバイス408は、エラー検出命令、エラーハンドリング命令426、および/またはエラー条件クリア命令428を含むことができ、それらの命令は、その機能を実行するために、処理回路404によって実行される場合がある。
図5は、エラーハンドリングを容易にするように構成することができる例示的なホストコントローラ502のブロック図である。この例では、ホストコントローラ502は、1つまたは複数のレジスタ508および/または入力/出力インターフェース回路510に結合されるコントローラ処理回路504を含むことができる。コントローラ処理回路504は、タスク処理モジュール/回路、エラー条件検出モジュール/回路512、タスク休止モジュール/回路514、エラー条件インジケータモジュール/回路516および/またはエラークリアポーリングモジュール/回路518を含むことができる。
タスク処理モジュール/回路は、タスクキューからタスクを検索し、検索されたタスクを処理し、その後、タスクキュー内の次のタスクを処理することができる。そのようなタスクは、たとえば、外部ターゲットデバイスからの読出し動作または外部ターゲットデバイスへの書込み動作を実行することを含むことができる。エラー条件検出モジュール/回路512は、タスクを処理する際にエラーが発生したか否かを確認することができる。エラー条件を検出するのに応答して、タスク休止モジュール/回路514は、ホストコントローラ502によるさらなる処理を休止し、一時停止し、および/またはフリーズさせる(たとえば、任意のさらなるタスクの処理を休止する)ことができる。コントローラ処理回路は、現在のタスクを終了するか、または終結させ、その後、任意のさらなる処理を休止することができる。エラー条件インジケータモジュール/回路516は、フラグ、レジスタおよび/またはハードウェア/ソフトウェア割込みを設定して、エラー条件がホストコントローラ502によって検出されたことを指示することができる。これにより、外部または内部ソフトウェアが、エラーハンドリングを実行し、エラー条件に対処できるようになる場合がある。エラークリアポーリングモジュール/回路518は、タスク処理モジュール/回路が動作を再開できるように、エラー条件がハンドリングされたか否か、およびエラー条件がハンドリングされた時点を確認することができる。
一例では、ホストコントローラ502は、1つまたは複数の動作命令を得るために、記憶デバイス506に(たとえば、I/Oインターフェース回路510を介して)結合することができる。たとえば、記憶デバイス506は、タスクキューからのタスクを処理するタスク処理命令519、タスク処理中にエラーを検出するエラー条件検出命令520、エラーが検出されるときに処理を休止するタスク休止命令522、エラー回復のためにソフトウェアが介入できるようにするフラグ、レジスタもしくは他のインジケータを設定するエラー条件インジケータ命令524、および/またはホストコントローラが、以前に設定されたフラグ、レジスタまたはインジケータのクリア(すなわち、エラー条件が対処されたという指示)を監視し、検出し、および/またはポーリングできるようにするエラークリアポーリング命令526を含むことができる。
図6は、エラー訂正および回復を実行するためにホストコントローラとホストソフトウェアとの間で使用できる例示的方法を示す図である。ホストコントローラは、(a)(たとえば、ホストソフトウェアからの通知に基づく)エラー条件を検出し(602)、(b)エラー割込みまたはレジスタを設定し(604)、および/または(c)タスク実行または処理を休止する(606)。ホストソフトウェアは、(d)ホストコントローラがエラー割込みまたはレジスタを設定する結果としてエラー条件を検出し(608)、(e)エラーハンドリングを実行し(610)、および/または(エラーハンドリングの終了時に)エラー条件をクリアする(612)ことができる。その後、ホストコントローラは、ホストソフトウェアによってエラー条件がクリアされたことを検出すると、タスクの実行または処理を再開する(614)ことができる。ソフトウェアはホストコントローラに結合される処理回路によって実行できることに留意されたい。処理回路およびホストコントローラは、単一の半導体デバイスに集積することができる。ホストコントローラおよびホストソフトウェアは、エラー割込みまたはレジスタを含む共有レジスタ空間にアクセスすることができる。
一例では、ホストソフトウェアおよびホストコントローラのうちの少なくとも1つによってエラーハンドリングを実行することは、(i)ホストデバイスのタスクキューにおいて未処理のすべてのタスクをクリアすること、(ii)ホストデバイスのタスクキューにおいて未処理の特定のタスクをクリアすること、および/または(iii)ホストコントローラが通信するターゲットデバイスに、ターゲットデバイス内のいくつかもしくはすべてのタスクをクリアするように指示することのうちの少なくとも1つを含む。
ホストソフトウェアおよびホストコントローラのうちの少なくとも1つによってエラーハンドリングを実行する他の例では、未処理のタスクは、ホストデバイスのタスクキューから、および/またはターゲットデバイス内のタスクキューからクリアされない場合があるか、またはクリアされる必要がない場合がある。
ホストコントローラは、現在のタスク、現在のコマンドおよび現在の命令のうちの1つを終了すると、タスク実行または処理を休止することができることに留意されたい。
図7は、エラー訂正および回復のためのホストコントローラによって使用できる例示的方法を示す図である。ホストコントローラは(たとえば、タスクキューからの)タスクを処理する(702)。たとえば、タスクは、外部ターゲットデバイスからの読出しおよび/または外部ターゲットデバイスへの書込み動作とすることができる。ホストコントローラは、タスクを処理しながら、エラー条件を監視する(704)ことができる。ホストコントローラは、タスクの処理中にエラー条件を検出すると、エラーレジスタを設定する(706)ことができる。さらに、ホストコントローラはタスク実行/処理を休止する(708)。ホストコントローラによる処理を休止することはまた、レジスタの状態をフリーズさせ、それにより、エラーハンドリングをホストソフトウェアによって実行することができる。休止されている間に、ホストコントローラは、エラー条件がクリアされたか否かを確認するために、エラーレジスタをポーリングする(710)ことができる。他の例では、異なるレジスタ、インジケータ、フラグまたは機構を用いて、エラー条件が対処されたか、またはクリアされたことをホストコントローラに指示できることに留意されたい。エラー条件がクリアされたことを検出すると、ホストコントローラは、実行または処理を再開する(712)ことができる。
図8は、エラー訂正および回復のためにホストソフトウェアによって使用できる例示的方法を示す。エラー割込みレジスタからエラー割込みを受信/検出する(802)と、ホストソフトウェアは、最終応答および/または最終応答インデックスレジスタを読み出す(804)ことができる。また、ホストソフトウェアは、エラーハンドリングレジスタを読み出し、失敗タスクインデックスおよびコマンドを検証する(806)こともできる。その後、ホストソフトウェアは、タスク休止シーケンスまたは動作を実行する(808)ことができ、エラー検出およびハンドリングシーケンスを継続する(810)。
これまでに論じられた態様、構成、および実施形態について具体的な細部まで詳細に論じられてきたが、図1、図2、図3、図4、図5、図6、図7および/または図8に示される構成要素、ステップ、特徴および/または機能のうちの1つまたは複数は、単一の構成要素、ステップ、特徴若しくは機能に再構成され、および/または組み合わせられる場合があるか、または、いくつかの構成要素、ステップ、または機能において具現される場合がある。また、本開示から逸脱することなく追加の要素、構成要素、ステップ、および/または機能が追加される場合もあるが、利用されなくてもよい。図1、図2、図4および/または図5に示される装置、デバイス、および/または構成要素は、図2、図3、図6、図7および/または図8において説明された方法、特徴、パラメータ、および/またはステップのうちの1つまたは複数を実行または利用するように構成することができる。本明細書において記述される新規のアルゴリズムは、ソフトウェアにおいて効率的に実現することもでき、および/またはハードウェアに組み込むこともできる。
また、少なくともいくつかの実施態様が、流れ図、フロー図、構造図、またはブロック図として表されるプロセスとして説明されてきたことに留意されたい。流れ図は動作を逐次プロセスとして説明する場合があるが、動作のうちの多くは並行してまたは同時に実行することができる。さらに、動作の順序は、再配置することができる。プロセスは、その動作が完了したときに終了する。プロセスは、方法、関数、手順、サブルーチン、サブプログラムなどに対応することができる。処理が関数に対応するとき、その終了は、関数が呼出し関数またはメイン関数に戻ることに対応する。本明細書において説明される様々な方法は、非一時的機械可読媒体、コンピュータ可読媒体、および/またはプロセッサ可読記憶媒体に記憶され、1つまたは複数のプロセッサ、機械、および/またはデバイスによって実行することができるプログラミング(たとえば、命令および/またはデータ)によって、部分的にまたは完全に実現することができる。
本明細書において開示される実施形態に関して説明される様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、またはそれらの任意の組合せとして実現できることは、当業者であればさらに理解されよう。この互換性を明確に示すために、上記では、種々の例示的な構成要素、ブロック、モジュール、回路、およびステップは全般的に、それらの機能に関して説明されてきた。そのような機能がハードウェアとして実現されるかソフトウェアとして実現されるかは、特定の適用例およびシステム全体に課される設計制約に応じて決まる。
本明細書において説明され、添付の図面において示される例に関連する様々な特徴は、本開示の範囲から逸脱することなく、異なる例および実施態様において実現することができる。したがって、いくつかの特定の構成および配置が説明され、添付の図面において示されたが、説明された実施形態への様々な他の追加および変更ならびに説明された実施形態からの削除が当業者にとって明らかであるので、そのような実施形態は、例示に過ぎず、本開示の範囲を制限するものではない。したがって、本開示の範囲は、以下の特許請求の範囲の文言、および法的均等物によってのみ決定される。
102 ホストデバイス
104 外部ターゲットI/Oデバイス
106 バス
107 レジスタ
108 ホストソフトウェア
109 タスクキュー
110 ホストコントローラ
112 コントローラ
114 タスクキュー
116 記憶デバイス
402 ホストデバイス
404 処理回路
406 ホストコントローラ
408 プロセッサ可読記憶媒体/デバイス
410 バス
412 トランシーバ回路
414 エラー検出モジュール/回路
416 エラーハンドリングモジュール/回路
418 エラー条件クリアモジュール/回路
420 レジスタ
422 タスクキュー
426 エラーハンドリング命令
428 エラー条件クリア命令
430 メモリデバイス
502 ホストコントローラ
504 コントローラ処理回路
506 記憶デバイス
508 レジスタ
510 入力/出力インターフェース回路
512 エラー条件検出モジュール/回路
514 タスク休止モジュール/回路
516 エラー条件インジケータモジュール/回路
518 エラークリアポーリングモジュール/回路
519 タスク処理命令
520 エラー条件検出命令
522 タスク休止命令
524 エラー条件インジケータ命令
526 エラークリアポーリング命令

Claims (26)

  1. ホストコントローラであって、
    1つまたは複数のレジスタにアクセスするためのインターフェースと、
    前記インターフェースに結合される処理回路であって、
    スクの処理中にエラー条件を検出すると、エラーレジスタを設定し、
    スクのタスク実行または処理を休止し、
    ホストソフトウェアによって前記エラー条件がクリアされたことを検出すると、タスクの実行または処理を再開する
    ように構成される、処理回路と
    を備える、ホストコントローラ。
  2. 前記処理回路はさらに、
    タスクキューからの1つまたは複数のタスクを処理し、
    前記タスクを処理している間にエラー条件を監視する
    ように構成される、請求項1に記載のホストコントローラ。
  3. 前記処理回路はさらに、
    前記エラー条件が前記ホストソフトウェアによってクリアされたか否かを確認するために前記エラーレジスタをポーリングするように構成される、請求項1に記載のホストコントローラ。
  4. 前記ホストコントローラは、現在のタスク、現在のコマンドおよび現在の命令のうちの1つを終了すると、タスクの実行または処理を休止する、請求項1に記載のホストコントローラ。
  5. 前記エラーレジスタは、ホストコントローラの外部にあるエラーハンドリングソフトウェアにアクセス可能な共有レジスタ空間内に位置する、請求項1に記載のホストコントローラ。
  6. 前記エラー条件は、外部エラーハンドリングソフトウェアによってクリアされる、請求項1に記載のホストコントローラ。
  7. タスクのタスク実行または処理を休止することは、現在のタスク、現在のコマンドまたは現在の命令のうちの1つを終了すると、ハードウェア動作を既知の場所または状態において停止することを含む、請求項1に記載のホストコントローラ。
  8. ホストコントローラにおいて動作可能な方法であって、
    前記ホストコントローラ内の処理回路によって、タスクの処理中にエラー条件を検出すると、エラーレジスタを設定するステップと、
    前記処理回路によって、前記処理回路によるタスクのタスク実行または処理を休止するステップと、
    前記処理回路において動作するホストソフトウェアによって前記エラー条件がクリアされたことを検出すると、前記処理回路によって、タスクの実行または処理を再開するステップと
    を含む、方法。
  9. タスクキューからの1つまたは複数のタスクを処理するステップと、
    前記タスクを処理している間にエラー条件を監視するステップと
    をさらに含む、請求項8に記載の方法。
  10. 前記ホストソフトウェアによって前記エラー条件がクリアされたか否かを確認するために前記エラーレジスタをポーリングするステップをさらに含む、請求項8に記載の方法。
  11. 前記ホストコントローラは、現在のタスク、現在のコマンドおよび現在の命令のうちの1つを終了すると、タスクの実行または処理を休止する、請求項8に記載の方法。
  12. 前記エラーレジスタは、前記ホストコントローラの外部にあるエラーハンドリングソフトウェアにアクセス可能な共有レジスタ空間内に位置する、請求項8に記載の方法。
  13. 前記ホストコントローラが通信する外部ターゲットデバイスに、前記外部ターゲットデバイス内のいくつかまたはすべてのタスクをクリアするように指示するステップをさらに含む、請求項8に記載の方法。
  14. 1つまたは複数の命令を有する非一時的プロセッサ可読記憶媒体であって、少なくとも1つの処理回路によって実行されたときに、前記1つまたは複数の命令が、前記少なくとも1つの処理回路に、
    記処理回路によるタスクの処理中にエラー条件を検出すると、エラーレジスタを設定させ、
    記処理回路によるタスクのタスク実行または処理を休止させ、
    前記処理回路において動作するホストソフトウェアによって前記エラー条件がクリアされたことを検出すると、タスクの実行または処理を再開させる、
    非一時的プロセッサ可読記憶媒体。
  15. 前記1つまたは複数の命令は、前記少なくとも1つの処理回路にさらに、
    タスクキューからの1つまたは複数のタスクを処理させ、
    前記タスクを処理している間にエラー条件を監視させる、
    請求項14に記載の記憶媒体。
  16. 前記1つまたは複数の命令は、前記少なくとも1つの処理回路にさらに、
    前記エラー条件がクリアされたか否かを確認するために前記エラーレジスタをポーリングさせる、請求項14に記載の記憶媒体。
  17. ホストデバイスであって、
    エラーレジスタを含む1つまたは複数のレジスタと、
    タスクのタスク実行または処理中にエラーを検出し、かつそのようなエラーが検出されるときに前記エラーレジスタを設定するように構成されるハードウェアを含むホストコントローラと、
    前記ホストコントローラおよび前記1つまたは複数のレジスタに結合され、かつホストソフトウェアを実行する処理回路とであって、前記ホストソフトウェアは、
    エラーが前記ホストコントローラによって設定されたか否かを確認するために、前記ホストソフトウェアによって、前記エラーレジスタをポーリングし、
    前記エラーレジスタが設定されたことを検出すると、前記ホストソフトウェアによって、エラーハンドリングを実行し、
    エラーハンドリングが完了すると、前記ホストソフトウェアによって、前記エラーレジスタをクリアする
    ことによって、前記ホストコントローラ上でエラーハンドリングを実行するように構成される、処理回路と
    を備える、ホストデバイス。
  18. 前記処理回路およびホストコントローラは、単一の半導体デバイスに集積される、請求項17に記載のホストデバイス。
  19. 前記ホストソフトウェアおよび前記ホストコントローラのうちの少なくとも1つがさらに、
    前記ホストデバイスのタスクキューにおいて未処理のすべてのタスクをクリアすることと、
    前記ホストデバイスの前記タスクキューにおいて未処理の特定のタスクをクリアすることと、
    前記ホストコントローラが通信する外部ターゲットデバイスに、前記外部ターゲットデバイス内のいくつかまたはすべてのタスクをクリアするように指示することと
    のうちの少なくとも1つを実行する、請求項17に記載のホストデバイス。
  20. ホストデバイス上のホストソフトウェアによって実行される方法であって、
    エラーが、前記ホストデバイス内のホストコントローラの処理回路によって、ハードウェアレベルにおいて設定されたか否かを確認するために、前記ホストソフトウェアによって、エラーレジスタをポーリングするステップと、
    前記処理回路によって前記エラーレジスタが設定されたことを検出すると、前記ホストソフトウェアによって、エラーハンドリングを実行するステップと、
    記エラーハンドリングが完了すると、前記ホストソフトウェアによって、前記エラーレジスタをクリアするステップと
    を含む、方法。
  21. 前記ホストデバイスのタスクキューにおいて未処理のすべてのタスクをクリアするステップと、
    前記ホストデバイスの前記タスクキューにおいて未処理の特定のタスクをクリアするステップと、
    前記ホストコントローラが通信する外部ターゲットデバイスに、前記外部ターゲットデバイス内のいくつかまたはすべてのタスクをクリアするように指示するステップと
    をさらに含む、請求項20に記載の方法。
  22. ホストデバイスであって、
    ホストソフトウェアを実行する処理回路と、
    前記処理回路に結合されるホストコントローラであって、前記ホストコントローラおよび前記ホストソフトウェアは、
    前記ホストコントローラにおいて、ハードウェアレベルにおいて、エラー条件を検出し、
    前記ホストコントローラによって、前記ハードウェアレベルにおいて、エラー割込みまたはレジスタを設定し、
    前記ホストコントローラによってタスク実行または処理を休止し、
    前記ホストコントローラが前記エラー割込みまたはレジスタを設定した結果として、前記ホストソフトウェアにおいてエラー条件を検出し、
    前記ホストソフトウェアおよび前記ホストコントローラのうちの少なくとも1つによってエラーハンドリングを実行し、
    前記ホストソフトウェアによって前記エラー条件をクリアし、
    前記ホストソフトウェアによって前記エラー条件がクリアされたことを検出すると、前記ホストコントローラにおいてタスクの実行または処理を再開する
    ように構成される、ホストコントローラ
    を備える、ホストデバイス。
  23. 前記ホストコントローラおよび前記ホストソフトウェアは、前記エラー割込みまたはレジスタを含む共有レジスタ空間にアクセスすることができる、請求項22に記載のホストデバイス。
  24. 前記エラー条件の詳細を確認するために、前記ホストソフトウェアによって、レジスタをチェックすることをさらに含む、請求項22に記載のホストデバイス。
  25. ホストデバイス上で動作可能な方法であって、
    ホストコントローラ内の処理回路によって、前記ホストコントローラにおいて、ハードウェアレベルにおいて、エラー条件を検出するステップと、
    前記処理回路によって前記ホストコントローラにおいて、前記ハードウェアレベルにおいて、エラー割込みまたはレジスタを設定するステップと、
    前記処理回路によって前記ホストコントローラにおいてタスク実行または処理を休止するステップと、
    前記ホストコントローラが前記エラー割込みまたはレジスタを設定した結果として、ホストソフトウェアにおいてエラー条件を検出するステップと、
    前記ホストソフトウェアおよび前記ホストコントローラのうちの少なくとも1つによってエラーハンドリングを実行するステップと、
    前記ホストソフトウェアによって前記エラー条件をクリアするステップと、
    前記ホストソフトウェアによって前記エラー条件がクリアされたことを検出すると、前記ホストコントローラにおいてタスクの実行または処理を再開するステップと
    を含む、方法。
  26. 前記ホストソフトウェアおよび前記ホストコントローラのうちの少なくとも1つがさらに、
    前記ホストデバイスのタスクキューにおいて未処理のすべてのタスクをクリアするステップと、
    前記ホストデバイスの前記タスクキューにおいて未処理の特定のタスクをクリアするステップと、
    前記ホストコントローラが通信するターゲットデバイスに、前記ターゲットデバイス内のいくつかまたはすべてのタスクをクリアするように指示するステップと
    のうちの少なくとも1つを実行する、請求項25に記載の方法。
JP2016529874A 2013-07-23 2014-07-23 ロバストハードウェア/ソフトウェアエラー回復システム Active JP6162336B2 (ja)

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 (3)

Publication Number Publication Date
JP2016532192A JP2016532192A (ja) 2016-10-13
JP2016532192A5 JP2016532192A5 (ja) 2017-01-12
JP6162336B2 true JP6162336B2 (ja) 2017-07-12

Family

ID=52391538

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016529874A Active JP6162336B2 (ja) 2013-07-23 2014-07-23 ロバストハードウェア/ソフトウェアエラー回復システム

Country Status (18)

Country Link
US (1) US9442793B2 (ja)
EP (2) EP3025233B1 (ja)
JP (1) JP6162336B2 (ja)
KR (1) KR101770949B1 (ja)
CN (1) CN105408868B (ja)
AR (1) AR097140A1 (ja)
AU (1) AU2014293070A1 (ja)
BR (1) BR112016001232B1 (ja)
CA (1) CA2917578A1 (ja)
CL (1) CL2016000185A1 (ja)
HK (1) HK1219325A1 (ja)
MX (1) MX349374B (ja)
MY (1) MY182582A (ja)
PH (1) PH12016500030B1 (ja)
SA (1) SA516370444B1 (ja)
SG (1) SG11201510140PA (ja)
TW (1) TWI591478B (ja)
WO (1) WO2015013460A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
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
US10860412B2 (en) * 2017-12-08 2020-12-08 Apple Inc. Coordinated panic flow
US11307921B2 (en) 2017-12-08 2022-04-19 Apple Inc. Coordinated panic flow
KR102429433B1 (ko) * 2018-01-18 2022-08-04 삼성전자주식회사 영상 표시 장치 및 그 구동 방법
CN109669802A (zh) * 2018-11-13 2019-04-23 北京时代民芯科技有限公司 一种用于edac验证的可配置存储器验证系统
US11960350B2 (en) * 2021-08-04 2024-04-16 Samsung Electronics Co., Ltd. System and method for error reporting and handling
TWI789075B (zh) * 2021-10-26 2023-01-01 中華電信股份有限公司 偵測應用程式的異常執行的電子裝置及方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
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
US20060277444A1 (en) * 2005-06-03 2006-12-07 Nicholas Holian Recordation of error information
CN101901177B (zh) * 2010-01-22 2012-11-21 威盛电子股份有限公司 多核微处理器及其除错方法
US8782461B2 (en) * 2010-09-24 2014-07-15 Intel Corporation Method and system of live error recovery
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

Also Published As

Publication number Publication date
CN105408868A (zh) 2016-03-16
BR112016001232A2 (ja) 2017-09-05
MX349374B (es) 2017-07-25
CN105408868B (zh) 2018-10-30
EP3985512B1 (en) 2024-01-10
PH12016500030A1 (en) 2016-04-04
PH12016500030B1 (en) 2016-04-04
TW201516652A (zh) 2015-05-01
BR112016001232B1 (pt) 2022-10-25
WO2015013460A1 (en) 2015-01-29
TWI591478B (zh) 2017-07-11
EP3025233B1 (en) 2022-03-09
BR112016001232A8 (pt) 2022-08-16
HK1219325A1 (zh) 2017-03-31
KR20160034939A (ko) 2016-03-30
SG11201510140PA (en) 2016-02-26
US20150033071A1 (en) 2015-01-29
US9442793B2 (en) 2016-09-13
MX2016000818A (es) 2016-05-24
JP2016532192A (ja) 2016-10-13
SA516370444B1 (ar) 2018-08-08
EP3985512A1 (en) 2022-04-20
EP3985512C0 (en) 2024-01-10
KR101770949B1 (ko) 2017-08-24
EP3025233A1 (en) 2016-06-01
CL2016000185A1 (es) 2016-07-29
AU2014293070A1 (en) 2016-03-03
AR097140A1 (es) 2016-02-24
CA2917578A1 (en) 2015-01-29
MY182582A (en) 2021-01-25

Similar Documents

Publication Publication Date Title
JP6162336B2 (ja) ロバストハードウェア/ソフトウェアエラー回復システム
US9513820B1 (en) Dynamically controlling temporary compromise on data redundancy
JP4641546B2 (ja) 入出力(i/o)エラーをハンドリングするための方法及びシステム
EP3142011A1 (en) Anomaly recovery method for virtual machine in distributed environment
JP2017517060A (ja) 障害処理方法、関連装置、およびコンピュータ
JP2007109238A (ja) 回復可能なエラーのロギングのためのシステム及び方法
US9141396B2 (en) Live initialization of a boot device
TWI619078B (zh) 主機控制器、在一主機控制器上操作以用於與一目標裝置通信之方法及可讀儲存媒體
US20140122421A1 (en) Information processing apparatus, information processing method and computer-readable storage medium
CN110704228B (zh) 一种固态硬盘异常处理方法及系统
TW201828071A (zh) 開關裝置及偵測積體電路匯流排之方法
US9148479B1 (en) Systems and methods for efficiently determining the health of nodes within computer clusters
CN103345434B (zh) 一种显示装置的数据备份方法和装置
US9690569B1 (en) Method of updating firmware of a server rack system, and a server rack system
US8478923B2 (en) Interrupt suppression by processing just first interrupt of a same type
US8589722B2 (en) Methods and structure for storing errors for error recovery in a hardware controller
KR101300806B1 (ko) 다중 프로세스 시스템에서 오동작 처리 장치 및 방법
JP2010026830A (ja) システムに負荷をかけないデータバックアップ方法
KR20160100626A (ko) 실제 자원들을 이용하여 악성 코드를 실행하는 컴퓨팅 장치, 악성 코드의 정보를 관리하는 서버 시스템, 및 그것들을 포함하는 전자 시스템
US9495230B2 (en) Testing method
CN107451035B (zh) 用于计算机装置的错误状态数据提供方法
JP6430321B2 (ja) 制御サーバ
CN114116132A (zh) 一种虚拟机的冻结方法及装置
CN118535364A (zh) 驱动层i/o超时处理方法、装置和设备
JP5954420B2 (ja) 接続装置、及び監視方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161121

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161121

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20161121

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20161205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170123

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170411

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170515

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170614

R150 Certificate of patent or registration of utility model

Ref document number: 6162336

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250