JPH06314264A - セルフ・ルーティング・クロスバー・スイッチ - Google Patents

セルフ・ルーティング・クロスバー・スイッチ

Info

Publication number
JPH06314264A
JPH06314264A JP5105226A JP10522693A JPH06314264A JP H06314264 A JPH06314264 A JP H06314264A JP 5105226 A JP5105226 A JP 5105226A JP 10522693 A JP10522693 A JP 10522693A JP H06314264 A JPH06314264 A JP H06314264A
Authority
JP
Japan
Prior art keywords
request
port
routing
output
inputs
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
JP5105226A
Other languages
English (en)
Inventor
Shiyaruma Binodo
シャルマ ビノド
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP5105226A priority Critical patent/JPH06314264A/ja
Priority to US08/237,843 priority patent/US5559970A/en
Priority to EP94106985A priority patent/EP0623880B1/en
Priority to DE69425605T priority patent/DE69425605T2/de
Priority to CA002122880A priority patent/CA2122880C/en
Publication of JPH06314264A publication Critical patent/JPH06314264A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • 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/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17375One dimensional, e.g. linear array, ring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/101Packet switching elements characterised by the switching fabric construction using crossbar or matrix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3018Input queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/40Constructional details, e.g. power supply, mechanical construction or backplane

Abstract

(57)【要約】 【目的】 ポート競合およびバンク競合を解消できるセ
ルフ・ルーティング・クロスバー・スイッチを提供す
る。 【構成】 N個のプロセッサとN個のメモリ・モジュー
ルを接続しているセルフ・ルーティング・クロスバー・
スイッチにおいて、プロセッサは各入力ポートに、メモ
リ・モジュールは各出力ポートにそれぞれ接続され、N
個のプロセッサの各々は、ポート競合およびバンク競合
が存在しなければ、メモリ要求を同時に送信できる。本
発明によれば、ポートに向かう要求は、最初にアライナ
を通過する。各出力ポートに関連して1個のアライナが
存在する。アライナは、出力ポートに向かう要求を入力
し、アライナの出力にすべてのアクティブ要求が連続的
に現れるように要求を配列する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はセルフ・ルーティング・
クロスバー・スイッチに関する。
【0002】
【従来の技術】セルフ・ルーティング・クロスバー・ス
イッチは、複数のプロセッサと複数のメモリ・モジュー
ルを接続するために、高速コンピュータにおいてしばし
ば使用される。プロセッサは入力ポートに、またメモリ
・モジュールは出力ポートにそれぞれ接続される。ベク
トル処理コンピュータにおいては、これらのプロセッサ
はベクトル処理ユニットであり、多数のデータ・ストリ
ーム上で同一命令を実行する。たとえば命令は、メモリ
内に存在する2つのアレイAとアレイBとからの1対の
オペランドをフェッチし、フェッチされた1対のオペラ
ンドを加算し、その結果を3番目のアレイC内のメモリ
に格納しなおす、という命令である。前記ベクトル処理
ユニット(VPU)の処理能力を最大限に生かすため
に、命令を実行するために要求されるオペランドは、V
PUの処理能力に比例する速さで利用できるようにする
必要がある。セルフ・ルーティング・クロスバー・スイ
ッチは、前記VPUとメモリ・モジュールとを相互接続
するために使用されていて、もしVPUがおのおの異な
る出力ポートにアクセスするならば、すべてのVPUの
メモリ・アクセスは同時に進行することができる。セル
フ・ルーティング・クロスバー・スイッチは、また汎用
処理ユニットにも相互接続して使用することができ、シ
ステムの非常に高いスループットを達成している。セル
フ・ルーティング・クロスバー・スイッチは、また多く
の加入者を同時に相互接続しなければならない電話交換
において適用されている。ATM(Asynchron
ous Transfer Mode)スイッチは、遠
隔通信に広く使用されているセルフ・ルーティング・ク
ロスバー・スイッチの一例である。
【0003】N個のプロセッサが一方のポートに、N個
のメモリ・モジュールが他方のポートに接続されている
2N個のポートから構成されるセルフ・ルーティング・
クロスバー・スイッチを考えるとしよう。もし、N個の
プロセッサがおのおの異なるN個のメモリ・モジュール
にアクセスすれば、すべてのアクセスは、同時に進行す
ることができる。説明を簡単にするために、バンク競合
の問題を無視する。もし、2個以上プロセッサが同時に
同じポートにアクセスを試みるならば、一般に、ポート
の競合が発生すると言われる。入力要求は、連続的に処
理されなければならない。以前の要求が処理されていな
い状態で、次の要求が前記ポートに到着するならば、到
着する要求は一時的に格納されなければならない。
【0004】
【発明が解決しようとする課題】本発明の目的は、有効
な方法でポートの競合をなくすことにある。これは、連
続的に到着する要求に対し、初めに要求を配列し、次
に、配列された要求をポート競合解消論理部に入力する
ことにより行われる。この配列機構とポート競合解消機
構は、後に詳細に説明する。
【0005】本発明の他の目的は、有効な配列機構を提
供することにある。
【0006】バンク競合の問題については、前述した
が、たとえポート競合がないときでも、出力ポートに接
続されたメモリ・モジュールに要求を送ることが不可能
な場合がときどきある。メモリ・モジュールは、多数個
のインターリーブされたメモリ・バンクから成る。一般
に、もしメモリ・モジュールがMウェイ・インターリー
ブされていれば、同一のメモリ・バンクへの2つの要求
の時間的差がM時間未満のとき、バンク競合は発生す
る。
【0007】本発明のさらに他の目的は、このようなバ
ンク競合を解決するための改善された方法を提供するこ
とにある。
【0008】
【課題を解決するための手段】本発明のセルフ・ルーテ
ィング・クロスバー・スイッチにおいては、プロセッサ
から入ってくるメモリ要求は、要求がルーティングされ
る出力ポートがどれであるかを判別するためにデコード
される。N×N個のセルフ・ルーティング・クロスバー
に対してはN個の同時要求があり得る。特定の出力ポー
トに直接向かうメモリ要求は、もし以下のいずれかの条
件が真であれば、先入れ先出し(FIFO)バッファに
格納される。(i)ポート競合またはバンク競合が存在
する。(ii)FIFOが空でない。もし、上記条件のい
ずれも真でなければ、要求はアライナに直接送られる。
もし、第一の条件が偽で第二の条件が真、すなわち、ポ
ートまたはバンク競合はないがFIFOが空でないなら
ば、要求配列手段はFIFOからその入力を得る。N個
の入力とN個の出力(N=2m ,mは1より大きい整
数)を持つアライナにはlog2 n個の段がある。N×
Nアライナは、2(N/2×N/2)個のアライナと、
N×Nのルータより構成されている。もしバンクおよび
ポートの競合解消回路からのビジー信号がアクティブで
なければ、アライナの出力は前記競合解消回路に送られ
る。ビジー信号は、競合解消が進行中であることを意味
している。アライナを使用することにより、ポートおよ
びバンクの競合をかなり減少させることができる。
【0009】
【実施例】図1は、セルフ・ルーティング・クロスバー
・スイッチにより相互接続された8個のプロセッサP0
〜P7と8個のメモリ・モジュールM0〜M7とから構
成されるコンピュータ・システムのブロック図を示す。
アクセスが異なる出力ポートに行われるものとすると、
8個の各プロセッサは、8個のメモリ・モジュールのい
ずれにも同時に通信できる。セルフ・ルーティング・ク
ロスバー・スイッチを使用しているプロセッサ−メモリ
相互接続と、低価格,低性能システムにしばしば用いら
れているバスを使用した相互接続とを比較することは、
興味深いことであろう。バス・ネットワークにおいて
は、1個のプロセッサは、一度に1つのメモリ・モジュ
ールとだけ通信することができる。もし、複数のプロセ
ッサが複数のメモリ・モジュールにアクセスしようとす
れば、たとえメモリ・モジュールが別個であっても、プ
ロセッサは順番にアクセスしなければならない。これ
は、バスは一度に1つのプロセッサにしか使用すること
はできないからである。
【0010】図2は、(i)要求側セルフ・ルーティン
グ・クロスバーと(ii)応答側クロスバーとにより相互
接続された4個のプロセッサと4個のメモリ・モジュー
ルを有するコンピュータ・システムを示している。要求
側セルフ・ルーティング・クロスバーにおいて、プロセ
ッサは入力ポートに、メモリ・モジュールは出力ポート
にそれぞれ接続されている。応答側クロスバーにおい
て、メモリ・モジュールは入力ポートに、プロセッサは
出力ポートにそれぞれ接続されている。応答側クロスバ
ーは、要求側セルフ・ルーティング・クロスバー・スイ
ッチにより制御されている。プロセッサは、書き込み命
令と読み取り命令である2つの基本的な命令をメモリ上
で実行する。書き込み命令において、データと書き込み
メモリアドレスとは、要求側セルフ・ルーティング・ク
ロスバーによりメモリに送られる。書き込み命令におい
ては、要求側セルフ・ルーティング・クロスバー・スイ
ッチのクロスバーのみが使用される。読み取り命令にお
いては、読み出しメモリアドレスは、要求側セルフ・ル
ーティング・クロスバー・スイッチによりメモリに送ら
れる。メモリは、応答側クロスバーを通じてデータを要
求したプロセッサに対して、読み出したデータの内容を
送る。
【0011】パケットは、メモリに送られる情報と、ル
ーティングが行われる経路とを含んでいる。パケット
は、情報が有効であることを示すために要求アクティブ
・ビットも含んでいる。応答側クロスバー・ルーティン
グは、要求側セルフ・ルーティング・クロスバー・スイ
ッチにより制御され、読み取り要求のアドレスがメモリ
・モジュールに送られたとき、応答側クロスバーは、ま
た、データが適切なリクエスタに向かうように準備され
る。
【0012】セルフ・ルーティング・クロスバー・スイ
ッチにおいて、リクエスタたとえばプロセッサは入力ポ
ートに、デスティネーションたとえばメモリ・モジュー
ルは出力ポートにそれぞれ接続されている。リクエスタ
が同時に異なった出力ポートをアクセスし、バンク競合
がないとき、すべての要求は同時に処理される。しかし
ながら、2つ以上の要求が同じ出力ポートを同時にアク
セスするとき、ポート競合が起こる。ポート競合を解消
するために、出力ポートに送られてくる要求を監視する
機構が必要になる。この機構がポート競合を発見する
と、要求は直列化され1つずつ出力ポートに送られる。
またこの機構は、ポート競合が起こり、ポート競合の解
消が進行中であることをリクエスタに連絡する。リクエ
スタは、バンク競合信号を受信すると適切な処置を行
う。たとえば、すぐに処理することのできない要求をク
ロスバーが一時的に格納するために十分なバッファを持
っていれば、リクエスタはバッファのスペースがなくな
るまで新しい要求を送り続けることができる。このよう
なバッファがなければ、リクエスタは新しい要求の転送
をすぐに止めなければならない。
【0013】メモリの速度とプロセッサの速度の不一致
は、常に存在していた。プロセッサは、メモリが受け取
ることができる速度よりかなり速い速度でメモリへの要
求を生成することができる。リクエスタがクロック・サ
イクル毎に、要求を生成することができると仮定する。
ダイナミックRAMがメモリを構成するために使用され
るならば、メモリはプロセッサの速度と比較して1/1
6遅くなる。スタティックRAMが使用されるならば、
最新技術においても、プロセッサは依然として4倍の速
度を持つ。技術の進展に伴い、このギャップは徐々に縮
まっている。しかし、メモリ速度は依然としてプロセッ
サの速度と同じ方法で改善することはできない。この速
度の不一致をプロセッサに対して可能な限り無視できる
ようにするためには、明らかにある機構が必要とされ
る。メモリ遅延を回避するために多く使用される方法
は、インターリーブと呼ばれている。図3と図4は、イ
ンターリーブの概念を示している。メモリが、プロセッ
サに対し4倍遅いと仮定する。図3に示されるように、
メモリ・モジュールは、4つのメモリ・バンクから構成
されている。プロセッサがメモリに直線的にアクセスす
る、すなわち、もし最初のアドレスがXならば次のアド
レスは(X+1),(X+2),・・・であると仮定す
る。
【0014】図4は、インターリーブ機構を理解するた
めに示されている。アドレスXは、最初のクロック・サ
イクルにおいて、最初のメモリ・バンク、すなわちバン
ク0をアクセスする。バンク0からのデータは、4サイ
クル遅延の後に5番目のクロックで得られる。2番目の
クロック・サイクルにおいて、アドレス(X+1)はバ
ンク1をアクセスする。バンク1からのデータは、4サ
イクル遅延の後に6番目のクロックで得られる。3番目
と4番目のクロックでは、バンク2とバンク3をアクセ
スし、データはそれぞれ7番目と8番目のクロックで得
られる。5番目のクロックにおいては、バンク0が最後
にアクセスされてから4サイクルが経過し、したがっ
て、バンク0は再びアクセスされる。このように、4つ
のメモリ・バンクがサイクリックにアクセスされるなら
ば、各バンクは、4サイクルに1回だけアクセスされ
る。4サイクル遅れて、データは各サイクル毎に得られ
る。このインターリーブ機構は、メモリ・バンクが4サ
イクルに1回よりも多くなくアクセスされる限り、良好
に動作する。最悪の場合は、アクセス・パターンがx,
x+4,x+8,・・・のようなときである。この場
合、メモリ・バンク0は繰り返しアクセスされる。メモ
リ・バンク0は4サイクル毎に1つの要求のみを処理す
ることしかできないので、要求速度は、1/4に低下さ
せなければならない。準備ができていないバンクにアク
セスがされたとき、すなわちバンクが要求を受け取るこ
とができないとき、バンク競合が発生すると呼び、この
バンク競合を解消するために、ある機構が必要とされ
る。バンク競合の解消については、後述する。
【0015】次に、要求または情報のパケットのフォー
マットを詳細に説明する。図5は、パケット・フォーマ
ットを示す図であり、パケットは以下の4つのフィール
ドを持っている。 要求アクティブ:要求が有効であることを示す1ビット
・フィールドである。 デスティネーション・ポート:このフィールドのサイズ
は、クロスバーの出力ポートの数に依存する。たとえ
ば、n個の出力ポート(n=2m と仮定する)の場合、
mビットが必要である。 バンク番号:上述したように、クロスバーの出力ポート
はメモリ・モジュールに接続されており、メモリ・モジ
ュールは数バンクを出力ポートに接続することができ
る。バンク番号は、適切なバンクを選択するために使用
される。もし、b個のバンク(b=2p と仮定する)が
存在すれば、pビットが必要である。 情報:ソースからデスティネーションへ向かう情報は、
このフィールドに現れる。このフィールドのサイズは、
技術、コストなど実用上の制約により制限される。
【0016】図6は、4入力と4出力から構成されてい
る4×4セルフ・ルーティング・クロスバー・スイッチ
100の機能ブロック図を示す。入力ポート101は、
IN0,IN1,IN2およびIN3として示されてい
る。要求は、入力ポートに入力される。要求のフォーマ
ットは図5に示されている。クロスバーは、入力の要求
アクティブおよびデスティネ−ション・ポートのフィー
ルドを検査する。要求がアクティブであれば、入ってく
る情報パケットのデスティネ−ション・ポート・フィー
ルドに存在するルート情報を用いて、要求は適切な出力
ポートにルーティングされる。出力ポート102は、O
UT0,OUT1,OUT2およびOUT3として示さ
れる。
【0017】入力ポート101のいずれも、出力ポート
102のいずれかをアクセスできる。特定の出力ポート
を一度にアクセスしようとするただ1つの要求が存在す
るならば、競合は発生せず、すべての要求は同時に処理
される。説明を簡単にするために、ここではバンク競合
の影響は無視した。バンク競合の影響については、後に
説明する。競合は、2つ以上の要求が同時に同じ出力ポ
ートにアクセスしようとするときに発生する。ポート競
合を解消するためには、以下の処置をとらなければなら
ない。 1.すぐに処理されない要求は、失なわれないようにバ
ッファに入れる。 2.要求は直列化され、1つずつ出力ポートに送らなけ
ればならない。 3.もし、バッファのスペースがなくなる可能性があれ
ば、すべての新しい要求の送出を中止するために、信号
がリクエスタに送られなければならない。
【0018】次に、入ってくる要求がどのようにして出
力ポートへルーティングされ、ポート競合解消論理回路
がいかに動作するかを説明する。
【0019】要求は入力ポート101に到着しラッチさ
れる。たとえば、入力ポート103は入ってくる要求I
N0をラッチする。ラッチされた要求はデコーダ104
に入力される。デコーダ104はラッチされた要求IN
0をデコードする。デコーダは、もし入力要求の要求ア
クティブ・ビットが設定されていれば、アクティブにさ
れる。デスティネ−ション・ポートに基づいて、要求は
デコーダ104の4出力の1つに送られる。たとえば、
もしデスティネ−ション・ポート・フィールドが0なら
ば、入ってくるパケットはライン105に送り出され、
最終的に出力ポート102のOUT0に送られる。同じ
ような説明は、他の入力の場合にもあてはまる。各入力
は、自身のラッチとデコーダの組を有している。
【0020】以後、出力ポート102のOUT0に通じ
るただ1つのパスについて説明する。この説明は、他の
出力、すなわちOUT1,OUT2およびOUT3に通
じるパスにも言える。
【0021】出力ポート102のOUT0への要求は、
入力ポート101のいずれの4入力からも到着できる。
ビジー0信号118とバッファ106〜109の状態に
基づいて、要求はラッチ110に直接ラッチされるか、
または、先入れ先だし(FIFO)バッファ106〜1
09に格納される。もしビジー0信号がアクティブでな
く、バッファ106〜109がすべて空であるならば、
要求は直接110にラッチされる。もしビジー0信号が
アクティブでなく、バッファがすべて空でないならば、
入ってくる要求はバッファに格納され、バッファに格納
された要求は読み出され、ラッチ110にラッチされ
る。もしビジー0信号がアクティブであるなら、入って
くる要求はバッファに格納され、ラッチ110に書き込
むことはない。バッファ106は、入力ポートIN0か
らの要求入力を格納するためのバッファである。他の3
つのバッファは、3つの入力ポートIN1,IN2およ
びIN3からの要求入力をそれぞれ格納するためのバッ
ファである。
【0022】ラッチ110の出力は、ライン111〜1
14によってアライナ0(116)に接続されている。
もしライン111に要求があれば、この要求はIN0
(101)から来ている。その途中で、要求はラッチ1
03,デコーダ104,ライン105およびラッチ11
0を通過している。ビジー0ライン118の状態に基づ
いて、要求はバッファ106に一時的に格納されたかも
しれない。同様に、他のパケットのルートも追跡でき
る。
【0023】アライナ、たとえばアライナ116の機能
を、詳細に説明する。ここでは入出力関係のみ説明す
る。アライナの内部動作は後述する。図12のブロック
210は、211で示す4入力X0,X1,X2,X3
と、212で示す4出力Y0,Y1,Y2,Y3とを有
するアライナである。入力211にi要求(i=1,
2,3,4)が存在すると仮定する。アライナの目的
は、出力Y0を起点にして出力212に連続的に現れる
ようにi要求を配列することである。ブロック215〜
235は、アライナの動作を明確にするために若干の例
を示している。ブロック215において、0と1のスト
リングは、入力X0〜X3の下部に示されている。これ
は、入力に関連した要求アクティブ・ビットの状態を表
している。入力X0において、要求アクティブ・ビット
は0である。すなわち入力X0に要求は存在しない。入
力X1において、要求アクティブ・ビットは1である。
すなわち入力X1に要求は存在する。他の入力に関して
も同様に示される。アライナ215において、要求は入
力X1とX3に存在する。アライナの機能は、これらを
一緒にグループ化し、左側から配列することである。ア
ライナ215の出力において、パターンはX1,X3,
0,0となっている。アクティブ要求X1とX3は、左
から並べられている。出力の0は、対応する要求アクテ
ィブ・ビットがターンオフされることを示している。も
し、要求アクティブ・ビットがターンオフされていれ
ば、他の・フィールドは、図6のセルフ・ルーティング
・クロスバー・スイッチ100の後段によって読み取ら
れない。アライナ220〜235も同様に示されてい
る。アライナ230において、すべての入力要求はアク
ティブであり、アライナ235において、アクティブ要
求は存在しない。上記説明は、アライナの機能を理解す
るのに十分である。内部の詳細は、後に説明するが、4
×4アライナのみならず2×2,8×8およびN×Nア
ライナも示されている。
【0024】ポート競合の解消 図6に戻って、アライナ116の出力は、解消論理回路
117に入力される。ここで、(i)ポート競合解消
と、(ii)バンク競合解消の2つの考慮されるべき要因
がある。初めにバンク競合が存在しないと仮定し、後に
この状態を緩和しバンク競合が存在すると仮定する。解
消論理回路117のポート競合解消部は、図7に130
で示されている。入力131は、Y0,Y1,Y2,Y
3であり、出力は、出力ポートOUT0(132)とビ
ジー0(133)である。さらに、クロック信号CLK
(134)がある。
【0025】ここで、ポート競合解消部130への入力
はアライナの出力であるので、アクティブな入力要求は
すべて配列され、すなわち入力要求はまとめてグループ
化され、出力Y0から連続的に現われることは、強調さ
れるべきである。入力要求の有効な組み合わせは以下に
示す通りである。
【0026】
【表1】
【0027】ポート競合解消論理回路は、セレクタ13
5〜138とフリップ・フロップ139〜142とから
構成されている。セレクタは、入力131またはフリッ
プ・フロップ前段の出力のいずれかを選択する。セレク
タ138では、前段はなく、下側セレクタ入力は論理0
に接続されている。第一段のフリップ・フロップ139
の出力132は、図6に102で示したの所望出力OU
T0である。第二段のフリップ・フロップ140の信号
Q1に現れる要求の要求アクティブ・ビットは、図6の
ビジー0信号と同じである。このビジー信号0は、図7
に133として示されている。ビジー0信号133は、
セレクタ135〜138の選択入力SELを制御する。
ビジー0信号133は、最初はインアクティブである。
各セレクタの上側入力は、それぞれの入力131に接続
されている。すなわち、ポート解消回路は入力131を
監視している。唯一つの入力131がアクティブである
と仮定する。前述したことから、その入力はY0でなけ
ればならない。Y0がフリップ・フロップ139にラッ
チされると、入力Y0は出力132に現れる。出力ポー
トに送られるべきただ1つの要求が存在するために、ポ
ート・ビジー信号133はアクティブにされない。2つ
以上の要求が同時に到着すると、信号133はアクティ
ブにされ、要求は直列化されなければならない。1クロ
ック・サイクル内に、1出力ポート当たり1要求を処理
することができると仮定している。
【0028】2つ以上の要求が同時にポート競合解消部
130に到着するときの回路の動作を説明するために、
同時に3つの要求A,BおよびCが到着すると仮定す
る。表1から、3つの要求はそれぞれ入力Y0,Y1お
よびY2に到着することは明らかである。これら要求を
直列化し1つずつ出力132に送るためには3サイクル
かかるので、ビジー0信号133を2サイクル分アクテ
ィブにしなければならない。2サイクルは、要求BとC
を出力ポート132に送るためにかかる追加の時間であ
る。この回路の動作は、図7にと共に図8のタイミング
チャート150を参照することにより容易に理解でき
る。
【0029】クロック=0において、要求A,Bおよび
Cは、ポート競合解消論理回路130に送られる。この
要求は、クロック=1でフリップ・フロップ139によ
ってラッチされ、要求AはOUT0に現れる。フリップ
・フロップ140でラッチされた要求Bは、その要求ア
クティブ・ビットに論理1を持っているので、ビジー0
は論理1になる。これは、フリップ・フロップのD入力
が前段のフリップ・フロップのQ出力に接続されるよう
に、セレクタ135〜138のSEL入力を変化させ
る。したがって、現在、回路はシフト・レジスタとして
動作している。クロック=2で、要求BはOUT0に出
力され、要求Cはフリップ・フロップ140にラッチさ
れる。要求Cはその要求アクティブ・ビットに論理1を
持っているので、ビジー0信号は論理1を継続する。ク
ロック=3で、3つの入力の最後である要求Cは、OU
T0に出力される。この状態において、フリップ・フロ
ップ140にラッチされた要求はアクティブでなく、ビ
ジー0がセレクタのSEL入力を変化させる遷移を遂行
するので、回路130は次のクロックから新しい入力を
受け取る準備をする。
【0030】バンク競合の解消 前記説明で、バンク競合がなく、1クロック当たり1要
求の速度でセルフ・ルーティング・クロスバーの出力ポ
ートに送られると仮定した。この仮定は、もしクロスバ
ーの出力ポートに接続されたメモリ・モジュールが、常
に各クロック・サイクル毎に要求を受け取ることができ
るならば、有効である。しかしながら、現実には、メモ
リ・モジュールはあるアクセス・パターンに対しての
み、1クロック当たり1要求の速度で受け取ることがで
きる。前述したように、もしメモリ・モジュールが4つ
のバンクで構成され、メモリアクセスのサイクル時間が
4クロック・サイクルであるならば、メモリ・モジュー
ルは、もし要求が4つのメモリ・バンクをサイクリック
にアクセスするならば、クロック毎に要求を受け取るこ
とができる。もし、この状態が満足されなければ、バン
ク競合が存在し、要求が前記メモリ・モジュールに送ら
れる速度を低下しなければならない。
【0031】バンク競合を解消する機能を実行するため
の論理回路は、図9に161で示されており、その具体
的回路は、図10に示されている。図9の160は、ポ
ート競合解消論理回路とバンク競合解消論理回路とを備
えた解消論理回路のブロック図である。図7と図9の違
いを以下に示す。 (i)図9においては、バンク競合解消論理回路161
が追加されている。 (ii)図9においては、ポート競合が存在するのみなら
ずバンク競合が検出されたときに、ビジー信号を発生す
るビジー信号発生回路164が追加されている。 (iii )図9においては、フリップ・フロップ167〜
169は、バンク競合解消論理回路161によって発生
されたバンク競合信号163に接続された追加信号、す
なわちHOLDを持つ。 (iv)図9においては、セレクタ165は、追加信号、
すなわちバンク競合信号163を持つ。
【0032】バンク競合解消論理回路の動作は、図9の
バンク競合解消論理回路161の内部ブロック図が描か
れている図10を参照することにより理解できる。図1
0に示すバンク競合解消論理回路170は、バンク競合
解消用に4つの主ブロックを持ち、各バンクに割り当て
られている。バンク競合信号172は、ローカル・バン
ク競合信号、すなわちバンク競合0〜バンク競合3のい
ずれかがアクティブのときにアクティブにされる。要求
171は、4つの回路173〜176のそれぞれに入力
される。要求のフォーマットは、図5に示されている。
要求171の要求アクティブとバンク番号の信号は、回
路173〜176によって検査される。バンク競合解消
の動作は、回路173を参照して説明できる。他の回路
174〜176は、検査するバンク番号が相違するだけ
であり、回路173と同等な論理を持つ。回路173に
おいて、もし要求アクティブ・ビットが論理1であれ
ば、バンク番号は、要求がバンク0用であるかどうか確
認される。もし、要求がバンク0に対するものならば、
ライン177はアクティブにされ、ゲート178をイネ
ーブルする。カウンタ179は、4クロックのバンク・
サイクル時間に適合する2ビット・ダウン・カウンタで
ある。最初、カウンタ179は0であり、COUNT=
0ラインは論理1である。ライン177のアクティブ化
は、二進“11”でカウンタをロードし、イネーブルす
る。したがって、COUNT=0ラインはインアクティ
ブになり、ゲート178はカウントがふたたび0になる
まで閉じられる。カウントが0でない期間中、もし要求
がバンク0にアクセスしようと到着すれば、ゲート18
0はイネーブルされバンク0競合信号を発生する。バン
ク0競合信号のアクティブ化は、ゲート181とライン
172をアクティブにする。
【0033】バンク競合信号のアクティブ化は、ビジー
0信号を発生する(図9の164)。図9のフリップ・
フロップ167〜169のHOLDピンをアクティブに
することにより、これらフリップ・フロップを固定す
る。これは、ポート競合解消論理回路が、バンク競合を
解消するためにかかるクロック・サイクル数だけ遅れる
ということを意味している。
【0034】フリップ・フロップ166に関して、フリ
ップ・フロップ166への要求入力の要求アクティブ・
ビットは、バンク競合信号により論理0に設定されるの
で、メモリ・モジュールはバンク競合信号のアクティブ
になる期間の間、アクティブ要求を見れない。
【0035】アライナ 4入力と4出力を持つアライナの入出力動作は、図12
の例により説明されている。アライナの目的は、アライ
ナの出力において、要求入力が出力の左端から始まり連
続的に現れるように、要求入力を配列することである。
ここでは、このようなアライナを実現する方法を説明す
る。
【0036】配列機構の背景にある基本的な考えは、2
×2スイッチに基づいている。2×2スイッチと、4入
力および4出力を有するルータとが、4×4アライナを
形成する。8×8アライナを実現するためには、2つの
4×4アライナが8×8ルータと共に使用される。一般
に、N×Nアライナ(ここでN=2m )を構成するため
には、2つの(N/2)×(N/2)アライナおよびN
個の入力とN個の出力を持つルータが必要とされる。こ
れは、図11に示されている。
【0037】図13は、高次のアライナを構成するため
に使用される2×2スイッチを示す。250は、2つの
入力X0,X1および2つの出力Y0,Y1を有する2
×2スイッチである。要求アクティブ・ビットがアクテ
ィブか否かにより、入力X0とX1での入力要求は、4
つの組み合わせが存在する。これらは、255〜270
に示されており、0または1は入力要求に関連した要求
アクティブ・ビットの状態を示している。255は入力
要求がない場合であり、260は入力X1に、265は
入力X0に、270は入力X0とX1に、それぞれ要求
が存在する場合である。対応する出力は、出力Y0とY
1に示されている。要求が存在すれば出力の左側に現れ
るということが、出力を調べることにより明らかにな
る。260は、特にこの点を強調している。275に、
このスイッチを構成する論理の真理値表を示す。X0
(0)は、入力X0の要求アクティブ・ビットである。
【0038】図14は、4×4アライナ280のブロッ
ク図と、アライナ290〜310の機能を示すいくつか
の例と、ルータを実現するための真理値表320とを示
す。アライナ280において、入力は281、出力は2
82である。2つの2×2スイッチは、283と284
で示されている。285は、入力B0,B1,B2,B
3と、出力Y0,Y1,Y2,Y3とを有する4×4ル
ータである。2×2スイッチの出力は、ルータへの入力
として与えられる。ルータの出力は、アライナの出力で
ある。
【0039】4×4ルータ285を説明するために、N
×Nルータの一般アルゴリズムをまず初めに説明する。
次に、一般アルゴリズムによって、4入力と4出力を持
つルータの特定のケースについて説明する。
【0040】図16に、N×Nルータを構成するための
アルゴリズムを示す。 1.N個の入力とN個の出力を持つルータを考える。 2.N個の入力はB0,B1,..,B(N−1)と、
N個の出力はY0,Y1,..,Y(N−1)と示され
る。入力を2等分する。すなわち、左側はB0,B
1,..,B(N/2−1)で、右側はB(N/2),
B(N/2+1),..,B(N−1)で構成されてい
る。 3.入力要求Bi(i=0,1,2,..,(2/N−
1))の要求アクティブ・ビットを、B0から始めて、
左から右へ走査する。したがって、最大N/2個の要求
が走査される。 4.入力要求Biの要求アクティブ・ビットを調べる。 ケース1:入力要求Biの要求アクティブ・ビットが論
理1である。
【0041】i番目の要求Biは、i番目の出力Yiへ
送られる(Yi←Bi)。左側のすべての2/N個の入
力要求が走査されていれば、以下の動作が実行される。
【0042】 Y(N/2)←B(N/2) Y(N/2+1)←B(N/2+1) ...... ...... Y(N−1)←B(N−1) そして、アルゴリズムは終了する。もし、左側のすべて
の2/N入力要求が走査されていなければ、iを1増加
してステップ4を繰り返す。 ケース2:入力要求Biの要求アクティブ・ビットが論
理0である。
【0043】入力要求Biの要求アクティブ・ビットが
0であれば、右側の入力B(N/2),..,B(N−
1)はルーティングされ、出力Yi,..,Y(N/2
+i−1)に現れる。残りの出力は、それらの要求アク
ティブ・ビットをターンオフする。これは、以下に等し
い。
【0044】 Yi=B(N/2) Y(i+1)=B(N/2+1) ・・ ・・ Y(N/2−1)=B(N−i−1) Y(N/2)=B(N−i) Y(N/2−1)=B(N−i+1) ・・ ・・ Y(N/2+i−1)=B(N−1) Y(N/2+i)=0 ・・ ・・ Y(N−1)=0 アルゴリズムは、この段階で終了する。
【0045】上記アルゴリズムは、図14の4×4ルー
タ290に適用される。入力X1とX3はアクティブで
ある。2×2スイッチ293は、X0とX1を受け取
り、その出力はX1と0である。2×2スイッチ294
は、X2とX3を受け取り、その出力はX2とX3であ
る。
【0046】4×4ルータ295への入力は、X1,
0,X3および0である。第1番目と第3番目の入力
は、アクティブな要求を持ち、第2番目と第4番目の出
力に要求は存在しない。入力は2等分され、X1と0が
左半分を、X3と0が右半分を形成している。左側の入
力は走査される。第1番目の入力は、その要求アクティ
ブ・ビットがオンであるX1である。したがって、Y0
←X1である。次の入力は走査される。その要求アクテ
ィブ・ビットは、ターンオフされている。したがって、
アルゴリズムのステップ4のケース2が適用される。右
側の入力X3と0はシフトされ、X1の隣りに現れる。
したがって、出力はX1,X3,0の順序になる。残り
の出力Y3は、要求アクティブ・ビットをターンオフす
る。
【0047】要約すると、アライナの入力が0,X1,
0,X3であれば、2×2スイッチを通過した後、その
順序はX1,0,X3,0になる。そして最後にルータ
を通過した後、出力はX1,X3,0,0として現れ、
出力は左から並べられる。
【0048】320は、ルータの真理値表である。これ
は、実際のハードウェアを構成するため論理を提供して
いる。B0(0)とB1(0)は、それぞれ入力要求B
0とB1の要求アクティブ・ビットである。Y1出力に
対するハードウェアを構成するために必要な情報が提供
されている欄321について考える。ブール式により、
Y1は次のように表される。
【0049】Y1=(not(B0(0)and no
t(B1(0))and B3) or(B0(0)and not(B1(0))and
B2) or(B0(0)and B1(0)and B1 図15に、2つの4×4アライナと8×8ルータから構
成された8×8アライナを示す。図には、ハードウェア
を構成するために必要な真理値表も示してある。一般
に、N×Nアライナは、2つのN/2×N/2アライナ
とN×Nルータを用いて実現することができる。
【0050】以上の説明を通して、配列は左から行われ
るものと仮定した。しかしながら、以上の説明は右配列
にも適用できる。右配列の場合、解消論理回路への入力
の順序も変更され、アライナの出力は、配列が左から行
われた時とは反対の順序で解消論理回路の入力に接続さ
れるが、動作には変更はない。
【0051】
【発明の効果】本発明によれば、ポートの競合のないセ
ルフ・ルーティング・クロスバー・スイッチを実現でき
る。また本発明によれば、ポート競合を回避するための
有効な配列手段を提供できる。さらに本発明によれば、
バンク競合を改善する有効な方法を実現できた。
【図面の簡単な説明】
【図1】セルフ・ルーティング・クロスバー・スイッチ
により複数のメモリ・モジュールに接続された複数のプ
ロセッサより成るコンピュータ・システムのブロック図
である。
【図2】要求側のセルフ・ルーティング・クロスバー・
スイッチと、応答側のクロスバー・スイッチから構成さ
れるセルフ・ルーティング・クロスバー・スイッチを示
す図である。
【図3】複数のメモリ・バンクから成るメモリ・モジュ
ールのブロック図である。
【図4】メモリ・バンクのインターリーブ機構を示す図
である。
【図5】メモリ要求のパケット・フォーマットを示す図
である。
【図6】4×4セルフ・ルーティング・クロスバー・ス
イッチの詳細なブロック図であり、セルフ・ルーティン
グ・クロスバー・スイッチはラッチ、デコーダ、先入れ
先出し(FIFO)バッファ、アライナ、ポート競合と
バンク競合を解消する論理回路より構成される。
【図7】ポート競合解消論理回路のブロック図である。
【図8】図7の動作を説明するためのタイミング図であ
る。
【図9】ポート競合解消とバンク競合解消のための回路
のブロック図である。
【図10】バンク競合解消機構の詳細なブロック図であ
り、バンク0の競合解消のためのブロック図は、より大
きく詳細に示されている。
【図11】N×Nアライナのブロック図である。
【図12】4×4アライナの入力−出力の動作を説明す
るためのいくつかの例を示す図である。
【図13】2×2アライナのブロック図と真理値表を示
す図である。
【図14】4×4アライナのブロック図と真理値表を示
す図である。
【図15】4×4アライナのブロック図と真理値表を示
す図である。
【図16】N×Nルータの動作を説明するフロー図であ
る。
【符号の説明】
100 セルフ・ルーティング・クロスバー・スイッチ
の機能ブロック図 101 入力ポート 102 出力ポート 103,110 ラッチ 104 デコーダ 105 信号線 106,107,108,109 バッファ 111,112,113,114,115 信号線 116 アライナ 117 解消論理回路 118 ビジー0信号線 130 ポート競合解消論理回路 131 入力 132 出力ポートOUT0 133 ビジー0信号 134 クロック信号 135,136,137,138 セレクタ 139,140,141,142 フリップ・フロップ 150 ポート競合解消論理回路の動作のタイミング図 160 ポート競合解消回路およびバンク競合解消回路 161 バンク競合解消部 163 バンク競合信号 165 セレクタ 166,167,168,169 フリップ・フロップ 170 バンク競合解消回路 171 要求 172,177 信号線 173,174,175,176 バンク競合解消論理
回路 178,180,181 ゲート 179 2ビット・ダウン・カウンタ 210,215,220,225,230,235 ア
ライナ 211 アライナ入力 212 アライナ出力 250,255,260,265,270 2×2スイ
ッチ 275 2×2スイッチの真理値表 280,290,300,310 4×4アライナ 281,291 入力 282,292 出力 283,284,293,294 2×2スイッチ 285,295 4×4ルータ 320 ルータの真理値表 321 Y1出力の欄

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】複数の入力ポートと複数の出力ポートから
    構成されるセルフ・ルーティング・クロスバー・スイッ
    チにおいて、 いずれかの前記入力ポートへの情報パケット入力を、い
    ずれかの前記出力ポートへルーティングでき、 1つのプロセッサが、前記セルフ・ルーティング・クロ
    スバー・スイッチの各入力ポートに接続され、メモリ・
    モジュールが、前記セルフ・ルーティング・クロスバー
    ・スイッチの各出力ポートに接続され、 前記メモリ・モジュールは、複数のメモリ・バンクによ
    り構成され、 Nが4以上の整数であるとき、前記セルフ・ルーティン
    グ・クロスバー・スイッチは、N個の前記入力ポートと
    N個の前記出力ポートとを備え、ポート競合およびバン
    ク競合がなければ、セルフ・ルーティング・クロスバー
    ・スイッチを経て、前記N個の入力ポートから前記N個
    の出力ポートへ同時にルーティングできる最大N個の前
    記情報パケットがあり、前記情報パケットをメモリ要求
    または単に要求と称したときに、要求アクティブ・ビッ
    トが論理1ならば、要求はアクティブであり、すなわち
    存在し、要求アクティブ・ビットが論理0ならば、要求
    はノンアクティブであり、すなわち存在せず、 前記アクティブ要求を配列するN個の配列手段を備え、
    各配列手段は前記各入力ポートに関連し、 前記各配列手段は、N個の前記入力ポートとN個の前記
    出力ポートを備える前記セルフ・ルーティング・クロス
    バー・スイッチに対し、N個の入力とN個の出力を有
    し、 前記配列手段への全ての前記要求入力は、同じ前記出力
    ポートへのものであり、 前記配列手段へのアクティブ要求の数は、0からNまで
    変化することができ、 前記配列手段の前記各入力は、アクティブ要求とノンア
    クティブ要求を有することができ、 前記アクティブ要求および前記ノンアクティブ要求は、
    前記配列手段の入力にランダムな順序で現れることがで
    き、ただ1つの制限は、すべての前記アクティブ要求が
    前記配列手段の関連する同じ出力ポートをアクセスする
    ことであり、 前記配列手段の出力で、すべての前記アクティブ要求は
    連続して(配列されて)おり、もし、アクティブなi個
    の前記要求(i=1,2,..,N)が存在し、前記配
    列手段の入力にランダムな順序で現れるならば、前記配
    列手段を通過した後、前記配列手段の前記出力で、これ
    らのi個の前記アクティブ要求は、前記配列手段の最初
    のi出力(0,1,..,i−1)に存在し、残りの
    (N−i)個の前記出力は、インアクティブな要求を有
    し、すなわち、要求はこれらの(N−i)個の前記出力
    ポートに存在しない、ことを特徴とするセルフ・ルーテ
    ィング・クロスバー・スイッチ。
  2. 【請求項2】請求項1記載の配列手段において、 N個の入力とN個の出力を有する前記配列手段を、各々
    がN/2個の入力とN/2個の出力とルーティング手段
    を有する2つの第一および第二の配列手段から構成する
    手段を備え、 前記ルーティング手段は、N個の入力とN個の出力から
    構成され、 前記第一の配列手段のN/2個の入力が、N個の入力と
    N個の出力を有する前記配列手段の第一のN/2個の入
    力(0,1,..,N/2−1)であり、 前記第二の配列手段のN/2個の入力が、N個の入力と
    N個の出力を有する前記配列手段の第二のN/2個の入
    力(N/2,N/2+1,..,N−1)であり、 前記ルーティング手段のN個の出力が、N個の入力とN
    個の出力を有する前記配列手段の出力でもある、ことを
    特徴とする配列手段。
  3. 【請求項3】請求項1または2記載の配列手段におい
    て、 N個の入力とN個の出力を有する前記配列手段を、連続
    的なより小さな配列手段とルーティング手段とから構成
    する手段をさらに備え、 配列手段が、前記2つのより小さな配列手段と1つのル
    ーティング手段に最初に分けられ、これを繰り返すこと
    で、分けられた配列手段は各ステップ毎に1/2縮小さ
    れて、より小さな配列手段とルーティング手段にさらに
    分けられ、 最小単位の配列手段は、各々が2個の入力と2個の出力
    を有する2つのスイッチと、4個の入力と4個の出力を
    有するルーティング手段とから構成される、ことを特徴
    とする配列手段。
  4. 【請求項4】請求項2記載のルーティング手段におい
    て、 前記ルーティング手段の前記N個の入力のうちの第一の
    N/2個の入力(0,1,..,N/2−1)が、N/
    2個の入力とN/2個の出力を有する2つの前記配列手
    段のうちの第一の配列手段のN/2個の出力に接続さ
    れ、 前記ルーティング手段の前記N個の入力のうちの第二の
    N/2個の入力(N/2,N/2+1,..,N−1)
    が、N/2個の入力とN/2個の出力を有する2つの前
    記配列手段のうちの第二の配列手段のN/2個の出力に
    接続され、前記ルーティング手段の第一のN/2個
    (0,1,..,N/2−1)の要求アクティブ・ビッ
    トを使用し、前記ルーティング手段の前記入力から前記
    ルーティング手段の出力へ、要求をルーティングするた
    めのルーティング決定を行う手段を備え、 前記ルーティング手段の前記入力は、 (1)入力要求の要求アクティブ・ビットが、(i)
    (0,1,..,N/2−1)の順序にあるN/2個の
    要求が走査された、(ii)論理0の要求アクティブ・ビ
    ット、すなわちノンアクティブ要求がある、のいずれか
    の状態が、いずれが最初に発生するにかかわらず生じる
    まで、入力0で示される第一の入力から走査され、 (2)走査された要求i(i=0,1,..,N/2−
    1)の要求アクティブ・ビットが論理1であるならば、
    要求iは出力iにルーティングされ、 (3)すべての前記N/2個の要求が走査されたなら
    ば、(N/2)から(N−1)までの残りのN/2個の
    入力要求は、(N/2)から(N−1)までの対応する
    N/2個の出力にルーティングされて、ルーティングが
    終了し、 (4)走査された要求i(i=0,1,..,n/2−
    1)の要求アクティブ・ビットが論理0であるならば、
    入力(N/2,N/2+1,..,N−1)は、出力
    (i,i+1,..,N/2+1−1)にルーティング
    され、残りの出力(N/2+i,N/2+i+
    1,..,N−1)は、要求アクティブ・ビットをター
    ンオフし、という3つのステップを用いることを特徴と
    するルーティング手段。
  5. 【請求項5】ポート競合解消手段を備える請求項1記載
    のセルフ・ルーティング・クロスバー・スイッチにおい
    て、 前記セルフ・ルーティング・クロスバー・スイッチの前
    記出力ポートにそれぞれ1つが対応する、N個の前記ポ
    ート競合解消手段が存在し、 N個の入力とN個の出力を有する前記セルフ・ルーティ
    ング・クロスバー・スイッチのための前記ポート競合解
    消手段が、N個の段を持ち、 前記ポート競合解消手段のi番目(i=0,1,..,
    N−1)の前記段の入力が、前記配列手段のi番目の出
    力であり、 前記ポート競合解消手段の第1番目の前記段の出力が、
    前記ポート競合解消手段が関連する前記セルフ・ルーテ
    ィング・クロスバー・スイッチの前記ポートの出力であ
    り、 さらに、ポート競合状態を検出する手段を備え、 前記ポート競合解消手段の第2番目の前記段の要求アク
    ティブ・ビットが、ポート競合状態を検出するために使
    用され、 さらに、前記検出されたポート競合状態を解消する手段
    を備え、この手段が、 前記ポート競合状態の検出が、(a)配列手段出力か
    ら、(b)ポート競合解消手段の前段の出力に、前記ポ
    ート競合解消手段の段への入力を変化させ、 前記ポート競合解消手段は、最後のアクティブ要求が前
    記セルフ・ルーティング・クロスバー・スイッチの前記
    出力ポートにシフトされるまで、シフト・レジスタとし
    て機能し、 前記ポート競合解消手段は、最後のアクティブ要求が前
    記セルフ・ルーティング・クロスバー・スイッチの前記
    出力ポートにシフトされた後に、前記配列手段の出力を
    監視する段に切り替わる、ことを特徴とするセルフ・ル
    ーティング・クロスバー・スイッチ。
  6. 【請求項6】バンク競合解消論理回路手段を備える請求
    項1記載のセルフ・ルーティング・クロスバー・スイッ
    チにおいて、 前記セルフ・ルーティング・クロスバー・スイッチの前
    記出力ポートにそれぞれ1つが対応する、N個の前記バ
    ンク競合解消手段が存在し、 1つの前記ポートに対応する前記バンク競合解消手段
    は、前記出力ポートに接続されたバンクの数と同じ数の
    バンク競合解消サブ回路を有し、 前記セルフ・ルーティング・クロスバー・スイッチの各
    前記ポートに対応する前記バンク競合解消手段は、N段
    を有し、 前記バンク競合解消手段のi番目(i=0,1,..,
    N−1)の前記ステージの入力が、前記配列手段のi番
    目の出力であり、 前記バンク競合解消手段の第1番目の前記段の出力が、
    前記バンク競合解消手段に関連する前記セルフ・ルーテ
    ィング・クロスバー・スイッチの前記ポートの出力であ
    り、 さらに、ポート競合状態を検出する手段を備え、 バンクへの要求の到着は、前記バンクに関連するバンク
    競合解消サブ回路のダウン・カウンタをターンオンし
    て、次のバンクが再度アクセスされる前に要求された最
    小数のクロックを数え、 前記バンクへの要求が、前記ダウン・カウンタがゼロに
    戻る前に到着すれば、バンク競合信号が、前記ダウン・
    カウンタが現在の値から0へカウント・ダウンするのに
    要する時間の間に発生され、 さらに、前記検出されたバンク競合状態を解消する手段
    を備え、この手段が、 前記バンク競合信号の発生は、バンク競合解消回路の第
    1番目の前記段の要求アクティブ・ビットを論理0に
    し、その結果、前記ポートしたがって前記バンクは、前
    記バンク競合信号がアクティブである期間、アクティブ
    要求がないことを知り、 前記バンク競合解消手段のN−1個の段の残りは、前記
    バンク競合信号を前記N−1個の段のHOLD入力へ供
    給することによって、前記バンク競合信号がアクティブ
    にされる時間の間、内容を保持する、ことを特徴とする
    セルフ・ルーティング・クロスバー・スイッチ。
JP5105226A 1993-05-06 1993-05-06 セルフ・ルーティング・クロスバー・スイッチ Pending JPH06314264A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP5105226A JPH06314264A (ja) 1993-05-06 1993-05-06 セルフ・ルーティング・クロスバー・スイッチ
US08/237,843 US5559970A (en) 1993-05-06 1994-05-04 Crossbar switch for multi-processor, multi-memory system for resolving port and bank contention through the use of aligners, routers, and serializers
EP94106985A EP0623880B1 (en) 1993-05-06 1994-05-04 Crossbar switch for multiprocessor system
DE69425605T DE69425605T2 (de) 1993-05-06 1994-05-04 Crossbarschalter für ein Multiprocessorsystem
CA002122880A CA2122880C (en) 1993-05-06 1994-05-04 Crossbar switch for multi-processor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5105226A JPH06314264A (ja) 1993-05-06 1993-05-06 セルフ・ルーティング・クロスバー・スイッチ

Publications (1)

Publication Number Publication Date
JPH06314264A true JPH06314264A (ja) 1994-11-08

Family

ID=14401757

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5105226A Pending JPH06314264A (ja) 1993-05-06 1993-05-06 セルフ・ルーティング・クロスバー・スイッチ

Country Status (5)

Country Link
US (1) US5559970A (ja)
EP (1) EP0623880B1 (ja)
JP (1) JPH06314264A (ja)
CA (1) CA2122880C (ja)
DE (1) DE69425605T2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0962617A (ja) * 1995-08-29 1997-03-07 Kofu Nippon Denki Kk 競合調停装置
JP2005527040A (ja) * 2002-05-24 2005-09-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 疑似マルチポートメモリのプログラムされたアクセス待ち時間
JP2008545187A (ja) * 2005-06-30 2008-12-11 アンテルユニヴェルシテール・ミクロ−エレクトロニカ・サントリュム・ヴェー・ゼッド・ドゥブルヴェ マルチプロセッサシステムのためのメモリ配列
JP2013033350A (ja) * 2011-08-01 2013-02-14 Fujitsu Semiconductor Ltd プロセッサ、及びプロセッサの制御方法

Families Citing this family (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3452929B2 (ja) * 1993-09-27 2003-10-06 株式会社エヌ・ティ・ティ・ドコモ マルチプロセッサ
US6425881B1 (en) * 1994-10-05 2002-07-30 Nitrosystems, Inc. Therapeutic mixture useful in inhibiting lesion formation after vascular injury
US5761455A (en) * 1995-02-06 1998-06-02 Cpu Technology, Inc. Dynamic bus reconfiguration logic
US6081873A (en) * 1997-06-25 2000-06-27 Sun Microsystems, Inc. In-line bank conflict detection and resolution in a multi-ported non-blocking cache
DE69833122T2 (de) * 1997-10-21 2006-08-24 Koninklijke Philips Electronics N.V. Signalverarbeitungsvorrichtung und verfahren zur verbindungsplanung zwischen prozessoren in einer signalverarbeitungsvorrichtung
US6014709A (en) * 1997-11-05 2000-01-11 Unisys Corporation Message flow protocol for avoiding deadlocks
US6092156A (en) * 1997-11-05 2000-07-18 Unisys Corporation System and method for avoiding deadlocks utilizing split lock operations to provide exclusive access to memory during non-atomic operations
US6052760A (en) * 1997-11-05 2000-04-18 Unisys Corporation Computer system including plural caches and utilizing access history or patterns to determine data ownership for efficient handling of software locks
WO1999034294A1 (en) * 1997-12-24 1999-07-08 Creative Technology Ltd. Optimal multi-channel memory controller system
US6415364B1 (en) * 1997-12-31 2002-07-02 Unisys Corporation High-speed memory storage unit for a multiprocessor system having integrated directory and data storage subsystems
US6125429A (en) 1998-03-12 2000-09-26 Compaq Computer Corporation Cache memory exchange optimized memory organization for a computer system
US6314501B1 (en) 1998-07-23 2001-11-06 Unisys Corporation Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory
US6473827B2 (en) * 1998-12-22 2002-10-29 Ncr Corporation Distributed multi-fabric interconnect
US6480941B1 (en) * 1999-02-23 2002-11-12 International Business Machines Corporation Secure partitioning of shared memory based multiprocessor system
US6597692B1 (en) * 1999-04-21 2003-07-22 Hewlett-Packard Development, L.P. Scalable, re-configurable crossbar switch architecture for multi-processor system interconnection networks
US6425044B1 (en) * 1999-07-13 2002-07-23 Micron Technology, Inc. Apparatus for providing fast memory decode using a bank conflict table
US6425043B1 (en) * 1999-07-13 2002-07-23 Micron Technology, Inc. Method for providing fast memory decode using a bank conflict table
US6404660B1 (en) * 1999-12-23 2002-06-11 Rambus, Inc. Semiconductor package with a controlled impedance bus and method of forming same
US7649901B2 (en) 2000-02-08 2010-01-19 Mips Technologies, Inc. Method and apparatus for optimizing selection of available contexts for packet processing in multi-stream packet processing
US7065096B2 (en) 2000-06-23 2006-06-20 Mips Technologies, Inc. Method for allocating memory space for limited packet head and/or tail growth
US7165257B2 (en) * 2000-02-08 2007-01-16 Mips Technologies, Inc. Context selection and activation mechanism for activating one of a group of inactive contexts in a processor core for servicing interrupts
US7139901B2 (en) * 2000-02-08 2006-11-21 Mips Technologies, Inc. Extended instruction set for packet processing applications
US7058064B2 (en) * 2000-02-08 2006-06-06 Mips Technologies, Inc. Queueing system for processors in packet routing operations
US7082552B2 (en) * 2000-02-08 2006-07-25 Mips Tech Inc Functional validation of a packet management unit
US7042887B2 (en) 2000-02-08 2006-05-09 Mips Technologies, Inc. Method and apparatus for non-speculative pre-fetch operation in data packet processing
US7155516B2 (en) * 2000-02-08 2006-12-26 Mips Technologies, Inc. Method and apparatus for overflowing data packets to a software-controlled memory when they do not fit into a hardware-controlled memory
US7032226B1 (en) * 2000-06-30 2006-04-18 Mips Technologies, Inc. Methods and apparatus for managing a buffer of events in the background
US20010052053A1 (en) * 2000-02-08 2001-12-13 Mario Nemirovsky Stream processing unit for a multi-streaming processor
US7502876B1 (en) 2000-06-23 2009-03-10 Mips Technologies, Inc. Background memory manager that determines if data structures fits in memory with memory state transactions map
US7058065B2 (en) * 2000-02-08 2006-06-06 Mips Tech Inc Method and apparatus for preventing undesirable packet download with pending read/write operations in data packet processing
US7076630B2 (en) * 2000-02-08 2006-07-11 Mips Tech Inc Method and apparatus for allocating and de-allocating consecutive blocks of memory in background memo management
US6988154B2 (en) 2000-03-10 2006-01-17 Arc International Memory interface and method of interfacing between functional entities
GB0008195D0 (en) 2000-04-05 2000-05-24 Power X Limited Data switching arbitration arrangements
EP1284071B1 (en) 2000-05-18 2007-07-11 Xyratex Technology Limited Apparatus and method for resource arbitration
US7610447B2 (en) * 2001-02-28 2009-10-27 Rambus Inc. Upgradable memory system with reconfigurable interconnect
US6889304B2 (en) 2001-02-28 2005-05-03 Rambus Inc. Memory device supporting a dynamically configurable core organization
US7500075B1 (en) 2001-04-17 2009-03-03 Rambus Inc. Mechanism for enabling full data bus utilization without increasing data granularity
US6925520B2 (en) * 2001-05-31 2005-08-02 Sun Microsystems, Inc. Self-optimizing crossbar switch
US6825841B2 (en) * 2001-09-07 2004-11-30 Rambus Inc. Granularity memory column access
US7376811B2 (en) * 2001-11-06 2008-05-20 Netxen, Inc. Method and apparatus for performing computations and operations on data using data steering
US6865639B2 (en) * 2001-12-19 2005-03-08 Northrop Grumman Corporation Scalable self-routing superconductor switch
US7047374B2 (en) * 2002-02-25 2006-05-16 Intel Corporation Memory read/write reordering
US7308540B2 (en) * 2002-05-24 2007-12-11 Koninklijke Philips Electronics N.V. Pseudo multiport data memory has stall facility
US7099983B2 (en) * 2002-11-25 2006-08-29 Lsi Logic Corporation Multi-core communications module, data communications system incorporating a multi-core communications module, and data communications process
US6996785B1 (en) 2003-04-25 2006-02-07 Universal Network Machines, Inc . On-chip packet-based interconnections using repeaters/routers
EP1473637A1 (de) * 2003-04-30 2004-11-03 Siemens Aktiengesellschaft Einrichtung sowie Verfahren zur Kopplung von Steuereinheiten mit gemeinsamen Speichereinheiten
US8250295B2 (en) 2004-01-05 2012-08-21 Smart Modular Technologies, Inc. Multi-rank memory module that emulates a memory module having a different number of ranks
US7308558B2 (en) * 2004-01-07 2007-12-11 International Business Machines Corporation Multiprocessor data processing system having scalable data interconnect and data routing mechanism
US7007128B2 (en) * 2004-01-07 2006-02-28 International Business Machines Corporation Multiprocessor data processing system having a data routing mechanism regulated through control communication
US7916574B1 (en) 2004-03-05 2011-03-29 Netlist, Inc. Circuit providing load isolation and memory domain translation for memory module
JP2006039677A (ja) * 2004-07-22 2006-02-09 Fujitsu Ltd クロスバ
US8190808B2 (en) * 2004-08-17 2012-05-29 Rambus Inc. Memory device having staggered memory operations
US7280428B2 (en) 2004-09-30 2007-10-09 Rambus Inc. Multi-column addressing mode memory system including an integrated circuit memory device
US7254075B2 (en) * 2004-09-30 2007-08-07 Rambus Inc. Integrated circuit memory system having dynamic memory bank count and page size
US7600023B2 (en) * 2004-11-05 2009-10-06 Hewlett-Packard Development Company, L.P. Systems and methods of balancing crossbar bandwidth
KR100594967B1 (ko) 2004-11-29 2006-06-30 한국과학기술원 크로스바 스위치
US8595459B2 (en) 2004-11-29 2013-11-26 Rambus Inc. Micro-threaded memory
JP4453915B2 (ja) * 2005-03-18 2010-04-21 富士通株式会社 クロスバー装置、制御方法及びプログラム
US20060248305A1 (en) * 2005-04-13 2006-11-02 Wayne Fang Memory device having width-dependent output latency
US8560795B2 (en) 2005-06-30 2013-10-15 Imec Memory arrangement for multi-processor systems including a memory queue
US20070124554A1 (en) * 2005-10-28 2007-05-31 Honeywell International Inc. Global memory for a rapidio network
US20070260841A1 (en) 2006-05-02 2007-11-08 Hampel Craig E Memory module with reduced access granularity
KR101388134B1 (ko) * 2007-10-01 2014-04-23 삼성전자주식회사 뱅크 충돌 방지 장치 및 방법
US8127049B1 (en) 2008-03-12 2012-02-28 Matrox Graphics Inc. Input/output pin allocation for data streams of variable widths
US8154901B1 (en) * 2008-04-14 2012-04-10 Netlist, Inc. Circuit providing load isolation and noise reduction
FR2946441A1 (fr) * 2009-06-08 2010-12-10 Commissariat Energie Atomique Reseau d'interconnexions a sous-reseaux dynamiques.
US8306042B1 (en) * 2009-06-19 2012-11-06 Google Inc. Class-based deterministic packet routing
US9268719B2 (en) 2011-08-05 2016-02-23 Rambus Inc. Memory signal buffers and modules supporting variable access granularity
US9558143B2 (en) * 2014-05-09 2017-01-31 Micron Technology, Inc. Interconnect systems and methods using hybrid memory cube links to send packetized data over different endpoints of a data handling device
EP3271826B1 (en) 2015-07-30 2021-09-29 Hewlett Packard Enterprise Development LP Interleaved access of memory
KR101923661B1 (ko) 2016-04-04 2018-11-29 주식회사 맴레이 플래시 기반 가속기 및 이를 포함하는 컴퓨팅 디바이스
US10162781B2 (en) 2016-06-01 2018-12-25 Micron Technology, Inc. Logic component switch
US10346347B2 (en) 2016-10-03 2019-07-09 The Regents Of The University Of Michigan Field-programmable crossbar array for reconfigurable computing
US10171084B2 (en) 2017-04-24 2019-01-01 The Regents Of The University Of Michigan Sparse coding with Memristor networks
US10943652B2 (en) 2018-05-22 2021-03-09 The Regents Of The University Of Michigan Memory processing unit
CN112526407B (zh) * 2020-11-24 2024-03-19 国网新疆电力有限公司信息通信公司 电力数字配线架2m端口连接装置及端口测试方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4745545A (en) * 1985-06-28 1988-05-17 Cray Research, Inc. Memory reference control in a multiprocessor
EP0365745A3 (en) * 1988-10-28 1990-12-27 International Business Machines Corporation A method for detecting and avoiding erroneous decombining in combining networks for parallel computing systems
US5202970A (en) * 1989-02-07 1993-04-13 Cray Research, Inc. Method for sharing memory in a multiprocessor system
US5239629A (en) * 1989-12-29 1993-08-24 Supercomputer Systems Limited Partnership Dedicated centralized signaling mechanism for selectively signaling devices in a multiprocessor system
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
US5276838A (en) * 1991-03-04 1994-01-04 International Business Machines Corporation Dynamically repositioned memory bank queues

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0962617A (ja) * 1995-08-29 1997-03-07 Kofu Nippon Denki Kk 競合調停装置
JP2005527040A (ja) * 2002-05-24 2005-09-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 疑似マルチポートメモリのプログラムされたアクセス待ち時間
JP2008545187A (ja) * 2005-06-30 2008-12-11 アンテルユニヴェルシテール・ミクロ−エレクトロニカ・サントリュム・ヴェー・ゼッド・ドゥブルヴェ マルチプロセッサシステムのためのメモリ配列
JP2013033350A (ja) * 2011-08-01 2013-02-14 Fujitsu Semiconductor Ltd プロセッサ、及びプロセッサの制御方法

Also Published As

Publication number Publication date
DE69425605T2 (de) 2001-04-19
EP0623880B1 (en) 2000-08-23
US5559970A (en) 1996-09-24
EP0623880A2 (en) 1994-11-09
EP0623880A3 (en) 1995-11-02
CA2122880C (en) 1999-07-27
DE69425605D1 (de) 2000-09-28
CA2122880A1 (en) 1994-11-07

Similar Documents

Publication Publication Date Title
JPH06314264A (ja) セルフ・ルーティング・クロスバー・スイッチ
KR900006793B1 (ko) 패킷 스위치 다중 대기행렬 NxM 스위치 노오드 및 처리 방법
EP0334954B1 (en) Layered network
KR900006791B1 (ko) 패킷 스위치식 다중포트 메모리 n×m 스위치 노드 및 처리 방법
Patel Performance of processor-memory interconnections for multiprocessors
US4837676A (en) MIMD instruction flow computer architecture
KR900006792B1 (ko) 패킷 스위칭 노드용 로드 평형 회로장치
EP0696367B1 (en) Variable latency processor to memory interconnect network
EP0369146B1 (en) Multipath hierarchical network
US4412286A (en) Tightly coupled multiple instruction multiple data computer system
JPH07210527A (ja) クラスタ制御装置およびクラスタ接続多重処理システム
JPH05242019A (ja) 先読み優先調停システム及び方法
US5410300A (en) Distributed crossbar switch architecture
US4276611A (en) Device for the control of data flows
EP0199757B1 (en) Instruction flow computer
US4685128A (en) Method and network for transmitting addressed signal samples from any network input to an addressed network output
US3665409A (en) Signal translator
JP2954220B2 (ja) 並列計算機のためのデータ転送ネットワーク
US5327579A (en) Scanning systems using tree structures
JPH0767113B2 (ja) 自己操舵ネットワーク
JPH09269937A (ja) プロセッサ間通信におけるパケット送信方法およびその装置
JP2731738B2 (ja) マルチプロセッサシステム
JP2589828B2 (ja) 複数のプロセッサと複数のメモリとを備えるデータ処理システム用中央処理ユニット
Lee et al. New self-routing permutation networks
Dickey et al. Interconnection network switch architectures and combining strategies

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19980421