(57)【要約】  マイクロ命令を実行するマイクロコード命令キャッシュと組み合わせた有限状態機械を含むマイクロプロセッサアーキテクチャである。通常、頻繁に繰り返してループされた演算の短いシーケンスを生じるマイクロ命令が有限状態機械（ＦＳＭ）で実施される。ＦＳＭを使用することは、キャッシュまたはレジスタセットで命令をループさせるよりもよりエネルギー効率が良い。さらに、キャッシュまたは他のメモリ指向アプローチの柔軟性は、マイクロコード命令を実行する際に、依然として利用可能である。マイクロ命令は、ＩＤタグによって（キャッシュ演算とは対する）ＦＳＭ演算として特定される。
2005513612.tif 000002
【特許請求の範囲】
【請求項１】
マイクロ命令に応答して、演算を実行するデジタルプロセッサであって、該デジタルプロセッサは、
実行されるべき該演算に関連するデータを格納するメモリと、
該演算に関連する関数を実行する有限状態機械（ＦＳＭ）と、
レジスタにデータを提供して、該マイクロ命令に応答して該ＦＳＭの実行を開始する制御回路と
を含む、デジタルプロセッサ。
【請求項２】
前記メモリに格納された前記データに繰り返してアクセスするループ制御回路をさらに含む、請求項１に記載のデジタルプロセッサ。
【請求項３】
前記制御回路は、マイクロ命令のうちの少なくとも一部が前記ＦＳＭによって実施されているかを決定するＩＤ検出回路を含む、請求項１に記載のデジタルプロセッサ。
【請求項４】
複数のＦＳＭをさらに含み、前記制御回路は、該複数のＦＳＭのうちの１つ以上の演算を選択的に呼び出すＦＳＭ実行回路を含む、請求項１に記載のデジタルプロセッサ。
【請求項５】
設定可能なＦＳＭをさらに含み、前記制御回路は、前記マイクロ命令に関連する所定の関数のために設定されるように該設定可能なＦＳＭを導く設定回路を含む、請求項１に記載のデジタルプロセッサ。
【請求項６】
前記メモリは、レジスタを含む、請求項１に記載のデジタルプロセッサ。
【請求項７】
前記メモリは、マイクロ格納装置を含む、請求項１に記載のデジタルプロセッサ。
【請求項８】
前記メモリは、キャッシュを含む、請求項１に記載のデジタルプロセッサ。
【請求項９】
マイクロ命令を実行するコンピュータプロセッサであって、該コンピュータプロセッサは、
有限状態機械（ＦＳＭ）と、
反復レジスタと、
該ＦＳＭおよび該反復レジスタを制御して、該マイクロ命令のうちの少なくとも１つを実施する制御回路と
を含む、コンピュータプロセッサ。
【請求項１０】
前記ＦＳＭおよび前記反復レジスタは、同時に演算される、請求項９に記載のコンピュータプロセッサ。
【請求項１１】
マイクロ命令を実行する方法であって、該方法は、有限状態機械と反復レジスタとの両方を用いて、該マイクロ命令によって示された関数のうちの少なくとも一部を１つを実施するステップを包含する、方法。
【発明の詳細な説明】
【背景技術】
【０００１】
（発明の背景）
本出願は、概して、デジタルプロセッシングに関し、より詳細には、プロセッサの電力消費を減少させるデジタルプロセッサマイクロアーキテクチャに関する。
【０００２】
マイクロプロセッサ設計の電力消費を減少させることは、より多くの携帯用デジタル処理アプリケーション（例えば、セルラー電話、パーソナルデジタルアシスタント（ＰＤＡ）、ポケットブックコンピュータ）の増加が評判となるにつれて、より重要となっている。また、デジタルプロセッサがより高速になり、プロセス技術がより高密度の設計を可能にするにつれて、新しいプロセッサ設計で現れる実効キャパシタンス、Ｃｅｆｆが増加する。この増加したＣｅｆｆ実効キャパシタンスは、所望の速度を達成するために異常に高い電力量を必要とし得る。プロセッサのマイクロ格納装置、キャッシュ、バッファ、レジスタおよび他の領域で重要なランダムアクセスメモリ（ＲＡＭ）および読み出し専用メモリ（ＲＯＭ）を含む従来のプロセッサのアーキテクチャは、実効Ｃｅｆｆにより妨げられる高速スイッチングの必要条件により、より多くの電力を必要とすることが、近年予測されている。
【０００３】
従来では、プロセッサレベルでメモリを豊富に用いることが望ましいとされていた。プログラムのストアにより、プロセッサは、更新された命令セット機能により再設定され得る。マイクロプロセッサ命令の設計、すなわち「命令セット」は、ハードウェアの設計に大きな影響を与えることない程度に変更され得る。マイクロ命令キャッシュを用いることによって、何回も繰り返す必要のある命令は、実行されるループ内の命令を高速キャッシュに置くことによって、より高速にアクセス可能となる。しかし、大容量のメモリおよびメモリキャッシュを用いることはまた、セルアレイ、制御ライン、デコードロジック等を必要し、その動作がＣｅｆｆによって非常に大きく影響を受ける。概して、格納装置へのアクセスは、中央処理演算装置（ＣＰＵ）命令の実行に所望のスピードにおいて大きなオーバーヘッドを有する。
【０００４】
従来技術は、マイクロ命令または命令キャッシュを極端に小さくすることによって、および、大きく、複雑な命令例えば、ＶＬＩＷ（ｖｅｒｙ  ｌｏｎｇ  ｉｎｓｔｒｕｃｔｉｏｎ  ｗｏｒｄ）またはＣＩＳＣ（Ｃｏｍｐｌｅｘ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ）アプローチを用いることによって、最近のプロセッサアーキテクチャ設計においてメモリデバイスの使用を最小化することを試みてきた。これらのアプローチは、大きな命令ワード（ｌａｒｇｅ  ｉｎｓｔｒｕｃｔｉｏｎ  ｗｏｒｄ）を用い、そうでなければ、複数のより単純な命令を必要とする１つ以上の関数を実行し得る。極端にいうと、単純な複合マイクロ命令は、１つのループの全体であり得る。従って、マイクロ命令を小さな１つのワードキャッシュに保ち、かつ、同じマイクロ命令を何回も実行することによって、頻繁に実行されるループおよび関数が実効され得る。しかし、レジスタ、メモリまたはキャッシュをループさせる単純な演算は、レジスタメモリ、制御メモリおよび関連するサポート回路内の多くのトランジスタでの信号の高速スイッチングを必要とする。このようなアプローチは、Ｃｅｆｆが大きく、異常である。より多くの回路およびチップを制御するためにトランジスタの密度をより大きくするという傾向は、Ｃｅｆｆを急速に増加させる。マイクロプロセッサの他の局面は、レジスタおよびメモリ指向のアプローチをさらに妨げ得る。
【０００５】
従って、従来技術の１つ以上の欠点を軽減するシステムを提供することが望ましい。
【発明の開示】
【課題を解決するための手段】
【０００６】
（発明の要旨）
本発明の１つの実施形態は、マイクロコード命令（「マイクロ命令」）キャッシュとの組み合わせで有限状態機械を用いる。通常、頻繁にループされる演算の短いシーケンスを生じる選択された命令は、有限状態機械（ＦＳＭ）で実装される。ＦＳＭを使用することは、キャッシュまたはレジスタセットの命令をループさせることよりもよりエネルギー効率が良い。さらに、マイクロコード命令の実行において、キャッシュ、または他のメモリ指向アプローチの柔軟性が依然として利用可能である。
【０００７】
より好ましい実施形態では、１つのマイクロ命令または多くのマイクロ命令は、ＩＤタグによって（キャッシュ演算に対抗する）ＦＳＭ演算として識別される。マイクロ命令の他のフィールドは、用いるＦＳＭ回路のタイプを特定し、マイクロ命令を実施するためのＦＳＭの設定を導き、そして、特定のフィールドが（例えば、キャッシュまたはレジスタ内の）１つ以上のＦＳＭで、および／または、メモリ指向演算において実装されるべきことを示すために用いられ得る。
【０００８】
１つの実施形態では、本発明は、マイクロ命令に応答して、演算を実行するデジタルプロセッサを提供する。このデジタルプロセッサは、実行されるべき演算に関連するデータを格納するメモリと、この演算に関連する関数を実行する有限要素機械（ＦＳＭ）と、データをこのレジスタに提供し、該マイクロ命令に応答して該ＦＳＭの実行を開始する制御回路とを含む。
【発明を実施するための最良の形態】
【０００９】
図１は、本発明の好ましい実施形態を示す。
【００１０】
図１において、マイクロプロセッサアーキテクチャ１００は、マイクロプロセッサアーキテクチャのコンポーネントによる実行のためのマイクロ命令を格納するマイクロ格納装置１０２を含む。当該分野には公知であるように、そのような命令は、メモリおよびレジスタアクセス、論理的および数学的データ演算、シーケンス演算、および、デジタルプロセシングシステムのハードウェアに指示するシステムメモリ（図示せず）に格納された命令に従って他の演算に対して、機能を実行させるように導く。
【００１１】
マイクロ格納装置１０２は、カレントマイクロ命令の位置にアクセスするためにプログラムカウンタによってインデックス付けされる。このカレントマイクロ命令のデータは、カレント命令１０６として出力される。なお、別々のレジスタまたはラッチがこのカレント命令を保持するために用いられてもよく、データが単純にマイクロ格納装置から直接出力されてもよい。マイクロ命令にアクセスし、これらのマイクロ命令をアクセスしかつ操作する多くのアプローチが可能であり、これらは本発明の範囲内である。
【００１２】
カレントマイクロ命令は、制御回路１０８によって用いられる。この制御回路１０８は、有限状態機械（ＦＳＭ）１１２、ＦＳＭ設定１１０、ならびに、レジスタ１１４およびループ制御１１６等のメモリ指向回路に、カレントマイクロ命令に従って機能を実行させるように導く。また、制御回路１０８は、システムの他のコンポーネント（例えば、プログラムカウンタ１０４、演算算術／論理ハードウェアおよびシーケンスハードウェア１１８、ならびにシステムメモリアクセス等）を導き、または、制御するために用いられ得る。
【００１３】
レジスタ１１４およびループ制御１１６は、当該分野で公知のマイクロ命令ループコンポーネントであり得る。他の標準的なアーキテクチャコンポーネントも用いられ得る。好ましい実施形態では、制御回路１０８は、カレント命令、またはカレント命令の一部がＦＳＭプロセシングを用いる際に適切であるか、または、指定されているかどうかを判定する。適切である場合、制御回路１０８は、ＦＳＭ１１２をカレント命令のデータに従って用いるように導く。ＦＳＭが設定されている用途では、ＦＳＭ設定回路１１０は、所望なように、ＦＳＭ１１２を予め設定するために用いられ得る。なお、任意の数の設定可能な、または固定したＦＳＭが用いられてもよい。図示を簡単にするために、図１では、ＦＳＭを１つだけ示している。
【００１４】
制御回路１０８は、所望なように、様々な様態で実施され得る。例えば、単純な実施では、制御回路は、カレント命令の中の（または、マイクロ格納装置からの）制御信号およびデータを、適切なコンポーネント（例えば、ＦＳＭ１１２またはレジスタ１１４）にハードワイヤルーティングすること以上のものを必要としない。他の実施は、マイクロ命令からの情報をより柔軟に制御、生成、処理、モニタ等を行い、そして、その情報を用いてコンポーネントを制御するために、マルチプレクサ、ゲート、または、他のデバイスを用いることができる。
【００１５】
なお、メモリ指向回路は、１つのレジスタおよびループ制御以外であってもよい。例えば、複数のレジスタが用いられてもよい。例えば、メモリバンクが用いられてもよく、高速メモリがキャッシュなどとして用いられてもよい。概して、ＦＳＭは、さらなるＦＳＭを含む、あらゆるタイプのコンピュータアーキテクチャとの組み合わせで用いられてもよい。
【００１６】
ＦＳＭ設定回路１１０は、より早い命令によって呼び出されて、異なるマイクロ命令によって後に用いられるためにＦＳＭを準備し得る。あるいは、命令の一部が設定回路を介してＦＳＭの設定を導くための用いられ得、一方、同じ命令の他の部分がＦＳＭの実行を制御することを支援する。いくつかの用途では、ＦＳＭの制御は、実行を開始するためにＦＳＭを単に呼び出すこと以上に関わる必要はない。
【００１７】
図２Ａ〜Ｃは、異なるタイプのＦＳＭ制御マイクロ命令を示す。
【００１８】
図２Ａでは、マイクロ命令２００は、ＣＰＵ回路の演算を導くための典型的なフィールド２０４を含む。典型的なフィールドは、例えば、ネクストアドレスフィールド、算術論理ユニット（ＡＬＵ）制御フィールド、レジスタアクセスフィールド、メモリアクセス、アクセスモード等であってもよい。さらに、２０２のＦＳＭ制御ビットＦＳＭＣＴＬが予約されている。ＦＳＭＣＴＬは０にセットされると、本発明のＦＳＭの特徴は呼び出されない。この場合、ＣＰＵは、従来のプロセッサとして動作し得る。しかし、ＦＳＭＴＬが１にセットされる場合、フィールド２０４、および次の命令の次のフィールドは、ＦＳＭ処理を呼び出し得る。
【００１９】
図２Ｂは、ＦＳＭ制御がイネーブルされる場合のマイクロ命令フォーマットを示す。
【００２０】
図２Ｂでは、マイクロ命令２００は、ＦＳＭ制御ビット２０２を１にセットする。これは、ＦＳＭＣＴＬ制御フィールド２０６をイネーブルするか、そうでなければ、他の目的のために用いられる。マイクロ命令セットの設計に応じて、２０８等のさらなるフィールドは、ＦＳＭ制御のために用いられ得る。多くの異なる実施形態では、マイクロ命令（単数または複数）がインタプリタされて、ＦＳＭをいつ制御するのか、およびどのように制御するのかを決定する多くの異なる構成がある。例えば、他のアプローチは、ＦＳＭ制御用の固定した、所定のフィールドを用い得ることにより、ＦＳＭ制御ビットが必要ではない。ＦＳＭ用の設定情報は、これらのフィールドに格納され得る。
【００２１】
図２Ｃは、複数の命令が用いられる場合のＦＳＭ制御モードを示す。
【００２２】
図２Ｃでは、ＦＳＭ制御ビットは１にセットされる。その後、ＦＳＭＣＴＬフィールド２１２は、ワード２００に続く多くのマイクロ命令ワードがＦＳＭ制御のためにどのように用いられるべきかを示している。この例では、マイクロ命令２００の残りのフィールド、および次の２つのマイクロ命令２１４および２１６がＦＳＭに関する目的のためにそれら全体で用いられ得る。
【００２３】
他の実施形態では、ＦＳＭ制御ビットは、デジタルプロセシングシステム内のハードウェアによって生成される信号から導かれてもよいし、外部ソースから得られてもよいし、外部ソースから導かれてもよい。「電力節約モード」信号を図１の制御回路１０８に提供することが１つの改良点である。オンであるときには、制御回路１０８は、可能な限り多くのＦＳＭ実行ユニットハードウェアを利用することを試みる。オフであるときには、実行速度に重点を置かれる。ある１つのアプローチは、実行される異なる関数にパラレルな命令を提供することである。マイクロ命令の一方のセットはＦＳＭ指向であり、他方のセットは非ＦＳＭ指向である。制御回路は、電力節約モードによって導かれるように、所望の（ＦＳＭ、または非ＦＳＭ）命令をマイクロ格納装置から選択的に取り出し得る。ＦＳＭと通常のマイクロ格納演算との両方は、並行に実行していてもよい。
【００２４】
図３は、図１のＦＳＭ１１０等のＦＳＭ回路が呼び出されるかどうかを決定するルーチンの基本的なステップを示すフローチャートである。
【００２５】
図３では、フローチャート３００のルーチンは、ステップ３０２で開始する。ステップ３０４では、実行されるべき次のマイクロ命令が得られる。ステップ３０６では、ＦＳＭモード実行が所望であるか、導かれるかに関して決定がなされる。上述したように、この決定は、得られたマイクロ命令自体、異なるマイクロ命令、または、制御信号の情報からなされ得る。所望ではない場合、非ＦＳＭの様態でマイクロ命令の関数または演算を実行するために、ステップ３０８が実行される。
【００２６】
しかし、ステップ３０６で、ＦＳＭモード実行を用いることが所望である場合、ＦＳＭモードが利用可能であるかどうかをチェックするために、ステップ３１０が次に実行される。たとえ所望であるとしても、ＦＳＭモードは、ＦＳＭ実行ユニット（図１の１１２）の有用性不足、または他のリソース不足を含む様々な理由により利用可能ではない場合もある。二重セットのマイクロ命令が用いられて、同じ演算に対してＦＳＭまたは非ＦＳＭモードを可能にする、ある実施形態では、全ての演算に二重ＦＳＭマイクロ命令が提供され得ないために、ＦＳＭモードは、実行可能ではない。ＦＳＭモードが可能ではない場合に、ステップ３０８は、非ＦＳＭモードでマイクロ命令の演算を実行するように実行される。
【００２７】
ＦＳＭモードが可能である場合、ステップ３１２が実行されて、設定データが必要とされるかどうかをチェックする。必要とされる場合、ステップ３１４は、設定データを得る。設定データは、マイクロ命令、システム内のいずれかの場所にあるデータ、または、頻繁に用いられるタスク用のハードワイヤの回路によって提供され得る。設定後、または、設定は必要ではないと判定された場合、実行はステップ３１６に進む。ステップ３１６では、マイクロ命令は、ＦＳＭモードで実行され、ルーチンがステップ３１８で終了する。
【００２８】
なお、図３のステップによって記載された機能は、多くの異なる様態で達成され得る。図３に示されたステップにステップが追加されてもよいし、図３に示されたステップからステップを削除してもよい。このステップは修正され得、本発明の範囲を逸脱することなく、シーケンスが変化され得る。この機能は、ハードウェア、ソフトウェア、または両者の組み合わせによって達成され得る。
【００２９】
本発明が上記の特定の実施形態に関して記載されてきたが、これらの実施形態は、本発明の単なる例示であって、制限するものではない。例えば、たとえ、本発明の局面が電力消費を有利にも減少させることを説明していたとしても、本発明は、他の実行ユニットと共にＦＳＭを用いることが他の理由から望ましい設計に適用され得る。いくつかの応用では、電力消費が実際に増加し得る。例えば、ある設計における面積を減少させることが達成され得、より高速の特定のマイクロ命令の実装が実現され得（結果的に高速性能である）、マイクロ命令の長さ、複雑さ、編成、実行等において利点が得られ得る。
【００３０】
ＦＳＭ実行と非ＦＳＭ実行とは区別されてきたが、これらの用語は、特別のＦＳＭ実行ユニット回路を用いるか、特定の命令、命令のセットまたは命令の一部用のこのような回路を用いないかのいずれかを意味することを意図している。用語「非ＦＳＭ」、または類似のものは、ＦＳＭが用いられないことを意味していない。「ＦＳＭ」は、ＦＳＭ回路のみが用いられることも意味していない。例えば、非ＦＳＭは、なおＦＳＭ回路を用いるが、図１のＦＳＭ１１２として図示される特定ＦＳＭ回路ではない。当該技術分野では、ＦＳＭは多くの異なる機能を実施するように用いられる設計アプローチである。例えば、ＦＳＭが制御回路１０８およびＡＬＵハードウェア／シーケンサ１１８で用いられ得るように、ＦＳＭを用いて、制御信号を生成することがよくある。ＦＳＭ実行ハードウェアを用いること、または用いないことに関する本明細書中の説明は、マイクロ命令のフィールド、制御信号、あるいは、他のコンポーネント、または本明細書中で説明されるか暗示されたアプローチに従って選択可能である専用のＦＳＭ回路を含む。専用回路のタイプは、幅広く変化し得る。同様の専用回路は、異なる命令に対して、または、後の時間に実行される同じ命令に対してさえも用いられる必要はない。
【００３１】
従って、本発明の範囲は、添付の特許請求の範囲によってのみ決定されるべきである。
【図面の簡単な説明】
【００３２】
【図１】図１は、本発明の基本的な要素を示す。
【図２Ａ】図２Ａは、マイクロ命令のＦＳＭ制御指示表示の第１の図である。
【図２Ｂ】図２Ｂは、マイクロ命令のＦＳＭ制御指示表示の第２の図である。
【図２Ｃ】図２Ｃは、マイクロ命令のＦＳＭ制御指示表示の第３の図である。
【図３】図３は、ＦＳＭ回路が呼び出されるかどうかを判定するルーチンの基本的なステップのフローチャートである。
【図１】
2005513612.tif 000003
【図２Ａ】
2005513612.tif 000004
【図２Ｂ】
2005513612.tif 000005
【図２Ｃ】
2005513612.tif 000006
【図３】
2005513612.tif 000007
【国際調査報告】
2005513612.tif 000008
2005513612.tif 000009
2005513612.tif 000010
2005513612.tif 000011
2005513612.tif 000012