JP6322891B2 - 間欠動作に適した計算装置およびその動作方法 - Google Patents

間欠動作に適した計算装置およびその動作方法 Download PDF

Info

Publication number
JP6322891B2
JP6322891B2 JP2013030529A JP2013030529A JP6322891B2 JP 6322891 B2 JP6322891 B2 JP 6322891B2 JP 2013030529 A JP2013030529 A JP 2013030529A JP 2013030529 A JP2013030529 A JP 2013030529A JP 6322891 B2 JP6322891 B2 JP 6322891B2
Authority
JP
Japan
Prior art keywords
storage means
instruction
instruction code
memory
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013030529A
Other languages
English (en)
Other versions
JP2014160362A (ja
Inventor
幸秀 辻
幸秀 辻
崎村 昇
昇 崎村
竜介 根橋
竜介 根橋
あゆ香 多田
あゆ香 多田
義和 渡邊
義和 渡邊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2013030529A priority Critical patent/JP6322891B2/ja
Publication of JP2014160362A publication Critical patent/JP2014160362A/ja
Application granted granted Critical
Publication of JP6322891B2 publication Critical patent/JP6322891B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Description

本発明は、電子回路の電源をOFF・ONすることによる回路動作のOFFからONへのレスポンスを改善しつつ消費電力を抑える、間欠動作に適した計算装置およびその動作方法に関する。
半導体集積回路はスケーリングが進むことでセルサイズの縮小が進む一方で、セルサイズの縮小によってリーク電流が増大することにより、待機電力(スタンバイリーク)が増加してきている。そこで、この待機電力を低減させるために、例えば図1のように各回路ブロックに電源スイッチを取り付けて、非動作状態の回路ブロックへの電源供給を一時的に停止させて、待機電力を低減させる取り組みがなされている。特許文献1には、計算装置(マイクロプロセッサ)において、ハードウェアの規模を増大することなく、またユーザーの開発負担を伴わず、ソフトウェアの汎用性を確保しながら、きめ細かな電力制御を行う技術が開示されている。
特開2003−296123号公報
しかしながら、特許文献1に開示された技術においては、以下の課題に対する解決がなされていなかった。
すなわち、マイクロコンピュータのような計算装置においては、システムの非動作時にマイクロコンピュータを構成する中央演算装置(Central Processing Unit。以下、CPUと略す。)とメモリとの電源をこまめにOFFすることで待機電力を低減することができる。しかしながら、ON・OFFの切り替えをあまりに細かく設定すると、ON時の動作時間が短いプログラムが多数発生し、その結果処理速度が低下する問題が発生してしまう。適切なON・OFFの切り替えを行うプログラム長の設定をおこなうことが第1の課題である。
また、図2に示すように、CPUとメモリとを備えるマイクロコンピュータの動作のON・OFFに際して、プログラムコードを格納するメモリが単一であるマイクロコンピュータにおいては、小規模な動作期間中であっても大規模なメモリ回路全体を動作させる必要がある。そのため、無駄な電力を必要とし、待機電力を減らすことができない。さらに、大規模なメモリの電源をOFFからON状態に移行するためには長い立ち上げ時間を要するため、立ち上げ時間の占める割合がON動作時の処理時間に対して大きくなり、レスポンスの遅れが顕著になってくる。すなわち、大規模なメモリによる動作時の無駄な電力消費の抑制と、立ち上げ時間を処理に影響させない動作設定とが、第2の課題である。
本発明は、上記の課題に鑑みてなされたものであり、その目的は、マイクロコンピュータの電源をOFF・ONすることにより消費電力を低減する際に、処理速度の低下をさせない適切な電源のON・OFFの切り替えを行うプログラム長の設定をおこない、かつ、大規模なメモリによる動作時の無駄な電力消費の抑制と、電源をOFFからONに移行する際の立ち上げ時間を処理に影響させない動作設定を行うことのできる、間欠動作に適した計算装置およびその動作方法を提供することにある。
本発明の計算装置は、第1の命令コードを格納する第1の記憶手段と、第2の命令コードを格納する第2の記憶手段と、前記第1の記憶手段に格納された前記第1の命令コードと前記第2の記憶手段に格納された前記第2の命令コードとに従って命令を行う中央演算処理手段と、前記命令を受けて前記第1の記憶手段と前記第2の記憶手段とをオン状態もしくはオフ状態にする電源制御手段と、を備え、前記中央演算処理手段は、前記第1の命令コードを受けて前記第2の記憶手段を、前記第2の命令コードを受けて前記第1の記憶手段を、それぞれオン状態もしくはオフ状態にする命令を行うことを特徴とする。
本発明の計算装置の動作方法は、第1の命令コードを第1の記憶手段に格納し、第2の命令コードを第2の記憶手段に格納し、前記第1の記憶手段に格納された前記第1の命令コードと前記第2の記憶手段に格納された前記第2の命令コードとに従って命令を行い、前記命令を受けて前記第1の記憶手段と前記第2の記憶手段とをオン状態もしくはオフ状態にする電源制御を行い、前記第1の命令コードを受けて前記第2の記憶手段を、前記第2の命令コードを受けて前記第1の記憶手段を、それぞれオン状態もしくはオフ状態にする命令を行うことを特徴とする。
本発明によれば、マイクロコンピュータの電源をOFF・ONすることにより消費電力を低減する際に、処理速度の低下をさせない適切な電源のON・OFFの切り替えを行うプログラム長の設定をおこない、かつ、大規模なメモリによる動作時の無駄な電力消費の抑制と、電源をOFFからONに移行する際の立ち上げ時間を処理に影響させない動作設定を行うことのできる、間欠動作に適した計算装置およびその動作方法を提供することができる。
各回路ブロックに電源スイッチを取り付けて非動作状態の回路ブロックへの電源供給を一時的に停止させる構成を示す図である。 マイクロコンピュータ(CPU+メモリ)の動作(ON、OFF)と、動作時に使用するメモリの記憶領域を説明する図である。 本発明の第1および第2の実施形態のマイクロコンピュータの構成を示す図である。 本発明の第1および第2の実施形態のマイクロコンピュータの動作(ON、OFF)を説明する図である。 処理A実行時の小規模メモリ(1)の記憶領域を説明する図である。 処理B実行時の大規模メモリ(2)の記憶領域を説明する図である。 処理C実行時の小規模メモリ(1)と大規模メモリ(2)の記憶領域を説明する図である。 本発明の第1の実施形態のマイクロコンピュータの動作(ON、OFF)を説明する図である。 本発明の第2の実施形態のマイクロコンピュータの構成を示す図である。 本発明の第2の実施形態のマイクロコンピュータの動作(ON、OFF)を説明する図である。 本発明の実施例のマイクロコンピュータ(あるいは計算機)の構成を示す図である。 本発明の実施例のマイクロコンピュータ(周辺回路を含む)の構成を示す図である。 本発明の実施例のマイクロコンピュータのON・OFF動作時間を示す図である。 CPUの電源がON状態になった後の実行コード中に条件分岐命令がある場合の説明図である。 作成したプログラムコードのうち、タイマーモジュール以外の割り込み命令によって実行を開始するコード群の扱いを示す図である。 小規模メモリ(メモリ(1))と大規模メモリ(メモリ(2))の消費電力と実行サイクル数との関係を説明する図である。 大規模メモリの立ち上が電力を除いた、小規模メモリ(メモリ(1))と大規模メモリ(メモリ(2))の消費電力と実行サイクル数との関係を説明する図である。 タイマーモジュールからの割り込み命令によってON状態になった後に開始されるプログラムコードを示す図である。 小規模メモリと大規模メモリへの、サブ命令コード群Pf、サブ命令コード群Pf以外のプログラムコード(Pb、、、Pi、、、)の格納を説明する図である。 命令コード群(セット単位)の格納先決定方法のフローをまとめた図である。 格納先が確定した命令コード群のON、OFF命令のタイミングの最適化を説明する図である。 マイクロコンピュータの各構成要素のOFF処理のために必要な電力とスタンバイ時の電力をまとめた図である。 メモリのOFF処理の最適化前後でのCPUとメモリの動作を説明する図である。 各条件化での割り込み頻度の平均値[1/sec]をまとめた図である。
以下、図を参照しながら、本発明の実施形態を詳細に説明する。但し、以下に述べる実施形態には、本発明を実施するために技術的に好ましい限定がされているが、発明の範囲を以下に限定するものではない。
(第1の実施形態)
図3は、本発明の第1の実施形態のマイクロコンピュータの構成を示す。本実施形態のマイクロコンピュータは、中央演算装置(CPU)1、小規模な不揮発メモリ(1)2、大規模な不揮発メモリ(2)3、電源制御回路(PMU)4、信号線(バス)5を備える。本実施形態では、少なくとも2つの不揮発メモリをマイクロコンピュータの処理コードを格納する記憶装置として用いる。
図3に示すように2つのメモリ(小規模な不揮発メモリ(1)2と大規模な不揮発メモリ(2)3)は、共通の信号線(バス)5を介してCPU1に接続されており、これらのメモリにはCPU1の制御命令、および、演算用のデータが格納される。任意のクロックサイクルにおいて、CPU1は不揮発メモリ(1)2あるいは不揮発メモリ(2)3のいずれか一方にアクセスできる。各メモリはそれぞれCPU1がアクセスしない時に、CPU1の制御命令を受けた電源制御回路(PMU)4により、クロックを止めるスタンバイ状態、もしくは、供給電源を止めてOFF状態に遷移させることができる。
図3に示す構成によれば、図4に示す動作が可能となる。図4は、本発明の第1の実施形態のマイクロコンピュータの動作(ON、OFF)を説明する図である。CPUによる各処理のそれぞれの処理コードを格納したメモリのみを、CPUの電源立ち上げ時にON状態にする。すなわち、処理Aの立ち上げ時には不揮発メモリ(1)2をONに、処理Bの立ち上げ時には不揮発メモリ(2)3をONにする。
以上の方法により、単一のメモリを使用した図2の場合に比べて、図5Aや図5Bに示すように、処理Aや処理Bの実行時にアクセスされないメモリ領域を小さくできるため、不必要な待機電力を抑えることができる。この時、メモリが不揮発メモリであることで、電源がOFFされてもデータは保持されるため、データのバックアップを考慮せずに電源を遮断できる。
不揮発性メモリとしては、フラッシュメモリでも良い。ただし、各メモリで独立に命令コードを処理するためにはデータ領域とプログラム領域をそれぞれ確保する必要がある。特にデータ領域は書き換え頻度が高い場合が多く、本実施形態の不揮発性メモリとしては、書き換え耐性の高い不揮発性メモリを用いることが望ましい。例えば、PRAM(相変化メモリ)やFeRAM(強誘電体メモリ)が望ましい。MRAM(磁気抵抗メモリ)は書き換え制限がないため、もっとも望ましい不揮発メモリである。
また、記憶容量の小さいメモリの方が記憶容量の大きいメモリに比べて電源を切った状態からの立ち上がり時間が短いため、特にOFF状態からON状態に遷移して処理を開始するプログラムコードのレスポンスも向上させることができる。すなわち、処理時間が短く頻繁な処理Aのプログラムコードを小規模な不揮発メモリ(1)2に格納しておくことによって、小規模メモリの短時間での立ち上がりによる早いレスポンスを実現することができる。
2つの不揮発メモリ(不揮発メモリ(1)2、不揮発メモリ(2)3)の回路規模(もしくは記憶容量)は異なることが望ましく、記憶容量比で100倍以上異なることが望ましいが、10倍以上異なっていれば十分な効果を発揮できる。さらに規模の小さい側のメモリ(不揮発メモリ(1)2)のサイズは、少なくとも数10から数100命令程度のまとまった命令が実行できるサイズであることが望ましく、1000バイト以上の記憶容量が好適である。
本実施形態によれば、マイクロコンピュータの電源をOFF・ONすることにより消費電力を低減する際に、処理速度を低下させることのない適切な電源のON・OFFの切り替えを行うプログラム長の設定をおこない、かつ、大規模なメモリによる動作時の無駄な電力消費の抑制と、電源をOFFからONに移行する際の立ち上げ時間を処理に影響させない動作設定を行うことのできる、間欠動作に適したマイクロコンピュータおよびその動作方法を提供することができる。
(第2の実施形態)
第2の実施形態のマイクロコンピュータの構成要素は、図3に示す、中央演算装置(CPU)1、小規模な不揮発メモリ(1)2、大規模な不揮発メモリ(2)3、電源制御回路(PMU)4、信号線(バス)5を備える。本実施形態でも、第1の実施形態と同様に、少なくとも2つの不揮発メモリをマイクロコンピュータの処理コードを格納する記憶装置として用いる。
図3に示すように2つのメモリ(小規模な不揮発メモリ(1)2と大規模な不揮発メモリ(2)3)は、共通の信号線(バス)5を介してCPU1に接続されており、これらのメモリにはCPU1の制御命令、および、演算用のデータが格納される。任意のクロックサイクルにおいて、CPU1は不揮発メモリ(1)2あるいは不揮発メモリ(2)3のいずれか一方にアクセスできる。各メモリはそれぞれCPU1がアクセスしない時に、CPU1の制御命令を受けた電源制御回路(PMU)4により、クロックを止めたり、クロック停止と共に電源電圧を下げたりするスタンバイ状態、もしくは、供給電源を止めてOFF状態に遷移させることができる。
本発明の第2の実施形態のマイクロコンピュータでは、第1の実施形態のマイクロコンピュータをさらに高度化することができる。すなわち、第1の実施形態のマイクロコンピュータは、演算プログラムが長く、かつ、処理コードが2つのメモリ(不揮発メモリ(1)2、不揮発メモリ(2)3)の両方に格納されている図4の処理Cの場合、図4に示すように2つのメモリが実行時に同時にON状態となり、動作時の消費電力が増大する。図5Cは、処理Cの実行時の小規模メモリ(1)2と大規模メモリ(2)3の記憶領域を示す。
各々のメモリへのアクセス(信号)が入るタイミングを契機に、ON状態に自動的に遷移する制御回路を電源制御回路4に組み込むことで、図6に示すように、処理Cでアクセス中の一方のメモリのみ適宜ON状態にすることは可能である。しかしながら、この場合は、処理Cの実行中にOFF状態にあった一方のメモリの立ち上がりまでの待機処理が入ってくるため、処理Cを完了する時間が遅延してしまう。第2の実施形態では、第1の実施形態を高度化し、このような全体処理時間の遅延を抑制しつつ、消費電力を低減する。
図7は、本発明の第2の実施形態のマイクロコンピュータの構成を示す図である。第2の実施形態のマイクロコンピュータは、それぞれのメモリ(不揮発メモリ(1)11、不揮発メモリ(2)12)に格納された命令を中央演算装置(CPU)10が実行する。任意のクロックサイクルにおいて、CPU10は不揮発メモリ(1)11あるいは不揮発メモリ(2)12のいずれか一方にアクセスできる。各メモリはそれぞれCPU10がアクセスしない時に、CPU1の制御命令を受けた電源制御回路(PMU)13により、クロックを止めるスタンバイ状態、もしくは、供給電源を止めてOFF状態に遷移させることができる。
CPU10が各メモリにアクセスすることによって得られた命令の中には電源スイッチ14、電源スイッチ15を切り替える命令も含まれている。CPU10が各メモリから各電源スイッチ14、15を切り替える命令を受け取った時には、CPU10から電源制御回路13に対して各電源スイッチ14、15のON、OFF処理命令が発行される。電源制御回路13はこの処理命令に従って、CPU10と個々のメモリ(不揮発メモリ(1)11、不揮発メモリ(2)12)の電源スイッチ14、15を適宜ON、OFFする。なお、上記マイクロコンピュータの電源制御回路13は、各メモリに格納された命令以外にも、タイマーモジュールの制御レジスタに設定された時間で出力される信号(図7に記載なし)、もしくは、外部からの割り込み信号によって、各電源スイッチ14、15をそれぞれON、OFFすることができる電源制御回路である。
2つの不揮発メモリ(不揮発メモリ(1)11、不揮発メモリ(2)12)の回路規模(もしくは記憶容量)は異なることが望ましく、記憶容量比で100倍以上異なることが望ましいが、10倍以上異なっていれば十分な効果を発揮できる。さらに規模の小さい側のメモリ(不揮発メモリ(1)11)のサイズは、少なくとも数10から数100命令程度のまとまった命令が実行できるサイズであることが望ましく、1000バイト以上の記憶容量が好適である。以降、回路規模(記憶容量)の大きいメモリ(不揮発メモリ(2)12)を大規模メモリ、規模の小さいメモリ(不揮発メモリ(1)11)を小規模メモリと呼ぶ。
なお、大・小規模の2つのメモリの他に、第3、第4のメモリを併設してもよい。第3のメモリには、大規模メモリと小規模メモリに格納された制御命令の両方が利用するデータや特定関数を実現する命令群を格納するメモリとして使用しても良い。そして、第3のメモリの電源スイッチのON、OFFは大・小規模メモリの両方のON、OFFと同期させても良い。また、CPU10は小規模で高速な第4のメモリを有し、第4のメモリをキャッシュとして利用しても良い。この場合の第4のメモリは、第1から第3の不揮発性メモリへのデータの書き戻しの機能があれば揮発性メモリでも良い。また、上記不揮発メモリに自身をOFFする命令を格納しておき、不揮発メモリに格納された命令コードを一時的に第3のメモリにコードを格納させてCPU10と第3のメモリとの間でのみ命令コードの読み出しと実行をしている期間において上記の不揮発メモリの電源をOFF状態にしてもよい。なお、第3、第4のメモリはそのひとつだけを備える場合もあれば、その両方を備える場合もある。
処理するデータや制御するデバイスがない期間があって、CPU10とメモリ(不揮発メモリ(1)11、不揮発メモリ(2)12)を含むマイクロコンピュータの電源をOFF状態にしたい場合は、CPU10の電源をOFFする命令をプログラムコード内に記述すればよい。なお、ここでいうCPU10をOFFする命令とは、CPU10の命令アーキテクチャの中に設けられた命令セットの1つ、もしくは、ある特定のレジスタにあるデータを書き換える命令であって、上記命令によって電源制御回路13がCPU10の電源スイッチ16をOFFすることを開始する命令であればよい。
マイクロコンピュータのON時間は、タイマーモジュール(図7に記載なし)からの信号によってCPU10の電源がON状態になって実行される最初の命令から、再度CPU10をOFF状態にする命令が処理されるまでの命令サイクル数に内部システムクロックの周期を乗じた値とする。また、マイクロコンピュータのOFF時間は、CPU10の電源のOFF命令が実行されてからタイマーによって次のCPU10の電源がONするまでの時間として、CPU10のOFF処理の前に実行されたタイマーモジュールへの命令コードとタイマーモジュールの設定レジスタ(ON命令が実行されるカウンター値やタイマーモジュールの動作クロック)の値から算出する。
なお、CPU10の電源がON状態になった後の実行コード中に条件分岐命令があり、分岐先ごとに異なる処理コードとCPU10のOFF処理の実行コードが含まれる場合、ONから条件分岐前までの実行時間と、各分岐の分岐確率と分岐先でCPU10の電源がOFFされるまでの実行時間の積の合算値を足し合わせた値をマイクロコンピュータの(推定)ON時間とする。CPU10の電源がONされてからOFF処理を経由して再度ONされるまで時間から、先ほど算出したON時間を差し引いた時間をマイクロコンピュータの(推定)OFF時間とする。なお、条件分岐確率を特に指定しない場合は、各分岐が等確率であるとして扱う。
また、CPU10がON動作を開始してからOFF動作に移るまでに実行されるコード群のコード長を算出する場合において、CPU10のON動作の実行コード中に条件分岐命令があり、かつ、分岐先ごとに異なるコードとともにOFF処理の実行コードを含む場合には、ON状態になって最初に実行される命令から条件分岐命令前までのコード長と、各条件分岐先においてOFF処理が実行されるコードまでのコード長の合算値を足し合わせた値を上記コード群のコード長とする。
作成したプログラムコードのうちタイマーモジュール以外の割り込み命令によってCPU10がONしてからOFFするまでの間に実行されるコード群に対しては、所定のコード長を境にさらに2分割し、作成した2つのプログラムコードをそれぞれ1つの集まりとして扱う。作成したプログラムコードをマイクロコンピュータ内のメモリに格納する際には、上記の集まりをもつプログラムコード群を1つのセットとしてセット単位でメモリに格納しても良い。
なお、上記の所定コード長とは、「小規模メモリの立ち上げ電力」と「コードを小規模メモリに格納した場合に小規模メモリからの命令呼出しによって計算を実行するために必要な電力と実行時間の積」との和が、「コードを大規模メモリに格納した場合に大規模メモリからの命令呼出しによって計算を実行するために必要な電力と実行時間の積」よりも小さくなるコード長と同程度、もしくは、それよりも長いコード長とする。ON状態になって最初に実行する命令コードを含み、かつ、所定のコード長を有するサブ命令コード群1、その残りのコードをサブ命令コード群2とする。
また、タイマーモジュールの割り込み命令によってCPU10がONしてからOFFまでの間に実行されるコードは、これらのコードを1つの集まりとして扱う。作成したプログラムコードをマイクロコンピュータ内のメモリに格納する際には、上記の集まりをもつコード群を1つのセットとしてセット単位でメモリに格納しても良い。
作成したプログラムコードをマイクロコンピュータ内のメモリに格納する際、セット単位で格納するメモリ領域を確保しても良い。まず、割り込みに対するサブ命令コード群1を小規模メモリに格納するコード群として優先的に割り付ける。次に、サブ命令コード群1が全て格納された場合の小規模メモリの残りのメモリ空間に格納できる範囲内で、命令コード長を所定期間における呼び出し回数で除した値が小さい命令コード群(セット)から順に、小規模メモリに格納するコード群(セット)を決定する。また、小規模メモリに入りきらなかった残りの命令コード群(セット)は、大規模メモリに格納するコード群とする。
なお、上記の所定期間とはユーザーが任意に規定した期間でも良いが、望ましくは、マイクロコンピュータがある周期で同じ処理サイクルを繰り返す場合の周期と一致させることが望ましい。また、サブ命令コード群2で、割り込み頻度(もしくは、所定期間の呼び出し回数)を指定しない場合は、サブ命令コード2の呼び出し回数をゼロとして扱う。
小規模メモリに格納する命令コード群(セット)を決定していく過程で、小規模メモリに格納することがまだ決定していない命令コード群のセットと、すでに小規模メモリに格納されることが決定された命令群のセットとの間で、共通のデータや共通の特定関数を実現する命令群を持つ場合、小規模メモリに格納することが決定していない命令コード群は、上記の共通部分を取り除いてコード長を算出しなおしてもよい。新たに算出された命令コード長は、小規模メモリに格納する命令コード群のセットを決定する際の優先順位付けに随時反映させて利用しても良い。
サブ命令コード群1の格納先が小規模メモリ、サブ命令コード群2の格納先が大規模メモリに割り付けられた場合、サブ命令コード群1には大規模メモリをONにする命令を追加する。なお、大規模メモリをONする命令は、CPU10のアクセスが小規模メモリから大規模メモリに切り替わる直前の命令よりも、大規模メモリが立ち上がる時間だけ前で実行されるようにメモリ内の格納先アドレスを調整して挿入する。
OFF命令の挿入位置は、CPU10のアクセスが小規模メモリから大規模メモリに切り替わる直前の命令からスタートし、命令の時間軸における実行フローをさかのぼるようにして挿入位置を1命令ステップずつ前にしてみながら、シミュレーションによる評価を繰り返えし、最終的に、シミュレーション上でメモリ間でのアクセス先の移行時に、移行先の立ち上がりを待たなくてよくなった時点で挿入位置を固定する。なお、CPUのアクセスが小規模メモリから大規模メモリに切り替わる直前の命令からスタートするのではなく、大規模メモリが立ち上がる時間をシステムクロックで除して得られた商の値のステップ数分だけ、予めスキップして上記の評価サイクルを開始してよい。
また、セット間で共通のデータや共通の処理関数を実現するサブ命令コード群をもっているために、ある命令コード群のセットの中には、大規模メモリと小規模メモリのそれぞれに格納先を割り付けられた命令コード群を含むことがある。この場合、大規模メモリに格納予定の命令コード群のセットの中に小規模メモリをON、OFFする命令、小規模メモリに格納予定の命令コード群のセットの中に大規模メモリをON、OFFする命令をそれぞれ追加する。
大規模(もしくは小規模メモリ)をONする命令の追加位置は、CPU10のアクセスが小規模メモリ(もしくは大規模メモリ)から大規模メモリ(もしくは小規模メモリ)に切り替わる直前に実行されるコードよりも、大規模メモリ(もしくは小規模メモリ)が立ち上がる時間だけ前で実行されるように挿入する。
また、大規模メモリ(もしくは小規模メモリ)をOFFする命令は、CPUのアクセスが大規模メモリ(もしくは小規模メモリ)から小規模メモリ(もしくは大規模メモリ)に切り替わった後に実行されるように小規模メモリに格納する。なお、小規模メモリにアクセスが移って最初に実行される命令コードの直後に実行されるように挿入するのが最も望ましい挿入場所となる。
実測値やシミュレーションによる計算値から、CPU10とメモリのあるOFF状態において、そのスタンバイ電力が、CPU10とメモリをOFF処理に必要な電力よりも小さかった場合、マイクロコンピュータ(CPUとメモリ)をOFFする命令を、CPU10とメモリ(不揮発メモリ(1)11、不揮発メモリ(2)12)に供給するクロックを止めるスタンバイ命令に変換してプログラムを記述しておいてもよい。また、CPU10の動作中であってメモリのみON、OFF状態に遷移する場合は、メモリのあるOFF状態において、そのスタンバイ電力が、メモリのOFF処理に必要な電力よりも小さかった場合、メモリをOFFする命令を削除するか、もしくは、処理をスルーするNOP命令などに変更しても良い。
なお、OFFする命令を変換するのではなく、マイクロコンピュータ内にスタンバイ電力とON処理電力を随時評価し、かつ、電源をOFFしない方がいいと判断した場合に、電源制御回路13がOFF処理を実際に実行するのを阻止する演算回路を持たせてもよい。
なお、OFF命令をスタンバイ命令に変換後の命令コード群をもとに、命令コード群のセットの単位とON、OFF時間を再評価し、命令コード群(セット)の格納先(大・小規模メモリ)の割付作業から新たに開始しても良い。
また、割り込み頻度とともに、マイクロコンピュータが置かれている環境を評価できる時刻や各種センサーなどの信号を定期的に計測してデータテーブルを作成し、データテーブルを元に所定期間における割り込み頻度(割り込み命令の呼び出し回数)を推定し、割り込み頻度の推定値と所定の値の大小関係が変化したときを契機に、プログラムコードを大・小規模メモリに再格納、もしくは、すでに格納されたプログラムコードとの差分のみを格納してもよい。
なお、データテーブルのデータは、マイクロコンピュータ内部、外部どちらに保管していてもよい。マイクロコンピュータを含む端末が、無線および有線通信を通じてネットワークを形成しているときは、他の端末、もしくは、さらに上位の親機からの信号をもとに書き換えタイミングを調整しても良い。また、外部からの信号によってタイマーモジュールや内部クロックの設定値が変更されてON、OFF時間が変更される場合にも、タイマーモジュールの設定値を変更するタイミングで同時にプログラムコードの再格納やコード間での再配置を行っても良い。
以下、第2の実施形態の効果を述べる。
CPU10がアクセスしているメモリ(不揮発メモリ(1)11、または不揮発メモリ(2)12)に格納されているコードの中に、アクセスしていないメモリの電源をON、OFFする命令を記述しておくことで、アクセスしていないメモリの電源を適宜ON、OFFできる。従って、演算プログラムの長く、かつ、コードが2つのメモリの両方に格納されているような処理の期間中であっても2つのメモリを同時に立ち上げる必要がない期間は、使用していないメモリの電源をOFFすることができる。このため動作時の消費電力を低減することができる。
電源のON、OFFは、メモリ上のコードから制御されるため、マイクロコンピュータが実行するプログラムコード(アプリケーション)に合わせて、最適なON、OFFのタイミングを柔軟に選択することが可能である。このため、CPUのアクセス先がメモリ間をまたいで移動する際には、移動先のメモリアドレスを有する不揮発メモリの電源が予めONになるように移行元になる不揮発メモリに格納された電源のON、OFFに関するコードを調整することで、移行先のメモリが立ち上がるのを待つことによる処理速度の低下も抑えることができる。
また、OFF時間が短く、電源のOFF処理によってリーク電流を無くすよりも、電源の再立ち上げなどによる消費電力のオーバーヘッドが上回る処理の実行を阻止する。このため、コーディングの際に過剰に設定してしまった電源のON、OFF切り替え処理によって逆に消費電力が増大することを防ぐことができる。
また、マイクロコンピュータが、ON、OFFを繰り返しながら処理をする中で、なるべく大規模メモリをOFFした状態のまま、小規模メモリとCPUのみがON、OFFするようにプログラムコードがメモリ内に格納されているため、アクセスしないメモリ領域や周辺回路に対する無駄な給電をより効果的に抑えることができる。また、省電力に最適なコードの格納状態は、マイクロコンピュータが置かれた環境が変わることによる割り込み頻度の変化に合わせて随時更新することができる。
応答性の要求の高いタイマーモジュール以外からの割り込み命令とそれに続く実行コードは二分化されて、ON時に開始するコードを含むサイズの小さくなったサブ命令コードが小規模メモリに格納されている。小規模メモリはON時の立ち上がりが早いため、上記の割り込みが発生してから処理を終了するまでの時間が短縮化されている。また、二分化してアクセスの移動によるタイムラグのない2つのメモリにそれぞれコードを格納するため、上記割り込みによって開始するコード群のサイズは、小規模メモリに格納するサイズより小さくしなければいけないという制約もない。また、上記のコードをすべて大規模メモリに格納して動作させるよりも省電力である。従って、コードサイズの制限がなく、かつ、レスポンス良く、省電力で割り込み処理を実行できる。
なお、上記説明のマイクロコンピュータを計算装置と置き換えても同様である。
以下、本発明の実施例のマイクロコンピュータについて説明する。
(マイクロコンピュータの構成)
図9は、本発明の実施例のマイクロコンピュータ(あるいは計算装置)の構成を示す図である。図9に示すように、マイクロコンピュータの内部では、中央演算装置(CPU)20である演算回路と、大小、規模の異なる2つの不揮発性メモリ(不揮発メモリ(1)21、不揮発メモリ(2)22)と電源を制御する電源制御回路(PMU)23の他に、タイマーモジュールや周辺モジュール(IO回路や通信回路など)を有する各種モジュール24が、信号線(バス)25を介してお互いに接続されている。
2つの不揮発性メモリには、演算回路用の制御命令、および、データが格納される。データ領域においては書き換えが頻繁に起こるため、揮発性メモリとしては、書き換え耐性が高いMRAM(磁気抵抗メモリ)を好適に用いることができる。
CPU20は、任意のクロックサイクルにおいて、不揮発メモリ(1)21あるいは不揮発メモリ(2)22のいずれか一方にアクセスできる。CPU20やメモリ(不揮発メモリ(1)21、不揮発メモリ(2)22)、各種モジュール24は、それぞれアクセスしない時にクロックを止めたり、クロック停止と共に電源電圧を下げたりするスタンバイ状態の他に、供給電源そのものを止めてOFF状態に遷移させることができる。
図10は、本実施例のマイクロコンピュータ(周辺モジュールを含む)の構成を示す図である。図10に示すように、本実施例のマイクロコンピュータは、大小、規模の異なる2つの不揮発メモリ(小規模メモリ(1)31、大規模メモリ(2)32)からなる記憶装置に格納された命令によって直接、もしくは、タイマーモジュール34の制御レジスタに設定された時間で出力される信号、もしくは、外部からの割り込み信号によって、電源スイッチを管理する電源制御回路(PMU)33を介して、中央演算装置(CPU)30と各メモリの電源スイッチ36、37、38をそれぞれ適宜ON,OFFする。なお、小規模メモリ(1)31の容量は1kB、大規模メモリ(2)32は128kBとする。
以下では、CPU30をCPUと、小規模メモリ(1)31を小規模メモリと、大規模メモリ(2)32を大規模メモリと略して記載する。
CPUは、揮発性ではあるが動作速度に優れた(小規模な)キャッシュメモリを具備していても良い。CPUが前記キャッシュメモリを有している場合、大規模メモリ内に自身の電源をOFFする命令を格納しておき、自身をOFFする命令を含む命令郡を一時的に前記キャッシュメモリに格納させて、CPUと前記キャッシュメモリとの間でのみ命令コードの読み出しと実行をしている期間中、大規模メモリの電源をOFF状態させる。これにより処理速度の向上に加え、動作負荷の小さい前記キャッシュメモリを繰り返し動かすことによる省電力効果と、大規模メモリをその間OFFさせることによるリーク電流の排除による省電力効果の2つが同時に得られる。
例えば、ループ処理などコード長が短いが実行時間が長い処理においてはその効果が大きい。なお、前記キャッシュメモリに一時的に格納する命令コード群の中に、大規模メモリのON命令を最適に配置しておくことで、ループ処理を終えて再度大規模メモリにアクセスを開始する前に、大規模メモリの電源を予めONさせて、ON時の待機時間を排除することも可能である。
本マイクロコンピュータは、通信回路やIO回路などの周辺モジュール35を通して、無線モジュールや各種センサーから信号を取得、もしくは、信号を出力することができる。接続するセンサーとしては、温湿度センサーや照度センサー、人感センサー、加速度センサーなどのセンサーが挙げられる。本マイクロコンピュータを、複数のセンサー、および、無線モジュールからなる環境センサー端末の制御用装置として用いた場合、実行する処理は大きく分けて2つに分類できる。1つは、タイマーモジュールによる時間制御のもと、温湿度センサーや照度センサーなどの制御と信号の受信、信号処理、および、無線による処理結果の送信といった一連の処理がある時間間隔で繰り返し行われるスケジューリング処理である。もう1つは、人感センサーや加速度センサーなど外部からの信号による割り込みを契機に実行される不定期な処理である。
(マイクロコンピュータ用のプログラムコードの作成方法と解析方法)
本実施例のマイクロコンピュータに処理させるプログラムコードは、汎用のパーソナルコンピュータ(PC)を用いて作成する。Cなどの高級言語によるプログラムから最終的にコンパイルすることで作成することを基本に、必要に応じてアセンブリコードで直接記述する。本マイクロコンピュータに接続されたセンサーや無線、有線通信などの他のデバイスの制御や、デバイスから得られたデータの解析、解析結果をデバイスに返すなどの処理プログラムをPC上で作成する。また、処理するデータや制御するデバイスがない場合は、CPUの電源をOFFする命令をプログラムコード内に記述して、CPUとメモリ(小規模メモリ、大規模メモリ)を含むマイクロコンピュータの電源をOFF状態にする。
プログラムコード内の解析、自動修正・変換、および作成プログラムコードを本マイクロコンピュータのメモリ(小規模メモリ、大規模メモリ)にロードする処理も、コード作成時と同様に汎用のPCを用いる。PC上で、作成中のプログラムコードの動作をシミュレーションする際には、特に本マイクロコンピュータを構成する各回路ブロックの電源のON、OFF状態をモニターする。システムクロックの周波数やタイマーモジュール34の周波数を、これらクロックの設定レジスタの値等から読み出すことで、コードの実行ステップ数だけでなく、ON状態を維持する時間やOFF状態を維持する時間を算出する。
(マイクロコンピュータのON・OFF動作時間、ON・OFFコード長の定義)
図11は本実施例のマイクロコンピュータのON・OFF動作時間を示す。図11に示すように、マイクロコンピュータのON時間1は、起動開始時刻T1(タイマーモジュールからの信号によってCPUの電源がON状態になって実行される最初の命令時刻)から、CPUをOFF状態にする命令が実行される時刻までの間の命令サイクル数に、内部システムクロックの周期を掛けた値とする。また、計算機のOFF時間は、CPUの電源のOFF命令が実行された時刻から、タイマーによって次のCPUの電源がONする時刻(起動開始時刻T2)までの時間(OFF時間1=T2−T1−ON時間1)であり、CPUのOFF処理の前に実行されたタイマーモジュールへの命令コードとタイマーモジュールの設定レジスタ(ON命令が実行されるカウンター値やタイマーモジュールの動作クロック)の値から算出する。
なお、図12に示すように、CPUの電源がON状態になった後の実行コード中に条件分岐命令があり、分岐先ごとに異なるコードと異なるCPUのOFF処理の実行コードが含まれる場合、ONから条件分岐前まで実行時間(コード長Caの実行時間Ta)と、各分岐の分岐確率(Pbi(i=1、2、3・・・))と分岐先でCPU30の電源がOFFされるまでの実行時間(コード長Cbi(i=1、2、3、・・・)の実行時間Tbi(i=1、2、3、・・・))の積の合算値と、を足し合わせた値を(推定)ON時間(Ta+Σ(Pbi×Tbi))とする。CPUの電源がONされてからOFF処理を経由して再度ONされるまでの時間から、先ほど算出したON時間を差し引いた時間を計算機の(推定)OFF時間とする。なお、条件分岐確率を特に指定しない場合は、各分岐は等確率としてON、OFF時間の算出に用いる。
また、CPUがON動作を開始してからOFF動作に移るまでに実行されるコード群のコード長を算出する場合において、図12に示すように、CPUのON動作の実行コード中に条件分岐命令があり、かつ、分岐先ごとに異なるコードと異なるOFF処理の実行コードが含まれる場合には、ON状態になって最初に実行される命令から条件分岐命令前までのコード長と、各条件分岐先においてOFF処理が実行されるコードまでのコード長の合算値を足したものを上記コード群のコード長とする。コード長は、プログラムコードをメモリに格納する際に、確保すべきメモリ領域を計算するために利用する。
(プログラムコードの区切りと、プログラムコードの格納単位)
図13は、作成したプログラムコードのうち、タイマーモジュール以外の割り込み命令によって実行を開始する命令コード群40の扱いを示す。図13に示すように、作成したプログラムコードのうち、タイマーモジュール以外の割り込み命令によってCPUがONしてからOFFするまでの間に実行されるコード群に対しては、所定のコード長Ctを境にさらに2分割し、作成したプログラムコードを計算機内のメモリに格納する際には、それぞれを1つの集まり(セット)とする。作成したプログラムコードをメモリ(小規模メモリ、大規模メモリ)に格納する際には、上記の集まりを持つコード群を1セットとしてセット単位で前記メモリに格納する。
図14Aは、小規模メモリ(メモリ(1))と大規模メモリ(メモリ(2))の消費電力と実行サイクル数(EC)との関係を、図14Bは、大規模メモリ(メモリ(2))のOFF状態からの立ち上がりに必要な電力を除いた大規模メモリ(メモリ(2))と小規模メモリ(メモリ(1))の消費電力と実行サイクル数(EC)との関係を、それぞれ示す。
上記の所定コード長Ctは、図14Bに示すように、小規模メモリ(メモリ(1))の立ち上がり電力と、コードを小規模メモリに格納した場合に小規模メモリからの命令呼出しによって計算を実行するために必要な電力との和が、コードを大規模メモリに格納した場合に大規模メモリからの命令呼出しによって計算を実行するために必要な電力よりも小さくなるコード長と同程度、もしくは、それよりも長いコード長とする。
すわなち、上記の同程度になるときの実行サイクル(EC)をEC0、また0からEC0までの間に使用されるコード領域(コード長)をC0とすると、CtをC0よりも大きな値にする。ON状態になって最初に実行する命令コードを含み、かつ、所定のコード長を有するサブ命令コード群Pf、その残りのコードをサブ命令コード群Pbとする。
図15は、タイマーモジュールからの割り込み命令によってON状態になった後に開始されるプログラムコード41を示す。図15に示すように、タイマーモジュールからの割り込み命令によってCPUがONしてからOFFまでに間に実行されるコードは、これらのコードを1つの集まりとして評価し、作成したプログラムコードを計算機内のメモリに格納する際には、上記の集まりをもつコード群Psを1セットとしてセット単位でメモリに格納する。
(命令コード群(セット単位)の格納先決定方法)
図16は、小規模メモリであるメモリ(1)42と大規模メモリであるメモリ(2)43への、サブ命令コード群Pf格納領域44、サブ命令コード群Pf以外の命令コード(Pb、、、Pi、、、)45の格納を説明する図である。割り込みに対するサブ命令コード群Pfを、小規模メモリであるメモリ(1)42に格納するコード群とする。また、所定期間における命令コード群Pi(Piは、コード群PbもしくはPs)においてその命令コード長Liを呼び出し回数Niで割り算して得られた値(Li/Ni)が小さい命令コード群Piを優先的に、小規模メモリに命令コードを格納していくコード群とし、サブ命令コード群1が全て格納された場合の小規模メモリの残りのメモリ空間に格納できる範囲で、小規模メモリに格納するコード群を決定する。
また、小規模メモリに入りきらなかった残りの命令コード群は、大規模メモリであるメモリ(2)43に格納するコード群とする。なお、サブ命令コード群で、割り込み頻度(もしくは、所定期間の呼び出し回数)が推定できない場合は、サブ命令コードPbの呼び出し回数はゼロとする。
なお、この場合の所定期間は、マイクロコンピュータがある周期で同じ処理サイクルを繰り返す場合の周期(Tc)である。2秒ごとに動作する温湿度センサーのデータ取得と解析、3秒ごとに照度センサーのデータ取得と解析、4秒ごとに無線による端末・端末間、端末・親機間のデータ送受信といった処理がある場合は、各周期の最小公倍数である6秒をこの場合のTcとする。
小規模メモリに格納する命令コード群(セット)を決定していく過程で、小規模メモリに格納することがまだ決定していない命令コード群のセットと、すでに小規模メモリに格納されることが決定された命令群のセットとの間で、共通のデータや共通の特定関数を実現する命令群を持つ場合、小規模メモリに格納することが決定していない命令コード群は、上記の共通部分を取り除いてコード長を算出しなおす。新たに算出された命令コード長は、小規模メモリに格納する命令コード群のセットを決定する際の優先順位付けに随時変更を反映させて利用する。
図17は、上記の命令コード群(セット単位)の格納先決定方法のフローをまとめた図である。
ステップ1(S101)では、以下の動作を行う。すなわち、小規模メモリに格納することが決まった命令コード群をs[P1、P2]、格納先が決まっていない命令コード群をn[P3、P4、P5、、、]、大規模メモリに格納することが決まった命令コード群をb[Px、、、]とする。括弧[ ]内の命令コード群Piをそれぞれ、命令コード長Liを所定期間Tcでの呼び出し回数Niで除した値(Li/Ni)が小さい順に左からソートする。
ステップ2(S102)では、ステップ1(S101)を受けて、命令コード群Piの格納先候補および括弧[ ]内の順序を、小規模メモリに格納するコード群s[P1、P2]、格納先が決まっていないコード群n[P3、P4、P5、、、]、大規模メモリに格納するコード群b[Px、、、]とする。
ステップ3(S103)では、s内の命令コード群(P1、P2)とn内の一番左の命令コード群(P3)の命令コード長の合計が、小規模メモリの記憶容量よりも大きいか否かの比較を行う。
ステップ4(S104)では、ステップ3(S103)がYESの場合、命令コード群Piの格納先を、小規模メモリに格納するコード群S[P1、P2]、大規模メモリに格納するコード群B[Px、、、P3、P4、P5、、、]とし、格納を行い、終了する。
ステップ5(S105)では、ステップ3(S103)がNOの場合、命令コード群Piの格納先候補を、小規模メモリに格納するコード群s[P1、P2、P3]、格納先が決まっていないコード群n[P4、P5、、、]、大規模メモリに格納するコード群b[Px、、、]などとする。
ステップ6(S106)では、ステップ5(S105)において、格納先が決まっていないコード群n[ ]内の命令コード群の中に、P3と共通のコードやデータ領域を持つ場合は共通部分を除去して命令コード長を再計算し、命令コード長L4をL4’に、L5をL5’に、などの変更を行う。
ステップ7(S107)では、ステップ6(S106)を受けて、{ある命令コード群(Pi)の命令コード長(Li’)}/{期間期間(Tc)での呼び出し回数Ni}の値(Li’/Ni)の小さい順にn内の並びを再ソートし、ステップ2(S102)に戻る。
ステップ2(S102)では、ステップ7(S107)を受けて、命令コード群Piの格納先候補および括弧[ ]内の順序を、小規模メモリに格納するコード群s[P1、P2、P3]、格納先が決まっていないコード群n[P4、P5、、、]、大規模メモリに格納するコード群b[Px、、、]などとし、以降のステップを繰り返す。
(格納先が確定した命令コード群のON、OFF命令最適化)
図18は、格納先が確定した命令コード群のON、OFF命令のタイミングの最適化を説明する図である。図18を用いて、以下、命令コード群のON、OFF命令最適化の説明を行う。
タイマーモジュール以外の割り込み命令によってCPUがONしてからOFFするまでの間に実行されるコード群で、そのサブ命令コード群1の格納先が小規模メモリ(メモリ1)、サブ命令コード群2の格納先が大規模メモリ(メモリ2)に割り付けられた場合、サブ命令コード群1には大規模メモリをONにする命令を追加する。なお、大規模メモリをONする命令は、CPUのアクセスが小規模メモリから大規模メモリに切り替わる直前の命令よりも、大規模メモリが立ち上がる時間だけ前で実行されるようにメモリ内の格納先アドレスを調整して挿入する。
OFF命令の挿入位置は、CPUのアクセスが小規模メモリから大規模メモリに切り替わる直前の命令からスタートし、命令の時間軸における実行フローをさかのぼるようにして挿入位置を1命令ステップずつ前にしてみながら、シミュレーションによる評価を繰り返えし、最終的に、シミュレーション上でメモリ間でのアクセス先の移行時に、移行先の立ち上がりを待たなくてよくなった時点で挿入位置を固定する。なお、CPUのアクセスが小規模メモリから大規模メモリに切り替わる直前の命令からスタートするのではなく、大規模メモリが立ち上がる時間をシステムクロックで割って得られた商の値のステップ数分だけ、予めスキップして上記の評価サイクルを開始することで、シミュレーション時間を低減することができる。
また、セット間で共通のデータや共通の処理関数を実現するサブ命令コード群をもっているために、ある命令コード群のセットの中には、大規模メモリと小規模メモリのそれぞれに格納先を割り付けられたサブ命令コード群を含むことがある。この場合には、大規模メモリに格納予定の命令コード群のセットの中に小規模メモリをON、OFFする命令、小規模メモリに格納予定の命令コード群のセットの中に大規模メモリをON、OFFする命令をそれぞれ追加する。
大規模(もしくは小規模メモリ)をONする命令の追加位置は、CPUのアクセスが小規模メモリ(もしくは大規模メモリ)から大規模メモリ(もしくは小規模メモリ)に切り替わる直前に実行されるコードよりも、大規模メモリ(もしくは小規模メモリ)が立ち上がる時間だけ前で実行されるように挿入する。
また、大規模(もしくは小規模メモリ)をOFFする命令は、CPUのアクセスが大規模メモリ(もしくは小規模メモリ)から小規模メモリ(もしくは大規模メモリ)に切り替わった後に実行されるように小規模メモリに格納する。なお、小規模メモリにアクセスが移って最初に実行される命令コードの直後に実行されるように挿入するのが最も望ましい挿入位置となる。
なお、上記の挿入位置とは、論理上の処理フロー(もしくは時間軸)上での位置をいう。最終的に時間軸で見た場合のON、OFF命令の挿入位置は図18のようになる。時間軸で見た命令コードの並びと、メモリ内での物理的な位置(アドレス)で見た命令コードの並び順とは必ずしも一致していなくても良い。
(ON、OFF動作の適正判断と修正をする前の準備)
マイクロコンピュータを構成するCPUや各メモリなどの各回路ブロックに対して、ONからOFF状態を経由して再度ON状態になるために必要な電力(OFF処理に必要な電力)は、マイクロコンピュータの電気特性を実機で測定して求める。ただし、電力評価用の端子が用意されていない回路ブロックがある場合は、代わりにSPICEなどのデバイスシミュレータを用いて算出する。なお、OFF処理に必要な電力は、ON時に必要な回路ブロック内の電源ラインへの帯電エネルギー(電源線の電位を動作電圧まで昇圧するために必要なエネルギーであり、電源線の配線容量と昇圧に必要な電圧から求める電力)と、OFFする回路ブロックにSRAMやDRAMなどの揮発性メモリがあればOFF時の不揮発メモリへのデータ退避に必要な書き込み、および、ON時の再ロードに必要な読み出し電力と、動作が安定するまで待機するために発生する待機電力を合算した値とする。
また、電源を給電しているがクロックや信号入力が停止している状態をスタンバイ状態として、各回路ブロックでスタンバイ状態にある場合のリーク電流値(もしくはスタンバイ電力)のデータを、同じく実機の評価、もしくは、デバイスシミュレータで予め取得しておく。これらの結果をまとめて図19に示すようなデータテーブルを作成する。図19はマイクロコンピュータの各構成要素のOFF処理のために必要な電力とスタンバイ時の電力をまとめた図である。
なお、OFF処理に必要な電力やリーク電力は、ブロック構成やアンプ回路の構成にも依存するが、メモリの記憶容量以外のスペック(読み出し・書き込みスピードなど)が同等であれば、記憶容量とともに増大する。例えば、容量が100倍程度少ないと、OFF処理に必要な電力は10倍程度少なくて済む。
なお、メモリの回路ブロックでは、OFF処理に必要な電力は、ONさせるために必要な電力とほぼ等価である。従って、ON時間が短い命令コード群(セット)を含むプログラム(アプリケーション)においては、2つのメモリの規模に差をつけ、かつ、小規模なメモリに上記命令コード群を格納することで、ON、OFF切り替えによる電力オーバーヘッドを10分の1に抑えて、ON、処理、OFFまでの一連の動作を実行できる。別の言い方をすれば、大規模メモリに格納するよりもアクセスしないメモリ領域や周辺回路に対する無駄な給電を10分の1に抑えることができる。
(ON・OFF動作の適正判断と修正方法)
PCを用いて、大規模メモリと小規模メモリにそれぞれ配置先が割り振られたプログラムコードをマイクロコンピュータで実行したときの、マイクロコンピュータ内のCPUやメモリの各回路ブロックのON・OFF時間をそれぞれ算出する。また、得られたOFF時間と、予め求めたリーク電流値とを積算することで、(電源をOFFさせずにクロックを止めた場合の)スタンバイ電力を求める。
あるCPUとメモリのOFF状態において、そのスタンバイ電力が、CPUとメモリをOFF処理に必要な電力よりも小さかった場合、マイクロコンピュータ(CPUとメモリ)をOFFする命令を、CPUとメモリに供給するクロックを止めるスタンバイ命令に変換する。
また、CPUの動作中であってメモリのみON、OFF状態に遷移する場合は、メモリのあるOFF状態において、そのスタンバイ電力が、メモリのOFF処理に必要な電力よりも小さかった場合、メモリをOFFする命令を削除するか、もしくは、処理をスルーするNOP命令などに変更する。
図20は、メモリのOFF処理の最適化処理の前後でのCPUとメモリの動作を説明する図である。上記の処理により、図20に示すように、OFF時間が短く、電源のOFF処理によってリーク電流を無くすよりも、電源の再立ち上げなどによる消費電力のオーバーヘッドが上回る処理の実行を阻止する。このためコーディングの際に過剰に設定してしまった電源のON、OFF切り替え処理によって逆に消費電力が増大することを防ぐことができる。
ON時に開始して次のOFF状態になるまでの命令コード群の区切り(セット)を再度考えた場合、例えば図20の処理D(命令コード群セットPd)と処理E(命令コード群セットPe)は、スタンバイ命令への変換によって1つのセットとみなされる。従って、新たなセット群で命令コード群(セット)の格納先(大・小規模メモリ)の割付から再度行うことで、ON、OFF処理をより最適化することも可能である。
上記までの処理を施したプログラムコードを、実際にマイクロコンピュータのメモリに格納してPC上でのコーディング作業を終了する。
なお、例えば、割り込み頻度が10回/secを想定した場合と、1回/secを想定した場合で省電力に適したプログラムコードの配置が異なる場合ある。それぞれの配置をG10、G1とする。そこで、5回の割り込み頻度を境にプログラムコードの再配置を行うとする。まず、実際にコードを格納したマイクロコンピュータを搭載したセンター端末を使用し、割り込み頻度と、マイクロコンピュータが置かれている環境を評価できる時刻や各種センサーなどの信号との相関データを集める。そして、図21に示すように各条件下での割り込み頻度の平均値をまとめたデータテーブルを作成する。この場合では、時刻が8時になった時にG1からG10への配置を切り替え、17時になった時点でG10からG1に配置を切り替える。配置を切り替える場合は、コードの再ロード時の転送データ量を減らすためにすでに格納されたプログラムコードとの差分のみを差し替える。
(実施例の効果)
CPUがアクセスしているメモリに格納されているコードの中に、アクセスしていないメモリの電源をON、OFFする命令を記述しておくことで、アクセスしていないメモリの電源を適宜ON、OFFできる。従って、演算プログラムの長く、かつ、コードが2つのメモリの両方に格納されているような処理Cの期間中であっても2つのメモリを同時に立ち上げる必要がない期間は、使用していないメモリの電源をOFFすることができる。このため動作時の消費電力を低減することができる。
また、電源のON、OFFは、メモリ上のコードから制御されるため、計算機が実行するプログラムコード(アプリケーション)に合わせて、最適なON、OFFのタイミングを柔軟に選択することが可能である。このため、図8(もしくは、図18)に示すようにCPUのアクセス先がメモリ間をまたいで移動する際には、移動先のメモリアドレスを有する不揮発メモリの電源が予めONになるように移行元になる不揮発メモリに格納された電源のON、OFFに関するコードを調整することで、移行先のメモリが立ち上がるのを待つことによる処理速度の低下も抑えることができる。
また、OFF時間が短く、電源のOFF処理によってリーク電流を無くすよりも、電源の再立ち上げなどによる消費電力のオーバーヘッドが上回る処理の実行を阻止するため、コーディングの際に過剰に設定してしまった電源のON、OFF切り替え処理によって逆に消費電力が増大することを防ぐことができる(図20)。
また、マイクロコンピュータが、ON、OFFを繰り返しながら処理をする中で、図17のフローに従って呼び出し回数が大きく、かつ、コード長の小さい、すなわち利用効率の高いコード群がなるべく小規模メモリに格納されている。従って、なるべく大規模メモリはOFFした状態のまま、小規模メモリとCPUのみがON、OFFすることができる。このためアクセスしないメモリ領域や周辺回路に対する無駄な給電をより効果的に抑えることができる。また、計算機が置かれた環境が変わることによる割り込み頻度が変化に合わせて随時更新されるため、省電力に最適なコードの状態が保たれる。
応答性の要求の高いタイマーモジュール以外からの割り込み命令とそれに続く実行コードは二分化されて、ON時に開始するコードを含むサイズの小さくなったサブ命令コードが小規模メモリに格納されている。小規模メモリはON時の立ち上がりが早いため、上記の割り込みが発生してから処理を終了するまでの時間が短縮化されている。また、二分化してアクセスの移動によるタイムラグのない2つのメモリにそれぞれコードを格納するため、上記割り込みによって開始するコード群のサイズは、小規模メモリに格納するサイズより小さくしなければいけないという制約もない。また、上記のコードをすべて大規模メモリに格納して動作させるよりも省電力である(図14A及び図14B)。従って、コードのサイズ制限がなく、省電力で、レスポンス良く処理を実行できる。
本発明は上記実施形態に限定されることなく、特許請求の範囲に記載した発明の範囲内で、種々の変形が可能であり、それらも本発明の範囲内に含まれるものであることはいうまでもない。また、上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
付記
(付記1)
第1の命令コードを格納する第1の記憶手段と、第2の命令コードを格納する第2の記憶手段と、
前記第1の記憶手段に格納された前記第1の命令コードと前記第2の記憶手段に格納された前記第2の命令コードとに従って命令を行う中央演算処理手段と、
前記命令を受けて前記第1の記憶手段と前記第2の記憶手段とをオン状態もしくはオフ状態にする電源制御手段と、を備え、
前記中央演算処理手段は、前記第1の命令コードを受けて前記第2の記憶手段を、前記第2の命令コードを受けて前記第1の記憶手段を、それぞれオン状態もしくはオフ状態にする命令を行う、計算装置。
(付記2)
前記中央演算処理手段は、一つのクロックサイクルにおいて前記第1の記憶手段と前記第2の記憶手段のいずれか一方にアクセスするようにアクセスを切り替える、付記1記載の計算装置。
(付記3)
前記第1の記憶手段と、前記第2の記憶手段とは、不揮発メモリである、
付記1または2記載の計算装置。
(付記4)
前記第1の記憶手段の記憶容量と前記第2の記憶手段の記憶容量とは異なる、
付記1から3の内の1項記載の計算装置。
(付記5)
前記中央演算処理手段は、
前記第1の命令コードを受けて前記第2の記憶手段をオン状態にする命令を、前記アクセスを前記第1の記憶手段から前記第2の記憶手段へ切り替える命令を行うよりも、前記第2の記憶手段がオン状態になるために必要な時間以上、先行して行い、
前記第2の命令コードを受けて前記第1の記憶手段をオン状態にする命令を、前記アクセスを前記第2の記憶手段から前記第1の記憶手段へ切り替える命令を行うよりも、前記第1の記憶手段がオン状態になるために必要な時間以上、先行して行う、
付記2から4の内の1項記載の計算装置。
(付記6)
前記中央演算処理手段は、
前記第1の記憶手段と前記第2の記憶手段のそれぞれについて、オン状態とするための電力とオフ状態とするための電力との合計の電力と、動作を続ける電力と、を比較し、
それぞれの、前記合計の電力が前記動作を続ける電力よりも大きい場合、
それぞれの、前記オフ状態にする命令をスタンバイ状態にする命令に置換する、
付記1から5の内の1項記載の計算装置。
(付記7)
前記オン状態とするための電力は、動作電圧にする電力と前記動作電圧にした後に動作が安定するまで待機する間の電力との合計である、
付記6記載の計算装置。
(付記8)
前記スタンバイ状態は、クロックを止める状態である、
付記6または7記載の計算装置。
(付記9)
前記第1の記憶手段の記憶容量は前記第2の記憶手段の記憶容量よりも小さい、
付記1から8の内の1項記載の計算装置。
(付記10)
前記中央演算処理手段は、
外部からの割り込み命令によって前記中央演算処理手段をオフ状態からオン状態とした後に開始する開始命令コードから、次に前記中央演算装置をオフ状態とする命令コードまでの命令コード群を、
前記開始命令コードを含みかつ所定の命令コード長を有するサブ命令コード群1と、サブ命令コード群2とに分割し、
前記所定の命令コード長を、前記第1の記憶手段をオン状態にするための電力と前記第1の記憶手段から命令コードを読み込んで実行する電力との合計が、前記第2の記憶手段から命令コードを読み込んで実行する電力よりも小さくなる命令コード長以上の長さとし、
前記サブ命令コード群1を前記第1の記憶手段に格納する、
付記9記載の計算装置。
(付記11)
前記中央演算処理手段は、
前記サブ命令コード群2、もしくは、
前記外部からの割込み命令以外で前記中央演算装置の電源をオン状態とした後に開始する開始命令コードから、次に前記中央演算装置の電源をオフ状態とする命令コードまでの命令コード群、において
各々の命令コードの命令コード長を所定期間内での呼び出し回数で除して得られる値が小さい命令コードから順に前記第1の記憶手段に格納する、
付記9または10記載の計算装置。
(付記12)
前記中央演算処理手段は、
前記外部からの割り込み命令が実行される頻度を受けて、時刻やセンサーからの信号を定期的に計測して作成したデータテーブルに基づいて所定期間の前記外部からの割込み命令の回数を推定し、前記命令の回数と所定の値との大小関係が入れ替わった時点で、前記中央演算処理手段が実行する命令コードを前記第1と第2の記憶手段に再格納、もしくは、すでに格納された前記命令コードとの差分を格納する、
付記1から11の内の1項記載の計算装置。
(付記13)
第1の命令コードを第1の記憶手段に格納し、第2の命令コードを第2の記憶手段に格納し、
前記第1の記憶手段に格納された前記第1の命令コードと前記第2の記憶手段に格納された前記第2の命令コードとに従って命令を行い、
前記命令を受けて前記第1の記憶手段と前記第2の記憶手段とをオン状態もしくはオフ状態にする電源制御を行い、
前記第1の命令コードを受けて前記第2の記憶手段を、前記第2の命令コードを受けて前記第1の記憶手段を、それぞれオン状態もしくはオフ状態にする命令を行う、計算装置の動作方法。
(付記14)
前記命令は、一つのクロックサイクルにおいて前記第1の記憶手段と前記第2の記憶手段のいずれか一方にアクセスするようにアクセスを切り替えて行う、付記13記載の計算装置の動作方法。
(付記15)
前記第1の記憶手段と、前記第2の記憶手段とは、不揮発メモリである、
付記13または14記載の計算装置の動作方法。
(付記16)
前記第1の記憶手段の記憶容量と前記第2の記憶手段の記憶容量とは異なる、
付記13から15の内の1項記載の計算装置の動作方法。
(付記17)
前記第1の命令コードを受けて前記第2の記憶手段をオン状態にする命令を、前記アクセスを前記第1の記憶手段から前記第2の記憶手段へ切り替える命令を行うよりも、前記第2の記憶手段がオン状態になるために必要な時間以上、先行して行い、
前記第2の命令コードを受けて前記第1の記憶手段をオン状態にする命令を、前記アクセスを前記第2の記憶手段から前記第1の記憶手段へ切り替える命令を行うよりも、前記第1の記憶手段がオン状態になるために必要な時間以上、先行して行う、
付記14から17の内の1項記載の計算装置の動作方法。
(付記18)
前記第1の記憶手段と前記第2の記憶手段のそれぞれについて、オン状態とするための電力とオフ状態とするための電力との合計の電力と、動作を続ける電力と、を比較し、
それぞれの、前記合計の電力が前記動作を続ける電力よりも大きい場合、
それぞれの、前記オフ状態にする命令をスタンバイ状態にする命令に置換する、
付記13から17の内の1項記載の計算装置の動作方法。
(付記19)
前記オン状態とするための電力は、動作電圧にする電力と前記動作電圧にした後に動作が安定するまで待機する間の電力との合計である、
付記18記載の計算装置の動作方法。
(付記20)
前記スタンバイ状態は、クロックを止める状態である、
付記18または19記載の計算装置の動作方法。
(付記21)
前記第1の記憶手段の記憶容量は前記第2の記憶手段の記憶容量よりも小さい、
付記13から20の内の1項記載の計算装置の動作方法。
(付記22)
外部からの割り込みによって前記命令をオフ状態からオン状態とした後に開始する開始命令コードから、次に前記命令をオフ状態とする命令コードまでの命令コード群を、
前記開始命令コードを含みかつ所定の命令コード長を有するサブ命令コード群1と、サブ命令コード群2とに分割し、
前記所定の命令コード長を、前記第1の記憶手段をオン状態にするための電力と前記第1の記憶手段から命令コードを読み込んで実行する電力との合計が、前記第2の記憶手段から命令コードを読み込んで実行する電力よりも小さくなる命令コード長以上の長さとし、
前記サブ命令コード群1を前記第1の記憶手段に格納する、
付記21記載の計算装置の動作方法。
(付記23)
前記サブ命令コード群2、もしくは、
前記外部からの割込み以外で前記命令をオン状態とした後に開始する開始命令コードから、次に前記命令をオフ状態とする命令コードまでの命令コード群、において
各々の命令コードの命令コード長を所定期間内での呼び出し回数で除して得られる値が小さい命令コードから順に前記第1の記憶手段に格納する、
付記21または22記載の計算装置の動作方法。
(付記24)
前記外部からの割り込みが実行される頻度を受けて、時刻やセンサーからの信号を定期的に計測して作成したデータテーブルに基づいて所定期間の前記外部からの割込み命令の回数を推定し、前記命令の回数と所定の値との大小関係が入れ替わった時点で、前記命令の命令コードを前記第1と第2の記憶手段に再格納、もしくは、すでに格納された前記命令コードとの差分を格納する、
付記13から23の内の1項記載の計算装置の動作方法。
1、10、20、30 中央演算装置(CPU)
2、11、21、31 不揮発メモリ(1)
3、12、22、32 不揮発メモリ(2)
4、13、23、33 電源制御回路(PMU)
5、25 信号線(バス)
14、15、16、36、37、38、39 電源スイッチ
24 各種モジュール
34 タイマーモジュール
35 周辺モジュール
40 命令コード群
41 プログラムコード
42 メモリ(1)
43 メモリ(2)
44 サブ命令コード群Pf格納領域
45 命令コード(Pb、、、Pi、、、)

Claims (10)

  1. 第1の命令コードを格納する第1の記憶手段と、
    前記第1の記憶手段とは記憶容量が異なり、第2の命令コードを格納する第2の記憶手段と、
    前記第1の記憶手段に格納された前記第1の命令コードと前記第2の記憶手段に格納された前記第2の命令コードとに従って命令を行う中央演算処理手段と、
    前記中央演算処理手段の命令を受けて前記第1の記憶手段と前記第2の記憶手段とをオン状態もしくはオフ状態にする電源制御手段と、を備え、
    前記第1の記憶手段および前記第2の記憶手段のうち記憶容量が小さい方に処理時間が短いプログラムコードを格納しておき、
    前記中央演算処理手段は、
    前記第1の命令コードを受けて前記第2の記憶手段を、前記第2の命令コードを受けて前記第1の記憶手段を、それぞれオン状態もしくはオフ状態にする命令を行う、計算装置。
  2. 前記中央演算処理手段は、一つのクロックサイクルにおいて前記第1の記憶手段と前記第2の記憶手段のいずれか一方にアクセスするようにアクセスを切り替える、請求項1記載の計算装置。
  3. 前記第1の記憶手段と、前記第2の記憶手段とは、不揮発メモリである、
    請求項1または2記載の計算装置。
  4. 前記中央演算処理手段は、
    前記第1の命令コードを受けて前記第2の記憶手段をオン状態にする命令を、前記第1の記憶手段から前記第2の記憶手段へアクセス先を切り替える命令を行うよりも、前記第2の記憶手段がオン状態になるために必要な時間以上、先行して行い、
    前記第2の命令コードを受けて前記第1の記憶手段をオン状態にする命令を、前記第2の記憶手段から前記第1の記憶手段へアクセス先を切り替える命令を行うよりも、前記第1の記憶手段がオン状態になるために必要な時間以上、先行して行う、
    請求項2または3記載の計算装置。
  5. 前記第1の記憶手段の記憶容量は前記第2の記憶手段の記憶容量よりも小さい、
    請求項1から4の内の1項記載の計算装置。
  6. 前記中央演算処理手段は、
    外部からの割り込み命令によって前記中央演算処理手段をオフ状態からオン状態とした後に開始する開始命令コードから、次に前記中央演算処理手段をオフ状態とする命令コードまでの命令コード群を、
    前記開始命令コードを含みかつ所定の命令コード長を有するサブ命令コード群1と、サブ命令コード群2とに分割し、
    前記所定の命令コード長を、前記第1の記憶手段をオン状態にするための電力と前記第1の記憶手段から命令コードを読み込んで実行する電力との合計が、前記第2の記憶手段から命令コードを読み込んで実行する電力よりも小さくなる命令コード長以上の長さとし、
    前記サブ命令コード群1を前記第1の記憶手段に格納する、
    請求項5記載の計算装置。
  7. 前記中央演算処理手段は、
    前記サブ命令コード群2、もしくは、
    外部からの割込み命令以外で前記中央演算処理手段の電源をオン状態とした後に開始する開始命令コードから、次に前記中央演算処理手段の電源をオフ状態とする命令コードまでの命令コード群、において
    各々の命令コードの命令コード長を所定期間内での呼び出し回数で除して得られる値が小さい命令コードから順に前記第1の記憶手段に格納する、
    請求項6記載の計算装置。
  8. 前記中央演算処理手段は、
    外部からの割り込み命令が実行される頻度を受けて、時刻やセンサーからの信号を定期的に計測して作成したデータテーブルに基づいて所定期間の前記割り込み命令の回数を推定し、前記割り込み命令の回数と所定の値との大小関係が入れ替わった時点で、前記中央演算処理手段が実行する命令コードを前記第1の記憶手段および前記第2の記憶手段の少なくとも一方に再格納、もしくは、すでに格納された前記命令コードとの差分を格納する、
    請求項1から7の内の1項記載の計算装置。
  9. 第1の命令コードを第1の記憶手段に格納し、前記第1の記憶手段とは異なる記憶容量の第2の記憶手段に第2の命令コードを格納し、前記第1の記憶手段および前記第2の記憶手段のうち記憶容量が小さい方に処理時間が短いプログラムコードを格納しておき、
    前記第1の記憶手段に格納された前記第1の命令コードと前記第2の記憶手段に格納された前記第2の命令コードとに従って命令を行い、
    前記第1の命令コードおよび前記第2の命令コードの少なくともいずれかに従った命令を受けて前記第1の記憶手段と前記第2の記憶手段とをオン状態もしくはオフ状態にする電源制御を行い、
    前記第1の命令コードを受けて前記第2の記憶手段を、前記第2の命令コードを受けて前記第1の記憶手段を、それぞれオン状態もしくはオフ状態にする命令を行う、計算装置の動作方法。
  10. 第1の命令コードを格納する第1の記憶手段と、
    第2の命令コードを格納する第2の記憶手段と、
    前記第1の記憶手段に格納された前記第1の命令コードと前記第2の記憶手段に格納された前記第2の命令コードとに従って命令を行う中央演算処理手段と、
    前記中央演算処理手段の命令を受けて前記第1の記憶手段と前記第2の記憶手段とをオン状態もしくはオフ状態にする電源制御手段と、を備え、
    前記中央演算処理手段は、
    前記第1の命令コードを受けて前記第2の記憶手段をオン状態にする命令を、前記第1の記憶手段から前記第2の記憶手段へアクセス先を切り替える命令を行うよりも、前記第2の記憶手段がオン状態になるために必要な時間以上、先行して行い、
    前記第2の命令コードを受けて前記第1の記憶手段をオン状態にする命令を、を前記第2の記憶手段から前記第1の記憶手段へアクセス先を切り替える命令を行うよりも、前記第1の記憶手段がオン状態になるために必要な時間以上、先行して行う、計算装置。
JP2013030529A 2013-02-20 2013-02-20 間欠動作に適した計算装置およびその動作方法 Expired - Fee Related JP6322891B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013030529A JP6322891B2 (ja) 2013-02-20 2013-02-20 間欠動作に適した計算装置およびその動作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013030529A JP6322891B2 (ja) 2013-02-20 2013-02-20 間欠動作に適した計算装置およびその動作方法

Publications (2)

Publication Number Publication Date
JP2014160362A JP2014160362A (ja) 2014-09-04
JP6322891B2 true JP6322891B2 (ja) 2018-05-16

Family

ID=51612012

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013030529A Expired - Fee Related JP6322891B2 (ja) 2013-02-20 2013-02-20 間欠動作に適した計算装置およびその動作方法

Country Status (1)

Country Link
JP (1) JP6322891B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6158154B2 (ja) 2014-09-19 2017-07-05 株式会社東芝 プロセッサシステム、メモリ制御回路およびメモリシステム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0753198Y2 (ja) * 1987-10-19 1995-12-06 三洋電機株式会社 マイクロコンピュータ
JPH04133117A (ja) * 1990-09-26 1992-05-07 Canon Inc 情報処理装置
JPH0844622A (ja) * 1994-07-29 1996-02-16 Hitachi Ltd 情報処理装置
JPH0997249A (ja) * 1995-09-29 1997-04-08 Sanyo Electric Co Ltd マイクロコンピュータ
US6571333B1 (en) * 1999-11-05 2003-05-27 Intel Corporation Initializing a memory controller by executing software in second memory to wakeup a system
JP2002229692A (ja) * 2001-02-06 2002-08-16 Canon Inc 情報処理装置
JP4078107B2 (ja) * 2002-04-23 2008-04-23 キヤノン株式会社 制御装置および制御方法
JP5776347B2 (ja) * 2011-06-10 2015-09-09 富士通株式会社 電力制御方法、電子装置、プログラム及びプログラムの生成方法
JP5653315B2 (ja) * 2011-07-28 2015-01-14 株式会社東芝 情報処理装置

Also Published As

Publication number Publication date
JP2014160362A (ja) 2014-09-04

Similar Documents

Publication Publication Date Title
US10649935B2 (en) Deferred inter-processor interrupts
Miller et al. Booster: Reactive core acceleration for mitigating the effects of process variation and application imbalance in low-voltage chips
US20160110299A1 (en) Low Power Autonomous Peripheral Management
US20130290758A1 (en) Sleep mode latency scaling and dynamic run time adjustment
US10901490B2 (en) Operating point controller for circuit regions
Liu et al. Energy reduction with run-time partial reconfiguration
US9317342B2 (en) Characterization of within-die variations of many-core processors
CN101788931A (zh) 一种硬件实时容错的动态局部可重构系统
US20090171646A1 (en) Method for estimating power consumption
CN110795238B (zh) 负载计算方法、装置、存储介质及电子设备
TW201411334A (zh) 資訊處理裝置及電腦程式產品
CN110832434A (zh) 针对节能性能使用有效利用率进行核心频率管理
US20190079578A1 (en) Sequencer-based protocol adapter
US10275007B2 (en) Performance management for a multiple-CPU platform
CN109582434A (zh) 基于虚拟机运行时需求的动态平台特征调谐
Goubaa et al. Scheduling periodic and aperiodic tasks with time, energy harvesting and precedence constraints on multi-core systems
JP6322891B2 (ja) 間欠動作に適した計算装置およびその動作方法
Philip et al. Intermittent computing emulation of ultralow-power processors: Evaluation of backup strategies for RISC-V
CN109375543B (zh) Dvs电压管理装置、系统及方法、存储介质、计算机设备
Ramesh et al. Energy management in embedded systems: Towards a taxonomy
US11500444B2 (en) Intelligent prediction of processor idle time apparatus and method
Wang et al. Register allocation for hybrid register architecture in nonvolatile processors
CN108090001B (zh) 一种内核dma稳态调度方法及装置
JP6057735B2 (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
JP2005523510A (ja) マイクロプロセッサおよびその電力を管理する方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170403

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171003

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171018

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180313

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180326

R150 Certificate of patent or registration of utility model

Ref document number: 6322891

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees