(57)【特許請求の範囲】
【請求項１】
データ転送のためのバスと、
それぞれプロセスを処理単位とする処理機能を有し、上記バスに対してデータ転送要求を発行可能な複数の機能モジュールと、
上記プロセス毎に設定されたプロセス識別情報を、当該プロセスを処理する上記機能モジュールに対応付けて保持可能なプロセス識別情報保持部と、
上記バスに対するデータ転送要求の競合を調停するバスアービターと、を含み、
上記機能モジュールは、上記バスに対してデータ転送を要求する毎に、当該データ転送を要求するプロセスのプロセス識別情報を上記バスアービターに対して供給し、
上記バスアービターは、上記機能モジュールからのデータ転送要求毎に、供給された上記プロセス識別情報に基づいて、上記プロセス識別情報毎の処理の優先順位を決定し、その優先順位に従って上記バスに対するデータ転送要求の競合を調停することを特徴とする情報処理装置。
【請求項２】
上記複数の機能モジュールは、ＣＰＵを含み、
上記ＣＰＵは、プロセスの起動前に、当該プロセスの処理で使用される機能モジュールに対応するプロセス識別情報保持部に対して、当該プロセスに対応するプロセス識別情報を設定する請求項１記載の情報処理装置。
【請求項３】
上記プロセス識別情報保持部は、上記機能モジュール内に配置されたレジスタとされる請求項２記載の情報処理装置。
【請求項４】
上記プロセス識別情報と上記優先順位とが対応付けられたテーブルを含み、上記バスアービターは、上記テーブルを参照して上記プロセス識別情報毎の処理の優先順位を決定する請求項３記載の情報処理装置。
【請求項５】
上記テーブルは、記憶情報の更新が可能とされる請求項４記載の情報処理装置。
【請求項６】
外部入力に応じて上記テーブルの記憶内容が更新される請求項５記載の情報処理装置。
【請求項７】
上記バスはスプリットトランザクション型のバスとされ、
上記プロセス識別情報は、上記機能モジュールからのデータ転送要求に対する許可信号がアサートされたサイクルで、上記バスのサイドバンド信号により上記バスアービターに供給される請求項６記載の情報処理装置。
【請求項８】
データ転送のためのバスと、
それぞれプロセスを処理単位とする処理機能を有し、上記バスに対してデータ転送要求を発行可能な複数の機能モジュールと、
上記プロセス毎に設定された優先度情報を、当該プロセスを処理する上記機能モジュールに対応付けて保持可能な優先度情報保持部と、
上記バスに対するデータ転送要求の競合を調停するバスアービターと、を含み、
上記機能モジュールは、上記バスに対してデータ転送を要求する毎に、当該データ転送を要求するプロセスの優先度情報を上記バスアービターに供給し、
上記バスアービターは、上記機能モジュールからのデータ転送要求毎に、供給された上記優先度情報に基づく優先順位に従って上記バスに対するデータ転送要求の競合を調停することを特徴とする情報処理装置。
【請求項９】
上記複数の機能モジュールは、ＣＰＵを含み、
上記ＣＰＵは、プロセスの起動前に、当該プロセスの実行に使用される機能モジュールに対応する優先度情報保持部に対して、当該プロセスに対応する優先度情報を設定する請求項８記載の情報処理装置。
【請求項１０】
上記優先度情報保持部は、上記機能モジュール内に配置されたレジスタとされる請求項９記載の情報処理装置。
【請求項１１】
上記バスはスプリットトランザクション型のバスとされ、
上記優先度情報は、上記機能モジュールからのデータ転送要求に対する許可信号がアサートされたサイクルで、上記バスのサイドバンド信号により上記バスアービターに供給される請求項１０記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置におけるバス調停技術に関し、例えばマイクロコンピュータ（マイクロプロセッサやデータプロセッサなどと呼ばれることもある）に適用して有効な技術に関する。
【背景技術】
【０００２】
特許文献１には、バスアービトレーションにおける即時応答性を改善させるための技術が記載されている。それによれば、バスアービターと共有バスに接続されるユニットを信号線で結び、バス競合がある時は、該信号線に送出されるプライオリティ情報によって、バス使用を許可するユニットを決定する。また、バスアービター自身も共有バスに接続されることにより、プロセッサユニットから優先順位の情報の更新を可能とする。
【０００３】
特許文献２には、システムの性能を向上させるための技術が記載されている。それによれば、複数のリクエスタによる共有バスを介しての共有資源へのアクセス要求の調停を行うバスアービトレーション装置であって、複数のリクエスタのうち少なくとも１つのリクエスタは、その内部の状態に応じて、そのリクエスタによるアクセス要求の優先順位を変更すべきであることを通知する内部状態信号を出力する。そして当該バスアービトレーション装置は、前記内部状態信号に基づいて、前記アクセス要求の調停を行う。
【０００４】
特許文献３には、バスバンド幅の使用効率に偏りが出るのを改善するための技術が記載されている。それによれば、メモリスケジューラにおいて、メモリアクセス集計部がメモリアクセスコマンドからプロセスＩＤ毎のバス使用率を集計し、バス使用率比較部がメモリアクセス集計部の集計結果と閾値設定部に設定された閾値とを比較する。この比較結果に応じて、メモリスケジューラはプロセススケジューラに割り込みをかける。プロセススケジューリング変更部は、メモリスケジューラからの割り込みを受け、ＣＰＵコアのプロセススケジューリング条件を、プロセスの優先度からプロセスのバス使用率に変更する。
【０００５】
特許文献４には、ユーザから指定される画面上の特定のウインドウ選択により、該当プロセスの優先順位をソフトウェアにより上げるようにした技術が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平７−１３４６８９号公報
【特許文献２】特開２００８−４０６５０号公報
【特許文献３】特開２００７−４１７７１号公報
【特許文献４】特開平４−２５０５２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本願発明者は、従来のバス調停技術をＳｏＣ（System-on-a-chip）に適用ことについて検討したところ、以下の理由でバスが破綻する虞れのあることが見いだされた。
【０００８】
（１）ＣＰＵ（Central Processing Unit：中央処理装置）を複数使用するものを「マルチＣＰＵ」という。このマルチＣＰＵとＡＶ（audio/visual）系のＩＰを搭載する高性能ＳｏＣにおいては、主記憶メモリ（ＤＤＲ（Double-Data-Rate）メモリなど）のバスバンド幅が十分ではなく、リアルタイム性ＩＰを全て同時動作させると、バスが破綻する虞れがある。ここで「ＩＰ（Intellectual Property）」とは、ＬＳＩ（Large Scale Integration）を構成するための部分的な回路情報で、機能単位にまとめられているものを指す。
【０００９】
（２）上記（１）における個別のアプリケーション動作では、複数のＩＰやＣＰＵが連動して動く構成になっており、さらにＩＰ又はＣＰＵがアプリケーションの種類によってリアルタイム性の動作を要求されたり、最大限の動作を要求されたりと、様々に変化する。
【００１０】
（３）上記（１）においては、ＣＰＵやＧＰＵ（Graphics Processing Unit）、ビデオ処理部などが複数のプロセスを並列実行できる構成になっており、バスの優先順位がＣＰＵ、ＩＰ単位ではなく、プロセス単位で異なる構成になってきている。ここで「プロセス」とは、マイクロコンピュータにおける処理の単位であり、ユーザのアプリケーションに対応しているソフトウェアに相当する。具体的には、メディアプレイヤーの再生や、カーナビゲーションにおけるルート検索などがある。これらのアプリケーションソフトウェアは、ＨＭＩ（Human Machine Interface）からの入力動作（これは例えば、タッチパネル型ディスプレイに触れる操作や、ボタンを押す動作、外的環境の変化（これは例えばカーナビゲーションのルート検索に関しては、ＧＰＳの捕捉情報が更新された、道路交通情報、道路渋滞情報が更新されたなどさまざまな要因がある）に相当する）によって起動される。アプリケーションが一旦起動されると、そのアプリケーションの実行のために、ＣＰＵやＩＰは連携して処理を行っていく。例えば、メディアプレイヤーの再生動作では、ＣＰＵによるデータベースの検索やＩＰに入力できる形のファイル変換や、Ａｕｄｉｏ（オーディオ）／Ｖｉｄｅｏ（ビデオ）の同期処理、Ｖｉｄｅｏ・ＩＰによるビデオデータのデコード、Ａｕｄｉｏ・ＩＰによるオーディオデータのデコードがパイプライン動作として処理される。したがって、上記ＣＰＵ、Ｖｉｄｅｏ・ＩＰ、Ａｕｄｉｏ・ＩＰはバス権の取得において、同じ優先順位で扱われると動作効率が上がるが、逆にどれかひとつの優先権を高くすると、他のＩＰでの処理が待たされる結果、全体の処理能力が低下することが考えられる。
【００１１】
（４）さらに、上記（１）の条件において、ＨＭＩからの入力に対応したアプリケーションの優先順位の変化に対応したバス優先度を制御することが必要になってきている。しかし、特許文献１〜４には、上記ＨＭＩからの要求に対してバスの優先権を変更することについては考慮されていない。
【００１２】
転送要求を出している処理プログラムの属性や転送データの格納位置の情報により転送するデータの種類を判別して、その緊急性を判別することが考えられるが、同じプログラムであっても、アプリケーションによって緊急性の異なる処理があり、緊急性についてプログラムだけでは判断できない。例えば画面合成エンジンの動作についても、動画の再生画像を含む動作ではリアルタイム要求が高いが、メニュー画面等の静止画に近い画像を扱う場合、リアルタイム制は低くなる。また、ＩＰが有するタイマー機能で、一定時間に対するデータの処理の進捗を図り、進捗が悪くなると、緊急度を上げる方式が考えられるが、そのような方式によっても、上記の課題を解決することはできない。
【００１３】
本発明の目的は、プロセス単位で優先度を制御することによって、情報処理装置全体の処理能力を向上させるための技術を提供することある。
【００１４】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１５】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１６】
すなわち、データ転送のためのバスと、それぞれプロセスを処理単位とする処理機能を有し、上記バスに対してデータ転送要求を発行可能な複数の機能モジュールとを設ける。また、上記プロセス毎に設定されたプロセス識別情報を、当該プロセスを処理する上記機能モジュールに対応付けて保持可能なプロセス識別情報保持部を設ける。さらに上記機能モジュールからのデータ送要求毎に、対応する上記プロセス識別情報毎の処理の優先順位を決定し、その優先順位に従って上記バスに対するデータ転送要求の競合を調停するバスアービターを設ける。
【発明の効果】
【００１７】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１８】
すなわち、プロセス単位で優先度を制御することによって、情報処理装置全体の処理能力を向上させるための技術を提供することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明にかかる情報処理装置の一例とされるマイクロコンピュータの構成例ブロック図である。
【図２】図１に示されるマイクロコンピュータにおいて、ＩＰモジュールとバスとの間でやり取りされる信号の説明図である。
【図３】図１におけるＣＰＵでの処理とＩＰモジュール（ＤＤＲコントローラ）での処理との関係説明図である。
【図４】図１におけるＣＰＵでの処理とＩＰモジュール（ＤＤＲコントローラ及びＰＣＩエクスプレス）との関係説明図である。
【図５】図１におけるＣＰＵでの処理とＩＰモジュール（ＤＤＲコントローラ、ＰＣＩエクスプレス、ＭＰＥＧビデオデコーダ）との関係説明図である。
【図６】本発明にかかる情報処理装置の一例とされるマイクロコンピュータの別の構成例ブロック図である。
【図７】図１に示されるマイクロコンピュータにおけるプロセスＩＤの設定の流れを示すフローチャートである。
【図８】図１に示されるマイクロコンピュータにおけるプロセスＩＤ設定レジスタの設定例の説明図である。
【図９】図１に示されるマイクロコンピュータにおけるテーブルの構成例説明図である。
【発明を実施するための形態】
【００２０】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００２１】
〔１〕本発明の代表的な実施の形態に係る情報処理装置（１）は、データ転送のためのバス（２５）と、それぞれプロセスを処理単位とする処理機能を有し、上記バスに対してデータ転送要求を発行可能な複数の機能モジュール（１０，１１，１２，２０，２２，２３）とを含む。また、上記情報処理装置（１）は、上記プロセス毎に設定されたプロセス識別情報（プロセス識別ＩＤ）を、当該プロセスを処理する上記機能モジュールに対応付けて保持可能なプロセス識別情報保持部（１０１，１１１，１２１，２０１，２２１，２３１）を含む。さらに情報処理装置（１）は、上記機能モジュールからのデータ送要求毎に、対応する上記プロセス識別情報毎の処理の優先順位を決定し、その優先順位に従って上記バスに対するデータ転送要求の競合を調停するバスアービター（２６）を含む。上記機能モジュールは、ＣＰＵやＩＰモジュールを含む。ＩＰモジュールは、ＩＰ（Intellectual Property）によって提供されるモジュールを意味する。
【００２２】
上記の構成によれば、上記バスアービターは、上記プロセス識別情報保持部から出力されたプロセス識別情報に応じて、上記機能モジュールからの転送要求の競合の調停における優先順位を決定する。これによりプロセス単位で優先順位を制御することができるため、マルチプロセス対応の装置や、複数のプロセスを処理する装置において、プロセス単位での優先順位制御を行うことができる。このプロセス単位での優先順位制御は、他の機能モジュールでの処理状況を確認する必要がないので迅速に行うことができる。そしてそのような処理により、情報処理装置全体としての処理能力を向上させることができる。
【００２３】
〔２〕上記〔１〕において、上記複数の機能モジュールはＣＰＵを含む。上記ＣＰＵは、プロセスの起動前に、当該プロセスの処理で使用される機能モジュールに対応するプロセス識別情報保持部に対して、当該プロセスに対応するプロセス識別情報を設定するように構成することができる。このようにすることで、上記プロセス単位での優先順位制御を円滑に行うことができる。
【００２４】
〔３〕上記〔２〕において、上記プロセス識別情報保持部には、レジスタを適用することができる。上記レジスタは、上記各機能モジュール内に配置することができる。これにより、上記プロセス識別情報のリード及びライトを高速に行うことができる。
【００２５】
〔４〕上記〔３〕において、上記プロセス識別情報と上記優先順位とが対応付けられたテーブルを設けることができる。この場合において、上記バスアービターは、上記テーブルを参照して上記バス使用の優先順位を変更するように構成することができる。これにより、上記テーブルを参照することにより、上記バス使用の優先順位を容易に変更することができる。
【００２６】
〔５〕上記〔４〕において、上記テーブルは、記憶情報の更新が可能とされる。これにより、上記プロセス単位での優先順位制御を状況の変化に応じて円滑に行うことができる。
【００２７】
〔６〕上記〔５〕において、上記ＣＰＵは、外部入力に基づいて、上記優先順位を変更するように構成することができる。これにより、外部入力に応じて上記優先順位の変更を容易に行うことができる。上記外部入力は、ＨＭＩ（Human Machine Interface）による入力とすることができる。この場合において、ＨＭＩによる入力信号は、ＣＰＵで実行されるＯＳ（Operating System）に対する割り込みとして処理するように構成することができる。
【００２８】
〔７〕上記〔６〕において、上記バスはスプリットトランザクション型のバスとすることができる。このとき、上記プロセス識別情報は、上記機能モジュールからのデータ転送要求に対する許可信号がアサートされたサイクルで、上記バスのサイドバンド信号により上記バスアービターに供給される。サイドバンド信号は、スプリットトランザクション型のバスの既存の信号であるため、それを利用することで、プロセス識別情報を伝達するための信号を新たに設けないで済む。
【００２９】
〔８〕本発明の代表的な実施の形態に係る別の情報処理装置（１）は、データ転送のためのバス（２５）と、それぞれプロセスを処理単位とする処理機能を有し、上記バスに対してデータ転送要求を発行可能な複数の機能モジュール（１０，１１，１２，２０，２２，２３）とを含む。また情報処理装置（１）は、上記プロセス毎に設定された優先度情報を、当該プロセスを処理する上記機能モジュールに対応付けて保持可能な優先度情報保持部（１０２，１１２，１２２，２０２，２２２，２３２）と、上記機能モジュールからのデータ送要求毎に、対応する上記優先度情報に基づく優先順位に従って上記バスに対するデータ転送要求の競合を調停するバスアービター（２６）とを含む。上記バスアービターは、上記優先度情報保持部から出力された優先度情報に応じて、上記機能モジュールからの転送要求の競合の調停における優先順位制御を行うことができる。かかる構成によれば、上記優先度情報保持部から出力された優先度情報に応じて上記バス使用の優先順位を変更することができるので、上記〔１〕の場合と同様の効果を得ることができる。
【００３０】
〔９〕上記〔８〕において、上記複数の機能モジュールはＣＰＵを含む。上記ＣＰＵは、処理の円滑化を図るため、プロセスの起動前に、当該プロセスの実行に使用される機能モジュール内の優先度情報保持部に対して、当該プロセスに対応する優先度情報を設定するように構成することができる。このようにすることで、上記プロセス単位での優先順位制御を円滑に行うことができる。
【００３１】
〔１０〕上記〔９〕において、上記優先度情報保持部には、レジスタを適用することができる。これにより、優先度情報のリード及びライトを高速に行うことができる。
【００３２】
〔１１〕上記〔１０〕において、上記バスはスプリットトランザクション型のバスとすることができる。その場合に、上記優先度情報は、上記機能モジュールからのデータ転送要求に対する許可信号がアサートされたサイクルで、上記バスのサイドバンド信号により上記バスアービターに供給されるように構成することができる。サイドバンド信号は、スプリットトランザクション型のバスの既存の信号であるため、それを利用することで、プロセス識別情報を伝達するための信号を新たに設けないで済む。
【００３３】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００３４】
《実施の形態１》
図１には、本発明にかかる情報処理装置の一例とされるマイクロコンピュータの構成例が示される。
【００３５】
図１に示されるマイクロコンピュータ１は、特に制限されないが、ＳｏＣ（System-on-a-chip）とされ、公知の半導体集積回路製造技術により、単結晶シリコン基板などの一つの半導体基板に形成される。マイクロコンピュータ１は、バス２５に結合された複数の機能モジュールを含む。ここで機能モジュールは、容易に追加や削除ができ、ひとまとまりの機能を持った部品を意味する。このような機能モジュールには、ＣＰＵ（Central Processing Unit：中央処理装置）１０,１１，１２、ＩＰモジュール２０，２１，２２，２３が含まれる。ここでＩＰモジュール２０，２１，２２，２３は、ＩＰ（Intellectual Property）によって提供されるモジュールを意味する。ＣＰＵ１０,１１，１２、及びＩＰモジュール２０，２１，２２，２３は、バス２５を介して互いに結合されている。
【００３６】
ＣＰＵ１０,１１，１２は、それぞれ所定の演算処理を実行する。ＣＰＵ１０,１１，１２には、それぞれプロセスの識別情報（「プロセスＩＤ」という）を格納するための記憶部としてのプロセスＩＤレジスタ１０１，１１１，１２１が設けられる。ここで「プロセス」とは、マイクロコンピュータにおける処理の単位であり、ユーザのアプリケーションに対応しているソフトウェアに相当する。具体的には、メディアプレイヤーの再生や、カーナビゲーションにおけるルート検索などがある。これらのアプリケーションソフトウェアは、ＨＭＩ（Human Machine Interface）からの入力動作（これは例えば、タッチパネル型ディスプレイに触れる操作や、ボタンを押す動作、外的環境の変化（これは例えばカーナビゲーションのルート検索に関しては、ＧＰＳの捕捉情報が更新された、道路交通情報、道路渋滞情報が更新されたなどさまざまな要因がある）に相当する）によって起動される。アプリケーションが一旦起動されると、そのアプリケーションの実行のために、ＣＰＵやＩＰモジュールは連携して処理を行っていく。各ＣＰＵ内のプロセスＩＤレジスタの数は、同時に実行されるプロセスの数に対応する。また、ＣＰＵ１０には、シリアルインタフェース２４を介してＨＭＩ（Human Machine Interface）による入力信号が伝達されるようになっている。ＨＭＩによる入力信号は、ＣＰＵ１０で実行されるＯＳ（Operating System）に対する割り込みとして処理される。ＨＭＩによる入力信号としては、タッチパネル型ディスプレイに触れる操作や、ボタンを押す動作、外的環境の変化等によってマイクロコンピュータ１に入力される信号を挙げることができる。
【００３７】
ＩＰモジュール２０は、例えばグラフィックデバイスインタフェース（Graphics Device Interface）とされ、直線や曲線の描画、フォントの(コンピュータ) レンダリング、パレットの制御といった処理を担当する。ＩＰモジュール２１は、例えばＤＤＲコントローラ（Double Data Rate controller）とされる。ＤＤＲコントローラは、マイクロコンピュータ１の外部に接続されたＤＤＲメモリ（図示せず）に対して、クロック信号の立上がり時と立下がり時の両方を利用してアクセスする。このようなアクセスによれば、片方のみを利用する場合に比べ単位時間あたりの処理効率を２倍に高めることができるので、ＣＰＵ１０，１１，１２と、図示されないＤＤＲメモリ間との間のデータ転送の高速化を図ることができる。ＩＰモジュール２２は、例えばＩ／Ｏシリアルインターフェース（拡張バスの一種）とされるＰＣＩエクスプレス（ＰＣＩｅ）とされる。ＩＰモジュール２３は、特に制限されないが、ＭＰＥＧビデオをデコードするためのＭＰＥＧビデオデコーダとされる。ＩＰモジュール２０，２２，２３は、上記ＣＰＵ１０，１１，１２と同様に、それぞれバス２５に対して転送要求を発生させる機能を有する。そのようなＩＰモジュール２０，２２，２３には、上記ＣＰＵ１０、１１，１２と同様に、それぞれプロセスの識別情報（「プロセスＩＤ」という）を格納するための記憶部としてのプロセスＩＤレジスタ２０１，２２１，２３１が設けられる。尚、ＩＰモジュール２１は、ＤＤＲコントローラであり、自らバス２５に対して転送要求を出すことはないため、プロセスＩＤレジスタは設けられていない。上記ＣＰＵ１０，１１，１２は、プロセスの起動前に、当該プロセスの実行に使用されるＩＰモジュール２０，２２，２３内のプロセスＩＤレジスタ２０１，２２１，２３１に対して、当該プロセスに対応するプロセスＩＤを設定する。
【００３８】
上記バス２５は、特に制限されないが、スプリットトランザクション型のバスとされる。このようなバス２５に接続されるＣＰＵ１０，１１，１２やＩＰモジュール２０，２１，２２，２３は、マスターポートとスレーブポートを独立に備えている。例えばＣＰＵ１０，１１，１２からのリード／ライトの転送要求はマスターポートからコマンドパケットとして発行する。この転送要求はバスアービター２６での調停を経た後に、スレーブポートに転送要求として通知され、バストランザクションが実行される。スプリットトランザクション型のバス２５では、それに接続されるＣＰＵや機能モジュール間の全ての組み合わせの転送が可能にされる。例えばＣＰＵ１０とＩＰモジュール２０との間の転送、ＣＰＵ１１とＩＰモジュール２１との間の転送、ＣＰＵ１２とＩＰモジュール２２との間の転送を並列に実行させることができる。
【００３９】
スプリットトランザクション型のバス２５では、各ＣＰＵ１０，１１，１２やＩＰモジュール２０，２１，２２，２３は、バス２５のトランザクション単位でプロセスＩＤをサイドバンド信号としてバスアービター２６に供給することができる。
【００４０】
バスアービター２６は、転送要求の競合を所定の優先順位に従って調停する。またバスアービター２６は、各ＣＰＵ１０，１１，１２やＩＰモジュール２０，２１，２２，２３は、バス２５のトランザクション単位で伝達されたプロセスＩＤに基づいて、上記バス使用の優先順位を決定する。この優先順位の決定には、テーブル２７が参照される。テーブル２７には、例えば図９に示されるように、上記プロセスＩＤと上記バス使用の優先順位とが対応付けられている。例えばＨＭＩによる入力に対応してＣＰＵ１０で例外処理が行われ、この例外処理によってテーブル２７の書き換えを行うことができる。テーブル２７の書き換えによって、上記プロセスＩＤに対する上記バス使用の優先順位を変更することができる。また、ＣＰＵ１０における所定プロセスの開始又は終了時にテーブル２７の書き換えを行うように構成することができる。バスアービター２６によるテーブル参照の高速化を図るには、テーブル２７をレジスタで構成すると良い。ＣＰＵ１０とテーブル２７とが、バス２５よりも低速のバスで結合されている場合には、この低速バスを介してテーブル２７の書き換えを行うことができるので、テーブル２７の書き換えのためにバス２５を使用しないで済む。
【００４１】
尚、上記プロセスＩＤは、あるアプリケーションで動作する機能モジュールやＣＰＵに対して、同じプロセスＩＤを割り当てることもでき、それにより同一アプリケーションでの動作に必要な機能モジュール及びＣＰＵは同じ優先順位に設定することが可能になる。
【００４２】
図２には、ＣＰＵ２０とバス２５との間でやり取りされる信号が示される。
【００４３】
ＣＰＵ１０及びバス２５には、共通のクロック信号ｃｌｋが伝達される。ＣＰＵ１０によってリクエスト信号（request）がアサートされると、バス２５からの許可信号（grant）がアサートされるサイクルで、命令（command）、ソースＩＤ（source_id）,プロセスＩＤ（process_id）,アドレス（address）がほぼ同時に発行される。ライトトランザクションでは、上記サイクルでライトデータ（write_data）もバス２５に乗せる（バスに出力する）。リードトランザクションでは、上記サイクルでのコマンド（command）,アドレス（address）に応じたデータが準備できたところで、バス２５がread_data_validという有効信号をアサートしてリードデータ（read_data）をバス２５に乗せる。尚、図２に示される例では、ＣＰＵ１０とバス２５との間でやり取りされる信号が示されるが、バス２５に対して転送要求を行う他のＣＰＵや機能モジュールとの間でやり取りされる信号も同様とされる。本例においてバスアービター２６は、プロセスＩＤが伝達されると、テーブル２７を参照することによって、許可信号（grant）をどのＣＰＵや機能モジュールに対してアサートするのかを決定する。つまり、プロセスＩＤが伝達されると、テーブル２７を参照して、それに対応する優先順位を決定する。転送要求が競合する場合、そのとき優先順位の最も高いプロセスＩＤに対応するＣＰＵや機能モジュールに対して許可信号（grant）をアサートする。これにより、ＣＰＵ又は機能モジュールから伝達されたプロセスＩＤに対応する所定の優先度に従った調停が行われる。
【００４４】
図８には、上記プロセスＩＤ設定レジスタ１０１，１１１，２０１，２２１の設定例が示される。各ＩＰモジュール又は各ＣＰＵ毎に並列で動作するプロセスの数だけ、プロセスＩＤを設定するレジスタが用意される。この例によれば、ＣＰＵ１０，１１及びＩＰモジュール２１は、それぞれ二つのプロセス（０ｘ０００１，０ｘ０００２又は０ｘ０００１，０ｘ０００３）を並列に実行することを示している。
【００４５】
図７には、上記プロセスＩＤ設定レジスタへのプロセスＩＤの設定の流れが示される。
【００４６】
本例では、ＨＭＩからの指示１（Ａ）として、プロセス優先度の変更要求を挙げることができる。この指示には、例えば、ユーザが画面上の複数のウインドウから一つをクリックしてそのウインドウ前面に表示したケースが含まれる。また、ＨＭＩからの指示２（Ｂ）として、新しいプロセスの起動を挙げることができる。この指示には、例えば、ユーザが新しいアプリケーションを起動したケースが含まれる。さらに、ＨＭＩからの指示３（Ｃ）として、起動中のプロセスの終了を挙げることができる。
【００４７】
それぞれの指示は、マイクロコンピュータ１には、シリアルインタフェース２４経由で割り込み信号として通知される。例えばＣＰＵ１０で実行されるＯＳは、上記割り込み信号を受けて、割り込み処理ハンドラへの切り替えを行う（７０１）。割り込みハンドラでは次の処理を行う。
【００４８】
ＨＭＩからのプロセス優先度の変更要求の場合は該当プロセスの優先度テーブルの書き換える（７０２）。ＨＭＩからの新しいプロセスの起動要求の場合は新しいプロセスＩＤを関係ＣＰＵ及びＩＰモジュールに付与し、プロセスＩＤ設定レジスタを更新し、テーブル２７に該当プロセスＩＤの優先度を追加する（７０２）。ＨＭＩからの起動中のプロセスの終了要求の場合は優先度テーブルの該当プロセスＩＤを無効化する（７０２）。その後は従来システムと同様にプロセス起動、変更、終了の処理を行う（７０３）。
【００４９】
次に、図３〜５に基づいて上記構成の作用について説明する。図３〜５において、横軸は時間を示す。プロセス１，プロセス２などと記載された場合の数値は、プロセスＩＤを示している。この場合のプロセス１やプロセス２は、それぞれ別々のアプリケーションを意味する。また、『１』，『２』などと記載された場合のかぎ括弧内の数値は優先順位を示している。
【００５０】
図３には、図１におけるＣＰＵ１０とＩＰモジュール２１（ＤＤＲコントローラ）との関係が示される。
【００５１】
先ず、プロセス単位で優先順位が設定される場合の比較対象として、ＣＰＵやＩＰモジュール単位で優先順位が設定された場合について説明する。例えばＣＰＵ１０の優先順位がＩＰモジュール２１よりも高く設定され、しかもそれらの優先順位の関係が固定されているものとすると、図３（Ａ）に示されるように、ＩＰモジュール２１の実行時にＣＰＵ１０におけるプロセス２がバス２５の使用権を優先的に取得することになるため（時刻ｔ１，ｔ２）、ＩＰモジュール２１でのプロセス１の処理が待たされることになり、結果的に処理能力が低下してしまう。
【００５２】
次に、プロセス単位で優先順位が設定される場合について説明する。
【００５３】
図１に示される構成において、例えばプロセス１の優先順位が最も高くなるようにテーブル２７が設定され、それに従って転送要求の競合が調停された場合には、図３（Ｂ）に示されるようになる。すなわち、ＣＰＵ１０におけるプロセス２の処理は、図３（Ａ）の場合に比べて遅くなるものの、ＩＰモジュール２１におけるプロセス１の処理時間内で終了しており、全体の処理時間が短くなることから、全体の処理能力は図３（Ａ）の場合に比べて改善されている。
【００５４】
尚、割り込み単位での優先度の変更を行うことが考えられるが、かかる場合には、割り込み要求が発生するたびに、その時点で走行している全てのＩＰモジュールの優先順位を確認する必要が生じるから、処理オーバヘッドが大きくなってしまい、現実的ではない。
【００５５】
図４には、図１におけるＣＰＵ１０と、ＩＰモジュール２１（ＤＤＲコントローラ）及びＩＰモジュール２２（ＰＣＩエクスプレス）との関係が示される。
【００５６】
先ず、プロセス単位で優先順位が設定される場合の比較対象として、ＣＰＵやＩＰモジュール単位に優先順位が設定される場合について図４（Ａ）を参照しながら説明する。例えばＣＰＵ１０において、プロセス１とプロセス２とがマルチスレッドで走行しており、このプロセス１とプロセス２とが同じ優先順位１に設定された場合には、両者の処理時間は互いに等しくなる。この結果、プロセス１についてのＣＰＵ１０とＩＰモジュール２１との動作において、ＣＰＵ１０のプロセス２の処理でＩＰモジュール２１に待ちサイクルＣ１，Ｃ２，Ｃ３，Ｃ４が生じ、プロセス１の処理性能が劣化する。
【００５７】
次に、プロセス単位で優先順位が設定される場合について説明する。
【００５８】
図１に示される構成において、例えばプロセス１の優先順位が最も高くなるようにテーブル２７が設定され、それに従って転送要求の競合が調停された場合には、図４（Ｂ）に示されるようになる。すなわち、ＣＰＵ１０のプロセス２の優先度２が、ＩＰモジュール２１のプロセス１の優先度１よりも低いため、ＩＰモジュール２１の最速で処理を終了することができ、この結果、プロセス１のリアルタイム性が確保され、図４（Ａ）の場合に比べて、全体の処理能力が向上される。また、プロセス２はＩＰモジュール２２の処理性能で律則されており、こちらも性能劣化を生じない。
【００５９】
図５には、図１におけるＣＰＵ１０，１１と、ＩＰモジュール２１（ＤＤＲコントローラ）、ＩＰモジュール２２（ＰＣＩエクスプレス）、及びＩＰモジュール２３（ＭＰＥＧビデオデコーダ）との関係が示される。
【００６０】
先ず、プロセス単位で優先順位が設定される場合の比較対象として、ＣＰＵやＩＰモジュール単位に優先順位が設定される場合について図５（Ａ）を参照しながら説明する。ＩＰモジュール２１のプロセス１が開始された後に、ＣＰＵ１０のプロセス１が開始され、その後、ＩＰモジュール２２のプロセス１が開始され、その後、ＣＰＵ１１のプロセス２とＩＰモジュール２３のプロセス２が開始される。プロセス２が開始されてからは、プロセス１では優先順位３，４がボトルネックとなり、プロセス２では優先順位５がボトルネックとなり、プロセス１及び２ともに所望の性能が出ない。このような状態を解消するためには、プロセス２が開始する時点で、走行中の全てのＩＰモジュールとＣＰＵの優先順位とその動作関係を確認する必要がある。
【００６１】
次に、プロセス単位で優先順位が設定される場合について図５（Ｂ）を参照しながら説明する。
【００６２】
ＣＰＵ１０、ＩＰモジュール２１，２２については、同じ優先順位１で、転送要求の競合が調停される。ＣＰＵ１１及びＩＰモジュール２３も同様に、同じ優先順位２で、転送要求の競合が調停される。その結果、プロセス１の性能は、図５（Ａ）の場合に比べて大きく改善される。尚、本例では、プロセス２では、もともとＣＰＵ１がボトルネックとなっていることから、性能の劣化はない。
【００６３】
《実施の形態２》
図６には、本発明にかかる情報処理装置の一例とされるマイクロコンピュータの別の構成例が示される。
【００６４】
図６に示されるマイクロコンピュータ１が、図１に示されるのと大きく相違するのは、ＣＰＵ１０，１１，１２、及びＩＰモジュール２０，２２，２３において、プロセスＩＤ設定レジスタ１０１，１１１，１２１，２０１，２２１，２３１に代えて、プロセス対応の優先度設定レジスタ１０２，１１２，１２２，２０２，２２２，２３２が設けられている点である。また、このプロセス対応の優先度設定レジスタ１０２，１１２，１２２，２０２，２２２，２３２が設けられていることから、図１におけるテーブル２７に相当するものは不要になる。プロセス対応の優先度設定レジスタ１０２，１１２，１２２，２０２，２２２，２３２には、プロセス対応の優先度情報（Ａ〜Ｆ）が設定される。そしてこの優先度情報は、プロセスに対応させるため、プロセス毎に変更可能とされる。各ＣＰＵ１０，１１，１２やＩＰモジュール２０，２１，２２，２３は、バス２５のトランザクション単位でプロセス対応の優先度情報（Ａ〜Ｆ）を例えばバスのサイドバンド信号線を介してバスアービター２６に提供する。ＣＰＵとバスとの間でやり取りされる各種信号のタイミングについては、図２に示される場合と同様とされる。ただし、本例においては、プロセスＩＤに代えて優先度情報がバスアービター２６に伝達される。バスアービター２６は、転送要求の競合を優先度情報（Ａ〜Ｆ）に基づいて調停する。
【００６５】
これらの優先度設定レジスタ１０２，１１２，１２２，２０２，２２２，２３２はＯＳが管理しており、ＯＳによって管理される記憶領域に、プロセスとそれに対応する各ＩＰの優先順位情報（管理テーブル）が保存されており、プロセスが変わるたびにＯＳが前記管理テーブルを用いてレジスタが書き換えられる。
【００６６】
図６に示される構成では、プロセスが新規に走行する時に、関係するＩＰモジュール及びＣＰＵのプロセス対応優先度レジスタを設定する必要がある。その後は該当プロセスが終了するまでは、レジスタの再設定は不要とされる。
【００６７】
図６に示される構成でもマルチプロセス対応（マルチスレッド対応と同義）のＩＰモジュール及びＣＰＵにおいては、プロセス単位で優先度が動的に変わる構成になり、プロセス単位でのバス優先度制御が可能になる。かかる構成においても、図１に示される構成の場合と同様の作用効果を得ることができる。
【００６８】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００６９】
例えば図１に示されるプロセスＩＤレジスタ１０１，１１１，１２１，２０１，２２１，２３１を各モジュールの内部に配置される構成に限定されない。例えばプロセス毎に設定されたプロセスＩＤを、当該プロセスを処理する機能モジュールのソースＩＤに対応付けて保持可能なテーブルをプロセス識別情報保持部としてスプリットトランザクション型のバス２５のルーターに設ける。この場合、機能モジュールからデータ転送要求が発生した場合、上記ルーターにおいて上記テーブルが参照され、データ転送要求にかかる機能モジュールのソースＩＤに対応するプロセスＩＤが求められ、それがバスアービター２６に伝達される。バスアービター２６での処理は、図１に示される構成の場合と同様である。
【００７０】
また、図６における優先度設定レジスタ１０２，１１２，１２２，２０２，２２２，２３２は、各機能モジュールの内部に配置される構成に限定されない。例えばプロセス毎に設定された優先度情報を、当該プロセスを処理する機能モジュールのソースＩＤに対応付けて保持可能なテーブルを優先度情報保持部としてスプリットトランザクション型のバス２５のルーターに設ける。この場合、機能モジュールからデータ転送要求が発生した場合、上記ルーターにおいて、上記テーブルが参照され、データ転送要求にかかる機能モジュールのソースＩＤに対応する優先度情報がバスアービター２６に伝達される。バスアービター２６での処理は、図６に示される構成の場合と同様である。
【００７１】
上記のように構成しても、実施の形態１，２の場合と同様の効果を得ることができる。尚、実施の形態１，２の構成では、プロセスＩＤや優先度情報を得るのに上記ルーターにおけるテーブル参照が不要であるため、その分、調停終了までの時間短縮を図ることができる。
【００７２】
ＩＰモジュールの数は、図１や図６に示される場合に限定されない。また上記バス２５は、スプリットトランザクション型のバスに限定されず、例えばバスマスターがバスを占有してデータ転送を行う方式のバスでも良い。
【００７３】
上記マイクロコンピュータ１は、携帯電話、デジタル家電のような、画像や音声などのマルチメディア処理を必要とする製品や通信、音声/画像認識関係や人工知能/ロボット用途などリアルタイム性の処理が必要でかつ、ＣＰＵやＩＰモジュールが多数集積されている製品に幅広く適用できる。例えば、携帯のデジタル放送のようなアプリに対して、ＳｏＣとしてはＣＰＵや様々なＩＰモジュールが連携して動く必要があり、上記マイクロコンピュータ１は、このような用途に適用可能である。また上記に加え、マルチＣＰＵでのＣＰＵ間のバス優先度制御はＳＭＰ（Symmetric Multi Processing）動作でのプロセスの動的な割り当てとあいまって非常に複雑になってきており、上記マイクロコンピュータ１はこのような用途にも適している。さらに、近年のマルチメディア系ＳｏＣはメモリバスネックになっており、その中でユーザにストレスを感じさせない動作を実現するには、ＨＭＩベースの要求に対して、プロセス単位でのバス優先度制御が効果的である。
【符号の説明】
【００７４】
１  マイクロコンピュータ
１０，１１，１２  ＣＰＵ
２０，２１，２２，２３  ＩＰモジュール
２４  シリアルインタフェース
２５  バス
２６  バスアービター
２７  テーブル
１０１，１１１，１２１，２０１，２２１，２３１  プロセスＩＤ設定レジスタ
１０２，１１２，１２２，２０２，２２２，２３２  優先度設定レジスタ
【図１】
0005578713.tif 000002
【図２】
0005578713.tif 000003
【図３】
0005578713.tif 000004
【図４】
0005578713.tif 000005
【図５】
0005578713.tif 000006
【図６】
0005578713.tif 000007
【図７】
0005578713.tif 000008
【図８】
0005578713.tif 000009
【図９】
0005578713.tif 000010