(57)【要約】【課題】シングルプロセッサ構成のシステムにおいて、プロセッサがメモリに対して連続的にリクエストを発行する場合のリードリクエストの処理時間を短縮する。【解決手段】ＭＰＵ（１００）とＤＲＡＭ（２００）との間のデータ通信を行うインタフェース回路（１０）において、ＭＰＵインタフェース部（１１）は、ＭＰＵ（１００）から受けたリードリクエスト、および当該リードリクエストに対するリクエストアクノレッジを出力してからデータアクノレッジを出力するまでの間にＭＰＵ（１００）から受けた後続のリクエストを、リクエスト伝達部（１２）に伝達する。リクエスト伝達部（１２）は、与えられたリードリクエストおよび後続のリクエストを２つの記憶部（１３、１４）にそれぞれ格納するとともに、これらリクエストを順にＤＲＡＭインタフェース部（１５）に伝達する。ＤＲＡＭインタフェース部（１５）は、与えられたリクエストをパイプライン処理する。【選択図】図１
2005190320.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置と記憶装置との間のデータ通信を行うインタフェース回路であって、
前記情報処理装置との間で通信を行う第１のインタフェース部と、
前記記憶装置との間で通信を行う第２のインタフェース部と、
前記情報処理装置が発行したリクエストを格納可能な複数の記憶部と、
前記第１のインタフェース部から受けたリクエストを前記複数の記憶部のいずれかに格納するとともに、当該リクエストを前記第２のインタフェース部に伝達するリクエスト伝達部とを備え、
前記第１のインタフェース部は、前記情報処理装置から受けたリードリクエストを前記リクエスト伝達部に伝達するとともに、前記リードリクエストに対するリクエストアクノレッジを出力してからデータアクノレッジを出力するまでの間に前記情報処理装置から受けた後続のリクエストを、前記リクエスト伝達部に伝達するものであり、
前記リクエスト伝達部は、前記第１のインタフェース部から受けたリードリクエストおよび後続のリクエストを前記複数の記憶部のそれぞれに格納するとともに、前記複数の記憶部のそれぞれから読み出したリクエストを、順に前記第２のインタフェース部に伝達するものであり、
前記第２のインタフェース部は、前記リクエスト伝達部から受けたリクエストをパイプライン処理するものである
ことを特徴とするインタフェース回路。
【請求項２】
請求項１に記載のインタフェース回路において、
前記第２のインタフェース部が前記記憶装置から読み出したリードデータを受け、前記複数の記憶部のうち当該リードデータに対応するリードリクエストを格納している記憶部に当該リードデータを格納するとともに、当該記憶部から読み出したリードデータを、順に前記第１のインタフェース部に伝達するリードデータ伝達部を備え、
前記リクエスト伝達部は、前記第１のインタフェース部から新たにリードリクエストを受けたとき、前記複数の記憶部の中から当該リードリクエストを格納している記憶部を検出し、当該検出結果を前記第１のインタフェース部に与えるものであり、
前記第１のインタフェース部は、前記リクエスト伝達部からの前記検出結果に基づいて、前記リードデータ伝達部にデータ要求を行うものであり、
前記リードデータ伝達部は、前記第１のインタフェース部からのデータ要求に従って、前記複数の記憶部のうち該当する記憶部からリードデータを読み出し、当該読み出したリードデータを前記第１のインタフェース部に伝達するものである
ことを特徴とするインタフェース回路。
【請求項３】
請求項２に記載のインタフェース回路において、
前記リクエスト伝達部は、前記複数の記憶部のうち処理済みのライトリクエストを格納している記憶部に、優先的に、前記第１のインタフェース部から新たに受けたリクエストを格納する
ことを特徴とするインタフェース回路。
【請求項４】
請求項２に記載のインタフェース回路において、
前記リクエスト伝達部は、前記複数の記憶部のうち処理済みでありかつ相対的に古いリードリクエストを格納している記憶部に、優先的に、前記第１のインタフェース部から新たに受けたリクエストを格納する
ことを特徴とするインタフェース回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサとメモリとの間のデータ通信を行うインタフェース回路に関し、特に、プロセッサから受けたリクエストおよびデータに対するアクノレッジ、およびプロセッサに出力するデータに対するバリッドのアサート順に制約があるようなデータ通信に好適なインタフェース回路に関する。
【背景技術】
【０００２】
マルチプロセッサで構成されたシステムの場合、コヒーレンシ活動のために各プロセッサからのリクエスト発行が待たされるという問題がある。この問題に対して、従来、次のような手段を講じている。すなわち、各プロセッサは、コヒーレンシ活動を無視してリクエストを発行し、メモリは、これらリクエストのうちコヒーレンシ活動の結果処理されなかったものについてリトライ信号を発行する。そして、リトライ信号が発行されたリクエストについて、各プロセッサは再度リクエストを発行する（たとえば、特許文献１参照）。このようにして、プロセッサからのリクエスト受け付け処理の効率化を図っている。しかし、シングルプロセッサ構成のシステムにおけるリクエスト受け付け処理の効率化に関する先行技術は特に存在しない。
【特許文献１】特開平１０―１４９３４２号公報（第２８頁、第３図）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
シングルプロセッサ構成のシステムにおいて、プロセッサから受けたリクエストおよびデータに対するアクノレッジ、およびプロセッサに出力するデータに対するバリッドのアサート順に制約がある場合、ライトリクエストの処理に比べてリードリクエストの処理により時間がかかってしまうという問題がある。図３は、従来のシングルプロセッサ構成システムの場合のデータ通信に係るタイミングチャートである。以下、図３を参照しながら、当該問題について説明する。
【０００４】
まず、タイミングＴ１でアサートされたリクエスト（Request）ＲＥＱ１がタイミングＴ２で受け付けられ、リクエストＲＥＱ１を受け付けたことを示すリクエストアクノレッジ（Request Ack）ＲＡＫ１が１サイクルの間アサートされる。リクエストＲＥＱ１は、リクエストアクノレッジＲＡＫ１がアサートされた次のサイクル、すなわち、タイミングＴ３でデアサートされる。リクエストＲＥＱ１がリードアクセスに関するものである場合、出力されるリードデータ（Read Data）がバリッドであることを示すデータアクノレッジ（Data Ack）ＤＡＫ１がタイミングＴ５〜Ｔ６の間アサートされる。このように、リクエストに対するデータアクノレッジは、リクエストアクノレッジから１サイクル以上遅れてアサートされるか、または、同時にアサートされる。
【０００５】
リクエストＲＥＱ１がデアサートされた次のサイクル、すなわち、タイミングＴ４で後続のリクエストＲＥＱ２がアサートされる。しかし、先行のリクエストに対するリクエストアクノレッジおよびデータアクノレッジがすべてアサートされなければ、後続のリクエストに対するリクエストアクノレッジをアサートしてはならないという制約があるため、タイミングＴ６までは、リクエストＲＥＱ２に対してリクエストアクノレッジがアサートされることはない。リクエストＲＥＱ２に対するリクエストアクノレッジＲＡＫ２は、データアクノレッジＤＡＫ１がアサートされた次のサイクル、すなわち、タイミングＴ７になってようやくアサートされる。
【０００６】
リクエストアクノレッジＲＡＫ２は、タイミングＴ７から１サイクルの間アサートされる。リクエストＲＥＱ２がライトアクセスに関するものである場合、リクエストアクノレッジＲＡＫ２がデアサートされた次のサイクル、すなわち、タイミングＴ８から１サイクルの間、ライトデータ（Write Data）を受け付けたことを示すデータアクノレッジＤＡＫ２がアサートされる。
【０００７】
リクエストＲＥＱ２が、複数ワードのライトアクセスに関するものである場合、１ワード目のライトデータに対するデータアクノレッジがアサートされた次のサイクル、すなわち、タイミングＴ９で、後続するワードのライトデータが出力され、これに対するデータアクノレッジがアサートされる。このようにして、ライトリクエストで指定されたワード数分のデータアクノレッジがアサートされる。そして、ライトリクエストに対するデータアクノレッジがすべてアサートされた次のサイクル以降に、後続のリクエストＲＥＱ３がアサートされる。
【０００８】
上記仕様のデータ通信では、リクエストＲＥＱ２はタイミングＴ４でアサートされたにもかかわらず、その処理は、データアクノレッジＤＡＫ１がアサートされるまで処理されることがない。すなわち、リードリクエストに続くリクエストに対する処理は、当該リードリクエストに対するデータアクノレッジがアサートされるまで保留されることとなる。これは、データ通信のパフォーマンス低下の要因となる。
【０００９】
上記問題に鑑み、本発明は、シングルプロセッサ構成のシステムにおいて、プロセッサがメモリに対して連続的にリクエストを発行する場合のリードリクエストの処理時間を短縮することを課題とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために本発明が講じた手段は、情報処理装置と記憶装置との間のデータ通信を行うインタフェース回路として、前記情報処理装置との間で通信を行う第１のインタフェース部と、前記記憶装置との間で通信を行う第２のインタフェース部と、前記情報処理装置が発行したリクエストを格納可能な複数の記憶部と、前記第１のインタフェース部から受けたリクエストを前記複数の記憶部のいずれかに格納するとともに、当該リクエストを前記第２のインタフェース部に伝達するリクエスト伝達部とを備えたものとする。ここで、前記第１のインタフェース部は、前記情報処理装置から受けたリードリクエストを前記リクエスト伝達部に伝達するとともに、前記リードリクエストに対するリクエストアクノレッジを出力してからデータアクノレッジを出力するまでの間に前記情報処理装置から受けた後続のリクエストを、前記リクエスト伝達部に伝達するものである。また、前記リクエスト伝達部は、前記第１のインタフェース部から受けたリードリクエストおよび後続のリクエストを前記複数の記憶部のそれぞれに格納するとともに、前記複数の記憶部のそれぞれから読み出したリクエストを、順に前記第２のインタフェース部に伝達するものである。そして、前記第２のインタフェース部は、前記リクエスト伝達部から受けたリクエストをパイプライン処理するものである。
【００１１】
本発明によると、リードリクエストに対するリクエストアクノレッジをアサートしてからデータアクノレッジをアサートするまでの間に、後続のリクエストがアサートされた場合、当該後続のリクエストは受け付けられ、記憶部に格納される。そして、リクエスト伝達部によって、記憶部に格納されたリクエストが順に第２のインタフェース部に伝達され、パイプライン処理される。このように、先行的に後続のリードリクエストの処理を開始することによって、リードリクエストに続くリクエストの処理時間を短縮することができる。
【００１２】
上記のインタフェース回路は、前記第２のインタフェース部が前記記憶装置から読み出したリードデータを受け、前記複数の記憶部のうち当該リードデータに対応するリードリクエストを格納している記憶部に当該リードデータを格納するとともに、当該記憶部から読み出したリードデータを、順に前記第１のインタフェース部に伝達するリードデータ伝達部を備えていることが好ましい。ここで、前記リクエスト伝達部は、前記第１のインタフェース部から新たにリードリクエストを受けたとき、前記複数の記憶部の中から当該リードリクエストを格納している記憶部を検出し、当該検出結果を前記第１のインタフェース部に与えるものである。また、前記第１のインタフェース部は、前記リクエスト伝達部からの前記検出結果に基づいて、前記リードデータ伝達部にデータ要求を行うものである。そして、前記リードデータ伝達部は、前記第１のインタフェース部からのデータ要求に従って、前記複数の記憶部のうち該当する記憶部からリードデータを読み出し、当該読み出したリードデータを前記第１のインタフェース部に伝達するものである。
【００１３】
これによると、新たに受け付けたリードリクエストに対応するリードデータが複数の記憶部のいずれかに格納されている場合、リードデータは、記憶装置から再度読み出されることなく情報処理装置に出力される。これにより、リードリクエストの処理時間をより短縮することができる。
【００１４】
さらに、前記リクエスト伝達部は、前記複数の記憶部のうち処理済みのライトリクエストを格納している記憶部に、優先的に、前記第１のインタフェース部から新たに受けたリクエストを格納するものであることが好ましい。
【００１５】
これによると、リードリクエストおよびこれに対応するリードデータが、より長期間に渡ってインタフェース回路に保持され、リードリクエストに対する処理の高速化を長期間持続させることができる。
【００１６】
また、前記リクエスト伝達部は、前記複数の記憶部のうち処理済みでありかつ相対的に古いリードリクエストを格納している記憶部に、優先的に、前記第１のインタフェース部から新たに受けたリクエストを格納するものであることが好ましい。
【００１７】
これによると、相対的に新しいリードリクエストおよびこれに対応するリードデータがインタフェース回路に残存することとなり、リードリクエストに対する処理がより高速化する。
【発明の効果】
【００１８】
以上説明したように、本発明によると、情報処理装置が記憶装置に対して連続的にリクエストを発行する場合においてリードリクエストの処理時間を短縮することができる。これにより、情報処理装置と記憶装置との間のデータ通信のパフォーマンスが向上する。
【発明を実施するための最良の形態】
【００１９】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
【００２０】
（第１の実施形態）
図１は、本発明の第１の実施形態に係るインタフェース回路の構成を示す。本実施形態に係るインタフェース回路１０は、第１のインタフェース部としてのＭＰＵインタフェース部１１と、リクエスト伝達部１２と、記憶部１３および１４と、第２のインタフェース部としてのＤＲＡＭインタフェース部１５と、リードデータ伝達部１６とを備え、情報処理装置としてのＭＰＵ（Micro Processing Unit）１００と記憶装置としてのＤＲＡＭ（Dynamic Random Access Memory）２００との間のデータ通信を行う。
【００２１】
ＭＰＵインタフェース部１１は、ＭＰＵ１００とのインタフェースを司る機能ブロックであり、ＭＰＵ１００からリクエストおよびライトデータを受けるとともに、ＭＰＵ１００にアクノレッジおよびリードデータを出力する。ＭＰＵインタフェース部１１は、あるリードリクエストを受けてから当該リードリクエストに対するデータアクノレッジをアサートするまでの間に、ＭＰＵ１００から発行された後続のリクエストを受け付け、リクエスト伝達部１２に当該後続のリクエストを出力する。
【００２２】
リクエスト伝達部１２は、ＭＰＵインタフェース部１１から与えられたリクエストおよびライトデータをＤＲＡＭインタフェース部１５に伝達する機能ブロックである。リクエスト伝達部１２は、ＭＰＵインタフェース部１１から受けたリクエストおよびライトデータを、記憶部１３および１４のいずれか一方に書き込むとともに、当該リクエストおよびライトデータをＤＲＡＭインタフェース部１５に伝達する。
【００２３】
記憶部１３および１４は、リクエスト伝達部１２から与えられたリクエストおよびライトデータ、ならびにリードデータ伝達部１６から与えられたリードデータを格納する。
【００２４】
ＤＲＡＭインタフェース部１５は、ＤＲＡＭ２００とのインタフェースを司る機能ブロックであり、リクエスト伝達部１２から与えられたリクエストに従って、ＤＲＡＭ２００にリクエストおよびライトデータを出力するとともに、ＤＲＡＭ２００からリードデータを読み出し、当該リードデータをリードデータ伝達部１６に出力する。なお、ＤＲＡＭインタフェース部１５は、リクエスト伝達部１２から与えられたリクエストをパイプライン処理する。
【００２５】
リードデータ伝達部１６は、ＤＲＡＭインタフェース部１５から与えられたリードデータをＭＰＵインタフェース部１１に伝達する機能ブロックである。リードデータ伝達部１６は、ＤＲＡＭインタフェース部１５から受けたリードデータを、記憶部１３および１４のうち当該リードデータに対応するリクエストを格納している方に書き込むとともに、当該リードデータをＭＰＵインタフェース部１１に伝達する。
【００２６】
次に、本実施形態に係るインタフェース回路１０の動作について説明する。インタフェース回路１０がアイドル状態にあるとき、ＭＰＵ１００からリードリクエストが発行されると、インタフェース回路１０は当該リードリクエストを受け付ける。ＭＰＵインタフェース部１１は、リードリクエストに対してリクエストアクノレッジをアサートしてリクエストに関する情報を取得し、当該情報をリクエスト伝達部１２に転送する。リクエスト伝達部１２は、ＭＰＵインタフェース部１１から転送されたリクエストに関する情報を、記憶部１３に一旦格納する。そして、リクエスト伝達部１２は、記憶部１３に格納されたリクエストに関する情報を読み出し、当該情報をＤＲＡＭインタフェース部１５に転送する。ＤＲＡＭインタフェース部１５は、リクエスト伝達部１２から転送されたリクエストに関する情報に従って、ＤＲＡＭ２００に対してリードリクエストを発行する処理を開始する。
【００２７】
上記リードリクエストの処理が完了するまでにＭＰＵ１００から後続のリクエストが発行された場合、インタフェース回路１０は当該後続のリクエストを先行的に受け付ける。ここで、ＭＰＵインタフェース部１１は、リクエストアクノレッジをアサートせずに、リクエストに関する情報を取得して当該情報をリクエスト伝達部１２に転送する。
【００２８】
リクエスト伝達部１２は、ＭＰＵインタフェース部１１から転送されたリクエストに関する情報を、処理済みのリクエストを格納しているかまたは空き状態の記憶部１４に一旦格納する。そして、リクエスト伝達部１２は、記憶部１４に格納されたリクエストに関する情報を読み出し、当該情報をＤＲＡＭインタフェース部１５に転送する。ＤＲＡＭインタフェース部１５は、パイプライン処理可能であるため、先行するリードリクエストの処理が完了していなくとも、リクエスト伝達部１２から転送された後続のリクエストに関する情報に従って、ＤＲＡＭ２００に対してリクエストを発行する処理を開始することが可能である。
【００２９】
数サイクル経過の後、先行のリードリクエストの処理が完了すると、リードデータがＤＲＡＭ２００からＤＲＡＭインタフェース部１５に転送される。ＤＲＡＭインタフェース部１５は、当該リードデータをリードデータ伝達部１６に転送する。リードデータ伝達部１６は、転送されたリードデータを、当該リードデータに対応するリクエストを格納する記憶部１３に一旦格納する。
【００３０】
さらに数サイクル経過の後、後続のリクエストの処理が完了する。後続のリクエストがリードリクエストである場合、リードデータがＤＲＡＭ２００からＤＲＡＭインタフェース部１５に転送される。ＤＲＡＭインタフェース部１５は、当該リードデータをリードデータ伝達部１６に転送する。リードデータ伝達部１６は、転送されたリードデータを、当該リードデータに対応するリクエストを格納する記憶部１４に一旦格納する。
【００３１】
次に、リードデータ伝達部１６は、記憶部１３が格納しているリードデータを読み出し、当該リードデータをＭＰＵインタフェース部１１に転送する。ＭＰＵインタフェース部１１は、データアクノレッジのアサートと同時に、リードデータをＭＰＵ１００に転送する。これでインタフェース回路１０における先行のリードリクエストに対する処理がすべて完了したので、ＭＰＵインタフェース部１１は、後続のリクエストに対するリクエストアクノレッジをアサートする。
【００３２】
次に、後続のリクエストがライトリクエストの場合、ＭＰＵインタフェース部１１は、当該ライトリクエストに対するデータアクノレッジをアサートする。これでインタフェース回路１０における後続のリクエストの処理がすべて完了する。一方、後続のリクエストがリードリクエストの場合、リードデータ伝達部１６は、記憶部１４が格納しているリードデータを読み出し、当該リードデータをＭＰＵインタフェース部１１に転送する。ＭＰＵインタフェース部１１は、データアクノレッジのアサートと同時に、リードデータをＭＰＵ１００に転送する。これでインタフェース回路１０における後続のリクエストの処理がすべて完了する。
【００３３】
以上、本実施形態によると、先行のリードリクエストに続く後続のリクエストの処理が、先行のリードリクエストの処理が完了する前に開始される。これにより、後続のリクエストの処理が待たされることがなくなり、ＭＰＵ１００とＤＲＡＭ２００との間のデータ通信のパフォーマンスが向上する。
【００３４】
なお、リードデータ伝達部１６を省略して、ＤＲＡＭインタフェース部１５からＭＰＵインタフェース部１１に、直接リードデータを与えるようにしてもよい。
【００３５】
（第２の実施形態）
図２は、本発明の第２の実施形態に係るインタフェース回路の構成を示す。本実施形態に係るインタフェース回路２０は、第１のインタフェース部としてのＭＰＵインタフェース部２１と、リクエスト伝達部２２と、記憶部２３および２４と、第２のインタフェース部としてのＤＲＡＭインタフェース部２５と、リードデータ伝達部２６とを備え、情報処理装置としてのＭＰＵ１００と記憶装置としてのＤＲＡＭ２００との間のデータ通信を行う。
【００３６】
ＭＰＵインタフェース部２１は、ＭＰＵ１００とのインタフェースを司る機能ブロックであり、ＭＰＵ１００からリクエストおよびライトデータを受けるとともに、ＭＰＵ１００にアクノレッジおよびリードデータを出力する。ＭＰＵインタフェース部２１は、あるリードリクエストを受けてから当該リードリクエストに対するデータアクノレッジをアサートするまでの間に、ＭＰＵ１００から発行された後続のリクエストを受け付け、リクエスト伝達部２２に当該後続のリクエストを出力する。
【００３７】
リクエスト伝達部２２は、ＭＰＵインタフェース部２１から与えられたリクエストおよびライトデータをＤＲＡＭインタフェース部２５に伝達する機能ブロックである。リクエスト伝達部２２は、ＭＰＵインタフェース部２１から受けたリクエストおよびライトデータを、記憶部２３および２４のいずれか一方に書き込むとともに、当該リクエストおよびライトデータをＤＲＡＭインタフェース部２５に伝達する。また、リクエスト伝達部２２は、ＭＰＵインタフェース部２１からリードリクエストを受けた場合、記憶部２３および２４のいずれかが当該リードリクエストを格納しているか否かを調べ、当該リードリクエストを格納している記憶部を検出したとき、当該検出結果をＭＰＵインタフェース部２１に出力する。
【００３８】
記憶部２３および２４は、リクエスト伝達部２２から与えられたリクエストおよびライトデータ、ならびにリードデータ伝達部２６から与えられたリードデータを格納する。
【００３９】
ＤＲＡＭインタフェース部２５は、ＤＲＡＭ２００とのインタフェースを司る機能ブロックであり、リクエスト伝達部２２から与えられたリクエストに従って、ＤＲＡＭ２００にリクエストおよびライトデータを出力するとともに、ＤＲＡＭ２００からリードデータを読み出し、当該リードデータをリードデータ伝達部２６に出力する。なお、ＤＲＡＭインタフェース部２５は、リクエスト伝達部２２から与えられたリクエストをパイプライン処理する。
【００４０】
リードデータ伝達部２６は、ＤＲＡＭインタフェース部２５から与えられたリードデータをＭＰＵインタフェース部２１に伝達する機能ブロックである。リードデータ伝達部２６は、ＤＲＡＭインタフェース部２５から受けたリードデータを、記憶部２３および２４のうち当該リードデータに対応するリクエストを格納している方に書き込むとともに、当該リードデータをＭＰＵインタフェース部２１に伝達する。また、リードデータ伝達部２６は、ＭＰＵインタフェース部２１からデータ要求を受け、当該データ要求で指示された記憶部からリードデータを読み出して、ＭＰＵインタフェース部２１に出力する。
【００４１】
次に、本実施形態に係るインタフェース回路２０の動作について説明する。インタフェース回路２０がアイドル状態にあるとき、ＭＰＵ１００からリードリクエストが発行されると、インタフェース回路２０は当該リードリクエストを受け付ける。ＭＰＵインタフェース部２１は、リードリクエストに対してリクエストアクノレッジをアサートしてリクエストに関する情報を取得し、当該情報をリクエスト伝達部２２に転送する。
【００４２】
ＭＰＵインタフェース部２１から転送されたリクエストがリードリクエストである場合、リクエスト伝達部２２は、当該転送されたリードリクエストに対応するリードデータが記憶部２３および２４のいずれかに格納されているか否かを調べる。具体的には、リクエスト伝達部２２は、当該転送されたリードリクエストに関する情報のうちアクセスアドレスおよびアクセスサイズと、記憶部２３および２４がそれぞれ格納している処理済みのリードリクエストに関する情報のうちアクセスアドレスおよびアクセスサイズとをそれぞれ比較し、ＭＰＵインタフェース部２１から転送されたリードリクエストが、記憶部２３および２４のいずれかに格納されているか否かを判断する。そして、転送されたリードリクエストに対するリードデータが記憶部２３および２４のいずれかに格納されていると判断した場合、当該記憶部の識別情報をＭＰＵインタフェース部２１に転送する。
【００４３】
ＭＰＵインタフェース部２１は、リクエスト伝達部２２から、リードリクエストに対するリードデータを格納している記憶部の識別情報を得たとき、リードデータ伝達部２６に当該識別情報に基づくデータ要求を行う。リードデータ伝達部２６は、ＭＰＵインタフェース部２１からのデータ要求に従って、該当する記憶部からリードデータを読み出してＭＰＵインタフェース部２１に転送する。そして、ＭＰＵインタフェース部２１は、データアクノレッジのアサートと同時に、リードデータをＭＰＵ１００に転送する。これでインタフェース回路２０におけるリードリクエストの処理がすべて完了する。
【００４４】
以上、本実施形態によると、インタフェース回路２０がリードリクエストに対するリードデータを保持する場合、ＤＲＡＭ２００にアクセスすることなく、当該リードデータがＭＰＵ１００に出力される。これにより、リードリクエストに対する処理が高速化され、ＭＰＵ１００とＤＲＡＭ２００との間のデータ通信のパフォーマンスが向上する。
【００４５】
なお、リクエスト伝達部２２による、記憶部２３および２４へのリクエストおよびライトデータの書き込みは、次のように行うのが好ましい。すなわち、リクエスト伝達部２２は、ＭＰＵインタフェース部２１から新たなリクエストを受けたとき、まず、記憶部２３および２４に格納されているリクエストに関する情報を読み出し、これらリクエストについて、処理完了および未完了の別、およびリードリクエストおよびライトリクエストの別を確認する。そして、処理済みのライトリクエストを格納している記憶部に、優先的に書き込みを行うようにする。これにより、リードリクエストおよびこれに対応するリードデータがインタフェース回路２０に長期間保持され、上述のリードリクエストに対する処理の高速化の効果を長期間持続させることができる。
【００４６】
また、記憶部２３および２４のいずれもがリードリクエストを格納している場合、リクエスト伝達部２２は、これらリクエストについて、処理完了および未完了の別、およびリクエストの新旧の別を確認し、処理済みの相対的に古いリードリクエストを格納している記憶部に、優先的に書き込みを行うようにしてもよい。これにより、インタフェース回路２０に、相対的に新しいリードリクエストおよびこれに対応するリードデータが残存することとなり、リードリクエストに対する処理がより高速化する。
【００４７】
以上、本発明の実施形態をいくつか示したが、本発明に係るインタフェース回路は、ＤＲＡＭ１００および２００以外にもＲＯＭ（Read Only Memory）に接続してもよい。また、本発明に係るインタフェース回路は、２個の記憶部を備えているものとしたが、これは説明の便宜のためであり、３個以上の記憶部を備えた構成にしてもよい。
【産業上の利用可能性】
【００４８】
本発明に係るバスインタフェース回路は、プロセッサとメモリとの間のデータ通信においてリードリクエストの処理時間を短縮することができるため、特に、高速データ通信を必要とするシステムに有用である。
【図面の簡単な説明】
【００４９】
【図１】本発明の第１の実施形態に係るインタフェース回路の構成図である。
【図２】本発明の第２の実施形態に係るインタフェース回路の構成図である。
【図３】従来のシングルプロセッサ構成の場合のデータ通信に係るタイミングチャートである。
【符号の説明】
【００５０】
１０，２０  インタフェース回路
１１，２１  ＭＰＵインタフェース部（第１のインタフェース部）
１２，２２  リクエスト伝達部
１３，１４，２３，２４  記憶部
１５，２５  ＤＲＡＭインタフェース部（第２のインタフェース部）
１６，２６  リードデータ伝達部
１００  ＭＰＵ（情報処理装置）
２００  ＤＲＡＭ（記憶装置）
【図１】
2005190320.tif 000003
【図２】
2005190320.tif 000004
【図３】
2005190320.tif 000005