JP2004334863A - 順番のある(in−order)キューをドレインする(drain)システムおよび方法 - Google Patents
順番のある(in−order)キューをドレインする(drain)システムおよび方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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]
- G06F11/0724—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] in a multiprocessor or a multi-core unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0775—Content or structure details of the error report, e.g. specific table structure, specific error fields
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0072—Error control for data other than payload data, e.g. control data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L2001/0092—Error control systems characterised by the topology of the transmission link
- H04L2001/0094—Bus
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)トランザクション)と、をたどることができる。
システム資源単位の動作に分離されておりかつ/または回復可能な動作に関連しているようなエラーは、重大でない可能性がある。
しかしながら、プロセッサバス全体の初期化を必要とし(本明細書では、バス初期化またはBINITエラーと呼ぶ)、したがってシステムバス上のシステム資源の初期化を必要とするようなエラーは実際に、重大である可能性がある。
単一プロセッサシステムは、すべての保留中のトランザクションをパージし新たな命令をフェッチすることにより、バス初期化エラーから回復することができる可能性があるが(たとえば、「ソフトブート(soft booting)」)、マルチプロセッサシステムのバス初期化では、「ハード」リセットが必要なシステム「ロックアップ(lock-up)」がもたらされる可能性があり、またはエラー源を分離するために有用なオペレーティングシステム状態ダンプを実行することが妨げられる可能性がある。
たとえば、バス初期化エラーにより、特定のシステム資源が、システム資源がその上でトランザクションを実行しているバスが初期化された時に、予想されるトランザクション応答を待って「ハングする(hang)」可能性がある。
初期化されたバス上のシステム資源は、それらの関連する順番のあるキューをたどるのをやめると、初期化されたバスにはないシステム資源に対して、待ちの応答を提供するのをやめることになる。
したがって、バス初期化エラーまたは同様のエラーにより、システム全体がデッドロックするカスケード故障がもたらされる可能性がある。
さらに、かかる結果は、システム「クラッシュダウン(crash-down)」またはオペレーティングシステム(OS)がエラーの原因を特定するのを容易にするための、ディスクまたは他の媒体に対するすべてのメモリのダンプを行わず、代りにシステム初期化を必要とし、それによりエラー時のシステムの状態を分析することができなくなる。
一実施形態によれば、バス初期化エラーを検出し、初期化されるバス上のプロセッサを、初期化の前にバスから離した状態にしている間に、それらのプロセッサに関連する順番のあるキューのドレインを行う。
本発明の実施形態によるキューのドレインは、キューに入れられたトランザクションにしたがって、初期化されるバスに関連しないものを含むあらゆるシステム資源に対し、応答、たとえばヘッダおよび/または任意のデータ要素を含むデータパケットを提供し、それにより、あらゆるシステム資源に対しトランザクションの終了をスプーフする。
たとえば、本発明の実施形態により、初期のトランザクションフェーズに関連するすべてのトランザクションを、後のトランザクションフェーズに関連するいかなるトランザクションよりも前にキューからドレインする。
一実施形態による動作時、キューに入れられたスヌープトランザクションフェーズからのパケット(packets off)の生成に続いてキューに入れられた応答トランザクションフェーズからパケットを生成するように、順番のあるキューをドレインする。
状態機械は、たとえば、まずまだスヌープフェーズを通過していないスヌープフェーズの各トランザクションに歩を進め、適切なシステム資源にパケットを発行してもよい。
その後、状態機械は、応答フェーズを通過していない各トランザクションに歩を進め、適切なパケットを発行してもよい。
本発明の実施形態によるかかる状態機械の動作により、システム内部のカウンタが同期するように保持する。
さらに、かかる状態機械の動作を利用して、キューが詰る(wedge)ことがないようにしてもよく、それによりシステム資源がタイムアウトするかまたは他の方法で処理を継続しなくなることが防止される。
たとえば、本発明の実施形態により、オペレーティングシステム(OS)が、バス初期化エラーの原因の分析に対して有用な、メモリ状態をディスク等にダンプすることが容易になる。
サブモジュール100が一部を形成するホストシステムは、複数のIntel ITANIUMプロセッサを実施するHewlett Packard rxまたはsxシリーズサーバシステム等のマルチプロセッサシステムを備えてもよい。
サブモジュール100はさらに、関連する1つまたは複数のプロセッサ(たとえばメモリプロセッサ)と関連するバス(たとえば、バス101および102のうちの対応するもの)との間のデータ通信を調停してもよいような、複数のプロセッサインタフェース、ここではプロセッサインタフェース110および120を含む。
かかる通信を、サブモジュール100上に配置されるかホストシステムの別の場所(たとえば、サブモジュール100に対応する1つまたは複数の他のサブモジュール)に配置されるかに係らず、上述した関連するプロセッサと、ホストシステムのMPU、メモリプロセッサ、メモリ等の他のあらゆるシステム資源と、の間の通信を可能にするために利用してもよい。
プロセッサインタフェース110および120の図示する実施形態は、さらに、各々プロセッサインタフェース順番のあるキュー(PIQ)112および122を備え、あらゆるトランザクションたどることにより、システムプロトコルを実施しおよび/または他の方法で上述した通信の制御されたおよび予測可能な調停を提供する。
図示する実施形態のプロセッサインタフェース順番のあるキュー112および122は、各々順番のあるキュー(IOQ)111および121を含む。
図示する実施形態の順番のあるキュー111および121は、オーバーライディングプロトコルによる順序でトランザクションの終了を確実にするためにトランザクションフェーズをたどる。
図1B−1および図1B−2の実施形態において分かるように、プロセッサインタフェース順番のあるキュー112は、順番のあるキュー111に入れられるトランザクションのフェーズ(要求フェーズ、スヌープフェーズおよび応答フェーズ)を制御するように動作可能な制御信号要求ポインタ(req_ptr)、スヌープポインタ(snp_ptr)および応答ポインタ(rsp_ptr)を提供する順番のあるキュー制御モジュール131を含む。
特に、図示する実施形態の順番のあるキュー111は、関連するプロセッサにより終了のあらゆるフェーズにおけるトランザクションに応答してもよいような、エントリ201および202を含む。
通常動作時、順番のあるキュー111は、スヌープフェーズおよび応答フェーズからシステムパケットを生成するためにプロセッサ入力ブロック113およびプロセッサ出力ブロック114とインタフェースし、これにより同時にシステムに複数のパケットを生成する能力を有する。
たとえば、マルチプレクサ211を、初期のトランザクションフェーズ、ここでは「スヌープフェーズ」に関連付けてもよく、マルチプレクサ212を、後のトランザクションフェーズ、ここでは「応答フェーズ」に関連付けてもよい。
マルチプレクサ211および212を、キューに入れられたトランザクションに付随するパケットを生成するように独立して、好ましくは同時に動作させてもよいが、特定のトランザクションは、その応答フェーズにおける処理の前にスヌープフェーズを終了しなければならず、これにより順番のあるキュープロトコルを確定する。
これらのポインタは、適切なパケットが生成されトランザクションのフェーズに関連付けられるにしたがってキュー内の至るところを移動する(move up and down)。
しかしながら、バス初期化(BINIT)エラー等の重大なエラーが検出された場合、システム資源のうちの1つまたは複数がリセット状態になる可能性がある。
たとえば、バス101に関してバス初期化エラーが発行されると、プロセッサインタフェース110に関連するプロセッサがリセット状態になる可能性があり、それにより、いかなる現データもダンプし動作をリスタートするためにコードをフェッチする。
したがって、順番のあるキュー111に入れられたいかなるトランザクションも、関連するプロセッサの動作に関して無意味になる。
従来のロジックにしたがって、順番のあるキュー111もまた初期化される。
しかしながら、本発明の実施形態は、重大なエラー後に順番のあるキューをドレインし、それによりパケットをスプーフし、したがって他のシステム資源がロックアップするかまたは他の方法で重大なエラー後の処理を継続できなくなることを防止するように動作する。
当技術分野において既知であるように、概して、状態機械は、所与の時点で何かのステータスを格納し、入力に対して操作することにより、ステータスを変更するようにおよび/または任意の所与の変更に対してアクションまたは出力を発生させることができる任意のデバイスである。
しかしながら、バス初期化エラーが検出されると、状態機械300は、アイドルドレイン状態301から、本発明の教示にしたがってキューをドレインするように動作可能な第1の状態(ここでは、スヌープドレイン状態310)に移る。
本発明の実施形態による動作時、バス初期化エラーが検出されたバスのプロセッサおよび/または他のシステム資源を、順番のあるキューのドレイン中に初期化されないようにする。
たとえば、バス初期化エラーが検出されたバス上のシステム資源を、アイドルドレイン状態301を除く状態機械300のすべての状態の間に新たな要求を行わないようにしてもよい。
特定の動作の終了中に特定のバスからシステム資源を切り離すことに関するさらなる詳細は、「Systems and Methods Controlling Transaction Draining for Error Recovery」と題する先に参照した特許出願に記載されている。
したがって、状態機械300は、初期のトランザクションフェーズ「スヌープ」で保留中の次の待機トランザクションが選択されるようにし、恐らくは任意のデータ要素を含むが適切にフォーマットされた1つまたは複数のパケットが、スヌープドレイン状態310において生成されるようにする。
生成されたスヌープフェーズパケットは、通常動作と同様にシステム内を伝播し、それによりそのトランザクションに関してスヌープフェーズの終了をスプーフする。
たとえば、システムプロトコルは、キュードレインから切り離されたダウンストリームロジック、たとえばプロセッサ入力ブロック113が通常通りに動作可能になるなどのために、スヌープパケットがせいぜい1周期おきの頻度で生成される、ということを確定してもよい。
したがって、図示する実施形態の状態機械300は、システムプロトコルにしたがってキュー内ドレインを容易にするように、スヌープドレイン状態310後に入るスヌープドレインストール状態311を含む。
たとえば、スヌープドレイン状態310とスヌープドレインストール状態311とを交互に行ってもよく、それにより、スヌープポインタが要求ポインタに等しくなるまで、1周期おきにスヌープフェーズパケットを生成する。
スヌープトランザクションフェーズポインタが要求ポインタ(初期トランザクションフェーズポインタ)に等しくなると、順番のあるキューのすべてのトランザクションがスプーフされたスヌープフェーズを通して取出されたことになる。
したがって、スヌープポインタが要求ポインタに等しくなると、状態機械300の図示する実施形態は、システムトランザクションプロトコルの後のトランザクションフェーズ、この例では「応答フェーズ」に関連するトランザクションフェーズのキューのドレインを提供するように動作可能な状態(ここでは、応答ドレイン状態320)に移る。
したがって、本発明の実施形態により順番のあるキューをドレインする動作は、特定のトランザクションフェーズを、通常動作中に処理される可能性のある順序でスプーフするように動作しなくてもよいが、本発明の実施形態は、各トランザクションに関連するフェーズがそれらの適切な順序でスプーフされることを確実にする。
図示する実施形態では、すべてのスヌープフェーズトランザクションがいかなる応答フェーズトランザクションをスプーフする前にもスプーフされるため、各トランザクションに関連するフェーズが所望の順序でスプーフされることを理解しなければならない。
上述したスヌープフェーズパケットと同様に、生成された応答フェーズパケットは、通常動作の場合と同様にシステム内を伝播し、それによってそのトランザクションに関する応答フェーズの終了をスプーフする。
したがって、図示する実施形態の状態機械300は、システムプロトコルにしたがって順番のあるキューのドレインを容易にするように、応答ドレイン状態320後に入る応答ドレインストール状態321〜323を含む。
たとえば、図示する実施形態では、応答ポインタが要求ポインタに等しくなるまで、4クロック周期おきに応答パケットがスプーフされるように、応答ドレインストール状態が提供される。
応答トランザクションフェーズポインタが要求ポインタ(初期トランザクションフェーズポインタ)に等しくなると、順番のあるキューのすべてのトランザクションがスプーフされた応答フェーズを通して取出されたことになる、ということを理解しなければならない。
応答ポインタが要求ポインタに等しくなると、本発明の状態機械300は、システムトランザクションプロトコルのさらに後のトランザクションフェーズに関連するトランザクションフェーズのキューのドレインを提供するように動作可能な状態等、後続する所望の状態に移ってもよい。
しかしながら、図示する実施形態では、ドレインされるトランザクションフェーズは2つしか存在せず、したがって図示する実施形態の状態機械300は、初期エラーが検出されたバス上のプロセッサがリセットから解放され初期化が可能になるため等、アイドルドレイン状態301に戻る。
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つのドレイン状態を採用し、それらに対し、トランザクションフェーズを終了することができないことにより、キューの詰りおよび/またはシステム資源ロックアップがもたらされる可能性がある。
本発明の実施形態は、必要に応じて、いかなる数のかかるドレイン状態を実施してもよい。
応答フェーズパケットスプーフに関して実施される4つの周期により、かかるデータが、重大なエラーが検出された場合のトランザクションの実際のステータスに係りなくシステムプロトコルにしたがって、図示する実施形態のプロセッサ入力ブロック113および/またはプロセッサインタフェースデータパスブロック115等のシステムを適切に伝播することが確実になる。
本発明の実施形態は、必要に応じて、いかなる数のかかるドレインストール状態(0を含む)を特定のドレイン状態に関していかなる組合せで実施してもよい。
たとえば通常システム動作は、特定のシステム資源に向けられたパケットのみを採用するのではなく、マルチキャストパケット等のマルチポイントパケットを採用してもよい。
システムのセルのうちの1つのプロセッサバスは、たとえば、保護領域にあるすべてのメモリプロセッサ(すなわち、特定のオペレーティングシステムの制御下で動作可能なすべてのセル)等複数のシステム資源に送出されるキャッシュ同期パケットを発行してもよい。
保護領域の各プロセッサバスは、キャッシュ同期を行うためにキャッシュ同期パケットを調べる必要がある。
したがって、通常動作時、プロセッサインタフェースは、関連するプロセッサからかかるマルチキャストパケット要求を受取り、それを、送出する各要求パケットに対する肯定応答を期待して、その保護領域にあるすべてのセルに送出する。
しかしながら、上述したように、セルは、複数のプロセッサおよび/または複数のバスを含む可能性がある。
したがって、単一セル内の複数のシステム資源が、最終的にマルチキャストパケットキャッシュ同期に影響するが、要求しているシステム資源は、各セルから単一の肯定応答のみを期待してもよい。
特に、プロセッサ連絡ブロック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リンク等の伝送媒体を介して伝播することができるいかなる信号を含んでもよい。
コードセグメントを、インターネット、イントラネット等のコンピュータネットワークを介してダウンロードしてもよい。
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)
- 順番のあるキュー(111、121)をドレインする方法であって、
前記順番のあるキューに格納されたトランザクションのトランザクションフェーズに関して第1のキューループシーケンス(310、311)を実施することであって、該第1のキューループシーケンスが、前記トランザクションフェーズが終了しなかった前記順番のあるキューに格納された前記トランザクションに対する前記トランザクションフェーズの終了をスプーフする実施することと、
前記第1のキューループシーケンスの終了後に、前記順番のあるキューに格納された前記トランザクションの別のトランザクションフェーズに関して第2のキューループシーケンス(320、321、322、323)を実施することであって、該第2のキューループシーケンスが、前記別のトランザクションフェーズが終了しなかった前記順番のあるキューに格納された前記トランザクションに対する前記別のトランザクションフェーズの終了をスプーフする実施することと、
とを含む順番のあるキューをドレインする(drain)方法。 - 前記最初に示したトランザクションフェーズは、
スヌープフェーズ
を含み、
前記別のトランザクションフェーズは、
応答フェーズ
を含む
請求項1に記載の順番のあるキューをドレインする方法。 - 前記第1のキューループシーケンスと前記第2のキューループシーケンスとのうちの少なくとも1つは、
ストール状態(311、321、322、323)を実施することであって、それにより前記スプーフを特定のプロトコルに従わせるようにする実施すること
を含む
請求項1に記載の順番のあるキューをドレインする方法。 - 前記ストール状態を実施することは、
複数のストール状態(321、322、323)を実施すること
を含む
請求項3に記載の順番のあるキューをドレインする方法。 - 前記第1のキューループの動作は、前記最初に示したトランザクションフェーズに関連するトランザクションフェーズポインタ(432)が所定値に達するまで続き、
前記第2のキューループの動作は、前記別のトランザクションフェーズに関連するトランザクションフェーズポインタ(433)が前記所定値に達するまで続く
請求項1に記載の順番のあるキューをドレインする方法。 - 前記所定値は、前記最初に示したトランザクションフェーズおよび前記別のトランザクションフェーズとは異なるトランザクションフェーズに関連するトランザクションフェーズポインタ(431)に対応する
請求項5に記載の順番のあるキューをドレインする方法。 - 重大なエラーを検出すること
をさらに含み、
前記第1のキューループと前記第2のキューループシーケンスとを実施することは、前記重大なエラーを検出することに応答する
請求項1に記載の順番のあるキューをドレインする方法。 - 前記第1のキューループシーケンスと、前記第2のキューループシーケンスとを実施する間に、前記重大なエラーに関連するバスから特定のシステム資源を切り離すこと
をさらに含む請求項7に記載の順番のあるキューをドレインする方法。 - 順番のあるキュー(111、121)をドレインするシステムであって、
第1のドレイン状態(310)と、
第2のドレイン状態(320)と
を有する状態機械(300)
を具備し、
該状態機械は、処理中のトランザクションに関連する第1のトランザクションフェーズポインタを、前記トランザクションに対するトランザクションフェーズの終了をスプーフする前記第1のドレイン状態を用いて、順番に進めるように動作可能であり、
前記状態機械は、前記処理中のトランザクションに関連する第2のトランザクションフェーズポインタを、前記トランザクションに対する別のトランザクションフェーズの終了をスプーフする前記第2のドレイン状態を用いて、順番に進めるようにさらに動作可能である
順番のあるキューをドレインするシステム。 - 前記状態機械により前記第1のトランザクションフェーズポインタを順番に進めることは、該第1のトランザクションフェーズポインタが第3のトランザクションフェーズポインタに等しくなるまで続き、
前記状態機械により前記第2のトランザクションフェーズポインタを順番に進めることは、該第2のトランザクションフェーズポインタが前記第3のトランザクションフェーズポインタに等しくなるまで続く
請求項9に記載の順番のあるキューをドレインするシステム。
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)
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)
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 |
-
2003
- 2003-05-09 US US10/434,685 patent/US7120828B2/en not_active Expired - Fee Related
-
2004
- 2004-04-22 JP JP2004126472A patent/JP3891994B2/ja not_active Expired - Fee Related
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 |