JP2009205692A - マルチプロセッサ相互接続ネットワークのためのトランスポート層プロトコル - Google Patents

マルチプロセッサ相互接続ネットワークのためのトランスポート層プロトコル Download PDF

Info

Publication number
JP2009205692A
JP2009205692A JP2009123656A JP2009123656A JP2009205692A JP 2009205692 A JP2009205692 A JP 2009205692A JP 2009123656 A JP2009123656 A JP 2009123656A JP 2009123656 A JP2009123656 A JP 2009123656A JP 2009205692 A JP2009205692 A JP 2009205692A
Authority
JP
Japan
Prior art keywords
sequence number
packet
transmission sequence
message
domain
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.)
Pending
Application number
JP2009123656A
Other languages
English (en)
Inventor
W Warner Craig
クレイグ・ダブリュー・ワーナー
Jay S Tsao
ジェイ・エス・ツァオ
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Co filed Critical Hewlett Packard Co
Publication of JP2009205692A publication Critical patent/JP2009205692A/ja
Pending legal-status Critical Current

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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1443Transmit or communication errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99948Application of database or data structure, e.g. distributed, multimedia, or image

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Hardware Redundancy (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Retry When Errors Occur (AREA)

Abstract

【課題】
マルチコントローラ環境において一時的な障害に耐性があるシステムおよび方法を提供すること。
【解決手段】
マルチコントローラ環境におけるデータ通信のシステムおよび方法を開示する。本システムおよび方法は、シーケンス番号プロトコルを用いて重複パケットをフィルタリングし、一時的なエラーに適応し、及び、ハードウェア動作不良を回避するようにデータパケットをリルートする。本システムおよび方法は、さらにトランザクションデータベースを採用し、シーケンス番号に従うパケット通信を追跡する。さらに、本システムおよび方法は、ハードウェアで実施され、透過的なトランスポート層を上位ハードウェア層へ提供する。本システムおよび方法は、シーケンス番号ドメインおよびブリッジプロトコルを用いて、シーケンス番号スレッドの管理に関連する要件を削減する。
【選択図】図4

Description

本発明は、マルチコントローラシステムにおけるデータ通信に関し、特に、マルチコントローラシステムのトランスポート層プロトコルに関する。
マルチプロセッサまたはマルチコントローラアーキテクチャを利用するための高性能データ処理システムが開発されてきた。マルチプロセッサ構成を利用する主な動機は、VLSIデバイスにともなう制限に対応する必要性にある。個々のVLSIユニットは、生来的に、制限された処理能力を有する。しかしながら、多数のVLSIユニットを分散して利用することにより実質的により高い処理能力を有するシステムを形成することができる。
多くの高性能システムは共通の特徴を持っている。まず、これらのマルチプロセッサシステムは、共有メモリ環境を利用することが可能である。すなわち、共有メモリ構造の見え方は、いずれのプロセッサの見え方も同じである。共有メモリ構造における待ち時間を最小にするために、様々なキャッシュコヒーレンシプロトコルが実施される。さらに、上記のシステムは同様の機能のサブデバイスを内蔵することができる。このシステムは、プロセッサ、プロセッサエージェント、相互接続ASICチップ、メモリコントローラ等を備えることができる。プロセッサがシステムの処理機能を提供することは明らかである。プロセッサエージェントは、メモリ要求等のトランザクション要求をプロセッサから受信する。メモリコントローラは、DRAMユニット等のメモリユニットおよびプロセッサエージェントとの通信を管理する。さらに、相互接続ユニットは、システムの他のサブユニット間の通信手段として機能する。
上記のシステムの利点は明確であるが、この優れたアーキテクチャはいくつかの望ましくない特徴も伴う。まず、このシステムには高可用性の問題がある。すなわち、相互接続チップが動作不良になると、あるいはサブユニットのいずれかに接続している配線の1つに障害が発生すると、システムは機能を停止する場合がある。これは、一時的な障害について特に問題とされる。たとえば、一時的な障害は、配線接続を介して伝送されるパケットのデータが電気ノイズにより破損されることによって引き起こされる場合がある。また、一時的な障害は、ハードウェアの動作不良により引き起こされる場合があり、相互接続チップへの給電停止によりシステムの特定のリンクを介する通信が阻害されることなどにより引き起こされる場合がある。これらのマルチコントローラシステムでは、一時的な障害が検出されるとリブートが必要とされる場合がある。ある種の状況では、高性能マルチプロセッサシステムのリブートは面倒であり、時間のかかる処理である。
これまで、マルチプロセッサシステムは、低速信号技術、すなわち、信号状態間の変化をより長い周期で生じさせる技術を利用することによって一時的な障害に対処してきた。また、低速信号技術は、高信号レベルと低信号レベルの差を大きくとることを容易にする。したがって、低速信号技術は電気ノイズまたは干渉によるデータ破損の影響を受けにくく、一時的なエラーの発生が減少される。低速信号技術を利用しながらより高いデータ通信レートを提供するため、より多くのピン数がVLSIチップ上に設けられてきた。しかしながら、VLSIチップのピン数を増大することによるデータ通信レートを高める能力は、物理的な制約により制限されている。
ピン数の増大により信号レートを高めることは最早不可能であることが予測される。このため、より高周波の信号技術を利用してより高い通信データレートを達成することが、マルチプロセッサシステムにまもなく必要とされるであろう。もちろん、高周波信号技術は、データ破損、ひいては一時的な障害を起こす可能性をさらに大きくするものである。
したがって、本発明は、マルチコントローラ環境における高周波信号技術に関連して増大するデータ通信の不信頼性に対処するシステムおよび方法に関する。本システムおよび方法は、好ましくは、一時的な障害に耐性があるシステムおよび方法を提供する。本システムおよび方法は、好ましくは、マルチコントローラシステムの遅延をスケーラブルに減少させるように一時的な障害にハードウェアで対処する。また、本システムおよび方法は、好ましくは一時的な障害に耐性のあるマルチコントローラシステムを用いて事前割当てされたメモリへのデータ通信を容易にする。
本システムおよび方法は、好ましくはパケット再送方式を実施して一時的な障害に対処する。本システムおよび方法は、トランザクションデータベースを用いてデータパケットの送受信を追跡する。トランザクションデータベースは、好ましくは、ソースサブユニットから受信された最後のパケットに関連するシーケンス番号と、宛先サブユニットへ送信される最後のパケットに関連するシーケンス番号とを含む。本システムおよび方法は、シーケンス番号を用いてデータパケットが無事に伝送されたことを追跡する。本システムおよび方法において、ソースサブユニットは、好ましくはデータパケットをシーケンス番号と共に宛先サブユニットへ送信することができる。このデータパケットが宛先サブユニットへ無事に伝送されると、宛先サブユニットは、このシーケンス番号を含む肯定応答を送信することにより応答する。ソースサブユニットは、好ましくは送信データパケットと関連するタイマ機構を実施することができる。ソースサブユニットが、トランザクションデータベースに格納された適切なシーケンス番号に対応する肯定応答パケットを所定の時間内に受信しない場合、ソースサブユニットは一時的な障害が発生したと推定し、そのデータパケットを再送する。
本システムおよび方法は、好ましくは、断線または給電障害等のハードウェア障害に関連する一時的な障害に適応する。さらに本システムおよび方法は、タイミング機構および再送プロセスを連続的に用いる。肯定応答パケットを受信することなく相次ぐ送信が発生すると、本システムおよび方法は、一時的な障害の原因を分離し、ハードウェア障害をバイパスする代替のルーティングを行うなどの、訂正動作を行うことができる。
さらに、本システムおよび方法は、好ましくは、トランザクションデータベースおよび関連するシーケンス番号を利用して、重複したパケットのフィルタリングを行う。さらに本システムおよび方法は、好ましくは、より上位のプロトコル層に対してデータ通信を透過的に管理するためのトランスポート層を提供する。
本システムおよび方法は、好ましくは、スケーラブルなアドレス指定アーキテクチャを用いる。本システムおよび方法は、マルチコントローラシステムにおけるデータ伝送用のドメインアドレス指定を用いてトランザクションデータベースおよびルーティングデータベースのメモリ要件を減少する。本システムおよび方法は、好ましくは、2つの異なるドメインに存在するブリッジユニットを用いてドメイン間の通信を容易にする。すなわち、これらのブリッジは2つの異なるドメイン(自身のドメインと、親ドメイン、ソースドメインまたは宛先ドメインのいずれか)に存在している。たとえば、ブリッジは、ソースドメインと中間ドメイン、または、中間ドメインと宛先ドメイン、のうちのいずれかに属することができる。
パケットソースが宛先に事前割当てされた空間を有する場合、マルチコントローラシステムはさらに優れた性能を示し、マルチコントローラシステムのキャッシュコヒーレンシプロトコルはさらに単純になる。プロセッサエージェントは、メモリ要求用のメモリコントローラにリソースを事前割当てすることが可能であり、また、メモリコントローラは、キャッシュコヒーレンシリコール用のプロセッサエージェント、および、他の信頼性メモリプロトコルを実施する他のメモリコントローラにリソースを事前割当てすることが可能である。概説したように、シーケンス番号を用いたトランスポートプロトコルを実施することによって、キャッシュコヒーレンシプロトコルは、トランスポート層プロトコルのフィルタリング特性により、終点における事前割当てを好ましく利用することができる。さらに、マルチコントローラシステムは、システム内の遅延を最小にすることに対して優れた特性を示す。本システムおよび方法は、上述したハードウェアの機能を実施することによって遅延を減少し、優れたデータ通信効率を提供する。
本発明は、上記のように構成することによって、マルチコントローラ環境において一時的な障害に耐性があるシステムおよび方法を提供する。
キャッシュコヒーレンシ層およびPIO層へデータ通信補助を提供するトランスポート層を含む、例示的なプロトコル階梯を示す図である。 簡略化された例示的なマルチコントローラシステムにおける信号シーケンスを示す図である。 シーケンス番号ハードウェアを備える好ましい実施形態とインタフェースするコヒーレンシエンジンを示す図である。 単一のシーケンス番号ドメインとして実施されるマルチコントローラシステムの例示的なトポロジーを示す図である。 複数のシーケンス番号ドメインとして実施されるマルチコントローラシステムの例示的なトポロジーを示す図である。 シーケンス番号ブリッジハードウェアの好ましい実施形態を示す図である。 ブリッジ方法を使用する好ましい信号シーケンスを示す図である。 フェイルオーバー方法に関する好ましい信号シーケンスを示す図である。
図面を参照すると、図1Aは、本発明による好ましいシステム機能の構成を説明する例示的なシステム層の図である。図1Aは、様々なシステム層と本発明との好ましい関係を例示するための図である。
下位のシステム層は通常の通信層を示す。たとえば、物理層10は、ドライバおよび受信機を介するシステム接続におけるデータの物理的な信号化を実施する。データリンク層11は、下位データ転送プロトコルを実施してデータ破損に適応する。ネットワーク層12は、ルーティングテーブル、ソースベクトルルーティング等を介してシステムを通過するパケットのルーティングを担っている。当業者であれば、物理層、データリンク層およびネットワーク層を実施するために任意の数の方式または機構を利用することが可能である。これらのシステム層については、本発明の理解のためには、それほど説明する必要はないであろう。
トランスポート層13は、システムを介する信頼性のあるデータの受け渡しについて主に責任を負う層である。トランスポート層13は、好ましくは、メッセージシーケンスの番号付けを実施する。これによりトランスポート層13は、重複するパケットをフィルタリングすることが可能になる。さらに、トランスポート層13は、好ましくはタイムアウト時間が経過すると、指示された再試行を実施する。同様に、トランスポート層13は、好ましくはシステム内の一時的な障害に対しデータ転送を適応させる。
トランスポート層13により、キャッシュコヒーレンシ層14およびプロセッサ入出力(PIO)層15等の上位層はマルチコントローラ環境で効率よく動作することが可能になる。キャッシュコヒーレンシ層14は、好ましくはプロセッサライトバックキャッシュの追跡と管理、及び、メインメモリ内のコヒーレンシタグの管理を管理することができる。PIO層15は、割り込みおよびシステム構成アクセスを実施するのに利用される。さらに、これらの上位層およびその他の上位層は、トランスポート層13によりイネーブルされ、システム内の一時的な障害およびハードウェア障害により生じる問題に対して透過的に動作する。
図1Bは、本発明を実施する簡略化されたマルチコントローラシステムを示している。図1Bのシステムは、プロセッサ101、CPUエージェント102、DRAM104、及び、メモリコントローラ103を備える。図1Bは、さらに、本発明に関する例示的な信号シーケンスを示している。この例示の信号シーケンスは、プロセッサ101によるDRAM104のメモリ位置の読み出しを含むトランザクションを示している。プロセッサ101は、CPUエージェント102と通信することによってこのトランザクションを開始する。これに応答して、CPUエージェント102は、シーケンス番号Aを含むRead_privateパケット105を生成してメモリコントローラ103へ送信する。メモリコントローラ103は、シーケンス番号Aを含むACKパケット105AをCPUエージェント102へエコーバックすることにより応答する。Read_private105およびACKパケット105Aは転送Xを形成する。さらに、メモリコントローラ103は、DRAM104と通信して、Read_privateパケット105で指定されたようにDRAM104のメモリアドレスに格納されたデータの値を取得する。メモリコントローラは、取得したデータ値およびシーケンス番号Vを含むData_returnパケット106を構築してCPUエージェント102へ送信する。CPUエージェント102は、シーケンス番号Vを含むACKパケット106Aを生成してメモリコントローラ103へ送信することによって応答する。Data_returnパケット106およびACKパケット106Aは転送Yを形成する。転送Xおよび転送Yは1つのトランザクションNを形成する。最終的に、CPUエージェントは、取得した値をプロセッサ101へ伝達する。CPUエージェント102が別のパケット(ACKパケット以外)を送信する場合には、シーケンス番号Bを用いる。同様に、メモリコントローラ103が別のパケット(ACKパケット以外)を発行する場合には、シーケンス番号Wを用いる。
トランスポート層プロトコルに関連する前述の信号は、単にプロセッサを利用してソフトウェアにより実施されるのではなく、好ましくはハードウェアにより実施されることが分かるであろう。ハードウェアによる実施が有効であることには、いくつかの理由がある。第一に、ハードウェアのアプローチは、マルチコントローラシステム内の遅延を大幅に減少させる。遅延の減少は、最適な処理能力の提供を意図する高性能マルチコントローラシステムにとって重要な性能課題である。第二に、トランスポート層をハードウェアで実施することにより、他のシステムレベル機能を要素レベルに統合することも可能になる。たとえば、キャッシュコヒーレンシプロトコルは、その最良の有用性を実現するためにはハードウェアレベルで実施することが好ましい。
ハードウェア層にトランスポート層を統合することによって、キャッシュコヒーレンシ機能は、一時的なエラーに対して個々に対応することなく、下位のハードウェアトランスポート層を用いて透過的に動作することができる。たとえば、パケットソースが宛先に事前割当てされた空間を確立することができるならば、マイクロプロセッサは向上した性能を示し、マイクロプロセッサのキャッシュコヒーレンシプロトコルは大幅に簡略化される。たとえば、プロセッサエージェントは、メモリ要求用のメモリコントローラのリソースを事前に割り当て、メモリコントローラは、キャッシュコヒーレンシリコール用のプロセッサエージェントのリソースを事前に割り当てて他の信頼性のあるメモリプロトコルを実施することができる。概説したようにシーケンス番号を用いてトランスポートプロトコルを実施することにより、キャッシュコヒーレンシプロトコルは、トランスポート層プロトコルのフィルタリング特性を使用して終点における事前割当てを用いることができる。この種の事前割当ての最適化は、重複したパケットをフィルタリングするトランスポート層プロトコルを実施することなく達成することが極めて困難である。同様に、本発明によりPIOトラフィックの順序の維持が容易になる。したがって、多くの上位ハードウェアプロトコルおよび機能は、本発明により簡略化することができる。
前述のシステムおよび信号は本発明の簡略化した説明であることが理解されるはずである。本発明の実際の実施は、実際には、もっと多くのプロセッサ、CPUエージェント、メモリコントローラ、DRAMおよび他のハードウェアを含むことが可能であり、任意の数の実現可能な構成に配される。さらに、パケットは、経路情報、エラー検出値、パケット年齢値(packet age value)等の任意数の追加フィールドを含むことができる。さらに、データ転送は、1回の転送につき2つ以上の値を含むことができる。
前述の信号シーケンスは、一時的なエラーまたはハードウェア障害を受けることなく各メッセージが適切に送受信されることを前提にしている。本システムおよび方法は、好ましくはACKパケットを用いて一時的なエラーおよびハードウェア障害を検出してこれらに適応する。もしACKパケットが受信されない場合、パケットはシステム内で紛失または破損してしまったと推定される。したがって、本システムおよび方法は、紛失したパケットの再送を試みることができる。再送は、別々の回数行うことが好ましい。再送が不成功に終わると、本システムおよび方法は、フェイルオーバープロトコルを用いて代替の経路を介してパケットを送信することが可能であるが、これについてはさらに詳細を後述する。
図2は、コヒーレンシユニットと通信するシーケンス番号ハードウェアを示している。この要素のアセンブリは、CPUエージェントまたはメモリコントローラ等のマルチコントローラシステムの様々な要素と共に使用されてもよく、あるいは様々な要素に組み込まれてもよい。まず、コヒーレンシユニットはコヒーレンシエンジン201を含んでいる。コヒーレンシエンジン201は、メモリアドレスからのデータの要求等のコヒーレンシプロトコルを管理している。コヒーレンシエンジン201は、read_privateトランザクション要求をトランザクションデータベース(TDB)202へ発行することによってトランザクションを開始することができる。TDB202は、自身のデータベース内にエントリを作成する。TDB202は、要求情報のタイプ(RQ)、宛先アドレス(Dest)、タイムアウト情報(TO)、終点シーケンス番号(EP SN)、一次または二次経路インジケータ(P/S)、ローカルシーケンス番号(LSN)等の複数のフィールドから構成されるテーブルエントリを作成する。テーブルエントリの作成は、ASIC設計内にエンコードされた論理命令によって実施され、必要な情報をASICに常駐するメモリまたはレジスタへ配置することができる。あるいは、テーブルエントリ作成タスクは、プロセッサにより実行される論理命令によって実施されてもよい。メッセージを送信する場合、TDB202は、送信シーケンス番号テーブル(SSNT)203内の次のエントリを調べて、その要求パケットに関連付けられるべき次の送信シーケンス番号を突き止める。同様に、このタスクも、メモリおよび/またはレジスタを操作するようにASICにエンコードされた命令またはプロセッサベースの命令により実施することができる。実際のメッセージは、適切なドライバユニットにより回線を介して送信可能である。使用済みの送信シーケンス番号を含む肯定応答(ACK)パケットが受信された場合、そのエントリはTDB202から除去される。また、TDB202は、ACKパケットで伝達された(使用済み)シーケンス番号よりも小さい使用済み送信シーケンス番号を伴う全てのトランザクションをクリアすることができる。なぜなら、これは以前発行したシーケンス番号の完了を意味しているからである。
終点シーケンス番号は、好ましくはマルチシーケンス番号ドメインシステムに利用される。終点シーケンス番号は、一時的な障害を克服するための代替のルーティングを行うのに有用である。同様に、P/Sインジケータも代替のルーティングを容易にする。たとえば、TDB202のエントリがタイムアウトになると(TOフィールドを使用して)、P/Sビットが反転させられ、別のパケットが発行される。P/S値は再発行されたパケットに表示されるため、これによってシステムは一時的な障害またはハードウェア障害を回避する代替の経路を介してパケットをルーティングさせることができる。もちろん、P/Sフィールドは、代替のルーティングに関して単一ビットに制限される必要はない。より大きいP/Sフィールドを採用することによって、複数の代替の経路にも同様に適用することができる。
同様に、ハードウェア部は受信部(RU)205を含んでいる。RU205が宛先からパケットを受信すると、RU205は、受信シーケンス番号テーブル(RSNT)204を参照する。SSNT203と同じように、RSNT204は、メモリおよび/またはレジスタを操作するASICにエンコードされた命令またはプロセッサベースの命令を介して実施可能である。RU205は、受信したパケットのシーケンス番号が、その特定の宛先についてRSNT204に保持される予想したシーケンス番号と一致することを確認する。シーケンス番号同士が一致すると、そのメッセージはTDBへ転送され、受信したシーケンス番号を含むACKパケットが発信元の要素へ送信される。RU205は、任意の数の方法で実施可能である。もちろん、RU205には、他のシステム要素から回線を介して信号を受け入れるための受信機が含まれる。また、RU205は、シーケンス番号の比較を行うため、ALUまたは他の論理部を備えてもよく、または利用してもよい。また、RU205は、ASIC設計にエンコードされた論理命令またはプロセッサにより実行される論理命令を備えて予想したシーケンス番号をRSNTから取得してもよく、RSNTは、この装置(RU205)に関連するメモリおよび/またはレジスタとして実施されることができる。同様に、RU205は他の要素からのACKパケットをモニタするための他の命令を備えてもよい。
図3は、本発明を実施するさらに複雑なシステムを例示している。このシステムは単一のシーケンス番号ドメインであり、以下に詳細を説明する。本システムはプロセッサ301a〜301dを備える。プロセッサ301a〜301dは、好ましくはライトバックキャッシュを利用してシステム処理を実施する。
システム300は、CPUエージェント302a〜302dをさらに備える。CPUエージェント302a〜302dは、好ましくはそれぞれのプロセッサと直接接続されてメモリ要求を受信する。CPUエージェント302a〜302dは、CPUメモリ要求から要求パケットを形成し、そのメモリ要求において識別される物理アドレスと関連するメモリコントローラへ送信する。CPUエージェントは、リコール要求(プロセッサに特定のキャッシュライン上の制御を放棄させる要求)等、他のシステム機能を実施することができる。
また、本システムはメモリコントローラ(MC)303a〜303dをさらに備える。メモリコントローラ303a〜303dは、好ましくは、DRAMとインタフェースして、メインメモリに記憶されたデータを取得または変更する。メモリコントローラ303a〜303dは、記憶されたデータを他のコントローラまたはエージェントへ伝送する。メモリコントローラ303a〜303dは、好ましくは、いずれのプロセッサが個々のメモリコントローラと関連するキャッシュラインに読み出し/書き込みアクセス権を所有するかを追跡する。
インタフェース304および305は、要素間の物理的接続とルーティング機能を提供するインタフェースチップである。インタフェース304および305は、システムの物理層、データ層およびネットワーク層を実施する。この例示の実施形態では、2個のインタフェースチップが各メッセージ要素と接続されている。したがって、要素間には複数の経路が形成され、一時的なエラー、回線障害、要素の障害等に適応している。このようなシステムでは、シーケンス番号のサイズにより性能が影響を受ける場合がある。たとえば、シーケンス番号は32ビット、8ビットまたは任意の他のビット数を用いて実施することができる。システム性能は、デバイスが同一のシーケンス番号を含む2つの異なるトランザクションを受信しないことをシステムが保証するならば、最適化されることになる。したがって、最適なシーケンス番号のサイズを判定するために特定のシステム設計の配慮を検討しなければならない。システムが多数のパケットを生成するように設計されるならば、好ましくは、シーケンス番号データ表現も多数のビットから構成されるように選択されるべきである。このようにすることによって、重複パケットが回避される。なぜなら、特定のシーケンス番号は、システムの時間が経過しそれと同一のシーケンス番号を有する先行のパケットが不用になるまで、再使用されないからである。しかしながら、短いビット表現が選択される場合には、システムは、好ましくは再送中に経路を切り換える前にトランザクション寿命を待たなければならない。
予想したシーケンス番号を追跡するためには、各CPUエージェントまたはメモリコントローラは、同一シーケンス番号ドメイン内のすべての他のCPUエージェントまたはメモリコントローラに対して2つのシーケンス番号を追跡することが好ましい。すなわち、特定の要素へ送信した最後のシーケンス番号と特定の要素から受信した最後のシーケンス番号を追跡することが好ましい。単一シーケンス番号のアプローチを採用することも可能であるが、2つのシーケンス番号スレッドを用いてそれぞれのデータベースのエントリを早い時点でクリアして新たなエントリを追加できる用にする方が好ましい。そのため、n個のメッセージソースを有するシステムにおいて、この好ましい実施形態をとるメッセージソースのそれぞれは、2*(n−1)個のシーケンス番号スレッドを維持して必要なシーケンス番号を追跡することになる。
単一のシーケンス番号ドメインは、単一の相互接続要素上で共有される共通のシーケンススレッドの集合により定義される要素の概念的アーキテクチャである。1025個のコントローラを含むシステムに対して、32ビットのシーケンス番号でこのスレッド化の実施形態を実施する場合、要素は、このスレッドシーケンスを維持するためにかなりのリソースを必要とする。この好ましい実施形態を用いる場合、メモリ要件としては、シーケンス番号のスレッド化のために、各コントローラに対して64Kが割り当てられることになる。これは、大容量のVLSI設計であっても明らかに過剰な要件である。
したがって、ブリッジ要素およびブリッジプロトコルを提供し、スケーラブルに実施できるようにすることが本発明のさらなる態様である。ブリッジ化は、ブリッジユニットにより接続される個別のシーケンス番号ドメインを作成することを含む。図4は、ブリッジ要素を利用する簡略化された実施例を示している。図4に示すシステムは、3つの個別のシーケンス番号ドメイン401、402および403を含んでいる。
シーケンス番号ドメイン401、402および403は、それぞれインタフェース404〜405、406〜407および408〜409を備える。さらに、インタフェース404および405は、ブリッジユニット404aおよび405aを備える。同様に、インタフェース408および409は、ブリッジユニット408aおよび409aを備える。ブリッジユニット404a、405a、408aおよび409aは、2つの異なるドメインに属し、ドメイン間のデータ伝達を容易にしている。たとえば、インタフェースユニット404は、シーケンス番号ドメイン401およびシーケンス番号ドメイン402に属する。同様に、ブリッジユニット408aはシーケンス番号ドメイン402および403に属する。インタフェース406および407はブリッジユニットを含まない。これらの要素はトランスポート層では役割を果たさない。代わりに、これらの要素は、システムの物理層、データリンク層およびネットワーク層を単に実施して、これによりそれぞれのブリッジユニット間を接続している。
図5は、ブリッジユニットの好ましいハードウェアの実施を示す。ブリッジハードウェアは、シーケンス番号ドメインのそれぞれに対して2つの受信部501aおよび501bを備える。ブリッジハードウェアは、2つのRSNT502aおよび502bをさらに備える。ブリッジハードウェアは、SSNT503をさらに備える。また、ブリッジハードウェアは、ブリッジデータベース504も備える。ブリッジデータベース504は、図2で説明したトランザクションデータベースと同様である。しかしながら、ブリッジデータベース504は、2つのシーケンス番号ドメインへ送信されたメッセージ、および、これらのシーケンス番号ドメインから受信されたメッセージを追跡する。たとえば、パケットがブリッジデータベース504の一方から受信されると、ACKメッセージを逆方向へ発行する。ブリッジデータベース504は、SSNTを調べて、中間シーケンス番号ドメインについて、次のブリッジユニットまたは宛先要素の次のシーケンス番号を取得する。ブリッジデータベース504は、受信シーケンス番号を用いて転送データベースに新たなエントリを作成する。そしてブリッジデータベース504は、出力配線を介してパケットを送信する。
図6は、ブリッジプロトコルに関連する信号の例示的な集合を示している。ソースエージェント609とローカルブリッジユニット610との間のすべてのメッセージは、シーケンス番号ドメイン600A内で発生する。ローカルブリッジユニット610とリモートブリッジユニット611との間のメッセージはシーケンス番号ドメイン600B内で発生する。同様に、リモートブリッジユニット611と宛先エージェント612との間のメッセージはシーケンス番号ドメイン600C内で発生する。
ソースエージェント609がシーケンス番号A0のメモリ要求601をローカルブリッジユニット610へ送信すると、例示のブリッジ接続された通信トランザクションが開始される。ローカルブリッジユニットは、シーケンス番号B0のメッセージ602を用いて、この要求をリモートブリッジユニット611へ転送する。ほぼ同時に、ローカルブリッジユニット610は、シーケンス番号A0のACK601Aもソースエージェント609へ送信する。リモートブリッジユニット611は、シーケンス番号B0のACK602Aをローカルブリッジユニット610へ送信する。リモートブリッジユニット611は、シーケンス番号B1のリモート情報パケット603もローカルブリッジユニット610へ送信する。リモート情報パケット603は、リモートブリッジユニット611により送信された次のパケットについて宛先エージェント612が予想したシーケンス番号を含んでいる。ローカルブリッジユニット610は、シーケンス番号B1のACK603Aで応答する。ローカルブリッジユニット610は、このリモート情報をパケット604(シーケンス番号A1)によりソースエージェント609へ渡し、ソースエージェントはシーケンス番号A1のACKパケット604Aを用いて肯定応答を返す。
この時点で、実際のメモリ要求を最終的な宛先へ転送するのに十分な信号が行なわれた。この予備的な信号はいくつかの理由により行なわれるが、たとえば、リモート情報(リモートエージェントに格納されている予想されたシーケンス番号)を入手してフェイルオーバープロトコルを有効にし、一時的な障害に適応できるようにするためなどが含まれる。フェイルオーバープロトコルについてはさらに詳細を後述する。
リモート情報を入手後、ソースエージェントは、シーケンス番号A2のパケット605をローカルブリッジユニット610へ送信する。パケット605は、リモート情報がすでに入手されているので、要求が最終的な宛先へ送信可能であることを示す。ローカルブリッジユニット610は、シーケンス番号A2のACKパケット605Aを送信する。ローカルブリッジユニット610は、パケット606(シーケンス番号B2)としてRead_privateパケットをリモートブリッジユニット611へ送信し、パケット606はACKパケット606A(シーケンス番号B2)によって肯定応答が返される。同様に、リモートブリッジユニット611は、Read_privateパケットをパケット607(シーケンス番号C0)として転送し、パケット607はACKパケット607A(シーケンス番号C0)によって肯定応答が返される。この時点で、リモートブリッジユニットは、エンド・ツー・エンド確認を開始し、Read_private要求が受信されたことを、パケット608を送信することによってソースエージェント609へ通知する。このエンド・ツー・エンド確認は、ローカルブリッジユニット610によりパケット609(シーケンス番号A3)を介してソースエージェント609へ転送される。パケット608および609には、それぞれACKパケット608A(シーケンス番号B3)および609A(シーケンス番号A3)が伴うことは勿論である。
ここで図2に関して説明した信号シーケンスを思い出すと、直前の信号シーケンスは転送Xと類似している。トランザクション全体は、宛先エージェント612がこれまでのブリッジプロトコルを繰り返して実際のdata_returnをソースエージェント609へ送信すると終了する。
ブリッジプロトコルは任意の数のCPUエージェント、メモリコントローラおよびブリッジユニットにおいて実施可能であることが理解されるはずである。ブリッジプロトコルの利点は、多数のシーケンスドメインをまたぐメモリ要求および応答が容易になることである。システムを複数のシーケンス番号ドメインに分割することによって、シーケンス番号ストリームのためにコントローラデバイスに課されるメモリ要件が大幅に削減される。したがって、本発明により、数千個のプロセッサおよびメモリコントローラを含むシステムに対し、信頼性のあるトランスポートプロトコルが可能となる。
図7は、フェイルオーバープロトコルの好ましい実施形態に関する信号シーケンスを示している。フェイルオーバープロトコルを実施するシステムは、図6に示すシステムと同様である。しかしながら、本システムは、2つのローカルブリッジユニット714aおよび714bと、2つのリモートブリッジユニット715aおよび715bとを備え、ソースエージェント713から宛先エージェント716への代替の経路およびこれと逆方向への代替の経路を提供している。信号シーケンスは、図6に示す信号シーケンスと同じ方法で開始される(このため、ACKパケットステップを含むいくつかのステップは簡潔のために省略した)。すなわち、(a)ソースエージェントはメモリ要求701を送信する。(b)ローカルブリッジエージェント714aはメモリ要求702を送信する。(c)リモートブリッジユニット715aは宛先シーケンス番号を含むリモート情報パケット703で応答する。(d)ローカルブリッジユニット714aが宛先シーケンス番号を含むパケット704を送信する。(e)ソースエージェント713は、要求パケットが宛先まで転送可能であることを示す転送パケット705を送信する。(f)ローカルブリッジユニット714aは要求パケットをメッセージ706により転送する。
この時点で信号シーケンスは異なる。リモートブリッジユニット715aはメッセージ707を介してこの要求パケットを宛先エージェントへ転送する。しかしながら、メッセージ707は、電気ノイズ、一時的なデバイスの動作不良、電力損失、配線障害等の一時的なエラーにより宛先エージェント716まで到着しない。ソースエージェント713は、適切なエンド・ツー・エンド確認パケットを所定の期間待つ。しかしながら、このパケットは、宛先エージェント716がメッセージ707を受信しなかったため到着しない。ソースエージェント713は、エンド・ツー・エンド確認パケットを待っている際のペンディング状態の時間を計測する。タイムアウト時間が経過すると、ソースエージェント713は、メッセージ708を経由して別の経路により、この場合ローカルブリッジユニット714bを介してメモリ要求パケットを再発行する。ソースエージェント713は受信リモート情報(予想されたシーケンス番号が含まれている)を組み込み、この新たなパケットを宛先エージェント716が誤った重複パケットではなく有効な要求として認識するようにする。このように、代替の経路は、メッセージ709、710、711および712を使用して首尾よく完了する。
なお、タイムアウト機構は本システムの他の部分において実施可能であることが理解されるはずである。たとえば、タイムアウト機構はローカルブリッジユニット714aにおいて実施することも可能である。この場合、ローカルブリッジユニット714aにより、すでにメッセージ706に含まれているメッセージの、新たなメッセージを介する再送は、代替としてリモートブリッジユニット715bを経由させることができる。また、一時的なエラーがいくつか発生しても2つ以上の代替の経路で再送できることがさらに理解されるはずである。同様に、本システムおよび方法は、複数のルートの中から1つのルートで任意の回数再送を試みた後で代替のルートを選択することもできる。
以下においては、本発明の種々の構成要件の組み合わせからなる例示的な実施態様を示す。
1.第1および第2のシーケンス番号ドメイン間の通信を容易にするブリッジユニットであって、
前記第1のシーケンス番号ドメインのメッセージを受信する第1の受信部(501a)と、
前記第2のシーケンス番号ドメインのメッセージを受信する第2の受信部(501b)と、
前記第1のシーケンス番号ドメインまたは前記第2のシーケンス番号ドメインのうちのいずれかに含まれる要素へ先に送信されたパケットに関連する一連の送信シーケンス番号を含む送信シーケンス番号テーブル(503)と、
前記第1または第2のシーケンス番号ドメインのうちの一方に配置された要素から受信したメッセージに応答してデータベースエントリを作成する手段と、次の送信シーケンス番号を取得する手段と、前記受信したメッセージおよび前記次の送信シーケンス番号からの情報を含むトランザクションメッセージを他方のシーケンス番号ドメインに配置された要素へ送信する手段とを含むブリッジデータベース部(504)と、
からなるブリッジユニット。
2.第1の一連の受信シーケンス番号を含む第1の受信シーケンス番号テーブル(502a)であって、前記第1の一連のシーケンス番号のそれぞれが前記第1のシーケンス番号ドメインの要素から先に受信されたメッセージと関連する、第1の受信シーケンス番号テーブル(502a)と、
第2の一連の受信シーケンス番号を含む第2の受信シーケンス番号テーブル(502b)であって、前記第2の一連のシーケンス番号のそれぞれが前記第2のシーケンス番号ドメインの要素から受信された先のメッセージと関連する、第2の受信シーケンス番号テーブル(502b)と、
をさらに含む、項番1のブリッジユニット。
3.前記第1の受信部は、
前記第1のシーケンス番号ドメインに配置された要素から、受信シーケンス番号を含むメッセージを受信する手段と、
前記要素と関連する次に予想される受信シーケンス番号を取得する手段と、
前記受信された受信シーケンス番号を前記予想される受信シーケンス番号と比較し、前記受信された受信シーケンス番号と前記予想される受信シーケンス番号が一致しない場合に前記メッセージは破棄されるようにする手段と、
をさらに含む、項番2のブリッジユニット。
4.マルチプロセッサシステムにおける信頼性のあるデータ通信を保証する方法であって、
宛先アドレスと関連するトランザクション要求を受信するステップと、
次の送信シーケンス番号を取得するステップと、
前記トランザクション要求に対応するデータベースエントリを作成するステップと、
前記宛先アドレスおよび前記次の送信シーケンス番号を含むトランザクションメッセージを送信するステップと、
すでに送信された送信シーケンス番号を含む確認パケットについて受信メッセージをモニタするステップと、
からなる方法。
5.前記確認パケットが所定時間内に受信されない場合、前記トランザクションメッセージを再送するステップをさらに含む、項番4の方法。
6.前記確認パケットが所定時間内に受信されない場合、代替の経路を介するようルーティングして前記トランザクションメッセージを再送するステップをさらに含む、項番4の方法。
7.前記送信するステップは、前記宛先アドレスが前記送信するステップを実行する要素に関連するシーケンス番号ドメインと関連していない場合、前記トランザクションメッセージがブリッジユニットへルーティングされるようにするサブステップをさらに含む、項番4の方法。
8.前記宛先アドレスは、前記送信するステップを実行する前記要素と関連する前記シーケンス番号ドメインと関連せず、
前記宛先アドレスと関連する要素により予想された次のシーケンス番号を含むリモート情報を受信するステップをさらに含む、項番7の方法。
9.前記宛先アドレスと関連する要素からのエンド・ツー・エンド確認パケットについて受信メッセージをモニタするステップをさらに含む、項番8の方法。
10.前記エンド・ツー・エンド確認パケットが所定時間内に受信されない場合、代替のルートを介してメッセージを再送するステップをさらに含む、項番9の方法。
501a 第1の受信部
501b 第2の受信部
502a 第1の受信シーケンス番号テーブル(RSNT)
502b 第2の受信シーケンス番号テーブル(RSNT)
503 送信シーケンス番号テーブル(SSNT)
504 ブリッジデータベース部

Claims (3)

  1. 複数の要素を含むマルチプロセッサシステムであって、
    複数のメモリコントローラと、
    送信シーケンス番号を含むメッセージを生成する複数のCPUエージェントと、
    前記送信シーケンス番号を記憶するための送信シーケンス番号テーブルであって、該送信シーケンス番号のそれぞれが前記複数の要素のうちの一要素に送信された以前のメッセージに関連するものである、送信シーケンス番号テーブルと、
    トランザクション要求に対応するデータベースエントリを作成するためのトランザクションデータベースユニットであって、該トランザクション要求が宛先アドレスに関連するものである、トランザクションデータベースユニットと、
    前記シーケンス番号テーブルを参照して次の送信シーケンス番号を取得するための手段と、
    前記次の送信シーケンス番号と前記宛先アドレスとを含むトランザクションメッセージを送信するための送信手段と、
    を含み、前記送信シーケンス番号テーブルは、前記CPUエージェント、及び/又は前記メモリコントローラに配置され
    前記トランザクションデータベースユニットは、入ってくるメッセージを以前に送信された送信シーケンス番号を含む肯定応答パケットについて監視する手段をさらに含み、
    前記送信手段は、前記肯定応答パケットが所定の時間内に受信されなかった場合、代替経路を介して前記トランザクションメッセージを再送信するようにさらに構成される、マルチプロセッサシステム。
  2. 前記複数の要素が複数のシーケンス番号ドメインのうちの1つのシーケンス番号ドメインに配置され、前記宛先アドレスが前記1つのシーケンス番号ドメインに配置された要素に関連するものでない場合、前記トランザクションメッセージはブリッジユニットにルーティングされ、
    前記トランザクションデータベースユニットは、前記宛先アドレスが前記1つのシーケンス番号ドメインに配置された要素に関連するものでない場合、入ってくるメッセージをエンド・ツー・エンドの肯定応答について監視するための手段を含む、請求項1のマルチプロセッサシステム。
  3. ブリッジユニットであって、
    第1のシーケンス番号ドメインのメッセージを受信するための第1の受信部と、
    第2のシーケンス番号ドメインのメッセージを受信するための第2の受信部と、
    一連の送信シーケンス番号を含む送信シーケンス番号テーブルであって、該送信シーケンス番号が前記第1のシーケンス番号ドメインおよび前記第2のシーケンス番号ドメインのうちのいずれか一方に含まれる要素に送信された以前のパケットに関連するものである、送信シーケンス番号テーブルと、
    前記第1のシーケンス番号ドメインおよび前記第2のシーケンス番号ドメインのうちのいずれか一方に配置された要素からの受信メッセージに応答してデータベースエントリを作成する手段と、前記送信シーケンス番号テーブルから次の送信シーケンス番号を取得する手段と、前記受信メッセージから得られた情報と前記次の送信シーケンス番号とを含むトランザクションメッセージを他方のシーケンス番号ドメインに配置された要素へ送信する手段とを含む、ブリッジデータベース部と
    からなるブリッジユニット。
JP2009123656A 2001-03-09 2009-05-22 マルチプロセッサ相互接続ネットワークのためのトランスポート層プロトコル Pending JP2009205692A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/803,519 US6615221B2 (en) 2001-03-09 2001-03-09 Scalable transport layer protocol for multiprocessor interconnection networks that tolerates interconnection component failure

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2002058873A Division JP2002373158A (ja) 2001-03-09 2002-03-05 マルチプロセッサ相互接続ネットワークのためのトランスポート層プロトコル

Publications (1)

Publication Number Publication Date
JP2009205692A true JP2009205692A (ja) 2009-09-10

Family

ID=25186716

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2002058873A Pending JP2002373158A (ja) 2001-03-09 2002-03-05 マルチプロセッサ相互接続ネットワークのためのトランスポート層プロトコル
JP2009123656A Pending JP2009205692A (ja) 2001-03-09 2009-05-22 マルチプロセッサ相互接続ネットワークのためのトランスポート層プロトコル

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2002058873A Pending JP2002373158A (ja) 2001-03-09 2002-03-05 マルチプロセッサ相互接続ネットワークのためのトランスポート層プロトコル

Country Status (2)

Country Link
US (1) US6615221B2 (ja)
JP (2) JP2002373158A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014529828A (ja) * 2011-09-02 2014-11-13 トレーディング テクノロジーズ インターナショナル インコーポレイテッド メッセージ・ストリーム・インテグリティ

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7114096B2 (en) * 2003-04-02 2006-09-26 International Business Machines Corporation State recovery and failover of intelligent network adapters
KR100631201B1 (ko) * 2004-02-11 2006-10-04 삼성전자주식회사 백오프 기법을 사용하는 비용 기반의 라우팅방법
US20050228851A1 (en) * 2004-03-29 2005-10-13 Intel Corporation Configuration of redirection tables
US7995054B2 (en) * 2005-11-21 2011-08-09 Leica Geosystems Ag Identification of edge regions from 3D point data
US8005972B2 (en) * 2006-06-26 2011-08-23 International Business Machines Corporation Detection of inconsistent data in communications networks
US9304964B2 (en) * 2006-06-30 2016-04-05 Intel Corporation Separable transport layer in cache coherent multiple component microelectronic systems
US8131941B2 (en) * 2007-09-21 2012-03-06 Mips Technologies, Inc. Support for multiple coherence domains
US20090089510A1 (en) * 2007-09-28 2009-04-02 Mips Technologies, Inc. Speculative read in a cache coherent microprocessor
US8392663B2 (en) * 2007-12-12 2013-03-05 Mips Technologies, Inc. Coherent instruction cache utilizing cache-op execution resources
US20090248988A1 (en) * 2008-03-28 2009-10-01 Mips Technologies, Inc. Mechanism for maintaining consistency of data written by io devices
US8179792B1 (en) 2008-06-06 2012-05-15 Sprint Communications Company L.P. Packet de-duplication
JP2010033188A (ja) * 2008-07-25 2010-02-12 Fujitsu Ltd 送信経路選択装置、データ送信システム、コンピュータ装置および送信経路選択方法
JP5392034B2 (ja) * 2009-12-01 2014-01-22 富士通株式会社 通信装置および通信方法
US8914390B2 (en) 2011-07-12 2014-12-16 Facebook, Inc. Repetitive query recognition and processing
US8903951B2 (en) 2011-07-12 2014-12-02 Facebook, Inc. Speculative database authentication
US8756217B2 (en) 2011-07-12 2014-06-17 Facebook, Inc. Speculative switch database
US9619508B2 (en) * 2011-07-12 2017-04-11 Facebook, Inc. Speculative begin transaction
US9172653B2 (en) * 2011-07-21 2015-10-27 Hewlett-Packard Development Company, L.P. Sending request messages to nodes indicated as unresolved
US11531621B2 (en) * 2020-01-30 2022-12-20 Microsoft Technology Licensing, Llc Selective endpoint isolation for self-healing in a cache and memory coherent system
CN113726485A (zh) * 2021-07-15 2021-11-30 深圳市有为信息技术发展有限公司 用于商用车车载终端的多处理器间的通信方法及车载终端

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0214638A (ja) * 1988-06-30 1990-01-18 Nec Corp 電文処理方式
JPH09128349A (ja) * 1992-12-17 1997-05-16 Tandem Comput Inc フェイル−ファースト、フェイル−ファンクショナル、フォルトトレラント・マルチプロセッサ・システム
JPH09186686A (ja) * 1995-12-28 1997-07-15 Mitsubishi Electric Corp 網管理システム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5309437A (en) * 1990-06-29 1994-05-03 Digital Equipment Corporation Bridge-like internet protocol router
US5500860A (en) * 1991-06-14 1996-03-19 Digital Equipment Corporation Router using multiple hop redirect messages to enable bridge like data forwarding
EP0556148B1 (en) * 1992-01-10 1998-07-22 Digital Equipment Corporation Scheme for interlocking a line card to an address recognition engine
US6023563A (en) * 1996-08-20 2000-02-08 Shani; Ron Networking switch having the network presence of a bridge
US5802319A (en) * 1996-10-23 1998-09-01 Hewlett-Packard Company Method and apparatus for employing an intelligent agent to cause a packet to be sent to update a bridge's filtering database when a station is moved in a network
US6134235A (en) * 1997-10-08 2000-10-17 At&T Corp. Pots/packet bridge
US20010033554A1 (en) * 2000-02-18 2001-10-25 Arun Ayyagari Proxy-bridge connecting remote users to a limited connectivity network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0214638A (ja) * 1988-06-30 1990-01-18 Nec Corp 電文処理方式
JPH09128349A (ja) * 1992-12-17 1997-05-16 Tandem Comput Inc フェイル−ファースト、フェイル−ファンクショナル、フォルトトレラント・マルチプロセッサ・システム
JPH09186686A (ja) * 1995-12-28 1997-07-15 Mitsubishi Electric Corp 網管理システム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014529828A (ja) * 2011-09-02 2014-11-13 トレーディング テクノロジーズ インターナショナル インコーポレイテッド メッセージ・ストリーム・インテグリティ
US9154393B2 (en) 2011-09-02 2015-10-06 Trading Technologies International, Inc. Order feed message stream integrity
US10152751B2 (en) 2011-09-02 2018-12-11 Trading Technologies International, Inc. Order feed message stream integrity
US10311518B2 (en) 2011-09-02 2019-06-04 Trading Technologies International, Inc. Order feed message stream integrity

Also Published As

Publication number Publication date
US20020129029A1 (en) 2002-09-12
JP2002373158A (ja) 2002-12-26
US6615221B2 (en) 2003-09-02

Similar Documents

Publication Publication Date Title
JP2009205692A (ja) マルチプロセッサ相互接続ネットワークのためのトランスポート層プロトコル
Ziakas et al. Intel® quickpath interconnect architectural features supporting scalable system architectures
US9009556B2 (en) Error correction and recovery in chained memory architectures
US8305879B2 (en) Peripheral component switch having automatic link failover
US7958388B2 (en) Methods and systems for a storage system
US6545981B1 (en) System and method for implementing error detection and recovery in a system area network
JP4664159B2 (ja) 独立したエラー回復機能を有するスレーブ装置
US8244825B2 (en) Remote direct memory access (RDMA) completion
JP5376371B2 (ja) 並列コンピューティング・システムに使用されるネットワーク・インターフェース・カード
US7069392B2 (en) Methods and apparatus for extended packet communications between multiprocessor clusters
US6938091B2 (en) Static end to end retransmit apparatus and method
US9973424B1 (en) Storage system with flow based services for flash storage
US7953902B2 (en) Negotiable exchange of link layer functional parameters in electronic systems having components interconnected by a point-to-point network
US7707351B2 (en) Methods and systems for an identifier-based memory section
US6975626B1 (en) Switched network for low latency communication
US7415565B2 (en) Methods and systems for a storage system with a program-controlled switch for routing data
US6922804B2 (en) Dynamic end to end retransmit apparatus and method
CN115437978A (zh) 高速外围组件互连接口装置及其操作方法
JP4453238B2 (ja) 2重化プロセッサシステム
JPH10187534A (ja) コヒーレントメモリシステムにおいて強い順序づけを維持する方法およびシステム
Scott The SCX channel: A new, supercomputer-class system interconnect
JP2972193B2 (ja) 高速シリアルリンクのバッファをパージする方法、及び該方法を実施する装置
Farazdel et al. Understanding and using the SP Switch
JP2005285139A (ja) 記憶装置システム
JPH06232943A (ja) 通信装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110607

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110905

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110908

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111207

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120327