JPS6058490B2 - 命令ブランチ機構 - Google Patents

命令ブランチ機構

Info

Publication number
JPS6058490B2
JPS6058490B2 JP57064838A JP6483882A JPS6058490B2 JP S6058490 B2 JPS6058490 B2 JP S6058490B2 JP 57064838 A JP57064838 A JP 57064838A JP 6483882 A JP6483882 A JP 6483882A JP S6058490 B2 JPS6058490 B2 JP S6058490B2
Authority
JP
Japan
Prior art keywords
instruction
address
stack
stage
register
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
Application number
JP57064838A
Other languages
English (en)
Other versions
JPS585847A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS585847A publication Critical patent/JPS585847A/ja
Publication of JPS6058490B2 publication Critical patent/JPS6058490B2/ja
Expired legal-status Critical Current

Links

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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30054Unconditional branch instructions
    • 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/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; 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation of subprogram jump address

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)
  • Advance Control (AREA)

Description

【発明の詳細な説明】 今から、RSPのハードウェア・ステージにおける動作
を詳細に説明する。
この説明は、(1)どのようにして命令がフエツチされ
かつデコードされるか、(2)どのようにして実効アド
レスが発生されかつ使用されるか、(3)どのようにし
て各種の条件コード及びレジスタ(SARlスタックな
ど)がセットされかつ解釈されるかを含む。
1命令シーケンシング兼フエツチ●ステージ(ステージ
1)このステージは第3図の流れ図に示される。
それは、命令バイブライン実行の位相1の機能を実行す
る。このステージは、命令ストア6を制御する命令アド
レス選択論理を含む。命令ストア 24ビット幅である命令ストア6は、8ビットの動作コ
ード・フィールドと16ビットのオペランド・フィール
ドによつて構成される。
それは命令アドレス●マルチプレクサ(プログラム●カ
ウンタ(PC)マルチプレクサ)12によつてアドレス
される。16ビットを含むマルチプレクサ出力13は、
6553帽までの命令を含む命令ストア6をアドレスす
ることができる。
命令アドレス選択論理 命令実行の位相1で、命令アドレス選択論理は、現命令
のアドレスの源(SOurce)を決定するため、前の
命令から来た8ビット動作コード゛をデコードする。
アドレスはマルチプレクサ12によつて選択され、命令
がアクセスされる。ブランチ、プロシード(PrOce
ed)、又はリターン動作を呼出す前命令からの動作コ
ードは、フエツチされつつある命令のアドレスが5つの
ブランチ源の1つから取られるようにする。他の全ての
動作コードは、現命令のアドレスがシーケンシャル・ア
ドレス・レジスタ16から取られるようにする。シーケ
ンシャル●アドレス●レジスタ16は、フエツチされた
最後の命令のアドレス+1を含む。命令のアドレス発生
及びフエツチ動作は、ブランチングが確実に1サイクル
で起るように、同一サイクルて実行される。マルチプレ
クサ12は次の源の中から現命令のアドレスを選択する
これら源の全ては16ビット・レジスタである。(1)
シーケンシャル●アドレス●レジスタ16(次のシーケ
ンシャル・アドレス(PC+1))(2)スタック・レ
ジスタ18(64ワード命令アドレス●スタックのトッ
プ)(3)オペランドRaョレジスタ36(命令のオペ
ランド・フィールド)(4)保存レジスタ38(保存レ
ジスタの内容)(5)IAR/ベクトル・レジスタ40
(ベクトル化された割込アドレス)シーケンシャル●ア
ドレス●レジスタ16は、命令ストア6を順次にアドレ
スするため源として選択される。
スタック・レジスタ18は、リターン命令のために源と
して選択される。オペランドRaョレジスタ36は、無
条件ブランチ命令のため源として選択される。更にそれ
は、条件基準が満足された時、全ての条件ブランチ命令
のために使用される。条件基準が満足されなければ、シ
ーケンシャル・アドレス・レジスタ16が選択される。
保存レジスタ38は、プロシード(PRCD)命令又は
プロシードを指定した機能が使用された時(即ち、。−
P−ョ形の命令)、次の命令のアドレスのため源として
使用される。IAR/ベクトル・レジスタ40は、命令
ストアのワード1−63へのI/0割込ブランチのため
に使用される。命令ストアは適当な割込処理ルーチンの
アドレスに対するブランチ命令を含んでいる。条件付き
ブランチング 条件付きブランチングの決定は、8個の条件インデイケ
ータ・ビットの状態に基いてなされる。
これらのビットは、命令が実行される時、プロセッサ中
に存在する各種の条件の結果としてセットされる。条件
インデイケータ●ビットは、ステージ4で発生された条
件コード・ビット及び他のステージで発生された状況フ
ラグを含む。ブランチ条件は次のとおりである。全ての
演算命令は、位相4の終りに条件コード1−5をセット
する。
完了するのに位相4の複数サイクルを必要とする乗算、
除算、左方シフトなどの命令については、条件コードは
第4位相が終了した後にセットされる。外部オーバフロ
ー(条件コード6)は位相3で決定され、位相4でセッ
トされる。インデックス比較フラグ7はステージ2で発
生され、その命令実行の位相2でセットされる。ソフト
ウェア●フラグは位相2のプログラム制御の下でセット
される。条件コード4,6,8はラッチされ、具体的に
使用されるまで1へセットされたままである。具体的に
使用されると、それらを使用したブランチ命令の位相2
でOへリセットされる。他の全ての条件コードのビット
は、それに影響を及ぼす各オペレーションによつてセッ
トされる。条件付きブランチ命令は、次の命令実行の位
相1で実行され、従つて、その時点で存在した条件に基
いて実行される。
或る種のブランチ命令は、演算ステージ4で設定された
条件コードに基いて実行される。そのブランチは、ブラ
ンチ命令の3サイクル又はそれ以上前にデコードされた
演算命令の結果としてセットされる。インデックス比較
フラグに基くブランチ命令(BICF)は、前の命令の
結果セットされた条件に従つて実行される。外部オーバ
フローに基く7゛ランチ命令は、そのブランチ命令の3
サイクル又はそれ以上前にセットされた条件に基いて実
行される。スタック動作 アドレス●シーケンシング●コントロールは、データ・
ストア8に置かれた64レベル・スタック10を含む(
メモリロケーションO−63)。
スタック10のトップに書込まれた値は、ステージ1に
置かれた1個の16ビット・スタック・レジスタ18に
保持される。6ビット・スタック・ポインタ28によつ
てアドレスされる64レベル●スタック10は、64レ
ベルまでのサブルーチン及び割込ルーチンのネストを可
能にする。
スタック10に影響を与える命令は、1無条件ブランチ
及びスタックJ(BS)Jリターンョ(RET)Jリタ
ーン及び割込能動ョ(RETENABLE)である。更
にマスクされない割込みもスタック10に影響を与える
。田命令は、次のシーケンシャル●アドレス(シーケン
シャル・アドレス・レジスタ16の値)を、位相2の終
りにスタック・レジスタ18へ書込ませ、次いでその命
令のオペランドRaJによつて指定された命令アドレス
へ無条件ブランチを行う。
更に、それは、位相2の終りまでにスタック・ポインタ
28を1だけ増加させ(SP=SP+1)、位相3で、
シーケンシャル・アドレス・レジスタ16の値を、スタ
ック・ポインタ28によつて指定されたスタック10の
アドレスへ書込む。このようにして、更新されたスタッ
ク・ポインタ28は、常にスタック10のトップのアド
レスを含む。リターン型命令は、スタック・ポインタ2
8によつて指定されたアドレス(即ち、スタックのトッ
プ)の内容を、次の命令のアドレスとして使用させる。
それはスタック・レジスタ18に保持されているので、
次のサイクルで使用可能である。位相2で、スタック●
ポインタ28は、スタック10の次のロケーションを指
定するため、1だけ減少され(SP=SP−1)、次い
でその命令の位相3で、そのロケーションの内容がスタ
ック10から読出され、リターン型命令の位相3の終り
に、スタック●レジスタ18へロードされる。これによ
り、スタック10から読出されたばかりのリターン・ア
ドレスが、前のリターン型命令から少なくとも1つの命
令だけ遅れて生じる後のリターン型命令によつて使用可
能となる。これは、スタック10を読出してそれを位相
3でスタック・レジスタ18へロードする最初のリター
ン型命令は、スタック・レジスタの更新を完了するため
の時間を有するという理由による。しかしリターン型命
令が他のリターン型命令の直後に続くならば、ハードウ
ェアは、特別のやり方でそれを処理しなけれはならない
これは、第2のリターン型命令がデコードされかつフエ
ツチされた時、デコーダ20は、第2のリターン型命・
令の後の命令のアドレスは、スタック●レジスタ18に
ある値であると決定するからてある。しかし、スタック
・レジスタ18は依然として第2のリターン命令を指し
ており、従つてその命令が再びフエツチされる。第2の
リターン型命令の最初のフエツチについては問題がない
。しかし、第2のリターン型命令の第2のフエツチは、
その位相2(第2のリターン型命令の最初のフエッチの
位相3)てスタック・ポインタ28を更新しようとする
。もしそれが起ると、スタック・ポインタ2J8は間違
つた場所を指すことになる。従つて、デコーダ20は、
第2のリターン型命令の第2のフエツチの位相2,3,
4で、通常のリターン型命令の代りに、線7上にノー●
オペレーション信号を挿入しなければならない。それに
よつて、デコーダ22は、スタック・ポインタ28が第
2回目に更新されるのを禁止し、デコーダ75は、デー
タ・ストア8が第2回目に読出されるのを禁止する。ハ
ードウェアによつて発生されたこのノー●オペレーショ
ンの結果、第2のリターン型命令の最初のフエツチは通
常の如く動作するが、第2のリターン型命令の第2のフ
エツチは位相1で通常の如く動作し、位相2,3,4で
はノー・オペレーション命令の如く動作する。第3の連
続したリターン型命令は最初のリターン型命令と同じよ
うに処理される。何故ならば、リターン型命令ではなく
、有効なノー・オペレーション命令に続くからである。
2つ又はそれ以上の連続したリターン命令の動作は、次
のとおりである。
最初のマシン●サイクルで、スタック●レジスタ18に
記憶される値はSiであり、スタック・ポインタ28に
記憶される値はiである。
ステージ1にあるデコーダ20は第1サイクルで前の命
令をデコーダ几、マルチプレクサ12を制御して、線1
3の上に命令ストア6の最初のアドレスを入力させる。
それによつて、命令ストア6から最初の命令がフエツチ
される。第2のマシン・サイクルの始めに、スタック・
レジスタ18はSiを記憶しており、スタック・ポイン
タ28はiを記憶している。
ステージ1にあるデコーダ20は、最初の命令を、最初
のサイクルに続く第2のサイクルで、最初のリターン命
令としてデコーダし、マルチプレクサ12を制御して、
スタック●レジスタ18の内容Siを、第2のアドレス
として命令ストア6へ転送する。それによつて、命令ス
トア6から第2の命令がフエツチされる。ステージ2に
あるデコーダ22は、最初の命令を、第2のサイクルで
最初のリターン命令としてデコーダ化、スタック・ポイ
ンタ28を制御して、その内容を単位置だけ減少してR
i−1Jにする。この値は、ステージ3で、スタック1
0のための最初のデータ・ストア・アドレス●レジスタ
30へ出力される。第3マシン・サイクルの始めに、ス
タック・レジスタはSiを記憶しており、スタック・ポ
インタ28は(1−1)を記憶している。
ステージ1にあるデコーダ20は、第2の命令を、第2
サイクルで第2のリターン命令としてデコーダ化、マル
チプレクサ12を制御して、スタック●レジスタ18を
占めているSiを、命令ストア6へ第2のアドレスとし
て転送させる。従つて、命令ストア6から再び第2の命
令がフエツチされる。ステージ1にあるデコーダ20は
、線7を介してノー●オペレーション(NO−0P)出
力を、ステージ2にあるデコーダ22及びステージ13
にある動作コード●デコーダ75へ接続される。それは
、第3サイクルで第2のリターン命令が検出された時、
NO−0P信号を線7へ出力するためである。ステージ
2にあるデコーダ22は、第3サイクルで第2の命令を
第2のリターン命令としてデコーダし、スタック・ポイ
ンタ28を制御して、その内容を単位置だけ減少させて
(1−2)にする。この値は、ステージ3で、スタック
10のために第2のデータ●ストア●アドレスとしてデ
ータ●ストア●アドレス●レジスタ30へ出力される。
ステージ3にあるデコーダ75は、第3サイクルで、最
初の命令を最初のリターン命令としてデコーダし、かつ
データ・ストア8を制御して、最初のデータ・ストア・
アドレス(1−1)に基いてスタック10の最初のデー
タヘアクセスさせ、ステージ1の線17を介して、最初
のデータを値S.−1としてスタック・レジスタ18へ
出力させる。第4マシン・サイクルの始めに、スタック
●レジスタはS,−1を記憶し、スタック・ポインタ2
8は(1−2)を記憶している。
ステージ1にあるデコーダ20は、第3サイクルに続く
第4サイクルで、再び第2の命令を第2のリターン命令
が2回目に生じたものとしてデコーダし、かつマルチプ
レクサ12を制御して、スタック・レジスタ18の内容
S,−1を第3アドレスとして命令ストア6へ転送させ
る。それによつて、第3命令が命令ストア6からフエツ
チされる。ステージ2のデコーダ22は、線7上のNO
−0P信号に応答して、第4サイクルでスタック・ポイ
ンタ28に対する動作を省略する。ステージ3にあるデ
コーダ75は、第4サイクルで第2の命令を第2のリタ
ーン命令としてデコーダし、データ・ストア8を制御し
て、第2のデータ・ストア・アドレス(1−2)に基い
てスタック10の第2のデータヘアクセスさせ、第2の
データを、値S,−2としてステージ1の線19を介し
てスタック・レジスタへ出力させる。第5マシン・サイ
クルで、スタック●レジスタ18はSi−2を記憶して
おり、スタック◆ポインタ28は(1−2)を記憶して
いる。
ステージ1にあるデコーダ20は、第4サイクルに続く
第5サイクルで、第3の命令を最初の次の命令としてデ
コーダし、マルチプレクサ12を制御して、最初の次の
命令アドレスを命令ストア6へ入力させる。それによつ
て、第4命令が命令ストア6からフエツチされる。ステ
ージ2にあるデコーダ22は、第5サイクルで第3命令
を最初の次の命令としてデコーダし、第4図のデータ●
ストア・アドレス発生器24を制御して、最初の次のデ
ータ・ストア●アドレスをステージ3にあるデータ●ス
トア・アドレス・レジスタ30へ出力させる。ステージ
3にある動作コード・デコーダ75は、線7にあるNO
−0P信号に応答して、第5サイクルでデータ・ストア
8に対する動作を省略する。この例では、スタック●レ
ジスタ及びスタック・ポインタ28にある内容は、第6
マシン・サイクルで変化しない。ステージ1にあるデコ
ーダ20は、第5サイクルに続く第6サイクルで、第4
の命令を第2の次の命令としてデコーダし、マルチプレ
クサ12を制御して、第2の次の命令アドレスを命令ス
トア6へ入力させる。それによつて、第5の命令が命令
ストア6からフエツチされる。ステージ2にあるデコー
ダ22は、第6サイクルで、第4の命令を第2の次の命
令としてデコーダし、データ・ストア●アドレス発生器
24を制御して、第2の次のデータ●ストア●アドレス
を、ステージ3にあるデータ●ストア●アドレス・レジ
スタ30へ出力させる。ステージ3にある動作コード・
デコーダ75は、第6サイクルで、第3の命令又は最初
の次の命令をデコーダし、データ・ストア8を制御して
、最初の次のデータ●ストア・アドレスに基いて第3の
データにアクセスさせる。このようにして、2つの連続
したリターン命令に対する命令ストア・アクセシング動
作は、時間的に拡張される。ここで理解すべきは、前述
のNO−0P信号を発生するには、命令シーケンシング
●デコーダ20ではなく、データ●ストア●アクセシン
グ●デコーダ22で発生させてよいことである。
これまで説明した、2個の連続したリターン命令に対す
る動作は、自動的に任意数の連続したリターンに適合さ
せることができる。
もしへ個の連続したリターン命令が存在すれば、それら
は?回のマシン・サイクルで実行され、3番目ごとのサ
イクルは、前述したようにハードウェアによつてNO−
0P信号を自動的に発生される。もし(2N+1)個の
連続したリターン命令が存在すれば、それらは(3N+
1)回のマシン・サイクルで実行される。ここでNは、
ハードウェアによつて実行されるNO−0P信号の数で
あり、(2N+1)は、リターン命令の数である。Nは
ゼロ、又は任意の正の整数てあるとする。マスクされな
い割込みが受取られると、スタック10が影響を受ける
それは、割込まれたプログラムの適当なリターン・アド
レスが、1だけ増加されたスタック・ポインタを使用し
て(SP=SP+1)、データ・ストア8へアドレスと
して書込まれる前に、スタック・レジスタ18へ入れら
れるからである。割込みは、命令ストア6の適当な割込
エントリイ●アドレスヘブランチさせる。2 アドレス
発生ステージ(ステージ2)第4図のステージ2は、命
令実行の第2位相を実行する。
ステージ2の主な機能は、データ・ストア8の動作のた
めに実行アドレスを計算することである。データ・スト
ア8の動作は命令実行の第3位相で起る。ステージ2で
実行される他の機能は次のとおりである。(1)インデ
ックス●レジスタの演算 (2)インデックス●レジスタのテスト (3)保存レジスタの計算 (4)インデックス・レジスタ/ストレージ・インター
フェイス(5)スタック●ポインタの更新 第4図はステージ2の機能的流れ図を示す。
このステージに示される全ての制御レジスタ(スタック
・ポインタ28を除く)は、16ビットの長さを有する
。スタック・ポインタ28は6ビットの長さである。次
の表は、これらの制御レジスタをリストしたものである
。インデックス●レジスタ(Xl,X2)44ベース●
レジスタ46マスク●レジスタ48 増加レジスタ(Wl,W2)49 転送レジスタ50 スタック●ポインタ28 加算器52は、16ビットの、R2の補数ョ加算器てあ
る。
加算器52は、1より大きいョ、1より小さいョ又は1
等しいョを判別する論理機能を有する。加算器52は、
減算のために右方へ入力された値の補数を形成すること
ができる。LS3へのキヤリイに対して別個の制御が実
行される。これによつて、加算器はJ2の補数ョ演算を
実行し、又は1ビット・オフセットを挿入することがで
きる。1ビット・オフセットは、比較機能において、1
より小さいか等しいョ機能を作るため使用される。
加算器52゛も16ビットのR2の補数ョ加算器である
。アドレス発生論理へのインターフェイスは次のとおり
である。
(1)命令における16ビットのオペランドRaョフイ
ールド(2)保存レジスタ38に対する16ビット出力
(3) ステージ3に対する実行アドレス出力(16ビ
ット)(4)ステージ3に対する16ビットの入力バス
及び出力バネ(5)制御のための動作コード (6)インデックス比較フラグ(状況レジスタに含まれ
る)(7)ソフトウェア・フラグ(状況レジスタに含ま
れる)線26上に有効なデータ・ストア・アドレスを発
生するには、アドレス指定の4つの方法の1つを実行し
なければならない。
4つの方法は前に説明した。
全ての実効アドレスは、命令実行の位相2の終りに利用
可能となる。実効アドレスは、位相3で使用するため、
ステージ3へ送られる。インデックス●レジスタの動作
第4図に示される機能の残りの部分は、他のアドレス発
生演算機能を実行するために使用される。
インデックス●レジスタの演算 この機能は、加算器52、インデックス・レジスタ(X
l,X2)44、増加レジスタ(Wl,W2)49を使
用し、加算器52をインデックス・レジスタヘフイード
バツクさせることによつて実行される。
実行されることのできる機能は次のとおりである。Xi
=Xi+A,,Xi=Xi+Wj,.Xi=Xi−Wj
ll=1、2及びj=1,2。これらの動作は命令実行
の位相2で実行される。インデックス●レジスタのテス
ト 加算器52の結果によつてインデックス比較フラグ(I
CF)が設定され、このフラグは、条件付きブランチ命
令RBICFョによつて使用される。
加算器52は、適当なインデックス・レジスタから即値
(又は適当な増加レジスタの内容)を減算することによ
つて、インデックス・レジスタの内容に影響を与えるこ
となく、選択されたインデックス・レジスタと、オペラ
ンドRaJ又は選択された増加レジスタとを比較する。
指定されたテストの結果に対して、フラグがセットされ
る。このテストは、命令実行の位相2で起り、位相2の
終りに、比較フラグがセットされる。この比較の結果に
基いてブランチするBICF命令は、もし次の命令とし
てコード化されれば有効である。保存レジスタの計算 加算器52からインデックス・レジスタへのフィードバ
ック通路は、保存レジスタ38に対しても利用可能てあ
る。
保存レジスタは位相2の終りにロードされる。この機能
はAS■命令によつて実行される。インデックス●レジ
スタ/ストレージ・インターフェイスインデックス・レ
ジスタとデータ●ストアとのインターフェイスは、直接
又は転送レジスタ50を介して行われる。
転送レジスタとのインターフェイスは、所望ならば、デ
ータを一時的にそこに保存させることを可能にし、また
そこからデータをロードすることを可能にする。データ
・ストア8が読出されると、その内容は、位相3の終り
に、適当なインデックス●レジスタヘラツチされる。デ
ータ・ストアへの書込みは位相3で起る。転送レジスタ
転送レジスタ50は、データ・ストア8とステージ2に
おける全ての制御レジスタとの間で通路を形成するため
に使用される。
この通路は双方向性であり、データは転送レジスタを介
してデータ・ストアから任意の制御レジスタへ、また制
御レジスタからデータ・ストアへ転送されることができ
る。更に、転送レジスタは、データ・ストア8と全ての
制御レジスタとの間に設けられたデータの一時的保存場
所として使用される。
データは、命令の位相2で、転送レジスタから宛先レジ
スタヘロードされる。制御レジスタから転送レジスタヘ
データを転送する場合、転送が位相2で起るように、有
効な直接通路が転送レジスタに設けられる。データ・ス
トア8の読出しは、位相3の終りに、現命令の動作コー
ドによつて指定されたレジスタへ、データ●ストアの内
容を転送させる。
転送レジスタからデータ・ストアへの書込みは、位相3
で起る。ステージ2のバイパス 或る種の命令は、その実行の位相4でオペランドRaJ
を必要とする。
これらの命令のために、ステージ2は、位相2の終りに
、オペランドRaョを実効アドレス線へ送らねばならな
い。この値は、位相3でステージ3を介して通され、命
令の動作コードによつて指定されたところに従つて、ス
テージ4の中の適当なレジスタへ送られる。それは必要
に応じて位相4で使用することができる。3データ●ス
トア・ステージ(ステージ3)第5図のデータ・ストア
●ステージ3は、データ●ストア8、データ●ストア●
アドレス●レジスタ30、入力選択マルチプレクサ(M
UX)54、を含む。
ステージ3は、RSPのためにデータの記憶及びフエツ
チ動作を実行する。データ・ストア8は16ビット・ワ
ードを使用し、6553帽のワードまでアドレス可能で
ある。16ビットのデータ●ストア●アドレス●レジス
タ30は、源選択論理と共に、ステージ2によつて発生
された実効アドレスと、I/0論理ステージ34によつ
て与えられたアドレスとを選択するために設けられる。
源選択は動作コード・デコーダ75によつて実行される
。動作コード・デコーダ75リ、線7上の動作コード入
力に応答して、マルチプレクサー54及びデータ・スト
ア・アドレス・レジスタ30を制御する。データ・スト
ア8への書込動作については、データ源は(1)ステー
ジ4、(2)ステージ2、(3)ステージ1のスタック
●レジスタ18、(4)1/0論理ステージ34から選
択される。デーータ・ストア8の出力(線56及び17
)は、位相3の完了時に、他の4つのステージで使用す
るため、現命令の動作コードによつて指定された適当な
レジスタへ導かれる。データ・ストアへの書込動作は、
ステージ2で発生された実効アドレスを使用して、命令
実行の位相3で起る。記憶されるデータは、位相2の終
りに源レジスタで利用可能なデータである。データ・フ
エツチ動作は命令実行の位相3で実行され、データは現
命令の動作コードによつて指定されたレジスタに置かれ
る。
データ・ストア8からステージ4へデータをロードする
場合、データは位相3の終りに適当なレジスタに置かれ
、次jいで位相4で、加算器を通され(条件コードがセ
ットされる)、位相4の終りに宛先レジスタへ書込まれ
る。1/0論理ステージ34によるデータ・ストア8の
使用は、サイクル・スチール動作によつて行われる。
ステージ34がデータ・ストア動作を要求される時、バ
イブラインが停止され、その間、データ・ストア8のサ
イクルがステージ34によつて使用される。■/0動作
について1つのサイクル●スチールが終ると、バイブラ
インが再開される。命令の首尾一貫した実行を維持する
ため、バイブラインの全てのステージが停止されねばな
らない。命令RAZZ..a(1)J(即値aをzへ加
え、その結果をZに置け)のように、位相4動作のため
にステージ4でオペランドRaJを必要とする命令につ
いては、データ●ストア●アドレス●レジスタ30から
ステージ4の適当なレジスタへ通路が設けられる。
この通路は、ステージ2によつて実効アドレス線上に置
かれたオペランドRaョを、ステージ4に対し入力デー
タとして利用可能にする。これが可能となるのは、位相
4でオペランドを必要とする動作は、その実行中データ
・ストア8を使用しないものである。これまで説明した
リアルタイム信号プロセッサ・チップの命令バイブライ
ン・アーキテクチヤーは、データ・ストアの区分された
領域に置かれている倒レさルのアドレス●スタツクヘア
クセスするため、ブランチ及びリターン動作の間に、使
用されない命令位相を有利に利用する。
アドレス・スタックは、実際には命令フエツチ●ステー
ジよりもいくつかの命令位相を超えて置かれているが、
アドレス●スタックの内容は、ステージ1に置かれたス
タック●レジスタの助けをかりて、即時に利用可能であ
る。更に、プロセッサ・チップ上では、アドレス・スタ
ックによつて余分のチップ領域や電力が消費されること
はない。本発明を利用しなければ、アドレス・スタック
を命令フエツチ・ステージで直ちに利用するため、それ
をプロセッサ・チップ上に設けねばならない。更に、デ
ータ・ストアにおけるアドレス●スタックの区分サイズ
は小さくすることができ、節約された領域は他のデータ
記憶に使用することができる。
【図面の簡単な説明】
第1図はリアルタイム信号プロセッサの機能的ブロック
図、第2図は命令バイブライン動作を示す図、第3図は
命令シーケンシング兼フエツチ・ステージの機能的ブロ
ック図、第4図はアドレス発生ステージの機能的ブロッ
ク図、第5図はデータ●ストア●ステージの機能的ブロ
ック図である。 6・・.・・命令ストア、8・・・・・・データ●スト
ア、10・・・・・命令アドレス・スタック、12・・
・・・・命令アドレス●マルチプレクサ、14・・・・
・命令アドレス増加器、16・・・・ウーケンシヤル・
アドレス・レジスタ、18・・・・・スタック●レジス
タ、20・・・命令シーケンシング・デコーダ、22・
・・・・・データ●ストア●アクセシング●デコーダ、
24・データ・ストア・アドレス発生器、28・ ・・
スタック●ポインタ、30・・・・・・データ・ストア
●アドレス・レジスタ(DSAR)、54・・・・・・
入力選択マルチプレクサ、75・・・・・動作コード●
デコーダ。

Claims (1)

  1. 【特許請求の範囲】 1 命令を記憶する命令記憶装置と、データを記憶する
    データ記憶装置と、命令のフエツチ及びシーケンスを制
    御するための第1ステージ、上記データ記憶装置のアド
    レスを発生するための第2ステージ、上記データ記憶装
    置にアクセスするための第3ステージを含むパイプライ
    ン式命令機構とを具備し、上記ステージの各々は動作コ
    ード及びオペランドをそれぞれ含む複数の連続した命令
    を実行するため重複モードで動作し、上記命令記憶装置
    から命令がアクセスされて上記データ記憶装置からアク
    セスされたデータの上で命令が実行されるような貯蔵プ
    ログラム型データ・プロセッサにおいて、上記命令記憶
    装置の命令アドレスを記憶するため上記データ記憶装置
    の区分された領域に設けられた命令アドレス・スタック
    と、上記第1ステージに設けられたマルチプレクサであ
    つて、上記命令記憶装置のアドレス入力へ接続された出
    力を有し、かつ上記命令記憶装置へ命令アドレスを入力
    するための複数の入力を有するマルチプレクサと、上記
    命令記憶装置における順次の記憶ロケーションのアドレ
    スを記憶するシーケンシャル・アドレス・レジスタと、
    上記第1ステージに設けられたアドレス増加器であつて
    、上記命令アドレスを増加させるため、上記マルチプレ
    クサの出力へ接続された入力を有し、かつ上記シーケン
    シャル・アドレス・レジスタを介して上記マルチプレク
    サの入力へ接続された出力を有するアドレス増加器と、
    上記第1ステージに設けられたレジスタであつて、上記
    アドレス増加器又は上記命令アドレス・スタックから出
    力された命令アドレスを記憶するため、上記シーケンシ
    ャル・アドレス・レジスタの出力又は上記命令アドレス
    ・スタックからの出力へ選択的に接続される入力を有し
    、かつ上記マルチプレクサの入力又は上記命令アドレス
    ・スタックの入力へ選択的に接続される出力を有するス
    タック・レジスタと、上記第1ステージに設けられたデ
    コーダであつて、上記命令記憶装置の出力ヘ接続された
    入力、及び上記マルチプレクサへ接続された出力を有し
    、かつ上記命令記憶装置からアクセスされた命令の動作
    コードに応答して、上記命令記憶装置のアドレス入力が
    上記マルチプレクサを介して上記シーケンシャル・アド
    レス・レジスタの出力又は上記スタック・レジスタの出
    力へ選択的に接続されるように制御する第1のデコーダ
    と、上記第2ステージに設けられたデコーダであつて、
    上記命令記憶装置からアクセスされた命令の動作コード
    を解読して上記データ記憶装置へのアクセスを制御する
    ため、上記命令記憶装置の出力へ接続された入力を有す
    る第2のデコーダと、上記第2ステージに設けられたア
    ドレス発生器であつて、上記命令記憶装置の出力へ接続
    された入力、及び上記第2デコーダへ接続された入力を
    有し、該第2デコーダにおける動作コードの解読に応答
    して上記命令記憶装置からアクセスされた命令のオペラ
    ンドから上記データ記憶装置のアドレスを発生するアド
    レス発生器と、上記第2ステージに設けられたポインタ
    装置であつて、上記第2ステージへ接続された制御入力
    を有し、上記データ記憶装置における記憶ロケーション
    のアドレスを増加又は減少させて、上記命令アドレス・
    スタックに最後に記憶された命令アドレスの記憶ロケー
    ションを指定するポインタ装置と、上記第3ステージに
    設けられたレジスタであつて、上記データ記憶装置の記
    憶ロケーションにアクセスするため、上記アドレス発生
    器の出力及び上記ポインタ装置の出力へ接続された入力
    を有し、かつ上記データ記憶装置のアドレス入力へ接続
    された出力を有するアドレス・レジスタと、上記第3ス
    テージに設けられたデコーダであつて、上記命令記憶装
    置の出力へ接続された入力、及び上記データ記憶装置へ
    接続された制御出力を有し、上記命令記憶装置からアク
    セスされたブランチ命令の動作コードに応答して、上記
    スタック・レジスタの内容が上記データ記憶装置のデー
    タ入力へ入力されるのを制御する第3のデコーダとを具
    備し、上記マルチプレクサは、上記第1ステージにおけ
    る動作コードの解読に応答して、上記命令記憶装置から
    アクセスされた命令のオペランドをブランチ・アドレス
    として上記命令記憶装置へ転送するため、入力の1つを
    上記命令記憶装置の出力ヘ接続され、上記第1ステージ
    は上記ブランチ命令の動作コードに応答して、該ブラン
    チ命令のオペランドが上記マルチプレクサを介して上記
    命令記憶装置のアドレス入力へ転送されるのを制御し、
    かつ上記シーケンシャル・アドレス・レジスタにあるア
    ドレスが上記スタック・レジスタへロードされるのを制
    御し、上記第2デコーダは、上記ブランチ命令の動作コ
    ードに応答して、上記スタック・レジスタの内容が上記
    ブランチ命令の動作コードによつて指定されたブランチ
    動作からのリターン・アドレスとして上記データ記憶装
    置へ記憶されるようにするため、上記ポインタ装置の増
    加又は減少を制御し、かつ上記ポインタ装置の内容が、
    上記アドレス・レジスタへ、上記命令アドレス・スタッ
    クの記憶ロケーションのアドレスとして出力されるのを
    制御することを特徴とする命令ブランチ機構。 2 命令を記憶する命令記憶装置と、データを記憶する
    データ記憶装置と、命令のフエツチ及びシーケンスを制
    御するための第1ステージ、上記データ記憶装置のアド
    レスを発生するための第2ステージ、上記データ記憶装
    置にアクセスするための第3ステージを含むパイプライ
    ン式命令機構とを具備し、上記ステージの各々は動作コ
    ード及びオペランドをそれぞれ含む複数の連続した命令
    を実行するための重複モードで動作し、上記命令記憶装
    置から命令がアクセスされて上記データ記憶装置からア
    クセスされたデータの上で命令が実行されるような貯蔵
    プログラム型データ・プロセッサにおいて、上記命令記
    憶装置の命令アドレスを記憶するため上記データ記憶装
    置の区分された領域に設けられた命令アドレス・スタッ
    クと、上記第1ステージに設けられたマルチプレクサで
    あって、上記命令記憶装置のアドレス入力へ接続されれ
    た出力を有し、かつ上記命令記憶装置へ命令アドレスを
    入力するための複数の入力を有するマルチプレクサと、
    上記命令記憶装置における順次の記憶ロケーションのア
    ドレスを記憶するシーケンシャル・アドレス・レジスタ
    と、上記第1ステージに設けられたアドレス増加器であ
    つて、上記命令アドレスを増加させるため、上記マルチ
    プレクサの出力へ接続された入力を有し、かつ上記シー
    ケンシャル・アドレス・レジスタを介して上記マルチプ
    レクサの入力へ接続された出力を有するアドレス増加器
    と、上記第1ステージに設けられたレジスタであつて、
    上記アドレス増加器又は上記命令アドレス・スタックか
    ら出力された命令アドレスを記憶するため、上記シーケ
    ンシャル・アドレス・レジスタの出力又は上記命令アド
    レス・スタックからの出力へ選択的に接続される入力を
    有し、かつ上記マルチプレクサの入力又は上記命令アド
    レス・スタックの入力へ選択的に接続される出力を有す
    るスタック・レジスタと、上記第1ステージに設けられ
    たデコーダであつて、上記マルチプレクサの出力へ接続
    された入力を有し、上記命令記憶装置からアクセスされ
    た命令の動作コードに応答して、上記命令記憶装置のア
    ドレス入力が上記マルチプレクサを介して上記シーケン
    シャル・アドレス・レジスタの出力又は上記マルチプレ
    クサの入力へ選択的に接続されるように制御する第1の
    デコーダと、上記第2ステージに設けられたデコーダで
    あつて、上記命令記憶装置からアクセスされ命令の動作
    コードを解読して上記データ記憶装置へのアクセスを制
    御するため、上記命令記憶装置の出力へ接続された入力
    を有する第2のデコーダと、上記第2ステージに設けら
    れたアドレス発生器であつて、上記命令記憶装置の出力
    へ接続された入力、及び上記第2デコーダへ接続された
    入力を有し、該第2デコーダにおける動作コードの解読
    に応答して上記データ記憶装置のアドレスを発生するア
    ドレス発生器と、上記第2ステージに設けられたポイン
    タ装置であつて、上記第2デコーダへ接続された制御入
    力を有し、上記データ記憶装置における記憶ロケーショ
    ンのアドレスを増加又は減少させて、上記命令アドレス
    ・スタックに最後に記憶された命令アドレスの記憶ロケ
    ーションを指定するポインタ装置と、上記第3ステージ
    に設けられたレジスタであつて、上記データ記憶装置の
    記憶ロケーションにアクセスするため、上記アドレス発
    生器の出力及び上記ポインタ装置の出力へ接続された入
    力を有し、かつ上記データ記憶装置のアドレス入力へ接
    続された出力を有するアドレス・レジスタと、上記第3
    ステージに設けられたデコーダであつて、上記命令記憶
    装置の出力へ接続された入力、及び上記データ記憶装置
    へ接続された制御出力を有し、上記命令記憶装置からア
    クセスされたブランチ命令の動作コードに応答して、上
    記スタック・レジスタの内容が上記データ記憶装置のデ
    ータ入力へ入力されるのを制御する第3のデコーダと、
    命令のシーケンスを変更するブランチ・アドレスを記憶
    するブランチ・アドレス・レジスタと、を具備し、上記
    マルチプレクサは、上記第1デコークにおける動作コー
    ドの解読に応答して、上記ブランチ・アドレス・レジス
    タの内容を上記命令記憶装置へ転送するため、入力の1
    つを上記ブランチ・アドレス・レジスタへ接続され、上
    記第1デコーダは、上記命令記憶装置からアクセスされ
    たブランチ命令の動作コードに応答して、上記ブランチ
    ・アドレス・レジスタの内容が上記マルチプレクサを介
    して上記命令記憶装置のアドレス入力へ転送されるのを
    制御し、かつ上記シーケンシャル・アドレス・レジスタ
    にあるアドレスが上記スタック・レジスタへロードされ
    るのを制御し、上記第2デコーダは、上記ブランチ命令
    の動作コードに応答して、上記スタック・レジスタの内
    容が上記ブランチ命令の動作コードによつて指定された
    ブランチ動作からのリターン・アドレスとして上記デー
    タ記憶装置へ記憶されるようにするため、上記ポインタ
    装置の増加又は減少を制御し、かつ上記ポインタ装置の
    内容が、上記アドレス・レジスタへ、上記命令アドレス
    ・スタックの記憶ロケーションのアドレスとして出力さ
    れるのを制御することを特徴とする命令ブランチ機構。 発明の詳細な説明I本発明の分野 本発明は一般的にはデータ処理システムに関し、具体的
    には貯蔵プログラム型データ・プロセ″フサの命令機構
    に関する。 ■ 本発明の背景 コンピュータ命令は実行されるべき動作の指定であり、
    動作が実行される1つ又はそれ以上のアドレス、結果の
    ロケーションを示すアドレス、シーケンス中の次の命令
    のアドレスを含んでよい。 これらの指定又はアドレスは暗黙的に限定されてよい。
    即ち、次の命令ロケーションを指定する場合、マシンは
    命令が順次に並んでいるものと仮定する。この場合、次
    の命令は現命令のロケーションの次のアドレスに含まれ
    るものと仮定される。現命令のアドレスは、シーケンシ
    ャル●アドレス・レジスタ(SAR)と呼ばれるレジス
    タに保存されている。命令の実行中、SARは1アドレ
    ス単位だけ前進される。SARを使用する全てのシステ
    ムにおいて、例えばサブルニチンを実行するため、プロ
    グラム中の或る地点で初期値を設定しまたそれを変更す
    る機構が設けられていなければならない。 この機構は、ブランチ機構と呼ばれる特殊の命令機構で
    ある。ブランチ命令には2種の基本的な種類がある。即
    ち、スタッキングを伴うブランチ命令と、スタッキング
    を伴わないブランチ命令である。これら2つのブランチ
    命令は、S,ARの次のシーケンシャルなアドレスの代
    りに新しい値を設定し、命令の新しいシーケンスのロケ
    ーションの開始点を限定する。スタッキングを伴う命令
    は、元の命令シーケンスが変更される前に、次のシーケ
    ンシャルな命令アドレスをLIFOスタック●メモリに
    記憶させ、サブルーチンを実行するために使用されるこ
    とができる。これは、記憶されたアドレスにおいて、シ
    ステムを元のシーケンスへ戻す。定義としては、ブラン
    チ命令とは、本明細書において、スタッキング動作を伴
    うブランチ命令を意味するものとする。ブランチ命令に
    続くサブルーチン動作の完了後、プログラムは、ブラン
    チの出発点となつた元の命令シーケンス中の地点へ戻ら
    ねばならない。 これは1リターン命令ョによつて実行される。プログラ
    ムが戻るべき命令アドレスは、ブランチ命.令が実行さ
    れた時点で記憶されねばならない。いくつかの連続した
    ブランチ命令を可能とするため、後人れ先出し(LIF
    O)命令アドレス・スタックが、それらのリターン●ア
    ドレスを記憶するため設けられねばならない。バイブラ
    イン命令アーキテクチヤーのために命令アドレス・スタ
    ックを設ける通常の方法は、命令バイブラインの最初の
    ステージに大型の専用レジスタ・ファイルを設けること
    である。 何故ならば、最初のステージは実行順序を決定するステ
    ージだからである。しかし、大型集積回路の出現と共に
    、プロセッサの命令処理兼算術回路を単一の集積回路チ
    ップの上に集積することによつて、単位当りコストのか
    なりの節減が得られる。しかし、データ記憶及び命令記
    憶などの大量記憶機能は、別個のメモリ・チップで実行
    されねばならない。何故ならば、プロセッサ・チップ上
    の利用可能領域には制限があるからである。命令パイプ
    ラjインの第1ステージで即時にアクセス可能なリター
    ン・アドレスの記録を維持するのは望ましいとは言え、
    そのような大量記録機能を、命令及び演算処理エレメン
    トを含む同一の集積回路チップ上に含ませることは容易
    でない。しかし、データ記一憶機構にリターン・アドレ
    ス記憶機能を包含させることは、データ記憶機構が同一
    の集積回路チップ上に設けられているとしても、先行技
    術では達成され得なかつた。何故ならば、リターン命令
    が第1ステージによつて読出された後、いくつかのマシ
    ン・サイクル又は位相が経過するまで、リターン・アド
    レスはデータ記憶機構からアクセスされ得なかつたから
    である。LlFOスタックをデータ処理システムのデー
    タ記憶機構へ格納することは新しい思想ではない。 例えば、米国特許第404146鏝(特公昭55−43
    136号)は、データ記憶機構でLIF′Oスタックを
    使用することにより、サブルーチン●リンケージを実行
    する方法を説明している。上記米国特許は、シーケンシ
    ャル位相命令バイブラインについて解決されるべき問題
    である、同時バイブライン命令実行の問題を考慮してい
    ない。上記米国特許は、データ記憶機構中のスタックの
    アクセスを命令によつて行わせる。これは、必然的に、
    命令バイブライン中の命令のスループットを低下させる
    。■ 本発明の目的本発明の目的は、データ・プロセッ
    サにおける命令実行バイブラインのために、改善された
    シーケンス命令機構を与えることである。 本発明の他の目的は、電力消散を低下させた、集積回路
    チップ上に完全に格納されたデータ・プロセッサのため
    の改善されたバイブライン命令機構を提供することてあ
    る。 本発明の他の目的は、データ・プロセッサのための命令
    バイブライン機構において、ブランチ又はリターン動作
    を実行するため、未使用の命令位相を利用することであ
    る。 本発明の他の目的は、通常、命令フエツチ・マシン・サ
    イクルに続くマシン・サイクルでアクセスされるデータ
    記憶機構中に置かれた命令スタック中のリターン●アド
    レスヘアクセスすることのできるプロセッサを提供する
    ことである。 本発明の他の目的は、バイブラインの効率を低下させる
    ことなく、複数位相命令バイブラインによつてアクセス
    される同一のデータ記憶装置によつて、データ記憶機能
    と命令スタッキング機能を実行させることである。 ■ 本発明の要約 上記の目的は、本明細書に開示される本発明によつて達
    成される。 本明細書で開示されるデータ●プロセッサのための命令
    バイブラインにおいて、命令実行は次のような一連の位
    相で実行される。即ち、これらの位相は、命令記憶機構
    から命令をフエツチし、フエツチされた命令からデータ
    記憶アドレスを計算し、計算されたアドレスに基きデー
    タ記憶機構にアクセスして、データ●オペランドを獲得
    し、フエツチされた命令に従つて、アクセスされたデー
    タ上で論理演算動作を実行する位相を含む。ブランチ及
    びリターン命令は、データ記憶機構中にリターン・アド
    レス・スタックを設けることによつて実行可能にされる
    。データ記憶機構は、ブランチ動作が完了した後に、リ
    ターンされるべき次の命令記憶アドレスを記憶する。デ
    ータ記憶機構中の命令アドレス・スタックは、バイブラ
    インの効率を低下させることなく、いくつかの命令実行
    位相が経過するまで、バイブラインの命令フエツチ●ス
    テージによつて直接にアクセスされることができないの
    で、バイブラインの命令フエツチ・ステージにスタック
    ●レジスタが設けられる。このスタック・レジスタは、
    命令アドレス●スタックのトップに現在置かれている命
    令記憶アドレスの重複情報を含む。命令フエツチ・ステ
    ージでリターン命令が現われると、命令記憶機構中でリ
    ターンされるべき次の命令のアドレスは、バイブライン
    中の流れを中断させることなく、即時に利用可能となる
    。命令フエツチ・ステージとデータ記憶アクセス・ステ
    ージの間のバイブライン・ステージに置かれたスタック
    ・ポインタは、バイブライン中の未使用の命令位相を利
    用して、データ記憶アクセス・ステージで、命令アドレ
    ス・スタックから次に利用可能な命令記憶アドレスを読
    出させ、それを次のリターン命令に対する準備としてス
    タック・レジスタヘロードさせる。こうして、データ記
    憶機能及び命令スタッキング機能は、バイブラインの効
    率を低下させることなく、複数位相命令バイブライン中
    の中間ステージによつてアクセスされる同一のデータ記
    憶装置によつて実行される。追加的利点として、データ
    記憶機構中のアドレス●スタックの区分サイズが小さく
    なり、節約されたスペースがデータ記憶に使用すること
    ができる。■ 実施例の説明 本明細書において、データ・プロセッサのための命令バ
    イブラインが開示される。 この命令バイブラインにおいて、命令実行は一連の位相
    中で実行される。これらの位相は、命令記憶機構から命
    令をフエツチし、フエツチされた命令からデータ記憶ア
    ドレスを計算し、データ記憶機構の計算されたアドレス
    にアクセスして、データ●オペランドを獲得し、フエツ
    チされた命令に従つて、アクセスされたデータ上で理論
    又は演算動作を実行する位相を含む。ブランチ及びリタ
    ーン命令は、データ記憶機構中にリターン●アドレス●
    スタックを設けることによつて実行可能にされる。リタ
    ーン・アドレス・スタックは、ブランチ動作が完了した
    後にリターンされるべき次の命令記憶アドレスを記憶す
    る。データ記憶機構中の命令アドレス・スタックはバイ
    ブラインの効率を低下させることなく、いくつかの命令
    実行位相が経過するまで、バイブラインの命令フエツチ
    ●ステージによつて直接にアクセスされ得ないので、バ
    イブラインの命令フエツチ●ステージにスタック●レ1
    ジスタが設けられる。このスタック・レジスタはミ命令
    アドレス●スタックのトップに現在置かれている命令記
    憶アドレスの重複情報を含む。命令フエツチ・ステージ
    にリターン命令が現われると、命令記憶機構においてリ
    ターンされるべき次の命令のアドレスが、バイブライン
    中の流れを中断させLることなく、即時に利用可能とな
    る。命令フエツチ●ステージ及びデータ記憶アクセス●
    ステージの間のバイブライン●ステージに置かれたスタ
    ック・ポインタは、バイブライン中の使用しない命令位
    相を利用し、データ記憶アクセス・ステージで、命令ア
    ドレス・スタックから次に利用可能な命令記憶アドレス
    を読出させ、それを次のリターン命令の準備としてスタ
    ック●レジスタにロードさせる。このようにして、デー
    タ記憶機能及び命令スタッキング機能が、バイブライン
    の効率を低下させることなく、複数位相命令バイブライ
    ン中の中間ステージによつてアクセスされる同一のデー
    タ記憶装置によつて実行される。リアルタイム信号プロ
    セッサ(RSP)は、16ビット●データ●フロー及び
    24ビット命令セットを有する単一オペランド汎用プロ
    セッサである。 このプロセッサは、信号処理アルゴリズムを実行するた
    め特別に適合化される。RSPは、高効率及び高電力回
    路を必要としないで、最大処理スループットを達成すべ
    く設計されたバイブライン命令装置である。そのアーキ
    テクチヤーは、可変精度乗算及び32ビット除算を含む
    算術、論理、制御命令の完全なレパートリーを含む。メ
    モリを除いた全体のプロセッサは、第1図に示されるよ
    うに、単一のVLSIチップ5の上に設けられる。RS
    P命令セットは、1サイクルで演算機能を実行する命令
    てある(乗算、除算、左方シフトを除く)。 その場合、オペランドの1つはデータ・ストア(データ
    記憶機構)8に含まれ、他のオペランドは第3図に示さ
    れるスタック・レジスタ(ローカル・レジスタ)18に
    含まれる。結果はローカル・レジスタに戻される。その
    ような命令を実行するため、実行されねばならない4つ
    の個別的機能は次のとおりである。(1)命令のフエツ
    チ (2)データ記憶動作のための実効アドレスの形成(3
    ) データ記憶アクセスの実行(4)演算動作の実行及
    び結果のロード 任意の1つのそのような命令について、上記の4つの機
    能が順次に実行されねばならない。 バイ.プライン化命令の概念は、命令のこの特性を利用
    する。RSPのアーキテクチヤーは、各機能へハードウ
    ェアの個別的領域を割当てる。4つの機能の1つを実行
    するステージが1つの命令の上で動作している間、他の
    ステージは同時に他の命令の上一で動作するように使用
    されてよい。 ある命令上の動作の実行は、その命令の位相と呼ばれる
    。命令の位相1は、命令のフエツチである。位相2は、
    実効アドレスの発生である。位相3は、データ・メモリ
    のアクセスである。位相4は、演算機能の実行である。
    ハードウェア・ステージは、4つの異つた命令について
    同時に4つの位相を実行する。RSPは単一のチップ5
    の上に設けられるので、チップ上のスペースが貴重とな
    る。 従つて、データ・ストア(データ記憶機構)8及び命令
    ストア(命令記憶機構)6の大量記憶機能は、チップ5
    によつてアクセスされる別個のメモリ・チップに”よつ
    て実行される。ブランチ命令のためにリターン●アドレ
    スの記録を維持するため、64のアクセス容量を有する
    LIFO記憶機構が必要である。 この記憶機構は、命令バイブラインの第1ステージによ
    つて即時にアクセス可能でなければならない。しかし、
    そのような大量記憶機構をチップ5の上で実行すること
    は、広いチップ領域を使用し、過度の電力を消散する。
    他方、データ・ストア8でリターン・、アドレスLIF
    O記憶機構を実行することは、不適当であると考えられ
    る。何故ならば、リターン・アドレスは、バイブライン
    ●スループットを低下させることなく、リターン命令が
    第1ステージによつて読出されるまで、データ・ストア
    からアクセスされ得ないからである。この問題は、本発
    明によつて次のように解決される。アドレス・シーケン
    ス●コントロールは、第5図に示されるように64レベ
    ル・スタック10を含む。スタック10はデータ・スト
    ア8に置かれる(メモリ・ロケーション0−63)。ス
    タック10のトップに書込まれた値は、1命令フエツチ
    及びシーケンス制御ョステージ1に置かれた単一の16
    ビット●ハードウェア●スタック●レジスタ18に保持
    される。6ビット・スタック・ポインタ(SP)28(
    第4図)によつてアドレスされるスタック10は、64
    レベルのサブルーチン及び割込ルーチンをネストにする
    ことを許す。 スタックに影響を与える命令は、1無条件ブランチ及び
    スタックJ(BS)、1リターンョ(RET)、1リタ
    ーン及び割込能動ョ(RETENABLE)である。マ
    スクされない割込みもまたスタックに影響を与える。?
    命令は、次のシーケンシャル●アドレス(SARl6(
    第3図)の値)を位相2の終りにスタック●レジスタ1
    8へ書込ませ、次いでその命令のオペランドaによつて
    指定された命令アドレスへ無条件ブランチを実行する。 更に、それは、位相2の終りまでに、第4図に示される
    スタック・ポインタ28を1だけ増加させ(SP=SP
    +1)、位相3で、SARl6の値を、スタック・ポイ
    ンタ28によつて指定されるスタック10のアドレスへ
    書込む。このようにして、スタック・ポインタ28は、
    常にスタック10のトップのアドレスを含む。リターン
    (RET)型命令は、スタック・ポインタ28によつて
    指定されたアドレス(即ちスタックのトップ)の内容を
    、次の命令のアドレスとして使用させる。 この値はスタック・レジスタ18(第3図)に保持され
    ているので、それは次のサイクルで使用可能となる。位
    相2で、スタック・ポインタ28は1だけ減少されて(
    SP=SP一1)、スタック10の次の値を指定するよ
    うにされ、次いでその命令の位相3で、その値がスタッ
    ク10から読出されて、RET型命令の位相3の終りで
    スタック●レジスタ18へロードされる。これにより、
    スタック10から読出されたばかりのリターン●アドレ
    スが、前のRET型命令から少なくとも1命令だけ離れ
    て生じる後のRET型命令によつて使用可能となる。何
    故ならば、スタック10を読出し、位相3でその値をス
    タック●レジスタ18へロードした最初のRET型命令
    は、スタック・レジスタ18を更新する時間を有するか
    らてある。このようにして、チップ5は、LSI装置上
    で余分のチップ領域を占めることなく、スタック10を
    直ちにその命令フエツチ・ステージ1で利用可能とする
    ことができる。 これは、実際にはデータ・ストア8の区分された領域に
    置かれているスタック10へアクセスするため、ブラン
    チ及びリターン動作の間、RSP命令バイブラインの使
    用さ−れない第2及び第3ステージを利用することによ
    つて達成される。第1図に示されるように、貯蔵プログ
    ラム式データ●プロセッサはチップ5の上に形成され、
    これは4つのタイム●シーケンシャル●ステージを含む
    バイブライン式命令機構を有する。 第1のステージ1は命令のシーケンシング及びフエツチ
    に使用され、第2のステージ2はデータ・ストア●アド
    レス発生に使用され、第3のステージ3はデータ・スト
    ア・アクセスに使用され、第4のステージ4は演算実行
    に使用される。これらのステージは、各々が動作コード
    及びオペランドを含む連続した命令の上で重複モードで
    動作する。これらの命令は、チップ5の外にあるデータ
    ●ストア8からアクセスされたデータ上で演算動作を実
    行するため、チップ5の外にある命令ストア6からアク
    セスされる。改善された命令ブランチ機構が第3図、第
    4”図、第5図に詳細に示される。 第5図の後人れ先出し命令アドレス・スタック10は、
    命令ストア6のためにアドレスを記憶するため、データ
    ・ストア8の区分された領域中に設けられる。第3図の
    命令アドレス・マルチプレクサ12はステージ1に置か
    れ、その出力13を命令ストア6のアドレス入カへ接続
    される。マルチプレクサ12は命令アドレスを命令スト
    ア6へ入力するための複数の入力を有する。第3図の命
    令アドレス増加器14がステージ1に設けられ、その入
    力をマルチプレクサ12の出力13へ接続され、その出
    力をシーケンシャル●アドレス●レジスタ16を介して
    、マルチプレクサ12の入力の1つへ接続される。それ
    は、命令ストア・アドレスを単位置だけ順次に増加する
    ためである。第3図のスタック●レジスタ18はステー
    ジ1に設けられ、その入力をマルチプレクサ(MUX)
    を介して、シーケンシャル●アドレス●レジスタ16の
    出力又はデータ●ストア8にあるスタック10から来る
    出力17へ選択的に接続される。 それは、増加器14から出力された最後の命令ストア●
    アドレス又はデータ●ストア8のスタック10から線1
    7を介して出力された最後の命令ストア・アドレスを記
    憶するためである。更にスタック・レジスタ18は、そ
    出力をマルチプレクサ12の入力又は線19を介してデ
    ータ・ストア8にある命令アドレス・スタック10へ選
    択的に接続される。スタック・レジスタ18は単一のア
    ドレスのみを記憶する。第3図の命令シーケンシング●
    デコーダ(シーケンシング・コントロール)20はステ
    ージ1にあり、その入力を命令ストア6の出力7へ接続
    され、その出力21をマルチプレクサ12へ接続される
    。 それは、命令ストア6のアドレス入力13を、マルチプ
    レクサ12を介して、シーケンシヤル●アドレス●レジ
    スタ16の出力又はスタック・レジスタ18の出力のい
    ずれか選択的に接続するように制御するためである。そ
    の制御は、線7を介して命令ストア6からアクセスされ
    た最後の命令ワードの動作コードに応答して実行される
    。マルチプレクサ12は、その複数の入力の1つを命令
    ストア6の出力7へ接続させることができる。 それは、命令ストア6からアクセスされた最後の命令の
    オペランドを、関連した動作コードが命令シーケンシン
    グ・デコーダ20でデコードされたことに応答して、命
    令ストア6へ無条件ブランチ・アドレス入力として選択
    的に転送するためである。第4図のデータ●ストア●ア
    クセシング●デコーダ22はステージ2に置かれ、命令
    ストア6の出力へ接続される入力7を有する。 それは、命令ストア6からアクセスされた最後の命令か
    ら来た動作コードをデコードするためである。第4図の
    データ●ストア●アドレス発生器24はステージ2に置
    かれ、命令ストア6の出力へ接続された入力7、データ
    ●ストア●アクセシング●デコーダ22へ接続された制
    御入力25、関連した動作コードがデータ・ストア・ア
    クセシング・デコーダ22でデコードされたことに応答
    して、最後にアクセスされた命令ワードのオペランドか
    らデータ・ストア8のアドレスを選択的に発生する出力
    26を有する。第4図のスタック●ポインタ28はステ
    ージ2に置かれ、データ・ストア・アクセシング・デコ
    ーダ22へ接続された制御入力25、データ・ストア●
    アドレス値を選択的に増加又は減少して、データ●スト
    ア8のスタック10に記憶された最後の命令アドレスに
    アクセスするための出力29を有する。第5図のデータ
    ●ストア●アドレス・レジスタ.30はステージ3に置
    かれ、その入力をデータ・ストア・アドレス発生器24
    の出力26へ接続され、その出力をデータ・ストア8の
    アドレス入力へ接続される。 それはデータ・ストア8のロケーションにアクセスする
    ためである。ブランチ動作において、命令シーケンス●
    デコーダ20は、関連したブランチ動作コードに応答し
    て、無条件ブランチ命令のオペランドがマルチプレクサ
    12を介して命令ストア6のアドレス入力13へ転送さ
    れるのを選択的に制御し、シーケンシャル・アドレス・
    レジスタ16が単位置だけ増加されるのを選択的に制御
    し、関連したブランチ動作コードに応答してシーケンシ
    ャル・アドレス・レジスタ16の内容をスタック・レジ
    スタ18へロードし、関連したブランチ動作コードに応
    答してスタック・レジスタ18の内容が線19を介して
    データ・ストア8のデータ入力32へ非破壊的に出力さ
    れるのを選択的に制御する。 デー“”夕・ストア●アクセシング・デコーダ22は、
    ブランチ動作コードに応答して、スタック●ポインタ2
    8が単位置だけ増加され、かつその内容がデータ●スト
    ア●アドレス●レジスタ30へスタック10のロケーシ
    ョン・アドレスとして出力されるのを選択的に制御する
    。それは、スタック●レジスタ18の内容を、ブランチ
    動作コードで指定されたブランチからのリターン●アド
    レスとして記憶するAめである。上記のブランチ動作に
    おいて、ステージ1の命令シーケンシング・デコーダ2
    0は、ブランチ命令が発生すると第1位相でその制御動
    作を実行する。 ステージ2のデータ・ストア●アクセサング・デコーダ
    22は、第1位相に続く第2位相でその制御動作を実行
    する。ステージ3にあるデータ●ストア●アドレス・レ
    ジスタ(DSAR)30は、命令アドレス・スタック1
    0のロケーシヨンヘアクセスし、データ・ストア8は、
    第2位相に続く第3位相でスタック●レジスタ18の内
    容をそこに記憶する。このようにして、他の場合に使用
    されないステージ2及び3がブランチ動作の間に使用さ
    れて、チップ5に置かれていない命令スタック10がア
    クセスされる。前のブランチ動作からのリターン動作に
    おいて、ステージ1の命令シーケンス・デコーダ20は
    、第1位相の間、リターン命令に応答して、スタック●
    レジスタ18の内容がマルチプレクサ12を介して命令
    ストア6のアドレス入力13へ転送されるのを選択的に
    制御する。 ステージ2のデータ●ストア●アクセシング●デコーダ
    22は、第1位相に続く第2位相の間、リターン命令の
    動作コードに応答して、スタック・ポインタ28が単位
    置だけ減少されるのを制御し、かつデータ・ストア8の
    スタック10に記憶された最後の命令アドレスにアクセ
    スするため、ステージ3でスタツク●ポインタ28の内
    容がデータ●ストア●アドレス・レジスタ30へ出力さ
    れるのを制御する。ステージ1の命令シーケンシング●
    デコーダ20は、第2位相に続く第3位相で、データ・
    ストア8のスタック10からアクセスされた最後の命令
    アドレスが、線17を介してスタック・レジスタ18へ
    ロードされるのを選択的に制御する。このようにして、
    スタック10が第3位相までデータ・ストア8でアクセ
    スされ得ない時でも、リターン命令が前のリターン命令
    から少なくとも1サイクル遅れて生じた場合、命令スト
    ア6にアクセスするためリターン・アドレスを使用する
    ことができる。以下の説明は、リアル●タイム信号プロ
    セッサのいくつかのエレメントを詳細に説明したもので
    ある。 命令シーケンシング兼フエツチ・ステージ(位相1)第
    3図に示されるステージ1は、命令実行の位相1のみを
    実行する。 このステージにおいて、前の命令の8ビット動作コード
    がデコードされ、現命令のアドレスがプロセッサ中の条
    件コード及び前命令の動作コードのデコード結果に基い
    て決定され、現命令が命令ストア6からフエツチされる
    。プログラム・カウンタの値(即ち、現命令のアドレス
    )は、シーケンシャル・アドレス・レジスタ16にある
    アドレス又は多数のブランチ・アドレスの1つから選択
    される。 アドレス選択はプログラム及び/又は割込制御の下て行
    われる。全ての場合、ブランチングを1つの命令サイク
    ルで起すようにするため、現命令のアドレスは全面的に
    命令実行の位相1の間に決定される。アドレス発生ステ
    ージ(位相2) 命令実行の第2位相で、有効なデータ・ストア●アドレ
    スが、データ・ストア8のアクセスを必要とする命令に
    ついて計算される。 命令の16ビット●オペランド・フィールドRaJは、
    第4図に示されるアドレス発生ステージ2へ通される。
    次いで、データ・ストア動作の実効アドレスは、命令に
    従つて4つの関数の1つに基いて形成される。実効アド
    レスの4つの種類は次のとおりである。(1)a
    直接メモリ (2)a+B オフセット●メモリ(3)a+
    Xii=1、2 インデックスされたメ
    モリ(4)M(A..XiNB)i=1、2
    マスクされたメモリここで、Bはベース●
    レジスタ、Mはマスク●レジスタ、Xiはインデックス
    ・レジスタ(1=1、2)、M(A.sXi,,B)は
    循環バッファ動作のために使用されるマスク機能である
    。 各種の信号データ構造に対して有効な制御を実行するた
    め、実効アドレスの形成に使用されるレジスタ(即ちX
    l,X2,Wl,W2)を更新する多数のレジスタが設
    けられている。 これらの命令は、データ・ストア動作を伴わない限り、
    第2位相で実行を完了する。データ・ストアの書込みは
    第3位相で完了する。データ・ストア8を読出す動作は
    、位相3で読出動作及びステージ2のレジスタ更新を実
    行し、更新されたレジスタは次のサイクル(位相)で利
    用可能となる。データ書込動作については、実効アドレ
    スはステージ2論理によつて発生され、位相3における
    アクセスの準備のため位相2の終りにデータ●ストア●
    アドレス・レジスタ30へ送られる。データ・ストア・
    ステージ(位相3) 命令実行の位相3で(メモリ・アクセス位相)、データ
    ・ストア8は実効アドレスでアクセスされる。 アドレス発生ステージ2は、前のサイクル(位相)で計
    算された実効アドレスを、現位相で使用するため、第5
    図のデータ・ストア・ステージ3へ送る。読取り動作に
    ついては、データ・ストア出力が、前の命令の動作コー
    ドによつて指定された適当なレジスタヘロードされる。
    これは、位相4における使用準備のため、その命令の位
    相3の完了時になされる。或る種の命令はオペランドを
    求めてデータ●ストア8にアクセスせず、位相4の演算
    に関与するため即値オペランドを必要とする。この場合
    、データ・ストア・ステージ3は、命令オペランドRa
    .Jをステージ2からステージ4へ通す通路を設定する
    。それは、その命令の位相4でRaJを使用するためで
    ある。命令の首尾一貫した実行を維持するため、4つの
    全ての位相の実行は相互に固定した関係になければなら
    ない。このため、外部装置がデータ・ストア8へのアク
    セスを要求する時、それはI/0論理34を通して行な
    い、バイブラインの全体がストップされねばならない。
    このプロセスはサイクル・スチール動作と呼ばれる。デ
    ータ・ストア8に対するI/Oアクセスはサイクル・ス
    チール動作を生じ、これは1マシン・サイクルだけバイ
    ブラインの実行を遅らせる。4つの全ての位相/ステー
    ジが遅延される。 演算ステージ(位相4) 命令実行の第4(最後の)位相で、演算ステージ4は命
    令で限定された実際の演算動作を実行する。 演算動作セット中の大部分の命令は、演算ステージ4の
    単一サイクルで実行される。しかし、乗算、除算、及び
    左方シフトの各命令は、それが完了するのにこのステー
    ジの複数の実行を必要とする。乗算命令は8サイクルま
    でを必要とし、除算命令は17サイクルを必要とし、左
    方シフト命令はシフト.カウント0−31より1つだけ
    多いサイクルを必要とする。これらの命令の場合、命令
    実行の最初の3つのステージ/位相1,2,3は1凍結
    ョされ、その間に、現命令のステージ4が、その命令が
    完了するまで実行を許される。1/Oステージ34の機
    能は2つの種類に分けることがてきる。 それらは直接1/0と外部制御1/0てある。次の説明
    は各機能を簡単に説明したものである。(1)直接1/
    0 これにより、プロセッサは、単一のワードをプログラム
    制御の下て外部装置から入力したり外部装置へ出力した
    りすることができる。 (2)外部制御1/0 これにより、外部装置は、その制御の下で、直接にRS
    Pを読出したりRSPへ書込んだりすることができる。 他のRSP機構RSP中に設けられた他の機構は、リア
    ル・タイム●クロック、全てのレジスタにスキャン●イ
    ン/スキャン●アウトを実行しかつRSPにラッチする
    ことができるメインテナンス●インターフェイス、及び
    1組の機能指令を出すことによつて、外部装置がRSP
    を制御できるようにするI/0インターフェイスを含む
    。 バイブライン動作の例 命令バイブラインの2つの例が第2図に示される。 例1は実行されている単一の命令を示す。位相1から位
    相4までは、4つのハードウェア・ステージによつて命
    令上で実行される4つの機能を表わす。サイクルはマシ
    ン・サイクルを意味する。この例における命令RAZZ
    ,.a(M1)Jはマスクされたメモリ・ロケーション
    M(AlXl、B)の内容をZレジスタの内容へ加え、
    その合計をZレジスタへ置く。命令オペランドRaJは
    レジスタX1、B,.Mによつて修正され、ステージ2
    でマスクされた実効アドレス(Ea)=”M(A..X
    l、B)が形成され、ストレージ・ロケーションがステ
    ージ3でアクセスされる。合計は、ステージ4で、形成
    され宛先レジスタヘロードされる。例2は、次の同作シ
    ーケンスを実行する命令のセットを示す。 (1)RLZal(M1)J これは、マスクされたメ
    モ リ ロケーションM(AllXl、
    B)をZレジスタヘロ ードする。 (2)RMZ,.a2(M1)ョ これはマスクされた
    メ モリ●ロケーションM(A2、
    X1、B)の内容をZレジス
    タへ加え、その結果をzレジ スタへ
    置く。 (3)RsTza3(M1)J これはZレジスタの内
    容 をマスクされたメモリ●ロケ
    ーシヨンM(A3、X1、B)
    に記憶する。 (4)RBa4Jこれは命令アドレス(A4)ヘブラ
    ンチする。 RSL■命令の第3ステージが結果を移動させるため記
    憶動作を実行する前に、バイブラインのステージ4がR
    AzJ命令を完了できるように、ノー・オペレーション
    命令RNOpJが命令バイブライン中に挿入される。 使用されないサイクルは、命令バイブライン中でその時
    間的位置を保持する。
JP57064838A 1981-06-30 1982-04-20 命令ブランチ機構 Expired JPS6058490B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/280,417 US4399507A (en) 1981-06-30 1981-06-30 Instruction address stack in the data memory of an instruction-pipelined processor
US280417 1994-07-26

Publications (2)

Publication Number Publication Date
JPS585847A JPS585847A (ja) 1983-01-13
JPS6058490B2 true JPS6058490B2 (ja) 1985-12-20

Family

ID=23072986

Family Applications (1)

Application Number Title Priority Date Filing Date
JP57064838A Expired JPS6058490B2 (ja) 1981-06-30 1982-04-20 命令ブランチ機構

Country Status (4)

Country Link
US (1) US4399507A (ja)
EP (1) EP0068163B1 (ja)
JP (1) JPS6058490B2 (ja)
DE (1) DE3279007D1 (ja)

Families Citing this family (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL8006163A (nl) * 1980-11-12 1982-06-01 Philips Nv Inrichting voor het sorteren van datawoorden volgens de waarden van telkens daarbij behorende attribuutgetallen.
US4541045A (en) * 1981-09-21 1985-09-10 Racal-Milgo, Inc. Microprocessor architecture employing efficient operand and instruction addressing
JPS58129550A (ja) * 1982-01-27 1983-08-02 Toshiba Corp 演算制御装置
JPS58189739A (ja) * 1982-04-30 1983-11-05 Hitachi Ltd デ−タ処理システム
JPS592143A (ja) * 1982-06-29 1984-01-07 Hitachi Ltd 情報処理装置
US4594659A (en) * 1982-10-13 1986-06-10 Honeywell Information Systems Inc. Method and apparatus for prefetching instructions for a central execution pipeline unit
US4498136A (en) * 1982-12-15 1985-02-05 Ibm Corporation Interrupt processor
US4613935A (en) * 1983-02-02 1986-09-23 Couleur John F Method and apparatus for pipe line processing with a single arithmetic logic unit
US4620274A (en) * 1983-04-01 1986-10-28 Honeywell Information Systems Inc. Data available indicator for an exhausted operand string
JPS6015771A (ja) * 1983-07-08 1985-01-26 Hitachi Ltd ベクトルプロセッサ
US4578750A (en) * 1983-08-24 1986-03-25 Amdahl Corporation Code determination using half-adder based operand comparator
JPS6051948A (ja) * 1983-08-31 1985-03-23 Hitachi Ltd 情報処理装置
JPS6074034A (ja) * 1983-09-30 1985-04-26 Toshiba Corp パイプライン制御方式
JPS60107141A (ja) * 1983-11-16 1985-06-12 Fujitsu Ltd プランチ制御方式
JPS60156151A (ja) * 1983-12-23 1985-08-16 Nec Corp メモリアクセス制御装置
AU553416B2 (en) * 1984-02-24 1986-07-17 Fujitsu Limited Pipeline processing
US4674032A (en) * 1984-04-02 1987-06-16 Unisys Corporation High-performance pipelined stack with over-write protection
US4722052A (en) * 1984-04-02 1988-01-26 Sperry Corporation Multiple unit adapter
US4600986A (en) * 1984-04-02 1986-07-15 Sperry Corporation Pipelined split stack with high performance interleaved decode
JPH0776917B2 (ja) * 1984-12-29 1995-08-16 ソニー株式会社 マイクロコンピユ−タ
CA1250667A (en) * 1985-04-15 1989-02-28 Larry D. Larsen Branch control in a three phase pipelined signal processor
US4794517A (en) * 1985-04-15 1988-12-27 International Business Machines Corporation Three phased pipelined signal processor
EP0208181A1 (en) * 1985-06-28 1987-01-14 Hewlett-Packard Company Programme counter queue for a pipelined processor
US4777587A (en) * 1985-08-30 1988-10-11 Advanced Micro Devices, Inc. System for processing single-cycle branch instruction in a pipeline having relative, absolute, indirect and trap addresses
JPH0743648B2 (ja) * 1985-11-15 1995-05-15 株式会社日立製作所 情報処理装置
US4709324A (en) * 1985-11-27 1987-11-24 Motorola, Inc. Data processor control unit having an interrupt service using instruction prefetch redirection
JPS62145326A (ja) * 1985-12-20 1987-06-29 Toshiba Corp マイクロプログラム制御回路
DE3751503T2 (de) * 1986-03-26 1996-05-09 Hitachi Ltd Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen.
JPS62226232A (ja) * 1986-03-28 1987-10-05 Toshiba Corp 分岐先アドレス算出回路
JP2545789B2 (ja) * 1986-04-14 1996-10-23 株式会社日立製作所 情報処理装置
US5161217A (en) * 1986-10-14 1992-11-03 Bull Hn Information Systems Inc. Buffered address stack register with parallel input registers and overflow protection
US4991090A (en) * 1987-05-18 1991-02-05 International Business Machines Corporation Posting out-of-sequence fetches
US4974158A (en) * 1987-06-10 1990-11-27 Mitsubishi Denki Kabushiki Kaisha Multiple sequentially transferrable stackpointers in a data processor in a pipelining system
US5179688A (en) * 1987-06-30 1993-01-12 Tandem Computers Incorporated Queue system with uninterrupted transfer of data through intermediate locations to selected queue location
DE3726192A1 (de) * 1987-08-06 1989-02-16 Otto Mueller Stacksteuerung
EP0312764A3 (en) * 1987-10-19 1991-04-10 International Business Machines Corporation A data processor having multiple execution units for processing plural classes of instructions in parallel
US5197136A (en) * 1987-11-12 1993-03-23 Matsushita Electric Industrial Co., Ltd. Processing system for branch instruction
US5822578A (en) * 1987-12-22 1998-10-13 Sun Microsystems, Inc. System for inserting instructions into processor instruction stream in order to perform interrupt processing
KR970005453B1 (ko) * 1987-12-25 1997-04-16 가부시기가이샤 히다찌세이사꾸쇼 고속처리에 적합한 데이타 처리장치
US5193205A (en) * 1988-03-01 1993-03-09 Mitsubishi Denki Kabushiki Kaisha Pipeline processor, with return address stack storing only pre-return processed address for judging validity and correction of unprocessed address
US5136696A (en) * 1988-06-27 1992-08-04 Prime Computer, Inc. High-performance pipelined central processor for predicting the occurrence of executing single-cycle instructions and multicycle instructions
GB8817911D0 (en) * 1988-07-27 1988-09-01 Int Computers Ltd Data processing apparatus
US5101341A (en) * 1988-08-25 1992-03-31 Edgcore Technology, Inc. Pipelined system for reducing instruction access time by accumulating predecoded instruction bits a FIFO
US4914584A (en) * 1988-10-17 1990-04-03 Gibson Glenn A Rules and apparatus for an intermediate code memory that buffers code segments
JP2858140B2 (ja) * 1988-10-19 1999-02-17 アポロ・コンピューター・インコーポレーテッド パイプラインプロセッサ装置および方法
US5099421A (en) * 1988-12-30 1992-03-24 International Business Machine Corporation Variable length pipe operations sequencing
US5179691A (en) * 1989-04-12 1993-01-12 Unisys Corporation N-byte stack-oriented CPU using a byte-selecting control for enhancing a dual-operation with an M-byte instruction word user program where M<N<2M
US6807609B1 (en) 1989-12-04 2004-10-19 Hewlett-Packard Development Company, L.P. Interleaving read and write operations on a bus and minimizing buffering on a memory module in a computer system
US5179673A (en) * 1989-12-18 1993-01-12 Digital Equipment Corporation Subroutine return prediction mechanism using ring buffer and comparing predicated address with actual address to validate or flush the pipeline
US5251306A (en) * 1990-01-16 1993-10-05 Advanced Micro Devices, Inc. Apparatus for controlling execution of a program in a computing device
JPH0437927A (ja) * 1990-06-01 1992-02-07 Sony Corp プロセッサの処理方法
DE69131830T2 (de) * 1990-06-11 2000-06-21 Cray Research Inc., Eagan Verfahren zur optimierung der befehlsablauffolge
US5202975A (en) * 1990-06-11 1993-04-13 Supercomputer Systems Limited Partnership Method for optimizing instruction scheduling for a processor having multiple functional resources
US5655096A (en) * 1990-10-12 1997-08-05 Branigin; Michael H. Method and apparatus for dynamic scheduling of instructions to ensure sequentially coherent data in a processor employing out-of-order execution
US5459845A (en) * 1990-12-20 1995-10-17 Intel Corporation Instruction pipeline sequencer in which state information of an instruction travels through pipe stages until the instruction execution is completed
JP3211423B2 (ja) * 1992-10-13 2001-09-25 ソニー株式会社 分岐命令実行方法および分岐命令実行装置
JP3345787B2 (ja) * 1993-04-13 2002-11-18 三菱電機株式会社 データ処理装置
GB2281986B (en) * 1993-09-15 1997-08-06 Advanced Risc Mach Ltd Data processing reset
US5623614A (en) * 1993-09-17 1997-04-22 Advanced Micro Devices, Inc. Branch prediction cache with multiple entries for returns having multiple callers
US5724566A (en) * 1994-01-11 1998-03-03 Texas Instruments Incorporated Pipelined data processing including interrupts
JP2857600B2 (ja) * 1995-05-11 1999-02-17 松下電器産業株式会社 プロセッサ及びプログラム翻訳装置
US5774712A (en) * 1996-12-19 1998-06-30 International Business Machines Corporation Instruction dispatch unit and method for mapping a sending order of operations to a receiving order
US6317796B1 (en) * 1997-10-06 2001-11-13 Sun Microsystems, Inc. Inline database for receiver types in object-oriented systems
US6009517A (en) * 1997-10-06 1999-12-28 Sun Microsystems, Inc. Mixed execution stack and exception handling
US5958039A (en) * 1997-10-28 1999-09-28 Microchip Technology Incorporated Master-slave latches and post increment/decrement operations
FR2770660B1 (fr) * 1997-11-03 2000-08-25 Inside Technologies Microprocesseur, notamment pour carte a puce
US6044460A (en) * 1998-01-16 2000-03-28 Lsi Logic Corporation System and method for PC-relative address generation in a microprocessor with a pipeline architecture
US5974543A (en) * 1998-01-23 1999-10-26 International Business Machines Corporation Apparatus and method for performing subroutine call and return operations
US7032100B1 (en) 1999-12-17 2006-04-18 Koninklijke Philips Electronics N.V. Simple algorithmic cryptography engine
US6910119B1 (en) * 2000-06-21 2005-06-21 Intel Corporation Instruction pipe and stall therefor to accommodate shared access to return stack buffer
US6633969B1 (en) 2000-08-11 2003-10-14 Lsi Logic Corporation Instruction translation system and method achieving single-cycle translation of variable-length MIPS16 instructions
US7546451B1 (en) 2002-06-19 2009-06-09 Finisar Corporation Continuously providing instructions to a programmable device
TWI289751B (en) * 2003-02-27 2007-11-11 Mediatek Inc Method for increasing memory in a processor
JP5613894B2 (ja) * 2008-08-11 2014-10-29 日本電産サンキョー株式会社 非接触icカードリーダ及びデータ読取方法
US20100221528A1 (en) * 2009-02-27 2010-09-02 Schwab Thomas J Extrusion coated article
US8813018B1 (en) * 2012-10-05 2014-08-19 Altera Corporation Method and apparatus for automatically configuring memory size

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL273031A (ja) * 1960-12-30
US3740728A (en) * 1972-01-19 1973-06-19 Hughes Aircraft Co Input/output controller
US3900834A (en) * 1972-09-05 1975-08-19 Bunker Ramo Memory update apparatus utilizing chain addressing
US3840861A (en) * 1972-10-30 1974-10-08 Amdahl Corp Data processing system having an instruction pipeline for concurrently processing a plurality of instructions
US4068304A (en) * 1973-01-02 1978-01-10 International Business Machines Corporation Storage hierarchy performance monitor
US3875391A (en) * 1973-11-02 1975-04-01 Raytheon Co Pipeline signal processor
US3984817A (en) * 1973-11-08 1976-10-05 Honeywell Information Systems, Inc. Data processing system having improved program allocation and search technique
US4025771A (en) * 1974-03-25 1977-05-24 Hughes Aircraft Company Pipe line high speed signal processor
GB1467726A (en) * 1974-05-02 1977-03-23 Solartron Electronic Group Interfaces for data transmission systems
US3935563A (en) * 1975-01-24 1976-01-27 The United States Of America As Represented By The Secretary Of The Navy Computer footprint file
US4016543A (en) * 1975-02-10 1977-04-05 Formation, Inc. Processor address recall system
DE2555963C2 (de) * 1975-12-12 1982-10-28 Ibm Deutschland Gmbh, 7000 Stuttgart Einrichtung zur Funktionsmodifizierung
GB1506972A (en) * 1976-02-06 1978-04-12 Int Computers Ltd Data processing systems
US4041462A (en) * 1976-04-30 1977-08-09 International Business Machines Corporation Data processing system featuring subroutine linkage operations using hardware controlled stacks
GB1527289A (en) * 1976-08-17 1978-10-04 Int Computers Ltd Data processing systems
US4236206A (en) * 1978-10-25 1980-11-25 Digital Equipment Corporation Central processor unit for executing instructions of variable length

Also Published As

Publication number Publication date
JPS585847A (ja) 1983-01-13
DE3279007D1 (en) 1988-10-13
US4399507A (en) 1983-08-16
EP0068163B1 (en) 1988-09-07
EP0068163A2 (en) 1983-01-05
EP0068163A3 (en) 1986-06-25

Similar Documents

Publication Publication Date Title
JPS6058490B2 (ja) 命令ブランチ機構
US4862407A (en) Digital signal processing apparatus
US4025771A (en) Pipe line high speed signal processor
US5179530A (en) Architecture for integrated concurrent vector signal processor
US4541048A (en) Modular programmable signal processor
US5247627A (en) Digital signal processor with conditional branch decision unit and storage of conditional branch decision results
AU618142B2 (en) Tightly coupled multiprocessor instruction synchronization
US4367524A (en) Microinstruction execution unit for use in a microprocessor
EP0554917A2 (en) Digital signal processor
US6839831B2 (en) Data processing apparatus with register file bypass
US20070124561A1 (en) Active memory command engine and method
JPH02130634A (ja) プロセッサシステム、コンピュータシステム及び命令処理方法
US5905881A (en) Delayed state writes for an instruction processor
US4541045A (en) Microprocessor architecture employing efficient operand and instruction addressing
JPH1091443A (ja) 情報処理回路、マイクロコンピュータ及び電子機器
US5710914A (en) Digital signal processing method and system implementing pipelined read and write operations
US5434986A (en) Interdependency control of pipelined instruction processor using comparing result of two index registers of skip instruction and next sequential instruction
US6026486A (en) General purpose processor having a variable bitwidth
JP3479385B2 (ja) 情報処理装置
US6728741B2 (en) Hardware assist for data block diagonal mirror image transformation
US4896264A (en) Microprocess with selective cache memory
US5222241A (en) Digital signal processor having duplex working registers for switching to standby state during interrupt processing
US5446909A (en) Binary multiplication implemented by existing hardware with minor modifications to sequentially designate bits of the operand
US6334179B1 (en) DSP coprocessor having control flags mapped to a dual port section of memory for communicating with the host
JPH079648B2 (ja) マイクロコンピュータ装置