JP3625586B2 - プロセッサの命令実行制御システム - Google Patents
プロセッサの命令実行制御システム Download PDFInfo
- Publication number
- JP3625586B2 JP3625586B2 JP23477896A JP23477896A JP3625586B2 JP 3625586 B2 JP3625586 B2 JP 3625586B2 JP 23477896 A JP23477896 A JP 23477896A JP 23477896 A JP23477896 A JP 23477896A JP 3625586 B2 JP3625586 B2 JP 3625586B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- register
- program counter
- value
- timing
- 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
Links
Images
Landscapes
- Advance Control (AREA)
Description
【発明の属する技術分野】
本発明は、複数の命令列の実行機能を備えた複数命令流パイプライン計算機におけるプロセッサの命令実行制御システムに関する。
【0002】
【従来の技術】
パイプライン計算機において、その処理性能を向上させるために同時に複数の命令を実行するスーパースカラ方式や、命令の発行順序を変えて実行するアウトオブオーダ発行が用いられている。
【0003】
その際に、性能低下の原因となる命令間のデータ依存を回避するための技術としてレジスターリネーミング(register renaming :レジスタ名前替え)が用いられる。このレジスターリネーミングを用いることにより、命令依存のうち、先行の命令がそのレジスタの値をリードしてからでないとレジスタに新しい値を書き込めないといった逆依存と、同じレジスタに同時に書き込もうとしたという出力依存という二つの依存を取り除くことができる。これにより依存による性能の低下を抑えることが可能となる。
【0004】
【発明が解決しようとする課題】
しかしながら、上記のようなパイプライン計算機であっても、真の依存、即ち、命令依存のうち、先行の命令の結果を利用して次の命令の演算を行うといった場合は、その実行が待たされるのは避けられず、この場合は、プロセッサの演算資源が使われずに無駄になるという問題があった。
【0005】
このような点から、演算ユニットの有効利用が図れ、演算処理能力を向上させることのできるプロセッサの命令実行制御システムの実現が望まれていた。
【0006】
【課題を解決するための手段】
本発明は、前述の課題を解決するため次の構成を採用する。
〈請求項1の構成〉
複数の命令流をそれぞれ形成する複数の命令コードが格納される命令キャッシュと、前記各命令流に対応する複数のプログラムカウンタを有し、いずれかのプログラムカウンタのカウント値に基づいて前記命令キャッシュから対応する命令コードを出力させるPCユニットと、該出力された命令コードをデコードし、デコード命令の供給すべき演算ユニットを決定するデコーダとを備えるプロセッサの命令実行制御システムにおいて、前記デコーダは前記命令で示すソースレジスタ及び該レジスタに対応させたディスティネーションレジスタを指定し、前記PCユニットに前記複数の命令流を設定順に選択する選択信号を出力すると共に選択した命令流を識別するための識別タグを生成するプログラムカウンタ制御部と、前記各命令流の識別タグ毎に識別タグと前記ディスティネーションレジスタとによって決定するエントリに、演算ユニットの演算結果を示す演算値を保持し、前記識別タグと前記ソースレジスタを用いて決定するエントリの値を出力するリネーミングレジスタと、該出力されたソースレジスタの値と演算値及び前記デコード命令を受けるとこれらを前記演算ユニットに出力するリザベーションステーションと、を含むことを特徴とするプロセッサの命令実行制御システム。
【0007】
〈請求項1の説明〉
複数の命令流とは、互いに独立に実行可能な命令流を意味している。例えば、このような命令流として二つの命令流があった場合、演算ユニットに対して、これらを交互に与える。これにより、一方の命令流において、真の依存関係のため、次の命令の実行が待たされる場合であっても、他方の命令流の命令を実行する間に、一方の命令流の命令を完了させることができ、その結果、真の依存関係による性能低下を減少させることができる。
【0009】
プログラムカウンタは、命令流と等しい数だけ設けられ、対応した命令流の実行を管理するものである。プログラムカウンタ制御部は、これらのプログラムカウンタに対して、順次有効になるよう制御する。これにより、有効となったプログラムカウンタに対応した命令流が選択され、演算ユニットに与えられる。そして、順次命令流が切り替わるため、真の依存関係による性能低下を減少させることができる。
【0010】
〈請求項3の構成〉
前記プログラムカウンタ制御部は、命令流を連続的に選択する回数値が設定される更新タイミングレジスタを有し、前記複数の命令流をそれぞれ前記回数値だけ連続的に選択することを特徴とする請求項1記載のプロセッサの命令実行制御システム。
【0011】
〈請求項3の説明〉
請求項3の発明は、命令流の切り替えタイミングが複数の命令実行単位となっている点を特徴としている。これにより、一つの命令流が連続して選択される長さを自由に変更することができ、システムに応じて適切な長さとすることにより、プロセッサのスループットを向上させることができる。
【0014】
〈請求項4の構成〉
前記プログラムカウンタ制御部は、前記複数の命令流にそれぞれ対応させた異なるタイミング回数値の設定されている複数のタイミングレジスタを有し、各タイミングレジスタのタイミング回数値の減算を繰り返し、「0」となったタイミングレジスタに対応する命令流を選択することを特徴とする請求項1記載のプロセッサの命令実行制御システム。
【0015】
〈請求項4の説明〉
請求項4の発明は、命令流の切り替えタイミングが複数の命令実行単位で、かつ、それぞれの命令流に対して重み付けした命令実行単位となっている点を特徴としている。これにより、複数の命令流に対して、実行の優先度を与えることができる。
【0018】
〈請求項5の構成〉
前記プログラムカウンタ制御部は、前記複数の命令流にそれぞれ対応させた異なるタイミング回数値の設定されている複数のタイミングレジスタを有し、各タイミングレジスタのタイミング回数値の減算を繰り返し、最も小さい値のタイミングレジスタに対応する命令流を選択することを特徴とする請求項1記載のプロセッサの命令実行制御システム。
【0020】
〈請求項6の構成〉
前記プログラムカウンタ制御部は、前記命令キャッシュからミスヒット信号を受ける毎にミスヒット対応の命令流以外の命令流を選択することを特徴とする請求項1記載のプロセッサの命令実行制御システム。
【0021】
〈請求項6の説明〉
命令キャッシュは、複数の命令流におけるそれぞれの命令を格納するためのキャッシュメモリである。そして、各命令は、この命令キャッシュより読み出されて、演算ユニットで実行される。ここで、命令キャッシュでミスヒットした命令は選択されず、キャッシュヒットした命令のみが読み出されるため、命令キャッシュへの命令読み込みの時間待ちをすることなく、効率的な実行が可能となる。
【0022】
【発明の実施の形態】
以下、本発明の実施の形態を図面を用いて詳細に説明する。
図1は本発明のプロセッサの命令実行制御方法およびシステムの具体例1を示す要部の構成図であるが、これに先立ち、本発明の全体構成について説明する。
【0023】
《全体の構成》
図2は、本発明の全体構成としてのパイプライン計算機の構成図である。
図の装置は、命令メモリ1、命令キャッシュ2、デコーダ3、プログラムカウンタ制御部4、プログラムカウンタユニット(PCユニット)5、リネーミングレジスタ6、データキャッシュ7、データメモリ8、リザベーションステーション10〜13、演算ユニット20〜23からなる。
【0024】
命令メモリ1は、複数の命令を格納するメモリであり、命令キャッシュ2を通じてデコーダ3に接続されている。命令キャッシュ2は、命令メモリ1より、例えば4ワード分といったように命令を一次格納するキャッシュメモリである。
【0025】
デコーダ3からの出力、およびプログラムカウンタ制御部4の出力は、各演算ユニット20〜23のリザベーションステーション10〜13と、リネーミングレジスタ6に接続されている。プログラムカウンタ制御部4は、命令流識別タグ生成ユニットであり、その出力は、命令流の個数分のプログラムカウンタ(PC)を持つプログラムカウンタユニット(以下、PCユニットという)5と、リネーミングレジスタ6に接続されている。
【0026】
図3は、リネーミングレジスタ6の構成説明図である。
リネーミングレジスタ6は、レジスタリネーミング(レジスタ名前替え)を行うための連想メモリであり、vフィールド、destフィールド、INフィールド、dataフィールド、Cフィールド、ICフィールドを備えたテーブルである。ここで、vフィールドは1ビットからなる値で、そのエントリが有効か否かを示すフィールド、destフィールドは、そのエントリが実際にはどのレジスタの値を保持しているかを表すフィールドである。また、INフィールドは、命令流指示ビットフィールドで、[log2n ](小数点以下切り上げ。ただし、n>1で命令流の数。)ビットからなり、そのエントリの値がどの命令流であるかを識別するための値を示している。dataフィールドは、そのレジスタの持つ値、または結果タグを保持するためのフィールドである。Cフィールドは、そのエントリのdataフィールドが実際の値を持っているのか、または、実行完了待ち、即ち結果タグを持っているのかを区別するための1ビットからなるフラグである。更に、ICフィールドは、完了フラグフィールドであり、これは割り込みに対処するためのフィールドである。
【0027】
図2に戻って、各リザベーションステーション10〜13は、対応する各演算ユニット20〜23に接続されており、ロードストアユニット23を除く各演算ユニット20〜22の出力はリネーミングレジスタ6に接続されている。
【0028】
ロードストアユニット23の出力は、データキャッシュ7を通じてデータメモリ8と接続されている。また、各演算ユニット20〜23は、例えば、分岐(Branch)、算術演算(ALU )、シフタ(Shifter )、ロード/ストア(Load/Store)ユニットである。
【0029】
《全体の動作》
最初に、複数の命令流について説明する。
図4は、複数の命令流の説明図である。
この例は、二つのアプリケーションAP1、AP2の命令列を示しており、それぞれの命令(1A)〜(4A)と、命令(1B)〜(4B)とはプログラムの実行順序としては全く無関係である。このような複数の命令流がある場合は、各命令流を同時に実行できれば、演算ユニット20〜23の有効利用が図れ、プロセッサの性能向上に寄与することができる。そこで、リネーミングレジスタ6を用いて以下のように制御を行う。
【0030】
先ず、プログラムカウンタ制御部4が、PCユニット5に、命令流個あるプログラムカウンタのうちの一つを選択する信号を出す。PCユニット5は、選ばれたプログラムカウンタの値で命令キャッシュ2にアクセスし、命令キャッシュ2からの出力は、デコーダ3に送られる。デコーダ3は、命令を解釈し、どの演算ユニット20〜23に送るかを決定し、対応するリザベーションステーション10〜13に出力を送る。同時に、プログラムカウンタ制御部4から[log2n ](小数点以下切り上げ)ビットの命令流識別タグが、同一リザベーションステーションに送られる。同時に、デコーダ3からは、命令のソースレジスタの値とデスティネーションレジスタの値が、また、プログラムカウンタ制御部4からは命令流識別タグが、それぞれリネーミングレジスタ6に送られる。
【0031】
リネーミングレジスタ6は、このソースレジスタの値と命令流識別タグをキーとして連想メモリを引き、合致するもののなかで、最新の値を対応するリザベーションステーションに送る。この時、もし、合致したエントリのCフィールドが無効だった場合、値の代わりに結果タグの値を送る。また、リネーミングレジスタ6はデスティネーションレジスタの値を新しいエントリのdestフィールドに、命令流識別タグをINフィールドに加え、更に、vフィールドを有効にし、CフィールドとICフィールドを無効にし、結果タグを生成してdataフィールドに保持する。また、このリネーミングレジスタ6のエントリの値をリザベーションステーション10〜13に送る。
【0032】
図5は、リネーミングレジスタ6の内容説明図である。
即ち、これは、図3に示した二つのアプリケーションAP1とAP2との命令列が入力されたものであり、アプリケーションAP1およびAP2のそれぞれのR3a とR5a の値がdataフィールドに書き込まれており、従って、Cフィールドが有効(=1)であり、また、ICフィールドも、前の命令での結果を保持しているエントリのICフィールドが全て有効であるため、有効(=1)となっている。このように、AP1とAP2とは、INフィールドの値が異なるため、これらの命令は同時に実行することが可能となる。尚、dataフィールドの「2」「3」「5」「6」は値であり、「105」〜「108」および「201」〜「204」は、結果タグの値である。
【0033】
リザベーションステーション10〜13では、これらのデコードされた命令と命令流識別タグ、リネーミングレジスタ33のエントリの値、ソースレジスタの値(もしくは、タグの値)を保持しており、該当する演算ユニット20〜23が空いていて、かつ、ソースレジスタの値が揃っていれば、その演算ユニット20〜23に送られる。
【0034】
演算ユニット20〜23で実行された結果と命令流識別タグは、ストア命令を除き、リネーミングレジスタ6の先ほどのエントリへ送られ、dataフィールドに結果を書き込み、Cフィールドを有効にする。その際dataフィールドに書かれていた、結果タグの値と一致するタグを持っているものが、リザベーションステーション10〜13にいないかを探し、もし一致するものがあれば、そのリザベーションステーション10〜13にも結果を書き込む。
【0035】
また、ICフィールドは、実行が実際の命令順において前の命令での結果を保持しているエントリのICフィールドが全て有効であれば、有効にする。更に、ICフィールドが有効なもののうちdestエントリが同一なエントリが存在した場合、古い方のエントリのvフィールドを無効にする。
【0036】
このようなプロセッサでは、複数の命令流がお互い共通のパイプラインを使用して実行される。そのため、ある時間内での全体のスループットが向上するかは、複数の命令流をどのように選択するかにかかっている。そこで、以下の各具体例において、複数の命令流の制御機構について説明する。
【0037】
《具体例1》
〈構成〉
図1は、上述したように、本発明のプロセッサの命令実行制御方法およびシステムの要部を示す構成図である。
図のシステムは、命令キャッシュ2と、プログラムカウンタ制御部4と、PCユニット5とを示している。命令キャッシュ2のキャッシュコントローラ2aは、PCユニット5からの信号に基づき、命令を格納しているキャッシュメモリへのアクセスを制御するコントローラである。
【0038】
プログラムカウンタ制御部4は、カウンタ41と現命令識別タグレジスタ42とを備えている。カウンタ41は、n進(nはプログラムカウンタの個数と等しい値)の巡回カウンタであり、クロック101に対応してカウントを行う。現命令識別タグレジスタ42は、現在有効なプログラムカウンタの番号(命令流識別子)を保持するレジスタである。
【0039】
PCユニット5は、複数のプログラムカウンタ(PC)51a、51bと、これらプログラムカウンタ51a、51bのゲート52a、52bからなる。これらゲート52a、52bは、PC制御線40を介してプログラムカウンタ制御部4で制御されるよう構成されている。尚、本具体例では、プログラムカウンタ(PC)51a、51bと、ゲート52a、52bの例として2個の場合を示しているが、この数は命令流に対応して種々の値に構成される。
【0040】
また、図中、102は、キャッシュコントローラ2aからのアック信号、即ち、選択された命令流がキャッシュヒットしたことを示す信号である。
【0041】
〈動作〉
カウンタ41は、クロック101に従って毎サイクルカウントを進める。この出力は、現命令識別タグレジスタ42に保持される。そして、プログラムカウンタ制御部4は、この現命令識別タグレジスタ42の値により、これに該当するプログラムカウンタ51a(51b)の出力のみがキャッシュコントローラ2aに送られるよう、PC制御線40を介してゲート52a(52b)を制御する。これにより、キャッシュコントローラ2aは、キャッシュメモリにアクセスし、キャッシュメモリからは、プログラムカウンタ51a(51b)の値に対応した命令が読み出される。従って、本具体例1では、1サイクル毎に命令流が切り替えられることになる。尚、カウンタ41は、キャッシュコントローラ2aからアック信号102が返ってこない場合は、そのカウントアップを行わない。即ち、キャッシュミスした場合は、そのカウント値が継続して出力され、従って、キャッシュコントローラ2aは、キャッシュミスした命令流のデータが命令キャッシュ2に読み込まれるまで、そのアクセスを行う。
【0042】
〈効果〉
以上のように、本具体例1では、命令流が順次切り替えられるため、一つの命令流の真の依存のために実行が待たされる可能性を減少させ、効率のよい命令の実行が可能となる。即ち、一つの命令流のうち、ある命令(これを命令1とする)に対して、次の命令(命令2とする)が真の依存関係となっており、かつ命令1の実行が2サイクル必要であるとする。このような場合、本具体例では、命令1の次のサイクルでは、他の命令流の命令を実行するため、命令2の実行までには命令1の実行が完了していることになる。このように、ある命令流で真の依存関係があった場合でも、これによる次の命令の実行待ちの可能性を減少させることができる。
【0043】
《具体例2》
〈構成〉
図6は、具体例2の構成図である。
図のシステムは、命令キャッシュ2と、プログラムカウンタ制御部4aと、PCユニット5とを示している。ここで、命令キャッシュ2とPCユニット5とは具体例1と同様であるため、ここでの説明は省略する。
【0044】
プログラムカウンタ制御部4aは、カウンタ41、現命令識別タグレジスタ42を備えると共に、更新タイミングレジスタ43、減算器44、レジスタ45からなる。更新タイミングレジスタ43は、予め設定した命令流の更新タイミングとなる値を格納するレジスタである。減算器44は、更新タイミングレジスタ43の値をクロック101に基づき毎サイクル減算し、その値を減算器44の入力とレジスタ45に出力するよう構成されている。カウンタ41は、減算器44の出力が“0”即ち、レジスタ45の値が0となった場合にカウントアップするカウンタであり、現命令識別タグレジスタ42は、具体例1と同様に、現在有効なプログラムカウンタの番号(命令流識別子)を保持するレジスタである。
【0045】
〈動作〉
更新タイミングレジスタ43に設定された値が減算器44に送られ、毎サイクル減算される。そして、この値が0になるとカウンタ41はその値をカウントアップする。PCユニット5では、このカウンタ41の値に対応したプログラムカウンタの出力をキャッシュコントローラ2aに送るため、それぞれの命令流は、更新タイミングレジスタ43に設定された値のサイクル分連続して実行されることになる。尚、本具体例においても、キャッシュコントローラ2aからのアック信号102が返ってこなかった場合は、減算器44の動作を停止するが、後述する具体例4と同様に、次の命令流を選択するよう構成してもよい。
【0046】
〈効果〉
本具体例では、一つの命令流が連続してフェッチされる長さを更新タイミングレジスタ43に与えることにより、自由に変更することが可能である。これにより、例えば、更新タイミングを、命令キャッシュ2におけるキャッシュのラインサイズに合わせるといった構成にすることにより、効率のよいアクセスが可能となる。即ち、通常、命令はアドレスが連続していることが多いため、ある命令が命令キャッシュ2に存在すれば、次の命令もヒットする可能性が高い。例えば、命令キャッシュ2が、一度に4命令分のデータを読み込む場合、先頭の命令でキャッシュヒットすれば、残りの3命令も必ずヒットすることになる。そこで、更新タイミングレジスタ43の値を4としておくことにより、一つの命令流で、ある命令がヒットすれば、必ず4命令がヒットすることになり、効率のよいアクセスが可能となる。
【0047】
《具体例3》
〈構成〉
図7は、具体例3の構成図である。
この具体例では、上記具体例2において、更新タイミングを命令流毎に重み付けを行ったものである。図7において、プログラムカウンタ制御部4bは、現命令識別タグレジスタ42と、プログラムカウンタの個数分の更新タイミングレジスタ43a、43bと、これに対応した個数分設けられたテンポラリレジスタ46a、46bと、減算器44と、比較器47とからなる。即ち、更新タイミングレジスタ43a、43bの出力は、それぞれテンポラリレジスタ46a、46bを通して減算器44と比較器47に入力される。また、減算器44の出力はテンポラリレジスタ46a、46bへ入力され、比較器47の出力は、現命令識別タグレジスタ42に入力されるよう構成されている。
【0048】
〈動作〉
各プログラムカウンタ51a、51bに対応して設定された更新タイミングレジスタ43a、43bの値は、それぞれのテンポラリレジスタ46a、46bに送られる。テンポラリレジスタ46a、46bの値は、減算器44で交互あるいは同時に毎サイクル減算され、結果は、それぞれのテンポラリレジスタ46a、46bに書き戻される。また、このテンポラリレジスタ46a、46bの値は比較器47に送られ、0になった方のプログラムカウンタ51a(51b)の識別子が現命令識別タグレジスタ42に送られる。または、それぞれのテンポラリレジスタ46a、46bの値が比較器47で比較され、小さい方のプログラムカウンタ識別子が現命令識別タグレジスタ42に送られる。
【0049】
図8は、それぞれの方法の説明図であり、(a)が、0になった方のプログラムカウンタ51a(51b)の識別子を選択する場合、(b)が、テンポラリレジスタ46a、46bの値を比較器47で比較し、小さい方のプログラムカウンタ識別子を選択する場合を示している。
【0050】
図8の例は、更新タイミングレジスタ43aの値が5、更新タイミングレジスタ43bの値が3である場合を示し、図面右側の数字がテンポラリレジスタ46a、46bの値を示している。尚、テンポラリレジスタ46a、46bの値は矢印方向に変化していくものとする。また、(a)の場合、0になった次のサイクルから、他方のテンポラリレジスタの値が0になるまでの間を、そのテンポラリレジスタに対応したプログラムカウンタの識別子を選択するものとする。尚、双方が0になった場合は、公知のバスアービトレーションの手法と同様に、それまで選択していた以外の識別子を選択するものとする。これにより、(a)の場合、プログラムカウンタ51a、51bの更新タイミングが、図中の太線で示すサイクルの割合で行われることとなる。
【0051】
また、(b)で示す例においても、テンポラリレジスタ46a、46bの値が等しくなった場合は、それまで選択していた以外の識別子を選択するものとする。従って、(b)の場合もプログラムカウンタ51a、51bの更新タイミングは、図中、太線で示す割合となる。
【0052】
〈効果〉
以上のように、具体例3では、複数の命令流に対して、実行の優先度を自由に与えることが可能となる。
【0053】
《具体例4》
〈構成〉
図9は、具体例4の構成図である。
この具体例では、命令キャッシュ2において、キャッシュミスした命令流は選択しないようにしたものである。
【0054】
図9において、プログラムカウンタ制御部4cは、カウンタ41、現命令識別タグレジスタ42と共に、ミスヒット中識別子レジスタ48を備えている。このミスヒット中識別子レジスタ48は、現在ミスヒット中とそうでない識別子を保持するレジスタであり、信号102を通じてキャッシュコントローラ2aから送られてきたミスヒット識別子、完了識別子の信号により更新する。即ち、現命令識別タグレジスタ42で保持する現命令識別子は、信号103を通してキャッシュコントローラ2aに送られる。キャッシュコントローラ2aではアクセスが完了した識別子を信号102を通してプログラムカウンタ制御部4cに返す。これにより、ミスヒット中識別子レジスタ48は、ミスヒット識別子、完了識別子を保持するよう構成されている。
【0055】
〈動作〉
カウンタ41は、クロック101に基づき、毎サイクル(あるいは毎アクセス)ごとにカウントアップを行うが、ミスヒット中識別子レジスタ48を参照し、その命令流がミスヒット中であった場合は、これに対応したプログラムカウンタ51a(51b)の識別子を送らず、次のプログラムカウンタ51b(51a)の識別子をPCユニット5に送る。即ち、現命令識別タグレジスタ42が保持する現命令識別子がキャッシュコントローラ2aに送られ、これがキャッシュミスであった場合は、その命令がミスヒット中識別子レジスタ48に保持される。これによりカウンタ41は、カウントアップを行い、次のプログラムカウンタ51b(51a)の識別子を選択する。従って、ミスヒット中の命令は選択されず、次の命令の実行に進むよう処理される。
【0056】
〈効果〉
以上のように、キャッシュミスヒット中の命令流は選択されず、キャッシュミスヒット処理時間中は、他の命令流(他のプログラムカウンタ)の処理を進めることができ、効率的な命令の実行が可能となる。
【図面の簡単な説明】
【図1】本発明のプロセッサの命令実行制御方法およびシステムの具体例1を示す要部の構成図である。
【図2】本発明の全体構成としてのパイプライン計算機の構成図である。
【図3】リネーミングレジスタ6の構成説明図である。
【図4】複数の命令流の説明図である。
【図5】リネーミングレジスタの内容説明図である。
【図6】本発明のプロセッサの命令実行制御方法およびシステムにおける具体例2の構成図である。
【図7】本発明のプロセッサの命令実行制御方法およびシステムにおける具体例3の構成図である。
【図8】本発明のプロセッサの命令実行制御方法およびシステムにおける具体例3の更新タイミングの説明図である。
【図9】本発明のプロセッサの命令実行制御方法およびシステムにおける具体例4の構成図である。
【符号の説明】
2 命令キャッシュ
2a キャッシュコントローラ
4、4a、4b、4c プログラムカウンタ制御部
5 PCユニット
41 カウンタ
42 現命令識別タグレジスタ
43、43a、43b 更新タイミングレジスタ
44 減算器
45 レジスタ
46a、46b テンポラリレジスタ
47 比較器
48 ミスヒット中識別子レジスタ
51a、51b プログラムカウンタ
Claims (6)
- 複数の命令流をそれぞれ形成する複数の命令コードが格納される命令キャッシュと、前記各命令流に対応する複数のプログラムカウンタを有し、いずれかのプログラムカウンタのカウント値に基づいて前記命令キャッシュから対応する命令コードを出力させるPCユニットと、該出力された命令コードをデコードし、デコード命令の供給すべき演算ユニットを決定するデコーダとを備えるプロセッサの命令実行制御システムにおいて、
前記デコーダは前記命令で示すソースレジスタ及び該レジスタに対応させたディスティネーションレジスタを指定し、
前記PCユニットに前記複数の命令流を設定順に選択する選択信号を出力すると共に選択した命令流を識別するための識別タグを生成するプログラムカウンタ制御部と、
前記各命令流の識別タグ毎に識別タグと前記ディスティネーションレジスタとによって決定するエントリに、演算ユニットの演算結果を示す演算値を保持し、前記識別タグと前記ソースレジスタを用いて決定するエントリの値を出力するリネーミングレジスタと、
該出力されたソースレジスタの値と演算値及び前記デコード命令を受けるとこれらを前記演算ユニットに出力するリザベーションステーションと、
を含むことを特徴とするプロセッサの命令実行制御システム。 - 前記プログラムカウンタ制御部は、前記複数の命令流を巡回選択することを特徴とする請求項1記載のプロセッサの命令実行制御システム。
- 前記プログラムカウンタ制御部は、命令流を連続的に選択する回数値が設定される更新タイミングレジスタを有し、前記複数の命令流をそれぞれ前記回数値だけ連続的に選択することを特徴とする請求項1記載のプロセッサの命令実行制御システム。
- 前記プログラムカウンタ制御部は、前記複数の命令流にそれぞれ対応させた異なるタイミング回数値の設定されている複数のタイミングレジスタを有し、各タイミングレジスタのタイミング回数値の減算を繰り返し、「0」となったタイミングレジスタに対応する命令流を選択することを特徴とする請求項1記載のプロセッサの命令実行制御システム。
- 前記プログラムカウンタ制御部は、前記複数の命令流にそれぞれ対応させた異なるタイミング回数値の設定されている複数のタイミングレジスタを有し、各タイミングレジスタのタイミング回数値の減算を繰り返し、最も小さい値のタイミングレジスタに対応する命令流を選択することを特徴とする請求項1記載のプロセッサの命令実行制御システム。
- 前記プログラムカウンタ制御部は、前記命令キャッシュからミスヒット信号を受ける毎にミスヒット対応の命令流以外の命令流を選択することを特徴とする請求項1記載のプロセッサの命令実行制御システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23477896A JP3625586B2 (ja) | 1996-07-22 | 1996-07-22 | プロセッサの命令実行制御システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23477896A JP3625586B2 (ja) | 1996-07-22 | 1996-07-22 | プロセッサの命令実行制御システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1040102A JPH1040102A (ja) | 1998-02-13 |
JP3625586B2 true JP3625586B2 (ja) | 2005-03-02 |
Family
ID=16976233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP23477896A Expired - Fee Related JP3625586B2 (ja) | 1996-07-22 | 1996-07-22 | プロセッサの命令実行制御システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3625586B2 (ja) |
-
1996
- 1996-07-22 JP JP23477896A patent/JP3625586B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH1040102A (ja) | 1998-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3547482B2 (ja) | 情報処理装置 | |
JP2504830Y2 (ja) | デ―タ処理装置 | |
US5727227A (en) | Interrupt coprocessor configured to process interrupts in a computer system | |
EP0488819B1 (en) | Conditional branch instructions execution apparatus | |
US6687812B1 (en) | Parallel processing apparatus | |
JP2018506776A (ja) | 選択的ページミス変換プリフェッチによってプログラムメモリコントローラにおけるページ変換ミスレイテンシを隠すこと | |
US6912650B2 (en) | Pre-prefetching target of following branch instruction based on past history | |
US7139899B2 (en) | Selected register decode values for pipeline stage register addressing | |
US6275903B1 (en) | Stack cache miss handling | |
US6957323B2 (en) | Operand file using pointers and reference counters and a method of use | |
US6862676B1 (en) | Superscalar processor having content addressable memory structures for determining dependencies | |
KR100335746B1 (ko) | 무순서 동작시 예외를 트래킹하는 장치를 구비하는 데이터 처리 시스템및 그 방법 | |
US20230359385A1 (en) | Quick clearing of registers | |
US20040199749A1 (en) | Method and apparatus to limit register file read ports in an out-of-order, multi-stranded processor | |
JP3616556B2 (ja) | 拡張命令を処理する並列プロセッサ | |
JPH06161779A (ja) | データ処理装置の割込み制御方式 | |
JP3625586B2 (ja) | プロセッサの命令実行制御システム | |
JP3606435B2 (ja) | モードを変更する分岐命令を制御する命令処理装置および方法 | |
CN111984314A (zh) | 使用位反转顺序的矢量存储 | |
CN111984313A (zh) | 矢量位转置 | |
JPH08263289A (ja) | 複数命令流パイプライン計算機 | |
JP2534662B2 (ja) | 命令キヤツシユ制御方法 | |
JP2000181707A (ja) | 命令制御装置及びその方法 | |
JPH0326862B2 (ja) | ||
JPH076037A (ja) | 命令解読装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040824 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041025 |
|
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: 20041116 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041130 |
|
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: 20081210 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081210 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091210 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091210 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101210 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |