JPS585847A - 命令ブランチ機構 - Google Patents
命令ブランチ機構Info
- Publication number
- JPS585847A JPS585847A JP57064838A JP6483882A JPS585847A JP S585847 A JPS585847 A JP S585847A JP 57064838 A JP57064838 A JP 57064838A JP 6483882 A JP6483882 A JP 6483882A JP S585847 A JPS585847 A JP S585847A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- address
- register
- stage
- output
- 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
Links
- 230000007246 mechanism Effects 0.000 title description 11
- 238000003860 storage Methods 0.000 claims description 47
- 238000013500 data storage Methods 0.000 claims description 40
- 238000012546 transfer Methods 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 18
- 230000007423 decrease Effects 0.000 claims description 2
- 230000003247 decreasing effect Effects 0.000 claims 2
- 238000005530 etching Methods 0.000 claims 1
- 239000011800 void material Substances 0.000 claims 1
- 230000006870 function Effects 0.000 description 25
- 238000012545 processing Methods 0.000 description 7
- 238000000034 method Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000012163 sequencing technique Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000027311 M phase Effects 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 3
- 238000002360 preparation method Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 101000637625 Cricetulus griseus GTP-binding protein SAR1b Proteins 0.000 description 2
- 102100032174 GTP-binding protein SAR1a Human genes 0.000 description 2
- 101000637622 Homo sapiens GTP-binding protein SAR1a Proteins 0.000 description 2
- 101000994792 Homo sapiens Ras GTPase-activating-like protein IQGAP1 Proteins 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000010791 quenching Methods 0.000 description 2
- 230000004308 accommodation Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000000956 alloy Substances 0.000 description 1
- 229910045601 alloy Inorganic materials 0.000 description 1
- 210000003323 beak Anatomy 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 210000000744 eyelid Anatomy 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 150000002500 ions Chemical class 0.000 description 1
- JEIPFZHSYJVQDO-UHFFFAOYSA-N iron(III) oxide Inorganic materials O=[Fe]O[Fe]=O JEIPFZHSYJVQDO-UHFFFAOYSA-N 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000000171 quenching effect Effects 0.000 description 1
- 238000009987 spinning Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
- G06F9/3806—Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30054—Unconditional branch instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/323—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
- G06F9/4486—Formation 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)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
10本発明の分野
本発明は一般的にはデータ処理システムに関し、具体的
には貯絨プログラム型データ・プロセッサの命令機構に
関する。
には貯絨プログラム型データ・プロセッサの命令機構に
関する。
■6本発明の背景
コンピュータ命令は実行されるべき動作の指定であり、
動作が実行される1つ又はそれ以上のアドレス、結果の
ロケーショ/を示すアドレス、シーチフス中の次の命令
のアドレスを含んでよい。
動作が実行される1つ又はそれ以上のアドレス、結果の
ロケーショ/を示すアドレス、シーチフス中の次の命令
のアドレスを含んでよい。
これらの指定又はアドレスは暗黙的に限定されてよい。
即ち、次の命令ロケーションを指定する場合、マシンは
命令が順次に並んでいるものと仮定する。この場合、次
の命令は現命令のロケーションの次のアドレスに含まれ
るものと仮定される。
命令が順次に並んでいるものと仮定する。この場合、次
の命令は現命令のロケーションの次のアドレスに含まれ
るものと仮定される。
現′命令のアドレスは、シーケンシャル・アドレス・レ
ジスタ(SAR)と呼ばれるレジスタに保存されている
。命令の実行中、SARは1アドレス単位だけ曲進され
る。
ジスタ(SAR)と呼ばれるレジスタに保存されている
。命令の実行中、SARは1アドレス単位だけ曲進され
る。
SARを防用する全てのシステムにおいて、ρりえばサ
ブルーチアを実行する之め、プログラム中の成る地点で
初期値を設定しまたそれを変更する@溝が設けられてい
なければならない。この機構は、プラ/チ機構と呼ばれ
る将殊の命令機構である。ブランチ命令には2種の基不
的な種類がある。
ブルーチアを実行する之め、プログラム中の成る地点で
初期値を設定しまたそれを変更する@溝が設けられてい
なければならない。この機構は、プラ/チ機構と呼ばれ
る将殊の命令機構である。ブランチ命令には2種の基不
的な種類がある。
即ち、スタッキングを伴うブランチ命令と、スタッキン
グを伴わないブランチ命令である。これら2つのブラン
チ命令は、SARの次のシーケンシャルなアドレスの代
りに新しい値を設定し、命令の新しいシーケンスのロケ
ーションの開始点を限定す゛る。スタッキングを伴う命
令は、元の命令シーケンスが変更される前に、次のシー
ケンシャルな命令アドレスをLIFOスタ1ツク・メモ
リに記憶させ、サブルーチンを実行するために開用され
ることができる。これは、記憶されたアドレスにおいて
、システムを元のシーケンスへ戻す。定義としては、ブ
ランチ命令とは、不明itにおいて、スタッキング動作
を伴うブランチ命令を意味するものとする。
グを伴わないブランチ命令である。これら2つのブラン
チ命令は、SARの次のシーケンシャルなアドレスの代
りに新しい値を設定し、命令の新しいシーケンスのロケ
ーションの開始点を限定す゛る。スタッキングを伴う命
令は、元の命令シーケンスが変更される前に、次のシー
ケンシャルな命令アドレスをLIFOスタ1ツク・メモ
リに記憶させ、サブルーチンを実行するために開用され
ることができる。これは、記憶されたアドレスにおいて
、システムを元のシーケンスへ戻す。定義としては、ブ
ランチ命令とは、不明itにおいて、スタッキング動作
を伴うブランチ命令を意味するものとする。
ブランチ命令に続ぐサブルーチ/動作の完了後、プログ
ラムは、ブランチの出発点となった元の命令シーケンス
中の地点へ戻らねばならない。これは「リターン命令」
によって実行される。プログラムが戻るべき命令アドレ
スは、ブランチ命令が実行された時点で記憶されねばな
らない。いくつかの連続したブランチ命令を0T能とす
るため、後入れ先出しく L I F’0 )命令アド
レス・スタックが、それらのリターン・アドレスを記憶
するため設けられねばならない。
ラムは、ブランチの出発点となった元の命令シーケンス
中の地点へ戻らねばならない。これは「リターン命令」
によって実行される。プログラムが戻るべき命令アドレ
スは、ブランチ命令が実行された時点で記憶されねばな
らない。いくつかの連続したブランチ命令を0T能とす
るため、後入れ先出しく L I F’0 )命令アド
レス・スタックが、それらのリターン・アドレスを記憶
するため設けられねばならない。
パイプライン命令アーキテクチャ−のために命令アドレ
ス・スタックを設ける通常の方法は、命令バイプライ/
の最初めステージに大型の専用レジスタ・ファイルを設
けることである。何故ならば、最初のステージは実行順
序を決定するステージだからである。しかし、大型集積
回路の出現と共に、プロセッサの命令処理兼算術回路を
学−の集積回路チップの上に集積することによって、学
位当りコストのかなりの節減が得られる。しかし、デー
タ記憶及び命令記憶などの大量記憶機能は、別個のメモ
リ・チップで実行されねばならない。
ス・スタックを設ける通常の方法は、命令バイプライ/
の最初めステージに大型の専用レジスタ・ファイルを設
けることである。何故ならば、最初のステージは実行順
序を決定するステージだからである。しかし、大型集積
回路の出現と共に、プロセッサの命令処理兼算術回路を
学−の集積回路チップの上に集積することによって、学
位当りコストのかなりの節減が得られる。しかし、デー
タ記憶及び命令記憶などの大量記憶機能は、別個のメモ
リ・チップで実行されねばならない。
何故ならば、プロセッサ・チップ上の利用可能領域には
制限があるからである。命令共イブラインの第1ステー
ジで即時にアクセス可能なリターン・アドレスの記録を
維持するのは望ましいとは言え、そのような大量記憶@
能を、命令及び演算処理エレメ7トを含む同一の集積回
路チップ上に言まぜることは容易でない。しかし、デー
タ記隠機構にリター/・アドレス記瞳機能を包きさせる
ことは、データ記厖吸購が同一の集積回路チップ上に設
けられているとしても、先行技術では達成され得なかっ
た。何故ならば、リターン命令が第1ステージによって
読出された後、いくつかのマシ/・サイクル又は位相が
経過するまで、リターン・アドレスはデータ記厖機溝か
らアクセスされ得なかったからである。
制限があるからである。命令共イブラインの第1ステー
ジで即時にアクセス可能なリターン・アドレスの記録を
維持するのは望ましいとは言え、そのような大量記憶@
能を、命令及び演算処理エレメ7トを含む同一の集積回
路チップ上に言まぜることは容易でない。しかし、デー
タ記隠機構にリター/・アドレス記瞳機能を包きさせる
ことは、データ記厖吸購が同一の集積回路チップ上に設
けられているとしても、先行技術では達成され得なかっ
た。何故ならば、リターン命令が第1ステージによって
読出された後、いくつかのマシ/・サイクル又は位相が
経過するまで、リターン・アドレスはデータ記厖機溝か
らアクセスされ得なかったからである。
LIFOスタックをデータ処理システムのデータ記憶@
溝へ格納することは新しい思想ではない。
溝へ格納することは新しい思想ではない。
例えば、米国特許第4011462号は、データ記階機
構でLIFOスタックを使用することによυ、サブルー
チン・リンケージを実行する方法を説明している。上記
米国特許は、シーケンシャル位相命令パイプラインにつ
いて解決されるべき問題である、同時パイプライン命令
実行の問題を考慮していない。上記米国特許は、データ
記憶機構中のスタックのアクセスを命令によって行わせ
る。
構でLIFOスタックを使用することによυ、サブルー
チン・リンケージを実行する方法を説明している。上記
米国特許は、シーケンシャル位相命令パイプラインにつ
いて解決されるべき問題である、同時パイプライン命令
実行の問題を考慮していない。上記米国特許は、データ
記憶機構中のスタックのアクセスを命令によって行わせ
る。
これは、必然的に、命令パイプライン中の命令のスルー
プットを低下させる。
プットを低下させる。
■0本発明の目的
本発明の目的は、データ・プロセッサにおける命令実行
ハイプラインのために、改善されたシーケンス命今際溝
を与えることである。
ハイプラインのために、改善されたシーケンス命今際溝
を与えることである。
本発明の他の目的は、電力消散を低下させた、集積回路
チップ上に完全に格納されたデータ・プロセッサのため
の改善されたパイプライノ命令機構を提供することであ
る。
チップ上に完全に格納されたデータ・プロセッサのため
の改善されたパイプライノ命令機構を提供することであ
る。
本発明の他の目的は、データ・プロセッサのための命令
パイプライ/機購におい機構ブラ/チ又はリターン動作
を実行するため、未使用の命令位相を利用することであ
る。
パイプライ/機購におい機構ブラ/チ又はリターン動作
を実行するため、未使用の命令位相を利用することであ
る。
本発明の他の目的は、向学、命令フェッチ・マシン・サ
イクルに続くマシン・サイクルでアクセスされるデータ
記瞳機構中に置かれ友命令スタック中のリターン・アド
レスへアクセスすることのできるプロセッサを提供する
ことである。
イクルに続くマシン・サイクルでアクセスされるデータ
記瞳機構中に置かれ友命令スタック中のリターン・アド
レスへアクセスすることのできるプロセッサを提供する
ことである。
本発明の他の目的は、パイプラインの効率を低下’J−
ffることなく、複m[M相命令パイプラインによって
アクセスきれる同一のデータ記憶装置によって、データ
記憶機能と冷令スタツキノグ@能を実行させることであ
る。
ffることなく、複m[M相命令パイプラインによって
アクセスきれる同一のデータ記憶装置によって、データ
記憶機能と冷令スタツキノグ@能を実行させることであ
る。
■0本発明の要約
上記の目的は、本明細書に開示される本発明によって達
成される。本明細書で開示されるデータ・プロセッサの
ための命令パイプラインにおいて、命令実行は次のよう
な一連の位相で実行される。
成される。本明細書で開示されるデータ・プロセッサの
ための命令パイプラインにおいて、命令実行は次のよう
な一連の位相で実行される。
即ち、これらの位相は、命令記[1!iffから命令を
フェッチし、フェッチされた命令からデータ記憶アドレ
スを計算し、計算され之アドレスに基きデータ記憶@溝
にアクセスして、データ・オペランドを獲得し、フェッ
チされた命令に従って、アクセスされたデータ上で論理
演算動作を実行する位相を含む。ブランチ支びリターン
命令は、データ記瞳@震中にリターン・アドレス・スタ
ックを設けることによって実行可能にされる。データ記
厖@購は、ブランチ動作が完了し友後に、リターンされ
るべ@次の命令記憶アドレスを記憶する。データ記は@
溝中の命令アドレス・スタックは、パイプラインの効率
を低下させることなく、いくつかの命令実行位相が経過
するまで、パイプラインの命令7エツチ・ステージによ
って直接にアクセスされることができないので、パイプ
ラインの命令フェッチ・ステージにスタック・レジスタ
が設けられる。このスタック・レジスタは、命令アドレ
ス・スタックのトップに現在置かれている命令記憶アド
レスの重複清報を含む。岐令フエンチ・ステージでリタ
ーン命令が現われると、命令記厖@溝中でリターンされ
るべき次の命令のアドレスは、パイプライン中の流れを
中断させることなく、即時に利用0T能となる。命令フ
ェッチ・ステージとデータ記憶アクセス・ステージの間
の)くイプライノ・ステージに置かれたスタック−ポイ
ンタは、パイプライン中の未使用の防令M相を利用して
、データ記憶アクセス・ステージで、命令アドレス・ス
タックから次に利用可能な命令記憶アドレスを読出させ
、それを次のリターン命令に対する準備としてスタック
・レジスタヘロードさせる。こうして、データ記憶機能
及び命令スクッキング機能は、パイプラインの効率を低
下させることなく、複数位相命令パイプライン中の中間
ステージによってアクセスされる同一のデータ記憶装置
によつ゛て実行される。追加°的利点として、データ記
厖機構中のアドレス・スタックの区分サイズが小さくな
り、節約されたスペースがデータ記憶に使用することが
できる。
フェッチし、フェッチされた命令からデータ記憶アドレ
スを計算し、計算され之アドレスに基きデータ記憶@溝
にアクセスして、データ・オペランドを獲得し、フェッ
チされた命令に従って、アクセスされたデータ上で論理
演算動作を実行する位相を含む。ブランチ支びリターン
命令は、データ記瞳@震中にリターン・アドレス・スタ
ックを設けることによって実行可能にされる。データ記
厖@購は、ブランチ動作が完了し友後に、リターンされ
るべ@次の命令記憶アドレスを記憶する。データ記は@
溝中の命令アドレス・スタックは、パイプラインの効率
を低下させることなく、いくつかの命令実行位相が経過
するまで、パイプラインの命令7エツチ・ステージによ
って直接にアクセスされることができないので、パイプ
ラインの命令フェッチ・ステージにスタック・レジスタ
が設けられる。このスタック・レジスタは、命令アドレ
ス・スタックのトップに現在置かれている命令記憶アド
レスの重複清報を含む。岐令フエンチ・ステージでリタ
ーン命令が現われると、命令記厖@溝中でリターンされ
るべき次の命令のアドレスは、パイプライン中の流れを
中断させることなく、即時に利用0T能となる。命令フ
ェッチ・ステージとデータ記憶アクセス・ステージの間
の)くイプライノ・ステージに置かれたスタック−ポイ
ンタは、パイプライン中の未使用の防令M相を利用して
、データ記憶アクセス・ステージで、命令アドレス・ス
タックから次に利用可能な命令記憶アドレスを読出させ
、それを次のリターン命令に対する準備としてスタック
・レジスタヘロードさせる。こうして、データ記憶機能
及び命令スクッキング機能は、パイプラインの効率を低
下させることなく、複数位相命令パイプライン中の中間
ステージによってアクセスされる同一のデータ記憶装置
によつ゛て実行される。追加°的利点として、データ記
厖機構中のアドレス・スタックの区分サイズが小さくな
り、節約されたスペースがデータ記憶に使用することが
できる。
■、実施列の説明
本明細書において、データ・プロセッサのための命令パ
イプラインが開示される。この命令パイプラインにおい
て、命令実行は一連の位相中で実行される。これらの位
相は、命令記m1llfから命令ラフエッチし、フェッ
チされた命令からデータ記厖アドレスを計算し、データ
記tis購の計算されたアドレスにアクセスして、デー
タ・オペラ/ドを獲得し、フェッチされた命令に従って
、アクセスされたデータ上で論理又は演算動作を実行す
る位相を含む。ブラノチ及びリターン命令は、データ配
置機構中にリター7・アドレス・スタックを設けること
によって実行町q目にされる。リターン・アドレス・ス
タックは、ブランチ動作が完了した後にリメー7される
べき次の砧令記はアドレスを記憶する。データ記憶機構
中の命令アドレス・スタックはパイプラインの効率を低
下させることなく、いくつかの命令実行位相が経過する
まで、パイプラインの命令フェッチ・ステージによって
直接にアクセスされ得ないので、パイプライ/の命令フ
ェッチ・ステージにスタック・レジスタが設けられる。
イプラインが開示される。この命令パイプラインにおい
て、命令実行は一連の位相中で実行される。これらの位
相は、命令記m1llfから命令ラフエッチし、フェッ
チされた命令からデータ記厖アドレスを計算し、データ
記tis購の計算されたアドレスにアクセスして、デー
タ・オペラ/ドを獲得し、フェッチされた命令に従って
、アクセスされたデータ上で論理又は演算動作を実行す
る位相を含む。ブラノチ及びリターン命令は、データ配
置機構中にリター7・アドレス・スタックを設けること
によって実行町q目にされる。リターン・アドレス・ス
タックは、ブランチ動作が完了した後にリメー7される
べき次の砧令記はアドレスを記憶する。データ記憶機構
中の命令アドレス・スタックはパイプラインの効率を低
下させることなく、いくつかの命令実行位相が経過する
まで、パイプラインの命令フェッチ・ステージによって
直接にアクセスされ得ないので、パイプライ/の命令フ
ェッチ・ステージにスタック・レジスタが設けられる。
このスタック・レジスタは、命令アドレス・スタックの
トップに現在置かれている命令記はアドレスの重複情報
を含む。8令フエツチステージにリターン命令が現われ
ると、命令記憶l11嘴においてリターンされるべ@次
の命令のアドレスが、パイプライン中の流れを中断ざぜ
ることなく、即時に利用可能となる。命令7エツチ・ス
テージ反びデータ記憶アクセス・ステージの間のパイプ
ライン・ステージに置かれたスタック。
トップに現在置かれている命令記はアドレスの重複情報
を含む。8令フエツチステージにリターン命令が現われ
ると、命令記憶l11嘴においてリターンされるべ@次
の命令のアドレスが、パイプライン中の流れを中断ざぜ
ることなく、即時に利用可能となる。命令7エツチ・ス
テージ反びデータ記憶アクセス・ステージの間のパイプ
ライン・ステージに置かれたスタック。
ポインタは、パイプライン中の使用しない命令位相を利
用し、データ記憶アクセス・ステージで、命令アドレス
・スタックから次に利用可能な砧令起用アドレスを続出
はぜ、それを次のリターン時令の準備としてスタック・
レジスタにロードざぜる。このようにして、データ起用
機能及び命令スタッキ7グ機#目が、パイプラインの効
率を低下すせることなく、複数位相命令パイプライン中
の中間ステージによってアクセスされる同一のデータ起
用装置によって実行される。
用し、データ記憶アクセス・ステージで、命令アドレス
・スタックから次に利用可能な砧令起用アドレスを続出
はぜ、それを次のリターン時令の準備としてスタック・
レジスタにロードざぜる。このようにして、データ起用
機能及び命令スタッキ7グ機#目が、パイプラインの効
率を低下すせることなく、複数位相命令パイプライン中
の中間ステージによってアクセスされる同一のデータ起
用装置によって実行される。
リアルタイム信号プロセッサ(R8P)は、16ビツト
・データ・フロー及び24ピツ゛ト命令セツ[%する学
−オベラ/ド汎用プロセッサである。コノフロセッサは
、洒号処理アルゴリズムを実行するため符別に適合比さ
れる。R8Pは、高効率及び高電力回路を必要としない
で、酸大処哩スループットを達成すべく設計されたパイ
プライ/命令装置である。そのアーキテクチャ−は、町
変精置乗算文び32ビツト除算を含む算術、論理、制−
命令の完全なレバー)IJ−ffiiむ。メモlj を
除い友全体のプロセッサは、第1図に示されるように、
単一のVLSIチップ5の上に設けられる。
・データ・フロー及び24ピツ゛ト命令セツ[%する学
−オベラ/ド汎用プロセッサである。コノフロセッサは
、洒号処理アルゴリズムを実行するため符別に適合比さ
れる。R8Pは、高効率及び高電力回路を必要としない
で、酸大処哩スループットを達成すべく設計されたパイ
プライ/命令装置である。そのアーキテクチャ−は、町
変精置乗算文び32ビツト除算を含む算術、論理、制−
命令の完全なレバー)IJ−ffiiむ。メモlj を
除い友全体のプロセッサは、第1図に示されるように、
単一のVLSIチップ5の上に設けられる。
R8P命令セットは、1サイクルで演算機能を実hvる
命令である(乗算1.除算、左方シフ)1除<)。その
場合、オベラ/ドの1つはデータ・ストア(データ記隠
機構)8に含まれ、他のオベラ/ドは第3図に示される
スタック・レジスタ(ローカル・レジスタ)18に富ま
れる。結果はローカル・レジスタに戻される。そのよう
な命令を実行するため、実行されねばならない4つ0個
別的@能は次のとおりである。
命令である(乗算1.除算、左方シフ)1除<)。その
場合、オベラ/ドの1つはデータ・ストア(データ記隠
機構)8に含まれ、他のオベラ/ドは第3図に示される
スタック・レジスタ(ローカル・レジスタ)18に富ま
れる。結果はローカル・レジスタに戻される。そのよう
な命令を実行するため、実行されねばならない4つ0個
別的@能は次のとおりである。
(1) 命令の7エツチ
(2)データ起用動作のための実効アドレスの形成(3
)データ記憶アクセスの実行 (4)演算動作の実行及び結果のロード任意の1つのそ
のような命令について、上記の4つの機能が順次に実行
さnねばならない。パイプラインrヒ命令の概念は、命
令のこの特性を利用する。R8Pのアーキテクチャ−は
、各@#Qへハードウェアの個別的領域を割当てる。4
つの@牝の1つを実行するステージが1つの命令の上で
動作している間、他のステージは同時に他の命令の上で
動作するように部用されてよい。ある猪今上の動作の実
行は、その命令の位相と呼ばれる。命令の位相1は、命
令の7エツチである。位相2は、実効アドレスの発生で
ある。位相3は、データ・メモリのアクセスである。位
相4は、演算1[Eの実行である。ハードウェア・ステ
ージは、4つの異った瞼令について同時に4つの位相を
実行する。
)データ記憶アクセスの実行 (4)演算動作の実行及び結果のロード任意の1つのそ
のような命令について、上記の4つの機能が順次に実行
さnねばならない。パイプラインrヒ命令の概念は、命
令のこの特性を利用する。R8Pのアーキテクチャ−は
、各@#Qへハードウェアの個別的領域を割当てる。4
つの@牝の1つを実行するステージが1つの命令の上で
動作している間、他のステージは同時に他の命令の上で
動作するように部用されてよい。ある猪今上の動作の実
行は、その命令の位相と呼ばれる。命令の位相1は、命
令の7エツチである。位相2は、実効アドレスの発生で
ある。位相3は、データ・メモリのアクセスである。位
相4は、演算1[Eの実行である。ハードウェア・ステ
ージは、4つの異った瞼令について同時に4つの位相を
実行する。
R8Pは争′−のチップ5の上に設けられるので、チッ
プ上のスペースが貴重とな゛る。従って、データ・スト
ア(データ起用@購)8反び命令ストア(命令記は@W
it)6の大量起重機能は、チップ艷によってアクセス
されるy31J(固のメモリ・チップによって実行され
る。
プ上のスペースが貴重とな゛る。従って、データ・スト
ア(データ起用@購)8反び命令ストア(命令記は@W
it)6の大量起重機能は、チップ艷によってアクセス
されるy31J(固のメモリ・チップによって実行され
る。
ブランチ命令の之めにリターン・アドレスの記録を維持
するため、64のアドレス容量をWTるL I F’O
記厖配置機構要でめる。この配置機構は、命令パイプラ
インの第1ステージによって即時にアクセス0T能でな
ければならない。しかし、そのような大量記は@能をチ
ップ5の上で実行することは、広いチップ領域を使用し
、過度の電力を消散する。他方、データ・ストア8でリ
ター7・アドレスL IFO記は!!能を実行すること
は、不適当でるると考えられる。何故ならば、リター7
・アドレスは、パイプライン・スループットを低下させ
ることなく、リターン命令が第」ステージによって読出
されるまで、データ・ストアからアクセスされ得ないか
らでるる。
するため、64のアドレス容量をWTるL I F’O
記厖配置機構要でめる。この配置機構は、命令パイプラ
インの第1ステージによって即時にアクセス0T能でな
ければならない。しかし、そのような大量記は@能をチ
ップ5の上で実行することは、広いチップ領域を使用し
、過度の電力を消散する。他方、データ・ストア8でリ
ター7・アドレスL IFO記は!!能を実行すること
は、不適当でるると考えられる。何故ならば、リター7
・アドレスは、パイプライン・スループットを低下させ
ることなく、リターン命令が第」ステージによって読出
されるまで、データ・ストアからアクセスされ得ないか
らでるる。
この問題は、本発明によって次のように解決さレル。ア
ドレス・シーケンス・コノトロールは、第5図に示され
るように64レベル・スタック10を含む。スタック1
0はデータ・ストア8に置かれる(メモリ・ロケーショ
ン0−63)。スタック10のトップに書込まれた(直
は、「命令フェッチ及びシーケンス制御」ステージ)に
置かれた曝−の16ビツト・ハードウェア・スタック・
レジスタ18に保持される。6ビツト・スタック・ポイ
ンタ(SP)28(第4□□□)によってアドレスされ
るスタック10は、64レベルのサブルーチン及び割込
ルーテ/全ネストにすることを許す。
ドレス・シーケンス・コノトロールは、第5図に示され
るように64レベル・スタック10を含む。スタック1
0はデータ・ストア8に置かれる(メモリ・ロケーショ
ン0−63)。スタック10のトップに書込まれた(直
は、「命令フェッチ及びシーケンス制御」ステージ)に
置かれた曝−の16ビツト・ハードウェア・スタック・
レジスタ18に保持される。6ビツト・スタック・ポイ
ンタ(SP)28(第4□□□)によってアドレスされ
るスタック10は、64レベルのサブルーチン及び割込
ルーテ/全ネストにすることを許す。
スタックに影響を与える命令は、[無条件ブランチ及び
スタックJ(BS、l、「リターンJ(RET〕、「リ
ターン及び割込能動」(RET ENABLE)でろる
。マスクされない割込みもまたスタックに影響を与える
。
スタックJ(BS、l、「リターンJ(RET〕、「リ
ターン及び割込能動」(RET ENABLE)でろる
。マスクされない割込みもまたスタックに影響を与える
。
BS命令は、次のシーケンシヤル・アドレス(SAR1
6(第3図)の値〕を位相2の終りにスタック・レジス
タ18へ瞥込筐ぜ、次いでその命令のオベラ/ドaによ
って指定された命令アドレスへ無条件ブランチを実行す
る。更に、それは、位相2の終−りまでに、第4図に示
されるスタック・ポインタ28を1だけ増すロさせ(s
p =s p+1)、位相3で、5AR16の1直を、
スタック・ポインタ28によって指定されるスタック1
0のアドレスへ1込む。このようにして、スタック・ポ
インタ28は、常にスタック10のトップのアドレスを
富む。
6(第3図)の値〕を位相2の終りにスタック・レジス
タ18へ瞥込筐ぜ、次いでその命令のオベラ/ドaによ
って指定された命令アドレスへ無条件ブランチを実行す
る。更に、それは、位相2の終−りまでに、第4図に示
されるスタック・ポインタ28を1だけ増すロさせ(s
p =s p+1)、位相3で、5AR16の1直を、
スタック・ポインタ28によって指定されるスタック1
0のアドレスへ1込む。このようにして、スタック・ポ
インタ28は、常にスタック10のトップのアドレスを
富む。
リター7(RET)型命令は、スタック・ポインタ28
によって指定されたアドレス(即ちスタックのトップ)
の内容全、次の曲令のアドレスとして使用させる。この
値はスタック・レジスタ18(第3図)に保持されてい
るので、それは次のサイクルで使用0Tffflとなる
。位相2で、スタック・ポインタ2.8は1だけ減少さ
れて(SP=SP−1)、スタック10の次の値を指定
するようにされ、次いでその命令の位相3で、その値が
スタック10から読出されて、RET型岐令の位相3の
終りでスタック・レジスタ18ヘロートサれる。
によって指定されたアドレス(即ちスタックのトップ)
の内容全、次の曲令のアドレスとして使用させる。この
値はスタック・レジスタ18(第3図)に保持されてい
るので、それは次のサイクルで使用0Tffflとなる
。位相2で、スタック・ポインタ2.8は1だけ減少さ
れて(SP=SP−1)、スタック10の次の値を指定
するようにされ、次いでその命令の位相3で、その値が
スタック10から読出されて、RET型岐令の位相3の
終りでスタック・レジスタ18ヘロートサれる。
これにより、°スタック10から読出されたばかシのリ
ターン・アドレスが、前のRET型命令から少なくとも
1命令だけ離れて生じる後のRET型冷令によって使用
0T能となる。何故ならば、スタック10f:読出し、
位相3でその値をスタック・レジスタ18ヘロードした
最初のRET型命令は、スタック・レジスタ18を更新
する時間を有するからである。
ターン・アドレスが、前のRET型命令から少なくとも
1命令だけ離れて生じる後のRET型冷令によって使用
0T能となる。何故ならば、スタック10f:読出し、
位相3でその値をスタック・レジスタ18ヘロードした
最初のRET型命令は、スタック・レジスタ18を更新
する時間を有するからである。
このようにして、チップ5は、i、sI装置上で余分の
チップ領域を占めることなく、スタック10を直ちにそ
の自今フェッチ・ステージ1で利用OTeとすることが
できる。これは、実際にはデータ・ストア8の区分され
た領域に置かれているスタック10ヘアクセスするため
、ブランチ及びリターン動作の間、R8P命令パイプラ
インの使用されない第2及び第3ステージを利用するこ
とによって達成される。
チップ領域を占めることなく、スタック10を直ちにそ
の自今フェッチ・ステージ1で利用OTeとすることが
できる。これは、実際にはデータ・ストア8の区分され
た領域に置かれているスタック10ヘアクセスするため
、ブランチ及びリターン動作の間、R8P命令パイプラ
インの使用されない第2及び第3ステージを利用するこ
とによって達成される。
第1図に示されるように、貯蔵プログラム式データ・プ
ロセッサはチップ5の上に形成され、これは4つのタイ
ム・シーケンシャル・ステージを含むパイプライン式岐
令@購を有する。第1のステージ1は命令のシーケンシ
ング及びフェッチに1吏用され、第2のステージ2はデ
ータ・ストア・アドレス発生に使用され、第3のステー
ジ3はデータ・ストア・アクセスに使用され、第4のス
テージ4は演算実行に使用される。これらのステージは
、各々が動作コード及びオペランドを含む連続しfc命
令の上で重複モードで動作する。これらの命令は、チッ
プ5の外にあるデータ・ストア8からアクセスされたテ
ーク上で演算動作を実行するため、チップ5の外にある
命令ストア6からアクセスされる。
ロセッサはチップ5の上に形成され、これは4つのタイ
ム・シーケンシャル・ステージを含むパイプライン式岐
令@購を有する。第1のステージ1は命令のシーケンシ
ング及びフェッチに1吏用され、第2のステージ2はデ
ータ・ストア・アドレス発生に使用され、第3のステー
ジ3はデータ・ストア・アクセスに使用され、第4のス
テージ4は演算実行に使用される。これらのステージは
、各々が動作コード及びオペランドを含む連続しfc命
令の上で重複モードで動作する。これらの命令は、チッ
プ5の外にあるデータ・ストア8からアクセスされたテ
ーク上で演算動作を実行するため、チップ5の外にある
命令ストア6からアクセスされる。
改善された砧令ブラ7テ@購が第3図、第4図、第5図
に詳細に示される。第5図の後入れ先出し命令アドレス
・スタック10は、命令ストア6のためにアドレス金肥
はするため、データ・ストア8の区分された領域中に設
けられる。第3図の命令アドレス・マルチプレクサ12
はステージ1に置かれ、七の出力13を命令ストア6の
アドレス入力へ接続される。マルチプレクサ12は命令
アドレスを命令ストア6へ入力するための複数の入力を
有する。第3図の命令アドレス増加器14がステージ1
に設けられ、その入力をマルチプレクサ12の出力13
へ接続され、その出力をシーケンシャル・アドレス・レ
ジスタ16を介して、マルチプレクサ12の人力の1つ
へ接続される。すれは、命令ストア・アドレスを単位量
だけ順次に増加するためである。
に詳細に示される。第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から線17を介して出力され之最後の命令ス
トア・アドレスを記憶するためである。更にスタック・
レジスタ18は、その出力をマルチプレクサ12の入力
又は線19を介してデータ・ストア8にある敵令アドレ
ス・スタック10へ選択的に接続される。スタック・レ
ジスタ18は畦−のアドレスのみを記はする。
れ、その入力をマルチプレクサ(MUX)ヲ介シて、シ
ーケンシャル・アドレス・レジスタ16の出力又はデー
タ・ストア8にあるスタック10から来る出力17へ選
択的に接続される。それは、増加器14から出力され之
最後の命令ストア・アドレス又はデータ・ストア8のス
タック10から線17を介して出力され之最後の命令ス
トア・アドレスを記憶するためである。更にスタック・
レジスタ18は、その出力をマルチプレクサ12の入力
又は線19を介してデータ・ストア8にある敵令アドレ
ス・スタック10へ選択的に接続される。スタック・レ
ジスタ18は畦−のアドレスのみを記はする。
第3図の自令シーケ/シング・デコーダ(7−ケ/シ7
グ・コノトロール)20はステージ1にあり、その人力
を命令ストア60出カフへ接続され、その出力21をマ
ルチプレクサ12へ接続される。それは、命令ストア6
のアドレス人力13を、マルチプレクサ12を介して、
シーケンシャル・アドレス・レジスタ16の出力又はス
タック・レジスタ18の出力のいずれか選択的に接続す
るように制@Tるためでめる。その制御は、線7を介し
て命令ストア6からアクセスされFjt後の命令ワード
の動作コードに応答して実行される。
グ・コノトロール)20はステージ1にあり、その人力
を命令ストア60出カフへ接続され、その出力21をマ
ルチプレクサ12へ接続される。それは、命令ストア6
のアドレス人力13を、マルチプレクサ12を介して、
シーケンシャル・アドレス・レジスタ16の出力又はス
タック・レジスタ18の出力のいずれか選択的に接続す
るように制@Tるためでめる。その制御は、線7を介し
て命令ストア6からアクセスされFjt後の命令ワード
の動作コードに応答して実行される。
マルチプレクサ12は、その複数の入力の1つを命令ス
トア6の出カフへ接続させることができる。それは、命
令ストア6からアクセスされた最後の命令のオペランド
を、関連した動作コードが命令シーケ/シノグ・デコー
ダ20でテコードされたことに応答して、命令ストア6
へ無東件プラノチ・アドレス入力として選択的に転送す
るためでるる。
トア6の出カフへ接続させることができる。それは、命
令ストア6からアクセスされた最後の命令のオペランド
を、関連した動作コードが命令シーケ/シノグ・デコー
ダ20でテコードされたことに応答して、命令ストア6
へ無東件プラノチ・アドレス入力として選択的に転送す
るためでるる。
第4図のデータ・ストア・アクセシ7グ・デコーダ22
はステージ2に置かれ、命令ストア6の出力へ接続され
る入カフを有する。それは、命令ストア6からアクセス
された最後の命令から来た動作コードをテコードするた
めである。第4図のデータ・ストア・アドレス発生器2
11はステージ2に置かれ、命令ストア6の出力へ接続
された入カフ、データ・ストア・アクセシ7グ・デコー
ダ22へ接続された制(財)入力25、関連しt動作コ
ードがデータ・ストア・アクセシ7グ・デコーダ22で
テコードされたことに応答して、最後にアクセスされた
紡令ワードのオペランドからデータ・ストア8のアドレ
スを選択的に発生する出力26を宵する。第4図のスタ
ック・ポインタ28はステージ2に置かれ、データ・ス
トア・アクセシノグ・デコーダ2・2へ接続された制御
人力25、データ・ストア・アドレス値を選択的に増加
又は減少して、データ・ストア8のスタック10に記憶
された最後の命令アドレスにアクセスするための出力2
9を有する。
はステージ2に置かれ、命令ストア6の出力へ接続され
る入カフを有する。それは、命令ストア6からアクセス
された最後の命令から来た動作コードをテコードするた
めである。第4図のデータ・ストア・アドレス発生器2
11はステージ2に置かれ、命令ストア6の出力へ接続
された入カフ、データ・ストア・アクセシ7グ・デコー
ダ22へ接続された制(財)入力25、関連しt動作コ
ードがデータ・ストア・アクセシ7グ・デコーダ22で
テコードされたことに応答して、最後にアクセスされた
紡令ワードのオペランドからデータ・ストア8のアドレ
スを選択的に発生する出力26を宵する。第4図のスタ
ック・ポインタ28はステージ2に置かれ、データ・ス
トア・アクセシノグ・デコーダ2・2へ接続された制御
人力25、データ・ストア・アドレス値を選択的に増加
又は減少して、データ・ストア8のスタック10に記憶
された最後の命令アドレスにアクセスするための出力2
9を有する。
第5図のデータ・ストア・アドレス・レジスタ30はス
テージ3に置かれ、その入力をデータ・ストア・アドレ
ス発生器24の出力26へ接続され、その出力をデータ
・ストア8のアドレス入力へ接続される。それはデータ
・ストア8のロケーションにアクセスする定めである。
テージ3に置かれ、その入力をデータ・ストア・アドレ
ス発生器24の出力26へ接続され、その出力をデータ
・ストア8のアドレス入力へ接続される。それはデータ
・ストア8のロケーションにアクセスする定めである。
ブランチ動作において、命令シーケ/ス・デコーダ20
は、関連したブランチ動作コードにEllして、無条件
ブランチ動作のオペランドがマルチプレクサ12を介し
て命令ストア乙のアドレス人力13へ転送されるのを選
択的に!l1il[lシ、シーケンシャル・アドレス・
レジスタ16が参位量だけ増加されるのを選択的に制御
し、関連したブランチ動作コードに応答してシーケンシ
ャル・アドレス・レジスタ16の内容をスタック・レジ
スタ18ヘロードし、関連したブランチ動作コードに応
答してスタック・レジスタ18の内容が線19を介して
データ・ストア8のデータ人力32へ非破壊的に出力さ
れるのを選択的に制御する。データ・ストア・アクセシ
/グ・デコーダ22は、ブランチ動作コードに応答して
、スタック・ポイ/り28が雫位量だけ増Doされ、か
つその内容がデータ・ストア・アドレス・レジスタ30
ヘスタツク10のロケーション・アドレスとして出力さ
れるのを選択的に制御する。それは、スタック・レジス
タ1Bの内容を、ブランチ動咋シードで指定されたブラ
ンチからのリター7・アドレスとして記憶するためであ
る。
は、関連したブランチ動作コードにEllして、無条件
ブランチ動作のオペランドがマルチプレクサ12を介し
て命令ストア乙のアドレス人力13へ転送されるのを選
択的に!l1il[lシ、シーケンシャル・アドレス・
レジスタ16が参位量だけ増加されるのを選択的に制御
し、関連したブランチ動作コードに応答してシーケンシ
ャル・アドレス・レジスタ16の内容をスタック・レジ
スタ18ヘロードし、関連したブランチ動作コードに応
答してスタック・レジスタ18の内容が線19を介して
データ・ストア8のデータ人力32へ非破壊的に出力さ
れるのを選択的に制御する。データ・ストア・アクセシ
/グ・デコーダ22は、ブランチ動作コードに応答して
、スタック・ポイ/り28が雫位量だけ増Doされ、か
つその内容がデータ・ストア・アドレス・レジスタ30
ヘスタツク10のロケーション・アドレスとして出力さ
れるのを選択的に制御する。それは、スタック・レジス
タ1Bの内容を、ブランチ動咋シードで指定されたブラ
ンチからのリター7・アドレスとして記憶するためであ
る。
上記のブランチ動作において、ステージ1の宿合シーケ
/シ/グ、デコーダ20は、ブランチ動作が発生すると
第1位相でその制御動作を実行する。ステージ2のデー
タ・ストア・アクセサ/グ・デコーダ22は、第1位相
に続く第2tif、相でその制御動作を実行する。ステ
ニジ3にあるデータ・ストア・アドレス・レジスタ(D
SAR)3Ωは、分合アドレス・スタック10のロケ−
ショアへアクセスし、データ・ストア8は、第2位相に
ff1(i31HIでスタック・レジスタ18の内容を
そこに記憶する。このようにして、他の場合に使用され
ないステージ2′&び3がブランチ動作の間に使用され
て、チップ5に置かれていない命令スタック10がアク
セスされる。
/シ/グ、デコーダ20は、ブランチ動作が発生すると
第1位相でその制御動作を実行する。ステージ2のデー
タ・ストア・アクセサ/グ・デコーダ22は、第1位相
に続く第2tif、相でその制御動作を実行する。ステ
ニジ3にあるデータ・ストア・アドレス・レジスタ(D
SAR)3Ωは、分合アドレス・スタック10のロケ−
ショアへアクセスし、データ・ストア8は、第2位相に
ff1(i31HIでスタック・レジスタ18の内容を
そこに記憶する。このようにして、他の場合に使用され
ないステージ2′&び3がブランチ動作の間に使用され
て、チップ5に置かれていない命令スタック10がアク
セスされる。
前のブランチ動作からのリターン動作において、ステー
ジ1の命令シーケンシング・デコーダ20は、第1位相
の間、リターン命令に応答して、スタック・レジスタ1
8の内容がマルチプレクサ12を介して命令ストア6の
アドレス人力13へ転送されるのt選択的に制御する。
ジ1の命令シーケンシング・デコーダ20は、第1位相
の間、リターン命令に応答して、スタック・レジスタ1
8の内容がマルチプレクサ12を介して命令ストア6の
アドレス人力13へ転送されるのt選択的に制御する。
ステージ2のデータ・ストア・アクセシノグ・デコーダ
22は、第1位相に続く第2位相の間、リターン命令の
動作コードに応答して、スタック・ポインタ28が学位
量だけ減少されるのを制御し、かつデータ・ストア8の
スタック10に記憶された最後の命令アドレスにアクセ
スするため、ステージ3でスタック・ポインタ28の内
容がデータ・ストア・ア゛ドレス°レジスタ50へ出力
されるの全制御する。
22は、第1位相に続く第2位相の間、リターン命令の
動作コードに応答して、スタック・ポインタ28が学位
量だけ減少されるのを制御し、かつデータ・ストア8の
スタック10に記憶された最後の命令アドレスにアクセ
スするため、ステージ3でスタック・ポインタ28の内
容がデータ・ストア・ア゛ドレス°レジスタ50へ出力
されるの全制御する。
ステージ1の命令シーケンシング・デコーダ20は、第
2位相に続く第3位相で、データ・ストア8のスタック
10からアクセスされた最後の命令アドレスが、線17
を介してスタック・レジスタ18ヘロードされるのを選
択的に制御する。このようにして、スタック10が第3
位相までデータ・ストア8でアクセスされ得ない時でも
、リターン命令が前のリターン命令から少なくとも1サ
イクル遅れて生じた場合、曲令ストア6にアクセスTる
ためリターン・アドレスを使用することができる。
2位相に続く第3位相で、データ・ストア8のスタック
10からアクセスされた最後の命令アドレスが、線17
を介してスタック・レジスタ18ヘロードされるのを選
択的に制御する。このようにして、スタック10が第3
位相までデータ・ストア8でアクセスされ得ない時でも
、リターン命令が前のリターン命令から少なくとも1サ
イクル遅れて生じた場合、曲令ストア6にアクセスTる
ためリターン・アドレスを使用することができる。
以下の説明は、リアル・タイムホ号プロセッサのいくつ
かのエレメ/トヲ詳細に説明したものである。
かのエレメ/トヲ詳細に説明したものである。
第3図に示されるステージ1は、砧令実行の位相1のみ
を実行する。このステージにおいて、前の宿舎の8ビッ
ト動作コードがデコードされ、現命令のアドレスがプロ
セッサ中の条件コード及び前命令の動作コードのデコー
ド結果に基いて決定され、現分令が命令ストア6からフ
ェッチされる。
を実行する。このステージにおいて、前の宿舎の8ビッ
ト動作コードがデコードされ、現命令のアドレスがプロ
セッサ中の条件コード及び前命令の動作コードのデコー
ド結果に基いて決定され、現分令が命令ストア6からフ
ェッチされる。
プログラム・カウンタの値(即ち、現命令のアドレス)
ハ、シーケンシャル・アドレス・レジスタ16にあるア
ドレス又は多数のブランチ・アドレスの1つから選択さ
れる。アドレス選択はグロダラム及び/又は割込制菌の
下で行われる。全ての場合、ブランチングを1つの命令
サイクルで起すようにするため、現命令のアドレスは全
面的に命令実行の位相10間に決定される。
ハ、シーケンシャル・アドレス・レジスタ16にあるア
ドレス又は多数のブランチ・アドレスの1つから選択さ
れる。アドレス選択はグロダラム及び/又は割込制菌の
下で行われる。全ての場合、ブランチングを1つの命令
サイクルで起すようにするため、現命令のアドレスは全
面的に命令実行の位相10間に決定される。
命令実行の第2位相で、有効なデータ・ストア・アドレ
スが、データ・ストア8のアクセスを必要とする命令に
ついて計算される。命令の16ビツトーオペランド・フ
ィールドraJは、第4図に示されるアドレス発生ステ
ージ2へ通される。
スが、データ・ストア8のアクセスを必要とする命令に
ついて計算される。命令の16ビツトーオペランド・フ
ィールドraJは、第4図に示されるアドレス発生ステ
ージ2へ通される。
次いで、データ・ストア動作の実効アドレスは、ml令
に従って4つの関数の1つに基いて形成される。′実効
アドレスの4つの種類は次のとおりである。
に従って4つの関数の1つに基いて形成される。′実効
アドレスの4つの種類は次のとおりである。
(1)a 直接メモリ(2)a十
B オフセット・メモリ(3) a+
Xi i=1.2 インデックスされ几メモリ(4
) M(a、Xi、B) i=1.2 マスクされ
たメモリココで、Bはペース・レジスタ、Mはマスク・
レジスタ、Xiはインデックス・レジスタ(i−1,2
)、M(aXX i、B )は循環バッファ動作の之め
に使用されるマスク機能でるる。
B オフセット・メモリ(3) a+
Xi i=1.2 インデックスされ几メモリ(4
) M(a、Xi、B) i=1.2 マスクされ
たメモリココで、Bはペース・レジスタ、Mはマスク・
レジスタ、Xiはインデックス・レジスタ(i−1,2
)、M(aXX i、B )は循環バッファ動作の之め
に使用されるマスク機能でるる。
各種の言号処理データ購造に対しそ有効な制御を実行す
るため、実効アドレスの形成に使用されるレジスタ(即
ちXl、X2、Wl、W2)を更新する多数のレジスタ
が設けられている。これらの命令は、データ・ストア動
作を伴わない限り、第2位相で実行全完了する。データ
・ストアの瞥込みは第3位相で完了する。データ・スト
ア8を読出す動作は、位相3で読出動作及びステージ2
のレジスタ更新を実行し、更新されたレジスタは次のサ
イクル(位相)で利用or能、となる。データ書込動作
については、実効アドレスはステージ2論理によって発
生され、位相3におけるアクセスの準備のため位相2の
終りにデータ・ストア・アドレス・レジスタ30表送ら
れる。
るため、実効アドレスの形成に使用されるレジスタ(即
ちXl、X2、Wl、W2)を更新する多数のレジスタ
が設けられている。これらの命令は、データ・ストア動
作を伴わない限り、第2位相で実行全完了する。データ
・ストアの瞥込みは第3位相で完了する。データ・スト
ア8を読出す動作は、位相3で読出動作及びステージ2
のレジスタ更新を実行し、更新されたレジスタは次のサ
イクル(位相)で利用or能、となる。データ書込動作
については、実効アドレスはステージ2論理によって発
生され、位相3におけるアクセスの準備のため位相2の
終りにデータ・ストア・アドレス・レジスタ30表送ら
れる。
データ・ストア・ステージ(fi相3)命令実行の位相
3で(メモリ・アクセス位相)、データ・ストア8は実
効アドレスでアクセスきれる。アドレス発生ステージ2
は、前のサイクル(M相〕で計算された実効アドレスを
、現位相で使用するため、第5図のデータ・ストア・ス
テージ5へ送る。読喉り動作については、データ・スト
ア出力が、前の命令の動作コードによって指定された適
当なレンスタヘロードされる。これは、位相4における
使用準備のため、その命令の位相3の完了時になされる
。成る種の命令はオペランドを求めてデータ・ストア8
にアクセスせず、位相4・の演算に関与するため即値オ
ペランドを必要とする。この場合、データ・ストア・ス
テージ3は、宿舎オペラ/ドraJiステージ2からス
テージ4へ通す通路を設定する。それは、その命令の位
相4でraJe[用するためでるる。
3で(メモリ・アクセス位相)、データ・ストア8は実
効アドレスでアクセスきれる。アドレス発生ステージ2
は、前のサイクル(M相〕で計算された実効アドレスを
、現位相で使用するため、第5図のデータ・ストア・ス
テージ5へ送る。読喉り動作については、データ・スト
ア出力が、前の命令の動作コードによって指定された適
当なレンスタヘロードされる。これは、位相4における
使用準備のため、その命令の位相3の完了時になされる
。成る種の命令はオペランドを求めてデータ・ストア8
にアクセスせず、位相4・の演算に関与するため即値オ
ペランドを必要とする。この場合、データ・ストア・ス
テージ3は、宿舎オペラ/ドraJiステージ2からス
テージ4へ通す通路を設定する。それは、その命令の位
相4でraJe[用するためでるる。
命令の首尾一貫した実行を維持するため、4つの全ての
位相の実行は相互に固定した関係になければならない。
位相の実行は相互に固定した関係になければならない。
このため、外部装置がデータ・ストア8へのアクセスを
要求する時、それは!10論理64全通して行ない、パ
イプラインの全体がストップされねばならない。このプ
ロセスはサイクル・スチール動作と呼ばれる。データ・
ストア8に対するI10アクセスはサイクル・スチール
動作を生じ、これは1マシン・サイ多ルだけパイプライ
ンの実行を遅らせる。4つの全ての位相/ステージが遅
延される。
要求する時、それは!10論理64全通して行ない、パ
イプラインの全体がストップされねばならない。このプ
ロセスはサイクル・スチール動作と呼ばれる。データ・
ストア8に対するI10アクセスはサイクル・スチール
動作を生じ、これは1マシン・サイ多ルだけパイプライ
ンの実行を遅らせる。4つの全ての位相/ステージが遅
延される。
命令実行のI!4(最後の〕位相で、演算ステージ4は
命令で限定され友実際の演算動作を実行する。演算動作
セット中の大部分の命令は、演算ステージ4の学−サイ
クルで実行される。しかし、乗算、除算、及び左方シフ
トの各命令は、それが完了するのにこのステージの複数
の実行を必要とする。乗算命令は8サイクルまでを必要
左し、除算命令は17サイクルを必要とし、左方フット
命令はシフト・カウント(D−31)より1つだけ多い
サイクルを必要とする。これらの命令の場合、命令実行
の最初の3つのステージ2論理1.2.3は「凍結」さ
れ、その間に、現命令のステージ4が、その命令が完了
するまで実行を許される。
命令で限定され友実際の演算動作を実行する。演算動作
セット中の大部分の命令は、演算ステージ4の学−サイ
クルで実行される。しかし、乗算、除算、及び左方シフ
トの各命令は、それが完了するのにこのステージの複数
の実行を必要とする。乗算命令は8サイクルまでを必要
左し、除算命令は17サイクルを必要とし、左方フット
命令はシフト・カウント(D−31)より1つだけ多い
サイクルを必要とする。これらの命令の場合、命令実行
の最初の3つのステージ2論理1.2.3は「凍結」さ
れ、その間に、現命令のステージ4が、その命令が完了
するまで実行を許される。
I10ステージ34の機能は2つの種類に分けることが
できる。それらは直接I10と外部制御I10である。
できる。それらは直接I10と外部制御I10である。
次の説明は各@能を藺導に説明したものでるる。
(1)直接I10
これにより、プロセッサは、単一のワードをプログラム
制御の下で外部装置から入力したシ外部装置へ出力した
シすることができる。
制御の下で外部装置から入力したシ外部装置へ出力した
シすることができる。
(2)外部制御I10
これにより、外部装置は、その制御の下で、直接にR8
P(i−読出したシR8Pへ瞥込んだりすることができ
る。
P(i−読出したシR8Pへ瞥込んだりすることができ
る。
他のR8P@震
R8P中に設けられた他の@購は、リアル・タイム・ク
ロック、全てのレジスタにスキャン・イ//スキャ/・
アウトを実行しがっR8Pにラッチすることができるメ
インテナンス・インイーフェイス、及び1組のFI&t
iQ指令を出すことによって、外部装置がR8Pを制御
できるようにするl101/ターフエイスtきむ。
ロック、全てのレジスタにスキャン・イ//スキャ/・
アウトを実行しがっR8Pにラッチすることができるメ
インテナンス・インイーフェイス、及び1組のFI&t
iQ指令を出すことによって、外部装置がR8Pを制御
できるようにするl101/ターフエイスtきむ。
パイプライノ動作の例
命令パイブライ/の2つの例が第2図に示される。例1
.は実行されている学−の命令を示す。位相1から位相
4までは、4つのハードウェア・ステージによって砧今
上で実行される4つの@能を表わす。サイクルはマシ/
・サイクルを意味する。
.は実行されている学−の命令を示す。位相1から位相
4までは、4つのハードウェア・ステージによって砧今
上で実行される4つの@能を表わす。サイクルはマシ/
・サイクルを意味する。
このレリにおける命令rAZ Z、a(Ml)jはマ
スクされたメ・r:す・ロケ−ショアM(a、Xl、B
)の内容1zレジスタの内容へ加え、その会計tzレジ
スタへ置く。宿舎オペラッドraJはレジスタXI、B
、Mによって修旧され、ステージ2でマスクされた実効
アドレス(e a ) =M(a。
スクされたメ・r:す・ロケ−ショアM(a、Xl、B
)の内容1zレジスタの内容へ加え、その会計tzレジ
スタへ置く。宿舎オペラッドraJはレジスタXI、B
、Mによって修旧され、ステージ2でマスクされた実効
アドレス(e a ) =M(a。
Xl、B)が形成され、ストレージ・ロケ−ショアがス
テージ3でアクセスされる。合計は、ステージ4で、形
成され宛先レジ゛スタヘロードされる。
テージ3でアクセスされる。合計は、ステージ4で、形
成され宛先レジ゛スタヘロードされる。
例2は、次の動作シーケンスを実けする命令のセットを
示す。
示す。
(1) 「LZ al (Ml ) J これは、マ
スクされたメモリ・ロケーションM(al、X 1、B)を2レジスタヘロー ドする。
スクされたメモリ・ロケーションM(al、X 1、B)を2レジスタヘロー ドする。
(2) rAz Z、N2(Ml) J コれはマスク
されたメモリ・ロケ−ショアM(N2、Xl、 B)の内容を2レジスタへ0口 え、その結果を2レジスタへ 置く。
されたメモリ・ロケ−ショアM(N2、Xl、 B)の内容を2レジスタへ0口 え、その結果を2レジスタへ 置く。
(3)rSTZ N3(Ml)J コれはZL/ジス
タの内容をマスクされたメモリ・ロケータ ョンM(N3、XI、B)に 装置する。
タの内容をマスクされたメモリ・ロケータ ョンM(N3、XI、B)に 装置する。
(4)rB N4J これはa令アドレス(
N4)ヘブラノチする。
N4)ヘブラノチする。
「STz」命令のN3ステージが結果を移動させる友め
記憶動作を実行する前に、パイプラインのステージ4が
rAZJ命令を完了できる↓うに、ノー・オペレーショ
ン命令rNOP、Jが命令パイブライン中に挿入される
。使用されないサイクルは、命令パイプライ/中でその
時間的位置を保持する。
記憶動作を実行する前に、パイプラインのステージ4が
rAZJ命令を完了できる↓うに、ノー・オペレーショ
ン命令rNOP、Jが命令パイブライン中に挿入される
。使用されないサイクルは、命令パイプライ/中でその
時間的位置を保持する。
今から、R8Pのハードウェア・ステージにおける動作
を詳細に説明する。
を詳細に説明する。
この説明は、(1)どのようにして命令がフェッチされ
かつデコードされるか、(2)どのようにして実効アド
レスが発生されかつ使用されるか、(3)どのようにし
て各種の条件コード及びレジスタ(SAR1スタックな
ど〕がセットされかつ解釈されるかを合む。
かつデコードされるか、(2)どのようにして実効アド
レスが発生されかつ使用されるか、(3)どのようにし
て各種の条件コード及びレジスタ(SAR1スタックな
ど〕がセットされかつ解釈されるかを合む。
このステージは第3図の流れ図に示される。それは、命
令パイプライン実行の位相1の機能を実行する。このス
テージは、命令ストア6を制御する命令アドレス選択論
理を含む。
令パイプライン実行の位相1の機能を実行する。このス
テージは、命令ストア6を制御する命令アドレス選択論
理を含む。
命令ストア
24ビツト幅である命令ストア6は、8ビツトの動作コ
ード・フィールドと16ビツトのオベラ/ド・フィール
ドによって溝成される。それは命令アドレス・マルチプ
レクサ(プログラム・カウンタ(PC)マルチプレクサ
〕12によってアドレスされる。16ピツトを宜むマル
チプレクサ出力13は、65536個までの命令を言む
命令ストア6をアドレスすることができる。
ード・フィールドと16ビツトのオベラ/ド・フィール
ドによって溝成される。それは命令アドレス・マルチプ
レクサ(プログラム・カウンタ(PC)マルチプレクサ
〕12によってアドレスされる。16ピツトを宜むマル
チプレクサ出力13は、65536個までの命令を言む
命令ストア6をアドレスすることができる。
命令アドレス選択論理
命令実行の位相1で、命令アドレス選択論理は、現命令
のアドレスの源(source)を決定するため、前の
命令から未定8ビット動作コードをデコードする。アド
レスはマルチプレクサ12によって選択され、命令がア
クセスされる。ブランチ、プロシード(proceed
) 、又はリター7動作を呼出す前命令からの動作コー
ドは、フェッチされつつおる命令のアドレスが5つのブ
ランチ源の1つから覗られるようにする。他の全ての動
作コードは、現命令ノアドレスがシーケンシャル・アド
レス・レジスタ16から取られるようにする。シーケン
シャル・アドレス・レジスタ16は、ラエッチされた最
後の命令のアドレス+1を言む。
のアドレスの源(source)を決定するため、前の
命令から未定8ビット動作コードをデコードする。アド
レスはマルチプレクサ12によって選択され、命令がア
クセスされる。ブランチ、プロシード(proceed
) 、又はリター7動作を呼出す前命令からの動作コー
ドは、フェッチされつつおる命令のアドレスが5つのブ
ランチ源の1つから覗られるようにする。他の全ての動
作コードは、現命令ノアドレスがシーケンシャル・アド
レス・レジスタ16から取られるようにする。シーケン
シャル・アドレス・レジスタ16は、ラエッチされた最
後の命令のアドレス+1を言む。
命令のアドレス発生及びフエンチ動作は、ブランチング
が確実に1サイクルで起るように、同一サイクルで実行
される。
が確実に1サイクルで起るように、同一サイクルで実行
される。
マルチプレツクス12は次の源の中から現命令のアドレ
スを選択する。これら源の全ては16ビツト′・レジス
タである。
スを選択する。これら源の全ては16ビツト′・レジス
タである。
(1) シーケンシャル・アドレス・レジスタ16(
次のシーケンシャル・アドレス(pc+i ))(2)
スタック・レジスタ18(64ワード命令アドレス
・スタックのトップ) (3) オペラ/ドf’aJレジスタ36 (命令の
オベラ/ド・フィールド〕 (4)保存レジスタ38(保存レジスタの内容〕(5)
IAR/ベクトル・レジスタ4o(ベクトル比され
た割込アドレス) ′ シーケンシャル・アドレス・レジスタ16は、命令スト
ア6を順次にアドレスする友め源として選択される。ス
タック・レジスタ18は、リターン型命令のために源と
して選択される。オベラ/ド「a」レジスタ36は、無
東件ブラ/チ命令のため源として選択される。更にそれ
は、条件基準が満足された時、全ての条件ブランチ命令
のために使用される。条件基準が満足されなければ、シ
ーケンシャル・アドレス・レジスタ16が選択される。
次のシーケンシャル・アドレス(pc+i ))(2)
スタック・レジスタ18(64ワード命令アドレス
・スタックのトップ) (3) オペラ/ドf’aJレジスタ36 (命令の
オベラ/ド・フィールド〕 (4)保存レジスタ38(保存レジスタの内容〕(5)
IAR/ベクトル・レジスタ4o(ベクトル比され
た割込アドレス) ′ シーケンシャル・アドレス・レジスタ16は、命令スト
ア6を順次にアドレスする友め源として選択される。ス
タック・レジスタ18は、リターン型命令のために源と
して選択される。オベラ/ド「a」レジスタ36は、無
東件ブラ/チ命令のため源として選択される。更にそれ
は、条件基準が満足された時、全ての条件ブランチ命令
のために使用される。条件基準が満足されなければ、シ
ーケンシャル・アドレス・レジスタ16が選択される。
保存レジスタ68は、プロシード(PRCD)命令又は
プロシードを指定した機能が使用され九時(即ち、r−
P J形の命令)、次の命令のアドレスのため源とし
て使用される。IAR/ベクトル・レジスタ4oは、分
合ストアのワード1−63へのI/Q割込ブランチの友
めに使用される。命令ストアは適当な割込処理ルーチン
のアドレスに対するブランチ命令を言んでいる。
プロシードを指定した機能が使用され九時(即ち、r−
P J形の命令)、次の命令のアドレスのため源とし
て使用される。IAR/ベクトル・レジスタ4oは、分
合ストアのワード1−63へのI/Q割込ブランチの友
めに使用される。命令ストアは適当な割込処理ルーチン
のアドレスに対するブランチ命令を言んでいる。
条件付きブランチング
条件付きブランチングの決定は、8fllilの東件イ
/ディケータ・ピントの状態に基いてなされる。
/ディケータ・ピントの状態に基いてなされる。
これらのピントは、命令が実行される時、プロセンサ中
に存在する各種の条件の@果としてセントされる。条件
イノディケータ・ピントは、ステージ4で発生され九条
件コード・ピント及び他のステージで発生された状況フ
ラグを含む。ブランチ条件は次のとおりである。
に存在する各種の条件の@果としてセントされる。条件
イノディケータ・ピントは、ステージ4で発生され九条
件コード・ピント及び他のステージで発生された状況フ
ラグを含む。ブランチ条件は次のとおりである。
(1)演算結果=OZCC=1
(2)演算結果<ONCC=1
(3)演算結果合致 0CC=1(4
) 内部オーバフロー l0F=1(
5) 係属内部オーバフロー POF’=1
(6)外部オーバフロー EOF=1(7
) イ7デンクス比較フラグ I CF=1(
8) ソフトウェア・フラグ SF=1全
ての演算命令は、位相4の終りに条件コード1−5をセ
ントする。完了するのに位相4の複数サイクルを必要と
する乗算、除算、左方シフトな。
) 内部オーバフロー l0F=1(
5) 係属内部オーバフロー POF’=1
(6)外部オーバフロー EOF=1(7
) イ7デンクス比較フラグ I CF=1(
8) ソフトウェア・フラグ SF=1全
ての演算命令は、位相4の終りに条件コード1−5をセ
ントする。完了するのに位相4の複数サイクルを必要と
する乗算、除算、左方シフトな。
どの命令については、条件コードは第4位相が終了した
後にセントされる。外部オー“バフロー(条件コード6
〕は位相3で決定され、位相4でセントされる。インデ
ックス比較フラ名(7)はステージ2で発生され、その
命令実行の位相2でセントされる。ソフトウェア・フラ
グは位相2のプログラム側聞の下でセントされる。条件
コード4.6.8はランチされ、具体的に防用されるま
で1ヘセントされ′几ままである。具体的に使用される
と、それらは、そ・れらを使用したブランチ命令の位相
2で0ヘリセントされる。他の全ての条件コードのピン
トは、それに影響を及ぼす各オペレーショ/によってセ
ントされる。
後にセントされる。外部オー“バフロー(条件コード6
〕は位相3で決定され、位相4でセントされる。インデ
ックス比較フラ名(7)はステージ2で発生され、その
命令実行の位相2でセントされる。ソフトウェア・フラ
グは位相2のプログラム側聞の下でセントされる。条件
コード4.6.8はランチされ、具体的に防用されるま
で1ヘセントされ′几ままである。具体的に使用される
と、それらは、そ・れらを使用したブランチ命令の位相
2で0ヘリセントされる。他の全ての条件コードのピン
トは、それに影響を及ぼす各オペレーショ/によってセ
ントされる。
条件付きブランチ命令は、次の命令実行の位相1で実行
2れ、従って、その時点で存在した条件に基いて実行さ
れる。成る種のプラ/チ命やは、演算ステージ4で設定
され九条件コードに基いて実行される。そのブランチは
、ブランチ命令の3サイクル又はそれ以上前にデコード
された演算命令の結果としてセントされる。、インデッ
クス比較フラグに基くブランチ命令CBI:CF)は、
前の吊金の結果セントされた条件に従って実行される。
2れ、従って、その時点で存在した条件に基いて実行さ
れる。成る種のプラ/チ命やは、演算ステージ4で設定
され九条件コードに基いて実行される。そのブランチは
、ブランチ命令の3サイクル又はそれ以上前にデコード
された演算命令の結果としてセントされる。、インデッ
クス比較フラグに基くブランチ命令CBI:CF)は、
前の吊金の結果セントされた条件に従って実行される。
外部オーバフローに基くブランチ命令は、そのブランチ
命令の3サイクル又はそれ以上前にセントされた条件に
基いて実行される。
命令の3サイクル又はそれ以上前にセントされた条件に
基いて実行される。
スタック動作
アドレス・シーケ/シ/グ・コノトロニルは、テーク・
ストア8に置かれた64レベル・スタック10を冴む(
メモリロケーショノ0−63)。
ストア8に置かれた64レベル・スタック10を冴む(
メモリロケーショノ0−63)。
スタック10のトップに書込まれ之値は、ステージ1に
置かれた。1個の16ピント・スタック・レジスタ18
に保持される。6ビント・スタック・ポイ/り28によ
ってアドレスされる64レベル・スタック10は、64
レベルまでのサプルーチ/及び割込ルーチンのネストを
可能にする。スタック10に影響を与える命令は、「無
条件ブラレチ及びスタックJ(BS)、「リターンJ
(RET)、[リター/&び61J込tiQ動J (R
’E T E NA B L E )、でろる8更に
マスクされない割込みもスタック10に影響を与える。
置かれた。1個の16ピント・スタック・レジスタ18
に保持される。6ビント・スタック・ポイ/り28によ
ってアドレスされる64レベル・スタック10は、64
レベルまでのサプルーチ/及び割込ルーチンのネストを
可能にする。スタック10に影響を与える命令は、「無
条件ブラレチ及びスタックJ(BS)、「リターンJ
(RET)、[リター/&び61J込tiQ動J (R
’E T E NA B L E )、でろる8更に
マスクされない割込みもスタック10に影響を与える。
B、S命令は、次のシーケンシャル・アドレス(シーケ
ンシャル・アドレス・レジスタ16の直)を、位相2の
終りにスタック:レジスタ18へ」込ませ、次いでその
時令のオベラ/ド「a」によって指定されfc冷令アド
レスへ無条件ブランチを1けう。更に、それは、位相2
の終り筐でにスタック・ボイ/り28を1だけ増む口ぎ
せ(SP=SP十i)、fif3で、シーケンシャル・
アドレス・レジスタ16の値を、スタック・ボイノタ2
8によって指定されたスタック10のアドレスへ書込む
。このようにして、更新されたスタック・ボイ/夕28
は、常にスタック1oのトップのアドレスをよむ。
ンシャル・アドレス・レジスタ16の直)を、位相2の
終りにスタック:レジスタ18へ」込ませ、次いでその
時令のオベラ/ド「a」によって指定されfc冷令アド
レスへ無条件ブランチを1けう。更に、それは、位相2
の終り筐でにスタック・ボイ/り28を1だけ増む口ぎ
せ(SP=SP十i)、fif3で、シーケンシャル・
アドレス・レジスタ16の値を、スタック・ボイノタ2
8によって指定されたスタック10のアドレスへ書込む
。このようにして、更新されたスタック・ボイ/夕28
は、常にスタック1oのトップのアドレスをよむ。
リターン型命令は、スタック・ポイノタ28によって指
定されたアドレス〔即ち、スタックのトップ〕の内容を
、次メ醋令のアドレスとして防用させる・。それはスタ
ック・レジスタ18に保持すれているので、次のサイク
ルで使用可能である。
定されたアドレス〔即ち、スタックのトップ〕の内容を
、次メ醋令のアドレスとして防用させる・。それはスタ
ック・レジスタ18に保持すれているので、次のサイク
ルで使用可能である。
位相2で、スタック・ボイ/り28は、スタック100
次のロケーションを指定するため、1だけ減少され(S
P=SP−1)、次いでその命令の位相3で、そのロケ
ーショ/の内容がスタック10から読出され、リターン
型命令の位相3の終りに、スタック・レジスタ18ヘロ
ードされる。これにより、スタック10から読出され友
ばかりのリター7・アドレスが、前のリターン型命令か
ら少なくとも1つの吊令だけ遅れて生じる後のリターン
型命令によって使用可能となる。これは、スタック10
を読出してそれを位相3でスタック・レジスタ18ヘロ
ードする最初の゛リターン型命令は、スタック・レジス
タの更新を完了するための時間を有するという理由によ
る。
次のロケーションを指定するため、1だけ減少され(S
P=SP−1)、次いでその命令の位相3で、そのロケ
ーショ/の内容がスタック10から読出され、リターン
型命令の位相3の終りに、スタック・レジスタ18ヘロ
ードされる。これにより、スタック10から読出され友
ばかりのリター7・アドレスが、前のリターン型命令か
ら少なくとも1つの吊令だけ遅れて生じる後のリターン
型命令によって使用可能となる。これは、スタック10
を読出してそれを位相3でスタック・レジスタ18ヘロ
ードする最初の゛リターン型命令は、スタック・レジス
タの更新を完了するための時間を有するという理由によ
る。
しかしリターン型命令が他のリターン型命令の直後に続
くならば、ハードウェアは、7特別のやり方でそれを処
理しなければならない。これは、第2のリターン型命令
がデコードされかつフエンチされ九時、デコーダ20は
、第2のリターン型命令の後の結合のアドレスは、スタ
ック・レジスタ18にあ゛る(直であると決定するから
である。しかし、スタック・レジスタ18は依然として
第2のリターン命令を指しており、従ってその命令が再
びフェッチされる。第2のリターン型命令の最初−のフ
ェッチについては問題がない。しかし、第2のリターン
型命令の第2のフェッチは、その位相2(第2のリター
ン型命令の最初のフェッチの位相3)でスタック・ポイ
/り2βを更新しようとする。もしそれが起ると、スタ
ック・ポイ/り28は間違った場所ヲ指すことになる。
くならば、ハードウェアは、7特別のやり方でそれを処
理しなければならない。これは、第2のリターン型命令
がデコードされかつフエンチされ九時、デコーダ20は
、第2のリターン型命令の後の結合のアドレスは、スタ
ック・レジスタ18にあ゛る(直であると決定するから
である。しかし、スタック・レジスタ18は依然として
第2のリターン命令を指しており、従ってその命令が再
びフェッチされる。第2のリターン型命令の最初−のフ
ェッチについては問題がない。しかし、第2のリターン
型命令の第2のフェッチは、その位相2(第2のリター
ン型命令の最初のフェッチの位相3)でスタック・ポイ
/り2βを更新しようとする。もしそれが起ると、スタ
ック・ポイ/り28は間違った場所ヲ指すことになる。
従って、デコーダ20は、第2のリターン型命令の第2
のフェッチの位相2.3.4で、通常のリターン命令の
代りに、線Z上にノー・オペレーショ/@号全挿入しな
ければならない。それによって、デコーダ22′は、ス
タック・ポインタ28が第2回目に更新されるめを禁止
し、デコーダ75は、データ・ストア8が第2回目に読
出されるのを禁止する。
のフェッチの位相2.3.4で、通常のリターン命令の
代りに、線Z上にノー・オペレーショ/@号全挿入しな
ければならない。それによって、デコーダ22′は、ス
タック・ポインタ28が第2回目に更新されるめを禁止
し、デコーダ75は、データ・ストア8が第2回目に読
出されるのを禁止する。
ハードウェアによって発生されたこのノー・オベレーシ
ョ/の結果、第2のリターン型命令の最初のフェッチは
通常の如く動作するが、第2のリターン型命令の第2の
フェッチは位相″1で通常の如く動作し、位相2.3.
4ではノー・オペレーション命令の如く動作する。第3
の連続し九すター7型命令は最初のリターン型命令と同
じように処理される。何故ならば、それはリターン型面
令ではなく、有効なノー・オペレーションl1ff令に
続くからでめる。2つ又はそれμ上の連続したリターン
命令の動作は、次のとおりでるる。
ョ/の結果、第2のリターン型命令の最初のフェッチは
通常の如く動作するが、第2のリターン型命令の第2の
フェッチは位相″1で通常の如く動作し、位相2.3.
4ではノー・オペレーション命令の如く動作する。第3
の連続し九すター7型命令は最初のリターン型命令と同
じように処理される。何故ならば、それはリターン型面
令ではなく、有効なノー・オペレーションl1ff令に
続くからでめる。2つ又はそれμ上の連続したリターン
命令の動作は、次のとおりでるる。
最初ρマシン・サイクルで、スタック・レジスタ18に
記憶される値はStでめシ、スタック。
記憶される値はStでめシ、スタック。
ポインタ28に記憶゛される値はiでるる。ステージ1
にあるデコーダ20は第1サイクルで前の命’?rt
7’コードし、マルチプレクサ12を制御して、線13
の上に命令ストア6の最初のアドレスを入力させる。そ
れによって、命令ストア6から最初の命令がフェッチさ
れる。
にあるデコーダ20は第1サイクルで前の命’?rt
7’コードし、マルチプレクサ12を制御して、線13
の上に命令ストア6の最初のアドレスを入力させる。そ
れによって、命令ストア6から最初の命令がフェッチさ
れる。
第2のマシ/・サイクルの始めに、スタック・レジスタ
18はStを記lしており、スタック・ポイ/り28は
iを記憶している、ステージ1にあるデコーダ20は、
最初の命令を、最初のサイクルに続く第2のサイクルで
、最初のりターノ命。
18はStを記lしており、スタック・ポイ/り28は
iを記憶している、ステージ1にあるデコーダ20は、
最初の命令を、最初のサイクルに続く第2のサイクルで
、最初のりターノ命。
6トt、てデコードし、マルチプレクサ12を制御して
、スタック・レジスタ1Bの内容Sik、第2のアドレ
スとして命令ストア6へ転送する。それによって、防ヤ
スドア6から第2の命令がフェッチされる。嵐テージ2
にあるデコーダ22は、最初の命令を、第2のサイクル
で最初のリターン命令としてデコードレ、スタック・ポ
インタ28を制御して、その内容を単位量だけ減少して
「i−1」にする。この値は、ステージ3で、スタック
10のkめの最初のデータ・ストア・アドレスとしてデ
ータ・ストア・アドレス・レジスタ30へ出力される。
、スタック・レジスタ1Bの内容Sik、第2のアドレ
スとして命令ストア6へ転送する。それによって、防ヤ
スドア6から第2の命令がフェッチされる。嵐テージ2
にあるデコーダ22は、最初の命令を、第2のサイクル
で最初のリターン命令としてデコードレ、スタック・ポ
インタ28を制御して、その内容を単位量だけ減少して
「i−1」にする。この値は、ステージ3で、スタック
10のkめの最初のデータ・ストア・アドレスとしてデ
ータ・ストア・アドレス・レジスタ30へ出力される。
第3マシン・サイクルの始めに、スタック・レジスタ1
8はSiを記憶しており、スタック・ポインタ28は(
i−1)を記憶している。ステージ1にあるデコーダ2
0は、第2の命令全1.第2サイクルに続く第3サイク
ルで第2のりター/命令トシてデコードし、マルチプレ
クサ12を制御して、スタック・レジスタ18を占めて
いるSiヲ、請合ストア6へ第2のアドレスとして転送
させる。従って、命令ストア6から再び第2の命令がフ
ェッチされる。ステージ1にめるデコーダ20は、線7
を介してノー・オペレーション(NO−OP )出力を
、ステージ2にるるデコーダ22及びステージ3にめる
動作コード・デコーダ75へ接続される。それは、第3
サイク、ルで第2のリターン命令が検出された時、No
−OP信号を線7へ出力する几めである。ステージ2に
るるデコーダ22は、第3サイクルで第2の命令を第2
のリターン命令としてデコードし、スタック・ボイ/り
28を!IJ御して、その内容を単位量だけ減少ざぜて
(i−2)にする。この値は、ステージ3で、スタック
10の九めに第2のデータ・ストア・アドレスとしてデ
ータ・ストア・アドレス・レジスタ30へ出力される。
8はSiを記憶しており、スタック・ポインタ28は(
i−1)を記憶している。ステージ1にあるデコーダ2
0は、第2の命令全1.第2サイクルに続く第3サイク
ルで第2のりター/命令トシてデコードし、マルチプレ
クサ12を制御して、スタック・レジスタ18を占めて
いるSiヲ、請合ストア6へ第2のアドレスとして転送
させる。従って、命令ストア6から再び第2の命令がフ
ェッチされる。ステージ1にめるデコーダ20は、線7
を介してノー・オペレーション(NO−OP )出力を
、ステージ2にるるデコーダ22及びステージ3にめる
動作コード・デコーダ75へ接続される。それは、第3
サイク、ルで第2のリターン命令が検出された時、No
−OP信号を線7へ出力する几めである。ステージ2に
るるデコーダ22は、第3サイクルで第2の命令を第2
のリターン命令としてデコードし、スタック・ボイ/り
28を!IJ御して、その内容を単位量だけ減少ざぜて
(i−2)にする。この値は、ステージ3で、スタック
10の九めに第2のデータ・ストア・アドレスとしてデ
ータ・ストア・アドレス・レジスタ30へ出力される。
ステージ3にるるデコーダ75は、第3サイクルで、最
初の結合を最初のリターン命令としてデコードし、かつ
データ・ストア8を制御して1.最初のデータ・ストア
・アドレス(i−1)に基いてスタック1oの最初のデ
ータへアクセスさせ、ステージ1の@17を介して、最
初のデータを値S、 とじてスタンクェート レジスタ18へ出力させる。
初の結合を最初のリターン命令としてデコードし、かつ
データ・ストア8を制御して1.最初のデータ・ストア
・アドレス(i−1)に基いてスタック1oの最初のデ
ータへアクセスさせ、ステージ1の@17を介して、最
初のデータを値S、 とじてスタンクェート レジスタ18へ出力させる。
第4マシン・サイクルの始めに、スタック・レジスタ1
8は81−1を記、厖し、スタック・ポイ/り28は(
i−2) fjr:giHlしている。ステージ1にあ
るデコーダ20は、第3サイクルに続く第4サイクルで
、再び第2の命令を第2のリターン命令が2回目に生°
じたものとしてデコードし、かつマルチプレクサ12’
t!(1mして、スタック・レジスタ18の内容S、
を第3アドレスとして−1 命令ストア6へ転送させる。それによって、第3命令が
命令ストア6から7エツチされる。ステージ2のデコー
ダ22は、I!7上のNo−OP倍信号し答して、第4
サイクルでスタック・ポインタ28に対する動作を省略
する。ステージ3にあるデコーダ75は、第4サイクル
で第2の命令を第2のりメー7命令としてデコードし、
データ・ストア8を制御して、第2のデータ・ストア・
アドレス(i−2)に基いてスタック10の第2のデー
タへアクセスさせ、第2のデータe、rtfsi−2と
してステージ1の綴19を介してスタック・レジスタ1
8へ出力させる。
8は81−1を記、厖し、スタック・ポイ/り28は(
i−2) fjr:giHlしている。ステージ1にあ
るデコーダ20は、第3サイクルに続く第4サイクルで
、再び第2の命令を第2のリターン命令が2回目に生°
じたものとしてデコードし、かつマルチプレクサ12’
t!(1mして、スタック・レジスタ18の内容S、
を第3アドレスとして−1 命令ストア6へ転送させる。それによって、第3命令が
命令ストア6から7エツチされる。ステージ2のデコー
ダ22は、I!7上のNo−OP倍信号し答して、第4
サイクルでスタック・ポインタ28に対する動作を省略
する。ステージ3にあるデコーダ75は、第4サイクル
で第2の命令を第2のりメー7命令としてデコードし、
データ・ストア8を制御して、第2のデータ・ストア・
アドレス(i−2)に基いてスタック10の第2のデー
タへアクセスさせ、第2のデータe、rtfsi−2と
してステージ1の綴19を介してスタック・レジスタ1
8へ出力させる。
第5マシ/・サイクルで、スタック・レジスタ18は5
i−2を記はしており、スタック・ボイ/り28は(i
−2)を記1している。ステージ1にあるデコーダ20
は、第4サイクルに続く第5サイクルで、第3の岐やを
最初の次の命令としてデコードし、マルチプレクサ12
を制御して、最初の次の命令アドレスを命令ストア6へ
入力さぜる。それによって、第4自令が命令ストア6か
ら7エツチされる。ステージ2にるるデコーダ22は、
第5サイクルで第3命令を最初の次の命令としてデコー
ドし、第4図のデータ・ストア・アドレス発生器24を
制御して、最初の次のデータ・亥ドア・アドレスをステ
ージ3にあるデータ・ストア・アドレス・レジスタ3o
へ出方させる。
i−2を記はしており、スタック・ボイ/り28は(i
−2)を記1している。ステージ1にあるデコーダ20
は、第4サイクルに続く第5サイクルで、第3の岐やを
最初の次の命令としてデコードし、マルチプレクサ12
を制御して、最初の次の命令アドレスを命令ストア6へ
入力さぜる。それによって、第4自令が命令ストア6か
ら7エツチされる。ステージ2にるるデコーダ22は、
第5サイクルで第3命令を最初の次の命令としてデコー
ドし、第4図のデータ・ストア・アドレス発生器24を
制御して、最初の次のデータ・亥ドア・アドレスをステ
ージ3にあるデータ・ストア・アドレス・レジスタ3o
へ出方させる。
ステージ3にるる動作コード・デコーダ75は、@7に
るるNo−OPN号に応答して、第5サイクルでデータ
・ストア8に対する動作を省略する。
るるNo−OPN号に応答して、第5サイクルでデータ
・ストア8に対する動作を省略する。
この例では、スタック・レジスj1181iびスタック
・ポイ/り28にある内容は、@6マシノ・サイクルで
変化しない。ステージ1にるルテコーダ20は、第5サ
イクルに続く第6サイクルで、第4のに+を第2の次の
結合としてデコードし、マルチプレクサ12をI[I?
1lllして、第2の次の命舎アドレスヲ妨令ストア6
へ人力させる。それによって、第5の命令がm%ストア
6から7エツチされる。ステージ2にるるデコーダ22
は、第6サイクルで、第4の命令を第2の次の結合とし
てデコードし、データ・ス□ドア・アドレス’tQ生器
2aを制御して、@2の次のデータ・ストア・アドレス
を、ステージ3にるるデータ・ストア・アドレス・レジ
スタ50へ出力させる。ステージ3にろる動作コード・
デコーダ75は、第6サイクルで、第3の命令又は最初
の次の命令をデコードし、デーp・ストア8を制御して
、最初の次のデータ・ストア・アドレスに基いて第3の
データにアクセスさせる。このようにして、2つの連続
したリターン命令に対する針金ストア・アクセシノグ動
作は、時間的に拡張される。
・ポイ/り28にある内容は、@6マシノ・サイクルで
変化しない。ステージ1にるルテコーダ20は、第5サ
イクルに続く第6サイクルで、第4のに+を第2の次の
結合としてデコードし、マルチプレクサ12をI[I?
1lllして、第2の次の命舎アドレスヲ妨令ストア6
へ人力させる。それによって、第5の命令がm%ストア
6から7エツチされる。ステージ2にるるデコーダ22
は、第6サイクルで、第4の命令を第2の次の結合とし
てデコードし、データ・ス□ドア・アドレス’tQ生器
2aを制御して、@2の次のデータ・ストア・アドレス
を、ステージ3にるるデータ・ストア・アドレス・レジ
スタ50へ出力させる。ステージ3にろる動作コード・
デコーダ75は、第6サイクルで、第3の命令又は最初
の次の命令をデコードし、デーp・ストア8を制御して
、最初の次のデータ・ストア・アドレスに基いて第3の
データにアクセスさせる。このようにして、2つの連続
したリターン命令に対する針金ストア・アクセシノグ動
作は、時間的に拡張される。
ここで理解すべきは、前述のNo−UP信号を発生する
には、a令シーケンシノグ・デコーダ20ではなく、デ
ータ・ストア・アクセシ/グ・デコーダ22で発生させ
てよいことである。
には、a令シーケンシノグ・デコーダ20ではなく、デ
ータ・ストア・アクセシ/グ・デコーダ22で発生させ
てよいことである。
これまで説明した、2個の連続したリターし命令に対す
る呻作は、自動的に任意数の連続したリター/に適合さ
せることができる。もし2Nf固の連続したリターン命
令が存在すれば、それらは3m回のマシン・サイクルで
実行され、3番目ごとのサイクルは、前述したようにハ
ードウェアによってNo−OPfi号を自動的に発生さ
れる。もしく2N+1“)個の連続したリターン命令が
存在すれば、それらは(3N+1)回のマシ7・サイク
ルで実行される。ここでNは、ハードウェアによって実
行されるNo−OP倍信号数でるり、(2N+1)は、
リターン命令の数である。Nはゼロ、又は任意の正の整
数でるるとする。
る呻作は、自動的に任意数の連続したリター/に適合さ
せることができる。もし2Nf固の連続したリターン命
令が存在すれば、それらは3m回のマシン・サイクルで
実行され、3番目ごとのサイクルは、前述したようにハ
ードウェアによってNo−OPfi号を自動的に発生さ
れる。もしく2N+1“)個の連続したリターン命令が
存在すれば、それらは(3N+1)回のマシ7・サイク
ルで実行される。ここでNは、ハードウェアによって実
行されるNo−OP倍信号数でるり、(2N+1)は、
リターン命令の数である。Nはゼロ、又は任意の正の整
数でるるとする。
マスクされない割込みが愛敬られると、スタック10が
影響を受ける。それは、割込まれたプログラムの適当な
リター7・アドレスが、1だけ増す口されたスタック・
ポイ/りを使用して(sp=SP+1)、データ・スト
ア8へアドレスとして瞥込まれる前に、スタック・レジ
スタ18へ入れられるからでるる。割込みは、命令スト
ア6の適当な割込エントリイ・アドレスへブランチさせ
る。
影響を受ける。それは、割込まれたプログラムの適当な
リター7・アドレスが、1だけ増す口されたスタック・
ポイ/りを使用して(sp=SP+1)、データ・スト
ア8へアドレスとして瞥込まれる前に、スタック・レジ
スタ18へ入れられるからでるる。割込みは、命令スト
ア6の適当な割込エントリイ・アドレスへブランチさせ
る。
2、アドレス発生ステージ(ステージ2)第41図のス
テージ2は、酪令実行の第2位相を実行する。ステージ
2の主な機能は、データ・ストア8の動作のために実行
アドレスを計算することでるる。データ・ストア8の動
作は宿舎実行の第3位相で起る。ステージ2で実行され
る他の機能は次のとおシでるる。
テージ2は、酪令実行の第2位相を実行する。ステージ
2の主な機能は、データ・ストア8の動作のために実行
アドレスを計算することでるる。データ・ストア8の動
作は宿舎実行の第3位相で起る。ステージ2で実行され
る他の機能は次のとおシでるる。
(1) インデックス・レジスタの演算(2) イ
ンデックス・レジスタのテスト(3)保存レジスタの計
算 (4) インデックス・レジスタ/ストレージ・イン
ターフェイス(5) スタック・ポインタの更新 第4図はステージ2の機能的流れ図を示す。このステー
ジに示される全ての制御レジスタ(スタック・ポインタ
28を除く〕は、16ビントの長さを有する。スタック
・ポイ/り28は6ピントの長さである。次の表は、こ
れらの制御レジスタをリストしたものでろる。
ンデックス・レジスタのテスト(3)保存レジスタの計
算 (4) インデックス・レジスタ/ストレージ・イン
ターフェイス(5) スタック・ポインタの更新 第4図はステージ2の機能的流れ図を示す。このステー
ジに示される全ての制御レジスタ(スタック・ポインタ
28を除く〕は、16ビントの長さを有する。スタック
・ポイ/り28は6ピントの長さである。次の表は、こ
れらの制御レジスタをリストしたものでろる。
インデックス・レジスタ(Xl、X2)44ペース・レ
ジスタ46 マスク・レジスタ48 増加レジスタ(w 1 、w 2 ) 4q転送レジス
タ50 スタック・ポインタ28 加算器52は、16ビントの、「2の補数」加算器でめ
る。/70算器52は、「より大きい」、「より小さい
」又は「等しい」を判別する論理機能を有する。0口算
器52は、減算のために右方へ入力された直の補数を形
成することができる。LSBへのキャリイに対して別個
の制御が実行される。
ジスタ46 マスク・レジスタ48 増加レジスタ(w 1 、w 2 ) 4q転送レジス
タ50 スタック・ポインタ28 加算器52は、16ビントの、「2の補数」加算器でめ
る。/70算器52は、「より大きい」、「より小さい
」又は「等しい」を判別する論理機能を有する。0口算
器52は、減算のために右方へ入力された直の補数を形
成することができる。LSBへのキャリイに対して別個
の制御が実行される。
これによって、0口算器は、「2の補数」演算を実けし
、又は1ピント・オフセンH−挿入することができる。
、又は1ピント・オフセンH−挿入することができる。
1ピント・オフセントは、比較機能において、「より小
さいか等しい」機能を作るため使用される。0口算器5
2′ も16ビントの「2の補数」加算器である。
さいか等しい」機能を作るため使用される。0口算器5
2′ も16ビントの「2の補数」加算器である。
アドレス発生論理へのインターフェイスは次のとおりで
ある。
ある。
(1) 結合における16ビントのオベラ/ドraJ
フィールド (2)保存レジスタ38に対する16ピント出力(3)
ステージ3に対する実行アドレス出力(16ビツト
〕 (4) ステージ3に対する16ビントの入力バス及
び出力バス (5) 制御のための動作コード (6) インデックス比較フラグ(状況レジスタに富
まれる) (7) ソフトウェア・フラグ(状況レジスター言ま
れる〕 線26上に有効なデータ・ストア・アドレスを発生する
には、アドレス指定の4つの方法の1つを夷目しなけれ
ばならない。4つの方法は前に説明した。全ての実効ア
ドレスは、緒令夷酊の位相2の終りに利用可能となる。
フィールド (2)保存レジスタ38に対する16ピント出力(3)
ステージ3に対する実行アドレス出力(16ビツト
〕 (4) ステージ3に対する16ビントの入力バス及
び出力バス (5) 制御のための動作コード (6) インデックス比較フラグ(状況レジスタに富
まれる) (7) ソフトウェア・フラグ(状況レジスター言ま
れる〕 線26上に有効なデータ・ストア・アドレスを発生する
には、アドレス指定の4つの方法の1つを夷目しなけれ
ばならない。4つの方法は前に説明した。全ての実効ア
ドレスは、緒令夷酊の位相2の終りに利用可能となる。
実効アトtレスは、位相3で使用するため、ステージ3
へ送うれ−る。
へ送うれ−る。
インデックス・レジスタの動作
第4図に示される機能の残りの部分は、他のアドレス発
生演算機能を実行するために使用される。
生演算機能を実行するために使用される。
インデックス・レジスタの演算
この機能は、0口算器52、インデックス・レジスタ〔
Xl、X2〕44、増’10 ’ シスタ(Wl、W2
)49を使用し、リロ算器52をインデックス・レジス
タヘフイードバンクさせることによって実行される。実
けされることのできる@能は次のとおりである。X1=
Xi+a、X1=Xi+Wj、X1=Xi−Wj、i=
1.2及びj=1.2゜これらの動作は面会実行の位相
2で実ひされる。
Xl、X2〕44、増’10 ’ シスタ(Wl、W2
)49を使用し、リロ算器52をインデックス・レジス
タヘフイードバンクさせることによって実行される。実
けされることのできる@能は次のとおりである。X1=
Xi+a、X1=Xi+Wj、X1=Xi−Wj、i=
1.2及びj=1.2゜これらの動作は面会実行の位相
2で実ひされる。
インデックス・レジスタのテスト
加算器52の結果によってインデックス比較フラグ(I
CF)が設定され、このフラグは、条件付きブランチ命
令rBIcFJによって使用される。υΩ算器52は、
適当なインデックス・レジスタから即1直(又は適当な
増加レジスタの内容)を減算することによって、インデ
ックス・レジスタの内容に影響を与えることなく、選択
されたインデックス・レジスタと、オペランドraJ又
は選択された増加レジスタとを比較する。指定されたテ
ストの結果に対して、フラグがセントされる。
CF)が設定され、このフラグは、条件付きブランチ命
令rBIcFJによって使用される。υΩ算器52は、
適当なインデックス・レジスタから即1直(又は適当な
増加レジスタの内容)を減算することによって、インデ
ックス・レジスタの内容に影響を与えることなく、選択
されたインデックス・レジスタと、オペランドraJ又
は選択された増加レジスタとを比較する。指定されたテ
ストの結果に対して、フラグがセントされる。
このテストは、分合実行の位相2で起り、位相2の終り
に、比較フラグがセントされる。この比較の結果に基い
てブランチするBICFa令は、もし次の命令としてコ
ード「ヒされれば有効でるる。
に、比較フラグがセントされる。この比較の結果に基い
てブランチするBICFa令は、もし次の命令としてコ
ード「ヒされれば有効でるる。
保存レジスタの計算
0口算器52からインデックス・レジスタへのフィード
バック通路は、保存レジスタ38に対しても利用0Tf
TI2でろる。保存レジスタは位相2の終りにロードさ
れる。この@能はA S V 砧今によって実行される
。
バック通路は、保存レジスタ38に対しても利用0Tf
TI2でろる。保存レジスタは位相2の終りにロードさ
れる。この@能はA S V 砧今によって実行される
。
インデックス・レジスタとデータ・ストアとのインター
フェイスは、直接又は転送レジスタ5゜を介して行われ
る。転送レジスタとのインターフェイスは、所望ならば
、データ孕一時的にそこに保存させること全可能にし、
またそこからデータをロードすることをiにする。デー
タ・ストア8が読出されると、その内容は、位相6の終
りに、適当なインデックス・レジスタへランチサレル。
フェイスは、直接又は転送レジスタ5゜を介して行われ
る。転送レジスタとのインターフェイスは、所望ならば
、データ孕一時的にそこに保存させること全可能にし、
またそこからデータをロードすることをiにする。デー
タ・ストア8が読出されると、その内容は、位相6の終
りに、適当なインデックス・レジスタへランチサレル。
データ・ストアへの書込みは位相3で起る。
転送レジスタ
転送レジスタ50は、データ・ストア8とステージ2に
おける全ての制御レジスタとの間で血路を形成するため
に使用される。この通路は双方向性であり、データは転
送レジスタを介してデータ・ストアから任意の制御レジ
スタへ、また制御レジスタからデータ・ストアへ転送さ
れることができる。
おける全ての制御レジスタとの間で血路を形成するため
に使用される。この通路は双方向性であり、データは転
送レジスタを介してデータ・ストアから任意の制御レジ
スタへ、また制御レジスタからデータ・ストアへ転送さ
れることができる。
更に、転送レジスタは、データ・ストア8と全ての制御
レジスタとの間に設けられたデータの一時的保存場所と
して使用される。データは11品令の位相2で、転送レ
ジスタから宛先レジスタヘロードされる。IONレジス
タから転送レジスタヘデータを転送する場合、転送が位
相2で起るように、有効な直接通路が転送レジスタに設
けられる。
レジスタとの間に設けられたデータの一時的保存場所と
して使用される。データは11品令の位相2で、転送レ
ジスタから宛先レジスタヘロードされる。IONレジス
タから転送レジスタヘデータを転送する場合、転送が位
相2で起るように、有効な直接通路が転送レジスタに設
けられる。
データ・ストア8の読出しは、位相3の終りに、現酪令
の動作コードによって指定されたレジスタへ、データ・
ストアの内容を転送させる。転送レジスタからデータ・
ストアへの瞥込みは、位相3で起る。
の動作コードによって指定されたレジスタへ、データ・
ストアの内容を転送させる。転送レジスタからデータ・
ストアへの瞥込みは、位相3で起る。
成る種の命令は、その実行の位相4でオペランドraf
t必要とする。これらの命令のfcヤに、ステージ2は
、位相2の終りに、オペランドraJを実効アドレス観
へ送らねばならない。この1直は、位相3でステージ3
を介して通され、命令の動作コードによって指定された
ところに従って、ステージ4の中の適当なレジスタへ送
られる。それは必要に応じて位相4で使用することがで
きる。
t必要とする。これらの命令のfcヤに、ステージ2は
、位相2の終りに、オペランドraJを実効アドレス観
へ送らねばならない。この1直は、位相3でステージ3
を介して通され、命令の動作コードによって指定された
ところに従って、ステージ4の中の適当なレジスタへ送
られる。それは必要に応じて位相4で使用することがで
きる。
第5図のデータ・ストア・ステージ3は、データ・スト
ア8、データ・ストア・アドレス・レジスタ30、人力
選択マルチプレクサ(MUX)54、を含む。ステージ
3は、R8Pのためにデータの配置反びクエンチ111
フ作を実けする。データ・ストア8は16ビント・ワー
ド+V用し、655361固のワードまでアドレスoT
[である。16ピツトのデータ・ストア・アドレス・レ
ジスタ30は、像選択論理と共に、ステージ2によって
発生された実効アドレスと、工10論理ステージ34に
よって与えられたアドレスとを選択するために設けられ
る。像選択は動作コード・デコーダ75によって実行さ
れる。動作コード・デコーダ75は、@7上の動作コー
ド入力に応答して、マルチプレクサ54文びデータ・ス
トア・アドレス・レジスタ50を制御する。データ・ス
トア8への瞥込動作については、データ源は(1)ステ
ージ4、(2)ステージ2、(3)ステージ1のスタッ
ク・レジスタ18、、(4)I10論理ステージ34か
ら選択される。
ア8、データ・ストア・アドレス・レジスタ30、人力
選択マルチプレクサ(MUX)54、を含む。ステージ
3は、R8Pのためにデータの配置反びクエンチ111
フ作を実けする。データ・ストア8は16ビント・ワー
ド+V用し、655361固のワードまでアドレスoT
[である。16ピツトのデータ・ストア・アドレス・レ
ジスタ30は、像選択論理と共に、ステージ2によって
発生された実効アドレスと、工10論理ステージ34に
よって与えられたアドレスとを選択するために設けられ
る。像選択は動作コード・デコーダ75によって実行さ
れる。動作コード・デコーダ75は、@7上の動作コー
ド入力に応答して、マルチプレクサ54文びデータ・ス
トア・アドレス・レジスタ50を制御する。データ・ス
トア8への瞥込動作については、データ源は(1)ステ
ージ4、(2)ステージ2、(3)ステージ1のスタッ
ク・レジスタ18、、(4)I10論理ステージ34か
ら選択される。
データ・スートア8の出力(線56及び17)は、位相
3の完了時に、他の4つのステージで使用するため、現
砧令の動作コードによって指定された適当なレジスタへ
導かれる。データ・ストアへの書込動作は、ステージ2
で発生され几実効アドレスを使用して、訪令天行の位相
3で起る。記はされるデータは、位相2の終りに源レジ
スタで利用0T能なデータでるる。
3の完了時に、他の4つのステージで使用するため、現
砧令の動作コードによって指定された適当なレジスタへ
導かれる。データ・ストアへの書込動作は、ステージ2
で発生され几実効アドレスを使用して、訪令天行の位相
3で起る。記はされるデータは、位相2の終りに源レジ
スタで利用0T能なデータでるる。
データ・フェッチ動作は合金実行の位相3で実行され、
データは現ff、Q、の動作コードによって指定された
レジスタに置かれる。データ・ストア8カラステージ4
ヘデータをロードする場合、データは位相3の終りに適
当なレジスタに置かれ、次いで位相4で、加算器を通さ
れ(条件コードがセントされる〕、位相4の終りに宛先
レジスタへ書込まれる。
データは現ff、Q、の動作コードによって指定された
レジスタに置かれる。データ・ストア8カラステージ4
ヘデータをロードする場合、データは位相3の終りに適
当なレジスタに置かれ、次いで位相4で、加算器を通さ
れ(条件コードがセントされる〕、位相4の終りに宛先
レジスタへ書込まれる。
I10論理ステージ34によるデータ・ストア8の使用
は、サイクル・スチール動作によって行われる。ステー
ジ34がデータ・ストア動作を要求する時、バイブライ
ノが停thgれ、その間、データ・ストア8のサイクル
がステージ34によって使用される。I10動作につい
て1つのサイクル・スチールが終ると、パイブライ/が
再開される。命令の首尾一貫し友実けを維持する九め、
パイプライ/の全てのステージが停止されねばならない
。。
は、サイクル・スチール動作によって行われる。ステー
ジ34がデータ・ストア動作を要求する時、バイブライ
ノが停thgれ、その間、データ・ストア8のサイクル
がステージ34によって使用される。I10動作につい
て1つのサイクル・スチールが終ると、パイブライ/が
再開される。命令の首尾一貫し友実けを維持する九め、
パイプライ/の全てのステージが停止されねばならない
。。
6L令r A Z Z、” a (I ) J (即
+1avzへonえ、その伯果をzに置け)のように、
位相4動作(7)7ta6にステージ4でオペラッドr
=Jk必要とする砧舎については、データ・ストア・ア
ドレス・レジスタ60からステージ4の適当なレジスタ
へ直路が設けられる。この通路は、ステージ2によって
天動アドレス線上に置かれ几オペランド「&J’t、ス
テージ4に対し入力データとして利用0T能にする。こ
れがoT能となるのは、位相4でオペランドを必要とす
る動作は、その実行中データ・ストア8ヲ1吏用しない
からでるる。
+1avzへonえ、その伯果をzに置け)のように、
位相4動作(7)7ta6にステージ4でオペラッドr
=Jk必要とする砧舎については、データ・ストア・ア
ドレス・レジスタ60からステージ4の適当なレジスタ
へ直路が設けられる。この通路は、ステージ2によって
天動アドレス線上に置かれ几オペランド「&J’t、ス
テージ4に対し入力データとして利用0T能にする。こ
れがoT能となるのは、位相4でオペランドを必要とす
る動作は、その実行中データ・ストア8ヲ1吏用しない
からでるる。
これまで説明したリアルタイム信号プロセンサ・チップ
のa令パイプライン・アーキテクチャ−は、データ・ス
トアの区分された領域に置かれている64レベルのアド
レス・スタックへアクセスするため、ブランチ及びリタ
ーン動作の間に、地中されない命令位相を有利に利用す
る。アドレス・スタックは、実際には岐舎フエンチ・ス
テージよりもいくつかの命令位相を超えて置かれている
が、アドレス・スタックの内容は、ステージ1に置かれ
たスタック・レジスタの助け?かりて、即時に利用可能
でめる。眺に、プロセンサ・チップ上では、アドレス・
スタックによって余分のチップ領域や電力が消費される
ことはない。本発明を利用しなければ、アドレス・スタ
ックを命令フェッチ・ステージで直ちに利用するため、
それをプロセッサ・チップ上に設けねばならない。更に
、データ・ストアにおけるアドレス・スタックの区分サ
イズは小さくすることができ、節約された領域は他のデ
ータ装置に使用することができる。
のa令パイプライン・アーキテクチャ−は、データ・ス
トアの区分された領域に置かれている64レベルのアド
レス・スタックへアクセスするため、ブランチ及びリタ
ーン動作の間に、地中されない命令位相を有利に利用す
る。アドレス・スタックは、実際には岐舎フエンチ・ス
テージよりもいくつかの命令位相を超えて置かれている
が、アドレス・スタックの内容は、ステージ1に置かれ
たスタック・レジスタの助け?かりて、即時に利用可能
でめる。眺に、プロセンサ・チップ上では、アドレス・
スタックによって余分のチップ領域や電力が消費される
ことはない。本発明を利用しなければ、アドレス・スタ
ックを命令フェッチ・ステージで直ちに利用するため、
それをプロセッサ・チップ上に設けねばならない。更に
、データ・ストアにおけるアドレス・スタックの区分サ
イズは小さくすることができ、節約された領域は他のデ
ータ装置に使用することができる。
第1図はリアルタイム信号プロセッサの機能的ブロック
図、第2図は曲令パイプライン動作を示す図、第3図は
命令シーケ/シノグ兼フエンチ・ステージのl!!II
的ブロック図、第4図はアドレス発生ステージの@能的
ブロック図、第5図はデータ・ストア・ステージの機能
的ブロック図でろる。 6・・・・ftJeストア、8・・・・データ・ストア
、10・・・・翁令アドレス・スタック、12・・・・
命令アドレス・マルチプレクサ、14・・・・命令アド
レス増7711B、16・・・・シーケンシャル・アド
レス・レジスタ、18・・・・スタック・レジスタ、2
o・・・・砧令シーケ/シング・デコーダ、22・・・
・データ・ストア・アクセシング・デコーダ、24−・
・・データ・ストア・アドレス発生5% 2s・・・・
スタック・ポイ/り、60・・・・データ・ストア・ア
ドレス・レジスタ(υ5AR)、54・・・・入力選択
マルチプレクサ、75・・・・動作コード・デコーダ。 第1頁の続き 0発 明 者 アブラハム・ペイレド アメリカ合衆国カリフォルニア 州すンノゼ・レニー・コート10 27番地 0発 明 者 フレデリック・エヌ・リスアメリカ合衆
国ニューヨーク州 モヒガン・レーク・モホーク・ ロード1466番地 0発 明 者 マイケル・アール・コスグローブ アメリカ合衆国バージニア州ハ イマーケット・アルベイ・ドラ イブ2626番地
図、第2図は曲令パイプライン動作を示す図、第3図は
命令シーケ/シノグ兼フエンチ・ステージのl!!II
的ブロック図、第4図はアドレス発生ステージの@能的
ブロック図、第5図はデータ・ストア・ステージの機能
的ブロック図でろる。 6・・・・ftJeストア、8・・・・データ・ストア
、10・・・・翁令アドレス・スタック、12・・・・
命令アドレス・マルチプレクサ、14・・・・命令アド
レス増7711B、16・・・・シーケンシャル・アド
レス・レジスタ、18・・・・スタック・レジスタ、2
o・・・・砧令シーケ/シング・デコーダ、22・・・
・データ・ストア・アクセシング・デコーダ、24−・
・・データ・ストア・アドレス発生5% 2s・・・・
スタック・ポイ/り、60・・・・データ・ストア・ア
ドレス・レジスタ(υ5AR)、54・・・・入力選択
マルチプレクサ、75・・・・動作コード・デコーダ。 第1頁の続き 0発 明 者 アブラハム・ペイレド アメリカ合衆国カリフォルニア 州すンノゼ・レニー・コート10 27番地 0発 明 者 フレデリック・エヌ・リスアメリカ合衆
国ニューヨーク州 モヒガン・レーク・モホーク・ ロード1466番地 0発 明 者 マイケル・アール・コスグローブ アメリカ合衆国バージニア州ハ イマーケット・アルベイ・ドラ イブ2626番地
Claims (2)
- (1) 命令を記憶する命令記憶装置と、データを記
憶するデータ記憶装置と、命令の7エツチ及びシーケン
スを制御するkめの第1ステージ、上記データ記障装置
のアドレス?発生するための第2ステージ、上記データ
記は装置にアクセスするための@3ステージを含むパイ
プライフ式命令機購とr具備し、上記ステージの各々は
動作コード及びオペラ/ドtそれぞれ含む複数の連続し
た命令を実行するため重複モードで動作し、上記命令記
憶装置から命令がアダセスさ扛て上記データ記厖装置か
らアクセスされたデータの上で命令が実行されるような
貯蔵プログラム型データ・プロセッサにおいて、上記命
令記憶装置の命令アドレスを記憶するため上記データ記
厖装蓋の区分された領域に設けられた命令アドレス・ス
タックと、上記第1ステージに設けられたマルチプレク
サであって、上記命令記憶装置のアドレス人力へ接続さ
れた出力を有し、かつ上記命令記憶装置へ命令アドレス
を入力するための複数の入力を有するマルチプレクサと
、上記命令記憶装置における順次の記憶ロケーショ/の
アドレスを記憶するシーケンシャル・アドレス・レジス
タと、上記第1ステーシニ設けられたアドレス増加器で
あって、上記命令アドレスを増加させるため、上記マル
チプレクサの出力へ接続された入力を育し、かつ上記シ
ーケンシャル・アドレス・レジスタを介して上記マルチ
プレクサの人力へ接続された出力を有するアドレス増j
JO器と、上記第1ステージに設けられたレジスタでろ
って、上記アドレス増vD器又は上記命令アドレス・ス
タックから出力された命令アドレスを記憶するため、上
記シーケンシャル・アドレス・レジスタの出力又は上記
命令アドレス・スタックからの出力へ選択的に接続され
る入力を有し、かつ上記マルチプレクサの入力又は上記
命令アドレス・スタックの入力へ選択的に接続される出
力を有するスタック・レジスタと、上記I@1ステージ
に設けられたデコーダであって、上記命令記憶装置の出
力へ接続された入力、及び上記マルチプレクサへ接続さ
れた出力を有し、かつ上記命令記憶装置からアクセスさ
れた命令の動作コードに応答して、上記命令記憶装置の
アドレス入力が上記マルチプレクサを介して上記シーケ
ンシャル・アドレス・レジスタの出力又は上記スタック
・レジスタの出力へ選択的に接続されるように制御する
第1のデコーダと、上記第2ステージに設けられたテコ
−タテあッて、上記命令記憶装置からアクセスされfc
敵令の動作コードを解読して上記データ記憶装置へのア
クセスを制御するため、上記命令記憶装置の出力へ接続
された入力を有する第2のデコーダと、上記第2ステー
ジに設けられ迄アドレス発生器であって、上記命令記憶
装置の出力へ接、続された入力、及び上記第2デコーダ
へ接続された入力を有し、該第2デコーダにおける動作
コードの解読に応答して上記命令記憶装置からアクセス
された命令のオペランドから上記データ記憶装置のアド
レスを発生するアドレス発生器と、上記第2ステージに
設けられたポインタ装置であって、上記第2デコーダへ
接続された制御入力を有し、上記データ記憶装置におけ
る記憶ロケーションのアドレスを増加又は減少させて、
上記命令アドレス・スタックに最後に記憶され友命令ア
ドレスの記憶ロケーショ/を指定するポインタ装置と、
上記第3ステージに設けられたレジスタであって、上記
データ記憶装置の記憶ロケーショ/にアクセスするため
、上記アドレス発生器の出力及び上記ボイ/り装置の出
力へ接続された入力を有し、かつ上記データ記憶装置の
アドレス入力へ接続された出力を有するアドレス・レジ
スタと、上記第3ステージに設けられたデコーダであっ
て、上記命令記憶装置の出力へ接続された入力、及び上
記データ記憶装置へ接続された制御出力を胃し、上記命
令記憶装置からアクセスされたブランチ命令の動作コー
ドにし答して、上記スタック・レジスタの内容が上記デ
ータ記憶装置のデータ入力へ入力されるのをIIJ 1
111する第3のデコーダとを具備し、上記マルチプレ
クサは、上記第1デコーダにおける動作コードの解読に
応答して、上記命令記憶装置からアクセスされた命令の
オペランドをブランチ・アドレスとして上記命令記憶装
置へ転送する。 ため、入力の1つを上記命令記憶装置の出力へ接続され
、上記第1デコーダは上記ブランチ命令の動作コードに
ら答して、該ブランチ命令のオペラッドが上記マルチプ
レクサを介して上記命令記憶装置のアドレス入力へ転送
されるのを制御し、かつ上記シーケンシャル・アドレス
・レジスタにあルアトレスが上記スタック・レジスタヘ
ロートサれるのを制御し、上記第2デコーダは、上記ブ
ランチ命令の動作コードに応答して、上記スタック・レ
ジスタの内容が上記ブランチ命令の動作コードによって
指定されたブランチ命令からのリター7・アドレスとし
て上記データ記憶装置へ記憶されるようにするため、上
記ボイ/り装置の増加又は減少を制御し、かつ上記ポイ
ンタ装置の内容が、上記アドレス・レジスタへ、上記命
令アドレス・スタックの記憶ロケ−ショアのアドレスと
して出力されるのを制御することを特徴とする命令ブラ
ンチl!!L - (2) 命令を記憶する命令記憶装置と、データを記
憶するデータ記憶装置と、命令のフェッチ及びシーケ/
スを制御するための第1ステージ、上記データ記憶装置
のアドレスを発生するための第2ステージ、上記データ
記憶装置にアクセスするための第3ステージを含むパイ
プライノ式命令@溝とを具備し、上記ステージの各々悴
動作コード及びオペラッドをそれぞれ含む複数の連続し
友命令を実行するため重複モードで動作し、上記命令記
憶装置から命令がアクセスされて上記データ記憶装置か
らアクセスされ友データの上で命令が実行されるような
貯蔵プログラム型データ・プロセッサにおいて、上記命
令記憶装置の命令アドレスを記憶する友め上記データ記
憶装置の区分された領域に設けられた命令アドレス・ス
タックと、上記第1ステージに設けられたマルチプレク
サであって、上記命令記憶装置のアドレス入力へ接続さ
れた出力を有し、かつ上記命令記憶装置へ命令アドレス
を入力するための複数の入力を有するマルチプレフサと
、上記命令記憶装置における順次の記憶ロケーションの
アドレスを記憶するシーケンシャル・アドレス・レジス
タと、上記第1ステージに設けられたアドレス増vll
l器でろって、上記命令アドレスを増加させるため、上
記マルチプレクサの出力へ接続された人力を育し、かつ
上記シーケンシャル・アドレス・レジスタを介して上記
マルチプレクサの入力へ接続され洗出力を有するアドレ
ス増bO器と、上記第1ステージに設けら°れ几レジス
タであって、上記アドレス増加器又は上記命令アドレス
・スタックから出力された命令アドレスを記憶するため
、上記シーケンシャル・アドレス・レジスタの出力又は
上記命令アドレス・スタックからの出力へ選択的に接続
される人力ヲ宵し、かつ上記マルチプレクサの入力又は
上記命令アドレス・スタイクの入力へ選択的に接続され
る出力を有するスタック・レジスタと、上記第1ステー
ジに設けられ定デコーダであって、上記マルチプレクサ
の出力へ接続された入力を育し、上記命令記憶装置から
アクセスされた命令の動作コードに応答して、上記命令
記憶装置のアドレス入力が上記マルチプレクサを介して
上記シーケンシャル・アドレス・レジスタの出力又は上
記マルチプレクサの人力へ選択的に接続されるようにi
+御する第1のデコーダと、上記第2ステージに設けら
れたデコーダであって、上記命令記憶装置からアクセス
された命令の動作コードを解読して上記データ配置装置
へのアクセスを制御するため、上記命令記憶装置の出力
へ接続された入力を有する第2のデコーダと、上記第2
ステージに設けられたアドレス発生器であって、上記命
令記憶装置の出力へ接続され友人力、及び上記第2デコ
ーダへ接続された入力を有し、該第2デコーダにおける
動作コードの解読に応答して上記データ配置装置のアド
レスを発生するアドレス発生器と、上記第2ステージに
設けられたポイ/り装置であって、上記第2デコーダへ
接続され九制御入力を有し、上記データ配置装置におけ
る記階°ロケーションのアドレスを増加又は減少させて
、上記命令アドレス・スタックに最後に記憶され友命令
アドレスの記憶ロケーショノを指定するボイノタ装置と
、上記第3ステージに設けられたレジスタであって、上
記データ記憶装置の記瞳ロケーショノにアクセスする之
め、上記アドレス発生器の出力及び上記ポイ7タ装置の
出力へ接続され友人力を宵し、かつ上記データ配置装置
のアドレス入力へ接続された出力を有するアドレス・レ
ジスタと、上記第3ステージに設けられ友デコーダであ
って、上記命令記憶装置の出力へ接続され友人力、及び
上記データ配置装置へ接続された制御出力を有し、上記
命令記憶装置からアクセスされたブランチ命令の動作コ
ードに応答して、上記スタック・レジスタの内容が上記
データ配置装置のデータ入力へ入力されるのを制御する
第3のデコーダと、命令のシーケンスを変更するブラン
チ・アドレスを記憶するブランチ・アドレス・レジスタ
と、を具備し、上記マルチプレクサは、上記第1デコー
ダにおける動作コードの解読に応答して、上記ブランチ
・アドレス・レジスタの内容を上記命令記憶装置へ転送
するため、入力の1つを上記ブランチ・アドレス・レジ
スタへ接続され、上記第1デコーダは、上記命令記憶装
置からアクセスされたブランチ命令の動作コードに応答
して、上記ブランチ・アドレス・レジスタの内容が上記
マルチプレクサを介して上記命令記憶装置のアドレス入
力へ転送されるのを制御し、かつ上記シーケンシャル・
アドレス・レジスタにあるアドレスが上記スタック・レ
ジスタヘロードされるのを制御し、上記第2デコーダは
、上記ブランチ命令の動作コードに応答して、上記、ス
タック・レジスタの内容が上記ブランチ命令の動作コー
ドによって指定されたブランチ動作からのリターンテア
ドレスとして上記データ配置装置へ記憶されるようにす
る友め、上記ボイ7タ装置の増加又は減少を制(2)し
、かつ上記ボイ7タ装置の内容が、上記アドレス・レジ
スタへ、上記命令アドレス・スタックの記憶ロケーショ
、7のアドレスとして出力されるのを制御することを特
徴とする命令ブランチ!!!111f。
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 | 1981-06-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS585847A true JPS585847A (ja) | 1983-01-13 |
JPS6058490B2 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)
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 |
US4722052A (en) * | 1984-04-02 | 1988-01-26 | Sperry Corporation | Multiple unit adapter |
US4674032A (en) * | 1984-04-02 | 1987-06-16 | Unisys Corporation | High-performance pipelined stack with over-write protection |
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 | ソニー株式会社 | マイクロコンピユ−タ |
US4794517A (en) * | 1985-04-15 | 1988-12-27 | International Business Machines Corporation | Three phased pipelined signal processor |
CA1250667A (en) * | 1985-04-15 | 1989-02-28 | Larry D. Larsen | Branch control in a three phase 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 | プロセッサの処理方法 |
JP3288372B2 (ja) * | 1990-06-11 | 2002-06-04 | クレイ、リサーチ、インコーポレーテッド | 命令スケジューリング最適化方法 |
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)
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 |
-
1981
- 1981-06-30 US US06/280,417 patent/US4399507A/en not_active Expired - Lifetime
-
1982
- 1982-04-20 JP JP57064838A patent/JPS6058490B2/ja not_active Expired
- 1982-06-02 DE DE8282104814T patent/DE3279007D1/de not_active Expired
- 1982-06-02 EP EP82104814A patent/EP0068163B1/en not_active Expired
Also Published As
Publication number | Publication date |
---|---|
US4399507A (en) | 1983-08-16 |
EP0068163A2 (en) | 1983-01-05 |
DE3279007D1 (en) | 1988-10-13 |
EP0068163A3 (en) | 1986-06-25 |
JPS6058490B2 (ja) | 1985-12-20 |
EP0068163B1 (en) | 1988-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS585847A (ja) | 命令ブランチ機構 | |
KR100208889B1 (ko) | 병렬처리장치 및 병렬처리방법 | |
EP0996057B1 (en) | Data processor with an instruction unit having a cache and a ROM | |
US6272596B1 (en) | Data processor | |
JPS6313215B2 (ja) | ||
JPH0427573B2 (ja) | ||
US4539635A (en) | Pipelined digital processor arranged for conditional operation | |
US7546442B1 (en) | Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions | |
JPH03158928A (ja) | データ処理装置 | |
JPH0743648B2 (ja) | 情報処理装置 | |
JP2690406B2 (ja) | プロセッサおよびデータ処理システム | |
JP3490005B2 (ja) | 命令制御装置及びその方法 | |
JPS60178580A (ja) | 命令制御方式 | |
JPH02105937A (ja) | データ処理装置 | |
JP2861560B2 (ja) | データ処理装置 | |
JPS62501940A (ja) | マイクロプログラム・コントロ−ラの改良 | |
JPH06103064A (ja) | データ処理装置及びそのデータ処理方法 | |
JP2668987B2 (ja) | データ処理装置 | |
JP2636821B2 (ja) | 並列処理装置 | |
JPH07200406A (ja) | キャッシュシステム | |
JPH0440524A (ja) | 演算装置 | |
JP3325309B2 (ja) | サブルーチンリターン命令処理装置 | |
US20050228970A1 (en) | Processing unit with cross-coupled alus/accumulators and input data feedback structure including constant generator and bypass to reduce memory contention | |
JP3147884B2 (ja) | 記憶装置及び情報処理装置 | |
JPH07505242A (ja) | メモリ制御ユニット並びに入出力制御ユニットの動作におけるクリティカル・パスの削除 |