JP2006012133A - 双方向性リング相互接続路を有する多重プロセッサチップ - Google Patents

双方向性リング相互接続路を有する多重プロセッサチップ Download PDF

Info

Publication number
JP2006012133A
JP2006012133A JP2005146725A JP2005146725A JP2006012133A JP 2006012133 A JP2006012133 A JP 2006012133A JP 2005146725 A JP2005146725 A JP 2005146725A JP 2005146725 A JP2005146725 A JP 2005146725A JP 2006012133 A JP2006012133 A JP 2006012133A
Authority
JP
Japan
Prior art keywords
semiconductor chip
ring structure
address space
processors
packet
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
JP2005146725A
Other languages
English (en)
Inventor
George Chrysos
クリュソス ジョージ
Matthew Mattina
マッティナ マシュー
Stephen Felix
フェリックス ステファン
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2006012133A publication Critical patent/JP2006012133A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8015One dimensional arrays, e.g. rings, linear arrays, buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】単一ダイ上への複数の構成要素のオンチップ集積化、特に複数のプロセッサのオンチップ集積化を可能にするアーキテクチャの提供。
【解決手段】一般に一つの半導体チップの一つの実施形態は、複数のプロセッサ、前記プロセスの間で共有される一つのアドレス空間、及び前記複数のプロセッサと前記アドレス空間とを連結する一つの双方向性リング相互接続路を含む。一つの方法の一つの実施形態は、複数のリング相互接続路上の一つのパケット発信元とあて先との間の複数の距離を計算すること、どの相互接続路によって前記パケットを移送するか決定すること、及び、前記決定した相互接続路によって前記パケットを移送することを含む。複数の実施形態は、一つの多重プロセッサチップにおける待ち時間及び情報処理量の向上を提供する。典型的な複数の応用には、チップ多重プロセッシングが含まれる。
【選択図】図1

Description

本発明の複数の実施形態は、一般に単一ダイ上への複数の構成要素のオンチップ集積化、特に複数のプロセッサのオンチップ集積化に関する。
半導体製造は、ますます多くの機能を単一のシリコン・ダイ上に含め、より優れたプロセッシングを提供する複数の傾向を示している。これを達成するために、単一のチップ上に複数のプロセッサが集積化されてきた。 バロソ(Barroso)は、非特許文献1の中で、複数の中央処理装置(CPU)の一つのオンチップ集積化を説明している。バロソは、一つのチップ多重プロセッサ上の複数のCPUの間で共有される大きなキャッシュは、共有メモリ・データベースの複数の作業負荷の処理能力に有益であることを明らかにしている。また、バロソの非特許文献2も参照されたい。また、バロソは、複数の「リードダーティ」キャッシュ・オペレーション(一つのCPUがデータを書き、他の異なる一つのCPUが読み取る)方式は、単一CPUチップ方式の複数のシステム(例、マーベル・アルファ・システム)上で実行されている複数の作業負荷の処理性能よりはるかに優れていることを明らかにしている。さらに、バロソは、単一のダイ上に複数のCPUと一つの大きな共有キャッシュを置くことによって、このような複数のキャッシュ・オペレーションの交信待ち時間が短縮され、処理能力が大幅に増加することを明らかにしている。バロソの方式では、前記複数のプロセッサと一つのキャッシュとは、複数の汎用バスの一つのセット及び一つのクロスバ・スイッチで接続されている。
「ピラニア:単一チップ多重処理に基づく一つの拡張可能なアーキテクチャ(Piranha:A Scalable Architecture Based on Single−Chip Multiprocessing)」(2000年6月、コンピュータ・アーキテクチャ第27回国際年度シンポジウム会報) 「複数のOLTP作業負荷の処理能力に関するチップレベル集積化の影響(Impact of Chip−level Integration on Performance of OLTP Worklords)」(高性能コンピュータ・アーキテクチャ第6回国際シンポジウム、2000年1月)
しかしながら、複数のクロスバ・スイッチ及び複数のバスにおける一つの問題は、多くの潜在的遠隔リクエスタが、一つの汎用資源をアービトレートしようとするので、コストの高いアービトレーション・ロジックが必要なことである。これにより、長い待ち時間、及びおそらくは、一つの大きなダイ面積と電力消費とが要ることになる。 複数のプロセッサを単一チップ上に前記集約化するもう一つの問題は、前記チップ上のトランジスタ及び配線の数の増加である。複数のゲートパターン長さが減少して複数のトランジスタ速度が増加しているのに、複数の線伝搬速度はそれに比例して増加しない。一般的に、複数の長い配線はトランジスタゲートの複数の速度に見合っていない。一つの結果として、0.1ミクロン以下のテクノロジーにおいて高い複数のクロック速度を達成するためには、線伝搬遅延及びクロック・スキューが、複数の主要要素となる。
一つの一般的な解決法は、一つ以上の隣接するデバイスを同期させて、大域クロックを複数のパッチと呼ばれるローカル・クロックに分けることであった。しかしながら、これは、複数のクロック・パッチをトラバースする複数の信号に対しては、より多くのクロック・スキューを発生させるので、前記増加したクロック・スキューを送信先のクロック・パッチと同期させなければならないことが一つの問題となる。したがって、複数のクロック・パッチ間の路線距離を短縮し、これにより顕著なクロック・スキューの可能性を低減するため、サイクルタイムにより多くの圧力がかかる。複数のクロスバ・スイッチや複数のバスのような、前記チップ上の複数の大きな距離をつなぐ複数の接続技術が、前記線伝搬遅延及びクロック・スキューを悪化させることがある。
一つのチップ上の、複数のCPUと一つの共有キャッシュとの間の通信の待ち時間及び情報処理量は、性能に大きく影響する。前記複数のCPUから前記共有キャッシュへの前記待ち時間は短くて、前記共有キャッシュ(又は他の複数のCPU)から前記複数のCPUへの情報処理量は高いことが望ましい。しかしながら、一部の接続技術は、待ち時間及び情報処理量の改善に対する一つの制約となっている。複数のCPUが、複数のプログラム又は複数のスレッドを実行しているとき、これらは、基礎としている前記接続技術に一つの高い依存をしている。したがって、複数プロセッサの複数の構成では、線伝搬遅延及びクロック・スキューを減じることが重要となる。 「アーキテクチャガイド:C−5e/C−3eネットワーク・プロセッサ、シリコンB0型」(モトローラ社、2003年)に記載されているように、モトローラは、単一方向性リングにより接続された単一チップ上の複数のプロセッサを内蔵する一つのチップ多重プロセッサを実現し、複数のパケットが前記複数の構成要素間を移動する前記リング上の複数の距離を低減した。前記複数のプロセッサと他の複数の構成要素との間の交信は、前記リングを単一の方向に流れる。 しかしながら、前記単一方向性リングの問題は、前記待ち時間及び情報処理量が、接続技術になお制約されることである。一つの上流のプロセッサと通信するために、複数のパケットは、前記上流のプロセッサに到達する前に前記リング全体をトラバースしなければならない。したがって、現今の技術において、効率的で高速なシステム性能を提供するオンチップ集積化のための一つの接続技術が求められている。
本発明の複数の実施形態は、複数のプロセッサ、前記プロセッサの間で共有される一つのアドレス空間、及び前記複数のプロセッサと前記共有アドレス空間とをともに連結するための一つの双方向性リング相互接続路を含む一つの半導体チップを、提供することができる。本発明の一つの実施形態に従って、前記複数のプロセッサに、複数のCPUを含めることができ、前記アドレス空間に一つの大きな共有キャッシュを含めることができる。また、本発明の複数の実施形態は、前記複数のプロセッサと前記共有アドレス空間との間で複数のパケットを移送するための、前記双方向性リング相互接続路上の移送方向を選定する一つの方法を提供することができる。前記方法は、一つのパケットの発信元とあて先との間の前記距離を一つの時計回り方向、及び、前記距離を一つの反時計回り方向で計算し、前記計算された複数の距離に基づいて前記パケットをどちらの方向へ移送するかを決定し、前記決定した方向に応じて、その方向にパケットをリング上移送することを含む。
本発明の複数の実施形態は、複数のプロセッサの一つのオンチップ集積化に対して、待ち時間の低減と情報処理量の増大を有益に提供することができる。これは、トランザクション処理、データマイニング、ジャバやドットネットのような複数の管理実行時環境、及びウエブやeメール運用といった、複数の並行処理共有メモリ・アプリケーションに特に有益である。
図1は、本発明の一つの実施形態に従って、一つの双方向性リング相互接続路に連結された複数のノードを含む一つの半導体チップである。様々な複数のアクセス・ポイントにおいて、複数のノード110(1)ないし110(n)を双方向性リング相互接続路120につなぐことができる。複数のパケットは、相互接続路120上の複数のノード110(1)ないし110(n)の間を、時計回り方向又は反時計回り方向、いずれかの向きに移動する。
複数のノード110(1)ないし110(n)には、一つの半導体チップ上に備えられた、一つのプロセッサ、キャッシュ・バンク、メモリ・インタフェース、入力/出力インタフェース、及びパケットを取り扱う他のこのようないっさいの構成要素を含めることができる。図1の中の本発明一つの実施形態において、大きな単一の共有キャッシュを、論理的に複数のサブセットに分割することによって、複数のノード110(1)ないし110(n)を複数のキャッシュ・バンクとして実行することができる。各キャッシュ・バンクは、前記単一キャッシュ中の前記アドレス空間の一部を含むことができ、前記単一キャッシュ中の前記アドレス空間の前記一部に対する複数のブロック要求(読取り、書込み、無効化)を独立して処理することができる。各キャッシュ・バンク・ノードは、相互接続路120上にそれ自身のアクセス・ポイント又はアドレス・ストップを持つことができる。
図1において、相互接続路120に、複数の単一方向性路線(図示せず)を含めることができ、前記複数路線の一つの第一セットは一つの時計回り方向に複数のパケットを移送し、一つの第二セットは、一つの反時計回り方向に複数のパケットを移送することができる。単一方向性複数路線の各セットは、一つの特定目的(例、複数のアドレスコマンドの送信)、又は、一つの汎用目的(例、複数のパケット・タイプ(アドレス要求、データ、キャッシュ・コヒーレンス・プロトコル・メッセージ等)への対応)のいずれかを持つことができる。これに換えて、単一方向性複数路線の各セットを、一つの単一パケットタイプを移送するように指定することができる。上記の代わりに、図1において、相互接続路120に、両方向へ複数のパケットを移送することができる複数の双方向性路線を含めることができる。この代替実施形態において、前記半導体に、一つの特定のトランザクションの間、各路線を一つの所望の方向に切り替えて複数のパケットを移送するスイッチング論理素子を含めることができる。相互接続路120は、様々な速度で複数のパケットを移送することができる。例えば、相互接続路120は、クロックサイクルあたり一つ以上のノード、又は2以上のクロックサイクル毎に一つのノードの一つの速度で複数のパケットを移送することができる。トラヒック量、クロック速度、ノード間の距離等を含む多くの要素が前記移送速度を決めることになる。一般に、一つのノードは、すでに相互接続路120上及び前記ノード点にあるいっさいのパケットが前記ノードを通過するまで、一つのパケットを相互接続路120へ注入するのを遅らせる。図2は、本発明の一つの実施形態に従って、複数のリング相互接続路に連結された複数のノードを包含する一つの半導体チップである。複数のノード210(1)ないし210(n)を、様々な複数のアクセスポイント又はストップにおいて、複数のリング相互接続路220(1)ないし220(m)に接続することができる。各ノードは、複数のパケットを他のノードに移送する経路として、複数のリング相互接続路220(1)ないし220(m)のどれでも選定することができる。
一つの実施形態において、図2中の前記すべての接続路を単一方向性にし、その一部の複数の相互接続路には一つの時計回り方向だけに複数のパケットを移送させ、他の複数の相互接続路には一つの反時計回り方向だけに複数のパケットを移送させることができる。
代わりの一つの実施形態において、図2中の一部の複数の相互接続路を単一方向性にし、他の複数のものを双方向性にすることができる。本代替実施形態において、前記複数の単一方向性相互接続路の一部には一つの時計回り方向だけに複数のパケットを移送させ、他のものは一つの反時計回り方向だけに複数のパケットを移送させることができる。前記複数の双方向性相互接続路は、図1の前記双方向性相互接続路の動作に一致して、両方向に複数のパケットを移送することができる。
図3は、本発明の一つの実施形態に従って、単一の双方向性リング相互接続路に連結された一つの多重プロセッサチップを包含する一つの多重プロセッサ・システムである。図3において、多重プロセッサチップ300に、複数のCPU310(1)ないし310(n)、キャッシュ・バンク330、大域コヒーレンス・エンジンインタフェース340、及び入力/出力(「I/O」)インタフェース350を含め、これらすべてを双方向性相互接続路120に連結することができる。双方向性相互接続路120に連結された各構成要素は、前記相互接続路上における自分の場所を識別するための一つのノード番号を持つことができる。
図3において、CPU310(1)に、減算器305を含めることができ、これを一つのハードウエアとして備え、CPU310(1)と、双方向性リング相互接続路120上の他のいっさいのノードとの間の前記距離を計算させることができる。減算器305は、CPU310(1)と一つのあて先ノードとの間の距離を、CPU310(1)の前記ノード番号から前記あて先ノードの前記ノード番号を差し引くことによって計算することができる。減算器305は、時計回り方向及び反時計回り方向の両方向の前記距離を計算することができる。CPU310(1)は、前記計算された複数の距離を使って、どちらの方向に複数のパケットを移送するかを選定することができる。一般に、前記複数のパケットを移送するために、最短距離を持つ方向が選定されることになるが、これだけが解決策ではない。別の複数の方向選定方法が考慮されており、以下に説明する。図3において、CPU310(n)に、例えば、一つのハードウエア・デバイスであって、減算器305と同様な機能を使ってCPU310(n)と双方向性リング相互接続路120中の他のいっさいのノードとの間の距離を計算するようプログラムすることができる、プログラム可能な有限状態機械315を含めることができる。一つの実施形態において、プログラム可能な有限状態機械315に対し、複数のパケットを移送する双方向性リング相互接続路120上の前記方向について、一つの参照テーブルを検索するようにプログラムすることができる。例えば、前記参照テーブルに、時計回り方向及び反時計回り方向の2つの複数入力欄を含めるよう初期化することができる。プログラム可能有限状態機械315は、CPU310(n)と、前記時計方向及び前記時計反対方向での前記あて先ノードとの間の前記距離を計算した後、前記計算された複数の距離に基づいて、前記参照テーブルの複数の入力欄の一つを取り出すことができる。図3中の別の一つの実施形態において、複数のCPU310(1)ないし310(n)は、ソフトウエアを使って、自分たちと前記複数のあて先ノードとの間の距離をそれぞれ計算することができる。CPU310(1)ないし310(n)の各々は、計算された複数の距離に基づいて、双方向性リング相互接続路120上のどちらの方向に複数のパケットを移送するかを決定することができる。本発明の一つの実施形態に従って、複数のパケットを移送する前記方向を、パケットの一つのI発信元とあて先との間の最短距離を提供する方向、より少ないトラヒックを提供する方向、又は、一つの特定のトランザクションに対する他のいずれかの所望基準による方向として選定することができる。図3において、複数のCPU310(1)ないし310(n)の各々は、図3中に示した複数の構成要素及び複数の構成方式に限定されないことを理解されたい。したがって、本発明の複数の実施形態には、本明細書に記載した前記計算を実施するための一つの減算器、一つのプログラム可能有限状態機械、一つのプロセッサ、他のいっさいのこのような構成要素、又はこれらのいっさいの組合せを用いることができる。また、減算器305及びプログラム可能な有限状態機械315を、双方向性リング相互接続路120上の複数のキャッシュ・バンク320(1)ないし320(m)のどれにでも、あるいは、その他のいっさいのノードに連結することができる。また、減算器305及びプログラム可能な有限状態機械315を、双方向性リング相互接続路120に連結し、双方向性リング相互接続路120上の一つ以上のノードにこれを共有させることができる。図3において、複数のキャッシュ・バンク320(1)ないし320(m)は、前記したように、一つの大きな共有キャッシュの複数のサブセットであってもよい。各キャッシュ・バンクは、前記単一キャッシュ中の前記アドレス空間の特定の複数の部分を処理することができる。図3中のメモリ・インタフェース330を、双方向性リング相互接続路120及びバス360に連結して、システム・メモリ370と、多重プロセッサ300上の前記複数のノード(すなわち、複数のCPU310(1)ないし310(n)及び複数のキャッシュ・バンク320(1)ないし320(m))との間に一つのインタフェースを設けることができる。多重プロセッサチップ300上のすべてのノードの間でメモリ・インタフェース330を共有させ、システム・メモリ370と、前記複数のノードとの間で複数のパケットを移送させることができる。
同様に、大域コヒーレンス・エンジンインタフェース340を、双方向性リング相互接続路120及びバス360に連結して、多重プロセッサチップ300と、他の一つ以上の多重プロセッサ380との間に一つのインタフェースを設けることができる。多重プロセッサチップ300上のすべてのノードに大域コヒーレンス・エンジンインタフェース340を共有させ、多重プロセッサチップ300上の前記複数のノードと他の一つ以上の多重プロセッサチップ380上の複数のノードとの間で複数のパケットを移送させることができる。図3中のI/Oインタフェース350を、双方向性リング相互接続路120及びバス360に連結して、I/O装置390と、多重プロセッサチップ300上の前記複数のノードとの間に一つのインタフェースを設けることができる。多重プロセッサチップ300上のすべてのノードにI/Oインタフェース350を共有させ、多重プロセッサチップ300上の前記複数のノードとI/O装置390との間で複数のパケットを移送させることができる。前記多重プロセッサ・システムは、図3の前記複数の構成要素に限定されるものでなく、パケットを取り扱えるいっさいの複数の構成要素を含むことができることを理解されたい。本発明に従った一つの実施形態における一つの通信の一つの例には、一つのキャッシュ・バンクの中の一つのキャッシュ・ブロックを要求する一つのプロセッサ、例えば、キャッシュ・バンク320(m)から一つのキャッシュ・ブロックを要求するCPU310(1)を含めることができる。CPU310(1)は、キャッシュ・バンク320(m)への前記距離の時計回り方向及び反時計回り方向の両方を計算できる。CPU310(1)は、計算された複数の距離に基づいて、その要求を送信する一つの方向を選定することができ、CPU310(1)は、そのアクセスポート又はストップを通して、双方向性リング相互接続路上の一つのリング・スロット中に一つのアドレスを挿入することができる。前記アドレスは、前記要求されたアドレスに関連するデータを含むキャッシュ・バンク320(m)の前記アクセスポート又はストップに到着するまで、双方向性リング相互接続路120を回り進むことになる。
キャッシュ・バンク320(m)は、双方向性リング相互接続路120上の前記リング・スロットから前記アドレスを読み出し、そのアドレスを使って、バンクの中に格納された前記データを取り出すことができる。キャッシュ・バンク320(m)は、そのアクセスポート又はストップを通して、前記データを、双方向性リング相互接続路120上の利用可能な次の一つのリング・スロットの中に挿入することができる。前記データは、前記アドレスが到着したのと同一又は反対方向に向けて、前記データがI発信元のCPU310(1)に帰着するまで双方向性リング相互接続路120をトラバースすることになる。CPU310(1)は前記データを摂取することができる。
この例において、複数の要求が同時に双方向性リング相互接続路120をトラバースすることができる。双方向性リング相互接続路120の利点は、前記複数の要求が、同じノードを同時に通過できることである、但し、双方向性リング相互接続路120の複数の実施形態は、双方向性移送を行うので、相互に逆方向である。
図3中の双方向性リング相互接続路120の別の利点は、複数の要求が、複数のキャッシュ・バンク320(1)及び320(m)へ、前記複数のキャッシュ・バンクが物理的には単一の共有キャッシュであるにも関わらず、同時に着信することができることである。この一つの結果として、キャッシュ・バンク320(1)に着信した一つの要求を、キャッシュ・バンク320(m)に着信した別の要求と同時に、同一クロックサイクルの間に処理できることである。各要求がどのキャッシュ・バンクと関連しているかを判定するために、前記複数の要求中の複数のアドレス・ビットを使うことができる。複数のキャッシュ・バンクへ、複数のアドレス・ビットの多様な複数のマッピングをすることができる。一つの実施例において、連続したブロックの複数のアドレスを、双方向性リング相互接続路120上の異なる複数のキャッシュ・バンクに属させることができる。自然な複数の作業負荷の下においてすべてのバンクに対し合理的に均一なアクセスを提供するような方法で、前記複数のアドレス・ビットを細分化又は選定することができる。図3中には示されていないが、本発明の一つの実施形態に従って、図2中におけるように、複数のリング相互接続路220(1)ないし220(m)を用いることができる。本実施形態において、CPU310(1)は、複数の相互接続路220(1)ないし220(m)によって複数の要求を送信し、これにより、一つの所定時限内に少なくとも2倍のデータ返信を受信し、摂取することができる。
また、本発明の一つの実施形態に従って、複数のソケット・ネットワーク・ルータ、複数のメモリ・コントローラ、及び複数のディレクトリ・キャッシュのような追加の複数構成要素を双方向性リング相互接続路120に連結することができる。これら複数の構成要素に対しても、同様に前記アドレス指定をインタリーブすることができる。
本発明の複数の実施形態において、通信及びメモリ整合性維持のため、任意の既知のキャッシュ・コヒーレンス・プロトコルを使用することができる。多様な複数のプロトコルを双方向性リング相互接続路上に階層化することができる。各プロトコルは、資源競合、枯渇、又はデッドロックなど解決すべき複数の問題の一つの固有のセットを有することがある。これらの問題は、複数の貸方−借方システム及びバッファリング、(前記複数のリング相互接続路上の複数の予約サイクルや複数の資源待ち行列中の複数の予約バッファといった)資源の事前割振り、複数の枯渇検知器、複数の要求/応答メッセージの優先順位付けなどを使って解決できる。
本発明の複数の実施形態の別の利点は、前記複数の双方向性リング相互接続路は、複数の単一方向性リング相互接続路と比較した場合、一般に平均リング上待ち時間を半減し、前記システム上での均一コミュニケーションの平均ピーク情報処理量を4倍にすることである。前記性能向上は、複数の非リング型システムとの比較ではさらに優れていよう。均一コミュニケーションは、前記すべての複数のキャッシュ・バンクを一様に使用する傾向のある、複数のランダム又は定期的アクセス・パターンであってもよい。
一般に、前記平均リング上待ち時間は、前記リング相互接続路上における前記要求及び前記データ送返信時間を含み、前記要求及びデータがいっさいの構成要素(すなわちノード)中で駐在する時間を除いた、均一コミュニケーションのために前記相互接続路上で費やされたサイクル数の平均として定義することができる。同様に、前記平均ピーク情報処理量は、均一コミュニケーションにおいて、一クロックサイクルあたり、複数のあて先に到着するデータブロック数の平均として定義することができる。例えば、一つ単独の単一方向性リング相互接続路中で、一つのキャッシュ・ブロックを要求する一つのプロセッサに対する前記平均リング上待ち時間は、前記プロセッサの要求が前記プロセッサから対応するキャッシュ・バンクへ移送される時間、及び前記データ・ブロックが前記キャッシュ・バンクから前記プロセッサへ戻る走行時間として定義することができる。したがって、「クロックサイクルあたり1ノード」の一つのパケット移送速度を想定すると、前記単一方向性リング相互接続路における前記平均リング上待ち時間は、Nサイクルとなり、これは、前記システム中のノードの数と同じである。この理由は、前記要求は、前記対応するキャッシュ・バンクに到達するために前記複数のノードの一部をトラバースし、前記データは、前記発信元プロセッサに帰着するために、前記システム中の前記複数のノードの残りの部分トラバースしなければならないからである。基本的に、前記リング相互接続路は一つのループなので、一つの要求が一つのプロセッサからそれ自身への往復を完了するためには、前記すべてのノードをトラバースしなければならない。
また、一つの双方向性リング相互接続路中で、一つのキャッシュ・ブロックを要求する一つのプロセッサに対する前記平均リング上待ち時間も、前記プロセッサの要求が前記プロセッサから対応するキャッシュ・バンクへ移送される時間、及び前記データ・ブロックが前記キャッシュ・バンクから前記プロセッサへ戻る走行時間として定義することができる。しかしながら、例えば、クロックサイクルあたり1ノードの一つのパケット移送速度を想定すると、前記単一方向性リング相互接続路のものと比較して、前記平均リング上待ち時間は半分となろう。この理由は、一つの実施形態において、前記双方向性リング上の前記方向は、前記プロセッサと前記キャッシュ・バンクとの間でトラーバースすべき介在ノードの数が最小となる方向が選定されるからである。したがって、前記要求は、最大でN/2の複数ノードをトラバースすることになり、前記戻りデータは、N/2の複数ノードをトラバースすることになって、一つの最悪ケースの待ち時間でNサイクルとなる。しかしながら、前記複数のアクセスが均一アクセスの場合、前記要求側プロセッサから前記キャッシュ・バンクへの距離の前記平均値の期待値は、前記最悪ケースの半分、すなわち、N/4複数ノードのトラバースとなる。前記戻り移動も最短経路をとることになるので、前記プロセッサが前記データを受信するまでには、もう1回、N/4複数ノードをトラバースすることになる。これにより、前記双方向性リング相互接続路に対する一つの平均待ち時間はN/2となり、単一の要求に対する前記待ち時間及び相互接続路使用度は約50%削減される。
また、前記双方向性リング相互接続路による前記相互接続路使用度の削減は、前記単独の単一方向性リング相互接続路よりもずっと高い平均情報処理量をもたらすことになる。各キャッシュ要求は、一つのデータ・ブロックを配信し、そのため前記リング上のいくつかの数の前記ノードを占用することになる。前記単独の単一方向性リング相互接続路におけるように、一つの要求が前記リング上のNすべてのノードを占用する場合、前記単一方向性相互接続路が配信できる最大の情報処理量は、サイクル毎に1データ・ブロックである。一般に、前記双方向性リング相互接続路では、一つの平均的な均一要求に対して、前記リング中の全ノードよりは少ないノードを占有することになる。前述のように、前記双方向性リング相互接続路は、実際には、平均してN/2の複数ノードを占有することになる。また、前記双方向性リング相互接続路は、前記単一方向性リング相互接続路の2倍の容量を持つことができ、これにより、前記双方向性リング相互接続路は、ノードあたり2データ・ブロックを搬送することができる。全体では、前記組合せリング相互接続路上の2Nの複数ラッチのうちのN/2が一つの平均的要求及びデータ・ブロック返送のため占用され、一つの合計として、2N/(N/2)=4から、1サイクルあたり同時処理データ・ブロック数は、前記単独の単一方向性リング相互接続路よりも4倍大きいことになる。前記平均ピーク情報処理量は、ノードの数に関係しないことになる。本発明の一つの実施形態に従って、一つの双方向性リング相互接続路に、2つの別々のアドレス及びデータの複数セットの複数路線を含めることができる。一つの結果として、前記情報処理量は、さらに2倍分増加することになる、というのは、前記複数の要求は、複数のデータ情報処理資源を使用せず、前記複数の応答だけがこれを使うからである。このような方法で、一つの二重化双方向性リング相互接続路に対する前記データ路線の占有度を、前記複数のリング上ストップの1/4だけにすることができる。このように、両方の相互接続路とも、一つの汎用リング相互接続路を一つのアドレス及びデータ・リングに分割することにより、二重化による別の利点を得ることができる。例えば、前記複数の路線セットをデータ用と複数のアドレス要求用とに分離した一つの16ノード双方向性リングについては、前記平均ピーク情報処理量は「データ・リングあたりの同時移送移送作業数4×2リング×64バイトデータ処理量×3GHz」とすることができ、これは1.5Tバイト/秒に等しい。前記のように、前記双方向性リング相互接続路は、路線を2重にすること、及び最短パス経路指定を用いる複数トランザクションの占有度を半減することによる2倍化を含め、単独の単一方向性リング相互接続路の4倍の前記情報処理量を提供することができる。但し、前記双方向性リング相互接続路の複数路線が、複数のデータ及び複数のアドレス要求の両方についてすべて均一化されている場合には、前記情報処理量は、前記単独の単一方向性リング相互接続路の量の2倍にしかならないことがある。
実際の複数の占有度、ならびに、仮想化や枯渇対応の複数のメカニズムによる情報処理量の損失のような、他の複数の要因が、複数の双方向性リング相互接続路の前記待ち時間及び情報処理量に影響を与えることがあるので、前記の例証は、説明目的だけのものである。図4は、本発明の一つの実施形態に従った一つの方法の一つのフローチャートである。図4において、前記方法により、一つの双方向性リング相互接続路上で複数のパケットをどの方向に移送するかを決定することができる。一つの実施形態において、一つ単独の双方向性リング相互接続路に、複数のパケットを一つの時計回り方向に移送するための複数路線の一つの第一セット(これに一つの第一リング構造を含めることができる)及び複数のパケットを一つの反時計回り方向に移送するための複数路線の一つの第二セット(これに一つの第二リング構造を含めることができる)を含めることができる。
図4において、一つのあて先ノードに一つのパケットを送信する一つの発信元ノードは、前記第一リング構造上の前記あて先ノードまでの距離を計算する(410)ことができる。また、前記発信元ノードは、前記第二リング構造上の前記あて先ノードまでの距離を計算する(420)ことができる。前記発信元ノードは、どちらが最短距離を判定する(430)ことができる。前記最短距離が、前記時計回り方向であると判定した(430)場合は、前記発信元ノードは、前記第一リング構造によって前記パケットを移送する(440)ことができる。あるいは、前記最短距離が、前記反時計回り方向であると判定した(430)場合は、前記発信元ノードは、前記第二リング構造によって前記パケットを移送する(450)ことができる。
このクロックサイクルの間に、前記決定したリング構造が、すでに前記発信元ノードに到着する一つのパケットを移送中である場合は、前記発信元ノードは、前記リング上の前記パケットが前記発信元ノードを通過するまで待った後、前記パケットを前記決定したリング構造上に注入することができる。前記決定したリング構造に乗ったならば、前記パケットは、前記あて先ノードに到着するまで、クロックサイクル毎に進むことができる。本発明の別の実施形態に従って、前記発信元ノードは、どのリング構造のトラヒックがより少ないかを判断することができ、トラヒックが最少の前記リング構造により前記パケットを移送することができる。一つの別の実施形態において、前記双方向性リング相互接続路に、複数のパケットを相互に反対の方向に移送する2つの単一方向性リング相互接続路を含めることができる。この実施形態において、前記時計回り方向へ移送する前記単一方向性リング相互接続路に、前記第一リング構造を含め、前記反時計回り方向へ移送する前記単一方向性リング相互接続路に、前記第二リング構造を含めることができる。他の複数の代替実施形態において、前記双方向性リング相互接続路に、一つの単一方向性リング相互接続路及び一つの双方向性リング相互接続路、又は、二つの双方向性リング相互接続路を含めることができる。前に記述した複数の実施形態と同様に、前記複数の相互接続路の一つに前記第一リング構造を含め、他の一つに前記第二リング構造を含めることができる。前記双方向性リング相互接続路は、一つ又は二つのリング構造に限定されるものでなく、どのような数のリング構造をもこれに含めて、複数のパケットを複数の方向に移送することができることを理解されたい。図5は、一つのコンピュータ・システムの一つのブロック図であって、この中に、本発明の一つの実施形態に従って、一つ以上の多重プロセッサ及びメモリ使用を含め、一つの構造様態を盛り込むことができる。図5の中で、一つのコンピュータ・システム500に、一つのプロセッサ・バス520に連結された一つ以上の多重プロセッサ510(1)−510(n)を含めることができ、これをシステム論理素子530に連結することができる。前記一つ以上の多重プロセッサ510(1)−510(n)の各々を、Nビットの複数のプロセッサとすることができ、これに一つのデコーダ(図示せず)及び一つ以上のNビット・レジスタを含めることができる。本発明の一つの実施形態に従って、前記一つ以上の多重プロセッサ510(1)−510(n)の各々に、一つの双方向性リング相互接続路(図示せず)を含め、前記複数のNビット・プロセッサ、前記デコーダ、及び前記一つ以上のレジスタと連結することができる。システム論理素子530を、一つのバス550を通して一つのシステム・メモリ540に連結し、一つの周辺バス560を通して非揮発性メモリ570及び一つ以上の周辺機器580(1)−580(m)に連結することができる。周辺バス560は、例えば、以下の一つ以上を表すことができよう。1998年12月18日発行の「PCI分科会(SIG)ローカル・バス規格、(PCI Special Interest Group(SIG)PCI Local Bus Specification)」2.2版による複数の「周辺構成要素相互接続(Peripheral Component Interconnect)(PCI)」バス、複数の「業界規格アーキテクチャ(industry standard architecture(ISA)」バス、複数の「拡張ISA(Extended ISA)(EISA)」バス、1992年発行の「BCPRサービス社、EISA規格」3.12,1992版、1998年9月23日発行の「ユニバーサル・シリアル・バス(Universal serial bus)(USB)、USB規格(USB Specification)」1.1版、及びこれに匹敵する複数の周辺バス。非揮発性メモリ570は、一つの読読み出し専用メモリ(ROM)又は一つのフラッシュメモリのような一つのスタティックメモリ・デバイスであってもよい。複数の周辺機器580(1)−580(m)に、例えば、一つのキーボード;一つのマウス又は他の複数の位置決めデバイス;複数のハードディスクドライブ、複数のコンパクトディスク(CD)ドライブ、複数の光ディスク、及び複数のディジタルビデオディスク(DVD)ドライブのような複数の大量記憶装置;ディスプレー及び類似装置を含めることができる。本発明の複数の実施形態を、前記実施形態の教示に従ってプログラムされた、一つの汎用型マイクロプロセッサのような、任意のタイプのコンピュータを使って実行することができる。また、前記のように、前記本発明の複数の実施形態に、一つの機械が判読可能な媒体を含め、それに一つのプロセッサが、本発明の前記複数の実施形態に従った一つの方法を実施するために用いられる複数の命令を収録することができる。この媒体には、以下に限らないが、フロッピーディスク、光ディスクを含むいっさいのタイプのディスク、及びCD−ROMが含まれる。本発明の前記複数の実施形態を実行するために使われる前記ソフトウエアの構造を、単一又は複数のプログラムといったどのような所望の形式にすることもできることを理解いただけよう。本発明の一つの実施形態の前記方法を、ソフトウエア、ハードウエア、又はそれらの一つの組合せで実行できることをさらに理解いただけよう。以上の記載は、本発明の前記好適実施形態の一つの詳細な説明である。複数の出願者が権利を持つ本発明の全範囲を、以降の請求範囲で明確にする。前記請求の範囲は、前に記載したもの以外の複数の実施形態、及びこれらと同等の複数の実施形態を網羅することを意図している。
本発明の一つの実施形態に従って、一つの双方向性リング相互接続路に連結された複数のノードを含む一つの半導体チップである。 本発明の一つの実施形態に従って、複数の単一方向性及び/又は双方向性のリング相互接続路に連結された複数のノードを含む一つの半導体チップである。 本発明の一つの実施形態に従って、複数の構成要素とともに、単一の双方向性リング相互接続路に連結された一つの多重プロセッサチップを含む一つの多重プロセッサシステムである。 本発明の一つの実施形態に従った一つの方法の一つのフローチャートである。 本発明の一つの実施形態を実行するための一つのコンピュータシステムの一つのブロック図である。

Claims (46)

  1. 一つの装置であって、一つの半導体チップ上に少なくとも一つの双方向性リング構造を含む装置。
  2. 請求項1の前記装置であって、前記少なくとも一つの双方向性リング構造によってともに連結された複数のノードをさらに含む装置。
  3. 請求項2の前記装置であって、各ノードは、一つのプロセッサ、一つのキャッシュ・バンク、一つの共有メモリ・インタフェース、一つの共有大域コヒーレンス・エンジンインタフェース、及び、一つの共有入力/出力インタフェースのうちの一つを含む、装置。
  4. 請求項2の前記装置であって、前記複数のノードの少なくとも一つと連結し、前記複数のノードの少なくとも一つと一つのあて先ノードとの間で複数のパケット移送するために、前記少なくとも一つの双方向性リング構造上の一つの距離を計算する一つの減算器をさらに含む装置。
  5. 請求項2の前記装置であって、前記複数のノードの少なくとも一つと連結し、前記複数のノードの少なくとも一つと一つのあて先ノードとの間で複数のパケット移送するために、前記少なくとも一つの双方向性リング構造上の一つの距離を計算する一つのプログラム可能な有限状態機械をさらに含む装置。
  6. 請求項1の前記装置であって、前記少なくとも一つの双方向性リング構造は、一つの時計回り方向及び一つの反時計回り方向に同時に複数のパケットを移送する、装置。
  7. 請求項1の前記装置であって、前記少なくとも一つの双方向性リング構造は、一つの時計回り方向及び一つの反時計回り方向に交互に複数のパケットを移送する、装置。
  8. 一つの半導体チップであって、 複数のプロセッサ、 前記複数のプロセッサの間で共有されている一つのアドレス空間、及び 前記複数のプロセッサと前記アドレス空間とを連結する一つの双方向性リング構造を含む半導体チップ。
  9. 請求項8の前記半導体チップであって、前記複数のプロセッサの各々は一つの中央処理装置を含む、半導体チップ。
  10. 請求項8の前記半導体チップであって、前記アドレス空間は複数のキャッシュ・バンクを含む、半導体チップ。
  11. 請求項10の前記半導体チップであって、前記複数のキャッシュ・バンクは、一つの分散型共有キャッシュを形成する、半導体チップ。
  12. 請求項11の前記半導体チップであって、前記分散型共有キャッシュの前記複数のキャッシュ・バンクの各々は、前記アドレス空間の一つのサブセットに責任を持つ、半導体チップ。
  13. 請求項8の前記半導体チップであって、前記双方向性リング構造は、前記複数のプロセッサと前記アドレス空間との間で複数のパケットを移送する、半導体チップ。
  14. 請求項13の前記半導体チップであって、一つのパケットは一つのアドレス要求を移送する、半導体チップ。
  15. 請求項13の前記半導体チップであって、一つのパケットはデータを移送する、半導体チップ。
  16. 請求項13の前記半導体チップであって、一つのパケットは一つのキャッシュ・コヒーレンス・プロトコル・メッセージを移送する、半導体チップ。
  17. 請求項16の前記半導体チップであって、前記キャッシュ・コヒーレンス・プロトコル・メッセージは、前記アドレス空間中の一つのキャッシュされたアドレスの一つの失効を伝達する、半導体チップ。
  18. 請求項16の前記半導体チップであって、前記キャッシュ・コヒーレンス・プロトコル・メッセージは、前記アドレス空間中の一つのアドレスラインの変更許可を伝達する、半導体チップ。
  19. 請求項16の前記半導体チップであって、前記キャッシュ・コヒーレンス・プロトコル・メッセージは、前記アドレス空間中の一つのアドレスラインの変更されたデータを抽出するための一つの要求を伝達する、半導体チップ。
  20. 請求項8の前記半導体チップであって、前記双方向性リング構造は、複数のパケットを、一つの時計回り方向に移送するための少なくとも一つの第一路線と、一つの反時計回り方向に移送するための少なくとも一つの第二路線とを含む、半導体チップ。
  21. 請求項20の前記半導体チップであって、前記双方向性リング構造は、複数のパケットを前記時計回り方向に移送するための複数の第一路線と、前記反時計回り方向に移送するための複数の第二路線とを含む、半導体チップ。
  22. 請求項8の前記半導体チップであって、前記複数プロセッサの少なくとも一つと連結し、前記複数プロセッサの前記少なくとも一つと前記アドレス空間との間、及び、前記複数プロセッサの前記少なくとも一つと前記複数プロセッサの第二の一つとの間で一つのパケットを移送するために、前記双方向性リング構造上の一つの方向を計算する一つの減算器をさらに含む半導体チップ。
  23. 請求項8の前記半導体チップであって、前記アドレス空間の一つの第一部分と連結し、前記アドレス空間の前記第一部分と前記複数プロセッサの少なくとも一つとの間、及び、前記アドレス空間の前記第一部分と前記アドレス空間の一つの第二部分との間で一つのパケットを移送するために、前記双方向性リング構造上の一つの方向を計算する一つの減算器をさらに含む半導体チップ。
  24. 請求項8の前記半導体チップであって、前記複数プロセッサの少なくとも一つと連結し、前記複数プロセッサの前記少なくとも一つと前記アドレス空間との間、及び、前記複数プロセッサの前記少なくとも一つと前記複数プロセッサのもう一つとの間で一つのパケットを移送するために、前記双方向性リング構造上の一つの方向を計算する一つのプログラム可能な有限状態機械をさらに含む半導体チップ。
  25. 請求項24の前記半導体チップであって、前記プログラム可能な有限状態機械は、前記複数プロセッサの前記少なくとも一つと前記アドレス空間との間、又は、前記複数プロセッサの前記少なくとも一つと前記複数プロセッサの前記もう一つとの間の一つの距離に基づいて、一つの参照テーブルの前記方向を検索する、半導体チップ。
  26. 請求項8の前記半導体チップであって、前記アドレス空間の一つの第一部分と連結し、前記アドレス空間の前記第一部分と前記複数プロセッサの少なくとも一つとの間、及び、前記アドレス空間の前記第一部分と前記アドレス空間の一つの第二部分との間で一つのパケットを移送するために、前記双方向性リング構造上の一つの方向を計算する一つのプログラム可能な有限状態機械をさらに含む半導体チップ。
  27. 請求項26の前記半導体チップであって、前記プログラム可能な有限状態機械は、前記アドレス空間の前記第一部分と前記複数プロセッサの前記少なくとも一つとの間、及び、前記アドレス空間の前記第一部分と前記アドレス空間の前記第二部分との間の一つの距離に基づいて、一つの参照テーブルの前記方向を検索する、半導体チップ。
  28. 請求項8の前記半導体チップであって、前記複数のプロセッサの各々は、前記プロセッサと別のプロセッサとの間、又は、前記プロセッサと前記アドレス空間との間で一つのパケットを移送するために、前記双方向性リング構造上の一つの方向を計算する、半導体チップ。
  29. 一つのシステムであって、 以下を含む一つの多重プロセッサチップ、 少なくとも一つの中央処理装置、 一つの共有アドレス空間、及び 前記少なくとも一つの中央処理装置と前記共有アドレス空間の複数のエージェントとを連結するための少なくとも一つの双方向性リング構造;ならびに、 前記多重プロセッサチップから複数のパケット移送するための一つのバスを含むシステム。
  30. 請求項29の前記システムであって、前記バスに連結された一つのメモリをさらに含むシステム。
  31. 請求項30の前記システムであって、前記多重プロセッサチップは、前記少なくとも一つの双方向性リング構造に連結された一つの共有メモリ・インタフェースをさらに含み、前記共有メモリ・インタフェースは前記多重プロセッサチップを前記メモリに連結する、システム。
  32. 請求項29の前記システムであって、前記多重プロセッサチップは、前記少なくとも一つの双方向性リング構造に連結された一つの共有大域コヒーレンス・エンジンインタフェースをさらに含み、前記共有大域コヒーレンス・エンジンインタフェースは前記多重プロセッサチップを前記他の複数の多重プロセッサチップに連結する、システム。
  33. 請求項29の前記システムであって、前記バスに連結された少なくとも一つの入力/出力装置をさらに含むシステム。
  34. 請求項33の前記システムであって、前記多重プロセッサチップは、前記少なくとも一つの双方向性リング構造に連結された一つの共有入力/出力インタフェースをさらに含み、前記共有入力/出力インタフェースは、前記多重プロセッサチップを前記少なくとも一つの入力/出力装置に連結する、システム。
  35. 一つの方法であって、 第一及び第二リング構造上の、一つの発信元ノードと一つのあて先ノードとの間の距離を計算すること、 前記計算された複数の距離に基づいて、前記発信元とあて先ノードとの間で一つのパケットを移送するため、前記第一及び第二リング構造のどちらによるかを決定すること、及び 決定されたリング構造によって、前記発信元ノードから前記あて先ノードへ前記パケットを移送することを含む方法。
  36. 請求項35の前記方法であって、前記計算することは、 前記第一リング構造上の、前記発信元とあて先ノードの間の時計回り方向の一つの距離を計算すること、及び 前記第二リング構造上の、前記発信元とあて先ノードの間の反時計回り方向の一つの距離を計算することを含む、方法。
  37. 請求項35の前記方法であって、前記決定することは、 前記第一及び第二リング構造各々の複数別々方向の中で前記発信元とあて先ノードとの間の一つの最短距離を有するのは、前記第一及び第二リング構造のいずれかを決定することを含む、方法。
  38. 請求項37の前記方法であって、前記複数別々方向は、一つの時計回り方向と一つの反時計回り方向を含む、方法。
  39. 請求項35の前記方法であって、前記決定することは、 前記第一及び第二リング構造のいずれのトラヒックが、より少ないかを決定することを含む、方法。
  40. 請求項35の前記方法であって、前記移送することは、 前記パケットを、前記第一リング構造上を時計回り方向に、又は前記第二リング構造上を反時計回り方向に移送することを含む、方法。
  41. 請求項35の前記方法であって、前記移送することは、 前記決定したリング構造上を別のパケットが前記発信元ノードに到着する場合には、前記発信元ノードからの前記パケット移送を遅らせることを含む、方法。
  42. 請求項35の前記方法であって、前記移送することは、 前記パケットを、クロックサイクル毎に前記決定したリング構造を進ませることを含む、方法。
  43. 機械が判読可能な一つの媒体であって、 一つのチップ上の複数のリング構造において、一つの発信元ノードと一つのあて先ノードとの間の複数の距離を計算すること、 前記計算された複数の距離に従って、前記発信元とあて先ノードとの間で一つのパケットを移送するために、前記複数のリング構造のどれによるかを識別すること、及び 前記識別されたリング構造によって、前記パケットを前記発信元ノードから前記あて先ノードへ移送することを含む一つの方法を実施するための複数の実行可能命令を格納している媒体。
  44. 請求項43の前記機械判読可能媒体であって、前記計算することは、 前記複数のリング構造の少なくとも一つにおける前記発信元とあて先ノードとの間の時計回り方向の一つの距離を計算すること、及び 前記複数のリング構造の少なくとも別の一つにおける前記発信元とあて先ノードとの間の反時計回り方向の一つの距離を計算することを含む、媒体。
  45. 請求項44の前記機械判読可能媒体であって、前記識別することは、 前記複数のリング構造の前記少なくとも一つ、及び前記少なくとも別の一つのうち、いずれが、前記発信元とあて先ノードとの間の最短距離を提供するかを識別することを含む、媒体。
  46. 請求項45の前記機械判読可能媒体であって、前記移送することは、 前記最短距離に基づいて、前記パケットを、前記複数のリング構造の少なくとも一つの上を時計回りに移送すること、又は、前記複数のリング構造の少なくとも別の一つの上を反時計回りに移送することを含む、媒体。
JP2005146725A 2004-05-28 2005-05-19 双方向性リング相互接続路を有する多重プロセッサチップ Pending JP2006012133A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/855,509 US20060041715A1 (en) 2004-05-28 2004-05-28 Multiprocessor chip having bidirectional ring interconnect

Publications (1)

Publication Number Publication Date
JP2006012133A true JP2006012133A (ja) 2006-01-12

Family

ID=35169283

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005146725A Pending JP2006012133A (ja) 2004-05-28 2005-05-19 双方向性リング相互接続路を有する多重プロセッサチップ

Country Status (6)

Country Link
US (1) US20060041715A1 (ja)
EP (1) EP1615138A3 (ja)
JP (1) JP2006012133A (ja)
KR (1) KR100726305B1 (ja)
CN (1) CN100461394C (ja)
TW (2) TWI423036B (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007099950A1 (ja) * 2006-03-03 2007-09-07 Nec Corporation 高速pe間データ再配置機能を有するプロセッサアレイシステム
JP2008039533A (ja) * 2006-08-04 2008-02-21 Hitachi High-Technologies Corp 欠陥検査方法及びその装置
US8427634B2 (en) 2006-07-14 2013-04-23 Hitachi High-Technologies Corporation Defect inspection method and apparatus
JP2013527541A (ja) * 2010-05-31 2013-06-27 モサイド・テクノロジーズ・インコーポレーテッド デイジーチェーン接続されたデバイスのための高速インターフェイス
JP2014093048A (ja) * 2012-11-06 2014-05-19 Fujitsu Ltd データ処理装置及びデータ処理方法
JP2022524051A (ja) * 2019-03-14 2022-04-27 デジラム コーポレーション 並べ替えリングネットワーク相互接続型コンピューティングアーキテクチャ

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050033889A1 (en) * 2002-10-08 2005-02-10 Hass David T. Advanced processor with interrupt delivery mechanism for multi-threaded multi-CPU system on a chip
US7346757B2 (en) 2002-10-08 2008-03-18 Rmi Corporation Advanced processor translation lookaside buffer management in a multithreaded system
US7924828B2 (en) 2002-10-08 2011-04-12 Netlogic Microsystems, Inc. Advanced processor with mechanism for fast packet queuing operations
US7334086B2 (en) * 2002-10-08 2008-02-19 Rmi Corporation Advanced processor with system on a chip interconnect technology
US7961723B2 (en) 2002-10-08 2011-06-14 Netlogic Microsystems, Inc. Advanced processor with mechanism for enforcing ordering between information sent on two independent networks
US8015567B2 (en) 2002-10-08 2011-09-06 Netlogic Microsystems, Inc. Advanced processor with mechanism for packet distribution at high line rate
US9088474B2 (en) * 2002-10-08 2015-07-21 Broadcom Corporation Advanced processor with interfacing messaging network to a CPU
US7984268B2 (en) 2002-10-08 2011-07-19 Netlogic Microsystems, Inc. Advanced processor scheduling in a multithreaded system
US8176298B2 (en) 2002-10-08 2012-05-08 Netlogic Microsystems, Inc. Multi-core multi-threaded processing systems with instruction reordering in an in-order pipeline
US7627721B2 (en) 2002-10-08 2009-12-01 Rmi Corporation Advanced processor with cache coherency
US8037224B2 (en) * 2002-10-08 2011-10-11 Netlogic Microsystems, Inc. Delegating network processor operations to star topology serial bus interfaces
US8478811B2 (en) 2002-10-08 2013-07-02 Netlogic Microsystems, Inc. Advanced processor with credit based scheme for optimal packet flow in a multi-processor system on a chip
US20060112226A1 (en) 2004-11-19 2006-05-25 Hady Frank T Heterogeneous processors sharing a common cache
US20060143384A1 (en) * 2004-12-27 2006-06-29 Hughes Christopher J System and method for non-uniform cache in a multi-core processor
US7788240B2 (en) * 2004-12-29 2010-08-31 Sap Ag Hash mapping with secondary table having linear probing
US7747897B2 (en) * 2005-11-18 2010-06-29 Intel Corporation Method and apparatus for lockstep processing on a fixed-latency interconnect
US7350043B2 (en) 2006-02-10 2008-03-25 Sun Microsystems, Inc. Continuous data protection of block-level volumes
CN101216815B (zh) * 2008-01-07 2010-11-03 浪潮电子信息产业股份有限公司 一种双翼可扩展多处理器紧耦合共享存储器体系结构
US9596324B2 (en) 2008-02-08 2017-03-14 Broadcom Corporation System and method for parsing and allocating a plurality of packets to processor core threads
US8122279B2 (en) * 2008-04-21 2012-02-21 Kabushiki Kaisha Toshiba Multiphase clocking systems with ring bus architecture
US20120030448A1 (en) * 2009-03-30 2012-02-02 Nec Corporation Single instruction multiple date (simd) processor having a plurality of processing elements interconnected by a ring bus
KR101061187B1 (ko) * 2009-06-22 2011-08-31 한양대학교 산학협력단 버스 시스템 및 그 제어 장치
US8886885B2 (en) * 2009-11-13 2014-11-11 Marvell World Trade Ltd. Systems and methods for operating a plurality of flash modules in a flash memory file system
US8554851B2 (en) * 2010-09-24 2013-10-08 Intel Corporation Apparatus, system, and methods for facilitating one-way ordering of messages
CN102103568B (zh) * 2011-01-30 2012-10-10 中国科学院计算技术研究所 片上多核处理器系统的高速缓存一致性协议的实现方法
US8982695B2 (en) 2012-09-29 2015-03-17 Intel Corporation Anti-starvation and bounce-reduction mechanism for a two-dimensional bufferless interconnect
US9355058B2 (en) 2012-10-22 2016-05-31 Intel Corporation High performance interconnect physical layer
US20140114928A1 (en) * 2012-10-22 2014-04-24 Robert Beers Coherence protocol tables
DE112013005093T5 (de) 2012-10-22 2015-10-22 Intel Corporation Hochleistungszusammenschaltungsbitübertragungsschicht
JP2014211767A (ja) * 2013-04-18 2014-11-13 富士通株式会社 情報処理システム、制御装置及び情報処理システムの制御方法
US10741226B2 (en) 2013-05-28 2020-08-11 Fg Src Llc Multi-processor computer architecture incorporating distributed multi-ported common memory modules
CN105492989B (zh) * 2013-09-30 2018-11-16 英特尔公司 用于管理对时钟进行的门控的装置、系统、方法和机器可读介质
EP3291096B1 (en) * 2016-05-27 2020-01-15 Huawei Technologies Co., Ltd. Storage system and device scanning method
CN109845113B (zh) * 2016-08-01 2023-05-09 Tsv链接公司 多通道高速缓存存储器和系统存储器设备
US10795853B2 (en) 2016-10-10 2020-10-06 Intel Corporation Multiple dies hardware processors and methods
CN110413551B (zh) 2018-04-28 2021-12-10 上海寒武纪信息科技有限公司 信息处理装置、方法及设备
WO2019001418A1 (zh) 2017-06-26 2019-01-03 上海寒武纪信息科技有限公司 数据共享系统及其数据共享方法
CN109117415B (zh) * 2017-06-26 2024-05-14 上海寒武纪信息科技有限公司 数据共享系统及其数据共享方法
CN109426553A (zh) 2017-08-21 2019-03-05 上海寒武纪信息科技有限公司 任务切分装置及方法、任务处理装置及方法、多核处理器
CN109214616B (zh) 2017-06-29 2023-04-07 上海寒武纪信息科技有限公司 一种信息处理装置、系统和方法
CN108304343A (zh) * 2018-02-08 2018-07-20 深圳市德赛微电子技术有限公司 一种复杂soc的片上通信方法
US11829196B2 (en) 2019-10-22 2023-11-28 Advanced Micro Devices, Inc. Ring transport employing clock wake suppression
CN113709040B (zh) * 2021-08-31 2023-04-07 中国电子科技集团公司第五十八研究所 一种基于可扩展互联裸芯的封装级网络路由算法
CN113868171B (zh) * 2021-09-28 2024-06-18 上海兆芯集成电路股份有限公司 互连系统
CN114328333B (zh) * 2021-12-10 2024-03-12 中国科学院计算技术研究所 基于环形总线的硅芯片及其配置方法
CN115145861B (zh) * 2022-07-07 2024-04-05 无锡芯光互连技术研究院有限公司 一种基于双环形总线的芯片互连通信装置及方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5488038A (en) * 1977-12-24 1979-07-12 Fujitsu Ltd Data processor
JPS649548A (en) * 1987-07-01 1989-01-12 Nec Corp Cache memory device
JPS6474642A (en) * 1987-09-16 1989-03-20 Nec Corp Cache memory bank selecting circuit
JPH04113444A (ja) * 1990-09-04 1992-04-14 Oki Electric Ind Co Ltd 双方向リングバス装置
JPH06509671A (ja) * 1991-07-30 1994-10-27 コミッサリア タ レネルジー アトミーク 並列構造を有するプロセッサボードのシステムアーキテクチャ
JPH06314239A (ja) * 1993-04-28 1994-11-08 Hitachi Ltd プロセッサシステム
JPH11167560A (ja) * 1997-12-03 1999-06-22 Nec Corp データ転送システム、このシステムに用いるスイッチング回路、アダプタ及びこのシステムを有する集積回路並びにデータ転送方法
JP2003036248A (ja) * 2001-07-25 2003-02-07 Nec Software Tohoku Ltd シングルチップマイクロプロセッサに用いる小規模プロセッサ
WO2003036482A2 (en) * 2001-10-22 2003-05-01 Sun Microsystems, Inc. Multi-core multi-thread processor
JP2004086798A (ja) * 2002-08-29 2004-03-18 New Japan Radio Co Ltd マルチプロセッサシステム

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4646232A (en) * 1984-01-03 1987-02-24 Texas Instruments Incorporated Microprocessor with integrated CPU, RAM, timer, bus arbiter data for communication system
US5245605A (en) * 1991-10-04 1993-09-14 International Business Machines Corporation Integration of synchronous and asynchronous traffic on rings
US5604450A (en) * 1995-07-27 1997-02-18 Intel Corporation High speed bidirectional signaling scheme
US5935232A (en) * 1995-11-20 1999-08-10 Advanced Micro Devices, Inc. Variable latency and bandwidth communication pathways
US5757249A (en) * 1996-10-08 1998-05-26 Lucent Technologies Inc. Communication system having a closed loop bus structure
AU5079998A (en) * 1996-10-15 1998-05-22 Regents Of The University Of California, The High-performance parallel processors based on star-coupled wavelength division multiplexing optical interconnects
US6253292B1 (en) * 1997-08-22 2001-06-26 Seong Tae Jhang Distributed shared memory multiprocessor system based on a unidirectional ring bus using a snooping scheme
US6574219B1 (en) * 1998-08-06 2003-06-03 Intel Corp Passive message ordering on a decentralized ring
DE19922171B4 (de) * 1999-05-12 2009-08-27 Infineon Technologies Ag Kommunikationssystem mit einem Kommunikationsbus
US6865149B1 (en) * 2000-03-03 2005-03-08 Luminous Networks, Inc. Dynamically allocated ring protection and restoration technique
US6680912B1 (en) * 2000-03-03 2004-01-20 Luminous Networks, Inc. Selecting a routing direction in a communications network using a cost metric
US20030031126A1 (en) * 2001-03-12 2003-02-13 Mayweather Derek T. Bandwidth reservation reuse in dynamically allocated ring protection and restoration technique
US6957435B2 (en) * 2001-04-19 2005-10-18 International Business Machines Corporation Method and apparatus for allocating processor resources in a logically partitioned computer system
US20020154354A1 (en) * 2001-04-20 2002-10-24 Kannan Raj Optically interconnecting multiple processors
GB2377138A (en) * 2001-06-28 2002-12-31 Ericsson Telefon Ab L M Ring Bus Structure For System On Chip Integrated Circuits
AR037267A1 (es) * 2001-11-07 2004-11-03 Sitra Ltd Sistema y metodo para hacer coincidir solicitudes
US8645954B2 (en) * 2001-12-13 2014-02-04 Intel Corporation Computing system capable of reducing power consumption by distributing execution of instruction across multiple processors and method therefore
US7281055B2 (en) * 2002-05-28 2007-10-09 Newisys, Inc. Routing mechanisms in systems having multiple multi-processor clusters
EP1367778A1 (en) * 2002-05-31 2003-12-03 Fujitsu Siemens Computers, LLC Networked computer system and method using dual bi-directional communication rings
US8209490B2 (en) * 2003-12-30 2012-06-26 Intel Corporation Protocol for maintaining cache coherency in a CMP
US7676637B2 (en) * 2004-04-27 2010-03-09 International Business Machines Corporation Location-aware cache-to-cache transfers

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5488038A (en) * 1977-12-24 1979-07-12 Fujitsu Ltd Data processor
JPS649548A (en) * 1987-07-01 1989-01-12 Nec Corp Cache memory device
JPS6474642A (en) * 1987-09-16 1989-03-20 Nec Corp Cache memory bank selecting circuit
JPH04113444A (ja) * 1990-09-04 1992-04-14 Oki Electric Ind Co Ltd 双方向リングバス装置
JPH06509671A (ja) * 1991-07-30 1994-10-27 コミッサリア タ レネルジー アトミーク 並列構造を有するプロセッサボードのシステムアーキテクチャ
JPH06314239A (ja) * 1993-04-28 1994-11-08 Hitachi Ltd プロセッサシステム
JPH11167560A (ja) * 1997-12-03 1999-06-22 Nec Corp データ転送システム、このシステムに用いるスイッチング回路、アダプタ及びこのシステムを有する集積回路並びにデータ転送方法
JP2003036248A (ja) * 2001-07-25 2003-02-07 Nec Software Tohoku Ltd シングルチップマイクロプロセッサに用いる小規模プロセッサ
WO2003036482A2 (en) * 2001-10-22 2003-05-01 Sun Microsystems, Inc. Multi-core multi-thread processor
JP2004086798A (ja) * 2002-08-29 2004-03-18 New Japan Radio Co Ltd マルチプロセッサシステム

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007099950A1 (ja) * 2006-03-03 2007-09-07 Nec Corporation 高速pe間データ再配置機能を有するプロセッサアレイシステム
US7783861B2 (en) 2006-03-03 2010-08-24 Nec Corporation Data reallocation among PEs connected in both directions to respective PEs in adjacent blocks by selecting from inter-block and intra block transfers
US8427634B2 (en) 2006-07-14 2013-04-23 Hitachi High-Technologies Corporation Defect inspection method and apparatus
US8755041B2 (en) 2006-07-14 2014-06-17 Hitachi High-Technologies Corporation Defect inspection method and apparatus
JP2008039533A (ja) * 2006-08-04 2008-02-21 Hitachi High-Technologies Corp 欠陥検査方法及びその装置
JP2013527541A (ja) * 2010-05-31 2013-06-27 モサイド・テクノロジーズ・インコーポレーテッド デイジーチェーン接続されたデバイスのための高速インターフェイス
JP2014093048A (ja) * 2012-11-06 2014-05-19 Fujitsu Ltd データ処理装置及びデータ処理方法
JP2022524051A (ja) * 2019-03-14 2022-04-27 デジラム コーポレーション 並べ替えリングネットワーク相互接続型コンピューティングアーキテクチャ
JP7373579B2 (ja) 2019-03-14 2023-11-02 デジラム コーポレーション 並べ替えリングネットワーク相互接続型コンピューティングアーキテクチャ

Also Published As

Publication number Publication date
TW200610327A (en) 2006-03-16
KR20060046226A (ko) 2006-05-17
CN100461394C (zh) 2009-02-11
EP1615138A3 (en) 2009-03-04
CN1702858A (zh) 2005-11-30
KR100726305B1 (ko) 2007-06-08
US20060041715A1 (en) 2006-02-23
TWI423036B (zh) 2014-01-11
TWI324735B (en) 2010-05-11
EP1615138A2 (en) 2006-01-11
TW201015339A (en) 2010-04-16

Similar Documents

Publication Publication Date Title
JP2006012133A (ja) 双方向性リング相互接続路を有する多重プロセッサチップ
Krishna et al. Towards the ideal on-chip fabric for 1-to-many and many-to-1 communication
US7526626B2 (en) Memory controller configurable to allow bandwidth/latency tradeoff
US7380102B2 (en) Communication link control among inter-coupled multiple processing units in a node to respective units in another node for request broadcasting and combined response
KR100692350B1 (ko) 양방향 링 상호접속에서의 단일 패킷 도달을 위한 흐름제어 방법 및 장치
US7818388B2 (en) Data processing system, method and interconnect fabric supporting multiple planes of processing nodes
US7743191B1 (en) On-chip shared memory based device architecture
US6249520B1 (en) High-performance non-blocking switch with multiple channel ordering constraints
US7991964B2 (en) Pre-coherence channel
KR100925572B1 (ko) 상이한 길이의 캐시 위치 내의 캐시 코히어런시를 위한시스템, 방법, 프로세스 및 장치
US9288260B2 (en) Apparatus, system, and methods for facilitating one-way ordering of messages
US20090003344A1 (en) Asyncronous broadcast for ordered delivery between compute nodes in a parallel computing system where packet header space is limited
KR20000005690A (ko) 잠재적인제3노드트랜잭션을버퍼에기록하여통신대기시간을감소시키는비균일메모리액세스(numa)데이터프로세싱시스템
JP7419261B2 (ja) ストリーミングデータ転送のためのフロー圧縮を用いたデータ処理ネットワーク
EP1508100B1 (en) Inter-chip processor control plane
JP2008521131A (ja) マルチスレッド、マルチプロセシングのシステムオンチップ・ネットワーク・プロセッサ・ユニットのために拡張性があり、高機能で、大規模な相互接続スキーム
TW200407712A (en) Configurable multi-port multi-protocol network interface to support packet processing
JP2008500773A (ja) リングインターコネクト上のパケットの同期的非バッファフロー制御のための方法及び装置
Walters et al. The IBM z13 processor cache subsystem
Deshpande Design Considerations for Multicore SoC Interconnections
Haff Latency Matters
Ezz-Eldin et al. Network on Chip Aspects
Young et al. A deadlock-free NoC architecture for the sea of heterogeneous processing elements
Deshpande Real World Multicore Embedded Systems: Chapter 5. Design Considerations for Multicore SoC Interconnections
Sam Investigating the Scalability of tiled Chip Multiprocessors Using Multiple Networks

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070517

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070605

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070904

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080430

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080729

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080908

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20081010

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20081121

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101206

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101227