(57)【要約】【課題】バスの多重化によらず所望のデータ転送特性を保証してデータ転送の多重化が可能なデータ処理装置を提供する。【解決手段】複数のプロセッサやメモリ等の複数の転送要素回路（１０１〜１０５）を相互に接続する転送経路（３００）と、前記転送経路におけるデータ転送を制御する調停回路（４００）と、データ転送の優先度及び最低保証帯域を規定する制御レジスタを備え、前記調停回路は複数のデータ転送元から送出されるデータパケットをサブ単位に分解し、制御レジスタに格納された優先度及び最低保証帯域に基づき、データ転送先を共通にする複数のデータパケットを再構成する。これにより、再構成された一つのデータパケットには優先度の異なる転送元からの複数のデータパケットのサブ単位を含めることができ、そこに含まれるサブ単位のデータ量にはデータ転送の最低保障帯域を満足させることができスループットを向上させることができる。【選択図】図５
2008171232.tif 000002
【特許請求の範囲】
【請求項１】
データの転送を行うことが可能な複数の転送要素回路と、前記転送要素回路間でのデータパケットの転送に利用される転送経路と、前記転送経路におけるデータ転送を制御する調停回路とを有し、
前記調停回路は、転送元の転送要素回路から出力されるデータパケットをサブ単位に分解し、データ転送先を共通にする複数のデータパケットに対して転送優先度が高い順に転送保証すべき数のサブ単位を含めるように別のデータパケットを再構成し、再構成したデータパケットを転送先の転送要素回路に送り出すことが可能なデータ処理装置。
【請求項２】
前記夫々の転送要素回路の前記転送優先度と前記転送保証すべきサブ単位数とを規定するための記憶回路を有し、
前記調停回路は、分解されたサブ単位が属するデータパケットの出力元である転送要素回路に対応する前記転送優先度と前記転送保証すべきサブ単位数とを前記記憶回路から参照する請求項１記載のデータ処理装置。
【請求項３】
前記記憶回路は書き換え可能な制御レジスタである請求項２記載のデータ処理装置。
【請求項４】
前記転送経路は前記転送要素回路から前記調停回路への転送経路と前記調停回路から前記転送要素回路への転送経路を前記転送要素回路毎に別々に有し、
前記調停回路は前記転送要素回路から転送経路に出力されるデータパケットを入力して転送先の転送要素回路別に保持する入力バッファと、入力バッファ毎に保持された複数のデータパケットのサブ単位を、これに対応する前記前記転送優先度と前記転送保証すべきサブ単位数とを参照して別のデータパケットに再構成するパケット再構成ユニットと、転送先別に再構成されたデータパケットを保持して転送先に並列出力可能な出力バッファとを有する請求項１記載のデータ処理装置。
【請求項５】
前記入力バッファは転送要素回路別に夫々複数のデータパケットを保持することができ、
前記パケット再構成ユニットは、前記入力バッファが保持する転送先を共通にするデータパケットに対して前記優先度が高い順に前記転送保証すべきサブ単位数を満足するようにデータパケットの再構成を行う請求項４記載のデータ処理装置。
【請求項６】
前記パケット再構成ユニットは、再構成されるデータパケットにサブ単位の未割り当てフィールドがあるとき、当該未割り当てフィールドに、前記入力バッファによる保持時間が最も長いデータパケットのサブ単位を含める請求項５記載のデータ処理装置。
【請求項７】
前記入力バッファは複数のデータパケットをＦＩＦＯ形式で保持する請求項６記載のデータ処理装置。
【請求項８】
データ転送を行うことが可能な複数の転送要素回路と、前記転送要素回路間でのデータ転送に利用される転送経路と、前記転送経路におけるデータ転送を制御する調停回路とを有し、
前記調停回路は、前記転送要素回路から入力したデータパケットをサブ単位に分解し、転送先を共通にする複数のデータパケットに対してデータ転送の優先度が高い順に所要の転送データ量を満足する数のサブ単位を含めるようにデータパケットを再構成し、再構成したデータパケットを転送先の転送要素回路に送り出すことが可能なデータ処理装置。
【請求項９】
前記夫々の転送要素回路について前記優先度と前記転送データ量とを規定するための記憶回路を有し、
前記調停回路は、分解されたサブ単位が属するデータパケットの出力元である転送要素回路に対応する前記優先度と前記転送データ量とを前記記憶回路から参照する請求項８記載のデータ処理装置。
【請求項１０】
前記記憶回路は書き換え可能な制御レジスタである請求項９記載のデータ処理装置。
【請求項１１】
前記転送経路は前記転送要素回路から前記調停回路への転送経路と前記調停回路から前記転送要素回路への転送経路を前記転送要素回路毎に別々に有し、
前記調停回路は前記転送要素回路から転送経路に出力されるデータパケットを入力して転送先の転送要素回路別に保持する入力バッファと、入力バッファ毎に保持された複数のデータパケットのサブ単位を、これに対応する前記前記優先度と前記転送データ量とを参照して別のデータパケットに再構成するパケット再構成ユニットと、転送先別に再構成されたデータパケットを保持して転送先に並列出力可能な出力バッファとを有する請求項８記載のデータ処理装置。
【請求項１２】
前記調停回路は、再構成されるデータパケットにサブ単位の未割り当てフィールドがあるとき、当該未割り当てフィールドに、転送先を共通にする複数のデータパケットの中で前記調停回路による保持時間が最も長いデータパケットのサブ単位を含める請求項８記載のデータ処理装置。
【請求項１３】
前記調停回路は複数のデータパケットをＦＩＦＯ形式で保持する請求項１２記載のデータ処理装置。
【請求項１４】
前記転送要素回路は、バスマスタ又はバススレーブとして機能する回路と、前記回路を前記転送経路に接続するためのインタフェース回路とを有する請求項１３記載のデータ処理装置。
【請求項１５】
データ転送を行うことが可能な複数の転送要素回路と、前記転送要素回路間でのデータ転送に利用される転送経路と、前記転送経路におけるデータ転送を制御する調停回路とを有し、
前記調停回路は、前記転送要素回路から入力したデータをサブ単位に分解し、転送先を共通にする複数のデータに対して情報転送の優先度が高い順に最低保証転送スループットを満足する数のサブ単位を含めるようにデータを再構成し、再構成したデータを転送先の転送要素回路に送り出すことが可能な半導体集積回路。
【請求項１６】
前記調停回路は、再構成されるデータにサブ単位の未割り当てフィールドがあるとき、当該未割り当てフィールドに、転送先を共通にする複数のデータの中で前記調停回路による保持時間が最も長いデータのサブ単位を含める請求項１５記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理装置に関し、例えば、複数プロセッサ間でリアルタイム性の高いデータ転送を多数並列に実行するマルチプロセッサ接続バスを備えた半導体集積回路に適用して有効な技術に関する。
【背景技術】
【０００２】
近年、画像・音声などのマルチメディア処理機能や、有線および無線通信機能を内蔵したディジタル多用途ディスク（ＤＶＤ）レコーダ等のディジタル機器が広く一般的に利用されるようになってきている。これらの機器においては、コーデック処理、無線プロトコル処理、ユーザインタフェース処理など、リアルタイム性の高い複数のタスクを同時に処理することが求められる。このため、上記の機器を制御するデータ処理装置は、通常複数のＣＰＵ（中央処理装置）、ＤＳＰ（ディジタル信号処理プロセッサ）、所定の処理を実行するハードウェアアクセラレータなどをオンチップバスにより相互接続したシステムＬＳＩとして実現される。
【０００３】
高速オンチップバスの一つの形態としては、時間軸に沿ったデータ転送の多重化に着目し、バストランザクションを適切にパイプライン化したスプリットバストランザクション・ノンブロッキング型バスが公知である。この種のバス構成について記載された文献として例えば特許文献１がある。
【０００４】
しかしながら、このタイプのバスでは一般的にデータ転送スループットについては比較的容易に管理できるのに対し、リアルタイム性に直結する転送レイテンシの保証が困難である。このため、データ転送の優先度に応じて割り当てる複数セットのオンチップバスを備えることにより空間方向でデータ転送の多重化を図るなど、ハードウェア規模の大幅な増大を伴う設計が求められていた。
【０００５】
【特許文献１】特表２００４−５３０１９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記のように、転送レイテンシなどのデータ転送特性を保証する目的でオンチップバスを多重化することは、ハードウェア規模の増大によるデータ転送効率の低下、消費電力やチップコストの増加といった問題を生じさせる。
【０００７】
本発明の目的は、バスの多重化によらず所望のデータ転送特性を保証してデータ転送の多重化が可能なデータ処理装置を提供することにある。
【０００８】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１０】
すなわち、データ処理装置は、複数のプロセッサやメモリ等の複数の転送要素回路を相互に接続するマルチプロセッサ接続バスのような転送経路と、前記転送経路におけるデータ転送を制御する調停回路と、データ転送の優先度及び最低保証帯域を規定する制御レジスタを備え、前記調停回路は複数のデータ転送元から送出されるデータパケットをサブ単位に分解し、制御レジスタに格納された優先度及び最低保証帯域に基づき、データ転送先を共通にする複数のデータパケットを再構成する。これにより、再構成された一つのデータパケットには優先度の異なる転送元からの複数のデータパケットのサブ単位を含めることができ、そこに含まれるサブ単位のデータ量にはデータ転送の最低保障帯域を満足させることができる。したがって、転送経路を多重化するようなハードウェアの増大を伴わずに、データ転送のリアルタイム性を保証しつつ、データ転送ごとに要求される最小スループットを満足させることができる。
【発明の効果】
【００１１】
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。
【００１２】
すなわち、ハードウェア規模を大幅に増大させることなく、所望のデータ転送特性を保証してデータ転送の多重化が可能なデータ処理装置を実現することができる。
【発明を実施するための最良の形態】
【００１３】
１．代表的な実施の形態
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１４】
〔１〕本発明の代表的な実施の形態に係るデータ処理装置（１００）は、データの転送を行うことが可能な複数の転送要素回路（１０１〜１０５）と、前記転送要素回路間でのデータパケットの転送に利用される転送経路（３００）と、前記転送経路におけるデータ転送を制御する調停回路（４００）とを有する。前記調停回路は、転送元の転送要素回路から出力されるデータパケットをサブ単位に分解し、データ転送先を共通にする複数のデータパケットに対して転送優先度が高い順に転送保証すべき数のサブ単位を含めるように別のデータパケットを再構成し、再構成したデータパケットを転送先の転送要素回路に送り出すことを可能とする。これにより、再構成された一つのデータパケットには優先度の異なる転送元からの複数のデータパケットのサブ単位を含めることができ、そこに含まれるサブ単位の数には、転送元からのデータパケット毎に転送保証すべき数を満足させることができる。したがって、転送経路を多重化するようなハードウェアの増大を伴わずに、データ転送のリアルタイム性を保証しつつ、データ転送ごとに要求される最小スループットを満足させることができる。
【００１５】
一つの具体的な形態として、前記夫々の転送要素回路の前記転送優先度と前記転送保証すべきサブ単位数とを規定するための記憶回路（４２８）を有する。前記調停回路は、分解されたサブ単位が属するデータパケットの出力元である転送要素回路に対応する前記転送優先度と前記転送保証すべきサブ単位数とを前記記憶回路から参照する。前記記憶回路は例えば書き換え可能な制御レジスタ（４２８A、４２８B）である。転送要素回路を用いたデータ処理の内容に則して前記転送優先度及び前記転送保証すべきサブ単位数をプログラマブルに変更することにより、融通性の高いデータ転送制御が可能になる。
【００１６】
別の具体的な形態として、前記転送経路は前記転送要素回路から前記調停回路への転送経路（３１０，３５０，３４０，３７０）と前記調停回路から前記転送要素回路への転送経路（３２０，３３０，３６０）を前記転送要素回路毎に別々に有する。前記調停回路は入力バッファ（４１１）、パケット再構成ユニット（４２１）及び出力バッファ（４４１）を有する。入力バッファは前記転送要素回路から転送経路に出力されるデータパケットを入力して転送先の転送要素回路別に保持する。パケット再構成ユニットは、入力バッファ毎に保持された複数のデータパケットのサブ単位を、これに対応する前記転送優先度と前記転送保証すべきサブ単位数とを参照して別のデータパケットに再構成する。出力バッファは転送先別に再構成されたデータパケットを保持して転送先に並列出力可能とする。これにより、調停回路は、複数の転送元から出力される複数のデータパケットを並列に受けることができ、また、転送先別の前記再構成したデータパケットを複数の転送先に並列に転送することが可能になるから、更にデータ転送の多重化を促進することができる。
【００１７】
更に具体的な形態として、前記入力バッファは転送要素回路別に夫々複数のデータパケットを保持することができる。前記パケット再構成ユニットは、前記入力バッファが保持する転送先を共通にするデータパケットに対して前記優先度が高い順に前記転送保証すべきサブ単位数を満足するようにデータパケットの再構成を行う。
【００１８】
更に具体的な形態として、前記パケット再構成ユニットは、再構成されるデータパケットにサブ単位の未割り当てフィールドがあるとき、当該未割り当てフィールドに、前記入力バッファによる保持時間が最も長いデータパケットのサブ単位を含める。再構成されるデータパケットに無駄がないようにすることができる。前記入力バッファには複数のデータパケットをＦＩＦＯ形式で保持する構造を採用すれば、保持時間の最も長いデータパケットを容易に抽出することができる。
【００１９】
〔２〕別の観点によるデータ処理装置は、上記同様に複数の転送要素回路、転送経路及び調停回路を有するが、その調停回路（４００）は、前記転送要素回路から入力したデータパケットをサブ単位に分解し、転送先を共通にする複数のデータパケットに対してデータ転送の優先度が高い順に所要の転送データ量を満足する数のサブ単位を含めるようにデータパケットを再構成し、再構成したデータパケットを転送先の転送要素回路に送り出すことを可能とする。これにより、転送経路を多重化するようなハードウェアの増大を伴わずに、データ転送のリアルタイム性を保証しつつ、データ転送ごとに要求される最小スループットを満足させることができる。
【００２０】
一つの具体的な形態として、前記転送要素回路は、プロセッサ等のバスマスタ又はメモリ等のバススレーブとして機能する回路と、前記回路を前記転送経路に接続するためのインタフェース回路とを有する。インタフェース回路により個々の前記回路と転送経路とのインタフェース仕様の相違を吸収することができる。
【００２１】
〔３〕別の観点によるデータ処理装置は、上記同様に複数の転送要素回路、転送経路及び調停回路を有するが、その調停回路（４００）は、前記転送要素回路から入力したデータをサブ単位に分解し、転送先を共通にする複数のデータに対して情報転送の優先度が高い順に最低保証転送スループットを満足する数のサブ単位を含めるようにデータを再構成し、再構成したデータを転送先の転送要素回路に送り出すことを可能とする。これにより、転送経路を多重化するようなハードウェアの増大を伴わずに、データ転送のリアルタイム性を保証しつつ、データ転送ごとに要求される最小スループットを満足させることができる。
【００２２】
２．実施の形態の説明
次に、実施の形態について更に詳述する。特に制限されないが、以下で説明するデータ処理装置を構成する回路素子は、公知のＣＭＯＳトランジスタやバイポーラトランジスタ等の半導体集積回路技術によって、単結晶シリコンのような１個の半導体基板上に形成される。
【００２３】
図１には本発明によるデータ処理装置の一例が示される。データ処理装置１００は、例えばそれぞれ所定の演算処理を実行する複数のプロセッサ（ＰＲＣ１〜ＰＲＣ３）２００、ＤＭＡコントローラ（ＤＭＡＣ）等の機能モジュール２０１、主メモリ（ＭＥＭ）２０２を有する。それらの間で生じるデータ転送には転送経路としてマルチプロセッサ接続バス（ＢＵＳ）３００が利用される。バスマスタとして代表的に示されたプロセッサ（ＰＲＣ１〜ＰＲＣ３）２００、ＤＭＡコントローラ（ＤＭＡＣ）２０１はそれぞれイニシエータインタフェース（ＳＩＦ１〜ＳＩＦ４）２１０を介してマルチプロセッサ接続バス（ＢＵＳ）３００に接続される。バススレーブとして代表的に示された主メモリ２０２は、ターゲットインタフェース（ＴＩＦ１）２２０を介してマルチプロセッサ接続バス３００に接続される。マルチプロセッサ接続バス３００におけるデータ転送は調停回路としてのバスアービタ（ＡＲＢ）４００が制御する。
【００２４】
特に制限されないが、図１に示されるマルチプロセッサ接続バス３００はイニシエータインタフェース２１０とターゲットインタフェース２２０毎に経路が分離されている。図１においてマルチプロセッサ接続バス３００の参照符号には接続先を意味するサフィックスを付記することにより前記分離された経路を区別している。一つのプロセッサ（ＰＲＣ１〜ＰＲＣ３）２００と対応するイニシエータインタフェース（ＳＩＦ１〜ＳＩＦ３）２１０のペア、ＤＭＡコントローラ（ＤＭＡＣ）と対応するイニシエータインタフェース（ＳＩＦ４）２１０のペア、主メモリ２０２とターゲットインタフェース（ＴＩＦ１）２２０とのペアの夫々は一つの転送要素回路１０１〜１０５とみなされる。
【００２５】
図２には一つのイニシエータインタフェース（ＳＩＦ１）２１０の具体例が示される。イニシエータインタフェース２１０は、トランザクション制御部（ＳＣＴＬ）２１２、パケット生成部（ＰＣＭＰ）２１３、パケット分解部（ＰＤＥＣ）２１４を有する。トランザクション制御部２１２は内部制御信号２１５，２１６によりパケット生成部２１３及びパケット分解部２１４を制御し、マルチプロセッサ接続バス３００＿ＳＦＩ１からのデータパケットを分解してプロセッサ側インタフェース経路２１１＿ＳＩＦ１へ供給し、また、プロセッサ側インタフェース経路２１１＿ＳＦＩ１から供給されるデータからデータパケットを生成してマルチプロセッサ接続バス３００＿ＳＦＩ１に送出する。プロセッサ側インタフェース経路２１１の参照符号に付されたサフィックスは接続先を意味する。
【００２６】
より具体的には、イニシエータインタフェース（ＳＩＦ１）２１０は、マルチプロセッサ接続バス３００のバス状態信号３３０、プロセッサ側インタフェース経路２１１から入力されるデータ送信制御信号２１７の内容に基づき、内部制御信号２１５により制御されるパケット生成部２１３を介して所定のフォーマットをもつデータパケットを生成し、送信バス３１０に対して送出する。また、受信バス３２０から所定のフォーマットをもつデータパケットが入力されると、内部制御信号２１６により制御されるパケット分解部２１４は入力パケットをアクセスアドレス、ストアデータ、ロードデータ、ストア要求、ロード要求を含む所定の信号に変換し、１つ以上のデータ受信制御信号２１８、２１９として出力する。さらに望ましくは、当該イニシエータインタフェース２１０の動作状態が内部状態信号３４０によりバスアービタ４００へ出力される。バスアービタ４００はイニシエータインタフェース２１０がパケット分解部２１４を用いて信号２１８、２１９の出力動作中であるか否か等を内部状態信号３４０によって判定する。信号２１８，２１９の出力動作中でなければバスアービタ４００は受信バス３２０からパケット分解部２１４にデータパケットの供給が可能になる。前記バス状態信号３３０はバスアービタ４００がバス３００を介して新たなデータパケットを受け入れ可能であるか否かを示す信号であり、受け入れ可能であればイニシエータインタフェース２１０は送信バス３１０にデータパケットを出力する。また特に制限されないが、イニシエータインタフェース２１０には前記バス状態信号３３０が所定の状態の場合に当該イニシエータインタフェース２１０が最後に出力したデータパケットを送信バス３１０に再出力する機能を備える。特に図示はしないが他のイニシエータインタフェース（ＳＩＦ２〜ＳＩＦ４）２１０も同様に構成される。
【００２７】
図３にはターゲットインタフェース（ＴＩＦ１）２２０の具体例が示される。ターゲットインタフェース２２０は、トランザクション制御部（ＴＣＴＬ）２２２、パケット生成部（ＰＣＭＰ）２２３、パケット分解部（ＰＤＥＣ）２１４を有する。トランザクション制御部２２２は内部制御信号２２５、２２６によりパケット生成部２２３及びパケット分解部２１４を制御し、マルチプロセッサ接続バス３００＿ＴＩＦ１からのデータパケットを分解してメモリ側インタフェース経路２２１へ供給し、また、メモリ側インタフェース経路２２１から供給されるデータからデータパケットを生成してマルチプロセッサ接続バス３００＿ＴＩＦ１に送出する。
【００２８】
より具体的には、ターゲットインタフェース２２０は、メモリ側インタフェース経路２２１から入力されるデータ送信制御信号２２７の内容に基づき、内部制御信号２２５により制御されるパケット生成部２２３を介して所定のフォーマットをもつデータパケットを生成し、送信バス３５０に対して送出する。また、受信バス３６０から所定のフォーマットをもつデータパケットが入力されると、内部制御信号２２６により制御されるパケット分解部２２４は入力パケットをアクセスアドレス、ストアデータ、ロードデータ、ストア要求、ロード要求を含む所定の信号に変換し、１つ以上のデータ受信制御信号２２８、２２９として出力する。さらに望ましくは、当該ターゲットインタフェース２２０の動作状態が内部状態信号３７０としてバスアービタ４００に出力される。バスアービタ４００はターゲットインタフェース２２０がパケット分解部２２４を用いて信号２２８，２２９の出力動作中であるか否か等を内部状態信号３７０によって判定する。信号２２８，２２９の出力動作中でなければバスアービタ４００は受信バス３６０からパケット分解部２２４にデータパケットの供給が可能になる。バスアービタ４００がバス３００を介して新たなデータパケットを受け入れ可能であることを前記バス状態信号３３０が示しているとき、ターゲットインタフェース２２０は送信バス３５０にデータパケットを出力する。また特に制限されないが、ターゲットインタフェース２２０には前記バス状態信号３３０が所定の状態の場合に当該ターゲットインタフェース２２０が最後に出力したデータパケットを送信バス３５０に再出力する機能を備える。
【００２９】
図４にはバスアービタ４００の具体例が示される。バスアービタ４００は、マルチプロセッサ接続バス３００の送信バス３１０，３５０に送出されるデータパケット群を中継し、必要により所定のフォーマットに変換した後、適切な受信バス３２０，３６０に再送出する機能を有する。送信バス３１０，３５０及び受信バス３２０，３６０の参照符号に付されたサフィックスは当該バスの接続先を意味する。このバスアービタ４００は入力バッファ群４１０、パケット再構成ユニット群４２０、出力バッファ群４４０及びバス調停部４５０を有する。入力バッファ群４１０、パケット再構成ユニット群４２０及び出力バッファ群４４０は転送先となるイニシエータインタフェース（ＳＩＦ１、ＳＩＦ２，ＳＩＦ３，ＳＩＦ４）２１０、ターゲットインタフェース２２０毎に独立して、それぞれ並列動作可能な複数の入力バッファ（ＩＢＵＦ１，ＩＢＵＦ２，ＩＢＵＦ３，ＩＢＵＦ４，ＩＢＵＦ５）４１１、パケット再構成ユニット（ＰＧＥＮ１，ＰＧＥＮ２，ＰＧＥＮ３，ＰＧＥＮ４，ＰＧＥＮ５）４２１、出力バッファ（ＥＢＵＦ１，ＥＢＵＦ２，ＥＢＵＦ３，ＥＢＵＦ４，ＥＢＵＦ５）４４１を備える。
【００３０】
送信バス３１０＿ＳＩＦ１〜３１０＿ＳＩＦ４，３５０から入力されるデータパケット群は、それらパケット内部に含まれパケット送信先を示すコード（ターゲットＩＤ）が予め夫々の入力バッファ（ＩＢＵＦ１〜ＩＢＵＦ５）４１１に定義されたコードに一致するもののみ、選択手段４１３によって当該入力バッファ４１１内のパケットＦＩＦＯ（Ｂ０〜Ｂ３）に時系列に格納される。これにより、送信バス３１０に出力されたデータパケットは送信先毎に入力バッファ群４１０のいずれかの入力バッファ４１１に振り分けられる。この動作により、各入力バッファ（ＩＢＵＦ１〜ＩＢＵＦ５）４１１のパケットＦＩＦＯには、夫々の入力バッファ４１１に定義されている送信先に一致する送信先へのデータパケットが時系列で保持されることになる。Ｂ０〜Ｂ３はパケットＦＩＦＯの記憶段であり、各記憶段Ｂ０〜Ｂ３は夫々データパケットを格納する記憶容量を備える。
【００３１】
パケットＦＩＦＯ（Ｂ０〜Ｂ３）に格納されたデータパケットは、対応する内部バス４１２を介してパケット再構成ユニット４２１に出力される。パケット再構成ユニット４２１は、出力バッファ状態信号４４２および制御レジスタ４２８の内容に従い、１つ以上のデータパケットから所定のフォーマットをもつ単一の別のデータパケット（データ中継パケットとも称する）を再構成して、内部バス４２４から対応する出力バッファ（ＥＢＵＦ１〜ＥＢＵＦ４）４４１に出力する。このとき、当該パケット再構成ユニット４２１は、入力バッファ更新信号４２５を対応する入力バッファ４１１へ出力し、パケットＦＩＦＯの状態を更新する。
【００３２】
出力バッファ群４４０の各出力バッファ４４１に蓄積されたデータ中継パケットは、各イニシエータインタフェース２１０の動作状態信号３４０及びターゲットインタフェース２２０の動作状態信号３７０の内容に基づき、内部制御信号４５１を介したバス調停部４５０の制御により受信バス３２０、３６０に送出される。バス調停部４５０は、マルチプロセッサ接続バス３００を介して新たなデータパケットを受け入れ可能であるか否かを示すバス状態信号３３０を制御し、さらに、必要に応じてデータ中継パケットを送出したことを示す情報を内部制御信号４５１により入力バッファ群４１０及びパケット再構成ユニット群４２０に伝達して内部を適切に制御する。
【００３３】
以下、従来のオンチップバスの抱える課題を整理し、本発明において最も特徴的なパケット再構成ユニット４２１の構成と動作について詳述する。
【００３４】
従来の時間軸方向のみ多重化されたオンチップバスにおいては、ある時刻には優先度順などの所定の手段により選択された特定の１パケットのみバスの全帯域を占有し、選択されなかったパケット群は、通常前記特定パケットのトランザクションが終了するまでトランザクションを開始できない。このため、画像・音声などの多量のストリームデータを取り扱い、リアルタイム性などの高いデータ転送品質が求められるデータ処理装置においては、バスそのものを（空間軸方向に）多重化する、データ転送遅延の変動に充分耐えられるだけの大容量のデータバッファをプロセッサや機能モジュールに接続するなど、ハードウェア規模に関するオーバヘッドの大きいデータ処理システムへの設計変更が求められていた。これに対し、本発明ではデータ中継パケットとデータ転送パケットのパケット長をほぼ同程度に維持しつつ、パケット内部のデータ領域を複数フィールドデータに分割し、フィールドデータ単位（サブ単位）で複数のデータパケットから単一のデータ中継パケットを再構成する。これにより、オーバヘッドが小さく、かつデータ転送品質の管理が容易なオンチップバスを実現しようとする。
【００３５】
言うまでもなく、所与のビット幅および動作周波数をもつオンチップバス上で特定のパケットデータの伝送に要する時間はパケットデータのサイズに比例する。パケット再構成の対象とする複数のデータパケットに含まれるすべてのデータを単一パケットに集約するとした場合、再構成された単一のデータ中継パケットの伝送時間が増大し、データ転送効率の向上効果は縮小する。この意味において、データ中継パケットのパケット長をデータパケットとほぼ同程度に維持するデータ中継パケット生成方式が有効である。
【００３６】
図５にはパケット再構成ユニット４２１の詳細が例示される。パケット再構成ユニット４２１は、入力バッファ４１１内のパケットＦＩＦＯに格納されていて、送信先の一致する複数のデータパケットをバス４１２より受信する。受信した送信先の一致する複数のデータパケットに対し、パケット再構成制御部４２２、パケット再構成部４２３により、制御レジスタ（ＣＲＥＧ）４２８に指定された送信元ごとの優先度および最低保証帯域に従った単一のデータ中継パケットを再構成する。パケット再構成制御部４２２は、ヘッダ解析部（ＨＡＮ）４２７、制御レジスタ（ＣＲＥＧ）４２８、帯域制御部（ＢＷＣＴＬ）４２９、及び再構成制御信号生成部（ＢＣＴＬ）４３０から成る。パケット再構成部４２３は、パケット分解部（ＰＤＣＭＰ０，ＰＤＣＭＰ１，ＰＤＣＭＰ２，ＰＤＣＭＰ４）４２６、ヘッダ再構成部（ＨＲＣＭＰ）４３１、及びデータフィールド再構成部（ＤＲＣＭＰＡ，ＤＲＣＭＰＢ，ＤＲＣＭＰＣ，ＤＲＣＭＰＤ）４３２〜４３５から成る。
【００３７】
入力バッファ４１１内のパケットＦＩＦＯに格納され、送信先の一致する複数のデータ転送パケットは、バス４１２によりパケット分解部４２６に入力され、ヘッダ部ＨＤＦ０〜ＨＤＦ３、データ部ＤＴＦ０〜ＤＴＦ３に分解される。ヘッダ解析部４２７では、ヘッダ部ＨＤＦ０〜ＨＤＦ３のデータ転送元を解析する。帯域制御部４２９では、ヘッダ解析結果及び制御レジスタ４２８に格納されたデータ転送元ごとの優先度と最低保証帯域に従い、データ中継パケットのデータ部を構成する各データフィールドに埋め込むべきデータパケット内のサブ単位のデータ位置を決定し、再構成制御信号生成部４３０によりデータ中継パケットの再構成に必要な制御信号を生成する。すなわち、再構成制御信号生成部４３０は、転送先が同じ複数のデータパケットに対し、優先度が高い順に最低保証帯域を満足する数のサブ単位を選択するための制御信号４３６を生成する。ヘッダ再構成部４３１、データフィールド再構成部４３２〜４３５は、再構成制御信号生成部４３０の出力する制御信号４３６に従い、再構成されたパケットの内容に適合するヘッダ部を付加し、データパケット内の適切なデータを選択することにより、データ中継パケットを再構成する。最低保証帯域とはテータ転送のスループット若しくはデータ転送量を意味する。
【００３８】
前記制御レジスタ４２８はバスアービタ４００に内蔵されたターゲットインタフェース４６０を介してプロセッサ２００からリードライト可能にされる。すなわち、送信バス３１０＿ＳＩＦ１からの読み書き要求に応答し制御信号４６１を適切に更新することにより、書き込み要求に対しては書き込み対象となる制御レジスタ４２８の内容を更新し、読み出し要求に対しては読み出し対象となる制御レジスタ４２８の内容に基づき構成したパケットを内部バス４６２に出力する。これによって、優先度と最低保証帯域がプロセッサ２００から可変可能になる。プロセッサ２００を用いたデータ処理の内容に則して前記優先度及び前記最低保証帯域をプログラマブルに変更することにより、融通性の高いデータ転送制御が可能になる。
【００３９】
図６及び図７には本発明におけるマルチプロセッサ接続バス３００により伝送されるデータパケットのフォーマットが例示される。
【００４０】
図６に示される（ａ）のフォーマットは送信バス３１０、３５０内のデータパケット（第１のデータパケット）のフォーマットである。
【００４１】
第１のデータパケットは、２５６ビット（６４ビット×４）の転送データを保持する転送データフィールドＤＴＦからなるデータ部（Ｄａｔａ  Ｐａｒｔ）、および当該パケットの属性を示す複数のフィールドを含むヘッダ部（Ｈｅａｄｅｒ  Ｐａｒｔ）から成る。ヘッダ部には、特に制限されないが、パケットの有効性を示す１ビットの有効ビットＶ、パケット送信先となるプロセッサ／機能モジュール／主メモリを特定するコードである４ビットの転送先識別子ＴＩＤ、パケット送信元となるプロセッサ／機能モジュール／主メモリを特定するコードである４ビットの転送元識別子ＳＩＤ、転送データＤＴＦのうち先頭位置にあるデータの転送先アドレスを示す３２ビットの転送先先頭アドレスＡＤＲ、および転送データＤＴＦのうち有効なデータ数を示す２ビットのデータ長ＬＥＮの各フィールドを含む。２５６ビット（６４ビット×４）のデータ部（Ｄａｔａ  Ｐａｒｔ）において、特に制限されないが、６４ビット単位のデータをサブ単位とする。
【００４２】
図６に示される（ｂ）のフォーマットは入力バッファ４１１内のデータパケット（第２のデータパケット）のフォーマットである。
【００４３】
第２のデータパケットは、上記（ａ）のパケットフォーマットに加え、パケット再構成の進行状態を示す２ビットのバッファ状態ＳＴを保持する状態部が存在する。これにより、当該データ転送パケットに含まれる有効な転送データのうち、パケット再構成部４２３内でデータ中継パケットとして再構成が完了したデータ数を管理することができる。
【００４４】
図７に示される（ｃ）のフォーマットは受信バス３２０、３６０内のデータ中継パケット（第３のデータパケット）のフォーマットである。
【００４５】
第３のデータパケットは、それぞれ６４ビットの転送データを保持する転送データフィールドＤＴＦＡ〜ＤＴＦＤからなるデータ部、および当該パケットの属性を示す複数のフィールドを含むヘッダ部からなり、ヘッダ部には、特に制限されないが、パケットの有効性を示す１ビットの有効ビットＶ、パケット送信先となるプロセッサ／機能モジュール／主メモリを特定するコードである４ビットの転送先識別子ＴＩＤ、それぞれ第１および第２の再構成前パケットの送信元となるプロセッサ／機能モジュール／主メモリを特定するコードである４ビットの転送元識別子ＳＩＤ０、ＳＩＤ１、転送データＤＴＦＡ〜ＤＴＦＤのうちそれぞれ第１および第２の再構成前パケットに由来する先頭位置にあるデータの転送先アドレスを示す３２ビットの転送先先頭アドレスＡＤＲ０、ＡＤＲ１、および転送データＤＴＦＡ〜ＤＴＦＤのうちそれぞれ第１および第２の再構成前パケットに由来する有効なデータ数を示す２ビットのデータ長ＬＥＮ０、ＬＥＮ１の各フィールドを含む。以下、第１および第２の再構成前データパケットに由来するヘッダおよびデータの組をそれぞれサブパケット０、サブパケット１と定義する。データ長ＬＥＮ０，ＬＥＮ１と、各サブパケットに属する転送データＤＴＦＡ〜ＤＴＦＤとの対応は図８に例示される。単一データ中継パケットへの再構成の対象となるデータ転送パケット数はＳＩＤ、ＡＤＲ、ＬＥＮのフィールド数に依存し、本実施例では最大２としている。即ち、単一のデータ中継パケットは転送元の１個のデータパケットのデータだけ、或いは２個のデータパケットのデータを混在させて保持することができる。図８の例ではデータ長ＬＥＮ０，ＬＥＮ１の４ビットの値に応じてサブパケット０，サブパケット１による転送データの保有形態が相違される。例えば、ＬＥＮ０，ＬＥＮ１＝００，００のとき、サブパケット０には転送データＤＴＦＡを含み、サブパケット１は無効とされる。このとき、データ中継パケットには３サブ単位（１９２ビット）分の空き領域がある。ＬＥＮ０，ＬＥＮ１＝００，０１のとき、サブパケット０には転送データＤＴＦＡを含み、サブパケット１には転送データＤＴＦＢを含む。このとき、データ中継パケットには２サブ単位（１２８ビット）分の空き領域がある。
【００４６】
前記バスアービタ４００は、内蔵する制御レジスタ４２８により定義されるデータ転送優先度および最低保証帯域に基づき、データ転送パケットの再構成処理を実行する。以下、制御レジスタ４２８の具体例及び帯域割り当て制御フローについて説明する。ただし、帯域割り当て制御フローは、例えば新たなデータ転送パケットが入力バッファに格納されるなどの所定のイベント発生により開始されるものとする。
【００４７】
図９には制御レジスタ４２８の具体例が示される。制御レジスタ４２８は、データ転送パケットの転送元を指定する４ビットの転送元識別子ＳＩＤごとに０（優先度最高）から１５（優先度最低）のデータ転送優先度を定義する優先度制御レジスタ４２８Ａと、データ中継パケット内で割り当てるべきデータフィールド数を指定することにより最低保証帯域を定義する帯域制御レジスタ４２８Ｂの２本のレジスタからなる。優先度制御レジスタ４２８Ａに示されるＰＲ０〜ＰＲ１５の領域は順次転送元識別子ＳＩＤで特定される転送元に固有の４ビットの領域であり、対応する転送元の優先度のデータＰＲｊがセットされる。優先度はその４ビットのデータＰＲｊの値が０で最も高く、１５で最も低いとされる。転送元の優先度を変更するにはメモリアクセスと同様にして当該レジスタ４２８Ａの書き換えを行えばよい。帯域制御レジスタ４２８Ｂに示されるＷＴ０〜ＷＴ１５の領域は順次転送元識別子ＳＩＤで特定される転送元に固有の２ビットの領域であり、対応する転送もとの最低保証帯域のデータＷＴｋがセットされる。最低保証帯域のデータＷＴｋは其の２ビットにより６４ビット単位のサブ単位の個数を示すことになる。転送元の最低保証帯域を変更するにはメモリアクセスと同様にして当該レジスタ４２８Ｂの書き換えを行えばよい。
【００４８】
図１０に、バスアービタ４００における帯域割り当て制御フローを示す。帯域割り当て制御は、まずパケットＦＩＦＯ内に格納されたすべてのデータ転送パケットについて、転送優先度の高い順に指定された最低保証帯域に相当する数のデータフィールド（サブ単位）をデータ中継パケットに割り当て、割り当てに供されない余ったデータフィールドについてはパケットＦＩＦＯ滞在時間の最も長いバッファ領域Ｂ０のデータに割り当てるという、２段階の制御が行われる。
【００４９】
まず、ステップＳ１００において転送優先度を示す内部パラメータｊを優先度最高の状態である０に初期化し、ステップＳ１１０において優先度制御レジスタ４２８Ａ内のフィールドにおいてデータ転送優先度ｊが指定されているフィールドリスト、すなわち転送元識別子リストを生成する（データ転送優先度がｊなるフィールド数をｍとする）とともに、ステップＳ１２０で以下のループ制御に必要なループ変数ｎを１に初期化する。
【００５０】
ループ変数ｎがｍになるまでの間（Ｓ１３０、Ｎ）、データ優先度がｊなるフィールドが存在した場合、ステップＳ１４０で前記転送元識別子リストのｎ番目の識別子に一致するＳＩＤをもつデータ転送パケットがパケットＦＩＦＯにバッファされているかどうかをチェックする。ＳＩＤの一致が検出された場合（Ｓ１４０、Ｙ）、ステップＳ１５０において当該データ転送パケットに対し、帯域制御レジスタの前記一致ＳＩＤフィールドで指定される数のデータ中継パケット内データフィールドを割り当てる。ループ変数ｎを更新し、上記の処理を転送元識別子リスト全体にわたり順次実行する（Ｓ１６０）。
【００５１】
転送元識別子リスト全体に対する割り当て処理が完了すると（Ｓ１３０、Ｙ）、ステップＳ１７０においてデータ転送優先度ｊをインクリメントし、データ転送優先度ｊの内容が優先度最低となるまで上記処理を繰り返す（Ｓ１８０、Ｎ）。
【００５２】
データ転送優先度に基づくデータフィールド割り当て処理後（Ｓ１８０、Ｙ）、データ中継パケット内のデータフィールドに未割り当てのフィールドがある場合（Ｓ１９０、Ｎ）、ステップＳ２００においてパケットＦＩＦＯ滞在時間の最も長いＢ０バッファにあるデータ転送パケットの未処理データを未割り当てフィールドに割り当てる。
【００５３】
データフィールド割り当て処理が完了すると、割り当て結果に基づき入力バッファ内のデータ転送パケットのバッファ状態更新、あるいはパケットＦＩＦＯのシフトなどの処理を適切に行う（Ｓ２１０）とともに、データ中継パケットを再構成し出力バッファへ転送する（Ｓ２２０）。転送が完了する（Ｓ２３０、Ｙ）ことにより、帯域割り当て制御フローが完了する。なお、出力バッファ内に空きがないなどにより転送が完了しない場合（Ｓ２３０、Ｎ）、転送完了まで出力バッファへの転送をリトライする。また、ステップＳ２１０の更新処理によりパケットＦＩＦＯに空きができた後、新たに転送されて来るデータパケットを入力バッファ４１１に取り込んで、次のデータ転送要求に答える。
【００５４】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００５５】
例えば、上記説明ではマルチプロセッサ接続バス３００にはターゲットインタフェース（ＴＩＦ１）２２０とイニシエータインタフェース（ＳＩＦ１〜ＳＩＦ４）２１０を任意に接続するのにクロスバ構造が採用され、バスアービタ４００はクロスバスイッチ回路の機能を兼ねている。本発明では転送要素回路を接続する転送経路は上記のようなクロスバ構造に限定されず、転送要素回路を共通接続する共通バス構造を採用してもよい。この場合においてもバスアービタ４００には図４及び図５と同様の構成を採用すればよい。但し、信号３３０は共通バス３００上でアクセスが競合しないことをターゲットインタフェース（ＴＩＦ１）２２０とイニシエータインタフェース（ＳＩＦ１〜ＳＩＦ４）２１０に通知する信号として機能されることが必要になる。また、転送要素回路の種類や数は上記説明に限定されない。また、本発明は１チップの半導体集積回路に限定されない。マルチチップモジュールのような半導体装置等にも適用することができる。
【図面の簡単な説明】
【００５６】
【図１】本発明によるデータ処理装置の一例を示すブック図である。
【図２】イニシエータインタフェースの具体例を示すブロック図である。
【図３】ターゲットインタフェースの具体例を示すブロック図である。
【図４】バスアービタの具体例を示すブロック図である。
【図５】パケット再構成ユニットの詳細を例示するブロック図である。
【図６】送信バス３１０、３５０内のデータパケット（第１のデータパケット）と入力バッファ４１１内のデータパケット（第２のデータパケット）のフォーマットを例示するフォーマット図である。
【図７】受信バス３２０、３６０内のデータ中継パケット（第３のデータパケット）のフォーマットを例示するフォーマット図である。
【図８】データ長ＬＥＮ０，ＬＥＮ１と、各サブパケットに属する転送データＤＴＦＡ〜ＤＴＦＤとの対応を例示する説明図である。
【図９】制御レジスタの具体例が保有する情報に具体例を示す説明図である。
【図１０】バスアービタによる帯域割り当て制御手順を例示するフローチャートである。
【符号の説明】
【００５７】
１００  データ処理装置
１０１〜１０５  転送要素回路
２００  プロセッサ（ＰＲＣ１〜ＰＲＣ３）
２０２  主メモリ（ＭＥＭ）
２１０  イニシエータインタフェース（ＳＩＦ１〜ＳＩＦ４）
２２０  ターゲットインタフェース（ＴＩＦ１）
３００（３００＿ＳＩＦ１〜３００＿ＳＩＦ４）マルチプロセッサ接続バス
４００  バスアービタ
４１０  入力バッファ群
４１１  入力バッファ（ＩＢＵＦ１〜ＩＢＵＦ５）
４２０  パケット再構成ユニット群
４２１  パケット再構成ユニット（ＰＧＥＮ１〜ＰＧＥＮ５）
４４０  出力バッファ群
４４１  出力バッファ（ＥＢＵＦ１〜ＥＢＵＦ５）
４５０  バス調停部  
４２８（４２８Ａ，４２８Ｂ）  制御レジスタ
【図１】
2008171232.tif 000003
【図２】
2008171232.tif 000004
【図３】
2008171232.tif 000005
【図４】
2008171232.tif 000006
【図５】
2008171232.tif 000007
【図６】
2008171232.tif 000008
【図７】
2008171232.tif 000009
【図８】
2008171232.tif 000010
【図９】
2008171232.tif 000011
【図１０】
2008171232.tif 000012