(57)【要約】【課題】  周辺モジュールへのアクセスが集中した場合の転送速度を向上させる。【解決手段】  複数のバスマスタ（１０，１１）と、第１バス（１２）と、周辺モジュール（１０１〜１０ｎ）と、第２バス（２０）と、バスステートコントローラ（１４）とを含み、上記バスマスタは、上記周辺モジュールにアクセスする際に、第１リードコマンドを発行した後に上記第１バスを開放し、所定時間の経過後に上記第１リードコマンドと同一の第２リードコマンドを出力する。上記バスステートコントローラは、上記第１リードコマンドに呼応して上記周辺モジュールにアクセスし、上記周辺モジュールから出力されたリードデータを記憶するとともに、それを上記第２リードコマンドに呼応して上記第１バスに出力する。これによりシステムバスがコマンドとデータが分離された簡易的なスプリットトランザクションの機能を発揮する。【選択図】        図１
2006343916.tif 000002
【特許請求の範囲】
【請求項１】
複数のバスマスタと、
上記バスマスタに結合された第１バスと、
上記バスマスタによってアクセス可能な周辺モジュールと、
上記周辺モジュールに結合された第２バスと、
上記第１バスと上記第２バスとに結合されたバスステートコントローラと、を含む情報処理装置であって、
上記バスマスタは、上記第１バス、上記バスステートコントローラ、及び上記第２バスを介して上記周辺モジュールにアクセスする際に、第１リードコマンドを発行した後に上記第１バスを開放し、所定時間の経過後に上記第１リードコマンドと同一の第２リードコマンドを出力するものであり、
上記バスステートコントローラは、上記第１リードコマンドに呼応して上記周辺モジュールにアクセスし、上記周辺モジュールから出力されたリードデータを記憶するとともに、それを上記第２リードコマンドに呼応して上記第１バスに出力するものであることを特徴とする情報処理装置。
【請求項２】
上記バスステートコントローラは、上記バスマスタから発行されるコマンドを保持するためのバッファを含む請求項１記載の情報処理装置。
【請求項３】
上記周辺バスは、複数の周辺デバイスに対して並行してアクセス可能に多重化されて成る請求項１又は２記載の情報処理装置。
【請求項４】
複数のバスマスタと、
上記バスマスタに結合された第１バスと、
上記バスマスタによってアクセス可能な周辺モジュールと、
上記周辺モジュールに結合された第２バスと、
上記第１バスと上記第２バスとに結合されたバスステートコントローラと、を含む情報処理装置であって、
上記バスマスタは、上記第１バス、上記バスステートコントローラ、及び上記第２バスを介して上記周辺モジュールにアクセスする際に、第１リードコマンドを発行した後に上記第１バスを開放し、所定時間の経過後に上記第１リードコマンドと同一の第２リードコマンドを出力可能とされ、
上記バスステートコントローラは、上記第１リードコマンドの受付時に再度同一のリードアクセスを行うためのリトライ要求信号を出力することにより、上記第１リードコマンドを発行したバスマスタに対して上記第１バスのバス権を開放させ、その間に上記第１リードコマンドに基づいて上記周辺モジュールにアクセスして上記周辺モジュールから出力されたリードデータを記憶し、上記バスマスタが上記第２リードコマンドに基づいて再度リードアクセスを行なった時点で上記周辺モジュールへのアクセスが終了している場合はリードデータを上記第１バスに出力してリードアクセスが完了されるものであることを特徴とする情報処理装置。
【請求項５】
上記バスステートコントローラは、上記バスマスタが上記第２リードコマンドに基づいて再度リードアクセスを行なった時点で上記周辺モジュールへのアクセスが終了していない場合には、再度リトライ要求信号を出力するものである請求項４記載の情報処理装置。
【請求項６】
リトライ時に、上記周辺モジュールにアクセスするまでの時間を指定可能なレジスタを含む請求項１又は４記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、さらにはそれにおけるバス制御技術に関し、例えばマイクロコンピュータに適用して有効な技術に関する。
【背景技術】
【０００２】
情報処理装置の一例とされるマイクロコンピュータにおいて、ＰＣＩバスより低速なデバイスが接続される低速バスとＰＣＩバスのバスブリッジからなる構成で、ＰＣＩバスのホストブリッジからのリードアクセス時にバスブリッジにアクセス内容を伝えた後、一旦ＰＣＩバスアクセスを開放し、バスブリッジが低速デバイスへのリードアクセスの完了後に、バスブリッジからホストブリッジへのリードデータの書き込みを行う方法が知られている（例えば特許文献１参照）。
【０００３】
また、多階層のバス構成をとる場合に下位レイヤーへのバスコマンドのバッファを設けたバスブリッジ間で信号をスプリット化することが知られている（例えば特許文献２参照）。それによれば、上位レイヤーのバスブリッジから下位レイヤーへのバスブリッジへのリードアクセス時には、リードデータが整うのを待たずに直ちにバスを開放し、その間に下位レイヤーのバスブリッジは低速デバイスへのリードアクセスを実行する。リードデータの取得後下位のバスブリッジから上位のバスブリッジへリードデータの取得が完了したことを示す専用線を介して通知することで、上位レイヤーのバスブリッジが同一のリードアクセスコマンドでアクセスを行い下位のバスブリッジからリードデータを取得する。
【０００４】
さらに、従来のマイクロコンピュータでは、仕様を拡張し、スプリット信号を追加することで、擬似的にスプリット化を実現している例もある。
【０００５】
【特許文献１】特開平１１−１１０３４２号公報（図１）
【特許文献２】特開２００３−０９９３９２号公報（図１）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
図２には、本発明に先立って本願発明者が検討したマイクロコンピュータが示される。ＣＰＵ（中央処理装置）１０は、システムバス１２にシステムバス（ＳＹＳ−ＢＵＳ）１２に、システム・バス・ステート・コントローラ（ＳＢＳＣ）１５を経由して接続されている。システムバス１２は、データやプログラムがやり取りされるメインバスである。ＤＭＡＣ（ダイレクト・メモリ・アクセス・コントローラ）１１は、バスに接続されたモジュール間のデータをＣＰＵ１０を介さずに直接転送するための装置で、バスマスタでもある。外部バス・ステート・コントローラ（ＥＢＳＣ）１３は、外部バスに接続されるメモリとシステムバスの間でバスのプロトコル変換を行う装置である。周辺バス（ＰＥＲＩ−ＢＵＳ）２０は、Ｉ／Ｏ（入出力装置）などの周辺モジュール（ＭＤＬ）１０１〜１０ｎが接続されている。システムバス１２と周辺バス２０のアクセスプロトコル変換のための装置が周辺バスステートコントローラ（ＰＢＳＣ）１４である。
【０００７】
このようなマイクロコンピュータ５０では、複数のバスマスタが１つのバスを共有する階層型のシェアードバス方式が採用される。図４には、その場合の基本的なバスプロトコルが示される。
【０００８】
図４において、アクセスＡでは、８０のタイミングでバスマスタがアドレス／コマンドを出力し、次のサイクルでデータバス上にリードの場合はアドレスコマンドが示すバススレーブが、ライトの場合はバスマスタが、対応するデータを９０のタイミングで出力する。その結果、データのリード／ライト時と同じサイクルで、次のリード／ライトのコマンド（アドレス）が出力され、アクセスコマンドとデータのアクセスサイクルがオーバーラップされ、１００％の効率でバスを使用することができるようになっている。
【０００９】
この方式では、複数のデバイスを１本のデータバスで共有するために配線のレイアウトが容易であり、また、デバイスの増減に伴う設計の変更に対して設計工数が少なくて済むが、複数のデバイスが１本のバスを共有するので、バスがマイクロコンピュータ全体の性能のボトルネックになりやすかったり、複数のデバイス間での調停機構（Ａｒｂｉｔｒａｔｉｏｎ）が必要になる。
【００１０】
さらに、ＣＰＵの高性能化に伴いＣＰＵと内蔵ＲＡＭやバスステートコントローラなどが接続されるメインバスのクロックサイクルと低速なＩ／Ｏ系のモジュールが接続される周辺バスとの速度差が大きくなると、図５に示されるようにシェアードバス方式では、８０のタイミングでアクセスが開始した後、周辺バス経由でアクセスサイクルが完了する９０までバスを占有するので、ＤＭＡとＣＰＵのように複数のバスマスタが転送を行う場合、転送速度の低下が無視できなくなる。
【００１１】
その対策としてスプリットトランザクションやバスの多重化が考案されている。スプリットトランザクションは、データを転送する一連のサイクル（トランザクション）のうち、データ転送を要求するサイクルと実際にデータを転送するサイクルが分離（ｓｐｌｉｔ）された。これにより、データを要求されたデバイス（ターゲット）の反応が遅れても、それを待つことなく、次にデータを要求しているデバイス（イニシエータ）は別のトランザクションを次々と開始できる。
【００１２】
しかし、厳密にスプリットトランザクションを実現しようとすると、マスタ側のバスと、スレーブ側のバスが分離され、バス構成およびプロトコルが変更になることによりチップ面積の増大と設計工数の増加を招くことになる。また、マスタ毎にバスを分離すると、マスタの数ｎに比例してバス線がｎ倍必要になるため実装面積が増大し、各モジュールでのバスの接続口もｎ口必要になるため、設計工数が増大する。
【００１３】
また、バスの転送要求サイクルと転送サイクルを分離したスプリットトランザクション方式が考案されたが、バスの物理的構成の変更による設計工数及び回路規模の増大を招き、低コストが要求されるマイクロコンピュータでは、コストアップの要因になる。
【００１４】
特許文献１によれば、スレーブがバスマスタになるため、バスブリッジ及びＰＣＩバス調停回路の修正とバスホストに対しても、バスブリッジへのリード時にバスを解放後もバスブリッジのリードデータの書き込みを待つ機構が必要になり、バスプロトコルの拡張及びホストブリッジ、バスブリッジへの修正が大きくなる。
【００１５】
また、特許文献２によれば、バッファを設けて下位層のバスステートコントローラにリードアドレスを指示後、下位のバスステートコントローラからのアクセス完了信号が来るまで、バスステートコントローラの下位層のバスを他の用途に開放するが、多階層のバスステートコントローラ間にあるバスの開放による転送速度の向上のみで、バスステートコントローラの上位層のバスをその間占有し続けてしまう。 
さらに、仕様を拡張し信号線を追加することで擬似的にスプリットトランザクション機能を追加している例も考えられるが、その場合には信号線の追加とマスタとスレーブ間にスレーブのリード完了レベルの追加信号が必要となり、設計工数が大きい。
【００１６】
本発明の目的は、周辺モジュールへのアクセスが集中した場合の転送速度を向上させるための技術を提供することにある。
【００１７】
また、本発明の別の目的は、従来のバス構成に対し最小限の機能追加と変更により、周辺モジュールへのアクセスが集中した場合の転送速度を向上させるための技術を提供することにある。
【００１８】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１９】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００２０】
〔１〕複数のバスマスタと、上記バスマスタに結合された第１バスと、上記バスマスタによってアクセス可能な周辺モジュールと、上記周辺モジュールに結合された第２バスと、上記第１バスと上記第２バスとに結合されたバスステートコントローラとを含んで情報処理装置が構成されるとき、上記バスマスタは、上記第１バス、上記バスステートコントローラ、及び上記第２バスを介して上記周辺モジュールにアクセスする際に、第１リードコマンドを発行した後に上記第１バスを開放し、所定時間の経過後に上記第１リードコマンドと同一の第２リードコマンドを出力する。そして上記バスステートコントローラは、上記第１リードコマンドに呼応して上記周辺モジュールにアクセスし、上記周辺モジュールから出力されたリードデータを記憶するとともに、それを上記第２リードコマンドに呼応して上記第１バスに出力する。。
【００２１】
上記の手段によれば、上記バスマスタは、上記第１バス、上記バスステートコントローラ、及び上記第２バスを介して上記周辺モジュールにアクセスする際に、第１リードコマンドを発行した後に上記第１バスを開放する。これにより、システムバスがコマンドとデータが分離された簡易的なスプリットトランザクションの機能を発揮することができ、このことが、周辺モジュールへのアクセスが集中した場合の転送速度の向上を達成する。しかもこの場合、第１バスを開放させることによって第１バスの利用効率を向上させているため、バスの信号線数が増えることがなく、従ってバスの物理的構成の変更による設計工数及び改組規模の増大を伴わずに済む。そして、既存のバスプロトコルを変更すること無しに、周辺バスステートコントローラの変更のみにより、バスの実質的な転送速度の向上を達成する。
【００２２】
〔２〕上記〔１〕において、上記バスステートコントローラは、上記バスマスタから発行されるコマンドを保持するためのバッファを含んで構成することができる。
【００２３】
〔３〕上記〔１〕又は〔２〕において、上記周辺バスは、複数の周辺デバイスに対して並行してアクセス可能に多重化することができる。
【００２４】
〔４〕また、複数のバスマスタと、上記バスマスタに結合された第１バスと、上記バスマスタによってアクセス可能な周辺モジュールと、上記周辺モジュールに結合された第２バスと、上記第１バスと上記第２バスとに結合されたバスステートコントローラとを含んで情報処理装置が構成されるとき、上記バスマスタは、上記第１バス、上記バスステートコントローラ、及び上記第２バスを介して上記周辺モジュールにアクセスする際に、第１リードコマンドを発行した後に上記第１バスを開放し、所定時間の経過後に上記第１リードコマンドと同一の第２リードコマンドを出力する。また、上記バスステートコントローラは、上記第１リードコマンドの受付時に再度同一のリードアクセスを行うためのリトライ要求信号を出力することにより、上記第１リードコマンドを発行したバスマスタに対して上記第１バスのバス権を開放させ、その間に上記第１リードコマンドに基づいて上記周辺モジュールにアクセスして上記周辺モジュールから出力されたリードデータを記憶し、上記バスマスタが再度リードアクセスを行なった時点で上記周辺モジュールへのアクセスが終了している場合はリードデータを上記第１バスに出力してリードアクセスを完了する。
【００２５】
上記の手段によれば、上記〔１〕の場合と同様に、システムバスがコマンドとデータが分離された簡易的なスプリットトランザクションの機能を発揮することができ、このことが、周辺モジュールへのアクセスが集中した場合の転送速度の向上を達成する。しかもこの場合、第１バスを開放させることによって第１バスの利用効率を向上させているため、バスの信号線数が増えることがなく、従ってバスの物理的構成の変更による設計工数及び改組規模の増大を伴わずに済む。そして、既存のバスプロトコルを変更すること無しに、周辺バスステートコントローラの変更のみにより、バスの実質的な転送速度の向上を達成することができる。
【００２６】
〔５〕上記〔４〕において、上記バスステートコントローラは、上記バスマスタが上記第２リードコマンドに基づいて再度リードアクセスを行なった時点で上記周辺モジュールへのアクセスが終了していない場合には、再度リトライ要求信号を出力するように構成することができる。
【００２７】
〔６〕上記〔１〕又は〔４〕において、リトライ時に、上記周辺モジュールにアクセスするまでの時間を指定可能なレジスタを設けることができる。
【発明の効果】
【００２８】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００２９】
すなわち、周辺モジュールへのアクセスが集中した場合の実質的転送速度を向上させることができる。
【００３０】
また、従来のバス構成に対し最小限の機能追加と変更により、周辺モジュールへのアクセスが集中した場合の実質的転送速度を向上させることができる。
【発明を実施するための最良の形態】
【００３１】
図１には、本発明にかかる情報処理装置の一例とされるマイクロコンピュータが示される。
【００３２】
図１に示されるマイクロコンピュータ５０は、特に制限されないが、公知の半導体集積回路製造技術により、単結晶シリコン基板などの一つの半導体基板に形成される。演算処理を行うＣＰＵ（中央処理装置）１０と、外部メモリなどと接続される外部バス・ステート・コントローラ（ＥＢＳＣ）１３、ＤＭＡＣ（ダイレクト・メモリ・アクセス・コントローラ）１１が、高速なアクセス（リード／ライト）を行う一次側バスとしてのシステムバス（ＳＹＳ−ＢＵＳ）１２に接続されている。ＣＰＵ１０は、システム・バス・ステート・コントローラ（ＳＢＳＣ）１５を含み、このシステム・バス・ステート・コントローラ１５は、システムバス１２と、ＣＰＵ１０とのインターフェースを担当する。また二次側バスとして、システムバス１２より低速で動作する周辺バス（ＰＥＲＩ−ＢＵＳ）２０が設けられ、リードライトに時間が掛かるＩ／Ｏ系のデバイスなどは、周辺モジュール（ＭＤＬ）１０１〜１０ｎとして周辺バス２０に接続されている。周辺バスステートコントローラ（ＰＢＳＣ）１４が設けられ、この周辺バスステートコントローラ（ＰＢＳＣ）１４は、周辺バス２０とシステムバス１２を接続する。システムバス１２はシェアードバスのプロトコルで、少なくともリトライ機能を備えている。リトライ機能は、マスタからのアクセスを処理できない場合の対策として、従来から備えられているもので、例えば、バスのスレーブ側のデバイスがアクセス要求を受けた場合にアクセスに時間が掛かりすぎる、もしくは不具合が発生してリード／ライト処理が完了できない場合に一旦アクセス要求を行なったバスマスタに対してシステムバス１２のバス権を開放して、再度同一のアクセスを行うよう要求する機能として知られている。
【００３３】
周辺バスステートコントローラ１４は、システムバスとのリード／ライトアクセスを担当するシステムバスインタフェース（ＳＹＳ−ＢＵＳ  ＩＦ）４０と、アクセスコマンドのアドレスデコードを行うアドレスデコーダ制御回路（ＤＥＣ−ＣＮＴ）４１と、システムバス１２からのアクセスコマンドとライトデータと周辺バス２０からのリードデータとを一時的に保持するためのアクセスバッファ（ＢＵＦ）４２と、周辺バス２０経由で周辺モジュール１０１〜１０ｎへのリードライトを可能とする周辺バスインターフェース４４を含む。上記アクセスバッファ４２は、図１１に示されるようにコマンド（リード／ライト・データサイズ）とアドレスとデータとアクセスの進行状態を示すステートのレジスタから構成される一組のアクセスバッファのレジスタ２０１を含む。このステートの状態には、「クリア」、「アクセス中」、「完了」の三種類がある。
【００３４】
次に、周辺バス１２に接続される周辺モジュール１０１〜１０ｎへのアクセス発生時の周辺バスステートコントローラ１４の動作を説明する。
【００３５】
図８には、周辺バスステートコントローラ１４のシステムバス１２からのアクセスに対応した動作が示される。
【００３６】
システムバス１２からのアクセスが発生すると、周辺バスインタフェース４４において、アクセスバッファに空きがあるか否かの判別が行われる（４０１）。この判別において、アクセスバッファ４２に空きがある場合は、アクセスバッファ４２にアクセスコマンドが登録され（４０８）、アクセスバッファ４２のステートが「アクセス中」に設定される。ここでアクセスコマンドは、バスのデータアクセスに必要な情報であるリードアクセスかライトアクセスかの判別ビットとデータサイズとデータを意味している。上記ステップ４０８において、アクセスバッファ４２にアクセスコマンドが登録された後に、システムバス１２にリトライ信号が出力される（４０７）。これによりバスマスタに対し再アクセスが要求される。この動作は、図６のＡ８０のタイミングでＡ１のアクセスに対してリトライ要求を出力した部分に相当している。これにより、図５に示される場合と異なり、システムバス１２が開放されるため、別のバスマスタによる一連のシステムバス１２のアクセスＢ１〜Ｂ３が実行されることになる。
【００３７】
また、上記ステップ４０１の判別において、アクセスバッファ４２に空きが無い（ｎｏ）と判断された場合には、アクセスバッファ４２のアクセスコマンドとシステムバス１２からのアクセスコマンドが一致するか否かの判別が行われる（４０２）。この判別において、アクセスバッファ４２のアクセスコマンドとシステムバス１２からのアクセスコマンドが一致しない（ｎｏ）と判断された場合には、システムバス１２へリトライ信号を出力し該バスマスタに再アクセスを要求する（４０７）。上記ステップ４０２の判別において、アクセスバッファ４２のアクセスコマンドとシステムバス１２からのアクセスコマンドが一致する（ｙｅｓ）と判断された場合には、アクセスバッファのステートは完了したか否かの判別が行われる（４０３）。この判別において、アクセスバッファのステートは完了していない（ｎｏ）と判断された場合には、システムバス１２へリトライ信号を出力し該バスマスタに再アクセスを要求する（４０７）。上記ステップ４０３の判別において、アクセスバッファのステートは完了した（ｙｅｓ）と判断された場合であって、リードの場合には、アクセスバッファ４２にあるリードデータがシステムバス上に出力されて、システムバス１２からの一連のアクセスサイクルが終了される。これは、図６の８１のタイミングで再度Ａ１のアクセスが実行され、データがシステムバス１２に出力されている部分に対応している。そして、アクセスバッファ４２のステートがクリアされ、アクセスバッファ４２が空き状態にされる（４０５）。
【００３８】
周辺バスステートコントローラの周辺バス２０とのインターフェースである周辺バスインタフェース４４の動作は、基本的には従来方式でのアクセスと同様であり、アクセスバッファ４２にアクセスコマンドが設定される（ステートがアクセス中になる）のを検知して、アクセスコマンドに従い対応する周辺モジュールにアクセスされ、リードの場合には周辺バスモジュールからのリードデータがアクセスバッファにライトされた後にアクセスステートが「完了」に設定されてから終了される。
【００３９】
本例によれば、以下の作用効果を得ることができる。
【００４０】
（１）図８のフローチャートに従い周辺バスステートコントローラ４２が動作することで、周辺バスへのアクセス時に一旦システムバス１２が他のバスマスタに対して解放され、システムバス１２がコマンドとデータが分離した簡易的なスプリットトランザクションの機能を有することができ、低速バスへのアクセス時のシステムバスの転送効率の低下を抑えることができる。例えば図６と図５とを比較して明らかなように、本例（図６）においては、周辺アクセスを行うバスマスタによる転送速度は相違がないものの、周辺アクセスを行なわないバスマスタの転送速度が向上されている。
【００４１】
（２）また、従来のリトライは、周辺モジュール側で処理できない場合にのみ発行されていたのに対して、上記例では周辺モジュール側で処理できるにもかかわらず、システムバス１２のバス権を開放させるために発行させるようにしている。それによって、上記（１）の作用効果を得るのに、信号線数を増大させる必要がなく、バスの物理的構成の変更による設計工数及び改組規模の増大を伴わずに済む。
【００４２】
図３には、上記マイクロコンピュータの別の構成例が示される。
【００４３】
演算処理を行うＣＰＵ１０と外部メモリなどと接続される外部ＢＳＣ１３、ＤＭＡＣ１１が、高速なアクセス（リード／ライト）を行う一次側バスとしてのシステムバス１２に接続されている。ＣＰＵ１０内のシステムＢＳＣ１５はシステムバスとのインターフェースを担当するモジュールである。また二次側バスとしては、システムバス１２より低速で動作する周辺バス２０、周辺バス２１があり、リードライトに時間が掛かるＩ／Ｏ系のデバイスは周辺モジュール１０１〜１０ｎとしてまとめて、周辺バス２０と周辺バス２１に接続されている。周辺モジュール１０１〜１０ｎと周辺バス２０〜２１の間には、バスセレクタ２２，２３，…，２ｎがあり、周辺バス２０〜２１のうち先にアクセス要求のあった周辺バスを選択し周辺モジュール１０１〜１０ｎにそれぞれ接続する機能を有する。
【００４４】
周辺バス２０とシステムバス１２を接続するためのバスステートコントローラとして周辺バスステートコントローラ１４が設けられる。システムバス１２、周辺バス２０〜２１はともに従来からあるシェアードバスのプロトコルで、少なくともシステムバス１２はリトライ機能を備えている。
【００４５】
周辺バスステートコントローラ１４の内部には、システムバス１２を介してのリードアクセス又はライトアクセスを担当するシステムバスインタフェース４０とアクセスコマンドのアドレスデコードを行うアドレスデコーダ制御回路４１とシステムバス１２からのアクセスコマンドとライトデータと周辺バス２０からのリードデータを一時的にバッファするアクセスバッファ群１４２と、周辺バス２０へのアクセス順序を制御するアクセス制御キュー（ＡＣＱ）４３と、このアクセス制御キュー４３から指定されるアクセスバッファ群１４２の中のアクセスコマンドに従い、周辺バス２０経由で周辺モジュール１０１〜１０ｎへのリードライトを行う周辺バスインタフェース（ＰＥＲＩ−ＢＵＳ  ＩＦ）４４，４５が設けられる。またアクセスバッファ群１４２は、図１１に示されるようにコマンド（リード／ライト・データサイズ）とアドレスとデータとアクセスの進行状態を示すステートのレジスタから構成される複数のアクセスバッファのレジスタ２０１〜２０ｎから成る。
【００４６】
図９には、アクセス時の周辺バスコンコントローラ１４のシステムバスインタフェース４０の応答判定のフローチャートが示される。
【００４７】
周辺バス２０のアドレス空間へのアクセスが発生すると、アクセス要求がリードかライトかの判定が行われ（４０１）、リードの場合には、アクセスバッファ群１４２に一致するアクセスコマンドがあるか否かの判別が行われ（４０２）、ライトの場合には、アクセスバッファ群１４２に空きバッファがあるか否かの判別が行われる（４０６）。
【００４８】
上記ステップ４０２の判別において、アクセスバッファ群１４２に一致するアクセスコマンドがある（ｙｅｓ）と判断された場合には、アクセスバッファのステートは完了したか否かの判別が行われる（４０３）。この判別において、アクセスバッファのステートは完了した（ｙｅｓ）と判断された場合には、該当アクセスバッファのデータをシステムバス１２に出力し、システムバス１２のアクセスを完了し（４０４）、アクセスバッファのステートがクリアされる（４０５）。
【００４９】
一方、上記ステップ４０１の判別において、アクセス要求がライトであると判断された場合、及び上記ステップ４０２の判別において、アクセスバッファ群１４２に一致するアクセスコマンドが無い（ｎｏ）と判断された場合には、アクセスバッファ群１４２に空きバッファがあるか否かの判別が行われる（４０６）。このステップ４０６の判別において、アクセスバッファ群１４２に空きバッファが無い（ｎｏ）と判断された場合には、システムバス１２にリトライ出力が行われる（４０７）。また、上記ステップ４０６の判別において、アクセスバッファ群１４２に空きバッファがある（ｙｅｓ）と判断された場合には、アクセスバッファ群１４２の該当エリアにアクセスコマンドが登録され（４０８）、アクセス制御キュー４３にバッファの番号と周辺モジュールのＩＤが登録される（４０９）。そして、アクセス要求がリードかライトかの判定が行われる（４１０）。この判定において、リードアクセスであると判断された場合には、システムバス１２にリトライ出力を行い（４０７）、ライトアクセスであると判断された場合にはシステムバス１２のアクセスを完了する（４１１）。
【００５０】
図１０には、周辺バス側のアクセスの動作が示される。
【００５１】
先ず、アクセス制御キュー４３にキューイングされているデータがあるか否かの判別が行われ（４４１）。この判別において、アクセス制御キュー４３にキューイングされているデータがある（ｙｅｓ）と判断された場合には、周辺バス２０，２１の双方とも使用中か否かの判別が行われる（４４２）。
【００５２】
尚、上記ステップ４４１の判別において、アクセス制御キュー４３にキューイングされているデータが無い（ｎｏ）と判断された場合、及び上記ステップ４４２の判別において、周辺バス２０，２１の双方とも使用中である（ｙｅｓ）と判断された場合には、本フローチャートによる処理が終了される。
【００５３】
上記ステップ４４２の判別において、周辺バス２０，２１の双方とも使用中ではない（ｎｏ）と判断された場合には、周辺バス２０，２１の双方とも未使用（アイドル）か否かの判別が行われる（４４３）。この判別において、周辺バス２０，２１の双方とも未使用である（ｙｅｓ）と判断された場合には、周辺バスインターフェース２０に該当キューに対応するアクセスバッファのレジスタ２０１に登録されたコマンドでのアクセス要求を行うように、アクセス制御キュー４３から周辺バスインターフェース４４，４５にアクセスバッファのＩＤ（番号）が通知され（４４４）、周辺バスインターフェース４４，４５では、アクセスバッファ番号が通知されるとアクセスバッファ１０１からアクセスコマンドを受け取り、該当する周辺モジュール１０１〜１０３にアクセスされる（４４５）。そして、リードの場合は、リードデータをアクセスバッファに書き込みアクセスステートを完了に設定する。ライトの場合も周辺バスアクセスの完了後、アクセスバッファのレジスタ２０１のステートが「完了」に設定される（４４６）。
【００５４】
また、上記ステップ４４３の判別において、周辺バス２０，２１の双方とも未使用ではない（ｎｏ）と判断された場合には、換言すれば、周辺バス２０，２１の一方だけアクセス中の場合には、周辺バスインタフェースとキューの周辺モジュール番号が一致するか否かの判別が行われる（４４７）。この判別において、周辺バスインタフェースとキューの周辺モジュール番号が一致しない（ｎｏ）と判断された場合には、非アクティブ状態の周辺バスインタフェースに該当キューのアクセスバッファ番号でのアクセスが設定され（４４８）、上記ステップ４４５の処理に遷移される。つまり、使用していない方の周辺バスインターフェースにアクセスバッファの番号が通知されてから、上記ステップ４４５の処理に遷移される。また、上記ステップ４４７の判別において、周辺バスインタフェースとキューの周辺モジュール番号が一致する（ｙｅｓ）と判断された場合には、該当キューより後に登録されたキューがあるか否かの判別が行われる（４４９）。この判別において、該当キューより後に登録されたキューがある（ｙｅｓ）と判断された場合には、上記ステップ４４７の判別に遷移され、該当キューより後に登録されたキューが無い（ｎｏ）と判断された場合には、本フローチャートによる処理が終了される。尚、次のクロックサイクルでまた本フローチャートによる処理が開始される。
【００５５】
図７には、図３に示される構成例において、複数のバスマスタが周辺モジュールにアクセスした場合の動作タイミングが示される。
【００５６】
この動作タイミングでは、周辺モジュールへのアクセスＡがタイミング８０で開始され、８１で終了されているが、リトライ要求によりシステムバスがアクセスＡから一旦開放されており、周辺バスが多重化されていて同時に複数の周辺バスへのアクセスを処理できるようになっているので、その間に８３でのアクセスＣの要求に対し周辺バス経由で８０から開始されたＡのアクセスが、８１で最初のＡのアクセスが完了する前に、８３での次の周辺バスへのＣのアクセスが開始される。
【００５７】
本例によれば、以下の作用効果を得ることができる。
【００５８】
（１）図１に示される構成と同様に、システムバス１２がコマンドとデータが分離した簡易的なスプリットトランザクションの機能を有することにより、低速バスへのアクセス時のシステムバスの転送効率の低下が抑えられる。しかも、本例によれば、図９、図１０のフローチャートに従って周辺バスステートコントローラ１２が動作されることで、複数のバスマスタからの周辺モジュール１０１〜１０ｎへのアクセスを並列に処理することができる。
【００５９】
（２）また、リトライ発生時のバスマスタからの再アクセスの周期をシステムバス１２と周辺バス２０のクロック比から計算して周辺バスアクセスが完了するタイミングに設定できるようにすることで、より効率的にシステムバスを利用することができるようになる。
【００６０】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００６１】
例えば、上記の例では、図１１に示されるように複数のアクセスバッファのレジスタ２０１〜２０ｎを設けたが、複数のバスマスタの片方のみが周辺バスマスタへのアクセスの場合には、コマンドバッファは１つだけでもシステムバス１２の効率化は可能とされる。
【００６２】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるマイクロコンピュータに適用した場合について説明したが、本発明はそれに限定されるものではなく、各種情報処理装置に広く適用することができる。
【００６３】
本発明は、複数のバスマスタを含むことを条件に適用することができる。
【図面の簡単な説明】
【００６４】
【図１】本発明にかかる情報処理装置の一例であるマイクロコンピュータの構成例ブロック図である。
【図２】図１に示されるマイクロコンピュータの比較対象とされるマイクロコンピュータの構成例ブロック図である。
【図３】本発明にかかる情報処理装置の一例であるマイクロコンピュータの別の構成例ブロック図である。
【図４】図２に示されるマイクロコンピュータの動作タイミング図である。
【図５】図２に示されるマイクロコンピュータの動作タイミング図である。
【図６】図１に示されるマイクロコンピュータにおける動作タイミング図である。
【図７】図３に示されるマイクロコンピュータにおける動作タイミング図である。
【図８】図３に示されるマイクロコンピュータにおける主要動作のフローチャートである。
【図９】図３に示されるマイクロコンピュータにおける主要動作のフローチャートである。
【図１０】図３に示されるマイクロコンピュータにおける主要動作のフローチャートである。
【図１１】上記マイクロコンピュータに含まれるアクセスバッファ群の構成例説明図である。
【符号の説明】
【００６５】
１０  ＣＰＵ
１１  ＤＭＡコントローラ
１２  システムバス
１３  外部バスステートコントローラ
１４  周辺バスステートコントローラ
１５  システムバスステートコントローラ
２０，２１  周辺バス
２２〜２ｎ  周辺バスセレクタ
４０  システムバスインタフェース
４１  アドレスデコーダ制御回路
４２  アクセスバッファ
４３  アクセス制御キュー
４４，４５  周辺バスインターフェース
５０  マイクロコンピュータ
１０１〜１０ｎ  周辺バスモジュール
１４２  アクセスバッファ群
２０１〜２０ｎ  アクセスバッファのレジスタ
【図１】
2006343916.tif 000003
【図２】
2006343916.tif 000004
【図３】
2006343916.tif 000005
【図４】
2006343916.tif 000006
【図５】
2006343916.tif 000007
【図６】
2006343916.tif 000008
【図７】
2006343916.tif 000009
【図８】
2006343916.tif 000010
【図９】
2006343916.tif 000011
【図１０】
2006343916.tif 000012
【図１１】
2006343916.tif 000013