説明

データ処理装置及び半導体集積回路

【課題】バスの多重化によらず所望のデータ転送特性を保証してデータ転送の多重化が可能なデータ処理装置を提供する。
【解決手段】複数のプロセッサやメモリ等の複数の転送要素回路(101〜105)を相互に接続する転送経路(300)と、前記転送経路におけるデータ転送を制御する調停回路(400)と、データ転送の優先度及び最低保証帯域を規定する制御レジスタを備え、前記調停回路は複数のデータ転送元から送出されるデータパケットをサブ単位に分解し、制御レジスタに格納された優先度及び最低保証帯域に基づき、データ転送先を共通にする複数のデータパケットを再構成する。これにより、再構成された一つのデータパケットには優先度の異なる転送元からの複数のデータパケットのサブ単位を含めることができ、そこに含まれるサブ単位のデータ量にはデータ転送の最低保障帯域を満足させることができスループットを向上させることができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はデータ処理装置に関し、例えば、複数プロセッサ間でリアルタイム性の高いデータ転送を多数並列に実行するマルチプロセッサ接続バスを備えた半導体集積回路に適用して有効な技術に関する。
【背景技術】
【0002】
近年、画像・音声などのマルチメディア処理機能や、有線および無線通信機能を内蔵したディジタル多用途ディスク(DVD)レコーダ等のディジタル機器が広く一般的に利用されるようになってきている。これらの機器においては、コーデック処理、無線プロトコル処理、ユーザインタフェース処理など、リアルタイム性の高い複数のタスクを同時に処理することが求められる。このため、上記の機器を制御するデータ処理装置は、通常複数のCPU(中央処理装置)、DSP(ディジタル信号処理プロセッサ)、所定の処理を実行するハードウェアアクセラレータなどをオンチップバスにより相互接続したシステムLSIとして実現される。
【0003】
高速オンチップバスの一つの形態としては、時間軸に沿ったデータ転送の多重化に着目し、バストランザクションを適切にパイプライン化したスプリットバストランザクション・ノンブロッキング型バスが公知である。この種のバス構成について記載された文献として例えば特許文献1がある。
【0004】
しかしながら、このタイプのバスでは一般的にデータ転送スループットについては比較的容易に管理できるのに対し、リアルタイム性に直結する転送レイテンシの保証が困難である。このため、データ転送の優先度に応じて割り当てる複数セットのオンチップバスを備えることにより空間方向でデータ転送の多重化を図るなど、ハードウェア規模の大幅な増大を伴う設計が求められていた。
【0005】
【特許文献1】特表2004−530197号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
上記のように、転送レイテンシなどのデータ転送特性を保証する目的でオンチップバスを多重化することは、ハードウェア規模の増大によるデータ転送効率の低下、消費電力やチップコストの増加といった問題を生じさせる。
【0007】
本発明の目的は、バスの多重化によらず所望のデータ転送特性を保証してデータ転送の多重化が可能なデータ処理装置を提供することにある。
【0008】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【0009】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0010】
すなわち、データ処理装置は、複数のプロセッサやメモリ等の複数の転送要素回路を相互に接続するマルチプロセッサ接続バスのような転送経路と、前記転送経路におけるデータ転送を制御する調停回路と、データ転送の優先度及び最低保証帯域を規定する制御レジスタを備え、前記調停回路は複数のデータ転送元から送出されるデータパケットをサブ単位に分解し、制御レジスタに格納された優先度及び最低保証帯域に基づき、データ転送先を共通にする複数のデータパケットを再構成する。これにより、再構成された一つのデータパケットには優先度の異なる転送元からの複数のデータパケットのサブ単位を含めることができ、そこに含まれるサブ単位のデータ量にはデータ転送の最低保障帯域を満足させることができる。したがって、転送経路を多重化するようなハードウェアの増大を伴わずに、データ転送のリアルタイム性を保証しつつ、データ転送ごとに要求される最小スループットを満足させることができる。
【発明の効果】
【0011】
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。
【0012】
すなわち、ハードウェア規模を大幅に増大させることなく、所望のデータ転送特性を保証してデータ転送の多重化が可能なデータ処理装置を実現することができる。
【発明を実施するための最良の形態】
【0013】
1.代表的な実施の形態
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【0014】
〔1〕本発明の代表的な実施の形態に係るデータ処理装置(100)は、データの転送を行うことが可能な複数の転送要素回路(101〜105)と、前記転送要素回路間でのデータパケットの転送に利用される転送経路(300)と、前記転送経路におけるデータ転送を制御する調停回路(400)とを有する。前記調停回路は、転送元の転送要素回路から出力されるデータパケットをサブ単位に分解し、データ転送先を共通にする複数のデータパケットに対して転送優先度が高い順に転送保証すべき数のサブ単位を含めるように別のデータパケットを再構成し、再構成したデータパケットを転送先の転送要素回路に送り出すことを可能とする。これにより、再構成された一つのデータパケットには優先度の異なる転送元からの複数のデータパケットのサブ単位を含めることができ、そこに含まれるサブ単位の数には、転送元からのデータパケット毎に転送保証すべき数を満足させることができる。したがって、転送経路を多重化するようなハードウェアの増大を伴わずに、データ転送のリアルタイム性を保証しつつ、データ転送ごとに要求される最小スループットを満足させることができる。
【0015】
一つの具体的な形態として、前記夫々の転送要素回路の前記転送優先度と前記転送保証すべきサブ単位数とを規定するための記憶回路(428)を有する。前記調停回路は、分解されたサブ単位が属するデータパケットの出力元である転送要素回路に対応する前記転送優先度と前記転送保証すべきサブ単位数とを前記記憶回路から参照する。前記記憶回路は例えば書き換え可能な制御レジスタ(428A、428B)である。転送要素回路を用いたデータ処理の内容に則して前記転送優先度及び前記転送保証すべきサブ単位数をプログラマブルに変更することにより、融通性の高いデータ転送制御が可能になる。
【0016】
別の具体的な形態として、前記転送経路は前記転送要素回路から前記調停回路への転送経路(310,350,340,370)と前記調停回路から前記転送要素回路への転送経路(320,330,360)を前記転送要素回路毎に別々に有する。前記調停回路は入力バッファ(411)、パケット再構成ユニット(421)及び出力バッファ(441)を有する。入力バッファは前記転送要素回路から転送経路に出力されるデータパケットを入力して転送先の転送要素回路別に保持する。パケット再構成ユニットは、入力バッファ毎に保持された複数のデータパケットのサブ単位を、これに対応する前記転送優先度と前記転送保証すべきサブ単位数とを参照して別のデータパケットに再構成する。出力バッファは転送先別に再構成されたデータパケットを保持して転送先に並列出力可能とする。これにより、調停回路は、複数の転送元から出力される複数のデータパケットを並列に受けることができ、また、転送先別の前記再構成したデータパケットを複数の転送先に並列に転送することが可能になるから、更にデータ転送の多重化を促進することができる。
【0017】
更に具体的な形態として、前記入力バッファは転送要素回路別に夫々複数のデータパケットを保持することができる。前記パケット再構成ユニットは、前記入力バッファが保持する転送先を共通にするデータパケットに対して前記優先度が高い順に前記転送保証すべきサブ単位数を満足するようにデータパケットの再構成を行う。
【0018】
更に具体的な形態として、前記パケット再構成ユニットは、再構成されるデータパケットにサブ単位の未割り当てフィールドがあるとき、当該未割り当てフィールドに、前記入力バッファによる保持時間が最も長いデータパケットのサブ単位を含める。再構成されるデータパケットに無駄がないようにすることができる。前記入力バッファには複数のデータパケットをFIFO形式で保持する構造を採用すれば、保持時間の最も長いデータパケットを容易に抽出することができる。
【0019】
〔2〕別の観点によるデータ処理装置は、上記同様に複数の転送要素回路、転送経路及び調停回路を有するが、その調停回路(400)は、前記転送要素回路から入力したデータパケットをサブ単位に分解し、転送先を共通にする複数のデータパケットに対してデータ転送の優先度が高い順に所要の転送データ量を満足する数のサブ単位を含めるようにデータパケットを再構成し、再構成したデータパケットを転送先の転送要素回路に送り出すことを可能とする。これにより、転送経路を多重化するようなハードウェアの増大を伴わずに、データ転送のリアルタイム性を保証しつつ、データ転送ごとに要求される最小スループットを満足させることができる。
【0020】
一つの具体的な形態として、前記転送要素回路は、プロセッサ等のバスマスタ又はメモリ等のバススレーブとして機能する回路と、前記回路を前記転送経路に接続するためのインタフェース回路とを有する。インタフェース回路により個々の前記回路と転送経路とのインタフェース仕様の相違を吸収することができる。
【0021】
〔3〕別の観点によるデータ処理装置は、上記同様に複数の転送要素回路、転送経路及び調停回路を有するが、その調停回路(400)は、前記転送要素回路から入力したデータをサブ単位に分解し、転送先を共通にする複数のデータに対して情報転送の優先度が高い順に最低保証転送スループットを満足する数のサブ単位を含めるようにデータを再構成し、再構成したデータを転送先の転送要素回路に送り出すことを可能とする。これにより、転送経路を多重化するようなハードウェアの増大を伴わずに、データ転送のリアルタイム性を保証しつつ、データ転送ごとに要求される最小スループットを満足させることができる。
【0022】
2.実施の形態の説明
次に、実施の形態について更に詳述する。特に制限されないが、以下で説明するデータ処理装置を構成する回路素子は、公知のCMOSトランジスタやバイポーラトランジスタ等の半導体集積回路技術によって、単結晶シリコンのような1個の半導体基板上に形成される。
【0023】
図1には本発明によるデータ処理装置の一例が示される。データ処理装置100は、例えばそれぞれ所定の演算処理を実行する複数のプロセッサ(PRC1〜PRC3)200、DMAコントローラ(DMAC)等の機能モジュール201、主メモリ(MEM)202を有する。それらの間で生じるデータ転送には転送経路としてマルチプロセッサ接続バス(BUS)300が利用される。バスマスタとして代表的に示されたプロセッサ(PRC1〜PRC3)200、DMAコントローラ(DMAC)201はそれぞれイニシエータインタフェース(SIF1〜SIF4)210を介してマルチプロセッサ接続バス(BUS)300に接続される。バススレーブとして代表的に示された主メモリ202は、ターゲットインタフェース(TIF1)220を介してマルチプロセッサ接続バス300に接続される。マルチプロセッサ接続バス300におけるデータ転送は調停回路としてのバスアービタ(ARB)400が制御する。
【0024】
特に制限されないが、図1に示されるマルチプロセッサ接続バス300はイニシエータインタフェース210とターゲットインタフェース220毎に経路が分離されている。図1においてマルチプロセッサ接続バス300の参照符号には接続先を意味するサフィックスを付記することにより前記分離された経路を区別している。一つのプロセッサ(PRC1〜PRC3)200と対応するイニシエータインタフェース(SIF1〜SIF3)210のペア、DMAコントローラ(DMAC)と対応するイニシエータインタフェース(SIF4)210のペア、主メモリ202とターゲットインタフェース(TIF1)220とのペアの夫々は一つの転送要素回路101〜105とみなされる。
【0025】
図2には一つのイニシエータインタフェース(SIF1)210の具体例が示される。イニシエータインタフェース210は、トランザクション制御部(SCTL)212、パケット生成部(PCMP)213、パケット分解部(PDEC)214を有する。トランザクション制御部212は内部制御信号215,216によりパケット生成部213及びパケット分解部214を制御し、マルチプロセッサ接続バス300_SFI1からのデータパケットを分解してプロセッサ側インタフェース経路211_SIF1へ供給し、また、プロセッサ側インタフェース経路211_SFI1から供給されるデータからデータパケットを生成してマルチプロセッサ接続バス300_SFI1に送出する。プロセッサ側インタフェース経路211の参照符号に付されたサフィックスは接続先を意味する。
【0026】
より具体的には、イニシエータインタフェース(SIF1)210は、マルチプロセッサ接続バス300のバス状態信号330、プロセッサ側インタフェース経路211から入力されるデータ送信制御信号217の内容に基づき、内部制御信号215により制御されるパケット生成部213を介して所定のフォーマットをもつデータパケットを生成し、送信バス310に対して送出する。また、受信バス320から所定のフォーマットをもつデータパケットが入力されると、内部制御信号216により制御されるパケット分解部214は入力パケットをアクセスアドレス、ストアデータ、ロードデータ、ストア要求、ロード要求を含む所定の信号に変換し、1つ以上のデータ受信制御信号218、219として出力する。さらに望ましくは、当該イニシエータインタフェース210の動作状態が内部状態信号340によりバスアービタ400へ出力される。バスアービタ400はイニシエータインタフェース210がパケット分解部214を用いて信号218、219の出力動作中であるか否か等を内部状態信号340によって判定する。信号218,219の出力動作中でなければバスアービタ400は受信バス320からパケット分解部214にデータパケットの供給が可能になる。前記バス状態信号330はバスアービタ400がバス300を介して新たなデータパケットを受け入れ可能であるか否かを示す信号であり、受け入れ可能であればイニシエータインタフェース210は送信バス310にデータパケットを出力する。また特に制限されないが、イニシエータインタフェース210には前記バス状態信号330が所定の状態の場合に当該イニシエータインタフェース210が最後に出力したデータパケットを送信バス310に再出力する機能を備える。特に図示はしないが他のイニシエータインタフェース(SIF2〜SIF4)210も同様に構成される。
【0027】
図3にはターゲットインタフェース(TIF1)220の具体例が示される。ターゲットインタフェース220は、トランザクション制御部(TCTL)222、パケット生成部(PCMP)223、パケット分解部(PDEC)214を有する。トランザクション制御部222は内部制御信号225、226によりパケット生成部223及びパケット分解部214を制御し、マルチプロセッサ接続バス300_TIF1からのデータパケットを分解してメモリ側インタフェース経路221へ供給し、また、メモリ側インタフェース経路221から供給されるデータからデータパケットを生成してマルチプロセッサ接続バス300_TIF1に送出する。
【0028】
より具体的には、ターゲットインタフェース220は、メモリ側インタフェース経路221から入力されるデータ送信制御信号227の内容に基づき、内部制御信号225により制御されるパケット生成部223を介して所定のフォーマットをもつデータパケットを生成し、送信バス350に対して送出する。また、受信バス360から所定のフォーマットをもつデータパケットが入力されると、内部制御信号226により制御されるパケット分解部224は入力パケットをアクセスアドレス、ストアデータ、ロードデータ、ストア要求、ロード要求を含む所定の信号に変換し、1つ以上のデータ受信制御信号228、229として出力する。さらに望ましくは、当該ターゲットインタフェース220の動作状態が内部状態信号370としてバスアービタ400に出力される。バスアービタ400はターゲットインタフェース220がパケット分解部224を用いて信号228,229の出力動作中であるか否か等を内部状態信号370によって判定する。信号228,229の出力動作中でなければバスアービタ400は受信バス360からパケット分解部224にデータパケットの供給が可能になる。バスアービタ400がバス300を介して新たなデータパケットを受け入れ可能であることを前記バス状態信号330が示しているとき、ターゲットインタフェース220は送信バス350にデータパケットを出力する。また特に制限されないが、ターゲットインタフェース220には前記バス状態信号330が所定の状態の場合に当該ターゲットインタフェース220が最後に出力したデータパケットを送信バス350に再出力する機能を備える。
【0029】
図4にはバスアービタ400の具体例が示される。バスアービタ400は、マルチプロセッサ接続バス300の送信バス310,350に送出されるデータパケット群を中継し、必要により所定のフォーマットに変換した後、適切な受信バス320,360に再送出する機能を有する。送信バス310,350及び受信バス320,360の参照符号に付されたサフィックスは当該バスの接続先を意味する。このバスアービタ400は入力バッファ群410、パケット再構成ユニット群420、出力バッファ群440及びバス調停部450を有する。入力バッファ群410、パケット再構成ユニット群420及び出力バッファ群440は転送先となるイニシエータインタフェース(SIF1、SIF2,SIF3,SIF4)210、ターゲットインタフェース220毎に独立して、それぞれ並列動作可能な複数の入力バッファ(IBUF1,IBUF2,IBUF3,IBUF4,IBUF5)411、パケット再構成ユニット(PGEN1,PGEN2,PGEN3,PGEN4,PGEN5)421、出力バッファ(EBUF1,EBUF2,EBUF3,EBUF4,EBUF5)441を備える。
【0030】
送信バス310_SIF1〜310_SIF4,350から入力されるデータパケット群は、それらパケット内部に含まれパケット送信先を示すコード(ターゲットID)が予め夫々の入力バッファ(IBUF1〜IBUF5)411に定義されたコードに一致するもののみ、選択手段413によって当該入力バッファ411内のパケットFIFO(B0〜B3)に時系列に格納される。これにより、送信バス310に出力されたデータパケットは送信先毎に入力バッファ群410のいずれかの入力バッファ411に振り分けられる。この動作により、各入力バッファ(IBUF1〜IBUF5)411のパケットFIFOには、夫々の入力バッファ411に定義されている送信先に一致する送信先へのデータパケットが時系列で保持されることになる。B0〜B3はパケットFIFOの記憶段であり、各記憶段B0〜B3は夫々データパケットを格納する記憶容量を備える。
【0031】
パケットFIFO(B0〜B3)に格納されたデータパケットは、対応する内部バス412を介してパケット再構成ユニット421に出力される。パケット再構成ユニット421は、出力バッファ状態信号442および制御レジスタ428の内容に従い、1つ以上のデータパケットから所定のフォーマットをもつ単一の別のデータパケット(データ中継パケットとも称する)を再構成して、内部バス424から対応する出力バッファ(EBUF1〜EBUF4)441に出力する。このとき、当該パケット再構成ユニット421は、入力バッファ更新信号425を対応する入力バッファ411へ出力し、パケットFIFOの状態を更新する。
【0032】
出力バッファ群440の各出力バッファ441に蓄積されたデータ中継パケットは、各イニシエータインタフェース210の動作状態信号340及びターゲットインタフェース220の動作状態信号370の内容に基づき、内部制御信号451を介したバス調停部450の制御により受信バス320、360に送出される。バス調停部450は、マルチプロセッサ接続バス300を介して新たなデータパケットを受け入れ可能であるか否かを示すバス状態信号330を制御し、さらに、必要に応じてデータ中継パケットを送出したことを示す情報を内部制御信号451により入力バッファ群410及びパケット再構成ユニット群420に伝達して内部を適切に制御する。
【0033】
以下、従来のオンチップバスの抱える課題を整理し、本発明において最も特徴的なパケット再構成ユニット421の構成と動作について詳述する。
【0034】
従来の時間軸方向のみ多重化されたオンチップバスにおいては、ある時刻には優先度順などの所定の手段により選択された特定の1パケットのみバスの全帯域を占有し、選択されなかったパケット群は、通常前記特定パケットのトランザクションが終了するまでトランザクションを開始できない。このため、画像・音声などの多量のストリームデータを取り扱い、リアルタイム性などの高いデータ転送品質が求められるデータ処理装置においては、バスそのものを(空間軸方向に)多重化する、データ転送遅延の変動に充分耐えられるだけの大容量のデータバッファをプロセッサや機能モジュールに接続するなど、ハードウェア規模に関するオーバヘッドの大きいデータ処理システムへの設計変更が求められていた。これに対し、本発明ではデータ中継パケットとデータ転送パケットのパケット長をほぼ同程度に維持しつつ、パケット内部のデータ領域を複数フィールドデータに分割し、フィールドデータ単位(サブ単位)で複数のデータパケットから単一のデータ中継パケットを再構成する。これにより、オーバヘッドが小さく、かつデータ転送品質の管理が容易なオンチップバスを実現しようとする。
【0035】
言うまでもなく、所与のビット幅および動作周波数をもつオンチップバス上で特定のパケットデータの伝送に要する時間はパケットデータのサイズに比例する。パケット再構成の対象とする複数のデータパケットに含まれるすべてのデータを単一パケットに集約するとした場合、再構成された単一のデータ中継パケットの伝送時間が増大し、データ転送効率の向上効果は縮小する。この意味において、データ中継パケットのパケット長をデータパケットとほぼ同程度に維持するデータ中継パケット生成方式が有効である。
【0036】
図5にはパケット再構成ユニット421の詳細が例示される。パケット再構成ユニット421は、入力バッファ411内のパケットFIFOに格納されていて、送信先の一致する複数のデータパケットをバス412より受信する。受信した送信先の一致する複数のデータパケットに対し、パケット再構成制御部422、パケット再構成部423により、制御レジスタ(CREG)428に指定された送信元ごとの優先度および最低保証帯域に従った単一のデータ中継パケットを再構成する。パケット再構成制御部422は、ヘッダ解析部(HAN)427、制御レジスタ(CREG)428、帯域制御部(BWCTL)429、及び再構成制御信号生成部(BCTL)430から成る。パケット再構成部423は、パケット分解部(PDCMP0,PDCMP1,PDCMP2,PDCMP4)426、ヘッダ再構成部(HRCMP)431、及びデータフィールド再構成部(DRCMPA,DRCMPB,DRCMPC,DRCMPD)432〜435から成る。
【0037】
入力バッファ411内のパケットFIFOに格納され、送信先の一致する複数のデータ転送パケットは、バス412によりパケット分解部426に入力され、ヘッダ部HDF0〜HDF3、データ部DTF0〜DTF3に分解される。ヘッダ解析部427では、ヘッダ部HDF0〜HDF3のデータ転送元を解析する。帯域制御部429では、ヘッダ解析結果及び制御レジスタ428に格納されたデータ転送元ごとの優先度と最低保証帯域に従い、データ中継パケットのデータ部を構成する各データフィールドに埋め込むべきデータパケット内のサブ単位のデータ位置を決定し、再構成制御信号生成部430によりデータ中継パケットの再構成に必要な制御信号を生成する。すなわち、再構成制御信号生成部430は、転送先が同じ複数のデータパケットに対し、優先度が高い順に最低保証帯域を満足する数のサブ単位を選択するための制御信号436を生成する。ヘッダ再構成部431、データフィールド再構成部432〜435は、再構成制御信号生成部430の出力する制御信号436に従い、再構成されたパケットの内容に適合するヘッダ部を付加し、データパケット内の適切なデータを選択することにより、データ中継パケットを再構成する。最低保証帯域とはテータ転送のスループット若しくはデータ転送量を意味する。
【0038】
前記制御レジスタ428はバスアービタ400に内蔵されたターゲットインタフェース460を介してプロセッサ200からリードライト可能にされる。すなわち、送信バス310_SIF1からの読み書き要求に応答し制御信号461を適切に更新することにより、書き込み要求に対しては書き込み対象となる制御レジスタ428の内容を更新し、読み出し要求に対しては読み出し対象となる制御レジスタ428の内容に基づき構成したパケットを内部バス462に出力する。これによって、優先度と最低保証帯域がプロセッサ200から可変可能になる。プロセッサ200を用いたデータ処理の内容に則して前記優先度及び前記最低保証帯域をプログラマブルに変更することにより、融通性の高いデータ転送制御が可能になる。
【0039】
図6及び図7には本発明におけるマルチプロセッサ接続バス300により伝送されるデータパケットのフォーマットが例示される。
【0040】
図6に示される(a)のフォーマットは送信バス310、350内のデータパケット(第1のデータパケット)のフォーマットである。
【0041】
第1のデータパケットは、256ビット(64ビット×4)の転送データを保持する転送データフィールドDTFからなるデータ部(Data Part)、および当該パケットの属性を示す複数のフィールドを含むヘッダ部(Header Part)から成る。ヘッダ部には、特に制限されないが、パケットの有効性を示す1ビットの有効ビットV、パケット送信先となるプロセッサ/機能モジュール/主メモリを特定するコードである4ビットの転送先識別子TID、パケット送信元となるプロセッサ/機能モジュール/主メモリを特定するコードである4ビットの転送元識別子SID、転送データDTFのうち先頭位置にあるデータの転送先アドレスを示す32ビットの転送先先頭アドレスADR、および転送データDTFのうち有効なデータ数を示す2ビットのデータ長LENの各フィールドを含む。256ビット(64ビット×4)のデータ部(Data Part)において、特に制限されないが、64ビット単位のデータをサブ単位とする。
【0042】
図6に示される(b)のフォーマットは入力バッファ411内のデータパケット(第2のデータパケット)のフォーマットである。
【0043】
第2のデータパケットは、上記(a)のパケットフォーマットに加え、パケット再構成の進行状態を示す2ビットのバッファ状態STを保持する状態部が存在する。これにより、当該データ転送パケットに含まれる有効な転送データのうち、パケット再構成部423内でデータ中継パケットとして再構成が完了したデータ数を管理することができる。
【0044】
図7に示される(c)のフォーマットは受信バス320、360内のデータ中継パケット(第3のデータパケット)のフォーマットである。
【0045】
第3のデータパケットは、それぞれ64ビットの転送データを保持する転送データフィールドDTFA〜DTFDからなるデータ部、および当該パケットの属性を示す複数のフィールドを含むヘッダ部からなり、ヘッダ部には、特に制限されないが、パケットの有効性を示す1ビットの有効ビットV、パケット送信先となるプロセッサ/機能モジュール/主メモリを特定するコードである4ビットの転送先識別子TID、それぞれ第1および第2の再構成前パケットの送信元となるプロセッサ/機能モジュール/主メモリを特定するコードである4ビットの転送元識別子SID0、SID1、転送データDTFA〜DTFDのうちそれぞれ第1および第2の再構成前パケットに由来する先頭位置にあるデータの転送先アドレスを示す32ビットの転送先先頭アドレスADR0、ADR1、および転送データDTFA〜DTFDのうちそれぞれ第1および第2の再構成前パケットに由来する有効なデータ数を示す2ビットのデータ長LEN0、LEN1の各フィールドを含む。以下、第1および第2の再構成前データパケットに由来するヘッダおよびデータの組をそれぞれサブパケット0、サブパケット1と定義する。データ長LEN0,LEN1と、各サブパケットに属する転送データDTFA〜DTFDとの対応は図8に例示される。単一データ中継パケットへの再構成の対象となるデータ転送パケット数はSID、ADR、LENのフィールド数に依存し、本実施例では最大2としている。即ち、単一のデータ中継パケットは転送元の1個のデータパケットのデータだけ、或いは2個のデータパケットのデータを混在させて保持することができる。図8の例ではデータ長LEN0,LEN1の4ビットの値に応じてサブパケット0,サブパケット1による転送データの保有形態が相違される。例えば、LEN0,LEN1=00,00のとき、サブパケット0には転送データDTFAを含み、サブパケット1は無効とされる。このとき、データ中継パケットには3サブ単位(192ビット)分の空き領域がある。LEN0,LEN1=00,01のとき、サブパケット0には転送データDTFAを含み、サブパケット1には転送データDTFBを含む。このとき、データ中継パケットには2サブ単位(128ビット)分の空き領域がある。
【0046】
前記バスアービタ400は、内蔵する制御レジスタ428により定義されるデータ転送優先度および最低保証帯域に基づき、データ転送パケットの再構成処理を実行する。以下、制御レジスタ428の具体例及び帯域割り当て制御フローについて説明する。ただし、帯域割り当て制御フローは、例えば新たなデータ転送パケットが入力バッファに格納されるなどの所定のイベント発生により開始されるものとする。
【0047】
図9には制御レジスタ428の具体例が示される。制御レジスタ428は、データ転送パケットの転送元を指定する4ビットの転送元識別子SIDごとに0(優先度最高)から15(優先度最低)のデータ転送優先度を定義する優先度制御レジスタ428Aと、データ中継パケット内で割り当てるべきデータフィールド数を指定することにより最低保証帯域を定義する帯域制御レジスタ428Bの2本のレジスタからなる。優先度制御レジスタ428Aに示されるPR0〜PR15の領域は順次転送元識別子SIDで特定される転送元に固有の4ビットの領域であり、対応する転送元の優先度のデータPRjがセットされる。優先度はその4ビットのデータPRjの値が0で最も高く、15で最も低いとされる。転送元の優先度を変更するにはメモリアクセスと同様にして当該レジスタ428Aの書き換えを行えばよい。帯域制御レジスタ428Bに示されるWT0〜WT15の領域は順次転送元識別子SIDで特定される転送元に固有の2ビットの領域であり、対応する転送もとの最低保証帯域のデータWTkがセットされる。最低保証帯域のデータWTkは其の2ビットにより64ビット単位のサブ単位の個数を示すことになる。転送元の最低保証帯域を変更するにはメモリアクセスと同様にして当該レジスタ428Bの書き換えを行えばよい。
【0048】
図10に、バスアービタ400における帯域割り当て制御フローを示す。帯域割り当て制御は、まずパケットFIFO内に格納されたすべてのデータ転送パケットについて、転送優先度の高い順に指定された最低保証帯域に相当する数のデータフィールド(サブ単位)をデータ中継パケットに割り当て、割り当てに供されない余ったデータフィールドについてはパケットFIFO滞在時間の最も長いバッファ領域B0のデータに割り当てるという、2段階の制御が行われる。
【0049】
まず、ステップS100において転送優先度を示す内部パラメータjを優先度最高の状態である0に初期化し、ステップS110において優先度制御レジスタ428A内のフィールドにおいてデータ転送優先度jが指定されているフィールドリスト、すなわち転送元識別子リストを生成する(データ転送優先度がjなるフィールド数をmとする)とともに、ステップS120で以下のループ制御に必要なループ変数nを1に初期化する。
【0050】
ループ変数nがmになるまでの間(S130、N)、データ優先度がjなるフィールドが存在した場合、ステップS140で前記転送元識別子リストのn番目の識別子に一致するSIDをもつデータ転送パケットがパケットFIFOにバッファされているかどうかをチェックする。SIDの一致が検出された場合(S140、Y)、ステップS150において当該データ転送パケットに対し、帯域制御レジスタの前記一致SIDフィールドで指定される数のデータ中継パケット内データフィールドを割り当てる。ループ変数nを更新し、上記の処理を転送元識別子リスト全体にわたり順次実行する(S160)。
【0051】
転送元識別子リスト全体に対する割り当て処理が完了すると(S130、Y)、ステップS170においてデータ転送優先度jをインクリメントし、データ転送優先度jの内容が優先度最低となるまで上記処理を繰り返す(S180、N)。
【0052】
データ転送優先度に基づくデータフィールド割り当て処理後(S180、Y)、データ中継パケット内のデータフィールドに未割り当てのフィールドがある場合(S190、N)、ステップS200においてパケットFIFO滞在時間の最も長いB0バッファにあるデータ転送パケットの未処理データを未割り当てフィールドに割り当てる。
【0053】
データフィールド割り当て処理が完了すると、割り当て結果に基づき入力バッファ内のデータ転送パケットのバッファ状態更新、あるいはパケットFIFOのシフトなどの処理を適切に行う(S210)とともに、データ中継パケットを再構成し出力バッファへ転送する(S220)。転送が完了する(S230、Y)ことにより、帯域割り当て制御フローが完了する。なお、出力バッファ内に空きがないなどにより転送が完了しない場合(S230、N)、転送完了まで出力バッファへの転送をリトライする。また、ステップS210の更新処理によりパケットFIFOに空きができた後、新たに転送されて来るデータパケットを入力バッファ411に取り込んで、次のデータ転送要求に答える。
【0054】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0055】
例えば、上記説明ではマルチプロセッサ接続バス300にはターゲットインタフェース(TIF1)220とイニシエータインタフェース(SIF1〜SIF4)210を任意に接続するのにクロスバ構造が採用され、バスアービタ400はクロスバスイッチ回路の機能を兼ねている。本発明では転送要素回路を接続する転送経路は上記のようなクロスバ構造に限定されず、転送要素回路を共通接続する共通バス構造を採用してもよい。この場合においてもバスアービタ400には図4及び図5と同様の構成を採用すればよい。但し、信号330は共通バス300上でアクセスが競合しないことをターゲットインタフェース(TIF1)220とイニシエータインタフェース(SIF1〜SIF4)210に通知する信号として機能されることが必要になる。また、転送要素回路の種類や数は上記説明に限定されない。また、本発明は1チップの半導体集積回路に限定されない。マルチチップモジュールのような半導体装置等にも適用することができる。
【図面の簡単な説明】
【0056】
【図1】本発明によるデータ処理装置の一例を示すブック図である。
【図2】イニシエータインタフェースの具体例を示すブロック図である。
【図3】ターゲットインタフェースの具体例を示すブロック図である。
【図4】バスアービタの具体例を示すブロック図である。
【図5】パケット再構成ユニットの詳細を例示するブロック図である。
【図6】送信バス310、350内のデータパケット(第1のデータパケット)と入力バッファ411内のデータパケット(第2のデータパケット)のフォーマットを例示するフォーマット図である。
【図7】受信バス320、360内のデータ中継パケット(第3のデータパケット)のフォーマットを例示するフォーマット図である。
【図8】データ長LEN0,LEN1と、各サブパケットに属する転送データDTFA〜DTFDとの対応を例示する説明図である。
【図9】制御レジスタの具体例が保有する情報に具体例を示す説明図である。
【図10】バスアービタによる帯域割り当て制御手順を例示するフローチャートである。
【符号の説明】
【0057】
100 データ処理装置
101〜105 転送要素回路
200 プロセッサ(PRC1〜PRC3)
202 主メモリ(MEM)
210 イニシエータインタフェース(SIF1〜SIF4)
220 ターゲットインタフェース(TIF1)
300(300_SIF1〜300_SIF4)マルチプロセッサ接続バス
400 バスアービタ
410 入力バッファ群
411 入力バッファ(IBUF1〜IBUF5)
420 パケット再構成ユニット群
421 パケット再構成ユニット(PGEN1〜PGEN5)
440 出力バッファ群
441 出力バッファ(EBUF1〜EBUF5)
450 バス調停部
428(428A,428B) 制御レジスタ

【特許請求の範囲】
【請求項1】
データの転送を行うことが可能な複数の転送要素回路と、前記転送要素回路間でのデータパケットの転送に利用される転送経路と、前記転送経路におけるデータ転送を制御する調停回路とを有し、
前記調停回路は、転送元の転送要素回路から出力されるデータパケットをサブ単位に分解し、データ転送先を共通にする複数のデータパケットに対して転送優先度が高い順に転送保証すべき数のサブ単位を含めるように別のデータパケットを再構成し、再構成したデータパケットを転送先の転送要素回路に送り出すことが可能なデータ処理装置。
【請求項2】
前記夫々の転送要素回路の前記転送優先度と前記転送保証すべきサブ単位数とを規定するための記憶回路を有し、
前記調停回路は、分解されたサブ単位が属するデータパケットの出力元である転送要素回路に対応する前記転送優先度と前記転送保証すべきサブ単位数とを前記記憶回路から参照する請求項1記載のデータ処理装置。
【請求項3】
前記記憶回路は書き換え可能な制御レジスタである請求項2記載のデータ処理装置。
【請求項4】
前記転送経路は前記転送要素回路から前記調停回路への転送経路と前記調停回路から前記転送要素回路への転送経路を前記転送要素回路毎に別々に有し、
前記調停回路は前記転送要素回路から転送経路に出力されるデータパケットを入力して転送先の転送要素回路別に保持する入力バッファと、入力バッファ毎に保持された複数のデータパケットのサブ単位を、これに対応する前記前記転送優先度と前記転送保証すべきサブ単位数とを参照して別のデータパケットに再構成するパケット再構成ユニットと、転送先別に再構成されたデータパケットを保持して転送先に並列出力可能な出力バッファとを有する請求項1記載のデータ処理装置。
【請求項5】
前記入力バッファは転送要素回路別に夫々複数のデータパケットを保持することができ、
前記パケット再構成ユニットは、前記入力バッファが保持する転送先を共通にするデータパケットに対して前記優先度が高い順に前記転送保証すべきサブ単位数を満足するようにデータパケットの再構成を行う請求項4記載のデータ処理装置。
【請求項6】
前記パケット再構成ユニットは、再構成されるデータパケットにサブ単位の未割り当てフィールドがあるとき、当該未割り当てフィールドに、前記入力バッファによる保持時間が最も長いデータパケットのサブ単位を含める請求項5記載のデータ処理装置。
【請求項7】
前記入力バッファは複数のデータパケットをFIFO形式で保持する請求項6記載のデータ処理装置。
【請求項8】
データ転送を行うことが可能な複数の転送要素回路と、前記転送要素回路間でのデータ転送に利用される転送経路と、前記転送経路におけるデータ転送を制御する調停回路とを有し、
前記調停回路は、前記転送要素回路から入力したデータパケットをサブ単位に分解し、転送先を共通にする複数のデータパケットに対してデータ転送の優先度が高い順に所要の転送データ量を満足する数のサブ単位を含めるようにデータパケットを再構成し、再構成したデータパケットを転送先の転送要素回路に送り出すことが可能なデータ処理装置。
【請求項9】
前記夫々の転送要素回路について前記優先度と前記転送データ量とを規定するための記憶回路を有し、
前記調停回路は、分解されたサブ単位が属するデータパケットの出力元である転送要素回路に対応する前記優先度と前記転送データ量とを前記記憶回路から参照する請求項8記載のデータ処理装置。
【請求項10】
前記記憶回路は書き換え可能な制御レジスタである請求項9記載のデータ処理装置。
【請求項11】
前記転送経路は前記転送要素回路から前記調停回路への転送経路と前記調停回路から前記転送要素回路への転送経路を前記転送要素回路毎に別々に有し、
前記調停回路は前記転送要素回路から転送経路に出力されるデータパケットを入力して転送先の転送要素回路別に保持する入力バッファと、入力バッファ毎に保持された複数のデータパケットのサブ単位を、これに対応する前記前記優先度と前記転送データ量とを参照して別のデータパケットに再構成するパケット再構成ユニットと、転送先別に再構成されたデータパケットを保持して転送先に並列出力可能な出力バッファとを有する請求項8記載のデータ処理装置。
【請求項12】
前記調停回路は、再構成されるデータパケットにサブ単位の未割り当てフィールドがあるとき、当該未割り当てフィールドに、転送先を共通にする複数のデータパケットの中で前記調停回路による保持時間が最も長いデータパケットのサブ単位を含める請求項8記載のデータ処理装置。
【請求項13】
前記調停回路は複数のデータパケットをFIFO形式で保持する請求項12記載のデータ処理装置。
【請求項14】
前記転送要素回路は、バスマスタ又はバススレーブとして機能する回路と、前記回路を前記転送経路に接続するためのインタフェース回路とを有する請求項13記載のデータ処理装置。
【請求項15】
データ転送を行うことが可能な複数の転送要素回路と、前記転送要素回路間でのデータ転送に利用される転送経路と、前記転送経路におけるデータ転送を制御する調停回路とを有し、
前記調停回路は、前記転送要素回路から入力したデータをサブ単位に分解し、転送先を共通にする複数のデータに対して情報転送の優先度が高い順に最低保証転送スループットを満足する数のサブ単位を含めるようにデータを再構成し、再構成したデータを転送先の転送要素回路に送り出すことが可能な半導体集積回路。
【請求項16】
前記調停回路は、再構成されるデータにサブ単位の未割り当てフィールドがあるとき、当該未割り当てフィールドに、転送先を共通にする複数のデータの中で前記調停回路による保持時間が最も長いデータのサブ単位を含める請求項15記載の半導体集積回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2008−171232(P2008−171232A)
【公開日】平成20年7月24日(2008.7.24)
【国際特許分類】
【出願番号】特願2007−4298(P2007−4298)
【出願日】平成19年1月12日(2007.1.12)
【出願人】(503121103)株式会社ルネサステクノロジ (4,790)
【Fターム(参考)】