(57)【要約】      （修正有）【課題】マスタデバイスがチップセレクト信号をアサートした後に入力されるメモリアドレスを用いて、いずれのメモリデバイスに接続するかを選択する。【解決手段】ブリッジデバイスは、ひとつのマスタデバイスと、複数のメモリデバイスと接続され、マスタデバイスが出力したメモリデバイスを制御するコマンドと、メモリデバイス内のメモリアドレスと、データとを同じ信号線を介して受信する受信手段と、受信手段により受信されたコマンドを少なくとも一つのメモリデバイスに対して出力する出力手段と、マスタデバイスから受信手段により受信されたメモリアドレスに基づいて、複数のメモリデバイスから受信手段により受信されたコマンドの処理を実行するメモリデバイスを選択する選択手段と、を有する。【選択図】図６
2020035335.tif 000002
【特許請求の範囲】
【請求項１】
ひとつのマスタデバイスと、複数のメモリデバイスと接続され、
前記マスタデバイスが出力したメモリデバイスを制御するコマンドと、メモリデバイス内のメモリアドレスと、データとを同じ信号線を介して受信する受信手段と、
前記受信手段により受信された前記コマンドを少なくとも一つのメモリデバイスに対して出力する出力手段と有するブリッジデバイスにおいて、
前記マスタデバイスから前記受信手段により受信された前記メモリアドレスに基づいて、前記複数のメモリデバイスから前記受信手段により受信されたコマンドの処理を実行するメモリデバイスを選択する選択手段と、を有することを特徴とするブリッジデバイス。
【請求項２】
前記選択手段により選択された前記メモリデバイスが前記受信手段を介して受信した前記コマンドに基づく処理を実行する間、前記選択手段により選択されたメモリデバイスに入力されるチップセレクト信号がアサートされるよう制御する制御手段をさらに有することを特徴とする請求項１に記載のブリッジデバイス。
【請求項３】
前記受信手段が、前記マスタデバイスが出力するクロック信号に応じて受信した信号から前記メモリデバイスのメモリアドレスを特定する特定手段をさらに有し、
前記選択手段は、前記特定手段により特定されたメモリアドレスに基づいて、アクセス先となるメモリデバイスを選択することを特徴とする請求項１または２に記載のブリッジデバイス。
【請求項４】
前記特定手段は、マスタデバイスがチップセレクト信号をアサートしてから入力されたクロックの数に応じて、前記受信手段により受信された信号からメモリアドレスを特定することを特徴とする請求項３に記載のブリッジデバイス。
【請求項５】
前記選択手段は、前記受信手段により前記マスタデバイスから受信される前記メモリアドレスの所定のビットの値に基づいて、前記複数のメモリデバイスから一つのメモリデバイスを選択することを特徴とする請求項１乃至４のいずれか一項に記載のブリッジデバイス。
【請求項６】
前記複数のメモリデバイスには連続したメモリアドレスが割り当てられていることを特徴とする請求項１乃至５のいずれか一項に記載のブリッジデバイス。
【請求項７】
前記出力手段は、前記受信手段が受信した前記コマンド、前記メモリアドレスを同一の信号線に出力することを特徴とする請求項１乃至６のいずれか一項に記載のブリッジデバイス。
【請求項８】
前記出力手段は、前記受信手段が受信した前記メモリアドレスを変えることなく、前記選択手段により選択されたメモリデバイスに対して前記メモリアドレスを出力することを特徴とする請求項７に記載のブリッジデバイス。
【請求項９】
前記ブリッジデバイスは、前記出力手段により出力されたメモリアドレスの最も下位のビットから所定のビットまでで指示される箇所にアクセスするメモリデバイスと通信することを特徴とする請求項７または８に記載のブリッジデバイス。
【請求項１０】
前記マスタデバイスと前記ブリッジデバイスはＳＰＩの規格に則ってデータの入出力を行い、前記マスタデバイスと前記選択手段により選択されたメモリデバイスも、前記ＳＰＩの規格に則ってデータの入出力を行うことを特徴とする請求項１乃至９のいずれか一項に記載のブリッジデバイス。
【請求項１１】
前記マスタデバイスから出力されたチップセレクト信号がアサートされたことに基づいて、前記複数のメモリデバイスのそれぞれに対応するチップセレクト信号をアサートする制御手段と、
前記制御手段によりアサートされたチップセレクト信号をゲートするゲート手段をさらに有し、
前記ゲート手段は、前記選択手段による選択に応じて、前記制御手段によりアサートされたチップセレクト信号のうち、前記選択手段により選択されていないメモリデバイスに入力されるチップセレクト信号をゲートすることを特徴とする請求項１に記載のブリッジデバイス。
【請求項１２】
前記ゲート手段は、論理回路で構成されることを特徴とする請求項１１に記載のブリッジデバイス。
【請求項１３】
前記受信手段は、前記マスタデバイスから前記複数のメモリデバイスのいずれか一つに書き込むデータを受信し、
前記出力手段は、前記受信手段が受信した前記データを前記選択手段により選択されたメモリデバイスに出力することを特徴とする請求項１乃至１２のいずれか一項に記載のブリッジデバイス。
【請求項１４】
前記受信手段は、前記メモリデバイスに書き込むデータを連続して受信することができ、
前記出力手段は、前記受信手段が連続して受信した前記データを連続して出力できることを特徴とする請求項１３に記載のブリッジデバイス。
【請求項１５】
前記出力手段は、前記選択手段により選択されたメモリデバイスの最後のメモリアドレスに書き込むデータを出力した後、前記選択手段により選択された前記メモリデバイスと異なる他のメモリデバイスに書き込むデータの出力を開始することを特徴とする請求項１３または１４に記載のブリッジデバイス。
【請求項１６】
前記出力手段は、前記選択手段により選択されたメモリデバイスの最後のアドレスに書き込むデータを出力する前に、前記選択手段により選択されたメモリデバイスと異なる他のメモリデバイスの先頭アドレスを前記他のメモリデバイスに出力することを特徴とする請求項１５に記載のブリッジデバイス。
【請求項１７】
前記マスタデバイスから受信した読み出しコマンドに基づいて、前記選択手段により選択されたメモリデバイスから読み出したデータを前記マスタデバイスに送信する送信手段をさらに有することを特徴とする請求項１乃至１６のいずれか一項に記載のブリッジデバイス。
【請求項１８】
前記送信手段は、前記受信手段により受信された前記メモリアドレスで指定される箇所から連続して読み出されたデータを前記マスタデバイスに送信することを特徴とする請求項１７に記載のブリッジデバイス。
【請求項１９】
前記出力手段は、前記選択手段により選択されたメモリデバイスの最終アドレスから読み出されたデータが入力される前に、前記メモリデバイスと異なる他のメモリデバイスに対して前記他のメモリデバイスの先頭アドレスを出力することを特徴とする請求項１８に記載のブリッジデバイス。
【請求項２０】
請求項１乃至１９のいずれか一項に記載のブリッジデバイスを有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブリッジデバイスおよび、ブリッジデバイスの制御方法と当該ブリッジデバイスを有する情報処理装置に関する。
【背景技術】
【０００２】
情報処理装置において、コントローラのメインバスには、メモリコントローラを介してＣＰＵが実行するソフトウェアの動作ログなどを記憶するメモリが接続される。
【０００３】
メモリコントローラとメモリを接続する際には、ＳＰＩ（Ｓｅｒｉａｌ  Ｐｅｒｉｈｅｒａｌ  Ｉｎｔｅｒｆａｃｅ）等のシリアルインタフェースを用いて接続される。このとき、メモリコントローラはマスタデバイスとして動作し、メモリはマスタデバイスにより制御されるスレーブデバイスとして動作する。ＳＰＩの規格では、チップセレクト信号をアサートすることで通信対象となるメモリを選択し、選択されたメモリに対して、信号を送信してデータの読み出しや書き込みを行うことができる。
【０００４】
特許文献１には、複数のチップセレクト信号を出力することができ、複数のメモリデバイスのうちいずれのメモリデバイスと通信を行うかをマスタデバイスが制御する構成が記載されている。特許文献１に記載のマスタデバイスは、複数のメモリデバイスからデータ転送をするメモリデバイスを選択し、当該メモリデバイスに対応するチップセレクト信号をアサートする。そして、マスタデバイスは、データ転送を行うメモリデバイスに対応するチップセレクト信号をアサートした後、データ転送を行うメモリデバイスに対してコマンドやデータの出力を開始する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−３０４０１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＳＰＩの規格に則って通信するマスタデバイスが、ブリッジデバイスを介して複数のメモリデバイスと接続される場合がある。このとき、マスタデバイスはブリッジデバイスに対してチップセレクト信号をアサートし、ブリッジデバイスに通信の開始を通知する。そして、マスタデバイスはデータ転送用の信号線を介して、ブリッジデバイスにメモリデバイスを制御するためのコマンドやメモリアドレスを入力する。
【０００７】
ブリッジデバイスは、マスタデバイスによりチップセレクト信号がアサートされたことに従って、メモリデバイスとの通信を開始する。しかし、ブリッジデバイスは、マスタデバイスによりアサートされたチップセレクト信号から、いずれのメモリデバイスにアクセスするかを判断することができない。
【０００８】
本発明に記載のブリッジデバイスは、マスタデバイスがチップセレクト信号をアサートした後に入力されるメモリアドレスを用いて、いずれのメモリデバイスに接続するかを選択することができるようにすることを目的とする。
【課題を解決するための手段】
【０００９】
本発明に記載のブリッジデバイスは、
ひとつのマスタデバイスと、複数のメモリデバイスと接続され、
前記マスタデバイスが出力したメモリデバイスを制御するコマンドと、メモリデバイス内のメモリアドレスと、データとを同じ信号線を介して受信する受信手段と、
前記受信手段により受信された前記コマンドを少なくとも一つのメモリデバイスに対して出力する出力手段と有するブリッジデバイスにおいて、
前記マスタデバイスから前記受信手段により受信された前記メモリアドレスに基づいて、前記複数のメモリデバイスから前記受信手段により受信されたコマンドの処理を実行するメモリデバイスを選択する選択手段と、を有することを特徴とする。
【発明の効果】
【００１０】
本発明に記載のブリッジデバイスによれば、ブリッジデバイスは、マスタデバイスがチップセレクト信号をアサートした後に入力されるメモリアドレスを用いて、いずれのメモリデバイスに接続するかを選択することができるようにすることができる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態における、情報処理装置のブロック図の一例である。
【図２】本実施形態における、コントローラ部の詳細を示すブロック図である。
【図３】第１の実施形態における、ブリッジデバイスの詳細を示す図である。
【図４】本実施形態における、ＱＳＰＩに則った通信で出力されるライトアクセスとリードアクセスのタイミングチャートの一例である。
【図５】第１の実施形態において、スレーブ回路の実行する処理を示すフローチャートである。
【図６】第１の実施形態において、スレーブ回路が実行するライト処理の一例を示すフローチャートである。
【図７】第１の実施形態において、スレーブ回路が実行するリード処理の一例を示すフローチャートである。
【図８】第１の実施形態において、マスタ回路が実行する処理を示すフローチャートである。
【図９】第１の実施形態における、ライト処理、リード処理時のタイミングチャートの一例である。
【図１０】第２の実施形態における、ブリッジデバイスの詳細の一例を示す図である。
【図１１】第２の実施形態における、ライト処理時のタイミングチャートである。
【図１２】第２の実施形態における、リード処理時のタイミングチャートである。
【図１３】第２の実施形態における、アドレス解析回路の実行する処理を示すフローチャートである。
【図１４】第３の実施形態における、ブリッジデバイスの詳細の一例を示す図である。
【図１５】第３の実施形態における、ライト処理時のタイミングチャートである。
【図１６】第３の実施形態におけるリード処理時のタイミングチャートである。
【図１７】第３の実施形態における、アドレス解析回路の実行する処理を示すフローチャートである。
【図１８】第３の実施形態において、アドレス解析回路の実行する次のメモリデバイスへのアクセス制御の処理を示すフローチャートである。
【発明を実施するための形態】
【００１２】
（第１の実施形態）
以下、添付図面を参照して、本発明に記載のブリッジデバイスの詳細を説明する。なお、以下の実施例において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。
【００１３】
以下、本発明を実施するための形態について図面を用いて説明する。なお、以下の実施例において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。
【００１４】
図１は、本実施例に係る情報処理装置として動作するデジタル複合機の構成の一例を示すブロック図である。スキャナ部１０１０は、原稿を光学的に読み取って画像データに変換する。また、スキャナ部１０１０は、原稿を光学的に読み取るためのレーザ光源やレンズ等からなる原稿読取部１０１２と、原稿を搬送するベルト等からなる原稿搬送部１０１１とで構成される。プリンタ部１０４０は、記録媒体（用紙）を搬送し、その上に画像データを可視画像として印刷する。プリンタ部１０４０は、用紙を給紙する給紙部１０４２、画像データを用紙に転写、定着させる転写定着部１０４１、印刷された用紙をソート、ステイプルして機外へ搬出する排紙部１０４３で構成される。
【００１５】
コントローラ部１０２０は、スキャナ部１０１０、プリンタ部１０４０と電気的に接続され、さらにＬＡＮ、ＩＳＤＮ、インターネット／イントラネット等のネットワーク１０５０と接続されている。ユーザがコピー機能を利用する場合、コントローラ部１０２０は、スキャナ部１０１０を制御して原稿の画像データを取得し、プリンタ部１０４０を制御して画像を用紙に印刷し出力する。また、スキャン機能を利用する場合、スキャナ部１０１０を制御して原稿の画像データを取得してコードデータに変換し、ネットワーク１０５０を介してホストＰＣ（不図示）等へ送信する。また、プリント機能を利用する場合、ホストＰＣからネットワーク１０５０を介して受信した印刷データ（コードデータ）を画像データに変換し、プリンタ部１０４０を制御して画像を用紙に印刷して出力する。また、ＩＳＤＮ等からデータを受信してプリントするＦＡＸ受信機能やＩＳＤＮ等へスキャンしたデータを送信するＦＡＸ送信機能も有する。また、これら各機能における処理の実行指示をジョブと呼び、画像処理装置１０００は各機能に対応するジョブに従って所定の処理を実行する。操作部１０３０は、ユーザが入力操作を行うためのユーザインタフェースであり、例えばタッチパネルや各種ボタンで構成される。
【００１６】
図２は、本実施例に係る、コントローラ部１０２０の内部構成を示すブロック図である。以下、コントローラ部１０２０を構成する各要素について説明する。
【００１７】
ＣＰＵ１１１０は、システム全体を制御するプロセッサーである。ＣＰＵ１１１０は、ＲＡＭ１１９１に展開されたＯＳや制御プログラムに従って、プリント処理やスキャン処理といったジョブ処理を統括的に制御する。
【００１８】
ＲＯＭコントローラ１１２０は、システムのブートプラグラムを格納しているＲＯＭ１１９０にアクセスするための制御モジュールである。画像処理装置１０００の電源がＯＮされた時に、ＣＰＵ１１１０はＲＯＭコントローラ１１２０を介してＲＯＭ１１９０にアクセスし、ＣＰＵ１１１０がブートする。
【００１９】
ＲＡＭコントローラ１１３０は、システムの制御プログラムや画像データが格納されるＲＡＭ１１９１にアクセスするための制御モジュールである。ＲＡＭコントローラ１１３０は、ＲＡＭ１１９１の設定や制御を行うためのレジスタを備えており、このレジスタは、ＣＰＵ１１１０からアクセス可能である。操作部インタフェース１１４０は、ユーザが操作部１０３０を操作した操作指示の受付及び操作結果の表示の制御を行う。
【００２０】
スキャン画像処理部１１５１は、スキャナ部１０１０で取得した画像データに対し、シェーディング補正処理、ＭＴＦ補正処理、ガンマ補正処理、フィルタ処理といったスキャナ用画像処理を行う。また、スキャン画像処理部１１５１は、静電ノイズの影響による異常周期の同期信号を検出し、検出した異常周期の同期信号のマスク処理および、異常周期の同期信号の数をカウントする機能を持つ。
【００２１】
プリント画像処理部１１５０は、プリンタ部１０４０で使用する画像データのための色空間変換処理、中間調処理、ガンマ補正処理といったプリント用画像処理を行う。プリント用画像処理を施し、処理後の画像データをプリンタ部１０４０へ出力する。
【００２２】
ＨＤＤ１１９２は、システムソフトウェアやアプリケーションプログラム、画像データと各画像データに対応するページ情報やジョブ情報を格納する。ＨＤＤ１１９２は、ＨＤＤコントローラ１１６０を介してシステムバス１１００に接続されており、ＣＰＵ１１１０の指示に従ってデータの書き込みや読み出しを行う。
【００２３】
ＬＡＮコントローラ１１７０はＰＨＹ１１９３を介してネットワーク１０５０に接続し、外部のホストコンピュータとの間で画像データなどの情報の入出力を行う。
【００２４】
モデム１１７２は図示しない公衆回線に接続し、ＦＡＸ送信やＦＡＸ受信ジョブを処理する際に外部のＦＡＸ機器とデータ通信を行う。レンダリング部１１５２は、ネットワーク１０５０からＬＡＮコントローラ１１７０を経由して受信した画像データ（ＰＤＬデータ）を、プリンタ部１０４０で取り扱い可能なビットマップデータに変換する。
【００２５】
マスタデバイス４１０は、ブリッジデバイス４１１を介してＱＳＰＩ（Ｑｕａｄ  ＳＰＩ）Ｉ／Ｆを持つメモリデバイスなどの第１のメモリデバイス４１２、第２のメモリデバイス４１３にアクセスするための制御モジュールである。ブリッジデバイス４１１は、マスタデバイス４１０から転送されたデータを第１のメモリデバイス４１２、第２のメモリデバイス４１３に転送する。ＱＳＰＩはＳＰＩ（Ｓｅｒｉａｌ  Ｐｅｒｉｐｈｅｒａｌ  Ｉｎｔｅｒｆａｃｅ）の一つであり、マスタデバイスから供給されるクロック信号に合わせて、マスタデバイスとスレーブデバイスが同期しながらシリアルデータ転送を行う通信方式である。
【００２６】
第１のメモリデバイス４１２、第２のメモリデバイス４１３は、ＱＳＰＩ  Ｉ／Ｆを有するＦＲＡＭ（登録商標）（Ｆｅｒｏｅｌｅｃｔｒｉｃ  Ｒａｎｄｏｍ  Ｍｅｍｏｒｙ）やＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ｍｅｍｏｒｙ）等のメモリデバイスである。本実施形態では、第１のメモリデバイス４１２，第２のメモリデバイス４１３は、ＣＰＵ１１１０が実行するブート処理や、プログラムの実行のログを記録する。
【００２７】
本実施形態においては、コントローラ部１０２０は第１のプリント基板に実装され、ブリッジデバイス４１１、第１のメモリデバイス４１２、第２のメモリデバイス４１３は第２のプリント基板に実装される。
【００２８】
本実施形態は、図２のようにブリッジデバイス４１１を用いて、ひとつのマスタデバイス４１０に対して複数のメモリデバイスを接続することができるように構成される。このようにブリッジデバイス４１１を用いることで、マスタデバイス４１０の構成を変えることなく、マスタデバイス４１０に接続されるメモリデバイスの数を増やすことができる。即ち、ブリッジデバイス４１１を用いて、マスタデバイス４１０に接続されるスレーブデバイスの数を増やし、マスタデバイス４１０がアクセスすることのできるメモリの容量を大きくすることができる。
【００２９】
図３（ａ）を用いて、本実施形態における、マスタデバイス４１０とブリッジデバイス４１１、第１のメモリデバイス４１２、第２のメモリデバイス４１３の詳細を説明する。
【００３０】
ブリッジデバイス４１１は、スレーブ回路５０１、第１のマスタ回路５０２、第２のマスタ回路５０３で構成される。本実施形態では、ブリッジデバイスは２つのメモリデバイスと接続されるとして説明するが、接続されるメモリデバイスの数は上記の数に限られない。
【００３１】
マスタデバイス４１０とスレーブ回路５０１は、以下に示す６本の信号線を用いてＱＳＰＩの規格に則った通信を行う。
【００３２】
ＣＳ信号線５４３は、マスタデバイス４１０がアクセスするデバイスのアクセス開始を通知するチップセレクト信号を伝送する信号線である。ＳＣＫ信号線５４４は、ＩＯ＿０信号線５４５〜ＩＯ＿３信号線５４８を用いて行われるデータ転送を同期するためのクロック信号を伝送する信号線である。ＱＳＰＩの規格に則った通信では、クロック信号はデータ転送中のみ出力される。データ転送が完了した後、マスタデバイス４１０は、ＣＳ信号をネゲートし、クロック信号の出力を停止する。
【００３３】
ＩＯ＿０信号線５４５〜ＩＯ＿３信号線５４８は、マスタデバイス４１０とスレーブ回路５０１とがデータ転送するための信号線である。スレーブ回路５０１は、マスタデバイス４１０がＣＳ信号をアサートした後に入力されるクロック信号の数をカウントするカウンタを有している。スレーブ回路５０１は、当該カウンタの値を参照することで、受信した信号がオペコードなのか、アドレスなのか、データなのかを判定する。スレーブ回路５０１は、マスタデバイス４１０によりＣＳ信号がアサートされた後、２クロックの間に受信されたデータをコマンドとして記憶し、３クロック目から８クロック目までに受信されたデータをアドレスとして記憶する。また、スレーブ回路５０１は、８クロック以降に受信されたデータは、リードまたはライトに関わるデータとして記憶する。このようにすることで、同一の信号線を用いて、コマンド、アドレス、データの入出力を行うことができる。また。スレーブ回路５０１は、マスタデバイス４１０から受信した信号から、アクセス先となるメモリアドレスを特定することができる。
【００３４】
第１のインタフェース４２０はマスタデバイス４１０とスレーブ回路５０１の間のインタフェースであり、上記のＣＳ信号線５４３、ＳＣＫ信号線５４４、ＩＯ＿０信号線５４５〜ＩＯ＿３信号線５４８を含む。
【００３５】
スレーブ回路５０１と第１のマスタ回路５０２は信号線５２０で接続される。信号線５２０は、第１のマスタ回路５０２に対して、ＣＳ信号線５４３、ＩＯ＿０信号線５４５〜ＩＯ＿信号線５４８を介してスレーブ回路５０１に入力された信号を第１のマスタ回路５０２に入力するための信号線である。図３において、信号線５２０は上記の信号を伝えるための複数の信号線である。
【００３６】
スレーブ回路５０１と第２のマスタ回路５０３は信号線５２１を介して接続される。信号線５２１の詳細は信号線５２０と同様であるため説明を省略する。
【００３７】
外部クロック信号線５５０は、ＳＣＫ信号線５４４と異なるクロック信号を第１のマスタ回路５０２と第２のマスタ回路５０３に供給するための信号線である。以下の実施形態では、マスタデバイス４１０からスレーブ回路５０１に供給されるクロック信号と、外部クロック信号線５５０から供給されるクロック信号は同一周波数のものであるとする。もちろん、マスタデバイス４１０からスレーブ回路５０１に供給されるクロック信号と、外部クロック信号線５５０から供給されるクロック信号の周波数が異なる周波数であってもよい。
【００３８】
第１のマスタ回路５０２は第１のメモリデバイス４１２と接続される。第１のマスタ回路５０２と第１のメモリデバイス４１２はＱＳＰＩの規格に則ってデータの転送を行う。なお、ＣＳ信号線５５３、ＳＣＫ信号線５５４、ＩＯ＿０信号線５５５〜ＩＯ＿３信号線５５８についてはマスタデバイス４１０とスレーブ回路５０１間の信号線と同様であるため説明を省略する。第２のインタフェース４２１は、第１のマスタ回路５０２と第１のメモリデバイス４１２の間のインタフェースであり、上記のＣＳ信号線５５３、ＳＣＫ信号線５５４、ＩＯ＿０信号線５５５〜ＩＯ＿３信号線５５８を含む。
【００３９】
第２のマスタ回路５０３は第２のメモリデバイス４１３に接続される。第２のマスタ回路５０３と第２のデバイス４１３はＱＳＰＩの規格に則ってデータの転送を行う。第２のマスタ回路５０３と第２のメモリデバイス４１３の間の構成は第１のマスタ回路５０２と第１のメモリデバイス４１２の間の構成と同様であるため説明を省略する。第３のインタフェース４２１は、第２のマスタ回路５０３と第２のメモリデバイス４１３の間のインタフェースであり、上記のＣＳ信号線５６３、ＳＣＫ信号線５６４、ＩＯ＿０信号線５６５〜ＩＯ＿３信号線５６８を含む。
【００４０】
図３（ｂ）は本実施形態において、マスタデバイス４１０から見たブリッジデバイス４１１のメモリマップである。本実施形態において、ブリッジデバイスに接続されるメモリデバイスは５１２ＫｂｙｔｅのＦＲＡＭが二つである。図３（ｂ）に示すメモリマップにおいて０ｘ００００００〜０ｘ０７ＦＦＦＦは第１のメモリデバイス内のメモリアドレスを示している。そして、０ｘ０８００００〜０ｘ０ＦＦＦＦＦは第２のメモリデバイス内のメモリアドレスを示している。また、０ｘ１０００００番地以降のアドレスは、図８に示されるように、０ｘ００００００〜０ｘ０ＦＦＦＦＦまでの領域がミラーで見えるような構成になっている。すなわち、０ｘ０ＦＦＦＦＦ以降のアドレスのうち０ｘ１０００００〜０ｘ１７ＦＦＦＦは第１のメモリデバイス、０ｘ１８００００〜０ｘ１ＦＦＦＦＦは第２のメモリデバイスのようになっている。なお、５１２Ｋｂｙｔｅのメモリデバイスにおいてメモリ内のアドレスは１９ｂｉｔで表現される。本実施形態においてマスタデバイス４１０は２４ｂｉｔのアドレスを出力するが、メモリデバイスは２０ｂｉｔ以降のアドレスを無視する。
【００４１】
図４（ａ）は、ＱＳＰＩの規格でマスタデバイス４１０、または、第１のマスタ回路５０２、第２のマスタ回路５０３がスレーブに対してライトアクセスするときのタイミングチャートである。ＱＳＰＩの規格に則った信号は、オペコード２０１、アドレス２０２、ライトデータ２０３の３つのフェーズで構成される。ＩＯ＿０信号１０５〜ＩＯ＿３で示されるデータ信号線を介して転送されるデータを示すブロックの中に記載される数字はスレーブデバイスがデータを解析するときのビットの順番を示している。
【００４２】
オペコード２０１は、ＱＳＰＩスレーブに対してどのような処理を実行するかを示す信号である。ＣＳ信号１０３がアサートされた後の２クロック８ビットで送信される。オペコード２０１のフェーズで送信される信号はＩＯ＿３信号１０８の０番目のビットが最も下位のビットであり、ＩＯ＿０信号１０５の７番目のビットが最も上位のビットである。
【００４３】
アドレス２０２はデータの入出力先を示す信号である。メモリデバイスに対するライトアクセス時には、ライトを開始するアドレスを指定するための信号である。アドレス２０２はオペコード２０１に続けて送信される、６クロック２４ビットで指定される。本実施形態で使用される第１のメモリデバイス４１２、第２のメモリデバイス４１３はともに容量が５１２ＫｂｙｔｅのＦＲＡＭである。すなわち、ブリッジデバイス４１１には１ＭｂｙｔｅのＦＲＡＭが接続されている。そのため、本実施形態では２４ｂｉｔある信号のうち、０ｂｉｔから１９ｂｉｔの２０ビットを使ってメモリデバイスのアクセス先を指定する。ブリッジデバイス４１１は２０ｂｉｔ〜２３ｂｉｔのビットの信号を無効とする。本実施系形態では無効とされるデータの箇所にＸを記載している。
【００４４】
ライトデータ２０３は、第１のメモリデバイス４１２または第２のメモリデバイス４１３に書き込まれるデータ信号である。ライトデータ２０３のフェーズでは書き込むデータを連続して出力することができる。ライトデータが連続して出力された場合、マスタデバイスはアドレス２０２で指定されたアドレスからアクセスするアドレスをインクリメントしながらデータを書き込む。
【００４５】
次に、図４（ｂ）はＱＳＰＩの規格でマスタデバイス４１０、または、第１のマスタ回路５０２、第２のマスタ回路５０３がスレーブにリードアクセスするときのタイミングチャートである。各ブロックの内側の数字は各データが何ビット目かを示している。
【００４６】
リードコマンドは、オペコード３０１、アドレス３０２、ダミーサイクル３０３、リードデータ３０４のフェーズで構成される。オペコード３０１、アドレス３０２はライトコマンドと同様のため説明を省略する。ダミーサイクル３０３は、スレーブ回路やスレーブデバイスがデータを読み出すのに必要な待ち時間を示すフェーズである。マスタ側のデバイスには、予め接続されるスレーブデバイスで決められているダミーサイクルの数が設定される。マスタ側のデバイスはリードコマンドを出力する際に、予め設定されたサイクル数のクロック信号をダミーサイクル３０３とする。マスタ側のデバイスは、ダミーサイクル３０３の間はデータを受信しても、当該データを無効とする。リードデータ３０４では、アドレス３０２で指定されたアドレスに格納されたデータを取得する。リードデータ３０４では連続してデータを取得することができる。この時、アドレス３０２で指定されたアドレスを先頭とし、アドレスをインクリメントしながら第１のメモリデバイス４１２、第２のメモリデバイス４１３からデータを取得する。
【００４７】
図５〜図９を用いてブリッジデバイス４１１が実行する処理を説明する。図５〜７はブリッジデバイス４１１内のスレーブ回路５０１が実行する処理を示すフローチャートであり、図８はブリッジデバイス４１１内のマスタ回路５０２が実行する処理を示すフローチャートである。図９（ａ）はライト処理が実行されたときのタイミングチャートを示しており、図９（ｂ）はリード処理が実行されたときのタイミングチャートを示している。
【００４８】
図５に記載の処理は画像形成装置の電源がオンになりブリッジデバイス４１１に電力が供給されたことに従って開始され、ブリッジデバイス４１１への電力供給が終了するまで継続して実行される。本実施形態において、スレーブ回路５０１が以下の処理を実行するとする。ＣＰＵ１１１０がＲＡＭ１１９１に展開されたプログラムを実行することで処理が実現されるとしてもよい。
【００４９】
スレーブ回路５０１は、マスタデバイス４１０から入力されるＣＳ信号がアサートされたか否かを判定する（Ｓ６０１）。スレーブ回路５０１は、図９（ａ）のＴ１においてスレーブ回路５０１は、ＣＳ信号線５４３の信号がＬｏｗレベルになりアサートされたことを検知する。これにより、スレーブ回路５０１は、マスタデバイス４１０との通信が開始されたと判定する。ＣＳ信号がアサートされていない場合、スレーブ回路５０１は処理を進まず、Ｓ６０１に記載の処理を実行する。ＣＳ信号がアサートされた場合、スレーブ回路５０１は処理をＳ６０２に進める。
【００５０】
スレーブ回路５０１は、ＩＯ＿信号線５４４〜５４８を介してオペコードを受信し、不図示のバッファに格納する（Ｓ６０２）。図９（ａ）のＴ２において、スレーブ回路５０１はオペコードの受信を完了する。スレーブ回路５０１は、受信されたオペコードがリードコマンド、またはライトコマンドであるか否かを判定する（Ｓ６０３）。受信したオペコードがリードコマンド、またはライトコマンドでない場合スレーブ回路５０１はＳ６０４〜Ｓ６０６の処理を実行する。受信したオペコードがリードコマンド、またはライトコマンドである場合、スレーブ回路５０１はＳ６０７〜Ｓ６１０に記載の処理を実行する。
【００５１】
受信したオペコードがライトコマンド、リードコマンドでない場合、スレーブ回路５０１は接続されている全てのマスタ回路５０２、５０３に対してオペコードを通知し、当該オペコードの発行を指示する（Ｓ６０４）。ライトコマンド、リードコマンドでないオペコードとは、たとえば、ライトイネーブル等のようにメモリデバイスへの書き込みを許可するよう指示するコマンドである。スレーブ回路５０１は、マスタデバイス４１０から入力されるＣＳ信号がネゲートされたか否かを判定する（Ｓ６０５）。スレーブ回路５０１はＣＳ信号がネゲートされるまで処理を先に進めずＳ６０５の処理を実行する。ＣＳ信号がネゲートされたと判定されたことに従って、スレーブ回路５０１は接続されている全てのマスタ回路にＣＳ信号のネゲートを指示する（Ｓ６０６）。スレーブ回路５０１は、信号線５２０、５２１を介してＣＳ信号のネゲートを指示する。その後、スレーブ回路５０１は処理をＳ６０１に戻す。
【００５２】
Ｓ６０３において受信したオペコードがライトコマンド、またはリードコマンドであると判定された場合、スレーブ回路５０１はマスタデバイス４１０からアドレスを受信し、当該アドレスを不図示のバッファに格納する（Ｓ６０７）。そして、スレーブ回路５０１は受信したオペコードがライトコマンドか否かを判定する（Ｓ６０８）。受信したオペコードがライトコマンドである場合、スレーブ回路５０１は図６に記載の処理を実行する（Ｓ６０９）。受信したコマンドがリードコマンドである場合、スレーブ回路５０１は図７に記載の処理を実行する（Ｓ６１０）。
【００５３】
図６はスレーブ回路５０１がライトコマンドを受信したときに実行する処理である。スレーブ回路５０１はＳ６０７で受信したアドレスを解析し、アクセス先となるメモリデバイスを選択する（Ｓ６２０）。スレーブ回路５０１は、図９（ａ）のＴ３までに受信したアドレスの１９ｂｉｔを参照する。１９ｂｉｔの値が０の場合、スレーブ回路５０１は第１のメモリデバイス４１２にアクセスすると判定する。一方で、１９ｂｉｔの値が１の場合、スレーブ回路５０１は、第２のメモリデバイス４１３にアクセスすると判定する。そして、スレーブ回路５０１は、Ｓ６２０で選択したメモリデバイスと接続されるマスタ回路に対して、ＣＳ信号のアサートを指示し、Ｓ６０２で受信したオペコードの発行を指示する（Ｓ６２１）。たとえば、受信したアドレスから選択されるメモリデバイスが第１のメモリデバイス４１２である場合、スレーブ回路５０１は信号線５２０を介して第１のマスタ回路５０２にＣＳ信号のアサートと、ライトコマンドの発行を指示する。その後、スレーブ回路５０１は選択したメモリデバイスと接続されたマスタ回路に対してＳ６０７で受信したアドレスを発行するよう指示する（Ｓ６２２）。スレーブ回路５０１は、マスタデバイス４１０からライトデータを受信し、Ｓ６２０で選択したマスタ回路に転送する（Ｓ６２３）。スレーブ回路５０１は、マスタデバイス４１０からアクセス中のメモリデバイスの最後のアドレスに書き込むデータの受信を完了したか否かを判定する（Ｓ６２４）。
【００５４】
メモリデバイスの最後のアドレスに書き込むデータの受信を完了した場合、スレーブ回路５０１は次にアクセスするアドレスを有するメモリデバイスに接続されたマスタ回路に対してＣＳ信号のアサートとオペコードの発行を指示する（Ｓ６２５）。図９（ａ）のＴ４において、スレーブ回路５０１はマスタ回路５０３に対してＣＳ信号のアサートとオペコードの出力を指示する。さらに、スレーブ回路５０１はＳ６２５でアクセスしたマスタ回路に対して、メモリデバイスの先頭アドレスを出力するよう指示する（Ｓ６２６）。本実施形態では、マスタデバイスが出力したデータをブリッジが８クロック分バッファして、スレーブデバイスに出力する。そのため、メモリデバイスの最終アドレスに書き込まれるデータが出力されたタイミングで次のメモリデバイスへのアクセスを開始することで、１つ目のメモリデバイスへのライトが完了した後、速やかに次のデバイスへの書き込みを開始することができる。
【００５５】
Ｓ６２４でライト先のアドレスがメモリデバイスの最終アドレスでない場合、スレーブ回路５０１はマスタデバイス４１０が出力するＣＳ信号がネゲートされたか否かを判定する（Ｓ６２７）。ＣＳ信号がネゲートされていない場合、スレーブ回路５０１は、ライト先のアドレスをインクリメントする（Ｓ６２８）。そして、スレーブ回路５０１はＳ６２３に処理を戻す。ＣＳ信号がネゲートされた場合、アドレス解析回路５０４は、ライト動作中のマスタ回路に対してライトが完了した後にＣＳ信号をネゲートするよう指示する（Ｓ６２９）。以上がライトアクセス時の動作である。
【００５６】
次に、図７を用いてスレーブ回路５０１がリードアクセスをする場合の処理を説明する。
【００５７】
スレーブ回路５０１は、Ｓ６０７で受信したアドレスを解析し、アクセスするメモリデバイスを選択する（Ｓ６４０）。図９（ｂ）のＴ３において、スレーブ回路５０１はアクセス先となるメモリデバイスを選択する。いずれのメモリデバイスにアクセスするかの判定方法は図６と同様である。スレーブ回路５０１は、選択したメモリデバイスと接続されたマスタ回路に対して、ＣＳ信号をアサートし、リードコマンドを発行するよう指示する（Ｓ６４１）。図９（ｂ）のＴ４において、スレーブ回路５０１はマスタ回路５０２にＣＳ信号のアサートとオペコードの出力を指示する。そして、スレーブ回路５０１は、リードコマンドに続けて、受信したアドレスをメモリデバイスに対して発行するよう指示する（Ｓ６４２）。そして、スレーブ回路５０１はマスタデバイス４１０から所定のサイクル数のクロック信号をダミーサイクルとして受信する（Ｓ６４３）。
【００５８】
スレーブ回路５０１は選択したメモリデバイスと接続されたマスタ回路からリードデータを取得し、マスタデバイス４１０に対して出力する（Ｓ６４４）。スレーブ回路５０１は、メモリデバイスの最終アドレスから読み出したデータの出力を開始する１１クロック前であるか否かを判定する（Ｓ６４５）。最終アドレスから読み出したデータを出力する１１クロック前である場合、スレーブ回路５０１は次にアクセスするメモリデバイスと接続されたマスタ回路に対してＣＳ信号をアサートしてオペコードの出力を指示する（Ｓ６４６）。
【００５９】
本実施形態では、オペコードとアドレスの出力に８クロック、ダミーサイクルが３クロックあるため、マスタ回路がメモリデバイスにアクセスを開始してから１１クロック後にデータの読み出しが開始される。そこで、スレーブ回路５０１が最終アドレスに格納されたデータの出力を開始する１１クロック前に、次にアクセスするメモリデバイスに接続されたマスタ回路にオペコードとアドレスの設定開始を指示する必要がある。図９（ｂ）では、第１のメモリデバイス４１２から６バイト分のデータを読み出した後、第２のメモリデバイス４１３からデータの読み出しを開始する。そこで、スレーブ回路５０１は、６バイト目の出力を開始する１１クロック前のＴ５で、第２のマスタ回路５０３にオペコードとアドレスを指示する。マスタ回路５０３は、上記の指示に応じて、ＣＳ信号をアサートしオペコードの設定を開始する。さらに、スレーブ回路５０１はマスタ回路に対して、リードコマンドに続けて次にアクセスするメモリデバイスの先頭アドレスを発行する（Ｓ６４７）。
【００６０】
スレーブ回路５０１はマスタデバイス４１０から入力されるＣＳ信号がネゲートされたか否かを判定する（Ｓ６４８）。ネゲートされていない場合、スレーブ回路５０１はリード元となるアドレスをインクリメントする（Ｓ６４９）。次にスレーブ回路５０１は、インクリメント後のアドレスがアクセス中のメモリデバイスのアドレスであるか否かを判定する（Ｓ６５０）。アクセス中のメモリデバイスのアドレスであれば、スレーブ回路５０１はＳ６４４に処理を戻す。Ｓ６５０において、アドレスがアクセス中のメモリデバイスのアドレスでない場合、スレーブ回路５０１はリードデータを取得するマスタ回路をインクリメント後のアドレスで指定されるメモリデバイスと接続されたマスタ回路に切り替える（Ｓ６５１）。スレーブ回路５０１は信号線５２０または５２１からリードデータを取得する。スレーブ回路５０１は、Ｓ６５１においていずれの信号線からのリードデータを取得するかどうかを制御するセレクタの値を切り替える。
【００６１】
Ｓ６４８においてＣＳ信号がネゲートされた場合、スレーブ回路５０１はリードアクセス中のメモリデバイスと接続されたマスタ回路に対してＣＳ信号のネゲートを指示する（Ｓ６５２）。以上でリードアクセス時の処理を完了する。
【００６２】
なお、上記のフローチャートでは、メモリデバイスの最終アドレスの１１クロック前のタイミングで、これからアクセスが開始されるメモリデバイスにオペコード、アドレスの設定を行うとした。メモリデバイスの最終アドレスに格納されたデータが出力される何クロック前にオペコード、アドレスの出力を開始するかは上記の値に限らない。また、先にアクセスを開始したメモリに対するアクセスが完了してから、次のメモリデバイスへのオペコード、アドレスの設定を行うとしてもよい。
【００６３】
図８は、スレーブ回路５０１からアクセスがあった場合のマスタ回路５０２、５０３の処理を示すフローチャートである。マスタ回路５０２、５０３はいずれも同様に動作するため、マスタ回路５０２を例に説明する。本実施形態においてブリッジデバイス４１１内のマスタ回路が以下の処理を実行するとして説明するが、ＣＰＵが以下の処理を実行するとしてもよい。
【００６４】
マスタ回路５０２は、スレーブ回路５０１からＣＳ信号をアサートし、オペコートを発行する指示を受信したか否かを判定する（Ｓ１６０１）。ＣＳ信号をアサートし、オペコードを発行する指示を受信するまで、マスタ回路５０２は処理を進めず、Ｓ１６０１に記載の処理を実行する。ＣＳ信号をアサートし、オペコードを発行する指示を受信したことにしたがって、マスタ回路５０２はＣＳ信号線５５３をＬｏｗレベルにし、ＩＯ＿０信号線５５５〜ＩＯ＿４信号線５５８にオペコードを出力する（Ｓ１６０２）。
【００６５】
マスタ回路５０２は発行したオペコードがライトコマンド、またはリードコマンドであるか否かを判定する（Ｓ１６０３）。発行したコマンドがライトコマンド、リードコマンド以外のコマンドである場合、マスタ回路５０２はスレーブ回路５０１からＣＳ信号のネゲートが指示されたか否かを判定する（Ｓ１６０４）。マスタ回路５０２はスレーブ回路５０１からＣＳ信号をネゲートする指示がなされるまで処理を進めることなくＳ１６０４に記載の処理を実行する。スレーブ回路５０１からＣＳ信号をネゲートが指示されたことに従って、マスタ回路５０２はＣＳ信号をネゲートする（Ｓ１６０５）。その後、マスタ回路５０２はＳ１６０１に処理を戻す。
【００６６】
Ｓ１６０３に発行したオペコードがライトコマンド、または、リードコマンドである場合、マスタ回路５０２はメモリデバイスに対してスレーブ回路５０１から受信したアドレスを発行する（Ｓ１６０６）。この時、マスタ回路５０２が発行するアドレスは、スレーブ回路５０１が受信したアドレスと同じアドレスである。そして、マスタ回路５０２は発行したオペコードがライトコマンドであるか否かを判定する（Ｓ１６０７）。発行したコマンドがライトコマンドである場合、マスタ回路５０２はライトデータをメモリデバイス４１２に対して出力する（Ｓ１６０８）。マスタ回路５０２はライト先がメモリデバイスの最終アドレスか否かを判定する（Ｓ１６０９）。ライト先がメモリデバイスの最終アドレスでない場合、マスタ回路５０２はＳ１６１０で後述する処理を実行する。一方で、ライト先がメモリデバイスの最終アドレスである場合、マスタ回路５０２はＳ１６１１で後述する処理を実行する。
【００６７】
その後、マスタ回路５０２はスレーブ回路５０１からＣＳ信号のネゲートが指示されたか否かを判定する（Ｓ１６１０）。ＣＳ信号のネゲートが指示されていない場合、マスタ回路５０２はＳ１６０８に処理を戻す。スレーブ回路５０１からＣＳ信号のネゲートが指示された場合、マスタ回路５０２はメモリデバイスへ出力するＣＳ信号をネゲートする（Ｓ１６１１）。
【００６８】
Ｓ１６０７においてオペコードがライトコマンドでない場合、すなわち発行したオペコードがリードコマンドである場合、マスタ回路５０２はダミーサイクル分のクロックの出力が完了するのを待つ（Ｓ１６１２）。ダミーサイクル分のクロック出力が完了したのち、マスタ回路５０２はメモリデバイス４１２からリードデータを受信し、メモリデバイスに対して出力する（Ｓ１６１３）。次に、マスタ回路５０２は、リード元のアドレスがメモリデバイスの最終アドレスであるか否かを判定する（Ｓ１６１４）。リード元がメモリデバイスの最終アドレスでない場合、マスタ回路５０２はＳ１６１６で後述する処理を実行する。一方で、リード元がメモリデバイスの最終アドレスである場合、マスタ回路５０２は、Ｓ１６１５で後述する処理を実行する。
【００６９】
Ｓ１６１５において、マスタ回路５０２はスレーブ回路５０１からＣＳ信号のネゲートが指示されたか否かを判定する。ＣＳ信号のネゲートが指示されていない場合、マスタ回路５０２は処理をＳ１６１３に戻しリードデータを受信する。ＣＳ信号のネゲートが指示された場合、マスタ回路５０２はメモリデバイス４１２へ出力されるＣＳ信号をネゲートする（Ｓ１６１６）。そして、マスタ回路５０２は処理をＳ１６０１に戻す。
【００７０】
上記のようなブリッジデバイスを用いることで、マスタデバイス４１０に接続することのできるメモリデバイスより多くのメモリデバイスを接続することができる。
【００７１】
なお、本実施形態では、リードアクセスをする場合、スレーブ回路５０１がメモリデバイスの最終アドレスから読み出したリードデータの出力を開始する１１クロック前に次にアクセスするメモリデバイスに対してオペコード、アドレスの設定を開始するとした。しかし、スレーブ回路５０１がメモリデバイスの最後のアドレスから読み出したリードデータの出力を完了してから、次のメモリデバイスに対してオペコードとアドレスの設定を行うとしてもよい。
【００７２】
＜第２の実施形態＞
第１の実施形態では、スレーブ回路がマスタデバイスから受信したアドレスからいずれのマスタ回路にアクセスするかが決定されるまで、メモリデバイスに対してのオペコードとアドレスの出力が行われない。そのため、マスタデバイスがオペコードの出力を開始してから、メモリデバイスが動作を開始するまでに時間が空いてしまう。第２の実施形態では、マスタデバイスがオペコードの出力を開始してから、メモリデバイスが動作を開始するまでの動作を短くすることを目的とする。
【００７３】
図１０は第２の実施形態におけるブリッジデバイス４１１のブロック図である。第１の実施形態と同様のブロックには同じ符号を付加している。ここでは、第１の実施形態との差分のみを説明する。
【００７４】
アドレス解析回路５０４は、スレーブ回路５０１からＣＳ信号、各入出力信号を受信して、後述のＣＳゲート回路を使ってＣＳ信号をゲートするかを判定する。また、アドレス解析回路５０４は第１のマスタ回路５０２、第２のマスタ回路５０３に対してオペコードやアドレスの出力指示等もする。アドレス解析回路５０４は、マスタデバイス４１０から入力されたクロックの数をカウントするカウンタを有する。アドレス解析回路５０４は、当該カウンタの値を参照することで、マスタデバイス４１０がＣＳ信号をアサートしてから何クロック目の信号が入力されたかを知ることができる。たとえば、マスタデバイス４１０によりＣＳ信号がアサートされてから２クロックの間に受信された信号はオペコードであり、３クロック目から８クロック目に受信された信号はアドレスを示す。９クロック目以降に受信された信号は、リード、または、ライトアクセスに関する信号である。このようにすることで、アドレス解析回路５０４は、マスタデバイス４１０から受信した信号からアクセス先のメモリアドレスを特定することができる。
【００７５】
第１のＣＳゲート回路５０５は、第１のマスタ回路５０２が出力するＣＳ信号をゲートするための回路である。第１のＣＳゲート回路５０５は、たとえばＯＲ回路のような論理回路であり、アドレス解析回路５０４からの出力に応じて、第１のマスタ回路５０２から出力されるＣＳ信号をゲートするか否かを切り替える。第２のＣＳゲート回路５０６は、第２のマスタ回路５０３から第２のメモリデバイス４１３に出力されるＣＳ信号をゲートするための回路である。第１のＣＳゲート回路５０５と同様に、アドレス解析回路５０４の出力に応じて第２のマスタ回路５０３が出力するＣＳ信号をゲートする。
【００７６】
信号線５２４、５２５はアドレス解析回路５０４と第１のＣＳゲート回路５０５、第２のＣＳゲート回路５０６を接続する信号線である。アドレス解析回路５０４が信号線５２４、５２５への出力を変えることで、各マスタ回路から出力されるＣＳ信号をゲートするか否かが切り替えられる。
【００７７】
ここで、第２の実施形態におけるブリッジデバイス４１１の動作を図１１のタイミングチャートを用いて説明する。ここでは、マスタデバイス４１０が第１のメモリデバイス４１２にデータを書き込む場合を例に説明する。
【００７８】
マスタデバイス４１０は、Ｔ１でＣＳ信号線５４３の信号をアサートし、オペコードを出力する。Ｔ２において、マスタデバイス４１０はオペコードの出力を開始する。Ｔ３において、マスタデバイス４１０はスレーブ回路５０１にアドレスの入力を開始する。さらにＴ３において、第１のマスタ回路５０２、第２のマスタ回路５０３はメモリデバイスに対するオペコードの出力を開始する。本実施形態では、ブリッジデバイスがデータを受信し出力するのに２クロック必要であるため、マスタ回路の出力がマスタデバイスの出力に対して２クロック分遅れる。
【００７９】
入力されたアドレスは、第１のマスタ回路５０２、第２のマスタ回路５０３、アドレス解析回路５０４に入力される。Ｔ４のタイミングで、アドレスの１９ｂｉｔの値が第１のマスタ回路５０２、第２のマスタ回路５０３、アドレス解析回路５０４に入力される。アドレス解析回路５０４は、アドレスの１９ｂｉｔの値とそのアドレスがいずれのメモリデバイスに対応するかを記憶している。Ｔ４において、アドレス解析回路５０４は１９ｂｉｔの値を参照し、マスタデバイス４１０が指定したアドレスが第１のメモリデバイス４１２のアドレスか、第２のメモリデバイス４１３のアドレスかを判定する。
【００８０】
マスタデバイス４１０が出力したアドレスが第１のメモリデバイス４１２のアドレスである場合、アドレス解析回路５０４は、第２のマスタ回路５０３から出力されるＣＳ信号をネゲートする。これにより、Ｔ４で示すように、第３のマスタ回路５０３とメモリデバイス４１３の間のＣＳ信号８２３はネゲートされ、第３のマスタ回路５０３からメモリデバイス４１３へのアクセスは停止される。
【００８１】
上記のタイミングチャートで示すように、マスタデバイス４１０からライトアクセスがなされた場合、第１のマスタ回路５０２と第３のマスタ回路５０３はマスタデバイス４１０からの入力を２クロック遅れで出力する。アドレス解析回路５０４がアクセス先となるメモリデバイスに合わせてマスタ回路から出力されるＣＳ信号をゲートし、メモリデバイスにＣＳ信号が入力されないようにすることで、アクセス先でないメモリデバイスとの通信を終了する。そして、マスタデバイス４１０の指定したアドレスに基づいて選択されたメモリデバイスのみと通信する。
【００８２】
次に、図１２を用いて、マスタデバイス４１０がリードコマンドを出力した場合の動作を説明する。Ｔ１で、マスタデバイス４１０はＣＳ信号をアサートする。Ｔ２において、マスタデバイス４１０はオペコードの出力を開始する。第１のマスタ回路５０２、第３のマスタ回路５０３は、Ｔ２でＣＳ信号をアサートし第１のメモリデバイス４１２、第２のメモリデバイス４１３との通信を開始する。そして、Ｔ３でマスタデバイス４１０はアドレスの出力を開始する。Ｔ３でマスタデバイス４１０が出力したアドレスは、アドレス解析回路５０４、第１のマスタ回路５０２、第２のマスタ回路５０３に入力される。Ｔ４において、アドレス解析回路５０４、第１のマスタ回路５０２、第２のマスタ回路５０３にアドレスの１９ｂｉｔの値が入力される。アドレス解析回路５０４は、１９ｂｉｔの値が０か１かを参照し、当該アドレスが第１のメモリデバイス４１２、第２のメモリデバイス４１３のいずれのメモリデバイスのアドレスかを判定する。ここでは、マスタデバイス４１０が第１のメモリデバイス４１２のアドレスを出力したとする。Ｔ４において、アドレス解析回路５０４はアクセス先でない第２のメモリデバイス４１３と接続された第２のマスタ回路５０３から出力されるＣＳ信号をゲートする。このようにすることで、第２のマスタ回路５０３と第２のメモリデバイス４１３の通信を終了する。
【００８３】
Ｔ５において、第１のマスタ回路５０２は第１のメモリデバイス４１２からリードデータを取得する。そして、Ｔ６でスレーブ回路５０１は第１のメモリデバイス４１２から読み出したリードデータをマスタデバイスに対して出力する。Ｔ７において、ＣＳ信号をネゲートしマスタデバイス４１０とスレーブ回路５０１の通信を終了する。
【００８４】
上記のようにすることで、リードアクセスの場合も、マスタデバイス４１０がメモリデバイスとの通信を開始するためにコマンドを発行してから、マスタデバイス４１０がリードデータを取得するまでにかかる時間を抑制することができる。
【００８５】
第２の実施形態では、上記のようにマスタデバイス４１０からのアドレスの受信を完了し、アクセスするデバイスが決まる前に各メモリデバイスに対してオペコードを出力する。このようにすることで、マスタデバイスが出力するアドレスを受信し、アクセスするデバイスが決まってからブリッジデバイスがオペコードを出力する場合と比べて、メモリデバイスへのアクセスが開始するまでの時間を短くすることができる。
【００８６】
次に、図１３を用いて第２の実施形態における、アドレス解析回路５０４の動作を説明する。図１３に記載の処理は情報処理装置の電源がオンになったことに従って開始され、情報処理装置の電源がオフになるまで繰り返し実行される。本実施形態ではＡＳＩＣ等の回路が以下の処理を実行するとして説明するが、ＣＰＵがプログラムを実行することで以下の処理が実現されてもよい。
【００８７】
アドレス解析回路５０４は、第１のＣＳゲート回路５０５と第２のＣＳゲート回路５０６にゲート解除を指示する（Ｓ１２０１）。アドレス解析回路５０４は、信号線５２４、５２５の信号をＬｏｗレベルに設定する。これにより、スレーブ回路５０１から第１のマスタ回路５０２、第２のマスタ回路５０３に入力されるＣＳ信号はゲートされることなく第１のメモリデバイス４１２、第２のメモリデバイス４１３に入力される。
【００８８】
アドレス解析回路５０４は、スレーブ回路５０１から出力されたＣＳ信号がＬｏｗレベルにアサートされたか否かを判定する（Ｓ１２０２）。ＣＳ信号がアサートされていない場合、アドレス解析回路５０４はＳ１２０２に記載の処理を継続して実行し、ＣＳ信号がアサートされた場合、アドレス解析回路５０４は処理をＳ１２０３に進める。
【００８９】
アドレス解析回路５０４は、スレーブ回路５０１からオペコードを受信する（Ｓ１２０３）。このオペコードは、スレーブ回路５０１が第１のマスタ回路５０２、第２のマスタ回路５０３に対して出力するオペコードと同じオペコードである。アドレス解析回路５０４は２クロックで８ビットのデータを受信し、不図示のレジスタにオペコードを格納する。
【００９０】
アドレス解析回路５０４は、受信したオペコードがリードコマンド、または、ライトコマンドであるか否かを判定する（Ｓ１２０４）。受信したオペコードがリードコマンド、または、ライトコマンドでない場合、アドレス解析回路５０４は後述するＳ１２１５に処理を進める。受信したオペコードがリードコマンド、または、ライトコマンドである場合、アドレス解析回路５０４は、アドレスの受信を開始する（Ｓ１２０５）。Ｓ１２０５において、アドレス解析回路５０４は、アドレスを受信し不図示のレジスタに格納する。１９ｂｉｔのアドレスをレジスタに格納した後、アドレス解析回路５０４は処理をＳ１２０６に進める。なお、アドレス解析回路５０４は、以下の処理と並行して１９ｂｉｔよりも前のアドレスを受信し、不図示のレジスタに格納する。
【００９１】
アドレス解析回路５０４は、Ｓ１２０３で受信したオペコードがライトコマンドであるか否かを判定する（Ｓ１２０６）。ライトコマンドである場合、アドレス解析回路５０４はＳ１２０７〜Ｓ１２０９の処理を実行する。リードコマンドである場合、アドレス解析回路はＳ１２１０〜Ｓ１２１４の処理を実行する。
【００９２】
オペコードがライトコマンドであった場合、アドレス解析回路５０４はＳ１２０５で受信したアドレスの１９ｂｉｔの値に基づいて、アクセス先が第１のメモリデバイス４１２であるか否かを判定する（Ｓ１２０７）。アクセス先が第１のメモリデバイス４１２である場合、アドレス解析回路５０４は第２のＣＳゲート回路５０６への入力信号をＨｉｇｈレベルにし、第２のマスタ回路５０３から出力されるＣＳ信号をゲートする（Ｓ１２０８）。アクセス先が第２のメモリデバイス４１３である場合、アドレス解析回路５０４は、第１のＣＳゲート回路５０５への入力信号をＨｉｇｈレベルにし、第１のマスタ回路５０２から出力されるＣＳ信号をゲートする（Ｓ１２０９）。アドレス解析回路５０４は、Ｓ１２０８またはＳ１２０９の処理の後、後述するＳ１２１５を実行する。
【００９３】
Ｓ１２０６においてオペコードがリードコマンドと判定された場合も、アドレス解析回路５０４はＳ６０５で受信したアドレスの１９ｂｉｔの値に基づいて、アクセス先が第１のメモリデバイス４１２であるか否かを判定する（Ｓ１２１０）。アクセス先のデバイスが第１のメモリデバイス４１２の場合、アドレス解析回路５０４は、第２のＣＳゲート回路５０６への入力信号をＨｉｇｈレベルにし、第２のマスタ回路５０３から出力されるＣＳ信号をゲートする（Ｓ１２１１）。そして、アドレス解析回路５０４は、スレーブ回路５０１に対して、第１のマスタ回路５０２から出力されるデータをマスタデバイス４１０に対して出力するよう指示する（Ｓ１２１２）。Ｓ１２１２において、アドレス解析回路５０４は、スレーブ回路５０１が信号線５２０、５２１のいずれを介して取得したデータをマスタデバイス４１０に出力するかを制御するセレクタの値を制御する。
【００９４】
アクセス先が第２のメモリデバイス４１３である場合、アドレス解析回路５０４は、第１のＣＳゲート回路５０５への入力信号をＨｉｇｈレベルにし、第１のマスタ回路５０２から出力されるＣＳ信号をゲートする（Ｓ１２１３）。そして、アドレス解析回路５０４は、スレーブ回路５０１に対して、第１のマスタ回路５０３から出力されるデータをマスタデバイス４１０に対して出力するよう指示する（Ｓ１２１４）。Ｓ１２１４において、アドレス解析回路５０４は、スレーブ回路５０１が信号線５２０、５２１のいずれを介して取得したデータをマスタデバイス４１０に出力するかを制御するセレクタの値を制御する。Ｓ１２１２、Ｓ１２１４の後、アドレス解析回路５０４はＳ１２１５に記載の処理を実行する。
【００９５】
アドレス解析回路５０４は、スレーブ回路５０１から入力されるＣＳ信号がネゲートされたか否かを判定する（Ｓ１２１５）。アドレス解析回路５０４はスレーブ回路５０１から入力されたＣＳ信号のレベルがＨｉｇｈレベルである場合に、ＣＳ信号がネゲートされたと判定する。ＣＳ信号がネゲートされていない場合、アドレス解析回路５０４はＣＳ信号がネゲートされるまでＳ１２１５に記載の処理を続ける。ＣＳ信号がネゲートされた場合、アドレス解析回路５０４はマスタデバイス４１０と第１のメモリデバイス４１２、第２のメモリデバイス４１３間のデータ転送が完了したとして、Ｓ１２０１に処理を戻す。
【００９６】
第２の実施形態では、マスタデバイス４１０から入力されたアドレスで指示されるメモリデバイスを決定する前に、ブリッジデバイス４１１がオペコードを第１のメモリデバイス４１２、第２のメモリデバイス４１３の両方に出力する。このようにすることで、マスタデバイス４１０がブリッジデバイス４１１へのアクセスを開始してから、第１のメモリデバイス４１２、第２のメモリデバイス４１３へのアクセスが開始されるまでの時間が短くなる。そのため、マスタデバイス４１０と第１のメモリデバイス４１２、第２のメモリデバイス４１３の間のデータ転送に必要な時間が短くなる。
【００９７】
さらに、第２の実施形態では、図１２のＳ１２０８、Ｓ１２０９、Ｓ１２１１、Ｓ１２１３において、それぞれのマスタ回路からアクセス先ではないメモリデバイスへ供給されるＣＳ信号をゲートし、メモリデバイスへ入力されるＣＳ信号をゲートした。このようにすることで、たとえば、マスタデバイスが出力したアドレスで指定されるメモリデバイスと異なるメモリデバイスからデータを読み出したり、異なるメモリデバイスにデータを書き込むなどの誤動作をしないようにする。
【００９８】
＜第３の実施形態＞
第２の実施形態では、マスタデバイスからの１回のアクセス中にアクセス先が複数のメモリデバイスを跨がない場合を例に説明した。しかし、１回のアクセスで連続するアドレスにアクセスする方法であるバーストアクセスを実行することのできるＱＳＰＩを用いた場合、１回のアクセス中にアクセス先のメモリデバイスが変わってしまう場合がある。第３の実施形態では、１回のアクセス中にアクセス先となるメモリデバイスが変わってしまう場合について説明する。
【００９９】
図１４は、第３の実施形態におけるブリッジデバイス４１１の詳細の構成を示す図である。ここでは、第２の実施形態との差分のみを説明する。第３の実施形態に記載のブリッジデバイス４１１は、アドレス解析回路５０４から出力される信号を第１のマスタ回路５０２に入力する信号線１００１を有する。信号線１００１は、マスタデバイス４１０からのアクセス先が第２のメモリデバイス４１３から第１のメモリデバイス４１２に移行する場合に、第１のマスタ回路５０２へのオペコード、アドレスの出力を指示するための信号線である。さらに、第３の実施形態に記載のブリッジデバイス４１１は、アドレス解析回路５０４から出力される信号を第２のマスタ回路５０２に入力するための信号線１００２を有する。信号線１００２は、マスタデバイス４１０からのアクセス先が第１のメモリデバイス４１２から第２のメモリデバイス４１３に移行する際に、第２のマスタ回路５０３にオペコードやアドレスの出力を指示するための信号線である。上記の信号線１００１、１００２を有することで、第３の実施形態に記載のブリッジデバイスは、マスタデバイス４１０からの複数のメモリデバイスを跨ぐアクセスを実行することができる。
【０１００】
さらに、第３の実施形態に記載のブリッジデバイス４１１のスレーブ回路５０１はバッファ５１１を有している。バッファ５１１は、マスタデバイス４１０から出力され第１のマスタ回路５０２、第２のマスタ回路５０３に対して出力されるデータを１クロック分格納するバッファである。
【０１０１】
次に、図１５を用いて、第３の実施形態において、マスタデバイス４１０がライトアクセスを実行したときのブリッジデバイスの処理を説明する。図１５（ａ）は、マスタデバイス４１０から出力されたアドレスがメモリデバイス４１２の最後のアドレスよりも４バイト以上前のアドレスである場合のブリッジデバイスの動作を示すタイミングチャートである。即ち、マスタ回路がメモリデバイスへのアクセスを開始してからアクセス先のメモリデバイスが切り替わるタイミングまでに８クロック以上ある場合のタイミングチャートである。
【０１０２】
図１５（ａ）では、マスタデバイス４１０の指定したアドレスが、メモリデバイスの最後のアドレスの９バイト分前のアドレス、すなわち、アクセス先となるメモリデバイスの切替までに１８クロックある場合を示している。
【０１０３】
まず、Ｔ０において、マスタデバイス４１０がＣＳ信号をアサートし、オペコードの出力を開始する。第２の実施形態と同様に、マスタデバイス４１０から入力された信号は２クロック遅れて、Ｔ１のタイミングで第１のマスタ回路５０２、第２のマスタ回路５０３から出力が開始される。
【０１０４】
マスタデバイス４１０から入力された信号はマスタデバイス４１０が信号を出力してから１クロック遅れてアドレス解析回路５０４に入力される。そのため、Ｔ２のタイミングでアドレス解析回路５０４にマスタデバイス４１０の出力したアドレスの１９ｂｉｔが入力される。アドレス解析回路５０４は１９ｂｉｔの値を参照し、第１のメモリデバイス４１２、第２のメモリデバイス４１３のどちらと通信するかを判定する。そして、Ｔ３において、アドレス解析回路５０４は、マスタデバイス４１０から入力されたアドレスで指定されたメモリデバイスでないメモリデバイスと接続されたマスタ回路に対して先頭アドレスを出力するよう制御する。
【０１０５】
Ｔ４において、アドレス解析回路５０４は、アクセス先でない第２のメモリデバイス４１３と接続された第２のマスタ回路５０３にＣＳ信号のネゲートを指示する。
【０１０６】
Ｔ５において、アドレス解析回路５０４は、マスタデバイス４１０から受信したデータの書き込み先となるメモリデバイスを切り替えるために、第２のマスタ回路５０３に対してＣＳ信号をアサートして、オペコードと先頭アドレスの設定を行うよう制御する。
【０１０７】
Ｔ６において、第１のマスタ回路５０２は第１のメモリデバイス４１２の最後のアドレスへのデータの書き込みを完了し、ＣＳ信号をネゲートして第１のメモリデバイス４１２との通信を終了する。Ｔ６以降、マスタデバイス４１０からブリッジデバイス４１１に入力されたデータは第２のメモリデバイス４１３に書き込まれる。
【０１０８】
図１５（ｂ）は、マスタデバイス４１０が指定したアドレスからアクセスを開始して、アクセス先のメモリデバイスを切り替えるまでのクロック数が８クロック以下の場合の動作を示したタイミングチャートである。図１５（ｂ）では、第１のマスタ回路５０２が第１のメモリデバイス４１２へのアドレスの設定を終えた後、８クロック以内に第２のメモリデバイス４１３へのアクセスを開始する。そのため、第２のマスタ回路５０３が第２のメモリデバイス４１３へのアクセスを停止してしまうと、再度、オペコードとアドレスを設定している間に第２のメモリデバイス４１３にライトするデータの出力が開始されてしまう。そこで、図１５（ｂ）では、第２のマスタ回路５０３はアドレスを出力した後、Ｔ７においてクロック信号の出力を停止する。そして、第１のマスタ回路５０２が第１のメモリデバイス４１２の最終アドレスにアクセスした後、Ｔ８で第２のメモリデバイス４１３へのクロック信号の出力を再開する。このようにすることで、第２のマスタ回路５０３はＣＳ信号線５６３に出力されるＣＳ信号をネゲートすることなくアクセス先のデバイスを切り替えることができる。
【０１０９】
次に図１６を用いてマスタデバイス４１０がリードコマンドを出力した場合の処理を説明する。リードコマンドの場合には、データ取得までにオペコード、アドレスの設定に加え、ダミーサイクル（本実施例では３クロック）分の時間がかかる。そこで、マスタデバイス４１０が指定したアドレスからアクセスを開始し、アクセス先のメモリデバイスを切り替えるまでに１１クロックあるか否かによって処理を切り替える。
【０１１０】
図１６（ａ）は、アクセス先の切替までのクロック数が１１クロックよりも大きい場合である。ライトコマンドの受信時と同様に、マスタデバイス４１０から指定されたアドレスによるアクセス先でない第２のメモリデバイス４１３に対しては、Ｔ１においてメモリデバイスの先頭アドレスが設定される。そしてＴ２において、第２のマスタ回路５０３はＣＳ信号をネゲートし第２のメモリデバイス４１３との通信を終了する。マスタデバイス４１０が第１のメモリデバイス４１２から読み出したデータを出力する直前のＴ４から１２クロック前のタイミングで、アドレス解析回路５０４は第２のマスタ回路５０３に対してＣＳ信号のアサートを指示する。第２のマスタ回路５０３はＴ３のタイミングで第２のメモリデバイス４１３へのオペコードと先頭アドレスの設定を開始する。そして、リード元のデバイスが切り替わるＴ４において、第１のマスタ回路５０２はＣＳ信号をネゲートし、第１のメモリデバイス４１２へのアクセスを終了する。一方で、第２のマスタ回路５０３は第２のメモリデバイス４１３からのリードデータの取得を開始する。そして、スレーブ回路５０１は、Ｔ５において、第２のマスタ回路５０３から取得したリードデータをマスタデバイス４１０に出力する。
【０１１１】
図１６（ｂ）は、マスタデバイス４１０で指定されたアドレスからデータの読み出しを開始し、アクセス先のメモリデバイスが切り替わるまでにかかるクロック数が１１クロック以下の場合の処理を示している。図１６（ａ）のように、オペコードを出力してからマスタ回路がデータを取得するまでに１１クロックかかる。そこで、Ｔ６において、マスタデバイス４１０で指定されたアドレスから選択された第１のメモリデバイス４１２でない、第２のメモリデバイス４１３と接続された第２のマスタ回路５０３がクロック信号をゲートする。そして、Ｔ７において、第２のマスタ回路５０３はクロック信号のゲートを解除し、クロック信号の出力を再開する。このようにすることで、第２のマスタ回路５０３が再度オペコード、アドレスを設定することなく、アクセス先のメモリデバイスを切り替えることができる。
【０１１２】
図１７は、第３の実施形態において、アドレス解析回路５０４が実行する処理を示すフローチャートである。ここでは、第２の実施形態と共通する処理には同じ符号を付与し、差分の処理のみを説明する。なお、ＣＰＵ１１１０がプログラムを実行することで図１７に記載の処理が実現されるとしてもよい。
【０１１３】
アドレス解析回路５０４は、アクセス対象でない第２のメモリデバイス４１３と通信する第２のマスタ回路５０３に対して当該メモリの先頭アドレスを第２のメモリデバイス４１３に対して出力するよう指示する（Ｓ１５０１）。
【０１１４】
次に、アドレス解析回路５０４は、アクセス先のメモリデバイスの切替まであと何クロックあるかを算出する（Ｓ１５０２）。アドレス解析回路５０４は、次にアクセスするメモリデバイスの先頭アドレスからマスタデバイスにより指定されたアドレスを差し引き、あと何バイト分のアクセスを連続して行うことができるかを算出する。マスタデバイスは２クロックで１バイト分のデータを読み出すことができるため、アドレス解析回路５０４は連続して読み出せる残りのバイト数に２を掛けて切替までのクロック数を求める。
【０１１５】
次に、アドレス解析回路５０４は、Ｓ１５０２で算出したクロック数が閾値Ｎより大きいか否かを判定する（Ｓ１５０３）。本実施形態では、マスタデバイス４１０からライトコマンドが出力された場合、閾値Ｎを８とする。閾値は、アドレスの桁数などに応じて変えることができてもよい。
【０１１６】
Ｓ１５０２で算出したタイミング値が閾値よりも大きい場合、アドレス解析回路５０４は第２のＣＳゲート回路５０６にＣＳ信号のゲートを指示する（Ｓ１５０４）。一方で、Ｓ１５０２で算出したタイミング値が８クロック以下である場合、アドレス解析回路５０４はＳ１５０４の処理を行うことなく、Ｓ１５０５に処理を進める。
【０１１７】
アドレス解析回路５０４は、第２のマスタ回路５０３に対してクロック信号の出力を停止するよう指示する（Ｓ１５０５）。そして、アドレス解析回路５０４は、後述するＳ１５２３に処理を進める。
【０１１８】
次に、Ｓ１２０７においてマスタデバイス４１０が指定したアドレスが第２のメモリデバイス４１３であった場合、第１のマスタ回路５０２に対してオペコードと第２のメモリデバイス４１２の先頭アドレスの出力を指示する（Ｓ１５０６）。次に、アドレス解析回路５０４は、アクセス先と次のメモリデバイスに切り替えるタイミング値を算出する（Ｓ１５０７）。タイミング値の算出方法はＳ１５０２と同様である。アドレス解析回路５０４は、Ｓ１５０７で算出したタイミング値が閾値よりも大きいか否かを判定する（Ｓ１５０８）。Ｓ１５０７では８クロックを閾値とする。タイミング値が８クロックよりも大きい場合、アドレス解析回路５０４は、第１のＣＳゲート回路５０５に第１のマスタ回路５０２から出力されるＣＳ信号のゲートを指示する（Ｓ１５０９）。そして、アドレス解析回路５０４は、Ｓ１５１０に処理を進める。
【０１１９】
タイミング値が閾値以下の場合、アドレス解析回路５０４は、第１のマスタ回路５０２にクロック信号の出力停止を指示する（Ｓ１５１０）。
【０１２０】
Ｓ１２０８においてアクセス先が第１のメモリデバイス４１２であると判定された場合、アドレス解析回路５０４は第２のマスタ回路５０３にオペコードと第２のメモリデバイスの先頭アドレスの出力を指示する（Ｓ１５１１）。
【０１２１】
次に、アドレス解析回路５０４は、次のメモリデバイスへのアクセスタイミングを算出する（Ｓ１５１２）。ここでアドレス解析回路５０４はＳ１５０２で説明した方法で求められる値に、ダミークロックの数を加えた値をタイミング値として算出する。
【０１２２】
そして、アドレス解析回路５０４は、Ｓ１５１２で算出したタイミング値が閾値Ｍよりも大きいか否かを判定する（Ｓ１５１３）。本実施形態では１１を閾値Ｍとする。閾値の値は、アドレスの出力に必要なクロック数や、ダミークロックの数によって変わる。タイミング値が１１よりも大きい場合、アドレス解析回路５０４は第２のＣＳゲート回路５０６にＣＳ信号のゲートを指示する（Ｓ１５１４）。その後、アドレス解析回路５０４はＳ１５１５に記載の処理を実行する。
【０１２３】
タイミング値が閾値以下である場合、アドレス解析回路５０４は、第２のマスタ回路５０３にクロック信号の出力停止を指示する（Ｓ１５１５）。そして、アドレス解析回路５０４は、スレーブ回路５０１に第１のマスタ回路５０２からの出力を取得するよう指示する（Ｓ１５１６）。
【０１２４】
Ｓ１５１７において、アドレス解析回路５０４は、第１のマスタ回路５０２に対して第１のメモリデバイスの先頭アドレスを出力するよう指示する。つぎに、アドレス解析回路５０４は、次のデバイスへの切替タイミング値を算出する（Ｓ１６１８）。アドレス解析回路５０４によるタイミング値の算出方法はＳ１５１２と同様である。アドレス解析回路５０４は、Ｓ１６１８で算出されたタイミング値が閾値よりも大きいか否かを判定する（Ｓ１５１９）。タイミング値が閾値よりも大きい場合、アドレス解析回路５０４は、第１のＣＳゲート回路５０５に対してＣＳ信号のゲートを指示する（Ｓ１５２０）。そしてアドレス解析回路５０４はＳ１５１７に記載の処理を実行する。
【０１２５】
タイミング値が閾値よりも小さい場合、アドレス解析回路５０４は、第１のマスタ回路５０２に対してクロック信号の出力を停止するよう指示する（Ｓ１５２１）。そして、アドレス解析回路５０４は、スレーブ回路５０１に対して第２のマスタ回路５０３からの出力を取得するよう指示する（Ｓ１５２２）。
【０１２６】
上記の処理を完了したアドレス解析回路５０４は、後述するアクセス移行処理を実行する（Ｓ１５２３）。
【０１２７】
次に、図１８を用いてＳ１５２３においてアドレス解析回路が行うアクセス移行処理を説明する。
【０１２８】
アドレス解析回路５０４は、マスタデバイス４１０から出力されたオペコードがライトコマンドであるか否かを判定する（Ｓ１６０１）。ライトコマンドである場合、アドレス解析回路５０４は、タイミング値が閾値Ｎと一致するか否かを判定する（Ｓ１６０２）。タイミング値と閾値Ｎが一致した場合、アドレス解析回路５０４は次にアクセスするメモリデバイスに接続されたマスタ回路に対してオペコードとアドレスの出力開始を指示する（Ｓ１６０３）。タイミング値が閾値Ｎと一致しない場合、アドレス解析回路５０４はデータのライト先のメモリデバイスを切り替るタイミングであるか否かを判定する（Ｓ１６０４）。メモリデバイスの切替タイミングである場合、アドレス解析回路５０４は、次のメモリデバイスに対してライトを開始するために、アクセス中のメモリデバイスに接続されたＣＳゲート回路にＣＳ信号のゲートを指示する（Ｓ１６０５）。さらに、アドレス解析回路５０４は次にアクセスするメモリデバイスに接続されたマスタ回路から出力されるクロック信号がゲートされていたら、当該クロック信号のゲートを解除する。
【０１２９】
マスタデバイス４１０のアクセスがリードアクセスである場合、アドレス解析回路５０４は、タイミング値が閾値Ｍと一致するか否かを判定する（Ｓ１６０６）。タイミング値と閾値Ｍが一致する場合、アドレス解析回路５０４は、次にアクセスするメモリデバイスと接続されたマスタ回路にオペコードとアドレスの出力を指示する（Ｓ１６０７）。タイミング値が閾値Ｍでない場合、リード先となるメモリデバイスを切り替えるタイミングであるか否かを判定する（Ｓ１６０８）。リード先となるメモリデバイスを切り替えるタイミングとは、いずれかのマスタ回路がメモリの最終アドレスにアクセスしたタイミングである。
【０１３０】
アクセス先となるメモリデバイスを切り替える場合、アドレス解析回路５０４は、アクセスを終了するメモリデバイスに接続されたＣＳゲート回路にＣＳ信号のゲートを指示する（Ｓ１６０９）。さらに、アドレス解析回路５０４は、スレーブ回路５０１に対していずれのマスタ回路から出力されたデータを有効とするかを設定する。
【０１３１】
アドレス解析回路５０４は、タイミング値を１デクリメントする（Ｓ１６１０）。その後、図１７のＳ１２１５の処理へ処理を進める。
【０１３２】
図１７、図１８に記載の処理を行う第３の実施形態に記載のブリッジデバイスは、マスタデバイスが複数のメモリデバイスを跨ぐアクセスをした場合に、マスタデバイスからのアクセスを中断することなく、次のメモリデバイスにアクセスすることができる。
【０１３３】
＜その他の実施形態＞
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア（プログラム）をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム又は装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムコードを読み出して実行する処理である。この場合、そのコンピュータプログラム、及び該コンピュータプログラムを記憶した記憶媒体は本発明を構成することになる。
【図１】
2020035335.tif 000003
【図２】
2020035335.tif 000004
【図３】
2020035335.tif 000005
【図４】
2020035335.tif 000006
【図５】
2020035335.tif 000007
【図６】
2020035335.tif 000008
【図７】
2020035335.tif 000009
【図８】
2020035335.tif 000010
【図９】
2020035335.tif 000011
【図１０】
2020035335.tif 000012
【図１１】
2020035335.tif 000013
【図１２】
2020035335.tif 000014
【図１３】
2020035335.tif 000015
【図１４】
2020035335.tif 000016
【図１５】
2020035335.tif 000017
【図１６】
2020035335.tif 000018
【図１７】
2020035335.tif 000019
【図１８】
2020035335.tif 000020