(57)【要約】  【課題】  複数の回路モジュールがバスで接続されたＬＳＩにおいて、バス回路やある特定の処理回路の混雑が生じても、システムオンチップの潜在性能を十分に引き出せるデータ処理装置を提供する。  【解決手段】  アクセスが集中するバス回路回路ＳＢＳ、ＰＢＳ１，２及びスレーブ回路に状態監視機構ＥＳＢＳ，ＥＰＢＳ１，２を設ける。状態監視機構はクロック制御回路ＣＰＧなどのシステム制御回路や、ＣＰＵコアなどマスタ回路に、得られた状態を通知する機構を有し、更に、マスタ回路にはバス回路やスレーブ回路に処理の優先順位を通知するための優先順位を動的に切替できる機構ＰＲＩＯが設けられる。【選択図】  図１
2006079394.tif 000002
【特許請求の範囲】
【請求項１】
複数の回路が接続されるバスと、前記バス上のデータ転送を制御するバス回路と、前記バスの動作周波数を決定し、前記バスにクロック信号を供給するクロック制御回路とが一つの半導体基板に形成されるデータ処理装置であって、
前記バス回路は、前記バス上のデータ転送を監視する第１状態監視機構を有し、
前記第１状態監視機構は、前記バス上のデータ転送の状態を示す第１情報を前記クロック制御回路に通知し、
前記クロック制御回路は、前記第１情報を用いて、前記クロック信号の周波数を変更することを特徴とするデータ処理装置。
【請求項２】
請求項１において、
前記データ処理装置は、前記バスに接続されるバスマスタ及び第１バススレーブとを更に具備し、
前記バスは、前記バスマスタから前記第１バススレーブへデータを転送させる第１要求を伝えるリクエストバスと、前記第１要求に対する応答を伝達するレスポンスバスを独立に備え、
前記バスマスタは、前記第１バススレーブに対し、データの転送を要求する第１要求を前記リクエストバスを介して発行し、
前記第１バススレーブは、前記第１要求を受け、前記第１要求に対応するデータを前記バスマスタに転送することを要求する第２要求を前記リクエストバスを介して発行することを特徴とするデータ処理装置。
【請求項３】
請求項２において、
前記第１状態監視機構は、前記第１要求が受け付けられた数と、前記第１要求が発行された後前記第１要求が受付られるまでのバスサイクル数と、前記第２要求が受け付けられた数と、前記第２要求が発行された後前記第２要求が受け付けられるバスサイクル数とをカウントし、前記カウントの結果に基づいて、前記第１情報を出力することを特徴とするデータ処理装置。
【請求項４】
請求項２において、
前記データ処理装置は、前記バスマスタからアクセスされる第２バススレーブと、前記第２バススレーブが接続される第２バスと、前記第１バスと前記第２バスとの間に接続されるバスブリッジ回路とを更に具備することを特徴とするデータ処理装置。
【請求項５】
請求項４において、
前記第１バススレーブは、前記第１バススレーブの動作状態を監視する第２状態監視機構を有し、
前記第２バススレーブは、前記第２バススレーブの動作状態を監視する第３状態監視機構を有し、
前記データ処理装置は、前記第２及び第３状態監視機構が監視した情報を保持するための状態参照回路を更に具備し、
前記バスマスタは、第１タスクと第２タスクを時分割で実行する場合に、前記状態参照回路に保持された情報に基づいて、前記第１タスクと前記第２タスクの実行順序を決定することを特徴とするデータ処理装置。
【請求項６】
請求項１において、
前記第１状態監視機構は、所定サイクル周期で前記第１情報を出力することを特徴とするデータ処理装置。
【請求項７】
請求項４において、
前記データ処理装置は、前記データ処理装置の外部に情報を出力するインターフェースを有し、
前記第１乃至第３状態監視機構は、所定サイクル周期で監視結果を前記インターフェースに出力することを特徴とするデータ処理装置。
【請求項８】
第１及び第２バスマスタを有するデータ処理装置であって、
前記第１バスマスタは、論理アドレスを物理アドレスに変換する第１変換回路を有し、
前記第２バスマスタは、論理アドレスを物理アドレスに変換する第２変換回路を有し、
前記第１及び第２変換回路の夫々は、優先度設定ビットを有し、
前記優先度設定ビットは、プログラムにより書き換え可能であり、
前記データ処理装置は、前記優先度設定ビットに設定された優先度に基づいて、前記第１バスマスタのバスアクセスと前記第２バスマスタのバスアクセスの一方を選択することを特徴とするデータ処理装置。
【請求項９】
請求項８において、
前記第１及び第２変換回路の夫々は、複数のエントリを有し、前記複数のエントリの夫々に前記優先度設定ビットを有することを特徴とするデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムの状態を観測する状態監視機構を有するＬＳＩに係り、特に半導体基板上に形成される状態監視機構を備えたデータ処理装置に関する。ここで、本発明が対象とするＬＳＩは、セントラルプロセッシングユニット（ＣＰＵ）やディジタルシグナルプロセッサ（ＤＳＰ）などの演算回路と、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）などの記憶回路へのインタフェースを含むＬＳＩチップである。
【背景技術】
【０００２】
ＬＳＩの集積度の向上に伴い、ＬＳＩはＣＰＵ単体からシステムオンチップ（ＳＯＣ）へ移行し、システムとしての性能を問われる傾向がますます強くなってきている。一つのＬＳＩに多数の回路モジュールが組み込まれるようになると、プログラマの想定外の性能バグを引き起こすことがしばしば発生する。例えば、チップ内で回路モジュール同士を接続するバスに各回路からのアクセス要求が集中し、動画に必要な転送バンド幅が得られず、動画がスムーズに表示されないなどがこの典型例である。
【０００３】
ここで、最も性能を要求される状態を想定してバス幅を増やしたり、演算器の並列度を高めるなどの物量をつぎ込む方針は、コスト高を招き破綻をきたす。
【０００４】
しかし、上記のような処理が混雑する場合においても、実際にはリアルタイム性が低く、急ぐ必要のない処理が存在し、処理方式の最適化により多くの物量をつぎ込まずとも解決できる場合が大部分である。
【０００５】
従来これに対して、バスに接続された回路間のバス権取得に関する優先順位を、バス回路が有する優先順位設定レジスタに指定することによりバス上の処理順序の最適化を図る方法や、予め設定したバス上の転送量との比較によりバス権に関する優先順位を決定するものなどがある。
【０００６】
このようなバス上の処理に関連する従来例としては、例えば特許文献１や、特許文献２などがを挙げられる。
【０００７】
特許文献１はバス制御装置に関し、プログラム群ごとに、制御バスの使用権につき優先順位をプログラム郡内に設定することにより、制御バスの使用円滑化することが記載されている。
【０００８】
特許文献２は、バス性能を監視する方法及びシステムに関し、チップ外のバスに対する使用状態の測定が述べられている。
【０００９】
【特許文献１】特開平９−２６５４４６号公報
【特許文献２】特開平１０−０６３６１５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、ＬＳＩに多数の回路モジュールが集積されるようになると、バス回路のみならず、ユニバーサルシリアルバス（ＵＳＢ）などの外部インターフェース（Ｉ／Ｆ）制御回路や、特定用途演算器での処理が混雑することが往々にして発生し、システム全体の状態をフィードバックして最適化する必要性が増す。
【００１１】
すなわち、複数の回路がバス回路で接続されたＬＳＩにおいて、バス回路や、ある特定の処理回路の混雑により、ＬＳＩ全体としての潜在性能を十分に引出せないという問題がある。
【００１２】
なお、特許文献１および２には、オンチップ内のバスに対する使用状態の測定と、その測定結果に基づくフィードバック機構については、述べられていない。
【００１３】
以下、本明細書において、自らが他の回路にアクセス要求を出す回路、例えば、ＣＰＵ、ＭＰＥＧデコーダやグラフィックス処理回路といった画像情報を処理する回路などを、マスタ回路と記述し、逆に他の回路からのアクセス要求を受けて処理を行う回路、例えばメモリインタフェースなどを、スレーブ回路と記述する。
【００１４】
そこで本発明の目的は、システム全体の状態をフィードバックして最適化が可能なデータ処理装置を提供することにある。
【課題を解決するための手段】
【００１５】
本明細書に開示される発明のうち代表的なものの概要を簡単に説明すれば、次の通りである。すなわち、本明細書に開示される一つのデータ処理装置は、複数の回路が接続されるバスと、バス上のデータ転送を制御するバス回路と、バスの動作周波数を決定し、バスにクロック信号を供給するクロック制御回路とが一つの半導体基板に形成されるデータ処理装置であって、バス回路は、バス上のデータ転送を監視する第１状態監視機構を有し、第１状態監視機構は、バス上のデータ転送の状態を示す第１情報をクロック制御回路に通知し、クロック制御回路は、第1情報を用いて、クロック信号の周波数を変更することを特徴とするものである。
【００１６】
また、本明細書に開示される他のデータ処理装置は、第１及び第２バスマスタを有するデータ処理装置であって、第１バスマスタは、論理アドレスを物理アドレスに変換する第１変換回路を有し、第２バスマスタは、論理アドレスを物理アドレスに変換する第２変換回路を有し、第１及び第２変換回路の夫々は、優先度設定ビットを有し、優先度設定ビットは、プログラムにより書き換え可能であり、データ処理装置は、優先度設定ビットに設定された優先度に基づいて、第１バスマスタのバスアクセスと第２バスマスタのバスアクセスの一方を選択することを特徴とするデータ処理装置。
【発明の効果】
【００１７】
本発明によれば、データ処理装置の性能向上を図ることができる。
【発明を実施するための最良の形態】
【００１８】
本発明では、次の２つの機構を付加する。一つは処理要求が集中する各バス回路およびスレーブ回路に状態監視機構を設け、この状態を要求元であるマスタ回路およびクロック制御回路などのシステム制御回路にフィードバックする機構である。もう一つはマスタ回路内に処理内容の優先順位を動的に切替できる機構を設け、バス回路やスレーブ回路にこの情報を通知する機構である。以下、添付図面を参照しながら詳細に説明する。
【実施例１】
【００１９】
図１は、本発明に係る状態監視機構を有するデータ処理装置の構成を示す図である。本発明に係るデータ処理装置は、特に制限されないが一つの半導体基板上に形成されるＬＳＩである。図１に示すように、このＬＳＩは、ＣＰＵコア（ＣＰＵ−ＣＯＲＥ）と、システムバス回路ＳＢＳと、このシステムバス回路ＳＢＳと周辺バスＰＢＳ１との間のプロトコル変換を行うバスブリッジ回路ＰＢＲ１と、システムバス回路ＳＢＳと周辺バスＰＢＳ２との間のプロトコル変換を行うバスブリッジ回路ＰＢＲ２と、ＣＰＵコアを介さずにシステムバス上のデータの転送を行うためのダイレクト・メモリ・アクセス制御回路ＤＭＡと、ＤＲＡＭ制御回路ＤＭＩＦと、ＳＲＡＭ／ＲＯＭ制御回路ＳＭＩＦと、３Ｄグラフィックスアクセラレータ３ＤＧと、２Ｄグラフィックスアクセラレータ２ＤＧと、ＵＳＢインタフェースコントローラＵＳＢと、ビデオ入力回路ＶＤＯと、クロック制御回路ＣＰＧと、割り込み制御回路ＩＮＴＣなど、その他周辺回路を含むＬＳＩである。
【００２０】
また、これら回路以外にも、マスタ回路からの処理要求が集中する回路（各バス回路、および、スレーブ回路）には、状態監視回路が設けられている。ＥＳＢＳはシステムバス上の状態監視機構、ＥＰＢＳ１は周辺バスＰＢＳ１上の状態監視機構、ＥＰＢＳ２は周辺バスＰＢＳ２上の状態監視機構、ＥＳＭＩＦはＳＲＡＭ／ＲＯＭ制御回路ＳＭＩＦの状態監視機構、ＥＤＭＩＦはＤＲＡＭ制御回路ＤＭＩＦの状態監視機構、ＥＤＭＡはＤＭＡの状態監視機構、Ｅ３ＤＧは３Ｄグラフィックスアクセラレータ３ＤＧの状態監視機構、Ｅ２ＤＧは２Ｄグラフィックスアクセラレータ２ＤＧの状態監視機構、ＥＵＳＢはＵＳＢインタフェースコントローラＵＳＢの状態監視機構、ＥＶＤＯはビデオ入力回路ＶＤＯの状態監視機構である。
【００２１】
中央解析回路ＣＡＮＬＺは、これらの状態監視機構から得られた情報を纏める回路であり、ＣＡＮＬＺは上記状態監視機構から得られた各監視対象回路の状態をＣＰＵコアなどから参照できるための回路部ＭＳＴＡＴと、指定したサイクル周期でトリガを発するＰＴＲＧ回路を含む。なお、本願明細書では、各状態監視機構及び中央解析回路ＣＡＮＬＺをつなぐ信号線群をＡＮＥＴと呼ぶものとする。
【００２２】
＜状態計測部の詳細＞
ここで、状態計測部について説明する。状態監視機構には、監視対象の回路の種類によりいくつかのタイプがある。代表例としては、バスの状態を監視するタイプと、スレーブ回路の状態を監視するタイプがある。以下、順に説明する。
【００２３】
図１０に、バスの状態を監視するタイプとして、バス状態監視機構ＥＳＢＳのブロック図を示す。ＥＳＢＳはシステムバスＳＢＳの状態を監視・計測し、その結果を他の回路に通知する回路である。本例で示すシステムバスは、バスマスタからバススレーブへの要求を伝えるリクエストバスと、その要求に対する返答を伝達するレスポンスバスを独立に備えるスプリット構造であり、それぞれのバス状態監視機構ＥＳＢＳも、両方のバスを監視する。
【００２４】
リクエストバスを監視するために、リクエストバス要求ＲＥＱ、リクエストの境界を示すエンド・オブ・パケットＥＯＰ、リクエストバス要求が許可されたことを示すリクエストバス・グラントＧＮＴ（アクノレッジ）、リクエストバス・コマンドＯＰＣ、リクエストバス・要求を発行したマスタ回路を識別するためのＩＤであるＳＲＣ、リクエストバス・アドレスＡＤＤ、ライトデータＤＡＴＡをシステムバスからの入力として持つ。レスポンスバスを監視するために、レスポンスバス要求Ｒ＿ＲＥＱ、レスポンスバス・要求の境界を示すエンド・オブ・パケットＲ＿ＥＯＰ、レスポンスバス要求が許可されたことを示すレスポンスバス・グラントＲ＿ＧＮＴ（アクノレッジ）、リクエストを発行したマスタ回路を識別するためのＩＤであるＲ＿ＳＲＣ、リードデータＲ＿ＤＡＴＡをシステムバスからの入力として持つ。なお、同図中で示した括弧内の×Ｍ、×Ｓは、それぞれバスマスタ、バススレーブの数を示している。
【００２５】
その他の信号としては、他の回路ブロックとの同期動作を行うためのＳＹＮＣＩ、ＳＹＮＣＯ、ＳＢＳの状態監視情報を伝達するＰＰＣとＳＴＡＴを持つ。ＰＰＣは、ある指定した期間のバスの使用状況などを示し、ＳＴＡＴは現在のバスの使用状況を示す。これらの信号のうちＳＹＮＣＯ、ＳＹＮＣＩ、ＰＰＣ、ＳＴＡＴは図１のＡＮＥＴに含まれる信号であり、他の状態監視機構あるいは中央解析回路ＣＡＮＬＺとこれらを通じて接続されている。
【００２６】
バス状態監視機構ＥＳＢＳの内部構成を述べる。ＥＳＢＳは、監視条件を指定するための制御レジスタブロックＲＥＧＳと、制御レジスタＲＥＧＳで指定された観測条件とシステムバスＳＢＳから入力された観測信号の値を比較し条件に一致したことを検出する回路ＣＭＰと、ＣＭＰからの比較結果をうけて制御レジスタＲＥＧＳで指定された処理をおこなう回路ＡＣＣとから構成される。また、ＣＭＰは検出したタイミングを他の回路（状態監視機構あるいは中央解析回路）にＳＹＮＣＯを通じて送信することができ、また逆に他の回路（状態監視機構あるいはＣＡＮＬＺ）が検出したタイミングをＳＹＮＣＩを通じて受けることができ、複数の状態監視機構の同時動作やシーケンシャル動作が可能となる。
【００２７】
ＡＣＣが行う動作としては、状態監視情報を生成しＰＰＣ信号やＳＴＡＴを通じて情報を送信することである。ＢＣＢＲは監視条件を指定するためのレジスタであり、下記状態監視項目、バスコマンドのサイズ、種類、ＳＹＮＣＩによる同期測定を行うかどうかなどを指定する。ＢＣＡＲはＢＣＢＲに付随するレジスタで対象とするバストランザクションのアドレスを指定する。ＢＣＭＩＤもＢＣＢＲに付随するレジスタで対象とするバストランザクションの要求元のマスタ回路と要求先のスレーブ回路を指定する。
【００２８】
データ処理装置の性能向上のためには、ここで生成される状態監視情報を用いる。ＥＳＢＳの状態監視項目とその生成方法について以下に示す。
【００２９】
＜リクエストバス要求受付回数のカウント＞
ＲＥＱ、ＥＯＰ、ＧＮＴがすべて１（アクティブ）になった回数、即ち、リクエストバス要求が許可された（受け付けられた）数をカウントし、ＰＰＣ信号で伝達する。またこの時、制御レジスタブロックＲＥＧＳ内のレジスタＢＣＭＩＤに指定することで、特定のバスマスタ回路を指定することも可能である。また同様に、ＡＤＤ信号を比較条件に加えることでバス要求対象アドレスを指定することも可能である。
【００３０】
＜リクエストバス要求・ウェイト・サイクル数のカウント＞
リクエストバス要求ＲＥＱが１（アクティブ）かつリクエストバス・グラントＧＮＴが０になったバスサイクル数、即ち、リクエストバス要求ＲＥＱが発行されてから許可される(受け付けられる)までのバスサイクル数をカウントし、ＰＰＣ信号で伝達する。またこのとき、制御レジスタブロックＲＥＧＳ内のレジスタＢＣＭＩＤに指定することで、特定のバスマスタ回路を指定することも可能である。また同様に、リクエストバス・アドレスＡＤＤ信号を比較条件に加えることでバス要求対象アドレスを指定することも可能である。
【００３１】
＜レスポンスバス要求受付回数のカウント＞
レスポンスバス要求Ｒ＿ＲＥＱ、エンド・オブ・パケットＲ＿ＥＯＰ、レスポンスバス・グラントＲ＿ＧＮＴがすべて１（アクティブ）になった回数、即ち、レスポンスバス要求が発行され、許可された数をカウントし、ＰＰＣ信号で伝達する。またこのとき、制御レジスタブロックＲＥＧＳ内のレジスタＢＣＭＩＤに指定することで、特定のバススレーブ回路を指定することも可能である。
【００３２】
＜レスポンスバス要求・ウェイト・サイクル数のカウント＞
Ｒ＿ＲＥＱが１（アクティブ）かつＲ＿ＧＮＴが０であるバスサイクル数、即ち、レスポンスバス要求Ｒ＿ＲＥＱが発行されてから許可される(受け付けられる)までのバスサイクル数をカウントし、ＰＰＣ信号で伝達する。またこのとき、ＲＥＧＳ内のレジスタＢＣＭＩＤに指定することで、特定のバススレーブ回路を指定することも可能である。
【００３３】
次に図１１に、スレーブの状態を監視するタイプとして、ＤＲＡＭ制御回路ＤＭＩＦの状態監視機構ＥＤＭＩＦのブロック図を示す。ＤＭＩＦは、オンチップバス・インタフェースであるＢＵＳＩＦと、メモリ制御を行うＭＣＮＴＬを持ち、ＭＣＮＴＬの内部にマスタ回路から受け付けた要求を積んでおくキューＤＭＱを持つ。ＥＤＭＩＦは、そのＤＭＱの状態を監視するためのＤＭＱＳを入力として備える。このＤＭＱＳには、ＤＭＱに積まれている要求の数、実行されたコマンドの種類（リード／ライト、サイズなど）が含まれる。その他の信号としては、他の状態監視機構との同期動作を行うためのＳＹＮＣＩ、ＳＹＮＣＯ、ＤＭＩＦの状態監視情報を伝達するＰＰＣとＳＴＡＴを持つ。内部構成に関しては、バス状態監視機構ＥＳＢＳと同様である。
【００３４】
データ処理装置の性能向上のためには、ここで生成される状態監視情報を用いる。ＥＤＭＩＦの状態監視情報の項目とその生成方法について以下に示す。
【００３５】
＜ＤＭＩＦコマンド実行数＞
ＤＭＱＳにより通知された実行コマンド数の和をカウントし、ＰＰＣ信号を通じて送信する。コマンドの種類（リード／ライト）およびコマンドのサイズによる特定も可能である。
【００３６】
＜ＤＭＩＦ使用状況＞
ＤＭＱＳによって得られたＤＭＱに積まれている要求の数を、ＤＲＡＭ制御回路ＤＭＩＦの処理能力空き情報としてＳＴＡＴ信号を通じて送信する。ＤＭＩＦが使用されていない場合、ＳＴＡＴ信号値は０となる。
【００３７】
次に、状態監視機構の性能最適化への幾つかの実施例について説明する。
【実施例２】
【００３８】
本実施例では、図１に示すように、上記状態監視機構から得られた各監視対象回路の状態をＣＰＵコアから参照できるようにするための状態参照回路ＭＳＴＡＴを有している。
【００３９】
図４にＭＳＴＡＴの一例を示す。ＭＳＴＡＴを３２ビットのレジスタとして実装し、そのレジスタの各ビットがモジュールの使用可能な状態であるかどうかを示す。各回路が使用可能な状態にあるかどうかという情報は、図１における各状態監視回路ＥＳＢＳ、ＥＰＢＳ１、ＥＰＢＳ２、ＥＳＭＩＦ、ＥＤＭＩＦ、ＥＵＳＢ、Ｅ３ＤＧ、Ｅ２ＤＧ、ＥＤＭＡから、ＭＳＴＡＴに接続されるＳＴＡＴ信号により伝達される。例えば、状態参照回路ＭＳＴＡＴのビット０、１はＤＲＡＭ制御回路ＤＭＩＦが使用可能であるかどうかを示している。言い換えれば、ＤＭＩＦの持つコマンドキューＤＭＱの状態を示している。この値が０であれば完全に空いていることを示し、１以上であれば既に処理が予約されており処理要求を発行しても待ち時間が発生することを示す。
【００４０】
また、図１において、状態参照回路ＭＳＴＡＴはシステムバスＳＢＳ上の中央解析回路ＣＡＮＬＺ内部に実装されているが、例えば、ＣＰＵコア内部に実装されてもよい。ＣＰＵコア内に実装すると、ＣＰＵコアからＭＳＴＡＴへのアクセスレイテンシを最小とできるメリットがあるが、他の回路からのアクセスレイテンシは比較的大きくなる。また、複数の回路の内部に実装されてもよい。
【００４１】
次に、状態参照回路ＭＳＴＡＴを利用した性能向上の方法について記述する。ここではプログラムの移植性を考慮し、その一形態として、コード展開プログラムを利用する方法を示す。プログラマは、予め順序入れ替え可能な処理をコード展開プログラムが認識できる順序入れ替え指示詞により記述する。図２および図３はその一例であり、２つのタスク、ＴＡＳＫ０とＴＡＳＫ１を記述した場合である。図２は、順序入れ替え指示詞を埋め込んだプログラム例である。図３は、それをコード展開プログラムにより展開した結果のプログラムである。
【００４２】
図２において、ＳＷ１、ＳＰＦ０、ＥＰＦ０、ＳＰＦ１、ＥＰＦ１が順序入れ替え指示詞である。Ｔ０、Ｔ１部分は、それぞれタスク０、タスク１の実プログラム部分である。ＳＷ１は、ＴＡＳＫ０とＴＡＳＫ１が順序入れ替え可能であることを示す。ＳＰＦ０は、タスク０の開始、タスク０がＭＳＴＡＴの番号５に対応するリソースを使用することを示す。図４において、タスク０のＭＳＴＡＴの番号５に対応するリソースは、ＵＳＢを使用することを示す。ＥＰＦ０はタスク０の終了を示す。同様に、ＳＰＦ１は、タスク１の開始であること、タスク１がＭＳＴＡＴの番号２に対応するリソースを使用することを示す。したがって、図４においてタスク１はＳＭＦＩを使用することを示す。ＥＰＦ０はタスク１の終了を示す。これらの指示詞により、番号５に対応するリソースと番号２に対応するリソースの稼動状況から判断し、タスク０とタスク１の実行順序を動的に制御できる形態に展開可能となる。
【００４３】
展開結果の例である図３において、ＳＷ１はタスク０とタスク１の実行順序を指定するための条件式である。ＳＷ１では、ＭＳＴＡＴの番号５のレジスタにはビット１が立っているので、タスク０が使用する番号５に対応するリソースが使用可能な状態になく、タスク１が使用するＭＳＴＡＴの番号２のレジスタにはビット０が立っているので、対応するリソースは使用可能な状態であり、このような場合には、タスク０より先にタスク１を実行することを示す。Ｔ１、Ｔ０部分は図２と同様、それぞれ、タスク０、タスク１の実プログラム部分である。
【実施例３】
【００４４】
図５は、システムバスＳＢＳ上のバス混雑度監視機構ＥＳＢＳ、および、周辺バスＰＢＳ上のバス状態監視機構ＥＰＢＳからの情報を、クロック制御回路ＣＰＧへフィードバックする機構を示す。ＥＳＢＳＳ、ＥＰＢＳＳはそれぞれの監視回路からの情報伝達信号である。クロック制御回路ＣＰＧは、内部に分周期ＤＩＶを備え、基準クロックに対して分周を行い、そのクロックを各回路に供給する。本実施例においては、クロックＳＣＫをシステムバスＳＢＳへ、クロックＰＣＫを周辺バスＰＢＳに供給する。ここで、クロック制御回路ＣＰＧは、ＥＳＢＳＳ、ＥＰＢＳＳ信号により、バス状態を知り、その状態に合わせて、分周比設定を動的に変更し、これらバス回路への供給クロックを変更する。このように局所的な周波数変更により、必要な部分の動作周波数だけを上げることでき、電力および処理速度両面からの最適化が可能である。また、分周比の切り替えによる周波数変更であるため、サイクル単位での切り替えが可能である。
【００４５】
図８及び図９は、図５におけるシステムバスＳＢＳ上の転送を示し、図８は上記の機構を実施しない場合の信号波形図、図９は上記の機構を実施した場合の信号波形図である。波形中のＡＣＴは実際に有効な処理が行われている期間を示し、ＷＡＩＴはバスの混雑により待たされている期間を示す。Ｔ１の時点においてＣＰＵ、３ＤＧ、ＤＭＡからのバスアクセス要求が同時に発生する。この時、図９ではＴ１の時点において、バス状態監視機構ＥＳＢＳが複数のバスアクセス要求が発生していることを検知し、ＥＳＢＳＳを通じてクロック制御回路ＣＰＧにこれを伝える。ＣＰＧはこれを受けて、分周比を変更し、対象バス回路のクロック周波数ＳＣＫをＴ２の時点から２倍にする。逆に、Ｔ３の時点で、ＥＳＢＳがバス上のアクセスが混雑していないことを検知し、ＥＳＢＳＳを通じてクロック制御回路ＣＰＧにこれを伝える。ＣＰＧはこれを受けて分周比を変更し、対象バス回路のクロック周波数ＳＣＫをＴ１の時点の周波数に戻す。処理が混雑するＴ２からＴ３の期間だけ、転送バンド幅を２倍にすることができる。結果として、図９では、同様の転送に対して本実施例で述べたバス状態監視機構ＥＰＢＳからの情報をクロック制御回路ＣＰＧへフィードバックする機構を持たない図８と比較すると、Ｔ２からＴ３の期間で転送バンド幅を２倍にでき、転送に必要な時間がおおよそ半分となる。また、その他の部分の周波数は変化させないため、周波数向上による消費電力増加は最小におさえられる。本実施例の消費電力抑制に対する効果は、ＬＳＩ内のクロック電力がＬＳＩ全体の３割から５割程度を占めること、オンチップバス部分の活性化率が高いことを考慮すると、多くの場合３％から５％程度である。
【００４６】
以上のように、バス回路を含む処理の集中する複数の回路からの情報をフィードバックして、処理順序を指定する機構を設けたことにより処理待ち時間を削減し、ＬＳＩを使用したデータ処理装置の性能向上を図ることができる。
【実施例４】
【００４７】
ＬＳＩ内の各回路の状態を、ある一定期間ごとに同時に計測し出力する機構について述べる。この機構は、ある回路のリソース競合により引き起こされるシステム性能劣化を、短期間で緩和するために有効である。ＬＳＩの大規模化に伴い１チップに多数の機能が集積されるようになると、複数の処理がＬＳＩ上で同時実行され、予測するのが難しい性能劣化が発生する。リソース競合はバス、メモリ、共有演算器などで発生する。
【００４８】
しかし、このようなリソース競合の多くは、（１）競合する処理に対するリソース配分の割合を最適化すること、（２）競合する処理の開始タイミングを最適化することで性能改善が可能である。これら（１），（２）の最適化を効率よく行うためには、競合のタイミングとその処理の特定が必要である。本実施例は、その情報を与える機構である。
【００４９】
図１において、ＲＴＲＧは指定したサイクル周期でトリガを発するトリガ回路である。この周期的なパルスを、ＡＮＥＴに含まれるＳＹＮＣＩ信号を通じて各状態監視機構に送る。各状態監視機構はそのタイミングに合わせて計測状態を、ＰＰＣ信号を通じて中央解析回路ＣＡＮＬＺに送る。外部のツールがこれらの情報を専用のインタフェースＡＵＤＩＦを通じて情報を獲得する。
【００５０】
図１２は、このシステムを用いた性能最適化の一構成例である。このケースでは、カメラからの入力画像処理と、ＬＣＤへの表示処理と、複数画像の合成処理と、フォーマット変換処理と、ＭＰＥＧによる画像圧縮処理が同時に行われ、それらによるメモリアクセスが競合する。これらの競合する処理に対するメモリのリソース配分の割合を最適化することでシステム性能を改善できる。上記それぞれの処理は異なる回路、ここでは、カメラ入力画像処理が回路ＣＥＵで、ＬＣＤへの表示処理が回路ＬＣＤＣで、画像合成処理が回路ＢＥＵで、フォーマット変換処理が回路ＶＥＵで、画像圧縮処理が回路ＶＰＵでそれぞれ実行される。これらの回路はバスＳＢＳを介してメモリコントローラＤＭＩＦに接続されており、メモリリソースの割合はバスＳＢＳ内のアービタＡＲＢＴにより決定される。
【００５１】
本実施例におけるバスアービタＡＲＢＴは、この割合をレジスタ設定にて調整できる機構を備えることを特徴としている。
【００５２】
図１４は、本実施例によって得られた結果をグラフ化したものであり、それぞれの回路からのメモリアクセス要求数の時間分布を示す。なお、横軸は正規化された時間、縦軸は各処理ごとの実行数ＮＰＣを示している。これらすべての処理を完了するのに要する時間が小さいほど性能が高いといえる。ＣＥＵ、ＬＣＤＣ、ＢＥＵ、ＶＥＵ、ＶＰＵがメモリに対して発行したメモリアクセス要求数を、それぞれに接続された状態監視機構がカウントし、その結果を指定したサイクル周期でトリガを発するＰＴＲＧの発生する周期に合わせて出力している。ＡＵＤＩＦを通じて得たその結果をグラフ化したものである。
【００５３】
対象とするデータは、メモリアクセス要求数でなくともよく、ウェイト・サイクル数などでも同様である。本実施例のメモリリソースの割合をレジスタ設定にて調整できる機構を備えるアービタを用いることで、それぞれの処理が使用するメモリリソースの割合を知ることができ、上記ＡＲＢＴを効率よく調整することが可能となる。結果、レジスタ設定にて調整できる機構を備えていないアービタを用いる図１３の場合と比べて、図１４に示すように処理時間を１７％も大幅に削減できる。
【実施例５】
【００５４】
バスマスタ側処理優先順位を制御する構成について述べる。
上記で述べたように、共通のリソースを複数のマスタでどのように効率よく利用するかがシステム性能向上の鍵である。例えば、メモリでの競合が一例である。画像表示や圧縮などのメディア処理はリアルタイムで大容量の処理を必要とし、バスやメモリの大部分の帯域を使用する。ＶＧＡ（Video Graphics Array、640×480ドット）級の動画圧縮関連の処理では、３００ＭＢ／ｓ〜４００ＭＢ／ｓにも及ぶメモリアクセスが発生する場合がある。この時、残りの帯域をその他の機能モジュールで共同利用する必要がある。ＣＰＵなどは処理内容次第で優先的に処理すべき場合とそうでない場合があり、必要な帯域は処理ごとに異なる。優先的に処理しなければならない代表的なケースは、通信関係の割り込みである。この場合、処理に大きな遅延が発生するとデータの取りこぼしなどが発生する。一方、定期的なポーリング処理などは優先度が低くても問題ない。
【００５５】
処理優先順位を制御する構成として、ＣＰＵコア内の論理アドレスから物理アドレスへの変換回路ＴＬＢ（Translation Lookaside Buffer）回路内に、優先度設定ビットを付加する。図６に一例を示す。各行（Ｌ１、Ｌ２、Ｌ３、Ｌ４、…、Ｌｎ）が、それぞれのページエントリに対応する。ＶＰＮは仮想ページアドレス、ＰＰＮは物理ページアドレス、ＰＲＩＯは優先順位設定ビットである。その他のビットは、ＡＳＩＤは仮想ページプロセス識別子、Ｖは各エントリの有効ビット、ＳＺはページサイズビット、ＰＲは各エントリの保護レベル、ＳＨは複数のプロセスでのページ共有を指示するビット、Ｃはキャッシング有効ビットである。ＴＬＢのエントリごとに優先度を設定できることで、プログラマが意識する処理単位で優先度を動的に制御することが可能になる。
【００５６】
次に、その動作例を示す。
図７は複数のＣＰＵコア（ここでは、ＣＰＵＡ、ＣＰＵＢ）を含み、それらがあるスレーブ回路ＳＬＢを共有するシステムである。ＣＰＵＡ、ＣＰＵＢともに内部に上記優先順位設定ビットＰＲＩＯを含むＴＬＢ（ＴＬＢＡ、ＴＬＢＢ）を有する。ある時点Ｔ１において、ＣＰＵＡは、処理ＡＴ１を実行しており、これに伴いＴＬＢＡ中のエントリ４が使用されると想定する。この時、ＣＰＵＡはシステムバスＳＢＳを介してスレーブ回路ＳＬＢに対して、エントリ４に付随する優先順位１の情報を伴う要求ＡＴＴ１を発行する。優先順位に関して、数字の高いものほど順位も高いとする。その直後の時点Ｔ２において、ＣＰＵＢは、処理ＢＴ２を実行しており、これに伴いＴＬＢ中のエントリ１が使用されると想定する。この時、ＣＰＵＢはシステムバスＳＢＳを介してスレーブ回路ＳＬＢに対して、エントリ１に付随する優先順位３の情報を伴う要求ＢＴＴ２を発行する。
【００５７】
一方、スレーブ回路ＳＬＢは、受け付けた要求を保持しておくための処理キューＱ０、Ｑ１、Ｑ２と、処理部ＣＬＣをもつ。処理部ＣＬＣによる順序は処理キューＱ０、Ｑ１、Ｑ２の順である。まず、上記ＣＰＵＡからの要求とＣＰＵＢからのアクセス要求を順に受け付け、内部の処理キューにＡＴＴ１、ＢＴＴ２の順に格納する。次に、スレーブ回路ＳＬＢは処理キュー内の優先順位ＰＲＩＯに基づき、ＢＴＴ２をＡＴＴ１に対して先に実行するよう、処理キュー内で順序変更する。
【００５８】
なお、上記のような複数のＣＰＵコア間の優先順位制御を行う場合、必ずしも、両方のＣＰＵコアが優先順位を動的に変更できる仕組みを持たなくともよい。たとえば、片方は中間レベルの固定順位とするなどが考えられる。また、優先順位制御機構は、必ずしも、ＣＰＵコアのみが持つものではない。他のグラフィックスアクセラレータなど他のマスタ回路が装備する場合もこの対象となる。
【００５９】
以上、本発明の好適な実施例について説明したが、本発明は上記実施例に限定されるものではなく、本発明の精神を逸脱しない範囲内において、種々の設計変更をなし得ることは勿論である。
【図面の簡単な説明】
【００６０】
【図１】本発明に係る状態監視機構付ＬＳＩの構成図。
【図２】本発明に係る状態監視機構を利用したプログラムの一例を示す順序入れ替え指示詞を埋め込んだプログラム。
【図３】図２のプログラムをコード展開プログラムにより展開した結果のプログラム。
【図４】状態参照回路ＭＳＴＡＴの一構成例を示す図。
【図５】バス状態の分周比へのフィードバック構成図
【図６】処理優先度ビット付ＴＬＢの一例を示す図。
【図７】処理優先度ビット付ＴＬＢ利用システムの一例を示す図。
【図８】図５におけるシステムバスＳＢＳ上の転送を示し、分周比設定を動的に変更しない場合の信号波形図。
【図９】図５におけるシステムバスＳＢＳ上の転送を示し、分周比設定を動的に変更する場合の信号波形図。
【図１０】バス状態監視機構ＥＳＢＳのブロック図。
【図１１】ＤＲＡＭ制御回路の状態監視機構ＥＤＭＩＦのブロック図。
【図１２】各回路の状態をある一定期間ごとに同時に計測し出力する本発明システムを用いた性能最適化の一構成例示す図。
【図１３】メモリリソースの割合をレジスタ設定にて調整できる機構の無いアービタを用いる場合の回路からのメモリアクセス要求数の時間分布を示す図。
【図１４】メモリリソースの割合をレジスタ設定にて調整できる機構を備えるアービタを用いる場合の回路からのメモリアクセス要求数の時間分布を示す図。
【符号の説明】
【００６１】
２ＤＧ…２Ｄグラフィックスアクセラレータ、
３ＤＧ…３Ｄグラフィックスアクセラレータ、
ＡＤＣ…ＡＤ変換回路、
ＣＰＧ…クロック制御回路、
ＣＰＵ−ＣＯＲＥ…ＣＰＵコア、
ＤＭＡ…ダイレクト・メモリ・アクセス制御回路、
ＤＭＩＦ…ＤＲＡＭ制御回路、
Ｅ２ＤＧ…２Ｄグラフィックスアクセラレータ監視機構、
Ｅ３ＤＧ…３Ｄグラフィックスアクセラレータ監視機構、
ＥＤＭＩＦ…ＤＲＡＭ制御回路監視機構、
ＥＰＢＳ１，ＥＰＢＳ２…周辺バス監視機構、
ＥＳＢＳ…システムバス監視機構、
ＥＳＭＩＦ…ＳＲＡＭ／ＲＯＭ制御回路監視機構、
ＥＵＳＢ…ＵＳＢインタフェース制御回路監視機構、
ＥＶＤＯ…ビデオ入力回路監視機構、
ＩＮＴ…割り込み制御回路、
Ｉ２Ｃ…Ｉ２Ｃインタフェース制御回路、
ＭＳＴＡＴ…状態参照回路、
ＰＢＲ１，ＰＢＲ２…バスブリッジ回路、
ＰＢＳ１，ＰＢＳ２…周辺バス、
ＰＲＩＯ…優先順位指示ビット、
ＳＢＳ…システムバス、
ＲＴＲＧ…トリガ回路、
ＳＩＦ…シリアルインタフェース制御回路、
ＳＭＩＦ…ＳＲＡＭ／ＲＯＭ制御回路、
ＴＭＵ…タイマ回路、
ＵＳＢ…ＵＳＢインタフェース制御回路、
ＶＤＯ…ビデオ入力回路。
【図１】
2006079394.tif 000003
【図２】
2006079394.tif 000004
【図３】
2006079394.tif 000005
【図４】
2006079394.tif 000006
【図５】
2006079394.tif 000007
【図６】
2006079394.tif 000008
【図７】
2006079394.tif 000009
【図８】
2006079394.tif 000010
【図９】
2006079394.tif 000011
【図１０】
2006079394.tif 000012
【図１１】
2006079394.tif 000013
【図１２】
2006079394.tif 000014
【図１３】
2006079394.tif 000015
【図１４】
2006079394.tif 000016