(57)【要約】    【課題】  少ないＦＩＦＯの構成でスループットの低下を防ぐことを可能としたオンチップバスシステムを提供する。    【解決手段】  第１のスレーブデバイス１２Ａから出力されるリードデータを保持する第１のＦＩＦＯ１４１Ａがフル状態となったとき、第２のスレーブデバイス１２Ｂから出力されるリードデータを保持する第２のＦＩＦＯ１４１Ｂの空き状況を確認して、フル状態でなければ該第２のＦＩＦＯ１４１Ｂにリードデータを書き込み、第１のＦＩＦＯ１４１Ａを迂回するように制御回路１４２Ａが制御する。【選択図】      図２
2006091982.tif 000002
【特許請求の範囲】
【請求項１】
ポイント・ツー・ポイント通信を行うマスタデバイスとスレーブデバイスとを各々少なくとも２つ以上クロスバースイッチを介して相互接続して成るオンチップバスシステムにおいて、
第１のスレーブデバイスから出力されるリードデータを保持する第１の蓄積手段と、
第２のスレーブデバイスから出力されるリードデータを保持する第２の蓄積手段と、
前記第１の蓄積手段がフル状態となったとき前記第２の蓄積手段の空き状況を確認してフル状態でなければ該第２の蓄積手段にリードデータを書き込み前記第１の蓄積手段を迂回するように制御する制御手段と
を有することを特徴とするオンチップバスシステム。
【請求項２】
前記第１の蓄積手段と前記第２の蓄積手段へリードデータを書き込む際に順序制御用情報を付加する情報付加手段と、
前記第２の蓄積手段からリードデータを前記マスタデバイスへ転送する際に前記順序制御用情報を確認してインオーダで転送する必要がある場合には前記第１の蓄積手段に存在する特定のリードデータが転送されるまで待ち且つアウトオブオーダで転送して良い場合には即座に転送するように制御する第２の制御手段と
を有することを特徴とする請求項１に記載のオンチップバスシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ポイント・ツー・ポイント通信を行うマスタデバイスとスレーブデバイスとを各々少なくとも２つ以上クロスバースイッチを介して相互接続して成るオンチップバスシステムに関する。
【背景技術】
【０００２】
近年、システムＬＳＩ(large scale intergrated circuit)で使用するオンチップバスシステムにおいて、ＡＸＩ（Advanced eXtensible Interface）やＯＣＰ（Open Core Protocol）等のマスタデバイスとスレーブデバイスとがポイント・ツー・ポイントでデータ通信を行うバスプロトコルが主流と成りつつある。これは、従来の複数のデバイスを１本のデータバスで共有するバスプロトコルと比べて、バスを特定のマスタデバイスとスレーブデバイスとが占有するため、複数のデバイス相互間での調停機能が不要となり、高速なデータ通信が可能である。
【０００３】
一般に、このマスタデバイスとスレーブデバイスの通信経路をチャネルと呼ぶ。
【０００４】
通常、これらのチャネルでデータ通信を行うデバイスを持つオンチップバスシステムでは、複数のマスタデバイスとスレーブデバイスとをクロスバースイッチを介して相互接続して、互いにポイント・ツー・ポイントで接続されたもの同士間で並列に高速なデータ通信を行う（例えば、特許文献１参照）。
【０００５】
特に、メモリコントローラのような特定のスレーブデバイスは、複数のマスタデバイスからアクセスが集中することが多く、これを連続して高速に処理するように設計されている。また、各チャネルは、スレーブデバイス毎にデータ転送の緩衝用のＦＩＦＯを有する。
【０００６】
これは、一旦、スレーブデバイスがリードデータの転送を開始した後に、マスタデバイスが、そのリードデータを全て受け取れない事態が発生した場合に、できるだけスレーブデバイスの処理を停止することなく、データ転送を継続させるために必要である。
【０００７】
更に、近年では、リード要求とリードデータの返信とを分離して、非連続に転送を行うリードスプリット転送が主流である。この場合のバスプロトコルでは、チャネルは、リード要求用のアドレスチャネルとリードデータ返信用のリードチャネルとに分けられる。アドレスチャネルとリードチャネルは、基本的に独立しており、マスタデバイスは、対応するリードデータの返信を待つことなく、一度に複数の要求をスレーブデバイスに発行することが可能である。
【０００８】
一方、スレーブデバイスは、事前に発行された複数のリード要求を連続して処理することが可能であり、リードデータを返信した後に、再度次の要求が間欠的に発行される従来のバスプロトコルと比べて、バスの利用効率を飛躍的に向上させることが可能である。
【０００９】
図９は、従来のオンチップバスシステムの構成を示すブロック図であり、ここでは、説明を容易にするために、マスタデバイスとスレーブデバイスとが各々２個の場合で、リードチャネルのみを図示している。
【００１０】
図９において、オンチップバスシステム１０は、ポイント・ツー・ポイントでデータ通信を行うマスタデバイス１１Ａ，１１Ｂ、スレーブデバイス１２Ａ，１２Ｂ、これらを相互接続するクロスバースイッチ１３から構成される。クロスバースイッチ１３は、スレーブデバイス１２Ａ，１２Ｂからのリードデータを一時的に蓄積するＦＩＦＯ１３１Ａ，１３１Ｂ、ＦＩＦＯ１３１Ａ，１３１Ｂへのリードデータの書き込みを制御する書き込み制御回路１３２Ａ，１３２Ｂ、ＦＩＦＯ１３１Ａ，１３１Ｂからのリードデータの読み出しを制御する読み出し制御回路１３３Ａ，１３３Ｂ、各マスタデバイス１１Ａ，１１Ｂとスレーブデバイス１２Ａ，１２Ｂを接続するスイッチ１３４Ａ，１３４Ｂから成る。
【００１１】
図１０は、従来のオンチップバスシステム１０におけるＦＩＦＯ１３１Ａ，１３１Ｂの読み出しと書き込みの制御を行う制御回路の構成を示すブロック図であり、同図において、図９と同一部分には、同一符号が付してある。
【００１２】
図１０において、１００１はスレーブデバイス１２Ａ（１２Ｂ）とＦＩＦＯ１３１Ａ（１３１Ｂ）との間に介装されたＡＮＤ回路、１００２はスレーブデバイス１２Ａ（１２Ｂ）とＦＩＦＯ１３１Ａ（１３１Ｂ）との間に介装されたＮＯＴ回路、１００３はＦＩＦＯ１３１Ａ（１３１Ｂ）とマスタデバイス１１Ａ（１１Ｂ）との間に介装されたＡＮＤ回路、１００４はＦＩＦＯ１３１Ａ（１３１Ｂ）とマスタデバイス１１Ａ（１１Ｂ）との間に介装されたＮＯＴ回路である。
【００１３】
図１０において、ｖａｌｉｄ信号とｒｅａｄｙ信号は、共にデータを転送するための制御信号である。送信側でデータ転送が可能であれば、ｖａｌｉｄ信号をアサートし、受信側でデータ受信が可能であれば、ｒｅａｄｙ信号をアサートする。即ち、ｖａｌｉｄ信号とｒｅａｄｙ信号が共にアサートされた時、リードデータバス上のデータが送信側から受信側に転送される。また、ｆｕｌｌ信号とｅｍｐｔｙ信号は、ＦＩＦＯ１３１Ａ，１３１Ｂの状態を示す信号である。ＦＩＦＯ１３１Ａ，１３１Ｂがフルの状態でｆｕｌｌ信号がアサートされ、ＦＩＦＯ１３１Ａ，１３１Ｂが空の状態でｅｍｐｔｙ信号がアサートされる。ｗｅ信号とｏｅ信号は、それぞれＦＩＦＯ１３１Ａ，１３１Ｂへの書き込み許可と出力許可とを示す信号である。ｗｅ信号がアサートされた時、ＦＩＦＯ１３１Ａ，１３１Ｂへの書き込みが実行され、ｏｅ信号がアサートされた時、ＦＩＦＯ１３１Ａ，１３１Ｂからの読み出しが実行される。
【００１４】
以下、マスタデバイス１１Ａがスレーブデバイス１２Ａにリード要求を発行した場合について説明する。
【００１５】
スレーブデバイス１２Ａは、マスタデバイス１１Ａからのリード要求に応じてリードデータを準備し、ｖａｌｉｄ信号をアサートして、リードデータの転送が可能であることをクロスバースイッチ１３に通知する。この際、ＦＩＦＯ１３１Ａのｆｕｌｌ信号がアサートされておらず、リードデータの書き込みが可能であれば、書き込み制御回路１３２Ａは、スレーブデバイス１２Ａに対してｒｅａｄｙ信号をアサートしてリードデータを受け取り、順次ＦＩＦＯ１３１Ａに書き込む。
【００１６】
一方、読み出し制御回路１３３Ａは、ＦＩＦＯ１３１Ａのｅｍｐｔｙ信号がアサートされておらず、リードデータを読み出し可能であれば、スイッチ１３４Ａを経由してマスタデバイス１１Ａにｖａｌｉｄ信号をアサートして、リードデータの転送が可能であることを通知する。マスタデバイス１１Ａは、リードデータの受信が可能であれば、ｒｅａｄｙ信号をアサートして、リードデータを順次受け取る。ここでスイッチ１３４Ａは、読み出し制御回路１３３Ａ，１３３Ｂからのデータ転送要求を調停して適切な経路を選択する。
【００１７】
以上により、スレーブデバイス１２Ａからのリードデータは、ＦＩＦＯ１３１Ａを経由してマスタデバイス１１Ａへ転送される。
【００１８】
次に、マスタデバイス１１Ａの処理がビジーとなった場合を考える。
【００１９】
この場合、マスタデバイス１１Ａは、クロスバースイッチ１３からのリードデータを受け取ることができないため、読み出し制御回路１３３Ａは、ＦＩＦＯ１３１Ａからリードデータの読み出しを停止する。即ち、マスタデバイス１１Ａからのｒｅａｄｙ信号がアサートされず、ＦＩＦＯ１３１Ａのｏｅ信号がアサートされない状態である。
【００２０】
一方、スレーブデバイス１２Ａは、マスタデバイス１１Ａの状態に拘らず順次リードデータを転送するため、書き込み制御回路１３２Ａは、ＦＩＦＯへの書き込みを継続する。この状態が継続されると、ＦＩＦＯ１３１Ａがフル状態となり、ｆｕｌｌ信号がアサートされて、スレーブデバイス１２Ａに対してｒｅａｄｙ信号がアサートされず、スレーブデバイス１２Ａは、リードデータの転送を停止する。
【００２１】
以上により、マスタデバイス１１Ａとスレーブデバイス１２Ａは、互いの処理能力に応じてリードデータの転送を行う。
【特許文献１】特開２０００−１４８５２８号公報
【発明の開示】
【発明が解決しようとする課題】
【００２２】
以上のように、従来技術では、マスタデバイスの処理がビジーで即座にメモリコントローラからのリードデータを受け取ることができない場合、チャネル全体がビジーとなり、スレーブデバイスは、緩衝用のＦＩＦＯがフル状態となった時点で、一時的にリード処理を停止する必要があった。
【００２３】
また、メモリコントローラのような特定のスレーブデバイスは、一旦バースト転送を開始すると、中断した場合のペナルティが大きく、このため、システム全体のスループットが低下するといった問題があった。また、これは、ＦＩＦＯのサイズを増大させることにより回避可能であるが、ＦＩＦＯのサイズを増大させた場合、システム全体のゲート規模を増大させると言った別の問題が生じた。
【００２４】
本発明は、上述したような従来技術の有する問題点を解消するためになされたもので、その目的は、スレーブデバイスの処理停止時間を削減し、少ないＦＩＦＯ構成でスループットの低下を防ぐことを可能とするオンチップバスシステムを提供することである。
【課題を解決するための手段】
【００２５】
上記目的を達成するために、本発明のオンチップバスシステムは、ポイント・ツー・ポイント通信を行うマスタデバイスとスレーブデバイスとを各々少なくとも２つ以上クロスバースイッチを介して相互接続して成るオンチップバスシステムにおいて、第１のスレーブデバイスから出力されるリードデータを保持する第１の蓄積手段と、第２のスレーブデバイスから出力されるリードデータを保持する第２の蓄積手段と、前記第１の蓄積手段がフル状態となったとき前記第２の蓄積手段の空き状況を確認してフル状態でなければ該第２の蓄積手段にリードデータを書き込み前記第１の蓄積手段を迂回するように制御する制御手段とを有することを特徴とする。
【発明の効果】
【００２６】
本発明によれば、特定のスレーブデバイスへのリードアクセスが集中してチャネルがビジーとなった際に、一時的に別のチャネルのＦＩＦＯを使用して、本来のチャネルを迂回させることで、スレーブデバイスの処理停止時間を削減し、少ないＦＩＦＯ構成でスループットの低下を防ぐことが可能である。
【発明を実施するための最良の形態】
【００２７】
以下、本発明の実施の形態を、図１〜図８に基づき説明する。
【００２８】
（第１の実施の形態）
まず、第１の実施の形態を、図１〜図３に基づき説明する。
【００２９】
図１は、第１の実施の形態に係るオンチップバスシステムの構成を示すブロック図であり、同図において、図９と同一部分には、同一符号が付してある。
【００３０】
なお、図１では、説明を容易にするために、マスタデバイスとスレーブデバイスとが各々２個の場合で、リードチャネルのみを図示している。
【００３１】
図１において、オンチップバスシステム１０は、ポイント・ツー・ポイントでデータ通信を行うマスタデバイス１１Ａ，１１Ｂ、スレーブデバイス１２Ａ，１２Ｂ、これらを相互に接続するクロスバースイッチ１４から構成される。クロスバースイッチ１４は、スレーブデバイス１２Ａ，１２Ｂからのリードデータを一時的に蓄積するＦＩＦＯ１４１Ａ，１４１Ｂ、ＦＩＦＯ１４１Ａ，１４１Ｂへのリードデータの書き込みを制御する書き込み制御回路１４２Ａ，１４２Ｂ、ＦＩＦＯ１４１Ａ，１４１Ｂからのリードデータの読み出しを制御する読み出し制御回路１４３Ａ，１４３Ｂ、各マスタデバイス１１Ａ，１１Ｂとスレーブデバイス１２Ａ，１２Ｂを接続するスイッチ１４４Ａ，１４４Ｂ、書き込み制御回路１４２Ａ，１４２ＢからのＦＩＦＯ１４１Ａ，１４１Ｂへの書き込みを選択するセレクタ１４５Ｂから成る。
【００３２】
図２及び図３は、本実施の形態に係るオンチップバスシステム１０におけるＦＩＦＯ１４１Ａ，１４１Ｂの読み出しと書き込みの制御を行う制御回路の構成を示すブロック図であり、これら両図において、図１と同一部分には、同一符号が付してある。
【００３３】
図２において、２０１はＦＩＦＯ１４１Ａとスイッチ１４４Ａとの間に介装されたＡＮＤ回路、２０２はＦＩＦＯ１４１Ａとスイッチ１４４Ａとの間に介装されたＮＯＴ回路、２０３はＦＩＦＯ１４１Ｂとスイッチ１４４Ａとの間に介装されたＡＮＤ回路、２０４はＦＩＦＯ１４１Ｂとスイッチ１４４Ａとの間に介装されたＮＯＴ回路である。
【００３４】
図２において、ＦＩＦＯ１４１Ａ，１４１Ｂの読み出しと書き込みは、それぞれＦＩＦＯ１４１Ａ，１４１Ｂの状態に応じたｖａｌｉｄ信号とｒｅａｄｙ信号の２線ハンドシェークによりデータ転送を行う。また、書き込み制御回路１４２Ａは、他の書き込み制御回路１４２ＢからのＦＩＦＯ１４１Ｂの使用状況を示すチャネル状態信号をモニタしており、ＦＩＦＯ１４１Ａがフル状態で、スレーブデバイス１２Ａからのデータ転送要求がある場合、ＦＩＦＯ１４１Ｂへのリードデータの書き込みが可能であれば、書き込み制御回路１４２Ｂに対して書き込み要求信号を出力する。
【００３５】
一方、書き込み制御回路１４２Ｂは、セレクタ１４５Ｂに対してスレーブデバイス１２Ａ，１２Ｂからのリードデータを選択する選択信号を出力しており、書き込み制御回路１４２Ａからの書き込み要求信号がアサートされた場合のみ、スレーブデバイス１２Ａからのリードデータを選択してＦＩＦＯ１４１Ｂに書き込む。それ以外は、スレーブデバイス１２Ｂからのリードデータを選択している。この時のより詳細な制御回路の構成を図３に示す。
【００３６】
図３において、図２と同一部分には、同一符号が付してある。
【００３７】
図３において、スレーブデバイス１２ＡとＦＩＦＯ１４１Ａとの間に位置する一方の書き込み制御回路１４２Ａは、３つのＡＮＤ回路３０１，３０２，３０３と１つのＯＲ回路３０４とから成る。また、スレーブデバイス１２ＢとＦＩＦＯ１４１Ｂとの間に位置する他方の書き込み制御回路１４２Ｂは、２つのＡＮＤ回路３０５，３０６と１つのＯＲ回路３０７とから成る。
【００３８】
図３において、チャネル状態信号は、ＦＩＦＯ１４１Ｂのｆｕｌｌ信号がアサートされておらず、更に、スレーブデバイス１２Ｂがｖａｌｉｄ信号をアサートしていないときにアサートされる。ＦＩＦＯ１４１Ａのｆｕｌｌ信号がアサートされており、スレーブデバイス１２Ａがｖａｌｉｄ信号をアサートしている場合、チャネル状態信号がアサートされていれば、書き込み要求信号はアサートされる。この時、ＦＩＦＯ１４１Ａへのｒｅａｄｙ信号とセレクタ１４５Ｂへの選択信号も同時にアサートされる。
【００３９】
以下、マスタデバイス１１Ａがスレーブデバイス１２Ａにリード要求を発行した場合について説明する。
【００４０】
スレーブデバイス１２Ａは、マスタデバイス１１Ａからのリード要求に応じてリードデータを準備し、ｖａｌｉｄ信号をアサートして、リードデータの転送が可能であることをクロスバースイッチ１４に通知する。この際、ＦＩＦＯ１４１Ａのｆｕｌｌ信号がアサートされておらず、リードデータの書き込みが可能であれば、書き込み制御回路１４２Ａは、スレーブデバイス１２Ａに対してｒｅａｄｙ信号をアサートしてリードデータを受け取り、順次ＦＩＦＯ１４１Ａに書き込む。
【００４１】
一方、読み出し制御回路１４３Ａは、ＦＩＦＯ１４１Ａのｅｍｐｔｙ信号がアサートされておらず、リードデータを読み出し可能であれば、スイッチ１４４Ａを経由してマスタデバイス１１Ａにｖａｌｉｄ信号をアサートして、リードデータの転送が可能であることを通知する。マスタデバイス１１Ａは、リードデータの受信が可能であれば、ｒｅａｄｙ信号をアサートしてリードデータを順次受け取る。ここでスイッチ１４４Ａは、読み出し制御回路１４３Ａ，１４３Ｂからのデータ転送要求を調停して、適切な経路を選択する。
【００４２】
以上により、スレーブデバイス１２Ａからのリードデータは、ＦＩＦＯ１４１Ａを経由してマスタデバイス１１Ａへ転送される。
【００４３】
次に、マスタデバイス１１Ａの処理がビジーとなった場合を考える。
【００４４】
この場合、マスタデバイス１１Ａは、クロスバースイッチ１４からのリードデータを受け取ることができないため、読み出し制御回路１４３Ａは、ＦＩＦＯ１４１Ａからリードデータの読み出しを停止する。即ち、マスタデバイス１１Ａからのｒｅａｄｙ信号がアサートされず、ＦＩＦＯ１４１Ａのｏｅ信号がアサートされない状態である。
【００４５】
一方、スレーブデバイス１２Ａは、マスタデバイス１１Ａの状態に拘らず順次リードデータを転送するため、書き込み制御回路１４２Ａは、ＦＩＦＯ１４１Ａへの書き込みを継続する。この状態が継続されると、ＦＩＦＯ１４１Ａがフル状態となり、ｆｕｌｌ信号がアサートされる。この状態で書き込み制御回路１４２Ａは、スレーブデバイス１２Ｂに対するリードチャネルの状態をチャネル状態信号により確認して、ＦＩＦＯ１４１Ｂがフル状態でなく、スレーブデバイス１２Ｂが使用していなければ、書き込み制御回路１４２Ｂに対して書き込み要求を出す。この際、スレーブデバイス１２Ａに対するｒｅａｄｙ信号とセレクタ１４５Ｂに対する選択信号がアサートされて、スレーブデバイス１２ＡからのリードデータがＦＩＦＯ１４１Ｂに書き込まれる。ＦＩＦＯ１４１Ｂに書き込まれたリードデータは、マスタデバイス１１Ａの処理が回復した後、スイッチ１４４Ａを経由して、マスタデバイス１１Ａに転送される。
【００４６】
以上、説明したように、本実施の形態によれば、マスタデバイスの処理がビジーとなった場合、スレーブデバイスは、ＦＩＦＯがフル状態になるまでリードデータの転送を継続して、更に、フル状態になった後にも、別のリードチャネルのＦＩＦＯを使用することが可能となる。このため、同一のＦＩＦＯ構成でも、一時的にＦＩＦＯのサイズを増大させたのと同等の効果が得られ、スレーブデバイスは、処理を停止することなくリードデータの転送を継続することが可能となり、システム全体のスループットを向上させることが可能である。
【００４７】
即ち、メモリコントローラのような一旦バースト転送を開始すると中断した場合のペナルティが大きい特定のスレーブデバイスに対して通信チャネルがビジーとなった際に、別のチャネルの使用状況を確認して、ビジーでなければ、そのまま処理を停止することなく、その別のチャネルにリードデータを転送することが可能である。
【００４８】
また、本来のチャネルを迂回した時に、インオーダ処理用の情報を付加して、互いにチャネル間のデータ通信を確認することで、正しい順番でマスタデバイスへリードデータを返信することが可能である。
【００４９】
（第２の実施の形態）
次に、第２の実施の形態を図４〜図８に基づき説明する。
【００５０】
図４は、第２の実施の形態に係るオンチップバスシステムの構成を示すブロック図であり、同図において、図１と同一部分には、同一符号が付してある。
【００５１】
図４においては、説明を容易にするために、マスタデバイスとスレーブデバイスとが各々２個の場合で、リードチャネルのみを図示している。
【００５２】
図４において、オンチップバスシステム１０は、ポイント・ツー・ポイントでデータ通信を行うマスタデバイス１１Ａ，１１Ｂ、スレーブデバイス１２Ａ，１２Ｂ、これらを相互に接続するクロスバースイッチ１５から構成される。
【００５３】
クロスバースイッチ１５は、スレーブデバイス１２Ａ，１２Ｂからのリードデータを一時的に蓄積するＦＩＦＯ１５１Ａ，１５１Ｂ、ＦＩＦＯ１５１Ａ，１５１Ｂへのリードデータの書き込みを制御する書き込み制御回路１５２Ａ，１５２Ｂ、ＦＩＦＯ１５１Ａ，１５１Ｂからのリードデータの読み出しを制御する読み出し制御回路１５３Ａ，１５３Ｂ、各マスタデバイス１１Ａ，１１Ｂとスレーブデバイス１２Ａ，１２Ｂとを接続するスイッチ１５４Ａ，１５４Ｂ、書き込み制御回路１５２Ａ，１５２ＢからのＦＩＦＯ１５１Ａ，１５１Ｂへの書き込みを選択するセレクタ１５５Ｂ、リードデータのオーダを調停する調停回路１５６から成る。
【００５４】
図５は、本実施の形態に係るオンチップバスシステム１０におけるリードデータの応答フィールドの一様態を示す図である。
【００５５】
通常、リードデータの応答フィールドは、リードデータ５０１とマスタＩＤ５０２とＴｈｒｅａｄＩＤ５０３とから成る。マスタＩＤ５０２は、そのトランザクションを発行したマスタの番号であり、リードデータ５０１は、マスタＩＤ５０２の示すマスタデバイスに返信される。ＴｈｒｅａｄＩＤ５０３は、そのトランザクションのスレッド番号を示し、異なるＴｈｒｅａｄＩＤは、別のスレッドとしてマスタデバイス１１Ａ，１１Ｂへの返信の順番を変更しても良い（アウトオブオーダ転送）が、同一のＴｈｒｅａｄＩＤに対しては、返信の順番を変更することは禁止されている（インオーダ転送）。
【００５６】
本実施の形態では、図５に示すように、ＴＸＩＤ５０４を付加する。ＴＸＩＤ５０４は、本実施の形態におけるクロスバースイッチ１５内のトランザクションの転送番号を示す。
【００５７】
以下、本実施の形態に係るオンチップバスシステム１０の動作について説明する。
【００５８】
まず、スレーブデバイス１２Ａ，１２Ｂからマスタデバイス１１Ａ，１１Ｂへの基本的なリードデータの転送に関しては、上述した第１の実施の形態と同じであるから、その説明は省略する。但し、リードデータをＦＩＦＯ１５１Ａ，１５１Ｂに書き込む際に、書き込み制御回路１５２Ａ，１５２Ｂは、それぞれＴＸＩＤを付加する。
【００５９】
図６にその様子を示す。
【００６０】
ＴＸＩＤは、上述した通り、本実施の形態に係るオンチップバスシステム１０におけるクロスバースイッチ１５内のトランザクションの転送番号を示し、番号０は、特別でスレーブデバイス１２Ｂからのリードデータであることを示す。そのため、書き込み制御回路１５２Ｂは、常にＴＸＩＤに番号０を書き込む。次に、書き込み制御回路１５２Ａは、マスタＩＤとＴｈｒｅａｄＩＤ毎に、そのトランザクションの番号を付加する。図６においては、ＦＩＦＯ１５１Ａ内には、マスタデバイス１１Ａ（Ｍ０）に対するスレッド０のトランザクションが３個存在することを示している。
【００６１】
次に、マスタデバイス１１Ａの処理がビジーとなった場合を考える。
【００６２】
この場合、ＦＩＦＯ１５１Ａがフル状態となり、ｆｕｌｌ信号がアサートされた状態となるまでは、上述した第１の実施の形態と同じである。
【００６３】
この状態で書き込み制御回路１５２Ａは、スレーブデバイス１２Ｂに対するリードチャネルの状態を確認して、ＦＩＦＯ１５１Ｂがフル状態ではなく、スレーブデバイス１２Ｂを使用していなければ、書き込み制御回路１５２Ｂに対して書き込み要求を出す。書き込み制御回路１５２Ｂは、スレーブデバイス１２Ａからリードデータを受け取り、次のＴＸＩＤと共にＦＩＦＯ１５１Ｂに書き込む。
【００６４】
図７は、ＦＩＦＯ１５１Ａがマスタデバイス１１Ａ（Ｍ０）に対するスレッド０の４番目のトランザクションを書き込んだ時点でフル状態となり、次の同一スレッドのトランザクションをＦＩＦＯ１５１Ｂに書き込んだ状態を示している。
【００６５】
また、図８は、ＦＩＦＯ１５１Ａがマスタデバイス１１Ａ（Ｍ０）に対するスレッド０の４番目のトランザクションを書き込んだ時点でフル状態となり、次の異なるスレッドのトランザクションをＦＩＦＯ１５１Ｂに書き込んだ状態を示している。
【００６６】
ＦＩＦＯ１５１Ｂに書き込まれたリードデータは、マスタデバイス１１Ａの処理が回復した後、スイッチ１５４Ａを経由してマスタデバイス１１Ａに転送される。この際、調停回路１５６は、読み出し制御回路１５３Ａ，１５３ＢからのＴｈｒｅａｄＩＤとＴＸＩＤの値を監視しており、この値が正しい順番でマスタデバイス１１Ａ，１１Ｂへ返信されるように調停を行う。
【００６７】
即ち、図７においては、ＦＩＦＯ１５１Ｂの最初のマスタデバイス１１Ｂ（Ｍ１）に対する２個のトランザクション転送が完了して、次に、マスタデバイス１１Ａ（Ｍ０）に対するトランザクションが転送可能となっても、ＦＩＦＯ１５１Ａのマスタデバイス１１Ａ（Ｍ０）に対する４番目のトランザクションが完了するまで転送されない。
【００６８】
一方、図８においては、ＦＩＦＯ１５１Ｂの最初のマスタデバイス１１Ｂ（Ｍ１）に対する２個のトランザクション転送が完了して、次に、マスタデバイス１１Ａ（Ｍ０）に対するトランザクションが転送可能となった時点で、アウトオブオーダ転送が可能であるため、即座に転送することが可能である。
【００６９】
以上、説明したように、本実施の形態によれば、マスタデバイスの処理がビジーとなった場合、スレーブデバイスは、ＦＩＦＯがフル状態になるまでリードデータの転送を継続して、フル状態になった後にも、別のリードチャネルのＦＩＦＯを使用することが可能となる。更に、インオーダ処理用の情報を付加して、互いにチャネル間のデータ通信を確認することで、正しい順番でマスタデバイスへリードデータを返信することが可能である。
【００７０】
（その他の実施の形態）
以上が本発明の実施の形態の説明であるが、本発明は、これら実施の形態に限られるものではなく、特許請求の範囲で示した機能、または実施の形態の構成が持つ機能を達成できる構成であれば、どのようなものであっても適用可能である。
【図面の簡単な説明】
【００７１】
【図１】第１の実施の形態に係るオンチップバスシステムの構成を示すブロック図である。
【図２】第１の実施の形態に係るオンチップバスシステムにおけるＦＩＦＯ制御回路の構成を示すブロック図である。
【図３】第１の実施の形態に係るオンチップバスシステムにおけるＦＩＦＯ制御回路の構成を示すブロック図である。
【図４】第２の実施の形態に係るオンチップバスシステムの構成を示すブロック図である。
【図５】第２の実施の形態に係るオンチップバスシステムにおけるリードデータ応答フィールドの一様態を示す図である。
【図６】第２の実施の形態に係るオンチップバスシステムにおけるＦＩＦＯの状態と転送順序の一様態を示す図である。
【図７】第２の実施の形態に係るオンチップバスシステムにおけるＦＩＦＯの状態と転送順序の一様態を示す図である。
【図８】第２の実施の形態に係るオンチップバスシステムにおけるＦＩＦＯの状態と転送順序の一様態を示す図である。
【図９】従来のオンチップバスシステムの構成を示すブロック図である。
【図１０】従来のオンチップバスシステムにおけるＦＩＦＯ制御回路の構成を示すブロック図である。
【符号の説明】
【００７２】
１０      オンチップバスシステム
１１Ａ    マスタデバイスＡ
１１Ｂ    マスタデバイスＢ
１２Ａ    スレーブデバイスＡ
１２Ｂ    スレーブデバイスＢ
１３      クロスバースイッチ
１３１Ａ  ＦＩＦＯ
１３１Ｂ  ＦＩＦＯ
１３２Ａ  書き込み制御回路
１３２Ｂ  書き込み制御回路
１３３Ａ  読み出し制御回路
１３３Ｂ  読み出し制御回路
１３４Ａ  スイッチ
１３４Ｂ  スイッチ
１４      クロスバースイッチ
１４１Ａ  ＦＩＦＯ
１４１Ｂ  ＦＩＦＯ
１４２Ａ  書き込み制御回路
１４２Ｂ  書き込み制御回路
１４３Ａ  読み出し制御回路
１４３Ｂ  読み出し制御回路
１４４Ａ  スイッチ
１４４Ｂ  スイッチ
１４５Ｂ  セレクタ
１５      クロスバースイッチ
１５１Ａ  ＦＩＦＯ
１５１Ｂ  ＦＩＦＯ
１５２Ａ  書き込み制御回路
１５２Ｂ  書き込み制御回路
１５３Ａ  読み出し制御回路
１５３Ｂ  読み出し制御回路
１５４Ａ  スイッチＡ
１５４Ｂ  スイッチＢ
１５５Ｂ  セレクタ
１５６    調停回路
【図１】
2006091982.tif 000003
【図２】
2006091982.tif 000004
【図３】
2006091982.tif 000005
【図４】
2006091982.tif 000006
【図５】
2006091982.tif 000007
【図６】
2006091982.tif 000008
【図７】
2006091982.tif 000009
【図８】
2006091982.tif 000010
【図９】
2006091982.tif 000011
【図１０】
2006091982.tif 000012