JP2008071084A - マイクロプロセッサ及び画像形成装置 - Google Patents

マイクロプロセッサ及び画像形成装置 Download PDF

Info

Publication number
JP2008071084A
JP2008071084A JP2006248611A JP2006248611A JP2008071084A JP 2008071084 A JP2008071084 A JP 2008071084A JP 2006248611 A JP2006248611 A JP 2006248611A JP 2006248611 A JP2006248611 A JP 2006248611A JP 2008071084 A JP2008071084 A JP 2008071084A
Authority
JP
Japan
Prior art keywords
wait
instruction code
microprocessor
wait mode
mode setting
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.)
Pending
Application number
JP2006248611A
Other languages
English (en)
Inventor
Takao Katayama
貴雄 片山
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2006248611A priority Critical patent/JP2008071084A/ja
Publication of JP2008071084A publication Critical patent/JP2008071084A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

【課題】動作環境に応じた、特定の命令コードに対してウェイト挿入することにより、安定した動作性能を維持することのできるマイクロプロセッサ及び画像形成装置を提供する。
【解決手段】マイクロプロセッサ10は、ウェイト挿入を用いて命令コードの処理時間を延長する手段を有するマイクロプロセッサ10であって、命令コードの処理時間を延長するウェイトモードの設定値を記憶するレジスタ15を有し、出荷又は起動時に、動作環境に応じた、前記命令コードに対するウェイトモードの設定値を、レジスタ15へ設定するウェイトモード設定手段31と、レジスタ15が記憶するウェイトモードの設定値を取得する、ウェイトモード設定取得手段32と、ウェイトモード設定取得手段32により取得したウェイトモードの設定値に従って、特定の命令コードに対してウェイト挿入するウェイト挿入手段33とを有することを特徴とする。
【選択図】図5

Description

本発明は、マイクロプロセッサ及び画像形成装置に係り、特にウェイト挿入により命令実行時のサイクル数を変更するマイクロプロセッサ及び画像形成装置に関するものである。
画像形成装置の印刷性能は、画像形成装置が備えるマイクロプロセッサ(MPU:Micro Processing Unit)の処理性能に依存する。そのため、マイクロプロセッサの性能指標である最大駆動周波数を実現することが、高性能な画像形成装置を設計する上で重要になる。
マイクロプロセッサの最大駆動周波数は、演算命令、データ操作命令、分岐命令、入出力命令など、処理する上で最も時間がかかり複雑な命令(以下、「クリティカルな命令:インストラクション」と言う。)を処理可能な周波数により決定される。
しかしながら、様々な動作環境下において、クリティカルな命令を安定した最大駆動周波数により処理可能なマイクロプロセッサを実現するのは、製造者にとって難しい。例えば、プリント基板のプリントパターンによるクロストーク(信号線が互いにノイズになる現象)や電源供給環境により発生したノイズによる電源電圧のIRドロップ(配線の抵抗成分による電位降下)など、マイクロプロセッサは、設置される回路基板や動作環境などの影響を受けやすいため、クリティカルな命令が1サイクルで実行不可能な場合があり、その結果、全体の命令のうちわずかな比率しかない実行不可能なクリティカルな命令のために、駆動周波数を下げざるを得ない(駆動周波数の上限)。
マイクロプロセッサは、演算命令、データ操作命令、分岐命令、入出力命令など、処理する上でクリティカルな命令が順次パイプライン処理された場合、複数個の命令が、レジスタリード(F)・デコード(D)・演算実行(E)・レジスタライト(W)の各ステージにて、1命令1サイクルで処理される。
このような順次パイプライン処理において、何らかの理由でクリティカルな命令が処理不可能な場合(駆動周波数が上限に達した場合)、一般的に、ウェイト信号(Low)を送出(ウェイト挿入)し、サイクル時間の延長(パイプライン延長)を行う。
しかし、この方法では、延長したサイクル時間のうち、最大の延長時間に基づいてマイクロプロセッサのサイクル時間が決定されるため、サイクル時間を延長する必要がない命令においてもサイクル時間が延長(ウェイト挿入)された状態で動作し、マイクロプロセッサ全体の処理性能を低下させてしまう。
そこで、上記の問題を解決するため、マイクロプロセッサのウェイト挿入を制御する方法が提案されている(例えば、特許文献1、2を参照)。
特開2003−29965号公報 特開2003−36241号公報
しかしながら、特許文献1に記述される方法では、ウェイト挿入の対象となる特定の命令コードに対して、命令コードの一部にウェイト数を設定する付加し、命令実行時に付加したコードにより設定されたウェイト数のウェイトを挿入するもので、ウェイト挿入を特定の命令コードに対して行うように制御すると言う意味では効果があるが、ウェイト挿入が必要な命令コード全てに対して対応コードが必要となり、プログラム上の変更や修正が煩雑で、対応したコードサイズ分、プログラム全体のサイズが増加してしまう(プログラムを記憶する領域を圧迫してしまう)。
また、特許文献2に記述される方法では、外部デバイス装着時におけるウェイト挿入の制御方法が提案されているが、対応範囲が外部デバイス装着時と限定されており、動作環境の影響により、マイクロプロセッサの動作性能を維持するためウェイト挿入が必要となる場合など、外部デバイス装着時以外のウェイト挿入を制御できない。
本発明は、上記従来技術の問題点を鑑み、動作環境に応じた、特定の命令コードに対してウェイト挿入することにより、安定した動作性能を維持することのできるマイクロプロセッサ及び画像形成装置を提供することを目的とする。
上記目的を達成するため、本発明のマイクロプロセッサは、ウェイト挿入を用いて命令コードの処理時間を延長する手段を有するマイクロプロセッサであって、命令コードの処理時間を延長するウェイトモードの設定値を記憶するレジスタを有し、出荷又は起動時に、動作環境に応じた、前記命令コードに対するウェイトモードの設定値を、前記レジスタへ設定するウェイトモード設定手段と、前記レジスタが記憶するウェイトモードの設定値を取得する、ウェイトモード設定取得手段と、前記ウェイトモード設定取得手段により取得したウェイトモードの設定値に従って、特定の命令コードに対してウェイト挿入するウェイト挿入手段とを有することを特徴とする。
これによって、本発明のマイクロプロセッサは、動作環境に応じた、特定の命令コードに対してウェイト挿入することにより、安定した動作性能を維持することができる。
その結果、上記マイクロプロセッサを備えた画像形成装置においても、同様の効果を奏することができる。
上記目的を達成するため、本発明のマイクロプロセッサは、複数個の命令コードを実行し、該マイクロプロセッサの動作環境に応じた動作検証を行う動作検証手段を有し、前記動作検証手段により、該マイクロプロセッサの動作環境においてウェイト挿入を行う必要がある特定の命令コードを判断することを特徴とする。
これによって、本発明のマイクロプロセッサは、動作環境の変化により、動作性能を維持する上でウェイト挿入を行う必要がある命令コードを検出することができる。
上記目的を達成するため、本発明のマイクロプロセッサは、不揮発性記憶装置を有し、前記動作検証手段による検証結果に基づいて、特定の命令コードに対するウェイトモードの設定値を、前記不揮発性記憶装置に記憶することを特徴とする。
上記目的を達成するため、本発明のマイクロプロセッサは、前記レジスタにおけるデータの入出力を制御する入出力制御回路を有し、前記動作検証手段による検証結果に基づいて、前記入出力制御回路をトリミングし、特定の命令コードに対するウェイトモードの設定値を記憶することを特徴とする。
これによって、本発明のマイクロプロセッサは、工場出荷時の製品検査において、プリント基板のプリントパターンによるクロストークなどの影響により、動作性能を維持する上でウェイト挿入を行う必要がある特定の命令コードが検出された場合、その命令コードのウェイトモードの設定値を初期設定値(工場出荷時の設定値)として記憶させることができる。
上記目的を達成するため、本発明の画像形成装置は、請求項1ないし4の何れか一項に記載のマイクロプロセッサを備えた画像形成装置であることを特徴とする。
本発明は、動作環境に応じた、特定の命令コードに対してウェイト挿入することにより、安定した動作性能を維持することのできるマイクロプロセッサ及び画像形成装置を提供することができる。
以下、本発明の好適な実施の形態(以下、「実施形態」と言う。)について、図面を用いて詳細に説明する。
<マイクロプロセッサ10の構成例について>
図1は、本発明の実施形態に係るマイクロプロセッサ10の構成例を示す図である。
図1において、実施形態に係るマイクロプロセッサ(以下、「MPU」と言う。)10は、汎用レジスタ11、シーケンスユニット(SCU:Sequence Unit)12、演算回路(ALU:Arithmetic and Logic Unit)13、クロックジェネレータ(CG:Clock Generator)14、ウェイトモード設定用レジスタ15、バス16a〜cを備えている。
汎用レジスタ11は、一度に扱える情報量は少ないが、極めて高速な記憶素子であり、メモリから、MPU10が演算処理などを行う際に必要な命令コードやデータなどを読み込み、一時的に記憶する(以下、「フェッチ」と言う)。また、汎用レジスタ11は、メモリから転送された命令コードを一時的に記憶しておく命令レジスタIR(IR:instruction register)、演算結果などを一時的に記憶しておくデータレジスタDR(DR:data register)として使用される。
シーケンスユニット(以下、「SCU」と言う。)12は、MPU10の制御部であり、命令レジスタ(以下、「IR」と言う。)に転送された命令コードを解読(以下、「デコード」と言う。)し、演算指令などの制御信号を送出し、MPU10を制御する。
演算回路(以下、「ALU」と言う。)13は、MPU10の演算部であり、命令実行の段階において、SCU12からの制御信号により、入力されたデータの算術演算及び論理演算を行う。
クロックジェネレータ(以下、「CG」と言う。)14は、SCU12からのクロック制御信号に従いクロックを送出する。サイクル時間の延長を行うためのウェイト挿入は、SCU12からウェイト挿入したクロック送出(サイクル数の変更)を指示する制御信号が送られてくるため、それに従いウェイト挿入したクロックを各回路へ送出する。
ウェイトモード設定用レジスタ15は、レジスタが備える複数ビットに、単独の命令コード又は命令グループ(複数の命令コードをグループ化したもの)などの単位で、動作環境に応じた命令コードの処理時間の延長(ウェイト挿入)を行う設定値(以下、「ウェイトモードの設定値」と言う。)を記憶する。また、ウェイトモード設定用レジスタ15は、MPU10を備えた装置に電源が投入された際、後述する自己診断プログラムにより、ウェイト挿入が必要な命令コードを検出し、その結果を基に(ウェイト挿入が必要な命令コードである場合)該当する命令コード又は複数の命令グループのウェイトモードの設置値をレジスタのビットに記憶する。
バス16a〜cは、アドレスバス16a、データバス16b及び制御バス(コントロールバス)16cであり、回路上のデータ伝送路である。
アドレスバス16aは、メモリ上のプログラムやデータを指定するためのアドレス情報を伝送するためのバス、データバス16bは、バスに接続されたデバイス同士が必要なデータを伝送するバス、制御バス16cは、SCU12を含むMPU10内の制御部より送出される制御信号を伝送するバスである。
本発明の実施形態に係るMPU10が、ハードウェア構成として従来のMPU10と異なる点は、動作環境に応じた、特定の命令コードのウェイトモードの設定値を記憶するウェイトモード設定用レジスタ15を備えている点である。
<SIMDプロセッサ20の構成例について>
図2は、本発明の実施形態に係るSIMD(Single Instruction/Multiple Data)プロセッサ20の構成例を示す図である。
本実施形態においてSIMDプロセッサ20を例としてあげる理由は、SIMDプロセッサ20は、構造上全てプロセッサエレメント(PE:Processor Element)が動作する場合、本発明で解決したい問題(動作環境に応じたウェイト挿入が必要な状態)が発生しやすい特性をもっているからである。ただし、本発明はMPU10全般に適用可能なものである。
SIMDプロセッサ20は、MPU10において、1つの命令で複数のデータを扱う処理方式を有し、画像処理、暗号化及び復号化などに使用される並列処理プロセッサの1つである。以下に、SIMDプロセッサ20の主な構成及び処理の流れについて説明する。
SIMDプロセッサ20は、グローバルプロセッサ(GP:Global Processor)21、プログラムRAM22、データRAM23、バス24、プロセッサエレメント(以下、「PE」と言う。)25を備えている。
SIMDプロセッサ20が備えるグローバルプロセッサ(以下、「GP」と言う。)21は、プログラムRAM22上にあった命令コードをデコードし、デコードされた結果から、制御信号を、制御バス24を介して、対象となる各回路に送出するものである。GP21から送出される制御信号の先には複数個のPE25nがある。PE25nは、演算データを保持する複数個のRレジスタRn、演算回路であるALU253、フラグレジスタFLAG(FF:flag register Flag)252、アキュムレータACC(ACC:accumulator)254で構成されており、外部端子入出力26から入力されたデータをRレジスタ251に保持し、ALU253により演算処理を行い、その結果をアキュムレータACC254に格納し、Rレジスタ251に戻され、外部端子入出力26nへ出力される。
このように、SIMDプロセッサ20は、GP21から複数個のPE25nへ同一の制御信号が送出され、その指示に従い複数個のPE25nによって並列演算処理を行う。
ここで、SIMDプロセッサ20の最大駆動周波数について考えてみると、SIMDプロセッサ20において、GP21は、プロセッサ全体から比べると占有面積が少なく、GP21内全てのブロックを使って命令実行させたとしても、その際の1クロックの消費電力は少ない。一方、プロセッサ全体において、GP21に比べ複数個のPE25nの比率が大きいため、命令実行する上でクリティカルな命令(最も時間がかかり複雑な命令)を実行させた場合、複数個のPE25nを同時に動作させるためには1クロックで多くの消費電力が必要となる。このような多くの消費電力が必要な場合や、プリント基板のプリントパターンによるクロストークや電源供給環境により発生したノイズによる電源電圧のIRドロップなど(プロセッサの動作環境による影響)、SIMDプロセッサ20は、クリティカルな命令が1クロックで実行不可能な場合があり、その結果、全体の命令のうちわずかな比率しかない実行不可能なクリティカルな命令のために、駆動周波数を下げざるを得ない。以下に、駆動周波数を下げざるを得ない状態について、図3の本発明の実施形態に係るSIMDプロセッサ20(CMOS(Complementary Metal Oxide Semiconductor)で構成されている場合)における連続したクリティカルな命令を実行した際のクロックと電源電圧(VCC)との関係を示す図を用いて説明する。
SIMDプロセッサ20がCMOSで構成される場合、その性質上、ゲートが"0"から"1"、"1"から"0"と変化したときに電流を消費し、扱うデータによっては全て同時に変化する場合があり、図3に示すように、その消費電力の急激な変化によって電源電圧が不安定な状態となり、1クロック内で安定した状態へ回復するのが難しく、クロックが進む毎に電圧が低下し、このような電源電圧が不安定な状態でSIMDプロセッサ20を動作させることになる。このように、多くの電力を消費するクリティカルな命令が連続した場合、駆動周波数が低下する。このような、駆動周波数を低下させるクリティカルな命令を、製品出荷時に命令コードの全ての組み合わせに対して検査することは難しく、劣悪な動作環境下では誤作動を招く恐れがある。
よって、SIMDプロセッサ20において、予測し得ない動作環境においても安定した動作性能を維持する必要がある。
本発明は、上記のような問題を鑑みて、動作環境に応じた、特定の命令コードに対してウェイト挿入することにより、安定した動作性能を維持することのできるMPU10を実現するものである。
<MPU10の動作例について>
図4は、本発明の実施形態に係るMPU10の動作の流れを示す図である。
MPU10の基本機能は、命令コードの読み出し(F:命令フェッチ)、命令コードのデコード(D:命令デコード)、算術及び論理演算の実行(E:演算実行)、実行結果の書き込み(W:結果格納)であり、命令コードの読み出し、デコード及び実行の順の流れで処理が行われている。
まず、命令フェッチ(F)では、メモリ上から実行する命令コードの読み出しを行うため、命令コードのアドレスが一時的に記憶されているプログラムカウンタ(PC:Program Counter)41から、アドレスバス16aを介してメモリへアドレス信号が送られる。その結果、命令キャッシュ42を介してIR43へ命令コードがフェッチされる。
次に、命令デコード(D)では、フェッチされた命令コードは、SCU12によってデコードされ、その結果に応じた制御信号が制御バス16cを介してCG14へ送られ、CG14は、制御信号に従ったクロックを各回路に送出する。この時、ウェイトモード設定用レジスタ15に記憶されている、動作環境においてウェイト挿入を行う命令コード又は命令グループのウェイトモードの設定値に基づいて、SCU12からウェイト挿入したクロック送出(サイクル数の変更)を指示する制御信号(ウェイト信号)がCG14に送られ、CG14によって各回路にクロックが送出される。
このように、SCU12において、ウェイトモード設定用レジスタ15に記憶されている、動作環境においてウェイト挿入を行う命令コード又は命令グループのウェイトモードの設定値に基づいて、動作環境に応じた特定の命令コードのみウェイト挿入したクロック送出(サイクル数の変更)を指示する制御信号(ウェイト信号)がCG14に送出するようにデコーダを構成している。
その後、演算実行(E)では、データバス16bを介してDR11に記憶された演算データをALU13により演算実行し、結果格納(W)では、その結果をアキュムレータACC254へ格納する。
そして、プログラムカウンタ41(以下、「PC」と言う。)を1つ進め、命令フェッチ(F)、命令デコード(D)、演算実行(E)、結果格納(W)の順番に繰り返す。
<MPU10における主な機能構成について>
図5は、本発明の実施形態に係るMPU10における主な機能部の構成例を示すブロック図である。
図5に示すように、本実施形態のMPU10における主な機能構成は、ウェイトモード設定手段31、ウェイトモード設定取得手段32及びウェイト挿入手段33とから構成されている。
ウェイトモード設定手段31は、MPU10を備えた装置に電源が投入された際、自己診断プログラムにより、電源投入時の動作環境においてウェイト挿入を行う必要がある命令コードを検出し、その結果に基づいたウェイトモードの設定値を、ウェイトモード設定用レジスタ15へ設定する。ウェイトモード設定用レジスタ15は、予め、命令コード、命令(オペレーション部)とアドレス(オペランド部)の組み合わせ、又は、これらの組み合わせをグループ化したものなどに分類されたウェイト挿入を行う対象それぞれに対して、レジスタの1ビットが割り当てられ(対応付けられ)、その1ビットに、ウェイトモード情報が記憶される。
また、ウェイトモード設定用レジスタ15に対して、リセット命令が実行された場合のウェイトモードの初期設定値は、製品出荷時のウェイトモードの設定値が設定されている。製品出荷時のウェイトモードの設定値は、製品出荷を行う際の検査段階において、製品の動作環境を考慮したMPU10の動作検証を実施し、その結果を基にウェイトモードの設定値を設定しておく。設定方法の例として、不揮発性の記憶装置NVRAM(Non-Volatile Random Access Memory)などに記憶させる方法や、ウェイトモード設定用レジスタ15の入出力回路に対してレーザトリミング(回路パターンの一部をレーザーによって切断する)を行う方法などがある。
ウェイトモード設定手段31において述べた自己診断プログラム(動作検証手段)は、電源投入時における動作環境に応じたMPU10の動作検証を行うための各命令コードが記述されたプログラムで、自己診断プログラムを、MPU10において実行し、期待値と結果値を比較することで動作検証を行い、現在の動作環境において、MPU10が動作仕様に従い正常に動作しているか(最大駆動周波数において命令を処理できているか)否かを判断するものである。よって、自己診断プログラムを実行することで、現在の動作環境において、製品の動作性能を維持する上でウェイト挿入を行う必要がある命令コードを検出することができ、ウェイトモード設定手段31により、検出された特定の命令コードに対して、ウェイトモード設定用レジスタ15へ、ウェイトモードの設定値を設定することができる。また、MPU10において、自己診断プログラムを実行する際には、正常時の最大駆動周波数に対してマージンをとった駆動周波数により実行する。
ウェイトモード設定取得手段32は、ウェイトモード設定用レジスタ15から、ウェイトモード設定手段31により設定されたウェイトモードの設定値を取得する。取得したウェイトモードの設定値は、実行される命令コードが、現在の動作環境に応じたウェイト挿入を行う対象であるか否かの判断に用いられる。また、ウェイトモード設定取得手段32の中で行われる、実行される命令コードがウェイト挿入の対象か否かの判断は、SCU12のデコード時に行われる。
ウェイト挿入手段33は、ウェイトモード設定取得手段32により、取得したウェイトモードの設定値に基づき、実行される命令コードが、現在の動作環境に応じたウェイト挿入を行う対象であるかを判断し、ウェイト挿入の対象と判断された場合に、ウェイト挿入したクロック送出(サイクル数を変更)を指示する制御信号を、制御バス16cを介してCG14へ送る。また、命令コードがウェイト挿入の対象であるか否かについて判断する方法は、命令コード、命令(オペレーション部)とアドレス(オペランド部)の組み合わせ、又は、これらの組み合わせをグループ化したものなどに分類されたウェイト挿入を行う対象それぞれに対して、ウェイトモード設定用レジスタ15の各ビットが割り当てられて(対応付けられて)いるため、判定中の命令コードに対応付けられたビットに設定されたウェイトモードの設定値を参照することで判断することができる。
このように、本発明では、MPU10を備えた装置に電源が投入された際、自己診断プログラム(動作検証手段)により、動作環境に応じたMPU10の動作性能が検証され、自己診断プログラムが検出したウェイト挿入を行う必要がある命令コードに対応したウェイトモードの設定値が、ウェイトモード設定手段31により、ウェイトモード設定用レジスタ15に設定される。次に、MPU10が動作中に実行される命令コードがSCU12においてデコードされる際、ウェイトモード設定取得手段32により、ウェイトモード設定用レジスタ15に設定されたウェイトモードの設定値を取得し、ウェイト挿入手段33により、取得したウェイトモードの設定値に基づいて、実行される命令コードがウェイト挿入の対象であるかを判断し、ウェイト挿入を行う必要がある命令コードであれば、ウェイト挿入したクロック送出(サイクル数の変更)を指示する制御信号を、制御バス16cを介してCG14へ送り、CG14から各回路へクロックが送出される。
<MPU10における動作環境に応じたウェイト挿入の処理手順について>
図6は、本発明の実施形態に係るMPU10におけるウェイトモードを設定する処理手順の一例を示すフローチャートである。
図6は、自己診断プログラムによる動作検証中に、ウェイトモードの設定値を、ウェイトモード設定手段31により、ウェイトモード設定用レジスタ15へ設定する処理手順の一例を示すものである。
まず、MPU10を備えた装置に電源が投入される(S101)。
次に、MPU10は、自己診断プログラムをメモリ上へ読み出し(S102)、読み出した自己診断プログラムの実行を開始する(S103)。
次に、現在の動作環境において、各命令コードを順次実行し、動作検証を行う(S104)。
次に、実行中の命令コードが、期待値と結果値を比較しMPU10の動作検証を行った結果に基づいて、ウェイト挿入が必要な命令コードを判定する(S105)。
実行中の命令コードがウェイト挿入の対象と判断された場合(S105がYESの場合)、ウェイトモード情報設定手段31により、ウェイト挿入の対象となる命令コードに割り当てられた(対応付けられた)ウェイトモード設定用レジスタ15の所定のビットに対して、ウェイトモードの設定値を設定し(例えば、「ウェイト挿入するは"1"」を設定するなど。)、命令コードに対応したウェイトモードの設定値を設定する(1ビットのデータをレジスタに設定値を設定)(S106)。この時、ウェイトモード設定用レジスタ15に設定されている製品出荷時の初期設定は、自己診断プログラムによる命令コード検証後、ウェイトモード設定手段31により、最新の動作環境に応じたウェイトモードの設定値へ更新される。
また、実行中の命令コードがウェイト挿入の対象でないと判断された場合(S105がNOの場合)、ウェイトモード設定用レジスタ15には、製品出荷時の初期設定値であるウェイトモードの設定値が設定された状態となる。
次に、命令コードの動作検証が終了したかを判定する(S107)。
自己診断プログラムによる命令コードの動作検証が終了した場合(S107がYESの場合)、自己診断プログラムを終了する。
また、自己診断プログラムによる動作検証が行われていない命令コードがある場合(S107がNOの場合)、自己診断プログラムによる命令コードの動作検証が終了するまで、各項目の動作検証を継続して行う。
このように、ウェイトモード設定用レジスタ15には、MPU10が搭載された装置に電源が投入された際に、自己診断プログラムによって、ウェイト挿入が必要な命令コードが検出され、その結果を基づいて、ウェイトモード設定手段31により、最新の動作環境に応じたウェイトモードの設定値が設定される。
図7は、本発明の実施形態に係るMPU10におけるウェイト挿入されたクロックを送出する処理手順の一例を示すフローチャートである。
図7は、図5で示したウェイトモード設定手段31により設定されたウェイトモードの設定値が、ウェイトモード設定取得手段32により取得され、ウェイト挿入を行う命令コードが実行された際に、取得したウェイトモードの設定値に基づいて、ウェイト挿入手段33によりウェイト挿入したクロックを各回路に送出する処理手順の一例を示すものである。
まず、MPU10は、実行しようとしている命令コードのアドレスを記憶したPC41から、アドレスバス16aを介して、命令キャッシュ42へアドレス信号を送る(S201)。
次に、命令キャッシュ42から、制御バス16cを介して、命令レジスタIR11に制御信号が送られ、メモリから命令コードを命令レジスタIRへフェッチする(S202)。
次に、命令レジスタIR11から、制御バス16cを介して、SCU12へ制御信号が送られ、SCU12は、命令レジスタIR11の命令コードをデコードする(S203)。
次に、ウェイトモード設定取得手段32により、ウェイトモード設定用レジスタ15に設定されたウェイトモードの設定値を取得する(S204)。
次に、ウェイト挿入手段33により、ウェイトモード設定取得手段32により取得したウェイトモードの設定値に基づき、実行される命令コードがウェイト挿入の対象であるかを判定する(S205)。
実行される命令コードがウェイト挿入の対象である場合(S205がYESの場合)、ウェイト挿入手段33は、ウェイト挿入したクロック送出を指示(サイクル数を変更する)する制御信号を、制御バス16cを介して、クロックを各回路に送出するCG14へ送る(S206)。
また、実行される命令コードがウェイト挿入の対象でない場合(S205がNOの場合)、ウェイト挿入手段33は、最大駆動周波数のクロック送出を指示する制御信号を、制御バス16cを介して、クロックを各回路に送出するCG14へ送る(S207)。
最後に、ウェイト挿入手段33によりクロック送出を指示する制御信号に従い、CG14から各回路へクロックを送出する(S208)。
このように、MPU10が動作中に実行される命令コードがデコードされる際、ウェイトモード設定取得手段32により、ウェイトモード設定用レジスタ15に設定されたウェイトモードの設定値を取得し、ウェイト挿入手段33により、取得したウェイトモードの設定値に基づいて、実行される命令コードがウェイト挿入の対象であるかを判断し、ウェイト挿入の対象であれば、ウェイト挿入したクロック送出を指示する制御信号が、制御バス16cを介してCG14へ送られ、CG14から各回路へクロックが送出される。
このように、本発明の実施形態に係るMPU10は、動作環境に応じた、ウェイト挿入を必要とする命令コード(動作性能に影響を及ぼす命令コード)を特定し、ウェイトを挿入したクロックを送出するため、予測し得ない動作環境においても安定した動作性能を維持することができる。
<MPU10におけるパイプライン処理の例について>
図8〜10は、本発明の実施形態に係るMPU10におけるパイプライン処理の一例を示す図である。
図8は、MPU10が最大駆動周波数で動作した場合のパイプライン処理(その1)を示している。それに対し、図9は、MPU10が動作環境によってウェイト挿入され最大駆動周波数が変更された場合のパイプライン処理(その2)を示している。
図8と図9を比較すると、図8の最大駆動周波数fmax1より図9の最大駆動周波数fmax2の方が低く(1クロックのサイクル時間が長い)、ウェイト挿入された状態で全ての命令が動作していることから、MPU10の処理性能が低下していることが分かる。
それに対し、図10は、動作環境に応じたウェイト挿入を行う必要がある命令コードに対し、ウェイト挿入した場合のパイプライン処理(その3)を示しており、図9と図10が異なる点は、図9の場合、MPU10の全ての命令においてウェイト挿入され、最大駆動周波数がfmax2の状態であるのに対し、図10の場合、ウェイト挿入が必要な特定の命令コードのみウェイト挿入された駆動周波数fmax2の状態となっており、その他の命令コード(ウェイト挿入が必要ない命令コード)に関しては、最大駆動周波数fmax1の状態で動作している点である。
このように、本発明の実施形態に係るMPU10は、CG14からのウェイト挿入したクロック送出を、動作環境に応じた、ウェイト挿入が必要な特定の命令コードに限定することで、ウェイト挿入による最大駆動周波数の低下を最低限の範囲に止めるとともに、予測し得ない動作環境において安定した動作性能を維持することができる。
<まとめ>
以上のように、本発明の実施形態によれば、MPU10は、MPU10を備えた装置に電源が投入された際、自己診断プログラム(動作検証手段)が実行され、ウェイトモード設定手段31により、自己診断プログラムにより検出されたウェイト挿入を行う命令コードに対応したウェイトモードの設定値が、ウェイトモード設定用レジスタ15に設定され、現在の動作環境において、安定した動作性能を維持する上でウェイト挿入を行う命令コードを特定する。これによって、MPU10は、実行される命令コードがSCU12においてデコードされる際に、ウェイトモード設定取得手段32により、ウェイト挿入を行う命令コードのウェイトモードの設定値を取得し、ウェイト挿入手段33により、取得したウェイトモードの設定値に基づいて、実行される命令コードがウェイト挿入の対象であるかを判断し、ウェイト挿入の対象であれば、ウェイト挿入したクロック送出(サイクル数の変更)を指示する制御信号を、制御バス16cを介してCG14へ送り、CG14から各回路へクロックが送出される。
よって、本発明の実施形態に係るMPU10は、ウェイト挿入における最大駆動周波数の低下を限定した命令の動作範囲に止め、予測し得ない動作環境においても安定した動作性能を維持することができる。
その結果、上記MPU10を備えた画像形成装置においても、同様の効果を奏することができる。
最後に、上記実施形態に基づき本発明の説明を行ってきたが、上記実施形態に挙げた形状に、その他の要素との組み合わせなど、ここで示した要件に、本発明が限定されるものではない。
これらの点に関しては、本発明の主旨をそこなわない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
本発明の実施形態に係るマイクロプロセッサの構成例を示す図である。 本発明の実施形態に係るSIMDプロセッサの構成例を示す図である。 本発明の実施形態に係るSIMDプロセッサ(CMOSで構成されている場合)における連続したクリティカルな命令を実行した際のクロックと電源電圧(VCC)との関係を示す図である。 本発明の実施形態に係るマイクロプロセッサの動作の流れを示す図である。 本発明の実施形態に係るマイクロプロセッサにおける主な機能部の構成例を示すブロック図である。 本発明の実施形態に係るマイクロプロセッサにおけるウェイトモードを設定する処理手順の一例を示すフローチャートである。 本発明の実施形態に係るマイクロプロセッサにおけるウェイト挿入されたクロックを送出する処理手順の一例を示すフローチャートである。 本発明の実施形態に係るマイクロプロセッサにおけるパイプライン処理(その1:最大駆動周波数の場合)の一例を示す図である。 本発明の実施形態に係るマイクロプロセッサにおけるパイプライン処理(その2:動作環境によって最大駆動周波数が変更された場合)の一例を示す図である。 本発明の実施形態に係るマイクロプロセッサにおけるパイプライン処理(その3:動作環境に応じた特定の命令実行時のみウェイト挿入を行った場合)の一例を示す図である。
符号の説明
10 マイクロプロセッサ(MPU)
11 汎用レジスタ
12 シーケンスユニット(SCU)
13 演算回路(ALU)
14 クロックジェネレータ(CG)
15 ウェイトモード設定用レジスタ
16a、16b、16c バス
31 ウェイトモード設定手段
32 ウェイトモード設定取得手段
33 ウェイト挿入手段

Claims (5)

  1. ウェイト挿入を用いて命令コードの処理時間を延長する手段を有するマイクロプロセッサであって、
    命令コードの処理時間を延長するウェイトモードの設定値を記憶するレジスタを有し、
    出荷又は起動時に、動作環境に応じた、前記命令コードに対するウェイトモードの設定値を、前記レジスタへ設定するウェイトモード設定手段と、
    前記レジスタが記憶するウェイトモードの設定値を取得する、ウェイトモード設定取得手段と、
    前記ウェイトモード設定取得手段により取得したウェイトモードの設定値に従って、特定の命令コードに対してウェイト挿入するウェイト挿入手段とを有することを特徴とするマイクロプロセッサ。
  2. 当該マイクロプロセッサは、
    複数個の命令コードを実行し、該マイクロプロセッサの動作環境に応じた動作検証を行う動作検証手段を有し、
    前記動作検証手段により、該マイクロプロセッサの動作環境においてウェイト挿入を行う必要がある特定の命令コードを判断することを特徴とする請求項1に記載されたマイクロプロセッサ。
  3. 当該マイクロプロセッサは、
    不揮発性記憶装置を有し、
    前記動作検証手段による検証結果に基づいて、特定の命令コードに対するウェイトモードの設定値を、前記不揮発性記憶装置に記憶することを特徴とする請求項1又は2に記載されたマイクロプロセッサ。
  4. 当該マイクロプロセッサは、
    前記レジスタにおけるデータの入出力を制御する入出力制御回路を有し、
    前記動作検証手段による検証結果に基づいて、前記入出力制御回路をトリミングし、
    特定の命令コードに対するウェイトモードの設定値を記憶することを特徴とする請求項1又は2に記載されたマイクロプロセッサ。
  5. 請求項1ないし4の何れか一項に記載のマイクロプロセッサを備えた画像形成装置。
JP2006248611A 2006-09-13 2006-09-13 マイクロプロセッサ及び画像形成装置 Pending JP2008071084A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006248611A JP2008071084A (ja) 2006-09-13 2006-09-13 マイクロプロセッサ及び画像形成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006248611A JP2008071084A (ja) 2006-09-13 2006-09-13 マイクロプロセッサ及び画像形成装置

Publications (1)

Publication Number Publication Date
JP2008071084A true JP2008071084A (ja) 2008-03-27

Family

ID=39292620

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006248611A Pending JP2008071084A (ja) 2006-09-13 2006-09-13 マイクロプロセッサ及び画像形成装置

Country Status (1)

Country Link
JP (1) JP2008071084A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019020931A (ja) * 2017-07-13 2019-02-07 ラピスセミコンダクタ株式会社 処理速度整合回路およびマイクロプロセッサ
JP2022033968A (ja) * 2017-07-13 2022-03-02 ラピスセミコンダクタ株式会社 処理速度整合回路およびマイクロプロセッサ

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0830551A (ja) * 1994-07-15 1996-02-02 Nec Corp ウエイト制御方式
JPH09160665A (ja) * 1995-12-07 1997-06-20 Kawasaki Steel Corp プロセッサ装置
JPH10294379A (ja) * 1996-10-29 1998-11-04 Motorola Inc オンチップ確認回路を用いた半導体素子最適化方法および装置
JPH11161490A (ja) * 1997-11-26 1999-06-18 Nec Corp 命令実行サイクル可変回路
JP2002091905A (ja) * 2000-09-20 2002-03-29 Mitsubishi Electric Corp 半導体装置およびアクセスウェイト数変更プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2002353799A (ja) * 2001-05-22 2002-12-06 Matsushita Electric Ind Co Ltd 半導体集積回路及びその駆動方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0830551A (ja) * 1994-07-15 1996-02-02 Nec Corp ウエイト制御方式
JPH09160665A (ja) * 1995-12-07 1997-06-20 Kawasaki Steel Corp プロセッサ装置
JPH10294379A (ja) * 1996-10-29 1998-11-04 Motorola Inc オンチップ確認回路を用いた半導体素子最適化方法および装置
JPH11161490A (ja) * 1997-11-26 1999-06-18 Nec Corp 命令実行サイクル可変回路
JP2002091905A (ja) * 2000-09-20 2002-03-29 Mitsubishi Electric Corp 半導体装置およびアクセスウェイト数変更プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2002353799A (ja) * 2001-05-22 2002-12-06 Matsushita Electric Ind Co Ltd 半導体集積回路及びその駆動方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019020931A (ja) * 2017-07-13 2019-02-07 ラピスセミコンダクタ株式会社 処理速度整合回路およびマイクロプロセッサ
JP2022033968A (ja) * 2017-07-13 2022-03-02 ラピスセミコンダクタ株式会社 処理速度整合回路およびマイクロプロセッサ
JP7276755B2 (ja) 2017-07-13 2023-05-18 ラピスセミコンダクタ株式会社 処理速度整合回路およびマイクロプロセッサ

Similar Documents

Publication Publication Date Title
WO2014091666A1 (ja) 車載電子制御装置
US20060047938A1 (en) Method and apparatus to initialize CPU
JP4935107B2 (ja) 情報処理装置
JP2008071084A (ja) マイクロプロセッサ及び画像形成装置
WO2010150474A1 (ja) サブプロセッサー、集積回路装置及び電子機器
US7340561B2 (en) Computer memory initialization
JP2010026674A (ja) 半導体集積回路
CN107851015B (zh) 向量操作数位大小控制
JP2005527037A (ja) 構成可能なプロセッサ
JP7210238B2 (ja) 情報処理装置、情報処理装置の制御方法、及び、プログラム
JP2006331391A (ja) データ処理装置及びデータ処理方法
JP6229552B2 (ja) 制御装置、及び、初期化プログラム
JP2006309454A (ja) プログラム制御方法及びプロセッサ
JP5732139B2 (ja) データ要素の条件付き選択
JP2007249866A (ja) マイクロプロセッサ及び画像形成装置
JP2008059339A (ja) 制御装置
JP2000235483A (ja) 情報処理装置
JP2006127407A (ja) 半導体集積回路
JP3691435B2 (ja) プログラマブルコントローラ
JP2019200660A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JPH0475137A (ja) データ処理装置
JP2009093270A (ja) コンピュータシステム及びその起動方法
JP4543505B2 (ja) マイクロコンピュータの制御方法及び異常監視装置
JP4283226B2 (ja) アドレス範囲に依存した命令並行処理を行うデータ処理装置
JP4288700B2 (ja) プログラマブルコントローラ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090626

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110606

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110614

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110812

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120508