JP2004334863A - 順番のある(in−order)キューをドレインする(drain)システムおよび方法 - Google Patents

順番のある(in−order)キューをドレインする(drain)システムおよび方法 Download PDF

Info

Publication number
JP2004334863A
JP2004334863A JP2004126472A JP2004126472A JP2004334863A JP 2004334863 A JP2004334863 A JP 2004334863A JP 2004126472 A JP2004126472 A JP 2004126472A JP 2004126472 A JP2004126472 A JP 2004126472A JP 2004334863 A JP2004334863 A JP 2004334863A
Authority
JP
Japan
Prior art keywords
transaction
queue
phase
transaction phase
pointer
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
JP2004126472A
Other languages
English (en)
Other versions
JP3891994B2 (ja
Inventor
Chris Greer
クリス・グレア
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2004334863A publication Critical patent/JP2004334863A/ja
Application granted granted Critical
Publication of JP3891994B2 publication Critical patent/JP3891994B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • 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]
    • G06F11/0724Error 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] in a multiprocessor or a multi-core unit
    • 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/0775Content or structure details of the error report, e.g. specific table structure, specific error fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0072Error control for data other than payload data, e.g. control data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0094Bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】 マルチプロセッサシステムにおいて発生しうる重大なエラーを防止する。
【解決手段】 本発明は、順番のあるキューに格納されたトランザクションのトランザクションフェーズに関して第1のキューループシーケンスを実施し、トランザクションフェーズが終了しなかった順番のあるキューに格納されたトランザクションに対するトランザクションフェーズの終了をスプーフすることと、第1のキューループシーケンスの終了後に、順番のあるキューに格納されたトランザクションの別のトランザクションフェーズに関して第2のキューループシーケンスを実施し、別のトランザクションフェーズが終了しなかった順番のあるキューに格納されたトランザクションに対する別のトランザクションフェーズの終了をスプーフすることとを含む。
【選択図】図3

Description

本発明は、マルチプロセッサシステムにおいて、順番のあるキューをドレインするシステムおよび方法に関する。
[関連出願の相互参照]
本出願は、「System and Method for Transaction Time-Out」と題する同時出願され同時係属中の本願と同一の譲受人に譲渡された米国特許出願第10/435,127号と、「Systems and Methods Controlling Transaction Draining for Error Recovery」と題する同第10/434,920号と、「System and Method For Error Capture and Logging in Computer Systems」と題する同第10/434,925号と、に関連する。
今日、コンピュータシステムが、並列および/または分散処理を提供するように構成された複数のプロセッサをしばしば含み、極めて複雑であることは珍しいことではない。
たとえば、マルチプロセッサコンピュータシステムは、しばしば、複数の主処理ユニット(MPU)を含むのみではなく、メモリプロセッサ等の複数のサポートプロセッサまたはエージェントを含む場合もある。
これらのあらゆるプロセッサを、メモリ、入出力デバイス、ディスクデバイス等の他のシステム資源とともに、あらゆるバスによって可能になる通信によりコンピュータシステムを通して分散させることができる。
たとえば、コンピュータシステムは、主処理ユニット(MPU)、エージェントおよび/またはメモリ等の複数のシステム資源を有する、本明細書ではセルまたはセルカードと呼ぶ複数のサブモジュールと、それらの上に配置されたバスと、を備える場合がある。
サブモジュールのシステム資源は、他のシステム資源に対し要求を行いかつ/または他のシステム資源からの要求に対処することができる。
かかるシステム資源を、システムの同じサブモジュールおよび/または他のサブモジュールと連結することができる。
複数のシステム資源からの要求に順序正しくかつ予測可能な方法で対処するために、システムは、あらゆるプロトコルおよびトランザクションキューを実施することができる。
たとえば、プロトコルは、例えば要求、スヌープおよび応答等の複数のトランザクションが実行されるべき順序および、恐らくは、かかるトランザクションの各々が終了するために提供されるべき複数のバス周期、を確定することができる。
同様に、トランザクションキューは、特定のシステム資源に関して「処理中の(in-process)」特定のトランザクションに関する情報を格納することができる。
たとえば、特定のトランザクションが関連するシステム資源によって適切な順序で確実に実施されるように、順番のある(in-order)キューを実施することができる。
したがって、順番のあるキューは、要求フェーズ(たとえば、データを要求すること)と、スヌープフェーズ(たとえば、要求されたデータがローカルに入手可能であるか否かを判断するためにローカルキャッシュに問合せること)と、応答フェーズ(たとえば、要求されたデータを含むデータパケットを提供すること)と、を含む場合があるような、それらの順番のあるフェーズを通して複数のトランザクション(たとえば、8つまでの未解決の(outstanding)トランザクション)と、をたどることができる。
上述したシステム資源のうちの任意の1つに関連するような、どんな態様であれ、システムの動作中のエラーがシステムにより検出される場合、エラー信号を生成して、適切なシステム資源に通知することができる。
システム資源単位の動作に分離されておりかつ/または回復可能な動作に関連しているようなエラーは、重大でない可能性がある。
しかしながら、プロセッサバス全体の初期化を必要とし(本明細書では、バス初期化またはBINITエラーと呼ぶ)、したがってシステムバス上のシステム資源の初期化を必要とするようなエラーは実際に、重大である可能性がある。
マルチプロセッサシステムにおけるバス初期化エラーまたは同様の重大なエラーにより、要求および応答を発行しおよび/またはそれらに応答する種々のシステム資源の相互依存性のために、障害が広がる可能性があり、システム全体の障害になる場合さえある。
単一プロセッサシステムは、すべての保留中のトランザクションをパージし新たな命令をフェッチすることにより、バス初期化エラーから回復することができる可能性があるが(たとえば、「ソフトブート(soft booting)」)、マルチプロセッサシステムのバス初期化では、「ハード」リセットが必要なシステム「ロックアップ(lock-up)」がもたらされる可能性があり、またはエラー源を分離するために有用なオペレーティングシステム状態ダンプを実行することが妨げられる可能性がある。
たとえば、バス初期化エラーにより、特定のシステム資源が、システム資源がその上でトランザクションを実行しているバスが初期化された時に、予想されるトランザクション応答を待って「ハングする(hang)」可能性がある。
初期化されたバス上のシステム資源は、それらの関連する順番のあるキューをたどるのをやめると、初期化されたバスにはないシステム資源に対して、待ちの応答を提供するのをやめることになる。
したがって、バス初期化エラーまたは同様のエラーにより、システム全体がデッドロックするカスケード故障がもたらされる可能性がある。
バス初期化エラーがハードリセットを必要とするシステムロックアップをもたらす上述した状況は、高可用性(HA)システムでは望ましくない、ということを理解しなければならない。
さらに、かかる結果は、システム「クラッシュダウン(crash-down)」またはオペレーティングシステム(OS)がエラーの原因を特定するのを容易にするための、ディスクまたは他の媒体に対するすべてのメモリのダンプを行わず、代りにシステム初期化を必要とし、それによりエラー時のシステムの状態を分析することができなくなる。
順番のあるキューをドレインする方法であって、本方法は、順番のあるキューに格納されたトランザクションのトランザクションフェーズに関して第1のキューループシーケンスを実施することであって、第1のキューループシーケンスが、トランザクションフェーズが終了しなかった順番のあるキューに格納されたトランザクションに対するトランザクションフェーズの終了をスプーフ(spoof)する、実施すること、および第1のキューループシーケンスの終了後に、順番のあるキューに格納されたトランザクションの別のトランザクションフェーズに関して第2のキューループシーケンスを実施することであって、第2のキューループシーケンスが、別のトランザクションフェーズが終了しなかった順番のあるキューに格納されたトランザクションに対する別のトランザクションフェーズの終了をスプーフする、実施することとを含む。
順番のあるキューをドレインするシステムであって、本システムは、第1のドレイン状態と第2のドレイン状態とを有する状態機械を備え、この状態機械は、処理中のトランザクションに関連する第1のトランザクションフェーズポインタを、トランザクションに対するトランザクションフェーズの終了をスプーフする第1のドレイン状態を用いて、順番に進めるように動作可能であり、状態機械は、処理中のトランザクションに関連する第2のトランザクションフェーズポインタを、トランザクションに対する別のトランザクションフェーズの終了をスプーフする第2のドレイン状態を用いて、順番に進めるようにさらに動作可能である。
順番のあるキューをドレインするためのコンピュータプログラムロジックが記録されたコンピュータ読取可能媒体を有するコンピュータプログラム製品であって、本コンピュータプログラム製品は、順番のあるキューに格納されたトランザクションのトランザクションフェーズに関して第1のキューループシーケンスを実施するコードであって、第1のキューループシーケンスが、第1のトランザクションフェーズポインタが所定値に達するまで、トランザクションフェーズが終了しなかった順番のあるキューに格納されたトランザクションに対するトランザクションフェーズの終了をスプーフするものである、コードと、順番のあるキューに格納されたトランザクションの別のトランザクションフェーズに関して第2のキューループシーケンスを実施するコードであって、第2のキューループシーケンスが、第2のトランザクションフェーズポインタが所定値に達するまで、別のトランザクションフェーズが終了しなかった順番のあるキューに格納されたトランザクションに対する別のトランザクションフェーズの終了をスプーフするものである、コードと、を含む。
本発明の実施形態は、重大なバス初期化エラー等の特定のシステムエラーを認識し、システムエラーによって直接影響を受けるシステム資源に関連する1つまたは複数のキューを空にするように動作する、システムおよび方法を提供する。
一実施形態によれば、バス初期化エラーを検出し、初期化されるバス上のプロセッサを、初期化の前にバスから離した状態にしている間に、それらのプロセッサに関連する順番のあるキューのドレインを行う。
本発明の実施形態によるキューのドレインは、キューに入れられたトランザクションにしたがって、初期化されるバスに関連しないものを含むあらゆるシステム資源に対し、応答、たとえばヘッダおよび/または任意のデータ要素を含むデータパケットを提供し、それにより、あらゆるシステム資源に対しトランザクションの終了をスプーフする。
本発明の実施形態によるキューのドレインは、順番のあるキューに示されるトランザクションフェーズがシステムの動作プロトコルと一貫性のある順序でキューからドレインされることを確実にする、階層的な方法で行う。
たとえば、本発明の実施形態により、初期のトランザクションフェーズに関連するすべてのトランザクションを、後のトランザクションフェーズに関連するいかなるトランザクションよりも前にキューからドレインする。
一実施形態による動作時、キューに入れられたスヌープトランザクションフェーズからのパケット(packets off)の生成に続いてキューに入れられた応答トランザクションフェーズからパケットを生成するように、順番のあるキューをドレインする。
本発明の実施形態は、バス上の種々のトランザクションをたどるために通常動作時に用いられる、順番のあるキューのトランザクションポインタについて、キューに入れられたトランザクションに歩を進めシステムプロトコルに準拠するパケットを生成するための、状態機械を実施する。
状態機械は、たとえば、まずまだスヌープフェーズを通過していないスヌープフェーズの各トランザクションに歩を進め、適切なシステム資源にパケットを発行してもよい。
その後、状態機械は、応答フェーズを通過していない各トランザクションに歩を進め、適切なパケットを発行してもよい。
本発明の実施形態によるかかる状態機械の動作により、システム内部のカウンタが同期するように保持する。
さらに、かかる状態機械の動作を利用して、キューが詰る(wedge)ことがないようにしてもよく、それによりシステム資源がタイムアウトするかまたは他の方法で処理を継続しなくなることが防止される。
本発明の実施形態によってキューをドレインすることは、システムの正常な(graceful)終了および/または回復を提供することに関し、特に重大なシステムエラーの原因の診断を容易にするために、特に有用である、ということを理解しなければならない。
たとえば、本発明の実施形態により、オペレーティングシステム(OS)が、バス初期化エラーの原因の分析に対して有用な、メモリ状態をディスク等にダンプすることが容易になる。
図1Aを参照すると、本発明の実施形態が実施されるコンピュータシステムの一部が、サブモジュールまたはセルコントローラ100として示されている。
サブモジュール100が一部を形成するホストシステムは、複数のIntel ITANIUMプロセッサを実施するHewlett Packard rxまたはsxシリーズサーバシステム等のマルチプロセッサシステムを備えてもよい。
サブモジュール100の図示する実施形態は、主処理ユニット(MPU)、メモリプロセッサ、メモリおよび/または同様のもの(すべて図示せず)等のあらゆるシステム資源間の通信を可能にするために利用してもよいような、ここではバス101および102として示す複数のバスを含む。
サブモジュール100はさらに、関連する1つまたは複数のプロセッサ(たとえばメモリプロセッサ)と関連するバス(たとえば、バス101および102のうちの対応するもの)との間のデータ通信を調停してもよいような、複数のプロセッサインタフェース、ここではプロセッサインタフェース110および120を含む。
かかる通信を、サブモジュール100上に配置されるかホストシステムの別の場所(たとえば、サブモジュール100に対応する1つまたは複数の他のサブモジュール)に配置されるかに係らず、上述した関連するプロセッサと、ホストシステムのMPU、メモリプロセッサ、メモリ等の他のあらゆるシステム資源と、の間の通信を可能にするために利用してもよい。
図示する実施形態のプロセッサインタフェース110および120は、プロセッサ入力ブロック(PIN)、ここでは各々プロセッサインタフェースブロック113および123と、プロセッサ出力ブロック(POUT)、ここでは各々プロセッサ出力ブロック114および124と、プロセッサインタフェースデータパス(PIDP)、ここではプロセッサインタフェースデータパス115および125と、を備える。
プロセッサインタフェース110および120の図示する実施形態は、さらに、各々プロセッサインタフェース順番のあるキュー(PIQ)112および122を備え、あらゆるトランザクションたどることにより、システムプロトコルを実施しおよび/または他の方法で上述した通信の制御されたおよび予測可能な調停を提供する。
図示する実施形態のプロセッサインタフェース順番のあるキュー112および122は、各々順番のあるキュー(IOQ)111および121を含む。
図示する実施形態の順番のあるキュー111および121は、オーバーライディングプロトコルによる順序でトランザクションの終了を確実にするためにトランザクションフェーズをたどる。
図1B−1および図1B−2は、図1Aのサブモジュール100のプロセッサインタフェースの実施形態に関する詳細をさらに示す。
図1B−1および図1B−2の実施形態において分かるように、プロセッサインタフェース順番のあるキュー112は、順番のあるキュー111に入れられるトランザクションのフェーズ(要求フェーズ、スヌープフェーズおよび応答フェーズ)を制御するように動作可能な制御信号要求ポインタ(req_ptr)、スヌープポインタ(snp_ptr)および応答ポインタ(rsp_ptr)を提供する順番のあるキュー制御モジュール131を含む。
図2に注目すると、一実施形態による、順番のあるキュー111のエントリの一部、たとえば、8エントリ順番のあるキューのスライスが示されている。
特に、図示する実施形態の順番のあるキュー111は、関連するプロセッサにより終了のあらゆるフェーズにおけるトランザクションに応答してもよいような、エントリ201および202を含む。
通常動作時、順番のあるキュー111は、スヌープフェーズおよび応答フェーズからシステムパケットを生成するためにプロセッサ入力ブロック113およびプロセッサ出力ブロック114とインタフェースし、これにより同時にシステムに複数のパケットを生成する能力を有する。
図2の順番のあるキュー111は、上述した制御信号の制御下で、トランザクションを適切なフェーズで伝播させ最終的に順番のあるキュー111から出すように動作可能なマルチプレクサ211および212を含む。
たとえば、マルチプレクサ211を、初期のトランザクションフェーズ、ここでは「スヌープフェーズ」に関連付けてもよく、マルチプレクサ212を、後のトランザクションフェーズ、ここでは「応答フェーズ」に関連付けてもよい。
マルチプレクサ211および212を、キューに入れられたトランザクションに付随するパケットを生成するように独立して、好ましくは同時に動作させてもよいが、特定のトランザクションは、その応答フェーズにおける処理の前にスヌープフェーズを終了しなければならず、これにより順番のあるキュープロトコルを確定する。
通常動作時、上述したポインタは、順番のあるキュー111のトランザクションがある種々のフェーズをたどる。
これらのポインタは、適切なパケットが生成されトランザクションのフェーズに関連付けられるにしたがってキュー内の至るところを移動する(move up and down)。
しかしながら、バス初期化(BINIT)エラー等の重大なエラーが検出された場合、システム資源のうちの1つまたは複数がリセット状態になる可能性がある。
たとえば、バス101に関してバス初期化エラーが発行されると、プロセッサインタフェース110に関連するプロセッサがリセット状態になる可能性があり、それにより、いかなる現データもダンプし動作をリスタートするためにコードをフェッチする。
したがって、順番のあるキュー111に入れられたいかなるトランザクションも、関連するプロセッサの動作に関して無意味になる。
従来のロジックにしたがって、順番のあるキュー111もまた初期化される。
しかしながら、本発明の実施形態は、重大なエラー後に順番のあるキューをドレインし、それによりパケットをスプーフし、したがって他のシステム資源がロックアップするかまたは他の方法で重大なエラー後の処理を継続できなくなることを防止するように動作する。
図3に注目すると、本発明の実施形態によって順番のあるキューをドレインする、順番のあるキュー制御モジュール131内で実施されてもよいような状態機械300が示されている。
当技術分野において既知であるように、概して、状態機械は、所与の時点で何かのステータスを格納し、入力に対して操作することにより、ステータスを変更するようにおよび/または任意の所与の変更に対してアクションまたは出力を発生させることができる任意のデバイスである。
通常システム動作中、状態機械300はアイドルドレイン状態301で保持される。
しかしながら、バス初期化エラーが検出されると、状態機械300は、アイドルドレイン状態301から、本発明の教示にしたがってキューをドレインするように動作可能な第1の状態(ここでは、スヌープドレイン状態310)に移る。
本発明の実施形態による動作時、バス初期化エラーが検出されたバスのプロセッサおよび/または他のシステム資源を、順番のあるキューのドレイン中に初期化されないようにする。
たとえば、バス初期化エラーが検出されたバス上のシステム資源を、アイドルドレイン状態301を除く状態機械300のすべての状態の間に新たな要求を行わないようにしてもよい。
特定の動作の終了中に特定のバスからシステム資源を切り離すことに関するさらなる詳細は、「Systems and Methods Controlling Transaction Draining for Error Recovery」と題する先に参照した特許出願に記載されている。
スヌープドレイン状態310は、システムトランザクションプロトコルの初期トランザクションフェーズ、この例では「スヌープフェーズ」に関連する。
したがって、状態機械300は、初期のトランザクションフェーズ「スヌープ」で保留中の次の待機トランザクションが選択されるようにし、恐らくは任意のデータ要素を含むが適切にフォーマットされた1つまたは複数のパケットが、スヌープドレイン状態310において生成されるようにする。
生成されたスヌープフェーズパケットは、通常動作と同様にシステム内を伝播し、それによりそのトランザクションに関してスヌープフェーズの終了をスプーフする。
本発明の実施形態は、システムプロトコルにしたがって順番のあるキューをドレインするように動作する。
たとえば、システムプロトコルは、キュードレインから切り離されたダウンストリームロジック、たとえばプロセッサ入力ブロック113が通常通りに動作可能になるなどのために、スヌープパケットがせいぜい1周期おきの頻度で生成される、ということを確定してもよい。
したがって、図示する実施形態の状態機械300は、システムプロトコルにしたがってキュー内ドレインを容易にするように、スヌープドレイン状態310後に入るスヌープドレインストール状態311を含む。
図示する実施形態によれば、状態機械300は、初期トランザクションフェーズが十分にドレインされるまで、スヌープドレイン状態310とスヌープドレインストール状態311との間を往復する。
たとえば、スヌープドレイン状態310とスヌープドレインストール状態311とを交互に行ってもよく、それにより、スヌープポインタが要求ポインタに等しくなるまで、1周期おきにスヌープフェーズパケットを生成する。
スヌープトランザクションフェーズポインタが要求ポインタ(初期トランザクションフェーズポインタ)に等しくなると、順番のあるキューのすべてのトランザクションがスプーフされたスヌープフェーズを通して取出されたことになる。
したがって、スヌープポインタが要求ポインタに等しくなると、状態機械300の図示する実施形態は、システムトランザクションプロトコルの後のトランザクションフェーズ、この例では「応答フェーズ」に関連するトランザクションフェーズのキューのドレインを提供するように動作可能な状態(ここでは、応答ドレイン状態320)に移る。
応答ドレイン状態320は、スヌープドレイン状態310のものに続くシステムトランザクションプロトコルのトランザクションフェーズに関連する。
したがって、本発明の実施形態により順番のあるキューをドレインする動作は、特定のトランザクションフェーズを、通常動作中に処理される可能性のある順序でスプーフするように動作しなくてもよいが、本発明の実施形態は、各トランザクションに関連するフェーズがそれらの適切な順序でスプーフされることを確実にする。
図示する実施形態では、すべてのスヌープフェーズトランザクションがいかなる応答フェーズトランザクションをスプーフする前にもスプーフされるため、各トランザクションに関連するフェーズが所望の順序でスプーフされることを理解しなければならない。
図示する実施形態による動作時、状態機械300は、「応答」フェーズを受取る次の待機トランザクションが選択されるようにし、恐らくは任意のデータ要素を含むが適切にフォーマットされた1つまたは複数のパケットが、応答ドレイン状態320において生成されるようにする。
上述したスヌープフェーズパケットと同様に、生成された応答フェーズパケットは、通常動作の場合と同様にシステム内を伝播し、それによってそのトランザクションに関する応答フェーズの終了をスプーフする。
上述したように、本発明の実施形態は、システムプロトコルにしたがって順番のあるキューをドレインするように動作する。
したがって、図示する実施形態の状態機械300は、システムプロトコルにしたがって順番のあるキューのドレインを容易にするように、応答ドレイン状態320後に入る応答ドレインストール状態321〜323を含む。
図示する実施形態によれば、状態機械300は、後のトランザクションフェーズが十分にドレインされるまで、応答ドレイン状態320と、応答ドレインストール状態321と、応答ドレインストール状態322と、応答ドレインストール状態323と、に順次入る。
たとえば、図示する実施形態では、応答ポインタが要求ポインタに等しくなるまで、4クロック周期おきに応答パケットがスプーフされるように、応答ドレインストール状態が提供される。
応答トランザクションフェーズポインタが要求ポインタ(初期トランザクションフェーズポインタ)に等しくなると、順番のあるキューのすべてのトランザクションがスプーフされた応答フェーズを通して取出されたことになる、ということを理解しなければならない。
応答ポインタが要求ポインタに等しくなると、本発明の状態機械300は、システムトランザクションプロトコルのさらに後のトランザクションフェーズに関連するトランザクションフェーズのキューのドレインを提供するように動作可能な状態等、後続する所望の状態に移ってもよい。
しかしながら、図示する実施形態では、ドレインされるトランザクションフェーズは2つしか存在せず、したがって図示する実施形態の状態機械300は、初期エラーが検出されたバス上のプロセッサがリセットから解放され初期化が可能になるため等、アイドルドレイン状態301に戻る。
図4に注目すると、状態機械300にしたがう動作を示すタイミング図が示されている。
401において、システムにバス初期化エラーが存在する。
したがって、401の直後に、402においてプロセッサインタフェースキューグループのバス初期化状態信号グループが、アイドル状態からドレイン状態に移る。
411〜415は、第1のトランザクションフェーズ、たとえば上述したスヌープフェーズに関するドレイン状態のシーケンスを表す。
431および432において分かるように、411〜415を経過した後、第2のトランザクションフェーズポインタ、ここではスヌープポインタは、第1のトランザクションフェーズポインタ、ここでは要求ポインタに等しい。
したがって、403において、バス初期化状態信号グループは、第2のドレイン状態に移る。
421〜426は、第2のトランザクションフェーズ、たとえば上述した応答フェーズに関するドレイン状態のシーケンスを表す。
431および433において分かるように、421〜426を経過した後、第3のトランザクションフェーズポインタ、ここでは応答ポインタは、第1のトランザクションフェーズポインタ、ここでは要求ポインタに等しい。
図示する実施形態に示すような上述したドレイン状態およびドレインストール状態の実施態様は、本発明によって採用してもよい状態を例示するものである、ということを理解しなければならない。
特定の状態を採用すべきか否かと採用する特定の状態の数とは、システムおよび/またはそれと使用するプロトコルの属性によって変化してもよい。
たとえば、図示する実施形態は、2つのトランザクションフェーズに関連する2つのドレイン状態を採用し、それらに対し、トランザクションフェーズを終了することができないことにより、キューの詰りおよび/またはシステム資源ロックアップがもたらされる可能性がある。
本発明の実施形態は、必要に応じて、いかなる数のかかるドレイン状態を実施してもよい。
同様に、図示する実施形態は、特定のドレイン状態に関して3つの応答ドレインストール状態を採用することにより、バス上の、トランザクションが応答フェーズにありデータがプロセッサ無しに、たとえばキャッシュラインで駆動している場合に適応する。
応答フェーズパケットスプーフに関して実施される4つの周期により、かかるデータが、重大なエラーが検出された場合のトランザクションの実際のステータスに係りなくシステムプロトコルにしたがって、図示する実施形態のプロセッサ入力ブロック113および/またはプロセッサインタフェースデータパスブロック115等のシステムを適切に伝播することが確実になる。
本発明の実施形態は、必要に応じて、いかなる数のかかるドレインストール状態(0を含む)を特定のドレイン状態に関していかなる組合せで実施してもよい。
本発明の実施形態によるキューのドレインは、種々のパケットに適応するように適合される、ということを理解しなければならない。
たとえば通常システム動作は、特定のシステム資源に向けられたパケットのみを採用するのではなく、マルチキャストパケット等のマルチポイントパケットを採用してもよい。
システムのセルのうちの1つのプロセッサバスは、たとえば、保護領域にあるすべてのメモリプロセッサ(すなわち、特定のオペレーティングシステムの制御下で動作可能なすべてのセル)等複数のシステム資源に送出されるキャッシュ同期パケットを発行してもよい。
保護領域の各プロセッサバスは、キャッシュ同期を行うためにキャッシュ同期パケットを調べる必要がある。
したがって、通常動作時、プロセッサインタフェースは、関連するプロセッサからかかるマルチキャストパケット要求を受取り、それを、送出する各要求パケットに対する肯定応答を期待して、その保護領域にあるすべてのセルに送出する。
しかしながら、上述したように、セルは、複数のプロセッサおよび/または複数のバスを含む可能性がある。
したがって、単一セル内の複数のシステム資源が、最終的にマルチキャストパケットキャッシュ同期に影響するが、要求しているシステム資源は、各セルから単一の肯定応答のみを期待してもよい。
図示する実施形態のプロセッサ連絡(processor junction(PJ))ブロック130は、通常動作においてかかるマルチキャスト肯定応答の調整を提供する。
特に、プロセッサ連絡ブロック130は、特定のパケットがマルチキャストパケットであることを認識し、各プロセッサ入力ブロック113および123と協議することにより最新のもののみがトランザクションを終了して期待された肯定応答を実際に送出することができるようにする。
図示する実施形態によれば、プロセッサ連絡ブロック130には、これらの状況を扱うためにカウンタがある。
本発明の実施形態による順番のあるキューのドレインの動作は、キューに入れられたトランザクションフェーズの各々を順序正しくスプーフして、上述したプロセッサ連絡ブロック130カウンタを同期させた状態にし、それにより、あらゆるタイプの保留中のトランザクションに関してもシステムを安定した状態に維持する。
本発明の図示する実施形態のドレイン状態は、システムプロトコルに準拠するパケットを生成するように動作するが、バス初期化エラーが検出されたバス上のシステム資源がリセット状態に保持されるため、生成されたパケットは、無効なデータ要素を含む可能性が高い、ということを理解しなければならない。
たとえば、特定のデータパケットは、すべて0等のヌルデータを含んでもよい。
したがって、本発明の実施形態による動作により、重大なエラーを有していたバスに関連するシステム資源によってトランザクションが終了されるのを待って、キューが詰るかまたはシステム資源がロックアップする状況は回避されるが、スプーフされたトランザクションフェーズの結果として、システムを通してシステム資源に1つまたは複数のエラーがもたらされる可能性がある。
しかしながら、これらの動作エラーは、それほど大きくなく、たとえば重大でないと予期され、したがってシステム処理は順序正しいクラッシュ、コアダンプおよび/またはソフト初期化を持続してもよい。
したがって、本発明の実施形態は、好ましくは、「System and Method for Error Capture and Logging in Computer Systems」と題する先に参照した特許出願に示されているようなエラー収集および/またはロギングを実施する。
本発明によるキューのドレインの動作を、追加の重大障害回復技法と組合せて実施してもよい、ということを理解しなければならない。
たとえば、本発明の実施形態による順番のあるキューのドレインを、「Systems and Methods Controlling Transaction Draining for Error Recovery」と題する先に参照した特許出願に示すような順番通りでない(out of order)バッファドレインも含むシステム障害回復プロセスで実施してもよい。
一実施形態によれば、順番のあるキューのドレインを実施し終了した後、アウトオブオーダーバッファドレインを実施して終了し、その後通常のシステム動作に戻ってもよい。
したがって、本発明の実施形態による順番のあるキュードレインは、関連する動作を調整するために、順番のあるキュードレイン中にプロセッサ出力ブロック114等のシステム資源または他の機能ブロックに対し、「piqドレイン」信号等の信号をアサートしてもよい。
実施形態を、保護領域のシステム資源に関して上述したが、本発明の実施形態の利点は、システム資源が保護領域間で排他的に区分されるマルチプロセッサ環境に限定されない、ということを理解しなければならない。
たとえば、本発明の実施形態による順番のあるキュードレインは、システム資源が保護領域の区分に亙って利用される世界共有メモリ(globally shared memory(GSM))を実施するシステムに関して特に有用で有り得る。
本発明の実施形態による順番のあるキュードレインを実施することにより、1つの保護領域のクラッシュが別の保護領域を、それらの保護領域がメモリを共有する場合であっても、ダウンさせることがない。
1つの保護領域が正常にクラッシュし残りの保護領域が処理を継続することができるようにして、キューの詰りおよび/またはシステム資源ロックアップが回避されるためである。
本発明の要素をソフトウェアで実施する場合、それらは本質的に、本明細書で説明したようなタスクを実行するコードセグメントである。
プログラムまたはコードセグメントをコンピュータ読取可能媒体に格納し、または搬送波に具体化されるコンピュータデータ信号かまたは搬送波によって変調される信号により、伝送媒体を介して送信することができる。
コンピュータ読取可能媒体は、情報を格納しまたは転送することができるいかなる媒体を含んでもよい。
コンピュータ読取可能媒体の例には、電子回路、半導体メモリデバイス、ROM、フラッシュメモリ、消去可能ROM(EROM)、フロッピー(登録商標)ディスケット、コンパクトディスクCD−ROM、光ディスク、ハードディスク、光ファイバ媒体、無線周波数(RF)リンク等がある。
コンピュータデータ信号は、電子ネットワークチャネル、光ファイバ、空気、電磁気、RFリンク等の伝送媒体を介して伝播することができるいかなる信号を含んでもよい。
コードセグメントを、インターネット、イントラネット等のコンピュータネットワークを介してダウンロードしてもよい。
本発明の実施形態が実施されるマルチプロセッサシステムの一部を示す図である。 本発明の実施形態が実施されるマルチプロセッサシステムの一部を示す図である。 本発明の実施形態が実施されるマルチプロセッサシステムの一部を示す図である。 本発明の実施形態によって動作可能な順番のあるキューに関して詳細を示す図である。 本発明の実施形態により順番のあるキュードレインを実施する状態機械を示す図である。 図3の状態機械の動作に対応するタイミング図である。
符号の説明
100・・・サブモジュール、
101,102・・・バス、
110,120・・・プロセッサインタフェース、
113,123・・・プロセッサインタフェースブロック、
114,124・・・プロセッサ出力ブロック、
115,125・・・プロセッサインタフェースデータパス、
112.122・・・キュー(PIQ)、
111,121・・・キュー(IOQ)、
131・・・キュー制御モジュール、
201,202・・・エントリ、
211,212・・・マルチプレクサ、
300・・・状態機械、
301・・・アイドルドレイン状態、
310・・・スヌープドレイン状態、
311・・・スヌープドレインストール状態、
320・・・応答ドレイン状態、
321〜321・・・応答ドレインストール状態、

Claims (10)

  1. 順番のあるキュー(111、121)をドレインする方法であって、
    前記順番のあるキューに格納されたトランザクションのトランザクションフェーズに関して第1のキューループシーケンス(310、311)を実施することであって、該第1のキューループシーケンスが、前記トランザクションフェーズが終了しなかった前記順番のあるキューに格納された前記トランザクションに対する前記トランザクションフェーズの終了をスプーフする実施することと、
    前記第1のキューループシーケンスの終了後に、前記順番のあるキューに格納された前記トランザクションの別のトランザクションフェーズに関して第2のキューループシーケンス(320、321、322、323)を実施することであって、該第2のキューループシーケンスが、前記別のトランザクションフェーズが終了しなかった前記順番のあるキューに格納された前記トランザクションに対する前記別のトランザクションフェーズの終了をスプーフする実施することと、
    とを含む順番のあるキューをドレインする(drain)方法。
  2. 前記最初に示したトランザクションフェーズは、
    スヌープフェーズ
    を含み、
    前記別のトランザクションフェーズは、
    応答フェーズ
    を含む
    請求項1に記載の順番のあるキューをドレインする方法。
  3. 前記第1のキューループシーケンスと前記第2のキューループシーケンスとのうちの少なくとも1つは、
    ストール状態(311、321、322、323)を実施することであって、それにより前記スプーフを特定のプロトコルに従わせるようにする実施すること
    を含む
    請求項1に記載の順番のあるキューをドレインする方法。
  4. 前記ストール状態を実施することは、
    複数のストール状態(321、322、323)を実施すること
    を含む
    請求項3に記載の順番のあるキューをドレインする方法。
  5. 前記第1のキューループの動作は、前記最初に示したトランザクションフェーズに関連するトランザクションフェーズポインタ(432)が所定値に達するまで続き、
    前記第2のキューループの動作は、前記別のトランザクションフェーズに関連するトランザクションフェーズポインタ(433)が前記所定値に達するまで続く
    請求項1に記載の順番のあるキューをドレインする方法。
  6. 前記所定値は、前記最初に示したトランザクションフェーズおよび前記別のトランザクションフェーズとは異なるトランザクションフェーズに関連するトランザクションフェーズポインタ(431)に対応する
    請求項5に記載の順番のあるキューをドレインする方法。
  7. 重大なエラーを検出すること
    をさらに含み、
    前記第1のキューループと前記第2のキューループシーケンスとを実施することは、前記重大なエラーを検出することに応答する
    請求項1に記載の順番のあるキューをドレインする方法。
  8. 前記第1のキューループシーケンスと、前記第2のキューループシーケンスとを実施する間に、前記重大なエラーに関連するバスから特定のシステム資源を切り離すこと
    をさらに含む請求項7に記載の順番のあるキューをドレインする方法。
  9. 順番のあるキュー(111、121)をドレインするシステムであって、
    第1のドレイン状態(310)と、
    第2のドレイン状態(320)と
    を有する状態機械(300)
    を具備し、
    該状態機械は、処理中のトランザクションに関連する第1のトランザクションフェーズポインタを、前記トランザクションに対するトランザクションフェーズの終了をスプーフする前記第1のドレイン状態を用いて、順番に進めるように動作可能であり、
    前記状態機械は、前記処理中のトランザクションに関連する第2のトランザクションフェーズポインタを、前記トランザクションに対する別のトランザクションフェーズの終了をスプーフする前記第2のドレイン状態を用いて、順番に進めるようにさらに動作可能である
    順番のあるキューをドレインするシステム。
  10. 前記状態機械により前記第1のトランザクションフェーズポインタを順番に進めることは、該第1のトランザクションフェーズポインタが第3のトランザクションフェーズポインタに等しくなるまで続き、
    前記状態機械により前記第2のトランザクションフェーズポインタを順番に進めることは、該第2のトランザクションフェーズポインタが前記第3のトランザクションフェーズポインタに等しくなるまで続く
    請求項9に記載の順番のあるキューをドレインするシステム。
JP2004126472A 2003-05-09 2004-04-22 順番のある(in−order)キューをドレインする(drain)システムおよび方法 Expired - Fee Related JP3891994B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/434,685 US7120828B2 (en) 2003-05-09 2003-05-09 System and method for in-order queue draining

Publications (2)

Publication Number Publication Date
JP2004334863A true JP2004334863A (ja) 2004-11-25
JP3891994B2 JP3891994B2 (ja) 2007-03-14

Family

ID=33449680

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004126472A Expired - Fee Related JP3891994B2 (ja) 2003-05-09 2004-04-22 順番のある(in−order)キューをドレインする(drain)システムおよび方法

Country Status (2)

Country Link
US (1) US7120828B2 (ja)
JP (1) JP3891994B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7424653B2 (en) * 2003-05-09 2008-09-09 Hewlett-Packard Development Company, L.P. System and method for error capture and logging in computer systems
JP2007094706A (ja) * 2005-09-28 2007-04-12 Konica Minolta Business Technologies Inc データ処理装置、システムおよびケーブル接続異常対応方法
US10990326B2 (en) 2017-05-31 2021-04-27 Fmad Engineering Kabushiki Gaisha High-speed replay of captured data packets
US10423358B1 (en) 2017-05-31 2019-09-24 FMAD Engineering GK High-speed data packet capture and storage with playback capabilities
US11128740B2 (en) * 2017-05-31 2021-09-21 Fmad Engineering Kabushiki Gaisha High-speed data packet generator
US11392317B2 (en) 2017-05-31 2022-07-19 Fmad Engineering Kabushiki Gaisha High speed data packet flow processing
US11036438B2 (en) 2017-05-31 2021-06-15 Fmad Engineering Kabushiki Gaisha Efficient storage architecture for high speed packet capture
US10860409B2 (en) * 2018-08-01 2020-12-08 Cisco Technology, Inc. Tracelog isolation of failed sessions at scale

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5291600A (en) * 1991-10-23 1994-03-01 At&T Bell Laboratories Recovery of in-core disk data
GB2281986B (en) * 1993-09-15 1997-08-06 Advanced Risc Mach Ltd Data processing reset
US5701433A (en) * 1994-10-14 1997-12-23 Compaq Computer Corporation Computer system having a memory controller which performs readahead operations which can be aborted prior to completion
US5799305A (en) * 1995-11-02 1998-08-25 Informix Software, Inc. Method of commitment in a distributed database transaction
US6012148A (en) * 1997-01-29 2000-01-04 Unisys Corporation Programmable error detect/mask utilizing bus history stack
US5987555A (en) * 1997-12-22 1999-11-16 Compaq Computer Corporation Dynamic delayed transaction discard counter in a bus bridge of a computer system
US6338151B1 (en) * 1998-08-21 2002-01-08 International Business Machines Corporation Input/output recovery which is based an error rate and a current state of the computer environment
US6671704B1 (en) * 1999-03-11 2003-12-30 Hewlett-Packard Development Company, L.P. Method and apparatus for handling failures of resource managers in a clustered environment
US6708269B1 (en) * 1999-12-30 2004-03-16 Intel Corporation Method and apparatus for multi-mode fencing in a microprocessor system
US6961865B1 (en) * 2001-05-24 2005-11-01 Oracle International Corporation Techniques for resuming a transaction after an error

Also Published As

Publication number Publication date
US20040236982A1 (en) 2004-11-25
US7120828B2 (en) 2006-10-10
JP3891994B2 (ja) 2007-03-14

Similar Documents

Publication Publication Date Title
US8788879B2 (en) Non-volatile memory for checkpoint storage
US6536000B1 (en) Communication error reporting mechanism in a multiprocessing computer system
US9465647B2 (en) Providing state storage in a processor for system management mode selectively enabled by register bit instead of external SMRAM
US5191649A (en) Multiprocessor computer system with data bus and ordered and out-of-order split data transactions
US5282272A (en) Interrupt distribution scheme for a computer bus
US6826123B1 (en) Global recovery for time of day synchronization
US8359367B2 (en) Network support for system initiated checkpoints
US20050081080A1 (en) Error recovery for data processing systems transferring message packets through communications adapters
US20050080933A1 (en) Master-slave adapter
US5271020A (en) Bus stretching protocol for handling invalid data
JPH0625985B2 (ja) 多重プロセッサコンピュータシステムにおけるプロセッサによるシステムリソースに対する適切なアクセスを保証するための方法及び装置
JPH09121230A (ja) コンピュータ・システムにおけるパケット交換および回線交換のハイブリッド・フロー制御の方法および装置
JPH02255932A (ja) マルチプロセツサ・システム
US7631226B2 (en) Computer system, bus controller, and bus fault handling method used in the same computer system and bus controller
US6175931B1 (en) Global hard error distribution using the SCI interconnect
US20050080920A1 (en) Interpartition control facility for processing commands that effectuate direct memory to memory information transfer
JP6129976B2 (ja) 高効率アトミック演算を使用した方法および装置
US8341360B2 (en) Method and apparatus for memory write performance optimization in architectures with out-of-order read/request-for-ownership response
US7219268B2 (en) System and method for determining transaction time-out
US20050080945A1 (en) Transferring message packets from data continued in disparate areas of source memory via preloading
JP3891994B2 (ja) 順番のある(in−order)キューをドレインする(drain)システムおよび方法
US20050078708A1 (en) Formatting packet headers in a communications adapter
US20030093657A1 (en) Method and apparatus for livelock prevention in a multiprocessor system
US7373555B2 (en) Systems and methods controlling transaction draining for error recovery
JPH11272637A (ja) マルチプロセッサ・システムおよび方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060404

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060704

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: 20061117

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061205

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101215

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101215

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111215

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111215

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121215

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131215

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees