JP2000207207A - パイプラインを有するプロセッサにおいて複数の命令を実行するシステムおよび方法 - Google Patents

パイプラインを有するプロセッサにおいて複数の命令を実行するシステムおよび方法

Info

Publication number
JP2000207207A
JP2000207207A JP11141673A JP14167399A JP2000207207A JP 2000207207 A JP2000207207 A JP 2000207207A JP 11141673 A JP11141673 A JP 11141673A JP 14167399 A JP14167399 A JP 14167399A JP 2000207207 A JP2000207207 A JP 2000207207A
Authority
JP
Japan
Prior art keywords
stage
instruction
address
processor
stages
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.)
Pending
Application number
JP11141673A
Other languages
English (en)
Inventor
Chandar G Subash
ジー.スバシュ チャンダー
Deepak Mital
ミタル ディーパク
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
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 Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JP2000207207A publication Critical patent/JP2000207207A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/323Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling

Landscapes

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

Abstract

(57)【要約】 【課題】 パイプラインを有するプロセッサにおいて複
数の命令を処理するシステムおよび方法を提供する。 【解決手段】 パイプラインは、フェッチ段と実行段と
の間に第1数の段階を含む。プログラム・カウンタは、
フェッチする所望の命令を格納するメモリ位置のアドレ
スを示すカウント値を与える。条件付きコール命令に対
する条件が満たされたか否かについて判定し、条件が満
たされた場合、算術演算素子が、カウンタのカウント値
を第1の段階数に関連する数値と結合し、調節リターン
・アドレスを生成する。条件付きコール命令に伴うあら
ゆる命令をフェッチし実行した後に、調節リターン・ア
ドレスが指定するアドレスを有する次の命令をフェッチ
する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般的に、プロセ
ッサに関し、更に特定すれば、パイプラインを有するプ
ロセッサにおいて複数の命令を実行するシステムおよび
方法に関するものである。
【0002】
【従来の技術】最新のプロセッサは、その多くが効率を
一層高めるためにプロセッサ内にパイプラインを利用し
ている。パイプラインを使用することによって、タスク
を複数の連続サブタスクに分割する。タスクの連続サブ
タスクへの分割によって、いずれの所与の時点において
も、多数のプログラム命令のフェッチ、デコード、およ
び実行が可能となる。したがって、いずれの特定時点に
おいても、パイプラインの種々の段階において、いくつ
かの命令を処理することができる。パイプラインの使用
は、通常、命令が実行可能になるまでプロセッサが待た
なくてもよいことを保証することにより、実行時間を短
縮する。プロセッサが1つの命令の実行を完了したとき
には、次の命令の準備ができて実行を待っている状態に
あるので、これは間違いのないことである。
【0003】通常、パイプラインを有するプロセッサ
は、プログラム・カウンタのカウント値をアドレスとし
て有するメモリ位置に格納された命令をフェッチし、カ
ウンタを1増分することにより、次の連続メモリ位置に
ある命令を、次にフェッチされる命令とする。パイプラ
インを有するプロセッサでは、条件付きコール命令に伴
って問題が生ずる。条件付きコール命令では、条件をチ
ェックし条件を満たす場合、指定されたアドレスから開
始して、一連の格納されている命令を実行する。これら
の命令にアクセスするには、カウンタのカウント値を指
定のアドレスに調節し、現命令をフェッチし、条件命令
に関連する全ての命令にアクセスするまで、プログラム
・カウンタのカウント値を増分する。条件付きコール命
令の例には、サブルーチン・コール(call)、トラップ(t
rap)、または割り込み(interrupt)が含まれる。サブル
ーチン、割り込み、またはトラップから通常処理に戻る
と、条件付き命令と関連する条件を満たしたときに有し
ていたカウント値に対応するように、プログラム・カウ
ンタをリセットする。このカウント値は、条件を満たし
た時に格納される。
【0004】
【発明が解決しようとする課題】しかしながら、パイプ
ラインを有するプロセッサでは、コールを実行した時点
におけるプログラム・カウンタのカウント値は、条件付
き命令直後のパイプライン内における命令のアドレス位
置に対応しない。したがって、主処理に戻ったときに返
されるプログラム・カウンタのカウント値は、プログラ
ム・カウンタに望ましいカウント値ではない。
【0005】従来のシステムはこの問題に対処するに当
たり、複数の遅延プログラム・カウンタを用い、プログ
ラム・カウンタの以前のカウント値を格納した。しかし
ながら、遅延プログラム・カウンタの使用には欠点も伴
う。例えば、遅延プログラム・カウンタを使用すると、
プロセッサに余分なシリコン面積が必要となる。プロセ
ッサ内のパイプラインの段数が増大するに連れて、遅延
プログラム・カウンタの数も増大する。したがって、遅
延プログラム・カウンタを利用するプロセッサのシリコ
ン空間の必要量は、パイプラインの深さ(depth)と共に
増大していく。
【0006】
【課題を解決するための手段】したがって、パイプライ
ンを有するプロセッサにおいて複数の命令を実行する、
改良された装置が必要とされている。本発明は、従来の
システムおよび方法の欠点に対処するために、パイプラ
イン型プロセッサにおいて複数の命令を実行するシステ
ムおよび方法を提供する。
【0007】本発明の一実施形態によれば、パイプライ
ンを有するプロセッサにおいて複数の命令を処理する方
法が提供される。パイプラインは、フェッチ段と実行段
との間に第1数の段を有する。本方法は、条件付きコー
ル命令に対して、条件が満たされたか否かについて判定
を行うステップと、条件が満たされた場合、(i)カウ
ンタのカウント値を第1の段階数と結合して、調節リタ
ーン・アドレスを生成するステップと、(ii)条件付
きコール命令に関連するあらゆる命令をフェッチしかつ
実行するステップと、(iii)条件付きコール命令に
関連するあらゆる命令をフェッチし実行した後に、調節
リターン・アドレスが示すアドレスを有する次の命令を
フェッチするステップとを含む。
【0008】本発明の別の実施形態によれば、プロセッ
サが、フェッチ段および実行段を含む複数の連続段を含
む。また、連続段は、フェッチ段と実行段との間に第1
数の段階を含む。また、プロセッサは、フェッチ段によ
るフェッチのために所望の命令を格納するメモリ位置の
アドレスを与えるように動作可能なプログラム・カウン
タ、および算術演算素子も含む。算術演算素子は、プロ
グラム・カウンタのカウント値を受け取り、さらにフェ
ッチ段と実行段との間の第1の段階数も受け取るように
実行可能である。また、算術演算素子は、フェッチ段と
実行段との間の第1の段階数を、プログラム・カウンタ
のカウント値と結合し、プログラム・カウンタが受け取
る調節カウント値を生成するように動作可能である。
【0009】本発明の実施形態は、多数の技術的な利点
を与える。例えば、本発明の一実施形態では、単一のプ
ログラム・カウンタを用いて、コールに続く次の命令の
アドレス位置を指定する。単一のプログラム・カウンタ
の使用により、アドレス位置の減少に伴ってメモリの必
要量も減少し、したがってプロセッサの他のエリアにお
いてかかるメモリ位置の使用が可能となる。多数のプロ
グラム・カウンタを不要にしたため、特に大容量のメモ
リにアドレスするプロセッサにおいて有利である。例え
ば、32ビット・アドレスを必要とする量のメモリ位置
にアドレスするプロセッサの場合、内部メモリの必要量
が増大するという欠点がある。したがって、本発明は、
コールから戻る際に次の命令に正確にアドレスするため
に必要なレジスタ数を削減することによって、結果的に
プロセッサに必要なシリコン面積を縮小し、パイプライ
ン管理の複雑性を低下させることにより、更にシリコン
面積の縮小、および検査時間の短縮をもたらす。
【0010】他の技術的な利点は、以下の図面、説明、
および特許請求の範囲から、当業者には容易に明確とな
ろう。
【0011】
【発明の実施の形態】本発明およびその利点を一層よく
理解するために、これより図面に関連付けて以下の説明
を参照する。本発明の実施形態およびその利点は、図面
の図1ないし図3を参照することによって最良に理解さ
れよう。尚、同様の参照番号は、種々の図面において同
様の部分および対応する部分に用いられている。
【0012】図1Aは、本発明の教示によるコンピュー
タ・システム10のブロック図である。コンピュータ・
システム10は、メモリ・システム14にアクセスする
ように動作可能なプロセッサ12を含む。メモリ・シス
テム14は、プログラム・メモリ16およびデータ・メ
モリ18の双方を含むものとするとよい。また、データ
・メモリ18はスタック20を含むとよい。
【0013】プロセッサ12は、複数のパイプライン段
を有するパイプライン22を含む。1つのパイプライン
段は、取得(obtaining)、デコード、実行に関連するサ
ブタスク、またはプログラム・メモリ16に格納されて
いる命令に関連するその他のサブタスクを実行すること
ができる。図1Aに示す実施形態では、パイプライン2
2は、フェッチ段24、プリデコード段26、デコード
段28、リード段30、実行段32、および格納段34
を含む。また、プロセッサ12は、更に追加のプロセッ
サ素子21を含んでもよい。
【0014】フェッチ段24は、プログラム・メモリ1
6内のメモリ位置から命令を得る。フェッチ段24は、
メモリ・アドレスをプログラム・メモリ16に発行し、
このアドレスに対応するプログラム・メモリ16内の位
置に格納されている命令がフェッチ段24に与えられ
る。フェッチ段24によってプログラム・メモリ16に
アドレスを与える動作を矢印36で示す。プログラム・
メモリ16からフェッチ段24に命令を与える動作を参
照番号38で示す。フェッチ段24は、プログラム・カ
ウンタ25を含み、プログラム・メモリ16内に格納さ
れている命令に対応するアドレスを発生するようにして
もよい。フェッチ段24は、1つより多いパイプライン
段と置換してもよい。例えば、フェッチ段24は、命令
を読み出すプログラム・メモリ16内のメモリ位置のア
ドレスを計算する機能を実行する別個の段と、指定され
たアドレスから命令を読み出す機能を実行する別個の段
とによって置換することも可能である。しかしながら、
以下で用いる場合、「フェッチ段」は、命令を得ようと
するアドレスを実際に計算するパイプライン内の段を意
味するものとする。最近のプロセッサの中には、この段
を「プリフェッチ」段(prefetch state)と呼ぶものもあ
る。フェッチ段24の別の適切な例を、本発明の教示に
組み込むことも可能である。フェッチ段24の詳細につ
いては、図2との関連において更に説明することにす
る。
【0015】プリデコード段26は、命令をデコードす
るためのデコード段28の準備に伴う動作を行う。リー
ド段30は、デコード段28によってデコードする命令
の実行に必要なあらゆるデータを、データ・メモリ18
から読み出す。パイプライン22内の段の各々は、更に
多数の段に再分割してもよい。例えば、リード段30
は、データ・メモリ18内のどの位置からデータを読み
出すのかを決定するために必要な計算を実行する別個の
段と、かかるデータを読み出す機能を実行する別個の段
とで置換してもよい。実行段32は、命令38を実行す
る機能を行う。実行段32は複数の段に分割することも
可能であるが、以下で用いる場合、「実行段」は、条件
付きコールに伴う条件が満たされるか否かについて判定
を行う機能を少なくとも実行する、パイプライン内の段
階を意味するものとする。格納段24は、命令38の実
行の結果として書き込む必要のある、あらゆるデータを
書き込む機能を行う。
【0016】本発明の一実施形態によれば、フェッチ段
24は、条件付きコール命令に伴う命令の実行完了時
に、次の命令を受けるべきプログラム・メモリ16内の
メモリ位置を指定するアドレスを算出する。この算出
は、プロセッサ12に対するシリコン面積の必要量を減
少させるように行う。これについては、以下で更に詳し
く説明する。
【0017】図1Bは、プロセッサ12の動作の一例と
して、パイプライン22による命令の進展を示す。第1
クロック・サイクルにおいて、命令I1がフェッチ段2
4によってフェッチされる。命令I1は、プログラム・
カウンタ25が指定するアドレスを有するメモリ位置か
ら得られる。この例では、命令I1は、メモリ位置00
06から得られる。次のサイクル、即ち、クロック・サ
イクル2において、命令I1はプリデコード段26に進
み、フェッチ段24によって第2命令I2をプログラム
・メモリ16からフェッチする。プログラム・カウンタ
25が、次の命令I2をフェッチする位置を与える。こ
の例では、フェッチ毎に連続プログラム・カウンタ25
を1だけ増分する。したがって、クロック・サイクル2
の間に、プログラム・カウンタは0007のカウント値
を有することになる。次のクロック・サイクルの間に、
命令I1はデコード段28に進み、命令I2はプリデコー
ド段26に進み、更に0008のアドレスを有するプロ
グラム・メモリ16内のメモリ位置から第3命令3をフ
ェッチする。
【0018】第4クロック・サイクルの間、命令I1
リード段30に進み、命令I2はデコード段28に進
み、命令I3はプリデコード段26に進み、0009の
アドレスを有するプログラム・メモリ16内のメモリ位
置から次の命令I4をフェッチする。第5クロック・サ
イクルの間に、命令I1は実行段32に進み、命令I2
リード段30に進み、命令I3はデコード段28に進
み、命令I4はプリデコード段26に進み、0010の
アドレスを有するプログラム・メモリ16内のメモリ位
置から次の命令I5をフェッチする。
【0019】命令I1が条件付きコール命令である場
合、第6クロック・サイクルの間に2つの可能な選択肢
(alternative)がある。クロック・サイクル6aによっ
て示す第1の場合では、命令I1の実行によって、条件
付きコール命令に伴う条件が満たされないと判定され
る。かかる場合、命令I1は格納段34に進み、命令I2
は実行段32に進み、命令I3はリード段30に進み、
命令I4はデコード段28に進み、命令I5はプリデコー
ド段26に進み、0011のアドレスを有するプログラ
ム・メモリ16内の位置から第6命令I6をフェッチす
る。
【0020】あるいは、クロック・サイクル6bで示す
ように、条件付きコール命令I1に伴う条件が満たされ
る場合、命令I1は格納段4に進み、命令I2ないしI5
を破棄する。条件付きコール命令I1に伴うサブルーチ
ン・アドレスに対応するプログラム・メモリ16内の位
置から、次の命令をフェッチする。このようにして、条
件付きコール命令に対応する、フェッチすべき次の命令
のサブルーチン・アドレスに対応するように、プログラ
ム・カウンタ25を調節する。
【0021】プログラム・カウンタ25のカウント値を
調節する前に、プログラム・カウンタ25のカウント
値、この例では0011をデータ・メモリ18内のスタ
ック20に格納しておく。プログラム・カウンタ25の
格納値は、条件付きコール命令に伴う命令の実行から戻
って主処理を再開する際に用いるリターン・アドレスで
ある。
【0022】条件付きコール命令に伴う命令の実行から
戻ったときに、クロック・サイクルNで示すように、フ
ェッチ命令を発行して、条件付きコール命令I1直後の
命令、この例では命令I2を得る。したがって、プログ
ラム・カウンタ25のカウント値は、0007の値に調
節する必要がある。しかしながら、スタック20内に格
納されているリターン・アドレスは0010である。プ
ログラム・カウンタの正しい値0007を得るには、ス
タック20内に格納されているリターン・アドレスか
ら、フェッチ段24と実行段32との間の段数を減算す
ればよい。この例では、パイプライン22は、フェッチ
段24と実行段32との間に3つの段階、即ち、プリデ
コード段26、デコード段28、およびリード段30を
含む。したがって、プログラム・カウンタ25の正しい
カウント値を得るには、命令I1に伴う条件を満たす際
に、スタック20に格納されている値から3を減算すれ
ばよい。プログラム・カウンタ25内に格納されている
値から、フェッチ段24と実行段32との間の段数を減
算することにより、条件付きコール命令に伴う命令の実
行完了時に、遅延プログラム・カウンタを全く必要とす
ることなく、プログラム・カウンタ25に正しいリター
ン・アドレスが得られる。フェッチ段24または実行段
32を1つより多い段階に分割する実施形態では、命令
を読み出すアドレスを算出する段と、条件付きコール命
令に伴う条件が満たされたか否かについて判定する段と
の間の段数を、プログラム・カウンタ25に格納されて
いる値から減算することによって、正しいリターン・ア
ドレスが得られる。遅延プログラム・カウンタを排除す
ることにより、プロセッサ12に必要なシリコン面積が
減少する。これまでに述べた方法の実施態様の一例につ
いて、図2と関連付けながら以下に説明する。
【0023】図2は、フェッチ段24の更なる詳細を示
す、コンピュータ・システム10の一部のブロック図で
ある。条件付きコール命令に伴う命令を実行した後に、
追加の命令を得るための正しいアドレスを得るために、
算術演算部即ち素子48を備えている。算術演算素子4
8は、2つの入力信号を受け取る。第1の入力信号40
は、プログラム・カウンタ25のカウント値を示す。第
2の入力信号42は、(i)所与のプロセッサに対す
る、実行段32とフェッチ段24との間の段数、この例
では3、または(ii)1のいずれかを示す。加えて、
算術演算素子48は、実行段32から制御信号52を受
け取る。制御信号52は、算術演算素子48が加算演算
または減算演算のどちらを実行するのかについて選択を
行う。これについては、以下で更に詳しく説明する。条
件付きコール命令に伴う命令を実行した後、通常の処理
に戻る際に、実行段32とフェッチ段24との間の段数
を、算術演算素子48に与える。しかしながら、条件付
きコール命令に伴う条件が満たされず、リターンが行わ
れない場合、算術演算素子48には1が与えられる。
【0024】本発明の一実施形態では、実行段32とフ
ェッチ段24との間の段数を算術演算素子48に与える
か、あるいは0を算術演算素子48に与えるかについて
の判定は、マルチプレクサ50によって、実行段32か
ら受け取る制御信号52との関連によって行われる。制
御信号52は、条件付きコール命令に伴う命令の実行か
らリターンが行われている場合には、実行段32とフェ
ッチ段24との間の段数を選択し、条件付きコール命令
からのリターンが行われていない場合1を選択する。加
えて、制御信号52は、条件付きコール命令の実行から
リターンが行われている場合には、算術演算素子48に
減算演算子(subtraction operator)を選択し、条件付き
コール命令の実行からリターンが行われていない場合に
は算術演算素子48に加算演算子を選択する。本実施形
態では、算術演算素子48は、プログラム・カウンタ2
5の現カウント値を表す信号40から信号42の値を減
算し、調節したリターン・アドレスを生成してプログラ
ム・メモリ16に与えることにより、条件付きコール命
令の後に続く次の命令を得る。この例では、条件付きコ
ール命令の後に続く次の命令とは、命令I2のことであ
る。条件付きコール命令の実行からリターンが行われな
い場合、算術演算素子48は信号40の値に1を加算す
る。
【0025】以上のように、本発明は、条件付きコール
命令に伴う命令の実行から戻り、主処理を中断した点か
ら主処理を継続する方法およびシステムを提供する。リ
ターン・アドレスを、フェッチ段24と実行段32との
間の段数に関連する数値と結合することにより、プログ
ラム・メモリ16における適正なアドレス位置に戻るこ
とができる。前述のプロセスがなければ、条件付きコー
ル命令からのリターン時に、正しい命令に適正に戻るた
めには、プログラム・カウンタの以前のカウントを格納
する遅延プログラム・カウンタが必要となるが、このプ
ロセスによってその必要性は全て軽減される。遅延プロ
グラム・カウンタ遅延が不要のため、プロセッサ12に
必要なシリコン面積を減少することができる。シリコン
面積の削減は、大量のアドレス空間を利用するプロセッ
サには特に有利である。何故なら、32ビット・アドレ
ス位置のような大量のアドレス位置を格納するために
は、本発明がなければ、遅延プログラム・カウンタが必
要となり、余分なシリコン面積を必要とするからであ
る。
【0026】図3は、プロセッサ12のパイプライン内
における、種々の命令の位置を示すタイミング図であ
る。プロセッサ12の動作例を、図3と関連付けて説明
する。特に、条件付きコール命令の実行について説明す
る。図3に示すように、5回のクロック・サイクルの期
間に、5つの命令を順次フェッチする。これらの命令に
は、条件付きコール命令、およびそれに続く4つの命
令、「NI1」、「NI2」、「NI3」、および「N
4」が含まれる。条件付きコール命令は、パイプライ
ン22に沿って進み、5回のクロック・サイクルの間に
実行段32に到達する。実行段32においてチェックを
行い、条件付きコール命令に伴う条件が満たされたこと
を判定する。条件付きコール命令に伴う条件を満たして
いることは、図3に示す変数「ifcall」がロー値
からハイ値に移行することによって表される。条件付き
コール命令に伴う条件が満たされたと判定した場合、プ
ログラム・カウンタ25の現カウント値を、リターン・
アドレスとして格納し、プログラム・カウンタ25を調
節して、条件付きコールに伴う命令を格納する最初のア
ドレス位置に対応するサブルーチン・アドレスの値を保
持させる。リターン・アドレスを格納するための位置の
例は、スタック20である。条件付きコール命令によっ
てコールされるサブルーチンに伴う命令全ての実行を完
了した後、実行段32によってリターン命令(明示的に
示されていない)が受け取られる。リターン命令の受け
取り時に、リターン・アドレスによって保持されている
値にプログラム・カウンタ25をセットし、実行段32
とフェッチ段24との間の段数をリターン・アドレスか
ら減算した結果に対応する値を有するように、算術演算
素子48によってプログラム・カウンタ25を調整す
る。こうして、サブルーチンの処理から戻ったときに、
次の命令NI1を実行する。実行段32とフェッチ段2
4との間の段数に基づいてリターン・アドレスを調節す
ることにより、遅延プログラム・カウンタの使用を回避
することができる。遅延プログラム・カウンタの使用を
回避することにより、プロセッサ12に対するシリコン
面積の必要量が減少するため、これは望ましいことであ
る。
【0027】尚、本発明およびその利点について詳細に
説明したが、特許請求の範囲に定義する本発明の精神お
よび範囲から逸脱することなく、種々の変更、交換、お
よび変形も可能であることは理解されよう。
【0028】以上の説明に関して更に以下の項を開示す
る。 (1)パイプラインを有するプロセッサにおいて複数の
命令を処理する方法であって、該パイプラインはフェッ
チ段と実行段との間に第1数の段階を有し、前記方法
が、条件付きコール命令に対する条件が満たされたか否
かについて判定を行い、前記条件が満たされた場合に、
カウンタのカウント値と、前記第1数の段階に関連する
数値とを結合し、調節リターン・アドレスを生成するス
テップと、前記条件付きコール命令に伴うあらゆる命令
をフェッチしかつ実行するステップと、前記条件付きコ
ール命令に伴うあらゆる命令をフェッチしかつ実行した
後に、前記調節リターン・アドレスが指定するアドレス
を有する次の命令をフェッチするステップと、から成る
方法。 (2)カウンタのカウント値と前記第1数の段階に関連
する数値とを結合する前記ステップが、前記カウンタの
カウント値と前記第1の段階数とを結合するステップを
含む第1項記載の方法。 (3)カウンタのカウント値と前記第1数の段階に関連
する数値を結合して調節リターン・アドレスを生成する
前記ステップが、更に、前記カウンタのカウント値から
前記第1の段階数を減算し、前記調節リターン・アドレ
スを生成するステップを含む第1項記載の方法。 (4)更に、第1アドレスを有するメモリ位置から前記
条件付きコール命令をフェッチするステップを含み、前
記調節リターン・アドレスが前記第1のアドレスに1を
加算した値に等しい第1項記載の方法。
【0029】(5)前記リターン・アドレスと前記第1
数の段階に関連する数値を結合して調節リターン・アド
レスを生成する前記ステップが、更に、算術演算部にお
いて、前記リターン・アドレスと前記第1の段階数とを
受け取るステップと、前記リターン・アドレスから前記
第1の段階数を減算することにより、前記調節リターン
・アドレスを生成するステップと、を含む第1項記載の
方法。 (6)カウンタのカウント値と前記第1数の段階に関連
する数値を結合して調節リターン・アドレスを生成する
前記ステップが、前記条件付きコール命令に伴うあらゆ
る命令を実行する前に、前記カウンタのカウント値をリ
ターン・アドレスとして格納するステップと、前記第1
数の段階に伴うあらゆる命令をフェッチしかつ実行した
後に、前記第1の段階数に関連する数値を前記リターン
・アドレスと結合することにより、調節リターン・アド
レスを生成するステップとを含む第1項記載の方法。 (7)カウンタのカウント値と前記第1数の段階に関連
する数値を結合して調節リターン・アドレスを生成する
前記ステップが、カウンタのカウント値を前記第1の段
階数と結合し、前記条件付きコール命令に伴うあらゆる
命令を実行する前に、調節リターン・アドレスを生成す
るステップを含む第1項記載の方法。 (8)条件付きコールに対する条件が満たされたか否か
について判定する前記ステップが、割り込みに対する条
件が満たされたか否かについて判定するステップを含む
第1項記載の方法。
【0030】(9)プロセッサであって、複数の連続段
階であって、フェッチ段と、実行段と、該フェッチ段の
一部と該実行段との間に、第1数の段階とを含む、複数
の連続段階と、前記フェッチ段によってフェッチする所
望の命令を格納するメモリ位置のアドレスを与えるよう
に動作可能なプログラム・カウンタと、算術演算素子で
あって、前記プログラム・カウンタのカウント値と、前
記フェッチ段と前記実行段との間の前記第1の段階数と
を受け取り、前記フェッチ段と前記実行段との間の前記
第1の段階数を、前記プログラム・カウンタのカウント
値と結合し、前記プログラム・カウンタが受け取る調節
カウント値を生成する、ように動作可能な算術演算素子
と、とから成るプロセッサ。 (10)更に、前記フェッチ段と前記実行段との間の前
記第1の段階数を受け取り、条件付きコールの処理が完
了したことを示す信号を受け取り、条件付きコールの処
理が完了したことを示す前記信号を受け取ったことに応
答して、前記フェッチ段と前記実行段との間の前記第1
の段階数を前記算術演算部に与える、ように動作可能な
論理部を備える第9項記載のプロセッサ。 (11)前記複数の連続段階が、プリデコード段と、デ
コード段と、リード段とを含む第9項記載のプロセッ
サ。 (12)前記論理部がマルチプレクサを備える第9項記
載のプロセッサ。 (13)前記フェッチ段が、命令のアドレスを計算する
ように動作可能な第1段階と、前記命令を読み出すよう
に動作可能な第2段階とから成り、前記フェッチ段の前
記一部が前記第1段階である第9項記載のプロセッサ。
【0031】(14)パイプラインを有するプロセッサ
において複数の命令を処理する方法を提供する。パイプ
ラインは、フェッチ段と実行段との間に第1数の段階を
含む。本方法は、条件付きコール命令に対する条件が満
たされたか否かについて判定するステップを含む。条件
が満たされた場合、カウンタのカウント値を、第1の段
階数に関連する数値と結合し、調節リターン・アドレス
を生成する。また、本方法は、条件付きコール命令に伴
うあらゆる命令をフェッチし実行した後に、調節リター
ン・アドレスが指定するアドレスを有する次の命令をフ
ェッチするステップも含む。
【図面の簡単な説明】
【図1】Aは本発明の教示によるコンピュータ・システ
ムのブロック図。Bは図1Aのコンピュータ・システム
のパイプラインを通じた命令の進展を示すタイミング
図。
【図2】図1のプロセッサにおけるフェッチ段の詳細を
追加して示す、図1のコンピュータ・システムの一部の
ブロック図。
【図3】図1におけるコンピュータ・システムのプロセ
ッサのパイプライン内における種々の命令の位置(locat
ion)を示すタイミング図。
【符号の説明】
10 コンピュータ・システム 14 メモリ・システム 12 プロセッサ 16 プログラム・メモリ 18 データ・メモリ 20 スタック 22 パイプライン 24 フェッチ段 26 プリデコード段 28 デコード段 30 リード段 32 実行段 34 格納段 25 プログラム・カウンタ 38 命令 40 入力信号 48 算術演算部 50 マルチプレクサ 52 制御信号
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ディーパク ミタル インド国 ニュー デリー,ディルスハド ガーデン,エフ − 2,ビー28 Fターム(参考) 5B013 AA18 BB00 5B033 AA07 AA13 EA09

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 プロセッサ内で複数の命令を実行するシ
    ステムにおいて、 複数の連続段階であって、フェッチ段と、実行段と、該
    フェッチ段の一部と該実行段との間に、第1数の段階と
    を含む、複数の連続段階と、 前記フェッチ段によってフェッチする所望の命令を格納
    するメモリ位置のアドレスを与えるように動作可能なプ
    ログラム・カウンタと、 算術演算素子であって、 前記プログラム・カウンタのカウント値と、前記フェッ
    チ段と前記実行段との間の前記第1の段階数とを受け取
    り、 前記フェッチ段と前記実行段との間の前記第1の段階数
    を、前記プログラム・カウンタのカウント値と結合し、
    前記プログラム・カウンタが受け取る調節カウント値を
    生成する、ように動作可能な算術演算素子と、とから成
    ることを特徴とするプロセッサ。
  2. 【請求項2】 パイプラインを有するプロセッサにおい
    て複数の命令を処理する方法であって、該パイプライン
    はフェッチ段と実行段との間に第1数の段階を有し、前
    記方法が、 条件付きコール命令に対する条件が満たされたか否かに
    ついて判定を行い、前記条件が満たされた場合に、 カウンタのカウント値と、前記第1数の段階に関連する
    数値とを結合し、調節リターン・アドレスを生成するス
    テップと、 前記条件付きコール命令に伴うあらゆる命令をフェッチ
    しかつ実行するステップと、 前記条件付きコール命令に伴うあらゆる命令をフェッチ
    しかつ実行した後に、前記調節リターン・アドレスが指
    定するアドレスを有する次の命令をフェッチするステッ
    プと、 から成ることを特徴とする方法。
JP11141673A 1998-05-21 1999-05-21 パイプラインを有するプロセッサにおいて複数の命令を実行するシステムおよび方法 Pending JP2000207207A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
IN1080MA1998 1998-05-21
US15336898A 1998-09-15 1998-09-15
US1080/MAS/98 1998-09-15
US153368 2002-05-22

Publications (1)

Publication Number Publication Date
JP2000207207A true JP2000207207A (ja) 2000-07-28

Family

ID=26324853

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11141673A Pending JP2000207207A (ja) 1998-05-21 1999-05-21 パイプラインを有するプロセッサにおいて複数の命令を実行するシステムおよび方法

Country Status (3)

Country Link
JP (1) JP2000207207A (ja)
KR (1) KR19990088463A (ja)
SG (1) SG76619A1 (ja)

Also Published As

Publication number Publication date
SG76619A1 (en) 2000-11-21
KR19990088463A (ko) 1999-12-27

Similar Documents

Publication Publication Date Title
JP3120152B2 (ja) コンピューターシステム
US4858104A (en) Preceding instruction address based branch prediction in a pipelined processor
KR100233220B1 (ko) 파이프라인 처리기
US20100169612A1 (en) Data-Processing Unit for Nested-Loop Instructions
JPH1124929A (ja) 演算処理装置およびその方法
US10303399B2 (en) Data processing apparatus and method for controlling vector memory accesses
US11714641B2 (en) Vector generating instruction for generating a vector comprising a sequence of elements that wraps as required
US5903768A (en) Pipelined Microprocessor and load address prediction method therefor
EP2220556B1 (en) A method and a system for accelerating procedure return sequences
US6163837A (en) Writing of instruction results produced by instruction execution circuits to result destinations
CN107870780B (zh) 数据处理装置和方法
US7539847B2 (en) Stalling processor pipeline for synchronization with coprocessor reconfigured to accommodate higher frequency operation resulting in additional number of pipeline stages
US6275924B1 (en) System for buffering instructions in a processor by reissuing instruction fetches during decoder stall time
JP3599499B2 (ja) 中央処理装置
JPH06266556A (ja) データ処理装置
US5410657A (en) Method and system for high speed floating point exception enabled operation in a multiscalar processor system
JP2000207207A (ja) パイプラインを有するプロセッサにおいて複数の命令を実行するシステムおよび方法
EP0989486A1 (en) System and method for executing instructions in a pipelined processor
US20100241832A1 (en) Instruction fetching following changes in program flow
JP3144004B2 (ja) 条件分岐処理装置
JP2000029696A (ja) プロセッサおよびパイプライン処理制御方法
JPH06131180A (ja) 命令処理方式および命令処理装置
JP2824484B2 (ja) パイプライン処理計算機
JP2689894B2 (ja) マイクロプログラム制御型情報処理装置
JP2536615B2 (ja) 情報処理装置