(57)【要約】      （修正有）【課題】マスタデバイスとスレーブデバイスとの間にブリッジデバイスが接続される場合と、マスタデバイスに直接スレーブデバイスが接続される場合のいずれでも、誤動作を生じさせない技術を提供する。【解決手段】マスタデバイスと、マスタデバイスと通信する少なくとも一つのスレーブデバイスと、クロック信号に同期してマスタスレーブ形式で通信を行うインタフェース手段とを有する情報処理装置であって、インタフェース手段に接続されたデバイスがブリッジデバイスであることを検出し、その検出した結果に基づいて、マスタデバイスを、クロック信号の出力を停止しないモードに設定する。【選択図】図５
2020064413.tif 000002
【特許請求の範囲】
【請求項１】
マスタデバイスと、
前記マスタデバイスと通信する少なくとも一つのスレーブデバイスと、
クロック信号に同期してマスタスレーブ形式で通信を行うインタフェース手段とを有する情報処理装置であって、
前記インタフェース手段に接続されたデバイスがブリッジデバイスであることを検出する検出手段と、
前記検出手段が検出した結果に基づいて、前記マスタデバイスを、前記クロック信号の出力を停止しないモードに設定する設定手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記検出手段は、接続されているデバイスのＩＤコードに基づいて前記ブリッジデバイスであることを検出することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記マスタデバイスは、
レジスタと、
前記レジスタの設定値に応じて、発振している第１クロック信号と、その出力が制御される第２クロック信号のいずれかを選択して前記クロック信号として出力するマルチプレクサと、を有することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記ブリッジデバイスは、複数のスレーブデバイスを接続し、
前記ブリッジデバイスは、
前記マスタデバイスから受け取ったアドレスに応じて、前記複数のスレーブデバイスのうちのアクセス対象のスレーブデバイスを判定する判定手段と、
前記判定手段によりアクセス対象と判定されたスレーブデバイスに前記クロック信号を供給し、前記アクセス対象と判定されなかったスレーブデバイスへの前記クロック信号の供給を停止する手段と、を有することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記マスタデバイスは、
前記クロック信号と同じ周波数で同じ位相の第２のクロック信号を出力するクロック手段を、更に有し、
前記マスタデバイスは、前記マスタデバイスと前記スレーブデバイスとの間にブリッジデバイスが介在しないことを検出すると、前記クロック手段による前記第２のクロック信号の出力を停止させることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項６】
前記ブリッジデバイスは、複数のスレーブデバイスを接続し、
前記ブリッジデバイスは、
前記マスタデバイスから受け取ったアドレスに応じて、前記複数のスレーブデバイスのうちのアクセス対象のスレーブデバイスを判定する判定手段と、
前記判定手段によりアクセス対象と判定されたスレーブデバイスに前記第２のクロック信号を供給し、前記アクセス対象と判定されなかったスレーブデバイスへの前記第２のクロック信号の供給を停止する手段と、を有することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記スレーブデバイスは、ＦＲＡＭデバイスであることを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
クロック信号に同期してマスタスレーブ形式で通信を行うＱＳＰＩマスタデバイスであって、
前記ＱＳＰＩマスタデバイスのスレーブとして接続されているデバイスがブリッジデバイスかどうか判定する判定手段と、
前記判定手段が、前記ブリッジデバイスが接続されていると判定すると、前記クロック信号の出力を停止しないモードに設定する設定手段と、
を有することを特徴とするＱＳＰＩマスタデバイス。
【請求項９】
前記判定手段は、接続されているデバイスのＩＤコードに基づいて前記ブリッジデバイスが接続されているかどうか判定することを特徴とする請求項８に記載のＱＳＰＩマスタデバイス。
【請求項１０】
レジスタと、
前記レジスタの設定値に応じて、発振している第１クロック信号と、その出力が制御される第２クロック信号のいずれかを選択して前記クロック信号として出力するマルチプレクサと、を更に有し、
前記設定手段は、前記レジスタの設定値を変更して前記クロック信号の出力を停止しないようにすることを特徴とする請求項８又は９に記載のＱＳＰＩマスタデバイス。
【請求項１１】
前記クロック信号と同じ周波数で同じ位相の第２のクロック信号を出力するクロック手段を、更に有し、
前記ＱＳＰＩマスタデバイスは、前記判定手段が前記ブリッジデバイスが接続されていないと判定すると、前記クロック手段による前記第２のクロック信号の出力を停止させることを特徴とする請求項８又は９に記載のＱＳＰＩマスタデバイス。
【請求項１２】
前記スレーブとして接続されているデバイスは、ＦＲＡＭデバイスであることを特徴とする請求項８乃至１１のいずれか１項に記載のＱＳＰＩマスタデバイス。
【請求項１３】
マスタデバイスと、前記マスタデバイスと通信する少なくとも一つのスレーブデバイスと、クロック信号に同期してマスタスレーブ形式で通信を行うインタフェース手段とを備えた情報処理装置を制御する制御方法であって、
前記インタフェース手段に接続されたデバイスがブリッジデバイスであることを検出する検出工程と、
前記検出工程において検出した結果に基づいて、前記マスタデバイスを、前記クロック信号の出力を停止しないモードに設定する設定工程と、
を有することを特徴とする制御方法。
【請求項１４】
コンピュータに、請求項１３に記載の制御方法の各工程を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＱＳＰＩマスタデバイス、情報処理装置とその制御方法、並びにプログラムに関する。
【背景技術】
【０００２】
情報処理装置で使用される半導体メモリには、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の揮発性メモリと、フラッシュメモリやＦＲＡＭ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）（登録商標）等の不揮発性メモリがある。ＤＲＡＭは大容量で、高速アクセスが可能なので、ＯＳや各種アプリケーションを実行するためのデータの保存や、画像処理を実行するための一時的なデータの保存等に使用される。一方、フラッシュメモリやＦＲＡＭ（登録商標）は、小中容量でアクセス速度が定速なので、プログラムやログ情報の保存等に使用される。しかし、近年のＦＲＡＭは高速アクセスが可能となってきているので、ＤＲＡＭの置き換えとしての利用も検討されている。
【０００３】
ＦＲＡＭのインタフェースには、一般的なシリアルインタフェースであるＳＰＩ（Ｓｅｒｉａｌ  Ｐｅｒｉｈｅｒａｌ  Ｉｎｔｅｒｆａｓｅ）や、パラレルインタフェース等があり、ＰＣＢ基板の面積削減などの観点から、信号線が少ないシリアルインタフェースが採用されている。そのＳＰＩの中でも、複数のシリアルデータ信号線を有し、より高速アクセス可能なＱＳＰＩ（Ｑｕａｄ  Ｓｅｒｉａｌ  Ｐｅｒｉｈｅｒａｌ  Ｉｎｔｅｒｆａｓｅ）を採用するメモリデバイスも増えてきている。ＦＲＡＭの容量は、現状では最大でも数Ｍｂｉｔ（メガビット）であり、数十Ｇｂｉｔ（ギガビット）のＤＲＡＭの容量には遠く及ばない。
【０００４】
一方、ソフトウェアログ取得等の用途で必要とされるメモリの容量が増加している。これは、近年の情報処理装置の多機能化・高機能化に伴い、情報処理装置を制御するためのソフトウェアも複雑化しており、取得すべきソフトウェアログも従来に比べて格段に多くなってきているためである。メモリ容量を増加する方法として、チップセレクトを複数本用意し、ＦＲＡＭデバイスを複数接続する方法がある。しかし、ＱＳＰＩではＰＣＢ基板上の信号線の接続が、クロック信号とデータ信号が複数のデバイスで共通に接続されるために、高速アクセスする場合における信号品質やタイミング制約を守ることができない。
【０００５】
このようなＰＣＢ基板での信号品質やタイミング制約を解決する方法として、ＱＳＰＩ信号をブリッジするブリッジ回路を設ける手法がある。つまり、一つのマスタインタフェースからデータを受信するスレーブ回路を備え、複数のスレーブインタフェースに対して、受信したデータをアドレスによって振り分ける複数のマスタ回路を持つブリッジ回路を設ける構成である。この構成により、信号の分岐を減らすことができるため、信号の品質やタイミング制約を守ることができ、ＦＲＡＭデバイスのメモリ容量を増加させることができる。
【０００６】
１つのデバイスが複数のメモリデバイスを制御するためのブリッジ回路に関する技術として、特許文献１には、ＳＰＩマスタ回路からのシリアルデータをスレーブデバイスの数に応じて分離変換し、ＳＰＩスレーブ回路へのデータを１個のデータに多重変換することが記載されている。この技術を採用することにより、マスタ回路に複数のスレーブデバイスであるメモリデバイスを接続できるので、アクセス可能なメモリ容量を増加させることができる。また、スレーブデバイスへのアクセス周波数は、スレーブデバイスの数に比例して遅くなるため、タイミング制約に関しても軽減される。しかし、通常であれば入出力タイミングを合わせるためにＦＦ（フリップフロップ）を入出力部に挿入する等の回路構成ではないために、一般的にＡＣタイミングを守ることが困難となる。今後、さらにアクセス周波数が早くなることを考えると、ＡＣタイミングを守ることが益々困難となる。
【０００７】
またこの技術では、各スレーブデバイスに対して、オペコードやアドレスについても時分割で送信するために、分割されたスレーブは同一デバイスに入力されることが前提となっている。このため、例えば、物理的に分割されたＦＲＡＭデバイスを複数接続するような構成ではこの技術を採用することができない。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特許第６０９０８７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
物理的に分割されたＦＲＡＭデバイスを複数接続してメモリ容量を増やし、かつ、ＡＣタイミングを考慮したブリッジ回路の構成としては、以下の構成が考えられる。スレーブ回路にＡＣタイミング調整のためのフリップフロップを追加し、スレーブ回路を動作させるクロック信号に、シリアルインタフェースのクロック信号を使用する。しかし、ＱＳＰＩのクロック信号はアクセス中のみトグルするので、ブリッジ回路においてＡＣタイミング調整で追加したフリップフロップの数分や、レイテンシ等のサイクル分、クロック信号がトグルしないためにブリッジ回路の動作を完了させることができない。
【００１０】
この問題を解決するために、ＱＳＰＩマスタ回路を変更してクロックを止めない構成にすることも考えられるが、このマスタ回路にブリッジ回路ではなくＦＲＡＭ等のＱＳＰＩデバイスが、直接接続される場合は問題となる。例えば、製品の仕様によって、大容量ＦＲＡＭが必要な場合と、小容量ＦＲＡＭで問題ない場合があり、どちらの容量も接続される構成がある。この場合、マスタに、直接、ＦＲＡＭが接続されてＱＳＰＩのクロック出力が止まらない場合はＱＳＰＩに準拠しないために誤動作を起こす場合がある。
【００１１】
本発明の目的は、上記従来技術の問題点の少なくとも一つを解決することにある。
【００１２】
本発明の目的は、マスタデバイスとスレーブデバイスとの間にブリッジデバイスが接続される場合と、マスタデバイスに直接スレーブデバイスが接続される場合のいずれでも、誤動作を生じさせない技術を提供することにある。
【課題を解決するための手段】
【００１３】
上記目的を達成するために本発明の一態様に係る情報処理装置は以下のような構成を備える。即ち、
マスタデバイスと、
前記マスタデバイスと通信する少なくとも一つのスレーブデバイスと、
クロック信号に同期してマスタスレーブ形式で通信を行うインタフェース手段を有する情報処理装置であって、
前記インタフェース手段に接続されたデバイスがブリッジデバイスであることを検出する検出手段と、
前記検出手段が検出した結果に基づいて、前記マスタデバイスを前記クロック信号の出力を停止しないモードに設定する設定手段と、を有することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、マスタデバイスとスレーブデバイスとの間にブリッジデバイスが接続される場合と、マスタデバイスに直接スレーブデバイスが接続される場合のいずれでも、誤動作を生じさせることがない。
【００１５】
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
【図面の簡単な説明】
【００１６】
添付図面は明細書に含まれ、その一部を構成し、本発明の実施形態を示し、その記述と共に本発明の原理を説明するために用いられる。
【図１】本発明の実施形態１に係るＱＳＰＩにおけるマスタとスレーブの物理的な接続を説明するブロック図。
【図２】４本の双方向のＩＯ信号を使ってデータ転送を行うＱｕａｄＳＰＩモードにおけるライトアクセス時の各信号のタイミングチャート。
【図３】４本の双方向のＩＯ信号を使ってデータ転送を行うＱｕａｄＳＰＩモードにおけるリードアクセス時の各信号のタイミングチャート。
【図４】実施形態１に係る情報処理装置における、ＱＳＰＩマスタデバイスが搭載されるメインＰＣＢと、そのメインＰＣＢに接続されるサブＰＣＢの構成を説明するブロック図。
【図５】実施形態１に係るＱＳＰＩブリッジデバイスの内部構成を説明するブロック図。
【図６】実施形態１に係るアドレス解析部がＱＳＰＩスレーブデバイスへのＣＳ信号を制御する処理を説明するフローチャート。
【図７】実施形態１に係るＱＳＰＩマスタデバイスから見たときのＱＳＰＩブリッジデバイスのメモリマップの一例を示す図。
【図８】実施形態に１係るＱＳＰＩブリッジデバイスにおけるライトアクセス時の入出力信号の動作を説明するタイミングチャート。
【図９】実施形態に１係るＱＳＰＩブリッジデバイスにおけるリードアクセス時の動作を説明するタイミングチャート。
【図１０】実施形態１に係るＱＳＰＩマスタデバイスが、ＱＳＰＩのＳＣＫ信号の出力を停止するか、しないかを切り替える処理を説明するフローチャート。
【図１１】実施形態２に係るＱＳＰＩマスタデバイスが搭載されるメインＰＣＢと、このメインＰＣＢに接続されるサブＰＣＢとの構成を説明するブロック図。
【図１２】実施形態２に係るＱＳＰＩブリッジデバイスの内部構成を説明するブロック図。
【図１３】実施形態２に係るＱＳＰＩマスタデバイスが、ＱＳＰＩのＳＣＫ信号の出力を停止するか、しないかを切り替える処理を説明するフローチャート。
【図１４】実施形態１に係るＱＳＰＩマスタデバイスのＱＳＰＩコントローラの構成を説明するブロック図。
【発明を実施するための形態】
【００１７】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでするものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１８】
［実施形態１］
図１は、本発明の実施形態１に係るＱＳＰＩにおけるマスタとスレーブの物理的な接続を説明するブロック図である。
【００１９】
ＱＳＰＩでは、ＱＳＰＩマスタ１０１とＱＳＰＩスレーブ１０２との間を６本の信号で接続してマスタスレーブ形式で通信を行う。ＣＳ信号１０３は、ＱＳＰＩマスタ１０１に複数のＱＳＰＩスレーブ１０３に接続する場合に、アクセスするスレーブを指定するチップセレクト信号である。ＳＣＫ信号１０４は、ＩＯ＿０信号１０５〜ＩＯ＿３信号１０８を使用してデータ転送するための同期クロック信号である。ＱＳＰＩのＳＣＫ信号１０４は、一般的にデータ転送中のみＱＳＰＩマスタ１０１からＱＳＰＩスレーブ１０２に対してクロック信号として出力され、データの非転送中はトグルされない、即ち、クロック信号として出力されない。ＩＯ＿０信号１０５〜ＩＯ＿３信号１０８は、データ転送用の双方向のＩＯ（入出力）信号である。
【００２０】
ＱＳＰＩを有するデバイスは、データ転送に、入出力各１本ずつのＩＯ信号を使用するＳｉｎｇｌｅＳＰＩモード、２本の双方向のＩＯ信号を使用するＤｕａｌＳＰＩモード、４本の双方向のＩＯ信号を使用するＱｕａｄＳＰＩモードを有する。実施形態１では、特に断りのない限り、ＱＳＰＩでのデータアクセスは、４本の双方向のＩＯ信号を使ってデータ転送を行うＱｕａｄＳＰＩモードを前提としている。
【００２１】
図２は、４本の双方向のＩＯ信号を使ってデータ転送を行うＱｕａｄＳＰＩモードにおけるライトアクセス時の各信号のタイミングチャートである。
【００２２】
ライトアクセスは、オペコード２０１、アドレス２０２、ライトデータ２０３の３つのフェーズから構成されており、全てのフェーズでＱＳＰＩマスタ１０１からＱＳＰＩスレーブ１０２にデータが転送される。オペコード２０１は、８ビットからなるコマンドデータで、実施形態１ではＱｕａｄＳＰＩモードのライトアクセスコマンドとして、１６進数で「０ｘ１２」を、ＳＣＫ信号１０４の２クロックで出力している。アドレス２０２は、データライトを開始するＱＳＰＩスレーブ１０２側の先頭アドレスを指定するフェーズである。実施形態１のように、２４ビットまでのアドレスを有するＱＳＰＩスレーブデバイスの場合、ＳＣＫ信号１０４の６クロックでアドレス指定を行う。尚、このタイミングチャート例では、５１２ＫＢｙｔｅのメモリデバイスがＱＳＰＩスレーブデバイスとして接続されることを想定している。よって、５１２ＫＢｙｔｅを超えるアドレスを表すビット１９〜２３はデバイス側で無視されるため、それを「Ｘ」で記述している。最後にライトデータ２０３は、アドレス２０２を先頭アドレスとするメモリ領域にライトするデータを指定するフェーズである。ライトデータ２０３のフェーズは、ＣＳ信号１０３を継続してアサートし、かつ、ＳＣＫ信号１０４を継続してトグルさせることで、バースト転送することが可能である。このタイミングチャートは、２バイトのデータをバースト転送した時の波形を示している。これによって、アドレス２０２で指定されたアドレスのメモリ上には、ライトデータ２０３フェーズのＢｙｔｅ１で示される１バイトデータがライトされる。そして、アドレス２０２で指定されたアドレスを１インクリメントしたアドレスのメモリ上には、ライトデータ２０３フェーズのＢｙｔｅ２で示される１バイトデータがライトされる。
【００２３】
図３は、４本の双方向のＩＯ信号を使ってデータ転送を行うＱｕａｄＳＰＩモードにおけるリードアクセス時の各信号のタイミングチャートである。
【００２４】
リードアクセスは、オペコード３０１、アドレス３０２、ダミーサイクル３０３、リードデータ３０４の４つのフェーズを含んでいる。オペコード３０１、アドレス３０２のフェーズで、ＱＳＰＩマスタ１０１からＱＳＰＩスレーブ１０２にデータが転送され、リードデータ３０４のフェーズでは、ＱＳＰＩスレーブ１０２からＱＳＰＩマスタ１０１にデータが転送される。オペコード３０１は、実施形態１では、ＱｕａｄＳＰＩモードのリードアクセスコマンドとして１６進数の「０ｘＥＢ」をＳＣＫ信号１０４の２クロックで出力している。アドレス３０２は、データリードを開始するＱＳＰＩスレーブ１０２の先頭アドレスを指定するフェーズである。このアドレス３０２の出力は、ライトアクセス時の場合と同様である。
【００２５】
ダミーサイクル３０３は、ＱＳＰＩスレーブ１０２からのデータの読出しに必要な待ち時間フェーズである。ＱＳＰＩマスタ１０１は、予め接続されるＱＳＰＩスレーブ１０２に対して設定されているリード時のダミーサイクル数を、ＱＳＰＩスレーブ１０２などから取得する等して把握しておく。そして、自身がリードアクセスを実行する際に、ダミーサイクル３０３のフェーズで受信したデータを破棄して無視する。リードデータ３０４は、アドレス３０２を先頭アドレスとするメモリ領域からリードしたデータを転送するフェーズである。リードデータ３０４のフェーズは、ＣＳ信号１０３を継続してアサートし、かつ、ＳＣＫ信号１０４を継続してトグルさせることで、バースト転送を行うことが可能である。このタイミングチャートは、２バイトのデータをバースト転送した時の波形を示している。これによって、アドレス３０２で指定されたアドレスのメモリ上から、リードデータ３０４のＢｙｔｅ１で示されるデータがリードされる。そして、アドレス３０２で指定されたアドレスを１インクリメントしたアドレスのメモリから、リードデータ３０４のＢｙｔｅ２で示されるデータがリードされる。
【００２６】
以上がＱＳＰＩの仕様説明である。
【００２７】
図４は、実施形態１に係る情報処理装置における、ＱＳＰＩマスタデバイス４１０が搭載されるメインＰＣＢ４００と、このメインＰＣＢ４００に接続されるサブＰＣＢ４０１とサブＰＣＢ４０２の構成を説明するブロック図である。
【００２８】
ＱＳＰＩマスタデバイス４１０は、メインＰＣＢ４００上に搭載され、図１で示した６本の信号で構成されるＱＳＰＩ４２０を介して、ＱＳＰＩブリッジデバイス４１１にアクセスするデバイスである。ＱＳＰＩブリッジデバイス４１１は、サブＰＣＢ４０１上に搭載され、ＱＳＰＩマスタデバイス４１０からのＱＳＰＩ４２０を介したアクセスを、後段の複数のＱＳＰＩスレーブデバイス４１２，４１３に分配するブリッジ回路である。ＱＳＰＩブリッジデバイス４１１は、それぞれＱＳＰＩ４２１，４２２を介して、ＱＳＰＩスレーブデバイス４１２，４１３に接続されている。
【００２９】
サブＰＣＢ４０１上のＱＳＰＩブリッジデバイス４１１は、メインＰＣＢ４００側の構成を変更することなく、ＱＳＰＩスレーブデバイスの数、つまり、メモリ容量を増やすことができるようにするための回路である。実施形態１では、サブＰＣＢ４０１上に搭載されるＱＳＰＩスレーブデバイスの数は２つであるが、本発明はこれに限定されるものではなく、更に多くのＱＳＰＩスレーブデバイスを接続することも可能である。
【００３０】
サブＰＣＢ４０２上に搭載されるＱＳＰＩスレーブデバイス４１４は、ＱＳＰＩ４２３を介してＱＳＰＩマスタデバイス４１０と接続される。実施形態１において、ＱＳＰＩスレーブデバイス４１２，４１３，４１４は、ＳＲＡＭやＦＲＡＭといったメモリデバイスを想定しているが、本発明はこれに限定されるものではない。
【００３１】
メインＰＣＢ４００と、サブＰＣＢ４０１及びサブＰＣＢ４０２の接続パターンは、メインＰＣＢ４００にサブＰＣＢ４０１、サブＰＣＢ４０２のどちらか一つが接続されるか、どちらも接続されないパターンである。サブＰＣＢ４０１は、大量のデータをＱＳＰＩスレーブデバイス４１２，４１３に保存する必要がある場合に接続される。一例としては、ＣＰＵ４３１の処理のログ情報を保存することを想定しており、製品構成によって長い期間のログ情報を取得する必要がある場合にサブＰＣＢ４０１が接続される。一方、サブＰＣＢ４０２は、サブＰＣＢ４０１よりもメモリ容量が少なくて済む製品構成の場合に接続される。サブＰＣＢ４０２は、サブＰＣＢ４０１に比べてコストが低いので、コストの最適化を図るために２つのサブＰＣＢの接続が使い分けられる。
【００３２】
次にＱＳＰＩマスタデバイス４１０の内部構成を説明する。
【００３３】
ＣＰＵ４３１は、実施形態１に係る情報処理装置の全体を制御するプロセッサである。ＣＰＵ４３１は、ＲＡＭ４３６に展開されたＯＳや制御プログラムに従って、ＱＰＳＩコントローラ４３４を制御し、ＱＳＰＩブリッジデバイス４１１の下流側に接続されているＱＳＰＩスレーブデバイス４１２，４１３にアクセスする。またＣＰＵ４３１は、サブＰＣＢ４０２に搭載されるＱＳＰＩスレーブデバイス４１４にもアクセスする。ＲＯＭコントローラ４３２は、ブートプラグラムを格納しているＲＯＭ４３５にアクセスするための制御モジュールである。図示していないメインＰＣＢ４００上の電源がＯＮされた時に、ＣＰＵ４３１はＲＯＭコントローラ４３２を介してＲＯＭ４３５にアクセスし、ＣＰＵ４３１がブートする。ＲＡＭコントローラ４３３は、システムの制御プログラムを格納するＲＡＭ４３６にアクセスするための制御モジュールである。ＲＡＭコントローラ４３３は、ＲＡＭ４３６の設定や制御を行うためのレジスタを備えており、このレジスタは、ＣＰＵ４３１からアクセス可能である。
【００３４】
ＱＳＰＩコントローラ４３４は、ＱＳＰＩブリッジデバイス４１１の先に接続されているＱＳＰＩスレーブデバイス４１２，４１３と、ＱＳＰＩスレーブデバイス４１４アクセスするための制御モジュールである。ＱＳＰＩコントローラ４３４は、ＱＳＰＩスレーブデバイス４１２，４１３、４１４の設定や制御を行うためのレジスタを備えており、このレジスタは、ＣＰＵ４３１からアクセス可能である。ＧＰ（General Purpose）ＩＯ部４３７は、ＱＳＰＩマスタデバイス４１０の外部端子の状態を検知するモジュールである。例えば、ＱＳＰＩマスタデバイス４１０の外部端子から入力された信号がＧＰＩＯ部４３７に入力され、その信号レベルがハイレベルかロウレベルかを保持する。そしてＣＰＵ４３１が、このＧＰＩＯ部４３７へアクセスすることで、その信号のレベルを判定することができる。
【００３５】
図５は、実施形態１に係るＱＳＰＩブリッジデバイス４１１の内部構成を説明するブロック図である。
【００３６】
ＱＳＰＩマスタデバイス４１０からＱＳＰＩ４２０を介してＱＳＰＩブリッジデバイス４１１に入力されたＱＳＰＩ入力信号は、まずタイミング調整部５０７に入力され、そしてＱＰＳＩスレーブ５０１に入力される。ＱＳＰＩスレーブ５０１は、受信したＱＳＰＩ入力信号を、信号５２０，５２１を介して、後段の２つのＱＳＰＩマスタ５０２，５０３に供給し、信号５２２を介してアドレス解析部５０４に転送する。ＱＳＰＩマスタ５０２，５０３は、ＱＳＰＩスレーブ５０１から受信したＱＳＰＩ信号のうち、ＳＣＫ信号１０４とＩＯ信号１０５〜１０８を信号５２６，５２９を介して、直接、ＱＳＰＩスレーブデバイス４１２，４１３に供給する。一方、ＣＳ信号１０３は、信号５２７，５３０を介して、一旦、内部のＣＳゲート５０５，５０６のゲート制御を経て、ＱＳＰＩスレーブデバイス４１２，４１３に供給される。
【００３７】
アドレス解析部５０４は、ＱＳＰＩスレーブ５０１から受信したＱＳＰＩ信号を解析し、アドレスフェーズのアドレスから、ＱＳＰＩスレーブデバイス４１２，４１３のいずれのデバイスへのアクセスであるか判定する。その結果、信号５２４，５２５を介して、アクセスしないデバイスのＣＳゲートに、ＣＳ信号をゲートするように指示を送る。また、リードアクセスの場合は、ＱＳＰＩスレーブデバイス４１２，４１３のいずれから読み出したリードデータをＱＳＰＩマスタデバイス４１０に返すかの判定結果を、信号５２３を介してＱＳＰＩスレーブ５０１に転送する。これによりＱＳＰＩスレーブ５０１は、信号５２０，５２１のいずれを選択するか決定し、その選択した信号をリードデータとしてタイミング調整部５０７に出力する。またＣＳゲート５０５，５０６は、上記信号５２４，５２５の指示に従って、ＱＳＰＩマスタ５０２，５０３から送られたＣＳ信号１０３のゲート処理を行う。そして、ＱＳＰＩスレーブデバイス４１２，４１３に信号５２８，５３１を介してＣＳ信号１０３を転送する。
【００３８】
タイミング調整部５０７，５０８は、外部ＡＣタイミングを揃えるためのブロックである。外部ＡＣタイミングとは、ＩＣ等のデバイス間のインタフェースにおいて、複数の信号の送受信が可能な信号間のタイミング関係を定義したものである。実施形態１では、ＱＳＰＩマスタデバイス４１０が、ＳＣＫ信号１０４を基準としてＩＯ＿０信号１０５〜ＩＯ＿３信号１０８とＣＳ信号１０３のタイミング関係を定義している。そして、その定義されたタイミング関係の信号を送受信するために、タイミング調整部５０７で信号のタイミングを調整する。具体的な回路構成は、フリップフロップで構成される。例えばタイミング調整回路５０７では、ＳＣＫ信号１０４をフリップフロップのクロック端子に入力し、ＩＯ＿０信号１０５〜ＩＯ＿３信号１０８とＣＳ信号１０３は、そのフリップフロップのデータ入力端子に入力する。このように、送受信信号を入力した直後、もしくは出力した直前にフリップフロップで受信し、他の回路を入出力信号のタイミング調整に使用しないことで、これら送受信信号のタイミング調整が容易になる。
【００３９】
図６は、実施形態１に係るアドレス解析部５０４がＱＳＰＩスレーブデバイス４１２、４１３へのＣＳ信号を制御する処理を説明するフローチャートである。
【００４０】
アドレス解析部５０４は、まずＳ６０１で、信号５２４，５２５により、ＣＳゲート５０５，５０６に対してゲート解除を指示する。このゲート解除とは、ＱＳＰＩマスタ５０２の出力信号５２７をＣＳゲート５０５の出力信号５２８として出力するようにＣＳゲート５０５を制御することを意味する。同様に、ＱＳＰＩマスタ５０３の出力信号５３０をＣＳゲート５０６の出力信号５３１として出力するようにＣＳゲート５０６を制御することを意味する。反対に、ゲートとは、信号５２７，５３０をＣＳゲート５０５，５０６が信号５２８，５３１として出力しないネゲート状態に制御することを意味している。
【００４１】
次にＳ６０２でアドレス解析部５０４は、ＱＳＰＩマスタデバイス４１０からＱＳＰＩスレーブ５０１を介してＱＳＰＩ信号が入力されたことを信号５２２により検知するまで、即ち、ＱＳＰＩプロトコルが開始されるまで待機する。ここでのＱＳＰＩプロトコルの開始とは、ＣＳ信号１０３がアサートされることと同義である。
【００４２】
こうしてＳ６０２でＱＳＰＩプロトコルが開始されるとＳ６０３に進みアドレス解析部５０４は、信号５２２を介してオペコードを受信する。そしてＳ６０４でアドレス解析部５０４は、そのオペコードが、リードアクセス或いはライトアクセスかどうかを判定する。ここで、そのオペコードがリードアクセス、ライトアクセス以外の場合はＳ６１３に進み、入力されるＱＳＰＩのＣＳ信号がネゲートされるまで、ＱＳＰＩスレーブデバイス４１２，４１３の両方にＱＳＰＩ信号をそのまま転送するようにＣＳゲート５０５，５０６をゲート解除するよう制御する。ここでリードアクセス、ライトアクセス以外のオペコードとしては、例えば、ＱＳＰＩデバイスのステータスレジスタのリード／ライトや、デバイスＩＤをリードするコマンドがある。そしてＳ６１３で信号５２２のＱＳＰＩのＣＳ信号がネゲートされると、ＱＳＰＩプロトコルの完了とみなしてＳ６０１に戻る。
【００４３】
一方、Ｓ６０４でオペコードがリードアクセス或いはライトアクセスの場合はＳ６０５に進みアドレス解析部５０４は、オペコードに続いて入力されてくるアドレスを受信する。そしてＳ６０６でアドレス解析部５０４は、バッファされている先に受信したオペコードから、そのアクセス命令がライトアクセスか、リードアクセスかを判定する。ここでオペコードがライトアクセスの場合はＳ６０８に進みアドレス解析部５０４は、受信したアドレスから、アクセス先がＱＳＰＩスレーブデバイス４１２か、ＱＳＰＩスレーブデバイス４１３かを判定する。
【００４４】
この判定方法を図７を参照して説明する。
【００４５】
図７は、実施形態１に係るＱＳＰＩマスタデバイス４１０から見たときのＱＳＰＩブリッジデバイス４１１のメモリマップの一例を示す図である。
【００４６】
実施形態１では、１つのＱＳＰＩスレーブデバイスのメモリ容量を５１２ＫＢｙｔｅ（０ｘ８００００）としている。つまり、２４ビットのアドレスで、アドレス０ｘ００００００〜０ｘ０７ＦＦＦＦのメモリエリア７００は、ＱＳＰＩスレーブデバイス４１２によりアクセスされる。そして、アドレス０ｘ０８００００〜０ｘ０ＦＦＦＦＦのメモリエリア７０１は、ＱＳＰＩスレーブデバイス４１３によりアクセスされる。また、番地０ｘ１０００００以降のアドレスは、図７に示されるように、０ｘ００００００〜０ｘ０ＦＦＦＦＦまでの領域がミラーで見えるような構成になっている。いずれの領域へのアクセスでも、ＱＳＰＩスレーブデバイス４１２，４１３の有効領域は、０ｘ００００００〜０ｘ０７ＦＦＦＦまでなので、アドレスのビット１９以上は、ＱＳＰＩレーブデバイス側で無視（マスク）される。このメモリマップによれば、ＱＳＰＩスレーブデバイス４１２，４１３のいずれにアクセスするかは、アドレスのビット１９を調べることで判定できる。即ち、アドレスのビット１９が「０」であれば、アクセス対象はＱＳＰＩスレーブデバイス４１２であり、ビット１９が「１」であれば、アクセス対象はＱＳＰＩスレーブデバイス４１３である。
【００４７】
図６の説明に戻り、上記の方法でライトアクセスのアクセス先がＱＳＰＩスレーブデバイス４１２であると判定するとＳ６０８からＳ６１１に進みアドレス解析部５０４は、信号５２５でＣＳゲート５０６にゲートを指示してＳ６１３に進む。一方、ライトアクセスのアクセス先がＱＳＰＩスレーブデバイス４１３であると判定するとＳ６１２に進みアドレス解析部５０４は、信号５２４でＣＳゲート５０５にゲートを指示してＳ６１３に進む。
【００４８】
一方、Ｓ６０６でアドレス解析部５０４は、オペコードがリードアクセスであると判定するとＳ６０７に進み、受信したアドレスから、アクセス先がＱＳＰＩスレーブデバイス４１２か、ＱＳＰＩスレーブデバイス４１３かを判定する。ＱＳＰＩスレーブデバイス４１２へのアクセスの場合はＳ６１０に進みアドレス解析部５０４は、信号５２５によりＣＳゲート５０６にゲートを指示する。次いでＳ６１５に進みアドレス解析部５０４は、ＱＳＰＩスレーブ５０１に対して、ＱＳＰＩスレーブデバイス４１２から返ってきたリードデータを採用するよう指示してＳ６１３に進む。一方、ＱＳＰＩスレーブデバイス４１３へのアクセスの場合はＳ６０９に進みアドレス解析部５０４は、信号５２４によりＣＳゲート５０５にゲートを指示する。次いでＳ６１４に進みアドレス解析部５０４は、ＱＳＰＩスレーブ５０１に対して、ＱＳＰＩスレーブデバイス４１３から返ってきたリードデータを採用するよう指示してＳ６１３に進む。このときＱＳＰＩスレーブ５０１は、上記指示に従って採用したリードデータを、ＱＳＰＩマスタデバイス４１０に返送する。そして、上記のリード／ライトアクセスに共通した処理として、アドレス解析部５０４はＳ６１３で、ＱＳＰＩスレーブ５０１から入力されたＣＳ信号がネゲートされたかどうかを監視し、ネゲートされるまではＳ６１１，Ｓ６１２，Ｓ６１４，Ｓ６１５の実行状態を保持する。そして、ＣＳ信号がネゲートされるとＱＳＰＩプロトコルが完了したと判定してＳ６０１に戻り、ＣＳゲート５０５，５０６にゲート解除を指示し、再びＱＳＰＩプロトコルの開始を待つ。
【００４９】
次に、図４〜図７を参照して説明したＱＳＰＩブリッジデバイス４１１のライトアクセス時の入出力信号の動作を、図８を参照して詳しく説明する。
【００５０】
図８は、実施形態に１係るＱＳＰＩブリッジデバイス４１１におけるライトアクセス時の入出力信号の動作を説明するタイミングチャートである。
【００５１】
ＱＳＰＩ４２０、ＱＳＰＩ４２１及びＱＳＰＩ４２２は、図４を参照して説明した通りである。ＱＳＰＩ４２０は、ＱＳＰＩマスタデバイス４１０とＱＳＰＩブリッジデバイス４１１とのＩ／Ｆを表している。またＱＳＰＩ４２１及びＱＳＰＩ４２２は、ＱＳＰＩブリッジデバイス４１１とＱＳＰＩスレーブデバイス４１２及びＱＳＰＩスレーブデバイス４１３とのＩ／Ｆを表している。図８では説明を簡略にするため、ＱＳＰＩブリッジデバイス４１１内部のレイテンシが２サイクルの場合を想定して記載しているが、ＱＳＰＩブリッジデバイス４１１内部のレイテンシが２サイクル以外であっても本発明は適用可能である。
【００５２】
タイミングＴ１において、ＱＳＰＩマスタデバイス４１０は、ＱＳＰＩブリッジデバイス４１１に対してライト動作を開始するため、ＣＳ信号１０３をロウレベルにアサートする。尚、ＳＣＫ信号１０４は、タイミングＴ１の以前からトグル動作している。
【００５３】
次にタイミングＴ２で、ＱＳＰＩマスタデバイス４１０は、ＱＳＰＩブリッジデバイス４１１に対してＳＣＫ信号１０４及びＩＯ＿０信号１０５〜ＩＯ＿３信号１０８を出力する。これ以降のＱＳＰＩマスタデバイス４１０の動作は、前述の図２のタイミングチャートを参照して説明した通りであるため、その詳しい説明を省略する。
【００５４】
またタイミングＴ２でＱＳＰＩブリッジデバイス４１１は、タイミングＴ１で受信したＣＳ信号１０３を受け、ＱＳＰＩスレーブデバイス４１２及び４１３に対するＱＳＰＩ４２１及びＱＳＰＩ４２２のＣＳ信号８０１，８０７をアサートする。ここでＱＳＰＩ規格準拠のＳＣＫ信号であれば、タイミングＴ１からＴ２の間はトグルしないが、ＳＣＫ信号はタイミングに関係なくトグルするようにしても良い。その場合は、ＱＳＰＩ規格準拠ではないがＱＳＰＩブリッジデバイス４１１で対応する。
【００５５】
次にタイミングＴ３において、ＱＳＰＩブリッジデバイス４１１は、スレーブデバイス４１２及び４１３に対してＳＣＫ信号８０２，８０８及びＩＯ＿０信号〜ＩＯ＿３信号８０３〜８０６及び８０９〜８１２の出力を開始する。ＳＣＫ信号８０２，８０８は、ＱＳＰＩ準拠の信号となるような信号を出力する。ＣＳ信号、ＳＣＫ信号及びＩＯ＿０信号〜ＩＯ＿３信号は、参照番号が異なっていても、前述のＣＳ信号１０３、ＳＣＫ信号１０４、ＩＯ＿０信号〜ＩＯ＿３信号（１０５〜１０８）と同じ規格の信号である。
【００５６】
次にタイミングＴ４でＱＳＰＩブリッジデバイス４１１は、アドレスフェーズの２サイクル目を出力する。この時、ＱＳＰＩブリッジデバイス４１１は、アクセス対象のスレーブデバイスが、ＱＳＰＩスレーブデバイス４１２，４１３のいずれであるか確定することができる。ここではＱＳＰＩマスタデバイスのアクセス対象が、ＱＳＰＩスレーブデバイス４１２である場合を想定して説明する。タイミングＴ４でＱＳＰＩブリッジデバイス４１１は、アクセス対象外のスレーブデバイス４１３に対するＣＳ信号８０７をネゲートする。これにより、ＱＳＰＩスレーブデバイス４１３へのアクセスが中止される。
【００５７】
次にタイミングＴ５でＱＳＰＩマスタデバイス４１０は、ＱＳＰＩブリッジデバイス４１１に対するライトアクセスを終了するため、ＣＳ信号１０３をハイレベルにネゲートする。
【００５８】
これによりタイミングＴ６でＱＳＰＩブリッジデバイス４１１は、タイミングＴ５でのＣＳ信号１０３のネゲートを受け、ＱＳＰＩスレーブデバイス４１２に対するＣＳ信号８０１をネゲートする。これによりアクセス対象のＱＳＰＩスレーブデバイス４１２に対するアクセスを終了する。
【００５９】
尚、サブＰＣＢ４０２が接続された場合のＱＳＰＩ４２３の動作タイミングチャートは、図２で示したタイミングチャートと基本的に同じである。
【００６０】
次に、図４〜図７を参照して説明したＱＳＰＩブリッジデバイス４１１のリードアクセス時の入出力信号の動作を、図９を参照して詳しく説明する。
【００６１】
図９は、実施形態に１係るＱＳＰＩブリッジデバイス４１１におけるリードアクセス時の動作を説明するタイミングチャートである。尚、図９において、図８と同じ信号には同じ参照番号を付している。
【００６２】
タイミングＴ１でＱＳＰＩマスタデバイス４１０は、ＱＳＰＩブリッジデバイス４１１に対してリード動作を開始するため、ＣＳ信号１０３をロウレベルにアサートする。尚、ＳＣＫ信号１０４は、タイミングＴ１以前からトグルしている。次にタイミングＴ２でＱＳＰＩマスタデバイス４１０は、ＱＳＰＩブリッジデバイス４１１に対してＳＣＫ信号１０４及びＩＯ＿０信号１０５〜ＩＯ＿３信号１０８を出力する。これ以降のＱＳＰＩマスタデバイス４１０の動作は、前述の図３のタイミングチャートを参照して説明した通りであるため、その詳しい説明を省略する。
【００６３】
またタイミングＴ２でＱＳＰＩブリッジデバイス４１１は、タイミングＴ１で受信したＣＳ信号１０３を受け、各ＱＳＰＩスレーブデバイス４１２及び４１３に対するＣＳ信号８０１，８０７をロウレベルにアサートする。ＱＳＰＩ規格準拠のＳＣＫ信号であれば、タイミングＴ１からＴ２の間はトグルしないが、ＳＣＫ信号１０４はタイミングに関係なくトグルしても良い。この場合、ＱＳＰＩ規格準拠ではないがＱＳＰＩブリッジデバイス４１１で対応する。
【００６４】
次にタイミングＴ３でＱＳＰＩブリッジデバイス４１１は、ＱＳＰＩスレーブデバイス４１２及び４１３に対してＳＣＫ信号８０２，８０８及びＩＯ＿０信号〜ＩＯ＿３信号８０３〜８０６，８０９〜８１２の出力を開始する。ＳＣＫ信号８０２，８０８は、ＱＳＰＩ準拠の信号となる信号である。
【００６５】
タイミングＴ４でＱＳＰＩブリッジデバイス４１１は、アドレスフェーズの２サイクル目を出力する。この時、ＱＳＰＩブリッジデバイス４１１は、アクセス対象のスレーブデバイスがどのデバイスであるか確定することができる。ここではＱＳＰＩマスタデバイスのアクセス対象が、ＱＳＰＩスレーブデバイス４１２である場合を想定して説明する。タイミングＴ４でＱＳＰＩブリッジデバイス４１１は、アクセス対象外のスレーブデバイス４１３に対するＣＳ信号８０７をハイレベルにしてネゲートする。これにより、ＱＳＰＩスレーブデバイス４１３へのアクセスが中止される。
【００６６】
次にタイミングＴ５で、ＱＳＰＩスレーブデバイス４１２からリードデータが出力される。ここではＱＳＰＩスレーブデバイス４１２のダミーサイクルが３サイクルの場合を想定している。これは説明の簡略化のために３サイクルにしているだけであり、３サイクルに限定されるものではない。
【００６７】
次にタイミングＴ６でＱＳＰＩブリッジデバイス４１１は、ＱＳＰＩスレーブデバイス４１２から受信したリードデータを、ＱＳＰＩマスタデバイス４１０に対して出力する処理を開始する。そしてタイミングＴ７でＱＳＰＩマスタデバイス４１０は、ＱＳＰＩブリッジデバイス４１１に対するリード動作を終了するため、ＣＳ信号１０３をハイレベルにネゲートする。
【００６８】
これによりタイミングＴ８でＱＳＰＩブリッジデバイス４１１は、タイミングＴ７でＣＳ信号１０３がネゲートされたことを受けて、ＱＳＰＩスレーブデバイス４１２に対するＣＳ信号８０１をハイレベルにしてネゲートする。これによりアクセス対象のＱＳＰＩスレーブデバイス４１２に対するアクセスを終了する。
【００６９】
尚、サブＰＣＢ４０２が接続された場合のＱＳＰＩ４２３のリードアクセス時のタイミングチャートは、図３で示したタイミングチャートと基本的に同じである。
【００７０】
ＱＳＰＩのマスタデバイスと複数のスレーブデバイスとの間にＱＳＰＩブリッジデバイスを介在させることにより、レイテンシの増加を抑えることが可能となる。
【００７１】
図１０は、実施形態１に係るＱＳＰＩマスタデバイス４１０が、ＱＳＰＩのクロック信号であるＳＣＫ信号１０４の出力を停止するか、しないかを切り替える処理を説明するフローチャートである。尚、このフローチャートで示す処理は、ＣＰＵ４３１がＲＯＭ４３５に保存されたプログラムをＲＡＭ４３６に展開して実行することにより達成される。このフローチャートで示す処理は、メインＰＣＢ４００の電源がオンされて、ＣＰＵ４３１がＲＯＭコントローラ４３２を介してＲＯＭ４３５にアクセスし、ＱＳＰＩマスタデバイス４１０を初期化するときに実行される。
【００７２】
まずＳ１００１でＣＰＵ４３１は、ＱＳＰＩマスタデバイス４１０にスレーブデバイスが接続されているかどうか判定する。サブＰＣＢ４０１もしくはサブＰＣＢ４０２はＱＳＰＩ４２０，４２３とは別の信号である図示していない検知信号をＱＳＰＩマスタデバイス４１０の外部端子に入力する。メインＰＣＢ４００は、サブＰＣＢ４０１、４０２から入力された上記の信号をＧＰＩＯ部４３７で信号を保持する。Ｓ１００１において、ＣＰＵ４３１がＧＰＩＯ部４３７の信号がハイレベルかロウレベルかを判定することで、ＱＳＰＩマスタデバイス４１０にスレーブデバイスが接続されているか否かを判定する。この検知信号は、メインＰＣＢ４００上でＰｕｌｌＤｏｗｎされていて、サブＰＣＢ４０１もしくはサブＰＣＢ４０２が接続されていない場合は、ロウレベルとなる。ＣＰＵ４３１はＧＰＩＯ部４３７を介して、その信号がロウレベルであることを読み取ることで、サブＰＣＢ４０１，４０２が接続されていないことを検知する。またこの検知信号は、サブＰＣＢ４０１，４０２で電源に接続されており、メインＰＣＢ４００にサブＰＣＢ４０１，４０２が接続された場合は検知信号がハイレベルとなる。ＣＰＵ４３１はＧＰＩＯ部４３７を介して、その信号がハイレベルであることを読み取ると、サブＰＣＢ４０１，４０２のいずれかが接続されていることを検知する。こうしてＳ１００１でスレーブデバイスが接続されたと判定したときはＳ１００２へ進む。
【００７３】
Ｓ１００２でＣＰＵ４３１は、ＱＳＰＩマスタデバイス４１０に接続されたスレーブデバイスのデバイスＩＤコードを読み取る。このデバイスＩＤコードは、半導体技術の標準化を行う団体であるＪＥＤＥＣ（Ｊｏｉｎｔ  Ｅｌｅｃｔｒｏｎ  Ｄｅｖｉｃｅ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｃｏｕｎｃｉｌ）で定義されている予め決められた変更不可の値である。Ｓ１００２において、ＱＳＰＩマスタデバイス４１０にＱＳＰＩブリッジデバイス４１１が接続されている場合、ＣＰＵ４３１により取得されるデバイスＩＤコードは、ＱＳＰＩスレーブ５０１に保持されているデバイスＩＤコードとなる。一方、ＱＳＰＩマスタデバイス４１０にＱＳＰＩスレーブデバイス４１４が接続されている場合、ＣＰＵ４３１により取得されるデバイスＩＤコードは、ＱＳＰＩスレーブデバイス４１４内のレジスタに保持されているデバイスＩＤコードである。ＣＰＵ４３１は、ＱＳＰＩコントローラ４３４内の図示していないレジスタブロックにアクセスし、そのレジスタ設定を行うことでＱＳＰＩのＲＤＩＤコマンドを出力させ、ＱＳＰＩマスタデバイス４１０に接続されているスレーブデバイスのデバイスＩＤを読み取る。そしてＳ１００３へ進む。
【００７４】
Ｓ１００３でＣＰＵ４３１は、Ｓ１００２で読み取ったデバイスＩＤコードが、ＱＳＰＩブリッジデバイス４１１を示しているかどうかを判定する。ここでＣＰＵ４３１は、ＱＳＰＩスレーブデバイス４１４以外のデバイスＩＤコードを読み取った場合に、ＱＳＰＩブリッジデバイス４１１を示していると判定する。ここで、ＱＳＰＩブリッジデバイス４１１であると判定した場合はＳ１００４へ進み、ＱＳＰＩブリッジデバイス４１１を検出しないと判定した場合はＳ１００５へ進む。なお、ＱＳＰＩスレーブデバイス４１４のデバイスＩＤコードは予めＲＯＭ４３５に格納されており、ＣＰＵ４３１が取得したデバイスＩＤコードをＲＯＭ４３５に格納されたデバイスＩＤコードと比較する。これにより、接続されているデバイスＩＤコードがＱＳＰＩスレーブデバイス４１４のデバイスＩＤコードかそれ以外のデバイスＩＤコードかを判定する。
【００７５】
Ｓ１００３では、ＣＰＵ４３１が取得したデバイスＩＤコードがＱＳＰＩスレーブデバイス４１１のデバイスＩＤコードであるか否かに基づいて、接続されているデバイスがＱＳＰＩスレーブデバイスかブリッジデバイスであるかを判定した。ＱＳＰＩブリッジデバイスには固有のデバイスＩＤコードを付与するとし、ＣＰＵ４３１が取得したデバイスＩＤコードが当該固有のデバイスＩＤコードであるか否かに基づいて接続されているデバイスの種類を判定するとしてもよい。
【００７６】
Ｓ１００４でＣＰＵ４３１は、ＱＳＰＩマスタデバイス４１０とＱＳＰＩブリッジデバイス４１１との間のＳＣＫ信号１０４が、非アクセス中でも停止しないようにＱＳＰＩコントローラ４３４に対して設定する。図２や図３のタイミングチャートで説明したように、ＱＳＰＩ準拠では、ＳＣＫ信号１０４はＣＳ信号１０３がアクティブな期間のみにトグルする仕様となっている。従ってＳ１００４でＣＰＵ４３１は、ＱＳＰＩブリッジデバイス４１１が接続されている場合のみ、ＳＣＫ信号１０４をＣＳ信号１０３が非アクティブであってもトグルし続けるように設定する。尚、デフォルトの設定では、ＳＣＫ信号１０４は、ＣＳ信号１０３が非アクティブのときは停止する設定になっている。
【００７７】
次にＳ１００５へ進みＣＰＵ４３１は、Ｓ１００２で読み取ったデバイスＩＤコードからそれぞれのデバイスに対応したアクセス設定を行う。具体的なアクセス設定とは、ＱＳＰＩスレーブのリード時のダミーサイクル等をＱＳＰＩマスタデバイス４１０のレジスタに設定する処理である。また、Ｓ１００５において、ＣＰＵ４３１は図１４で後述するレジスタ部１４０２に動作モードを示す値を設定する。こうしてＳ１００５の設定処理を終了すると、この処理を終了する。
【００７８】
図１４は、実施形態１に係るＱＳＰＩマスタデバイス４１０のＱＳＰＩコントローラ４３４の構成を説明するブロック図である。
【００７９】
ＱＳＰＩマスタ１４０１はＱＳＰＩマスタ回路であり、ＱＳＰＩブリッジデバイス４１１と接続される。またＱＳＰＩマスタ１４０１は、システムバス４３０と接続され、ＱＳＰＩブリッジデバイス４１１に対するライト／リードのデータ信号が入力／出力される。レジスタ部１４０２はレジスタであり、システムバス４３０と接続されることでＣＰＵ４３１によって制御される。ここでＳＣＫ信号１０４がＱＳＰＩの非アクセス中でも停止しないモードの制御について説明する。レジスタ部１４０２のレジスタ値１４２２に応じて、ＭＵＸ（マルチプレクサ）回路１４０３が、ＱＰＳＩマスタ１４０１からの信号１４２１とＣＬＫ信号１４２０のいずれかを選択し、ＳＣＫ信号１０４として出力する。
【００８０】
ここでＱＳＰＩブリッジデバイス４１１が接続される場合は、ＣＬＫ信号１４２０が選択されてＳＣＫ信号１０４として出力される。一方、サブＰＣＢ４０２のＱＳＰＩスレーブデバイス４１４が接続される場合は、ＱＰＳＩマスタ１４０１からの信号１４２１がＳＣＫ信号１０４として出力される。ここでＣＬＫ信号１４２０は、ＱＳＰＩマスタ１４０１が出力する信号１４２１と同期関係で常時発振している信号である。一方、信号１４２１は、ＱＰＳＩマスタ１４０１がその出力を制御する信号である。このようにして、レジスタ部１４０２のレジスタ値１４２２に応じて、ＭＵＸ（マルチプレクサ）回路１４０３がＣＬＫ信号１４２０を選択してＳＣＫ信号１０４として出力することにより、ＳＣＫ信号１０４が常に出力されるように設定することができる。
【００８１】
以上の処理よって、ＱＳＰＩブリッジデバイスを有するサブＰＣＢ４０１が接続された場合はＳＣＫ信号１０４を停止しないモードに設定し、サブＰＣＢ４０２が接続された場合は、ＱＳＰＩ準拠であるＳＣＫ信号１０４を停止するモードにすることができる。
【００８２】
これにより、サブＰＣＢ４０１が接続された場合、ＱＳＰＩブリッジデバイス４１１はＳＣＫ信号１０４を動作クロックとして動作することが可能となる。またサブＰＣＢ４０２が接続された場合は、ＳＣＫ信号１０４はＱＳＰＩに準拠した動作を行うので、ＱＳＰＩマスタデバイス４１０は、正常にＱＳＰＩスレーブデバイス４１４へアクセスすることが可能となる。
【００８３】
以上説明したように実施形態１によれば、ＱＳＰＩでアクセス可能なＱＳＰＩスレーブデバイスの容量を増やすためにＱＳＰＩブリッジデバイスを介在させて、ＡＣタイミングを考慮した構成を採用した場合でも、誤動作を起こすことなくアクセス可能となる。また、ＱＳＰＩにＱＳＰＩブリッジが接続される場合と、直接、ＦＲＡＭが接続される場合の両方にも対応することが可能となる。
【００８４】
［実施形態２］
前述の実施形態１では、ＱＳＰＩマスタデバイス４１０からの出力信号であるＳＣＫ信号１０４を停止するか、しないかを切り替える例で説明した。これに対して実施形態２では、ＱＳＰＩとは別のＳＣＫ信号をＱＳＰＩマスタデバイス４１０から出力させる例で説明する。尚、実施形態１と共通する部分については、その説明を省略、或いは簡略化し、以下では、実施形態１と異なる部分を中心に説明する。
【００８５】
図１１は、実施形態２に係るＱＳＰＩマスタデバイス４１０が搭載されるメインＰＣＢ４００と、このメインＰＣＢ４００に接続されるサブＰＣＢ４０１との構成を説明するブロック図である。前述の図４と共通する部分は同じ参照番号で示し、それらの説明を省略する。前述の実施形態１との違いは、ＱＳＰＩマスタデバイス４１０内にＣＬＫコントローラ１１００が追加されている点である。
【００８６】
ＣＬＫコントローラ１１００は、ＳＣＫ＿ｄｕｍｍｙ信号１１１０の発振と停止を制御するモジュールである。また、ＱＳＰＩマスタデバイス４１０とＱＳＰＩブリッジデバイス４１１との間に、ＣＬＫコントローラ１１００から出力されるＳＣＫ＿ｄｕｍｍｙ信号１１１０が追加されている。ＳＣＫ＿ｄｕｍｍｙ信号１１１０は、ＱＳＰＩブリッジデバイス４１１内でＳＣＫ信号１０４と同期関係となる必要があるため、ＳＣＫ信号１０４と同じ周波数で同じ位相のものにする必要がある。
【００８７】
ＣＬＫコントローラ１１００は、ＱＳＰＩブリッジデバイス４１１に接続され、ＱＳＰＩブリッジデバイス４１１内の回路の動作クロックとなるＳＣＫ＿ｄｕｍｍｙ信号１１１０の停止及び発振制御を行う。ＣＬＫコントローラ１１００は、ＳＣＫ＿ｄｕｍｍｙ信号１１１０の制御を行うためのレジスタを備えており、このレジスタは、ＣＰＵ４３１からアクセス可能である。
【００８８】
図１２は、実施形態２に係るＱＳＰＩブリッジデバイス４１１の内部構成を説明するブロック図である。前述の図５と共通する部分は同じ参照番号で示し、それらの説明を省略する。
【００８９】
前述の実施形態１に係る図５との違いを説明する。図５では、ＳＣＫ信号１０４がＱＳＰＩブリッジデバイス４１１内の回路の動作クロックとして使用するためにＱＳＰＩブリッジデバイス４１１内のモジュールに分配していた。これに対して図１２では、ＳＣＫ信号１０４はタイミング調整部５０７にのみ入力され、その他のモジュールの動作クロックとしてＳＣＫ＿ｄｕｍｍｙ信号１１１０が接続されている。実施形態２において、ＳＣＫ信号１０４は、図２、図３のＳＣＫ信号１０４と同じ動作をする。またＳＣＫ＿ｄｕｍｍｙ信号１１１０は、実施形態１でのＳＣＫ信号１０４と同じ動作をする。実施形態１では、ＳＣＫ信号１０４は、ＱＳＰＩマスタデバイス４１０に接続されるデバイスがブリッジデバイスかどうかに応じて、常時発振するか、或いは停止するように制御されていた。これに対して実施形態２でのＳＣＫ信号１０４は、ＱＳＰＩ準拠の動作であるアクセス中のみ発振し、常時発振する動作はしない。
【００９０】
図１３は、実施形態２に係るＱＳＰＩマスタデバイス４１０が、ＱＳＰＩのクロック信号であるＳＣＫ信号１０４の出力を停止するか、しないかを切り替える処理を説明するフローチャートである。尚、このフローチャートで示す処理は、ＣＰＵ４３１がＲＯＭ４３５に保存されたプログラムをＲＡＭ４３６に展開して実行することにより達成される。このフローチャートで示す処理は、メインＰＣＢ４００の電源がオンされて、ＣＰＵ４３１がＲＯＭコントローラ４３２を介してＲＯＭ４３５にアクセスし、ＱＳＰＩマスタデバイス４１０を初期化するときに実行される。尚、前述の実施形態１に係る図１０と共通する処理は同じ参照符号を付して、その説明を省略する。
【００９１】
Ｓ１３０１でＣＰＵ４３１は、ＳＣＫ＿ｄｕｍｍｙ信号１１１０を発振する処理を行う。具体的には、ＣＰＵ４３１がＣＬＫコントローラ１１００にアクセスし、レジスタに所定の値を設定することで発振させる。ＳＣＫ＿ｄｕｍｍｙ信号１１１０は、初期設定は停止させる設定値となっている。この処理により、接続されているＱＳＰＩブリッジデバイス４１１にクロック信号が供給される。
【００９２】
そしてＳ１３０２でＣＰＵ４３１は、ＱＳＰＩ４２０に接続されたデバイスのデバイスＩＤコードを読み取り、そのデバイスがＱＳＰＩブリッジデバイスかどうか判定する。ここでＱＳＰＩブリッジデバイスであると判定した場合はＳ１００５に進み、ＱＳＰＩブリッジデバイスでないと判定するとＳ１３０３に進む。Ｓ１３０３でＣＰＵ４３１は、ＳＣＫ＿ｄｕｍｍｙ信号１１１０の出力を停止する処理を行う。具体的には、ＣＰＵ４３１がＣＬＫコントローラ１１００にアクセスしてレジスタに設定することで、ＳＣＫ＿ｄｕｍｍｙ信号１１１０の出力を停止させる。この処理により、ＱＳＰＩブリッジデバイス４１１以外が接続された場合に、ＳＣＫ＿ｄｕｍｍｙ信号１１１０の出力を停止させることができる。
【００９３】
以上説明したように実施形態２によれば、ＱＳＰＩとは別のＳＣＫ＿ｄｕｍｍｙ信号１１１０をＱＳＰＩマスタデバイス４１０から出力させることで、ＱＳＰＩ規格に準拠した信号を出力することができる。これにより、ＱＳＰＩコントローラ４３４をＱＳＰＩの規格から変更できない場合でも、ＱＳＰＩブリッジデバイス４１１を接続することが可能となる。
【００９４】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００９５】
本発明は上記実施形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
【符号の説明】
【００９６】
１０１…ＱＳＰＩマスタ、１０２…ＱＳＰＩスレーブ、４１０…ＱＳＰＩマスタデバイス、４１１…ＱＳＰＩブリッジデバイス、４１２，４１３，４１４…ＱＳＰＩスレーブデバイス、４２０，４２１，４２２，４２３…ＱＳＰＩ、４３１…ＣＰＵ、４３４…ＱＳＰＩコントローラ、１１００…ＣＬＫコントローラ
【図１】
2020064413.tif 000003
【図２】
2020064413.tif 000004
【図３】
2020064413.tif 000005
【図４】
2020064413.tif 000006
【図５】
2020064413.tif 000007
【図６】
2020064413.tif 000008
【図７】
2020064413.tif 000009
【図８】
2020064413.tif 000010
【図９】
2020064413.tif 000011
【図１０】
2020064413.tif 000012
【図１１】
2020064413.tif 000013
【図１２】
2020064413.tif 000014
【図１３】
2020064413.tif 000015
【図１４】
2020064413.tif 000016