(57)【特許請求の範囲】
【請求項１】
（ｉ）処理すべきデータを保持するためのレジスタの複数の組と、
（ｉｉ）レジスタの各組ごとに、この組から、データ処理に利用すべき前記レジスタのすべてより少ないか、少なくとも１つのレジスタを選択するための選択手段とを備え、レジスタのその組から選択されなかったレジスタをデータ処理に利用しない、データを処理するための装置。
【請求項２】
前記選択手段は、レジスタの各組からデータ処理に利用すべき１つのレジスタを選択する請求項１記載の装置。
【請求項３】
レジスタ選択命令ワードに応答自在であり、前記選択手段によりどのレジスタを選択するかを制御するためのレジスタ制御手段を含み、前記レジスタ選択命令ワードはレジスタの各組に対する制御フィールドを含み、各制御フィールドはレジスタのそれぞれの組のうちからどのレジスタを選択すべきかを示す請求項１記載の装置。
【請求項４】
前記レジスタ制御手段はレジスタの一組に対して現在選択されているレジスタおよび前記レジスタの組に対する制御フィールドに応答自在であり、よって、前記制御フィールドを２回連続して印加する結果、前記現在選択されているレジスタが再選択されるようになっている請求項３記載の装置。
【請求項５】
前記制御フィールドはＮ個のビットを有し、前記レジスタの組は各々Ｎビットの数字によって識別される２Ｎ  個のレジスタを含み、レジスタの各組は１つの現在選択されているレジスタを含み、前記レジスタ制御手段は前記制御フィールドおよび前記現在選択されているレジスタを識別する前記Ｎビットの数字に排他的ＯＲ関数を適用し、選択すべき次のレジスタを識別するＮビットの数字を発生する請求項４記載の装置。
【請求項６】
Ｎ＝２である請求項５記載の装置。
【請求項７】
前記レジスタの組のいずれにも属さない、少なくとも１つの永続的に利用できるレジスタを含む請求項１記載の装置。
【請求項８】
前記選択手段は、レジスタの各組内のレジスタを処理用論理に選択的に接続して、これらレジスタ内に保持されたデータを処理するようにするレジスタの各組に対して設けられたマルチプレクサを含む、請求項１記載の装置。
【請求項９】
集積回路の中央処理ユニットを含む請求項１記載の装置。
【請求項１０】
（ｉ）レジスタの複数の組内のレジスタのうちの選択されたレジスタ内で処理すべきデータを保持し、
（ｉｉ）レジスタの組ごとにこのレジスタの組から前記レジスタのすべてよりも少なく、かつ少なくとも１つのレジスタを選択してデータ処理に利用し、レジスタのその組から選択されなかったレジスタをデータ処理に利用しない諸工程を備えたデータ処理方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明はデータ処理分野に関するものであり、より詳細にはレジスタのより大きなグループから選択可能なレジスタ内に保持されたデータを処理することに関する。
【０００２】
【従来技術】
処理用レジスタのアクセススピードとメモリのアクセススピードとの相対的な差が大きくなるにつれ、更に、超大規模の中央処理ユニットが多数の命令（これら命令のいずれも別個のレジスタを必要とする）を発生するようになるにつれ、処理に利用可能なレジスタファイルのサイズを拡大して、性能を高めるというニーズが増大している。
【０００３】
添付図面中の図１には、選択可能なレジスタを有する集積回路の中央処理ユニットの一例が略図で示されている。この配列はザイログ社のＺ８０プロセッサで使用されている配列に類似している。このアーキテクチャでは、プロセッサには作動レジスタの２つの別個のバンク、すなわちバンクＡとバンクＢとが設けられている。マルチチャンネルのツーウェイマルチプレクサへ送られる選択信号（ＳｅｌＡ／Ｂ）を生じさせる単一命令により、レジスタのうちの異なるバンクが選択され、データ処理に利用可能となる。バンクのうちのいずれが選択されたかに応じて、バンクＡのレジスタのすべてが選択されるか、またはバンクＢのレジスタのすべてが選択される。バンクＡからいくつかのレジスタを選択し、更にバンクＢからいくつかのレジスタを選択することはできない。従って、レジスタバンク間でデータを高速転送する方法はなく、各レジスタバンクは１つの別のアルゴリズムを実行しなければならない。
【０００４】
別の方法としては、添付図面のうちの図２に略図で示されたサン社のスパーク（Ｓｕｎ  ＳＰＡＲＣ  ）、インテルｉ９６０およびＡＭＤ２９０００によって利用されている方法がある。これらのアーキテクチャでは、一部がオーバーラップした多数のレジスタバンクが設けられている。サンスパークおよびインテルｉ９６０アーキテクチャは、固定サイズのウィンドウをサポートし、ＡＭＤ２９０００は可変サイズのウィンドウをサポートしている。この機構は、リネームされるレジスタもあれば、リプレイスされるレジスタも生じるように、ウィンドウをオーバーラップさせることによりデータがウィンドウ間を通過できるようにしているが、この機構はレジスタ０から始まるレジスタの隣接する一組をリネームし、他のレジスタをリプレイスするので雑になっている。実際にこれらのアーキテクチャで作動するコンパイラはプロシージャ（手続き）コール用のレジスタウィンドウしか利用できない。
【０００５】
更に他の方法としては、添付図面中の図３に略図で示されている方法がある。この方法では、ソフトウェアの制御により、レジスタの大きなプール内からの個々のレジスタに、特定のレジスタネームを割り当てできる。このような方法では、１つの命令により１つのレジスタがリネームされる。この方法はかなりの大きさのフレキシビリティを与えるが、リネームすべきレジスタごとに１つのレジスタリネーム命令を使用しなければならないので、プログラムサイズが大きくなり、レジスタリネーム命令により主演算ロジックユニットが停止しないように、超大規模の命令を発生しなければならない。
【０００６】
【発明が解決しようとする課題】
本発明の課題は、上記問題を解消しながら、多数のレジスタにフレキシブルにアクセスする際の問題を解決することにある。
【０００７】
【課題を解決するための手段】
本発明の１つの特徴によれば、
（ｉ）処理すべきデータを保持するためのレジスタの複数の組と、
（ｉｉ）レジスタの各組ごとに、この組から、データ処理に利用すべき前記レジスタのすべてより少ないか、少なくとも１つのレジスタを選択するための選択手段とを備え、レジスタのその組から選択されなかったレジスタをデータ処理に利用しない、データを処理するための装置が提供される。
【０００８】
この解決案によれば、上記課題は関連するレジスタの所定の組のうちのレジスタとスワップできるレジスタの数を制限することにより解決される。レジスタの組内では、ビジブルレジスタとインビジブルレジスタとをスワップする機構が働く。このように、レジスタの組内で行われるレジスタのスワッピングを制限することにより、レジスタのスワッピング方法を処理するのに不利な複雑な制御機構および制御命令の組を設けることを不要にしながら、レジスタの異なる組を別々に操作できるようにすることにより、フレキシビリティを得ている。
【０００９】
本発明のある実施例では、レジスタの各組から２つ以上のレジスタを同時に選択できるが、本発明のより通常の好ましい実施例では、前記選択手段はレジスタの各組から１つのレジスタを選択してデータ処理に利用している。
【００１０】
本発明の好ましい実施例では、レジスタ選択命令ワードに応答自在であり、前記選択手段によりどのレジスタを選択するかを制御するためのレジスタ制御手段が設けられ、前記レジスタ選択命令ワードはレジスタの各組に対する制御フィールドを含み、各制御フィールドはレジスタのそれぞれの組のうちからどのレジスタを選択すべきかを示す。
【００１１】
レジスタ選択命令のうちにレジスタの各組に対し制御フィールドを設けることにより、単一命令を使ってシステムのフルレジスタコンフィギュレーションを制御できるようになった。このシステムにより、レジスタの組内に限りレジスタのスワッピングを制限することにより、このことが可能となっている。このことは、制御フィールドは比較的少数のビットでよいことを意味している。従って、インストラクションワード長さ内で充分なスペースが利用できる。
【００１２】
従って制御フィールドは選択すべきレジスタの絶対的仕様を示すことが可能となると理解できよう。しかしながら、好ましい実施例では、前記レジスタ制御手段はレジスタの一組に対して現在選択されているレジスタおよび前記レジスタの組に対する制御フィールドに応答自在であり、よって、前記制御フィールドを２回連続して印加する結果、前記現在選択されているレジスタが再選択される。
【００１３】
レジスタ制御手段がすでに選択されたレジスタに応答自在なシステムを設けることにより、同じプログラミングタスクのうちの先の部分によるか、またはマルチタスク環境における異なるアルゴリズムによるかのいずれかにより、既にどのレジスタが選択されているかをプログラマが知らなくてもよいという利点が得られる。このようにプログラマは、特定の物理的レジスタのどれが実際に関係するかを知らなくてもよく、レジスタのスワップを指定し、より重要なことに、特定のプロシージャコールまたは他のプログラムセグメントの終了時にそのスワップを反転し、プログラムの他の部分またはパラレルタスクによってとられたステートにプロセッサを回復できる。
【００１４】
本発明の特に有効な実施例としては、前記制御フィールドはＮ個のビットを有し、前記レジスタの組は各々Ｎビットの数字によって識別される２Ｎ  個のレジスタを含み、レジスタの各組は１つの現在選択されているレジスタを含み、前記レジスタ制御手段は前記制御フィールドおよび前記現在選択されているレジスタを識別する前記Ｎビットの数字に排他的ＯＲ関数を適用し、選択すべき次のレジスタを識別するＮビットの数字を発生する実施例がある。
【００１５】
制御フィールドおよびその時選択されているレジスタを識別するＮビット数に適用される排他的ＯＲ関数は、上記トランスペアレントな反転性を与えるように働く。
制御フィールドの長さと各組内のレジスタの数を適当に妥協させると、Ｎ＝２となる。
利用可能なレジスタを選択できるレジスタの組の他に、前記レジスタの組のいずれにも属さない少なくとも１つの永続的に利用可能なレジスタを設けることが好ましい。
【００１６】
これら永続的に利用できるレジスタは、プログラムカウンタ値を保持するレジスタまたはＡＬＵにより高速の数学的演算の前に数学的オペランドが内部にロードされる特定のレジスタを含むことができる。かかるレジスタは、常時必要であるか、またはレジスタのスワッピングが相当の利点を与えないような性質のものであるかのいずれかである。
【００１７】
本発明を具現化する有利で簡単な機構としては、前記選択手段は、レジスタの各組内のレジスタを処理用論理に選択的に接続して、これらレジスタ内に保持されたデータを処理するようにするレジスタの各組に対して設けられたマルチプレクサを含む機構がある。
【００１８】
本発明は集積回路中央処理ユニット内で最も有利に使用されるとも解される。
【００１９】
本発明の別の特徴によれば、
（ｉ）レジスタの複数の組内のレジスタのうちの選択されたレジスタ内で処理すべきデータを保持し、
（ｉｉ）レジスタの組ごとにこのレジスタの組から前記レジスタのすべてよりも少なく、かつ少なくとも１つのレジスタを選択してデータ処理に利用し、レジスタのその組から選択されなかったレジスタをデータ処理に利用しない諸工程を備えたデータ処理方法が提供される。
【００２０】
添付図面を参照して下記の実施例の詳細な説明を読めば、本発明の上記およいそれ以外の目的、特徴および利点が明らかとなろう。
【００２１】
【実施例】
図４は、一組のレジスタ２（レジスタ００、０１、１０および１１）を示す。４ウェイマルチプレクサ４は、これらレジスタの組のうちの１つをレジスタバス６に選択的に接続する。この４ウェイマルチプレクサは、ラッチ８および１０からの２ビットの入力信号により制御されており、ラッチ１０は低いほうの位のビットを記憶し、ラッチ８は高いほうの位のビットを記憶する。こうしてラッチ８および１０に記憶された２ビットのワードは４つのレジスタ００、０１、１０および１１から対応する２ビットの識別番号を有するレジスタを選択する。
【００２２】
ラッチ８および１０の各々への入力信号は、それぞれ２ビットの排他的ＯＲゲート１２および１４により供給される。排他的ＯＲゲート１２、１４の各々は、対応するラッチ８、１０の出力端からフィードバックされる１つの入力端および２ビットのレジスタ選択ワード（ＲｅｇＳｅｌ１、ＲｅｇＳｅｌ０）からの別の入力端を有する。２ビットのレジスタ選択ワードは、当該レジスタ２の組に対するレジスタ選択命令ワード内からの制御フィールドに対応している。下記の表１は、現在利用可能なレジスタと制御フィールド入力信号の種々の組み合わせに対する排他的ＯＲ演算の２ビットの結果を示す。
【００２３】
【表１】
0003566769.tif 000002
【００２４】
従って、ラッチ８および１０内に記憶されているビットにより識別される、現在利用可能なレジスタが「０１」であり、制御フィールド入力信号が「１０」であれば、排他的ＯＲ演算の出力は「１１」となる。この「１１」はラッチ８および１０に記憶され、４ウェイマルチプレクサ４によりレジスタ「１１」が選択される。
【００２５】
下記の機能を有するような種々の制御フィールド入力信号を考えることができる。
００  −  このレジスタをスワップしない。
０１  −  このレジスタをシブリング（兄弟）１とスワップする。
１０  −  このレジスタをシブリング２とスワップする。
１１  −  このレジスタをシブリング３とスワップする。
【００２６】
排他的ＯＲ関数の演算は、特定の制御フィールド入力信号の印加が自己の逆関数としてはたらくような特性を備えた、自己割り当てのシブリング１、２および３を、各レジスタが有するようになっている。従って、現在利用可能なレジスタが「１０」で、印加された制御フィールド入力信号が「１１」であれば、現在利用可能なレジスタは「０１」に変わる。現在利用可能なレジスタが「０１」であり、同じ制御フィールド入力信号「１１」が印加されると、その結果は「１０」となり、最初利用可能であったレジスタと同じになる。
【００２７】
図５は、図４に示したレジスタ２の１２の組を内蔵するシステムを示す。このシステムは永続的に利用可能なプログラムカウンタレジスタ１６と、永続的に利用可能な演算オペランドレジスタＡ、ＢおよびＣも含む。図５に示されたシステムが一部を構成している中央演算ユニット内で、レジスタ選択命令が実行されると、制御フィールドストア１８内にレジスタのそれぞれの組に対する１２の制御フィールドがロードされる。制御フィールドストア１８からそれぞれの２ビットの制御フィールドが対応するレジスタ２の組のうちの排他的ＯＲゲート１２、１４へ送られる。
【００２８】
システムの初期化の際に、レジスタ２の各組からのレジスタ「００」は、利用可能なものと選択され、制御フィールドストア１８に２４ビットワード「００、００、００、００、００、００、００、００、００、００、００、００」がロードされ、どのレジスタのスワップも不要であることが示される。次に図５内の排他的ＯＲゲート１２、１４の対の各々に、これら制御フィールド値が示される。レジスタ２の組のうちの選択されたレジスタは黒色で示されている。
【００２９】
図６は、レジスタのこれら組のうちのいくつかに対し、異なるレジスタを選択することを示している。レジスタの組２０はそのシブリング１とスワップすべきであり、レジスタの組２２はそのシブリング３とスワップすべきであり、レジスタの組２４はそのシブリング２とスワップすべきであり、レジスタの組２６はそのシブリング１とスワップすべきである。このような選択を行う制御フィールド入力信号は、「００、０１、００、００、１１、００、００、１０、０１、００、００、００」となっている。これらの制御フィールド値は、まず排他的ＯＲゲート１２、１４へ印加され、その結果生じる排他的ＯＲゲート１２、１４からの出力信号がラッチ８、１０に保持され、４ウェイマルチプレクサ４を制御する。こうして選択されたレジスタはレジスタバス２８に接続される。このレジスタバス２８には、永続的に利用可能なレジスタＰＣ、Ａ、ＢおよびＣも接続されている。
【００３０】
図７は、図６に示した選択の後の更なるレジスタ選択を行う、後の動作を示す。この場合、レジスタの組２４、２６、３０および３２を除くレジスタの組のすべては、「００」の制御フィールドを加えることにより変わらないままになっている。従って、これらの変わらないレジスタの組は、図６からの選択されたレジスタが先に印加された制御フィールドに応じて選択されたレジスタ００または他のレジスタであるかに応じて、この図６からの選択されたレジスタを維持する。
【００３１】
レジスタの組３０は、先に選択されたレジスタ００に対してそのシブリング２を選択する。すなわちレジスタ２を選択する。レジスタの組３２も先に選択されたレジスタ００に対しそのシブリング２を選択する。レジスタの組２４は、先に選択されたレジスタ１０に対してそのシブリング３を選択する。表１を参照すると、現在利用可能なレジスタが１０であり、シブリング３を選択するための印加された制御フィールド入力信号が「１１」である場合、排他的ＯＲ演算の結果は、「０１」となり、これは選択されるシブリングを示している。すなわちレジスタ１０に対するシブリング３は、レジスタ０１となる。
【００３２】
同様にして、図６におけるレジスタ２６の組からのレジスタ０１は、「０１」の制御フィールド入力信号と排他的ＯＲ演算され、「００」の出力信号が発生され、図７のレジスタ２６の組に対しレジスタ００が選択される。
【００３３】
図８は、図７に示されたように、先に選択されたレジスタに対して行われる別のレジスタ選択演算を示す。この場合、レジスタ２０および２２の組に対してのみ、レジスタのスワッピングが行われる。レジスタの組に加えられる制御フィールドは、図６において加えられた制御フィールドと同じであるので、レジスタ２０の組に対して制御フィールド「０１」が加えられ、その時選択されているレジスタ０１に作用し、新しく選択されたレジスタ００が生じる。従って、図６で加えられていたフィールドと同じ制御フィールドが再印加される結果、元のレジスタ００が再選択される。すなわち制御フィールド入力信号は有効的に自己の逆関数となり、制御フィールドを２回印加することにより元の結果が生じる。
【００３４】
同様にして、レジスタ２２の組に対する制御フィールド入力は、表１から判るように「１１」となり、新しく選択されたレジスタ００が生じる。
【００３５】
以上で添付図面を参照して本発明の実施例について詳細に説明したが、本発明は記載した実施例のみに限定されるものでなく、当業者には、特許請求の範囲に記載の発明の範囲および精神から逸脱することなく、種々の変形および変更を行うことができると理解すべきである。
【図面の簡単な説明】
【図１】選択可能なレジスタを構成する１つの公知のアーキテクチャを示す。
【図２】選択可能なレジスタを構成する別の公知のアーキテクチャを示す。
【図３】選択可能なレジスタを構成する更に別の公知のアーキテクチャを示す。
【図４】処理のため、利用すべき特定のレジスタをその中から選択するレジスタの一組を示す。
【図５】利用すべきレジスタをその中から選択することができる、複数の組のレジスタを有する集積回路中央処理ユニット用のレジスタの配列を示す。
【図６】図５の配列における動作を略図で示す。
【図７】図５の配列における動作を略図で示す。
【図８】図５の配列における動作を略図で示す。
【符号の説明】
２  レジスタ
４  ４ウェイマルチプレクサ
６  レジスタバス
８、１０  ラッチ
１２、１４  排他的ＯＲゲート
１６  プログラムカウンタレジスタ
Ａ、Ｂ、Ｃ  オペランドレジスタ
１８  制御フィールドストア
２０、２２、２４、２６、３０  レジスタの組
【図１】
0003566769.tif 000003
【図２】
0003566769.tif 000004
【図３】
0003566769.tif 000005
【図４】
0003566769.tif 000006
【図５】
0003566769.tif 000007
【図６】
0003566769.tif 000008
【図７】
0003566769.tif 000009
【図８】
0003566769.tif 000010