(57)【特許請求の範囲】
【請求項１】
命令を処理するように構成されたパイプライン化された複数の機能ユニットと、
前記機能ユニットに命令をディスパッチするように構成されたディスパッチ・ユニットと、
前記機能ユニットのうちの少なくとも１つの機能ユニットを有する第１のグループに関連づけられた精度モード表示器メモリと
ディスパッチする新しい命令の精度を前記精度モード表示器メモリによって表示された精度と比較するように構成された比較器と、
前記新しい命令が前記精度モード表示器メモリによって表示された精度と一致しない精度を有する場合に前記新しい命令をストールするように構成されたストール論理回路とを備えたマイクロプロセッサ。
【請求項２】
機能ユニットの前記第１のグループに単精度命令がディスパッチされる場合に前記精度モード表示器メモリを単精度表示に設定し、機能ユニットの前記第１のグループに多倍精度命令がディスパッチされる場合に前記精度モード表示器メモリを多倍精度表示に設定するように構成された設定論理回路をさらに備える請求項１に記載のマイクロプロセッサ。
【請求項３】
前記多倍精度命令が倍精度命令である請求項２に記載のマイクロプロセッサ。
【請求項４】
前記多倍精度命令が４倍精度命令である請求項２に記載のマイクロプロセッサ。
【請求項５】
前記ディスパッチ・ユニットが、
レジスタ指示が単精度データのためのものであるか、多倍精度データのためのものであるかを考慮せずに、ディスパッチする新しい命令のレジスタ指示を機能ユニットの前記第１のグループ内の命令のレジスタ指示と比較することによってデータ依存関係を検査するように構成された検査論理回路をさらに備える請求項１に記載のマイクロプロセッサ。
【請求項６】
各エントリが多倍精度オペランドまたは複数の単精度オペランドを保持する複数のエントリを有するレジスタ・ファイルをさらに備える請求項１に記載のマイクロプロセッサ。
【請求項７】
前記精度モード表示器メモリが、単精度か倍精度かを表示する第１のビットと、機能ユニットの前記第１のグループにアクティブで有効な命令が入っていないことを表示する第２のビットとを含む２ビット・レジスタを備える請求項１に記載のマイクロプロセッサ。
【請求項８】
前記機能ユニットのうちの少なくとも１つの機能ユニットを有する第２のグループと、
レジスタ指示が単精度命令と多倍精度命令との間で重なりあっているかどうかを解析することによって機能ユニットの前記第２のグループにディスパッチする命令のデータ依存関係を判断するように構成された依存関係論理回路と
をさらに備える請求項１に記載のマイクロプロセッサ。
【請求項９】
機能ユニットの前記第２のグループがロードおよびストア機能ユニットである請求項８に記載のマイクロプロセッサ。
【請求項１０】
前記機能ユニットのうちの少なくとも１つの機能ユニットの最後にある完了ユニットと、前記完了ユニットに供給されるデータの精度を検査せずに機能ユニットの前記第１のグループからのデータを使用して前記完了ユニットを迂回するように構成されたバイパス論理回路とをさらに備える請求項１に記載のマイクロプロセッサ。
【請求項１１】
命令を処理するように構成された複数のパイプライン機能ユニットと、
前記機能ユニットに命令をディスパッチするように構成されたディスパッチ・ユニットと、
前記機能ユニットのうちの少なくとも１つの機能ユニットを有する第１のグループに関連づけられた精度モード表示器メモリと、
機能ユニットの前記第１のグループに単精度命令がディスパッチされる場合に前記精度モード表示器メモリを単精度表示に設定し、機能ユニットの前記第１のグループに多倍精度命令がディスパッチされる場合に前記精度モード表示器メモリを多倍精度表示に設定するように構成された設定論理回路と、
ディスパッチする新しい命令の精度を前記精度モード表示器メモリによって表示された精度と比較するように構成された比較器と、
前記新しい命令が前記精度モード表示器メモリによって表示された精度と一致しない精度を有する場合に前記新しい命令をストールするように構成されたストール論理回路と、
各エントリが多倍精度オペランドまたは複数の単精度オペランドを保持する複数のエントリを有するレジスタ・ファイルと、
レジスタ指示が単精度データのためのものであるか多倍精度データのためのものであるかを考慮せずに、ディスパッチする新しい命令の前記レジスタ・ファイル内のレジスタ指示を機能ユニットの前記第１のグループ内の命令のレジスタ指示と比較することによってデータ依存関係を検査するように構成された検査論理回路と
を備えるマイクロプロセッサ。
【請求項１２】
前記精度モード表示器メモリが、単精度か倍精度かを表示する第１のビットと、機能ユニットの前記第１のグループにアクティブで有効な命令が入っていないことを表示する第２のビットとを含む２ビット・レジスタを備えることを特徴とする請求項１１に記載のマイクロプロセッサ。
【請求項１３】
命令を処理するように構成された複数のパイプライン機能ユニットと、
前記機能ユニットに命令をディスパッチするように構成されたディスパッチ・ユニットと、
前記機能ユニットのうちの少なくとも１つの機能ユニットから成る第１のグループに関連づけられた精度モード表示器メモリと、
機能ユニットの前記第１のグループに単精度命令がディスパッチされる場合に前記精度モード表示器メモリを単精度表示に設定し、機能ユニットの前記第１のグループに多倍精度命令がディスパッチされる場合に前記精度モード表示器メモリを多倍精度表示に設定するように構成された設定論理回路と、
ディスパッチする新しい命令の精度を前記精度モード表示器メモリによって表示された精度と比較するように構成された比較器と、
前記新しい命令が前記精度モード表示器メモリによって表示された精度と一致しない精度を有する場合に前記新しい命令をストールするように構成されたストール論理回路と、
各エントリが多倍精度オペランドまたは複数の単精度オペランドを保持する複数のエントリを有するレジスタ・ファイルと、
レジスタ指示が単精度データのためのものであるか多倍精度データのためのものであるかを考慮せずに、ディスパッチする新しい命令の前記レジスタ・ファイル内のレジスタ指示を機能ユニットの前記第１のグループ内の命令のレジスタ指示と比較することによってデータ依存関係を検査するように構成された検査論理回路と、
前記機能ユニットのうちの少なくとも１つの機能ユニットから成る第２のグループと、
レジスタ指示が単精度命令と多倍精度命令との間で重なりあっているかどうかを解析することによって機能ユニットの前記第２のグループにディスパッチする命令のデータ依存関係を判断するように構成された依存関係論理回路と
を備えるマイクロプロセッサ。
【請求項１４】
複数のパイプライン機能ユニット内の命令を処理するステップと、
前記機能ユニットに命令をディスパッチするステップと、
前記機能ユニットのうちの少なくとも１つの機能ユニットかを有する第１のグループに関連づけられた精度モード表示器メモリを設定するステップと
ディスパッチする新しい命令の精度を前記精度モード表示器メモリによって表示された精度と比較するステップと、
前記新しい命令が前記精度モード表示器メモリによって表示された精度と一致しない精度を有する場合に前記新しい命令をストールするステップと
を含むマイクロプロセッサを動作させる方法。
【請求項１５】
機能ユニットの前記第１のグループに単精度命令がディスパッチされる場合に前記精度モード表示器メモリを単精度表示に設定するステップと、機能ユニットの前記第１のグループに多倍精度命令がディスパッチされる場合に前記精度モード表示器メモリを多倍精度表示に設定するステップとをさらに含む請求項１４に記載の方法。
【請求項１６】
前記多倍精度命令が倍精度命令であることを特徴とする請求項１５に記載の方法。
【請求項１７】
前記多倍精度命令が４倍精度命令であることを特徴とする請求項１５に記載の方法。
【請求項１８】
レジスタ指示が単精度データのためのものであるか多倍精度データのためのものであるかを考慮せずに、ディスパッチする新しい命令のレジスタ指示を機能ユニットの前記第１のグループ内の命令のレジスタ指示と比較することによってデータ依存関係を検査するステップをさらに含む請求項１４に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数機能ユニットであるパイプライン・マイクロプロセッサにおいてデータ依存関係を判断する機構に関し、具体的には単精度レジスタと倍精度レジスタの両方が同じレジスタ・ファイルを使用する機構に係わる。
【０００２】
【従来の技術】
マイクロプロセッサは、整数形式または浮動小数点形式の演算および算術演算を行う。浮動小数点命令は、固定部分と指数とを含み、時には別個の浮動小数点コプロセッサで処理されたり、浮動小数点演算がマイクロプロセッサ自体で行われたりする。
【０００３】
整数オペランドまたは浮動小数点オペランドは単精度、倍精度、または４倍精度である場合がある。たとえば、１つの単精度形式は３２ビットであり、その場合、倍精度形式は６４ビットである。６４ビット幅の単一のレジスタ・ファイルが使用されることが多い。単精度データを記憶する場合、各ラインに２つのデータを記憶することができる。一方、倍精度の場合は、各ラインに１つのデータが記憶される。したがって、使用モードによってレジスタ指示が重なる可能性がある。
【０００４】
複数の機能ユニットであるパイプライン・プロセッサでは、ディスパッチ・ユニットが適切な機能ユニットに命令をディスパッチする。これを行う前に、ディスパッチ・ユニットはデータおよび制御の依存関係を検査して、ディスパッチする新しい命令が、未解決命令のうちの１つによって使用されているのと同じレジスタを必要としていないかどうかを調べる。レジスタ指示が重なり合い、単精度数値と倍精度数値のどちらに関連づけられているかによって異なるものを意味する場合があるため、この検査は複雑になる。
【０００５】
【発明が解決しようとする課題】
したがって、パフォーマンスを低下させることなくディスパッチ論理回路におけるデータ依存関係論理回路を単純化することが望ましいと考えられる。
【０００６】
【課題を解決するための手段】
本発明は、大部分の機能ユニットに対して、単精度演算と倍精度演算の両方が同時にパイプライン内にあることがまれであると認識している。さらに、本発明は、それらの機能ユニット用のレジスタ指示が単精度であるか倍精度であるかを検査する論理回路を省く。その代わりに、パイプライン内の未解決命令が単精度と倍精度のどちらであるかを示すようにモード表示器を設定する。まれに精度の変化が発生した場合、その命令はパイプラインが空になるまでディスパッチされない。したがって、データ依存関係検査論理回路は、単精度であるか倍精度であるかがわからなくてもレジスタ指示を比較することができる。
【０００７】
一実施態様では、単精度と倍精度の間の変化がより頻繁な可能性がある機能ユニットには、その２つを区別する論理回路を設け、その結果をディスパッチ・ユニット内のデータ依存関係検査論理回路に供給する。具体的には、ロード／ストア機能ユニットを使用する演算では単精度と倍精度の間の変化がより頻繁であるため、ロード／ストア機能ユニットにこの論理回路を設ける。
【０００８】
本発明の他の実施態様では、それぞれのレジスタ指示が単精度か倍精度かを検査する論理回路を設けずに完了ユニットを迂回することができる。これは、モード表示器が最初から機能ユニット・パイプライン内での単精度と倍精度の混在を防止するので可能である。かくして、この付加的論理回路が不要になる。しかし、ロード／ストア・ユニットにはこのような論理回路を設ける。
【０００９】
好ましい実施態様では、２ビット・レジスタを使用してモードを示す。第１のビットは単精度か倍精度かを示す。第２のビットはパイプラインが空かどうかを示す。一実施態様では、ロード／ストア・ユニット以外のすべての機能ユニットに単一のモード表示器を使用する。一実施態様では、モード表示器は空状態に遷移してからでなければ単精度と倍精度の切換えを行うことができない。この制約は、切換え時に計算を行うのに要する時間によってサイクルを制限しないことによってクロック速度を向上させることができる。単精度と倍精度の切換えはロード／ストア機能ユニット以外ではまれにしか起こらないため、不利益はほとんどない。
【００１０】
本発明の性質および利点をよりよく理解することができるように、以下の説明を添付図面とともに参照されたい。
【００１１】
【発明の実施の形態】
図１は、本発明を組み込んだＵｌｔｒａＳｐａｒｃ（ＴＭ）マイクロプロセッサのブロック図である。命令キャッシュ１２がデコード・ユニット１４に命令を供給する。命令キャッシュはその命令をプリフェッチ・ユニット１６から受け取ることができ、プリフェッチ・ユニット１６は分岐ユニット１８から命令を受け取るか、または命令変換索引バッファ（ＴＬＢ）２０へ仮想アドレスを送り、それによってキャッシュ制御／システム・インタフェース２２を介してオフチップ・キャッシュから命令がフェッチされる。オフチップ・キャッシュからフェッチされた命令はプリデコード・ユニット２４に送られ、分岐命令かどうかなどの特定の情報が命令キャッシュ１２に供給される。
【００１２】
命令はデコード・ユニット１４から命令バッファ２６（複数のバッファを並列させて使用することができる）に送られ、それらの命令にディスパッチ・ユニット２８がアクセスする。ディスパッチ・ユニット２８は一度にデコード済みの４命令をバス３０で供給し、各命令は８個の機能ユニット３２〜４６のうちの１つに供給される。ディスパッチ・ユニットは、データおよび制御の依存関係と構造ハザード（適切な機能ユニットや必要なメモリ・ポートの可用性など）の検査を条件として、各サイクルにこのような命令を４つディスパッチする。
【００１３】
最初の３つの機能ユニットであるロード／ストア・ユニット３２と２つの整数ＡＬＵユニット３４および３６は、１組の整数レジスタ４８を共有する。浮動小数点レジスタ５０は浮動小数点ユニット３８、４０、および４２とグラフィカル・ユニット４４および４６によって共有される。整数機能ユニット群および浮動小数点機能ユニット群はそれぞれ対応する完了ユニット５２および５４をそれぞれ有する。マイクロプロセッサはオンチップ・データ・キャッシュ５６とデータＴＬＢ５８も備える。
【００１４】
図２にレジスタ・ファイル６０を示す。第１のライン６２は倍精度モードではレジスタＦ０として指示され、一方、単精度モードでは２つのレジスタ指示Ｆ０およびＦ１を保持する。同様に、第２のエントリ６４は倍精度レジスタＦ１として指示されていると同時に、単精度レジスタ指示Ｆ２およびＦ３を持つ。図からわかるように、精度が単精度か倍精度かがわからない場合、たとえばレジスタ「Ｆ１」の指示は２つの異なる場所であり得る。
【００１５】
図３Ａおよび図３Ｂに、単精度浮動小数点数と倍精度浮動小数点数を示す。図からわかるように、図３Ａの単精度は３２ビットを必要とし、レジスタ・ファイル６０内の１エントリの半分を占めることになり、図３Ｂの倍精度数は６４ビットを占め、レジスタ・ファイル６０の１ライン全体を必要とする。
【００１６】
図４Ａに、命令形式を示す。ＯＰコード６６は、それが浮動小数点ＡＤＤであることを示し、最後の「ｓ」はそれが単精度であることを示す。命令によって使用されるオペランドはレジスタ指示６８および７０によって示され、レジスタＦ０およびＦ１を指示している。宛先レジスタは指示７２によって示され、レジスタＦ３を指示している。ＯＰコードが示すようにこれは単精度オペランドであるため、Ｆ０指示は図２の単精度のＦ０位置７４を指しており、Ｆ１は位置７６を指し、Ｆ３指示は図２のレジスタ・ファイル６０のライン６４の後半である位置７８を指している。
【００１７】
図４ＢにＯＰコード８０が倍精度である整数ＡＤＤを示している異なる命令を図示する。したがって、オペランド・レジスタのレジスタ指示Ｆ０およびＦ２と宛先レジスタのレジスタ指示Ｆ６は倍精度指示である。Ｆ０は図２のレジスタ・ファイル６０のライン６２を指し、したがって、単精度のＦ０およびＦ１とぶつかる。同様に、Ｆ２は図２のエントリ６４を指し、Ｆ６はエントリ８２を指し、この両方は２つの別々の単精度レジスタとぶつかる。
【００１８】
したがって、図からわかるように、データ依存関係を判断するために、レジスタ指示が単精度と倍精度のどちらのＯＰコードに対応するかを判断する必要がある。図４Ｂの新しい命令のデータ依存関係を判断する際、図２に示すように図４Ａと図４Ｂの命令は同じエントリ・ラインを使用するため、図４Ａの命令が未解決の場合、結果全体をＦ３に書き込んでからでなければ、図４Ｂの命令はそのレジスタＦ１にアクセスすることができない。
【００１９】
図５に、図１のマイクロプロセッサの一部を詳細に図示する。特に、ロード／ストア・ユニット３２と、機能ユニット３６および３４が図示されている。
【００２０】
図６に、図１の浮動小数点機能ユニットとグラフィックス機能ユニットを、同じロード／ストア・ユニット１１０と共に図示する。
【００２１】
図７は、図１のディスパッチ・ユニット２８を詳細に図示したブロック図である。制御論理回路９０が機能ユニットおよびその他の必要資源の可用性に基づいて、各命令をどの機能ユニットにディスパッチすべきかを判断する。例示のためにロード／ストア・ユニット３２と整数ＡＬＵ機能ユニット３６の２つの機能ユニットが図示されている。機能ユニットの第１のグループ（ロード／ストア・ユニット以外のすべての機能ユニット）に命令をディスパッチする前に、制御論理回路９０がレジスタ９２の精度モードを調べる。レジスタ９２内のモード・ビットの表示で、ディスパッチする命令がパイプライン内の命令と同じ精度を持つ場合、それらの命令は、レジスタ指示がすべて同じ精度であると仮定して、データ依存関係を検査してディスパッチされる。ディスパッチする命令がパイプライン内の命令と同じ精度でない場合は、命令はモード・レジスタ９２内の空ビットの表示でパイプラインが空になるまでストールされる。
【００２２】
命令がロード／ストア・ユニット３２に宛てられたものである場合は、その精度がロード／ストア・パイプライン内の先行する命令と一致しているかどうかに関係なく、命令を進めることができる。制御論理回路はロード／ストア・ユニット３２内にある命令またはロード／ストア・ユニットに供給される命令に基づいてモード・ビットを変更せず、ロード／ストア機能ユニットに命令を供給するためにデータ依存関係を検査するときにレジスタ指示の精度を検査する。
【００２３】
モード・ビットは、ＯＰコード・デコード論理回路ブロック９４によって設定される。論理回路９４は各命令のＯＰコードをデコードして単精度であるか倍精度であるかを判断し、命令をパイプラインにディスパッチするときにそれに応じてモード・ビット９２を設定する。
【００２４】
例示した図では、整数ＡＬＵ３６が実機能論理回路を含む第１のブロック９６および、パイプラインを通して伝えられるレジスタ指示であるより狭いブロック９８として図示されている。レジスタ指示はデータ依存関係論理回路１００と機能ユニット２８に戻される。そこで、データ依存関係論理回路１００が、制御論理回路９０によってディスパッチされる新しい命令によって指示されたレジスタと、論理回路９８によって示されたパイプライン内のレジスタ指示とを比較する。同様の論理回路を他の各機能ユニットについて組み込み、データ依存関係論理回路１００に設ける。おわかりのように、この論理回路は機能ユニットのパイプラインの各段階ごとにＯＰコードを設ける必要がないため、かなり単純である。データ依存関係論理回路１００は単に、新しい命令と既存の命令のレジスタ指示が同じ精度であるとみなすだけである。
【００２５】
一方、ロード／ストア機能ユニット３２は、ブロック１０２で示されている実機能論理回路と、レジスタ使用論理回路１０４と、追加のＯＰコード論理回路１０６とを備える。ＯＰコード論理回路１０６はデータ依存関係論理回路１００にロード／ストア機能ユニット・パイプラインの各段階の命令が単精度か倍精度かを示す。データ依存関係論理回路は、この情報を使用して、制御論理回路９０によってディスパッチされようとしている新しい命令のデータ依存関係を判断する追加の１組の論理回路を含む。
【００２６】
したがって以上からわかるように、本発明によって、各機能ユニットに対しては必要のない論理回路１０６が省かれ、さらに各機能ユニットに対しては必要のない対応する論理回路とデータ依存関係論理回路１００も省かれる。この論理回路はロード／ストア機能ユニットにのみ必要である。
【００２７】
さらに、図５および図６に戻って参照すると、単精度数値と倍精度数値が混在している場合、図５のロード／ストア・ユニット３２と図６のロード／ストア・ユニット１１０に対して図５のバイパス精度論理回路５２と図６のバイパス精度論理回路５４を使用して、完了ユニットの迂回ができるようにすべきかどうかを判断する。他の機能ユニットではこの論理回路を省いて、バイパス命令がパイプライン内の他の命令とは異なる精度であるかどうかに関わりなく迂回できるようにする。パイプラインは異なる精度の命令を持つことができなくなるため、その条件は決して発生せず、したがってこの追加の検査論理回路は不要になる。
【００２８】
図８は本発明の精度表示器の３つの状態を図示する状態図である。第１の単精度状態１１２では、単精度オペランドがパイプラインに供給される。第２の倍精度状態１１４では、倍精度オペランドがパイプラインに供給される。空状態１１６では、パイプラインにはアクティブで有効な命令がない。
【００２９】
空状態１１６から始まって、単精度命令がディスパッチされると、この機械の状態は線１１８で図示するように単精度状態１１２に遷移する。最後の単精度命令がパイプラインを流れてしまうとただちに、矢印１２０で図示するように空状態に戻る遷移が起こる。同様に、倍精度の場合は倍精度命令がディスパッチされると、矢印１２２で示すように空状態１１６から倍精度状態１１４に遷移する。最後の倍精度オペランドがパイプラインを出ると、矢印１２４で示すように空状態１１６に戻る遷移が起こる。
【００３０】
あるいは、矢印１２６で図示するように単精度状態から倍精度状態への遷移や、矢印１２８で図示するようにその逆の遷移が行われる場合がある。これらは点線で図示されているように任意選択である。直接遷移には、パイプライン内の命令が次のサイクルで完了することを確認して干渉が起こらないようにする論理回路が必要になる。これには追加の論理回路が必要であり、追加の時間がかかることになるため、単にパイプラインを空にするだけの方がより単純である。単精度から倍精度への遷移はまれにしか発生しないため、すなわちそのようなことが発生すると考えられるのは１つのプログラムから他のプログラムへの変更であるため、スループットへの影響は無視できる程度である。
【００３１】
空状態を示す際、パイプラインは実際に命令のない状態である必要はない。たとえば分岐予測が外れた場合は、予測が外れた命令をパイプラインから物理的になくして新しい修正された命令の分岐を開始するのに要する複数サイクルを待つのではなく、パイプライン内の命令が単に無効化されるだけである。
【００３２】
ロード・パイプラインは、単精度と倍精度がめったに混在しないという一般原則の例外である。たとえば、レジスタＦ０に単精度オペランドをロードし、レジスタＦ１に別の単精度オペランドをロードしてから、Ｆ０を使用してＦ０とＦ１の組合せである倍精度演算を行うことがある。幸いにも、ロード／セーブ・パイプラインは他のパイプラインよりも短く、したがってはるかに単純な論理回路でそのオペランドを判断し、それが単精度か倍精度かを判断することができる。
【００３３】
精度の変更が発生した場合、パイプラインへの命令のディスパッチはパイプラインが空になるまで停止される。たとえば、Ｕｌｔｒａｓｐａｒｃ（ＴＭ）マイクロプロセッサでは、たとえば２２サイクルも要することがある浮動小数点平方根演算または除算がある場合を除き、これは通常７サイクル以下である。しかし、２２サイクル演算を処理している時に同時に精度の切換えが行われる確率は低いため、単に２２サイクルが完了するのを待つことは重要なパフォーマンス要因ではない。
【００３４】
以上の説明では、単精度と倍精度について言及したが、本発明はビット数を変えて４倍精度またはその他の精度も適用可能である。一実施例では、４倍精度演算にはソフトウェアへのトラップが必要になる。好ましい実施例では、ソフトウェアへのトラップの結果、パイプラインが空になるのを待ち、それによってパイプライン内に一度に同じ精度が入れられていなければならないという必要に対処する。したがって、ソフトウェア・トラップ時にパイプラインをフラッシュするのを待つ４倍精度演算のソフトウェア・エミュレーションも、本発明によってなくなった論理回路を必要とせず、レジスタ指示は同じ精度のものであるとみなすことができる。
【００３５】
当業者ならわかるように、本発明は、本発明の精神または本質的特性から逸脱することなく他の特定の態様でも実施することができる。たとえば、本発明には、異なる数の機能ユニット、異なる数のパイプライン段階、および様々な精度のための異なるビット数も使用することができる。したがって、上述の実施例は例示的なものであり、特許請求の範囲に記載されている本発明の範囲を限定するものではない。
【図面の簡単な説明】
【図１】  本発明を組み込んだマイクロプロセッサの実施形態を示すブロック図である。
【図２】  単精度データと倍精度データの両方を保持するレジスタ・ファイルを示す図である。
【図３】  単精度データ形式と倍精度データ形式を示す図である。
【図４】  単精度命令形式と倍精度命令形式を示す図である。
【図５】  図１の整数ユニットと実行ユニットを示すブロック図である。
【図６】  図１の浮動小数点ユニットとグラフィックス・ユニットを示すブロック図である。
【図７】  図１のディスパッチ・ユニットを示すブロック図である。
【図８】  精度モード表示器の状態を示す状態図である。
【符号の説明】
１２  命令キャッシュ
１４  デコード・ユニット
１６  プリフェッチ・ユニット
１８  分岐ユニット
２０  命令変換索引バッファ
２２  キャッシュ制御／システム・インタフェース
２４  プリデコード・ユニット
２６  命令バッファ
２８  ディスパッチ・ユニット
３２  ロード／ストア・ユニット
３４  整数ＡＬＵユニット
３８  浮動小数点ユニット
４４  グラフィカル・ユニット
５２  完了ユニット
５６  オンチップ・データ・キャッシュ
５８  データ変換索引バッファ
６０  レジスタ・ファイル
９０  制御論理回路
９６  整数ＡＬＵ
１００  データ依存関係論理回路
【図１】
0003751402.tif 000002
【図２】
0003751402.tif 000003
【図３】
0003751402.tif 000004
【図４】
0003751402.tif 000005
【図５】
0003751402.tif 000006
【図６】
0003751402.tif 000007
【図７】
0003751402.tif 000008
【図８】
0003751402.tif 000009