JP3680932B2 - レジスタファイルへの書き込みを行うシステム及び方法 - Google Patents

レジスタファイルへの書き込みを行うシステム及び方法 Download PDF

Info

Publication number
JP3680932B2
JP3680932B2 JP2001014283A JP2001014283A JP3680932B2 JP 3680932 B2 JP3680932 B2 JP 3680932B2 JP 2001014283 A JP2001014283 A JP 2001014283A JP 2001014283 A JP2001014283 A JP 2001014283A JP 3680932 B2 JP3680932 B2 JP 3680932B2
Authority
JP
Japan
Prior art keywords
signal
predicate
register
asserted
bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2001014283A
Other languages
English (en)
Other versions
JP2001216153A5 (ja
JP2001216153A (ja
Inventor
ロニー・リー・アーノルド
ゲーリー・ジェイ・ベンジャミン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JP2001216153A publication Critical patent/JP2001216153A/ja
Publication of JP2001216153A5 publication Critical patent/JP2001216153A5/ja
Application granted granted Critical
Publication of JP3680932B2 publication Critical patent/JP3680932B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30141Implementation provisions of register files, e.g. ports
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1039Read-write modes for single port memories, i.e. having either a random port or a serial port using pipelining techniques, i.e. using latches between functional memory parts, e.g. row/column decoders, I/O buffers, sense amplifiers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Description

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

Claims (3)

  1. データの書き込みを行うためのシステムであって、
    複数のレジスタであって、その各々が、セット/リセットラッチを有しており、及び第1の信号及び第2の信号を受信し、前記第1の信号が第1の論理状態を示し及び前記第2の信号がアサートされている場合に前記第1の信号に応じて前記セット/リセットラッチをセットし、前記第1の信号が第2の論理状態を示し及び前記第2の信号がアサートされている場合に前記セット/リセットラッチをリセットするよう構成されている、複数のレジスタと
    該複数のレジスタの各々に接続された書き込みポートであって、該複数のレジスタの1つを識別するレジスタ識別子を受信すると共に前記第1の信号を受信し、該第1及び第2の信号を前記レジスタの各々へ送り、更に、前記レジスタ識別子に応じて、前記複数のレジスタの1つに送られ前記第2の信号をアサートし、及び前記複数のレジスタの他のレジスタに送られ前記第2の信号をデアサートするよう構成されている、書き込みポートと
    を備えているシステム。
  2. 前記書き込みポートが更に、第3の信号を受信し、及び該第3の信号を前記第1及び第2の信号と共に前記レジスタの各々に送るよう構成され、該第3の信号が、前記第1の信号に関連する命令が有効である場合にアサートされ、該命令が無効である場合にデアサートされ、
    前記複数のレジスタの各々が更に、前記第3の信号を受信し、及び該第3の信号がアサートされている場合にのみ前記第1及び第2の信号に応じて前記セット/リセットラッチをセットし、該第3の信号がアサートされている場合にのみ前記第2の信号に応じて前記セット/リセットラッチをリセットするよう構成されている、請求項1に記載のシステム。
  3. データの書き込みを行うためのシステムであって、
    複数のレジスタであって、その各々が、セット/リセットラッチを有しており、
    第1の信号と前記複数のレジスタのうちの1つを識別するレジスタ識別子とを受信する手段と、
    前記第1の信号及び前記第2の信号を前記複数のレジスタの各々へ送る手段と、
    前記レジスタ識別子に応じて、前記複数のレジスタのうちの1つへ送られる前記第2の信号をアサートし、及びその他のレジスタの各々に送られる前記第2の信号をデアサートする手段とを備え、
    前記複数のレジスタのうちの1つのレジスタが、
    該1つのレジスタにより受信された前記第1の信号が第1の論理状態を示す場合に前記アサートされた第2の信号に基づき該1つのレジスタの前記セット/リセットラッチをセットする手段と、
    該1つのレジスタにより受信された前記第1の信号が第2の論理状態を示す場合に前記アサートされた第2の信号に基づき該1つのレジスタの前記セット/リセットラッチをリセットする手段と
    を含む、システム。
JP2001014283A 2000-01-28 2001-01-23 レジスタファイルへの書き込みを行うシステム及び方法 Expired - Fee Related JP3680932B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/493,336 US6512706B1 (en) 2000-01-28 2000-01-28 System and method for writing to a register file
US09/493336 2000-01-28

Publications (3)

Publication Number Publication Date
JP2001216153A JP2001216153A (ja) 2001-08-10
JP2001216153A5 JP2001216153A5 (ja) 2005-03-10
JP3680932B2 true JP3680932B2 (ja) 2005-08-10

Family

ID=23959813

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001014283A Expired - Fee Related JP3680932B2 (ja) 2000-01-28 2001-01-23 レジスタファイルへの書き込みを行うシステム及び方法

Country Status (2)

Country Link
US (1) US6512706B1 (ja)
JP (1) JP3680932B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6910123B1 (en) * 2000-01-13 2005-06-21 Texas Instruments Incorporated Processor with conditional instruction execution based upon state of corresponding annul bit of annul code
US7143270B1 (en) 2004-01-30 2006-11-28 Hewlett-Packard Development Company, L.P. System and method for adding an instruction to an instruction set architecture
US20060200654A1 (en) * 2005-03-04 2006-09-07 Dieffenderfer James N Stop waiting for source operand when conditional instruction will not execute
US8583897B2 (en) * 2009-02-02 2013-11-12 Arm Limited Register file with circuitry for setting register entries to a predetermined value
US9330746B2 (en) * 2014-03-19 2016-05-03 Taiwan Semiconductor Manufacturing Co., Ltd. Resistive memory array

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860017A (en) 1996-06-28 1999-01-12 Intel Corporation Processor and method for speculatively executing instructions from multiple instruction streams indicated by a branch instruction
US5859999A (en) 1996-10-03 1999-01-12 Idea Corporation System for restoring predicate registers via a mask having at least a single bit corresponding to a plurality of registers
JP3897388B2 (ja) * 1996-12-27 2007-03-22 シャープ株式会社 シリアルアクセス方式の半導体記憶装置

Also Published As

Publication number Publication date
JP2001216153A (ja) 2001-08-10
US6512706B1 (en) 2003-01-28

Similar Documents

Publication Publication Date Title
TWI424314B (zh) 半導體裝置及選擇去選擇串聯互連記憶體裝置的方法
US7301373B1 (en) Asymmetric precharged flip flop
US6594755B1 (en) System and method for interleaved execution of multiple independent threads
US6115808A (en) Method and apparatus for performing predicate hazard detection
US6956406B2 (en) Static storage element for dynamic logic
US9158328B2 (en) Memory array clock gating scheme
US20020120813A1 (en) System and method for multiple store buffer forwarding in a system with a restrictive memory model
JP2000030465A (ja) 同期パイプライン・バ―スト・メモリおよびその動作方法
US6128687A (en) Fast fault detection circuitry for a microprocessor
JP3631146B2 (ja) データハザードを検出するシステム
US6421758B1 (en) Method and system for super-fast updating and reading of content addressable memory with a bypass circuit
JP3756409B2 (ja) データハザード検出システム
US10223110B2 (en) Central processing unit and arithmetic unit
JP3680932B2 (ja) レジスタファイルへの書き込みを行うシステム及び方法
US6169422B1 (en) Apparatus and methods for high throughput self-timed domino circuits
JP3756410B2 (ja) 述語データを提供するシステム
JP3704046B2 (ja) データハザードを検出するために用いられるデータを融合するためのシステム及び方法
JPH0218498B2 (ja)
JP4888562B2 (ja) メモリ回路およびメモリ回路のデータ書き込み・読み出し方法
JP3756411B2 (ja) データハザードを検出するシステム
US6463548B1 (en) Method and apparatus to enforce clocked circuit functionality at reduced frequency without limiting peak performance
US7085147B2 (en) Systems and methods for preventing malfunction of content addressable memory resulting from concurrent write and lookup operations
US7053664B2 (en) Null value propagation for FAST14 logic
US7170316B2 (en) Programmable logic array latch
JP7163554B2 (ja) 装置、方法、プログラム、システム、およびコンピュータ可読ストレージ媒体

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040405

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040405

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050418

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050426

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050510

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090527

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees