(57)【特許請求の範囲】
【請求項１】
−  複数の機能ユニットと、
−  複数の発出スロットを有し、各発出スロットを、各動作を有するためのものとし、同時に保持される全ての動作を、同一マシンサイクル中に前記機能ユニット上で開始し、各マシンサイクルを有する新たなセットの動作を充填するのに好適であり、前記発出スロットの数を前記機能ユニットの数未満にした命令発出レジスタと、
−  前記機能ユニットにオペランドを供給するために複数の読出しポートを有し、これら読出しポートの数を前記命令発出レジスタの発出スロットの数と同一にしたマルチポートレジスタファイルと、
−  前記オペランドを発生させるために全ての接続を行うために前記読出しポートと機能ユニットとの間にある結合回路とを具えるＶＬＩＷプロセッサにおいて、
−  前記機能ユニットの少なくとも一つが、全ての数未満の数の前記読出しポートからのオペランドのみを受け取ることができるような接続を行うように、前記結合回路を配置したことを特徴とするＶＬＩＷプロセッサ。
【請求項２】
前記発出スロットの各々を、前記機能ユニットの少なくとも一つのサブセットの各々に動作を供給するように配置し、そのサブセットの各々を前記読出しポートの各々に関連させ、前記結合回路が、前記機能ユニットが属する一つ以上のサブセットに関連した読出しポートのみから各サブセットの機能ユニットに接続を行うようにしたことを特徴とする請求の範囲１記載のＶＬＩＷプロセッサ。
【請求項３】
前記結合回路が、各機能ユニットの前記読出しポートへの接続を一つのみ行うようにしたことを特徴とする請求の範囲１又は２記載のＶＬＩＷプロセッサ。
【請求項４】
前記機能ユニットが、前記発出スロットの数と同数の定数ユニットを有することを特徴とする請求の範囲３記載のＶＬＩＷプロセッサ。
【請求項５】
前記機能ユニットが、前記発出スロットの数と同数のａｌｕを有し、各ａｌｕを、前記読出しポートの一つにそれぞれ関連させ、前記結合回路が、前記ａｌｕに関連した読出しポートからａｌｕの各々にのみ接続を行うようにしたことを特徴とする請求の範囲３記載のＶＬＩＷプロセッサ。
【発明の詳細な説明】
本発明は、超長命令語（ＶＬＩＷ）プロセッサのアーキテクチャの分野の関するものである。より詳しくは、請求の範囲１の冒頭で説明したＶＬＩＷに関するものである。
本発明は、１９９５年５月２２日に出願された米国特許出願の出願番号０８／４４５，９６３号（ＰＨＡ２１，７７７ａ）を向上させたものであり、参照によってこれに組み込む。
従来のＶＬＩＷプロセッサを図１に図示したようにすることができる。それは、複数の発出スロットを有する命令発出レジスタ（ＩＩＲ）１０４を有することを特徴とするものである。各発出スロットは各動作を有するためのものである。命令発出レジスタ中に同時に保持される動作の全てを、同一マシンサイクル中に開始すべきである。各動作を、機能ユニットＦＵ１，ＦＵ２，．．．，ＦＵＮのうちの適切なもので実行すべきである。動作を、ＩＩＲの各スロットに対して各マシンサイクルで動作を開始することができるＲＩＳＣタイプの動作とする。
ＶＬＩＷプロセッサは、マルチポートレジスタファイル１０１を有する。このマルチポートレジスタ１０１は、機能ユニットＦＵ１，ＦＵ２，．．．，ＦＵＮに対する宛先のオペランド及び機能ユニットによって生じた結果を格納する。
読出しクロスバー１０２は、命令発出レジスタ１０４からの信号の制御下でオペランドをマルチポートレジスタファイル１０１から機能ユニットＦＵ１，ＦＵ２，．．．，ＦＵＮのうちの適切なものに導く。
書込み制御ユニット１０３は、機能ユニットＦＵ１，ＦＵ２，．．．，ＦＵＮからマルチポートレジスタファイル１０１への結果の書込みのタイミングを決定する。
従来技術の不都合は、読出しクロスバー１０２がプロセッサチップ上で大きな面積を占めることである。
本発明の目的は、小スペースに適合したＶＬＩＷを提供することである。
本発明は、請求の範囲１の特徴部分によるプロセッサを提供する。基本ユニットは、命令レジスタの特定の発出スロットに割り当てられる。読出しポートの限定されたサブセットを各発出スロットに関連させることによって、読出しクロスバーを簡単化し又は除去することができる。
本発明によるプロセッサは、機能ユニットごとに一つの発出スロットが存在する従来のプロセッサ、例えば米国特許明細書第５，１０３，３１１号（ＰＨＮ１２Ｐ３７６ａ）とは異なり、従来のプロセッサでは、本発明の機能ユニットの分類の結果、機能ユニットの各グループはスーパユニットにならない。ユニットは個別に機能したままである。これらは個別の動作タイプを実行する。これらは、個別の命令ラテンシー及び書込み制御ユニットに対する個別の接続を有する。
【図面の簡単な説明】
本発明を、以下の図面を参照して説明するが、本発明は実施の形態に限定されるものではない。
図１は、従来のＶＬＩＷプロセッサを示す。
図２は、本発明によるＶＬＩＷプロセッサを示す。
好適な実施の形態の詳細な説明
図２は、本発明によるＶＬＩＷプロセッサを示す。
プロセッサは、ｍを１より大きい整数とした場合、ｍ個の発出スロットＳ0，Ｓ1，．．．，Ｓmを有するＩＩＲ２０１を具える。各スロットを、機能ユニット上で実行すべき動作を保持するためのものとする。既に説明したように、ＩＩＲで同時に保持される全ての動作を同一サイクル中に開始すべきであり、動作の全てをＲＩＳＣと同様にする。
既に説明したように、マルチポートレジスタファイル２０２が存在する。このファイルは、発出スロットと同一のｍ個の読出しポリシリコンーとＲＰ0，ＲＰ1，．．．，ＲＰmを有する。このファイルはｋ個の書込みポートを有し、この場合、ｋをｍと同一でもよく、同一でなくてもよい。マルチポートレジスタファイルについてのこれ以上の情報を、１９９４年１２月３０日に出願された米国特許出願明細書の出願番号０８／３６６，９５８で見つけることができ、参照することによってここに組み込まれる。
各読出しポートは、当該ポートから読み出す少なくとも一つの機能ユニットの各グループを有する。例えば、ＲＰ0から読出し動作を行う機能ユニットＦＵ00，ＦＵ01，．．．，ＦＵ0Noと、ＲＰ1から読出し動作を行う機能ユニットＦＵ10，ＦＵ11，．．．，ＦＵ1Noと、ＲＰmから読出し動作を行う機能ユニットＦＵm0，ＦＵm1，．．．，ＦＵmNoとを図示する。
書込みバス２０５，２０６，．．．，２０７，２０８，２０９，．．．，２１０，．．．，２１１，．．，２１３は、機能ユニットから書込み制御ユニット２０３に結果データを搬送する。米国特許出願明細書の出願番号０８／４４５，９６３号のような書込み制御ユニットは、結果データを書込みバスからマルチポートレジスタファイル２０２に搬送するとき及びどのポートに結果データを搬送するかを決定する。
ｍ＝５で合計１９個の機能ユニットを有するＶＬＩＷプロセッサの例において、全読出しクロスバーは９５接続を必要とする。各接続は、米国特許出願明細書の出願番号０８／４４５，９６３に図示したように、二つの３２ビット読出しバスのセット、すなわち、６４ビット接続パルスの所定の切替回路を必要とする。後に説明するように、制限されたクロスバーは、３５接続を必要とし、スケジューリングの制限がない。制限されたクロスバーにおいて、機能ユニットの所定の入力部のみをマルチポートレジスタファイルの特定の出力部に接続し、又はマルチポートレジスタファイルの所定の出力部のみを所定の機能ユニットに接続する。制限されたクロスバーを、米国特許出願明細書の出願番号０８／４４５，９６３及び米国特許明細書５，３１３，５５１号に示したクロスバー原理に従って構成し、参照することによってこれに組み込む。
クロスバーを完全に除去することによって、機能ユニットに対して１９接続、すなわち、機能ユニットと同数の接続となる。ある適切なスケジューリング制限が、クロスバーを除去した結果コンパイラから要求される。クロスバーの複雑さを減少させることによって、重要なタイミング経路、チップ領域、設計の複雑さ及び散逸を減少させる。
全ての表の右から１行目の欄の各々に、ＶＬＩＷプロセッサの発出スロットに対する機能ユニットの割当てを示す。
全ての表の右から１行目の欄の各々に、以下の略語を用いる。
const;  これは、定数の回路ビットに送るユニットである。
alu:  演算及び論理ユニット
shift:  桁移動回路
mult:   乗算器
falu:   浮動小数点ａｌｕ
fcomp:  浮動小数点比較
fmult:  浮動小数点乗算器
fdivid:   浮動小数点除算器
fsqroot:  浮動小数点平方根
mem:  メモリ
branch unit:  分岐実行用
＋  右側の欄の機能ユニットとその欄の＋を有する発出スロットとの間の接続が可能であることを表す。
空白は、接続がないことを表す。
表Ｉは、接続に対して部分的な接続を有するＶＬＩＷプロセッサの発出スロットに機能ユニットを割り当てた第１例を示す。部分的なクロスバーの例は、５５接続を必要とし、任意のスケジューリング制限を必要とせず、それ以外は機能ユニットの数を承継する。同一タイプの複数のユニットがある場合、機能ユニットの各々を発出スロットの各々に接続することができるようにする必要がない。例えば、発出スロット０の“const”動作をスケジュールしたい場合、常にそれをＣ１に接続することができる。Ｃ２への接続は不要である。
表IIは第２例を与える。この例は、５発出ユニットのみが存在し、したがって所定の命令の組合せが必要でないことを認識することによって接続数を減少させる。この例では、３５接続のみ必要とされ、スケジューリングの制限がなく、それ以外は機能ユニットの数を承継する。換言すれば、明らかに、一つの浮動小数点乗算ユニットのみがある場合、一つの浮動小数点乗算動作が任意の命令中に現れることができる。
この場合の用語「スケジューリング制限」は、同一命令中に現れることができる動作の特定の種別の数を意味する。発出スロットが動作を有することができる制限は、スケジューリング制限と考えられない。したがって、一つの命令中にどの動作が同時に現れることができるを制限することなしに、例えば、“falu”動作が常にスロット１にあり、かつ、“mem”動作が常にスロット０にあるように動作をスケジュールすることができる。したがって、“falu”は、発出スロット１に接続するだけでよい。
表IIIは他の例を与え、この例は接続数を３１まで減少させるが、追加のスケジュールリング制限を課す必要がある。浮動小数点平方根動作は、浮動小数点除算を行う同一命令中に現れることができない。
表IVの例は、接続数を２５まで減少させるが、表IIIの例全体に亘って以下の追加のスケジューリング制限が課される。以下の例では、更に多くの接続が除去され、累積的なスケジューリング制限を課す必要がある。
ａ）Ｓ１，Ｓ２，falu，fcompのうちの２動作を許容。
ｂ）Ｍ１，Ｍ２，fmul，fdivid，fsqrootのうちの２動作を許容。
表Ｖの例は、接続数を２２まで減少させ、以前の表に比べて以下の追加のスケジューリング制限が課される。
Ｃ１，Ｃ２，Ｍ１，Ｍ２，fmult，fdivid，fsqrootのうちの２動作を許容。
表VIの例は、１９機能ユニットに対して最小数の接続、すなわち、１９接続を有する。さらに、各機能ユニットを１発出スロットのみに接続する。この形態は、以前の形態に加えて以下の追加の制限を必要とする。
Ｂ１，Ｂ２，Ｓ１，Ｓ２のうちの２動作を許容。
いずれの及びどれだけの機能ユニットを命令発出レジスタのどのスロットに割り当てるべきであるかを、プロセッサコスト及びサンプルプログラムを実行するプロセッサ機能の最適化の経験に基づいて経験的に決定する必要がある。例えば、浮動小数点ユニットの数を、これらが高価なものとなるので最小にする必要がある。
本発明の好適な実施の形態において、ｍ＝５及びｋ＝５の場合、２８機能ユニットが存在する。ＡＬＵ及び定数ユニットを各発出スロットに取り付けて、許容できない数のスケジューリング制限を回避するように決定する。
好適な実施の形態の機能ユニットタイプを表VIIに規定する。これら機能ユニットを表VIIIに従って発出スロットに接続する。このマシン形態を用いることによって、非常に多くの重要でないスケジューリング制限が、機能ユニットの数によって課されたスケジューリング制限に加えて適用される。これら制限によって、パフォーマンス損失及び実アプリケーションがほとんどなくなる。
スケジューリング制限の例
0003776128.tif 000002
このプロセッサのＶＬＩＷ命令は、クロスバーの除去に起因する同時に発生するスケジューリング制限の全てを安全にする必要がある。しかしながら、上記リストはこのような制限の完全なリストではない。スケジューリング制限の完全なリストの処理は、本発明によるプロセッサに対して完全な命令に対して最も有効な方法ではない。当業者は、命令を実行できることを確認するために表VIIIに対して提案されたコンパイルした命令の各々を検査するコンパイラを設計することによって、スケジューリング制限を容易に満足することができる。
0003776128.tif 000003
0003776128.tif 000004
0003776128.tif 000005
0003776128.tif 000006
0003776128.tif 000007
0003776128.tif 000008
0003776128.tif 000009
0003776128.tif 000010
【図１】
0003776128.tif 000011
【図２】
0003776128.tif 000012