JPH1040102A - プロセッサの命令実行制御方法およびシステム - Google Patents

プロセッサの命令実行制御方法およびシステム

Info

Publication number
JPH1040102A
JPH1040102A JP23477896A JP23477896A JPH1040102A JP H1040102 A JPH1040102 A JP H1040102A JP 23477896 A JP23477896 A JP 23477896A JP 23477896 A JP23477896 A JP 23477896A JP H1040102 A JPH1040102 A JP H1040102A
Authority
JP
Japan
Prior art keywords
instruction
streams
program counter
register
cache
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.)
Granted
Application number
JP23477896A
Other languages
English (en)
Other versions
JP3625586B2 (ja
Inventor
Masatoshi Hotta
正利 堀田
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP23477896A priority Critical patent/JP3625586B2/ja
Publication of JPH1040102A publication Critical patent/JPH1040102A/ja
Application granted granted Critical
Publication of JP3625586B2 publication Critical patent/JP3625586B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】 演算ユニットの有効利用を図り、演算処理能
力を向上させる。 【解決手段】 命令キャッシュ2は、複数の命令流の命
令を格納する。プログラムカウンタ51a、51bは、
命令流の個数分設けられ、対応した命令流を選択する。
プログラムカウンタ制御部4におけるカウンタ41は、
クロック101に基づき、1サイクル毎にプログラムカ
ウンタ51a、51bを有効とする。これにより、命令
流は、1サイクル毎に順次切り替えられる。その結果、
ある命令の真の依存のために実行が待たされる可能性が
減少する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数の命令列の実
行機能を備えた複数命令流パイプライン計算機における
プロセッサの命令実行制御方法およびシステムに関す
る。
【0002】
【従来の技術】パイプライン計算機において、その処理
性能を向上させるために同時に複数の命令を実行するス
ーパースカラ方式や、命令の発行順序を変えて実行する
アウトオブオーダ発行が用いられている。
【0003】その際に、性能低下の原因となる命令間の
データ依存を回避するための技術としてレジスターリネ
ーミング(register renaming :レジスタ名前替え)が
用いられる。このレジスターリネーミングを用いること
により、命令依存のうち、先行の命令がそのレジスタの
値をリードしてからでないとレジスタに新しい値を書き
込めないといった逆依存と、同じレジスタに同時に書き
込もうとしたという出力依存という二つの依存を取り除
くことができる。これにより依存による性能の低下を抑
えることが可能となる。
【0004】
【発明が解決しようとする課題】しかしながら、上記の
ようなパイプライン計算機であっても、真の依存、即
ち、命令依存のうち、先行の命令の結果を利用して次の
命令の演算を行うといった場合は、その実行が待たされ
るのは避けられず、この場合は、プロセッサの演算資源
が使われずに無駄になるという問題があった。
【0005】このような点から、演算ユニットの有効利
用が図れ、演算処理能力を向上させることのできるプロ
セッサの命令実行制御方法およびシステムの実現が望ま
れていた。
【0006】
【課題を解決するための手段】本発明は、前述の課題を
解決するため次の構成を採用する。 〈請求項1の構成〉複数の命令を同時に実行可能な演算
ユニットに対して、複数の命令流を与える場合、複数の
命令流を、順次切り替えて与えることを特徴とするプロ
セッサの命令実行制御方法である。
【0007】〈請求項1の説明〉複数の命令流とは、互
いに独立に実行可能な命令流を意味している。例えば、
このような命令流として二つの命令流があった場合、演
算ユニットに対して、これらを交互に与える。これによ
り、一方の命令流において、真の依存関係のため、次の
命令の実行が待たされる場合であっても、他方の命令流
の命令を実行する間に、一方の命令流の命令を完了させ
ることができ、その結果、真の依存関係による性能低下
を減少させることができる。
【0008】〈請求項2の構成〉複数の命令を同時に実
行可能な演算ユニットに対して与える複数の命令流に対
応して設けられ、これら複数の命令流を選択するための
プログラムカウンタと、複数のプログラムカウンタに対
して、順次、対応する命令流を選択するよう制御を行う
プログラムカウンタ制御部とを備えたことを特徴とする
プロセッサの命令実行制御システムである。
【0009】〈請求項2の説明〉プログラムカウンタ
は、命令流と等しい数だけ設けられ、対応した命令流の
実行を管理するものである。プログラムカウンタ制御部
は、これらのプログラムカウンタに対して、順次有効に
なるよう制御する。これにより、有効となったプログラ
ムカウンタに対応した命令流が選択され、演算ユニット
に与えられる。そして、順次命令流が切り替わるため、
真の依存関係による性能低下を減少させることができ
る。
【0010】〈請求項3の構成〉複数の命令を同時に実
行可能な演算ユニットに対して、複数の命令流を与える
場合、複数の命令流を、複数の任意の命令実行単位で順
次切り替えることを特徴とするプロセッサの命令実行制
御方法である。
【0011】〈請求項3の説明〉請求項3の発明は、命
令流の切り替えタイミングが複数の命令実行単位となっ
ている点を特徴としている。これにより、一つの命令流
が連続して選択される長さを自由に変更することがで
き、システムに応じて適切な長さとすることにより、プ
ロセッサのスループットを向上させることができる。
【0012】〈請求項4の構成〉複数の命令を同時に実
行可能な演算ユニットに対して与える複数の命令流に対
応して設けられ、これら複数の命令流を選択するための
プログラムカウンタと、これら複数のプログラムカウン
タに対して、順次、複数の任意の命令実行単位で対応す
る命令流を選択するよう制御を行うプログラムカウンタ
制御部とを備えたことを特徴とするプロセッサの命令実
行制御システムである。
【0013】〈請求項4の説明〉請求項4の発明は、プ
ログラムカウンタ制御部の制御が、プログラムカウンタ
に対して、複数の任意の命令実行単位で選択するよう制
御する点を特徴としている。これにより、一つの命令流
が連続して選択される長さを自由に変更することがで
き、システムに応じて適切な長さとすることにより、プ
ロセッサのスループットを向上させることができる。
【0014】〈請求項5の構成〉複数の命令を同時に実
行可能な演算ユニットに対して、複数の命令流を与える
場合、複数の命令流を、それぞれの命令流に対して重み
付けした命令実行単位で順次切り替えることを特徴とす
るプロセッサの命令実行制御方法である。
【0015】〈請求項5の説明〉請求項5の発明は、命
令流の切り替えタイミングが複数の命令実行単位で、か
つ、それぞれの命令流に対して重み付けした命令実行単
位となっている点を特徴としている。これにより、複数
の命令流に対して、実行の優先度を与えることができ
る。
【0016】〈請求項6の構成〉複数の命令を同時に実
行可能な演算ユニットに対して与える複数の命令流に対
応して設けられ、これら複数の命令流を選択するための
プログラムカウンタと、これら複数のプログラムカウン
タに対して、順次、それぞれ重み付けした命令実行単位
で命令流を選択するよう制御を行うプログラムカウンタ
制御部とを備えたことを特徴とするプロセッサの命令実
行制御システムである。
【0017】〈請求項6の説明〉請求項6の発明は、複
数の命令流の切り替えタイミングが、それぞれ任意に重
み付けして設定できる点を特徴としている。これによ
り、複数の命令流に対し、自由に実行の優先度を与える
ことが可能となる。
【0018】〈請求項7の構成〉複数の命令流を命令キ
ャッシュに格納し、この命令キャッシュから、複数の命
令を同時に実行可能な演算ユニットに対して、複数の命
令流を与える場合、任意の命令が命令キャッシュにおい
てミスヒットした場合、その命令を除き、順次、複数の
命令流を切り替えることを特徴とするプロセッサの命令
実行制御方法である。
【0019】〈請求項7の説明〉請求項7の発明は、命
令キャッシュからある命令流を取り出そうとした時に、
これが命令キャッシュでミスヒットであった場合、その
命令流を除き、次の命令流を選択するようにしたもので
ある。これにより、命令キャッシュでヒットした命令の
み実行されることから効率的な命令実行が可能となる。
【0020】〈請求項8の構成〉複数の命令を同時に実
行可能な演算ユニットに対して与える複数の命令流を格
納する命令キャッシュと、複数の命令流に対応して設け
られ、これら複数の命令流を選択するためのプログラム
カウンタと、任意の命令が命令キャッシュにおいてミス
ヒットした場合、その命令に対応したプログラムカウン
タを除き、複数のプログラムカウンタに対して、順次、
命令流を選択するよう制御を行うプログラムカウンタ制
御部とを備えたことを特徴とするプロセッサの命令実行
制御システムである。
【0021】〈請求項8の説明〉命令キャッシュは、複
数の命令流におけるそれぞれの命令を格納するためのキ
ャッシュメモリである。そして、各命令は、この命令キ
ャッシュより読み出されて、演算ユニットで実行され
る。ここで、命令キャッシュでミスヒットした命令は選
択されず、キャッシュヒットした命令のみが読み出され
るため、命令キャッシュへの命令読み込みの時間待ちを
することなく、効率的な実行が可能となる。
【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が、P
Cユニット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とAP
2とは、INフィールドの値が異なるため、これらの命
令は同時に実行することが可能となる。尚、dataフィー
ルドの「2」「3」「5」「6」は値であり、「10
5」〜「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で制御されるよう構成さ
れている。尚、本具体例では、プログラムカウンタ(P
C)51a、51bと、ゲート52a、52bの例とし
て2個の場合を示しているが、この数は命令流に対応し
て種々の値に構成される。
【0040】また、図中、102は、キャッシュコント
ローラ2aからのアック信号、即ち、選択された命令流
がキャッシュヒットしたことを示す信号である。
【0041】〈動作〉カウンタ41は、クロック101
に従って毎サイクルカウントを進める。この出力は、現
命令識別タグレジスタ42に保持される。そして、プロ
グラムカウンタ制御部4は、この現命令識別タグレジス
タ42の値により、これに該当するプログラムカウンタ
51a(51b)の出力のみがキャッシュコントローラ
2aに送られるよう、PC制御線40を介してゲート5
2a(52b)を制御する。これにより、キャッシュコ
ントローラ2aは、キャッシュメモリにアクセスし、キ
ャッシュメモリからは、プログラムカウンタ51a(5
1b)の値に対応した命令が読み出される。従って、本
具体例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、レジスタ4
5からなる。更新タイミングレジスタ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】〈効果〉本具体例では、一つの命令流が連
続してフェッチされる長さを更新タイミングレジスタ4
3に与えることにより、自由に変更することが可能であ
る。これにより、例えば、更新タイミングを、命令キャ
ッシュ2におけるキャッシュのラインサイズに合わせる
といった構成にすることにより、効率のよいアクセスが
可能となる。即ち、通常、命令はアドレスが連続してい
ることが多いため、ある命令が命令キャッシュ2に存在
すれば、次の命令もヒットする可能性が高い。例えば、
命令キャッシュ2が、一度に4命令分のデータを読み込
む場合、先頭の命令でキャッシュヒットすれば、残りの
3命令も必ずヒットすることになる。そこで、更新タイ
ミングレジスタ43の値を4としておくことにより、一
つの命令流で、ある命令がヒットすれば、必ず4命令が
ヒットすることになり、効率のよいアクセスが可能とな
る。
【0047】《具体例3》 〈構成〉図7は、具体例3の構成図である。この具体例
では、上記具体例2において、更新タイミングを命令流
毎に重み付けを行ったものである。図7において、プロ
グラムカウンタ制御部4bは、現命令識別タグレジスタ
42と、プログラムカウンタの個数分の更新タイミング
レジスタ43a、43bと、これに対応した個数分設け
られたテンポラリレジスタ46a、46bと、減算器4
4と、比較器47とからなる。即ち、更新タイミングレ
ジスタ43a、43bの出力は、それぞれテンポラリレ
ジスタ46a、46bを通して減算器44と比較器47
に入力される。また、減算器44の出力はテンポラリレ
ジスタ46a、46bへ入力され、比較器47の出力
は、現命令識別タグレジスタ42に入力されるよう構成
されている。
【0048】〈動作〉各プログラムカウンタ51a、5
1bに対応して設定された更新タイミングレジスタ43
a、43bの値は、それぞれのテンポラリレジスタ46
a、46bに送られる。テンポラリレジスタ46a、4
6bの値は、交互あるいは同時に毎サイクル減算され、
結果は、それぞれのテンポラリレジスタ46a、46b
に下記戻される。また、このテンポラリレジスタ46
a、46bの値は比較器47に送られ、0になった方の
プログラムカウンタ51a(51b)の識別子が現命令
識別タグレジスタ42に送られる。または、それぞれの
テンポラリレジスタ46a、46bの値が比較器47で
比較され、小さい方のプログラムカウンタ識別子が現命
令識別タグレジスタ42に送られる。
【0049】図8は、それぞれの方法の説明図であり、
(a)が、0になった方のプログラムカウンタ51a
(51b)の識別子を選択する場合、(b)が、テンポ
ラリレジスタ46a、46bの値を比較器47で比較
し、小さい方のプログラムカウンタ識別子を選択する場
合を示している。
【0050】図8の例は、更新タイミングレジスタ43
aの値が5、更新タイミングレジスタ43bの値が3で
ある場合を示し、図面右側の数字がテンポラリレジスタ
46a、46bの値を示している。尚、テンポラリレジ
スタ46a、46bの値は矢印方向に変化していくもの
とする。また、(a)の場合、0になった次のサイクル
から、他方のテンポラリレジスタの値が0になるまでの
間を、そのテンポラリレジスタに対応したプログラムカ
ウンタの識別子を選択するものとする。尚、双方が0に
なった場合は、公知のバスアービトレーションの手法と
同様に、それまで選択していた以外の識別子を選択する
ものとする。これにより、(a)の場合、プログラムカ
ウンタ51a、51bの更新タイミングが、図中の太線
で示すサイクルの割合で行われることとなる。
【0051】また、(b)で示す例においても、テンポ
ラリレジスタ46a、46bの値が等しくなった場合
は、それまで選択していた以外の識別子を選択するもの
とする。従って、(b)の場合もプログラムカウンタ5
1a、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
に基づき、毎サイクル(あるいは毎アクセス)ごとにカ
ウントアップを行うが、ミスヒット中識別子レジスタ4
8を参照し、その命令流がミスヒット中であった場合
は、これに対応したプログラムカウンタ51a(51
b)の識別子を送らず、次のプログラムカウンタ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 (8)

    【特許請求の範囲】
  1. 【請求項1】 複数の命令を同時に実行可能な演算ユニ
    ットに対して、複数の命令流を与える場合、 複数の命令流を、順次切り替えて与えることを特徴とす
    るプロセッサの命令実行制御方法。
  2. 【請求項2】 複数の命令を同時に実行可能な演算ユニ
    ットに対して与える複数の命令流に対応して設けられ、
    これら複数の命令流を選択するためのプログラムカウン
    タと、 前記複数のプログラムカウンタに対して、順次、対応す
    る命令流を選択するよう制御を行うプログラムカウンタ
    制御部とを備えたことを特徴とするプロセッサの命令実
    行制御システム。
  3. 【請求項3】 複数の命令を同時に実行可能な演算ユニ
    ットに対して、複数の命令流を与える場合、 複数の命令流を、複数の任意の命令実行単位で順次切り
    替えることを特徴とするプロセッサの命令実行制御方
    法。
  4. 【請求項4】 複数の命令を同時に実行可能な演算ユニ
    ットに対して与える複数の命令流に対応して設けられ、
    これら複数の命令流を選択するためのプログラムカウン
    タと、 これら複数のプログラムカウンタに対して、順次、複数
    の任意の命令実行単位で対応する命令流を選択するよう
    制御を行うプログラムカウンタ制御部とを備えたことを
    特徴とするプロセッサの命令実行制御システム。
  5. 【請求項5】 複数の命令を同時に実行可能な演算ユニ
    ットに対して、複数の命令流を与える場合、 複数の命令流を、それぞれの命令流に対して重み付けし
    た命令実行単位で順次切り替えることを特徴とするプロ
    セッサの命令実行制御方法。
  6. 【請求項6】 複数の命令を同時に実行可能な演算ユニ
    ットに対して与える複数の命令流に対応して設けられ、
    これら複数の命令流を選択するためのプログラムカウン
    タと、 これら複数のプログラムカウンタに対して、順次、それ
    ぞれ重み付けした命令実行単位で命令流を選択するよう
    制御を行うプログラムカウンタ制御部とを備えたことを
    特徴とするプロセッサの命令実行制御システム。
  7. 【請求項7】 複数の命令流を命令キャッシュに格納
    し、当該命令キャッシュから、前記複数の命令を同時に
    実行可能な演算ユニットに対して、前記複数の命令流を
    与える場合、 任意の命令が前記命令キャッシュにおいてミスヒットし
    た場合、その命令を除き、順次、複数の命令流を切り替
    えることを特徴とするプロセッサの命令実行制御方法。
  8. 【請求項8】 複数の命令を同時に実行可能な演算ユニ
    ットに対して与える複数の命令流を格納する命令キャッ
    シュと、 前記複数の命令流に対応して設けられ、これら複数の命
    令流を選択するためのプログラムカウンタと、 任意の命令が前記命令キャッシュにおいてミスヒットし
    た場合、その命令に対応したプログラムカウンタを除
    き、前記複数のプログラムカウンタに対して、順次、命
    令流を選択するよう制御を行うプログラムカウンタ制御
    部とを備えたことを特徴とするプロセッサの命令実行制
    御システム。
JP23477896A 1996-07-22 1996-07-22 プロセッサの命令実行制御システム Expired - Fee Related JP3625586B2 (ja)

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 true JPH1040102A (ja) 1998-02-13
JP3625586B2 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)

Also Published As

Publication number Publication date
JP3625586B2 (ja) 2005-03-02

Similar Documents

Publication Publication Date Title
US8230144B1 (en) High speed multi-threaded reduced instruction set computer (RISC) processor
US10203958B2 (en) Streaming engine with stream metadata saving for context switching
US5872985A (en) Switching multi-context processor and method overcoming pipeline vacancies
US6671827B2 (en) Journaling for parallel hardware threads in multithreaded processor
US4740893A (en) Method for reducing the time for switching between programs
JP2504830Y2 (ja) デ―タ処理装置
US5727227A (en) Interrupt coprocessor configured to process interrupts in a computer system
US20040205747A1 (en) Breakpoint for parallel hardware threads in multithreaded processor
WO2001016715A9 (en) Branch instructions in a multithreaded parallel processing system
US7139899B2 (en) Selected register decode values for pipeline stage register addressing
US20230185576A1 (en) User mode event handling
US6957323B2 (en) Operand file using pointers and reference counters and a method of use
US6275903B1 (en) Stack cache miss handling
US5146570A (en) System executing branch-with-execute instruction resulting in next successive instruction being execute while specified target instruction is prefetched for following execution
US7761688B1 (en) Multiple thread in-order issue in-order completion DSP and micro-controller
EP1039375A1 (en) Method and apparatus for implementing zero overhead loops
JPH0248732A (ja) 命令パイプライン方式のマイクロプロセッサ
US5615375A (en) Interrupt control circuit
US20230359385A1 (en) Quick clearing of registers
EP0952527B1 (en) Interrupt processing
US6170050B1 (en) Length decoder for variable length data
CN112540789B (zh) 一种指令处理装置、处理器及其处理方法
JP3625586B2 (ja) プロセッサの命令実行制御システム
CN111984313A (zh) 矢量位转置
CN111984314A (zh) 使用位反转顺序的矢量存储

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

Effective date: 20041025

Free format text: JAPANESE INTERMEDIATE CODE: A523

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

Effective date: 20041116

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Effective date: 20041130

Free format text: JAPANESE INTERMEDIATE CODE: A61

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20081210

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20081210

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091210

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20091210

Year of fee payment: 5

FPAY Renewal fee payment (prs 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