(57)【要約】【課題】高可用性モードを有するハードウェア設定可能ＣＰＵを提供する。【解決手段】マイクロプロセッサ１６はモードレジスタ３８を含み、モードレジスタ３８は、それに値を設定することにより、マイクロプロセッサ１６内のフォールトトレランス機能を選択的にオン及びオフにするために使用される。モードレジスタ３８によって、マイクロプロセッサ１６は、プログラムがフォールトトレランスを必要とする場合はフォールトトレラントモードで動作し、プログラムがフォールトトレランスを必要としない場合はパフォーマンスモードで動作することができる。その結果、マイクロプロセッサ１６は、コンピュータシステムを不必要に低速化することなくコンピュータシステムのフォールトトレランスを向上させることができる。【選択図】図２
2007109224.tif 000002
【特許請求の範囲】
【請求項１】
同じタイプの複数の実行ユニット（４０Ａ、４０Ｂ、４０Ｃ）と、
第１の動作モードと第２の動作モードとから選択するように動作可能な第１のレジスタ（３８）と
を具備し、
前記第１の動作モード中は前記実行ユニットのうちの少なくとも１つを冗長実行ユニットとして利用し、前記第２の動作モード中は前記実行ユニットのいずれも冗長実行ユニットとして利用しない
マイクロプロセッサ（１６，１６'）。
【請求項２】
前記実行ユニット（４０Ａ、４０Ｂ、４０Ｃ）は、
浮動小数点演算ユニット
を含む
請求項１に記載のマイクロプロセッサ。
【請求項３】
前記第１の動作モード中に、実行ユニット（４０Ａ）の出力を対応する冗長実行ユニット（４０Ｂ、４０Ｃ）の出力と比較するように動作可能なコンパレータ（４４）
をさらに具備する請求項１に記載のマイクロプロセッサ。
【請求項４】
前記実行ユニット（４０Ｂ、４０Ｃ）のうちの１つは、前記第１の動作モード中は冗長実行ユニットとして利用され、前記第２の動作モード中はアイドル状態である
請求項１に記載のマイクロプロセッサ。
【請求項５】
前記実行ユニット（４０Ｃ）のうちの１つは、オペレーティングシステムによってアクセス可能ではない
請求項４に記載のマイクロプロセッサ。
【請求項６】
前記第１のレジスタ（３８）の値は、前記マイクロプロセッサによって実行されるオペレーティングシステムによって設定される
請求項１に記載のマイクロプロセッサ。
【請求項７】
前記第１のレジスタ（３８）の値は、ユーザによって設定される
請求項１に記載のマイクロプロセッサ。
【請求項８】
実行ユニット（４０）と、
第１の動作モードと第２の動作モードとから選択するように動作可能なレジスタ（３８）と
を具備し、
前記第１の動作モード中は前記実行ユニットに冗長命令を提供し、前記第２の動作モード中は前記実行ユニットに冗長命令を提供しない
マイクロプロセッサ（１６，１６'）。
【請求項９】
マイクロプロセッサ（１６、１６'）内の同じタイプの複数の実行ユニット（４０Ａ、４０Ｂ、４０Ｃ）において命令を実行する方法であって、
第１の動作モードが選択されると、前記実行ユニットのうちの少なくとも１つを冗長実行ユニットとして利用することと、
第２の動作モードが選択されると、前記実行ユニットのいずれも冗長実行ユニットとして利用しないことと
を含む方法。
【請求項１０】
マイクロプロセッサ（１６、１６'）内の実行ユニット（４０）において命令を実行する方法であって、
第１の動作モードが選択されると、前記実行ユニットに冗長命令を提供することと、
第２の動作モードが選択されると、前記実行ユニットに冗長命令を提供しないことと
を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高可用性モードを有するハードウェア設定可能ＣＰＵに関する。
【背景技術】
【０００２】
加工寸法がますます小さくなり、且つ電圧レベルが低くなっている中央処理装置（ＣＰＵ）チップにますます多くのトランジスタが配置されるに従い、オンチップのフォールトトレランス機能の必要性が増大している。特に、浮動小数点演算ユニット（ＦＰＵ）等、ＣＰＵの実行ユニットは、ＣＰＵの広い面積を塞ぐため、潜在的な故障メカニズムの影響を受け易い。
【０００３】
通常、誤りを検出し訂正するために、誤り訂正符号化（ＥＣＣ）を使用することができる。ＥＣＣは、単一ビット誤り検出及び多ビット誤り検出を提供し、また単一ビット誤り訂正を提供する。しかしながら、ＥＣＣでは、特別なチップセットサポートと同様に、コンピュータシステムのＢＩＯＳユーティリティプログラムにおける設定が可能であることが必要である。さらに、ＦＰＵ等のＣＰＵ実行ユニットを通してＥＣＣをインプリメントすることは困難であることが多い。
【０００４】
ＣＰＵによるデジタル処理にフォールトトレランスを提供する従来の１つのソリューションは、複数のＣＰＵを含むコンピュータシステムを使用することである。たとえば、複数のＣＰＵを完全なロックステップで動作させることによって、それら複数のＣＰＵの計算において或るレベルのフォールトトレランスを達成することができる。すなわち、複数のＣＰＵの各々が同じ計算を実行し、その後その結果を比較することによって誤りが発生したか否かが判断される。しかしながら、こうしたソリューションは、パフォーマンスの観点から、ハードウェアを浪費する可能性があるだけでなく、通常追加のハードウェア及びサポートインフラストラクチャを必要とし、且つより多くの電力を消費するという点で、高価であることも多い。
【０００５】
ＣＰＵによるデジタル処理にフォールトトレランスを提供する別の従来のソリューションは、ソフトウェア検証である。ソフトウェア検証は、同じコンピュータにおいて又は異なるコンピュータにおいてプログラム全体を複数回実行し、その結果に誤りがないか比較することによって行われる。しかしながら、このソリューションは、より長いランタイムが必要であるか又は複数のコンピュータが必要である点において高価であることが多い。
【０００６】
他のソリューションは、プログラムコンパイラに対して、コンパイル時に、ＣＰＵにおける冗長な実行ユニットの動作を、実行ユニットからの結果を比較し誤りがないか試験するようにスケジュールさせることによって、この問題に対処する。しかしながら、これらのソリューションは、特別なコンパイラを使用することが必要である場合が多く、したがって、異なるコンパイラでコンパイルされたコードを、特別なコンパイラで再コンパイルしなければならない場合が多い。さらに、これらのソリューションでは、コンピュータが追加のフォールトトレランスを利用することができる前にコードを再コンパイルする必要がある。これには、冗長な実行ユニットの動作をスケジュールするため且つコードを再コンパイルするため、より長いランタイムが必要であるだけでなく、特別なコンパイラ等の追加のハードウェアも必要である。
【０００７】
さらに、すべての場合、フォールトトレランスを必要としないプログラムにおいてさえも、上記ソリューションにおける実行ユニットの出力を比較することにより、通常、パフォーマンスが犠牲になる。これは、上記ソリューションが通常、コンピュータシステムで実行されるすべてのプログラムのすべての命令に対してフォールトトレランスを提供するためである。その結果、フォールトトレランスを必要としないプログラムが、フォールトトレランスが機能している状態で実行されているため、コンピュータシステム全体が不必要に低速化する。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、高可用性モードを有するハードウェア設定可能ＣＰＵを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の一実施の形態は、同じタイプの複数の実行ユニットと、第１の動作モードと第２の動作モードとから選択するように動作可能な第１のレジスタとを具備し、第１の動作モード中は実行ユニットのうちの少なくとも１つを冗長実行ユニットとして利用し、第２の動作モード中は実行ユニットのいずれも冗長実行ユニットとして利用しないマイクロプロセッサを提供する。
【発明を実施するための最良の形態】
【００１０】
図１は、本発明の一実施形態を使用してもよいコンピュータ１０の図である。コンピュータ１０は、任意のタイプの汎用コンピュータ、ワークステーション又はパーソナルコンピュータであってもよく、入出力（Ｉ／Ｏ）部１４、マイクロプロセッサ又はＣＰＵ１６及びメモリ１８を有するコンピューティング回路１２を含んでもよい。Ｉ／Ｏ部１４は、キーボード及び他の入力デバイス２０又はこれらのいずれか（キーボード及び／又は他の入力デバイス２０）、ディスプレイ及び／又は他の出力デバイス２２、ハードドライブ等の１つ又は複数の固定記憶ユニット２４、及び／又はＣＤ−ＲＯＭドライブ等の着脱可能記憶ユニット２６に接続される。着脱可能記憶ユニット２６は、通常、ソフトウェアプログラム３０及び他のデータを含むデータ記憶媒体２８を読み出すことができる。
【００１１】
図２は、本発明の第１の実施形態による図１のマイクロプロセッサ１６の一部のブロック図である。マイクロプロセッサ１６はモードレジスタ３８を含み、モードレジスタ３８は、それに値を設定することにより、マイクロプロセッサ１６内のフォールトトレランス機能を選択的にオン及びオフにするために使用される。モードレジスタ３８によって、マイクロプロセッサ１６は、プログラムがフォールトトレランスを必要とする場合はフォールトトレラントモードで動作し、プログラムがフォールトトレランスを必要としない場合はパフォーマンスモードで動作することができる。その結果、マイクロプロセッサ１６は、コンピュータシステムを不必要に低速化することなくコンピュータシステムのフォールトトレランスを向上させることができる。これは、マイクロプロセッサを追加する、特別なコンパイラを設ける、又は実行時間が長くなるという犠牲を払うことなく達成される。
【００１２】
例示の目的で図２に示すコンポーネントには、命令フェッチユニット３２、命令キャッシュメモリ３４、命令デコード／発行３６、モードレジスタ３８、実行ユニット（ＦＰＵ）４０Ａ及び４０Ｂ、レジスタ４２、コンパレータ４４及び比較フラグ４６が含まれる。図２のこれらのコンポーネントの構成は単なる一例としての構成であり、実際のマイクロプロセッサは、通常、図示しない他の多数の部分を有する。図２に示す構成には２つのＦＰＵ４０Ａ及び４０Ｂがあるが、マイクロプロセッサにおいて、３つ以上のＦＰＵを有するか又はＦＰＵ以外の実行ユニットを有する他の構成をインプリメントしてもよい。
【００１３】
命令キャッシュ３４は、マイクロプロセッサ１６が頻繁に実行している命令を格納する。同様に、データキャッシュ（図示せず）は、マイクロプロセッサ１６が命令を実行するために頻繁にアクセスしているデータを格納してもよい。インプリメンテーションによっては、命令キャッシュ及びデータキャッシュを１つのメモリに結合してもよい。また、通常、マイクロプロセッサ１６により、ランダムアクセスメモリ（ＲＡＭ）、ディスクドライブ及び他の形態のデジタル記憶装置に対するアクセス（図示せず）も行われる。
【００１４】
メモリにおける命令のアドレスを、命令フェッチユニット３２によって生成してもよい。たとえば、命令フェッチユニット３２は、命令キャッシュ３４のアドレスに格納されている命令を読み出すために、命令キャッシュ３４内の開始アドレスから連続するアドレスを通して連続的にインクリメントするプログラムカウンタを含んでもよい。命令デコード／発行３６は、キャッシュ３４から命令を受け取り、それら命令をデコードし、且つ／又は実行させるためにＦＰＵ４０Ａ及び４０Ｂの一方又は両方に発行する。モードレジスタ３８は、マイクロプロセッサ１６がいずれのモードで動作しているかを確定する。ＦＰＵ４０Ａ及び４０Ｂを、実行の結果をマイクロプロセッサ１６の特定のレジスタ４２に出力するように構成してもよい。さらに、ＦＰＵ４０Ａ及び４０Ｂの出力は、コンパレータ４４に結合される。コンパレータ４４は、その２つの入力における値を比較し、その後、入力値が同じであるか又は異なっているかを示す値を比較フラグ４６に出力する。命令実行のためにオペランドを供給する回路等の他の回路は図示していない。
【００１５】
本発明の一実施形態によれば、図２の回路は、モードレジスタ３８を利用して、マイクロプロセッサ１６内のフォールトトレラント動作を選択的にオン及びオフにする。言い換えれば、モードレジスタ３８は、マイクロプロセッサ１６を、パフォーマンスモード（フォールトトレラント動作がオフにされている）又はフォールトトレラントモード（フォールトトレラント動作がオンにされている）のいずれかで実行するように選択的に設定する。フォールトトレラントモードを、高可用性（ＨＡ）モードと呼んでもよい。
【００１６】
たとえば、モードレジスタ３８が第１の値（たとえば論理「０」）に設定される場合、マイクロプロセッサ１６はパフォーマンスモードで動作し、そこではすべてのフォールトトレラント動作がオフにされることによりマイクロプロセッサ１６の速度が最大化される。このモードでは、コンパレータ４４及び比較フラグ４６は非活動化され、マイクロプロセッサ１６は、プログラムコンパイラ（図示せず）によってスケジュールされるようにＦＰＵ４０Ａ及び４０Ｂの両方を利用する。命令デコード／発行３６は、クロックサイクル中にＦＰＵ４０Ａのみに第１の命令を発行してもよく、又はクロックサイクル中にＦＰＵ４０Ａ及び４０Ｂの両方に並行して第１の命令及び第２の命令を発行してもよい。そして、ＦＰＵ４０Ａ及び４０Ｂの出力を、コンパレータ４４又は比較フラグ４６を待つ必要なく廃棄（retire）してもよい。
【００１７】
別法として、マイクロプロセッサ１６がパフォーマンスモードで動作している時、コンパレータ４４及び比較フラグ４６を活動化させてもよい。この場合、命令デコード／発行３６は、依然として、コンパイラによってスケジュールされるようにＦＰＵ４０Ａ及び４０Ｂの両方を利用する。しかしながら、マイクロプロセッサ１６は単に、コンパレータ４４からのいかなる結果も無視し、ＦＰＵ４０Ａ及び４０Ｂの出力を廃棄する前にいかなるタイプの誤り比較も実行しない。その結果、マイクロプロセッサ１６の速度が低下しない。
【００１８】
モードレジスタ３８が第２の値（たとえば、論理「１」）に設定されると、マイクロプロセッサ１６はＨＡモードで動作し、そこでは、フォールトトレラント動作がオンになることによりマイクロプロセッサ１６のフォールトトレランスが向上する。このモードでは、コンパレータ４４及び比較フラグ４６は活動化され、この時ＦＰＵ４０Ｂは、ＦＰＵ４０Ａに対して並列な冗長実行ユニットとして機能する。その結果、コンパイラが、マイクロプロセッサ１６によって第１の命令が実行されるようにスケジュールする場合、命令デコード／発行３６は、ＦＰＵ４０Ａと冗長ＦＰＵ４０Ｂとに第１の命令を発行する。すなわち、ＦＰＵ４０Ａ及びＦＰＵ４０Ｂの両方が同じ命令を実行する。そして、コンパレータ４４は、ＦＰＵ４０Ａ及び４０Ｂの出力を比較し、それにより、出力が一致すると、コンパレータ４４は、結果が正しいということを示す信号を比較フラグ４６に提供し、ＦＰＵの出力は廃棄される。ＦＰＵ４０Ａ及び４０Ｂの出力が一致しない場合、コンパレータ４４は、誤りがあるということを示す信号を比較フラグ４６に提供する。この時点で、命令デコード／発行３６からの命令を、ＦＰＵの結果が一致するまでＦＰＵ４０Ａ及び４０Ｂによって再実行してもよい。
【００１９】
別法として、コンパイラが、ＨＡモードにおいてマイクロプロセッサ１６が第１の命令及び第２の命令を並列に実行するようにスケジュールする場合、命令デコード／発行３６は、第１のクロックサイクル中にＦＰＵ４０Ａ及び冗長ＦＰＵ４０Ｂの両方に対して第１の命令を発行し、コンパレータ４４はＦＰＵの出力を比較する。そしてその直後に、命令デコード／発行３６は、第２のクロックサイクル中にＦＰＵ４０Ａ及び冗長ＦＰＵ４０Ｂの両方に第２の命令を発行し、コンパレータ４４はＦＰＵの出力を比較する。
【００２０】
図３は、本発明の第２の実施形態によるマイクロプロセッサ１６'の一部のブロック図である。マイクロプロセッサ１６'は、図２のマイクロプロセッサ１６に類似する。しかしながら、マイクロプロセッサ１６'は、マイクロプロセッサ１６'がＨＡモードで動作している時は冗長ＦＰＵとして活動化され、マイクロプロセッサ１６'がパフォーマンスモードで動作している時は非活動化される、少なくとも１つの追加のＦＰＵ４０Ｃを含む。冗長ＦＰＵ４０Ｃは、マイクロプロセッサ１６'に対してのみ「既知」であり、プログラムコンパイラ（図示せず）に対しては「不可視」である。このように、ＦＰＵ４０Ｃは、マイクロプロセッサ１６'が冗長計算を実行するために常に利用可能であり、コンパイラはＦＰＵ４０Ａ及び４０Ｂに対して完全にアクセスすることができる。図２のマイクロプロセッサ１６と比較したマイクロプロセッサ１６'の利点は、マイクロプロセッサ１６'がＨＡモードで動作している場合であっても、ＦＰＵ４０Ａ及び４０Ｂが単一クロックサイクル中に並列に異なる命令を実行することができることが多い、ということである。
【００２１】
別法として、マイクロプロセッサ１６'がパフォーマンスモードで実行している時、冗長ＦＰＵ４０Ｃ、コンパレータ４４及び比較フラグ４６もまた活動化されてもよい。この場合、命令デコード／発行３６は、依然としてＦＰＵ４０Ａ及び４０Ｂとともに冗長ＦＰＵ４０Ｃを利用する。しかしながら、マイクロプロセッサ１６'は、単に、コンパレータ４４からのいかなる結果も無視し、ＦＰＵ４０Ａ及び４０Ｂの出力を廃棄する前にいかなるタイプの誤り比較も実行しない。その結果、マイクロプロセッサ１６'の速度は低下しない。
【００２２】
図２及び図３を参照すると、モードレジスタ３８は、マイクロプロセッサ１６及び１６'がパフォーマンスモードで動作するかＨＡモードで動作するかをモードレジスタの値に基づいて確定する。しかしながら、モードレジスタ３８の値を複数の方法で設定してもよい。たとえば、オペレーティングシステム（ＯＳ）が、マイクロプロセッサ１６及び１６'のモードレジスタ３８の値を設定してもよい。ＯＳは、モードレジスタ３８に命令単位で又はプログラム単位で値を設定する時を確定してもよい。特に、ＯＳは、複数のプログラムの各々が実行している時、又はプログラムの組合せの各々が実行している時、マイクロプロセッサ１６及び１６'に対するモードレジスタ設定を指定するテーブルにアクセスすることができてもよい。その結果、ＯＳは、マイクロプロセッサ１６及び１６'がパフォーマンスモード又はＨＡモードで動作する時を自動的に確定することができる。
【００２３】
別法として、モードレジスタ３８の値を、ユーザ制御によって設定してもよい。ユーザが、ユーザインタフェースを介して、特定のプログラムにおいて、マイクロプロセッサ１６及び１６'がＨＡモード又はパフォーマンスモードのいずれかで動作する必要があると判断し、それに従ってユーザインタフェースを介してモードレジスタ３８に値を設定してもよい。さらに、ユーザは、ユーザインタフェースを介して、特定のプログラムに対してモードレジスタ設定を指定する上述したテーブルを変更してもよい。このように、ユーザは、手動でモードレジスタ３８の値を設定しＯＳを無視することにより、プログラムがＨＡモード又はパフォーマンスモードで強制的に実行されるようにすることができる。
【００２４】
代替の実施形態では、マイクロプロセッサ１６、１６'は、異なるレベルのＨＡ動作を組み込むために、モードレジスタ３８に加えて他のモードレジスタを含んでもよい。たとえば、第２のモードレジスタを使用して、すべてのデータに対し、又はマイクロプロセッサ１６及び１６'内のいくつかのユニットから来るデータに対し誤り訂正符号化（ＥＣＣ）をインプリメントしてもよい。第３のモードレジスタを使用して、すべてのデータに対し、又はマイクロプロセッサ１６及び１６'内のいくつかのユニットから来るデータに対しパリティ検査を再びインプリメントしてもよい。別々のモードレジスタを使用して独立して制御可能であることのほかに、これらの異なるレベルのＨＡ動作を、あらゆる組合せ又は組合せの構成要素においてインプリメントするように設計してもよい。
【００２５】
別の実施形態では、図１のコンピューティング回路１２は、複数のマイクロプロセッサを含んでもよい。たとえば、２つ以上のマイクロプロセッサを有するコンピューティング回路では、それらマイクロプロセッサのうちの１つを、ＨＡモードで動作するように設定してもよく、マイクロプロセッサのうちの別の１つを、パフォーマンスモードで動作するように設定してもよい。その結果、複数のプログラムが同時に実行しており、１つのプログラムがＨＡモードで実行し別のプログラムがパフォーマンスモードで実行する場合、ＯＳは適当なマイクロプロセッサに各プログラムを送出してもよい。同様に、単一プログラムが、ＨＡモードで実行されるＨＡ命令と、パフォーマンスモードで実行される他の命令とを含む場合、ＯＳは、適当なマイクロプロセッサに各タイプの命令を送出してもよい。これらの命令は異なるようにコード化されていないが、ＯＳは、いずれの命令がいずれのマイクロプロセッサに送出される必要があるかを認識する。この場合もまた、これを、特定のモードに対するいくつかのプログラム又は命令のセットに対応するテーブルを用いて行ってもよい。複数のマイクロプロセッサを含むこの実施形態では、マイクロプロセッサを、１つはＨＡモードで別のものはパフォーマンスモードであるように永久的に設定してもよい、ということが留意されるべきである。マイクロプロセッサがモードレジスタで設定可能であることは必ずしも必要ではない。
【００２６】
さらに図２及び図３を参照すると、マイクロプロセッサ１６及び１６'は、組込みハードウェアコンパレータ４４を使用して、実ＦＰＵの結果と冗長ＦＰＵの結果との比較を実行する。代替の実施形態では、マイクロプロセッサ１６及び１６'は、代りに、実ＦＰＵの命令及び冗長ＦＰＵの命令のすぐ後に続く比較命令を挿入してもよい。実ＦＰＵの結果は、比較命令が完了しいかなる誤りも通知されない状態になるまで廃棄されない。この比較命令には、コンパレータ等のいかなる追加のハードウェアも必要としないという利点があるが、マイクロプロセッサ１６及び１６'のパフォーマンスは低下する。
【００２７】
別の実施形態では、マイクロプロセッサ１６及び１６'は、命令フロー内の最適な位置に比較命令を挿入してもよい。この実施形態の利点は、比較命令が実ＦＰＵの命令と冗長ＦＰＵの命令とのすぐ後に続く必要はない、ということである。代りに、マイクロプロセッサ１６及び１６'は、比較命令を挿入する最もコストのかからない位置を確定するために複数の命令をプリフェッチすることができる。プリフェッチされた命令フロー内の位置のコストを、資源利用率、パフォーマンス及びカバレージの関数として確定してもよい。実ＦＰＵの結果は、比較命令が完了しいかなる誤りも通知されない状態になるまで廃棄されない。
【００２８】
別の実施形態では、マイクロプロセッサ１６及び１６'は、比較動作が完了する前に実ＦＰＵの結果を廃棄してもよい。これにより、ＦＰＵ命令の結果がそれら命令の完了時に直ちに廃棄されるため、マイクロプロセッサ１６及び１６'の処理速度が向上する。比較が完了した時にいかなる誤りも検出されない場合、命令フローは通常通りに継続する。しかしながら、誤りが検出された場合、システムは既知の「よい」状態まで戻り、そこから処理を再開する。比較から誤りが検出される頻度が低いと想定すると、この実施形態は、上記２つの実施形態よりパフォーマンスの低下が少ない可能性が高い。
【００２９】
したがって、ＨＡモードで動作しているマイクロプロセッサ１６及び１６'を利用するために、標準プログラムを書き換えるか又は再コンパイルする必要がない。ＨＡモードにある間、マイクロプロセッサ１６及び１６'はハードウェアにおいてフォールトトレラント動作をインプリメントし、その結果、これらの動作はソフトウェアプログラムに対して透過的である。さらに、ＨＡモード又はパフォーマンスモードにあるマイクロプロセッサ１６及び１６'の動作が設定可能であるため、同じマイクロプロセッサ及び同じプログラムを含む同じコンピュータシステムにおいてパフォーマンスを高く維持し、且つフォールトトレランスを向上させ続けることができる。
【００３０】
上述したことから、本明細書において本発明の特定の実施形態を例示の目的で説明したが、本発明の精神及び範囲から逸脱することなくさまざまな変更を行うことができる、ということが理解されよう。
【図面の簡単な説明】
【００３１】
【図１】本発明の一実施形態を使用してもよいコンピュータの図である。
【図２】本発明の第１の実施形態によるマイクロプロセッサの一部のブロック図である。
【図３】本発明の第２の実施形態によるマイクロプロセッサの一部のブロック図である。
【符号の説明】
【００３２】
１０・・・コンピュータ
１２・・・コンピューティング回路
１４・・・入出力（Ｉ／Ｏ）部
１６・・・マイクロプロセッサ
１８・・・メモリ
２０・・・入力デバイス
２２・・・出力デバイス
２４・・・固定記憶ユニット
２６・・・着脱可能記憶ユニット
２８・・・データ記憶媒体
３０・・・ソフトウェアプログラム
３２・・・命令フェッチユニット
３４・・・命令キャッシュメモリ
３６・・・命令デコード／発行
３８・・・モードレジスタ
４０・・・ＦＰＵ
４２・・・レジスタ
４４・・・コンパレータ
４６・・・フラグ
【図１】
2007109224.tif 000003
【図２】
2007109224.tif 000004
【図３】
2007109224.tif 000005