(57)【要約】【課題】データの転送効率を向上できる半導体集積回路装置及びデータ転送方法を提供すること。【解決手段】半導体集積回路装置１は、第１、第２バッファ回路３０−１、４０−２と、データバス６０と、前記第１バッファ回路３０−１に空き領域がある場合に前記転送データを前記第１バッファ回路３０−１へ読み出す第１半導体装置２０−１と、前記第２バッファ回路４０−２に空き領域がある場合に前記データバス６０を介して前記転送データを前記第２バッファ回路４０−２に転送する制御回路１０と、前記第２バッファ回路４０−２内の前記転送データを読み出す第２半導体装置２０−２とを具備し、前記制御回路１０は前記転送データが前記第１バッファ回路３０−１へ書き込まれた後に前記データバス６０の使用権を取得し、前記転送データを転送した後に前記データバス６０の使用権を放棄する。【選択図】図１
2006313479.tif 000002
【特許請求の範囲】
【請求項１】
第１半導体装置と第２半導体装置とを具備し、前記第１、第２半導体装置間でデータの授受を行う半導体集積回路装置であって、
各々がデータ保持可能な第１、第２バッファ回路と、
前記第１、第２バッファ回路間において前記データを伝送するデータバスと、
前記データ転送時において、前記第１バッファ回路に空き領域がある場合に、記転送データを前記第１バッファ回路へ読み出す前記第１半導体装置と、
前記データ転送時において、前記第２バッファ回路に空き領域がある場合に、前記データバスを介して前記第１バッファ回路内の前記転送データを前記第２バッファ回路に転送する制御回路と、
前記第２バッファ回路内に転送された前記転送データを読み出す前記第２半導体装置と
を具備し、前記制御回路は前記第１半導体装置が前記転送データを前記第１バッファ回路へ書き込んだ後に前記データバスの使用権を取得し、前記転送データを前記第２バッファ回路に転送した後に前記データバスの使用権を放棄する
ことを特徴とする半導体集積回路装置。
【請求項２】
複数の半導体装置を備えた半導体集積回路装置であって、
各々の前記半導体装置毎に設けられ、対応する前記半導体装置がデータの転送元となる場合に、該半導体装置から転送データが読み出される第１バッファ回路と、
各々の前記半導体装置毎に設けられ、対応する前記半導体装置がデータの転送先となる場合に、前記転送データが転送されて書き込まれる第２バッファ回路と、
前記半導体装置間において前記転送データを伝送するデータバスと、
前記第１バッファ回路へ前記転送データが読み出された際に前記データバスの使用権を取得し、前記転送データを前記転送先となる前記半導体装置に対応する前記第２バッファ回路に前記データバスを介して転送し、該転送後に前記データバスの使用権を放棄する制御回路と
を具備することを特徴とする半導体集積回路装置。
【請求項３】
データ転送時において、前記制御回路は前記第１バッファ回路への前記転送データの読み出し要求命令を、前記転送元となる前記半導体装置に対して出力し、
前記転送元となる前記半導体装置は前記読み出し要求命令に応答して前記転送データを前記第１バッファ回路へ読み出し、読み出し終了後にアクノリッジ信号を前記制御回路へ返し、
前記制御回路は前記アクノリッジ信号に応答して、前記データバスの使用権を取得する
ことを特徴とする請求項２記載の半導体集積回路装置。
【請求項４】
前記第１バッファ回路は、各々が前記転送データを保持可能な複数のエントリを備え、
前記制御回路は、前記第１バッファ回路に格納された順番とは異なる順序で前記転送データを前記第２バッファ回路へ転送する
ことを特徴とする請求項２記載の半導体集積回路装置。
【請求項５】
データバスによって接続された第１、第２半導体装置間におけるデータ転送方法であって、
転送元となる前記第１半導体装置が転送データを第１バッファ回路へ読み出すステップと、
前記転送データが前記第１バッファ回路へ読み出されたことを確認して、制御回路が前記データバスの使用権を取得するステップと、
前記制御回路が前記第１バッファ回路内の前記転送データを、前記データバスを介して第２バッファ回路に転送するステップと、
前記転送データの転送の後、前記制御回路が前記データバスの使用権を放棄するステップと、
前記第２半導体装置が前記第２バッファ回路に転送された前記転送データを読み出すステップと
を具備することを特徴とするデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、半導体集積回路装置及びデータ転送方法に関するもので、例えばネットワークを介して接続された複数のデバイス間のデータ転送手法に関する。
【背景技術】
【０００２】
近年、計算機において取り扱われるデータ量は飛躍的に増大してきている。従って、如何にしてデータの転送速度を高めるかが、計算器の処理速度向上の観点から重要なポイントとなっている。
【０００３】
従来から、例えばＤＭＡ転送を始め、様々なデータ転送技術が提案されている（例えば特許文献１、２参照）。しかしながらこれら従来のデータ転送方法では、データの転送速度が十分ではないという問題があった。
【特許文献１】特開２００１−２０９６２６号
【特許文献２】特開平１０−１１６２４４号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
この発明は、上記事情に鑑みてなされたもので、その目的は、データの転送効率を向上できる半導体集積回路装置及びデータ転送方法を提供することにある。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、この発明の一態様に係る半導体集積回路装置は、第１半導体装置と第２半導体装置とを具備し、前記第１、第２半導体装置間でデータの授受を行う半導体集積回路装置であって、各々がデータ保持可能な第１、第２バッファ回路と、前記第１、第２バッファ回路間において前記データを伝送するデータバスと、前記データ転送時において、前記第１バッファ回路に空き領域がある場合に、記転送データを前記第１バッファ回路へ読み出す前記第１半導体装置と、前記データ転送時において、前記第２バッファ回路に空き領域がある場合に、前記データバスを介して前記第１バッファ回路内の前記転送データを前記第２バッファ回路に転送する制御回路と、前記第２バッファ回路内に転送された前記転送データを読み出す前記第２半導体装置とを具備し、前記制御回路は前記第１半導体装置が前記転送データを前記第１バッファ回路へ書き込んだ後に前記データバスの使用権を取得し、前記転送データを前記第２バッファ回路に転送した後に前記データバスの使用権を放棄する。
【０００６】
上記目的を達成するために、この発明の一態様に係るデータ転送方法は、データバスによって接続された第１、第２半導体装置間におけるデータ転送方法であって、転送元となる前記第１半導体装置が転送データを第１バッファ回路へ読み出すステップと、前記転送データが前記第１バッファ回路へ読み出されたことを確認して、制御回路が前記データバスの使用権を取得するステップと、前記制御回路が前記第１バッファ回路内の前記転送データを、前記データバスを介して第２バッファ回路に転送するステップと、前記転送データの転送の後、前記制御回路が前記データバスの使用権を放棄するステップと、前記第２半導体装置が前記第２バッファ回路に転送された前記転送データを読み出すステップとを具備する。
【発明の効果】
【０００７】
この発明によれば、データの転送効率を向上できる半導体集積回路装置及びデータ転送方法を提供できる。
【発明を実施するための最良の形態】
【０００８】
以下、この発明の実施形態を図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【０００９】
この発明の第１の実施形態に係る半導体集積回路装置及びデータ転送方法について、図１を用いて説明する。図１は本実施形態に係る半導体集積回路（ＬＳＩ）のブロック図である。図示するように、ＬＳＩ１はマスターコントローラ（Master Controller：以下ＭＣと呼ぶ）１０、４つの半導体デバイス２０−１〜２０−４（以下デバイスＡ〜Ｄと呼ぶ）、ソースデータバッファ（Source data buffer：以下ＳＤＢと呼ぶ）３０−１〜３０−４、デスティネーションデータバッファ（Destination data buffer：以下ＤＤＢと呼ぶ）４０−１〜４０−４、バスコントローラ５０、及びデータバス６０を備えている。
【００１０】
デバイスＡ〜Ｄはそれぞれ独立した半導体装置であって、ＣＰＵ、メモリ、入出力回路等を備えている。そしてデバイスＡ〜Ｄは、データバス６０を介して互いにデータを授受する。但し、デバイスＡ〜Ｄにはデータ転送機能さえあれば良く、前述の構成に限定されるものではない。
【００１１】
ＳＤＢ３０−１〜３０−４は、それぞれデバイスＡ〜Ｄに対応付けて設けられている。ＳＤＢ３０−１〜３０−４は、データを転送する際において、それぞれデバイスＡ〜Ｄが転送元となった場合に、転送すべきデータを一時的に保持する。本実施形態においてＳＤＢ３０−１〜３０−４は１つのエントリのみを有しており、１回分の転送データのみ保持できる。
【００１２】
ＤＤＢ４０−１〜４０−４は、それぞれデバイスＡ〜Ｄに対応付けて設けられている。ＤＤＢ４０−１〜４０−４は、データを転送する際において、それぞれデバイスＡ〜Ｄが転送先となった場合に、転送されたデータを一時的に保持する。本実施形態においてＤＤＢ４０−１〜４０−４は１つのエントリのみを有しており、１回分の転送データのみ保持できる。
【００１３】
ＭＣ１０は、デバイスＡ〜Ｄ間のデータ転送を制御する。ＭＣ１０は、調停回路１１及びリクエストテーブル１２を備えている。調停回路１１は、デバイスＡ〜Ｄに対して実際にデータを転送するよう命令する。リクエストテーブル１２について図２を用いて説明する。図２はリクエストテーブル１２の一例を示す概念図である。
【００１４】
図示するようにリクエストテーブル１２は、現在要求されている転送要求と、その転送要求に関して転送元デバイスのＳＤＢの状態と、転送先デバイスのＤＤＢの状態とを情報として有している。図２の場合、デバイスＡからデバイスＢへの転送要求が来ており、デバイスＡのＳＤＢ３０−１及びデバイスＢのＤＤＢ４０−１は空き状態（“０”）である。またデバイスＣからデバイスＤへの転送要求が来ており、デバイスＣのＳＤＢ３０−３及びデバイスＤのＤＤＢ４０−４には何らかのデータが保持されており（“１”）空いていない。更にデバイスＢからデバイスＣへの転送要求が為されており、デバイスＢのＳＤＢ３０−２は空き状態、デバイスＣのＤＤＢ４０−３は空いていない状態である。調停回路１１は、リクエストテーブルを参照することで、どの転送要求を実行すべきか決定する。
【００１５】
バスコントローラ５０は、デバイス間のデータ転送を行う際、ＭＣ１０の命令に応答して、バス６０によってデバイス間を通信可能に接続する。
【００１６】
次に、本実施形態に係るＬＳＩ１によるデータ転送方法について図３を用いて説明する。図３は本実施形態に係るデータ転送方法のフローチャートである。データ転送方法は、大まかには３つのステージ１〜３を有している。ステージ１は転送元デバイスにおける処理、ステージ２はＭＣ１０における処理、ステージ３は転送先デバイスにおける処理である。以下、デバイスＡからデバイスＢへデータを転送する場合を例に挙げて説明する。
【００１７】
まず転送元となるデバイスＡが、デバイスＡに対応するＳＤＢ３０−１が空いているか否かをチェックする（ステップＳ１０）。データ転送はＳＤＢが空いている際に行うので、空いていなければ空くまで待つ。ＳＤＢ３０−１が空いていた場合、デバイスＡは転送すべきデータをＳＤＢ３０−１へ書き込む（ステップＳ１１）。ＳＤＢ３０−１への書き込みが終了すると、デバイスＡはリクエスト命令ＲＥＱと転送先アドレスとをＭＣ１０へ通知する（ステップＳ１２）。リクエスト命令ＲＥＱは、ＳＤＢ３０−１内のデータをデバイスＢへ転送せよ、との要求信号であり、転送先アドレスは、転送先となるデバイスＢにおいて転送データを書き込むべきメモリ領域のアドレスＤｓｔＡｄｄｒである。ステップＳ１１、Ｓ１２の処理の様子を図４に示す。以上の３つのステップＳ１０〜Ｓ１２がステージ１である。そしてデバイスＡは、本データの転送に関してその後一切の処理が不要である。
【００１８】
次に処理はステージ２に移行する。まずＭＣ１０は、リクエスト命令ＲＥＱに応答してリクエストテーブル１２を更新する。更新されたリクエストテーブル１２の様子を図５に示す。図示するように、リクエストテーブル１２にはデバイスＡからデバイスＢへの転送要求と、デバイスＡのＳＤＢ３０−１及びデバイスＢのＤＤＢ４０−２の空き状況とが保持される。ＤＤＢ４０−２は空であったと仮定する。
【００１９】
次にＭＣ１０は、転送先デバイスＢのＤＤＢ４０−２が空いているか否かをチェックする（ステップＳ２２）。これはリクエストテーブル１２を参照することで知ることが出来る。またステップＳ２０の代わりに本ステップでＤＤＢを確認して、リクエストテーブル１２にその情報を書き込んでも良い。データ転送はＤＤＢが空いている際に行う。従って、ＤＤＢ４０−２が使用中の場合（ステップＳ２２）には、ＭＣ１０はＤＤＢ４０−２が空くまで処理を待ち、他のリクエストがあればその処理を行う（ステップＳ２３）。
【００２０】
ＤＤＢ４０−２が空の場合（ステップＳ２２）、実際にデバイスＡからデバイスＢへのデータ転送を行う。すなわち、ＭＣ１０がバスコントローラ５０に対してデバイスＡとデバイスＢと接続するよう命令する（ステップＳ２４）。この命令に応答して、バスコントローラ５０は、デバイスＡのＳＤＢ３０−１とデバイスＢのＤＤＢ４０−２とを通信可能に接続する。換言すれば、デバイスＡ、Ｂがバス６０を占有する。そしてＭＣ１０は、ＳＤＢ３０−１に保持されているデータを、バス６０を介してＤＤＢ４０−２に転送する（ステップＳ２５）。この様子を図６に示す。
【００２１】
データの転送が完了すると、バスコントローラ５０はＭＣ１０の命令に基づきバス６０を開放する。またＭＣ１０は転送先デバイスＢに対して、ＤＤＢ４０−２内のデータを取り込むように命令する。この際、転送先アドレスＤｓｔＡｄｄｒを転送先デバイスＢへ通知する。ＭＣ１０は更にリクエストテーブル１２を更新する（ステップＳ２６）。すなわち、転送を終了したリクエストをリクエストテーブル１２から抹消する。以上のステップＳ２０〜Ｓ２６がステージ２である。ＭＣ１０は、本データ転送に関しては、その後は一切の処理が不要である。
【００２２】
次に処理はステージ３に移行する。ステージ３では、図７に示すように転送先デバイスＢが、任意のタイミングでＤＤＢ４０−２内のデータを内部に取り込む（ステップＳ３０）。そして、転送先アドレスＤｓｔＡｄｄｒに対応するメモリ領域にデータを書き込む。
【００２３】
以上のようにして、デバイスＡからデバイスＢへのデータ転送が完了する。その他のデバイス間でのデータ転送方法も同様である。
【００２４】
上記のように、本実施形態に係るＬＳＩによれば下記（１）乃至（３）の効果が得られる。  
（１）データ転送効率を向上出来る（その１）  
従来のＤＭＡ転送は、ＤＭＡコントローラによっておおまかには次の２つのステップにより行われる。  
（ステップ１）まず転送元デバイスからのデータの読み出しを行う。すなわち、ＤＭＡコントローラがバスマスター（Bus Master）となって、バスの使用権を取得する。そしてＤＭＡコントローラが転送元デバイスに対してデータの読み出し要求を出す。すると転送元デバイスは、要求されたデータを送ることを知らせるアクノリッジ信号と、データとを出力する。ＤＭＡコントローラはアクノリッジ信号をトリガとして、転送元デバイスからのデータを受け取る。その後ＤＭＡコントローラはバス使用権を放棄する。
【００２５】
（ステップ２）次に転送先デバイスへのデータの書き込みを行う。すなわち、ＤＭＡコントローラは再びバスの使用権を取得する。そしてＤＭＡコントローラは転送先デバイスに対してデータの書き込み要求を出す。すると転送先デバイスは、データの受け取り準備が完了するとアクノリッジ信号を出力する。ＤＭＡコントローラはアクノリッジ信号をトリガとして、転送先デバイスに対してデータを出力する。その後ＤＭＡコントローラはバス使用権を放棄する。
【００２６】
以上の転送方法において、１回のデータ転送においてバスが占有される時間はバスプロトコル（Bus Protocol）の開始から終了までであるが、これは実際にデータを転送する時間以上に必要となる。上記ステップ１、２において、ＤＭＡコントローラがバス使用権を取得した後は、放棄されるまでの期間、継続してバスが占有される。この場合、実際にバス上をデータが移動している期間だけでなく、データ転送にあたってＤＭＡコントローラと転送元及び転送先デバイスとの間で必要な信号のやりとり（これをハンドシェイク：Handshakeと呼ぶ）に使用される期間も、バスが無駄に占有される。例えば１回のバスプロトコルにｎサイクルかかり、純粋にデータ転送に使用される時間がｍサイクルであったとすると、（ｎ−ｍ）サイクルだけ、バスは無駄に占有される。特にシステムが大規模になり、多くのデバイスが同一のバスを介してデータ転送が行われる場合には信号の伝搬時間が増大し、ハンドシェイクによるバスの無駄な占有時間が長くなる。
【００２７】
しかし本実施形態であると、デバイス毎にＳＤＢ及びＤＤＢを設けている。そして、転送元デバイスは任意のタイミングで転送データをＳＤＢへ書き込めば良く、転送先デバイスは任意のタイミングでＤＤＢからデータを読み出せば良い。またＭＣ１０は、ＤＤＢが空いてさえいれば何時データ転送を行っても良い。従って、ＭＣ１０がデータ転送の為に決定すべき事項を減らすことが出来、ハンドシェイクに必要な時間を従来に比べて格段に短くすることが出来る。そのため、ハンドシェイクによる無駄なバスの占有期間を低減し、データ転送速度・転送効率を向上出来る。
【００２８】
更に本実施形態では、ＭＣ１０はＳＤＢからＤＤＢへのデータ転送を行うステージ２においてのみバスの使用権を取得する。従って、ステージ１、２において不必要にバスが占有されることを防止出来る。
【００２９】
（２）データ転送効率を向上出来る（その２）  
本実施形態に係るデータ転送方法は３つのステージを含み、それぞれのステージは転送元デバイス、ＭＣ１０、及び転送先デバイスにおいて処理される。従って、これらのステージはパイプライン動作が可能である。この点について図８を用いて説明する。図８は各ステージ１〜３の動作状況を示すタイミングチャートである。ここでは簡単化のため、各ステージに必要な時間は等しく、且つ転送要求が為された際に転送先のＤＤＢが空であると仮定する。
【００３０】
図８に示すように、例えばデバイスＡ〜Ｃから連続してデータの転送要求が行われたとする。まず時刻ｔ１でデバイスＡがデータをＳＤＢ３０−１に転送し、デバイスＢへのリクエスト命令ＲＥＱを出力する（ステージ１）。するとＭＣ１０は時刻ｔ２においてバスの使用権を取得し、ＳＤＢ３０−１からデバイスＢのＤＤＢ４０−２へ転送する（ステージ２）。そしてバスの使用権を放棄する。データの転送完了後、時刻ｔ３においてデバイスＢはＤＤＢ４０−２から転送データを読み出す（ステージ３）。
【００３１】
また時刻ｔ２でデバイスＣがデータをＳＤＢ３０−３へ転送し、デバイスＤへのリクエスト命令ＲＥＱを出力する（ステージ１）。すると、時刻ｔ３ではデバイスＡによる転送要求に基づくバスの使用権は放棄されているので、ＭＣ１０は時刻ｔ３において新たにバスの使用権を取得し、ＳＤＢ３０−３のデータをデバイスＤのＤＤＢ４０−４に転送する（ステージ２）。そしてバスの使用権を放棄する。データの転送完了後、時刻ｔ４においてデバイスＤはＤＤＢ４０−４から転送データを読み出す（ステージ３）。すなわち、デバイスＡによる転送要求に基づくステージ２の処理と、デバイスＣによる転送要求に基づくステージ１の処理とが、時間的にオーバーラップしている。
【００３２】
更に時刻ｔ３でデバイスＢがデータをＳＤＢ３０−２へ転送し、デバイスＣへのリクエスト命令ＲＥＱを出力する（ステージ１）。すると、時刻ｔ４ではデバイスＣによる転送要求に基づくバスの使用権は放棄されているので、ＭＣ１０は時刻ｔ４において新たにバスの使用権を取得し、ＳＤＢ３０−２のデータをデバイスＣのＤＤＢ４０−３に転送する（ステージ２）。そしてバスの使用権を放棄する。データの転送完了後、時刻ｔ５においてデバイスＣはＤＤＢ４０−３から転送データを読み出す（ステージ３）。すなわち、デバイスＡの転送要求に基づくステージ３の処理と、デバイスＣの転送要求に基づくステージ２の処理と、デバイスＢに基づくステージ１の処理とが、時間的にオーバーラップしている。
【００３３】
更に時刻ｔ４でデバイスＤがデータをＳＤＢ３０−４へ転送し、デバイスＡへのリクエスト命令ＲＥＱを出力する（ステージ１）。すると、時刻ｔ５ではデバイスＢによる転送要求に基づくバスの使用権は放棄されているので、ＭＣ１０は時刻ｔ５において新たにバスの使用権を取得し、ＳＤＢ３０−４のデータをデバイスＡのＤＤＢ４０−１に転送する（ステージ２）。そしてバスの使用権を放棄する。データの転送完了後、時刻ｔ６においてデバイスＡはＤＤＢ４０−１から転送データを読み出す（ステージ３）。すなわち、デバイスＣの転送要求に基づくステージ３の処理と、デバイスＢの転送要求に基づくステージ２の処理と、デバイスＤに基づくステージ１の処理とが、時間的にオーバーラップしている。また、デバイスＢの転送要求に基づくステージ３の処理と、デバイスＤに基づくステージ２の処理とが、時間的にオーバーラップしている。
【００３４】
以上のように、各ステージをパイプライン処理することが出来る。その結果データの転送効率を向上出来る。この点について図９を用いて説明する。図９は本実施形態に係るデータ転送方法によるステージ１〜３と、従来のＤＭＡ転送とにおける処理の様子を示すタイミングチャートである。なお図９では、簡単化のために本実施形態と従来のＤＭＡ転送とで、データ転送にかかる時間は同一（Δｔ１）であるものとする。勿論、実際には効果（１）で説明したように、本実施形態ではハンドシェイクに必要な時間を短く出来るため、データ転送時間は従来のＤＭＡ転送に比べて短くなる。
【００３５】
図示するように従来のＤＭＡ転送であると、ＤＭＡＣが転送データを一時的に保持し、バスプロトコルの開始から終了までバスは占有され続ける。従って、複数の転送処理を並列的に行うことは困難であり、図示するように（４×Δｔ１）だけ時間がかかる。
【００３６】
これに対して本実施形態に係る転送方法であると、ＭＣ１０は転送データを保持することなく、ＳＤＢとＤＤＢとの間で直接データを転送する。そしてデバイスＡ→デバイスＢ、デバイスＣ→デバイスＤ、デバイスＢ→デバイスＣ、デバイスＤ→デバイスＡ、の４つの転送処理は、それぞれのステージ２が連続して行われるように、その一部がオーバーラップしている。従って、全ての転送処理を行うのに必要な時間は（２×Δｔ１）であり、従来の１／２の時間で済む。
【００３７】
（３）データ転送効率を向上出来る（その３）  
本実施形態に係るデータ転送方法であると、ステージ１はＳＤＢが空であるデバイスについて実行される。またステージ１は各デバイスそれぞれにおいて行われる処理であるので、他のデバイスの状態は関係しない。従って、同一の時間帯に複数のデバイスがＳＤＢにデータを転送し、リクエスト命令ＲＥＱをＭＣ１０へ出力することも有り得る。ＭＣ１０においては、複数のリクエスト命令を与えられた場合、転送先デバイスのＤＤＢが空いているリクエスト命令について優先的に実行する。すなわち、データ転送はアウトオブオーダー（out-of-order）で実行される。従って、データ転送効率を向上出来る。
【００３８】
上記の様子を、図１０を用いて説明する。図１０は各ステージ１〜３の動作状況と、各デバイスのＳＤＢ及びＤＤＢの状態を示すタイミングチャートである。例えば図９と同様に、デバイスＡ〜Ｄはそれぞれ時刻ｔ１〜ｔ４においてデータの転送を決定したとする。
【００３９】
まず時刻ｔ１においてデバイスＡはデバイスＢへのデータ転送を決定する。しかし時刻ｔ１においてＳＤＢ３０−１が使用中であるので、デバイスＡはデータ転送を延期する。
【００４０】
次に時刻ｔ２においてデバイスＣはデバイスＤへのデータ転送を決定する。時刻ｔ２においてＳＤＢ３０−３は空であるので、デバイスＣはデータをＳＤＢ３０−３へ転送し、リクエスト命令ＲＥＱ１をＭＣ１０へ出力する。また時刻ｔ２でＳＤＢ３０−１が空になったため、デバイスＡはデータをＳＤＢ３０−１へ転送し、リクエスト命令ＲＥＱ２をＭＣ１０へ出力する。
【００４１】
次に時刻ｔ３においてデバイスＢはデバイスＣへのデータ転送を決定する。しかし時刻ｔ３においてＳＤＢ３０−２が使用中であるので、デバイスＢはデータ転送を延期する。またＭＣ１０は、ＤＤＢ４０−２が使用中でＤＤＢ４０−４が空いているので、リクエスト命令ＲＥＱ２を待機させて、ＲＥＱ１に関するデータ転送を行う。すなわち、ＳＤＢ３０−３内のデータをＤＤＢ４０−４へ転送する。
【００４２】
次に時刻ｔ４においてデバイスＤはデバイスＡへのデータ転送を決定する。しかし時刻ｔ４においてＳＤＢ３０−４は使用中であるので、デバイスＤはデータ転送を延期する。またＳＤＢ３０−２が依然として使用中であるのでデバイスＢはデータ転送を更に延期する。更にＤＤＢ４０−２も依然使用中であるので、ＭＣ１０はリクエスト命令ＲＥＱ２を更に待機させる。
【００４３】
次に時刻ｔ５においてＳＤＢ３０−２が空くので、デバイスＢはデータをＳＤＢ３０−２へ転送し、リクエスト命令ＲＥＱ３をＭＣ１０へ出力する。ＤＤＢ４０−２は依然使用中であるので、ＭＣ１０はリクエスト命令ＲＥＱ２を更に待機させる。
【００４４】
次に時刻ｔ６においてＳＤＢ３０−４が空くので、デバイスＤはデータＳＤＢ３０−４へ転送し、リクエスト命令ＲＥＱ４をＭＣ１０へ出力する。ＤＤＢ４０−２は依然として使用中であり、ＤＤＢ４０−３が空いているので、ＭＣ１０はリクエスト命令ＲＥＱ２より先にリクエスト命令ＲＥＱ３を実行する。
【００４５】
時刻ｔ７においてＤＤＢ４０−２が空くので、ＭＣ１０はリクエスト命令ＲＥＱ２を実行し、また時刻ｔ８においてリクエスト命令ＲＥＱ４を実行する。
【００４６】
以上のように、ＭＣ１０は受信した順番ではなく、データ転送の可能なリクエスト命令から順に実行する。従って、無駄な待ち時間が発生せず、効率良いデータ転送が実行出来る。
【００４７】
（４）各デバイスの処理効率を向上出来る。  
本実施形態に係るデータ転送方法であると、各デバイスに対してＳＤＢ及びＤＤＢが設けられている。従って、転送元デバイスはＳＤＢにデータを書き込んでしまえばそれ以降は転送の為の処理は完了し、転送元デバイスはＤＤＢからデータを読み出すまでなんらの処理も不要である。すなわち、転送元デバイスはステージ２、３においてはデータ転送処理から開放され、独自の処理を行うことが出来る。また転送先デバイスはステージ１、２においてデータ転送処理が不要であり、この期間は独自の処理を行うことが出来る。従って、データの転送処理のためにデバイスが不要に拘束されることを防止し、各デバイスの処理効率を向上出来る。
【００４８】
次にこの発明の第２の実施形態に係る半導体集積回路装置及びデータ転送方法について図１１を用いて説明する。図１１は本実施形態に係るＬＳＩのブロック図である。本実施形態は、ＭＣ１０がデバイスＡ〜Ｄ以外のブロックからリクエスト命令を受ける場合に関する。
【００４９】
図示するように、本実施形態に係るＬＳＩ１は、上記第１の実施形態で説明した図１の構成において、更にホストプロセッサ７０を備えている。ホストプロセッサ７０は、デバイスＡ〜Ｄ間のデータ転送をＭＣ１０へ要求し、リクエスト命令をＭＣ１０へ出力する。
【００５０】
本実施形態に係るＬＳＩ１によるデータ転送方法について図１２を用いて説明する。図１２は本実施形態に係るデータ転送方法のフローチャートである。  
まずステージ１の処理を開始する。ホストプロセッサ７０は、リクエスト命令ＲＥＱ１〜ＲＥＱｎ（ｎ：自然数）をＭＣ１０へ出力する（ステップＳ４０）。この様子を示しているのが図１３である。図示するようにホストプロセッサ７０は、リクエスト命令と共に、転送元アドレスＳｒｃＡｄｄｒ及び転送先アドレスＤｓｔＡｄｄｒをＭＣ１０へ送付する。転送元アドレスＳｒｃＡｄｄｒは、転送元デバイスにおいて転送すべきデータが保持されている領域のアドレスである。
【００５１】
リクエスト命令ＲＥＱ１〜ＲＥＱｎを受けたＭＣ１０は、リクエストテーブル１２を更新する（ステップＳ４１）。すなわち、リクエスト内容と、対応するＳＤＢ及びＤＤＢの空き状況がリクエストテーブル１２に保持される。そしてＭＣ１０は、転送元デバイスのＳＤＢが空いているか否かをチェックする（ステップＳ４２）。これはリクエストテーブル１２を参照することで知ることが出来る。またステップＳ４１の代わりに本ステップでＳＤＢ及びＤＤＢを確認して、リクエストテーブル１２にその情報を書き込んでも良い。データ転送はＳＤＢが空いているデバイスについて行う。従って、ＳＤＢが使用中の場合（ステップＳ４３）には、ＭＣ１０は当該リクエスト命令の実行はＳＤＢが空くまで待機させ、他のリクエストがあればその処理を行う（ステップＳ４４）。
【００５２】
転送元デバイスのＳＤＢが空の場合（ステップＳ４３）、ＭＣ１０はデータをＳＤＢに読み出すよう、対応するデバイスＡ〜Ｄのいずれかに命令する（これをステップＳ４５）。この命令を読み出し命令と呼ぶことにする。読み出し命令には、転送元アドレスＳｒｃＡｄｄｒが含まれる。また、リクエスト命令が与えられ且つＳＤＢが空であるデバイスが複数存在する場合には、調停回路１１が優先してリクエスト命令を実行するデバイスを選択してステップＳ４５の処理を行う。
【００５３】
データの読み出し命令を受けたデバイスは、転送元アドレスＳｒｃＡｄｄｒに格納されているデータをＳＤＢに読み出す（ステップＳ４６）。そしてＳＤＢへの書き込みが終了したら、アクノリッジ信号をＭＣ１０へ返す（ステップＳ４７）。
【００５４】
以上のようにしてステージ１の処理が完了し、アクノリッジ信号を受けたＭＣ１０はステージ２の処理に進む。本実施形態では、ステップＳ４１でリクエストテーブル１２を更新しているので、ステップＳ２０の処理を行う必要はなく、ステップＳ２１の処理からスタートする。以降の処理は第１の実施形態で説明したとおりである。本実施形態においても、ステージ１〜３はパイプライン処理される。
【００５５】
上記のように本実施形態によれば、互いにデータの授受を行うデバイス自身以外のブロックから転送命令を受けた場合であっても、第１の実施形態で説明した効果（１）乃至（４）が得られる。
【００５６】
次にこの発明の第３の実施形態に係る半導体集積回路装置及びデータ転送方法について説明する。本実施形態は上記第２の実施形態において、ＭＣ１０の代わりに転送元デバイスがＳＤＢの空き状況をチェックするものである。
【００５７】
図１４は、本実施形態に係るＬＳＩ１が備えるデバイスＡのブロック図である。図示するように、デバイスＡは複数のエントリを有するメモリ２１を備えている。メモリ２１は、ＭＣ１０から送付される転送元アドレスＳｒｃＡｄｄｒを各エントリに保持する。デバイスＢ〜Ｄも同様にメモリ２１を備えている。その他の構成は第２の実施形態で説明した図１１と同様であるので説明は省略する。
【００５８】
次に本実施形態に係るＬＳＩ１によるデータ転送方法について、図１５のフローチャートを用いて説明する。まず第２の実施形態で説明したステップＳ４０、Ｓ４１の後、ＭＣ１０はリクエスト命令ＲＥＱに基づいて、転送元デバイスに対してデータをＳＤＢに読み出すよう、読み出し命令を出力する（ステップＳ５０）。この読み出し命令は、転送元デバイスのデータ転送状況、すなわちＳＤＢの空き状況を考慮することなく順次読み出し命令を出力する。
【００５９】
読み出し命令を受けた転送元デバイスは、読み出し命令（ソースアドレスＳｒｃＡｄｄｒ）をメモリ２１に保持する（ステップＳ５１）。すなわち転送元デバイスは、メモリ２１のエントリ数だけ読み出し命令を記憶出来る。引き続き転送元デバイスはＳＤＢの空き状況を確認する（ステップＳ５２）。
【００６０】
ＳＤＢが空いていれば（ステップＳ４３）、転送元デバイスは読み出し命令によって指定されたデータをＳＤＢへ読み出す（ステップＳ５３）。この際、ＳＤＢへのデータの読み出しは読み出し命令を受けた順に行っても良いし、順番を入れ換えても良い。例えば、ＭＣ１０が読み出し命令を転送元デバイスに出力する際に転送先デバイスのＤＤＢの状況も合わせて送付し、転送元デバイスはこの情報に基づき、ＤＤＢが空いているリクエスト命令に関するデータについて優先的に読み出しを行っても良い。
【００６１】
そして転送元デバイスはデータをＳＤＢに読み出した後（ステップＳ４６）、ＭＣ１０へアクノリッジ信号を返す（ステップＳ４７）。この際、転送元デバイスはアクノリッジ信号と共に、例えば転送元アドレスＳｒｃＡｄｄｒを一緒にＭＣ１０へ返す。これにより、ＭＣ１０は転送元デバイスがどのリクエスト命令に関してデータの読み出しを完了したのかを把握することが出来る。  
その後は第２の実施形態で説明したステージ２（ステップＳ２１）以降の処理を行う。
【００６２】
上記のように本実施形態に係るデータ転送方法であると、上記第１、第２の実施形態と同様に効果（１）乃至（４）が得られると共に、下記の効果（５）、（６）が得られる。
【００６３】
（５）ＭＣ１０の負荷を軽減できる。  
本実施形態に係る構成によれば、各デバイスはそれぞれ複数のエントリを有するメモリ２１を備えている。そして、ＭＣ１０から送付される転送元アドレスＳｒｃＡｄｄｒがエントリに保持される。このように各デバイスは複数の転送元アドレスＳｒｃＡｄｄｒを保持出来るため、ＭＣ１０は転送元デバイスのＳＤＢの空き状況を確認する必要が無く、ＭＣ１０の処理の負荷を軽減出来る。
【００６４】
（６）データの転送効率を向上出来る（その４）  
上記（５）で説明したように、各デバイスは複数の転送元アドレスＳｒｃＡｄｄｒを保持する。従って、転送元アドレスは自らが保持する複数の転送元アドレスＳｒｃＡｄｄｒのうち、任意のアドレスについてデータの読み出しを行うことが出来る。すなわち、ＳＤＢへのデータ転送をアウトオブオーダーで行うことが出来る。そのため、データの転送効率を向上出来る。この点につき下記説明する。
【００６５】
まず前述したように、ＤＤＢが空いているリクエスト命令に関してデータ転送が行えるため転送効率を向上出来る。
【００６６】
次に、データ転送に関係するデバイスにおいては、ＭＣ１０から転送命令を受けてからＳＤＢにデータを書き込むまで、またＤＤＢからデータを読み出すまでに一定の遅延時間が存在する。この遅延時間が、同一デバイス内であってもアドレスによって異なる場合がある。そこで転送元デバイスはメモリ２１に保持される転送元アドレスＳｒｃＡｄｄｒを確認し、最も早く読み出し可能なデータについてＳＤＢへ転送する。これにより、データの転送効率を向上出来る。
【００６７】
次にこの発明の第４の実施形態に係る半導体集積回路装置及びデータ転送方法について説明する。本実施形態は上記第３の実施形態において、ＳＤＢ及びＤＤＢが複数のエントリを備えている場合に係るものである。
【００６８】
図１６は、本実施形態に係るＬＳＩ１が備えるデバイスＡ、ＳＤＢ３０−１、及びＤＤＢ４０−１のブロック図である。図示するように、デバイスＡは第４の実施形態で説明したメモリ２１を備えている。またＳＤＢ３０−１は（ｍ＋１）個（ｍ：１以上の自然数）のエントリを有し、ＤＤＢ４０−１は（ｋ＋１）個（ｋ：１以上の自然数）のエントリを有している。デバイスＢ〜Ｄも同様にメモリ２１を備えており、またＳＤＢ３０−２〜３０−４及びＤＤＢ４０−２〜４０−４も複数のエントリを備えている。従って、ＳＤＢ３０−１〜３０−４及びＤＤＢ４０−１〜４０−４は複数の転送データを保持できる。図１７は、本実施形態に係るＭＣ１０が保持するリクエストテーブル１２の概念図である。図示するように本実施形態に係るリクエストテーブル１２は、ＳＤＢ及びＤＤＢの各エントリに対応するリクエスト命令の内容、転送元アドレス、及び転送先アドレスの情報を、デバイスＡ〜Ｄ毎に有している。その他の構成は第３の実施形態と同様である。
【００６９】
次に本実施形態に係るＬＳＩ１によるデータ転送方法について説明する。本実施形態に係るデータ転送の処理は、第３の実施形態で説明した図１５のフローチャートとほぼ同じであり、ＳＤＢ及びＤＤＢが複数の転送データを保持する点が異なる。なお以下では説明の簡単化のために、図１８に示すように３つのデバイスＡ〜Ｃを備えるＬＳＩ１を考え、メモリ２１、ＳＤＢ３０−１〜３０−３、及びＤＤＢ４０−１〜４０−３のエントリ数は４である場合を仮定する。また、図１９に示すような順序でデータの転送を行うものとする。図１９はステージ１、２における処理の様子を示すタイミングチャートである。
【００７０】
まず図１８に示すように、ホストプロセッサ７０から６個のリクエスト命令ＲＥＱ１〜ＲＥＱ６がＭＣ１０へ与えられる（ステップＳ４０）。リクエスト命令ＲＥＱ１〜ＲＥＱ６の内容は以下の通りである。  
・ＲＥＱ１：デバイスＡに保持されるデータ１をデバイスＢへ転送  
デバイスＡにおいてデータ１が保持されるアドレス＝ＳｒｃＡｄｄｒ１  
デバイスＢにおいてデータ１を保持すべきアドレス＝ＤｓｔＡｄｄｒ１  
・ＲＥＱ２：デバイスＡに保持されるデータ２をデバイスＢへ転送  
デバイスＡにおいてデータ２が保持されるアドレス＝ＳｒｃＡｄｄｒ２  
デバイスＢにおいてデータ２を保持すべきアドレス＝ＤｓｔＡｄｄｒ２  
・ＲＥＱ３：デバイスＡに保持されるデータ３をデバイスＢへ転送  
デバイスＡにおいてデータ３が保持されるアドレス＝ＳｒｃＡｄｄｒ３  
デバイスＢにおいてデータ３を保持すべきアドレス＝ＤｓｔＡｄｄｒ３  
・ＲＥＱ４：デバイスＡに保持されるデータ４をデバイスＣへ転送  
デバイスＡにおいてデータ４が保持されるアドレス＝ＳｒｃＡｄｄｒ４  
デバイスＣにおいてデータ４を保持すべきアドレス＝ＤｓｔＡｄｄｒ４  
・ＲＥＱ５：デバイスＢに保持されるデータ５をデバイスＡへ転送  
デバイスＢにおいてデータ５が保持されるアドレス＝ＳｒｃＡｄｄｒ５  
デバイスＡにおいてデータ５を保持すべきアドレス＝ＤｓｔＡｄｄｒ５  
・ＲＥＱ６：デバイスＣに保持されるデータ６をデバイスＡへ転送  
デバイスＣにおいてデータ６が保持されるアドレス＝ＳｒｃＡｄｄｒ６  
デバイスＡにおいてデータ６を保持すべきアドレス＝ＤｓｔＡｄｄｒ６
上記リクエスト命令ＲＥＱ１〜ＲＥＱ６を受け取ったＭＣ１０は、図２０に示すようにリクエスト命令ＲＥＱ１〜ＲＥＱ４に基づく読み出し命令をデバイスＡへ転送し、リクエスト命令ＲＥＱ５に基づく読み出し命令をデバイスＢへ転送し、リクエスト命令ＲＥＱ６に基づく読み出し命令をデバイスＣへ転送する（ステップＳ５０）。
【００７１】
読み出し命令を受け取ったデバイスＡ〜Ｃは、それぞれメモリ２１に転送元アドレスを保持する（ステップＳ５１）。すなわち、デバイスＡのメモリ２１のエントリ０〜３にはそれぞれアドレスＳｒｃＡｄｄｒ１〜ＳｒｃＡｄｄｒ４が保持され、デバイスＢのメモリ２１のエントリ０にはアドレスＳｒｃＡｄｄｒ５が保持され、デバイスＣのメモリ２１のエントリ０にはアドレスＳｒｃＡｄｄｒ６が保持される。
【００７２】
次にデバイスＡ〜Ｃは、それぞれＳＤＢ３０−１〜３０−３の空き状況を調べ、空いているエントリにデータを転送する。ここで、ＳＤＢ３０−１〜３０−３の全てのエントリが空いていたと仮定する。すると、デバイスＡはデータ１〜４のうちで最も早く読み出し可能なデータ２をアドレスＳｒｃＡｄｄｒ２から読み出して、ＳＤＢ３０−１のエントリ０に書き込む（ステップＳ５２、Ｓ４３、Ｓ４４、図１９における時刻ｔ１）。またデバイスＢはデータ５をアドレスＳｒｃＡｄｄｒ５から読み出して、ＳＤＢ３０−２のエントリ０に書き込む。デバイスＣはデータ６をアドレスＳｒｃＡｄｄｒ６から読み出して、ＳＤＢ３０−３のエントリ０に書き込む。
【００７３】
ＳＤＢ３０−１〜３０−３への書き込みが終了すると、デバイスＡ〜Ｃはアクノリッジ信号をＭＣ１０へ返す（ステップＳ４７）。このアクノリッジ信号に応答して、ＭＣ１０はリクエストテーブル１２を更新する。更新後のリクエストテーブル１２を図２２に示す。図示するように、デバイスＡのＳＤＢのエントリ０、デバイスＢのＳＤＢのエントリ０、デバイスＣのＳＤＢのエントリ０に、それぞれリクエスト命令ＲＥＱ２、ＲＥＱ５、ＲＥＱ６に対応した情報が保持される。なおデバイスＢのＤＤＢ４０−２の全エントリは使用中であると仮定する。
【００７４】
次に時刻ｔ２においてＭＣ１０はステージ２の処理を開始する。まず調停回路１１がリクエスト命令ＲＥＱ２、ＲＥＱ５、ＲＥＱ６のいずれを実行するかを決定する。そのために調停回路１１はリクエストテーブル１２をチェックして、ＤＤＢの空き状況を確認する（ステップＳ２１）。リクエストテーブル１２から、デバイスＡのＤＤＢ４０−１及びデバイスＣのＤＤＢ４０−３は空いており、デバイスＢのＤＤＢは全て使用中であることが分かる（ステップＳ４３）。従ってリクエスト命令ＲＥＱ５、ＲＥＱ６が実行可能であるので、調停回路１１は例えばリクエスト命令ＲＥＱ５を実行する。すなわち調停回路１１は図２３に示すように、バスコントローラ５０にデバイスＡとデバイスＢとを接続するよう命令する（ステップＳ２４）。そして、デバイスＢのＳＤＢ３０−２におけるエントリ０内のデータ５を、デバイスＡのＤＤＢ４０−１におけるエントリ０に転送する（ステップＳ２５）。転送が終了すると、ＭＣ１０はバス６０を開放させ、デバイスＡに対してＤＤＢ４０−１内のデータ５を、アドレスＤｓｔＡｄｄｒ５に書き込むように命令する（ステップＳ２６）。
【００７５】
また時刻ｔ２においては、図２３に示すようにデバイスＡがステージ１の処理を続行する。デバイスＡにはまだリクエスト命令ＲＥＱ１、ＲＥＱ２、ＲＥＱ３に基づく読み出し命令が残っている。そこでデバイスＡはＳＤＢ３０−１の空き状況をチェックした後（ステップＳ５２）、リクエスト命令ＲＥＱ１に基づくデータ１をアドレスＳｒｃＡｄｄｒ１から読み出して、ＳＤＢ３０−１のエントリ１に書き込む（ステップＳ４３、Ｓ４４）。そしてデバイスＡはアクノリッジ信号をＭＣ１０へ返す（ステップＳ４７）。
【００７６】
データ５の転送（ステップＳ２５）が終了し、デバイスＡからのアクノリッジ信号を受けると、ＭＣ１０はリクエストテーブル１２を更新する（ステップＳ２６）。更新後のリクエストテーブルを図２４に示す。図示するように、デバイスＡのＳＤＢのエントリ１にリクエスト命令ＲＥＱ１に対応した情報が保持される。またデータ５がデバイスＡからデバイスＢへ転送されたので、デバイスＢにおけるリクエスト命令ＲＥＱ５に対応した情報は削除され、デバイスＡのエントリ０に改めて書き込まれる。
【００７７】
次に時刻ｔ３において調停回路１１は、リクエスト命令ＲＥＱ１、ＲＥＱ２、ＲＥＱ６のいずれを実行するかを決定する。デバイスＢのＤＤＢは依然として全て使用中であるので（ステップＳ２１、Ｓ２２）。調停回路１１はリクエスト命令ＲＥＱ６を実行する。すなわち調停回路１１は図２５に示すように、バスコントローラ５０にデバイスＡとデバイスＣとを接続するよう命令する（ステップＳ２４）。そして、デバイスＣのＳＤＢ３０−３におけるエントリ０内のデータ６を、デバイスＡにおけるＤＤＢ４０−１のエントリ１に転送する（ステップＳ２５）。転送が終了すると、ＭＣ１０はバス６０を開放させ、デバイスＡに対してＤＤＢ４０−１内のデータ６を、アドレスＤｓｔＡｄｄｒ５に書き込むように命令する（ステップＳ２６）。
【００７８】
また時刻ｔ３においては、図２５に示すようにデバイスＡがステージ１の処理を続行する。デバイスＡにはまだリクエスト命令ＲＥＱ３、ＲＥＱ４に基づく読み出し命令が残っている。そこでデバイスＡはＳＤＢ３０−１の空き状況をチェックした後（ステップＳ５２）、リクエスト命令ＲＥＱ４に基づくデータ４をアドレスＳｒｃＡｄｄｒ４から読み出して、ＳＤＢ３０−１のエントリ２に書き込む（ステップＳ４３、Ｓ４４）。そしてデバイスＡはアクノリッジ信号をＭＣ１０へ返す（ステップＳ４７）。
【００７９】
データ６の転送（ステップＳ２５）が終了し、デバイスＡからのアクノリッジ信号を受けると、ＭＣ１０はリクエストテーブル１２を更新する（ステップＳ２６）。更新後のリクエストテーブルを図２６に示す。図示するように、デバイスＡのＳＤＢのエントリ２にリクエスト命令ＲＥＱ４に対応した情報が保持される。またデータ６がデバイスＣからデバイスＡへ転送されたので、デバイスＣにおけるリクエスト命令ＲＥＱ６に対応した情報は削除され、デバイスＡのエントリ１に改めて書き込まれる。
【００８０】
次に時刻ｔ４において調停回路１１は、リクエスト命令ＲＥＱ１、ＲＥＱ２、ＲＥＱ４のいずれを実行するかを決定する。デバイスＢのＤＤＢは依然として全て使用中であるので（ステップＳ２１、Ｓ２２）。調停回路１１はリクエスト命令ＲＥＱ４を実行する。すなわち調停回路１１は図２７に示すように、バスコントローラ５０にデバイスＡとデバイスＣとを接続するよう命令する（ステップＳ２４）。そして、デバイスＡのＳＤＢ３０−１におけるエントリ３内のデータ４を、デバイスＣにおけるＤＤＢ４０−３のエントリ０に転送する（ステップＳ２５）。転送が終了すると、ＭＣ１０はバス６０を開放させ、デバイスＣに対してＤＤＢ４０−３内のデータ４を、アドレスＤｓｔＡｄｄｒ４に書き込むように命令する（ステップＳ２６）。
【００８１】
また時刻ｔ４においては、図２７に示すようにデバイスＡがステージ１の処理を続行する。すなわち、デバイスＡはリクエスト命令ＲＥＱ３に基づくデータ３をアドレスＳｒｃＡｄｄｒ３から読み出して、ＳＤＢ３０−１のエントリ３に書き込む（ステップＳ５２、Ｓ４３、Ｓ４４、Ｓ４６）。そしてデバイスＡはアクノリッジ信号をＭＣ１０へ返す（ステップＳ４７）。
【００８２】
データ４の転送（ステップＳ２５）が終了し、デバイスＡからのアクノリッジ信号を受けると、ＭＣ１０はリクエストテーブル１２を更新する（ステップＳ２６）。更新後のリクエストテーブルを図２８に示す。図示するように、デバイスＡのＳＤＢのエントリ３にリクエスト命令ＲＥＱ３に対応した情報が保持される。またデータ４がデバイスＡからデバイスＣへ転送されたので、デバイスＡにおけるリクエスト命令ＲＥＱ６に対応した情報は削除され、デバイスＣのＤＤＢのエントリ０に改めて書き込まれる。なおこの時点でデバイスＢのＤＤＢ４０−２における全てのエントリが空になったとする。
【００８３】
次に時刻ｔ５において調停回路１１は、リクエスト命令ＲＥＱ１、ＲＥＱ２、ＲＥＱ３のいずれを実行するかを決定する。デバイスＢのＤＤＢは空いているので、（ステップＳ２１、Ｓ２２）。調停回路１１は最も早くデバイスＢへの書き込みが可能なリクエスト命令ＲＥＱ２を実行する。すなわち調停回路１１は図２９に示すように、バスコントローラ５０にデバイスＡとデバイスＢとを接続するよう命令し、デバイスＡのＳＤＢ３０−１におけるエントリ０内のデータ２を、デバイスＢのＤＤＢ４０−２におけるエントリ０に転送する（ステップＳ２４、Ｓ２５）。その後ＭＣ１０はバス６０を開放させ、デバイスＢに対してＤＤＢ４０−２内のデータ２を、アドレスＤｓｔＡｄｄｒ２に書き込むように命令する（ステップＳ２６）。更にリクエストテーブルを更新する（ステップＳ２６）。
【００８４】
次に時刻ｔ６、ｔ７において調停回路１１は、上記と同様の手法にて、リクエスト命令ＲＥＱ１、ＲＥＱ３を実行して、データ１、データ３をデバイスＡからデバイスＢへと転送する。
【００８５】
以上のようにして、ホストプロセッサ７０によるリクエスト命令ＲＥＱ１〜ＲＥＱ７が完了する。なお、ＤＤＢからデバイスへのデータの書き込みについては説明を省略したが、この処理は各デバイスが任意のタイミングで行えば良い。また複数のデータがＤＤＢに存在する際には、データの書き込みが早いアドレス順に書き込み動作を行えばよい。
【００８６】
上記のように、この発明の第４の実施形態に係るＬＳＩであると、前述した効果（１）乃至（６）と共に、下記（７）の効果を得ることが出来る。
【００８７】
（７）データの転送効率を向上出来る（その５）  
本実施形態に係る構成によれば、ＳＤＢ及びＤＤＢは複数のエントリを備えているので、複数の転送データを保持できる。従ってＭＣ１０は、転送元デバイスによってＳＤＢに読み出された複数のデータの転送順序を入れ換えて最適化出来る。また転送先デバイスは、ＤＤＢに保持される複数のデータを最適な順番で取り込むことが出来る。このようにアウトオブオーダーでのデータ転送が可能となり、転送実行までの待ち時間を減らせるため、転送効率の向上を図ることが出来る。
【００８８】
次にこの発明の第５の実施形態に係る半導体集積回路装置及びデータ転送方法について説明する。本実施形態は上記第１乃至第４の実施形態において、バス６０が全結合型ネットワークの形式を有する場合に係るものである。図２９は本実施形態に係るＬＳＩ１のブロック図である。本実施形態は、バスの構成以外は上記第１乃至第４の実施形態と同様であるので、その説明は省略する。
【００８９】
図示するように、バス６０は全結合型ネットワークの形式を有する。全結合ネットワークとは、デバイスＡ〜Ｄの全ての組み合わせに関する伝達経路の集合のことである。すなわちバス６０は、マルチプレクサ６１−１〜６１−４及びデータ伝送線６２−１〜６２−４を備えている。伝送線６２−１は、ＳＤＢ３０−１の出力をマルチプレクサ６１−１〜６１−４の入力まで伝達する。伝送線６２−２は、ＳＤＢ３０−２の出力をマルチプレクサ６１−１〜６１−４の入力まで伝達する。伝送線６２−３は、ＳＤＢ３０−３の出力をマルチプレクサ６１−１〜６１−４の入力まで伝達する。伝送線６２−４は、ＳＤＢ３０−４の出力をマルチプレクサ６１−１〜６１−４の入力まで伝達する。各伝送線６２−１〜６２−４はそれぞれ独立してデータを転送する。マルチプレクサ６１−１〜６１−４は伝送線６２−１〜６２−４のいずれかを選択し、選択した伝送線により伝達されるデータをそれぞれＤＤＢ４０−１〜４０−４へ出力する。マルチプレクサ６１−１〜６１−４が伝送線６２−１〜６２−４のいずれを選択するかは、ＭＣ１０の調停回路１１によって制御される。
【００９０】
上記構成において、接続されているデバイス数がｎ個の場合、全結合ネットワークによればｎ個のデータの転送が可能である。この時、ある転送元デバイスと転送先デバイスと、それらをつなぐ伝送線とを含む構成は、上記第１乃至第４の実施形態で説明した構成と等価である。従って、上記実施形態が全結合ネットワークにおいても適用出来る。
【００９１】
上記のように本実施形態に係る構成によれば、前述した効果（１）乃至（７）と共に、下記（８）の効果を得ることが出来る。  
（８）データの転送効率を向上出来る（その６）  
本実施形態によれば、全結合ネットワークを用いることにより、伝送線６２−１〜６２−４と同じ数のデータを並列に転送出来る。従って、データの転送効率を向上出来る。なお図２９ではマルチプレクサ６１−１〜６１−４がＭＣ１０によって制御される場合を例に挙げて説明したが、それぞれデバイスＡ〜Ｄによって制御されるものであってもよい。
【００９２】
上記のようにこの発明の第１乃至第５の実施形態によれば、各デバイスに対して転送データを保持できるバッファを設けている。従って、データ転送時のハンドシェイクに要する時間を短縮化でき、データ転送速度を向上出来る。またバスの占有時間を短くできるため、データ転送効率を向上出来る。更に各デバイスがリクエスト命令を複数保持できるメモリを有し、且つバッファに複数のエントリを設けることで、アウトオブオーダーでデータの転送が可能となり、更にデータ転送効率を向上出来る。
【００９３】
図３０は、上記第１乃至第５の実施形態の変形例に係るＬＳＩ１が有するホストプロセッサ７０及びＭＣ１０のブロック図である。図示するように、ホストプロセッサ７０はＭＣ１０に対して、データ転送のリクエスト命令そのものではなく、タスクまたはタスクに関連した情報を送付する。ＭＣ１０はスケジューラ１３を有しており、ホストプロセッサ７０に与えられたタスクを解析し、そのタスクの実行に必要なデータ転送を把握する。そしてその解析結果に基づいてリクエスト命令を作成し、リクエストテーブル１２に登録する。この際スケジューラ１３は、データ転送に順序付けが必要な場合には、その情報を優先順位テーブルとしてリクエストテーブル１２内に登録する。この場合、調停回路１１は優先順位テーブルを参照して、優先度の高いリクエスト命令から順にデータ転送を実行する。このように、リクエスト命令がＭＣ１０内で作成される場合にも、上記実施形態は適用出来る。
【００９４】
また上記実施形態では、デバイスＡ〜Ｄとは別に設けられたＭＣ１０によってデータ転送の制御を行う場合について説明した。しかし、データ転送のためだけにわざわざＭＣ１０を設ける必要はなく、いずれかのデバイスがＭＣ１０の役割を有していても良い。例えば図３１に示すように、デバイスＡ〜Ｅを有するＬＳＩ１において、デバイスＥがＭＣ１０の役割を担っても良い。また、場面に応じて、ＭＣ１０の役割を担うデバイスが替わっても良い。また図３２に示すように、ＳＤＢ及びＤＤＢには例えばｅＤＲＡＭ（embedded DRAM）を用いることが出来る。ＳＤＢ及びＤＤＢは、各デバイスの一部であっても良い。更に、上記実施形態ではＬＳＩに含まれる全てのデバイスがＳＤＢとＤＤＢを保持する場合について説明した。しかし、一部のデバイスのみがＳＤＢとＤＤＢを有する場合であっても効果は得られる。またＳＤＢとＤＤＢのいずれか一方のみを有する場合であっても良い。
【００９５】
更に、第１の実施形態のように転送元デバイスがＳＤＢにデータを書き込んだ後にＭＣ１０からリクエスト命令が出力される場合、リクエストテーブル１２はＳＤＢの情報を有していなくて良く、ＤＤＢに関する情報だけあれば十分である。なぜならリクエスト命令が出力された時点においては、ＳＤＢは必ず使用中のはずだからである。
【００９６】
更に第２乃至第５の実施形態においても、ホストプロセッサ７０からだけでなく、デバイスＡ〜Ｄからリクエスト命令が出力されても良い。また第３、第４の実施形態は、第２の実施形態のようにＭＣ１０がＳＤＢの空き状況をチェックする場合にも当然適用出来る。
【００９７】
なお、上記実施形態で説明したデータ転送装置及び半導体集積回路装置は、例えば画像プロセッサなどに適用できる。図２１は、上記実施形態に係るデータ転送装置を備えた画像描画プロセッサシステムＬＳＩのブロック図である。
【００９８】
図示するように、本実施形態に係る画像描画プロセッサシステムＬＳＩ２は、ホストプロセッサ３、Ｉ／Ｏプロセッサ４、メインメモリ５、及びグラフィックプロセッサ６を備えている。ホストプロセッサ３とグラフィックプロセッサ６とは、プロセッサバスＢＵＳによって、相互に通信可能に接続されている。
【００９９】
ホストプロセッサ３は、メインプロセッサ８０、Ｉ／Ｏ部８１〜８３、及び複数の信号処理部（ＤＳＰ：Digital Signal Processor）８４を備えている。これらの回路ブロックは、ローカルネットワークＬＮ１によって相互に通信可能に接続されている。メインプロセッサ８０は、ホストプロセッサ３内の各回路ブロックの動作を制御する。Ｉ／Ｏ部８１は、Ｉ／Ｏプロセッサ４を介してホストプロセッサ３外部とデータの授受を行う。Ｉ／Ｏ部８２は、メインメモリ５との間でデータの授受を行う。Ｉ／Ｏ部８３は、プロセッサバスＢＵＳを介してグラフィックプロセッサ６との間でデータの授受を行う。信号処理部８４は、メインメモリ５や外部から読み込んだデータに基づいて信号処理を行う。
【０１００】
Ｉ／Ｏプロセッサ４は、ホストプロセッサ３と、例えば汎用バス、ＨＤＤやＤＶＤ（Digital Versatile Disc）ドライブ等の周辺機器並びにネットワークとを接続する。この際、ＨＤＤやＤＶＤドライブは、ＬＳＩ２に搭載されているものでも良いし、またはＬＳＩ２外部に設けられていても良い。
【０１０１】
メインメモリ５は、ホストプロセッサ３が動作するために必要なプログラムを保持する。このプログラムは、例えば図示せぬＨＤＤ等から読み出されて、メインメモリ５に格納される。
【０１０２】
グラフィックプロセッサ６は、ＭＣ９０、Ｉ／Ｏ部９１、９２、及び演算処理部９３を備えている。ＤＭＡＣ９０は、上記第１乃至第５の実施形態で説明したＤＭＡＣ１０である。Ｉ／Ｏ部９１は、プロセッサバスＢＵＳを介したホストプロセッサ３との間の入出力を司る。Ｉ／Ｏ部９２は、ＰＣＩ等の各種汎用バス、ビデオ及びオーディオ、更に外部メモリ等との入出力を司る。演算処理部９３は、画像処理演算を行う。
【０１０３】
演算処理部９３はラスタライザ（rasterizer）９４、複数のピクセルシェーダ（pixel shader）９５−０〜９５−３、及びパケットマネジメントユニット（packet management unit）９６を備えている。なお、本実施形態ではピクセルシェーダ９５の数は４個であるがこれは一例に過ぎず、８個、１６個、３２個等でも良く、その数は限定されるものではない。
【０１０４】
ラスタライザ９４は、入力された図形情報に従ってピクセル（pixel）を生成する。ピクセルとは、所定の図形を描画する際に取り扱われる最小単位の領域のことであり、ピクセルの集合によって図形が描画される。生成されたピクセルはピクセルシェーダ９５−０〜９５−３へ投入される。ピクセルシェーダ９５−０〜９５−３は、ラスタライザ９４から投入されたピクセルにつき演算処理を行い、リアライズメモリ上に画像データを生成する。パケットマネジメントユニット９６は、ピクセルシェーダ９５−０〜９５−３毎に設けられたリアライズメモリ（realize memory）を備えている。リアライズメモリは、例えば互いに同一の半導体基板上に形成されたｅＤＲＡＭであり、それぞれピクセルシェーダ９５−０〜９４−３で描画されたピクセルデータを記憶する。ＤＭＡＣ９０、Ｉ／Ｏ部９１、９２、ラスタライザ９４、及びパケットマネジメントユニット９６は、ローカルネットワークＬＮ２により相互に通信可能に接続されている。
【０１０５】
上記構成において、リアライズメモリに格納されたピクセルデータは、Ｉ／Ｏ部９２が保持するＦＩＦＯに転送され、外部に出力される。ＭＣ９０は、リアライズメモリとＩ／Ｏ部９２のＦＩＦＯとの間のデータ転送を、上記第１乃至第５の実施形態で説明した方法によって制御する。すなわち、ＭＣ９０が上記実施形態におけるＭＣ１０に相当する。画像描画装置は扱うデータ量が膨大であるため、上記実施形態で説明した方法が特に有効である。また演算処理部９３内にＭＣ１０が設けられても良い。この場合、ＭＣ１０はラスタライザ９４とピクセルシェーダ９５−０〜９５−３との間のデータ転送、及びピクセルシェーダ９５−０〜９５−３とリアライズメモリとの間のデータ転送を制御する。
【０１０６】
すなわち、この発明の実施形態に係る半導体集積回路装置は、  
１．第１半導体装置と第２半導体装置とを具備し、前記第１、第２半導体装置間でデータの授受を行う半導体集積回路装置であって、各々がデータ保持可能な第１、第２バッファ回路と、  
前記第１、第２バッファ回路間において前記データを伝送するデータバスと、  
前記データ転送時において、前記第１バッファ回路に空き領域がある場合に、記転送データを前記第１バッファ回路へ読み出す前記第１半導体装置と、  
前記データ転送時において、前記第２バッファ回路に空き領域がある場合に、前記データバスを介して前記第１バッファ回路内の前記転送データを前記第２バッファ回路に転送する制御回路と、  
前記第２バッファ回路内に転送された前記転送データを読み出す前記第２半導体装置とを具備し、前記制御回路は前記第１半導体装置が前記転送データを前記第１バッファ回路へ書き込んだ後に前記データバスの使用権を取得し、前記転送データを前記第２バッファ回路に転送した後に前記データバスの使用権を放棄する。  
２．複数の半導体装置を備えた半導体集積回路装置であって、各々の前記半導体装置毎に設けられ、対応する前記半導体装置がデータの転送元となる場合に、該半導体装置から転送データが読み出される第１バッファ回路と、  
各々の前記半導体装置毎に設けられ、対応する前記半導体装置がデータの転送先となる場合に、前記転送データが転送されて書き込まれる第２バッファ回路と、  
前記半導体装置間において前記転送データを伝送するデータバスと、  
前記第１バッファ回路へ前記転送データが読み出された際に前記データバスの使用権を取得し、前記転送データを前記転送先となる前記半導体装置に対応する前記第２バッファ回路に前記データバスを介して転送し、該転送後に前記データバスの使用権を放棄する制御回路とを具備する。  
３．上記２において、データ転送時において、前記制御回路は前記第１バッファ回路への前記転送データの読み出し要求命令を、前記転送元となる前記半導体装置に対して出力し、  
前記転送元となる前記半導体装置は前記読み出し要求命令に応答して前記転送データを前記第１バッファ回路へ読み出し、読み出し終了後にアクノリッジ信号を前記制御回路へ返し、  
前記制御回路は前記アクノリッジ信号に応答して、前記データバスの使用権を取得する。  
４．上記２において、前記第１バッファ回路は、各々が前記転送データを保持可能な複数のエントリを備え、  
前記制御回路は、前記第１バッファ回路に格納された順番とは異なる順序で前記転送データを前記第２バッファ回路へ転送する。  
またこの発明の実施形態に係るデータ転送方法は、
５．データバスによって接続された第１、第２半導体装置間におけるデータ転送方法であって、転送元となる前記第１半導体装置が転送データを第１バッファ回路へ読み出すステップと、  
前記転送データが前記第１バッファ回路へ読み出されたことを確認して、制御回路が前記データバスの使用権を取得するステップと、  
前記制御回路が前記第１バッファ回路内の前記転送データを、前記データバスを介して第２バッファ回路に転送するステップと、  
前記転送データの転送の後、前記制御回路が前記データバスの使用権を放棄するステップと、  
前記第２半導体装置が前記第２バッファ回路に転送された前記転送データを読み出すステップとを具備する。  
更に半導体集積回路装置は、  
６．上記２において、前記転送元となる前記半導体装置は、前記転送データを前記第１バッファ回路へ書き込んだ際に、前記転送先となる前記半導体装置への該転送データの転送要求命令を前記制御回路へ出力し、  
前記制御回路は前記転送要求命令に従って、前記転送データを前記転送先となる前記半導体装置に転送する。  
７．上記３において、前記制御回路は、前記転送元となる前記半導体装置に対応した前記第１バッファ回路に空き領域がある場合に、前記読み出し要求命令を該半導体装置へ出力する。  
８．上記３または６において、前記制御回路は、前記転送先となる前記半導体装置に対応した前記第２バッファ回路に空き領域がある場合に、前記転送データを該第２バッファ回路へ転送する。  
９．上記４において、前記制御回路は、前記転送先となる前記半導体装置に対応した前記第２バッファ回路に空き領域がある前記転送データを、優先的に前記第２バッファ回路へ転送する。  
１０．上記２において、前記転送先となる前記半導体装置は、対応する前記第２バッファ回路に前記転送データが書き込まれた後に、該転送データを読み出す。  
１１．上記１０において、前記第２バッファ回路は、各々が前記転送データを保持可能な複数のエントリを備え、  
前記転送元となる前記半導体装置は、前記第２バッファ回路に格納された順番とは異なる順序で前記転送データを前記読み出す。  
１２．上記３において、前記転送元となる前記半導体装置は、複数の前記読み出し要求命令を保持可能であり、  
前記転送元となる前記半導体装置は、前記読み出し要求命令を受信した順番とは異なる順序で、前記転送データを前記第１バッファ回路へ読み出す。  
１３．上記２において、前記制御回路は、前記転送元となる前記半導体装置の前記第１バッファ回路の空き状況と、前記転送先となる前記半導体装置の前記第２バッファ回路の空き状況とを保持したリクエストテーブルと、  
前記リクエストテーブルの情報に従って、いずれの前記半導体装置間におけるデータ転送を実行するかを決定する調停回路とを備える。  
１４．上記２において、前記データバスは、前記半導体装置間の全ての組み合わせに関する伝送線を有する全結合ネットワーク形式を有する。  
１５．上記１５において、前記第１、第２バッファ回路は、埋め込み型のＤＲＡＭにより形成される。  
更に上記データ転送方法において、  
１６．上記５において、前記制御回路が前記データバスの使用権を取得し、前記転送データを前記第２バッファ回路へ転送している間、前記転送元となる前記第１半導体装置は、次に転送すべき前記転送データを前記第１バッファ回路へ読み出す。  
１７．上記１６において、前記第２半導体装置が前記転送データを読み出している間、前記制御回路は次に転送すべき前記転送データについて前記データバスの使用権を取得し、前記第２バッファ回路へ該転送データを転送する。  
１８．上記５において、前記第１バッファ回路の空き状況を確認するステップと、  
前記第２バッファ回路の空き状況を確認するステップとを具備し、前記第１バッファ回路に空きがある場合に、前記第１半導体装置は前記転送データを前記第１バッファへ読み出し、  
前記第２バッファ回路に空きがある場合に、前記第２半導体装置は前記第２バッファ回路から前記転送データを読み出す。  
１９．上記１８において、前記第１バッファ回路の前記空き状況をリクエストテーブルに保持させるステップと、  
前記第２バッファ回路の前記空き状況を前記リクエストテーブルに保持させるステップとを更に備え、前記制御回路は、前記リクエストテーブル内の情報に基づいて、前記第１バッファ回路への前記転送データの読み出し、及び前記第２バッファ回路からの前記転送データの読み出しを、それぞれ前記第１、第２半導体装置へ命令する。
【０１０７】
なお、本願発明は上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。
【図面の簡単な説明】
【０１０８】
【図１】この発明の第１の実施形態に係る半導体集積回路装置のブロック図。
【図２】この発明の第１の実施形態に係るマスターコントローラの備えるリクエストテーブルの概念図。
【図３】この発明の第１の実施形態に係る半導体集積回路装置によるデータ転送方法のフローチャート。
【図４】この発明の第１の実施形態に係る半導体集積回路装置のブロック図。
【図５】この発明の第１の実施形態に係るマスターコントローラの備えるリクエストテーブルの概念図。
【図６】この発明の第１の実施形態に係る半導体集積回路装置のブロック図。
【図７】この発明の第１の実施形態に係る半導体集積回路装置のブロック図。
【図８】この発明の第１の実施形態に係る半導体集積回路装置によるデータ転送の様子を示すタイミングチャート。
【図９】この発明の第１の実施形態に係る半導体集積回路装置によるデータ転送、及びＤＭＡ転送の様子を示すタイミングチャート。
【図１０】この発明の第１の実施形態に係る半導体集積回路装置によるデータ転送の様子を示すタイミングチャート。
【図１１】この発明の第２の実施形態に係る半導体集積回路装置のブロック図。
【図１２】この発明の第２の実施形態に係る半導体集積回路装置によるデータ転送方法のフローチャート。
【図１３】この発明の第２の実施形態に係る半導体集積回路装置のブロック図。
【図１４】この発明の第３の実施形態に係る半導体集積回路装置の備えるマスターコントローラのブロック図。
【図１５】この発明の第３の実施形態に係る半導体集積回路装置によるデータ転送方法のフローチャート。
【図１６】この発明の第４の実施形態に係る半導体集積回路装置の備えるマスターコントローラ、ソースデータバッファ、及びデスティネーションデータバッファのブロック図。
【図１７】この発明の第４の実施形態に係るマスターコントローラの備えるリクエストテーブルの概念図。
【図１８】この発明の第４の実施形態に係る半導体集積回路装置のブロック図。
【図１９】この発明の第４の実施形態に係る半導体集積回路装置によるデータ転送の様子を示すタイミングチャート。
【図２０】この発明の第４の実施形態に係る半導体集積回路装置のブロック図。
【図２１】この発明の第４の実施形態に係る半導体集積回路装置のブロック図。
【図２２】この発明の第４の実施形態に係るマスターコントローラの備えるリクエストテーブルの概念図。
【図２３】この発明の第４の実施形態に係る半導体集積回路装置のブロック図。
【図２４】この発明の第４の実施形態に係るマスターコントローラの備えるリクエストテーブルの概念図。
【図２５】この発明の第４の実施形態に係る半導体集積回路装置のブロック図。
【図２６】この発明の第４の実施形態に係るマスターコントローラの備えるリクエストテーブルの概念図。
【図２７】この発明の第４の実施形態に係る半導体集積回路装置のブロック図。
【図２８】この発明の第４の実施形態に係るマスターコントローラの備えるリクエストテーブルの概念図。
【図２９】この発明の第５の実施形態に係る半導体集積回路装置のブロック図。
【図３０】この発明の第１乃至第５の実施形態の第１変形例に係る半導体集積回路装置の備えるホストプロセッサ及びマスターコントローラのブロック図。
【図３１】この発明の第１乃至第５の実施形態の第２変形例に係る半導体集積回路装置のブロック図。
【図３２】この発明の第１乃至第５の実施形態の第３変形例に係る半導体集積回路装置のブロック図。
【図３３】この発明の第１乃至第５の実施形態に係る半導体集積回路装置を備えた画像描画システムＬＳＩのブロック図。
【符号の説明】
【０１０９】
１、２…ＬＳＩ、３…ホストプロセッサ、４…Ｉ／Ｏプロセッサ、５、７３…メインメモリ、６…グラフィックプロセッサ、１０…マスターコントローラ、１１…調停回路、１２…リクエストテーブル、１３…スケジューラ、２０−１〜２１−３…デバイス、２１…メモリ、３０−１〜３０−４…ソースデータバッファ、４０−１〜４０−４…デスティネーションデータバッファ、５０…バスコントローラ、６０…バス、６１−１〜６１−４…マルチプレクサ、６２−１〜６２−４…伝送線、７０…ホストプロセッサ、８１〜８３、９１、９２…入出力回路、８０…メインプロセッサ、８４…信号処理部、９４…ラスタライザ、９５−０〜９５−３…ピクセルシェーダ、９６…パケットマネジメントユニット
【図１】
2006313479.tif 000003
【図２】
2006313479.tif 000004
【図３】
2006313479.tif 000005
【図４】
2006313479.tif 000006
【図５】
2006313479.tif 000007
【図６】
2006313479.tif 000008
【図７】
2006313479.tif 000009
【図８】
2006313479.tif 000010
【図９】
2006313479.tif 000011
【図１０】
2006313479.tif 000012
【図１１】
2006313479.tif 000013
【図１２】
2006313479.tif 000014
【図１３】
2006313479.tif 000015
【図１４】
2006313479.tif 000016
【図１５】
2006313479.tif 000017
【図１６】
2006313479.tif 000018
【図１７】
2006313479.tif 000019
【図１８】
2006313479.tif 000020
【図１９】
2006313479.tif 000021
【図２０】
2006313479.tif 000022
【図２１】
2006313479.tif 000023
【図２２】
2006313479.tif 000024
【図２３】
2006313479.tif 000025
【図２４】
2006313479.tif 000026
【図２５】
2006313479.tif 000027
【図２６】
2006313479.tif 000028
【図２７】
2006313479.tif 000029
【図２８】
2006313479.tif 000030
【図２９】
2006313479.tif 000031
【図３０】
2006313479.tif 000032
【図３１】
2006313479.tif 000033
【図３２】
2006313479.tif 000034
【図３３】
2006313479.tif 000035