(57)【要約】  【課題】  システムバスとローカルバスの間で高速にデータを転送するデータ転送装置を提供する。  【解決手段】  バスブリッジ１０１がシステムバス１３２とローカルバス１３７との間に接続され、システムバス１３２上で、ＣＰＵ１３３とＩ／Ｏ機器１３６と主記憶装置１３５との間で転送されるデータを連想メモリ制御部１０５を介して連想メモリ１０６に保持し、ローカルバス１３７上のＩ／Ｏ機器１３８からこのデータへのアクセスが生じた場合、連想メモリ１０６からＩ／Ｏ機器１３８にデータを転送する。従って、Ｉ／Ｏ機器１３８から主記憶装置１３５へのデータ転送要求が生じたとき、このデータが連想メモリ１０６に保持されていればシステムバス１３２上でバスサイクルが発生しないので、高速にデータを転送することができる。【選択図】  図１
2008171436.tif 000002
【特許請求の範囲】
【請求項１】
連想メモリと、
前記連想メモリのデータ入出力を制御するコントローラを備え、
前記コントローラは、
システムバス上のデバイス間で転送されているアドレスとデータを取り込んで前記連想メモリに複製記憶し、
ローカルバスからのデータ転送要求を受け付け、該データ転送要求の示す転送元アドレスが前記連想メモリに記憶したアドレスに含まれている場合は、前記連想メモリから該当するデータを読み出して前記ローカルバスに転送することを特徴とするデータ転送装置。
【請求項２】
前記コントローラは、前記システムバスにおいて、あるデバイスから他のデバイスへのデータの書き込みサイクルが発生していることを判別すれば、前記デバイス間で転送されるアドレスとデータを取り込んで前記連想メモリに複製記憶する請求項１に記載のデータ転送装置。
【請求項３】
前記コントローラは、前記システムバス上の少なくとも一つのデバイスコントローラのデータ出力イネーブル信号線をモニタし、該データ出力イネーブル信号線がアサートされたときに、前記システムバス上で転送されるアドレスとデータを取り込んで前記連想メモリに複製記憶する請求項１に記載のデータ転送装置。
【請求項４】
前記コントローラは、前記システムバス上の少なくとも一つのデバイスコントローラのデータ出力ストローブ信号線をモニタし、該データ出力ストローブ信号線がアサートされたときに、前記システムバス上で転送されるアドレスとデータを取り込んで前記連想メモリに複製記憶する請求項１に記載のデータ転送装置。
【請求項５】
連想メモリと、
前記連想メモリのデータ入出力を制御するコントローラを備え、
前記コントローラは、
ローカルバス上のデバイス間で転送されているアドレスとデータを取り込んで前記連想メモリに複製記憶し、
システムバスからのデータ転送要求を受け付け、該データ転送要求の示す転送元アドレスが前記連想メモリに記憶したアドレスに含まれている場合は、前記連想メモリから該当するデータを読み出して前記システムバスに転送することを特徴とするデータ転送装置。
【請求項６】
前記コントローラは、前記ローカルバスにおいて、あるデバイスから他のデバイスへのデータの書き込みサイクルが発生していることを判別すれば、前記デバイス間で転送されるアドレスとデータを取り込んで前記連想メモリに複製記憶する請求項５に記載のデータ転送装置。
【請求項７】
前記コントローラは、前記ローカルバス上の少なくとも一つのデバイスコントローラのデータ出力イネーブル信号線をモニタし、該データ出力イネーブル信号線がアサートされたときに、前記ローカルバス上で転送されるアドレスとデータを取り込んで前記連想メモリに複製記憶する請求項５に記載のデータ転送装置。
【請求項８】
前記コントローラは、前記ローカルバス上の少なくとも一つのデバイスコントローラのデータ出力ストローブ信号線をモニタし、該データ出力ストローブ信号線がアサートされたときに、前記ローカルバス上で転送されるアドレスとデータを取り込んで前記連想メモリに複製記憶する請求項５に記載のデータ転送装置。
【請求項９】
連想メモリと、
前記連想メモリのデータ入出力を制御するコントローラを備え、
前記コントローラは、
システムバス上のデバイス間で転送されているアドレスとデータを取り込んで前記連想メモリに複製記憶し、
ローカルバス上のデバイス間で転送されているアドレスとデータを取り込んで前記連想メモリに複製記憶し、
前記ローカルバスからのデータ転送要求を受け付け、該データ転送要求の示す転送元アドレスが前記連想メモリに記憶したアドレスに含まれている場合は、前記連想メモリから該当するデータを読み出して前記ローカルバスに転送し、
前記システムバスからのデータ転送要求を受け付け、該データ転送要求の示す転送元アドレスが前記連想メモリに記憶したアドレスに含まれている場合は、前記連想メモリから該当するデータを読み出して前記システムバスに転送することを特徴とするデータ転送装置。
【請求項１０】
システムバスとローカルバスとの間のデータ入出力を制御する方法であって、
前記システムバス上のデバイス間で転送されているアドレスとデータを取り込んで複製記憶するバッファリング処理と、
前記ローカルバスからのデータ転送要求を受け付け、該データ転送要求の示す転送元アドレスが前記バッファリング処理において記憶したアドレスに含まれている場合は、該当するデータを読み出して前記ローカルバスに転送する処理を備えたことを特徴とするデータ転送方法。
【請求項１１】
システムバスとローカルバスとの間のデータ入出力を制御する方法であって、
前記ローカルバス上のデバイス間で転送されているアドレスとデータを取り込んで複製記憶するバッファリング処理と、
前記システムバスからのデータ転送要求を受け付け、該データ転送要求の示す転送元アドレスが前記バッファリング処理において記憶したアドレスに含まれている場合は、該当するデータを読み出して前記システムバスに転送する処理を備えたことを特徴とするデータ転送方法。
【請求項１２】
システムバスとローカルバスとの間のデータ入出力を制御する方法であって、
前記システムバス上のデバイス間で転送されているアドレスとデータを取り込んで複製記憶する第１のバッファリング処理と、
前記ローカルバス上のデバイス間で転送されているアドレスとデータを取り込んで複製記憶する第２のバッファリング処理と、
前記ローカルバスからのデータ転送要求を受け付け、該データ転送要求の示す転送元アドレスが前記第１のバッファリング処理において記憶したアドレスに含まれている場合は、該当するデータを読み出して前記ローカルバスに転送する第１のデータ転送処理と、
前記システムバスからのデータ転送要求を受け付け、該データ転送要求の示す転送元アドレスが前記第２のバッファリング処理において記憶したアドレスに含まれている場合は、該当するデータを読み出して前記システムバスに転送する第２のデータ転送処理を備えたことを特徴とするデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ転送装置および方法に関するものである。特に、ローカルバスからシステムバス上の記憶装置のデータへのアクセス、システムバス上からローカルバス上の記憶装置のデータへのアクセスにおけるデータ転送を効率化したデータ転送装置および方法に関する。
【背景技術】
【０００２】
従来、ＣＰＵの接続したシステムバスとＩ／Ｏ機器の接続したローカルバスの間でのデータ転送は、バスブリッジを介して行い、Ｉ／Ｏ機器からシステムバス上の主記憶装置にあるデータにアクセスする場合、バスブリッジにリクエストを出し、バスブリッジがシステムバスの使用権を獲得し、システムバス上で主記憶装置に対してリードサイクルを発生させ、データを取得後、ローカルバスにデータを転送していた。
【０００３】
次に、従来のデータ転送装置について、図を用いて詳しく説明する。
【０００４】
図７は従来のデータ転送装置の概念を示した概略構成図である。図７において、１はＣＰＵ、２はバス調停部、３は主記憶装置、４はＩ／Ｏ機器、５はバスブリッジ、６はブリッジ制御部、７はバス調停部、８はアドレス・データ制御部である。ＣＰＵ１とバス調停部２と主記憶装置３はシステムバス上に設けられ、Ｉ／Ｏ機器４はローカルバス上に設けられている。
【０００５】
図８は上述した従来のデータ転送装置でバスブリッジを介してローカルバス上のＩ／Ｏ機器４が主記憶装置３からデータを転送する場合のタイミングチャートを示す図である。一例として主記憶装置３内のアドレス4000からデータを転送する場合を示した。
【０００６】
図８において、５１から５６まではシステムバスの状態を示しており、５１はシステムバスの使用権の状態、５２はバスブリッジ５からバス調停部２へのリクエスト信号線の状態、５３はバス調停部２からバスブリッジ５へのアクノリッジ信号線の状態、５４はシステムバスのアドレス線の状態、５５はシステムバスのデータ線の状態、５６はシステムバスのリード／ライト線の状態を示している。５７から６１まではローカルバスの状態を示しており、５７はＩ／Ｏ機器４からバス調停部７へのリクエスト信号線の状態、５８はバス調停部７からＩ／Ｏ機器４へのアクノリッジ信号線の状態、５９はローカルバスのアドレス線の状態、６０はローカルバスのデータ線の状態、６１はローカルバスのリード／ライト線の状態を示している。
【０００７】
図８のタイミングチャートにおいて、Ｉ／Ｏ機器４からデータ転送要求が発生するのに先立って、７１から７８に示すように、システムバス上でＣＰＵ１が主記憶装置３内のアドレス4000、4004、4008にデータをライトしている動作が行われているものとする。
【０００８】
このシステムバス９において主記憶装置３に対するデータのライト動作が行われている間に、Ｉ／Ｏ機器４から主記憶装置３内のアドレス4000へのデータリード要求が発生した場合の動作を説明する。
【０００９】
まず、７９に示すように、リクエスト信号線がアサートされ、バス調停部７に対してバス使用権が要求される。次に、８０に示すように、アクノリッジ信号線がバス調停部７によってアサートされ、次に、８１に示すように、バス調停部７はバス調停部２に対してリクエスト信号線をアサートしてシステムバスの使用権を要求する。また、８２に示すように、Ｉ／Ｏ機器４によってローカルバスにアドレス4000がドライブされる。
【００１０】
ここで、バス調停部２はシステムバスの使用権を付与するタイミングを調整する。バス調停部２は、システムバス上で実行されているデータ転送が終了するまでバス調停部７に対するアクノリッジ信号線をアサートせず、ＣＰＵ１がデータ転送を終了してから８３に示すように、アクノリッジ信号線をアサートしてバスブリッジ５に対してバスの使用を許可する。次に、８４に示すようにアドレス・データ制御部８からアドレス4000がシステムバスにドライブされ、８５に示すように、主記憶装置４からデータが送られる。次に、８６に示すように、このデータがローカルバスにドライブされてＩ／Ｏ機器４が受け取ることにより、データ転送が終了する。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、上記従来のデータ転送装置では、システムバスが使用中であれば、バス調停部２およびバス調停部７の連携によるバス調停が行われるため、バスブリッジ５がシステムバスの使用権を得て、システムバス上の主記憶装置３にアクセスし、主記憶装置３からデータをバスブリッジ５に転送するまでに遅延時間が発生し、データ転送が遅くなるという課題がある。
【００１２】
本発明は上記課題を解決するため、従来のようなバス調停実行によるバス使用権の取得によらず、ローカルバスからシステムバス上の記憶装置内のデータへのアクセスおよびシステムバス上からローカルバス上の記憶装置内のデータへのアクセスにおけるデータ転送を効率化したデータ転送装置および方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記の課題を解決するため、本発明の第１のデータ転送装置は、システムバスとローカルバスとの間に接続された連想メモリと、前記連想メモリのデータ入出力を制御するコントローラを備え、前記コントローラは、前記システムバス上のデバイス間で転送されているアドレスとデータを取り込んで前記連想メモリに複製記憶し、前記ローカルバスからのデータ転送要求を受け付け、該データ転送要求の示す転送元アドレスが前記連想メモリに記憶したアドレスに含まれている場合は、前記連想メモリから該当するデータを読み出して前記ローカルバスに転送することを特徴とする。
【００１４】
上記構成により、システムバス上のデバイス間で転送されているアドレスとデータを取り込んで連想メモリに複製記憶しておくので、ローカルバスからのデータ転送要求における指定アドレスが当該連想メモリ内に取り込んだデータに対応するものであれば、システムバスの記憶装置のデータに代えて連想メモリ内のデータをローカルバスに転送することができる。つまり、直接システムバスにアクセスする必要がなく、バス調停に起因するデータ転送の遅延が発生せず、データ転送の効率化を図ることができる。
【００１５】
また、本発明のデータ転送装置において、前記コントローラは、前記システムバスにおいて、あるデバイスから他のデバイスへのデータの書き込みサイクルが発生していることを判別すれば、前記デバイス間で転送されるアドレスとデータを取り込んで前記連想メモリに複製記憶することが好ましい。
【００１６】
上記構成により、本発明のデータ転送装置の連想メモリにおいて取り込むべきデータを特定し、取り込むタイミングをシステムバスにおけるあるデバイスから他のデバイスへのデータの書き込みサイクルが発生のタイミングとすることができる。
【００１７】
また、本発明のデータ転送装置において、前記コントローラは、前記システムバス上の少なくとも一つのデバイスコントローラのデータ出力イネーブル信号線をモニタし、該データ出力イネーブル信号線がアサートされたときに、前記システムバス上で転送されるアドレスとデータを取り込んで前記連想メモリに複製記憶することが好ましい。
【００１８】
上記構成により、本発明のデータ転送装置の連想メモリにおいて取り込むべきデータを特定し、取り込むタイミングをシステムバス上の少なくとも一つのデバイスコントローラのデータ出力イネーブル信号線のアサートのタイミングとすることができる。
【００１９】
また、本発明のデータ転送装置において、前記コントローラは、前記システムバス上の少なくとも一つのデバイスコントローラのデータ出力ストローブ信号線をモニタし、該データ出力ストローブ信号線がアサートされたときに、前記システムバス上で転送されるアドレスとデータを取り込んで前記連想メモリに複製記憶することが好ましい。
【００２０】
上記構成により、本発明のデータ転送装置の連想メモリにおいて取り込むべきデータを特定し、取り込むタイミングをシステムバス上の少なくとも一つのデバイスコントローラのデータ出力ストローブ信号線のアサートのタイミングとすることができる。
【００２１】
また、本発明のデータ転送装置において、前記コントローラは、前記ローカルバスから受け付けたデータ転送要求の示す転送元アドレスが前記連想メモリに記憶したアドレスに含まれていない場合は、前記データ転送要求に対して転送処理が完了していないアドレスを示すデータ有効情報を第２の連想メモリに記憶し、前記システムバス上のデバイス間で転送されているアドレスとデータを取り込み、該取り込んだアドレスが前記データ有効情報の示すアドレスである場合は、前記ローカルバスに対して前記データ転送要求に対応するデータとして転送することが好ましい。
【００２２】
上記構成により、本発明のデータ転送装置の連想メモリ内に、ローカルバスから受け付けたデータ転送要求に相当する転送元アドレスのデータが含まれていない場合であっても、すぐにシステムバスへの割り込みを掛けることなく、第２の連想メモリに取り込み指定を示すデータ有効情報を保持しておくことができ、バス使用権確保を待つ間に第１の連想メモリからのデータ転送が可能となれば、データを転送することができ、データ転送の効率化を図ることができる。
【００２３】
次に、本発明の第２のデータ転送装置は、システムバスとローカルバスとの間に接続された連想メモリと、前記連想メモリのデータ入出力を制御するコントローラを備え、前記コントローラは、前記ローカルバス上のデバイス間で転送されているアドレスとデータを取り込んで前記連想メモリに複製記憶し、前記システムバスからのデータ転送要求を受け付け、該データ転送要求の示す転送元アドレスが前記連想メモリに記憶したアドレスに含まれている場合は、前記連想メモリから該当するデータを読み出して前記システムバスに転送することを特徴とする。
【００２４】
上記構成により、ローカルバス上のデバイス間で転送されているアドレスとデータを取り込んで連想メモリに複製記憶しておくので、システムバスからのデータ転送要求における指定アドレスが当該連想メモリ内に取り込んだデータに対応するものであれば、ローカルバスの記憶装置のデータに代えて連想メモリ内のデータをシステムバスに転送することができる。つまり、直接ローカルバスにアクセスする必要がなく、バス調停に起因するデータ転送の遅延が発生せず、データ転送の効率化を図ることができる。
【００２５】
また、本発明のデータ転送装置において、前記コントローラは、前記ローカルバスにおいて、あるデバイスから他のデバイスへのデータの書き込みサイクルが発生していることを判別すれば、前記デバイス間で転送されるアドレスとデータを取り込んで前記連想メモリに複製記憶することが好ましい。
【００２６】
上記構成により、本発明のデータ転送装置の連想メモリにおいて取り込むべきデータを特定し、取り込むタイミングをローカルバスにおけるあるデバイスから他のデバイスへのデータの書き込みサイクルが発生のタイミングとすることができる。
【００２７】
また、本発明のデータ転送装置において、前記コントローラは、前記ローカルバス上の少なくとも一つのデバイスコントローラのデータ出力イネーブル信号線をモニタし、該データ出力イネーブル信号線がアサートされたときに、前記ローカルバス上で転送されるアドレスとデータを取り込んで前記連想メモリに複製記憶することが好ましい。
【００２８】
上記構成により、本発明のデータ転送装置の連想メモリにおいて取り込むべきデータを特定し、取り込むタイミングをローカルバス上の少なくとも一つのデバイスコントローラのデータ出力イネーブル信号線のアサートのタイミングとすることができる。
【００２９】
また、本発明のデータ転送装置において、前記コントローラは、前記ローカルバス上の少なくとも一つのデバイスコントローラのデータ出力ストローブ信号線をモニタし、該データ出力ストローブ信号線がアサートされたときに、前記ローカルバス上で転送されるアドレスとデータを取り込んで前記連想メモリに複製記憶することが好ましい。
【００３０】
上記構成により、本発明のデータ転送装置の連想メモリにおいて取り込むべきデータを特定し、取り込むタイミングをローカルバス上の少なくとも一つのデバイスコントローラのデータ出力ストローブ信号線のアサートのタイミングとすることができる。
【００３１】
また、本発明のデータ転送装置において、前記コントローラは、前記システムバスから受け付けたデータ転送要求の示す転送元アドレスが前記連想メモリに記憶したアドレスに含まれていない場合は、前記データ転送要求に対して転送処理が完了していないアドレスを示すデータ有効情報を第２の連想メモリに記憶し、前記ローカルバス上のデバイス間で転送されているアドレスとデータを取り込み、該取り込んだアドレスが前記データ有効情報の示すアドレスである場合は、前記システムバスに対して前記データ転送要求に対応するデータとして転送することが好ましい。
【００３２】
上記構成により、本発明のデータ転送装置の連想メモリ内に、システムバスから受け付けたデータ転送要求に相当する転送元アドレスのデータが含まれていない場合であっても、すぐにローカルバスへの割り込みを掛けることなく、第２の連想メモリに取り込み指定を示すデータ有効情報を保持しておくことができ、バス使用権確保を待つ間に第１の連想メモリからのデータ転送が可能となれば、データを転送することができ、データ転送の効率化を図ることができる。
【００３３】
次に、本発明の第３のデータ転送装置は、システムバスとローカルバスとの間に接続された連想メモリと、前記連想メモリのデータ入出力を制御するコントローラを備え、前記コントローラは、前記システムバス上のデバイス間で転送されているアドレスとデータを取り込んで前記連想メモリに複製記憶し、前記ローカルバス上のデバイス間で転送されているアドレスとデータを取り込んで前記連想メモリに複製記憶し、前記ローカルバスからのデータ転送要求を受け付け、該データ転送要求の示す転送元アドレスが前記連想メモリに記憶したアドレスに含まれている場合は、前記連想メモリから該当するデータを読み出して前記ローカルバスに転送し、前記システムバスからのデータ転送要求を受け付け、該データ転送要求の示す転送元アドレスが前記連想メモリに記憶したアドレスに含まれている場合は、前記連想メモリから該当するデータを読み出して前記システムバスに転送することを特徴とする。
【００３４】
上記構成により、システムバス上およびローカルバス上のデバイス間で転送されているアドレスとデータを取り込んで連想メモリに複製記憶しておくので、システムバスからのデータ転送要求における指定アドレスまたはローカルバスからのデータ転送要求における指定アドレスが当該連想メモリ内に取り込んだデータに対応するものであれば、システムバスまたはローカルバスの記憶装置のデータに代えて連想メモリ内のデータをシステムバスに転送することができる。つまり、直接システムバスまたはローカルバスにアクセスする必要がなく、バス調停に起因するデータ転送の遅延が発生せず、データ転送の効率化を図ることができる。
【発明の効果】
【００３５】
以上説明したように、システムバス上にドライブされたアドレス情報とデータ情報をバスブリッジ内の連想メモリに保持することにより、このアドレスへのリードアクセスがローカルバス上のバスマスタから発生した場合、システムバスの使用権を獲得する必要や、システムバス上のリードサイクルを発生させる必要がないので、早急にバスマスタにデータを転送することが可能となる。
【００３６】
また、ローカルバス上にドライブされたアドレス情報とデータ情報をバスブリッジ内の連想メモリに保持することにより、このアドレスへのリードアクセスがシステムバス上のバスマスタから発生した場合、ローカルバスの使用権を獲得する必要や、ローカルバス上のリードサイクルを発生させる必要がないので、早急にバスマスタにデータを転送することが可能である。
【発明を実施するための最良の形態】
【００３７】
以下、本発明の実施形態について、図面を参照しながら説明する。
【００３８】
（実施形態１）
図１は本発明の実施形態１にかかるデータ転送装置の概略構成図である。
【００３９】
まず、図１の各要素の説明を行う。図１において、１０１はバスブリッジ、１０２はブリッジ制御部、１０３はバス調停部、１０４はアドレス・データ制御部である。１０５は連想メモリ制御部、１０６は連想メモリ、１０７はアドレス比較部である。１０８は第２の連想メモリである。この実施形態１の例は、第２の連想メモリ１０８を含んだ構成としている。第２の連想メモリの働きは、ローカルバスから受け付けたデータ転送要求の示す転送元アドレスが連想メモリ１０６に記憶したアドレスに含まれていない場合に、データ転送要求に対して転送処理が完了していないアドレスを示すデータ有効情報を記憶しておくものであり、未処理のデータ転送要求を一時的に保持しておく効果を持つ。その後、システムバス上のデバイス間で転送されているアドレスとデータのバッファリング処理において取り込まれたアドレスがデータ有効情報の示すアドレスであるか否かを確認することにより、未処理のデータ転送要求にかかるデータが取りこまれたか否かを確認することができる。データ有効情報の示すアドレスと一致する場合は取りこんだデータをローカルバスに対してデータ転送要求に対応するデータとして転送する処理が可能となる。
【００４０】
１０９から１１２は連想メモリ１０６の各エントリの構成要素であり、１０９はエントリ番号、１１０はアドレス情報、１１１はデータ情報、１１２は有効ビットである。また、１１３から１１６は第２の連想メモリ１０８の構成要素であり、１１３はアドレス情報、１１４はデータ情報、１１５はアドレス有効ビット、１１６はデータ有効ビットである。
【００４１】
次に、１１７から１２４は連想メモリ１０６と連想メモリ制御部１０５の間の信号線であり、１１７はライトエントリセレクト信号線、１１８はライトイネーブル信号線、１１９はライトアドレス情報信号線、１２０はライトデータ情報信号線、１２１はリードエントリセレクト信号線、１２２はリードアドレス情報信号線、１２３はリードデータ情報信号線、１２４は有効ビット信号線である。
【００４２】
１２５はプロトコルチェッカ、１２６および１２７はチップセレクト信号線、１２８は出力イネーブル信号線、１２９はデータ・アクノリッジ信号線であり、ＣＰＵ１とプロトコルチェッカ１２５の間の信号線である。１３０はリクエスト信号線、１３１はアクノリッジ信号線、１３２はシステムバス、１３３はＣＰＵ、１３４はバス調停部、１３５は主記憶装置、１３６はＩ／Ｏ機器、１３７はローカルバス、１３８はＩ／Ｏ機器、１３９はリクエスト信号線、１４０はアクノリッジ信号線である。
【００４３】
このうち、バスブリッジ１０１、ＣＰＵ１３３、主記憶装置１３５、Ｉ／Ｏ機器１３６はシステムバス１３２上で接続しており、また、バスブリッジ１０１、Ｉ／Ｏ機器１３８、はローカルバス１３７上で接続している。
【００４４】
バスブリッジ１０１全体の動作は、ＣＰＵ１３３からローカルバス１３７上のデバイスへのアクセスサイクルがシステムバス１３２上で発生した場合、そのサイクルをローカルバス１３７上のサイクルに変換する。また、Ｉ／Ｏ機器１３８からシステムバス１３２上の主記憶装置１３５へのアクセスサイクルが発生した場合、バス調停部１０３からリクエスト信号線１３０を通じてバス調停部１３４にシステムバス１３２の使用権のリクエストを出し、アクノリッジ信号線１３１を通じてアクノレッジを受け取ると、そのサイクルをシステムバス１３２上のサイクルに変換する。
【００４５】
ブリッジ制御部１０２、バス調停部１０３、アドレス・データ制御部１０４、連想メモリ制御部１０５、連想メモリ１０６、アドレス比較部１０７、第２の連想メモリ１０８はバスブリッジ１０１の内部に存在する構成要素である。
【００４６】
ブリッジ制御部１０２は、バスブリッジ１０１全体の動作の制御を行うものである。
【００４７】
バス調停部１０３は、バスブリッジ１０１とＩ／Ｏ機器１３８のローカルバス使用権の調停を行うものである。
【００４８】
アドレス・データ制御部１０４は、システムバス１３２上のサイクルとローカルバス１３７上のサイクルとの変換を相互に行う機能を持つ。また、連想メモリ制御部１０５、アドレス比較部１０７、第２の連想メモリ１０８とも接続し、連想メモリ制御部１０５とのアドレス、データの入出力を制御するものである。
【００４９】
連想メモリ制御部１０５は、連想メモリ１０６へのデータ入出力の制御を行うものであり、連想メモリ１０６とライトエントリセレクト信号線１１７、ライトイネーブル信号線１１８、ライトアドレス情報信号線１１９、ライトデータ情報信号線、リードエントリセレクト信号線１２０、リードエントリセレクト信号線１２１、リードアドレス情報信号線１２２、リードデータ情報信号線１２３、有効ビット１２４で接続されている。また、第２の連想メモリ１０８とも接続され、データの入出力の制御を行う。また、内部にチップセレクト信号線１２６、１２７、出力イネーブル信号線１２８およびデータ・アクノリッジ信号線１２９と接続されたプロトコルチェッカ１２５をもち、バスサイクルを検知し、システムバス１３２上のサイクルがリードサイクルのときは、これらの信号線から連想メモリ１０６もしくは第２の連想メモリ１０８にデータを転送するタイミングであると判別する。
【００５０】
チップセレクト信号線１２６は、ＣＰＵ１３３から主記憶装置１３５へのチップセレクト信号線であり、チップセレクト信号線１２７は、ＣＰＵ１３３からＩ／Ｏ機器１３６へのチップセレクト信号線である。
【００５１】
連想メモリ１０６は４つのエントリからなり、各エントリはエントリ番号１０９、アドレス情報１１０、データ情報１１１、有効ビット１１２から成る。ライトイネーブル信号線１１８がオンのとき、ライトエントリセレクト信号線１１７で指定されたエントリ番号をもつエントリのアドレス情報１１０、データ情報１１１を、それぞれライトアドレス情報信号線１１９の値と、ライトデータ情報信号線１２０の値で上書きすると同時に、有効ビット１１２をオンにする。また、リードエントリセレクト信号線１２１で指定されたエントリ番号をもつエントリのアドレス情報１１０、データ情報１１１を、それぞれリードアドレス情報信号線１２２と、リードデータ情報信号線１２３にドライブする。
【００５２】
バス調停部１０３とバス調停部１３４はリクエスト信号線１３０とアクノリッジ信号線１３１で接続されている。また、バス調停部１０３はＩ／Ｏ機器１３８とリクエスト信号線１３９およびアクノリッジ信号線１４０で接続されている。
【００５３】
アドレス比較部１０７はアドレス・データ制御部１０４および連想メモリ制御部１０５と接続されており、双方から受けるアドレスの値が一致するとき、ブリッジ制御部１０２に通知する。
【００５４】
第２の連想メモリ１０８は、連想メモリ制御部１０５と接続され、ローカルバスからのデータ転送要求に対して該当するデータが連想メモリ１０６に含まれていない場合に連想メモリ制御部１０５から当該データ転送要求にかかるアドレスが書き込まれる。当該アドレスをアドレス情報１１３に保持し、アドレス有効ビット１１５をオンにする。また、データが書き込まれると、それをデータ情報１１４に保持し、データ有効ビット１１６をオンにする。このアドレス有効ビット１１５、データ有効ビット１１６がオンとなることにより未処理のデータ転送要求が存在していることが示される。バッファリング処理が進み、データ転送要求にかかるデータが取り込まれる際、第２の連想メモリ１０８から該当するアドレスおよびデータが読み出されると、連想メモリ制御部１０５にアドレス情報１１３の値とデータ情報１１４の値を転送し、同時にアドレス有効ビット１１５およびデータ有効ビット１１６をオフにする。
【００５５】
ＣＰＵ１３３は内部に持っているバス調停部１３４がＣＰＵ１３３にシステムバス１３２の使用権を与えているとき、主記憶装置１３５、Ｉ／Ｏ機器１３６、Ｉ／Ｏ機器１３８のいずれかにアクセスしてデータの入出力を行い、また、これらのデータを用いて演算処理を行う。
【００５６】
なお、この例では、主記憶装置１３５にはアドレス0から6FFFのアドレス空間が割り当てられているとする。
【００５７】
また、Ｉ／Ｏ機器１３６はアドレス7000から7FFFのアドレス空間が割り当てられているとする。
【００５８】
バス調停部１３４はＣＰＵ１３３とバスブリッジ１０１のシステムバス１３２の使用権の調停を行う。
【００５９】
次に、本実施形態１のデータ転送装置の動作を図を用いて説明する。
【００６０】
図２は本実施形態１の動作を表すフロー図である。図２において、２０１は、システムバスサイクル発生判別処理であり、２０２は、データバッファリング処理であり、２０３は、ローカルバスリクエスト発生判別処理であり、２０４は、バッファデータ転送処理である。
【００６１】
システムバスサイクル発生判別処理２０１は、アドレス・データ制御部１０４において、システムバス１３２上にサイクルが発生しているかどうかを判別する処理であり、サイクルが発生しているとき、データバッファリング処理２０２に移行し、発生していないとき、ローカルバスリクエスト発生判別処理２０３に移行する。つまり、システムバス１３２にバスサイクルが発生している場合にはシステムバス１３２上で転送されているデータを連想メモリ１０６に取りこむためのデータバッファリング処理２０２に移行し、システムバス１３２にバスサイクルが発生していない場合には、ローカルバスからのリクエストによるデータ転送処理のためにバス調停が実行されているのか否かを判定する処理に移行する。
【００６２】
データバッファリング処理２０２は、システムバス１３２上のサイクルで転送されているデータを連想メモリ１０６もしくは第２の連想メモリ１０８にバッファリングする処理であり、この処理を終えると、ローカルバスリクエスト発生判別処理２０３に移行する。
【００６３】
ローカルバスリクエスト発生判別処理２０３は、バス調停部１０３において、リクエスト信号線１３９がアサートされているかどうかを判別する処理であり、リクエストが発生しているとき、バッファデータ転送処理２０４に移行し、発生していないとき、システムバスサイクル発生判別処理２０１に戻って処理を続行する。
【００６４】
バッファデータ転送処理２０４は、ローカルバス１３７からのデータ転送要求に対して、データを連想メモリ１０６もしくは第２の連想メモリ１０８にバッファリングされているデータを転送する処理であり、この処理を終えると、システムバスサイクル発生判別処理２０１に戻って処理を続行する。
【００６５】
次に、上記のデータバッファリング処理２０２を詳しく示す。図３はデータバッファリング処理２０２の詳しい動作を表すフロー図である。図３において、３０１は、バスブリッジターゲット判別処理、３０２は、システムバスターゲット処理、３０３は、アドレス保持処理、３０４は、アドレス有効ビット判別処理、３０５は、第２の連想メモリアドレス情報判別処理、３０６は、サイクル判別処理、３０７は、第２の連想メモリデータ情報転送処理、３０８は、ターゲット判別処理、３０９は、第２の連想メモリＯＥ同期データ情報転送処理、３１０は、第２の連想メモリＤＡＣＫ同期データ情報転送処理、３１１は、第２の連想メモリデータ情報有効化処理、３１２は、エントリ番号選択処理、３１３は、アドレス情報転送処理、３１４は、サイクル判別処理、３１５は、データ情報転送処理、３１６は、ターゲット判別処理、３１７は、ＯＥ同期データ情報転送処理、３１８は、ＤＡＣＫ同期データ情報転送処理である。
【００６６】
バスブリッジターゲット判別処理３０１は、アドレス・データ制御部１０４において、バスブリッジ１０１が現在のシステムバス１３２上のサイクルのターゲットであるかどうかを判別する処理であり、ターゲットであるとき、システムバスターゲット処理３０２に移行し、ターゲットでないとき、アドレス保持処理３０３に移行する。つまり、バスブリッジ１０１が現在のシステムバス１３２上のサイクルのターゲットである場合とは、システムバスからローカルバス上のリソースにアクセスが要求されている場合を指し、この場合は、システムバスターゲット処理３０２に進み、バッファリング処理２０２を一旦終了させることとなる。
【００６７】
システムバスターゲット処理３０２は、アドレス・データ制御部１０４において、バスブリッジ１０１が現在のシステムバス１３２上のサイクルのターゲットとして応答する処理であり、この処理を終えると、このデータバッファリング処理２０２を終了する。
【００６８】
アドレス保持処理３０３は、アドレス・データ制御部１０４において、システムバスからドライブされたアドレス信号線の値を保持する処理であり、この処理を終えると、アドレス有効ビット判別処理３０４に移行する。
【００６９】
アドレス有効ビット判別処理３０４は、連想メモリ制御部１０５において、現在未処理であるデータ転送要求が存在していることを示すアドレス有効ビット１１５がオンかオフかを判別する処理である。オンであるとき、今回のバッファリング処理において取り込むデータが未処理であるデータ転送要求にかかるものであるか否かを確認すべく、第２の連想メモリアドレス情報判別処理３０５に移行し、オフであるとき、現在未処理であるデータ転送要求は存在していないので今回のバッファリング処理において取り込むデータを連想メモリ１０６に格納するためエントリ番号選択処理３１２に移行する。
【００７０】
第２の連想メモリアドレス情報判別処理３０５は、アドレス比較部１０７において、アドレス保持処理３０３で保持されたアドレスと、アドレス情報１１３に保持されたアドレスとが一致するかどうかを判別する処理であり、一致するとき、今回のバッファリング処理において取り込むデータが未処理であるデータ転送要求にかかるものであるのでサイクル判別処理３０６に移行し、一致しないとき、今回のバッファリング処理において取り込むデータが未処理であるデータ転送要求にかかるものではないので、取り込んだデータを連想メモリ１０６に格納するためエントリ番号選択処理３１２に移行する。
【００７１】
サイクル判別処理３０６は、アドレス・データ制御部１０４において、現在のシステムバス１３２上のサイクルがリードサイクルであるかどうかを判別する処理で、リードサイクルであるとき、ターゲット判別処理３０８に移行し、そうでないとき、第２の連想メモリデータ情報転送処理３０７に移行する。つまり、リードサイクルである場合にはシステムバス上のどのリソースから当該情報が読み出されるのかを判別する処理に移行し、リードサイクルでなく書き込みサイクルである場合には現在データ線にドライブされている情報を取り込む処理に移行する。
【００７２】
第２の連想メモリデータ情報転送処理３０７は、第２の連想メモリ１０８において、アドレス情報１１３にアドレスを書き込む処理であり、この処理を終えると、第２の連想メモリデータ情報有効化処理３１１に移行する。
【００７３】
ターゲット判別処理３０８は、プロトコルチェッカ１２５において、チップセレクト信号線１２６、１２７からバスターゲットが主記憶装置１３５であるか、Ｉ／Ｏ機器１３６であるかを判別する処理であり、主記憶装置１３５であるとき、第２の連想メモリＯＥ同期データ情報転送処理３０９に移行し、Ｉ／Ｏ機器１３６であるとき、第２の連想メモリＤＡＣＫ同期データ情報転送処理３１０に移行する。
【００７４】
第２の連想メモリＯＥ同期データ情報転送処理３０９は、連想メモリ制御部１０５およびプロトコルチェッカ１２５において、出力イネーブル信号線１２８がアサートされたとき、アドレス・データ制御部１０４からドライブされているデータ線の値を第２の連想メモリ１０８のデータ情報１１４に書き込む処理であり、この処理を終えると、第２の連想メモリデータ情報有効化処理３１１に移行する。
【００７５】
第２の連想メモリＤＡＣＫ同期データ情報転送処理３１０は、連想メモリ制御部１０５およびプロトコルチェッカ１２５において、データ・アクノリッジ信号線１２９がアサートされたとき、システムバス１３２のデータ信号線にドライブされているの値をアドレス・データ制御部１０４を通じて、第２の連想メモリ１０８のデータ情報１１４に書き込む処理であり、この処理を終えると、第２の連想メモリデータ情報有効化処理３１１に移行する。
【００７６】
第２の連想メモリデータ情報有効化処理３１１は、連想メモリ制御部１０５において、第２の連想メモリ１０８のデータ有効ビット１１６をオンにする処理であり、この処理を終えると、データバッファリング処理２０２を終了する。
【００７７】
エントリ番号選択処理３１２は、連想メモリ制御部１０５において、アドレス保持処理２０４で保持されたアドレスの値から、エントリを選択する処理であり、ここでは、具体的に、アドレスの下位４ビットの１６進数表現での値が０、８の場合、０を選択し、それ以外の場合、１を選択し、選択した値をライトエントリセレクト信号線１１７にドライブする処理である。この処理を終えると、アドレス情報転送処理３１３に移行する。
【００７８】
アドレス情報転送処理３１３は、連想メモリ制御部１０５において、ライトアドレス情報信号線１１９にアドレス保持処理２０４で保持されたアドレスをドライブする処理であり、この処理を終えると、サイクル判別処理３１４に移行する。
【００７９】
サイクル判別処理３１４は、アドレス・データ制御部１０４において、現在のシステムバス１３２上のサイクルがリードサイクルであるかどうかを判別する処理で、リードサイクルであるとき、ターゲット判別処理３１６に移行し、そうでないとき、データ情報転送処理３１５に移行する。つまり、リードサイクルである場合にはシステムバス上のどのリソースから情報が読み出されるのかを判別する処理に移行し、リードサイクルでなく書き込みサイクルである場合には現在データ線にドライブされている情報を取り込む処理に移行する。
【００８０】
データ情報転送処理３１５は、連想メモリ制御部１０５において、ライトデータ情報信号線１２０にデータをドライブし、また、ライトイネーブル信号線１１８をアサートし、連想メモリ１０６にアドレス情報とデータ情報を書込む処理であり、この処理終えると、データバッファリング処理２０２を終了する。
【００８１】
ターゲット判別処理３１６は、プロトコルチェッカ１２５において、チップセレクト信号線１２６、１２７からバスターゲットが主記憶装置１３５であるか、Ｉ／Ｏ機器１３６であるかを判別する処理であり、主記憶装置１３５であるとき、ＯＥ同期データ情報転送処理３１７に移行し、Ｉ／Ｏ機器１３６であるとき、ＤＡＣＫ同期データ情報転送処理３１８に移行する。
【００８２】
ＯＥ同期データ情報転送処理３１７は、連想メモリ制御部１０５およびプロトコルチェッカ１２５において、出力イネーブル信号線１２８がアサートされたとき、アドレス・データ制御部１０４からドライブされているデータ線の値をライトデータ情報信号線１２０にドライブし、ライトイネーブル信号線１１８をオンにする処理であり、この処理を終えると、データバッファリング処理２０２を終了する。
【００８３】
ＤＡＣＫ同期データ情報転送処理３１８は、連想メモリ制御部１０５およびプロトコルチェッカ１２５において、データ・アクノリッジ信号線１２９がアサートされたとき、アドレス・データ制御部１０４からドライブされているデータ線の値をライトデータ情報信号線１２０にドライブし、ライトイネーブル信号線１１８をオンにする処理であり、この処理を終えると、データバッファリング処理２０２を終了する。
【００８４】
以上が図２のデータバッファリング処理２０２の詳しい動作である。
【００８５】
次に、図２のバッファデータ転送処理２０４を詳しく説明する。図４はバッファデータ転送処理２０４の詳しい動作を表すフロー図である。
【００８６】
図４において、４０１は、ローカルバスアイドル判別処理であり、４０２は、アクノリッジアサート処理であり、４０３は、サイクル判別処理であり、４０４は、第２の連想メモリデータ判別処理であり、４０５は、第２の連想メモリデータ転送処理であり、４０６は、バッファデータ判別処理であり、
４０７は、バッファデータ転送処理であり、４０８は、アドレス判別処理であり、
４０９は、システムバスリクエスト処理であり、４１０は、システムバスアクノリッジ判別処理であり、４１１は、システムバスマスタ処理であり、４１２は、ローカルバスターゲット処理であり、４１３は、第２の連想メモリアドレス情報有効化処理であり、４１４は、ローカルバスリトライ応答処理であり、４１５は、アクノリッジディアサート処理である。
【００８７】
ローカルバスアイドル判別処理４０１は、バス調停部１０３において、ローカルバス１３７がアイドル状態か、もしくはリクエストを受けているローカルバスマスタに現在アクノリッジを出しているかどうかを判別する処理であり、ローカルバス１３７がアイドル状態か、もしくはリクエストを受けているローカルバスマスタに現在アクノリッジを出しているとき、アクノリッジアサート処理４０２に移行し、そうでないとき、引き続きローカルバスアイドル判別処理４０１にとどまる。
【００８８】
アクノリッジアサート処理４０２は、バス調停部１０３において、アクノリッジ信号線１４０をアサートする処理であり、この処理を終えるとサイクル判別処理４０３に移行する。
【００８９】
サイクル判別処理４０３は、ブリッジ制御部１０２においてローカルバス１３７のサイクル発生を監視し、発生したサイクルがリードサイクルであるかどうかを判別する処理であり、リードサイクルであれば第２の連想メモリデータ判別処理４０４に移行し、そうでないときアドレス判別処理４０８に移行する。つまり、ローカルバスがリードサイクルにあれば、ローカルバス上にデータを転送する処理に移行し、リードサイクルでない場合はシステムバス１３２上のリソースへの書き込み要求であるのでバス調停部１３４に対してバス調停のリクエストをアサートする処理に移行する。
【００９０】
第２の連想メモリデータ判別処理４０４は、連想メモリ制御部１０５において、今回転送するデータが、現在データ転送が未処理であるデータ転送要求としてエントリされたものであるか否かを調べる処理であり、データ有効ビット１１６がオンのときは、アドレス情報１１３の値をアドレス比較部１０７に転送し、アドレス比較部１０７においてローカルバス１３７でドライブされているアドレスと一致するかどうかを判別する。一致した場合は、第２の連想メモリデータ転送処理４０５に移行する。一致しない場合、連想メモリ１０６中に今回転送するデータが存在するかを確認するため、バッファデータ判別処理４０６に移行する。また、データ有効ビット１１６がオフの場合は、現在データ転送が未処理であるデータ転送要求がないので、バッファデータ判別処理４０６に移行する。
【００９１】
第２の連想メモリデータ転送処理４０５は、連想メモリ制御部１０５において、データ情報１１４からデータを読み出し、アドレス・データ制御部１０４において、そのデータをローカルバス１３７にドライブしてローカルバスのサイクルに応答する処理であり、この処理を終えるとバッファデータ転送処理２０４を終了する。
【００９２】
バッファデータ判別処理４０６は、連想メモリ制御部１０５において、ローカルバス１３７でドライブされているアドレスに該当するエントリ番号の有効ビット１１２がオンのとき、アドレス情報１１０からアドレスをアドレス比較部１０７に転送し、アドレス比較部１０７において、ローカルバス１３７でドライブされているアドレスと一致するかどうかを判別する処理で、一致する場合、バッファデータ転送処理４０７に移行し、一致しない場合、アドレス判別処理４０８に移行する。つまり、この場合は連想メモリ１０６内にバッファリングされているデータによってはデータ転送要求に応えることができないため、実際にシステムバス１３２上のリソースにアクセスする必要があるか否かを確認する処理に移行する。ローカルバス１３７でドライブされているアドレスに該当するエントリ番号の有効ビット１１２がオフのとき、アドレス判別処理４０８に移行する。
【００９３】
バッファデータ転送処理４０７は、連想メモリ制御部１０５において、連想メモリ制御部１０５において、バッファデータ判別処理４０６で一致したアドレス情報１１０をもつ連想メモリ１０６内のエントリのデータ情報１１１からデータを読み出し、アドレス・データ制御部１０４において、そのデータをローカルバス１３７にドライブしてローカルバスのサイクルに応答する処理であり、この処理を終えるとバッファデータ転送処理２０４を終了する。
【００９４】
アドレス判別処理４０８は、アドレス・データ制御部１０４において、ローカルバス１３７にドライブされたアドレスをデコードし、このアドレスがシステムバス１３２上のデバイスに割り当てられたメモリ空間にあるとき、システムバスリクエスト処理４０９に移行し、そうでないとき、バッファデータ転送処理２０４を終了する。
【００９５】
システムバスリクエスト処理４０９は、バス調停部１０３において、リクエスト信号線１３０をアサートする処理であり、この処理を終えるとシステムバスアクノリッジ判別処理４１０に移行する。
【００９６】
システムバスアクノリッジ判別処理４１０は、バス調停部１０３において、アクノリッジ信号線１３１がアサートされたかどうかを判別する処理であり、アクノリッジ信号１３１がアサートされたとき、システムバスマスタ処理４１１に移行し、そうでないとき、第２の連想メモリアドレス情報有効化処理４１３に移行する。
【００９７】
システムバスマスタ処理４１１は、アドレス・データ制御部１０４において、システムバス１３２にサイクルを発生させ、ローカルバス１３７から受けているデータ転送要求をシステムバス上に起こす処理であり、この処理を終えるとローカルバスターゲット処理４１２に移行する。
【００９８】
ローカルバスターゲット処理４１２は、アドレス・データ制御部１０４において、システムバスマスタ処理４１１で起こしたデータ転送要求の結果をローカルバス１３７にドライブする処理であり、この処理を終えるとバッファデータ転送処理２０４を終了する。
【００９９】
第２の連想メモリアドレス情報有効化処理４１３は、連想メモリ制御部１０５において、ローカルバス１３７にドライブされたアドレスをアドレス情報１１３に転送し、アドレス有効ビット１１５をオンにする処理であり、この処理を終えると、ローカルバスリトライ応答処理４１４に移行する。
【０１００】
ローカルバスリトライ応答処理４１４は、アドレス・データ制御部１０４において、ローカルバス１３７に対し、リトライ応答する処理であり、この処理を終えるとアクノリッジディアサート処理４１５に移行する。
【０１０１】
アクノリッジディアサート処理４１５は、バス調停部１０３において、アクノリッジ信号線１４０をディアサートする処理であり、この処理を終えるとバッファデータ転送処理２０４を終了する。
【０１０２】
以上が、図２に示したバッファデータ転送処理２０４の処理である。
【０１０３】
次に、本実施形態１のデータ転送装置の動作を実際のデータ転送を例に説明する。
【０１０４】
図５は本実施形態１のデータを用いた動作の一例を示すタイミングチャートを示す図である。
【０１０５】
図５において、５０１は、リクエスト信号線１３０の状態であり、５０２は、アクノリッジ信号線１３１の状態であり、５０３は、システムバス１３２のアドレス線の状態であり、５０４は、システムバス１３２のデータ線の状態であり、５０５は、システムバス１３２のリード／ライト信号線の状態であり、５０６は、チップセレクト信号線１２６の状態であり、５０７は、出力イネーブル信号線１２８の状態であり、５０８は、チップセレクト信号線１２７の状態であり、５０９は、データ・アクノリッジ信号線１２９の状態であり、５１０は、ライトエントリセレクト信号線１１７の状態であり、５１１は、ライトイネーブル信号線１１８の状態であり、５１２は、ライトアドレス情報信号線１１９の状態であり、５１３は、ライトデータ情報信号線１２０の状態であり、５１４は、連想メモリ１０６のエントリ０のアドレス情報１１０の状態であり、５１５は、連想メモリ１０６のエントリ０のデータ情報１１１の状態であり、５１６は、連想メモリ１０６のエントリ１のアドレス情報１１０の状態であり、５１７は、連想メモリ１０６のエントリ１のデータ情報１１１の状態であり、５１８は、アドレス有効ビット１１５の状態であり、５１９は、アドレス情報１１３の状態であり、５２０は、データ有効ビット１１６の状態であり、５２１は、データ情報１１４の状態であり、５２２は、リードエントリセレクト信号線１２１の状態であり、５２３は、リードアドレス情報信号線１２２の状態であり、５２４は、リードデータ情報信号線１２３の状態であり、５２５は、リクエスト信号線１３９の状態であり、５２６は、アクノリッジ信号線１４０の状態であり、５２７は、ローカルバス１３７のリード／ライト信号線の状態であり、５２８は、ローカルバス１３７のアドレス線の状態であり、５２９は、ローカルバス１３７のデータ線の状態であり、５３０は、ローカルバス１３７でのブリッジ１０１の応答状態である。
【０１０６】
まず、システムバスサイクル発生判別処理２０１で、５５１から５５３に示すように、アドレス4020にデータdatawを書込むサイクルが発生しているので、データバッファリング処理２０２に移行する。
【０１０７】
次に、データバッファリング処理２０２では、まず、バスブリッジターゲット判別処理３０１が実行されるが、５５４に示すように、チップセレクト信号線１２７がアサートされており、バスブリッジ１０１はこのサイクルのターゲットではないので、アドレス保持処理３０３に移行する。
【０１０８】
次に、アドレス保持処理３０３では、アドレス・データ制御部１０４の内部にアドレス4020を保持し、アドレス有効ビット判別処理３０４に移行する。
【０１０９】
次に、アドレス有効ビット判別処理３０４では、５５５に示すように、アドレス有効ビット１１５がオフであるので、エントリ番号選択処理３１２に移行する。
【０１１０】
次に、エントリ番号選択処理３１２では、アドレス4020からエントリ番号０を選択し、５５６に示すように、ライトエントリセレクト信号線１１７に０をドライブし、アドレス情報転送処理３１３に移行する。
【０１１１】
次に、アドレス情報転送処理３１３では、５５７に示すように、ライトアドレス情報信号線１１９にアドレス4020をドライブし、サイクル判別処理３１４に移行する。
【０１１２】
次に、サイクル判別処理３１４では、５５３に示すように、このサイクルがライトサイクルであることから、データ情報転送処理３１５に移行する。
【０１１３】
次に、データ情報転送処理３１５では、５５８に示すように、ライトデータ情報信号線１２０にデータdatawをドライブし、また、５５９に示すように、ライトイネーブル信号線１１８をアサートし、５６０、５６１に示すように、連想メモリ１０６のエントリ０のアドレス情報１１０とデータ情報１１１にそれぞれアドレス4020とデータdatawを書込み、データバッファリング処理２０２を終了する。
【０１１４】
次に、ローカルバスリクエスト発生判別処理２０３では、５６２に示すように、リクエスト信号線１３９がアサートされていないので、システムバスサイクル発生判別処理２０１に戻る。
【０１１５】
次に、システムバスサイクル発生判別処理２０１で、５６３、５６４に示すように、アドレス4000のデータを読み出すサイクルが発生しているので、データバッファリング処理２０２に移行する。
【０１１６】
データバッファリング処理２０２では、バスブリッジターゲット判別処理３０１からアドレス情報転送処理３１３までは、アドレスの値が違うだけで、上に述べたアドレス4020にデータdatawを書込むサイクルの場合と同様の処理がなされる。
【０１１７】
次に、サイクル判別処理３１４では、５６４に示すように、このサイクルがリードサイクルであることから、ターゲット判別処理３１６に移行する。
【０１１８】
次に、ターゲット判別処理３１６では、５５４に示すように、チップセレクト信号線１２７がアサートされていることから、Ｉ／Ｏ機器１３６がバスターゲットであると判別し、ＤＡＣＫ同期データ情報転送処理３１８に移行する。
【０１１９】
次に、ＤＡＣＫ同期データ情報転送処理３１８では、５６５に示すように、データ・アクノリッジ信号線１２９がアサートされたとき、５６６に示すように、データdata0をライトデータ情報信号線１２０にドライブし、５６７に示すように、ライトイネーブル信号線１１８をオンにし、５６８、５６９に示すように、連想メモリ１０６のエントリ０のアドレス情報１１０とデータ情報１１１にそれぞれアドレス4000とデータdata0を書込み、データバッファリング処理２０２を終了し、ローカルバスリクエスト発生判別処理２０３に移行する。
【０１２０】
次に、ローカルバスリクエスト発生判別処理２０３では、５７０に示すように、リクエスト信号線１３９がアサートされているので、バッファデータ転送処理２０４に移行する。
【０１２１】
次に、バッファデータ転送処理２０４では、まず、ローカルバスアイドル判別処理４０１が実行されるが、ローカルバス１３７はアイドル状態にあるので、アクノリッジアサート処理４０２に移行する。
【０１２２】
次に、アクノリッジアサート処理４０２では、５７１に示すように、アクノリッジ信号線１４０をアサートし、サイクル判別処理４０３に移行する。
【０１２３】
次に、サイクル判別処理４０３では、５７２に示すように、ローカルバス１３７で発生したサイクルがリードサイクルであるので、第２の連想メモリデータ判別処理４０４に移行する。
【０１２４】
次に、第２の連想メモリデータ判別処理４０４では、５７３に示すように、データ有効ビット１１６がオフなので、バッファデータ判別処理４０６に移行する。
【０１２５】
次に、バッファデータ判別処理４０６では、５７４に示すように、ローカルバス１３７でドライブされているアドレス4008に該当するエントリ番号０のアドレス情報１１０のアドレスが５６８に示すように、4000であり、4008と一致しないので、アドレス判別処理４０８に移行する。
【０１２６】
次に、アドレス判別処理４０８では、ローカルバス１３７にドライブされたアドレス4008をデコードし、このアドレスがシステムバス１３２上のデバイスに割り当てられたメモリ空間にあるので、システムバスリクエスト処理４０９に移行する。
【０１２７】
次に、システムバスリクエスト処理４０９では、５７５に示すように、リクエスト信号線１３０をアサートし、システムバスアクノリッジ判別処理４１０に移行する。
【０１２８】
次に、システムバスアクノリッジ判別処理４１０では、５７６に示すように、アクノリッジ信号線１３１がアサートされていないので、第２の連想メモリアドレス情報有効化処理４１３に移行する。
【０１２９】
次に、第２の連想メモリアドレス情報有効化処理４１３では、５７７、５７８に示すように、ローカルバス１３７にドライブされたアドレス4008をアドレス情報１１３に転送し、アドレス有効ビット１１５をオンにし、ローカルバスリトライ応答処理４１４に移行する。
【０１３０】
次に、ローカルバスリトライ応答処理４１４では、５７９に示すように、ローカルバス１３７に対し、リトライ応答し、アクノリッジディアサート処理４１４に移行する。
【０１３１】
次に、アクノリッジディアサート処理４１４では、５８０に示すように、アクノリッジ信号線１４０をディアサートし、バッファデータ転送処理２０４を終了し、システムバスサイクル発生判別処理２０１に戻る。
【０１３２】
次に、システムバスサイクル発生判別処理２０１では、５６４、５８１に示すように、システムバス１３２上に、アドレス4008のリードサイクルが発生しているので、データバッファリング処理２０２に移行する。
【０１３３】
次に、データバッファリング処理２０２では、まず、バスブリッジターゲット判別処理３０１が実行されるが、５５４に示すように、チップセレクト信号線１２７がアサートされており、バスブリッジ１０１はこのサイクルのターゲットではないので、アドレス保持処理３０３に移行する。
【０１３４】
次に、アドレス保持処理３０３では、アドレス・データ制御部１０４の内部にアドレス4008を保持し、アドレス有効ビット判別処理３０４に移行する。
【０１３５】
次に、アドレス有効ビット判別処理３０４では、５７８に示すように、アドレス有効ビット１１５がオンであるので、第２の連想メモリアドレス情報判別処理３０５に移行する。
【０１３６】
次に、第２の連想メモリアドレス情報判別処理３０５では、アドレス保持処理２０４で保持されたアドレス4008と、５７７に示すように、アドレス情報１１３に保持されたアドレス4008とが一致するので、サイクル判別処理３０６に移行する。
【０１３７】
次に、サイクル判別処理３０６では、５６４に示すように、リードサイクルなので、ターゲット判別処理３０８に移行する。
【０１３８】
次に、ターゲット判別処理３０８では、５５４に示すように、チップセレクト信号線１２７がアサートされているので、バスターゲットがＩ／Ｏ機器１３６であると判別し、第２の連想メモリＤＡＣＫ同期データ情報転送処理３１０に移行する。
【０１３９】
次に、第２の連想メモリＤＡＣＫ同期データ情報転送処理３１０では、５８２に示すように、データ・アクノリッジ信号線１２９がアサートされたとき、５８３に示す、データ信号線の値data2が、５８４に示すように、データ情報１１４に書込まれ、第２の連想メモリデータ情報有効化処理３１１に移行する。
【０１４０】
次に、第２の連想メモリデータ情報有効化処理３１１では、５８５に示すように、第２の連想メモリ１０８のデータ有効ビット１１６をオンにし、データバッファリング処理２０２を終了し、ローカルバスリクエスト発生判別処理２０３に移行する。
【０１４１】
続いて、５８６、５８７に示すように、アドレス400Cとデータdata3がエントリ１に書込まれ、さらに、５８８、５８９に示すように、アドレス4010とデータdata4がエントリ０に書込まれた後、ローカルバスリクエスト発生判別処理２０３で、５９０に示す、リクエスト信号線１３９のアサートが判別され、バッファデータ転送処理２０４に移行する。
【０１４２】
次に、バッファデータ転送処理２０４では、まず、ローカルバスアイドル判別処理４０１が実行されるが、ローカルバス１３７はアイドル状態にあるので、アクノリッジアサート処理４０２に移行する。
【０１４３】
次に、アクノリッジアサート処理４０２では、５９１に示すように、アクノリッジ信号線１４０をアサートし、サイクル判別処理４０３に移行する。
【０１４４】
次に、サイクル判別処理４０３では、５９２に示すように、ローカルバス１３７で発生したサイクルがリードサイクルであるので、第２の連想メモリデータ判別処理４０４に移行する。
【０１４５】
次に、第２の連想メモリデータ判別処理４０４では、５８５に示すように、データ有効ビット１１６がオンなので、５７７に示す、アドレス情報１１３の値4008と、５９３に示す、ローカルバス１３７でドライブされているアドレス4008が一致するので、第２の連想メモリデータ転送処理４０５に移行する。
【０１４６】
次に、第２の連想メモリデータ転送処理４０５では、データ情報１１４から、５８４に示すデータdata2を読み出し、５９４に示すように、ローカルバス１３７のデータ信号線にドライブしてバッファデータ転送処理２０４を終了する。
【０１４７】
この後、５９５に示すように、ローカルバス１３７上にアドレス400Cへのリードサイクルが発生しているとき、バッファデータ判別処理４０６で、５８６に示す、エントリ番号１のアドレス情報１１０のアドレス400Cとローカルバス１３７でドライブされているアドレス400Cが一致していると判別され、バッファデータ転送処理４０７に移行する。
【０１４８】
次に、バッファデータ転送処理４０７では、エントリ１のデータ情報１１１から、５８７に示すデータdata3を読み出し、５９６に示すように、ローカルバス１３７のデータ信号線にドライブする。
【０１４９】
なお、連想メモリ１０６のエントリ数は２としたが、１であっても、また、３以上であってもよい。エントリ数が大きいほど効果は大きいが、ブリッジの回路規模が大きくなる。
【０１５０】
（実施形態２）
上記の実施形態１に示したデータ転送装置および方法では、ローカルバス１３７上にはバスブリッジ１０１以外にはＩ／Ｏ機器１３８しかデバイスが存在していない例を説明したが、他にもデバイスが存在して、それらのデバイス間でデータ転送が行われるとき、それをバスブリッジ内の別のバッファに保持することにより、システムバス１３２からこのデータへのアクセスが発生したとき、ローカルバス１３７にアクセスすることなく、バッファからデータを転送することができる。また、別のバッファを設けることにより、ローカルバス１３７上のデバイス間で転送され、保持されたデータが、システムバス１３２上のデバイス間で転送され、保持されるデータで上書きされることがない。図６はそのようなローカルバス用の連想メモリ６０３を含むバスブリッジの概念図である。図１では、システムバス用の連想メモリ１０６のみが設けられた構成であったが、本実施形態２の図６の構成では、システムバス用の連想メモリ１０６に加え、ローカルバス用の連想メモリ６０４も設けられている。
【０１５１】
図６において、６０１は、バスブリッジであり、６０２は、ブリッジ制御部であり、６０３は、連想メモリ制御部であり、６０４は、連想メモリであり、６０５は、アドレス比較部であり、６０６は、第２の連想メモリ、６０７は、バス調停部であり、６０８は、ＤＭＡコントローラであり、６０９は、リクエスト信号線であり、６１０は、アクノリッジ信号線であり、６１１は、メモリである。
【０１５２】
バスブリッジ６０１は、システムバス１３２上で転送されるアドレスとデータを連想メモリ１０６に保持し、また、ローカルバス１３７上で転送されるアドレスとデータを連想メモリ６０４に保持し、システムバス１３２上のサイクルでローカルバス１３７上のアドレスからのデータ転送要求が発生して、そのデータが連想メモリ６０４に保持されている場合は、ローカルバスにサイクルを発生させることなく、連想メモリ６０４に保持されたデータをシステムバス１３２上に転送する。
【０１５３】
ブリッジ制御部６０２は、バスブリッジ６０１全体の動作の制御を行う。
【０１５４】
連想メモリ制御部６０３は、連想メモリ６０４、第２の連想メモリ６０６と接続し、Ｉ／Ｏ機器１３８、ＤＭＡコントローラ６０８、メモリ６１１の間で転送されるアドレスおよびデータを連想メモリ６０４もしくは第２の連想メモリ６０６に転送する。また、ＣＰＵ１３３からメモリ６１１へのリードサイクルが発生した場合、ドライブされているアドレスが連想メモリ６０４もしくは第２の連想メモリ６０６に保持されていれば、連想メモリ６０４もしくは第２の連想メモリ６０６からデータを読み出し、アドレス・データ制御部１０４に転送する。
【０１５５】
第２の連想メモリ６０６は、実施形態１で説明した第２の連想メモリ１０８と同様のものである。連想メモリ制御部６０３と接続され、ローカルバスからのデータ転送要求に対して該当するデータが連想メモリ６０４に含まれていない場合に連想メモリ制御部６０３から当該データ転送要求にかかるアドレスが書き込まれるものである。
【０１５６】
バスブリッジ６０１は、連想メモリ１０６とは別に連想メモリ６０４を持っているので、例えばＤＭＡコントローラ６０８からメモリ６１１へ書込まれるデータを連想メモリ６０４に保持することにより、ＣＰＵ１３３からこのデータへのアクセスが発生したとき、メモリ６１１にアクセスすることなく、連想メモリ６０４からデータを転送することができる。また、このデータが、システムバス１３２上のデバイス間で転送され、保持されるデータで上書きされることがない。
【０１５７】
ローカルバス用の連想メモリ６０４を中心としたデータ転送処理の詳しい処理動作は、実施形態１で説明したシステムバス用の連想メモリ１０６を中心としたデータ転送処理の詳しい処理動作と同様に考えることができる。
【図面の簡単な説明】
【０１５８】
【図１】本発明の実施形態１のデータ転送装置の概略図
【図２】実施形態１のデータ転送装置の動作を表すフロー図
【図３】データバッファリング処理の詳しい動作を表すフロー図
【図４】バッファデータ転送処理の詳しい動作を表すフロー図
【図５】実施形態１のデータを用いた動作の一例を示すタイミングチャートを示す図
【図６】実施形態２のローカルバス用のバッファを持つバスブリッジの概念図
【図７】従来のデータ転送装置の概念図
【図８】従来のデータ転送装置の動作のタイミングチャートを示す図
【符号の説明】
【０１５９】
１  ＣＰＵ
２  バス調停部
３  主記憶装置
４  Ｉ／Ｏ機器
５  バスブリッジ
６  ブリッジ制御部
７  バス調停部
８  アドレス・データ制御部
５１  システムバスの使用権の状態
５２  バスブリッジ５からバス調停部２へのリクエスト信号線の状態
５３  バス調停部２からバスブリッジ５へのアクノリッジ信号線の状態
５４  システムバスのアドレス線の状態
５５  システムバスのデータ線の状態
５６  システムバスのリード／ライト線の状態
５７  Ｉ／Ｏ機器９からバス調停部７へのリクエスト信号線の状態
５８  バス調停部７からＩ／Ｏ機器９へのアクノリッジ信号線の状態
５９  ローカルバスのアドレス線の状態
６０  ローカルバスのデータ線の状態
６１  ローカルバスのリード／ライト線の状態
１０１  バスブリッジ
１０２  ブリッジ制御部
１０３  バス調停部
１０４  アドレス・データ制御部
１０５  バッファ制御部
１０６  バッファ
１０７  アドレス比較部
１０８  第２の連想メモリ
１０９  エントリ番号
１１０  アドレス情報
１１１  データ情報
１１２  有効ビット
１１３  アドレス情報
１１４  データ情報
１１５  アドレス有効ビット
１１６  データ有効ビット
１１７  ライトエントリセレクト信号線
１１８  ライトイネーブル信号線
１１９  ライトアドレス情報信号線
１２０  ライトデータ情報信号線
１２１  リードエントリセレクト信号線
１２２  リードアドレス情報信号線
１２３  リードデータ情報信号線
１２４  有効ビット信号線
１２５  プロトコルチェッカ
１２６、１２７  チップセレクト信号線
１２８  出力イネーブル信号線
１２９  データ・アクノリッジ信号線
１３０  リクエスト信号線
１３１  アクノリッジ信号線
１３２  システムバス
１３３  ＣＰＵ
１３４  バス調停部
１３５  主記憶装置
１３６  Ｉ／Ｏ機器
１３７  ローカルバス
１３８  Ｉ／Ｏ機器
１３９  リクエスト信号線
１４０  アクノリッジ信号線
６０１  バスブリッジ
６０２  ブリッジ制御部
６０３  バッファ制御部
６０４  バッファ
６０５  アドレス比較部
６０６  第２の連想メモリ
６０７  バス調停部
６０８  ＤＭＡコントローラ
６０９  リクエスト信号線
６１０  アクノリッジ信号線
６１１  メモリ
【図１】
2008171436.tif 000003
【図２】
2008171436.tif 000004
【図３】
2008171436.tif 000005
【図４】
2008171436.tif 000006
【図５】
2008171436.tif 000007
【図６】
2008171436.tif 000008
【図７】
2008171436.tif 000009
【図８】
2008171436.tif 000010
【手続補正書】
【提出日】平成20年2月22日(2008.2.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
システムバスとローカルバスとの間に接続可能なデータ転送装置であって、
メモリと、
前記メモリのデータ入出力を制御するコントローラを備え、
前記コントローラは、
前記システムバス上のデバイス間で転送されているアドレスが前記メモリに記憶されていない場合に、前記システムバス上のデバイス間で転送されているデータと前記アドレスを前記メモリに複製記憶し、
前記ローカルバスからのデータ転送要求を受け付け、該データ転送要求の示す転送元アドレスが前記メモリに記憶したアドレスに含まれている場合は、前記メモリから該当するデータを読み出して前記ローカルバスに転送することを特徴とするデータ転送装置。
【請求項２】
前記コントローラは、前記システムバスにおいて、あるデバイスから他のデバイスへのデータの書き込みサイクルが発生していることを判別すれば、前記デバイス間で転送されるアドレスとデータを取り込んで前記メモリに複製記憶する請求項１に記載のデータ転送装置。
【請求項３】
前記コントローラは、前記システムバス上の少なくとも一つのデバイスコントローラのデータ出力イネーブル信号線をモニタし、該データ出力イネーブル信号線がアサートされたときに、前記システムバス上で転送されるアドレスとデータを取り込んで前記メモリに複製記憶する請求項１に記載のデータ転送装置。
【請求項４】
前記コントローラは、前記システムバス上の少なくとも一つのデバイスコントローラのデータ出力ストローブ信号線をモニタし、該データ出力ストローブ信号線がアサートされたときに、前記システムバス上で転送されるアドレスとデータを取り込んで前記メモリに複製記憶する請求項１に記載のデータ転送装置。
【請求項５】
システムバスとローカルバスとの間に接続可能なデータ転送装置であって、
メモリと、
前記メモリのデータ入出力を制御するコントローラを備え、
前記コントローラは、
前記ローカルバス上のデバイス間で転送されているアドレスが前記メモリに記憶されていない場合に、前記ローカルバス上のデバイス間で転送されているデータと前記アドレスを前記メモリに複製記憶し、
前記システムバスからのデータ転送要求を受け付け、該データ転送要求の示す転送元アドレスが前記メモリに記憶したアドレスに含まれている場合は、前記メモリから該当するデータを読み出して前記システムバスに転送することを特徴とするデータ転送装置。
【請求項６】
前記コントローラは、前記ローカルバスにおいて、あるデバイスから他のデバイスへのデータの書き込みサイクルが発生していることを判別すれば、前記デバイス間で転送されるアドレスとデータを取り込んで前記メモリに複製記憶する請求項５に記載のデータ転送装置。
【請求項７】
前記コントローラは、前記ローカルバス上の少なくとも一つのデバイスコントローラのデータ出力イネーブル信号線をモニタし、該データ出力イネーブル信号線がアサートされたときに、前記ローカルバス上で転送されるアドレスとデータを取り込んで前記メモリに複製記憶する請求項５に記載のデータ転送装置。
【請求項８】
前記コントローラは、前記ローカルバス上の少なくとも一つのデバイスコントローラのデータ出力ストローブ信号線をモニタし、該データ出力ストローブ信号線がアサートされたときに、前記ローカルバス上で転送されるアドレスとデータを取り込んで前記メモリに複製記憶する請求項５に記載のデータ転送装置。
【請求項９】
システムバスとローカルバスとの間に接続可能なデータ転送装置であって、
メモリと、
前記メモリのデータ入出力を制御するコントローラを備え、
前記コントローラは、
前記システムバス上のデバイス間で転送されている第1のアドレスが前記メモリに記憶されていない場合に、システムバス上のデバイス間で転送されている第1のデータと前記第1のアドレスを前記メモリに複製記憶し、
前記ローカルバス上のデバイス間で転送されている第2のアドレスが前記メモリに記憶されていない場合に、ローカルバス上のデバイス間で転送されている第2のデータと前記第2のアドレスを前記メモリに複製記憶し、
前記ローカルバスからのデータ転送要求を受け付け、該データ転送要求の示す転送元アドレスが前記メモリに記憶したアドレスに含まれている場合は、前記メモリから該当するデータを読み出して前記ローカルバスに転送し、
前記システムバスからのデータ転送要求を受け付け、該データ転送要求の示す転送元アドレスが前記メモリに記憶したアドレスに含まれている場合は、前記メモリから該当するデータを読み出して前記システムバスに転送することを特徴とするデータ転送装置。