JP2882304B2 - マルチプロセッサシステム - Google Patents
マルチプロセッサシステムInfo
- Publication number
- JP2882304B2 JP2882304B2 JP7062820A JP6282095A JP2882304B2 JP 2882304 B2 JP2882304 B2 JP 2882304B2 JP 7062820 A JP7062820 A JP 7062820A JP 6282095 A JP6282095 A JP 6282095A JP 2882304 B2 JP2882304 B2 JP 2882304B2
- Authority
- JP
- Japan
- Prior art keywords
- request
- buffer
- processors
- interconnection network
- storage device
- 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.)
- Expired - Fee Related
Links
Landscapes
- Multi Processors (AREA)
Description
【0001】
【産業上の利用分野】本発明は、マルチプロセッサシス
テムに関し、特に複数のプロセッサと主記憶装置とこれ
らを結合する相互結合網とを有するマルチプロセッサシ
ステムに関する。
テムに関し、特に複数のプロセッサと主記憶装置とこれ
らを結合する相互結合網とを有するマルチプロセッサシ
ステムに関する。
【0002】
【従来の技術】マルチプロセッサシステムにおいて、相
互結合網の構成がその性能に与える影響は多大なものが
ある。相互結合網は、複数のプロセッサより送出された
主記憶装置へのアクセス(以下、メモリアクセスとい
う)であって、主記憶装置の同一メモリポートへアクセ
スする複数のメモリアクセスについて、競合調停を行い
ながらルーティングする。ここで、主記憶装置は複数の
メモリバンクを有するものとし、また、相互結合網は演
算プロセッサ台数分の入力ポートと主記憶装置のバンク
数分の出力ポートを有するものとする。
互結合網の構成がその性能に与える影響は多大なものが
ある。相互結合網は、複数のプロセッサより送出された
主記憶装置へのアクセス(以下、メモリアクセスとい
う)であって、主記憶装置の同一メモリポートへアクセ
スする複数のメモリアクセスについて、競合調停を行い
ながらルーティングする。ここで、主記憶装置は複数の
メモリバンクを有するものとし、また、相互結合網は演
算プロセッサ台数分の入力ポートと主記憶装置のバンク
数分の出力ポートを有するものとする。
【0003】相互結合網がシステム性能に与える性能イ
ンパクトの最大要因はネットワークスループットとネッ
トワークディレーの2つの要因がある。ネットワークス
ループットは単位時間あたりに相互結合網を通過可能な
メモリリクエストの総数であり、ネットワークディレー
はメモリリクエストがネットワークを通過するのに要す
る時間である。これらは、メモリアクセス衝突が全く無
い場合の最大値と、メモリアクセス衝突が有る場合の実
効値とを分けて算出する必要がある。
ンパクトの最大要因はネットワークスループットとネッ
トワークディレーの2つの要因がある。ネットワークス
ループットは単位時間あたりに相互結合網を通過可能な
メモリリクエストの総数であり、ネットワークディレー
はメモリリクエストがネットワークを通過するのに要す
る時間である。これらは、メモリアクセス衝突が全く無
い場合の最大値と、メモリアクセス衝突が有る場合の実
効値とを分けて算出する必要がある。
【0004】ネットワークスループットとディレーとを
向上させる最大の方策として、バンド幅を広げる方法が
ある。ここで、バンド幅とは単位時間あたりに通過可能
なメモリリクエストのサイズの総量をいう。例えばメモ
リアクセスが8バイトのデータ幅であった場合に、相互
結合網の1サイクルタイムあたりのバンド幅が4バイト
幅であるならば、このリクエストの通過には2サイクル
タイム要するが、8バイト幅であるならば1サイクルタ
イムで十分である。
向上させる最大の方策として、バンド幅を広げる方法が
ある。ここで、バンド幅とは単位時間あたりに通過可能
なメモリリクエストのサイズの総量をいう。例えばメモ
リアクセスが8バイトのデータ幅であった場合に、相互
結合網の1サイクルタイムあたりのバンド幅が4バイト
幅であるならば、このリクエストの通過には2サイクル
タイム要するが、8バイト幅であるならば1サイクルタ
イムで十分である。
【0005】しかし、性能向上のためにバンド幅を単純
に広げようとしても、実装条件との制限を受けてしま
う。例えば、16プロセッサで8バイト幅のネットワー
クを構成するためには、ネットワークポート数は入力1
6ポート、出力16ポートが必要となるので、合計64
ビット×16ポート×2=2048信号が必要となる。
ここで、主記憶装置に接続する出力ポート側も入力のス
ループットに合わせるために16ポート構成になってい
るものとする。このような大量の入出力信号を1つのチ
ップに搭載することは、実装上困難である。
に広げようとしても、実装条件との制限を受けてしま
う。例えば、16プロセッサで8バイト幅のネットワー
クを構成するためには、ネットワークポート数は入力1
6ポート、出力16ポートが必要となるので、合計64
ビット×16ポート×2=2048信号が必要となる。
ここで、主記憶装置に接続する出力ポート側も入力のス
ループットに合わせるために16ポート構成になってい
るものとする。このような大量の入出力信号を1つのチ
ップに搭載することは、実装上困難である。
【0006】かかる実装上の問題を解決する手段とし
て、ビットスライス式にLSIを分割する方法がある。
これは例えばデータ幅が8バイトであったならば、1バ
イトづつのデータを8LSIチップに分割し、1チップ
あたりのデータ幅を1バイトにする方法である。上述の
例では、1チップあたりのピン数は8ビット×16ポー
ト×2=256ピンとなって、実装上の条件がかなり緩
和される。
て、ビットスライス式にLSIを分割する方法がある。
これは例えばデータ幅が8バイトであったならば、1バ
イトづつのデータを8LSIチップに分割し、1チップ
あたりのデータ幅を1バイトにする方法である。上述の
例では、1チップあたりのピン数は8ビット×16ポー
ト×2=256ピンとなって、実装上の条件がかなり緩
和される。
【0007】このように、ビットスライスによるLSI
分割を行うことにより、ルーティングされるデータ信号
については、ある程度実装上の問題を解決できる。しか
し、コントロール信号については、このような方法では
実装上の問題を解決できない。ここで、コントロール信
号とは、ネットワークの動作処理を規定する制御信号で
あり各プロセッサ、もしくは主記憶装置より送受する信
号である。例えば、各メモリリクエストの行き先出力ポ
ート番号を指定するルーティングアドレスや、ネットワ
ークからのリクエスト送出停止を要求するホールド信号
がこれに相当する。これらコントロール信号はビットス
ライスによるLSI分割を行っても、各LSIチップに
このコントロール信号のインターフェースピンを設ける
必要があるため、信号線数を削減することができない。
分割を行うことにより、ルーティングされるデータ信号
については、ある程度実装上の問題を解決できる。しか
し、コントロール信号については、このような方法では
実装上の問題を解決できない。ここで、コントロール信
号とは、ネットワークの動作処理を規定する制御信号で
あり各プロセッサ、もしくは主記憶装置より送受する信
号である。例えば、各メモリリクエストの行き先出力ポ
ート番号を指定するルーティングアドレスや、ネットワ
ークからのリクエスト送出停止を要求するホールド信号
がこれに相当する。これらコントロール信号はビットス
ライスによるLSI分割を行っても、各LSIチップに
このコントロール信号のインターフェースピンを設ける
必要があるため、信号線数を削減することができない。
【0008】一方、マルチプロセッサシステムにおいて
は、主記憶装置を複数のバンクに物理的に分割し、これ
らを独立に動作させることが多い。この場合、相互結合
網は各ポート毎に独立に動作することになる。そこで、
リクエスト間の緩衝を吸収するため、各ポートにバッフ
ァを設けることが一般的である。このように構成するこ
とにより、各バンクや各ポート間で完全に同期させて動
作する構成と比較して、より高いスループット、より短
いアクセスタイムが実現できる。
は、主記憶装置を複数のバンクに物理的に分割し、これ
らを独立に動作させることが多い。この場合、相互結合
網は各ポート毎に独立に動作することになる。そこで、
リクエスト間の緩衝を吸収するため、各ポートにバッフ
ァを設けることが一般的である。このように構成するこ
とにより、各バンクや各ポート間で完全に同期させて動
作する構成と比較して、より高いスループット、より短
いアクセスタイムが実現できる。
【0009】ところが、この構成では以下のような問題
がある。あるプロセッサAがデータDのライトリクエス
トを発行して、引き続いてフラグFを同期レジスタにセ
ットすることによってデータDをライトした旨を他のプ
ロセッサに伝える。そこで、プロセッサBが同期レジス
タのフラグFをチェックすることにより、データDのラ
イトを知り、データDのリードリクエストを発行する。
このとき、偶発的にプロセッサAからメモリへのパスが
塞がっていたとすると、プロセッサAからのライトリク
エストをプロセッサBからのリードリクエストが追い越
してしまうおそれがある。この追い越しにより、プロセ
ッサBの読み出したデータはデータDであることを保証
できなくなる。
がある。あるプロセッサAがデータDのライトリクエス
トを発行して、引き続いてフラグFを同期レジスタにセ
ットすることによってデータDをライトした旨を他のプ
ロセッサに伝える。そこで、プロセッサBが同期レジス
タのフラグFをチェックすることにより、データDのラ
イトを知り、データDのリードリクエストを発行する。
このとき、偶発的にプロセッサAからメモリへのパスが
塞がっていたとすると、プロセッサAからのライトリク
エストをプロセッサBからのリードリクエストが追い越
してしまうおそれがある。この追い越しにより、プロセ
ッサBの読み出したデータはデータDであることを保証
できなくなる。
【0010】そこで、かかる場合には、以下に示すシン
ク(SYNC)動作によりシンクの確認を行うことが、
複数プロセッサ間の正確なデータの受渡しを実現するた
めに効果的である。すなわち、相互結合網や主記憶装置
に対してそのプロセッサが発行したリクエストの残留状
態を確認するシンクリクエストを発行する。相互結合網
および主記憶装置は、そのシンクリクエストを受け取る
と、そのリクエストを発行したプロセッサからの残留リ
クエストがなくなるのを確認し、残留リクエストが全て
メモリアクセス処理を完了した時点でその旨のリプライ
を返す。これにより、残留リクエストが全てなくなった
ことを確認した上で同期レジスタにフラグをセットすれ
ば、上述のような問題を防止することができる。
ク(SYNC)動作によりシンクの確認を行うことが、
複数プロセッサ間の正確なデータの受渡しを実現するた
めに効果的である。すなわち、相互結合網や主記憶装置
に対してそのプロセッサが発行したリクエストの残留状
態を確認するシンクリクエストを発行する。相互結合網
および主記憶装置は、そのシンクリクエストを受け取る
と、そのリクエストを発行したプロセッサからの残留リ
クエストがなくなるのを確認し、残留リクエストが全て
メモリアクセス処理を完了した時点でその旨のリプライ
を返す。これにより、残留リクエストが全てなくなった
ことを確認した上で同期レジスタにフラグをセットすれ
ば、上述のような問題を防止することができる。
【0011】
【発明が解決しようとする課題】しかしながら、このよ
うなシンク動作の完了を通知するためには、リプライ用
の信号線が別途必要となる。上述したように、相互結合
網においては、制御信号に係る信号線を増やすことは実
装上困難であり、シンクリクエストの導入の障害とな
る。そこで、相互結合網のバッファの状態を簡易に調べ
ることができることが望ましい。
うなシンク動作の完了を通知するためには、リプライ用
の信号線が別途必要となる。上述したように、相互結合
網においては、制御信号に係る信号線を増やすことは実
装上困難であり、シンクリクエストの導入の障害とな
る。そこで、相互結合網のバッファの状態を簡易に調べ
ることができることが望ましい。
【0012】本発明の目的は、マルチプロセッサシステ
ムにおいて、あるプロセッサから発行されたリクエスト
が、その発行先において残留していないことを確認する
ことにある。
ムにおいて、あるプロセッサから発行されたリクエスト
が、その発行先において残留していないことを確認する
ことにある。
【0013】また、本発明の目的は、信号線数を増加さ
せることなく、上記残留リクエストの確認を実現するこ
とにある。
せることなく、上記残留リクエストの確認を実現するこ
とにある。
【0014】
【課題を解決するための手段】上記課題を解決するため
に本発明のマルチプロセッサシステムは、複数のプロセ
ッサと、主記憶装置と、前記複数のプロセッサと前記主
記憶装置を接続する相互結合網とを含むマルチプロセッ
サシステムであって、前記複数のプロセッサの各々は、
当該プロセッサから送出したリクエストが前記相互結合
網に滞留していないことを確認する機能を有する。
に本発明のマルチプロセッサシステムは、複数のプロセ
ッサと、主記憶装置と、前記複数のプロセッサと前記主
記憶装置を接続する相互結合網とを含むマルチプロセッ
サシステムであって、前記複数のプロセッサの各々は、
当該プロセッサから送出したリクエストが前記相互結合
網に滞留していないことを確認する機能を有する。
【0015】また、本発明の他のマルチプロセッサシス
テムは、複数のプロセッサと、主記憶装置と、前記複数
のプロセッサと前記主記憶装置を接続する相互結合網と
を含むマルチプロセッサシステムであって、前記相互結
合網は、前記複数のプロセッサの各々から受け取ったリ
クエストであって前記主記憶装置に受け入れられていな
いリクエストを当該プロセッサに対応して保持するバッ
ファを含み、前記複数のプロセッサの各々は、前記相互
結合網内の対応するバッファの内容を包含するように保
持する疑似バッファを含む。
テムは、複数のプロセッサと、主記憶装置と、前記複数
のプロセッサと前記主記憶装置を接続する相互結合網と
を含むマルチプロセッサシステムであって、前記相互結
合網は、前記複数のプロセッサの各々から受け取ったリ
クエストであって前記主記憶装置に受け入れられていな
いリクエストを当該プロセッサに対応して保持するバッ
ファを含み、前記複数のプロセッサの各々は、前記相互
結合網内の対応するバッファの内容を包含するように保
持する疑似バッファを含む。
【0016】また、本発明の他のマルチプロセッサシス
テムは、複数のプロセッサと、主記憶装置と、前記複数
のプロセッサと前記主記憶装置を接続する相互結合網と
を含むマルチプロセッサシステムであって、前記相互結
合網は、前記複数のプロセッサの各々から受け取ったリ
クエストであって前記主記憶装置に受け入れられていな
いリクエストを当該プロセッサに対応して保持する複数
段の先入れ先出し式のバッファと、このバッファに保持
されているリクエストが送出できない状態であることを
前記対応するプロセッサに通知するホールド通知手段と
を含み、前記複数のプロセッサの各々は、前記ホールド
通知手段からリクエストが送出できない状態である旨を
通知されない限り、前記相互結合網に対して送出したリ
クエストのコピーを保持していく前記相互結合網内の対
応するバッファと同一の段数を有する疑似バッファを含
む。
テムは、複数のプロセッサと、主記憶装置と、前記複数
のプロセッサと前記主記憶装置を接続する相互結合網と
を含むマルチプロセッサシステムであって、前記相互結
合網は、前記複数のプロセッサの各々から受け取ったリ
クエストであって前記主記憶装置に受け入れられていな
いリクエストを当該プロセッサに対応して保持する複数
段の先入れ先出し式のバッファと、このバッファに保持
されているリクエストが送出できない状態であることを
前記対応するプロセッサに通知するホールド通知手段と
を含み、前記複数のプロセッサの各々は、前記ホールド
通知手段からリクエストが送出できない状態である旨を
通知されない限り、前記相互結合網に対して送出したリ
クエストのコピーを保持していく前記相互結合網内の対
応するバッファと同一の段数を有する疑似バッファを含
む。
【0017】また、本発明の他のマルチプロセッサシス
テムは、n個(nは2以上の整数)のプロセッサと、m
個(mは2以上の整数)のバンクから成る主記憶装置
と、前記プロセッサと前記主記憶装置を接続するn対m
の相互結合網とを含むマルチプロセッサシステムであっ
て、前記相互結合網は、前記プロセッサの各々から受け
取ったリクエストであって前記主記憶装置に受け入れら
れていないリクエストを当該プロセッサに対応して保持
する複数段の先入れ先出し式のn個のバッファと、これ
らバッファの出力を前記主記憶のバンクに接続するクロ
スバと、前記バッファに保持されているリクエストが前
記クロスバに送出できない状態であることを前記対応す
るプロセッサに通知するn個のホールド通知手段とを含
み、前記プロセッサの各々は、前記対応するホールド通
知手段からリクエストが送出できない状態である旨を通
知されない限り、前記相互結合網に対して送出したリク
エストのコピーを保持していく前記相互結合網内の対応
するバッファと同一の段数を有する疑似バッファを含
む。
テムは、n個(nは2以上の整数)のプロセッサと、m
個(mは2以上の整数)のバンクから成る主記憶装置
と、前記プロセッサと前記主記憶装置を接続するn対m
の相互結合網とを含むマルチプロセッサシステムであっ
て、前記相互結合網は、前記プロセッサの各々から受け
取ったリクエストであって前記主記憶装置に受け入れら
れていないリクエストを当該プロセッサに対応して保持
する複数段の先入れ先出し式のn個のバッファと、これ
らバッファの出力を前記主記憶のバンクに接続するクロ
スバと、前記バッファに保持されているリクエストが前
記クロスバに送出できない状態であることを前記対応す
るプロセッサに通知するn個のホールド通知手段とを含
み、前記プロセッサの各々は、前記対応するホールド通
知手段からリクエストが送出できない状態である旨を通
知されない限り、前記相互結合網に対して送出したリク
エストのコピーを保持していく前記相互結合網内の対応
するバッファと同一の段数を有する疑似バッファを含
む。
【0018】また、本発明の他のマルチプロセッサシス
テムにおいて、前記クロスバは、前記バンクに対応する
m個のセレクタを含む。
テムにおいて、前記クロスバは、前記バンクに対応する
m個のセレクタを含む。
【0019】
【実施例】次に本発明のマルチプロセッサシステムの一
実施例について図面を参照して詳細に説明する。
実施例について図面を参照して詳細に説明する。
【0020】図1を参照すると、本発明の一実施例であ
るマルチプロセッサシステムは、複数のプロセッサ10
0と、主記憶装置200と、これらプロセッサ100と
主記憶装置200を結合する相互結合網300とを有し
ている。
るマルチプロセッサシステムは、複数のプロセッサ10
0と、主記憶装置200と、これらプロセッサ100と
主記憶装置200を結合する相互結合網300とを有し
ている。
【0021】主記憶装置200は、複数のバンク210
に分割されており、各々独立にアクセスすることが可能
である。プロセッサ100の各々は、相互結合網300
に対して1つのアクセスポートを有する。また、主記憶
装置200のバンク210の各々も、相互結合網300
に対して1つのアクセスポートを持つ。
に分割されており、各々独立にアクセスすることが可能
である。プロセッサ100の各々は、相互結合網300
に対して1つのアクセスポートを有する。また、主記憶
装置200のバンク210の各々も、相互結合網300
に対して1つのアクセスポートを持つ。
【0022】相互結合網300は、各プロセッサ100
に対応してn個の入力ポートを有し、各入力ポートには
各プロセッサ100からのリクエストを保持するための
バッファ330が接続される。このバッファ330の出
力はn入力m出力のクロスバスイッチ310に入力され
てm個の出力ポートを通じて主記憶装置200の各バン
ク121〜12mに接続する。各プロセッサ100のポ
ートと相互結合網300の入力ポートとの間にはパスが
張られ、各バンク210のポートと相互結合網300の
出力ポートとの間にはそれぞれパスが張られている。こ
れらパス上には、メモリアクセスリクエストが流れる。
に対応してn個の入力ポートを有し、各入力ポートには
各プロセッサ100からのリクエストを保持するための
バッファ330が接続される。このバッファ330の出
力はn入力m出力のクロスバスイッチ310に入力され
てm個の出力ポートを通じて主記憶装置200の各バン
ク121〜12mに接続する。各プロセッサ100のポ
ートと相互結合網300の入力ポートとの間にはパスが
張られ、各バンク210のポートと相互結合網300の
出力ポートとの間にはそれぞれパスが張られている。こ
れらパス上には、メモリアクセスリクエストが流れる。
【0023】クロスバスイッチ310は、n入力1出力
のセレクタ315をm個有しており、いずれの入力ポー
トからも任意の出力ポートに接続できるように構成され
ている。
のセレクタ315をm個有しており、いずれの入力ポー
トからも任意の出力ポートに接続できるように構成され
ている。
【0024】各プロセッサ100が主記憶装置200に
アクセスする場合、メモリアクセスリクエストを構成
し、相互結合網300に送出する。相互結合網300
は、複数のプロセッサ100から送られてくる複数のメ
モリアクセスリクエスト間に生じる競合を調停し、各リ
クエストの行先に応じてバンク210に対するルーティ
ングを行い、メモリアクセスリクエストを送出する。主
記憶装置200の各バンク210に到着したメモリアク
セスリクエストは、各バンクにおいてリードアクセスま
たはライトアクセスを実行する。リードアクセスの場合
は、再び相互結合網300を介してリクエスト発行元の
プロセッサにリードデータが返却される。
アクセスする場合、メモリアクセスリクエストを構成
し、相互結合網300に送出する。相互結合網300
は、複数のプロセッサ100から送られてくる複数のメ
モリアクセスリクエスト間に生じる競合を調停し、各リ
クエストの行先に応じてバンク210に対するルーティ
ングを行い、メモリアクセスリクエストを送出する。主
記憶装置200の各バンク210に到着したメモリアク
セスリクエストは、各バンクにおいてリードアクセスま
たはライトアクセスを実行する。リードアクセスの場合
は、再び相互結合網300を介してリクエスト発行元の
プロセッサにリードデータが返却される。
【0025】図2を参照すると、あるプロセッサ100
と相互結合網300を結ぶパスは、データ501、バリ
ッド502、ルーティングアドレス503、およびホー
ルド504の4つから構成される。但し、図2において
は、1つのプロセッサ100のポートと1つの相互結合
網300の入力ポートとを結ぶ1本のパスの構成要素の
みを示している。同様に相互結合網300と主記憶装置
200を結ぶパスはデータ601、バリッド602、お
よびホールド603の3つから構成される。これについ
ても同様に、相互結合網300の1つの出力ポートと主
記憶装置200の1つのバンクとを結ぶ1本のパスの構
成要素のみを示している。
と相互結合網300を結ぶパスは、データ501、バリ
ッド502、ルーティングアドレス503、およびホー
ルド504の4つから構成される。但し、図2において
は、1つのプロセッサ100のポートと1つの相互結合
網300の入力ポートとを結ぶ1本のパスの構成要素の
みを示している。同様に相互結合網300と主記憶装置
200を結ぶパスはデータ601、バリッド602、お
よびホールド603の3つから構成される。これについ
ても同様に、相互結合網300の1つの出力ポートと主
記憶装置200の1つのバンクとを結ぶ1本のパスの構
成要素のみを示している。
【0026】データ501は、プロセッサ100から主
記憶装置200にルーティングされるデータ領域であ
り、リクエストがライトアクセスの場合にはライトを行
う主記憶アドレスとライトデータより構成され、リード
アクセスの場合にはリードを行うメモリアドレスより構
成される。バリッド502は、当該データが有効か否か
を示すバリッド信号である。ルーティングアドレス50
3は、リクエストの行先であるメモリバンク番号を示
す。ホールド信号504は、データ501等とは逆向き
に相互結合網300からプロセッサ100に向かう信号
であり、相互結合網300の入力ポートのバッファがフ
ルになった場合に、プロセッサ100に対しリクエスト
送出停止を要求する信号である。
記憶装置200にルーティングされるデータ領域であ
り、リクエストがライトアクセスの場合にはライトを行
う主記憶アドレスとライトデータより構成され、リード
アクセスの場合にはリードを行うメモリアドレスより構
成される。バリッド502は、当該データが有効か否か
を示すバリッド信号である。ルーティングアドレス50
3は、リクエストの行先であるメモリバンク番号を示
す。ホールド信号504は、データ501等とは逆向き
に相互結合網300からプロセッサ100に向かう信号
であり、相互結合網300の入力ポートのバッファがフ
ルになった場合に、プロセッサ100に対しリクエスト
送出停止を要求する信号である。
【0027】図3を参照すると、相互結合網300の構
成が示される。相互結合網300は、#1から#nまで
のn個の入力ポートと、#1から#mまでのm個の出力
ポートとを有する。各入力ポートは、各々1つのプロセ
ッサとの間を1本のパスにより接続する。この入力ポー
トに入出力する信号は、データ501、バリッド50
2、アドレス503、およびホールド504である。各
出力ポートは、主記憶装置の1つのバンク210との間
を1本のパスにより接続する。この出力ポートに入出力
する信号は、データ601、バリッド602、アドレス
603、およびホールド604である。リクエストのル
ーティングを行うのはクロスバースイッチ310であ
り、このクロスバースイッチ310を制御するのはクロ
スバースイッチ制御回路320である。
成が示される。相互結合網300は、#1から#nまで
のn個の入力ポートと、#1から#mまでのm個の出力
ポートとを有する。各入力ポートは、各々1つのプロセ
ッサとの間を1本のパスにより接続する。この入力ポー
トに入出力する信号は、データ501、バリッド50
2、アドレス503、およびホールド504である。各
出力ポートは、主記憶装置の1つのバンク210との間
を1本のパスにより接続する。この出力ポートに入出力
する信号は、データ601、バリッド602、アドレス
603、およびホールド604である。リクエストのル
ーティングを行うのはクロスバースイッチ310であ
り、このクロスバースイッチ310を制御するのはクロ
スバースイッチ制御回路320である。
【0028】各入力ポートには、クロスバースイッチ制
御回路320によるリクエストの競合調停によって留保
されたリクエストを一時的に保持するバッファ330が
設けられる。これらバッファに保持されているリクエス
トを滞留リクエストという。これらバッファを制御する
のはバッファ制御回路340である。バッファ制御回路
340は、入力ポートのバリッド信号502およびホー
ルド信号504に基づいて制御する。また、バッファ3
30からクロスバースイッチ310に対して競合調停要
求等を伝達するために、バッファ制御回路340とクロ
スバースイッチ制御回路320との間にもインターフェ
ース信号が張られる。
御回路320によるリクエストの競合調停によって留保
されたリクエストを一時的に保持するバッファ330が
設けられる。これらバッファに保持されているリクエス
トを滞留リクエストという。これらバッファを制御する
のはバッファ制御回路340である。バッファ制御回路
340は、入力ポートのバリッド信号502およびホー
ルド信号504に基づいて制御する。また、バッファ3
30からクロスバースイッチ310に対して競合調停要
求等を伝達するために、バッファ制御回路340とクロ
スバースイッチ制御回路320との間にもインターフェ
ース信号が張られる。
【0029】図4を参照すると、プロセッサ100内の
相互結合網300に対するインターフェース部分が示さ
れる。プロセッサ100は、1つの出力ポートを持ち、
1本のパスを介して相互結合網300に接続する。出力
ポートに入出力する信号は、データ501、バリッド5
02、アドレス503、およびホールド504である。
相互結合網300に対するインターフェース部分が示さ
れる。プロセッサ100は、1つの出力ポートを持ち、
1本のパスを介して相互結合網300に接続する。出力
ポートに入出力する信号は、データ501、バリッド5
02、アドレス503、およびホールド504である。
【0030】このインターフェース部分は、疑似バッフ
ァ110とそれを制御する疑似バッファ制御回路120
とを含んでいる。疑似バッファ制御回路120は、相互
結合網300からのホールド504とプロセッサからの
バリッド信号を入力し、相互結合網300へのバリッド
502とアドレス503、およびプロセッサへのホール
ド信号を出力する。
ァ110とそれを制御する疑似バッファ制御回路120
とを含んでいる。疑似バッファ制御回路120は、相互
結合網300からのホールド504とプロセッサからの
バリッド信号を入力し、相互結合網300へのバリッド
502とアドレス503、およびプロセッサへのホール
ド信号を出力する。
【0031】疑似バッファ110は、バッファ330と
同じバッファ段数を有し、バッファ330と同様に一時
的にリクエストをホールドするホールド機能を有してい
る。プロセッサ100からのリクエストを格納する疑似
バッファ110の先頭のバッファ段を先頭段111とい
い、最右端のバッファ段119を最終段という。疑似バ
ッファ110の各段は、両隣のバッファ段と接続されて
おり、各リクエストは図4において左から右に常に移動
していく。
同じバッファ段数を有し、バッファ330と同様に一時
的にリクエストをホールドするホールド機能を有してい
る。プロセッサ100からのリクエストを格納する疑似
バッファ110の先頭のバッファ段を先頭段111とい
い、最右端のバッファ段119を最終段という。疑似バ
ッファ110の各段は、両隣のバッファ段と接続されて
おり、各リクエストは図4において左から右に常に移動
していく。
【0032】疑似バッファ110の制御は以下のように
行われる。プロセッサ100が相互結合網300にリク
エストを送出すると、当該リクエストと同じ内容を疑似
バッファ110の先頭段111に入れる。以下、このよ
うにして疑似バッファ110に保持されたリクエストを
リクエストコピーという。バッファ330と疑似バッフ
ァ110は、共に先入れ先出し(以下、FIFO(Fi
rst−In First−out)という)式にリク
エストの出し入れを行う。リクエストをバッファ330
に入力する場合には、バッファ330は最終取り出し段
に対し常に詰めた状態でリクエストを格納し、疑似バッ
ファ110は常に先頭段111に対してリクエストを格
納する。
行われる。プロセッサ100が相互結合網300にリク
エストを送出すると、当該リクエストと同じ内容を疑似
バッファ110の先頭段111に入れる。以下、このよ
うにして疑似バッファ110に保持されたリクエストを
リクエストコピーという。バッファ330と疑似バッフ
ァ110は、共に先入れ先出し(以下、FIFO(Fi
rst−In First−out)という)式にリク
エストの出し入れを行う。リクエストをバッファ330
に入力する場合には、バッファ330は最終取り出し段
に対し常に詰めた状態でリクエストを格納し、疑似バッ
ファ110は常に先頭段111に対してリクエストを格
納する。
【0033】あるプロセッサに対して相互結合網300
から送られて来るホールド信号の値が”ホールド”を示
していれば、当該プロセッサから相互結合網300への
リクエストの送出を停止すると共に、その疑似バッファ
110もホールドする。
から送られて来るホールド信号の値が”ホールド”を示
していれば、当該プロセッサから相互結合網300への
リクエストの送出を停止すると共に、その疑似バッファ
110もホールドする。
【0034】相互結合網300から送られて来るホール
ド信号の値が”ホールド”でなければ、当該プロセッサ
は、相互結合網300へリクエストを送出するととも
に、そのリクエストのコピーを疑似バッファ110の先
頭段111に格納する。また、疑似バッファ110内に
あるリクエストコピーを先頭段111から最終段119
に向けて1段移動させる。この時、最終段119にある
リクエストコピーは廃棄される。
ド信号の値が”ホールド”でなければ、当該プロセッサ
は、相互結合網300へリクエストを送出するととも
に、そのリクエストのコピーを疑似バッファ110の先
頭段111に格納する。また、疑似バッファ110内に
あるリクエストコピーを先頭段111から最終段119
に向けて1段移動させる。この時、最終段119にある
リクエストコピーは廃棄される。
【0035】次に本発明の上記一実施例の動作について
図面を参照して説明する。ここでは、バッファ330と
疑似バッファ110の段数をともに3段であるとする。
図面を参照して説明する。ここでは、バッファ330と
疑似バッファ110の段数をともに3段であるとする。
【0036】図1、図4および図5を参照すると、時刻
T1においてプロセッサ100がリクエストAを発行す
ると、リクエストAは相互結合網300のバッファ33
0に保持されるとともに、そのコピーが疑似バッファの
先頭段111に保持される。また、時刻T2においてプ
ロセッサ100がリクエストBを発行すると、リクエス
トBは相互結合網300のバッファ330に保持される
とともに、そのコピーが疑似バッファの先頭段111に
保持される。さらに、時刻T3においてプロセッサ10
0がリクエストCを発行すると、リクエストCは相互結
合網300のバッファ330に保持されるとともに、そ
のコピーが疑似バッファの先頭段111に保持される。
T1においてプロセッサ100がリクエストAを発行す
ると、リクエストAは相互結合網300のバッファ33
0に保持されるとともに、そのコピーが疑似バッファの
先頭段111に保持される。また、時刻T2においてプ
ロセッサ100がリクエストBを発行すると、リクエス
トBは相互結合網300のバッファ330に保持される
とともに、そのコピーが疑似バッファの先頭段111に
保持される。さらに、時刻T3においてプロセッサ10
0がリクエストCを発行すると、リクエストCは相互結
合網300のバッファ330に保持されるとともに、そ
のコピーが疑似バッファの先頭段111に保持される。
【0037】一方、クロスバスイッチ310では、時刻
T3にリクエストAを受け付けるが、時刻T4およびT
5においてリクエストBの行先バンクが使用中である等
の理由でリクエストBを受け付けられないため、ホール
ド信号504を”ホールド”にして、その旨をプロセッ
サ100に伝える。これにより、疑似バッファ制御回路
120は時刻T5およびT6においてホールド190を
介して疑似バッファ110に”ホールド”中である旨を
伝える。したがって、疑似バッファ110はT5からT
6に遷移する際、およびT6からT7に遷移する際に
は、その内容を維持する。
T3にリクエストAを受け付けるが、時刻T4およびT
5においてリクエストBの行先バンクが使用中である等
の理由でリクエストBを受け付けられないため、ホール
ド信号504を”ホールド”にして、その旨をプロセッ
サ100に伝える。これにより、疑似バッファ制御回路
120は時刻T5およびT6においてホールド190を
介して疑似バッファ110に”ホールド”中である旨を
伝える。したがって、疑似バッファ110はT5からT
6に遷移する際、およびT6からT7に遷移する際に
は、その内容を維持する。
【0038】時刻T6においてリクエストBが受け付け
られ、ホールド504が解除されるため、時刻T7にホ
ールド190が解除されて、時刻T8にリクエストEが
バッファ330に保持されるとともに、そのコピーが疑
似バッファの先頭段111に保持される。
られ、ホールド504が解除されるため、時刻T7にホ
ールド190が解除されて、時刻T8にリクエストEが
バッファ330に保持されるとともに、そのコピーが疑
似バッファの先頭段111に保持される。
【0039】上記の例を考察すると、疑似バッファ11
0の最終段119からあるリクエストが押し出されて破
棄された時刻の2T前に、クロスバスイッチ310にお
いてそのリクエストが受け付けられていることがわか
る。また、バッファ330にリクエストが保持されると
同時に疑似バッファ110にも当該リクエストが保持さ
れることがわかる。すなわち、疑似バッファ110に保
持されている内容はバッファ330を包含していること
になる。
0の最終段119からあるリクエストが押し出されて破
棄された時刻の2T前に、クロスバスイッチ310にお
いてそのリクエストが受け付けられていることがわか
る。また、バッファ330にリクエストが保持されると
同時に疑似バッファ110にも当該リクエストが保持さ
れることがわかる。すなわち、疑似バッファ110に保
持されている内容はバッファ330を包含していること
になる。
【0040】したがって、バッファ330に滞留してい
るリクエストのコピーは全て疑似バッファ110に保持
されており、この疑似バッファ110から破棄されてい
るリクエストは主記憶装置200に発行済みであること
が確認できる。これを利用することにより、あるデータ
Dに関するライトリクエストを送出した後、疑似バッフ
ァ110から当該リクエストが破棄されたことを確認し
てから、同期レジスタ400にフラグFをセットするこ
とにより、他のプロセッサはフラグFを確認後すぐにデ
ータDのリードリクエストを送出してもその内容が保証
される。
るリクエストのコピーは全て疑似バッファ110に保持
されており、この疑似バッファ110から破棄されてい
るリクエストは主記憶装置200に発行済みであること
が確認できる。これを利用することにより、あるデータ
Dに関するライトリクエストを送出した後、疑似バッフ
ァ110から当該リクエストが破棄されたことを確認し
てから、同期レジスタ400にフラグFをセットするこ
とにより、他のプロセッサはフラグFを確認後すぐにデ
ータDのリードリクエストを送出してもその内容が保証
される。
【0041】このように、本発明の一実施例であるマル
チプロセッサシステムによれば、相互結合網300内の
バッファ330の内容を包含する疑似バッファ110を
プロセッサ100内に設けたことにより、バッファ33
0に滞留しているリクエストを容易に把握することがで
き、従来必要とされたリプライ信号線を省くことができ
る。
チプロセッサシステムによれば、相互結合網300内の
バッファ330の内容を包含する疑似バッファ110を
プロセッサ100内に設けたことにより、バッファ33
0に滞留しているリクエストを容易に把握することがで
き、従来必要とされたリプライ信号線を省くことができ
る。
【0042】なお、この疑似バッファ110は、上述の
ようなタイミング制御のみならず、バッファ330の内
容を知るために広く使用することができる。例えば、マ
ルチプロセッサシステムにおける性能評価を行うため
に、バッファ330の滞留状態をトレースしようとした
場合、通常であれば相互結合網300に対してプローブ
を立てたり、リプライ信号をプロセッサに戻したりする
必要があるが、本発明における疑似バッファ110を使
用することによりバッファ330の内容を容易にトレー
スすることができる。
ようなタイミング制御のみならず、バッファ330の内
容を知るために広く使用することができる。例えば、マ
ルチプロセッサシステムにおける性能評価を行うため
に、バッファ330の滞留状態をトレースしようとした
場合、通常であれば相互結合網300に対してプローブ
を立てたり、リプライ信号をプロセッサに戻したりする
必要があるが、本発明における疑似バッファ110を使
用することによりバッファ330の内容を容易にトレー
スすることができる。
【0043】
【発明の効果】以上の説明で明らかなように、本発明に
よると、プロセッサと相互結合網間のインターフェース
本数を増やさずに相互結合網内のバッファの状態を容易
に知ることができる。複数のプロセッサが接続されるマ
ルチプロセッサシステムにおいて、プロセッサ数に比例
したインターフェースの増加は、コスト増、実装ネック
等の大きな問題となっており、本発明によりこれを低減
可能とすることができる。特に、本発明によれば、プロ
セッサのインターフェース部、および 相互結合網を構
成するLSIチップのピンネックを解消することがで
き、ビットスライス分割では削減できないコントロール
信号を削減することが可能となり、ピンネックの解消に
大きく貢献することができる。
よると、プロセッサと相互結合網間のインターフェース
本数を増やさずに相互結合網内のバッファの状態を容易
に知ることができる。複数のプロセッサが接続されるマ
ルチプロセッサシステムにおいて、プロセッサ数に比例
したインターフェースの増加は、コスト増、実装ネック
等の大きな問題となっており、本発明によりこれを低減
可能とすることができる。特に、本発明によれば、プロ
セッサのインターフェース部、および 相互結合網を構
成するLSIチップのピンネックを解消することがで
き、ビットスライス分割では削減できないコントロール
信号を削減することが可能となり、ピンネックの解消に
大きく貢献することができる。
【図1】本発明のマルチプロセッサシステムの一実施例
の構成を示すブロック図である。
の構成を示すブロック図である。
【図2】本発明の一実施例のマルチプロセッサシステム
におけるインタフェースを示す図である。
におけるインタフェースを示す図である。
【図3】本発明の一実施例における相互結合網の構成を
示す図である。
示す図である。
【図4】本発明の一実施例におけるプロセッサ内の相互
結合網に対するインタフェース部分を示す図である。
結合網に対するインタフェース部分を示す図である。
【図5】本発明の一実施例のマルチプロセッサシステム
の動作を表す図である。
の動作を表す図である。
100 プロセッサ 110 疑似バッファ 120 疑似バッファ制御回路 200 主記憶装置 210 バンク 300 相互結合網 310 クロスバスイッチ 315 セレクタ 320 クロスバスイッチ制御回路 330 バッファ 340 バッファ制御回路 400 同期レジスタ
Claims (4)
- 【請求項1】 複数のプロセッサと、主記憶装置と、前
記複数のプロセッサと前記主記憶装置を接続する相互結
合網とを含むマルチプロセッサシステムにおいて、 前記相互結合網は、前記複数のプロセッサの各々から受
け取ったリクエストであって前記主記憶装置に受け入れ
られていないリクエストを当該プロセッサに対応して保
持するバッファを含み、 前記複数のプロセッサの各々は、前記相互結合網内の対
応するバッファの内容を包含するように保持する疑似バ
ッファを含むことを特徴とするマルチプロセッサシステ
ム。 - 【請求項2】 複数のプロセッサと、主記憶装置と、前
記複数のプロセッサと前記主記憶装置を接続する相互結
合網とを含むマルチプロセッサシステムにおいて、 前記相互結合網は、前記複数のプロセッサの各々から受
け取ったリクエストであって前記主記憶装置に受け入れ
られていないリクエストを当該プロセッサに対応して保
持する複数段の先入れ先出し式のバッファと、このバッ
ファに保持されているリクエストが送出できない状態で
あることを前記対応するプロセッサに通知するホールド
通知手段とを含み、 前記複数のプロセッサの各々は、前記ホールド通知手段
からリクエストが送出できない状態である旨を通知され
ない限り、前記相互結合網に対して送出したリクエスト
のコピーを保持していく前記相互結合網内の対応するバ
ッファと同一の段数を有する疑似バッファを含むことを
特徴とするマルチプロセッサシステム。 - 【請求項3】 n個(nは2以上の整数)のプロセッサ
と、m個(mは2以上の整数)のバンクから成る主記憶
装置と、前記プロセッサと前記主記憶装置を接続するn
対mの相互結合網とを含むマルチプロセッサシステムに
おいて、 前記相互結合網は、前記プロセッサの各々から受け取っ
たリクエストであって前記主記憶装置に受け入れられて
いないリクエストを当該プロセッサに対応して保持する
複数段の先入れ先出し式のn個のバッファと、これらバ
ッファの出力を前記主記憶のバンクに接続するクロスバ
と、前記バッファに保持されているリクエストが前記ク
ロスバに送出できない状態であることを前記対応するプ
ロセッサに通知するn個のホールド通知手段とを含み、 前記プロセッサの各々は、前記対応するホールド通知手
段からリクエストが送出できない状態である旨を通知さ
れない限り、前記相互結合網に対して送出したリクエス
トのコピーを保持していく前記相互結合網内の対応する
バッファと同一の段数を有する疑似バッファを含むこと
を特徴とするマルチプロセッサシステム。 - 【請求項4】 前記クロスバは、前記バンクに対応する
m個のセレクタを含むことを特徴とする請求項3のマル
チプロセッサシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7062820A JP2882304B2 (ja) | 1995-03-22 | 1995-03-22 | マルチプロセッサシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7062820A JP2882304B2 (ja) | 1995-03-22 | 1995-03-22 | マルチプロセッサシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08263459A JPH08263459A (ja) | 1996-10-11 |
JP2882304B2 true JP2882304B2 (ja) | 1999-04-12 |
Family
ID=13211360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7062820A Expired - Fee Related JP2882304B2 (ja) | 1995-03-22 | 1995-03-22 | マルチプロセッサシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2882304B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4566738B2 (ja) * | 2002-05-24 | 2010-10-20 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | コンピュータメモリ装置 |
JP6519343B2 (ja) * | 2015-06-24 | 2019-05-29 | 株式会社デンソー | データ処理装置 |
-
1995
- 1995-03-22 JP JP7062820A patent/JP2882304B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH08263459A (ja) | 1996-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7881321B2 (en) | Multiprocessor node controller circuit and method | |
US7290075B2 (en) | Performing arbitration in a data processing apparatus | |
Tamir et al. | High-performance multi-queue buffers for VLSI communications switches | |
JP3816530B2 (ja) | 低い待ち時間、高いクロック周波数、プレジオ非同期 パケット・ベースクロスバー・スイッチング・チップ・システム及び方法 | |
JP5537919B2 (ja) | データ転送のためのシステムおよび方法 | |
US7165094B2 (en) | Communications system and method with non-blocking shared interface | |
EP1512078B1 (en) | Programmed access latency in mock multiport memory | |
US5142638A (en) | Apparatus for sharing memory in a multiprocessor system | |
Frazier et al. | The design and implementation of a multi-queue buffer for VLSI communication switches. | |
EP1779609B1 (en) | Integrated circuit and method for packet switching control | |
US7274709B2 (en) | Asynchronous crossbar with deterministic or arbitrated control | |
GB2415067A (en) | Managing conflicting read and write operations on separate read and write buses | |
US6754838B2 (en) | Method for reducing tuning etch in a clock-forwarded interface | |
JP2882304B2 (ja) | マルチプロセッサシステム | |
JPH0818565A (ja) | データ処理装置 | |
US6701407B1 (en) | Multiprocessor system with system modules each having processors, and a data transfer method therefor | |
US7272151B2 (en) | Centralized switching fabric scheduler supporting simultaneous updates | |
JP2001022711A (ja) | クロスバースイッチの制御方法及び並列計算機システム | |
JP2976700B2 (ja) | プロセッサ間同期制御方式 | |
JPH064401A (ja) | メモリアクセス回路 | |
JPH1091589A (ja) | プロセッサ間同期制御装置 | |
Wong | A message controller for distributed processing systems | |
JP3791463B2 (ja) | 演算装置及びデータ転送システム | |
JPH04253256A (ja) | 並列計算機 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 19990105 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080205 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090205 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100205 Year of fee payment: 11 |
|
LAPS | Cancellation because of no payment of annual fees |