説明

情報処理装置

【課題】プロセス単位で優先度を制御することによって情報処理装置全体の処理能力を向上させる。
【解決手段】データ転送のためのバス(25)と、それぞれプロセスを処理単位とする処理機能を有し、上記バスに対してデータ転送要求を発行可能な複数の機能モジュール(10,11,12,20,22,23)とを設ける。また、上記プロセス毎に設定されたプロセス識別情報を、当該プロセスを処理する上記機能モジュールに対応付けて保持可能なプロセス識別情報保持部(101,111,121,201,221,231)を設ける。さらに上記機能モジュールからのデータ送要求毎に、対応する上記プロセス識別情報毎の処理の優先順位を決定し、その優先順位に従って上記バスに対するデータ転送要求の競合を調停するバスアービター(26)を設ける。プロセス単位での優先順位制御を行うことで処理能力を向上させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置におけるバス調停技術に関し、例えばマイクロコンピュータ(マイクロプロセッサやデータプロセッサなどと呼ばれることもある)に適用して有効な技術に関する。
【背景技術】
【0002】
特許文献1には、バスアービトレーションにおける即時応答性を改善させるための技術が記載されている。それによれば、バスアービターと共有バスに接続されるユニットを信号線で結び、バス競合がある時は、該信号線に送出されるプライオリティ情報によって、バス使用を許可するユニットを決定する。また、バスアービター自身も共有バスに接続されることにより、プロセッサユニットから優先順位の情報の更新を可能とする。
【0003】
特許文献2には、システムの性能を向上させるための技術が記載されている。それによれば、複数のリクエスタによる共有バスを介しての共有資源へのアクセス要求の調停を行うバスアービトレーション装置であって、複数のリクエスタのうち少なくとも1つのリクエスタは、その内部の状態に応じて、そのリクエスタによるアクセス要求の優先順位を変更すべきであることを通知する内部状態信号を出力する。そして当該バスアービトレーション装置は、前記内部状態信号に基づいて、前記アクセス要求の調停を行う。
【0004】
特許文献3には、バスバンド幅の使用効率に偏りが出るのを改善するための技術が記載されている。それによれば、メモリスケジューラにおいて、メモリアクセス集計部がメモリアクセスコマンドからプロセスID毎のバス使用率を集計し、バス使用率比較部がメモリアクセス集計部の集計結果と閾値設定部に設定された閾値とを比較する。この比較結果に応じて、メモリスケジューラはプロセススケジューラに割り込みをかける。プロセススケジューリング変更部は、メモリスケジューラからの割り込みを受け、CPUコアのプロセススケジューリング条件を、プロセスの優先度からプロセスのバス使用率に変更する。
【0005】
特許文献4には、ユーザから指定される画面上の特定のウインドウ選択により、該当プロセスの優先順位をソフトウェアにより上げるようにした技術が記載されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平7−134689号公報
【特許文献2】特開2008−40650号公報
【特許文献3】特開2007−41771号公報
【特許文献4】特開平4−250520号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
本願発明者は、従来のバス調停技術をSoC(System-on-a-chip)に適用ことについて検討したところ、以下の理由でバスが破綻する虞れのあることが見いだされた。
【0008】
(1)CPU(Central Processing Unit:中央処理装置)を複数使用するものを「マルチCPU」という。このマルチCPUとAV(audio/visual)系のIPを搭載する高性能SoCにおいては、主記憶メモリ(DDR(Double-Data-Rate)メモリなど)のバスバンド幅が十分ではなく、リアルタイム性IPを全て同時動作させると、バスが破綻する虞れがある。ここで「IP(Intellectual Property)」とは、LSI(Large Scale Integration)を構成するための部分的な回路情報で、機能単位にまとめられているものを指す。
【0009】
(2)上記(1)における個別のアプリケーション動作では、複数のIPやCPUが連動して動く構成になっており、さらにIP又はCPUがアプリケーションの種類によってリアルタイム性の動作を要求されたり、最大限の動作を要求されたりと、様々に変化する。
【0010】
(3)上記(1)においては、CPUやGPU(Graphics Processing Unit)、ビデオ処理部などが複数のプロセスを並列実行できる構成になっており、バスの優先順位がCPU、IP単位ではなく、プロセス単位で異なる構成になってきている。ここで「プロセス」とは、マイクロコンピュータにおける処理の単位であり、ユーザのアプリケーションに対応しているソフトウェアに相当する。具体的には、メディアプレイヤーの再生や、カーナビゲーションにおけるルート検索などがある。これらのアプリケーションソフトウェアは、HMI(Human Machine Interface)からの入力動作(これは例えば、タッチパネル型ディスプレイに触れる操作や、ボタンを押す動作、外的環境の変化(これは例えばカーナビゲーションのルート検索に関しては、GPSの捕捉情報が更新された、道路交通情報、道路渋滞情報が更新されたなどさまざまな要因がある)に相当する)によって起動される。アプリケーションが一旦起動されると、そのアプリケーションの実行のために、CPUやIPは連携して処理を行っていく。例えば、メディアプレイヤーの再生動作では、CPUによるデータベースの検索やIPに入力できる形のファイル変換や、Audio(オーディオ)/Video(ビデオ)の同期処理、Video・IPによるビデオデータのデコード、Audio・IPによるオーディオデータのデコードがパイプライン動作として処理される。したがって、上記CPU、Video・IP、Audio・IPはバス権の取得において、同じ優先順位で扱われると動作効率が上がるが、逆にどれかひとつの優先権を高くすると、他のIPでの処理が待たされる結果、全体の処理能力が低下することが考えられる。
【0011】
(4)さらに、上記(1)の条件において、HMIからの入力に対応したアプリケーションの優先順位の変化に対応したバス優先度を制御することが必要になってきている。しかし、特許文献1〜4には、上記HMIからの要求に対してバスの優先権を変更することについては考慮されていない。
【0012】
転送要求を出している処理プログラムの属性や転送データの格納位置の情報により転送するデータの種類を判別して、その緊急性を判別することが考えられるが、同じプログラムであっても、アプリケーションによって緊急性の異なる処理があり、緊急性についてプログラムだけでは判断できない。例えば画面合成エンジンの動作についても、動画の再生画像を含む動作ではリアルタイム要求が高いが、メニュー画面等の静止画に近い画像を扱う場合、リアルタイム制は低くなる。また、IPが有するタイマー機能で、一定時間に対するデータの処理の進捗を図り、進捗が悪くなると、緊急度を上げる方式が考えられるが、そのような方式によっても、上記の課題を解決することはできない。
【0013】
本発明の目的は、プロセス単位で優先度を制御することによって、情報処理装置全体の処理能力を向上させるための技術を提供することある。
【0014】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【0015】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0016】
すなわち、データ転送のためのバスと、それぞれプロセスを処理単位とする処理機能を有し、上記バスに対してデータ転送要求を発行可能な複数の機能モジュールとを設ける。また、上記プロセス毎に設定されたプロセス識別情報を、当該プロセスを処理する上記機能モジュールに対応付けて保持可能なプロセス識別情報保持部を設ける。さらに上記機能モジュールからのデータ送要求毎に、対応する上記プロセス識別情報毎の処理の優先順位を決定し、その優先順位に従って上記バスに対するデータ転送要求の競合を調停するバスアービターを設ける。
【発明の効果】
【0017】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【0018】
すなわち、プロセス単位で優先度を制御することによって、情報処理装置全体の処理能力を向上させるための技術を提供することができる。
【図面の簡単な説明】
【0019】
【図1】本発明にかかる情報処理装置の一例とされるマイクロコンピュータの構成例ブロック図である。
【図2】図1に示されるマイクロコンピュータにおいて、IPモジュールとバスとの間でやり取りされる信号の説明図である。
【図3】図1におけるCPUでの処理とIPモジュール(DDRコントローラ)での処理との関係説明図である。
【図4】図1におけるCPUでの処理とIPモジュール(DDRコントローラ及びPCIエクスプレス)との関係説明図である。
【図5】図1におけるCPUでの処理とIPモジュール(DDRコントローラ、PCIエクスプレス、MPEGビデオデコーダ)との関係説明図である。
【図6】本発明にかかる情報処理装置の一例とされるマイクロコンピュータの別の構成例ブロック図である。
【図7】図1に示されるマイクロコンピュータにおけるプロセスIDの設定の流れを示すフローチャートである。
【図8】図1に示されるマイクロコンピュータにおけるプロセスID設定レジスタの設定例の説明図である。
【図9】図1に示されるマイクロコンピュータにおけるテーブルの構成例説明図である。
【発明を実施するための形態】
【0020】
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【0021】
〔1〕本発明の代表的な実施の形態に係る情報処理装置(1)は、データ転送のためのバス(25)と、それぞれプロセスを処理単位とする処理機能を有し、上記バスに対してデータ転送要求を発行可能な複数の機能モジュール(10,11,12,20,22,23)とを含む。また、上記情報処理装置(1)は、上記プロセス毎に設定されたプロセス識別情報(プロセス識別ID)を、当該プロセスを処理する上記機能モジュールに対応付けて保持可能なプロセス識別情報保持部(101,111,121,201,221,231)を含む。さらに情報処理装置(1)は、上記機能モジュールからのデータ送要求毎に、対応する上記プロセス識別情報毎の処理の優先順位を決定し、その優先順位に従って上記バスに対するデータ転送要求の競合を調停するバスアービター(26)を含む。上記機能モジュールは、CPUやIPモジュールを含む。IPモジュールは、IP(Intellectual Property)によって提供されるモジュールを意味する。
【0022】
上記の構成によれば、上記バスアービターは、上記プロセス識別情報保持部から出力されたプロセス識別情報に応じて、上記機能モジュールからの転送要求の競合の調停における優先順位を決定する。これによりプロセス単位で優先順位を制御することができるため、マルチプロセス対応の装置や、複数のプロセスを処理する装置において、プロセス単位での優先順位制御を行うことができる。このプロセス単位での優先順位制御は、他の機能モジュールでの処理状況を確認する必要がないので迅速に行うことができる。そしてそのような処理により、情報処理装置全体としての処理能力を向上させることができる。
【0023】
〔2〕上記〔1〕において、上記複数の機能モジュールはCPUを含む。上記CPUは、プロセスの起動前に、当該プロセスの処理で使用される機能モジュールに対応するプロセス識別情報保持部に対して、当該プロセスに対応するプロセス識別情報を設定するように構成することができる。このようにすることで、上記プロセス単位での優先順位制御を円滑に行うことができる。
【0024】
〔3〕上記〔2〕において、上記プロセス識別情報保持部には、レジスタを適用することができる。上記レジスタは、上記各機能モジュール内に配置することができる。これにより、上記プロセス識別情報のリード及びライトを高速に行うことができる。
【0025】
〔4〕上記〔3〕において、上記プロセス識別情報と上記優先順位とが対応付けられたテーブルを設けることができる。この場合において、上記バスアービターは、上記テーブルを参照して上記バス使用の優先順位を変更するように構成することができる。これにより、上記テーブルを参照することにより、上記バス使用の優先順位を容易に変更することができる。
【0026】
〔5〕上記〔4〕において、上記テーブルは、記憶情報の更新が可能とされる。これにより、上記プロセス単位での優先順位制御を状況の変化に応じて円滑に行うことができる。
【0027】
〔6〕上記〔5〕において、上記CPUは、外部入力に基づいて、上記優先順位を変更するように構成することができる。これにより、外部入力に応じて上記優先順位の変更を容易に行うことができる。上記外部入力は、HMI(Human Machine Interface)による入力とすることができる。この場合において、HMIによる入力信号は、CPUで実行されるOS(Operating System)に対する割り込みとして処理するように構成することができる。
【0028】
〔7〕上記〔6〕において、上記バスはスプリットトランザクション型のバスとすることができる。このとき、上記プロセス識別情報は、上記機能モジュールからのデータ転送要求に対する許可信号がアサートされたサイクルで、上記バスのサイドバンド信号により上記バスアービターに供給される。サイドバンド信号は、スプリットトランザクション型のバスの既存の信号であるため、それを利用することで、プロセス識別情報を伝達するための信号を新たに設けないで済む。
【0029】
〔8〕本発明の代表的な実施の形態に係る別の情報処理装置(1)は、データ転送のためのバス(25)と、それぞれプロセスを処理単位とする処理機能を有し、上記バスに対してデータ転送要求を発行可能な複数の機能モジュール(10,11,12,20,22,23)とを含む。また情報処理装置(1)は、上記プロセス毎に設定された優先度情報を、当該プロセスを処理する上記機能モジュールに対応付けて保持可能な優先度情報保持部(102,112,122,202,222,232)と、上記機能モジュールからのデータ送要求毎に、対応する上記優先度情報に基づく優先順位に従って上記バスに対するデータ転送要求の競合を調停するバスアービター(26)とを含む。上記バスアービターは、上記優先度情報保持部から出力された優先度情報に応じて、上記機能モジュールからの転送要求の競合の調停における優先順位制御を行うことができる。かかる構成によれば、上記優先度情報保持部から出力された優先度情報に応じて上記バス使用の優先順位を変更することができるので、上記〔1〕の場合と同様の効果を得ることができる。
【0030】
〔9〕上記〔8〕において、上記複数の機能モジュールはCPUを含む。上記CPUは、処理の円滑化を図るため、プロセスの起動前に、当該プロセスの実行に使用される機能モジュール内の優先度情報保持部に対して、当該プロセスに対応する優先度情報を設定するように構成することができる。このようにすることで、上記プロセス単位での優先順位制御を円滑に行うことができる。
【0031】
〔10〕上記〔9〕において、上記優先度情報保持部には、レジスタを適用することができる。これにより、優先度情報のリード及びライトを高速に行うことができる。
【0032】
〔11〕上記〔10〕において、上記バスはスプリットトランザクション型のバスとすることができる。その場合に、上記優先度情報は、上記機能モジュールからのデータ転送要求に対する許可信号がアサートされたサイクルで、上記バスのサイドバンド信号により上記バスアービターに供給されるように構成することができる。サイドバンド信号は、スプリットトランザクション型のバスの既存の信号であるため、それを利用することで、プロセス識別情報を伝達するための信号を新たに設けないで済む。
【0033】
2.実施の形態の詳細
実施の形態について更に詳述する。
【0034】
《実施の形態1》
図1には、本発明にかかる情報処理装置の一例とされるマイクロコンピュータの構成例が示される。
【0035】
図1に示されるマイクロコンピュータ1は、特に制限されないが、SoC(System-on-a-chip)とされ、公知の半導体集積回路製造技術により、単結晶シリコン基板などの一つの半導体基板に形成される。マイクロコンピュータ1は、バス25に結合された複数の機能モジュールを含む。ここで機能モジュールは、容易に追加や削除ができ、ひとまとまりの機能を持った部品を意味する。このような機能モジュールには、CPU(Central Processing Unit:中央処理装置)10,11,12、IPモジュール20,21,22,23が含まれる。ここでIPモジュール20,21,22,23は、IP(Intellectual Property)によって提供されるモジュールを意味する。CPU10,11,12、及びIPモジュール20,21,22,23は、バス25を介して互いに結合されている。
【0036】
CPU10,11,12は、それぞれ所定の演算処理を実行する。CPU10,11,12には、それぞれプロセスの識別情報(「プロセスID」という)を格納するための記憶部としてのプロセスIDレジスタ101,111,121が設けられる。ここで「プロセス」とは、マイクロコンピュータにおける処理の単位であり、ユーザのアプリケーションに対応しているソフトウェアに相当する。具体的には、メディアプレイヤーの再生や、カーナビゲーションにおけるルート検索などがある。これらのアプリケーションソフトウェアは、HMI(Human Machine Interface)からの入力動作(これは例えば、タッチパネル型ディスプレイに触れる操作や、ボタンを押す動作、外的環境の変化(これは例えばカーナビゲーションのルート検索に関しては、GPSの捕捉情報が更新された、道路交通情報、道路渋滞情報が更新されたなどさまざまな要因がある)に相当する)によって起動される。アプリケーションが一旦起動されると、そのアプリケーションの実行のために、CPUやIPモジュールは連携して処理を行っていく。各CPU内のプロセスIDレジスタの数は、同時に実行されるプロセスの数に対応する。また、CPU10には、シリアルインタフェース24を介してHMI(Human Machine Interface)による入力信号が伝達されるようになっている。HMIによる入力信号は、CPU10で実行されるOS(Operating System)に対する割り込みとして処理される。HMIによる入力信号としては、タッチパネル型ディスプレイに触れる操作や、ボタンを押す動作、外的環境の変化等によってマイクロコンピュータ1に入力される信号を挙げることができる。
【0037】
IPモジュール20は、例えばグラフィックデバイスインタフェース(Graphics Device Interface)とされ、直線や曲線の描画、フォントのレンダリング (コンピュータ) レンダリング、パレットの制御といった処理を担当する。IPモジュール21は、例えばDDRコントローラ(Double Data Rate controller)とされる。DDRコントローラは、マイクロコンピュータ1の外部に接続されたDDRメモリ(図示せず)に対して、クロック信号の立上がり時と立下がり時の両方を利用してアクセスする。このようなアクセスによれば、片方のみを利用する場合に比べ単位時間あたりの処理効率を2倍に高めることができるので、CPU10,11,12と、図示されないDDRメモリ間との間のデータ転送の高速化を図ることができる。IPモジュール22は、例えばI/Oシリアルインターフェース(拡張バスの一種)とされるPCIエクスプレス(PCIe)とされる。IPモジュール23は、特に制限されないが、MPEGビデオをデコードするためのMPEGビデオデコーダとされる。IPモジュール20,22,23は、上記CPU10,11,12と同様に、それぞれバス25に対して転送要求を発生させる機能を有する。そのようなIPモジュール20,22,23には、上記CPU10、11,12と同様に、それぞれプロセスの識別情報(「プロセスID」という)を格納するための記憶部としてのプロセスIDレジスタ201,221,231が設けられる。尚、IPモジュール21は、DDRコントローラであり、自らバス25に対して転送要求を出すことはないため、プロセスIDレジスタは設けられていない。上記CPU10,11,12は、プロセスの起動前に、当該プロセスの実行に使用されるIPモジュール20,22,23内のプロセスIDレジスタ201,221,231に対して、当該プロセスに対応するプロセスIDを設定する。
【0038】
上記バス25は、特に制限されないが、スプリットトランザクション型のバスとされる。このようなバス25に接続されるCPU10,11,12やIPモジュール20,21,22,23は、マスターポートとスレーブポートを独立に備えている。例えばCPU10,11,12からのリード/ライトの転送要求はマスターポートからコマンドパケットとして発行する。この転送要求はバスアービター26での調停を経た後に、スレーブポートに転送要求として通知され、バストランザクションが実行される。スプリットトランザクション型のバス25では、それに接続されるCPUや機能モジュール間の全ての組み合わせの転送が可能にされる。例えばCPU10とIPモジュール20との間の転送、CPU11とIPモジュール21との間の転送、CPU12とIPモジュール22との間の転送を並列に実行させることができる。
【0039】
スプリットトランザクション型のバス25では、各CPU10,11,12やIPモジュール20,21,22,23は、バス25のトランザクション単位でプロセスIDをサイドバンド信号としてバスアービター26に供給することができる。
【0040】
バスアービター26は、転送要求の競合を所定の優先順位に従って調停する。またバスアービター26は、各CPU10,11,12やIPモジュール20,21,22,23は、バス25のトランザクション単位で伝達されたプロセスIDに基づいて、上記バス使用の優先順位を決定する。この優先順位の決定には、テーブル27が参照される。テーブル27には、例えば図9に示されるように、上記プロセスIDと上記バス使用の優先順位とが対応付けられている。例えばHMIによる入力に対応してCPU10で例外処理が行われ、この例外処理によってテーブル27の書き換えを行うことができる。テーブル27の書き換えによって、上記プロセスIDに対する上記バス使用の優先順位を変更することができる。また、CPU10における所定プロセスの開始又は終了時にテーブル27の書き換えを行うように構成することができる。バスアービター26によるテーブル参照の高速化を図るには、テーブル27をレジスタで構成すると良い。CPU10とテーブル27とが、バス25よりも低速のバスで結合されている場合には、この低速バスを介してテーブル27の書き換えを行うことができるので、テーブル27の書き換えのためにバス25を使用しないで済む。
【0041】
尚、上記プロセスIDは、あるアプリケーションで動作する機能モジュールやCPUに対して、同じプロセスIDを割り当てることもでき、それにより同一アプリケーションでの動作に必要な機能モジュール及びCPUは同じ優先順位に設定することが可能になる。
【0042】
図2には、CPU20とバス25との間でやり取りされる信号が示される。
【0043】
CPU10及びバス25には、共通のクロック信号clkが伝達される。CPU10によってリクエスト信号(request)がアサートされると、バス25からの許可信号(grant)がアサートされるサイクルで、命令(command)、ソースID(source_id),プロセスID(process_id),アドレス(address)がほぼ同時に発行される。ライトトランザクションでは、上記サイクルでライトデータ(write_data)もバス25に乗せる(バスに出力する)。リードトランザクションでは、上記サイクルでのコマンド(command),アドレス(address)に応じたデータが準備できたところで、バス25がread_data_validという有効信号をアサートしてリードデータ(read_data)をバス25に乗せる。尚、図2に示される例では、CPU10とバス25との間でやり取りされる信号が示されるが、バス25に対して転送要求を行う他のCPUや機能モジュールとの間でやり取りされる信号も同様とされる。本例においてバスアービター26は、プロセスIDが伝達されると、テーブル27を参照することによって、許可信号(grant)をどのCPUや機能モジュールに対してアサートするのかを決定する。つまり、プロセスIDが伝達されると、テーブル27を参照して、それに対応する優先順位を決定する。転送要求が競合する場合、そのとき優先順位の最も高いプロセスIDに対応するCPUや機能モジュールに対して許可信号(grant)をアサートする。これにより、CPU又は機能モジュールから伝達されたプロセスIDに対応する所定の優先度に従った調停が行われる。
【0044】
図8には、上記プロセスID設定レジスタ101,111,201,221の設定例が示される。各IPモジュール又は各CPU毎に並列で動作するプロセスの数だけ、プロセスIDを設定するレジスタが用意される。この例によれば、CPU10,11及びIPモジュール21は、それぞれ二つのプロセス(0x0001,0x0002又は0x0001,0x0003)を並列に実行することを示している。
【0045】
図7には、上記プロセスID設定レジスタへのプロセスIDの設定の流れが示される。
【0046】
本例では、HMIからの指示1(A)として、プロセス優先度の変更要求を挙げることができる。この指示には、例えば、ユーザが画面上の複数のウインドウから一つをクリックしてそのウインドウ前面に表示したケースが含まれる。また、HMIからの指示2(B)として、新しいプロセスの起動を挙げることができる。この指示には、例えば、ユーザが新しいアプリケーションを起動したケースが含まれる。さらに、HMIからの指示3(C)として、起動中のプロセスの終了を挙げることができる。
【0047】
それぞれの指示は、マイクロコンピュータ1には、シリアルインタフェース24経由で割り込み信号として通知される。例えばCPU10で実行されるOSは、上記割り込み信号を受けて、割り込み処理ハンドラへの切り替えを行う(701)。割り込みハンドラでは次の処理を行う。
【0048】
HMIからのプロセス優先度の変更要求の場合は該当プロセスの優先度テーブルの書き換える(702)。HMIからの新しいプロセスの起動要求の場合は新しいプロセスIDを関係CPU及びIPモジュールに付与し、プロセスID設定レジスタを更新し、テーブル27に該当プロセスIDの優先度を追加する(702)。HMIからの起動中のプロセスの終了要求の場合は優先度テーブルの該当プロセスIDを無効化する(702)。その後は従来システムと同様にプロセス起動、変更、終了の処理を行う(703)。
【0049】
次に、図3〜5に基づいて上記構成の作用について説明する。図3〜5において、横軸は時間を示す。プロセス1,プロセス2などと記載された場合の数値は、プロセスIDを示している。この場合のプロセス1やプロセス2は、それぞれ別々のアプリケーションを意味する。また、『1』,『2』などと記載された場合のかぎ括弧内の数値は優先順位を示している。
【0050】
図3には、図1におけるCPU10とIPモジュール21(DDRコントローラ)との関係が示される。
【0051】
先ず、プロセス単位で優先順位が設定される場合の比較対象として、CPUやIPモジュール単位で優先順位が設定された場合について説明する。例えばCPU10の優先順位がIPモジュール21よりも高く設定され、しかもそれらの優先順位の関係が固定されているものとすると、図3(A)に示されるように、IPモジュール21の実行時にCPU10におけるプロセス2がバス25の使用権を優先的に取得することになるため(時刻t1,t2)、IPモジュール21でのプロセス1の処理が待たされることになり、結果的に処理能力が低下してしまう。
【0052】
次に、プロセス単位で優先順位が設定される場合について説明する。
【0053】
図1に示される構成において、例えばプロセス1の優先順位が最も高くなるようにテーブル27が設定され、それに従って転送要求の競合が調停された場合には、図3(B)に示されるようになる。すなわち、CPU10におけるプロセス2の処理は、図3(A)の場合に比べて遅くなるものの、IPモジュール21におけるプロセス1の処理時間内で終了しており、全体の処理時間が短くなることから、全体の処理能力は図3(A)の場合に比べて改善されている。
【0054】
尚、割り込み単位での優先度の変更を行うことが考えられるが、かかる場合には、割り込み要求が発生するたびに、その時点で走行している全てのIPモジュールの優先順位を確認する必要が生じるから、処理オーバヘッドが大きくなってしまい、現実的ではない。
【0055】
図4には、図1におけるCPU10と、IPモジュール21(DDRコントローラ)及びIPモジュール22(PCIエクスプレス)との関係が示される。
【0056】
先ず、プロセス単位で優先順位が設定される場合の比較対象として、CPUやIPモジュール単位に優先順位が設定される場合について図4(A)を参照しながら説明する。例えばCPU10において、プロセス1とプロセス2とがマルチスレッドで走行しており、このプロセス1とプロセス2とが同じ優先順位1に設定された場合には、両者の処理時間は互いに等しくなる。この結果、プロセス1についてのCPU10とIPモジュール21との動作において、CPU10のプロセス2の処理でIPモジュール21に待ちサイクルC1,C2,C3,C4が生じ、プロセス1の処理性能が劣化する。
【0057】
次に、プロセス単位で優先順位が設定される場合について説明する。
【0058】
図1に示される構成において、例えばプロセス1の優先順位が最も高くなるようにテーブル27が設定され、それに従って転送要求の競合が調停された場合には、図4(B)に示されるようになる。すなわち、CPU10のプロセス2の優先度2が、IPモジュール21のプロセス1の優先度1よりも低いため、IPモジュール21の最速で処理を終了することができ、この結果、プロセス1のリアルタイム制が確保され、図4(A)の場合に比べて、全体の処理能力が向上される。また、プロセス2はIPモジュール22の処理性能で律則されており、こちらも性能劣化を生じない。
【0059】
図5には、図1におけるCPU10,11と、IPモジュール21(DDRコントローラ)、IPモジュール22(PCIエクスプレス)、及びIPモジュール23(MPEGビデオデコーダ)との関係が示される。
【0060】
先ず、プロセス単位で優先順位が設定される場合の比較対象として、CPUやIPモジュール単位に優先順位が設定される場合について図5(A)を参照しながら説明する。IPモジュール21のプロセス1が開始された後に、CPU10のプロセス1が開始され、その後、IPモジュール22のプロセス1が開始され、その後、CPU11のプロセス2とIPモジュール23のプロセス2が開始される。プロセス2が開始されてからは、プロセス1では優先順位3,4がボトルネックとなり、プロセス2では優先順位5がボトルネックとなり、プロセス1及び2ともに所望の性能が出ない。このような状態を解消するためには、プロセス2が開始する時点で、走行中の全てのIPモジュールとCPUの優先順位とその動作関係を確認する必要がある。
【0061】
次に、プロセス単位で優先順位が設定される場合について図5(B)を参照しながら説明する。
【0062】
CPU10、IPモジュール21,22については、同じ優先順位1で、転送要求の競合が調停される。CPU11及びIPモジュール23も同様に、同じ優先順位2で、転送要求の競合が調停される。その結果、プロセス1の性能は、図5(A)の場合に比べて大きく改善される。尚、本例では、プロセス2では、もともとCPU1がボトルネックとなっていることから、性能の劣化はない。
【0063】
《実施の形態2》
図6には、本発明にかかる情報処理装置の一例とされるマイクロコンピュータの別の構成例が示される。
【0064】
図6に示されるマイクロコンピュータ1が、図1に示されるのと大きく相違するのは、CPU10,11,12、及びIPモジュール20,22,23において、プロセスID設定レジスタ101,111,121,201,221,231に代えて、プロセス対応の優先度設定レジスタ102,112,122,202,222,232が設けられている点である。また、このプロセス対応の優先度設定レジスタ102,112,122,202,222,232が設けられていることから、図1におけるテーブル27に相当するものは不要になる。プロセス対応の優先度設定レジスタ102,112,122,202,222,232には、プロセス対応の優先度情報(A〜F)が設定される。そしてこの優先度情報は、プロセスに対応させるため、プロセス毎に変更可能とされる。各CPU10,11,12やIPモジュール20,21,22,23は、バス25のトランザクション単位でプロセス対応の優先度情報(A〜F)を例えばバスのサイドバンド信号線を介してバスアービター26に提供する。CPUとバスとの間でやり取りされる各種信号のタイミングについては、図2に示される場合と同様とされる。ただし、本例においては、プロセスIDに代えて優先度情報がバスアービター26に伝達される。バスアービター26は、転送要求の競合を優先度情報(A〜F)に基づいて調停する。
【0065】
これらの優先度設定レジスタ102,112,122,202,222,232はOSが管理しており、OSによって管理される記憶領域に、プロセスとそれに対応する各IPの優先順位情報(管理テーブル)が保存されており、プロセスが変わるたびにOSが前記管理テーブルを用いてレジスタが書き換えられる。
【0066】
図6に示される構成では、プロセスが新規に走行する時に、関係するIPモジュール及びCPUのプロセス対応優先度レジスタを設定する必要がある。その後は該当プロセスが終了するまでは、レジスタの再設定は不要とされる。
【0067】
図6に示される構成でもマルチプロセス対応(マルチスレッド対応と同義)のIPモジュール及びCPUにおいては、プロセス単位で優先度が動的に変わる構成になり、プロセス単位でのバス優先度制御が可能になる。かかる構成においても、図1に示される構成の場合と同様の作用効果を得ることができる。
【0068】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0069】
例えば図1に示されるプロセスIDレジスタ101,111,121,201,221,231を各モジュールの内部に配置される構成に限定されない。例えばプロセス毎に設定されたプロセスIDを、当該プロセスを処理する機能モジュールのソースIDに対応付けて保持可能なテーブルをプロセス識別情報保持部としてスプリットトランザクション型のバス25のルーターに設ける。この場合、機能モジュールからデータ転送要求が発生した場合、上記ルーターにおいて上記テーブルが参照され、データ転送要求にかかる機能モジュールのソースIDに対応するプロセスIDが求められ、それがバスアービター26に伝達される。バスアービター26での処理は、図1に示される構成の場合と同様である。
【0070】
また、図6における優先度設定レジスタ102,112,122,202,222,232は、各機能モジュールの内部に配置される構成に限定されない。例えばプロセス毎に設定された優先度情報を、当該プロセスを処理する機能モジュールのソースIDに対応付けて保持可能なテーブルを優先度情報保持部としてスプリットトランザクション型のバス25のルーターに設ける。この場合、機能モジュールからデータ転送要求が発生した場合、上記ルーターにおいて、上記テーブルが参照され、データ転送要求にかかる機能モジュールのソースIDに対応する優先度情報がバスアービター26に伝達される。バスアービター26での処理は、図6に示される構成の場合と同様である。
【0071】
上記のように構成しても、実施の形態1,2の場合と同様の効果を得ることができる。尚、実施の形態1,2の構成では、プロセスIDや優先度情報を得るのに上記ルーターにおけるテーブル参照が不要であるため、その分、調停終了までの時間短縮を図ることができる。
【0072】
IPモジュールの数は、図1や図6に示される場合に限定されない。また上記バス25は、スプリットトランザクション型のバスに限定されず、例えばバスマスターがバスを占有してデータ転送を行う方式のバスでも良い。
【0073】
上記マイクロコンピュータ1は、携帯電話、デジタル家電のような、画像や音声などのマルチメディア処理を必要とする製品や通信、音声/画像認識関係や人工知能/ロボット用途などリアルタイム性の処理が必要でかつ、CPUやIPモジュールが多数集積されている製品に幅広く適用できる。例えば、携帯のデジタル放送のようなアプリに対して、SoCとしてはCPUや様々なIPモジュールが連携して動く必要があり、上記マイクロコンピュータ1は、このような用途に適用可能である。また上記に加え、マルチCPUでのCPU間のバス優先度制御はSMP(Symmetric Multi Processing)動作でのプロセスの動的な割り当てとあいまって非常に複雑になってきており、上記マイクロコンピュータ1はこのような用途にも適している。さらに、近年のマルチメディア系SoCはメモリバスネックになっており、その中でユーザにストレスを感じさせない動作を実現するには、HMIベースの要求に対して、プロセス単位でのバス優先度制御が効果的である。
【符号の説明】
【0074】
1 マイクロコンピュータ
10,11,12 CPU
20,21,22,23 IPモジュール
24 シリアルインタフェース
25 バス
26 バスアービター
27 テーブル
101,111,121,201,221,231 プロセスID設定レジスタ
102,112,122,202,222,232 優先度設定レジスタ

【特許請求の範囲】
【請求項1】
データ転送のためのバスと、
それぞれプロセスを処理単位とする処理機能を有し、上記バスに対してデータ転送要求を発行可能な複数の機能モジュールと、
上記プロセス毎に設定されたプロセス識別情報を、当該プロセスを処理する上記機能モジュールに対応付けて保持可能なプロセス識別情報保持部と、
上記機能モジュールからのデータ送要求毎に、対応する上記プロセス識別情報毎の処理の優先順位を決定し、その優先順位に従って上記バスに対するデータ転送要求の競合を調停するバスアービターと、を含むことを特徴とする情報処理装置。
【請求項2】
上記複数の機能モジュールは、CPUを含み、
上記CPUは、プロセスの起動前に、当該プロセスの処理で使用される機能モジュールに対応するプロセス識別情報保持部に対して、当該プロセスに対応するプロセス識別情報を設定する請求項1記載の情報処理装置。
【請求項3】
上記プロセス識別情報保持部は、上記機能モジュール内に配置されたレジスタとされる請求項2記載の情報処理装置。
【請求項4】
上記プロセス識別情報と上記優先順位とが対応付けられたテーブルを含み、上記バスアービターは、上記テーブルを参照して上記プロセス識別情報毎の処理の優先順位を決定する請求項3記載の情報処理装置。
【請求項5】
上記テーブルは、記憶情報の更新が可能とされる請求項4記載の情報処理装置。
【請求項6】
外部入力に応じて上記テーブルの記憶内容が更新される請求項5記載の情報処理装置。
【請求項7】
上記バスはスプリットトランザクション型のバスとされ、
上記プロセス識別情報は、上記機能モジュールからのデータ転送要求に対する許可信号がアサートされたサイクルで、上記バスのサイドバンド信号により上記バスアービターに供給される請求項6記載の情報処理装置。
【請求項8】
データ転送のためのバスと、
それぞれプロセスを処理単位とする処理機能を有し、上記バスに対してデータ転送要求を発行可能な複数の機能モジュールと、
上記プロセス毎に設定された優先度情報を、当該プロセスを処理する上記機能モジュールに対応付けて保持可能な優先度情報保持部と、
上記機能モジュールからのデータ送要求毎に、対応する上記優先度情報に基づく優先順位に従って上記バスに対するデータ転送要求の競合を調停するバスアービターと、を含むことを特徴とする情報処理装置。
【請求項9】
上記複数の機能モジュールは、CPUを含み、
上記CPUは、プロセスの起動前に、当該プロセスの実行に使用される機能モジュールに対応する優先度情報保持部に対して、当該プロセスに対応する優先度情報を設定する請求項8記載の情報処理装置。
【請求項10】
上記優先度情報保持部は、上記機能モジュール内に配置されたレジスタとされる請求項9記載の情報処理装置。
【請求項11】
上記バスはスプリットトランザクション型のバスとされ、
上記優先度情報は、上記機能モジュールからのデータ転送要求に対する許可信号がアサートされたサイクルで、上記バスのサイドバンド信号により上記バスアービターに供給される請求項10記載の情報処理装置。

【図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


【公開番号】特開2012−8919(P2012−8919A)
【公開日】平成24年1月12日(2012.1.12)
【国際特許分類】
【出願番号】特願2010−146141(P2010−146141)
【出願日】平成22年6月28日(2010.6.28)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】