(57)【要約】【課題】  従来の計算機は、最大処理負荷に必要となるプロセッサの周波数、メモリ容量等に基づいた構成をとる必要があり、その結果、処理負荷に係らずプロセッサ周波数は最大周波数で一定であり、処理実行時以外のアイドル状態においても、プロセッサは同一周波数で動作しており、消費電力は高い状態でほぼ一定であるという課題があった。【解決手段】  規定の処理時間内において処理周期毎に周期的に処理を実行するプロセッサを備えたリアルタイム計算機であって、前記処理周期毎に前記プロセッサの処理負荷を予測し、予測した処理負荷の結果に基づいて、前記処理周期毎に、前記プロセッサの動作周波数と、前記プロセッサを冷却する冷却ファンの回転数と、前記プロセッサが使用するメモリ領域と、を制御する負荷予測・制御部を備えるようにした。【選択図】  図１
2008198072.tif 000002
【特許請求の範囲】
【請求項１】
規定の処理時間内において処理周期毎に周期的に処理を実行するプロセッサを備えたリアルタイム計算機であって、
前記処理周期毎に前記プロセッサの処理負荷を予測し、予測した処理負荷の結果に基づいて、前記処理周期毎に、前記プロセッサの動作周波数と、前記プロセッサを冷却する冷却ファンの回転数と、前記プロセッサが使用するメモリ領域と、を制御する負荷予測・制御部を備えることを特徴とするリアルタイム計算機。
【請求項２】
前記負荷予測・制御部は処理周期毎に前記プロセッサの演算に必要となるデータビット長を算出し、算出したデータビット長に基づいて前記プロセッサの演算動作を制御することを特徴とする請求項１記載のリアルタイム計算機。
【請求項３】
複数のプロセッサを備え、前記負荷予測・制御部は処理負荷の予測結果に応じて、前記処理周期毎に、使用するプロセッサ数と、使用するプロセッサの動作周波数と、使用するプロセッサを冷却する冷却ファンの回転数と、使用するプロセッサが使うメモリ領域と、を制御することを特徴とする請求項１、２のいずれか記載のリアルタイム計算機。
【請求項４】
前記負荷予測・制御部は複数あるプロセッサの一部が故障したことを検知すると、故障が発生していないプロセッサの処理負荷を予測し、予測した処理負荷の結果に応じて、前記処理周期毎に、使用するプロセッサ数と、使用するプロセッサの動作周波数と、使用するプロセッサを冷却する冷却ファンの回転数と、使用するプロセッサが使うメモリ領域と、を制御することを特徴とする請求項３に記載のリアルタイム計算機。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、規定の処理時間内で周期的に処理を実行するリアルタイム計算機において、処理負荷に応じて消費電力を制御すると共に、システムの一部に何らかの障害が発生した場合でもシステムを停止せずに継続処理可能なフォールトトレラント（fault tolerant）を兼ね備えたリアルタイム計算機に関するものである。
【背景技術】
【０００２】
従来のリアルタイム計算機は、性能を決定する際、最大処理負荷時に必要となるプロセッサの周波数、メモリ容量等に基づいた構成をとる必要があった。消費電力低減のための方策としては、スタンバイモード、休止モード等があるが、計算機自体（プロセッサ、メモリ等）の動作を動的に制御するものではない。
一方、リアルタイム計算機の用途としては、航空機や人工衛星への搭載など省スペース、省電力、高信頼性を要求される分野で使用されることが多い。これらの分野では、特に、可能な限りの低消費電力化及び高信頼性化を図る必要がある。
【０００３】
応答時間に対する要求が課されたタスクを実行するプロセッサに関して、動作周波数と電源電圧をシステム稼動中に変化させるハードウェア機構を備えることにより消費電力を削減する演算処理システムが開示されている（例えば、特許文献１参照）。
特許文献１に開示された演算処理システムでは、ＧＵＩ（Graphical User Interface）入力のように比較的応答速度が遅い動作でもユーザの使用感に悪影響を与えないタスクに対して一定期間、動作周波数を低下させるとしている。しかしながら、ＧＵＩのようなイベントが発生したときのみクロック周波数の低減により消費電力を削減できるものの、それ以外の処理においては消費電力を削減する効果はない。
【０００４】
【特許文献１】特開２００２−３０４２３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来のリアルタイム計算機では、最大処理負荷時に必要となるプロセッサの周波数、メモリ容量等に基づいた構成をとる必要があり、その結果、処理負荷に係らずプロセッサ周波数は最大周波数で一定であり、処理実行時以外のアイドル状態においても、プロセッサは同一周波数で動作しており、消費電力は高い状態でほぼ一定であるという課題があった。
【０００６】
また、メモリ容量も同様に、各々の処理で使用するメモリ領域以外に関してもＤＲＡＭにおけるリフレッシュ動作等を常に実施する必要があり、消費電力が高くなるという課題があった。
【課題を解決するための手段】
【０００７】
この発明に係わるリアルタイム計算機は、規定の処理時間内において処理周期毎に周期的に処理を実行するプロセッサを備えたリアルタイム計算機であって、前記処理周期毎に前記プロセッサの処理負荷を予測し、予測した処理負荷の結果に基づいて、前記処理周期毎に、前記プロセッサの動作周波数と、前記プロセッサを冷却する冷却ファンの回転数と、前記プロセッサが使用するメモリ領域と、を制御する負荷予測・制御部を備えるようにした。
【発明の効果】
【０００８】
この発明によれば、低消費電力化及び高信頼性化を図ることが可能となる。特に、リアルタイム計算機が搭載されることが多い航空機や人工衛星など、省スペース、省電力、高信頼性を要求される分野において、低消費電力化及び高信頼性化の顕著な効果を奏する。
【発明を実施するための最良の形態】
【０００９】
実施の形態１．
図１は、この発明の実施の形態１に係るリアルタイム計算機の構成図である。
図１において、１はオペレーティングシステムやアプリケーションプログラムを処理するプロセッサ、２はプログラムやデータを格納するメモリ、３はプロセッサ１を冷却するための冷却ファン、４はプロセッサ１に内蔵される演算器、５はプログラムの実行にあたりプロセッサ１にかかる負荷を予測してプロセッサ１とメモリ２と冷却ファン３を制御する負荷予測／制御器、１００は入力情報である。入力情報１００とはプログラムであり、プログラムの処理に用いるデータ類である。メモリ２は、複数のメモリ領域２ａ、２ｂ、・・・、２ｎに分割されており、図示しないメモリ管理テーブルにより領域の割り当て及び開放の制御が行われる。
図２は、負荷予測／制御器５の構成を示すブロック図である。負荷予測／制御器５は、入力情報１００を入力しプロセッサ１が行う処理内容を認識する処理認識・スケジューリング部６１と、プロセッサ１の負荷予測値が処理周期毎に対応して格納された負荷予測テーブル６２と、負荷予測テーブル６２を参照して負荷予測の結果を出力する予測結果出力部６３とからなる負荷予測部５１と、負荷予測部５１からの情報に基づき、メモリ２、冷却ファン３、プロセッサ１を制御する制御器５２とを備えている。
【００１０】
次に、動作について図１〜図４を参照して説明する。
リアルタイム計算機は、規定の時間内においてタスクと呼ばれる処理を周期的に実行するものであり、各タスクの処理負荷はタスク処理内容及び入力情報の量に依存する。
処理認識・スケジューリング部６１は、入力情報１００を入力するとプロセッサ１が実行すべき処理をタスク処理内容と入力情報を基に認識する。そして、一定の時間間隔で区分されたプロセッサ１の処理周期毎に、その処理周期の間にプロセッサ１にかかる負荷を予測して、処理周期ｎ（プロセッサ１の処理時刻）に対する負荷予測値を示した負荷予測テ−ブル６２を作成する。負荷予測テーブル６２の一例を図３に示す。図３の例では、タスク１、タスク２及びタスク３を一連の処理として、その一連の処理の先頭で入力情報１００が入力される例を示している。負荷予測値は、各タスクにおける入力情報の単位情報量当りの処理負荷と入力情報量を積算することにより算出される。ここで、各タスクにおける入力情報の単位情報量当りの処理負荷及びプロセッサの最大処理負荷は、あらかじめ処理認識・スケジューリング部６１に設定しておく。ここでは、プロセッサの最大処理負荷を１００として、処理周期１（処理時刻がＴ１ａ〜Ｔ１ｂの間）ではタスク１を実行するため単位情報量あたりの処理負荷が１０、入力情報量が１０であるため負荷予測値が１０×１０＝１００、すなわち最大の負荷がかかっている状態であると予測し、処理周期２（処理時刻がＴ２ａ〜Ｔ２ｂの間）ではタスク２を実行するため単位情報量あたりの処理負荷が６、入力情報量が１０であるため負荷予測値が６×１０＝６０まで低減すると予測していることを示している。
【００１１】
次に、予測結果出力部６３は負荷予測テーブル６２を参照し、負荷予測値に基づいて、処理周期ｎにおけるプロセッサ１とメモリ２と冷却ファン３の動作の制御内容を決定して、制御情報１０１を制御器５２に出力する。
ここでは、予測結果出力部６３は以下の（Ａ１）〜（Ａ３）を行う。
（Ａ１）予測結果出力部６３は、処理周期ｎにおける負荷予測値に基づき、規定の周期内で処理を実行するための最適なプロセッサ１の周波数ｆを算出する。算出方法は、プロセッサの処理性能が動作周波数に比例すること、最大処理負荷における動作周波数が最大動作周波数であることから、処理周期ｎにおける動作周波数は、最大処理負荷時に対する負荷予測値の比率を最大動作周波数に掛けた値となる。図３の例では、最大負荷が１００であり、処理周期２では負荷予測値が６０であることから動作周波数は最大動作周波数の（６０／１００）×１００＝６０（％）となる。
（Ａ２）上記（１）で算出した周波数で動作するプロセッサ１を冷却するために必要となる冷却ファン３の回転数ｇを算出する。
（Ａ３）処理周期ｎにおいてプロセッサ１が処理を実行するにあたり、必要となるメモリ領域Ｍを算出する。
【００１２】
予測結果出力部６３は処理周期毎に上記（Ａ１）〜（Ａ３）の算出を行い、制御の内容を示した制御リスト７０を作成する。制御リスト７０の一例を図４に示す。予測結果出力部６３は負荷予測テーブル６２が更新される度に制御リスト７０を更新し、制御情報１０１としてこの制御リスト７０を出力する。
【００１３】
制御器５２は、予測結果出力部６３が出力する制御情報１０１を入力し、以下の（Ｂ１）〜（Ｂ４）を行う。
（Ｂ１）プロセッサ１に対しプロセッサの動作周波数を設定する周波数制御信号１１１を周波数ｆに設定して出力する。
（Ｂ２）冷却ファン３に対し冷却ファンの回転数を設定する冷却ファン制御信号１１２を回転数ｇに設定して出力する。
（Ｂ３）メモリ２に対しメモリ領域を設定するメモリ制御信号１１３を領域Ｍに設定して出力する。領域Ｍの設定においては、使用するメモリ領域の割り当てをリフレッシュ等のハードウェアの制御単位で割り当てることにより、使用しない制御単位のメモリ領域に対するリフレッシュ等の動作を停止することができる。
（Ｂ４）上記（Ｂ１）〜（Ｂ３）と共に、プロセッサに内蔵する演算器４に対し、実行するタスクの処理内容及び入力情報１００に基づき、演算処理に必要となるデータビット長を算出し、使用しないビットに関する演算動作を制御する。制御方法としては、例として、入力情報１００のワード単位での回路の動作制限によって使用しないワードの回路動作を停止することにより電力の消費を抑制する。
【００１４】
図５は、プロセッサ１、メモリ２、冷却ファン３が制御された結果を示した図である。制御リスト７０に従い、負荷予測が低下する処理周期２においては、プロセッサ周波数はｆ１からｆ２に下がり（ｆ２＜ｆ１）、メモリ領域はＭ２に制限される（Ｍ２の領域＜Ｍ１の領域）。また、プロセッサ１を冷却する冷却ファン３の回転数をｇ２に下がる（ｇ２＜ｇ１）。
このように、処理負荷が低下する処理周期（処理周期２）においては、負荷量に応じてプロセッサの動作周波数を削減することにより消費電力を省くことができる。また、動作周波数を削減することにより、動作周波数の増加に従って増大するプロセッサの発熱を抑えることができる。発生する発熱量が下がることからプロセッサを冷却する冷却ファンの回転数を抑えることができ、結果として回転数に対応した消費電力を省くことができる。  また、メモリ領域をＭ２に制限することから、データの内容保持のための電源を減らして消費電力を省くことができる。
また、実行するタスク毎に演算処理に必要となるデータビット長を算出して演算動作を制御するようにしたので、演算器の無駄な動作を抑制することで回路規模（＝消費電力）を省くことができる。例えば、演算器が乗算器の場合、入力データビット長が半分になれば、回路規模（＝消費電力）は、およそ１／４とすることができる。これは、１ワードの入力データに対する乗算を、１バイトの乗算を４回（下位ワード×下位ワード、下位ワード×上位ワード、上位ワード×下位ワード、上位ワード×上位ワード）実行し、その結果を加算するような形態の乗算器においては、乗算を４回実施する必要があり、たとえ入力データビット長が半分となっても使用しない上位バイトを０として回路を動作させるため電力を消費してしまう。一方、使用しない上位バイトの回路動作を停止させた場合。１バイトの入力データの乗算では、１バイトの乗算１回のみで実施できる。
【００１５】
このように、この発明によれば、プロセッサにかかる負荷を予測し、予測結果に基づき、プロセッサの動作周波数、使用するメモリ領域、プロセッサ冷却用ファンの回転数を、周期的に制御するようにした。これにより、計算機の消費電力を削減することができる。
また、この演算処理に必要となるデータビット長を算出して演算動作を制御するようにしたので、回路規模（＝消費電力）を省くことができ、結果として、計算機の消費電力を削減することができる。
特に、この発明によれば、リアルタイム計算機が搭載されることが多い航空機や人工衛星など、省スペース、省電力、高信頼性を要求される分野において、低消費電力化を図ることができる。
【００１６】
実施の形態２．
図６は、この発明の実施の形態２に係るリアルタイム計算機の構成図である。
図６において、１ａ〜１ｄはプロセッサ、５は負荷予測／制御器、１００は入力情報である。図７は、プロセッサの制御結果を示す図である。
次に、動作について説明する。プロセッサ１ａ〜１ｄは、実施の形態１で示した形態をとるプロセッサであり、全体として分散処理が可能なリアルタイム計算機を構成する。負荷予測／制御器５は、実行するプログラムの処理内容及び入力情報１００に基づき、個々のプロセッサに対して規定の周期内で処理を実行するための最適な周波数を算出し、個々のプロセッサに対する分散処理内容及び周波数を動的に制御する（図７（ａ）〜（ｄ））。
図７の例では、処理負荷が小さく１つのプロセッサ１ａのみで実行可能な場合は、残りのプロセッサ１ｂ〜１ｄを停止させることにより消費電力低下を図る（図７（ａ））。
次に、プロセッサにおいて故障が発生した場合の動作をプロセッサ１ｂが故障した場合を例に図７により説明する。負荷予測／制御器５は、プロセッサ１ｂが故障したことを検知したとき、残りのプロセッサ１ａ、１ｃ、１ｄを使用しての最適な処理分散及び最適な周波数を算出し、個々のプロセッサに対する分散処理内容及び周波数を動的に制御する。このとき、故障が処理周期途中で発生した場合には、残り処理周期時間内での再配分、再処理の判断を行ない処理の連続性を保つことを可能とする（図７（ｅ））。
【００１７】
このように、実施形態２に係るリアルタイム計算機は、複数のプロセッサから構成され、処理負荷に応じて使用プロセッサ数及び動作周波数を変化させるようにして消費電力が最小となるように処理分散するものである。
この発明によれば、リアルタイム計算機全体の消費電力を削減することができるとともに、プロセッサ故障発生時における残りのプロセッサへの処理分散および動作周波数の制御による、フォールトトレラントと低消費電力化の両立を図ることが可能となる。
特に、この発明によれば、リアルタイム計算機が搭載されることが多い航空機や人工衛星など、省スペース、省電力、高信頼性を要求される分野において、低消費電力化及び高信頼性化を図ることが可能となる。
【図面の簡単な説明】
【００１８】
【図１】この発明の実施の形態１に係るリアルタイム計算機の構成図である。
【図２】この発明の実施の形態１に係る負荷予測／制御器の構成を示すブロック図である。
【図３】この発明の実施の形態１に係る負荷予測テーブルの一例を示す図である。
【図４】この発明の実施の形態１に係る制御リストの一例を示す図である。
【図５】この発明の実施の形態１に係るプロセッサ、メモリ、冷却ファンの動作状況を示す図である。
【図６】この発明の実施の形態２に係るリアルタイム計算機の構成図である。
【図７】この発明の実施の形態２に係るプロセッサの制御結果を示す図である。
【符号の説明】
【００１９】
１  プロセッサ、２  メモリ、３  冷却ファン、４  演算器、５  負荷予測／制御器、１０  リアルタイム計算機、５１  負荷予測部、５２  制御器、６１  処理認識・スケジューリング部、６２  負荷予測テーブル、６３  予測結果出力部、７０  制御リスト、１００  入力情報、１０１  制御情報、１１１  周波数制御信号、１１２  冷却ファン制御信号、１１３  メモリ制御信号。
【図１】
2008198072.tif 000003
【図２】
2008198072.tif 000004
【図３】
2008198072.tif 000005
【図４】
2008198072.tif 000006
【図５】
2008198072.tif 000007
【図６】
2008198072.tif 000008
【図７】
2008198072.tif 000009