(57)【特許請求の範囲】
【請求項１】
データの書き込みを行うためのシステムであって、
複数のレジスタであって、その各々が、セット／リセットラッチを有しており、及び、第１の信号及び第２の信号を受信し、前記第１の信号が第１の論理状態を示し及び前記第２の信号がアサートされている場合に前記第１の信号に応じて前記セット／リセットラッチをセットし、前記第１の信号が第２の論理状態を示し及び前記第２の信号がアサートされている場合に前記セット／リセットラッチをリセットするよう構成されている、複数のレジスタと、
該複数のレジスタの各々に接続された書き込みポートであって、該複数のレジスタの１つを識別するレジスタ識別子を受信すると共に前記第１の信号を受信し、該第１及び第２の信号を前記レジスタの各々へ送り、更に、前記レジスタ識別子に応じて、前記複数のレジスタの１つに送られる前記第２の信号をアサートし、及び前記複数のレジスタの他のレジスタに送られる前記第２の信号をデアサートするよう構成されている、書き込みポートと
を備えているシステム。
【請求項２】
前記書き込みポートが更に、第３の信号を受信し、及び該第３の信号を前記第１及び第２の信号と共に前記レジスタの各々に送るよう構成され、該第３の信号が、前記第１の信号に関連する命令が有効である場合にアサートされ、該命令が無効である場合にデアサートされ、
前記複数のレジスタの各々が更に、前記第３の信号を受信し、及び該第３の信号がアサートされている場合にのみ前記第１及び第２の信号に応じて前記セット／リセットラッチをセットし、該第３の信号がアサートされている場合にのみ前記第２の信号に応じて前記セット／リセットラッチをリセットするよう構成されている、請求項１に記載のシステム。
【請求項３】
データの書き込みを行うためのシステムであって、
複数のレジスタであって、その各々が、セット／リセットラッチを有しており、
第１の信号と前記複数のレジスタのうちの１つを識別するレジスタ識別子とを受信する手段と、
前記第１の信号及び前記第２の信号を前記複数のレジスタの各々へ送る手段と、
前記レジスタ識別子に応じて、前記複数のレジスタのうちの１つへ送られる前記第２の信号をアサートし、及びその他のレジスタの各々に送られる前記第２の信号をデアサートする手段とを備え、
前記複数のレジスタのうちの１つのレジスタが、
該１つのレジスタにより受信された前記第１の信号が第１の論理状態を示す場合に前記アサートされた第２の信号に基づき該１つのレジスタの前記セット／リセットラッチをセットする手段と、
該１つのレジスタにより受信された前記第１の信号が第２の論理状態を示す場合に前記アサートされた第２の信号に基づき該１つのレジスタの前記セット／リセットラッチをリセットする手段と
を含む、システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般にデータ処理技術に関し、特に、レジスタファイル内に含まれるレジスタにデータを書き込むシステム及び方法に関し、レジスタファイルの各レジスタにおける１ビットのデータを保持するアプリケーションにおいて特に有利なものである。
【０００２】
【従来の技術】
多くの命令処理システムの性能を向上させるために、述語(predication)技術が開発されてきた。これに関連して、コンピュータプログラムの各命令は、必ずしもコンピュータプログラムの各実行時に実行されるものではない、ということは周知である。例えば、コンピュータプログラムの特定の部分は、実行時の特定の状態が真である場合にのみ実行される。しかし、命令が実行すべきか否かが判明する前に命令処理システムが命令の処理を開始することが一般により効率的であり、述語技術は、かかる処理の発生を可能にするものである。
【０００３】
ここで、述語データは処理システム内に保持される。述語データは、処理システムにより処理される命令が、入手可能な最新の情報に基づいて実行されるべきであるか否かを示す。述語データは、処理システムのパイプラインによって命令が処理される際に更新される。述語データが、命令が実行されるべきでないことを示す場合には、その命令は実行されることなくパイプラインを通過する。述語データが、命令が実行されるべきであることを示す場合には、その命令はパイプラインの１つによって実行される。パイプラインによる命令の処理が、その命令が実行すべきか否かの判定に先だって開始されるため、命令は全体として、パイプラインによって通常はより迅速に処理されることになる。
【０００４】
述語データは、典型的には、述語レジスタファイル内に保持される。該述語レジスタファイルは、通常は、複数の述語レジスタを含み、その各レジスタには１ビットの情報が格納される。コンピュータプログラムの各命令は、述語レジスタファイル中の複数の述語レジスタのうちの１つに関連付けされ、複数の命令を同一の述語レジスタに関連付けすることも可能である。ここで、各命令は、通常は、その命令に関連付けされた述語レジスタを識別するレジスタ識別子を含む。１つの命令が処理システムのパイプラインの１つによって処理されている間、述語レジスタ中の該命令に関連付けされた情報のビットは、現時点で入手可能な情報に基づき、該命令を実行すべきか否かを示すものとなる。
【０００５】
述語データは、処理システムのパイプラインにより処理されている命令の幾つかによって生成される。種々の命令が処理されるため、１つの命令によって述語レジスタの１つに含まれる述語値がアサートされ、それと同じ述語値が他の命令によって異なる時刻にデアサートされる場合がある。
【０００６】
述語レジスタに含まれる述語値は、そのアサート時に、述語レジスタに関連付けされている命令が現時点で述語イネーブルにされている(predicate enabled)こと（即ち、該命令が該命令を処理しているパイプラインにより実行されるべきこと）を示す。述語レジスタに含まれる述語値は、そのデアサート時に、述語レジスタに関連付けされている命令が現時点で述語ディセーブルにされていること（即ち、該命令が実行されずにパイプラインを通過すべきこと）を示す。
【０００７】
１つの命令が処理システムのパイプラインの１つによって処理されている間に、該命令に関連付けされた述語レジスタ中のビット値が分析される。該ビット値がアサートされている場合には、該命令はイネーブルにされ、したがって該命令は実行される。また、該ビット値がデアサートされている場合には、該命令はディセーブルにされ、したがって該命令は実行されずにパイプラインを通過する。
【０００８】
述語レジスタファイル中に格納された述語データはまた、データハザード(data hazard)を解決するために使用することも可能である。例えば、２つの命令間にデータハザードが存在する場合には、該データハザードが解決し又は解消するまで、それら命令の１つが通常は停止される(stall)（即ち、更なる処理を一時的に阻止する）。述語レジスタファイル中の述語データを分析することにより、それらの命令のうちの１つが述語ディセーブルにされていて実行されないことを検出することが可能である。その結果として、１つの命令についての停止を、データエラーのリスクを伴うことなく防止し又は除去することができる。したがって、述語レジスタファイル中の述語データを分析することにより、場合によっては、データハザードを解決し、ストールを防止し又は低減させることが可能である。
【０００９】
【発明が解決しようとする課題】
言うまでもなく、新たな述語データの生成時に述語レジスタファイルを迅速に更新させて、述語レジスタファイルが入手可能な最新の述語データを含むようにすることが重要である。しかし、残念ながら、述語レジスタファイルに対する書き込み及び読み出しに必要となる遅延の量は限られたものである。このため、当業界では、述語レジスタファイルを新たに生成された述語データで更新するために必要な時間量を最小限にすることが当業界で必要とされており、かかる必要性については未だ取り組まれていない。
【００１０】
【課題を解決するための手段】
本発明は、上述のような従来技術の欠陥及び欠点を克服するものである。一般に、本発明は、レジスタファイルに対するデータの書き込みを行うシステム及び方法を提供する。
【００１１】
アーキテクチャ上、本発明のシステムは、複数のレジスタと該レジスタの各々に結合された少なくとも１つの書き込みポートとを利用する。該書き込みポートは、複数のレジスタのうちの１つを識別するレジスタ識別子を受信し、及び少なくとも第１の信号（例えば１ビットの述語データ又はセット／リセット信号対のうちの１つの信号）を受信する。書き込みポートは、第１の信号及びデコード信号をレジスタの各々に送る。書き込みポートは、レジスタ識別子により識別される１つのレジスタへ送られるデコード信号をアサートし、及びその他のレジスタに送られるデコード信号をデアサートするよう構成される。レジスタの各々は、セット／リセットラッチを含み、書き込みポートから送られた第１の信号及びデコード信号を受信するよう構成される。レジスタは、受信した第１の信号が第１の論理状態を示し、受信したデコード信号がアサートされている場合に、そのセット／リセットラッチを第１の信号に応じてセットする。レジスタは、受信した第１の信号が第２の論理状態を示し、受信したデコード信号がアサートされている場合には、そのセット／リセットラッチをリセットする。レジスタは、受信したデコード信号がデアサートされている場合には、書き込みポートから送信される第１の信号を無視する。
【００１２】
本発明の別の実施形態によれば、書き込みポートは、第１の信号と共に有効信号を受信し、該有効信号をレジスタの各々へ送る。該有効信号は、第１の信号を生成した命令が有効である（例えば述語イネーブルにされている）場合にアサートされ、命令が無効である（例えば述語ディセーブルにされている）場合にデアサートされる。レジスタの各々は、有効信号を受信し、該有効信号がアサートされている場合にのみ第１の信号及びデコード信号に応じてそのセット／リセットラッチをセット又はリセットするよう構成されている。
【００１３】
本発明はまた、データを格納する方法を提供するものと捉えることが可能である。本方法は、以下のステップにより広く概念化することができる。該ステップは、セット／リセットラッチを各々が有する複数のレジスタを設け、述語ビットやセット／リセット信号対の一方の信号といった少なくとも第１の信号とレジスタのうちの１つを識別するレジスタ識別子とを受信し、レジスタの各々に前記第１の信号及びデコード信号を送信し、前記レジスタ識別子に応じて１つのレジスタに送信されたデコード信号をアサートし、その他のレジスタの各々に送信されたデコード信号をデアサートし、前記１つのレジスタにより受信された前記第１の信号が第１の論理状態を示す場合に、前記アサートされたデコード信号に基づいて前記１つのレジスタのセット／リセットラッチをセットし、前記１つのレジスタにより受信された前記第１のビットが第２の論理状態を示す場合に、前記アサートされたデコード信号ビットに基づいて前記１つのレジスタのセット／リセットラッチをリセットする、というものである。
【００１４】
本発明の他の特徴及び利点は、以下の詳細な説明を図面を参照して検討することにより当業者には明らかとなろう。かかる全ての特徴及び利点は、本明細書において、本発明の範囲内に含まれ、特許請求の範囲により保護されることが意図されている。
【００１５】
本発明は、以下の図面を参照することにより一層良好に理解することができる。同図面における構成要素は、その互いの比率が必ずしも一定になっておらず、本発明の原理を明確に例証することに重点がおかれている。更に、同様の符号は幾つかの図を通して対応する部分を示している。
【００１６】
【発明の実施の形態】
本発明は、一般に、１ビットの情報を各々が有する複数のレジスタを含む述語レジスタファイル又はその他のタイプのレジスタファイルに対するデータの書き込みを効率的に行うシステム及び方法に関するものである。本発明の原理を説明するために図１を参照する。同図は、従来のスーパースケーラ処理システム15（以下、単に処理システム15と称す）を示している。該処理システム15は、コンピュータプログラムの命令を受信して、その各命令を複数のパイプライン21に１つずつ割り当てる、命令分散ユニット18を含んでいる。各パイプライン21は、該パイプライン21が受信した各命令を処理し、適当な場合には実行するよう構成されている。
【００１７】
通常、各パイプライン21は、特定のタイプの命令（例えば、整数演算、浮動小数点演算、メモリ演算等）のみを処理するよう構成される。このため、命令分散ユニット18は、各命令をその命令と互換性のあるパイプライン21にのみ割り当てるよう構成される。更に、図１では、平明化のため、述語レジスタファイル22及び制御回路24は、１つのパイプライン21に結合されたものとして示されているが、これと同様に、各パイプライン21が述語レジスタファイル22及び制御回路24に結合されていることに留意されたい。
【００１８】
制御回路24は、パイプライン21による命令の処理を制御する。例えば、制御回路24は、パイプライン21により処理されている命令を分析し、命令を停止させてデータエラーを防止することが可能である。制御回路24は、述語レジスタファイル22に接続して、パイプライン21による命令の処理を制御する際に述語レジスタファイル22に格納されているデータを分析することが可能である。「System and Method for Providing Predicate Data」と題する本出願人の同時係属中の米国特許出願（代理人整理番号第10971191号）は、パイプライン21による命令の処理を制御するために述語レジスタファイル22中の述語データを如何に使用するかについて説明している。
【００１９】
図２は、述語レジスタファイル22をより詳細に示すブロック図である。同図に示すように、述語レジスタファイル22は複数の述語レジスタ27を含み、その各述語レジスタ27は１ビットの述語データを保持する。ここで、幾つかの命令は、パイプライン21の１つにより処理される際に、述語データを生成する。述語ビットが生成されると、該述語ビットは、該述語ビットを生成した命令を処理しているパイプライン21により書き込みポート31のうちの１つへ送られる。パイプライン21はまた、述語ビットを書き込むべきレジスタ27を識別するnビットのレジスタ識別子（nは０よりも大きい任意の整数）を上記書き込みポート31へ送る。
【００２０】
述語ビット及び述語ビットに関連付けされたレジスタ識別子を受信する書き込みポート31は、レジスタファイル22のレジスタ27の各々に述語ビットを送る。また、書き込みポート31は、レジスタファイル22のレジスタ27の各々にデコードビットを送る。上記書き込みポート31によりレジスタ27の各々に送られたデコードビットは、レジスタ識別子により識別されたレジスタ27を除いてデアサートされる。ここで、書き込みポート31は、レジスタ識別子をデコードし、アサートされたデコードビットをレジスタ識別子により識別されたレジスタ27に送る。アサートされたデコードビットを受信する述語レジスタ27は、書き込みポート31から受信する述語ビットに基づいてレジスタ27に含まれるビット値を更新するよう構成される。述語レジスタ27の残り（即ち、書き込みポート31からデアサートされたデコードビットを受信する述語レジスタ27）は、書き込みポート31により送られる上記述語値を無視するよう設計される。
【００２１】
その結果として、述語ビットが生成されると、述語ビットを生成した命令を処理しているパイプライン21は、レジスタファイル22に対し述語ビットとその述語ビットに関連付けされたレジスタ識別子とを送る。レジスタファイル22は、受信した述語ビットに基づいて、レジスタ識別子により識別される述語レジスタ27に含まれる値を更新するよう構成される。述語レジスタ27の残りは、上記述語ビットによる影響を受けない。
【００２２】
実施形態によっては、述語ビットを生成した命令が無効である場合がある。例えば、述語レジスタファイル22のデータは、命令が実行されるべきではなく、実行されずにパイプライン21を通過するべきである、ということを示す場合がある。述語を生成する命令が無効である場合には、その命令により生成された述語ビットは無視されるべきである。
【００２３】
かかる実施形態では、有効ビットは通常は、述語ビットと該述語ビットに関連付けされたレジスタ識別子と共に述語レジスタファイル22に送られる。有効ビットは、そのデアサート時に、述語ビットを生成した命令が無効であること、したがって述語ビットが無視されるべきであることを示す。有効ビットは、そのアサート時に、述語ビットを生成した命令が有効であること、及び述語ビットが関連するレジスタ識別子により識別された述語レジスタにより無視されるべきでないことを示す。換言すれば、述語ビットは、その述語ビットと共に書き込みポート31の１つに送られる有効ビットがアサートされた場合にレジスタ27の１つを更新するために使用されなければならない。
【００２４】
述語ビット、該述語ビットに関連するレジスタ識別子、及び該述語ビットに関連する有効ビット（即ち、述語ビットと共に書き込みポート31に送られた有効ビット）を受信する書き込みポート31は、述語ビット及びデコードビットと共に有効ビットをレジスタ27の各々に送る。レジスタ27の各々は、有効ビットがデアサートされている場合に、該デアサートされた有効ビットと共に送られる述語ビットを無視するよう設計される。したがって、有効ビットがデアサートされている場合には、いずれのレジスタ27も上記述語ビットに基づいてそこに含まれる値を更新しない。一方、有効ビットがアサートされている場合には、アサートされたデコードビットを受信する述語レジスタ27は、その述語ビットに基づいてそこに含まれる値を更新するよう設計されている。なお、図２において書き込みポート31の１つをレジスタ27の１つに接続するものとして示す接続34の各々は、上述の述語、デコード、及び有効ビットが書き込みポート31に同時に送られるよう、３ビット接続(three-bit connection)とすることが可能である。
【００２５】
図３は、述語レジスタ27の各々を実施するために使用することができる例示的な回路を示す。ここで、各書き込みポート31は、それぞれANDゲート41の１つに接続される。ANDゲート41の各々は、入力として、ANDゲート41に接続されている書き込みポート31から送られる有効ビット及びデコードビットを受信する。したがって、ANDゲート41は、ANDゲート41に接続されている書き込みポート31が、述語レジスタ27の１つを更新するために使用されるべき述語ビットを受信した場合にのみ、アサートされた出力を生成する。
【００２６】
図３に示すように、各ANDゲート41の出力はスイッチング素子45に接続され、該スイッチング素子45を制御する。スイッチング素子45は、NFETであっても、又はある他のタイプのスイッチング機構であってもよい。ANDゲート41の出力は、デアサートされている場合に、該ANDゲート41に接続されているスイッチング素子45をディアクティベートし、アサートされている場合には、上記スイッチング素子45をアクティベートする。更に、図３に示すように、スイッチング素子45の１つのノード51は、接地に接続されている。スイッチング素子45は、アクティベートされると、その接地ノード51を接続52に電気的に接続する。スイッチング素子45は、ディアクティベートされると、開路として動作し、これによりその接地ノード51から接続52を切り離す。したがって、いずれかのANDゲート41の出力がアサートされている場合には、接続52が強制的に接地され、各ANDゲート41の出力がデアサートされている場合には、接続52は接地から切り離される。
【００２７】
各クロックサイクル中に、接続52がプリチャージされ、換言すれば、一時的にアサートされる。例えば、図３に示す実施形態では、接続52の電圧は、一時的に強制的に論理的高レベル電圧Vddになるよう制御される。ここで、図３に示すように、接続52はスイッチング素子54を介してVddに接続されている。スイッチング素子54は、PFETであっても、他の特定のタイプのスイッチング機構であってもよい。スイッチング素子54は、接続57を介して受信されるクロック信号により制御される。クロックサイクルの前半の間、クロック信号は第１の論理状態を示し、クロックサイクルの後半の開始時に第２の論理状態にトグルする。クロック信号の第１の論理状態に応じて、スイッチング素子54は、接続52を電気的にVddに接続し、これにより接続52の電圧を強制的にVddにし、換言すれば、接続52をプリチャージする。クロック信号の第２の論理状態に応じて、スイッチング素子54は、開路として動作し、これにより接続52をVddから切り離す。
【００２８】
また、更に、各ANDゲート41は、イネーブル入力として上述のクロック信号を受信する。クロック信号の第１の論理状態に応じて、各ANDゲート41はディセーブルにされ、換言すれば、ANDゲート41のデータ入力状態に関係なくデアサートされた出力を送る。したがって、接続52のプリチャージ中に、スイッチング素子45の各々がディアクティベートされ、これにより接続52が接地から切り離される。
【００２９】
更に、クロック信号の第２の論理状態に応じて、各ANDゲート41がイネーブルにされる。したがって、接続52の電圧は、ANDゲート41の各々がデアサートされた出力を生成する場合にのみクロックサイクルの後半の間Vddのままである。ANDゲート41のいずれかがアサートされた出力を生成する場合には、スイッチング素子45の少なくとも１つがアクティベートされ、これにより接続52が接地される。
【００３０】
図３に示すように、接続52はインバータ59の入力に接続されている。該インバータ59の出力は、DQラッチ58のイネーブルポート(E)62に接続されている。したがって、上述のクロックサイクルの前半の間、イネーブルポート62はデアサートされた値を受信しなければならない。クロックサイクルの後半の間、イネーブルポート62は、スイッチング素子45の各々がディアクティベートされた場合に、デアサートされた値を受信し続けなければならない。しかし、スイッチング素子45のいずれかがアクティベートされた場合には、ラッチ58のイネーブルポート62はアサートされた値を受信しなければならない。
【００３１】
更に、ラッチ58のイネーブルポート62がアサートされた値を受信する場合には、該ラッチ58はイネーブルにされる。したがって、ラッチ58は、クロックサイクルの後半の間（即ちプリチャージ後）、ANDゲート41により受信される入力値によりイネーブルにされることが可能である。ここで、ANDゲート41の１つが、クロックサイクルの後半の間に入力としてアサートされた有効ビットとアサートされたデコードビットとを同時に受信する場合には、ラッチ58はクロックサイクルの後半の間イネーブルにされなければならない。
【００３２】
また、書き込みポート31は、それぞれANDゲート71に接続されている。ANDゲート71の各々は、該ANDゲート71に接続されている書き込みポート31から送られる有効ビット、デコードビット、及び述語ビットをデータ入力として受信する。したがって、ANDゲート41に接続されている書き込みポート31が、述語レジスタ27の１つを更新するために使用されるべきアサートされた述語ビットを受信する場合にのみ、ANDゲート71がアサートされた出力を生成する。
【００３３】
図３に示すように、各ANDゲート71の出力は、スイッチング素子75に接続され、該スイッチング素子75を制御する。スイッチング素子75は、NFETであっても他のタイプのスイッチング機構であってもよい。ANDゲート71の出力は、デアサートされている場合に、ANDゲート71に接続されたスイッチング素子75をディアクティベートし、またアサートされている場合には、上記スイッチング素子75をアクティベートする。更に、図３に示すように、スイッチング素子75の１つのノード81は接地に接続されている。スイッチング素子75は、アクティベートされると、接続83をスイッチング素子75の接地ノード81に電気的に接続する。スイッチング素子75は、ディアクティベートされると、開路として動作し、これによりスイッチング素子75の接地ノード81から接続83を切り離す。したがって、いずれかのANDゲート71の出力がアサートされると、接続83が強制的に接地され、各ANDゲート71の出力がデアサートされると、接続83が接地から切り離される。
【００３４】
各クロックサイクル中、接続83は接続52のプリチャージと同様にプリチャージされ、換言すれば、一時的にアサートされる。したがって、図３に示す上述の実施形態において、接続83の電圧は、クロックサイクルの前半の間一時的に強制的にVddになるよう制御される。ここで、図３に示すように、接続83はスイッチング素子89を通してVddに接続されている。スイッチング素子89は、PFETであっても、又は他の特定のタイプのスイッチング機構であってもよい。スイッチング素子89は、接続92を介して受信される上述のクロック信号により制御される。上述のように、クロックサイクルの前半の間、クロック信号は第１の論理状態を示し、クロックサイクルの後半の開始時に第２の論理状態にトグルする。クロック信号の第１の論理状態に応じて、スイッチング素子89は、接続83を電気的にVddに接続し、これにより接続83の電圧を強制的にVddにし、換言すれば、接続83をプリチャージする。クロック信号の第２の論理状態に応じて、スイッチング素子89は、開路として動作し、これにより接続83をVddから切り離す。
【００３５】
また、更に、各ANDゲート71は、上述のクロック信号をイネーブル入力として受信する。クロック信号の第１の論理状態に応じて、各ANDゲート71はディセーブルにされ、換言すれば、ANDゲート71のデータ入力状態に関係なくデアサートされた出力を送る。したがって、接続83のプリチャージ中に、スイッチング素子75の各々がディアクティベートされ、これにより接続83が接地から切り離される。
【００３６】
更に、クロック信号の第２の論理状態に応じて、各ANDゲート71がイネーブルにされる。したがって、ANDゲート71の各々がデアサートされた出力を生成する場合にのみ、クロックサイクルの後半の間に接続83の電圧がVddとなり続ける。ANDゲート71のいずれかがアサートされた出力を生成する場合には、スイッチング素子75の少なくとも１つがアクティベートされ、これにより接続83が接地される。
【００３７】
図３に示すように、接続83は、インバータ96の入力に接続されている。該インバータ96の出力は、DQラッチ58のデータ入力ポート(D)98に接続されている。したがって、上述のクロックサイクルの前半の間、データ入力ポート98はデアサートされた値を受信しなければならない。クロックサイクルの後半の間、スイッチング素子75の各々がディアクティベートされている場合、入力ポート98はデアサートされた値を受信し続けなければならない。しかし、スイッチング素子75のいずれかがアクティベートされている場合には、ラッチ58のデータ入力ポート98は、アサートされた値を受信しなければならない。
【００３８】
図３に示すように、ラッチ58は、接続65を介して上述のクロック信号を受信する。クロックサイクルの終わりでクロック信号が再びトグルし、これに応じて、ラッチ58は、ラッチ58がイネーブルにされている場合、その出力ポート（Q）99の論理値を強制的にそのデータ入力ポート98の論理値にする。クロック信号がクロックサイクルの終わりでトグルする際にラッチ58がイネーブルにされていない場合には、ラッチ58は、出力接続99の値を変化させない。
【００３９】
結果的に、パイプライン21（図１）の１つにより処理されている有効な命令が述語ビットを生成する場合、述語ビットが、アサートされた有効ビット及びレジスタ識別子と共に、書き込みポート31（図２）の１つに同時に送られる。これに応じて、書き込みポート31は、レジスタ識別子をデコードし、該レジスタ識別子により識別される述語レジスタ27にアサートされたデコードビットを送る。書き込みポート31はまた、デアサートされたデコードビットを他の述語レジスタ27に送る。書き込みポートはまた、各デコードビットと共に、受信した述語ビット及び有効ビットを送る。
【００４０】
述語レジスタ27の各々におけるANDゲート41の１つは、入力として有効ビットとデコードビットとを共に受信する。更に、述語レジスタ27の各々のANDゲート71の１つは、有効ビット、デコードビット及び述語ビットをデータ入力として受信する。その結果、上記書き込みポート31により送られたデータは、デアサートされたデコードビットを受信する述語レジスタ27の各々におけるラッチ58の値に影響を与えない。ここで、デアサートされたデコードビットは、デアサートされたデコードビットを受信するANDゲート41,71が、アサートされた出力を生成するのを阻止し、したがって上記ANDゲート41,71にそれぞれ接続されたスイッチング素子45,75をアクティベートさせるのを阻止する。
【００４１】
しかし、レジスタ識別子により識別された述語レジスタ27は、上述の書き込みポート31からアサートされたデコードビットを受信する。したがって、書き込みポート31からこのレジスタ27に送られるデータは、レジスタ27のラッチ58に含まれるデータに影響する場合がある。ここで、書き込みポート31からのアサートされたデコードビット及び有効ビットにより、ANDゲート41の１つがクロックサイクルの後半の間（即ち、接続52のプリチャージ後）アサートされた出力を生成し、これによりスイッチング素子45の１つをアクティベートする。その結果、ラッチ58がクロックサイクルの後半の間イネーブルにされる。
【００４２】
更に、上記レジスタ27のANDゲート71の１つは、上述の書き込みポート31から有効ビット、デコードビット、及び述語ビットを同時に受信する。有効ビット及びデコードビットが共にこのレジスタ27に対してアサートされるため、ANDゲート71の出力は、述語ビットの値に対応する。
【００４３】
述語ビットがアサートされている場合には、上記ANDゲート71の出力がアサートされ、ANDゲート71に接続されたスイッチング素子75がアクティベートされる。したがって、接続83は、クロックサイクルの後半の間接地され、接続65のクロック信号がクロックサイクルの終わりでトグルする際に、データ入力ポート98がアサートされた値を受信する。その結果、クロック信号がクロックサイクルの終わりでトグルする際に、出力ポート99の値は強制的にアサートされた値となるよう制御される。
【００４４】
一方、述語ビットがデアサートされている場合には、上記ANDゲート71の出力がデアサートされ、ANDゲート71に接続されたスイッチング素子75がディアクティベートされる。したがって、他の書き込みポート31に接続された他のANDゲート71がいずれもアサートされた出力を生成しないとすると、接続83はプリチャージ後にアサートされたままでなければならない。その結果、接続65のクロック信号がクロックサイクルの終わりでトグルする際に、データ入力ポート98がデアサートされた値を受信し、この時点で出力ポート99の値が強制的にデアサートされた値となる。
【００４５】
上記技術によれば、パイプライン21の１つにおいて有効な命令の処理を介して生成された各述語ビットは、述語レジスタ27の１つのラッチ58に含まれる値を更新する。更に、従来の技術の欄で上述したように、出力ポート99の値は、述語レジスタ27に含まれる値を表し、パイプライン21において命令の処理を制御するためにいつでも制御回路24を介して読出されることが可能である。
【００４６】
図４は、ラッチ58を実施するために使用することができる例示的な回路を示している。同図に示すように、ポート62を介して受信されるイネーブル信号と接続65を介して受信されるクロック信号とは、ANDゲート106に入力される。更に、上記クロック信号はインバータ109にも入力され、該インバータ109の出力はANDゲート106に入力される。したがって、ANDゲート106は、クロック信号を反転させた信号も入力として受信する。しかし、クロック信号の反転は、インバータ109によりわずかに遅延される。したがって、ANDゲート106の出力は、各クロックサイクル毎にインパルス(PCK)を生成しなければならない。
【００４７】
このインパルスは、伝達ゲート115を制御するために使用される。伝達ゲート115を実施するために他のデバイスを使用することができるが、図４に示す実施形態は、それぞれPFET及びNFETなど、２つのスイッチング素子118,119により構成されている。一方のスイッチング素子119はインパルスを制御信号として受信し、他方のスイッチング素子118は前記インパルスを反転したものを制御信号として受信する。伝達ゲート115は、ANDゲート106がインパルスを生成する際に接続122の値をデータ入力ポート98の値に設定するよう構成されている。該接続122の値は、ラッチ58に含まれるデータ値(Q)として接続99を介して出力される。
【００４８】
図４に示すラッチ58の設計に伴う問題は、生成されるインパルスについてクロック信号がトグルするときまでにイネーブル信号がアサートされなければならない、ということである。換言すれば、クロック信号がクロックサイクルの終わりでトグルするまで接続62のイネーブル信号がアサートされていない場合には、ラッチ58に含まれる値は、次のクロックサイクルの終わりまで更新することができない。状況によっては、レジスタ27を更新することになる述語データが、クロックサイクルの終わりよりも前であるがそれに近接して、レジスタ27により受信される場合がある。イネーブル信号をアサートする際の遅延に起因して、イネーブルポート62の値は、同一クロックサイクルの終わりでクロック信号がトグルするときまでアサートされない場合がある。したがって、上記クロックサイクル中にANDゲート106によりインパルスが生成されず、このため、レジスタ27が次のクロックサイクルまで更新されないことになる。レジスタファイル22の述語データは可能な限り早く更新されることが望ましいため、遅れて到着する述語データ（即ち、クロックサイクルの終わりの直前に到着する述語データ）がレジスタ27を更新するのを可能にするラッチ58の構成が望ましい。
【００４９】
本発明は一般に、述語レジスタ内で実施することが可能であると共に遅れて到着した述語データにより述語レジスタを更新することを可能にするラッチを提供する。本発明の原理を説明するために、図５を参照する。同図は、本発明による処理システム150を示す。図５を図１と比較することにより分かるように、処理システム150は、レジスタファイル22の代りにレジスタファイル152が使用される以外は、処理システム15と同じとすることができる。更に、図６を図２と比較することにより分かるように、レジスタファイル152は、述語レジスタ160の構成以外は、従来のレジスタファイル22と同じとすることができる。
【００５０】
図７は、本発明の述語レジスタ160の各々を実施するために使用することができる例示的な回路を示している。同図に示すように、本発明の述語レジスタ160は、図３に示す従来のレジスタ27により使用されるようなDQラッチ58の代りに、セット／リセットラッチ165を利用する。該セット／リセットラッチ165は、他の周知のセット／リセットラッチと同様に動作するものである。ここで、セット／リセットラッチ165は、セットポート(S)172及びリセットポート(R)174を含む。ラッチ165は、接続65により受信されるクロック信号がトグルし、及びセットポート172により受信される信号がアサートされている場合に、接続177上の出力値(Q)をアサートするよう設計されている。該ラッチ165は、接続65により受信されるクロック信号がトグルし、及びリセットポート174により受信される信号がアサートされている場合に、接続177上の出力値(Q)をデアサートするよう設計されている。
【００５１】
セットポート172はインバータ175の出力に接続され、該インバータ175の入力は接続176に接続されている。接続176は、図３の接続52と同様に、スイッチング素子54を介してVddに接続され、ラッチ165により受信される同じクロック信号（CLK）のクロックサイクルの前半の間にプリチャージされる。ここで、スイッチング素子54は、接続57を介してクロック信号を受信し、クロック信号のクロックサイクルの前半の間に接続176をVddに電気的に接続し、クロックサイクルの後半の間に接続176をVddから電気的に切り離すよう構成されている。
【００５２】
図３の述語レジスタ27と同様に、述語レジスタ160は、レジスタファイル152の各書き込みポート31毎にANDゲート182を含む。図３のANDゲート41と同様に、各ANDゲート182の出力はスイッチング素子45に接続されている。該スイッチング素子45は、図３に示す実施形態と同様に動作する。したがって、スイッチング素子45の各々は、ANDゲート182のそれぞれ１つからのアサートされた出力に応じてアクティベートされ、またANDゲート182のそれぞれ１つからのデアサートされた出力に応じてディアクティベートされる。スイッチング素子45は、ディアクティベートされると、開路として動作する。スイッチング回路45は、アクティベートされると、電気的に接続176を接地に接続する。更に、従来のレジスタ27のANDゲート41と同様に、ANDゲート182は、接続176のプリチャージ中にクロック信号によりディセーブルにされ、接続176のプリチャージ後にクロック信号によりイネーブルにされる。
【００５３】
ANDゲート182の各々は、書き込みポート31のそれぞれ１つから同時にデータを受信する。ここで、書き込みポート31に接続されたANDゲート182は、書き込みポート31から同時に送られる有効ビット、デコードビット及び述語ビットを受信する。ANDゲート182により受信されるデコードビット及び有効ビットがアサートされている場合には、ANDゲート182により同時に受信される述語ビットは、有効な命令の処理を介して生成されており、ラッチ165により出力される値を更新するために使用されなければならない。特に、述語ビットがアサートされている場合に、ANDゲート182は、アサートされた出力を生成するよう設計されている。その結果、ANDゲート182に接続されたスイッチング素子45がアクティベートされる。したがって、接続176が接地され、セットポート172がインバータ175からアサートされた信号を受信する。このアサートされた信号に応じて、ラッチ165は、接続177に送る出力値（Q）をアサートする。したがって、述語レジスタ160がラッチ165の値を更新するために使用されるべきアサートされた述語値を受信する場合、ANDゲート182の１つが、ANDゲート182に接続されたスイッチング素子45をアクティベートし、これにより、クロック信号がクロックサイクルの終わりでトグルする際にラッチ165がセットされる。
【００５４】
一方、ANDゲート182は、受信した有効ビット、デコードビット、又は述語ビットがデアサートされている場合に、デアサートされた出力を生成するよう設計されている。その結果として、ANDゲート182に接続されたスイッチング素子45がディアクティベートされ、その他のANDゲート182がいずれもアサートされた出力を生成しなければ接続176はVddに維持される。したがって、セットポート172は、インバータ175からデアサートされた信号を受信し、インバータ175からデアサートされた信号に応じて接続177に送る出力値を変化させない。
【００５５】
リセットポート174はインバータ183の出力に接続されており、インバータ183の入力は接続184に接続されている。接続184は、図３の接続83と同様に、スイッチング素子89を介してVddに接続され、上述のクロックサイクルの前半の間にプリチャージされる。ここで、スイッチング素子89は、ラッチ165により受信される同一クロック信号を受信するよう構成されている。スイッチング素子89は、受信したクロック信号に基づいて、該クロック信号のクロックサイクルの前半の間は接続184をVddに電気的に接続し、該クロックサイクルの後半間は接続184をVddから電気的に切り離す。
【００５６】
また、述語レジスタ160は、レジスタファイル152の各書き込みポート31に対してANDゲート185を含む。図３のANDゲート71と同様に、各ANDゲート185の出力はスイッチング素子75に接続されている。スイッチング素子75は、図３に示す実施形態と同様に動作する。したがって、スイッチング素子75の各々は、ANDゲート185のそれぞれ１つからのアサートされた出力に応じてアクティベートされ、またANDゲート185のそれぞれ１つからのデアサートされた出力に応じてディアクティベートされる。スイッチング素子45は、ディアクティベートされると、開路として動作し、アクティベートされると、接続184を電気的に接地に接続する。更に、従来のレジスタ27のANDゲート71と同様に、ANDゲート185は、接続184のプリチャージ中にクロック信号によりディセーブルにされ、接続184のプリチャージ後にクロック信号によりイネーブルにされる。
【００５７】
ANDゲート182と同様に、ANDゲート185の各々は、書き込みポート31のそれぞれ１つから同時に送られるデータを受信する。ここで、書き込みポート31に接続されたANDゲート182は、書き込みポート31から同時に送られる有効ビット、デコードビット及び述語ビットを受信する。しかし、各ANDゲート185により受信される述語ビットは、インバータ189を通過し、よって反転される。ANDゲート182は、受信した有効ビット、デコードビット、及び反転された述語ビットがアサートされている場合に、アサートされた出力を生成するよう設計されている。その結果、ANDゲート185に接続されているスイッチング素子75がアクティベートされる。したがって、接続184が接地され、リセットポート174がインバータ183からアサートされた信号を受信する。このアサートされた信号に応じて、ラッチ165は、接続177に送る出力値(Q)をデアサートする。したがって、述語レジスタ160が、ラッチ165の値を更新するために使用されなければならないデアサートされた述語値を受信すると、ANDゲート185の１つが、そのANDゲート185に接続されたスイッチング素子75をアクティベートし、これにより、クロック信号がクロックサイクルの終わりでトグルする際にラッチ165がリセットされる。
【００５８】
一方、ANDゲート182は、受信した有効ビット、デコードビット、又は反転された述語ビットがデアサートされている場合には、デアサートされた出力を生成するよう設計されている。その結果、ANDゲート185に接続されたスイッチング素子75がディアクティベートされ、他のいずれのANDゲート185もアサートされた出力を生成しない場合には接続184がVddに維持される。したがって、リセットポート174がインバータ183からデアサートされた信号を受信し、該インバータからのデアサートされた信号に応じて接続177に送る出力値を変化させない。
【００５９】
図８は、セット／リセットラッチ165を実施するために使用することができる例示的な回路を示す。同図に示すように、該回路は、接続65に入力としてクロック信号を受信するANDゲート206を含む。該ANDゲート206はまた、インバータ209を介して上記クロック信号の反転信号を入力として受信する。インバータ209に伴う遅延の量が限られたものであるため、ANDゲート206は、クロック信号がトグルする度にインパルスを生成する。
【００６０】
ANDゲート206の出力は、スイッチング素子212を制御するために使用される。スイッチング素子212を実施するために他の装置を使用してもよいが、図８に示すスイッチング素子212はNFETである。スイッチング素子212は、インパルスを受信すると、接続215を電気的に接地に接続する。その他の場合には、スイッチング素子212は、開路として動作し、接続215を接地から電気的に切り離す。
【００６１】
また、ラッチ165は、２つのスイッチング素子221,223を含む。該スイッチング素子221，223を実施するために他のデバイスを使用してもよいが、図８に示すスイッチング素子221,223はNFETである。スイッチング素子221,223は、セットポート172及びリセットポート174により受信される信号を介してそれぞれ制御される。ここで、ANDゲート206がインパルスを生成する際に、セットポート172により受信される信号がアサートされている場合には、ノード225が接地される。更に、ノード225は、インバータ231の入力に接続されている。したがって、ノード225が接地されると、接続177の値(Q)がアサートされる。逆に、ANDゲート206がインパルスを生成する際に、リセットポート174により受信される信号がアサートされている場合には、ノード233が接地に接続される。図８に示すように、ノード233はインバータ236,238を介してノード225に接続されている。したがって、ノード233が接地されると、接続177の値(Q)はデアサートされる。
【００６２】
図８を検討することにより分かるように、ラッチ165がイネーブルにされる必要はない。したがって、述語データは、レジスタ160の更新のために次のクロックサイクルまで待機することを必要とせずに、クロックサイクルの終わり近くでレジスタ160に到着することが可能となる。したがって、レジスタ27に対し、１クロックサイクル中に到達する述語データがそれと同一のクロックサイクル中にレジスタ160を更新する可能性がより高くなる。
【００６３】
本書では、クロックサイクルの前半でプリチャージを行い、クロックサイクルの後半でラッチ165を更新するものとして本発明を説明してきたことが理解されよう。しかし、他のタイミング及び回路機構を利用して本発明を実施することも可能であることが当業者には明らかであろう。
【００６４】
更に、本発明の好ましい実施形態を説明するにあたり、同一の値を有する述語データのみが、同一のクロックサイクル中に同一のレジスタ160を更新し、このため同一クロックサイクル中にレジスタファイル152に送られる、という処理システム150のアーキテクチャを想定している。しかし、異なる値を有する複数の述語ビットが同一クロックサイクル中に同一述語レジスタ160を更新することが可能である場合には、図７に示す実施形態の構成を変更する必要がある場合があるということは、当業者には明らかであろう。
【００６５】
図９は、述語レジスタ160を実施するために使用することができる回路の他の実施形態を示す。同図の回路は、図７に示す回路と類似したものであり類似した動作をするものである。しかし、レジスタ160は、各書き込みポート31から述語ビットを受信する代りに各書き込みポート31から一対のセット及びリセット信号を受信する。ここで、セット信号は、ラッチ165の値がアサートされなければならない時にアサートされ、リセット信号は、ラッチ165の値がデアサートされなければならない時にアサートされなければならない。図９に示すように、ANDゲート182の１つにより、述語ビットの代りに各書き込みポート31からのセット信号が受信され、ANDゲート185の１つにより、述語ビットの反転の代りに各書き込みポート31からのリセット信号が受信される。その結果、ANDゲート182の１つが、アサートされた有効ビット、デコードビット、及びセット信号を受信する際に、ラッチ165の値がアサートされなければならず、またANDゲート185の１つが、アサートされた有効ビット、デコードビット、及びリセット信号を受信する際に、ラッチ165の値がデアサートされなければならない。この実施形態ではインバータ189は不要である。
【００６６】
なお、図７及び図９に示す回路を実施する際に「ワイヤードOR」構造を利用することが可能である。しかし、所望される場合には、他のタイプの配線構造を使用することも可能である。
動作
処理システム150及びそれに関連する方法の好ましい使用及び動作を以下で説明する。
【００６７】
図５のパイプライン21の１つにより処理されている命令が述語ビットを生成し、該命令が有効であるものと仮定する。この場合、命令を処理するパイプライン21は、述語ビット、アサートされた有効ビット、及び述語ビットにより更新される述語レジスタ160を識別するレジスタ識別子をレジスタファイル152に送る。
【００６８】
書き込みポート31の１つは、上記データを受信し、レジスタ識別子をデコードすることにより述語ビットによりいずれの述語レジスタ160が更新されるかを決定する。この書き込みポート31は、述語レジスタ160の各々に対し、受信した述語ビット、アサートされた有効ビット、及びデコードビットを送る。受信されたレジスタ識別子により識別される述語レジスタ160に送られたデコードビットは、アサートされる。他の述語レジスタ160に送られたデコードビットの残りは、デアサートされる。その結果、上記レジスタ識別子により識別された述語レジスタ160が更新され、他の述語レジスタ160は、上記書き込みポート31から送られるデータにより影響を受けない。
【００６９】
上述のレジスタ識別子により識別された述語レジスタ160のANDゲート182（図７）は、入力として、書き込みポート31により送られるアサートされた有効ビット、アサートされたデコードビット、及び述語ビットを受信する。書き込みポート31により送られる述語ビットがアサートされている場合、上記ANDゲート182は、接続176がプリチャージされた後にアサートされた出力を生成する。その結果、上記ANDゲート182に接続されたスイッチング素子45がアクティベートされ、接続176が接地される。したがって、セットポート172は、アサートされた信号を受信する。これに応じて、セット／リセットラッチ165は、接続65のクロック信号がクロックサイクルの終わりでトグルすると、接続177の出力値(Q)をアサートする。
【００７０】
述語ビットがデアサートされた場合には、上記ANDゲート182がデアサートされた出力を生成し、該ANDゲート182に接続されたスイッチング素子45がディアクティベートされる。他のいずれのANDゲート182もアサートされた出力を生成しなければ、接続176の電圧はVddのままとなる。したがって、セットポート172は、デアサートされた信号を受信し、接続177の出力値(Q)は、上記ANDゲート182の出力により影響を受けない。
【００７１】
更に、上述のレジスタ識別子により識別される述語レジスタ160のANDゲート185は、書き込みポート31により送られたアサートされた有効ビット、アサートされたデコードビット、及び述語ビットの反転を受信する。書き込みポート31により送られる述語ビットの反転がアサートされている場合には、上記ANDゲート185は、接続184がプリチャージされた後にアサートされた出力を生成する。その結果、上記ANDゲート185に接続されたスイッチング素子75がアクティベートされ、接続184が接地される。したがって、リセットポート174はアサートされた信号を受信する。これに応じて、セット／リセットラッチ165は、接続65のクロック信号がクロックサイクルの終わりでトグルすると、接続177の出力値(Q)をデアサートする。
【００７２】
一方、述語ビットの反転がデアサートされると、上記ANDゲート185はデアサートされた出力を生成し、該ANDゲート185に接続されたスイッチング素子75がディアクティベートされる。他のいずれのANDゲート185もアサートされた出力を生成しなければ、接続184の電圧はVddのままとなる。したがって、リセットポート174はデアサートされた信号を受信し、接続177の出力値(Q)は上記ANDゲート185の出力により影響を受けない。
【００７３】
上述より、上記命令により生成される述語値は、述語ビットがアサートされているかデアサートされているかに関わらず、述語ビットに関連するレジスタ識別子により識別される述語レジスタ160を更新する。
【００７４】
なお、上記命令が無効である場合には、パイプライン21は、アサートされた有効ビットではなくデアサートされた有効ビットを送る。その結果、述語レジスタファイル152の述語レジスタ160のいずれも、命令により生成される述語ビットに応じて更新されなくなる。
【００７５】
また、実施形態によっては、述語レジスタ160が有効ビットを受信することは必ずしも必要ではない。例えば、代替的な実施形態では、書き込みポート31は、受信したレジスタ識別子が無効な命令により生成されたものであるか否かを判定するよう構成することが可能である。受信したレジスタ識別子が無効な命令により生成されたものである場合には、上記レジスタ識別子に応じて書き込みポート31により送られる各デコードビットをデアサートするよう書き込みポート31を構成することも可能である。その結果、無効な命令により生成されるデータに応じて何れの述語レジスタ160も更新されるべきではない。述語レジスタファイル152を更新するためにセット及びリセット信号が使用される他の実施形態では、無効な命令に応じてセット及びリセット信号を生成するパイプライン21は、命令が無効であるという判定に基づいてセット信号及びリセット信号の両方をアサートすることがないよう設計することも可能である。他の実施形態を採用して、無効な命令からの述語データが述語レジスタファイル152を更新しないようにすることも可能である。
【００７６】
また、ラッチ165のセットポート172及び／又はリセットポート174に送られる信号を適切にアサート及びデアサートするために使用される図７の回路は、実例としての目的のみのために示されている。上記回路は、本発明の原理から逸脱することなく、変更され及び／又は他の回路に置換されてもよい。しかし、セット／リセットラッチ165の構造は、適当な動作のためにイネーブル信号を必要としないような構造でなければならない。
【００７７】
更に、本発明は、本書では、述語データのビットをレジスタ160に書き込むものとして記述されているが、本発明は、他のタイプのデータをレジスタ160に同様に書き込むために使用されてもよい。本発明は、レジスタファイル内の各レジスタにデータの１ビットのみを書き込む適用例において特に有用なものとなる。
【００７８】
なお、本発明の上述の実施形態、特に如何なる「好適な」実施形態も、単なる考え得る実施例に過ぎないものであり、本発明の原理を明確に理解するために示されたものである、ということを強調しなければならない。本発明の思想及び原理から実質的に逸脱することなく、本発明の上述の実施形態に対し、多くの変形及び変更を行うことが可能である。かかるすべての変更及び変形は、本書において、本発明の範囲内に含まれ、及び特許請求の範囲により保護されることが意図されている。
【００７９】
以下においては、本発明の種々の構成要件の組み合わせからなる例示的な実施態様を示す。
１．データの書き込みを行うためのシステム(150)であって、
複数のレジスタ(160)であって、その各々が、セット／リセットラッチ(165)を有しており、及び第１の信号及び第２の信号を受信し、該レジスタ(160)が更に、前記第１の信号が第１の論理状態を示し及び前記第２の信号がアサートされている場合に前記第１の信号に応じて前記セット／リセットラッチ(165)をセットし、前記第１の信号が第２の論理状態を示し及び前記第２の信号がアサートされている場合に前記セット／リセットラッチ(165)をリセットするよう構成されている、複数のレジスタ(160)と、
該複数のレジスタ(160)の各々に接続された書き込みポート(31)であって、該レジスタ(160)の１つを識別するレジスタ識別子を受信すると共に前記第１の信号を受信し、該第１及び第２の信号を前記レジスタ(160)の各々へ送り、更に、前記レジスタ識別子に応じて、前記レジスタ(160)の１つに送られた前記第２の信号をアサートすると共に前記レジスタ(160)の他のレジスタに送られた前記第２の信号をデアサートするよう構成されている、書き込みポート(31)と
を備えているシステム(150)。
２．前記各レジスタ(160)が、前記第１の信号が前記第２の論理状態を示し及び前記第２の信号がアサートされている場合に、該第１の信号に応じて前記セット／リセットラッチ(165)をリセットするよう構成されている、前項１に記載のシステム(150)。
３．前記各レジスタ(160)が更に、前記書き込みポート(31)から送られた第３の信号を受信し、及び該第３の信号に応じて前記セット／リセットラッチ(165)をリセットするよう構成されている、前項１に記載のシステム(150)。
４．前記第１の信号が述語ビットを示すものである、前項１に記載のシステム(150)。
５．前記書き込みポート(31)が更に、第３の信号を受信し、及び該第３の信号を前記第１及び第２の信号と共に前記レジスタ(160)の各々に送るよう構成され、該第３の信号が、前記第１の信号に関連する命令が有効である場合にアサートされ、該命令が無効である場合にデアサートされ、
前記レジスタ(160)の各々が更に、前記第３の信号を受信し、及び該第３の信号がアサートされている場合にのみ前記第１及び第２の信号に応じて前記セット／リセットラッチ(165)をセットし、該第３の信号がアサートされている場合にのみ前記第２の信号に応じて前記セット／リセットラッチ(165)をリセットするよう構成されている、前項１に記載のシステム(150)。
６．前記セット／リセットラッチ(165)のセットポート(172)に接続された第１の接続(176)と、
出力接続を有する第１の論理ゲート(182)であって、前記各レジスタ(160)に送られた前記第１及び第２の信号を受信し、該第１の信号が前記第１の論理状態を示し及び該第２の信号がアサートされている場合に、アサートされた信号を前記出力接続に送るよう構成されている、第１の論理ゲート(182)と、
前記第１の接続(176)と前記第１の論理ゲート(182)の前記出力接続とに接続された第１のスイッチング素子(45)であって、その状態が、前記第１の論理ゲート(182)の前記出力接続に送られた信号を介して制御される、第１のスイッチング素子(45)と、
前記セット／リセットラッチ(165)のリセットポート(174)に接続された第２の接続(184)と、
出力接続を有する第２の論理ゲート(185)であって、前記各レジスタ(160)に送られた前記第２の信号と該各レジスタ(160)に送られた前記第１の信号の反転とを受信すると共に、前記第２の信号がアサートされており及び前記第１の信号が前記第２の論理状態を示す場合に前記出力接続にアサートされた信号を送るよう構成されている、第２の論理ゲート(185)と、
前記第２の接続(184)と前記第２の論理ゲート(185)の前記出力接続とに接続された第２のスイッチング素子(75)であって、その状態が、前記第２の論理ゲート(185)の前記出力接続に送られた信号を介して制御される、第２のスイッチング素子(75)と
を更に備えている、前項１に記載のシステム(150)。
７．前記第１の接続(176)が、第１のインバータ(175)を介して前記セットポート(172)に接続され、前記第２の接続(184)が、第２のインバータ(183)を介して前記リセットポート(174)に接続されている、前項６に記載のシステム(150)。
８．データの書き込み方法であって、
セット／リセットラッチ(165)を各々が有する複数のレジスタ(160)を設け、
第１の信号と前記レジスタ(160)のうちの１つを識別するレジスタ識別子とを受信し、
前記複数のレジスタ(160)の各々に前記第１の信号及び第２の信号を送信し、前記レジスタ識別子に応じて前記レジスタ(160)の１つに送信された前記第２の信号をアサートし、
該レジスタ識別子に応じて他のレジスタ(160)の各々に送信された前記第２の信号をデアサートし、
前記レジスタ(160)の１つにより受信された前記第１の信号が第１の論理状態を示す場合に、前記アサートされた第２の信号に基づき前記レジスタの１つの前記セット／リセットラッチ(165)をセットし、
前記レジスタ(160)の１つにより受信された前記第１の信号が第２の論理状態を示す場合に、前記アサートされた第２の信号に基づき前記レジスタの１つの前記セット／リセットラッチ(165)をリセットする、
という各ステップを含む方法。
９．前記デアサートされた第２の信号に基づき前記他のレジスタ(160)に送信された前記第１の信号を無視するステップを更に含む、前項８に記載の方法。
10．第３の信号を受信し、
前記第１の信号に関連付けされた命令が有効である場合に前記第３の信号をアサートし、
前記第１の信号に関連付けされた命令が無効である場合に前記第３の信号をデアサートし、
前記第３の信号に基づき前記セット／リセットラッチ(165)をセットする前記ステップ及び前記セット／リセットラッチ(165)をリセットする前記ステップの一方を実行する、
という各ステップを更に含む、前項８に記載の方法。
【図面の簡単な説明】
【図１】述語レジスタファイルを利用する従来の処理システムを示すブロック図である。
【図２】図１に示す述語レジスタファイルをより詳細に示すブロック図である。
【図３】図２に示すレジスタを実施するために使用される回路の概要を示す回路図である。
【図４】図３に示すDQラッチを実施するために使用される回路の概要を示す回路図である。
【図５】本発明による述語レジスタファイルを利用する処理システムを示すブロック図である。
【図６】図５に示す述語レジスタファイルをより詳細に示すブロック図である。
【図７】図６に示すレジスタを実施するために使用することができる例示的な回路の概要を示す回路図である。
【図８】図７に示すセット／リセットラッチを実施するために使用することができる例示的な回路の概要を示す回路図である。
【図９】図６に示すレジスタを実施するために使用することができる回路の別の実施形態の概要を示す回路図である。
【符号の説明】
31      書き込みポート
45,75     スイッチング素子
150       処理システム
160       述語レジスタ
165       セット／リセットラッチ
172       セットポート
174       リセットポート
175,183   インバータ
176,184   接続
182,185   ANDゲート
【図１】
0003680932.tif 000002
【図２】
0003680932.tif 000003
【図３】
0003680932.tif 000004
【図４】
0003680932.tif 000005
【図５】
0003680932.tif 000006
【図６】
0003680932.tif 000007
【図７】
0003680932.tif 000008
【図８】
0003680932.tif 000009
【図９】
0003680932.tif 000010