説明

情報処理装置

【課題】システム性能不足及びハードウェア資源不足の発生を抑制する。
【解決手段】本発明に係る情報処理装置は、複数のアプリケーションを実行する複数のマスタ101と、スレーブ102と、複数のマスタ101と、スレーブ102とを接続するシステムバス104とを含み、複数のアプリケーションのうち少なくとも一つは、複数のマスタ101のうち2以上のマスタにより実行され、情報処理装置100は、アクセス要求及び応答データに含まれるASID127を参照し、システムバス104を介して転送される、複数のアプリケーションごとのデータ転送量を制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、システムバスを含む情報処理装置に関する。
【背景技術】
【0002】
従来のオンチップバスにおけるシステム資源管理方法は、転送元のトランザクション及びプログラムレベルに対して、バスアービトレーションの優先順位付け及びシステムバス帯域割振り、そしてハードウェア資源割付けを行っている。このように、従来の方法は、局所的な情報によりシステム資源を管理していた(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2002−149423号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来のオンチップバスにおけるシステム資源管理方法では、転送元のトランザクション及びプログラムレベルに対して、バスアービトレーションの優先順位付け及びシステムバス帯域割振り、そしてハードウェア資源割付けが行われていた。そのため、複数の転送元と複数の転送先との間で実現される複数のアプリケーション処理に対するシステム性能を正確に見積もることが困難である。これにより、従来の方法は、ソフトウェアの変更を行う場合、及び見積もり以上の仕様が要求された場合に、システム性能不足及びハードウェア資源不足が発生するという課題を有する。
【0005】
そこで、本発明は、システム性能不足及びハードウェア資源不足の発生を抑制できる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明の一形態に係る情報処理装置は、複数のアプリケーションプログラムを実行する複数のマスタと、スレーブと、前記複数のマスタと、前記スレーブとを接続するシステムバスとを含む情報処理装置であって、前記複数のアプリケーションプログラムのうち少なくとも一つは、前記複数のマスタのうち2以上のマスタにより実行され、前記複数のマスタの各々は、前記複数のアプリケーションプログラムのいずれかを実行することにより、前記システムバスを介して、前記スレーブに、当該アプリケーションプログラムの識別子を含むアクセス要求を送信し、前記スレーブは、前記アクセス要求に対して、前記識別子を含む応答データを、前記システムバスを介して、当該アクセス要求の送信元のマスタに送信し、前記情報処理装置は、前記アクセス要求及び応答データに含まれる前記識別子を参照し、前記システムバスを介して転送される、前記複数のアプリケーションプログラムごとのデータ転送量を制御する。
【0007】
この構成によれば、本発明の一形態に係る情報処理装置は、アプリケーションプログラムごとのデータ転送量を制御できる。これにより、本発明の一形態に係る情報処理装置は、アプリケーションプログラムに必要なデータ転送量を容易に確保できるので、システム性能不足及びハードウェア資源不足の発生を抑制できる。
【0008】
また、前記情報処理装置は、さらに、システム制御レジスタを備え、前記複数のマスタのうち少なくとも一つは、前記システム制御レジスタに、前記複数のアプリケーションプログラムの各々が使用可能な転送帯域を設定し、前記システムバスは、前記アクセス要求及び応答データに含まれる前記識別子を参照し、前記複数のアプリケーションプログラムの各々が、前記システム制御レジスタに設定された転送帯域内でデータ転送を行うように制御することで、前記複数のアプリケーションプログラムごとのデータ転送量を制御する調停部を備えてもよい。
【0009】
この構成によれば、本発明の一形態に係る情報処理装置は、アプリケーションプログラムごとのデータ転送量が設定された値以下になるように制御できる。
【0010】
また、前記情報処理装置は、前記スレーブを含む複数のスレーブを含み、前記情報処理装置は、さらに、前記システムバスを介して転送されているアクセス要求及び応答データに含まれる前記識別子を参照し、前記システムバスを介して転送されている前記アプリケーションプログラムごとのデータ転送量を監視し、当該データ転送量が当該アプリケーションプログラムの機能を実現するために、単位時間当たりに必要な下限データ量以上であるか否かを判定するモニタ回路を備え、前記情報処理装置は、前記モニタ回路により、データ転送量が前記下限データ量未満のアプリケーションプログラムが存在すると判定された場合、前記データ転送量が前記下限データ量未満のアプリケーションプログラムのデータ転送量を増やしてもよい。
【0011】
この構成によれば、本発明の一形態に係る情報処理装置は、アプリケーションプログラムごとのデータ転送量が下限データ量以下になった場合には、当該アプリケーションプログラムのデータ転送量を増やすことができる。
【0012】
また、前記情報処理装置は、前記モニタ回路により、データ転送量が前記下限データ量未満のアプリケーションプログラムが存在すると判定された場合、他のアプリケーションプログラムのデータ転送量を減らすとともに、前記データ転送量が前記下限データ量未満のアプリケーションプログラムのデータ転送量を増やしてもよい。
【0013】
この構成によれば、本発明の一形態に係る情報処理装置は、アプリケーションプログラムごとのデータ転送量が下限データ量以下になった場合には、当該アプリケーションプログラムに、他のアプリケーションプログラムの処理性能を委譲できる。
【0014】
また、前記システムバスは、バスと、前記複数のマスタから送信された前記アクセス要求を保持するとともに、保持する前記アクセス要求を、前記バスを介して、前記スレーブに発行する受信バッファとを備え、前記受信バッファは、前記モニタ回路により、データ転送量が前記下限データ量未満のアプリケーションプログラムが存在すると判定された場合、他のアプリケーションプログラムのアクセス要求の発行量を減らすとともに、前記データ転送量が前記下限データ量未満のアプリケーションプログラムのアクセス要求の発行量を増やしてもよい。
【0015】
また、前記システムバスは、バスと、前記バスを介して、前記複数のマスタから送信された前記アクセス要求を保持するとともに、保持する前記アクセス要求を、前記スレーブに発行する送信バッファとを備え、前記送信バッファは、前記モニタ回路により、データ転送量が前記下限データ量未満のアプリケーションプログラムが存在しないと判定された場合は、ある一つのアプリケーションプログラムの一連のアクセス要求を連続して順次発行した後、他のアプリケーションプログラムのアクセス要求を発行する通常動作を行い、前記モニタ回路により、データ転送量が前記下限データ量未満のアプリケーションプログラムが存在すると判定された場合は、前記一つのアプリケーションプログラムの前記一連のアクセス要求中に、他のアプリケーションプログラムのアクセス要求を発行するインターリーブ動作を行ってもよい。
【0016】
また、前記システムバスは、設定された前記アプリケーションプログラムの優先度に応じて、複数のアクセス要求及び応答データを調停する調停部を備え、前記調停部は、前記モニタ回路により、データ転送量が前記下限データ量未満のアプリケーションプログラムが存在すると判定された場合、当該アプリケーションプログラムの優先度を上げる、又は、他のアプリケーションプログラムの優先度を下げてもよい。
【0017】
また、前記システムバスは、前記モニタ回路により、データ転送量が前記下限データ量未満のアプリケーションプログラムが存在すると判定された場合、前記データ転送量が前記下限データ量未満のアプリケーションプログラムのアクセス要求先を、現在のアクセス要求転送先のスレーブよりも処理性能が高いスレーブに変更してもよい。
【0018】
また、前記システムバスは、前記アクセス要求に含まれるアクセス先のアドレスを参照し、当該アドレスへ当該アクセス要求を送信する転送先選択部を備え、前記転送先選択部は、前記モニタ回路により、データ転送量が前記下限データ量未満のアプリケーションプログラムが存在すると判定された場合、物理アドレスマップを変更することにより、前記データ転送量が前記下限データ量未満のアプリケーションプログラムのアクセス要求先を、現在のアクセス要求転送先のスレーブよりも処理性能が高いスレーブに変更してもよい。
【0019】
また、前記システムバスは、前記モニタ回路により、データ転送量が前記下限データ量未満のアプリケーションプログラムが存在すると判定された場合、論理アドレスマップを変更することにより、前記データ転送量が前記下限データ量未満のアプリケーションプログラムのアクセス要求先を、現在のアクセス要求転送先のスレーブよりも処理性能が高いスレーブに変更する論理アドレス制御回路を備えてもよい。
【0020】
また、前記情報処理装置は、さらに、前記システムバスにクロックを供給するクロック制御回路を備え、前記クロック制御回路は、前記モニタ回路により、データ転送量が前記下限データ量未満のアプリケーションプログラムが存在すると判定された場合、前記システムバスに供給するクロックの周波数を上げてもよい。
【0021】
この構成によれば、本発明の一形態に係る情報処理装置は、他のアプリケーションプログラムの処理性能を、性能不足のアプリケーションプログラムに委譲できない場合でも、当該性能不足のアプリケーションプログラムのデータ転送量を増やすことができる。
【0022】
また、前記情報処理装置は、さらに、ブリッジを備え、前記システムバスは、前記複数のマスタの一つである第1マスタと、前記ブリッジとを接続する第1システムバスと、前記ブリッジと、前記複数のスレーブの一つである第1スレーブとを接続する第2システムバスとを含み、前記モニタ回路は、前記第1システムバスを介して転送されているアクセス要求及び応答データに含まれる前記識別子を参照し、前記第1システムバスを介して転送されている前記アプリケーションプログラムごとのデータ転送量を監視し、当該データ転送量が前記下限データ量以上であるか否かを判定する第1モニタ回路と、前記第2システムバスを介して転送されているアクセス要求及び応答データに含まれる前記識別子を参照し、前記第2システムバスを介して転送されている前記アプリケーションプログラムごとのデータ転送量を監視し、当該データ転送量が前記下限データ量以上であるか否かを判定する第2モニタ回路とを含み、前記情報処理装置は、前記第1モニタ回路により、データ転送量が前記下限データ量未満のアプリケーションプログラムが存在すると判定された場合、前記第2システムバスにおける、アプリケーションプログラムのデータ転送量を減らすとともに、前記第1システムバスにおける、前記データ転送量が前記下限データ量未満のアプリケーションプログラムのデータ転送量を増やしてもよい。
【0023】
また、前記情報処理装置は、前記第1モニタ回路により、前記第1システムバスにおいて、データ転送量が前記下限データ量未満のアプリケーションプログラムが存在すると判定された場合、当該アプリケーションプログラムと依存関係にある、前記第2システムバスのアプリケーションのデータ転送量を増加させることにより、前記データ転送量が前記下限データ量未満のアプリケーションプログラムのデータ転送量を増やすとともに、前記第2システムバスの他のアプリケーションプログラムのデータ転送量を減らしてもよい。
【0024】
この構成によれば、本発明の一形態に係る情報処理装置は、システムバス内において、他のアプリケーションプログラムの処理性能を、性能不足のアプリケーションプログラムに委譲できない場合でも、当該性能不足のアプリケーションプログラムのデータ転送量を増やすことができる。
【0025】
また、前記情報処理装置は、前記第1マスタと、前記ブリッジと、前記第1システムバスとを含む1チップの第1半導体集積回路と、前記第1スレーブと、前記第2システムバスとを含む1チップの第2半導体集積回路とを備えてもよい。
【0026】
また、前記情報処理装置は、さらに、前記第1システムバス及び前記第2システムバスにクロックを供給するクロック供給回路を備え、前記クロック供給回路は、前記第1モニタ回路により、前記第1システムバスにおいて、データ転送量が前記下限データ量未満のアプリケーションプログラムが存在すると判定された場合、前記第1システムバスに供給するクロックの周波数を上げるとともに、前記第2システムバスに供給するクロックの周波数を下げてもよい。
【0027】
この構成によれば、本発明の一形態に係る情報処理装置は、性能不足のアプリケーションプログラムと依存関係がある、他のシステムバスの、余力のあるアプリケーションが存在しない場合でも、性能不足のアプリケーションのデータ転送量を増加できる。
【0028】
なお、本発明は、このような情報処理装置として実現できるだけでなく、情報処理装置に含まれる特徴的な手段をステップとする情報処理方法、又は情報処理装置の制御方法として実現したり、そのような特徴的なステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、CD−ROM等の非一時的なコンピュータ読み取り可能な記録媒体、及びインターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
【0029】
さらに、本発明は、このような情報処理装置の機能の一部又は全てを実現する半導体集積回路(LSI)として実現してもよい。
【発明の効果】
【0030】
以上より、本発明は、システム性能不足及びハードウェア資源不足の発生を抑制できる情報処理装置を提供できる。
【図面の簡単な説明】
【0031】
【図1】本発明の第1の実施形態に係る情報処理装置の概略構成を示すブロック図である。
【図2】本発明の第1の実施形態に係るアプリケーションの実行例を示す図である。
【図3A】本発明の第1の実施形態に係るリード要求を示す図である。
【図3B】本発明の第1の実施形態に係るライト要求を示す図である。
【図3C】本発明の第1の実施形態に係る応答データを示す図である。
【図4】本発明の第1の実施形態に係る情報処理装置による処理を示すフローチャートである。
【図5】本発明の第1の実施形態に係る、帯域割当とデータ転送量とを示す図である。
【図6】本発明の第2の実施形態に係る情報処理装置の概略構成を示すブロック図である。
【図7】本発明の第2の実施形態に係る情報処理装置による設定処理のフローチャートである。
【図8】本発明の第2の実施形態に係る情報処理装置によるデータ転送量制御処理のフローチャートである。
【図9】本発明の第2の実施形態に係る、データ転送量を示す図である。
【図10】本発明の第3の実施形態に係る情報処理装置の概略構成を示すブロック図である。
【図11】本発明の第3の実施形態に係る情報処理装置によるデータ転送量制御処理のフローチャートである。
【図12A】本発明の第3の実施形態に係る通常動作を示す図である。
【図12B】本発明の第3の実施形態に係るインターリーブ動作を示す図である。
【図13】本発明の第4の実施形態に係る情報処理装置の概略構成を示すブロック図である。
【図14】本発明の第4の実施形態に係る情報処理装置によるデータ転送量制御処理のフローチャートである。
【図15】本発明の第5の実施形態に係る情報処理装置の概略構成を示すブロック図である。
【図16】本発明の第5の実施形態に係る情報処理装置によるデータ転送量制御処理のフローチャートである。
【図17】本発明の第6の実施形態に係る情報処理装置の概略構成を示すブロック図である。
【図18】本発明の第6の実施形態に係る情報処理装置によるデータ転送量制御処理のフローチャートである。
【図19】本発明の第7の実施形態に係る情報処理装置の概略構成を示すブロック図である。
【図20】本発明の第7の実施形態に係る情報処理装置によるデータ転送量制御処理のフローチャートである。
【図21】本発明の第7の実施形態に係る、データ転送量を示す図である。
【図22】本発明の第8の実施形態に係る情報処理装置の概略構成を示すブロック図である。
【図23】本発明の第8の実施形態に係る情報処理装置によるデータ転送量制御処理のフローチャートである。
【図24】本発明の第8の実施形態に係る、データ転送量を示す図である。
【図25】本発明の第8の実施形態の変形例に係る情報処理装置の概略構成を示すブロック図である。
【図26】本発明の第9の実施形態に係る情報処理装置の概略構成を示すブロック図である。
【図27】本発明の第9の実施形態に係る情報処理装置によるデータ転送量制御処理のフローチャートである。
【図28】本発明の第9の実施形態に係る、データ転送量を示す図である。
【発明を実施するための形態】
【0032】
以下、本発明に係る情報処理装置の実施の形態について、図面を参照しながら詳細に説明する。
【0033】
(第1の実施形態)
本発明の第1の実施形態に係る情報処理装置は、アプリケーションプログラムごとに、バス帯域を割り当てる。これにより、本発明の第1の実施形態に係る情報処理装置は、アプリケーションに必要なデータ転送量を容易に確保できるので、システム性能不足及びハードウェア資源不足の発生を抑制できる。
【0034】
まず、本発明の第1の実施形態に係る情報処理装置の構成を説明する。
【0035】
図1は、本発明の第1の実施形態に係る情報処理装置の概略構成を示すブロック図である。
【0036】
図1に示す情報処理装置100は、複数のマスタ101A〜103Cと、複数のスレーブ102A〜102Bと、システム制御レジスタ103と、システムバス104とを含む。
【0037】
システムバス104は、複数のマスタ101A〜101Cと、複数のスレーブ102A及び102Bと、システム制御レジスタ103とを接続する。
【0038】
また、以下では、マスタ101A〜103Cを特に区別しない場合には、マスタ101と記し、スレーブ102A〜102Bを特に区別しない場合にはスレーブ102と記す。また、以下においても、同一構成の複数の構成要素に対して、同様の記載方法を用いる。
【0039】
また、図1では、情報処理装置100が、3個のマスタ101と、2個のスレーブ102とを備える例を示しているが、情報処理装置100が備えるマスタ101及びスレーブ102の数はこれに限定されない。例えば、スレーブ102は1個であってもよい。
【0040】
マスタ101は、例えば、CPU等のプロセッサである。このマスタ101は、システムバス104を介して、複数のスレーブ102及びシステム制御レジスタ103へアクセス要求を送信する。
【0041】
スレーブ102は、メモリ又は入出力インターフェース部等である。このスレーブ102は、マスタ101から送信されたアクセス要求を受信する。また、スレーブ102は、必要に応じて、受信したアクセス要求に対する応答データを、マスタ101へ返信する。
【0042】
また、複数のマスタ101は、複数のアプリケーションプログラム(以下、アプリケーション)を実行する。ここで、アプリケーションとは、例えば、動画像の再生処理等であり、各々が複数のプログラムを含む。また、図2に示すように、各アプリケーションは、1以上のマスタ101により実行される。言い換えると、複数のアプリケーションは、2以上のマスタ101により実行されるアプリケーションを含む。例えば、ある1マスタ101が、あるアプリケーションに含まれる第1プログラムを実行し、他のマスタ101が同じアプリケーションに含まれる第2プログラムを実行する。
【0043】
複数のマスタ101の各々は、複数のアプリケーションのいずれかを実行することにより、システムバス104を介して、スレーブ102にアクセス要求を送信する。
【0044】
ここで、アクセス要求は、リード要求及びライト要求のうちいずれかである。
【0045】
図3Aは、リード要求の一例を示す図である。図3Aに示すように、リード要求は、アクセス先アドレス125と、アクセス元アドレス126と、ASID(Application Specified Identification)127とを含む。
【0046】
アクセス先アドレス125は、アクセス先のスレーブ102又はシステム制御レジスタ103のアドレスである。アクセス元アドレス126は、アクセス元のマスタ101のアドレスである。
【0047】
ASID127は、当該アクセス要求を実行したアプリケーションを示す識別子である。
【0048】
図3Bは、ライト要求の一例を示す図である。図3Bに示すように、ライト要求は、アクセス先アドレス125と、ASID127と、ライトデータ128とを含む。なお、ライト要求は、さらに、アクセス元アドレス126を含んでもよい。また、アクセス要求は、上記以外の情報を含んでもよい。例えば、アクセス要求は、当該アクセス要求が、リード要求であるかライト要求であるかを示す制御情報等を含んでもよい。また、当該制御情報は、転送サイズ、転送タイプ及び転送回数等を示す情報を含んでもよい。
【0049】
また、ライト要求と、ライトデータとを分割し、ライトデータを専用のバスを介して転送してもよい。この場合、例えば、ライト要求は、アクセス先アドレス125と、アクセス元アドレス126と、ASID127と、上記制御情報とを含む。また、ライトデータは、アクセス元アドレス126と、ASID127と、ライトデータ128とを含む。
【0050】
スレーブ102及びシステム制御レジスタ103は、受信したライト要求に応じて、当該ライト要求に含まれるライトデータを格納する。また、スレーブ102及びシステム制御レジスタ103は、受信したリード要求に応じて、応答データを、システムバス104を介して、当該アクセス要求の送信元のマスタに送信する。
【0051】
図3Cは、応答データの一例を示す図である。図3Bに示すように、応答データは、アクセス元アドレス126と、ASID127と、リードデータ129とを含む。また、応答データは、上記以外の情報を含んでもよい。また、スレーブ102は、ライトデータを格納した後に、格納が完了したことを示すライト完了通知と、アクセス元アドレス126と、ADID127と含む応答データを、システムバス104を介して、当該ライト要求の送信元のマスタに送信してもよい。
【0052】
また、本発明の第1の実施形態に係る情報処理装置100は、アクセス要求及び応答データに含まれるASID127を参照し、システムバス104を介して転送される、複数のアプリケーションごとのデータ転送量を制御する。
【0053】
システムバス104は、複数の受信バッファ110(110A〜110C)及び120(120A〜120C)と、複数の送信バッファ111(111A〜111C)及び121(121A〜121C)と、転送先選択部112(112A〜112C)及び122(122A〜122C)と、調停部113(113A〜113C)及び123(123A〜123)と、バス115とを含む。
【0054】
ここで、受信バッファ110A、送信バッファ111A、転送先選択部112A、及び調停部113Aは、マスタ101Aに対応する。受信バッファ110B、送信バッファ111B、転送先選択部112B、及び調停部113Bは、マスタ101Bに対応する。受信バッファ110C、送信バッファ111C、転送先選択部112C、及び調停部113Cは、マスタ101Cに対応する。
【0055】
また、受信バッファ120A、送信バッファ121A、転送先選択部122A、及び調停部123Aは、スレーブ102Aに対応する。受信バッファ120B、送信バッファ121B、転送先選択部122B、及び調停部123Bは、スレーブ102Bに対応する。受信バッファ120C、送信バッファ121C、転送先選択部122C、及び調停部123Cは、システム制御レジスタ103に対応する。
【0056】
受信バッファ110は、1段以上のメモリ又はレジスタで構成されている。この受信バッファ110は、当該受信バッファ110に対応するマスタ101から送信されたアクセス要求を受信し、受信したアクセス要求を保持する。また、受信バッファ110は、保持するアクセス要求を、当該受信バッファ110に対応する転送先選択部112へ順次送信する。
【0057】
転送先選択部112は、当該転送先選択部112に対応する受信バッファ110から送信されたアクセス要求を、当該アクセス要求に含まれるアクセス先アドレス125に対応するスレーブ102(調停部123)へ、バス115を介して送信する。
【0058】
調停部123は、転送先選択部112から送信されたアクセス要求を受信し、受信したアクセス要求を、当該調停部123に対応する送信バッファ121へ送信する。また、調停部123は、複数のマスタ101から送信された複数のアクセス要求を同時に受信した場合には、優先度の高いアクセス要求を判定し、当該優先度の高いアクセス要求を、当該調停部123に対応する送信バッファ121へ送信する。
【0059】
送信バッファ121は、1段以上のメモリ又はレジスタで構成されている。この送信バッファ121は、当該送信バッファ121に対応する調停部123から送信されたアクセス要求を保持する。また、送信バッファ121は、保持するアクセス要求を、当該送信バッファ121に対応するスレーブ102又はシステム制御レジスタ103に順次送信する。
【0060】
スレーブ102及びシステム制御レジスタ103は、受信したライト要求に応じて、当該ライト要求に含まれるライトデータ128を格納する。また、スレーブ102及びシステム制御レジスタ103は、受信したリード要求に応じて、応答データを、当該スレーブ102又はシステム制御レジスタ103に対応する受信バッファ120へ送信する。
【0061】
受信バッファ120は、1段以上のメモリ又はレジスタで構成されている。この受信バッファ110は、当該受信バッファ120に対応するスレーブ102又はシステム制御レジスタ103から送信された応答データを受信し、受信した応答データを保持する。また、受信バッファ120は、保持する応答データを、当該受信バッファ120に対応する転送先選択部122へ順次送信する。
【0062】
転送先選択部122は、対応する受信バッファ120から送信された応答データを、当該応答データに含まれるアクセス元アドレス126に対応するマスタ101(調停部113)へ、バス115を介して送信する。
【0063】
調停部113は、転送先選択部122から送信された応答データを受信し、受信した応答データを、当該調停部113に対応する送信バッファ111へ送信する。また、調停部113は、複数のスレーブ102又はシステム制御レジスタ103から送信された複数の応答データを同時に受信した場合には、優先度の高い応答データを判定し、当該優先度の高い応答データを、当該調停部113に対応する送信バッファ111へ送信する。
【0064】
送信バッファ111は、1段以上のメモリ又はレジスタで構成されている。この送信バッファ111は、当該送信バッファ111に対応する調停部113から送信された応答データを保持する。また、送信バッファ111は、保持する応答データを、当該送信バッファ121に対応するマスタ101に順次送信する。
【0065】
バス115は、複数の転送先選択部112と複数の調停部123とを接続するとともに、複数の転送先選択部122と複数の調停部113とを接続する。また、バス115は、複数のデータ(図1の例では、最大6個のデータ)を並列に転送することが可能である。
【0066】
以下、上記のように構成された情報処理装置100の動作を説明する。
【0067】
また、以下では図2に示すように、マスタ101A〜101Cにより3種類のアプリケーション(ASID0、ASID1、ASID2)が実施される場合を想定する。
【0068】
まず、複数、又は一つのマスタ101は、システム制御レジスタ103へ事前に見積もった3種類のアプリケーションの単位時間当たりの転送量を設定する。
【0069】
図4は、情報処理装置100による処理の流れを示すフローチャートである。
【0070】
実行するアプリケーションが変更された場合(S101でYes)、マスタ101は、アプリケーション毎の、単位時間当たりの転送量を算出する(S102)。
【0071】
次に、マスタ101は、複数のアプリケーションの各々に割り当てる使用帯域を算出する。例えば、マスタ101は、使用可能な全通信帯域に対する各アプリケーションが使用可能な割合を算出する。そして、マスタ101は、算出した使用帯域を設定量としてシステム制御レジスタ103に設定する(S103)。
【0072】
調停部113及び123は、システム制御レジスタ103に設定された設定量に応じて、調停するバス帯域を決定する(S104)。言い換えると、調停部113及び123は、複数のアプリケーションの各々が使用するバス帯域が、上記設定量内になるように、複数のアクセス要求及び応答データを調停する。具体的には、調停部113及び123は、受信した複数のアクセス要求を、当該複数のアクセス要求に含まれるASID127を参照し、複数のアプリケーションの各々が、システム制御レジスタ103に設定された通信帯域内でデータ転送を行うように制御する。
【0073】
図5は、設定量の具体例を示す図である。
【0074】
図5では、ASID0、ASID1、ASID2のそれぞれにバス帯域の上限が決定されている。また、ハッチング部分が現状のデータ転送量を示している。
【0075】
図5(a)では各アプリケーションのデータ転送量は上限に達していなため、理想的な転送状態である。
【0076】
図5(b)では、図5(a)の状態からASID0のデータ転送量が増加し、当該データ転送量が上限に達している。
【0077】
この状態が継続した場合、情報処理装置100を含むSoC(System−on−a−chip)のシステム性能が不足する。これにより、システム動作が遅延したり、音声又は映像が途切れたりとシステム動作に悪影響が発生する。そこで、高負荷なアプリケーションを実施するごとにマスタ101からシステム制御レジスタ103に対し、その都度予想されるシステム性能値を設定することにより、アプリケーションに依存したバス帯域を保証することができる。
【0078】
図5(c)〜(e)は、実行アプリケーション毎にバス帯域設定を再設定した状態を表している。
【0079】
以上のように、実行するアプリケーション毎にその都度システムバス104上のデータ転送量を制御することにより、システム性能の安定を図ることができる。このように、本発明の第1の実施形態に係る情報処理装置100は、アプリケーションに必要なデータ転送量を容易に確保できるので、システム性能不足及びハードウェア資源不足の発生を抑制できる。
【0080】
しかし、図5(f)に示すように見積もり性能以上のデータ転送量が必要な場合や、図5(e)に示すように見積もり性能が過剰であった場合などには現状のシステムでは対応できない。なお、性能過剰な場合は性能不足に陥らないが電力面でデメリットがある。
【0081】
なお、上記説明では、システム制御レジスタ103に、各アプリケーションに割り当てるバス帯域の割合が設定されるとしたが、さらに、以下の情報が設定されてもよい。
【0082】
例えば、システム制御レジスタ103に、優先するアプリケーションを設定してもよい。この場合、調停部113及び123は、システム制御レジスタ103に設定されているアプリケーションのアクセス要求及び応答データを優先して出力する。また、受信バッファ110及び120と送信バッファ111及び121は、システム制御レジスタ103に設定されているアプリケーションのアクセス要求及び応答データを、他のアプリケーションのアクセス要求及び応答データより先に送信する。
【0083】
また、これらの優先設定は、複数の調停部113及び123の各々に対して個別に設定されてもよい。同様に、これらの優先設定は、複数の受信バッファ110及び120と送信バッファ111及び121との各々に対して個別に設定されてもよい。
【0084】
(第2の実施形態)
図6は、本発明の第2の実施形態に係る情報処理装置100Aの概略構成を示すブロック図である。なお、以下では、第1の実施形態に係る情報処理装置100との相違点を主に説明し、重複する説明は省略する。また、図6において、図1と同様の要素には同一の符号を付している。
【0085】
第2の実施形態に係る情報処理装置100Aは、第1の実施形態に係る情報処理装置100の構成に対して、システムバス104Aの構成がシステムバス104と異なる。具体的には、システムバス104Aは、システムバス104の構成に加え、さらに、モニタ回路130を備える。また、情報処理装置100Aでは、システム制御レジスタ103がスレーブ102Cに置き換わっている。
【0086】
なお、図6では、情報処理装置100Aが、3個のマスタ101A〜101Cと、3個のスレーブ102A〜102Cとを備える例を示している。
【0087】
モニタ回路130は、バス115を転送されるアプリケーション毎に全てのバストランザクションを監視するASIDモニタである。具体的には、モニタ回路130は、システムバス104を介して転送されているアクセス要求及び応答データに含まれるASID127を参照し、システムバス104を介して転送されているアプリケーションごとのデータ転送量を監視する。そして、モニタ回路130は、当該データ転送量が当該アプリケーションの機能を実現するために、単位時間当たりに必要な下限データ量以上であるか否かを判定する。
【0088】
そして情報処理装置100Aは、モニタ回路130により、データ転送量が下限データ量未満のアプリケーション(以下、性能不足のアプリケーション)が存在すると判定された場合、性能不足のアプリケーションのデータ転送量を増やす。
【0089】
具体的には、情報処理装置100Aは、モニタ回路130により、性能不足のアプリケーションが存在すると判定された場合、余力のあるアプリケーションのデータ転送量を減らすとともに、性能不足のアプリケーションプログラムのデータ転送量を増やす。ここで余力のあるアプリケーションとは、下限データ量に予め定められたデータ量分を加えた値より、データ転送量が多いアプリケーションである。
【0090】
上記のように構成された情報処理装置100Aについて、以下にその動作を説明する。
【0091】
また、以下では図2に示すように、マスタ101A〜101Cにより3種類のアプリケーション(ASID0、ASID1、ASID2)が実施される場合を想定する。
【0092】
まず、複数、又は一つのマスタ101は、モニタ回路130に、事前に見積もった3種類のアプリケーションの単位時間当たりの転送量の必要最低値である下限データ量を設定する。
【0093】
図7は、マスタ101による下限データ量の設定処理のフローチャートである。
【0094】
図7に示すように、実行するアプリケーションが変更された場合(S201でYes)、マスタ101は、アプリケーション毎の、下限データ量を算出し、算出した下限データ量をモニタ回路130に設定する(S202)。
【0095】
図8は、情報処理装置100Aによるデータ転送量の制御処理のフローチャートである。また、図9は、データ転送量の一例を示す図である。なお、図9では、ASID0、ASID1、ASID2のそれぞれの下限データ量を上下矢印で示しており、ハッチング部分が現状のデータ転送量を示している。
【0096】
図8に示すように、モニタ回路130は、所定の時間ごとに、アプリケーション毎のデータ転送量をモニタ(監視)する(S211)。
【0097】
例えば、図9(a)では各アプリケーションのデータ転送量は下限に達していない(S212でNo)ため、理想的な転送状態である。
【0098】
一方、図9(b)は、ASID0のデータ転送量が低下し、下限データ量を下回っていること表している。
【0099】
このように、性能不足のアプリケーションが存在する場合(S212でYes)、モニタ回路130は、余力のあるアプリケーションを検知する。そして、モニタ回路130は、検知した余力のあるアプリケーションのデータ転送量を減らすとともに、性能不足のアプリケーションのデータ転送量を増やす。例えば、図9(c)に示すように、モニタ回路130は、ASID1のアプリケーションのデータ転送量を減らすとともに、ASID0のデータ転送量を増やす。
【0100】
具体的には、送信バッファ111及び受信バッファ110は、余力のあるアプリケーションのコマンド発行量を抑制するとともに、性能不足のアプリケーションのコマンド発行量を増加させる(S213)。例えば、送信バッファ111及び受信バッファ110は、余力のあるアプリケーションのコマンド発行間隔を長くするとともに、性能不足のアプリケーションのコマンド発行間隔を短くする。なお、送信バッファ111及び受信バッファ110は、余力のあるアプリケーションのアクセス要求又は応答データの保持に使用するバッファの段数を減少させるとともに、性能不足のアプリケーションのアクセス要求又は応答データの保持に使用するバッファの段数を増加させてもよい。
【0101】
以上のように、本発明の第2の実施形態に係る情報処理装置100Aは、実行するアプリケーション毎にシステムバス104A上のデータ転送量をモニタし、モニタ結果に応じて、転送元の送信バッファ111及び受信バッファ110を制御することにより、システム性能の安定を図ることができる。
【0102】
(第3の実施形態)
本発明の第3の実施形態では、上述した第2の実施形態の変形例について説明する。
【0103】
図10は、本発明の第3の実施形態に係る情報処理装置100Bの概略構成を示すブロック図である。
【0104】
図10に示す情報処理装置100Bは、システムバス104Bの機能が、システムバス104Aと異なる。具体的には、システムバス104Bでは、受信バッファ110及び送信バッファ111に加え、スレーブ102側の受信バッファ120及び送信バッファ121が、モニタ回路130のモニタ結果に応じて、制御を変更する。
【0105】
上記のように構成された情報処理装置100Bについて、以下にその動作を説明する。
【0106】
また、3種類のアプリケーション(ASID0、ASID1、ASID2)が一つのスレーブ102に集中してアクセスすることにより、データ転送量不足が発生した場合を想定する。
【0107】
図11は、第3の実施形態に係る情報処理装置100Bの動作を示すフローチャートである。
【0108】
まず、第2の実施形態と同様に、3種類のアプリケーションの下限データ量が設定される。
【0109】
次に、モニタ回路130は、所定の時間ごとに、アプリケーション毎のデータ転送量をモニタ(監視)する(S211)。
【0110】
例えば、図9(b)に示すように、ASID0のデータ転送量が下限データ量を下回っている場合(S212でYes)、受信バッファ110、120、送信バッファ111及び121のうち少なくとも一つは、性能不足のASID0のアプリケーションに対してインターリーブ動作を行う(S223)。
【0111】
図12Aは、受信バッファ110、120、送信バッファ111及び121による通常動作を示す図である。また、図12Bは、受信バッファ110、120、送信バッファ111及び121によるインターリーブ動作を示す図である。
【0112】
図12Aに示すように、通常動作時(データ転送量が下限データ量以上の場合)には、受信バッファ110、120、送信バッファ111及び121は、あるアプリケーションの一連のアクセス要求又は応答データを連続して順次発行した後、他のアプリケーションのアクセス要求又は応答データを発行する。例えば、受信バッファ110、120、送信バッファ111及び121は、図12Aに示すようにASID1、ASID1、ASID0、ASID1のアクセス要求を連続して受信した場合でも、3個のASID1のアクセス要求を全て発行した後で、ASID0のアクセス要求を発行する。
【0113】
一方、図12Bに示すように、インターリーブ動作時には、受信バッファ110、120、送信バッファ111及び121は、あるアプリケーションの一連のアクセス要求の発行中であっても、空き期間がある場合には、他のアプリケーションのアクセス要求を当該空き期間に発行する。これにより、ADIS0のデータ転送量を増加させことができる。
【0114】
このように、本発明の第3の実施形態に係る情報処理装置100Bは、実行するアプリケーション毎にシステムバス104B上のデータ転送量をモニタし、モニタ結果に応じて、マスタ101側の受信バッファ110及び送信バッファ111とスレーブ102側の受信バッファ120及び送信バッファ121とを制御することにより、システム性能の安定を図ることができる。
【0115】
(第4の実施形態)
本発明の第4の実施形態では、上述した第2の実施形態の変形例について説明する。
【0116】
図13は、本発明の第4の実施形態に係る情報処理装置100Cの概略構成を示すブロック図である。
【0117】
図13に示す情報処理装置100Cは、システムバス104Cの機能が、システムバス104Aと異なる。具体的には、システムバス104Cでは、調停部113及び123が、モニタ回路130によるモニタ結果に応じて、制御を変更する。
【0118】
上記のように構成された情報処理装置100Cについて、以下にその動作を説明する。
【0119】
図14は、第4の実施形態に係る情報処理装置100Cの動作を示すフローチャートである。
【0120】
まず、第2の実施形態と同様に、3種類のアプリケーションの下限データ量が設定される。
【0121】
次に、モニタ回路130は、所定の時間ごとに、アプリケーション毎のデータ転送量をモニタ(監視)する(S211)。
【0122】
例えば、図9(b)に示すように、ASID0のデータ転送量が下限データ量を下回っている場合(S212でYes)、調停部113及び123は、余力のあるアプリケーション(ASID1)のアクセス要求(応答データ)の優先順位の降下、又は、バス取得時間(バスを使用する時間)を短くするとともに、性能不足のアプリケーション(ASID0)のアクセス要求(応答データ)の優先順位の上昇、又はバス取得時間を長くする(S233)。
【0123】
これにより、例えば、図9(c)のように、余力のあるアプリケーション(ASID1)のデータ転送量が抑制するとともに、性能不足のアプリケーション(ASID0)のデータ転送量を増加させことができる。
【0124】
なお、ステップS233において、(1)余力のあるアプリケーションのアクセス要求(応答データ)の優先順位の降下と、(2)余力のあるアプリケーションのアクセス要求(応答データ)のバス取得時間を短くする処理と、(3)性能不足のアプリケーションのアクセス要求(応答データ)の優先順位の上昇と、(4)性能不足のアプリケーションのアクセス要求(応答データ)のバス取得時間を長くする処理とのうち、少なくとも一つ以上を行なえばよい。
【0125】
以上のように、本発明の第4の実施形態に係る情報処理装置100Cは、実行するアプリケーション毎にシステムバス104C上のデータ転送量をモニタし、モニタ結果に応じて、調停部113及び123を制御することにより、システム性能の安定を図ることができる。
【0126】
(第5の実施形態)
本発明の第5の実施形態では、上述した第2の実施形態の変形例について説明する。
【0127】
図15は、本発明の第5の実施形態に係る情報処理装置100Dの概略構成を示すブロック図である。
【0128】
図15に示す情報処理装置100Dは、システムバス104Dの機能が、システムバス104Aと異なる。具体的には、システムバス104Dでは、転送先選択部112及び122が、モニタ回路130のモニタ結果に応じて、制御を変更する。
【0129】
上記のように構成された情報処理装置100Dについて、以下にその動作を説明する。
【0130】
図16は、第5の実施形態に係る情報処理装置100Dの動作を示すフローチャートである。
【0131】
まず、第2の実施形態と同様に、3種類のアプリケーションの下限データ量が設定される。
【0132】
次に、モニタ回路130は、所定の時間ごとに、アプリケーション毎のデータ転送量をモニタ(監視)する(S211)。
【0133】
例えば、図9(b)に示すように、ASID0のデータ転送量が下限データ量を下回っている場合(S212でYes)、転送先選択部112及び122は、ASID0のデータ転送先として、現在のデータ転送先(マスタ101又はスレーブ102)よりも高処理能力の転送先が存在するか否かを判定する(S243)。
【0134】
高処理能力の転送先が存在する場合(S243でYes)、転送先選択部112及び122は、余力のあるASID1の転送先が低処理能力の転送先になるように、かつ、性能不足のASID0の転送先が高処理能力の転送先になるように、物理アドレスマップを変更する(S244)。これにより、図9(c)に示すように、ASID1のデータ転送量を抑制するとともに、ASID0のデータ転送量を増加させことができる。
【0135】
以上のように、本発明の第5の実施形態に係る情報処理装置100Dは、実行するアプリケーション毎にシステムバス104D上のデータ転送量をモニタし、モニタ結果に応じて、物理アドレスマップを更新することにより、システム性能の安定を図ることができる。
【0136】
(第6の実施形態)
本発明の第6の実施形態では、上述した第2の実施形態の変形例について説明する。
【0137】
図17は、本発明の第6の実施形態に係る情報処理装置100Eの概略構成を示すブロック図である。
【0138】
図17に示す情報処理装置100Eは、システムバス104Eの機能が、システムバス104Aと異なる。具体的には、システムバス104Eは、さらに、論理アドレス制御回路131を備える。
【0139】
論理アドレス制御回路131は、モニタ回路130のモニタ結果に応じて、転送先選択部112及び122が用いる論理アドレスを変更する。
【0140】
上記のように構成された情報処理装置100Eについて、以下にその動作を説明する。
【0141】
図18は、第6の実施形態に係る情報処理装置100Eの動作を示すフローチャートである。
【0142】
まず、第2の実施形態と同様に、3種類のアプリケーションの下限データ量が設定される。
【0143】
次に、モニタ回路130は、所定の時間ごとに、アプリケーション毎のデータ転送量をモニタ(監視)する(S211)。
【0144】
例えば、図9(b)に示すように、ASID0のデータ転送量が下限データ量を下回っている場合(S212でYes)、転送先選択部112及び122は、ASID0のデータ転送先として、現在のデータ転送先よりも高処理能力の転送先が存在するか否かを判定する(S243)。
【0145】
高処理能力の転送先が存在する場合(S243でYes)、論理アドレス制御回路131は、余力のあるASID1の転送先が低処理能力の転送先になるように、かつ、性能不足のASID0の転送先が高処理能力の転送先になるように、論理アドレスマップを変更する(S244)。これにより、図9(c)に示すように、ASID1のデータ転送量を抑制するとともに、ASID0のデータ転送量を増加できる。
【0146】
以上のように、本発明の第6の実施形態に係る情報処理装置100Eは、実行するアプリケーション毎にシステムバス104E上のデータ転送量をモニタし、モニタ結果に応じて、論理アドレスマップを更新することにより、システム性能の安定を図ることができる。
【0147】
(第7の実施形態)
本発明の第7の実施形態では、上述した第2の実施形態の変形例について説明する。
【0148】
図19は、本発明の第7の実施形態に係る情報処理装置100Fの概略構成を示すブロック図である。
【0149】
図19に示す情報処理装置100Fは、さらに、クロック制御回路132を備える。
【0150】
クロック制御回路132は、モニタ回路130のモニタ結果に応じて、システムバス104Fに供給するクロックの周波数を変更する。
【0151】
上記のように構成された情報処理装置100Fについて、以下にその動作を説明する。
【0152】
図20は、第7の実施形態に係る情報処理装置100Fの動作を示すフローチャートである。
【0153】
また、図21は、情報処理装置100Fにおけるデータ転送量の一例を示す図である。
【0154】
まず、第2の実施形態と同様に、3種類のアプリケーションの下限データ量が設定される。
【0155】
次に、モニタ回路130は、所定の時間ごとに、アプリケーション毎のデータ転送量をモニタ(監視)する(S211)。
【0156】
例えば、図21(a)に示すように、ASID0のデータ転送量が下限データ量を下回っている場合(S212でYes)、クロック制御回路132は、システムバス104Fに供給するクロックの周波数を上げる(S263)。これにより、図21(b)に示すように、ASID0のデータ転送量を増加させことができる。
【0157】
以上のように、本発明の第7の実施形態に係る情報処理装置100Fは、実行するアプリケーション毎にシステムバス104F上のデータ転送量をモニタし、モニタ結果に応じて、バスクロック周波数を制御することにより、システム性能の安定を図ることができる。
【0158】
また、情報処理装置100Fは、余力のあるアプリケーションの性能を、性能不足のアプリケーションに委譲できない場合でも、性能不足のアプリケーションのデータ転送量を増加させることができる。
【0159】
(第8の実施形態)
第8の実施形態では、複数のマスタ101及びスレーブ102がブリッジ105を経由して接続されている場合について説明する。
【0160】
図22は、本発明の第8の実施形態に係る情報処理装置100Gの概略構成を示すブロック図である。
【0161】
図22に示す情報処理装置100Gは、複数のマスタ101A〜101D、101Fと、複数のスレーブ102A、102D〜102Gと、複数のブリッジ105B及び105Cと、メインバス106Aと、サブバス106B及び106Cとを含む。なお、メインバス106A、サブバス106B及び106Cの機能は、例えば、第2の実施形態で述べたシステムバス104Aの機能と同様である。
【0162】
また、ここでは、情報処理装置100Gが、3個のシステムバス(メインバス106A、サブバス106B及び106C)を備える場合を例に説明するが、システムバスの数は2個以上であればよい。
【0163】
メインバス106Aは、マスタ101A〜101Cと、スレーブ102A、ブリッジ105B及び105Cとを接続する。
【0164】
このメインバス106Aは、複数の受信バッファ110(110A〜110C)及び120(120A〜120C)と、複数の送信バッファ111(111A〜111C)及び121(121A〜121C)と、転送先選択部112(112A〜112C)及び122(122A〜122C)と、調停部113(113A〜113C)及び123(123A〜123)と、バス115Aと、モニタ回路130Aとを含む。
【0165】
ここで、受信バッファ110A、送信バッファ111A、転送先選択部112A、及び調停部113Aは、マスタ101Aに対応する。受信バッファ110B、送信バッファ111B、転送先選択部112B、及び調停部113Bは、マスタ101Bに対応する。受信バッファ110C、送信バッファ111C、転送先選択部112C、及び調停部113Cは、マスタ101Cに対応する。
【0166】
また、受信バッファ120A、送信バッファ121A、転送先選択部122A、及び調停部123Aは、スレーブ102Aに対応する。受信バッファ120B、送信バッファ121B、転送先選択部122B、及び調停部123Bは、ブリッジ105Bに対応する。受信バッファ120C、送信バッファ121C、転送先選択部122C、及び調停部123Cは、ブリッジ105Cに対応する。
【0167】
サブバス106Bは、マスタ101D及びブリッジ105Bと、スレーブ102D及び102Eを接続する。
【0168】
このサブバス106Bは、複数の受信バッファ110(110D及び110E)及び120(120D及び120E)と、複数の送信バッファ111(111D及び111E)及び121(121D及び121E)と、転送先選択部112(112D及び112E)及び122(122D及び122E)と、調停部113(113D及び113E)及び123(123D及び123)と、バス115Bと、モニタ回路130Bとを含む。
【0169】
ここで、受信バッファ110D、送信バッファ111D、転送先選択部112D、及び調停部113Dは、マスタ101Dに対応する。受信バッファ110E、送信バッファ111E、転送先選択部112E、及び調停部113Eは、ブリッジ105Bに対応する。
【0170】
また、受信バッファ120D、送信バッファ121D、転送先選択部122D、及び調停部123Dは、スレーブ102Dに対応する。受信バッファ120E、送信バッファ121E、転送先選択部122E、及び調停部123Eは、スレーブ102Eに対応する。
【0171】
サブバス106Cは、マスタ101F及びブリッジ105Cと、スレーブ102F及び102Gとを接続する。
【0172】
このサブバス106Cは、複数の受信バッファ110(110F及び110G)及び120(120F及び120G)と、複数の送信バッファ111(111F及び111G)及び121(121F及び121G)と、転送先選択部112(112F及び112G)及び122(122F及び122G)と、調停部113(113F及び113G)及び123(123F及び123)と、バス115Cと、モニタ回路130Cとを含む。
【0173】
ここで、受信バッファ110F、送信バッファ111F、転送先選択部112F、及び調停部113Fは、マスタ101Fに対応する。受信バッファ110G、送信バッファ111G、転送先選択部112G、及び調停部113Gは、ブリッジ105Cに対応する。
【0174】
また、受信バッファ120F、送信バッファ121F、転送先選択部122F、及び調停部123Fは、スレーブ102Fに対応する。受信バッファ120G、送信バッファ121G、転送先選択部122G、及び調停部123Gは、スレーブ102Gに対応する。
【0175】
なお、複数の受信バッファ110及び120と、複数の送信バッファ111及び121と、転送先選択部112及び122と、調停部113及び123との機能は、上述した第2の実施形態と同様である。また、バス115A〜115Cと、モニタ回路130A〜130Cとの機能は、第2の実施形態のバス115とモニタ回路130と同様である。つまり、モニタ回路130Aは、メインバス106Aを介して転送されているアクセス要求及び応答データに含まれるASID127を参照し、メインバス106Aを介して転送されているアプリケーションごとのデータ転送量を監視し、当該データ転送量が前記下限データ量以上であるか否かを判定する。また、モニタ回路130Bは、サブバス106Bを介して転送されているアクセス要求及び応答データに含まれるASID127を参照し、サブバス106Bを介して転送されているアプリケーションごとのデータ転送量を監視し、当該データ転送量が前記下限データ量以上であるか否かを判定する。また、モニタ回路130Cは、サブバス106Cを介して転送されているアクセス要求及び応答データに含まれるASID127を参照し、サブバス106Cを介して転送されているアプリケーションごとのデータ転送量を監視し、当該データ転送量が前記下限データ量以上であるか否かを判定する。
【0176】
また、情報処理装置100Gは、メインバス106A、サブバス106B及び106Cのうちいずれかに性能不足のアプリケーションが存在する場合、他のシステムバスにおけるアプリケーションのデータ転送量を減らすとともに、性能不足のアプリケーションが存在するシステムバスにおける、性能不足のアプリケーションのデータ転送量を増やす。
【0177】
具体的には、情報処理装置100Gは、あるシステムバスの性能不足のアプリケーションと依存関係にある、他のシステムバスのアプリケーションのデータ転送量を増加させることにより、性能不足のアプリケーションのデータ転送量を増やす。また、情報処理装置100Gは、他のシステムバスの他のアプリケーションのデータ転送量を減らす。
【0178】
上記のように構成された情報処理装置100Gについて、以下にその動作を説明する。
【0179】
図23は、第8の実施形態に係る情報処理装置100Gの動作を示すフローチャートである。
【0180】
また、図24は、情報処理装置100Gにおけるデータ転送量を示す図である。なお、図24では、ASID0、ASID1、ASID2のそれぞれの下限データ量を上下矢印で示しており、ハッチング部分が現状のデータ転送量を示している。
【0181】
また、以下では、マスタ101A〜101D及び101Fにより3種類のアプリケーション(ASID0、ASID1、ASID2)が実施される場合を想定する。また、メインバス106AのASID0とサブバス106BのASID1と、サブバス106CのASID1とに依存関係がある場合を想定する。ここで依存関係とは、依存関係にある一つのバスのアプリケーションのデータ転送量が増加(減少)することにより、依存関係にある他のバスのアプリケーションのデータ転送量が増加(減少)する関係である。つまり、サブバス106BのASID1又はサブバス106CのASID1のデータ転送量が増加することで、メインバス106AのASID0のデータ転送量が増加する。
【0182】
まず、3種類のアプリケーションの下限データ量が、メインバス106A、サブバス106B及びサブバス106C毎に設定される。
【0183】
次に、モニタ回路130Aは、所定の時間ごとに、メインバス106Aのアプリケーション毎のデータ転送量をモニタし、モニタ回路130Bは、所定の時間ごとに、サブバス106Bのアプリケーション毎のデータ転送量をモニタし、モニタ回路130Cは、所定の時間ごとに、サブバス106Cのアプリケーション毎のデータ転送量をモニタする(S311)。
【0184】
例えば、図24(a)では、各アプリケーションのデータ転送量は下限に達していない(S312でNo)ため、理想的な転送状態である。
【0185】
一方、図24(b)に示すように、メインバス106AのASID0のデータ転送量が低下し、下限データ量を下回った場合(S312でYes)、モニタ回路130A〜130Cは、メインバス106AのASID0と依存関係にあるサブバス106BのASID1とサブバス106CのASID1とのデータ転送量を増やす。さらに、モニタ回路130A〜130Cは、メインバス106AのASID0と依存関係になく、かつ、余力のあるサブバス106BのASID0及びASID2と、サブバス106CのASID2とのデータ転送量を減らす(S313)。これにより、図24(c)に示すように、メインバス106AのASID0のデータ転送量を増加できる。
【0186】
なお、データ転送量を増減させる方法としては、上述した第2〜第6の実施形態で説明した方法のいずれか1以上を用いることができる。
【0187】
以上のように、本発明の第8の実施形態に係る情報処理装置100Gは、実行するアプリケーション毎に各システムバス上のデータ転送量をモニタし、モニタ結果に応じて、それぞれのバスドメイン間でデータ転送量を相互補完することにより、システム性能の安定を図ることができる。
【0188】
また、情報処理装置100Gは、同一バス内で余力のあるアプリケーションの性能を、性能不足のアプリケーションへ委譲できない場合でも、性能不足のアプリケーションのデータ転送量を増加できる。
【0189】
また図25は、本発明の第8の実施形態に係る情報処理装置の変形例である情報処理装置100Hの概略構成を示すブロック図である。
【0190】
図25に示すように、情報処理装置100Hは、各々が1チップの半導体集積回路である半導体集積回路107A〜107Cを備えてもよい。半導体集積回路107Aは、上述したメインバス106Aと、マスタ101A〜101Cと、スレーブ102Aと、ブリッジ105B及び105Cとを含む。半導体集積回路107Bは、上述したサブバス106Bと、マスタ101Dと、スレーブ102D及び102Eとを含む。半導体集積回路107Cは、上述したサブバス106Cと、マスタ101Fと、スレーブ102F及び102Gとを含む。
【0191】
このような、チップ間通信を行う場合においても、同様の効果が得られる。
【0192】
(第9の実施形態)
本発明の第9の実施形態では、上述した第8の実施形態の変形例について説明する。
【0193】
図26は、本発明の第9の実施形態に係る情報処理装置100Iの概略構成を示すブロック図である。
【0194】
図26に示す情報処理装置100Iは、第8の実施形態に係る情報処理装置100Gの構成に加え、さらに、クロック制御回路133を備える。
【0195】
クロック制御回路133は、モニタ回路130A〜130Cのモニタ結果に応じて、メインバス106A、サブバス106B及び106Cに供給するクロックの周波数を変更する。
【0196】
上記のように構成された情報処理装置100Iについて、以下にその動作を説明する。
【0197】
図27は、第9の実施形態に係る情報処理装置100Iの動作を示すフローチャートである。
【0198】
また、図28は、情報処理装置100Iにおけるデータ転送量を示す図である。なお、図28では、ASID0、ASID1、ASID2のそれぞれの下限データ量を上下矢印で示しており、ハッチング部分が現状のデータ転送量を示している。
【0199】
まず、3種類のアプリケーションの下限データ量が、メインバス106A、サブバス106B及びサブバス106C毎に設定される。
【0200】
次に、モニタ回路130Aは、所定の時間ごとに、メインバス106Aのアプリケーション毎のデータ転送量をモニタし、モニタ回路130Bは、所定の時間ごとに、サブバス106Bのアプリケーション毎のデータ転送量をモニタし、モニタ回路130Cは、所定の時間ごとに、サブバス106Cのアプリケーション毎のデータ転送量をモニタする(S311)。
【0201】
図28(a)に示すように、メインバス106AのASID0〜ASID1のデータ転送量が下限データ量を下回った場合(S312でYes)、クロック制御回路133は性能不足のメインバス106Aのクロック周波数を上げるとともに、余力のあるサブバス106Bのクロック周波数を下げる(S323)。これにより、図28(b)に示すように、メインバス106Aの性能不足のASID0、ASID1及びASID2のデータ転送量を増加させるとともに、余力のあるサブバス106Bのデータ転送量を抑制できる。このように、情報処理装置100Iは、システムとして必要なデータ転送量を動的に設定することができる。
【0202】
以上のように、本発明の第9の実施形態に係る情報処理装置100Iは、実行するアプリケーション毎に各システムバス上のデータ転送量をモニタし、モニタ結果に応じて、それぞれのバスドメイン間で、データ転送量を相互補完することにより、システム性能の安定を図ることができる。
【0203】
また、情報処理装置100Iは、余力のあるシステムバスのデータ転送量を抑制することとで、電力削減の増加を抑制できる。
【0204】
また、情報処理装置100Iは、同一バス内で余力のあるアプリケーションの性能を、性能不足のアプリケーションへ委譲できない場合でも、性能不足のアプリケーションのデータ転送量を増加できる。
【0205】
さらに、情報処理装置100Iは、上述した第8の実施形態のように、性能不足のアプリケーションと依存関係がある、他のシステムバスの、余力のあるアプリケーションが存在しない場合でも、性能不足のアプリケーションのデータ転送量を増加できる。
【0206】
なお、上記説明では、メインバス106Aの全てのアプリケーションが性能不足の場合を例に説明したが、システムバスに含まれる1以上のアプリケーションが性能不足の場合にも同様の処理を適用できる。
【0207】
また、上記説明では、性能不足のシステムへ供給するクロック周波数を上げるとともに、性能に余力があるシステムバスへ供給するクロック周波数を下げているが、性能不足のシステムへ供給するクロック周波数を上げる処理のみを行なってもよい。
【0208】
また、上記の実施形態で使用した複数のASIDを、複数のグループに分割し、分割したグループに対して、上記のASIDに対する処理と同様の処理を行った場合も、同様の効果が得られる。
【0209】
また、上記第2〜第9の実施形態において、データ転送量を下限データ量以上に制御する異なる方法を個別に説明したが、これらのうち2以上の制御を同時、又は選択的に行なってもよい。例えば、余力のあるアプリケーションの性能を性能不足のアプリケーションに委譲できる場合には、上記第2〜第6の実施形態のいずれかで説明したデータ転送量の制御を行ない、そうでない場合には、第7〜第9の実施形態で説明したデータ転送量の制御を行なってもよい。また、性能不足のアプリケーションと依存関係がある、他のシステムバスの、余力のあるアプリケーションが存在する場合には、上記第8の実施形態で説明したデータ転送量の制御を行ない、そうでない場合には、上記第9の実施形態で説明したデータ転送量の制御を行なってもよい。
【0210】
また、上記実施形態に係る情報処理装置に含まれる各処理部は典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。
【0211】
また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【0212】
また、本発明の実施形態に係る、情報処理装置の機能の一部を、CPU等のプロセッサがプログラムを実行することにより実現してもよい。
【0213】
さらに、本発明は上記プログラムであってもよいし、上記プログラムが記録された非一時的なコンピュータ読み取り可能な記録媒体であってもよい。また、上記プログラムは、インターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
【0214】
また、上記実施形態に係る、情報処理装置、及びその変形例の機能のうち少なくとも一部を組み合わせてもよい。
【0215】
また、上記で用いた数字は、全て本発明を具体的に説明するために例示するものであり、本発明は例示された数字に制限されない。
【0216】
また、上記のステップが実行される順序は、本発明を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時(並列)に実行されてもよい。
【0217】
更に、本発明の主旨を逸脱しない限り、本実施の形態に対して当業者が思いつく範囲内の変更を施した各種変形例も本発明に含まれる。
【産業上の利用可能性】
【0218】
本発明は、情報処理装置に適用でき、特に、SoCに好適できる。
【符号の説明】
【0219】
100、100A、100B、100C、100D、100E、100F、100G、100H、100I 情報処理装置
101、101A、101B、101C、101D、101F マスタ
102、102A、102B、102C、102D、102E、102F、102G スレーブ
103 システム制御レジスタ
104、104A、104B、104C、104D、104E、104F システムバス
105、105B、105C ブリッジ
106A メインバス
106B、106C サブバス
107A、107B、107C 半導体集積回路
110、110A、110B、110C、110D、110E、110F、110G、120、120A、120B、120C、120D、120E、120F、120G 受信バッファ
111、111A、111B、111C、111D、111E、111F、111G、121、121A、121B、121C、121D、121E、121F、121G 送信バッファ
112、112A、112B、112C、112D、112E、112F、112G、122、122A、122B、122C、122D、122E、122F、122G 転送先選択部
113、113A、113B、113C、113D、113E、113F、113G、123、123A、123B、123C、123D、123E、123F、123G 調停部
115、115A、115B、115C バス
125 アクセス先アドレス
126 アクセス元アドレス
127 ASID
128 ライトデータ
129 リードデータ
130、130A、130B、130C モニタ回路
131 論理アドレス制御回路
132、133 クロック制御回路

【特許請求の範囲】
【請求項1】
複数のアプリケーションプログラムを実行する複数のマスタと、
スレーブと、
前記複数のマスタと、前記スレーブとを接続するシステムバスとを含む情報処理装置であって、
前記複数のアプリケーションプログラムのうち少なくとも一つは、前記複数のマスタのうち2以上のマスタにより実行され、
前記複数のマスタの各々は、前記複数のアプリケーションプログラムのいずれかを実行することにより、前記システムバスを介して、前記スレーブに、当該アプリケーションプログラムの識別子を含むアクセス要求を送信し、
前記スレーブは、前記アクセス要求に対して、前記識別子を含む応答データを、前記システムバスを介して、当該アクセス要求の送信元のマスタに送信し、
前記情報処理装置は、前記アクセス要求及び応答データに含まれる前記識別子を参照し、前記システムバスを介して転送される、前記複数のアプリケーションプログラムごとのデータ転送量を制御する
情報処理装置。
【請求項2】
前記情報処理装置は、さらに、システム制御レジスタを備え、
前記複数のマスタのうち少なくとも一つは、前記システム制御レジスタに、前記複数のアプリケーションプログラムの各々が使用可能な転送帯域を設定し、
前記システムバスは、前記アクセス要求及び応答データに含まれる前記識別子を参照し、前記複数のアプリケーションプログラムの各々が、前記システム制御レジスタに設定された転送帯域内でデータ転送を行うように制御することで、前記複数のアプリケーションプログラムごとのデータ転送量を制御する調停部を備える
請求項1記載の情報処理装置。
【請求項3】
前記情報処理装置は、前記スレーブを含む複数のスレーブを含み、
前記情報処理装置は、さらに、
前記システムバスを介して転送されているアクセス要求及び応答データに含まれる前記識別子を参照し、前記システムバスを介して転送されている前記アプリケーションプログラムごとのデータ転送量を監視し、当該データ転送量が当該アプリケーションプログラムの機能を実現するために、単位時間当たりに必要な下限データ量以上であるか否かを判定するモニタ回路を備え、
前記情報処理装置は、前記モニタ回路により、データ転送量が前記下限データ量未満のアプリケーションプログラムが存在すると判定された場合、前記データ転送量が前記下限データ量未満のアプリケーションプログラムのデータ転送量を増やす
請求項1記載の情報処理装置。
【請求項4】
前記情報処理装置は、前記モニタ回路により、データ転送量が前記下限データ量未満のアプリケーションプログラムが存在すると判定された場合、他のアプリケーションプログラムのデータ転送量を減らすとともに、前記データ転送量が前記下限データ量未満のアプリケーションプログラムのデータ転送量を増やす
請求項3記載の情報処理装置。
【請求項5】
前記システムバスは、
バスと、
前記複数のマスタから送信された前記アクセス要求を保持するとともに、保持する前記アクセス要求を、前記バスを介して、前記スレーブに発行する受信バッファとを備え、
前記受信バッファは、前記モニタ回路により、データ転送量が前記下限データ量未満のアプリケーションプログラムが存在すると判定された場合、他のアプリケーションプログラムのアクセス要求の発行量を減らすとともに、前記データ転送量が前記下限データ量未満のアプリケーションプログラムのアクセス要求の発行量を増やす
請求項4記載の情報処理装置。
【請求項6】
前記システムバスは、
バスと、
前記バスを介して、前記複数のマスタから送信された前記アクセス要求を保持するとともに、保持する前記アクセス要求を、前記スレーブに発行する送信バッファとを備え、
前記送信バッファは、
前記モニタ回路により、データ転送量が前記下限データ量未満のアプリケーションプログラムが存在しないと判定された場合は、ある一つのアプリケーションプログラムの一連のアクセス要求を連続して順次発行した後、他のアプリケーションプログラムのアクセス要求を発行する通常動作を行い、
前記モニタ回路により、データ転送量が前記下限データ量未満のアプリケーションプログラムが存在すると判定された場合は、前記一つのアプリケーションプログラムの前記一連のアクセス要求中に、他のアプリケーションプログラムのアクセス要求を発行するインターリーブ動作を行う
請求項4記載の情報処理装置。
【請求項7】
前記システムバスは、設定された前記アプリケーションプログラムの優先度に応じて、複数のアクセス要求及び応答データを調停する調停部を備え、
前記調停部は、前記モニタ回路により、データ転送量が前記下限データ量未満のアプリケーションプログラムが存在すると判定された場合、当該アプリケーションプログラムの優先度を上げる、又は、他のアプリケーションプログラムの優先度を下げる
請求項4記載の情報処理装置。
【請求項8】
前記システムバスは、前記モニタ回路により、データ転送量が前記下限データ量未満のアプリケーションプログラムが存在すると判定された場合、前記データ転送量が前記下限データ量未満のアプリケーションプログラムのアクセス要求先を、現在のアクセス要求転送先のスレーブよりも処理性能が高いスレーブに変更する
請求項4記載の情報処理装置。
【請求項9】
前記システムバスは、前記アクセス要求に含まれるアクセス先のアドレスを参照し、当該アドレスへ当該アクセス要求を送信する転送先選択部を備え、
前記転送先選択部は、前記モニタ回路により、データ転送量が前記下限データ量未満のアプリケーションプログラムが存在すると判定された場合、物理アドレスマップを変更することにより、前記データ転送量が前記下限データ量未満のアプリケーションプログラムのアクセス要求先を、現在のアクセス要求転送先のスレーブよりも処理性能が高いスレーブに変更する
請求項8記載の情報処理装置。
【請求項10】
前記システムバスは、
前記モニタ回路により、データ転送量が前記下限データ量未満のアプリケーションプログラムが存在すると判定された場合、論理アドレスマップを変更することにより、前記データ転送量が前記下限データ量未満のアプリケーションプログラムのアクセス要求先を、現在のアクセス要求転送先のスレーブよりも処理性能が高いスレーブに変更する論理アドレス制御回路を備える
請求項8記載の情報処理装置。
【請求項11】
前記情報処理装置は、さらに、前記システムバスにクロックを供給するクロック制御回路を備え、
前記クロック制御回路は、前記モニタ回路により、データ転送量が前記下限データ量未満のアプリケーションプログラムが存在すると判定された場合、前記システムバスに供給するクロックの周波数を上げる
請求項3記載の情報処理装置。
【請求項12】
前記情報処理装置は、さらに、ブリッジを備え、
前記システムバスは、
前記複数のマスタの一つである第1マスタと、前記ブリッジとを接続する第1システムバスと、
前記ブリッジと、前記複数のスレーブの一つである第1スレーブとを接続する第2システムバスとを含み、
前記モニタ回路は、
前記第1システムバスを介して転送されているアクセス要求及び応答データに含まれる前記識別子を参照し、前記第1システムバスを介して転送されている前記アプリケーションプログラムごとのデータ転送量を監視し、当該データ転送量が前記下限データ量以上であるか否かを判定する第1モニタ回路と、
前記第2システムバスを介して転送されているアクセス要求及び応答データに含まれる前記識別子を参照し、前記第2システムバスを介して転送されている前記アプリケーションプログラムごとのデータ転送量を監視し、当該データ転送量が前記下限データ量以上であるか否かを判定する第2モニタ回路とを含み、
前記情報処理装置は、前記第1モニタ回路により、データ転送量が前記下限データ量未満のアプリケーションプログラムが存在すると判定された場合、前記第2システムバスにおける、アプリケーションプログラムのデータ転送量を減らすとともに、前記第1システムバスにおける、前記データ転送量が前記下限データ量未満のアプリケーションプログラムのデータ転送量を増やす
請求項4記載の情報処理装置。
【請求項13】
前記情報処理装置は、前記第1モニタ回路により、前記第1システムバスにおいて、データ転送量が前記下限データ量未満のアプリケーションプログラムが存在すると判定された場合、
当該アプリケーションプログラムと依存関係にある、前記第2システムバスのアプリケーションのデータ転送量を増加させることにより、前記データ転送量が前記下限データ量未満のアプリケーションプログラムのデータ転送量を増やすとともに、
前記第2システムバスの他のアプリケーションプログラムのデータ転送量を減らす
請求項12記載の情報処理装置。
【請求項14】
前記情報処理装置は、
前記第1マスタと、前記ブリッジと、前記第1システムバスとを含む1チップの第1半導体集積回路と、
前記第1スレーブと、前記第2システムバスとを含む1チップの第2半導体集積回路とを備える
請求項13記載の情報処理装置。
【請求項15】
前記情報処理装置は、さらに、
前記第1システムバス及び前記第2システムバスにクロックを供給するクロック供給回路を備え、
前記クロック供給回路は、
前記第1モニタ回路により、前記第1システムバスにおいて、データ転送量が前記下限データ量未満のアプリケーションプログラムが存在すると判定された場合、前記第1システムバスに供給するクロックの周波数を上げるとともに、前記第2システムバスに供給するクロックの周波数を下げる
請求項12記載の情報処理装置。

【図1】
image rotate

【図2】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図3C】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12A】
image rotate

【図12B】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate


【公開番号】特開2012−108617(P2012−108617A)
【公開日】平成24年6月7日(2012.6.7)
【国際特許分類】
【出願番号】特願2010−255278(P2010−255278)
【出願日】平成22年11月15日(2010.11.15)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】