JP2008171436A - データ転送装置および方法 - Google Patents

データ転送装置および方法 Download PDF

Info

Publication number
JP2008171436A
JP2008171436A JP2008014086A JP2008014086A JP2008171436A JP 2008171436 A JP2008171436 A JP 2008171436A JP 2008014086 A JP2008014086 A JP 2008014086A JP 2008014086 A JP2008014086 A JP 2008014086A JP 2008171436 A JP2008171436 A JP 2008171436A
Authority
JP
Japan
Prior art keywords
data
address
associative memory
bus
data transfer
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.)
Granted
Application number
JP2008014086A
Other languages
English (en)
Other versions
JP4538054B2 (ja
Inventor
Kenichi Kawaguchi
謙一 川口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2008014086A priority Critical patent/JP4538054B2/ja
Publication of JP2008171436A publication Critical patent/JP2008171436A/ja
Application granted granted Critical
Publication of JP4538054B2 publication Critical patent/JP4538054B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

【課題】 システムバスとローカルバスの間で高速にデータを転送するデータ転送装置を提供する。
【解決手段】 バスブリッジ101がシステムバス132とローカルバス137との間に接続され、システムバス132上で、CPU133とI/O機器136と主記憶装置135との間で転送されるデータを連想メモリ制御部105を介して連想メモリ106に保持し、ローカルバス137上のI/O機器138からこのデータへのアクセスが生じた場合、連想メモリ106からI/O機器138にデータを転送する。従って、I/O機器138から主記憶装置135へのデータ転送要求が生じたとき、このデータが連想メモリ106に保持されていればシステムバス132上でバスサイクルが発生しないので、高速にデータを転送することができる。
【選択図】 図1

Description

本発明はデータ転送装置および方法に関するものである。特に、ローカルバスからシステムバス上の記憶装置のデータへのアクセス、システムバス上からローカルバス上の記憶装置のデータへのアクセスにおけるデータ転送を効率化したデータ転送装置および方法に関する。
従来、CPUの接続したシステムバスとI/O機器の接続したローカルバスの間でのデータ転送は、バスブリッジを介して行い、I/O機器からシステムバス上の主記憶装置にあるデータにアクセスする場合、バスブリッジにリクエストを出し、バスブリッジがシステムバスの使用権を獲得し、システムバス上で主記憶装置に対してリードサイクルを発生させ、データを取得後、ローカルバスにデータを転送していた。
次に、従来のデータ転送装置について、図を用いて詳しく説明する。
図7は従来のデータ転送装置の概念を示した概略構成図である。図7において、1はCPU、2はバス調停部、3は主記憶装置、4はI/O機器、5はバスブリッジ、6はブリッジ制御部、7はバス調停部、8はアドレス・データ制御部である。CPU1とバス調停部2と主記憶装置3はシステムバス上に設けられ、I/O機器4はローカルバス上に設けられている。
図8は上述した従来のデータ転送装置でバスブリッジを介してローカルバス上のI/O機器4が主記憶装置3からデータを転送する場合のタイミングチャートを示す図である。一例として主記憶装置3内のアドレス4000からデータを転送する場合を示した。
図8において、51から56まではシステムバスの状態を示しており、51はシステムバスの使用権の状態、52はバスブリッジ5からバス調停部2へのリクエスト信号線の状態、53はバス調停部2からバスブリッジ5へのアクノリッジ信号線の状態、54はシステムバスのアドレス線の状態、55はシステムバスのデータ線の状態、56はシステムバスのリード/ライト線の状態を示している。57から61まではローカルバスの状態を示しており、57はI/O機器4からバス調停部7へのリクエスト信号線の状態、58はバス調停部7からI/O機器4へのアクノリッジ信号線の状態、59はローカルバスのアドレス線の状態、60はローカルバスのデータ線の状態、61はローカルバスのリード/ライト線の状態を示している。
図8のタイミングチャートにおいて、I/O機器4からデータ転送要求が発生するのに先立って、71から78に示すように、システムバス上でCPU1が主記憶装置3内のアドレス4000、4004、4008にデータをライトしている動作が行われているものとする。
このシステムバス9において主記憶装置3に対するデータのライト動作が行われている間に、I/O機器4から主記憶装置3内のアドレス4000へのデータリード要求が発生した場合の動作を説明する。
まず、79に示すように、リクエスト信号線がアサートされ、バス調停部7に対してバス使用権が要求される。次に、80に示すように、アクノリッジ信号線がバス調停部7によってアサートされ、次に、81に示すように、バス調停部7はバス調停部2に対してリクエスト信号線をアサートしてシステムバスの使用権を要求する。また、82に示すように、I/O機器4によってローカルバスにアドレス4000がドライブされる。
ここで、バス調停部2はシステムバスの使用権を付与するタイミングを調整する。バス調停部2は、システムバス上で実行されているデータ転送が終了するまでバス調停部7に対するアクノリッジ信号線をアサートせず、CPU1がデータ転送を終了してから83に示すように、アクノリッジ信号線をアサートしてバスブリッジ5に対してバスの使用を許可する。次に、84に示すようにアドレス・データ制御部8からアドレス4000がシステムバスにドライブされ、85に示すように、主記憶装置4からデータが送られる。次に、86に示すように、このデータがローカルバスにドライブされてI/O機器4が受け取ることにより、データ転送が終了する。
しかしながら、上記従来のデータ転送装置では、システムバスが使用中であれば、バス調停部2およびバス調停部7の連携によるバス調停が行われるため、バスブリッジ5がシステムバスの使用権を得て、システムバス上の主記憶装置3にアクセスし、主記憶装置3からデータをバスブリッジ5に転送するまでに遅延時間が発生し、データ転送が遅くなるという課題がある。
本発明は上記課題を解決するため、従来のようなバス調停実行によるバス使用権の取得によらず、ローカルバスからシステムバス上の記憶装置内のデータへのアクセスおよびシステムバス上からローカルバス上の記憶装置内のデータへのアクセスにおけるデータ転送を効率化したデータ転送装置および方法を提供することを目的とする。
上記の課題を解決するため、本発明の第1のデータ転送装置は、システムバスとローカルバスとの間に接続された連想メモリと、前記連想メモリのデータ入出力を制御するコントローラを備え、前記コントローラは、前記システムバス上のデバイス間で転送されているアドレスとデータを取り込んで前記連想メモリに複製記憶し、前記ローカルバスからのデータ転送要求を受け付け、該データ転送要求の示す転送元アドレスが前記連想メモリに記憶したアドレスに含まれている場合は、前記連想メモリから該当するデータを読み出して前記ローカルバスに転送することを特徴とする。
上記構成により、システムバス上のデバイス間で転送されているアドレスとデータを取り込んで連想メモリに複製記憶しておくので、ローカルバスからのデータ転送要求における指定アドレスが当該連想メモリ内に取り込んだデータに対応するものであれば、システムバスの記憶装置のデータに代えて連想メモリ内のデータをローカルバスに転送することができる。つまり、直接システムバスにアクセスする必要がなく、バス調停に起因するデータ転送の遅延が発生せず、データ転送の効率化を図ることができる。
また、本発明のデータ転送装置において、前記コントローラは、前記システムバスにおいて、あるデバイスから他のデバイスへのデータの書き込みサイクルが発生していることを判別すれば、前記デバイス間で転送されるアドレスとデータを取り込んで前記連想メモリに複製記憶することが好ましい。
上記構成により、本発明のデータ転送装置の連想メモリにおいて取り込むべきデータを特定し、取り込むタイミングをシステムバスにおけるあるデバイスから他のデバイスへのデータの書き込みサイクルが発生のタイミングとすることができる。
また、本発明のデータ転送装置において、前記コントローラは、前記システムバス上の少なくとも一つのデバイスコントローラのデータ出力イネーブル信号線をモニタし、該データ出力イネーブル信号線がアサートされたときに、前記システムバス上で転送されるアドレスとデータを取り込んで前記連想メモリに複製記憶することが好ましい。
上記構成により、本発明のデータ転送装置の連想メモリにおいて取り込むべきデータを特定し、取り込むタイミングをシステムバス上の少なくとも一つのデバイスコントローラのデータ出力イネーブル信号線のアサートのタイミングとすることができる。
また、本発明のデータ転送装置において、前記コントローラは、前記システムバス上の少なくとも一つのデバイスコントローラのデータ出力ストローブ信号線をモニタし、該データ出力ストローブ信号線がアサートされたときに、前記システムバス上で転送されるアドレスとデータを取り込んで前記連想メモリに複製記憶することが好ましい。
上記構成により、本発明のデータ転送装置の連想メモリにおいて取り込むべきデータを特定し、取り込むタイミングをシステムバス上の少なくとも一つのデバイスコントローラのデータ出力ストローブ信号線のアサートのタイミングとすることができる。
また、本発明のデータ転送装置において、前記コントローラは、前記ローカルバスから受け付けたデータ転送要求の示す転送元アドレスが前記連想メモリに記憶したアドレスに含まれていない場合は、前記データ転送要求に対して転送処理が完了していないアドレスを示すデータ有効情報を第2の連想メモリに記憶し、前記システムバス上のデバイス間で転送されているアドレスとデータを取り込み、該取り込んだアドレスが前記データ有効情報の示すアドレスである場合は、前記ローカルバスに対して前記データ転送要求に対応するデータとして転送することが好ましい。
上記構成により、本発明のデータ転送装置の連想メモリ内に、ローカルバスから受け付けたデータ転送要求に相当する転送元アドレスのデータが含まれていない場合であっても、すぐにシステムバスへの割り込みを掛けることなく、第2の連想メモリに取り込み指定を示すデータ有効情報を保持しておくことができ、バス使用権確保を待つ間に第1の連想メモリからのデータ転送が可能となれば、データを転送することができ、データ転送の効率化を図ることができる。
次に、本発明の第2のデータ転送装置は、システムバスとローカルバスとの間に接続された連想メモリと、前記連想メモリのデータ入出力を制御するコントローラを備え、前記コントローラは、前記ローカルバス上のデバイス間で転送されているアドレスとデータを取り込んで前記連想メモリに複製記憶し、前記システムバスからのデータ転送要求を受け付け、該データ転送要求の示す転送元アドレスが前記連想メモリに記憶したアドレスに含まれている場合は、前記連想メモリから該当するデータを読み出して前記システムバスに転送することを特徴とする。
上記構成により、ローカルバス上のデバイス間で転送されているアドレスとデータを取り込んで連想メモリに複製記憶しておくので、システムバスからのデータ転送要求における指定アドレスが当該連想メモリ内に取り込んだデータに対応するものであれば、ローカルバスの記憶装置のデータに代えて連想メモリ内のデータをシステムバスに転送することができる。つまり、直接ローカルバスにアクセスする必要がなく、バス調停に起因するデータ転送の遅延が発生せず、データ転送の効率化を図ることができる。
また、本発明のデータ転送装置において、前記コントローラは、前記ローカルバスにおいて、あるデバイスから他のデバイスへのデータの書き込みサイクルが発生していることを判別すれば、前記デバイス間で転送されるアドレスとデータを取り込んで前記連想メモリに複製記憶することが好ましい。
上記構成により、本発明のデータ転送装置の連想メモリにおいて取り込むべきデータを特定し、取り込むタイミングをローカルバスにおけるあるデバイスから他のデバイスへのデータの書き込みサイクルが発生のタイミングとすることができる。
また、本発明のデータ転送装置において、前記コントローラは、前記ローカルバス上の少なくとも一つのデバイスコントローラのデータ出力イネーブル信号線をモニタし、該データ出力イネーブル信号線がアサートされたときに、前記ローカルバス上で転送されるアドレスとデータを取り込んで前記連想メモリに複製記憶することが好ましい。
上記構成により、本発明のデータ転送装置の連想メモリにおいて取り込むべきデータを特定し、取り込むタイミングをローカルバス上の少なくとも一つのデバイスコントローラのデータ出力イネーブル信号線のアサートのタイミングとすることができる。
また、本発明のデータ転送装置において、前記コントローラは、前記ローカルバス上の少なくとも一つのデバイスコントローラのデータ出力ストローブ信号線をモニタし、該データ出力ストローブ信号線がアサートされたときに、前記ローカルバス上で転送されるアドレスとデータを取り込んで前記連想メモリに複製記憶することが好ましい。
上記構成により、本発明のデータ転送装置の連想メモリにおいて取り込むべきデータを特定し、取り込むタイミングをローカルバス上の少なくとも一つのデバイスコントローラのデータ出力ストローブ信号線のアサートのタイミングとすることができる。
また、本発明のデータ転送装置において、前記コントローラは、前記システムバスから受け付けたデータ転送要求の示す転送元アドレスが前記連想メモリに記憶したアドレスに含まれていない場合は、前記データ転送要求に対して転送処理が完了していないアドレスを示すデータ有効情報を第2の連想メモリに記憶し、前記ローカルバス上のデバイス間で転送されているアドレスとデータを取り込み、該取り込んだアドレスが前記データ有効情報の示すアドレスである場合は、前記システムバスに対して前記データ転送要求に対応するデータとして転送することが好ましい。
上記構成により、本発明のデータ転送装置の連想メモリ内に、システムバスから受け付けたデータ転送要求に相当する転送元アドレスのデータが含まれていない場合であっても、すぐにローカルバスへの割り込みを掛けることなく、第2の連想メモリに取り込み指定を示すデータ有効情報を保持しておくことができ、バス使用権確保を待つ間に第1の連想メモリからのデータ転送が可能となれば、データを転送することができ、データ転送の効率化を図ることができる。
次に、本発明の第3のデータ転送装置は、システムバスとローカルバスとの間に接続された連想メモリと、前記連想メモリのデータ入出力を制御するコントローラを備え、前記コントローラは、前記システムバス上のデバイス間で転送されているアドレスとデータを取り込んで前記連想メモリに複製記憶し、前記ローカルバス上のデバイス間で転送されているアドレスとデータを取り込んで前記連想メモリに複製記憶し、前記ローカルバスからのデータ転送要求を受け付け、該データ転送要求の示す転送元アドレスが前記連想メモリに記憶したアドレスに含まれている場合は、前記連想メモリから該当するデータを読み出して前記ローカルバスに転送し、前記システムバスからのデータ転送要求を受け付け、該データ転送要求の示す転送元アドレスが前記連想メモリに記憶したアドレスに含まれている場合は、前記連想メモリから該当するデータを読み出して前記システムバスに転送することを特徴とする。
上記構成により、システムバス上およびローカルバス上のデバイス間で転送されているアドレスとデータを取り込んで連想メモリに複製記憶しておくので、システムバスからのデータ転送要求における指定アドレスまたはローカルバスからのデータ転送要求における指定アドレスが当該連想メモリ内に取り込んだデータに対応するものであれば、システムバスまたはローカルバスの記憶装置のデータに代えて連想メモリ内のデータをシステムバスに転送することができる。つまり、直接システムバスまたはローカルバスにアクセスする必要がなく、バス調停に起因するデータ転送の遅延が発生せず、データ転送の効率化を図ることができる。
以上説明したように、システムバス上にドライブされたアドレス情報とデータ情報をバスブリッジ内の連想メモリに保持することにより、このアドレスへのリードアクセスがローカルバス上のバスマスタから発生した場合、システムバスの使用権を獲得する必要や、システムバス上のリードサイクルを発生させる必要がないので、早急にバスマスタにデータを転送することが可能となる。
また、ローカルバス上にドライブされたアドレス情報とデータ情報をバスブリッジ内の連想メモリに保持することにより、このアドレスへのリードアクセスがシステムバス上のバスマスタから発生した場合、ローカルバスの使用権を獲得する必要や、ローカルバス上のリードサイクルを発生させる必要がないので、早急にバスマスタにデータを転送することが可能である。
以下、本発明の実施形態について、図面を参照しながら説明する。
(実施形態1)
図1は本発明の実施形態1にかかるデータ転送装置の概略構成図である。
まず、図1の各要素の説明を行う。図1において、101はバスブリッジ、102はブリッジ制御部、103はバス調停部、104はアドレス・データ制御部である。105は連想メモリ制御部、106は連想メモリ、107はアドレス比較部である。108は第2の連想メモリである。この実施形態1の例は、第2の連想メモリ108を含んだ構成としている。第2の連想メモリの働きは、ローカルバスから受け付けたデータ転送要求の示す転送元アドレスが連想メモリ106に記憶したアドレスに含まれていない場合に、データ転送要求に対して転送処理が完了していないアドレスを示すデータ有効情報を記憶しておくものであり、未処理のデータ転送要求を一時的に保持しておく効果を持つ。その後、システムバス上のデバイス間で転送されているアドレスとデータのバッファリング処理において取り込まれたアドレスがデータ有効情報の示すアドレスであるか否かを確認することにより、未処理のデータ転送要求にかかるデータが取りこまれたか否かを確認することができる。データ有効情報の示すアドレスと一致する場合は取りこんだデータをローカルバスに対してデータ転送要求に対応するデータとして転送する処理が可能となる。
109から112は連想メモリ106の各エントリの構成要素であり、109はエントリ番号、110はアドレス情報、111はデータ情報、112は有効ビットである。また、113から116は第2の連想メモリ108の構成要素であり、113はアドレス情報、114はデータ情報、115はアドレス有効ビット、116はデータ有効ビットである。
次に、117から124は連想メモリ106と連想メモリ制御部105の間の信号線であり、117はライトエントリセレクト信号線、118はライトイネーブル信号線、119はライトアドレス情報信号線、120はライトデータ情報信号線、121はリードエントリセレクト信号線、122はリードアドレス情報信号線、123はリードデータ情報信号線、124は有効ビット信号線である。
125はプロトコルチェッカ、126および127はチップセレクト信号線、128は出力イネーブル信号線、129はデータ・アクノリッジ信号線であり、CPU1とプロトコルチェッカ125の間の信号線である。130はリクエスト信号線、131はアクノリッジ信号線、132はシステムバス、133はCPU、134はバス調停部、135は主記憶装置、136はI/O機器、137はローカルバス、138はI/O機器、139はリクエスト信号線、140はアクノリッジ信号線である。
このうち、バスブリッジ101、CPU133、主記憶装置135、I/O機器136はシステムバス132上で接続しており、また、バスブリッジ101、I/O機器138、はローカルバス137上で接続している。
バスブリッジ101全体の動作は、CPU133からローカルバス137上のデバイスへのアクセスサイクルがシステムバス132上で発生した場合、そのサイクルをローカルバス137上のサイクルに変換する。また、I/O機器138からシステムバス132上の主記憶装置135へのアクセスサイクルが発生した場合、バス調停部103からリクエスト信号線130を通じてバス調停部134にシステムバス132の使用権のリクエストを出し、アクノリッジ信号線131を通じてアクノレッジを受け取ると、そのサイクルをシステムバス132上のサイクルに変換する。
ブリッジ制御部102、バス調停部103、アドレス・データ制御部104、連想メモリ制御部105、連想メモリ106、アドレス比較部107、第2の連想メモリ108はバスブリッジ101の内部に存在する構成要素である。
ブリッジ制御部102は、バスブリッジ101全体の動作の制御を行うものである。
バス調停部103は、バスブリッジ101とI/O機器138のローカルバス使用権の調停を行うものである。
アドレス・データ制御部104は、システムバス132上のサイクルとローカルバス137上のサイクルとの変換を相互に行う機能を持つ。また、連想メモリ制御部105、アドレス比較部107、第2の連想メモリ108とも接続し、連想メモリ制御部105とのアドレス、データの入出力を制御するものである。
連想メモリ制御部105は、連想メモリ106へのデータ入出力の制御を行うものであり、連想メモリ106とライトエントリセレクト信号線117、ライトイネーブル信号線118、ライトアドレス情報信号線119、ライトデータ情報信号線、リードエントリセレクト信号線120、リードエントリセレクト信号線121、リードアドレス情報信号線122、リードデータ情報信号線123、有効ビット124で接続されている。また、第2の連想メモリ108とも接続され、データの入出力の制御を行う。また、内部にチップセレクト信号線126、127、出力イネーブル信号線128およびデータ・アクノリッジ信号線129と接続されたプロトコルチェッカ125をもち、バスサイクルを検知し、システムバス132上のサイクルがリードサイクルのときは、これらの信号線から連想メモリ106もしくは第2の連想メモリ108にデータを転送するタイミングであると判別する。
チップセレクト信号線126は、CPU133から主記憶装置135へのチップセレクト信号線であり、チップセレクト信号線127は、CPU133からI/O機器136へのチップセレクト信号線である。
連想メモリ106は4つのエントリからなり、各エントリはエントリ番号109、アドレス情報110、データ情報111、有効ビット112から成る。ライトイネーブル信号線118がオンのとき、ライトエントリセレクト信号線117で指定されたエントリ番号をもつエントリのアドレス情報110、データ情報111を、それぞれライトアドレス情報信号線119の値と、ライトデータ情報信号線120の値で上書きすると同時に、有効ビット112をオンにする。また、リードエントリセレクト信号線121で指定されたエントリ番号をもつエントリのアドレス情報110、データ情報111を、それぞれリードアドレス情報信号線122と、リードデータ情報信号線123にドライブする。
バス調停部103とバス調停部134はリクエスト信号線130とアクノリッジ信号線131で接続されている。また、バス調停部103はI/O機器138とリクエスト信号線139およびアクノリッジ信号線140で接続されている。
アドレス比較部107はアドレス・データ制御部104および連想メモリ制御部105と接続されており、双方から受けるアドレスの値が一致するとき、ブリッジ制御部102に通知する。
第2の連想メモリ108は、連想メモリ制御部105と接続され、ローカルバスからのデータ転送要求に対して該当するデータが連想メモリ106に含まれていない場合に連想メモリ制御部105から当該データ転送要求にかかるアドレスが書き込まれる。当該アドレスをアドレス情報113に保持し、アドレス有効ビット115をオンにする。また、データが書き込まれると、それをデータ情報114に保持し、データ有効ビット116をオンにする。このアドレス有効ビット115、データ有効ビット116がオンとなることにより未処理のデータ転送要求が存在していることが示される。バッファリング処理が進み、データ転送要求にかかるデータが取り込まれる際、第2の連想メモリ108から該当するアドレスおよびデータが読み出されると、連想メモリ制御部105にアドレス情報113の値とデータ情報114の値を転送し、同時にアドレス有効ビット115およびデータ有効ビット116をオフにする。
CPU133は内部に持っているバス調停部134がCPU133にシステムバス132の使用権を与えているとき、主記憶装置135、I/O機器136、I/O機器138のいずれかにアクセスしてデータの入出力を行い、また、これらのデータを用いて演算処理を行う。
なお、この例では、主記憶装置135にはアドレス0から6FFFのアドレス空間が割り当てられているとする。
また、I/O機器136はアドレス7000から7FFFのアドレス空間が割り当てられているとする。
バス調停部134はCPU133とバスブリッジ101のシステムバス132の使用権の調停を行う。
次に、本実施形態1のデータ転送装置の動作を図を用いて説明する。
図2は本実施形態1の動作を表すフロー図である。図2において、201は、システムバスサイクル発生判別処理であり、202は、データバッファリング処理であり、203は、ローカルバスリクエスト発生判別処理であり、204は、バッファデータ転送処理である。
システムバスサイクル発生判別処理201は、アドレス・データ制御部104において、システムバス132上にサイクルが発生しているかどうかを判別する処理であり、サイクルが発生しているとき、データバッファリング処理202に移行し、発生していないとき、ローカルバスリクエスト発生判別処理203に移行する。つまり、システムバス132にバスサイクルが発生している場合にはシステムバス132上で転送されているデータを連想メモリ106に取りこむためのデータバッファリング処理202に移行し、システムバス132にバスサイクルが発生していない場合には、ローカルバスからのリクエストによるデータ転送処理のためにバス調停が実行されているのか否かを判定する処理に移行する。
データバッファリング処理202は、システムバス132上のサイクルで転送されているデータを連想メモリ106もしくは第2の連想メモリ108にバッファリングする処理であり、この処理を終えると、ローカルバスリクエスト発生判別処理203に移行する。
ローカルバスリクエスト発生判別処理203は、バス調停部103において、リクエスト信号線139がアサートされているかどうかを判別する処理であり、リクエストが発生しているとき、バッファデータ転送処理204に移行し、発生していないとき、システムバスサイクル発生判別処理201に戻って処理を続行する。
バッファデータ転送処理204は、ローカルバス137からのデータ転送要求に対して、データを連想メモリ106もしくは第2の連想メモリ108にバッファリングされているデータを転送する処理であり、この処理を終えると、システムバスサイクル発生判別処理201に戻って処理を続行する。
次に、上記のデータバッファリング処理202を詳しく示す。図3はデータバッファリング処理202の詳しい動作を表すフロー図である。図3において、301は、バスブリッジターゲット判別処理、302は、システムバスターゲット処理、303は、アドレス保持処理、304は、アドレス有効ビット判別処理、305は、第2の連想メモリアドレス情報判別処理、306は、サイクル判別処理、307は、第2の連想メモリデータ情報転送処理、308は、ターゲット判別処理、309は、第2の連想メモリOE同期データ情報転送処理、310は、第2の連想メモリDACK同期データ情報転送処理、311は、第2の連想メモリデータ情報有効化処理、312は、エントリ番号選択処理、313は、アドレス情報転送処理、314は、サイクル判別処理、315は、データ情報転送処理、316は、ターゲット判別処理、317は、OE同期データ情報転送処理、318は、DACK同期データ情報転送処理である。
バスブリッジターゲット判別処理301は、アドレス・データ制御部104において、バスブリッジ101が現在のシステムバス132上のサイクルのターゲットであるかどうかを判別する処理であり、ターゲットであるとき、システムバスターゲット処理302に移行し、ターゲットでないとき、アドレス保持処理303に移行する。つまり、バスブリッジ101が現在のシステムバス132上のサイクルのターゲットである場合とは、システムバスからローカルバス上のリソースにアクセスが要求されている場合を指し、この場合は、システムバスターゲット処理302に進み、バッファリング処理202を一旦終了させることとなる。
システムバスターゲット処理302は、アドレス・データ制御部104において、バスブリッジ101が現在のシステムバス132上のサイクルのターゲットとして応答する処理であり、この処理を終えると、このデータバッファリング処理202を終了する。
アドレス保持処理303は、アドレス・データ制御部104において、システムバスからドライブされたアドレス信号線の値を保持する処理であり、この処理を終えると、アドレス有効ビット判別処理304に移行する。
アドレス有効ビット判別処理304は、連想メモリ制御部105において、現在未処理であるデータ転送要求が存在していることを示すアドレス有効ビット115がオンかオフかを判別する処理である。オンであるとき、今回のバッファリング処理において取り込むデータが未処理であるデータ転送要求にかかるものであるか否かを確認すべく、第2の連想メモリアドレス情報判別処理305に移行し、オフであるとき、現在未処理であるデータ転送要求は存在していないので今回のバッファリング処理において取り込むデータを連想メモリ106に格納するためエントリ番号選択処理312に移行する。
第2の連想メモリアドレス情報判別処理305は、アドレス比較部107において、アドレス保持処理303で保持されたアドレスと、アドレス情報113に保持されたアドレスとが一致するかどうかを判別する処理であり、一致するとき、今回のバッファリング処理において取り込むデータが未処理であるデータ転送要求にかかるものであるのでサイクル判別処理306に移行し、一致しないとき、今回のバッファリング処理において取り込むデータが未処理であるデータ転送要求にかかるものではないので、取り込んだデータを連想メモリ106に格納するためエントリ番号選択処理312に移行する。
サイクル判別処理306は、アドレス・データ制御部104において、現在のシステムバス132上のサイクルがリードサイクルであるかどうかを判別する処理で、リードサイクルであるとき、ターゲット判別処理308に移行し、そうでないとき、第2の連想メモリデータ情報転送処理307に移行する。つまり、リードサイクルである場合にはシステムバス上のどのリソースから当該情報が読み出されるのかを判別する処理に移行し、リードサイクルでなく書き込みサイクルである場合には現在データ線にドライブされている情報を取り込む処理に移行する。
第2の連想メモリデータ情報転送処理307は、第2の連想メモリ108において、アドレス情報113にアドレスを書き込む処理であり、この処理を終えると、第2の連想メモリデータ情報有効化処理311に移行する。
ターゲット判別処理308は、プロトコルチェッカ125において、チップセレクト信号線126、127からバスターゲットが主記憶装置135であるか、I/O機器136であるかを判別する処理であり、主記憶装置135であるとき、第2の連想メモリOE同期データ情報転送処理309に移行し、I/O機器136であるとき、第2の連想メモリDACK同期データ情報転送処理310に移行する。
第2の連想メモリOE同期データ情報転送処理309は、連想メモリ制御部105およびプロトコルチェッカ125において、出力イネーブル信号線128がアサートされたとき、アドレス・データ制御部104からドライブされているデータ線の値を第2の連想メモリ108のデータ情報114に書き込む処理であり、この処理を終えると、第2の連想メモリデータ情報有効化処理311に移行する。
第2の連想メモリDACK同期データ情報転送処理310は、連想メモリ制御部105およびプロトコルチェッカ125において、データ・アクノリッジ信号線129がアサートされたとき、システムバス132のデータ信号線にドライブされているの値をアドレス・データ制御部104を通じて、第2の連想メモリ108のデータ情報114に書き込む処理であり、この処理を終えると、第2の連想メモリデータ情報有効化処理311に移行する。
第2の連想メモリデータ情報有効化処理311は、連想メモリ制御部105において、第2の連想メモリ108のデータ有効ビット116をオンにする処理であり、この処理を終えると、データバッファリング処理202を終了する。
エントリ番号選択処理312は、連想メモリ制御部105において、アドレス保持処理204で保持されたアドレスの値から、エントリを選択する処理であり、ここでは、具体的に、アドレスの下位4ビットの16進数表現での値が0、8の場合、0を選択し、それ以外の場合、1を選択し、選択した値をライトエントリセレクト信号線117にドライブする処理である。この処理を終えると、アドレス情報転送処理313に移行する。
アドレス情報転送処理313は、連想メモリ制御部105において、ライトアドレス情報信号線119にアドレス保持処理204で保持されたアドレスをドライブする処理であり、この処理を終えると、サイクル判別処理314に移行する。
サイクル判別処理314は、アドレス・データ制御部104において、現在のシステムバス132上のサイクルがリードサイクルであるかどうかを判別する処理で、リードサイクルであるとき、ターゲット判別処理316に移行し、そうでないとき、データ情報転送処理315に移行する。つまり、リードサイクルである場合にはシステムバス上のどのリソースから情報が読み出されるのかを判別する処理に移行し、リードサイクルでなく書き込みサイクルである場合には現在データ線にドライブされている情報を取り込む処理に移行する。
データ情報転送処理315は、連想メモリ制御部105において、ライトデータ情報信号線120にデータをドライブし、また、ライトイネーブル信号線118をアサートし、連想メモリ106にアドレス情報とデータ情報を書込む処理であり、この処理終えると、データバッファリング処理202を終了する。
ターゲット判別処理316は、プロトコルチェッカ125において、チップセレクト信号線126、127からバスターゲットが主記憶装置135であるか、I/O機器136であるかを判別する処理であり、主記憶装置135であるとき、OE同期データ情報転送処理317に移行し、I/O機器136であるとき、DACK同期データ情報転送処理318に移行する。
OE同期データ情報転送処理317は、連想メモリ制御部105およびプロトコルチェッカ125において、出力イネーブル信号線128がアサートされたとき、アドレス・データ制御部104からドライブされているデータ線の値をライトデータ情報信号線120にドライブし、ライトイネーブル信号線118をオンにする処理であり、この処理を終えると、データバッファリング処理202を終了する。
DACK同期データ情報転送処理318は、連想メモリ制御部105およびプロトコルチェッカ125において、データ・アクノリッジ信号線129がアサートされたとき、アドレス・データ制御部104からドライブされているデータ線の値をライトデータ情報信号線120にドライブし、ライトイネーブル信号線118をオンにする処理であり、この処理を終えると、データバッファリング処理202を終了する。
以上が図2のデータバッファリング処理202の詳しい動作である。
次に、図2のバッファデータ転送処理204を詳しく説明する。図4はバッファデータ転送処理204の詳しい動作を表すフロー図である。
図4において、401は、ローカルバスアイドル判別処理であり、402は、アクノリッジアサート処理であり、403は、サイクル判別処理であり、404は、第2の連想メモリデータ判別処理であり、405は、第2の連想メモリデータ転送処理であり、406は、バッファデータ判別処理であり、
407は、バッファデータ転送処理であり、408は、アドレス判別処理であり、
409は、システムバスリクエスト処理であり、410は、システムバスアクノリッジ判別処理であり、411は、システムバスマスタ処理であり、412は、ローカルバスターゲット処理であり、413は、第2の連想メモリアドレス情報有効化処理であり、414は、ローカルバスリトライ応答処理であり、415は、アクノリッジディアサート処理である。
ローカルバスアイドル判別処理401は、バス調停部103において、ローカルバス137がアイドル状態か、もしくはリクエストを受けているローカルバスマスタに現在アクノリッジを出しているかどうかを判別する処理であり、ローカルバス137がアイドル状態か、もしくはリクエストを受けているローカルバスマスタに現在アクノリッジを出しているとき、アクノリッジアサート処理402に移行し、そうでないとき、引き続きローカルバスアイドル判別処理401にとどまる。
アクノリッジアサート処理402は、バス調停部103において、アクノリッジ信号線140をアサートする処理であり、この処理を終えるとサイクル判別処理403に移行する。
サイクル判別処理403は、ブリッジ制御部102においてローカルバス137のサイクル発生を監視し、発生したサイクルがリードサイクルであるかどうかを判別する処理であり、リードサイクルであれば第2の連想メモリデータ判別処理404に移行し、そうでないときアドレス判別処理408に移行する。つまり、ローカルバスがリードサイクルにあれば、ローカルバス上にデータを転送する処理に移行し、リードサイクルでない場合はシステムバス132上のリソースへの書き込み要求であるのでバス調停部134に対してバス調停のリクエストをアサートする処理に移行する。
第2の連想メモリデータ判別処理404は、連想メモリ制御部105において、今回転送するデータが、現在データ転送が未処理であるデータ転送要求としてエントリされたものであるか否かを調べる処理であり、データ有効ビット116がオンのときは、アドレス情報113の値をアドレス比較部107に転送し、アドレス比較部107においてローカルバス137でドライブされているアドレスと一致するかどうかを判別する。一致した場合は、第2の連想メモリデータ転送処理405に移行する。一致しない場合、連想メモリ106中に今回転送するデータが存在するかを確認するため、バッファデータ判別処理406に移行する。また、データ有効ビット116がオフの場合は、現在データ転送が未処理であるデータ転送要求がないので、バッファデータ判別処理406に移行する。
第2の連想メモリデータ転送処理405は、連想メモリ制御部105において、データ情報114からデータを読み出し、アドレス・データ制御部104において、そのデータをローカルバス137にドライブしてローカルバスのサイクルに応答する処理であり、この処理を終えるとバッファデータ転送処理204を終了する。
バッファデータ判別処理406は、連想メモリ制御部105において、ローカルバス137でドライブされているアドレスに該当するエントリ番号の有効ビット112がオンのとき、アドレス情報110からアドレスをアドレス比較部107に転送し、アドレス比較部107において、ローカルバス137でドライブされているアドレスと一致するかどうかを判別する処理で、一致する場合、バッファデータ転送処理407に移行し、一致しない場合、アドレス判別処理408に移行する。つまり、この場合は連想メモリ106内にバッファリングされているデータによってはデータ転送要求に応えることができないため、実際にシステムバス132上のリソースにアクセスする必要があるか否かを確認する処理に移行する。ローカルバス137でドライブされているアドレスに該当するエントリ番号の有効ビット112がオフのとき、アドレス判別処理408に移行する。
バッファデータ転送処理407は、連想メモリ制御部105において、連想メモリ制御部105において、バッファデータ判別処理406で一致したアドレス情報110をもつ連想メモリ106内のエントリのデータ情報111からデータを読み出し、アドレス・データ制御部104において、そのデータをローカルバス137にドライブしてローカルバスのサイクルに応答する処理であり、この処理を終えるとバッファデータ転送処理204を終了する。
アドレス判別処理408は、アドレス・データ制御部104において、ローカルバス137にドライブされたアドレスをデコードし、このアドレスがシステムバス132上のデバイスに割り当てられたメモリ空間にあるとき、システムバスリクエスト処理409に移行し、そうでないとき、バッファデータ転送処理204を終了する。
システムバスリクエスト処理409は、バス調停部103において、リクエスト信号線130をアサートする処理であり、この処理を終えるとシステムバスアクノリッジ判別処理410に移行する。
システムバスアクノリッジ判別処理410は、バス調停部103において、アクノリッジ信号線131がアサートされたかどうかを判別する処理であり、アクノリッジ信号131がアサートされたとき、システムバスマスタ処理411に移行し、そうでないとき、第2の連想メモリアドレス情報有効化処理413に移行する。
システムバスマスタ処理411は、アドレス・データ制御部104において、システムバス132にサイクルを発生させ、ローカルバス137から受けているデータ転送要求をシステムバス上に起こす処理であり、この処理を終えるとローカルバスターゲット処理412に移行する。
ローカルバスターゲット処理412は、アドレス・データ制御部104において、システムバスマスタ処理411で起こしたデータ転送要求の結果をローカルバス137にドライブする処理であり、この処理を終えるとバッファデータ転送処理204を終了する。
第2の連想メモリアドレス情報有効化処理413は、連想メモリ制御部105において、ローカルバス137にドライブされたアドレスをアドレス情報113に転送し、アドレス有効ビット115をオンにする処理であり、この処理を終えると、ローカルバスリトライ応答処理414に移行する。
ローカルバスリトライ応答処理414は、アドレス・データ制御部104において、ローカルバス137に対し、リトライ応答する処理であり、この処理を終えるとアクノリッジディアサート処理415に移行する。
アクノリッジディアサート処理415は、バス調停部103において、アクノリッジ信号線140をディアサートする処理であり、この処理を終えるとバッファデータ転送処理204を終了する。
以上が、図2に示したバッファデータ転送処理204の処理である。
次に、本実施形態1のデータ転送装置の動作を実際のデータ転送を例に説明する。
図5は本実施形態1のデータを用いた動作の一例を示すタイミングチャートを示す図である。
図5において、501は、リクエスト信号線130の状態であり、502は、アクノリッジ信号線131の状態であり、503は、システムバス132のアドレス線の状態であり、504は、システムバス132のデータ線の状態であり、505は、システムバス132のリード/ライト信号線の状態であり、506は、チップセレクト信号線126の状態であり、507は、出力イネーブル信号線128の状態であり、508は、チップセレクト信号線127の状態であり、509は、データ・アクノリッジ信号線129の状態であり、510は、ライトエントリセレクト信号線117の状態であり、511は、ライトイネーブル信号線118の状態であり、512は、ライトアドレス情報信号線119の状態であり、513は、ライトデータ情報信号線120の状態であり、514は、連想メモリ106のエントリ0のアドレス情報110の状態であり、515は、連想メモリ106のエントリ0のデータ情報111の状態であり、516は、連想メモリ106のエントリ1のアドレス情報110の状態であり、517は、連想メモリ106のエントリ1のデータ情報111の状態であり、518は、アドレス有効ビット115の状態であり、519は、アドレス情報113の状態であり、520は、データ有効ビット116の状態であり、521は、データ情報114の状態であり、522は、リードエントリセレクト信号線121の状態であり、523は、リードアドレス情報信号線122の状態であり、524は、リードデータ情報信号線123の状態であり、525は、リクエスト信号線139の状態であり、526は、アクノリッジ信号線140の状態であり、527は、ローカルバス137のリード/ライト信号線の状態であり、528は、ローカルバス137のアドレス線の状態であり、529は、ローカルバス137のデータ線の状態であり、530は、ローカルバス137でのブリッジ101の応答状態である。
まず、システムバスサイクル発生判別処理201で、551から553に示すように、アドレス4020にデータdatawを書込むサイクルが発生しているので、データバッファリング処理202に移行する。
次に、データバッファリング処理202では、まず、バスブリッジターゲット判別処理301が実行されるが、554に示すように、チップセレクト信号線127がアサートされており、バスブリッジ101はこのサイクルのターゲットではないので、アドレス保持処理303に移行する。
次に、アドレス保持処理303では、アドレス・データ制御部104の内部にアドレス4020を保持し、アドレス有効ビット判別処理304に移行する。
次に、アドレス有効ビット判別処理304では、555に示すように、アドレス有効ビット115がオフであるので、エントリ番号選択処理312に移行する。
次に、エントリ番号選択処理312では、アドレス4020からエントリ番号0を選択し、556に示すように、ライトエントリセレクト信号線117に0をドライブし、アドレス情報転送処理313に移行する。
次に、アドレス情報転送処理313では、557に示すように、ライトアドレス情報信号線119にアドレス4020をドライブし、サイクル判別処理314に移行する。
次に、サイクル判別処理314では、553に示すように、このサイクルがライトサイクルであることから、データ情報転送処理315に移行する。
次に、データ情報転送処理315では、558に示すように、ライトデータ情報信号線120にデータdatawをドライブし、また、559に示すように、ライトイネーブル信号線118をアサートし、560、561に示すように、連想メモリ106のエントリ0のアドレス情報110とデータ情報111にそれぞれアドレス4020とデータdatawを書込み、データバッファリング処理202を終了する。
次に、ローカルバスリクエスト発生判別処理203では、562に示すように、リクエスト信号線139がアサートされていないので、システムバスサイクル発生判別処理201に戻る。
次に、システムバスサイクル発生判別処理201で、563、564に示すように、アドレス4000のデータを読み出すサイクルが発生しているので、データバッファリング処理202に移行する。
データバッファリング処理202では、バスブリッジターゲット判別処理301からアドレス情報転送処理313までは、アドレスの値が違うだけで、上に述べたアドレス4020にデータdatawを書込むサイクルの場合と同様の処理がなされる。
次に、サイクル判別処理314では、564に示すように、このサイクルがリードサイクルであることから、ターゲット判別処理316に移行する。
次に、ターゲット判別処理316では、554に示すように、チップセレクト信号線127がアサートされていることから、I/O機器136がバスターゲットであると判別し、DACK同期データ情報転送処理318に移行する。
次に、DACK同期データ情報転送処理318では、565に示すように、データ・アクノリッジ信号線129がアサートされたとき、566に示すように、データdata0をライトデータ情報信号線120にドライブし、567に示すように、ライトイネーブル信号線118をオンにし、568、569に示すように、連想メモリ106のエントリ0のアドレス情報110とデータ情報111にそれぞれアドレス4000とデータdata0を書込み、データバッファリング処理202を終了し、ローカルバスリクエスト発生判別処理203に移行する。
次に、ローカルバスリクエスト発生判別処理203では、570に示すように、リクエスト信号線139がアサートされているので、バッファデータ転送処理204に移行する。
次に、バッファデータ転送処理204では、まず、ローカルバスアイドル判別処理401が実行されるが、ローカルバス137はアイドル状態にあるので、アクノリッジアサート処理402に移行する。
次に、アクノリッジアサート処理402では、571に示すように、アクノリッジ信号線140をアサートし、サイクル判別処理403に移行する。
次に、サイクル判別処理403では、572に示すように、ローカルバス137で発生したサイクルがリードサイクルであるので、第2の連想メモリデータ判別処理404に移行する。
次に、第2の連想メモリデータ判別処理404では、573に示すように、データ有効ビット116がオフなので、バッファデータ判別処理406に移行する。
次に、バッファデータ判別処理406では、574に示すように、ローカルバス137でドライブされているアドレス4008に該当するエントリ番号0のアドレス情報110のアドレスが568に示すように、4000であり、4008と一致しないので、アドレス判別処理408に移行する。
次に、アドレス判別処理408では、ローカルバス137にドライブされたアドレス4008をデコードし、このアドレスがシステムバス132上のデバイスに割り当てられたメモリ空間にあるので、システムバスリクエスト処理409に移行する。
次に、システムバスリクエスト処理409では、575に示すように、リクエスト信号線130をアサートし、システムバスアクノリッジ判別処理410に移行する。
次に、システムバスアクノリッジ判別処理410では、576に示すように、アクノリッジ信号線131がアサートされていないので、第2の連想メモリアドレス情報有効化処理413に移行する。
次に、第2の連想メモリアドレス情報有効化処理413では、577、578に示すように、ローカルバス137にドライブされたアドレス4008をアドレス情報113に転送し、アドレス有効ビット115をオンにし、ローカルバスリトライ応答処理414に移行する。
次に、ローカルバスリトライ応答処理414では、579に示すように、ローカルバス137に対し、リトライ応答し、アクノリッジディアサート処理414に移行する。
次に、アクノリッジディアサート処理414では、580に示すように、アクノリッジ信号線140をディアサートし、バッファデータ転送処理204を終了し、システムバスサイクル発生判別処理201に戻る。
次に、システムバスサイクル発生判別処理201では、564、581に示すように、システムバス132上に、アドレス4008のリードサイクルが発生しているので、データバッファリング処理202に移行する。
次に、データバッファリング処理202では、まず、バスブリッジターゲット判別処理301が実行されるが、554に示すように、チップセレクト信号線127がアサートされており、バスブリッジ101はこのサイクルのターゲットではないので、アドレス保持処理303に移行する。
次に、アドレス保持処理303では、アドレス・データ制御部104の内部にアドレス4008を保持し、アドレス有効ビット判別処理304に移行する。
次に、アドレス有効ビット判別処理304では、578に示すように、アドレス有効ビット115がオンであるので、第2の連想メモリアドレス情報判別処理305に移行する。
次に、第2の連想メモリアドレス情報判別処理305では、アドレス保持処理204で保持されたアドレス4008と、577に示すように、アドレス情報113に保持されたアドレス4008とが一致するので、サイクル判別処理306に移行する。
次に、サイクル判別処理306では、564に示すように、リードサイクルなので、ターゲット判別処理308に移行する。
次に、ターゲット判別処理308では、554に示すように、チップセレクト信号線127がアサートされているので、バスターゲットがI/O機器136であると判別し、第2の連想メモリDACK同期データ情報転送処理310に移行する。
次に、第2の連想メモリDACK同期データ情報転送処理310では、582に示すように、データ・アクノリッジ信号線129がアサートされたとき、583に示す、データ信号線の値data2が、584に示すように、データ情報114に書込まれ、第2の連想メモリデータ情報有効化処理311に移行する。
次に、第2の連想メモリデータ情報有効化処理311では、585に示すように、第2の連想メモリ108のデータ有効ビット116をオンにし、データバッファリング処理202を終了し、ローカルバスリクエスト発生判別処理203に移行する。
続いて、586、587に示すように、アドレス400Cとデータdata3がエントリ1に書込まれ、さらに、588、589に示すように、アドレス4010とデータdata4がエントリ0に書込まれた後、ローカルバスリクエスト発生判別処理203で、590に示す、リクエスト信号線139のアサートが判別され、バッファデータ転送処理204に移行する。
次に、バッファデータ転送処理204では、まず、ローカルバスアイドル判別処理401が実行されるが、ローカルバス137はアイドル状態にあるので、アクノリッジアサート処理402に移行する。
次に、アクノリッジアサート処理402では、591に示すように、アクノリッジ信号線140をアサートし、サイクル判別処理403に移行する。
次に、サイクル判別処理403では、592に示すように、ローカルバス137で発生したサイクルがリードサイクルであるので、第2の連想メモリデータ判別処理404に移行する。
次に、第2の連想メモリデータ判別処理404では、585に示すように、データ有効ビット116がオンなので、577に示す、アドレス情報113の値4008と、593に示す、ローカルバス137でドライブされているアドレス4008が一致するので、第2の連想メモリデータ転送処理405に移行する。
次に、第2の連想メモリデータ転送処理405では、データ情報114から、584に示すデータdata2を読み出し、594に示すように、ローカルバス137のデータ信号線にドライブしてバッファデータ転送処理204を終了する。
この後、595に示すように、ローカルバス137上にアドレス400Cへのリードサイクルが発生しているとき、バッファデータ判別処理406で、586に示す、エントリ番号1のアドレス情報110のアドレス400Cとローカルバス137でドライブされているアドレス400Cが一致していると判別され、バッファデータ転送処理407に移行する。
次に、バッファデータ転送処理407では、エントリ1のデータ情報111から、587に示すデータdata3を読み出し、596に示すように、ローカルバス137のデータ信号線にドライブする。
なお、連想メモリ106のエントリ数は2としたが、1であっても、また、3以上であってもよい。エントリ数が大きいほど効果は大きいが、ブリッジの回路規模が大きくなる。
(実施形態2)
上記の実施形態1に示したデータ転送装置および方法では、ローカルバス137上にはバスブリッジ101以外にはI/O機器138しかデバイスが存在していない例を説明したが、他にもデバイスが存在して、それらのデバイス間でデータ転送が行われるとき、それをバスブリッジ内の別のバッファに保持することにより、システムバス132からこのデータへのアクセスが発生したとき、ローカルバス137にアクセスすることなく、バッファからデータを転送することができる。また、別のバッファを設けることにより、ローカルバス137上のデバイス間で転送され、保持されたデータが、システムバス132上のデバイス間で転送され、保持されるデータで上書きされることがない。図6はそのようなローカルバス用の連想メモリ603を含むバスブリッジの概念図である。図1では、システムバス用の連想メモリ106のみが設けられた構成であったが、本実施形態2の図6の構成では、システムバス用の連想メモリ106に加え、ローカルバス用の連想メモリ604も設けられている。
図6において、601は、バスブリッジであり、602は、ブリッジ制御部であり、603は、連想メモリ制御部であり、604は、連想メモリであり、605は、アドレス比較部であり、606は、第2の連想メモリ、607は、バス調停部であり、608は、DMAコントローラであり、609は、リクエスト信号線であり、610は、アクノリッジ信号線であり、611は、メモリである。
バスブリッジ601は、システムバス132上で転送されるアドレスとデータを連想メモリ106に保持し、また、ローカルバス137上で転送されるアドレスとデータを連想メモリ604に保持し、システムバス132上のサイクルでローカルバス137上のアドレスからのデータ転送要求が発生して、そのデータが連想メモリ604に保持されている場合は、ローカルバスにサイクルを発生させることなく、連想メモリ604に保持されたデータをシステムバス132上に転送する。
ブリッジ制御部602は、バスブリッジ601全体の動作の制御を行う。
連想メモリ制御部603は、連想メモリ604、第2の連想メモリ606と接続し、I/O機器138、DMAコントローラ608、メモリ611の間で転送されるアドレスおよびデータを連想メモリ604もしくは第2の連想メモリ606に転送する。また、CPU133からメモリ611へのリードサイクルが発生した場合、ドライブされているアドレスが連想メモリ604もしくは第2の連想メモリ606に保持されていれば、連想メモリ604もしくは第2の連想メモリ606からデータを読み出し、アドレス・データ制御部104に転送する。
第2の連想メモリ606は、実施形態1で説明した第2の連想メモリ108と同様のものである。連想メモリ制御部603と接続され、ローカルバスからのデータ転送要求に対して該当するデータが連想メモリ604に含まれていない場合に連想メモリ制御部603から当該データ転送要求にかかるアドレスが書き込まれるものである。
バスブリッジ601は、連想メモリ106とは別に連想メモリ604を持っているので、例えばDMAコントローラ608からメモリ611へ書込まれるデータを連想メモリ604に保持することにより、CPU133からこのデータへのアクセスが発生したとき、メモリ611にアクセスすることなく、連想メモリ604からデータを転送することができる。また、このデータが、システムバス132上のデバイス間で転送され、保持されるデータで上書きされることがない。
ローカルバス用の連想メモリ604を中心としたデータ転送処理の詳しい処理動作は、実施形態1で説明したシステムバス用の連想メモリ106を中心としたデータ転送処理の詳しい処理動作と同様に考えることができる。
本発明の実施形態1のデータ転送装置の概略図 実施形態1のデータ転送装置の動作を表すフロー図 データバッファリング処理の詳しい動作を表すフロー図 バッファデータ転送処理の詳しい動作を表すフロー図 実施形態1のデータを用いた動作の一例を示すタイミングチャートを示す図 実施形態2のローカルバス用のバッファを持つバスブリッジの概念図 従来のデータ転送装置の概念図 従来のデータ転送装置の動作のタイミングチャートを示す図
符号の説明
1 CPU
2 バス調停部
3 主記憶装置
4 I/O機器
5 バスブリッジ
6 ブリッジ制御部
7 バス調停部
8 アドレス・データ制御部
51 システムバスの使用権の状態
52 バスブリッジ5からバス調停部2へのリクエスト信号線の状態
53 バス調停部2からバスブリッジ5へのアクノリッジ信号線の状態
54 システムバスのアドレス線の状態
55 システムバスのデータ線の状態
56 システムバスのリード/ライト線の状態
57 I/O機器9からバス調停部7へのリクエスト信号線の状態
58 バス調停部7からI/O機器9へのアクノリッジ信号線の状態
59 ローカルバスのアドレス線の状態
60 ローカルバスのデータ線の状態
61 ローカルバスのリード/ライト線の状態
101 バスブリッジ
102 ブリッジ制御部
103 バス調停部
104 アドレス・データ制御部
105 バッファ制御部
106 バッファ
107 アドレス比較部
108 第2の連想メモリ
109 エントリ番号
110 アドレス情報
111 データ情報
112 有効ビット
113 アドレス情報
114 データ情報
115 アドレス有効ビット
116 データ有効ビット
117 ライトエントリセレクト信号線
118 ライトイネーブル信号線
119 ライトアドレス情報信号線
120 ライトデータ情報信号線
121 リードエントリセレクト信号線
122 リードアドレス情報信号線
123 リードデータ情報信号線
124 有効ビット信号線
125 プロトコルチェッカ
126、127 チップセレクト信号線
128 出力イネーブル信号線
129 データ・アクノリッジ信号線
130 リクエスト信号線
131 アクノリッジ信号線
132 システムバス
133 CPU
134 バス調停部
135 主記憶装置
136 I/O機器
137 ローカルバス
138 I/O機器
139 リクエスト信号線
140 アクノリッジ信号線
601 バスブリッジ
602 ブリッジ制御部
603 バッファ制御部
604 バッファ
605 アドレス比較部
606 第2の連想メモリ
607 バス調停部
608 DMAコントローラ
609 リクエスト信号線
610 アクノリッジ信号線
611 メモリ

Claims (12)

  1. 連想メモリと、
    前記連想メモリのデータ入出力を制御するコントローラを備え、
    前記コントローラは、
    システムバス上のデバイス間で転送されているアドレスとデータを取り込んで前記連想メモリに複製記憶し、
    ローカルバスからのデータ転送要求を受け付け、該データ転送要求の示す転送元アドレスが前記連想メモリに記憶したアドレスに含まれている場合は、前記連想メモリから該当するデータを読み出して前記ローカルバスに転送することを特徴とするデータ転送装置。
  2. 前記コントローラは、前記システムバスにおいて、あるデバイスから他のデバイスへのデータの書き込みサイクルが発生していることを判別すれば、前記デバイス間で転送されるアドレスとデータを取り込んで前記連想メモリに複製記憶する請求項1に記載のデータ転送装置。
  3. 前記コントローラは、前記システムバス上の少なくとも一つのデバイスコントローラのデータ出力イネーブル信号線をモニタし、該データ出力イネーブル信号線がアサートされたときに、前記システムバス上で転送されるアドレスとデータを取り込んで前記連想メモリに複製記憶する請求項1に記載のデータ転送装置。
  4. 前記コントローラは、前記システムバス上の少なくとも一つのデバイスコントローラのデータ出力ストローブ信号線をモニタし、該データ出力ストローブ信号線がアサートされたときに、前記システムバス上で転送されるアドレスとデータを取り込んで前記連想メモリに複製記憶する請求項1に記載のデータ転送装置。
  5. 連想メモリと、
    前記連想メモリのデータ入出力を制御するコントローラを備え、
    前記コントローラは、
    ローカルバス上のデバイス間で転送されているアドレスとデータを取り込んで前記連想メモリに複製記憶し、
    システムバスからのデータ転送要求を受け付け、該データ転送要求の示す転送元アドレスが前記連想メモリに記憶したアドレスに含まれている場合は、前記連想メモリから該当するデータを読み出して前記システムバスに転送することを特徴とするデータ転送装置。
  6. 前記コントローラは、前記ローカルバスにおいて、あるデバイスから他のデバイスへのデータの書き込みサイクルが発生していることを判別すれば、前記デバイス間で転送されるアドレスとデータを取り込んで前記連想メモリに複製記憶する請求項5に記載のデータ転送装置。
  7. 前記コントローラは、前記ローカルバス上の少なくとも一つのデバイスコントローラのデータ出力イネーブル信号線をモニタし、該データ出力イネーブル信号線がアサートされたときに、前記ローカルバス上で転送されるアドレスとデータを取り込んで前記連想メモリに複製記憶する請求項5に記載のデータ転送装置。
  8. 前記コントローラは、前記ローカルバス上の少なくとも一つのデバイスコントローラのデータ出力ストローブ信号線をモニタし、該データ出力ストローブ信号線がアサートされたときに、前記ローカルバス上で転送されるアドレスとデータを取り込んで前記連想メモリに複製記憶する請求項5に記載のデータ転送装置。
  9. 連想メモリと、
    前記連想メモリのデータ入出力を制御するコントローラを備え、
    前記コントローラは、
    システムバス上のデバイス間で転送されているアドレスとデータを取り込んで前記連想メモリに複製記憶し、
    ローカルバス上のデバイス間で転送されているアドレスとデータを取り込んで前記連想メモリに複製記憶し、
    前記ローカルバスからのデータ転送要求を受け付け、該データ転送要求の示す転送元アドレスが前記連想メモリに記憶したアドレスに含まれている場合は、前記連想メモリから該当するデータを読み出して前記ローカルバスに転送し、
    前記システムバスからのデータ転送要求を受け付け、該データ転送要求の示す転送元アドレスが前記連想メモリに記憶したアドレスに含まれている場合は、前記連想メモリから該当するデータを読み出して前記システムバスに転送することを特徴とするデータ転送装置。
  10. システムバスとローカルバスとの間のデータ入出力を制御する方法であって、
    前記システムバス上のデバイス間で転送されているアドレスとデータを取り込んで複製記憶するバッファリング処理と、
    前記ローカルバスからのデータ転送要求を受け付け、該データ転送要求の示す転送元アドレスが前記バッファリング処理において記憶したアドレスに含まれている場合は、該当するデータを読み出して前記ローカルバスに転送する処理を備えたことを特徴とするデータ転送方法。
  11. システムバスとローカルバスとの間のデータ入出力を制御する方法であって、
    前記ローカルバス上のデバイス間で転送されているアドレスとデータを取り込んで複製記憶するバッファリング処理と、
    前記システムバスからのデータ転送要求を受け付け、該データ転送要求の示す転送元アドレスが前記バッファリング処理において記憶したアドレスに含まれている場合は、該当するデータを読み出して前記システムバスに転送する処理を備えたことを特徴とするデータ転送方法。
  12. システムバスとローカルバスとの間のデータ入出力を制御する方法であって、
    前記システムバス上のデバイス間で転送されているアドレスとデータを取り込んで複製記憶する第1のバッファリング処理と、
    前記ローカルバス上のデバイス間で転送されているアドレスとデータを取り込んで複製記憶する第2のバッファリング処理と、
    前記ローカルバスからのデータ転送要求を受け付け、該データ転送要求の示す転送元アドレスが前記第1のバッファリング処理において記憶したアドレスに含まれている場合は、該当するデータを読み出して前記ローカルバスに転送する第1のデータ転送処理と、
    前記システムバスからのデータ転送要求を受け付け、該データ転送要求の示す転送元アドレスが前記第2のバッファリング処理において記憶したアドレスに含まれている場合は、該当するデータを読み出して前記システムバスに転送する第2のデータ転送処理を備えたことを特徴とするデータ転送方法。
JP2008014086A 2008-01-24 2008-01-24 データ転送装置および方法 Expired - Lifetime JP4538054B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008014086A JP4538054B2 (ja) 2008-01-24 2008-01-24 データ転送装置および方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008014086A JP4538054B2 (ja) 2008-01-24 2008-01-24 データ転送装置および方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2000202675A Division JP4097883B2 (ja) 2000-07-04 2000-07-04 データ転送装置および方法

Publications (2)

Publication Number Publication Date
JP2008171436A true JP2008171436A (ja) 2008-07-24
JP4538054B2 JP4538054B2 (ja) 2010-09-08

Family

ID=39699401

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008014086A Expired - Lifetime JP4538054B2 (ja) 2008-01-24 2008-01-24 データ転送装置および方法

Country Status (1)

Country Link
JP (1) JP4538054B2 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05257903A (ja) * 1992-03-11 1993-10-08 Toshiba Corp マルチプロセッサシステム
JPH11338774A (ja) * 1998-05-27 1999-12-10 Nec Corp 情報処理装置及びそのシステムバス最適化方法並びにその制御プログラムを記録した記録媒体

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05257903A (ja) * 1992-03-11 1993-10-08 Toshiba Corp マルチプロセッサシステム
JPH11338774A (ja) * 1998-05-27 1999-12-10 Nec Corp 情報処理装置及びそのシステムバス最適化方法並びにその制御プログラムを記録した記録媒体

Also Published As

Publication number Publication date
JP4538054B2 (ja) 2010-09-08

Similar Documents

Publication Publication Date Title
US7263572B2 (en) Bus bridge and data transfer method
US8028116B2 (en) Data transfer apparatus and data transfer method
US6202107B1 (en) Host controller interface descriptor fetching unit
US5802576A (en) Speculative cache snoop during DMA line update
US20050193155A1 (en) Data transfer apparatus and transfer control program
US8547760B2 (en) Memory access alignment in a double data rate (‘DDR’) system
JP2000029780A (ja) メモリ・ペ―ジ管理
JPH10149332A (ja) Dmaチャネルのサイズデータを受信するdma制御回路及びその方法
US20100306421A1 (en) Dma transfer device
US20080071954A1 (en) Method and bus prefetching mechanism for implementing enhanced buffer control
JP2011070372A (ja) Dma転送制御装置
JP4538054B2 (ja) データ転送装置および方法
JP3061106B2 (ja) バスブリッジおよびそれを備えた計算機システム
JP3747213B1 (ja) シーケンシャルromインターフェース対応nand型フラッシュメモリーデバイス及びそのコントローラ
JP2005165592A (ja) データ転送装置
US8713205B2 (en) Data transfer device and data transfer method
US20020169930A1 (en) Memory access control system, method thereof and host bridge
US20020188771A1 (en) Direct memory access controller for carrying out data transfer by determining whether or not burst access can be utilized in an external bus and access control method thereof
US20070198754A1 (en) Data transfer buffer control for performance
JP2010140440A (ja) バス調停装置
KR100531324B1 (ko) 메모리 인터페이스 장치 및 그 방법
JP2001243170A (ja) データ転送装置
JP2004240520A (ja) ノンキャッシュ領域内高速メモリアクセス方法
JP2008003786A (ja) 論理シミュレーション方法及びその装置
JP2017199287A (ja) 情報処理装置および情報処理方法

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100615

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100618

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130625

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4538054

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term