JPH08305658A - I/oバス - Google Patents
I/oバスInfo
- Publication number
- JPH08305658A JPH08305658A JP11152595A JP11152595A JPH08305658A JP H08305658 A JPH08305658 A JP H08305658A JP 11152595 A JP11152595 A JP 11152595A JP 11152595 A JP11152595 A JP 11152595A JP H08305658 A JPH08305658 A JP H08305658A
- Authority
- JP
- Japan
- Prior art keywords
- bus
- processor
- bridge
- transfer
- main memory
- 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
Links
Landscapes
- Bus Control (AREA)
Abstract
(57)【要約】
【目的】主メモリとI/Oデバイス間の距離を一定に保
ちつつ、I/OデバイスとI/Oデバイス間の距離を短
縮する。 【構成】複数のプロセッサブリッジによる並列トポロジ
構成のI/Oバス間に、I/O−I/Oブリッジを設け
ループ構成とし、アクセス先に応じたルーティング制御
を行う。
ちつつ、I/OデバイスとI/Oデバイス間の距離を短
縮する。 【構成】複数のプロセッサブリッジによる並列トポロジ
構成のI/Oバス間に、I/O−I/Oブリッジを設け
ループ構成とし、アクセス先に応じたルーティング制御
を行う。
Description
【0001】
【産業上の利用分野】本発明は、ワークステーション、
パーソナルコンピュータなどの小型情報装置の分野にお
ける、I/Oバスに関する。
パーソナルコンピュータなどの小型情報装置の分野にお
ける、I/Oバスに関する。
【0002】
【従来の技術】パーソナルコンピュータにおいて、I/
Oバスとして主流になりつつあるPCI(Peripheral C
omponent Interconnect)規格に則ったPCIバスを例
にとって従来の技術を説明する。PCIバスは、プロセ
ッサバスにプロセッサ−I/Oブリッジを介して接続さ
れる。ただし、PCIは、33MHzクロックでの安定
動作を保証するため、負荷数に制限を加えている。デバ
イスを負荷数1、スロットを負荷数2としてカウント
し、負荷数が10以内に収まるように規定している。
Oバスとして主流になりつつあるPCI(Peripheral C
omponent Interconnect)規格に則ったPCIバスを例
にとって従来の技術を説明する。PCIバスは、プロセ
ッサバスにプロセッサ−I/Oブリッジを介して接続さ
れる。ただし、PCIは、33MHzクロックでの安定
動作を保証するため、負荷数に制限を加えている。デバ
イスを負荷数1、スロットを負荷数2としてカウント
し、負荷数が10以内に収まるように規定している。
【0003】一つの設計例は、オンボード上に二つのP
CIデバイスを置き、スロットを三つ設けることであ
る。この場合、PCIバスの負荷は、プロセッサ−I/
Oブリッジで1、二つのPCIデバイスで2、三つのス
ロットで6、そして低速バスへインターフェースするた
めの低速I/Oブリッジ回路で1で、合計10となる。
CIデバイスを置き、スロットを三つ設けることであ
る。この場合、PCIバスの負荷は、プロセッサ−I/
Oブリッジで1、二つのPCIデバイスで2、三つのス
ロットで6、そして低速バスへインターフェースするた
めの低速I/Oブリッジ回路で1で、合計10となる。
【0004】あるいは、スロットを四つにし、その分オ
ンボード上のデバイスを0としてもよい。負荷は、プロ
セッサ−I/Oブリッジで1、四つのスロットで8、そ
して低速I/Oブリッジ回路で1だから、これも合計1
0となる。
ンボード上のデバイスを0としてもよい。負荷は、プロ
セッサ−I/Oブリッジで1、四つのスロットで8、そ
して低速I/Oブリッジ回路で1だから、これも合計1
0となる。
【0005】逆に見れば、これから分かる通り一つのP
CIバスに設けることができるスロットは、最大で四つ
である。低速I/Oバスとして主流のISA/EISA
では、最大8スロットであるから、PCIは拡張性の面
で制約がある。
CIバスに設けることができるスロットは、最大で四つ
である。低速I/Oバスとして主流のISA/EISA
では、最大8スロットであるから、PCIは拡張性の面
で制約がある。
【0006】これを解決する手段は、複数のPCIバス
を設ける方法がある。具体的な方法の一つはPCIバス
からI/O−I/Oブリッジを介し、バスを階層的に設
ける階層トポロジーと、もう一つは同一のプロセッサバ
スに複数のプロセッサ−I/Oブリッジを設け、並列に
設けるトポロジーがある。これらは、PCI SIG
(Special Interest Group)発行の"PCI System Design
Guide"などに開示されている。
を設ける方法がある。具体的な方法の一つはPCIバス
からI/O−I/Oブリッジを介し、バスを階層的に設
ける階層トポロジーと、もう一つは同一のプロセッサバ
スに複数のプロセッサ−I/Oブリッジを設け、並列に
設けるトポロジーがある。これらは、PCI SIG
(Special Interest Group)発行の"PCI System Design
Guide"などに開示されている。
【0007】並列トポロジーにおける動作を説明する。
図4は並列トポロジーの構成例である。1はプロセッ
サ、2は主メモリ、3はプロセッサバス、4Aと4Bは
第一と第二のプロセッサ−I/Oブリッジ、5Aと5B
は第一と第二のI/Oバス、7Aと7Bと7CはI/O
デバイス、8は低速I/Oブリッジ、9は低速I/Oバ
ス、10はBIOS ROM、11は不揮発性のNVR
AMである。
図4は並列トポロジーの構成例である。1はプロセッ
サ、2は主メモリ、3はプロセッサバス、4Aと4Bは
第一と第二のプロセッサ−I/Oブリッジ、5Aと5B
は第一と第二のI/Oバス、7Aと7Bと7CはI/O
デバイス、8は低速I/Oブリッジ、9は低速I/Oバ
ス、10はBIOS ROM、11は不揮発性のNVR
AMである。
【0008】第一および第二のプロセッサ−I/Oブリ
ッジ4Aおよび4Bは、それぞれプロセッサ側コンフィ
ギュレーションレジスタ12A,12Bと、I/O側コ
ンフィギュレーションレジスタ13A,13Bを備えて
いる。図4はそのレジスタフォーマットである。
ッジ4Aおよび4Bは、それぞれプロセッサ側コンフィ
ギュレーションレジスタ12A,12Bと、I/O側コ
ンフィギュレーションレジスタ13A,13Bを備えて
いる。図4はそのレジスタフォーマットである。
【0009】プロセッサ−I/Oブリッジ4A,4B
は、図3に示すようコンフィギュレーションレジスタを
持っている。PCI仕様では、このうち"I/O Base Addr
ess"20と"I/O Limit"21、および"Memory Base"22
と"Memory Limit"23が、どのアドレス範囲を反対側の
バスへフォワードするかを指定するためのレジスタであ
る。
は、図3に示すようコンフィギュレーションレジスタを
持っている。PCI仕様では、このうち"I/O Base Addr
ess"20と"I/O Limit"21、および"Memory Base"22
と"Memory Limit"23が、どのアドレス範囲を反対側の
バスへフォワードするかを指定するためのレジスタであ
る。
【0010】第一のプロセッサ−I/Oプロセッサブリ
ッジ4Aのプロセッサ側コンフィギュレーションレジス
タ12Aには、第一のI/Oバス5Aに接続されるI/
Oデバイス7Aのアドレスを設定する。同様に、第二の
プロセッサ−I/Oプロセッサブリッジ4Bの、プロセ
ッサ側コンフィギュレーションレジスタ12Bには、第
二のI/Oバス5Bに接続されるI/Oデバイス7B,
7Cのアドレスを設定する。なお、これら設定は、BI
OS ROM10に格納されているコンフィギュレーシ
ョンルーチンが、電源投入後に処理をする。
ッジ4Aのプロセッサ側コンフィギュレーションレジス
タ12Aには、第一のI/Oバス5Aに接続されるI/
Oデバイス7Aのアドレスを設定する。同様に、第二の
プロセッサ−I/Oプロセッサブリッジ4Bの、プロセ
ッサ側コンフィギュレーションレジスタ12Bには、第
二のI/Oバス5Bに接続されるI/Oデバイス7B,
7Cのアドレスを設定する。なお、これら設定は、BI
OS ROM10に格納されているコンフィギュレーシ
ョンルーチンが、電源投入後に処理をする。
【0011】プロセッサ1が、第一または第二のI/O
バス5A,5B上に存在するI/Oデバイス7A,7
B,7Cのどれかをアクセスすると、どちらかのプロセ
ッサ−I/Oブリッジ4Aまたは4Bが応答し、どちら
かのI/Oバス5Aまたは5Bのバスサイクルを起動す
る。
バス5A,5B上に存在するI/Oデバイス7A,7
B,7Cのどれかをアクセスすると、どちらかのプロセ
ッサ−I/Oブリッジ4Aまたは4Bが応答し、どちら
かのI/Oバス5Aまたは5Bのバスサイクルを起動す
る。
【0012】第一のプロセッサ−I/Oブリッジ4A
の、I/O側コンフィギュレーションレジスタ13Aに
は、主メモリ2のアドレスと第二のI/Oバス5Bに接
続されるI/Oデバイス7Bおよび7Cのアドレスを設
定する。同様に、第二のプロセッサ−I/Oブリッジ4
Bの、I/O側コンフィギュレーションレジスタ13B
には、主メモリ2のアドレスと第一のI/Oバス5Aに
接続されるI/Oデバイス7Aのアドレスを設定する。
の、I/O側コンフィギュレーションレジスタ13Aに
は、主メモリ2のアドレスと第二のI/Oバス5Bに接
続されるI/Oデバイス7Bおよび7Cのアドレスを設
定する。同様に、第二のプロセッサ−I/Oブリッジ4
Bの、I/O側コンフィギュレーションレジスタ13B
には、主メモリ2のアドレスと第一のI/Oバス5Aに
接続されるI/Oデバイス7Aのアドレスを設定する。
【0013】第一のI/Oバス5AにあるI/Oデバイ
ス7Aからのアクセスを考えてみる。もし主メモリ2に
対するアドレスを出力したなら、第一のプロセッサ−I
/Oブリッジ4AがI/Oバス5Aのサイクルをプロセ
ッサバス3のサイクルにフォワードする。しかし、第二
のプロセッサ−I/Oブリッジ4Bのプロセッサ側コン
フィギュレーションレジスタ12Bには、第二のI/O
バスに接続されているI/Oデバイス7B,7Cのアド
レスしか設定されていないから、主メモリ2のアドレス
に対しては応答しない。
ス7Aからのアクセスを考えてみる。もし主メモリ2に
対するアドレスを出力したなら、第一のプロセッサ−I
/Oブリッジ4AがI/Oバス5Aのサイクルをプロセ
ッサバス3のサイクルにフォワードする。しかし、第二
のプロセッサ−I/Oブリッジ4Bのプロセッサ側コン
フィギュレーションレジスタ12Bには、第二のI/O
バスに接続されているI/Oデバイス7B,7Cのアド
レスしか設定されていないから、主メモリ2のアドレス
に対しては応答しない。
【0014】このようにして、第一のI/Oバス5A上
のI/Oデバイス7Aと主メモリ2との転送は、図4の
経路300に示すように行われる。
のI/Oデバイス7Aと主メモリ2との転送は、図4の
経路300に示すように行われる。
【0015】もし第一のI/Oバス5A上にあるI/O
デバイス7Aが、第二のI/Oバス5B上にあるI/O
デバイス7Bまたは7Cに対しアクセスを開始したとす
る。第一のプロセッサ−I/Oブリッジ4AがI/Oバ
ス5Aのサイクルをプロセッサバス3のサイクルにフォ
ワードする。プロセッサバス3上に現れるアドレスは第
二のI/Oバス5B上のI/Oデバイス7Bまたは7C
のアドレスであるから、第二のプロセッサ−I/Oブリ
ッジ4Bはこれに応答し、プロセッサバス3のサイクル
を第二のI/Oバス5Bへとフォワードする。
デバイス7Aが、第二のI/Oバス5B上にあるI/O
デバイス7Bまたは7Cに対しアクセスを開始したとす
る。第一のプロセッサ−I/Oブリッジ4AがI/Oバ
ス5Aのサイクルをプロセッサバス3のサイクルにフォ
ワードする。プロセッサバス3上に現れるアドレスは第
二のI/Oバス5B上のI/Oデバイス7Bまたは7C
のアドレスであるから、第二のプロセッサ−I/Oブリ
ッジ4Bはこれに応答し、プロセッサバス3のサイクル
を第二のI/Oバス5Bへとフォワードする。
【0016】このようにして、第一のI/Oバス5A上
のI/Oデバイス7Aと、第二のI/Oバス5B上のデ
バイス7Bまたは7Cとの転送が、図4に示す経路30
1に示すように行われる。
のI/Oデバイス7Aと、第二のI/Oバス5B上のデ
バイス7Bまたは7Cとの転送が、図4に示す経路30
1に示すように行われる。
【0017】
【発明が解決しようとする課題】ところでI/Oバス5
数が増えれば、そこに実装されるI/Oデバイス7の数
も増える。
数が増えれば、そこに実装されるI/Oデバイス7の数
も増える。
【0018】一般的なアダプタは、プロセッサ1からア
クセスされる受動的なI/Oデバイス7である。データ
の流れは、プロセッサ1とI/Oデバイス7間となる。
クセスされる受動的なI/Oデバイス7である。データ
の流れは、プロセッサ1とI/Oデバイス7間となる。
【0019】近年増加している高機能I/Oデバイス7
は、自らがバスサイクルを起動するバスマスタ機能を備
えている。このタイプのI/Oデバイス7も、基本的に
は主メモリ2とデータをやりとりするためにバスマスタ
になるのであるから、データの流れで見れば、同様にプ
ロセッサバス3とI/Oデバイス7間となる。
は、自らがバスサイクルを起動するバスマスタ機能を備
えている。このタイプのI/Oデバイス7も、基本的に
は主メモリ2とデータをやりとりするためにバスマスタ
になるのであるから、データの流れで見れば、同様にプ
ロセッサバス3とI/Oデバイス7間となる。
【0020】さらに高機能なI/Oデバイス7が実装さ
れたとき、例えば、マルチメディアにおいて、ビデオ画
像を圧縮しハードディスクなど補助記憶装置に蓄える動
作を考えてみる。
れたとき、例えば、マルチメディアにおいて、ビデオ画
像を圧縮しハードディスクなど補助記憶装置に蓄える動
作を考えてみる。
【0021】最も単純な処理の流れは、まずビデオキャ
プチャデバイスからの画像デジタルデータを主メモリ2
におき、圧縮デバイスが主メモリ2から画像データを読
み出して処理し、圧縮データを再び主メモリ2におく。
SCSIデバイスは主メモリ2から圧縮データを読み出
し、ハードディスクに格納する。この方法は、主メモリ
2アクセスが多いため、性能的にある限界が生じる。ビ
デオサーバのような用途には向かない。
プチャデバイスからの画像デジタルデータを主メモリ2
におき、圧縮デバイスが主メモリ2から画像データを読
み出して処理し、圧縮データを再び主メモリ2におく。
SCSIデバイスは主メモリ2から圧縮データを読み出
し、ハードディスクに格納する。この方法は、主メモリ
2アクセスが多いため、性能的にある限界が生じる。ビ
デオサーバのような用途には向かない。
【0022】これを性能優先で処理するならば、ビデオ
キャプチャデバイスから直接圧縮デバイスへデータが流
せればよい。さらに、圧縮デバイスからSCSIデバイ
スへ直接データを送れれば、そのままハードディスクな
どへ蓄えることができる。すなわち、図4に示す経路3
02のようなI/Oデバイス7−I/Oデバイス7転送
が行えれば、主メモリ2アクセスを大幅に削減できる。
キャプチャデバイスから直接圧縮デバイスへデータが流
せればよい。さらに、圧縮デバイスからSCSIデバイ
スへ直接データを送れれば、そのままハードディスクな
どへ蓄えることができる。すなわち、図4に示す経路3
02のようなI/Oデバイス7−I/Oデバイス7転送
が行えれば、主メモリ2アクセスを大幅に削減できる。
【0023】このようなI/Oデバイス間転送をサポー
トする高機能I/Oデバイス7を、先程説明した複数の
バスを持つシステムに実装した場合、次のような問題が
生じる。
トする高機能I/Oデバイス7を、先程説明した複数の
バスを持つシステムに実装した場合、次のような問題が
生じる。
【0024】まず、図5に示す階層トポロジーでは、第
一のI/Oバス5Aと第二のI/Oバス5Bとの間、す
なわち、経路303はI/O−I/Oブリッジ6一段だ
けであるが、プロセッサ1から第二のI/Oバス5Bま
で、すなわち、図5における経路304にはプロセッサ
−I/Oブリッジ4とI/O−I/Oブリッジ6の二つ
が介在する。したがって、I/Oデバイス7AとI/O
デバイス7Bまたは7C間の転送性能は問題なくとも、
プロセッサ1とI/Oデバイス7Bまたは7C間の転送
性能が低下する。
一のI/Oバス5Aと第二のI/Oバス5Bとの間、す
なわち、経路303はI/O−I/Oブリッジ6一段だ
けであるが、プロセッサ1から第二のI/Oバス5Bま
で、すなわち、図5における経路304にはプロセッサ
−I/Oブリッジ4とI/O−I/Oブリッジ6の二つ
が介在する。したがって、I/Oデバイス7AとI/O
デバイス7Bまたは7C間の転送性能は問題なくとも、
プロセッサ1とI/Oデバイス7Bまたは7C間の転送
性能が低下する。
【0025】図4に示した並列トポロジーでは、プロセ
ッサバス3から第一のI/Oバス5Aと第二のI/Oバ
ス5Bまでの距離は、プロセッサ−I/Oブリッジ4A
または4B一段だけであり、主メモリ2とI/Oデバイ
ス7A,7B,7C、あるいはプロセッサ1とI/Oデ
バイス7A,7B,7C間の転送性能には優れている。
しかし第一のI/Oバス5Aと第二のI/Oバス5Bと
でのアクセスは、二つのプロセッサ−I/Oブリッジ4
Aと4Bを介することになり(経路301)性能に影響
がある。
ッサバス3から第一のI/Oバス5Aと第二のI/Oバ
ス5Bまでの距離は、プロセッサ−I/Oブリッジ4A
または4B一段だけであり、主メモリ2とI/Oデバイ
ス7A,7B,7C、あるいはプロセッサ1とI/Oデ
バイス7A,7B,7C間の転送性能には優れている。
しかし第一のI/Oバス5Aと第二のI/Oバス5Bと
でのアクセスは、二つのプロセッサ−I/Oブリッジ4
Aと4Bを介することになり(経路301)性能に影響
がある。
【0026】とくにI/Oバス5A,5B間の転送の際
に、プロセッサバス3を介するため、プロセッサバス3
のバンド幅の一部が使われることになり、プロセッサ1
と主メモリ2間の性能が犠牲になる恐れもある。
に、プロセッサバス3を介するため、プロセッサバス3
のバンド幅の一部が使われることになり、プロセッサ1
と主メモリ2間の性能が犠牲になる恐れもある。
【0027】本発明の目的は、このようなI/Oデバイ
ス7間のアクセスにおいて、プロセッサ1性能を低下さ
せないバストポロジ構成方式を提供することにある。
ス7間のアクセスにおいて、プロセッサ1性能を低下さ
せないバストポロジ構成方式を提供することにある。
【0028】
【課題を解決する手段】この問題を解決するには、第一
のI/Oバス5Aと第二のI/Oバス5Bとの間に、両
バスを結ぶI/O−I/Oブリッジ6を挿入し、ループ
上のトポロジーを構成すればよい。こうすれば、第一の
I/Oバス5Aと第二のI/Oバス5Bとの間のアクセ
ス時にプロセッサバス3を介さなくても済む。
のI/Oバス5Aと第二のI/Oバス5Bとの間に、両
バスを結ぶI/O−I/Oブリッジ6を挿入し、ループ
上のトポロジーを構成すればよい。こうすれば、第一の
I/Oバス5Aと第二のI/Oバス5Bとの間のアクセ
ス時にプロセッサバス3を介さなくても済む。
【0029】リング上トポロジーにおける具体的ルーテ
ィング制御は、ソフトウェアによって行う。
ィング制御は、ソフトウェアによって行う。
【0030】本発明で追加するルーティングマネージャ
は、I/Oデバイス7の制御を行うデバイスドライバと
協調して、ルーティング制御を行う。デバイスドライバ
が、転送先をルーティングマネージャに伝える。ルーテ
ィングマネージャは、転送先を解析し、相手I/Oデバ
イス7が同一のI/Oバス5上にあるI/Oデバイス7
か、プロセッサバス3上の主メモリ2か、他方のI/O
バス5にあるI/Oデバイス7かを判断する。
は、I/Oデバイス7の制御を行うデバイスドライバと
協調して、ルーティング制御を行う。デバイスドライバ
が、転送先をルーティングマネージャに伝える。ルーテ
ィングマネージャは、転送先を解析し、相手I/Oデバ
イス7が同一のI/Oバス5上にあるI/Oデバイス7
か、プロセッサバス3上の主メモリ2か、他方のI/O
バス5にあるI/Oデバイス7かを判断する。
【0031】主メモリ2、あるいは同一I/Oバス5で
あれば、ルーティングマネージャはとくに何もしない。
転送先が他方のI/Oバス5であれば、新たに設けたI
/O−I/Oブリッジ6のコンフィギュレーションレジ
スタ14,15、およびプロセッサ−I/Oブリッジ4
のコンフィギュレーションレジスタ12,13の設定を
変更し、I/O−I/Oブリッジ6が第一のI/Oバス
5Aから第二のI/Oバス5Bへのバスサイクルをフォ
ワードするように設定する。すなわち、第一のI/Oバ
ス5Aから第二のI/Oバス5Bへのアクセスにおいて
は、第一のプロセッサ−I/Oブリッジ4Aは応答せず
にI/O−I/Oブリッジ6を応答させることで、第一
のI/Oバス5Aから第二のI/Oバス5Bへと、バス
サイクルがフォワードされる。
あれば、ルーティングマネージャはとくに何もしない。
転送先が他方のI/Oバス5であれば、新たに設けたI
/O−I/Oブリッジ6のコンフィギュレーションレジ
スタ14,15、およびプロセッサ−I/Oブリッジ4
のコンフィギュレーションレジスタ12,13の設定を
変更し、I/O−I/Oブリッジ6が第一のI/Oバス
5Aから第二のI/Oバス5Bへのバスサイクルをフォ
ワードするように設定する。すなわち、第一のI/Oバ
ス5Aから第二のI/Oバス5Bへのアクセスにおいて
は、第一のプロセッサ−I/Oブリッジ4Aは応答せず
にI/O−I/Oブリッジ6を応答させることで、第一
のI/Oバス5Aから第二のI/Oバス5Bへと、バス
サイクルがフォワードされる。
【0032】同様に、第二のI/Oバス5Bから第一へ
のI/Oバス5Aへも、第二のI/Oバス5Bに接続さ
れているプロセッサ−I/Oブリッジ4Bを応答しない
ように設定し、I/O−I/Oブリッジ6を応答させる
ことで、第二のI/Oバス5Aから第一のI/Oバス5
Bへバスサイクルをフォワードすることができる。
のI/Oバス5Aへも、第二のI/Oバス5Bに接続さ
れているプロセッサ−I/Oブリッジ4Bを応答しない
ように設定し、I/O−I/Oブリッジ6を応答させる
ことで、第二のI/Oバス5Aから第一のI/Oバス5
Bへバスサイクルをフォワードすることができる。
【0033】
【作用】もし第一のI/Oバス5A上にあるデバイス
が、第二のI/Oバス5B上にあるI/Oデバイス7に
対し、アクセスを開始しようとしたとする。アクセス先
を指定するのはI/Oデバイス7を制御するデバイスド
ライバである。デバイスドライバは、I/Oデバイス7
内の制御レジスタに、転送先や転送モードなどを設定す
る。これと同時に、転送先をルーティングマネージャに
送る。
が、第二のI/Oバス5B上にあるI/Oデバイス7に
対し、アクセスを開始しようとしたとする。アクセス先
を指定するのはI/Oデバイス7を制御するデバイスド
ライバである。デバイスドライバは、I/Oデバイス7
内の制御レジスタに、転送先や転送モードなどを設定す
る。これと同時に、転送先をルーティングマネージャに
送る。
【0034】ルーティングマネージャは、NVRAM1
1に格納されているシステムのハードウェアコンフィギ
ュレーション情報を用い、転送先アドレスがどのI/O
バス5にあるI/Oデバイス7に対してのものかを判定
する。
1に格納されているシステムのハードウェアコンフィギ
ュレーション情報を用い、転送先アドレスがどのI/O
バス5にあるI/Oデバイス7に対してのものかを判定
する。
【0035】もし転送先が、第二のI/Oバス5B上の
I/Oデバイス7であることが分かれば、次のような処
理を行う。すなわち、第一のプロセッサ−I/Oブリッ
ジ4Aの、I/O側コンフィギュレーションレジスタ1
3Aには、主メモリ2のアドレスと第二のI/Oバス5
Bに接続されるI/Oデバイス7B,7Cのアドレスが
設定されているが、これを主メモリ2のアドレス範囲の
みに変更する。
I/Oデバイス7であることが分かれば、次のような処
理を行う。すなわち、第一のプロセッサ−I/Oブリッ
ジ4Aの、I/O側コンフィギュレーションレジスタ1
3Aには、主メモリ2のアドレスと第二のI/Oバス5
Bに接続されるI/Oデバイス7B,7Cのアドレスが
設定されているが、これを主メモリ2のアドレス範囲の
みに変更する。
【0036】次にI/O−I/Oブリッジ6の、I/O
1側コンフィギュレーションレジスタ14には、第二の
I/Oバス5Bに接続されるI/Oデバイス7B,7C
のアドレスを設定する。
1側コンフィギュレーションレジスタ14には、第二の
I/Oバス5Bに接続されるI/Oデバイス7B,7C
のアドレスを設定する。
【0037】ルーティングマネージャは以上の処理を終
えた後、制御をデバイスドライバに戻す。デバイスドラ
イバは、I/Oデバイス7Aの制御レジスタを操作し、
転送を開始させる。
えた後、制御をデバイスドライバに戻す。デバイスドラ
イバは、I/Oデバイス7Aの制御レジスタを操作し、
転送を開始させる。
【0038】第一のI/Oバス5A上のI/Oデバイス
7Aが、第二のI/Oバス5B上のI/Oデバイス7B
または7Cのアドレスを出力すると、従来応答していた
第一のプロセッサ−I/Oブリッジ4Aは、主メモリ2
アドレスのみ応答するように設定が変えられているから
応答しなくなる。一方のI/O−I/Oブリッジ6は、
第二のI/Oバス5B上のI/Oデバイス7B,7Cア
ドレスで応答するように設定されたから、第一のI/O
バス5Aのバスサイクルを第二のI/Oバスへ5Bとフ
ォワードし、I/Oデバイス7AからI/Oデバイス7
Bまたは7C間の転送が行われることになる。
7Aが、第二のI/Oバス5B上のI/Oデバイス7B
または7Cのアドレスを出力すると、従来応答していた
第一のプロセッサ−I/Oブリッジ4Aは、主メモリ2
アドレスのみ応答するように設定が変えられているから
応答しなくなる。一方のI/O−I/Oブリッジ6は、
第二のI/Oバス5B上のI/Oデバイス7B,7Cア
ドレスで応答するように設定されたから、第一のI/O
バス5Aのバスサイクルを第二のI/Oバスへ5Bとフ
ォワードし、I/Oデバイス7AからI/Oデバイス7
Bまたは7C間の転送が行われることになる。
【0039】転送が終了すれば、I/Oデバイス7はデ
バイスドライバに終了割り込み、あるいは終了ステータ
スビットをセットし通知する。デバイスドライバは、ル
ーティングマネージャに終了を通知し、ルーティングマ
ネージャは各ブリッジのコンフィギュレーションを、元
の状態へ復帰させる。
バイスドライバに終了割り込み、あるいは終了ステータ
スビットをセットし通知する。デバイスドライバは、ル
ーティングマネージャに終了を通知し、ルーティングマ
ネージャは各ブリッジのコンフィギュレーションを、元
の状態へ復帰させる。
【0040】以上によって、I/Oデバイス7から主メ
モリ2への距離が等しい並列トポロジー構成において
も、I/Oバス5の異なるI/Oデバイス7間の転送を
高速化することができる。
モリ2への距離が等しい並列トポロジー構成において
も、I/Oバス5の異なるI/Oデバイス7間の転送を
高速化することができる。
【0041】
【実施例】以下、図面を用いて本発明を説明する。図1
は構成例を示したブロック図である。図6で説明した並
列トポロジ構成と異なるところは、I/Oバス5A,5
B間に設けたI/O−I/Oブリッジ6である。
は構成例を示したブロック図である。図6で説明した並
列トポロジ構成と異なるところは、I/Oバス5A,5
B間に設けたI/O−I/Oブリッジ6である。
【0042】また図2は、ソフトウェアおよび関連する
ハードウェアのブロック図である。100はアプリケー
ションソフトウェア、101はオペレーティングシステ
ム、102はデバイスドライバ、103は本発明の特徴
であるルーティングマネージャ、104はBIOSであ
る。
ハードウェアのブロック図である。100はアプリケー
ションソフトウェア、101はオペレーティングシステ
ム、102はデバイスドライバ、103は本発明の特徴
であるルーティングマネージャ、104はBIOSであ
る。
【0043】アプリケーションソフトウェア100は、
データ転送をオペレーティングシステム101に指示す
る(200)。たとえば、ハードディスクに格納されて
いる圧縮画像データを、伸張して画面に表示せよ。とい
ったマクロな指示である。
データ転送をオペレーティングシステム101に指示す
る(200)。たとえば、ハードディスクに格納されて
いる圧縮画像データを、伸張して画面に表示せよ。とい
ったマクロな指示である。
【0044】オペレーティングシステム101は指示2
00を解釈し、いくつかの低レベルなファンクションに
分解してデバイスドライバ102へ指示(201)を出
す。例えば、アプリケーション100がファイル名で指
示したものを、ディスクの論理セクタ番号へ変換する、
といった内容である。
00を解釈し、いくつかの低レベルなファンクションに
分解してデバイスドライバ102へ指示(201)を出
す。例えば、アプリケーション100がファイル名で指
示したものを、ディスクの論理セクタ番号へ変換する、
といった内容である。
【0045】デバイスドライバ102は、従来の技術で
はI/Oデバイス7に対するコマンドへさらに変換し転
送の起動をかける(202)。ここで本発明では、20
3のパスを設け、転送先アドレスをルーティングマネー
ジャ103へ通知するよう、デバイスドライバ102に
機能を加える(203)。
はI/Oデバイス7に対するコマンドへさらに変換し転
送の起動をかける(202)。ここで本発明では、20
3のパスを設け、転送先アドレスをルーティングマネー
ジャ103へ通知するよう、デバイスドライバ102に
機能を加える(203)。
【0046】ルーティングマネージャ103は、BIO
S104に対し、コンフィギュレーション情報の取得を
求める(204)。BIOS104は、NVRAM11
からコンフィギュレーション情報を読み出し(20
5)、ルーティングマネージャ103へ渡す(20
6)。
S104に対し、コンフィギュレーション情報の取得を
求める(204)。BIOS104は、NVRAM11
からコンフィギュレーション情報を読み出し(20
5)、ルーティングマネージャ103へ渡す(20
6)。
【0047】ルーティングマネージャ103は、コンフ
ィギュレーション情報とデバイスドライバ102から受
け取った転送先アドレスを照合し、転送が同一のI/O
バス5間か、主メモリ2間か、あるいは異なるI/Oバ
ス5間かを判定する。その結果に基づき、もし異なるI
/Oバス5間であればプロセッサ−I/Oブリッジ4A
または4B、およびI/O−I/Oブリッジ6の、該当
するコンフィギュレーションレジスタ12,13,1
4,15の設定を変更する(207)。
ィギュレーション情報とデバイスドライバ102から受
け取った転送先アドレスを照合し、転送が同一のI/O
バス5間か、主メモリ2間か、あるいは異なるI/Oバ
ス5間かを判定する。その結果に基づき、もし異なるI
/Oバス5間であればプロセッサ−I/Oブリッジ4A
または4B、およびI/O−I/Oブリッジ6の、該当
するコンフィギュレーションレジスタ12,13,1
4,15の設定を変更する(207)。
【0048】ルーティングマネージャ103での設定変
更処理が終了したなら(208)、デバイスドライバ1
02は各設定内容をI/Oデバイス7へ設定し、転送の
起動をかける(202)。
更処理が終了したなら(208)、デバイスドライバ1
02は各設定内容をI/Oデバイス7へ設定し、転送の
起動をかける(202)。
【0049】I/Oデバイス7の転送終了は割り込みな
どでデバイスドライバに通知される(209)。デバイ
スドライバ102はルーティングマネージャ103に終
了を通知し(210)、ルーティングマネージャは、プ
ロセッサ−I/Oブリッジ4Aまたは4B、およびI/
O−I/Oブリッジ6の、該当するコンフィギュレーシ
ョンレジスタ12,13,14,15の設定を元に戻す
(211)。
どでデバイスドライバに通知される(209)。デバイ
スドライバ102はルーティングマネージャ103に終
了を通知し(210)、ルーティングマネージャは、プ
ロセッサ−I/Oブリッジ4Aまたは4B、およびI/
O−I/Oブリッジ6の、該当するコンフィギュレーシ
ョンレジスタ12,13,14,15の設定を元に戻す
(211)。
【0050】しかるのちデバイスドライバ102は、オ
ペレーティングシステム101へ終了を知らせ(21
2)、さらにアプリケーションソフトウェアに終了が知
らされる(213)。
ペレーティングシステム101へ終了を知らせ(21
2)、さらにアプリケーションソフトウェアに終了が知
らされる(213)。
【0051】このようにして、図4の並列トポロジにお
ける経路301は、本発明においては図1に示す経路3
05のように一段階ブリッジを減らすことができる。こ
れによって、ブリッジを経由することによって生じるバ
スのオーバーヘッドを減少させることができ、I/Oデ
バイス間の転送性能が向上する。
ける経路301は、本発明においては図1に示す経路3
05のように一段階ブリッジを減らすことができる。こ
れによって、ブリッジを経由することによって生じるバ
スのオーバーヘッドを減少させることができ、I/Oデ
バイス間の転送性能が向上する。
【0052】また、本発明の応用例として、図1に示す
構成のままで、一方のプロセッサ−I/Oブリッジ回路
4Aまたは4Bに故障が発生した場合でも、I/O−I
/Oブリッジ6と、ルーティングマネージャによって迂
回経路をとることで、故障を回避することもできる。
構成のままで、一方のプロセッサ−I/Oブリッジ回路
4Aまたは4Bに故障が発生した場合でも、I/O−I
/Oブリッジ6と、ルーティングマネージャによって迂
回経路をとることで、故障を回避することもできる。
【0053】また本発明の応用例として、通常はI/O
−I/Oブリッジ6を活かしておき、状況に応じプロセ
ッサ−I/Oブリッジをイネーブルとしてもよい。とい
うのも、プロセッサバスに対し並列にプロセッサ−I/
Oブリッジを複数配置した場合に、階層トポロジを前提
とするソフトウェアの互換性が保証されない場合がある
からである。
−I/Oブリッジ6を活かしておき、状況に応じプロセ
ッサ−I/Oブリッジをイネーブルとしてもよい。とい
うのも、プロセッサバスに対し並列にプロセッサ−I/
Oブリッジを複数配置した場合に、階層トポロジを前提
とするソフトウェアの互換性が保証されない場合がある
からである。
【0054】また、I/Oバス5Aと5B間で転送を行
っている際に、プロセッサバス3上でプロセッサ1と主
メモリ2とがアクセスをしてもよく、このような並行動
作をとればシステム全体の性能を向上し得る。
っている際に、プロセッサバス3上でプロセッサ1と主
メモリ2とがアクセスをしてもよく、このような並行動
作をとればシステム全体の性能を向上し得る。
【0055】以上はI/Oバス5が二つの場合で説明し
たが、三つ以上でも同様の考え方でI/Oバス5間を接
続すればよい。
たが、三つ以上でも同様の考え方でI/Oバス5間を接
続すればよい。
【0056】
【発明の効果】本発明を用いることによって、プロセッ
サ1および主メモリ2との距離が等しい並列トポロジの
複数I/Oバス5のシステムにおいて、I/Oバス5間
のアクセス性能を向上させることができ、またプロセッ
サバス3を介さなくてもよい転送においてプロセッサバ
ス3のバンド幅を消費することがなくなるので、プロセ
ッサ1と主メモリ2との命令フェッチ動作などの性能を
低下させることもない。
サ1および主メモリ2との距離が等しい並列トポロジの
複数I/Oバス5のシステムにおいて、I/Oバス5間
のアクセス性能を向上させることができ、またプロセッ
サバス3を介さなくてもよい転送においてプロセッサバ
ス3のバンド幅を消費することがなくなるので、プロセ
ッサ1と主メモリ2との命令フェッチ動作などの性能を
低下させることもない。
【図1】本発明の実施例を表わすブロック図。
【図2】ソフトウェア構成例を表わすブロック図。
【図3】コンフィギュレーションレジスタの構成を表す
説明図。
説明図。
【図4】並列トポロジのI/Oバス構成を表すブロック
図。
図。
【図5】階層トポロジのI/Oバス構成を表すブロック
図。
図。
1…プロセッサ、 2…主メモリ、 3…プロセッサバス、 4…プロセッサ−I/Oブリッジ、 5…I/Oバス、 6…I/O−I/Oブリッジ、 7…I/Oデバイス。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 岡澤 宏一 神奈川県川崎市麻生区王禅寺1099番地株式 会社日立製作所システム開発研究所内
Claims (2)
- 【請求項1】プロセッサバスとの間にプロセッサブリッ
ジ回路を介して接続される第一のI/Oバスと、前記プ
ロセッサバスとの間に第二のプロセッサブリッジ回路を
介して接続される第二のI/Oバスとを備えた情報処理
装置において、 前記第一のI/Oバスと前記第二のI/Oバスとの間に
I/Oバスブリッジ回路を設け、ループ状のバストポロ
ジー構成としたことを特徴とするI/Oバス。 - 【請求項2】前記I/Oバスに接続されるI/Oデバイ
ス類を制御するデバイスドライバと、システムのコンフ
ィギュレーション情報を格納する不揮発性メモリとを備
えた情報処理装置であって、 前記デバイスドライバからI/Oアダプタの転送先アド
レスを得る過程と、前記不揮発性メモリからシステムの
コンフィギュレーション情報を得る過程と、それぞれの
情報に基づき転送元と転送先のバスを判定する過程と、
異なるI/Oバスへの転送であるときはプロセッサブリ
ッジ回路およびI/Oブリッジ回路のアドレスデコード
コンフィギュレーションを変更する過程とによって、異
なる前記I/Oバス間の転送を前記プロセッサバスに接
続される前記プロセッサブリッジ回路を介することな
く、前記第一のI/Oバスと前記第二のI/Oバスとの
間に接続されるI/Oブリッジによってルーティングせ
しめるルーティングマネージャソフトウェアを備えた請
求項1のI/Oバス。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11152595A JPH08305658A (ja) | 1995-05-10 | 1995-05-10 | I/oバス |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11152595A JPH08305658A (ja) | 1995-05-10 | 1995-05-10 | I/oバス |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH08305658A true JPH08305658A (ja) | 1996-11-22 |
Family
ID=14563550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11152595A Pending JPH08305658A (ja) | 1995-05-10 | 1995-05-10 | I/oバス |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH08305658A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009070249A (ja) * | 2007-09-14 | 2009-04-02 | Ricoh Co Ltd | データ転送装置 |
JP2010152892A (ja) * | 2008-12-10 | 2010-07-08 | Nvidia Corp | ハードウェアデバイスをヘテロジニアス処理ユニット間でバインドし移行するためのチップセットサポート |
-
1995
- 1995-05-10 JP JP11152595A patent/JPH08305658A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009070249A (ja) * | 2007-09-14 | 2009-04-02 | Ricoh Co Ltd | データ転送装置 |
JP2010152892A (ja) * | 2008-12-10 | 2010-07-08 | Nvidia Corp | ハードウェアデバイスをヘテロジニアス処理ユニット間でバインドし移行するためのチップセットサポート |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3669653B2 (ja) | コンピュータ・システム | |
US6675253B1 (en) | Dynamic routing of data across multiple data paths from a source controller to a destination controller | |
US6684315B2 (en) | Method and system for supporting multiprocessor TLB-purge instructions using directed write transactions | |
JPH096711A (ja) | セグメント化したメモリを備えたコンピュータ・システム | |
US7007126B2 (en) | Accessing a primary bus messaging unit from a secondary bus through a PCI bridge | |
EP0427023B1 (en) | Data transmission control apparatus for parallel processing system | |
US5901328A (en) | System for transferring data between main computer multiport memory and external device in parallel system utilizing memory protection scheme and changing memory protection area | |
US5933613A (en) | Computer system and inter-bus control circuit | |
JPH08305658A (ja) | I/oバス | |
US20010021944A1 (en) | Distributed memory type parallel computer and write data transfer end confirming method thereof | |
JPH11232213A (ja) | 入出力装置におけるデータ転送方式 | |
US20060206644A1 (en) | Method of hot switching data transfer rate on bus | |
JP4431492B2 (ja) | 複数のコヒーレンシー・グラニュールをサポートするデータ転送ユニット | |
JP4025032B2 (ja) | ディスク制御装置、および、そのデータアクセス方法 | |
JP2000155738A (ja) | データ処理装置 | |
JPH09186836A (ja) | ディジタル複写機 | |
JP3447820B2 (ja) | バスコントローラ | |
JPS6218074B2 (ja) | ||
JP3791463B2 (ja) | 演算装置及びデータ転送システム | |
JPH06231032A (ja) | アクセス制御装置 | |
JP3299147B2 (ja) | キャッシュ制御回路 | |
JP2972568B2 (ja) | バス拡張装置 | |
JPH11134287A (ja) | 入出力バスデータ転送装置 | |
JPH0512221A (ja) | マルチcpu間データ交換高速化方式 | |
EP0139727A1 (en) | Multi-computer computer architecture |