(57)【要約】【課題】命令実行の許可タイミングを、より適切に決定すること。【解決手段】プログラムメモリと、該プログラムメモリに格納された命令を実行する命令実行手段と、前記プログラムメモリを含む記憶装置のアドレスに対応した読み込み補正時間を出力するアドレス／補正時間変換手段と、前記プログラムメモリから命令のフェッチを開始した時刻と、該命令のアドレスに基づき前記アドレス／補正時間変換手段により出力される読み込み補正時間とに基づき前記命令実行手段による命令実行を許可又は禁止する命令実行許可手段と、を備える情報処理装置。【選択図】図１
2012173920.tif 000002
【特許請求の範囲】
【請求項１】
プログラムメモリと、
該プログラムメモリに格納された命令を実行する命令実行手段と、
前記プログラムメモリを含む記憶装置のアドレスに対応した読み込み補正時間を出力するアドレス／補正時間変換手段と、
前記プログラムメモリから命令のフェッチを開始した時刻と、該命令のアドレスに基づき前記アドレス／補正時間変換手段により出力される読み込み補正時間とに基づき前記命令実行手段による命令実行を許可又は禁止する命令実行許可手段と、
を備える情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記プログラムメモリに格納された命令の少なくとも一部には、該命令の所要時間に関するデータが付加されており、
前記命令実行許可手段は、前記プログラムメモリから命令のフェッチを開始した時刻と、該命令のアドレスに基づき前記アドレス／補正時間変換手段により出力される読み込み補正時間と、該命令に付加された所要時間とに基づき前記命令実行手段による命令実行を許可又は禁止する手段である、
情報処理装置。
【請求項３】
請求項２に記載の情報処理装置であって、
前記命令実行許可手段は、前記プログラムメモリから命令をフェッチした時刻から、該命令に付加された所要時間と前記アドレス／補正時間変換手段により出力される読み込み補正時間を加算すると共に該命令の実行に要する時間を差し引いた時間が経過した時刻において、前記命令実行手段による命令実行を許可する手段である、
情報処理装置。
【請求項４】
請求項２に記載の情報処理装置であって、
前記命令実行許可手段は、前記プログラムメモリから命令をフェッチした時刻から、該命令に付加された所要時間と前記アドレス／補正時間変換手段により出力される読み込み補正時間を加算した時間が経過した時刻において、前記命令実行手段による命令実行を許可する手段である、
情報処理装置。
【請求項５】
請求項１ないし４のいずれか１項に記載の情報処理装置であって、
前記アドレス／補正時間変換手段は、温度上昇に応じて前記読み込み補正時間が大きくなる傾向で、前記読み込み補正時間を修正する手段である、
情報処理装置。
【請求項６】
請求項１ないし５のいずれか１項に記載の情報処理装置であって、
前記アドレス／補正時間変換手段は、前記プログラムメモリを含む記憶装置の素子劣化を判定する素子劣化判定部を備え、
該素子劣化判定部により素子劣化が生じたと判定されたセルから読み込まれるデータについては、前記読み込み補正時間が大きくなるように、前記読み込み補正時間を修正する手段である、
情報処理装置。
【請求項７】
時間を、サイクル数、又はクロック数に置換して構成される、
請求項１ないし６のいずれか１項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムメモリに格納された命令を実行することにより種々の処理を行う情報処理装置に関する。
【背景技術】
【０００２】
従来、プログラムメモリに格納された命令を実行する情報処理装置が広く用いられている。こうした情報処理装置では、ＲＯＭ（Read  Only  Memory）やＲＡＭ（Random  Access  Memory）等の記憶装置から命令やオペランドをフェッチし、デコード等の処理を経て命令が実行（エクセキュート）される。この際に、フェッチ開始からデコードが終了するまでの時間（記憶装置へのアクセスに起因するウエイト時間を含む）を適切に見積もって、命令の実行タイミングを決定することが望ましい。デコードが終了する前に命令実行を許可すると不要な待ち時間が生じるし、デコードが終了した後命令実行を許可すると処理の遅延が生じるからである。
【０００３】
係る課題を考慮したシングルチップ・マイクロコンピュータについての発明が開示されている（例えば、特許文献１参照）。このシングルチップ・マイクロコンピュータでは、命令及びデータを記憶するためのメモリ手段と、メモリ手段に接続されたバス手段と、内部クロック信号を供給するためのクロック手段と、特定の命令又はデータを内部クロック信号に同期して処理するようにバス手段を介したメモリ手段へのアクセス過程を内部クロック信号に同期して開始するための処理手段とに加えて、メモリ手段のアクセス時間と内部クロック信号のサイクル時間との関係に応じて決定されたウェイトサイクル数の設定値を記憶するための書き換え可能なレジスタを有し、レジスタに記憶された設定値に応じた数のウェイトサイクルが処理手段によるメモリ手段へのアクセス過程に挿入されるように処理手段を制御する制御手段を備えている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−３１９６５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記従来のシングルチップ・マイクロコンピュータでは、レジスタに格納される設定値は、シングルチップ・マイクロコンピュータのユーザにより決定され、かつ初期化プログラムを実行することにより書き込まれる。具体的には、上記設定値は、ＲＯＭへのアクセス時間（一定値）とＣＰＵサイクル時間の関係、或いはＲＡＭへのアクセス時間（一定値）とＣＰＵサイクル時間との関係等に応じて決定される。
【０００６】
しかしながら、上記従来のシングルチップ・マイクロコンピュータでは、ＲＯＭ内の格納場所の相違やＲＡＭ内の格納場所の相違に応じたアクセス時間の差について考慮されていない。このため、ウェイトサイクルの決定精度が十分でない場合がある。
【０００７】
本発明はこのような課題を解決するためのものであり、命令実行の許可タイミングを、より適切に決定することが可能な情報処理装置を提供することを、主たる目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するための本発明の一態様は、
プログラムメモリと、
該プログラムメモリに格納された命令を実行する命令実行手段と、
前記プログラムメモリを含む記憶装置のアドレスに対応した読み込み補正時間を出力するアドレス／補正時間変換手段と、
前記プログラムメモリから命令のフェッチを開始した時刻と、該命令のアドレスに基づき前記アドレス／補正時間変換手段により出力される読み込み補正時間とに基づき前記命令実行手段による命令実行を許可又は禁止する命令実行許可手段と、
を備える情報処理装置である。
【０００９】
この本発明の一態様によれば、プログラムメモリを含む記憶装置のアドレスに対応した読み込み補正時間を出力するアドレス／補正時間変換手段を備え、プログラムメモリから命令のフェッチを開始した時刻と、この命令のアドレスに基づきアドレス／補正時間変換手段により出力される読み込み補正時間とに基づき命令実行手段による命令実行を許可又は禁止するため、命令実行の許可タイミングを、より適切に決定することができる。
【００１０】
本発明の一態様において、
前記プログラムメモリに格納された命令の少なくとも一部には、該命令の所要時間に関するデータが付加されており、
前記命令実行許可手段は、前記プログラムメモリから命令のフェッチを開始した時刻と、該命令のアドレスに基づき前記アドレス／補正時間変換手段により出力される読み込み補正時間と、該命令に付加された所要時間とに基づき前記命令実行手段による命令実行を許可又は禁止する手段であるものとしてもよい。
【００１１】
この場合、
前記命令実行許可手段は、前記プログラムメモリから命令をフェッチした時刻から、該命令に付加された所要時間と前記アドレス／補正時間変換手段により出力される読み込み補正時間を加算すると共に該命令の実行に要する時間を差し引いた時間が経過した時刻において、前記命令実行手段による命令実行を許可する手段であるものとしてもよい。
【００１２】
また、
前記命令実行許可手段は、前記プログラムメモリから命令をフェッチした時刻から、該命令に付加された所要時間と前記アドレス／補正時間変換手段により出力される読み込み補正時間を加算した時間が経過した時刻において、前記命令実行手段による命令実行を許可する手段であるものとしてもよい。
【００１３】
本発明の一態様において、
前記アドレス／補正時間変換手段は、温度上昇に応じて前記読み込み補正時間が大きくなる傾向で、前記読み込み補正時間を修正する手段であるものとすると、好適である。こうすれば、命令実行の許可タイミングを、更に適切に決定することができる。
【００１４】
また、本発明の一態様において、
前記アドレス／補正時間変換手段は、前記プログラムメモリを含む記憶装置の素子劣化を判定する素子劣化判定部を備え、
該素子劣化判定部により素子劣化が生じたと判定されたセルから読み込まれるデータについては前記読み込み補正時間が大きくなるように、前記読み込み補正時間を修正する手段であるものとすると、好適である。こうすれば、命令実行の許可タイミングを、更に適切に決定することができる。
【００１５】
また、本発明の一態様において、
時間を、サイクル数、又はクロック数に置換して構成されるものとしてもよい。これらの表現は、全て時間を示す概念であるため、実質的には等価である。
【発明の効果】
【００１６】
本発明によれば、命令実行の許可タイミングを、より適切に決定することが可能な情報処理装置を提供することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１実施例に係る情報処理装置１のシステム構成例である。
【図２】ＲＯＭ３０に格納された命令にサイクル数データが付加された様子を模式的に示す図である。
【図３】アドレス／サイクルデコーダ５０によって行われる処理の内容を説明するための説明図である。
【図４】アドレス／サイクルデコーダ５０がＲＯＭ３０に附設された様子を示す図である。
【図５】ＯＳ１５等の制御主体により実行される命令実行許可制御の処理の流れを示すフローチャートである。
【図６】本発明の第２実施例に係る情報処理装置２のシステム構成例である。
【図７】温度と導電体の抵抗値との関係を示すグラフである。
【図８】配線遅延が、配線抵抗と寄生容量（対基板容量）との関係で決定されることを説明するための説明図である。
【図９】情報処理装置１の出荷時、すなわちメモリセルの素子劣化が生じていない状態で、且つ常温時における読み込み遅延時間の分布を示す図である。
【図１０】メモリセルの素子劣化が生じていない状態において、温度が上昇した場合の読み込み遅延時間の分布を示す図である。
【図１１】ある程度の時間、情報処理装置１が使用され、メモリセルの素子劣化が生じた状態で、且つ常温時における読み込み遅延時間の分布を示す図である。
【図１２】メモリセルの素子劣化が生じた状態において、温度が上昇した場合の読み込み遅延時間の分布を示す図である。
【発明を実施するための形態】
【００１８】
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
【実施例】
【００１９】
以下、図面を参照し、本発明の実施例に係る情報処理装置について説明する。なお、本発明に係る情報処理装置は、例えば以下に説明するようにシングルコアのマイクロコンピュータとして実現されるが、マルチコア・プロセッサ、マルチスレッド・プロセッサ、マルチプロセッサ装置等として実現されても構わない。
【００２０】
［基本構成］
＜第１実施例＞
図１は、本発明の第１実施例に係る情報処理装置１のシステム構成例である。情報処理装置１は、主要な構成として、ＣＰＵ（Central  Processing  Unit）１０と、ＲＡＭ（Random  Access  Memory）２０と、ＲＯＭ（Read  Only  Memory）３０と、Ｉ／Ｏ装置４０と、アドレス／サイクルデコーダ５０と、を備える。
【００２１】
ＣＰＵ１０は、命令フェッチユニット１１、命令デコーダ１２、実行ユニット１３、内部レジスタ１４を備える。これらの構成要素は、ＯＳ（Operating  System）１５や図示しないパイプライン制御回路等によって制御される。
【００２２】
命令フェッチユニット１１は、図示しないプログラムカウンタが示すアドレスを、プログラムメモリであるＲＯＭ３０に出力する。
【００２３】
ＲＯＭ３０は、プログラム（命令列）を格納しており、命令フェッチユニット１１から命令の格納場所を示すアドレスが入力されると、当該アドレスに格納された命令をＣＰＵ１０に出力する（命令フェッチ）。なお、プログラムメモリとして、ＥＥＰＲＯＭ（Electrically  Erasable  and  Programmable  Read  Only  Memory）等、他の種類の不揮発性メモリが用いられてもよい。ＲＯＭ３０には、プログラム領域３１や初期値付変数領域３２、変数領域３３等が設定されている。
【００２４】
命令デコーダ１２は、ＲＯＭ３０から入力された命令や、図示しないデータフェッチユニットによりフェッチされるオペランド等のデータを復号（デコード）し、実行ユニット１３に出力する。
【００２５】
なお、ＲＯＭ３０から入力された命令は、図示しない命令キューに格納されてもよく、命令デコーダ１２によりデコードされた命令は、実行待ち命令を格納する図示しないレジスタに格納されてもよい。
【００２６】
実行ユニット１３は、例えば、スレッドの要求に応じて四則演算その他の演算処理を行うためのＡＬＵ（Arithmetic  Logic  Unit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の演算回路、ＷＲＩＴＥ命令やＲＥＡＤ命令を実行するＬＳＵ（Load  Store  Unit）、これらによって用いられる高速アクセス可能な汎用レジスタ等を有する。
【００２７】
内部レジスタ１４は、上記各構成要素によって種々の用途に用いられる。例えば、プログラムのコンテキストデータ等が格納される。
【００２８】
ＣＰＵ１０は、内部クロックを供給するクロック生成回路を備えており、この内部クロックに応じて上記各処理が行われる。
【００２９】
Ｉ／Ｏ装置４０は、情報処理装置１に接続された外部機器との間の情報入出力を制御する。
【００３０】
［命令実行許可タイミングの制御］
ところで、本実施例では、ＲＯＭ３０に格納された命令の少なくとも一部には、その末尾等に、当該命令の所要時間に関するサイクル数データが付加されている。図２は、ＲＯＭ３０に格納された命令にサイクル数データが付加された様子を模式的に示す図である。サイクル数データとは、命令フェッチ、命令デコード、及び実行ユニットによる命令実行の全てが完了するまでのサイクル数を示すデータである。１サイクルとは、ＣＰＵ１０が１回の処理を行う時間単位である。従って、「サイクル数」は、「クロック数」、或いは「時間」と換言することができる。
【００３１】
サイクル数データは、命令の性質に応じて、数サイクル程度〜数十サイクルのサイクル数を示すデータとなっている。
【００３２】
このように、命令の末尾等にサイクル数データが付加されているため、サイクル数データから命令実行に必要なサイクル数を差し引くことにより、命令フェッチの開始時刻から、命令実行が行われるまでの想定サイクル数を認識することができる。想定サイクル数は、例えばＯＳ１５によって認識され、命令フェッチの開始時刻から想定サイクル数が経過したときに命令実行が許可されるという制御が行われる。
【００３３】
ところで、同じメモリから命令フェッチやオペランドフェッチを行う場合であっても、命令等の格納場所に応じて読み込みに要する時間が異なる場合がある。ＲＯＭ３０等のメモリは、通常、アレイ状にメモリセルが並べられた矩形形状となっており、読み込み回路はその矩形の辺に沿って設けられるため、読み込み回路からメモリセルへの電気的距離（配線遅延）が配線長や容量等に起因してばらつくからである。このため、命令の性質に応じたサイクル数データのみでは、命令実行の許可タイミングを正確に決定することができない場合がある。
【００３４】
なお、このばらつきは、近年のクロックが高周波で供給されるコンピュータでは、無視できないものとなっており、想定サイクル数の精度が低下すると全体の処理速度が低下することにもなりかねない。
【００３５】
そこで、本実施例の情報処理装置１では、アドレス／サイクルデコーダ５０によって、命令等の格納場所に応じた読み込み補正サイクル数を出力させ、サイクル数データから命令実行に必要なサイクル数を差し引いた値に、当該読み込み補正サイクル数を加算して、命令フェッチの開始時刻から命令実行が行われるまでの想定サイクル数を算出することとした。
【００３６】
アドレス／サイクルデコーダ５０は、ＲＯＭ３０等のアドレスが入力されると、読み込み補正サイクル数を出力する。アドレス／サイクルデコーダ５０が読み込み補正サイクル数を出力する対象とするのは、少なくともＲＯＭ３０に格納された命令や変数であり、好ましくは、情報処理装置１においてアドレスが付与されているデータ領域全体に亘るものであると好適である。また、ＣＰＵ内部のようにアドレスが付与されていない領域のデータについても処理を行ってよく、この場合、遅延設計時のバックアノテーションを利用するとよい。
【００３７】
図３は、アドレス／サイクルデコーダ５０によって行われる処理の内容を説明するための説明図である。図示するように、アドレス／サイクルデコーダ５０は、ＲＯＭ３０等の記憶領域をアレイ状に分割し、分割された各領域について読み込み補正サイクル数を予め決定し、或いは動的に変更する。
【００３８】
また、図４は、アドレス／サイクルデコーダ５０がＲＯＭ３０に附設された様子を示す図である。図中、細線実線Ａ１は、命令１に関するアドレス選択経路であり、太線実線Ａ２は、命令１に関するデータ入出力経路である。また、細線破線（Ａ１と共通する部分は実線で示している）Ｂ１は、命令７に関するアドレス選択経路であり、太線破線Ｂ２は、命令７に関するデータ入出力経路である。データの読み込みが行われるメモリセルは、行デコーダ３０Ａと列デコーダ３０Ｂによって選択され、読み出し回路３０Ｃを介してＣＰＵ１０等に出力される。図中、「命令１」で表される命令と、「命令７」で表される命令は、行デコーダ３０Ａ、列デコーダ３０Ｂ、及び読み出し回路３０Ｃからの電気的距離が異なるため、読み込みに要する時間が異なる。
【００３９】
これらの電気的距離に起因した読み込み遅延時間は、情報処理装置１のレイアウト設計時に確定しているため、図３のように分割された各領域と読み込み補正サイクル数との関係は設計時に設定することが可能である。また、レイアウト時に設計ツールの機能（バックアノテーション機能）を用いて読み込み遅延時間の算出を行うことも可能であり、これによって、より正確に読み込み補正サイクル数を決定することができる。
【００４０】
読み込み補正サイクル数は、例えば、次式（１）により表されるサイクル数Ｃ１に四捨五入等の処理を行って、値０又は値１の二値にしたものとして決定される。なお、サイクル数データに含まれる、「命令フェッチに要するサイクル数」は、読み出し回路に最も近いメモリセルからの読み込み所要時間を基準とするものとする。
【００４１】
Ｃ１＝（column  addressの最下部からの距離）×係数１＋（row  addressの最中央部からの距離）×係数２  …（１）
【００４２】
図５は、ＯＳ１５等の制御主体により実行される命令実行許可制御の処理の流れを示すフローチャートである。
【００４３】
まず、ＯＳ１５等の制御主体は（以下、単に「ＯＳ１５は」と表記する）、命令フェッチユニット１１によって命令フェッチが開始されるまで待機する（Ｓ１００）。
【００４４】
命令フェッチユニット１１によって命令フェッチが開始されると、図示しないタイマーをスタートさせる（Ｓ１０２）。
【００４５】
次に、命令デコーダ１３によるデコードが終了するまで待機し（Ｓ１０４）、命令デコーダ１３によるデコードが終了すると、命令に付加されたサイクル数データＳ、当該命令のアドレスに対応した読み込み補正サイクル数ＳＳ０、そして当該命令の演算対象となるオペランドが二個である場合、第１オペランドのアドレスに対応した読み込み補正サイクル数ＳＳ１、第２オペランドのアドレスに対応した読み込み補正サイクル数ＳＳ２を取得する（Ｓ１０６）。
【００４６】
そして、当該命令に関する読み込み補正サイクル数ＳＳを、次式（２）により確定する（Ｓ１０８）。なお、命令、第１オペランド、第２オペランドの読み込みが並行して行われた場合は、式（２）における右辺各項の最大値を読み込み補正サイクル数Ｓとする。
【００４７】
ＳＳ＝（ＳＳ０＋ＳＳ１＋ＳＳ２）  …（２）
【００４８】
ＯＳ１５は、サイクル数データＳ及び読み込み補正サイクル数ＳＳを確定すると、タイマーにより計数されているサイクル数が、次式（３）で表される想定サイクル数Ｓｒｅｆ以上であるか否かを判定する（Ｓ１１０）。ここで、当該命令の実行所要サイクル数は、命令の種別に応じて決定される。ＯＳ１５は、実行所要サイクル数を取得するためのテーブルを参照してもよいし、サイクル数データに実行所要サイクル数を特定するためのデータが包含されているものとしてもよい。
【００４９】
Ｓｒｅｆ＝Ｓ−（当該命令の実行所要サイクル数）＋ＳＳ  …（３）
【００５０】
サイクル数が想定サイクル数Ｓｒｅｆ以上である場合は、命令実行を許可する（Ｓ１１２）。一方、サイクル数が想定サイクル数Ｓｒｅｆ未満である場合は、サイクル数が基準サイクル数Ｓｒｅｆ以上となるまで待機する。
【００５１】
係る制御によって、命令フェッチの開始時刻から想定サイクル数Ｓｒｅｆが経過したタイミングにおいて、命令実行が許可されることになる。これによって、予め想定されたタイミングで命令が実行されるため、処理のリアルタイム性を高めることができる。
【００５２】
更に、本実施例の情報処理装置１では、アドレス／サイクルデコーダ５０によって命令やオペランドの格納場所に応じた読み込み補正サイクル数を取得可能であるため、想定サイクル数を、より正確に算出することができる。この結果、命令実行の許可タイミングを、より適切に決定することができる。
【００５３】
以上説明した本実施例の情報処理装置１によれば、命令実行の許可タイミングを、より適切に決定することができる。
【００５４】
＜第２実施例＞
以下、第２実施例に係る情報処理装置２について説明する。第２実施例の情報処理装置２は、基本構成について第１実施例と共通し、アドレス／サイクルデコーダ５０の機能のみ第１実施例と相違するため、相違点についてのみ説明する。図６は、本発明の第２実施例に係る情報処理装置２のシステム構成例である。
【００５５】
第２実施例に係るアドレス／サイクルデコーダ５０は、温度センサ５２、及び素子劣化判定部５４を備え、温度変化やメモリセルの素子劣化に応じて読み込み補正サイクル数を修正する。なお、外部から温度データを取得してもよいし、温度変化とメモリセルの素子劣化のいずれかのみに応じて読み込み補正サイクル数を修正するものであっても構わない。素子劣化判定部５４は、マイクロコンピュータやＩＣ（Integrated  Circuit）が用いられる。
【００５６】
図７は、温度と導電体の抵抗値との関係を示すグラフである。図示するように、導電体の抵抗値は温度上昇に応じて増加する傾向を示す。
【００５７】
また、配線遅延は、図８に示すように、配線抵抗と寄生容量（対基板容量）との関係で決定されるが、温度の上昇が大きくなると、配線遅延において温度上昇の寄与度が支配的となる。従って、読み込み補正サイクル数は、温度が上昇するに連れて大きくなる傾向で修正する。具体的には、上式（１）における係数１、２を、温度が上昇すると大きくなる傾向で修正する。
【００５８】
また、アドレス／サイクルデコーダ５０は、メモリセルの素子劣化に応じて読み込み補正サイクル数を修正してもよい。図９〜図１２は、メモリセルの素子劣化や温度変化と、実際の読み込み遅延時間との関係を示す図である。図中、「Ｉ／Ｏの方向」とは、前述したI/O  circuitが取り付けられた位置の方向を意味している。
【００５９】
図９は、情報処理装置１の出荷時、すなわちメモリセルの素子劣化が生じていない状態で、且つ常温時における読み込み遅延時間の分布を示す図である。
【００６０】
図１０は、図９と同じくメモリセルの素子劣化が生じていない状態において、温度が上昇した場合の読み込み遅延時間の分布を示す図である。図示するように、全体的に読み込み遅延時間が大きくなる傾向を示している。
【００６１】
図１１は、ある程度の時間、情報処理装置１が使用され、メモリセルの素子劣化が生じた状態で、且つ常温時における読み込み遅延時間の分布を示す図である。図示するように、全体的に読み込み遅延時間が大きくなる傾向を示すと共に、特定のメモリセル（図中、「＊」で示した）が周囲のメモリセルに比して劣化し読み込み遅延時間が大きくなっている。
【００６２】
図１２は、図１１に示すメモリセルの素子劣化が生じた状態において、温度が上昇した場合の読み込み遅延時間の分布を示す図である。図示するように、図１１の場合に比して、全体的に読み込み遅延時間が更に大きくなる傾向を示している。
【００６３】
従って、アドレス／サイクルデコーダ５０は、Ａ．上式（１）における係数１、２を、温度が上昇すると大きくなる傾向で修正し、Ｂ．使用時間が長くなると全体的に素子劣化が生じたと推定して係数１、２を大きくし、Ｃ．素子劣化が生じたと判断された特定のメモリセルについては、更に係数１、２を大きくするとよい。
【００６４】
なお、素子劣化判定部５４は、該当するメモリセルに格納されたデータを読み込んだ際の実際の読み込み所要時間の時間変化を監視することにより、メモリセルの素子劣化を認識することができる。
【００６５】
以上説明した本実施例の情報処理装置２によれば、命令実行の許可タイミングを、更に適切に決定することができる。
【００６６】
＜変形等＞
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【００６７】
ＲＯＭ３０に格納された命令に付加されたサイクル数データは、実行時間を含まない（すなわち、命令フェッチとデコードに関する時間のみ含む）ものとしてもよい。この場合、サイクル数データに読み込み補正サイクル数を加算した値を、想定サイクル数とすればよい。
【００６８】
また、ＲＯＭ３０に格納された命令にサイクル数データが付加されておらず、命令フェッチと命令デコードに要するサイクル数を通常サイクル数（例えば２サイクル）とみなして想定サイクル数を算出してもよい。
【００６９】
また、アドレス／サイクルデコーダ５０を備えず、プログラムや変数のコンパイル段階において、命令やオペランドに対して、格納場所に応じた読み込み補正サイクル数を付加しておいても構わない。なお、この場合、オペランドが初期変数であれば格納されるアドレスは確定されるが、演算中の変数である場合は格納されるアドレスは不明である。このようなオペランドについては、ＣＰＵ１０の内部レジスタ１４やＲＯＭ３０の読み込み遅延時間のワースト値を用いるものとすればよい。
【００７０】
また、実施例では、命令の実行の開始許可を行うものとして説明したが、「命令実行の完了（具体的には、ライトバック処理等）」を許可するものとしても構わない。この場合、想定サイクル数Ｓｒｅｆの算出において命令の実行所要サイクル数を減算する必要はなく、次式（４）、或いはライトバック処理のサイクル数をカウントするのであれば次式（５）に基づいて想定サイクル数Ｓｒｅｆを算出すればよい。
【００７１】
Ｓｒｅｆ＝Ｓ＋ＳＳ  …（４）
Ｓｒｅｆ＝Ｓ＋ＳＳ−１  …（５）
【符号の説明】
【００７２】
１、２  情報処理装置
１０    ＣＰＵ
１１    命令フェッチユニット
１２    命令デコーダ
１３    実行ユニット
１４    内部レジスタ
１５    ＯＳ
２０    ＲＡＭ
３０    ＲＯＭ
３１    プログラム領域
３２    初期値付変数領域
３３    変数領域
４０    Ｉ／Ｏ装置
５０    アドレス／サイクルデコーダ
５２    温度センサ
５４    素子劣化判定部
【図１】
2012173920.tif 000003
【図２】
2012173920.tif 000004
【図３】
2012173920.tif 000005
【図４】
2012173920.tif 000006
【図５】
2012173920.tif 000007
【図６】
2012173920.tif 000008
【図７】
2012173920.tif 000009
【図８】
2012173920.tif 000010
【図９】
2012173920.tif 000011
【図１０】
2012173920.tif 000012
【図１１】
2012173920.tif 000013
【図１２】
2012173920.tif 000014