(57)【要約】【課題】  メモリバスと入出力バスとの両方のプロトコルに対して最適な構成を有するとともにアウト・オブ・オーダ実行にも対応可能にする。【解決手段】入出力受信バッファ１５と入出力送信バッファ１４とライトデータバッファ１３とリードデータバッファ１２と制御情報テーブル１１とライトデータ格納処理部１７とライトデータ送信部３４とリードデータバッファ格納処理部３３と入出力送信バッファ格納処理部１８と、制御情報テーブル１１に基づいてライトデータ送信部３４およびリードデータバッファ格納処理部３３によるメモリへのアクセス制御を行なう制御部１６とをそなえて構成する。【選択図】        図１
2006293969.tif 000002
【特許請求の範囲】
【請求項１】
メモリとの間でリクエスト，ライトデータおよびリードデータをそれぞれパケットとして通信可能に接続され、リクエスト信号線とライトデータ信号線とリードデータ信号線とをそなえるメモリバスと、入出力機器との間で、送信データと当該送信データの送信先アドレスとを包含するパケットおよび受信データと当該受信データの受信先アドレスとを包含するパケットとして、該送信データおよび該受信データをそれぞれ送信もしくは受信され、送信用信号線と受信用信号線とをそなえる入出力バスとの間において、データの転送を行なうデータ転送装置であって、
該入出力機器から該受信用信号線を介して受信する該受信データを格納可能な入出力受信バッファと、
該入出力機器に対して該送信用信号線を介して送信する該送信データを格納可能な入出力送信バッファと、
該メモリに対して該ライトデータ信号線を介して送信する該ライトデータを格納可能なライトデータバッファと、
該メモリから該リードデータ信号線を介して受信する該リードデータを格納可能なリードデータバッファと、
該メモリへのアクセスに応じて形成されるエントリを複数そなえる制御情報テーブルと、
該入出力受信バッファに格納された該受信データを該ライトデータバッファに格納するライトデータバッファ格納処理部と、
該ライトデータバッファに格納された該受信データを該ライトデータとして該ライトデータ信号線を介して該メモリに送信するライトデータ送信部と、
該メモリから受信した該リードデータを該リードデータバッファに格納するリードデータバッファ格納処理部と、
該リードデータバッファに格納された該リードデータを読み出し、該送信データとして当該送信データの送信先アドレスとともに該入出力送信バッファに格納する入出力送信バッファ格納処理部と、
該制御情報テーブルに基づいて、該ライトデータ送信部および該リードデータバッファ格納処理部による該メモリへのアクセス制御を行なう制御部とをそなえることを特徴とするデータ転送装置。
【請求項２】
該入出力機器から該メモリへのデータ転送を行なうライト処理時に、
該ライトデータ送信部が、該ライトデータバッファに格納された該受信データをメモリアクセスサイズに分割して作製された該ライトデータを、該ライトデータ信号線を介して送信することを特徴とする、請求項１記載のデータ転送装置。
【請求項３】
該制御情報テーブルが、少なくとも、該リクエストに対応付けたシーケンスＩＤと、該ライトデータバッファにおける該リクエストに対応する該ライトデータが格納されている格納位置情報とを対応付けて管理し、
該制御部が、該メモリバスにデータ送信を行なう際に、該制御情報テーブルのエントリに書き込まれている前記ライトデータバッファの格納位置情報を、該シーケンスＩＤをポインタとして読み出し、該格納位置情報に基づいて該ライトデータバッファから該ライトデータの取り出しを行なうことを特徴とする、請求項２記載のデータ転送装置。
【請求項４】
該メモリから該入出力機器へのデータ転送を行なうリード処理時に、
該入出力送信バッファ格納処理部が、該リードデータバッファに格納された複数の該リードデータの合計データ量が送信パケットサイズ条件を満たした時に、該リードデータバッファに格納された該リードデータを読み出し、該送信データとして当該送信データの送信先アドレスとともに該入出力送信バッファに格納することを特徴とする、請求項１〜請求項３のいずれか１項に記載のデータ転送装置。
【請求項５】
該制御情報テーブルが、少なくとも、該リクエストに対応付けたシーケンスＩＤと、該リードデータバッファにおける該リクエストに対応する該リードデータの格納位置に関する格納位置情報とを対応付けて管理し、
該制御部が、該メモリバスから該リードデータの受信を行なう際に、該制御情報テーブルのエントリに書き込まれている前記リードデータバッファの格納位置情報を、該シーケンスＩＤをポインタとして読み出し、該格納位置情報に基づいて該リードデータを該リードデータバッファに格納することを特徴とする、請求項４記載のデータ転送装置。
【請求項６】
該制御情報テーブルが、前記リードデータバッファの格納位置情報と前記ライトデータバッファの格納位置情報とを同一フィールドに格納するとともに、該リード処理か該ライト処理かを識別するための識別情報を該リクエストに対応させて格納することを特徴とする、請求項５記載のデータ転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばバスブリッジ等のデータ転送制御を行なう技術に関する。
【背景技術】
【０００２】
近年、ギガビットイーサネット（Gigabit Ethernet）やファイバーチャネル（Fibre Channel）等の高速な通信規格に対応する入出力（Ｉ／Ｏ（Input/Output））装置が用いられるようになり、これに伴って、情報処理装置においても、例えば、Ｉ／Ｏバスとメモリバスとの間のデータ転送を行なうバスブリッジにおいてデータ転送性能の向上が求められている。
【０００３】
図１４は従来のバスブリッジの構成を模式的に示す図、図１５はそのバスブリッジをそなえた情報処理装置の構成を模式的に示す図である。図１５に示す情報処理装置１００は、ＣＰＵ（Central Processing Unit）２１−１，２１−２，システムコントローラ２３−１，２３−２，バスブリッジ２０−１，２０−２，クロスバースイッチ２４，メモリ２２−１，２２−２，２２−３，２２−４およびＩ／Ｏ機器２５をそなえて構成されている。
【０００４】
システムコントローラ２３−１にはＣＰＵ２１−１，メモリ２２−１，２２−２およびクロスバースイッチ２４が、又、システムコントローラ２３−２にはＣＰＵ２１−２，メモリ２２−３，２２−４およびクロスバースイッチ２４がそれぞれ接続されている。
バスブリッジ２０−１，２０−２には、それぞれ２つのＩ／Ｏ機器２５がＩ／Ｏバス２６を介して接続されており、又、これらのバスブリッジ２０−１，２０−２は、それぞれメモリバス２７を介してクロスバースイッチ２４に接続されている。
【０００５】
すなわち、各システムコントローラ２３−１，２３−２は、それぞれクロスバースイッチ２４を介してバスブリッジ２０−１，２０−２に通信可能に接続されているのである。
なお、以下、バスブリッジを示す符号としては、複数のバスブリッジのうち１つを特定する必要があるときには符号２０−１，２０−２を用いるが、任意のバスブリッジを指すときには符号２０を用いる。
【０００６】
バスブリッジ（メモリ−Ｉ／Ｏバスブリッジ）２０は、図１４に示すように、Ｉ／Ｏ機器２５とクロスバースイッチ２４との間において、Ｉ／Ｏバス２６とメモリバス２７との間に配設され、互いに転送されるデータのクロック周波数やデータ長等のプロトコルが違うこれらのＩ／Ｏバス２６とメモリバス２７との間においてデータの転送を行なうようになっている。
【０００７】
また、従来のバスブリッジ２０をそなえた情報処理装置１００においては、メモリバス２７は、メモリ２２−１〜２２−４へ書き込むためのライトデータやリクエスト（アドレス）が送信されるライトデータ信号線２７ｂと、メモリ２２−１〜２２−４から読み出されたリードデータが送信されるリードデータ信号線２７ａとをそなえて構成されており、又、Ｉ／Ｏバス２６は、Ｉ／Ｏ機器２５から受信データを受信するＩ／Ｏ受信用信号線２６ａとＩ／Ｏ機器２５に送信データを送信するＩ／Ｏ送信用信号線２６ｂとをそなえて構成されている。
【０００８】
従来のバスブリッジ２０は、図１４に示すように、送信バッファ２０１，受信バッファ２０２および制御情報テーブル２０３をそなえて構成されている。
送信バッファ２０１は、ＤＭＡ（Direct Memory Access）リードを行なうために、メモリ２２−１〜２２−４から読み出したデータを一時的に格納するものである。この送信バッファ２０１には、Ｉ／Ｏ送信用信号線２６ｂとリードデータ信号線２７ａとが通信可能に接続され、メモリ２２−１〜２２−４からのデータがリードデータ信号線２７ａを介して送信バッファ２０１に格納され、この送信バッファ２０１に格納されたリードデータがＩ／Ｏ送信用信号線２７ｂを介してＩ／Ｏ機器２５に送信されるようになっている。
【０００９】
受信バッファ２０２はＤＭＡライトを行なうために、メモリ２２−１〜２２−４に書き込まれるデータを一時的に格納するものである。この受信バッファ２０２には、Ｉ／Ｏ受信用信号線２６ａとライトデータ信号線２７ｂとが通信可能に接続され、Ｉ／Ｏ機器２５からのデータが受信バッファ２０２に格納され、制御情報テーブル２０３に格納された制御情報に基づいて、この受信バッファ２０２に格納されたデータがライトデータとしてライトデータ信号線２７ｂを介してメモリ２２−１〜２２−４に送信されるようになっている。
【００１０】
すなわち、従来のバスブリッジ２０においては、図１４に示すように、送信バッファ２０１および受信バッファ２０２を、それぞれメモリバス２７とＩ／Ｏバス２６とで共有するように使用している。又、メモリバス２７においては、リクエストとデータとが同じライトデータ信号線２７ｂを介して送信されるようになっており、このメモリバス２７においては、リクエストとデータとが同一パケットとして処理され、複数のメモリリクエストを同時に処理する場合は、イン・オーダ（In-Order）実行で処理されるようになっている。
【００１１】
なお、送信バッファ２０１や受信バッファ２０２は、ＦＩＦＯ（First In First Out；先入れ先出し方式）でデータの格納及び読み出しが行なわれるようになっている。
制御情報テーブル２０３は、メモリ２２−１〜２２−４に対するアクセスを制御するものであり、メモリ２２−１〜２２−４に対してそれぞれリクエストを送信したり、送信バッファ２０１に格納するリードデータの読み出しや受信バッファ２０２に格納されたライトデータをメモリ２２−１〜２２−４に対して送信するための制御等を行なうものである。
【００１２】
上述の如く構成された従来のバスブリッジ２０は、Ｉ／Ｏ機器２５からのデータをメモリ２２−１〜２２−４に送信したり、メモリ２２−１〜２２−４のデータをＩ／Ｏ機器２５に送信したりすることにより、Ｉ／Ｏバス２６とメモリバス２７との間においてデータ転送を行なう。
そして、従来のバスブリッジ２０においては、上述したように、データ転送性能を向上させることが望まれている。例えば、下記特許文献１は、ターゲットの属するインターフェースポートに、複数の受信バッファをそなえることにより、イニシエータが効率良くデータを処理できるようにしたデータ転送装置が開示されている。
【特許文献１】特開２０００−１３２５０３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、従来のバスブリッジ２０においては、送信バッファ２０１や受信バッファ２０２をそれぞれ１つずつそなえた回路として構成されているので、これらの送信バッファ２０１や受信バッファ２０２を、メモリバス２７とＩ／Ｏバス２６との両方のプロトコルに対して最適なものとなるように構成することが困難であるという課題がある。
また、例えば、バスクロックやデータ長等のプロトコルがＩ／Ｏバス２６やメモリバス２７において変更された場合等には、従来のバスブリッジ２０においては、これらの変更に対応することができず、バスブリッジ２０全体を交換する必要があり非経済的であるという課題がある。
【００１４】
さらに、一般に、ＣＰＵ（Central Processing Unit）等のプロセッサユニットにおいては、プログラムに記述された順序(order)を無視した順序(out of〜)でプログラム中の命令を実行することにより、処理を高速化させるアウト・オブ・オーダ実行（out of order execution）手法が知られている。
そして、バスブリッジ２０においては、メモリバス２７に送出するパケットについて、そのアドレス部分とデータ部分とを別々のパケットとして送信し、処理する手法も知られている。
【００１５】
しかしながら、従来のバスブリッジ２０においては、Ｉ／Ｏ送信バッファ２０１もＩ／Ｏ受信バッファア２０２もＦＩＦＯでデータの読み書きが行なわれるようになっているので、アドレス部分とデータ部分とを別々のパケットとして取り扱う手法で、アウト・オブ・オーダ実行を行なうことができない。
また、従来のバスブリッジ２０においては、物理的には１つのＩ／Ｏバス２６について、仮想的に複数のチャネルが繋がっているかのように取り扱うバーチャルチャネル（Virtual Channel）機能を実現しようとした場合に、パケットの追い越し制御を行なうことができないという課題もある。
【００１６】
本発明は、このような課題に鑑み創案されたもので、メモリバスと入出力バスとの両方のプロトコルに対して最適な構成を有するとともにアウト・オブ・オーダ実行にも対応できるようにすることを目的とする。
【課題を解決するための手段】
【００１７】
このため、本発明のデータ転送装置（請求項１）は、メモリとの間でリクエスト，ライトデータおよびリードデータをそれぞれパケットとして通信可能に接続され、リクエスト信号線とライトデータ信号線とリードデータ信号線とをそなえるメモリバスと、入出力機器との間で、送信データと当該送信データの送信先アドレスとを包含するパケットおよび受信データと当該受信データの受信先アドレスとを包含するパケットとして、該送信データおよび該受信データをそれぞれ送信もしくは受信され、送信用信号線と受信用信号線とをそなえる入出力バスとの間において、データの転送を行なうデータ転送装置であって、該入出力機器から該受信用信号線を介して受信する該受信データを格納可能な入出力受信バッファと、該入出力機器に対して該送信用信号線を介して送信する該送信データを格納可能な入出力送信バッファと、該メモリに対して該ライトデータ信号線を介して送信する該ライトデータを格納可能なライトデータバッファと、該メモリから該リードデータ信号線を介して受信する該リードデータを格納可能なリードデータバッファと、該メモリへのアクセスに応じて形成されるエントリを複数そなえる制御情報テーブルと、該入出力受信バッファに格納された該受信データを該ライトデータバッファに格納するライトデータバッファ格納処理部と、該ライトデータバッファに格納された該受信データを該ライトデータとして該ライトデータ信号線を介して該メモリに送信するライトデータ送信部と、該メモリから受信した該リードデータを該リードデータバッファに格納するリードデータバッファ格納処理部と、該リードデータバッファに格納された該リードデータを読み出し、該送信データとして当該送信データの送信先アドレスとともに該入出力送信バッファに格納する入出力送信バッファ格納処理部と、該制御情報テーブルに基づいて、該ライトデータ送信部および該リードデータバッファ格納処理部による該メモリへのアクセス制御を行なう制御部とをそなえることを特徴としている。
【００１８】
なお、該入出力機器から該メモリへのデータ転送を行なうライト処理時に、該ライトデータ送信部が、該ライトデータバッファに格納された該受信データをメモリアクセスサイズに分割して作製された該ライトデータを、該ライトデータ信号線を介して送信してもよい（請求項２）。
また、該制御情報テーブルが、少なくとも、該リクエストに対応付けたシーケンスＩＤと、該ライトデータバッファにおける該リクエストに対応する該ライトデータが格納されている格納位置情報とを対応付けて管理し、該制御部が、該メモリバスにデータ送信を行なう際に、該制御情報テーブルのエントリに書き込まれている前記ライトデータバッファの格納位置情報を、該シーケンスＩＤをポインタとして読み出し、該格納位置情報に基づいて該ライトデータバッファから該ライトデータの取り出しを行なってもよい（請求項３）。
【００１９】
さらに、該メモリから該入出力機器へのデータ転送を行なうリード処理時に、該入出力送信バッファ格納処理部が、該リードデータバッファに格納された複数の該リードデータの合計データ量が送信パケットサイズ条件を満たした時に、該リードデータバッファに格納された該リードデータを読み出し、該送信データとして当該送信データの送信先アドレスとともに該入出力送信バッファに格納してもよい（請求項４）。
【００２０】
またさらに、該制御情報テーブルが、少なくとも、該リクエストに対応付けたシーケンスＩＤと、該リードデータバッファにおける該リクエストに対応する該リードデータの格納位置に関する格納位置情報とを対応付けて管理し、該制御部が、該メモリバスから該リードデータの受信を行なう際に、該制御情報テーブルのエントリに書き込まれている前記リードデータバッファの格納位置情報を、該シーケンスＩＤをポインタとして読み出し、該格納位置情報に基づいて該リードデータを該リードデータバッファに格納してもよい（請求項５）。
【００２１】
また、該制御情報テーブルが、前記リードデータバッファの格納位置情報と前記ライトデータバッファの格納位置情報とを同一フィールドに格納するとともに、該リード処理か該ライト処理かを識別するための識別情報を該リクエストに対応させて格納するようにしてもよい(請求項６)。
【発明の効果】
【００２２】
以上詳述したように、本発明によれば、以下の少なくともいずれか１つの効果ないし利点が得られる。
（１）データ転送性能を向上させることができる。
（２）メモリバスと入出力バスとの両方のプロトコルに最適となるように構成することができる。
【００２３】
（３）バーチャルチャネル機能を実現した場合においても、パケットの追い越し制御を行なうことができる。
（４）メモリバスにおけるアウト・オブ・オーダ実行に対応することができる。
【発明を実施するための最良の形態】
【００２４】
以下、図面を参照して本発明の実施の形態を説明する。
（Ａ）第１実施形態の説明
図１は本発明の第１実施形態としてのバスブリッジ（データ転送装置）の構成を模式的に示す図、図２はバスブリッジをそなえた情報処理装置の構成を模式的に示す図である。
情報処理装置１は、図２に示すように、ＣＰＵ（Central Processing Unit）２１−１，２１−２，システムコントローラ２３−１，２３−２，メモリ２２−１，２２−２，２２−３，２２−４，クロスバースイッチ２４，Ｉ／Ｏ機器２５およびバスブリッジ１０ａ−１，１０ａ−２をそなえて構成されている。
【００２５】
ＣＰＵ（Central Processing Unit）２１−１，２１−２は、ＯＳ（Operating System）やアプリケーションプログラムを実行することにより種々の演算処理を行なうものである。
システムコントローラ２３−１，２３−２は、ＣＰＵ２１−１，２１−２やメモリ２２−１〜２２−４，Ｉ／Ｏ機器２５等の間におけるデータの授受を管理するものであり、システムコントローラ２３−１は、ＣＰＵ２１−１，メモリ２２−１，２２−２およびクロスバースイッチ２４に通信可能に接続され、ＣＰＵ２１−１とメモリ２２−１，２２−２やクロスバースイッチ２４との間におけるデータの授受を管理するようになっている。
【００２６】
また、システムコントローラ２３−２は、ＣＰＵ２１−２，メモリ２２−３，２２−４およびクロスバースイッチ２４に通信可能に接続され、ＣＰＵ２１−２とメモリ２２−３，２２−４やクロスバースイッチ２４との間におけるデータの授受を管理するようになっている。
メモリ２２−１〜２２−４はＣＰＵ２１−１，２１−２が演算を行なう際に用いるデータや命令等を格納するものである。なお、以下、メモリを示す符号としては、複数のメモリのうち１つを特定する必要があるときには符号２２−１〜２２−４を用いるが、任意のメモリを指すときには符号２２を用いる。
【００２７】
クロスバースイッチ２４は、ＣＰＵ２１−１，２１−２やメモリ２２−１〜２２−４等の間でデータをやりとりする際に、データ（アドレスや対象データ）の伝送経路を動的に選択するものである。図２に示す例においては、クロスバースイッチ２４には、システムコントローラ２３−１，２３−２が通信可能に接続されるとともに、メモリバス３０を介してバスブリッジ１０ａ−１，１０ａ−２が通信可能に接続されている。
【００２８】
Ｉ／Ｏ（Input/Output）機器（入出力機器）２５は、ハードディスク装置やスキャナ等の情報処理装置１に取り付けられる種々の電子機器であり、バスブリッジ１０ａ−１，１０ａ−２にＩ／Ｏバス（入出力バス）３１を介して通信可能に接続されている。
メモリバス３０は、図１に示すように、リードデータ信号線３０ａ，ライトデータ信号線３０ｂおよびリクエスト信号線３０ｃをそなえて構成され、バスブリッジ１０ａ−１，１０ａ−２とメモリ２２とをクロスバースイッチ２４を介して通信可能に接続するものである。又、このリードデータ信号線３０ａにおいてはリードデータが、又、ライトデータ信号線３０ｂにおいてはライトデータが、更に、リクエスト信号線３０ｃにおいてはリクエスト（アドレス）が、それぞれパケットとして（パケット形式）送受信されるようになっている。なお、リクエスト，ライトデータおよびリードデータについては後述する。
【００２９】
また、本実施形態においては、リクエストは、メモリ２２からの応答が無くてもバスブリッジ１０ａ−１，１０ａ−２から、それぞれ８個まで連続で送信することができるようになっており、更に、リードデータおよびライトデータの１パケットのデータ長（メモリアクセスサイズ）は１２８ｂｙｔｅの固定長である。
Ｉ／Ｏバス３１は、Ｉ／Ｏ機器２５とバスブリッジ１０ａ−１，１０ａ−２とを通信可能に接続するものであり、Ｉ／Ｏ受信用信号線（受信用信号線）３１ａとＩ／Ｏ送信用信号線（送信用信号線）３１ｂとをそなえて構成されている。Ｉ／Ｏ受信用信号線（受信用信号線）３１ａは、Ｉ／Ｏ機器２５からの受信データを受信するものであり、Ｉ／Ｏ送信用信号線（送信用信号線）３１ｂはＩ／Ｏ機器２５への送信データを送信するものであり、データの受信と送信とで物理的に異なる信号線が用いられるようになっていて、この意味において全二重化送受信が行なわれるようになっている。
【００３０】
また、Ｉ／Ｏ送信用信号線３１ｂにおいては、送信データとこの送信データの送信先アドレスとを包含するパケットとしてデータが送信されるようになっており、Ｉ／Ｏ受信用信号線３１ａにおいては、受信データとこの受信データの受信先アドレスとを包含するパケットとして受信データが受信されるようになっている。更に、Ｉ／Ｏ受信用信号線３１ａとＩ／Ｏ送信用信号線３１ｂとにおいて送受信される受信データおよび送信データの１パケットのデータ長は最大４Ｋｂｙｔｅまでの可変長である。
【００３１】
バスブリッジ１０ａ−１，１０ａ−２は、Ｉ／Ｏ機器２５とクロスバースイッチ２４との間において、Ｉ／Ｏバス３１とメモリバス３０との間に配設され、転送されるデータのクロック周波数やデータ長等のプロトコルが互いに異なるＩ／Ｏバス３１とメモリバス３０との間においてデータ転送を行なうようになっている。
なお、以下、本第１実施形態においては、バスブリッジを示す符号としては、複数のバスブリッジのうち１つを特定する必要があるときには符号１０ａ−１，１０ａ−２を用いるが、任意のバスブリッジを指すときには符号１０ａを用いる。
【００３２】
本第１実施形態のバスブリッジ１０ａは、図１に示すように、リードデータバッファ１２，ライトデータバッファ１３，Ｉ／Ｏ送信バッファ（入出力送信バッファ）１４，Ｉ／Ｏ受信バッファ（入出力受信バッファ）１５，制御部１６，制御情報テーブル１１ａ，受信データ処理部（ライトデータバッファ格納処理部）１７，Ｉ／Ｏ送信バッファ格納処理部（入出力送信バッファ格納処理部）１８，バス１９ａ，１９ｂ，１９ｃ，１９ｄ，リードデータバッファ格納処理部３３およびライトデータ送信部３４をそなえて構成されている。
【００３３】
Ｉ／Ｏ受信バッファ（入出力受信バッファ）１５は、Ｉ／Ｏ受信データを一時的に格納するものである。このＩ／Ｏ受信バッファ１５には、Ｉ／Ｏ受信用信号線３１ａおよびバス１９ａが接続され、Ｉ／Ｏ機器２５から受信したＩ／Ｏ受信データ（受信データ）がこのＩ／Ｏ受信バッファ１５に格納されるようになっている。なお、このＩ／Ｏ受信バッファ１５には、ＦＩＦＯ（First In First Out；先入れ先出し方式）でＩ／Ｏ受信データの格納及び読み出しが行なわれるようになっている。
【００３４】
また、本第１実施形態のバスブリッジ１０ａにおいては、物理的には１つのＩ／Ｏバス３１について、仮想的に複数のチャネルが繋がっているかのように取り扱うバーチャルチャネル（Virtual Channel）機能を実現することができるようになっており、このバーチャルチャネル機能を実現する場合には、Ｉ／Ｏ受信バッファ１５に対するリードおよびライトのポインタをバーチャルチャネル単位に有するものとする。
【００３５】
受信データ処理部１７は、Ｉ／Ｏバス３１から受信し、Ｉ／Ｏ受信バッファ１５に格納されたパケットを処理するものであり、具体的には、このＩ／Ｏ受信バッファ１５に書き込まれたパケットを取り出し、取り出したパケットがリードリクエストであるかライトリクエストであるかの判断を行なったり、受信したパケットのヘッダをメモリアクセスサイズ（本実施形態では１２８ｂｙｔｅ）単位に分割して、必要な情報（制御情報）を制御情報テーブル１１ａに格納すべく、制御部１６に渡すようになっている。
【００３６】
また、受信データ処理部（ライトデータバッファ格納処理部）１７は、Ｉ／Ｏ受信バッファ１５に格納されたＩ／Ｏ受信データをライトデータバッファ１３に格納するものであり、メモリバス３０へライトデータを送信するライト処理時（ライト・トランザクション）に、Ｉ／Ｏ受信バッファ１５からＩ／Ｏ受信データを読み出し、このＩ／Ｏ受信データをヘッダ部分とヘッダ部分以外のデータ部分とに分離させて、ライトデータバッファ１３がフルの状態になるか、もしくは、Ｉ／Ｏ受信バッファ１５が空の状態になるまで、そのデータ部分をライトデータバッファ１３に書き込むようになっている。
【００３７】
ライトデータバッファ１３は、メモリ２２に書き込まれるべく、ライトデータ信号線３０ｂを介して送信するライトデータを格納するものであり、ライトデータ信号線３０ｂおよびバス１９ａが接続され、受信データ処理部１７によってライトデータが格納されるようになっている。
ライトデータ送信部３４は、後述する制御部１６からメモリバス３０に送信されたライトデータ送信リクエスト（詳細は後述）に対して、メモリバス３０からライトデータ送信の許可が行なわれた場合に、１パケットのデータサイズが１２８ｂｙｔｅ単位のライトデータを生成し、この生成したライトデータをメモリバス３０ｂを介して送信するようになっている。
【００３８】
リードデータバッファ１２は、メモリ２２からリードデータ信号線３０ａを介して受信するリードデータを格納するものである。なお、このリードデータバッファ１２においては、後述する制御部１６がリードリクエストを送信する時に、受信予定のリードデータ長に対応する領域を予め確保しておくようになっており、リードリクエストに応じてメモリ２２から受信したリードデータを、確保していた領域に格納するようになっている。これにより、リードデータバッファ１２においては、リードデータによるメモリオーバーフローの発生を防止することができる。
【００３９】
なお、リードデータバッファ１２において、送信されたリードリクエストに対応して確保された領域を示すポインタは、制御情報テーブル１１ａに格納されるようになっている。
リードデータバッファ格納処理部３３は、リードデータ信号線３０ａを介してメモリ２２から受信したリードデータをリードデータバッファ１２に格納するものである。このリードデータバッファ格納処理部３３は、制御情報テーブル１１ａを参照して、リードデータバッファ１２における受信したリードデータの格納場所を示すポインタを取得して、その格納場所に受信したリードデータを格納するようになっている。
【００４０】
Ｉ／Ｏ送信バッファ格納処理部（入出力送信バッファ格納処理部）１８は、リードデータバッファ１２に格納されたリードデータを読み出し、その送信データに関するヘッダ（送信先アドレス）とともに、送信データとしてＩ／Ｏ送信バッファ１４に格納するようになっている。
このＩ／Ｏ送信バッファ格納処理部１８は、Ｉ／Ｏバス３１を介して送信するパケット１つ分の容量（送信パケットサイズ条件）を満たすリードデータがリードデータバッファ１２に格納された時、すなわち、送信パケットサイズ条件が満たされた時に、リードデータバッファ１２に格納されたこれらの１パケット分のリードデータを読み出し、送信データとしてその送信データの送信先アドレスとともにＩ／Ｏ送信バッファ１４に格納するようになっている。
【００４１】
Ｉ／Ｏ送信バッファ（入出力送信バッファ）１４は、Ｉ／Ｏ機器２５に対してＩ／Ｏ送信用信号線３１ｂを介して送信される送信データを格納するものである。このＩ／Ｏ送信バッファ１４は、ＦＩＦＯ（First In First Out；先入れ先出し方式）でリードデータの格納及び読み出しが行なわれるようになっている。又、このＩ／Ｏ送信バッファ１４には、Ｉ／Ｏ送信用信号線３１ｂとバス１９ｃとが接続されている。
【００４２】
バス１９ａはＩ／Ｏ受信バッファ１５とライトデータバッファ１３とを接続するものであり、バス１９ｂはＩ／Ｏ受信バッファ１５と制御情報テーブル１１ａを接続するものである。又、バス１９ｃは、リードデータバッファ１２とＩ／Ｏ送信バッファ１４とを接続するものであり、バス１９ｄは、制御情報テーブル１１ａとＩ／Ｏ送信バッファ１４を接続するものである。
【００４３】
制御情報テーブル１１ａは、８個のエントリ（フィールド）をそなえ、メモリバス３０に送信されたリクエストの管理を行なうものである。これらの制御情報テーブル１１ａのエントリには、メモリバス３０に制御部１６からリクエストが送信された時に制御部１６によって制御情報が登録されるようになっており、又、メモリバス３０でのデータ転送が完了した時に、制御部１６によってその制御情報が削除されるようになっている。
【００４４】
ここで、制御情報テーブル１１ａのエントリに格納される制御情報には、例えば、送信されたリードリクエストに対応して、リードデータバッファ１２に確保された領域を示すポインタがある。
制御部１６は、制御情報テーブル１１ａに基づいて、ライトデータ送信部３４およびリードデータバッファ格納処理部３３によるメモリ２２（メモリバス３０）へのアクセス制御を行なうものである。具体的には、制御部１６は、メモリバス３０に対してリードリクエストやライトリクエスト等のリクエスト（アドレス）の送信を行なうようになっている。
【００４５】
上述の如く構成された本発明の第１実施形態としてのバスブリッジ１０ａにおけるライトデータ転送時の処理を図３に示すシーケンスに従って説明する。
Ｉ／Ｏ機器２５から送信されるＩ／Ｏ受信データ（受信データ，ライトデータ）のパケットがＩ／Ｏバス３１（Ｉ／Ｏ受信用信号線３１ａ）を介してバスブリッジ１０ａに送信されると（図３の矢印Ａ１０参照）、バスブリッジ１０ａにおいては、そのＩ／Ｏバス３１から受信したパケットがＩ／Ｏ受信バッファ１５に書き込まれる。
【００４６】
そして、受信データ処理部１７は、Ｉ／Ｏ受信バッファ１５に書き込まれたパケットをＩ／Ｏ受信バッファ１５から取り出し、この取り出したパケットがライトデータである場合に、そのヘッダを抽出して１２８ｂｙｔｅ単位に分割して、制御部１６が必要な情報（制御情報）を制御情報テーブルに登録する。
また、受信データ処理部１７は、Ｉ／Ｏ受信バッファ１５に書き込まれたパケットのうち、データ部分をライトデータバッファ１３に書き込む。
【００４７】
なお、バーチャルチャネル機能を実現する場合には、Ｉ／Ｏ受信バッファ１５におけるリードポインタおよびライトポインタはバーチャルチャネル単位に用意されるようになっており、優先順位の高い方のパケットを先に処理することができるようになっている。
制御部１６は、１２８ｂｙｔｅ単位に分割したヘッダ情報に基づいてライトリクエストを作成し、メモリバス３０に送信する（図３の矢印Ａ２０参照）。また、バスブリッジ１０ａからＩ／Ｏ機器２５に対して、Ｉ／Ｏ受信バッファ１５の空き状況を示すクレジットが送信される（図３の矢印Ａ４０参照）。ライトリクエストに対してメモリ２２（メモリバス３０）からデータ送信許可パケットが送信されると（図３の矢印Ａ３０参照）、ライトデータ送信部３４によりライトデータがライトデータ信号線３０ｂを介してメモリ２２に対して送信される（図３の矢印Ａ５０参照）。
【００４８】
以下、メモリ２２（メモリバス３０）からデータ送信許可パケットが送信される度に（図３の矢印Ａ６０参照）、ライトデータ送信部３４がライトデータをメモリ２２に対して送信する（図３の矢印Ａ７０参照）。
次に、本発明の第１実施形態としてのバスブリッジ１０ａにおけるリードデータ転送時の処理を図４に示すシーケンスに従って説明する。Ｉ／Ｏ機器２５から送信されるＩ／Ｏ受信データ（受信データ，リードリクエスト）のパケットがＩ／Ｏバス３１（Ｉ／Ｏ受信用信号線３１ａ）を介してバスブリッジ１０ａに送信されると（図４の矢印Ｂ１０参照）、バスブリッジ１０ａにおいては、そのＩ／Ｏバス３１から受信したパケットがＩ／Ｏ受信バッファ１５に書き込まれる。
【００４９】
受信データ処理部１７が、Ｉ／Ｏ受信バッファ１５に書き込まれたパケットをＩ／Ｏ受信バッファ１５から取り出す。この取り出したパケットがリードリクエストである場合は、受信データ処理部１７は、そのヘッダを抽出して１２８ｂｙｔｅ単位に分割して、制御部１６が必要な情報を制御情報テーブルに登録する。
なお、バーチャルチャネル機能が実現されている場合は、Ｉ／Ｏ受信バッファ１５におけるリードポインタおよびライトポインタはバーチャルチャネル単位に用意されるようになっており、優先順位の高い方のパケットを先に処理することができるようになっている。
【００５０】
制御部１６は、１２８ｂｙｔｅ単位に分割したヘッダ情報に基づいてリードリクエストを作成し、メモリバス３０に送信する（図４の矢印Ｂ２０参照）。又、バスブリッジ１０ａからＩ／Ｏ機器２５に対して、Ｉ／Ｏ受信バッファ１５の空き状況を示すクレジットが送信される（図４の矢印Ｂ３０参照）。リードリクエストに対してメモリ２２（メモリバス３０）からリードデータが送信され（図４の矢印Ｂ４０参照）、リードデータバッファ格納処理部３３が、メモリバス３０ａを介して受信したリードデータを順次リードデータバッファに１２に格納する。
【００５１】
そして、リードデータバッファ１２にＩ／Ｏバス３１における１パケット分のリードデータが揃うと、Ｉ／Ｏ送信バッファ格納処理部１８が、リードデータバッファ１２からリードデータを取り出し、Ｉ／Ｏ送信バッファ１４に書き込む。
クレジットによりリードデータの送信が許可されると（図４の矢印Ｂ５０参照）、Ｉ／Ｏ送信バッファ１４は、Ｉ／Ｏバス３１（Ｉ／Ｏ送信用信号線３１ｂ）にリードデータパケットを送信する（図４の矢印Ｂ６０参照）。
【００５２】
このように、本発明の第１実施形態としてのバスブリッジ１０ａによれば、リードデータバッファ１２，ライトデータバッファ１３，Ｉ／Ｏ送信バッファ１４およびＩ／Ｏ受信バッファ１５をそなえて構成されているので、メモリバス３０およびＩ／Ｏバス３１のそれぞれに専用のバッファがそなえられ、これにより、メモリバス３０およびＩ／Ｏバス３１の両方のプロトコルに合わせたバッファサイズやポインタ制御方式を採用することができる。
【００５３】
またメモリバス３０およびＩ／Ｏバス３１のうちいずれかのプロトコル等が変更された場合においても、これらのリードデータバッファ１２，ライトデータバッファ１３，Ｉ／Ｏ送信バッファ１４およびＩ／Ｏ受信バッファ１５のうち、いずれかを変更後のプロトコルに対応するものに交換するだけでよく、構成に柔軟性や汎用性があり、又、経済的である。
【００５４】
また、バーチャルチャネル機能を実現した場合のパケットの追い越し制御にも対応することができる。
さらに、メモリバス３０が、リクエスト信号線３０ｃとライトデータ信号線３０ｂとリードデータ信号線３０ａとをそなえて構成され、これらの信号線において、それぞれをパケット形式でデータの送受信を行なうので、ＣＰＵ２１−１，２１−２やメモリ２２を制御するシステムコントローラ２３−１，２３−２を複数そなえて構成されるような大規模なシステムに本バスブリッジ１０ａを用いる場合に、制御部１６からリクエストを送信した後に、データの送信先の通知を受けてから、データを実際に処理するシステムコントローラ２３−１，２３−２に送信することにより、効率的にデータ転送をできる。
【００５５】
（Ｂ）第２実施形態の説明
図５は本発明の第２実施形態としてのバスブリッジ１０ｂの構成を模式的に示す図、図６は本発明の第２実施形態としてのバスブリッジ１０ｂにおける制御情報テーブルの構成例を示す図である。
本第２実施形態としてのバスブリッジ１０ｂ（１０ｂ−１，１０ｂ−２）は、第１実施形態のバスブリッジ１０ａと同様に、情報処理装置１（図２参照）におけるＩ／Ｏ機器２５とクロスバースイッチ２４との間において、Ｉ／Ｏバス３１とメモリバス３０との間に配設され、互いに転送されるデータのクロック周波数やデータ長等のプロトコルが違うこれらのＩ／Ｏバス３１とメモリバス３０との間においてデータ転送を行なうようになっている。
【００５６】
なお、以下、本第２実施形態においては、バスブリッジを示す符号としては、複数のバスブリッジのうち１つを特定する必要があるときには符号１０ｂ−１，１０ｂ−２を用いるが、任意のバスブリッジを指すときには符号１０ｂを用いる。
本第２実施形態のバスブリッジ１０ｂは、図５に示すように、第１実施形態のバスブリッジ１０ａに制御情報テーブル１１ｂをそなえて構成され、その他の部分は第１実施形態のバスブリッジ１０ａと同様に構成されている。なお、図中、既述の符号と同一の符号は同一もしくは略同一の部分を示しているので、その詳細な説明は省略する。
【００５７】
そして、本第２実施形態のバスブリッジ１０ｂにおいては、制御部１６によって送信される実行中のリードリクエスト（最大で８個）には、それぞれユニークなシーケンスＩＤが設定されるようになっており、このシーケンスＩＤによって各リードリクエストが管理されるようになっている。
さらに、本第２実施形態のバスブリッジ１０ｂにおいては、メモリバス３０から受信するリードデータも、そのパケットヘッダ部に上述したシーケンスＩＤを有している。又、本第２実施形態のバスブリッジ１０ｂにおいては、リードデータは、必ずしも制御部１６からリクエストが送信された順番でメモリバス３０から到着するものではなく、ＣＰＵ２１やメモリ２２による処理が完了したものから順次、メモリバス３０を介して受信するようになっており（Out Of Order）、リードデータバッファ格納処理部３３は、メモリバス３０から受信したリードデータを、そのシーケンスＩＤに基づいて制御情報テーブル１１ｂを参照しながら、順次、リードデータバッファ１２における所定位置に格納するようになっている。
【００５８】
制御テーブル１１ｂは、図６に示すように、８個のエントリのそれぞれにおいて、シーケンスＩＤ，メモリアドレスおよびリードデータバッファポインタ値（ＲＤバッファポインタ値；格納位置情報）が制御情報として相互に対応付けて構成されている。すなわち、制御情報テーブル１１ｂは、少なくとも、リクエストに対応付けたシーケンスＩＤと、リードデータバッファ１２におけるそのリクエストに対応するリードデータの格納位置に関する格納位置情報とを対応付けて管理している。
【００５９】
リードデータバッファポインタ値は、制御部１６がメモリバス３０にリードリクエストを送信する際に、そのリードリクエストに対して受信する予定のリードデータを格納するために予め確保される領域を示すポインタ値である。又、このリードデータバッファ１２のライトポインタは、インクリメンタルに動作するだけではなく、ランダムな値に制御することができるようになっており、これにより、アウト・オブ・オーダ実行に対応することができるのである。
【００６０】
そして、リードデータバッファ格納処理部３３は、リードデータの受信時に、そのリードデータに付加されているシーケンスＩＤを用いて制御情報テーブル１１ｂを参照して、そのシーケンスＩＤに対応するエントリからリードデータバッファ１２のポインタ値を読み出し、そのリードデータの格納位置とするようになっている。
すなわち、本第２実施形態のバスブリッジ１０ｂにおいては、制御テーブル１１ｂの各エントリは、各エントリに対応付けられたシーケンスＩＤによって特定されるようになっている。なお、図５に示す例においては、制御テーブル１１ｂを構成する８個のエントリに、１〜８までの自然数のシーケンスＩＤが設定されている。
【００６１】
そして、この制御テーブル１１ｂにおいて、使用されるエントリはシーケンスＩＤによって決定されるようになっている。
また、本第２実施形態のバスブリッジ１０ｂにおいても、Ｉ／Ｏ送信バッファ格納処理部１８が、リードデータバッファ１２に１パケット分のリードデータが揃った時に、Ｉ／Ｏ送信バッファ１４へデータを移動させるようになっている。
【００６２】
図７は本発明の第２実施形態としてのバスブリッジ１０ｂにおけるリードデータの転送時のデータの流れを示す図である。
本第２実施形態のバスブリッジ１０ｂにおいては、Ｉ／Ｏバス３１から受信したパケットがＩ／Ｏ受信バッファ１５に書き込まれ、受信データ処理部１７が、このＩ／Ｏ受信バッファ１５に書き込まれたパケットを取り出す。ここで、取り出したパケットがリードリクエストであった場合に、受信データ処理部１７は、そのヘッダを１２８ｂｙｔｅ単位に分割するとともに、リードデータのデータ長の累積計算を行なう。
【００６３】
制御部１６は、制御情報テーブル１１ｂにおけるシーケンスIDで示されるエントリに、受信データ処理部１７による累積計算に基づいて、リードデータ長に応じて予め確保される格納領域のリードデータバッファ１２のポインタ値や、その他に必要な情報を、制御情報として登録する。
制御部１６は、１２８ｂｙｔｅ単位に分割されたヘッダ情報とシーケンスIDとに基づいてリードリクエスト（リクエスト）を作成し、メモリバス３０に送信する。なお、本第２実施形態のバスブリッジ１０ｂにおいては、リードリクエストは、メモリアドレスとシーケンスＩＤとをそなえており、更に、このリードリクエストに応じてメモリバス３０から受信するリードデータにも、そのリードリクエストに付されていたシーケンスＩＤがそのヘッダに付されている。
【００６４】
メモリバス３０からリードデータを受信する場合には、リードデータバッファ格納処理部３３が、そのリードデータをヘッダ部分とデータ部分とに分解し、そのヘッダ部分からシーケンスＩＤを取得する。そして、リードデータバッファ格納処理部３３は、そのシーケンスＩＤに基づいて制御情報テーブル１１ｂを参照して、そのシーケンスIDで示されるエントリのリードデータバッファのポインタ値（格納位置情報）を取得する。
【００６５】
そして、リードデータバッファ格納処理部３３は、その取得したリードデータバッファポインタ値をライトポインタとして、リードデータバッファ１２におけるそのポインタ値によって示される位置にリードデータを書き込む。
Ｉ／Ｏ送信バッファ格納処理部１８は、Ｉ／Ｏバス３１を介して送信するパケット１つ分の容量（送信パケットサイズ条件）を満たすリードデータがリードデータバッファ１２に揃った時に、リードデータバッファ１２に格納されたこれらの１パケット分のリードデータを読み出し、送信データとしてその送信データの送信先アドレスとともにＩ／Ｏ送信バッファ１４に格納する。
【００６６】
その後、クレジットによりリードデータの送信が許可されると、本第２実施形態のバスブリッジ１０ｂは、Ｉ／Ｏバス３１にリードデータのパケットを送信するのである。
このように、本発明の第２実施形態としてのバスブリッジ１０ｂによれば、上述した第１実施形態と同様の作用効果を得ることができる他、制御部１６から送信されるリードリクエストにシーケンスＩＤが付されるとともに、制御情報テーブル１１ｂが、リクエストに対応付けたシーケンスＩＤと、リードデータバッファ１２におけるそのリクエストに対応するリードデータの格納位置に関する格納位置情報とを対応付けて管理するので、メモリバス３０からのリードデータが、リードリクエストを出した順番で送信されない場合（アウト・オブ・オーダ）においても、リードデータバッファ格納処理部３３が、受信したリードデータに付されたシーケンスＩＤに基づいて制御情報テーブル１１ｂを参照し、そのリードデータの格納場所を取得することにより、リードデータバッファ１２においては、正しい格納位置にリードデータを格納することができる。
【００６７】
すなわち、本第２実施形態のバスブリッジ１０ｂにおいては、メモリバス３０におけるリードデータのアウト・オブ・オーダ実行に対応することができる。
また、シーケンスIDごとにリードデータバッファ１２のポインタ値を制御情報テーブル１１ｂに記憶しておくことにより、メモリバス３０からのリードデータの順番に依存することなくリードデータバッファ１２に正しい順序でデータを格納することが可能になる。
【００６８】
さらに、メモリバス３０上を流れるリードデータの順序依存性がなくなるので、リードデータ信号線３０ａの順序規制による待ち状態が無くなり、メモリバス３０の実効スループットが向上する。
（Ｃ）第３実施形態の説明
図８は本発明の第３実施形態としてのバスブリッジ１０ｃにおける制御情報テーブルの構成例を示す図である。
【００６９】
本第３実施形態としてのバスブリッジ１０ｃ（１０ｃ−１，１０ｃ−２）は、第１実施形態のバスブリッジ１０ａと同様に、情報処理装置１（図２参照）におけるＩ／Ｏ機器２５とクロスバースイッチ２４との間において、Ｉ／Ｏバス３１とメモリバス３０との間に配設され、互いに転送されるデータのクロック周波数やデータ長等のプロトコルが違うこれらのＩ／Ｏバス３１とメモリバス３０との間においてデータ転送を行なうようになっている。
【００７０】
本第３実施形態のバスブリッジ１０ｃは、第２実施形態のバスブリッジ１０ｂの制御情報テーブル１１ｂに代えて制御情報テーブル１１ｃをそなえて構成され（図５参照）、その他の部分は第２実施形態のバスブリッジ１０ｂと同様に構成されている。
また、以下、本第３実施形態においては、バスブリッジを示す符号としては、複数のバスブリッジのうち１つを特定する必要があるときには符号１０ｃ−１，１０ｃ−２を用いるが、任意のバスブリッジを指すときには符号１０ｃを用いる。
【００７１】
本第３実施形態のバスブリッジ１０ｃにおいては、ライトデータバッファ１３のリードポインタは、インクリメンタルに動作するだけではなく、ランダムな値に制御することができるようになっており、これにより、ライトデータバッファ１３からからのデータのランダムな取り出しが可能になり、メモリバス３０からのデータ再送要求に対応することができる。
【００７２】
また、本第３実施形態のバスブリッジ１０ｃにおいては、第２実施形態のバスブリッジ１０ｂにおけるリードリクエストと同様に、制御部１６によって送信される実行中のライトリクエスト（最大で８個）には、それぞれユニークなシーケンスＩＤが設定されるようになっており、このシーケンスＩＤによって各リクエストが管理されるようになっている。
【００７３】
そして、本第３実施形態のバスブリッジ１０ｃにおいては、メモリバス３０に送信されるライトデータも、第２実施形態のバスブリッジ１０ｂにおけるリードデータと同様に、そのパケットヘッダ部に上述したシーケンスＩＤを有している。又、本第３実施形態のバスブリッジ１０ｃにおいては、制御部１６に、メモリバス３０から送信されるデータ送信許可や、データ再送要求が入力されるようになっている。
【００７４】
制御テーブル１１ｃは、図８に示すように、８個のエントリをそなえるとともに、これらの各エントリのそれぞれにおいて、シーケンスＩＤ，メモリアドレスおよびライトデータバッファポインタ値（ＷＤバッファポインタ値；格納位置情報）が制御情報として相互に対応付けて構成されている。すなわち、制御情報テーブル１１ｃは、少なくとも、リクエストに対応付けたシーケンスＩＤと、ライトデータバッファ１３におけるそのリクエストに対応するライトデータの格納位置に関する格納位置情報とを対応付けて管理している。
【００７５】
このライトデータバッファポインタ値は、受信データ処理部１７が、Ｉ／Ｏバス３０（Ｉ／Ｏ受信用信号線３１ａ）から受信され、Ｉ／Ｏ受信バッファ１５に格納されたライトリクエストパケットについて、そのデータ部分（ライトデータ）を格納したライトデータバッファ１３における位置を示す情報（位置情報，ポインタ値）であって、受信データ処理部１７がライトデータをライトデータバッファ１３に格納する際に特定されるようになっている。
【００７６】
本第３実施形態のバスブリッジ１０ｃにおいても、第２実施形態の制御情報テーブル１１ｂと同様に、制御テーブル１１ｃの各エントリは、各エントリに対応付けられたシーケンスＩＤによって特定されるようになっている。なお、図８に示す例においては、制御テーブル１１ｂを構成する８個のエントリに、１〜８までの自然数のシーケンスＩＤが設定されている。
【００７７】
そして、この制御テーブル１１ｃにおいて、使用されるエントリはシーケンスＩＤによって決定されるようになっている。
また、本第３実施形態のバスブリッジ１０ｃにおいては、受信データ処理部１７は、Ｉ／Ｏバス３０（Ｉ／Ｏ受信用信号線３１ａ）から受信されＩ／Ｏ受信バッファ１５に格納されたライトリクエストパケットについて、そのデータ部分（ライトデータ）をライトデータバッファ１３に格納するとともに、そのライトデータバッファ１３における格納位置（ライトデータバッファポインタ値）を、制御情報テーブル１１ｃに格納するようになっている。
【００７８】
ライトデータ送信部３４は、そのライトリクエストに付加されているシーケンスＩＤを用いて制御情報テーブル１１ｃを参照して、そのシーケンスＩＤに対応するエントリからライトデータバッファ１３のポインタ値を読み出し、ライトデータバッファ１３におけるそのライトデータの格納位置とし、その格納位置に格納されているライトデータをメモリバス３０（ライトデータ信号線３０ｂ）に送信するようになっている。
【００７９】
図９は本発明の第３実施形態としてのバスブリッジ１０ｃにおけるライトデータの転送時のデータの流れを示す図である。
本第３実施形態のバスブリッジ１０ｃにおいては、Ｉ／Ｏバス３１から受信したパケットがＩ／Ｏ受信バッファ１５に書き込まれ、受信データ処理部１７が、このＩ／Ｏ受信バッファ１５に書き込まれたパケットを取り出す。ここで、取り出したパケットがライトリクエストであった場合には、受信データ処理部１７は、そのヘッダを１２８ｂｙｔｅ単位に分割するとともに、リードデータのデータ長の累積計算を行ない、そのデータ部分（ライトデータ）をライトデータバッファ１３に格納する。
【００８０】
制御部１６は、制御情報テーブル１１ｃにおけるシーケンスIDで示されるエントリに、受信データ処理部１７による累積計算に基づいて、ライトデータバッファ１３におけるライトデータ格納位置を示すポインタ値や、その他に必要な情報を、制御情報として登録する。
制御部１６は、１２８ｂｙｔｅ単位に分割されたヘッダ情報とシーケンスIDとに基づいてライトリクエスト（リクエスト）を作成し、メモリバス３０に送信する。なお、本第３実施形態のバスブリッジ１０ｃにおいては、ライトリクエストは、メモリアドレスとシーケンスＩＤとをそなえており、更に、このライトリクエストに応じてメモリバス３０から受信するデータ送信許可や、データ再送要求にも、そのライトリクエストに付されていたシーケンスＩＤがそのヘッダに付されている。
【００８１】
メモリバス３０に対してライトデータを送信する場合には、例えば制御部１６が、メモリバス３０から受信したデータ送信許可やデータ再送要求からシーケンスＩＤを取得して、そのシーケンスＩＤに基づいて制御情報テーブル１１ｃを参照して、そのシーケンスＩＤに対応するライトデータバッファポインタ値（格納位置）を取得する。
ライトデータ送信部３４は、その取得したライトデータバッファポインタ値をリードポインタとして、ライトデータバッファ１３におけるそのポインタ値によって示される位置に格納されているライトデータを読み出し、ヘッダと合成してメモリバス３０（リードデータ信号線３０ａ）に送信する。
【００８２】
上述の如く構成された本発明の第３実施形態としてのバスブリッジ１０ｃにおけるライトデータ転送時の処理を図１０に示すシーケンスに従って説明する。なお、この図１０に示すシーケンス図は、本第３実施形態のバスブリッジ１０ｃとメモリ２２との間のメモリバス３０を介して行なわれるデータ転送を示している。
制御部１６は、１２８ｂｙｔｅ単位に分割したヘッダ情報に基づいてライトリクエストを作成し、メモリバス３０に送信する（図１０の矢印Ｃ１０参照）。これらのライトリクエストに対してメモリ２２からデータ送信許可が送信されると（図１０の矢印Ｃ２０参照）、制御部１６は、制御情報テーブル１１ｃにおいて、そのデータ送信許可に付されているシーケンスＩＤによって示されるエントリから、ライトデータバッファ１３のポインタ値を取得する。
【００８３】
ライトデータ送信部３４は、そのポインタ値をリードポインタとしてライトデータバッファ１３からライトデータを読み出し、そのライトデータをバスブリッジ１０ｃからライトデータ信号線３０ｂを介してメモリ２２に対して送信する（図１０の矢印Ｃ３０参照）。
また、何らかの理由でメモリ２２がライトデータを受信できなかった場合には、メモリ２２は、バスブリッジ１０ｃに対してデータ再送要求を行なう（図１０の矢印Ｃ４０参照）。ライトデータ送信部３４は、制御情報テーブル１１ｃにおける、このデータ再送要求に付されているシーケンスＩＤによって示されるエントリから、ライトデータバッファ１３のポインタ値を、再度取得し、そのポインタ値をリードポインタとしてライトデータバッファ１３からライトデータを読み出し、そのライトデータをバスブリッジ１０ｃからライトデータ信号線３０ｂを介してメモリ２２に対して再送信する（図１０の矢印Ｃ５０参照）。
【００８４】
メモリ２２は、ライトデータを正しく受信した場合には、データ完了通知をバスブリッジ１０ｃに対して送信して（図１０の矢印Ｃ６０参照）、バスブリッジ１０ｃにおいては、そのデータ転送完了通知により、ライトデータバッファ１３と制御情報テーブル１１ｃを開放して処理を完了する。
このように、本発明の第３実施形態としてのバスブリッジ１０ｃよれば、上述した第１実施形態と同様の作用効果を得ることができる他、制御部１６から送信されるライトリクエストにシーケンスＩＤが付されるとともに、制御情報テーブル１１ｃが、リクエストに対応付けたシーケンスＩＤと、ライトデータバッファ１３におけるそのリクエストに対応するライトデータの格納位置に関する格納位置情報とを対応付けて管理するので、例えばデータ再送要求が行なわれることにより、メモリバス３０からのデータ送信許可が制御部１６から送信したライトリクエストの順番で送信されない場合においても、ライトデータ送信部３４が、受信したデータ送信許可やデータ再送要求に付されたシーケンスＩＤに基づいて制御情報テーブル１１ｃを参照し、そのライトデータの格納場所を取得することにより、メモリバス３０からのデータ送信許可やデータ再送要求の順番で、ライトデータバッファ１３からライトデータを読み出して送信することができる。
【００８５】
すなわち、本第３実施形態のバスブリッジ１０ｃにおいては、シーケンスＩＤを用いてライトデータバッファ１３からライトデータをランダムに取り出すことが可能となり、これにより、メモリバス３０でのシーケンスＩＤを用いた再送機能やアウト・オブ・オーダ実行に対応することができる。
また、制御情報テーブル１１ｃにおいて、リクエスト（シーケンスＩＤ）とライトデータとが対応付けられているので、制御情報テーブル１１ｃからエントリを削除することによりライトデータが読み出されないようにすることができ、エラー発生時にデータを空読みして削除する必要がない。
【００８６】
（Ｄ）第４実施形態の説明
図１１は本発明の第４実施形態としてのバスブリッジ１０ｄの構成を模式的に示す図である。
本第４実施形態としてのバスブリッジ１０ｄ（１０ｄ−１，１０ｄ−２）は、第１実施形態のバスブリッジ１０ａと同様に、情報処理装置１（図２参照）におけるＩ／Ｏ機器２５とクロスバースイッチ２４との間において、Ｉ／Ｏバス３１とメモリバス３０との間に配設され、互いに転送されるデータのクロック周波数やデータ長等のプロトコルが違うこれらのＩ／Ｏバス３１とメモリバス３０との間においてデータ転送を行なうようになっている。
【００８７】
なお、以下、本第４実施形態においては、バスブリッジを示す符号としては、複数のバスブリッジのうち１つを特定する必要があるときには符号１０ｄ−１，１０ｄ−２を用いるが、任意のバスブリッジを指すときには符号１０ｄを用いる。
本第４実施形態のバスブリッジ１０ｄは、図１１に示すように、第１実施形態のバスブリッジ１０ａの制御情報テーブル１１ａに代えて制御情報テーブル１１ｄをそなえて構成され、その他の部分は第１実施形態のバスブリッジ１０ａと同様に構成されている。なお、図中、既述の符号と同一の符号は同一もしくは略同一の部分を示しているので、その詳細な説明は省略する。
【００８８】
制御情報テーブル１１ｄは、第２実施形態のバスブリッジ１０ｂの制御情報テーブル１１ｂと、第３実施形態のバスブリッジ１０ｃの制御情報テーブル１１ｃとの機能を兼ね備えるものである。
図１２は本発明の第４実施形態としてのバスブリッジ１０ｄにおける制御情報テーブル１１ｄの構成例を示す図である。
【００８９】
制御情報テーブル１１ｄは、図１２に示すように、８個のエントリをそなえるとともに、これらの各エントリのそれぞれにおいて、シーケンスＩＤ，メモリアドレス，ライトデータバッファポインタ値もしくはリードデータバッファポインタ値（ＷＤ／ＲＤバッファポインタ値；格納位置情報）および識別ビット（識別情報）が制御情報として相互に対応付けて構成されている。
【００９０】
なお、識別ビットは、そのトランザクションがリードリクエスト（リード処理）に関するものであるかライトリクエスト（ライト処理）に関するものかを識別するための識別情報であって、例えば、リードリクエストついてのものには“１”が、又、ライトリクエストについてのものには“０”が登録されるようになっている。
すなわち、制御情報テーブル１１ｄは、少なくとも、リクエストに対応付けたシーケンスＩＤと、ライトデータバッファ１３におけるそのリクエストに対応するライトデータの格納位置に関する格納位置情報もしくはリードデータバッファ１２におけるそのリクエストに対応するリードデータの格納位置に関する格納位置情報、および識別ビットとを対応付けて管理している。
【００９１】
図１３は本発明の第４実施形態としてのバスブリッジ１０ｄにおけるリードデータおよびライトデータの転送時のデータの流れを示す図であり、第２実施形態のバスブリッジ１０ｂにおけるリードデータの転送時のデータの流れ（図７参照）と、第３実施形態のバスブリッジ１０ｃにおけるライトデータの転送時のデータの流れ（図９参照）とを併せて示すものである。
【００９２】
本第４実施形態のバスブリッジ１０ｄにおいては、Ｉ／Ｏバス３１から受信したパケットがＩ／Ｏ受信バッファ１５に書き込まれ、受信データ処理部１７が、このＩ／Ｏ受信バッファ１５に書き込まれたパケットを取り出す。
ここで、取り出したパケットがリードリクエストであった場合には、受信データ処理部１７は、そのヘッダを１２８ｂｙｔｅ単位に分割するとともに、リードデータのデータ長の累積計算を行なう。
【００９３】
また、制御部１６は、制御情報テーブル１１ｄにおけるシーケンスIDで示されるエントリに、受信データ処理部１７による累積計算に基づいて、リードデータ長に応じて予めリードデータバッファ１２に確保される格納領域を示すポインタ値や、その他に必要な情報を、制御情報として制御情報テーブル１１ｄに登録し、更に、そのトランザクションがリードであることを示す識別ビット“１”をそのシーケンスＩＤに対応させて登録する。
【００９４】
一方、取り出したパケットがライトリクエストであった場合には、受信データ処理部１７は、そのヘッダを１２８ｂｙｔｅ単位に分割するとともに、ライトデータのデータ長の累積計算を行なうとともに、そのデータ部分（ライトデータ）をライトデータバッファ１３に格納する。
制御部１６は、制御情報テーブル１１ｄにおけるシーケンスIDで示されるエントリに、受信データ処理部１７による累積計算に基づいて、ライトデータバッファ１３におけるライトデータ格納位置を示すポインタ値や、その他に必要な情報を、制御情報として登録する。又、この際に、制御部１６は、そのトランザクションがライトであることを示す識別ビット“０”をそのシーケンスＩＤに対応させて登録する。
【００９５】
そして、本第４実施形態としてのバスブリッジ１０ｄにおいては、制御部１６が、メモリバス３０から受信するリードデータやデータ送信許可／データ再送要求のヘッダからシーケンスＩＤを取得し、これらのシーケンスＩＤに基づいて制御情報テーブル１１を参照し、識別ビットに基づいて、そのシーケンスＩＤにかかる処理がリードに係る処理であるか、ライトに係る処理であるかを判断する。
【００９６】
そのシーケンスＩＤにかかる処理がリードに係る処理である場合には、図７に示したフローに従って処理を行ない、又、そのシーケンスＩＤにかかる処理がライトに係る処理である場合には、図９に示したフローに従って処理を行なうのである。
このように、本発明の第４実施形態としてのバスブリッジ１０ｄによれば、上述した第１実施形態〜第３実施形態と同様の作用効果を得ることができる他、リードとライトとの両方のトランザクションで制御情報テーブル１１ｄを供用することができ、その回路規模の削減や実装スペースの低減等を実現することができる。
【００９７】
（Ｅ）その他
そして、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上述した各実施形態においては、制御情報テーブル１１ａ，１１ｂ，１１ｃ，１１ｄはそれぞれ８つのエントリをそなえて構成されているが、これに限定されるものではなく、制御情報テーブルを７以下もしくは９以上の数のエントリをそなえて構成してもよい。
【００９８】
また、上述した各実施形態においては、２つのＣＰＵ２１−１，２１−２，２つのシステムコントローラ２３−１，２３−２，４つのメモリ２２−１〜２２−４，および４つのＩ／Ｏ機器２５をそなえて構成された情報処理装置１に、本発明の各実施形態のバスブリッジ１０ａ，１０ｂ，１０ｃ，１０ｄをそれぞれ２つそなえた例について説明しているが、これに限定されるものではなく、これらのＣＰＵ２１，システムコントローラ２３，メモリ２２，Ｉ／Ｏ機器２５およびバスブリッジ１０ａ，１０ｂ，１０ｃ，１０ｄを、それぞれ上述した以外の数そなえて構成してもよく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
【００９９】
なお、本発明の各実施形態が開示されていれば、本発明を当業者によって実施・製造することが可能である。
（Ｆ）付記
（付記１）メモリとの間でリクエスト，ライトデータおよびリードデータをそれぞれパケットとして通信可能に接続され、リクエスト信号線とライトデータ信号線とリードデータ信号線とをそなえるメモリバスと、入出力機器との間で、送信データと当該送信データの送信先アドレスとを包含するパケットおよび受信データと当該受信データの受信先アドレスとを包含するパケットとして、該送信データおよび該受信データをそれぞれ送信もしくは受信され、送信用信号線と受信用信号線とをそなえる入出力バスとの間において、データの転送を行なうデータ転送装置であって、
該入出力機器から該受信用信号線を介して受信する該受信データを格納可能な入出力受信バッファと、
該入出力機器に対して該送信用信号線を介して送信する該送信データを格納可能な入出力送信バッファと、
該メモリに対して該ライトデータ信号線を介して送信する該ライトデータを格納可能なライトデータバッファと、
該メモリから該リードデータ信号線を介して受信する該リードデータを格納可能なリー
ドデータバッファと、
該メモリへのアクセスに応じて形成されるエントリを複数そなえる制御情報テーブルと、
該入出力受信バッファに格納された該受信データを該ライトデータバッファに格納するライトデータバッファ格納処理部と、
該ライトデータバッファに格納された該受信データを該ライトデータとして該ライトデータ信号線を介して該メモリに送信するライトデータ送信部と、
該メモリから受信した該リードデータを該リードデータバッファに格納するリードデータバッファ格納処理部と、
該リードデータバッファに格納された該リードデータを読み出し、該送信データとして当該送信データの送信先アドレスとともに該入出力送信バッファに格納する入出力送信バッファ格納処理部と、
該制御情報テーブルに基づいて、該ライトデータ送信部および該リードデータバッファ格納処理部による該メモリへのアクセス制御を行なう制御部とをそなえることを特徴とするデータ転送装置。
【０１００】
（付記２）  該入出力機器から該メモリへのデータ転送を行なうライト処理時に、
該ライトデータ送信部が、該ライトデータバッファに格納された該受信データをメモリアクセスサイズに分割して作成された該ライトデータを、該ライトデータ信号線を介して送信することを特徴とする、付記１記載のデータ転送装置。
（付記３）  該制御情報テーブルが、少なくとも、該リクエストに対応付けたシーケンスＩＤと、該ライトデータバッファにおける該リクエストに対応する該ライトデータが格納されている格納位置情報とを対応付けて管理し、
該制御部が、該メモリバスにデータ送信を行なう際に、該制御情報テーブルのエントリに書き込まれている前記ライトデータバッファの格納位置情報を、該シーケンスＩＤをポインタとして読み出し、該格納位置情報に基づいて該ライトデータバッファから該ライトデータの取り出しを行なうことを特徴とする、付記２記載のデータ転送装置。
【０１０１】
（付記４）  該メモリから該入出力機器へのデータ転送を行なうリード処理時に、
該入出力送信バッファ格納処理部が、該リードデータバッファに格納された複数の該リードデータの合計データ量が送信パケットサイズ条件を満たした時に、該リードデータバッファに格納された該リードデータを読み出し、該送信データとして当該送信データの送信先アドレスとともに該入出力送信バッファに格納することを特徴とする、付記１〜付記３のいずれか１項に記載のデータ転送装置。
【０１０２】
（付記５）  該制御情報テーブルが、少なくとも、該リクエストに対応付けたシーケンスＩＤと、該リードデータバッファにおける該リクエストに対応する該リードデータの格納位置に関する格納位置情報とを対応付けて管理し、
該制御部が、該メモリバスから該リードデータの受信を行なう際に、該制御情報テーブルのエントリに書き込まれている前記リードデータバッファの格納位置情報を、該シーケンスＩＤをポインタとして読み出し、該格納位置情報に基づいて該リードデータを該リードデータバッファに格納することを特徴とする、付記４記載のデータ転送装置。
【０１０３】
（付記６）  該制御情報テーブルが、前記リードデータバッファの格納位置情報と前記ライトデータバッファの格納位置情報とを同一フィールドに格納するとともに、該リード処理か該ライト処理かを識別するための識別情報を該リクエストに対応させて格納することを特徴とする、付記５記載のデータ転送装置。
（付記７）  データの読み出しおよび格納が可能なメモリと、
リクエスト信号線とライトデータ信号線とリードデータ信号線とをそなえ、該メモリとの間でリクエスト，ライトデータおよびリードデータをそれぞれパケットとして通信可能
に接続されるメモリバスと、
送信用信号線と受信用信号線とをそなえ、入出力機器との間で、送信データと当該送信データの送信先アドレスとを包含するパケットおよび受信データと当該受信データの受信先アドレスとを包含するパケットとして、該送信データおよび該受信データをそれぞれ送受信される入出力バスと、
該入出力機器から該受信用信号線を介して受信する該受信データを格納可能な入出力受信バッファと、
該入出力機器に対して該送信用信号線を介して送信する該送信データを格納可能な入出力送信バッファと、
該メモリに対して該ライトデータ信号線を介して送信する該ライトデータを格納可能なライトデータバッファと、
該メモリから該リードデータ信号線を介して受信する該リードデータを格納可能なリードデータバッファと、
該メモリへのアクセスに応じて形成されるエントリを複数そなえる制御情報テーブルと、
該入出力受信バッファに格納された該受信データを該ライトデータバッファに格納するライトデータバッファ格納処理部と、
該ライトデータバッファに格納された該受信データを該ライトデータとして該ライトデータ信号線を介して該メモリに送信するライトデータ送信部と、
該メモリから受信した該リードデータを該リードデータバッファに格納するリードデータバッファ格納処理部と、
該リードデータバッファに格納された該リードデータを読み出し、該送信データとして当該送信データの送信先アドレスとともに該入出力送信バッファに格納する入出力送信バッファ格納処理部と、
該制御情報テーブルに基づいて、該ライトデータ送信部および該リードデータバッファ格納処理部による該メモリへのアクセス制御を行なう制御部とをそなえることを特徴とする情報処理装置。
【０１０４】
（付記８）  該入出力機器から該メモリへのデータ転送を行なうライト処理時に、
該ライトデータ送信部が、該ライトデータバッファに格納された該受信データをメモリアクセスサイズに分割して作成された該ライトデータを、該ライトデータ信号線を介して送信することを特徴とする、付記７記載の情報処理装置。
（付記９）  該制御情報テーブルが、少なくとも、該リクエストに対応付けたシーケンスＩＤと、該ライトデータバッファにおける該リクエストに対応する該ライトデータが格納されている格納位置情報とを対応付けて管理し、
該制御部が、該メモリバスにデータ送信を行なう際に、該制御情報テーブルのエントリに書き込まれている前記ライトデータバッファの格納位置情報を、該シーケンスＩＤをポインタとして読み出し、該格納位置情報に基づいて該ライトデータバッファから該ライトデータの取り出しを行なうことを特徴とする、付記８記載の情報処理装置。
【０１０５】
（付記１０）  該メモリから該入出力機器へのデータ転送を行なうリード処理時に、
該入出力送信バッファ格納処理部が、該リードデータバッファに格納された複数の該リードデータの合計データ量が送信パケットサイズ条件を満たした時に、該リードデータバッファに格納された該リードデータを読み出し、該送信データとして当該送信データの送信先アドレスとともに該入出力送信バッファに格納することを特徴とする、付記７〜付記９のいずれか１項に記載の情報処理装置。
【０１０６】
（付記１１）  該制御情報テーブルが、少なくとも、該リクエストに対応付けたシーケンスＩＤと、該リードデータバッファにおける該リクエストに対応する該リードデータの格納位置に関する格納位置情報とを対応付けて管理し、
該制御部が、該メモリバスから該リードデータの受信を行なう際に、該制御情報テーブルのエントリに書き込まれている前記リードデータバッファの格納位置情報を、該シーケンスＩＤをポインタとして読み出し、該格納位置情報に基づいて該リードデータを該リードデータバッファに格納することを特徴とする、付記１０記載の情報処理装置。
【０１０７】
（付記１２）  該制御情報テーブルが、前記リードデータバッファの格納位置情報と前記ライトデータバッファの格納位置情報とを同一フィールドに格納するとともに、該リード処理か該ライト処理かを識別するための識別情報を該リクエストに対応させて格納することを特徴とする、付記１１記載の情報処理装置。
【産業上の利用可能性】
【０１０８】
互いに異なるプロトコルを有する２つのバス間におけるデータ転送に適用することができる。
【図面の簡単な説明】
【０１０９】
【図１】本発明の第１実施形態としてのバスブリッジ（データ転送装置）の構成を模式的に示す図である。
【図２】バスブリッジをそなえた情報処理装置の構成を模式的に示す図である。
【図３】本発明の第１実施形態としてのバスブリッジにおけるライトデータ転送時の処理を説明するためのシーケンス図である。
【図４】本発明の第１実施形態としてのバスブリッジにおけるリードデータ転送時の処理を説明するためのシーケンス図である。
【図５】本発明の第２実施形態としてのバスブリッジの構成を模式的に示す図である。
【図６】本発明の第２実施形態としてのバスブリッジにおける制御情報テーブルの構成例を示す図である。
【図７】本発明の第２実施形態としてのバスブリッジにおけるリードデータの転送時のデータの流れを示す図である。
【図８】本発明の第３実施形態としてのバスブリッジにおける制御情報テーブルの構成例を示す図である。
【図９】本発明の第３実施形態としてのバスブリッジにおけるライトデータの転送時のデータの流れを示す図である。
【図１０】本発明の第３実施形態としてのバスブリッジにおけるライトデータ転送時の処理を説明するためのシーケンス図である。
【図１１】本発明の第４実施形態としてのバスブリッジの構成を模式的に示す図である。
【図１２】本発明の第４実施形態としてのバスブリッジにおける制御情報テーブルの構成例を示す図である。
【図１３】本発明の第４実施形態としてのバスブリッジにおけるリードデータおよびライトデータの転送時のデータの流れを示す図である。
【図１４】従来のバスブリッジの構成を模式的に示す図
【図１５】従来のバスブリッジをそなえた情報処理装置の構成を模式的に示す図である。
【符号の説明】
【０１１０】
１    情報処理装置
１０ａ，１０ｂ，１０ｃ，１０ｄ，１０ａ−１，１０ａ−２    バスブリッジ
１１ａ，１１ｂ，１１ｃ，１１ｄ    制御情報テーブル
１２    リードデータバッファ
１３    ライトデータバッファ
１４    Ｉ／Ｏ送信バッファ（入出力送信バッファ）
１５    Ｉ／Ｏ受信バッファ（入出力受信バッファ）
１６    制御部
１７    受信データ処理部（ライトデータバッファ格納処理部）
１８    Ｉ／Ｏ送信バッファ格納処理部（入出力送信バッファ格納処理部）
１９ａ，１９ｂ，１９ｃ，１９ｄ  バス
２１，２１−１，２１−２    ＣＰＵ
２２，２２−１，２２−２，２２−３，２２−４    メモリ
２３，２３−１，２３−２    システムコントローラ
２４    クロスバースイッチ
２５    Ｉ／Ｏ機器（入出力機器）
３０    メモリバス
３０ａ    リードデータ信号線
３０ｂ    ライトデータ信号線
３０ｃ    リクエスト信号線
３１    Ｉ／Ｏバス（入出力バス）
３１ａ    Ｉ／Ｏ受信用信号線（受信用信号線）
３１ｂ    Ｉ／Ｏ送信用信号線（送信用信号線）
３３    リードデータバッファ格納処理部
３４    ライトデータ送信部
【図１】
2006293969.tif 000003
【図２】
2006293969.tif 000004
【図３】
2006293969.tif 000005
【図４】
2006293969.tif 000006
【図５】
2006293969.tif 000007
【図６】
2006293969.tif 000008
【図７】
2006293969.tif 000009
【図８】
2006293969.tif 000010
【図９】
2006293969.tif 000011
【図１０】
2006293969.tif 000012
【図１１】
2006293969.tif 000013
【図１２】
2006293969.tif 000014
【図１３】
2006293969.tif 000015
【図１４】
2006293969.tif 000016
【図１５】
2006293969.tif 000017