(57)【要約】【課題】複数のリアルタイムアプリケーションを並列処理するＬＳＩにおいて、限定されたリソースを用い、それらの処理を高効率に実行することができる技術を提供する。【解決手段】ＬＳＩ２００内の複数のプロセシング・ユニット（ＣＰＵ０，ＣＰＵ１，ＲＣＰＵ，ＶＣＰＵ）で実行される複数の処理を、ＬＳＩ２００全体で統一的に管理する機構を備えることで、上記課題を解決する。管理の対象となる処理に対して、処理の進行状況に基づいて優先度を算出し、その優先度に従って処理実行を制御する。各処理を実行するプロセシング・ユニットから処理状況などの情報を収集し、それらの優先度を算出するリソース・マネジメント・ユニットＩＲＭまたはプログラム、および、その優先度にしたがって処理の実行順序を制御するためのプログラマブルなインタコネクト・ユニット１００及び記憶手段１０１を備える。【選択図】図６
2007108944.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセシング・ユニットを含む半導体集積回路装置であって、
前記半導体集積回路装置上で実行される処理の優先度を算出する制御ユニットと、
前記優先度に基づき、前記プロセシング・ユニットに共有資源を使用する権利を与える調停手段と、
前記制御ユニットが算出した優先度を前記調停手段に伝えるための第１の記憶手段と、
前記制御ユニットが前記優先度算出を行うための情報を保持するための第２の記憶手段とを有することを特徴とする半導体集積回路装置。
【請求項２】
請求項１記載の半導体集積回路装置において、
前記制御ユニットは、前記複数のプロセシング・ユニットのうち少なくとも１つ以上のプロセシング・ユニットにソフトウェア的に実装されていることを特徴とする半導体集積回路装置。
【請求項３】
請求項１または２記載の半導体集積回路装置において、
前記制御ユニットは、前記第２の記憶手段から、前記プロセシング・ユニットが実行している処理の状況を収集し、前記処理の状況を基にその処理の優先度を算出し、前記優先度に基づき、前記第１の記憶手段に優先度情報を書き込み、
前記プロセシング・ユニットは、自らが実行する処理の状況を前記第２の記憶手段に書き込む機能を有することを特徴とする半導体集積回路装置。
【請求項４】
請求項１または２記載の半導体集積回路装置において、
前記制御ユニットは、制御対象となるプロセシング・ユニットから、前記プロセシング・ユニットが実行している処理の優先度を収集し、前記第１の記憶手段に前記優先度情報を書き込み、
前記プロセシング・ユニットは、自らが実行する処理の優先度を前記第１の記憶手段に書き込む機能を有することを特徴とする半導体集積回路装置。
【請求項５】
請求項４記載の半導体集積回路装置において、
前記プロセシング・ユニットは、自らが実行する処理の実行状況から優先度を算出し、
前記優先度に基づき前記第１の記憶手段に優先度情報を書き込む機能を有することを特徴とする半導体集積回路装置。
【請求項６】
請求項１または２記載の半導体集積回路装置において、
前記優先度は、前記半導体集積回路装置上で実行される処理の目標処理レートと実処理レートに基づき算出されることを特徴とする半導体集積回路装置。
【請求項７】
請求項１または２記載の半導体集積回路装置において、
前記優先度は、前記半導体集積回路装置上で実行される処理の制限時間と消費時間と進捗度とに基づき算出されることを特徴とする半導体集積回路装置。
【請求項８】
請求項１または２記載の半導体集積回路装置において、
前記調停手段は、
前記優先度に従い動的に調停を行う機構と、
予め指定した割合のリソース使用量を予め指定したユニットに割り当てる機構とを含むことを特徴とする半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路装置（以下、「ＬＳＩ」という。）に関し、特に、ＣＰＵ、特定処理向けアクセラレータなどのプロセシング・ユニットを複数個集積したシステムＬＳＩの構成に適用して有効な技術に関する。
【背景技術】
【０００２】
携帯電話、デジタル家電、ネットワーク機器、カーナビゲーションなどのコンシューマ機器の高性能・多機能化に伴い、その中枢を担う組み込みＬＳＩにも高性能・高機能が求められる。これに対して、特定用途アクセラレータを含めたプロセシング・ユニットの並列化による性能向上が進められている。
【０００３】
一方で組み込み用途ＬＳＩは、コスト制約が厳しく、限定されたリソース（電力、演算器、メモリバンド幅、ピン数などの資源）下での動作が求められる。
【０００４】
これらの相反する要求に応えるための有効な方法のひとつは、並列に行われる処理を最適にスケジューリングし、限られたリソースを複数のプロセシング・ユニットで共有利用することである。
【０００５】
従来、あるリソースを複数で共有する際に用いられる技術としては、バスアービトレーション技術に分類されるいくつかの技術がある。
【０００６】
もっとも一般的に用いられる方法は、特許文献１でも使用されているラウンドロビン方式がある。
【０００７】
その他リアルタイム補償システムで多く用いられる方法としては、時分割で固定的にリソース占有権を与えるＴＤＭＡ（Ｔｉｍｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ）方式がある。
【０００８】
また、ＬＳＩの電力を複数のタスク間でシェアするための技術として、特許文献２および特許文献３に記載されたものがある。
【０００９】
本発明に関連する技術文献として以下のものがある。
【特許文献１】特開２００２−２６９０３２号公報
【特許文献２】特開２００１−２２９０４０号公報
【特許文献３】特開２００２−２０２８９３号公報
【特許文献４】特開２００３−２９８５９９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところで、前記のようなＬＳＩの技術について、本発明者が検討した結果、以下のようなことが明らかとなった。
【００１１】
例えば、前記ＴＤＭＡ方式は、接続された各回路モジュールに対してリソース使用量を補償できるという利点はある。しかし、実際は、処理データなどに依存して必要リソース量が変化する。ワーストケースに設定するとティピカルなケースで無駄が多くなり、リソースの利用効率の面で十分でない。
【００１２】
そこで、本発明の目的は、複数のリアルタイムアプリケーションを並列処理するＬＳＩにおいて、限定されたリソース（電力、メモリバンド幅、ピン数など）を用い、それらの処理を高効率で実行することができる技術を提供することにある。
【００１３】
本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１４】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１５】
上記課題を解決するために、ＬＳＩ内の複数のプロセシング・ユニット上で実行される複数の処理を、ＬＳＩ全体で統一的に管理する機構を提供する。そして、管理の対象となる処理に対して、処理の進行状況をもとにした優先度を算出し、その優先度に従って処理実行を制御する。
【００１６】
そのため、本発明によるＬＳＩは、各処理を実行するプロセシング・ユニットがその進行状況または優先度を通知する機構、それらの情報を収集し、その優先度を算出する制御ユニット、優先度にしたがって実行順序を制御するためのプログラマブルな調停手段を備える。
【発明の効果】
【００１７】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、以下のとおりである。
【００１８】
複数のリアルタイムアプリケーションを並列処理するＬＳＩにおいて、各処理の実行状況から算出した優先度を利用し、ＬＳＩ全体での統一的管理を行うことで限定されたリソースの利用効率を大域的に最適化できる。その結果、トータル性能を向上させることが可能となる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２０】
（ＬＳＩ構成）
［ＬＳＩ構成１：専用ハードウェアによる集中管理型］
図１は本発明の一実施の形態によるＬＳＩの第１の構成を示すブロック図である。
【００２１】
まず、図１により、本実施の形態によるＬＳＩの構成の一例を説明する。本実施の形態のＬＳＩ２００は、例えばリソース・マネジメント機能を搭載したＬＳＩである。ＬＳＩ２００は、ＣＰＵ、ＤＳＰ、専用アクセラレータなどの複数のプロセシング・ユニットＰＵ０〜３と、メモリＩＦやＰＣＩなどのＩＦコントローラＳＲＩＦ０と、その他スレーブ・ユニットＳＲ１と、こられを接続するインタコネクト・ユニット１００など、一般的なシステムＬＳＩと同様のユニットに加えて、各プロセシング・ユニットＰＵ０〜３で実行中の処理の実行状況に関する情報を収集して各処理の優先度を算出するリソース・マネジメント・ユニットＩＲＭ（制御ユニット）と、各処理の優先度をＩＲＭが算出するのに必要な情報を保持しておくための記憶手段１０２（第２の記憶手段）と、ＩＲＭにより算出された優先度を共有リソースの使用順序に反映させるための記憶手段１０１（第１の記憶手段）とを備える。記憶手段１０２は、タスク管理テーブルＰＴＢＬを含む。記憶手段１０１は、ＰＲＩＲ０〜ＰＲＩＲ３を含む。
【００２２】
スレーブ・ユニットＳＲ０は、ＬＳＩ２００に接続される記憶装置あるいは演算装置などのリソース（資源）であり、ＬＳＩ２００内の複数のプロセシング・ユニットＰＵ０〜３により共有される。また、インタコネクト・ユニット１００内のＡＲＢ０〜３は、前記の優先度を考慮してリソース使用順序を決定するスケジューリング・ブロック（調停手段）である。例えば、ＡＲＢ０は、プロセシング・ユニットＰＵ０〜３間の共有リソースであるＳＲＩＦ０の使用（ひいてはＳＲ０の使用）を制御する。
【００２３】
また、記憶手段１０１内のＰＲＩＲ０〜３は、それぞれＰＵ０〜３に対応する。
【００２４】
［ＬＳＩ構成２：共用ハードウェアによる集中管理型］
図２は本発明の一実施の形態によるＬＳＩの第２の構成を示すブロック図である。図２は、図１におけるＩＲＭを独立ユニットとして備えない場合を示す。この場合、本来ユーザーの処理を実行するために登載するプロセシング・ユニットＰＵ０〜ＰＵ３のいずれかで、前記ＩＲＭに相当する処理をソフトウェア的に実行する。
【００２５】
図２のＬＳＩ２００ａは、ＰＵ０にＩＲＭが実装されている。ＰＵ０は他のユーザー処理も実行するため、ソフトウェア的に実装されたＩＲＭプログラムはこれらと切り替えながら実行される。他の処理からＩＲＭへの切り替えは、他のユニットからのトリガ（割り込み、決められたフラグ領域への書き込みなど）による起動、周期的起動などＰＵ０内のスケジューリング・ポリシーに従う。他の構成は、図１と同じであるので説明を省略する。
【００２６】
本構成をとるメリットはハードウェア量を削減できることであり、デメリットはユーザー処理を阻害する期間が発生する点である。
【００２７】
［ＬＳＩ構成３：分散管理型］
図３は本発明の一実施の形態によるＬＳＩの第３の構成を示すブロック図である。図３のＬＳＩ２００ｂは、図２に示した前記ＬＳＩ構成２の実施形態と同様に、独立ユニットとしてＩＲＭを備えないものである。前記ＬＳＩ構成２によるＬＳＩ２００ａと異なるのは、複数のプロセシング・ユニットにＩＲＭ機能を実装している点である。これにより、１つのプロセシング・ユニットにかかる負荷を削減できる。
【００２８】
図３のＬＳＩ２００ｂは、ＰＵ０〜２にそれぞれＩＲＭが実装されている。各ＩＲＭは、自己のプロセシング・ユニット内の処理に対する優先度を算出し、その優先度を記憶手段１０１に書き込む。本構成をとるメリットはハードウェア量を削減できること、搭載ユニット数の増加に対する負荷が小さいことである。デメリットは複数のプロセシング・ユニットに対してＩＲＭを実装する必要があるという点である。
【００２９】
なお、上記３つのＬＳＩ構成１〜３のいずれにおいても、プロセシング・ユニットＰＵ０〜３は必ずしも一般的なプロセシング・ユニットでなくともよい。例えば、外部からの情報を入力、あるいは、外部に情報を出力するためのインタフェース・ユニットなどであってもよい。
【００３０】
また、本実施の形態によるＬＳＩ２００，２００ａ，２００ｂは、周知の半導体製造技術により、１つの半導体チップ上に構成される。
【００３１】
［スケジューリング・ブロック構成］
図７に、前記ＬＳＩ構成１〜３におけるインタコネクト・ユニット１００内のスケジューリング・ブロックＡＲＢ０〜３の一実施の形態を示す。図７に示すＡＲＢは、スケジューリング・ブロックＡＲＢ０〜３のうちの１つを示す。ＡＲＢは、スロット割付ベース制御部１１０と優先度ベース制御部１１１などから構成される。スロット割付ベース制御部１１０は記憶手段１１２などからなる。優先度ベース制御部１１１は、記憶手段１０１からＡＲＢに入力された前記の優先度に従い動的に調停を行う機構である。スロット割付ベース制御部１１０は、記憶手段１１２に予め指定した割合で記憶手段１１２に予め指定したユニットに共有リソースを割り当てる機構である。
【００３２】
（制御フロー）
［方法１］
図４に、前記ＬＳＩ構成１〜３におけるＬＳＩ２００，２００ａ，２００ｂの制御フローを示す。図４において、（ａ−１）（ａ―２）はリソース・マネジメント・ユニットＩＲＭの動作を示し、（ｂ）はプロセシング・ユニットＰＵ０〜３の動作を示す。
【００３３】
図４（ａ−１）のフローにおいて、ＩＲＭは、制御対象となるプロセシング・ユニット全てに対して、それらが実行しているタスクの処理状況を収集し、それらを基に優先度を計算する（ループ１）。タスクの処理状況の収集は、記憶手段１０２などＩＲＭがアクセス可能な記憶手段に書き込まれた各プロセシング・ユニットの処理状況情報を読み出すことにより行われる。ループ１は、プロセシング・ユニットの数だけ繰り返す。
【００３４】
次にそれらの優先度に基づいた制御を行う。共有リソース使用のスケジューリングを行う場合、先に計算した優先度を記憶手段１０１に書き込む（ループ０）。これを受けてスケジューリング・ブロックＡＲＢ０〜３は、記憶手段１０１で指定された優先度を考慮し、プロセシング・ユニットにリソース使用権を与える。ループ０は、システムが止まるまで継続して繰り返す。
【００３５】
図４（ａ−２）は、図４（ａ−１）のフローの別の形態である。ＩＲＭは、制御対象となるプロセシング・ユニットが実行しているタスクの処理状況の収集、優先度の計算、それに基づく制御を、制御対象となるプロセシング・ユニット毎にまとめて行う。この一連のＩＲＭ処理を行うタイミングとしては、制御対象となるプロセシング・ユニットからの割り込みなどのトリガによる場合や、周期的に行う場合がある（ループ３）。
【００３６】
図４（ｂ）のフローにおいて、プロセシング・ユニットＰＵ０〜３は、処理の開始／再開をＩＲＭへ通知した後、実行中の処理状況情報を通知する（ループ２）。処理状況情報の通知は、適切な時点で、自らが実行している処理の状況情報を、ＩＲＭがアクセス可能な記憶手段に書き込むことにより行われる。
【００３７】
この処理状況情報を書き込む場所としては、内蔵メモリの一領域や、プロセシング・ユニット内、あるいはそれに付属する記憶手段や、これらの制御を行うために専用に設けられた記憶手段１０２、または、記憶手段１０１のいずれかを用いることができる。また、あるプロセシング・ユニットは自らの処理状況情報を内蔵メモリの一領域に書き込み、あるプロセシング・ユニットはそのユニットに付属する記憶手段に書き込むなど、一つのＬＳＩ内で複数が混在してもよい。
【００３８】
［方法２］
図５に、前記ＬＳＩ構成１〜３におけるＬＳＩ２００，２００ａ，２００ｂの他の制御フローを示す。図５において、（ａ−１）、（ａ−２）はリソース・マネジメント・ユニットＩＲＭの動作を示し、（ｂ）はプロセシング・ユニットＰＵ０〜３の動作を示す。前記方法１では優先度の計算をＩＲＭが行ったが、それを各プロセシング・ユニットが行ってもよい。
【００３９】
この時、ＩＲＭは制御対象となるプロセシング・ユニット全てに対して、それらプロセシング・ユニットからそれらが実行しているタスクの優先度を収集し、それらに基づいた制御を行う。共有リソース使用のスケジューリングを行う場合、記憶手段１０１に優先度を書き込む。これを受けてスケジューリング・ブロックＡＲＢ０〜３は、記憶手段１０１で指定された優先度に従いリソース使用権を与える。
【００４０】
プロセシング・ユニットＰＵ０〜３は、自らが実行している処理の優先度をＩＲＭがアクセス可能な記憶手段に書き込む。
【００４１】
また、本方法２において、プロセシング・ユニットが、優先度を直接記憶手段１０１に書き込んでもよい。
【００４２】
［方法３］
また、前記方法１と方法２を組み合わせて使用してもよい。あるユニットに対しては、そのユニット自身が、リソース・マネジメント・ユニットＩＲＭがアクセス可能な記憶手段に優先度を書き込む。あるユニットに対しては、そのユニットが、ＩＲＭがアクセス可能な記憶手段に処理状況情報を書き込み、ＩＲＭがそれをもとに優先度を計算する。
【００４３】
ＩＲＭはそれらの優先度を使用して制御を行う。
【００４４】
（優先度生成）
次に、処理状況情報および優先度生成方法について記述する。プロセシング・ユニットおよび実行するタスクの特徴に合わせて、複数の手法を組み合わせて使用することも可能である。
【００４５】
［優先度生成第１の方法］
処理状況情報として、目標処理レートＰＲと実処理レートＰＡを用いて、優先度を算出する。目標処理レートに対して実処理レートが小さい処理ほど優先度を高くする。以下のように、優先度ＰＲＩを算出する形態もある。
【００４６】
ＰＲＩ＝Ｃ・（ＰＲ−ＰＡ）        Ｃ：定数
例えば、目標処理レートＰＲおよび実処理レートＰＡとして、ある単位時間あたりの実行命令数を使うことができる。目標処理レートＰＲは予め設定しておき、実処理レートＰＡはプロセシング・ユニットの実行命令数をカウントした結果を保持した記憶手段の値を用いる。プロセシング・ユニットが、実処理レートＰＡと目標処理レートＰＲを含む情報をＩＲＭに通知し、ＩＲＭはこれらから優先度を算出する。
【００４７】
また、目標処理レートＰＲおよび実処理レートＰＡを、プロセシング・ユニットの待ち時間から算出することもできる。プロセシング・ユニットは命令やデータ待ち、あるいは制御信号のハンドシェイクで発生する待ち時間をＩＲＭに通知し、ＩＲＭはこれらから優先度を算出する。
【００４８】
［優先度生成第２の方法］
目標処理レートＰＲと実処理レートＰＡを用いる点は前記第１の方法と同様である。目標処理レートＰＲとして制限時間と消費時間（サイクル）を用いて算出される値を用い、実処理レートＰＡとしてアプリケーションの進行度を用いる。
【００４９】
アプリケーションの進行度の通知に関して、ユーザー処理プログラムから、進行度を通知するための小プログラムを呼び出すことで実現することができる。また、同様の進行度通知をハードウェアとして実装する場合もある。前者は汎用プロセシング・ユニットなどに向き、後者はハードウェア・アクセラレータなどに向く。
【００５０】
この第２の方法はアプリケーションそのものを監視しているため、前記第１の方法に比べて高い精度の制御が可能であるが、適用しにくいアプリケーションも存在する。したがって、多くの場合、これら複数の方法の併用が必要となる。
【００５１】
第１の方法と第２の方法の両方を含む制御も可能である。
【００５２】
（一具体例）
図６に、図１のＬＳＩを具体化したＬＳＩの構成例を示す。
【００５３】
図６に示すＬＳＩ２００は、プロセシング・ユニットＰＵ０〜ＰＵ３として、汎用プロセッサであるＣＰＵ０，ＣＰＵ１と、再構成可能な演算器であるリコンフィグラブル・プロセシング・ユニットＲＣＰＵと、画像圧縮・伸張ユニットＶＣＰＵとを含む。これらのプロセシング・ユニットはＳＤＲＡＭを共有する。インタコネクト・ユニット１００内のレスポンス・ブロックＲＥＳＰは、レスポンスをイニシエータ（プロセシング・ユニット、ブリッジ・ユニットＢＲ１）に伝達するブロックであり、ＡＲＢ０〜２は前記スケジューリング・ブロックである。本構成では、リソース・マネジメントに関わるブロックがブリッジ・ユニットＢＲ１を介して接続される。割り込みコントローラＩＮＴＣはＩＲＭへの割り込みを制御するユニットであり、１０１および１０２はリソース・マネジメントに関わる制御用の記憶手段であり、電力制御ユニットＰＷＣは各部分の電力管理をするためのユニットであり、１０５はこれらユニット間を結ぶインタフェースである。１０１内のＰＲＩＲ０、ＰＲＩＲ１、ＰＲＩＲ２、ＰＲＩＲ３はそれぞれ、ＣＰＵ０、ＣＰＵ１、ＲＣＰＵ、ＶＣＰＵ、の優先度をＡＲＢ０〜２に伝達し、そのスケジューリングに反映するための記憶手段であり、これらは１０５を通じて値を更新できる。
【００５４】
次にリソース・マネジメントに関わる動作について記述する。
【００５５】
ＣＰＵ０は、前記の優先度生成第１の方法に基づき優先度を算出するために、必要な目標処理レートＰＲや、タスクを識別するためのＩＤを含む情報を、タスクの切り替えに同期させて、ＩＲＭが読み出せる領域（本例では記憶手段１０２）に書き込み、割り込みコントローラＩＮＴＣを介してＩＲＭに通知する。また、ＣＰＵ０は実処理レートＰＡを示す情報を、適宜ＩＲＭが読み出せる領域（本例では記憶手段１０２）に書き込む。ＩＲＭは前記割り込みを受け、ＣＰＵ０が制御対象であることを認識し、周期的に１０２から処理状況情報を読み出し、優先度を算出する。
【００５６】
ＣＰＵ１は、その上で実行されるユーザプログラム中に、前記の優先度生成第２の方法に基づく処理状況情報と、実行タスクＩＤを含む情報とを、ＩＲＭが読み出せる領域（本例では記憶手段１０２）に書き込むプログラムを有する。
【００５７】
ＲＣＰＵは、アクセラレータであり、ここではＣＰＵ０がその動作を制御する。ＲＣＰＵは、前記の優先度生成第１の方法に基づく処理状況情報を、ＩＲＭからアクセス可能な記憶手段１０６に書き込む機能を有する。ＣＰＵ０は、ＲＣＰＵの起動などの動作情報を割り込みコントローラＩＮＴＣを介してＩＲＭに通知する。ＩＲＭはこれを受け、ＲＣＰＵが制御対象であることを認識し、周期的に記憶手段１０６から処理状況情報を読み出し、優先度を算出する。
【００５８】
ＶＣＰＵは、ハードウェア・アクセラレータであり、ここではＣＰＵ０がその動作を制御する。ＶＣＰＵは、前記の優先度生成第２の方法に基づく処理状況情報を、ＩＲＭからアクセス可能な記憶手段１０７に書き込む機能を有する。ＣＰＵ０はＶＣＰＵの起動などの動作情報を割り込みコントローラＩＮＴＣを介してＩＲＭに通知する。ＩＲＭはこれを受け、ＶＣＰＵが制御対象であることを認識し、周期的に１０７から処理状況情報を読み出し、優先度を算出する。
【００５９】
また、ＩＲＭは、ＳＤＲＡＭ使用順序に反映させるために、前記の機構で算出した優先度を記憶手段１０１に書き込む。
【００６０】
また、本実施の形態が示すＬＳＩを統括的に管理する機構は、機能ブロック／装置の共有を最適化する目的以外にも有効である。そのひとつの応用例が電力制御である。本例において、ＩＲＭはＬＳＩ２００の電力制御も行う。ＰＷＣは、チップ内の各ユニットの電力を制御するためのユニットである。そして、各ユニットへの電力制御インタフェース１０８と、ＩＲＭから制御を行うためのインタフェース１０５とを有する。ＩＲＭは、前記の機構で算出した優先度と、それぞれの処理を行うための必要電力とに基づいて、各ユニットの電力制御を、ＰＷＣを介して行う。制御対象は、クロック周波数、電源電圧（上げ／下げ）、閾値電圧などを含む。また、その制御の単位はユニットではなく、複数ユニットをまとめたエリア単位でもよい。
【００６１】
同様にして、前記ＬＳＩ構成２および３においても、図６のＬＳＩ構成を適用することができる。
【００６２】
以上のようにして、複数のリアルタイムアプリケーションを並列処理するＬＳＩにおいて、限定されたリソースを用い、それらの処理を高効率実行する。各処理の実行状況から算出した優先度を利用し、ＬＳＩ全体での統一的管理を行うことで限定されたリソースの利用効率を大域的に最適化し、トータル性能を向上させる。これにより、数１０％の性能改善が期待できる。
【００６３】
図８は、本実施の形態によるＬＳＩの効果を示す図であり、（ａ）は従来のＬＳＩの性能を示し、（ｂ）は本実施の形態によるＬＳＩの性能を示す。
【００６４】
従来の方法では、図８（ａ）に示すように、トータルのリソース量は十分でも、そのリソースを複数のタスク間に適切に配分できない結果、目標性能を達成できないタスク（タスク２、３および５）が発生し、トータルの性能が目標に達しないことが多くあった。
【００６５】
本発明によれば、図８（ｂ）に示すように、各タスクのばらつきが抑えられて目標性能を達成することができる。
【００６６】
以上、本発明者によってなされた発明をその実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【００６７】
本発明は、半導体装置、電子機器等の製造業において利用可能である。
【図面の簡単な説明】
【００６８】
【図１】本発明の一実施の形態によるＬＳＩの第１の構成を示すブロック図である。
【図２】本発明の一実施の形態によるＬＳＩの第２の構成を示すブロック図である。
【図３】本発明の一実施の形態によるＬＳＩの第３の構成を示すブロック図である。
【図４】（ａ−１），（ａ−２），（ｂ）は、本発明の一実施の形態によるＬＳＩの第１の制御フローを示す図である。
【図５】（ａ−１），（ａ−２），（ｂ）は、本発明の一実施の形態によるＬＳＩの第２の制御フローを示す図である。
【図６】図１に示すＬＳＩの具体的構成を示すブロック図である。
【図７】本発明の一実施の形態によるＬＳＩのスケジューリング・ブロックの構成を示すブロック図である。
【図８】（ａ），（ｂ）は、本発明の効果を示す図である。
【符号の説明】
【００６９】
１００  インタコネクト・ユニット  
１０１，１０２，１０６，１０７，１１２  記憶手段
１０５  インタフェース
１０８  電力制御インタフェース
１１０  スロット割付ベース制御部
１１１  優先度ベース制御部
２００，２００ａ，２００ｂ  ＬＳＩ
ＡＲＢ，ＡＲＢ０〜ＡＲＢ３  スケジューリング・ブロック（調停手段）
ＢＲ１  ブリッジ・ユニット
ＩＮＴＣ  割り込みコントローラ
ＩＲＭ  リソース・マネジメント・ユニット（制御ユニット）
ＰＴＢＬ  タスク管理テーブル
ＰＵ０〜ＰＵ３  プロセシング・ユニット
ＰＷＣ  電力制御ユニット
ＲＣＰＵ  リコンフィグラブル・プロセンシング・ユニット
ＲＥＳＰ  レスポンス・ブロック
ＳＲ０，ＳＲ１  スレーブ・ユニット
ＳＲＩＦ０  ＩＦコントローラ  
ＶＣＰＵ  画像圧縮・伸張ユニット
【図１】
2007108944.tif 000003
【図２】
2007108944.tif 000004
【図３】
2007108944.tif 000005
【図４】
2007108944.tif 000006
【図５】
2007108944.tif 000007
【図６】
2007108944.tif 000008
【図７】
2007108944.tif 000009
【図８】
2007108944.tif 000010