JPS585847A - Instruction branch mechanism - Google Patents
Instruction branch mechanismInfo
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。(57) [Summary] This bulletin contains application data before electronic filing, so abstract data is not recorded.
Description
【発明の詳細な説明】
10本発明の分野
本発明は一般的にはデータ処理システムに関し、具体的
には貯絨プログラム型データ・プロセッサの命令機構に
関する。DETAILED DESCRIPTION OF THE INVENTION 10. Field of the Invention The present invention relates generally to data processing systems and, more particularly, to the instruction mechanism of a programmable data processor.
■6本発明の背景
コンピュータ命令は実行されるべき動作の指定であり、
動作が実行される1つ又はそれ以上のアドレス、結果の
ロケーショ/を示すアドレス、シーチフス中の次の命令
のアドレスを含んでよい。■6 Background of the present invention A computer instruction is a specification of an operation to be performed,
It may include one or more addresses at which the operation is performed, an address indicating the location/location of the result, and the address of the next instruction in the sequence.
これらの指定又はアドレスは暗黙的に限定されてよい。These designations or addresses may be implicitly qualified.
即ち、次の命令ロケーションを指定する場合、マシンは
命令が順次に並んでいるものと仮定する。この場合、次
の命令は現命令のロケーションの次のアドレスに含まれ
るものと仮定される。That is, when specifying the next instruction location, the machine assumes that the instructions are sequential. In this case, the next instruction is assumed to be contained at the address following the current instruction's location.
現′命令のアドレスは、シーケンシャル・アドレス・レ
ジスタ(SAR)と呼ばれるレジスタに保存されている
。命令の実行中、SARは1アドレス単位だけ曲進され
る。The address of the current instruction is stored in a register called the Sequential Address Register (SAR). During execution of an instruction, the SAR is advanced by one address unit.
SARを防用する全てのシステムにおいて、ρりえばサ
ブルーチアを実行する之め、プログラム中の成る地点で
初期値を設定しまたそれを変更する@溝が設けられてい
なければならない。この機構は、プラ/チ機構と呼ばれ
る将殊の命令機構である。ブランチ命令には2種の基不
的な種類がある。In any system that protects against SAR, there must be provision for setting and changing initial values at various points in the program in order to execute subroutines. This mechanism is a general command mechanism called the Pra/Chi mechanism. There are two basic types of branch instructions.
即ち、スタッキングを伴うブランチ命令と、スタッキン
グを伴わないブランチ命令である。これら2つのブラン
チ命令は、SARの次のシーケンシャルなアドレスの代
りに新しい値を設定し、命令の新しいシーケンスのロケ
ーションの開始点を限定す゛る。スタッキングを伴う命
令は、元の命令シーケンスが変更される前に、次のシー
ケンシャルな命令アドレスをLIFOスタ1ツク・メモ
リに記憶させ、サブルーチンを実行するために開用され
ることができる。これは、記憶されたアドレスにおいて
、システムを元のシーケンスへ戻す。定義としては、ブ
ランチ命令とは、不明itにおいて、スタッキング動作
を伴うブランチ命令を意味するものとする。That is, there are branch instructions that involve stacking and branch instructions that do not involve stacking. These two branch instructions set a new value in place of the next sequential address of the SAR and define the starting point of the new sequence of instructions' locations. Instructions with stacking cause the next sequential instruction address to be stored in LIFO stack memory before the original instruction sequence is modified and can be used to execute a subroutine. This returns the system to the original sequence at the stored address. By definition, a branch instruction shall mean a branch instruction with a stacking operation in unknown it.
ブランチ命令に続ぐサブルーチ/動作の完了後、プログ
ラムは、ブランチの出発点となった元の命令シーケンス
中の地点へ戻らねばならない。これは「リターン命令」
によって実行される。プログラムが戻るべき命令アドレ
スは、ブランチ命令が実行された時点で記憶されねばな
らない。いくつかの連続したブランチ命令を0T能とす
るため、後入れ先出しく L I F’0 )命令アド
レス・スタックが、それらのリターン・アドレスを記憶
するため設けられねばならない。After completion of the subroutine/operation following the branch instruction, the program must return to the point in the original sequence of instructions from which the branch started. This is a "return command"
executed by The instruction address to which the program should return must be remembered at the time the branch instruction is executed. In order to make several consecutive branch instructions 0T capable, a last-in-first-out (LIF'0) instruction address stack must be provided to store their return addresses.
パイプライン命令アーキテクチャ−のために命令アドレ
ス・スタックを設ける通常の方法は、命令バイプライ/
の最初めステージに大型の専用レジスタ・ファイルを設
けることである。何故ならば、最初のステージは実行順
序を決定するステージだからである。しかし、大型集積
回路の出現と共に、プロセッサの命令処理兼算術回路を
学−の集積回路チップの上に集積することによって、学
位当りコストのかなりの節減が得られる。しかし、デー
タ記憶及び命令記憶などの大量記憶機能は、別個のメモ
リ・チップで実行されねばならない。The usual way to provide an instruction address stack for pipelined instruction architectures is to
The first stage of the process is to have a large dedicated register file. This is because the first stage is the stage that determines the execution order. However, with the advent of large integrated circuits, significant savings in cost per degree can be achieved by integrating the instruction processing and arithmetic circuits of a processor onto an academic integrated circuit chip. However, mass storage functions such as data storage and instruction storage must be performed in separate memory chips.
何故ならば、プロセッサ・チップ上の利用可能領域には
制限があるからである。命令共イブラインの第1ステー
ジで即時にアクセス可能なリターン・アドレスの記録を
維持するのは望ましいとは言え、そのような大量記憶@
能を、命令及び演算処理エレメ7トを含む同一の集積回
路チップ上に言まぜることは容易でない。しかし、デー
タ記隠機構にリター/・アドレス記瞳機能を包きさせる
ことは、データ記厖吸購が同一の集積回路チップ上に設
けられているとしても、先行技術では達成され得なかっ
た。何故ならば、リターン命令が第1ステージによって
読出された後、いくつかのマシ/・サイクル又は位相が
経過するまで、リターン・アドレスはデータ記厖機溝か
らアクセスされ得なかったからである。This is because the available space on a processor chip is limited. Although it is desirable to maintain an immediately accessible record of return addresses in the first stage of the instruction co-event line, such mass storage
It is not easy to mix functions on the same integrated circuit chip containing instructions and processing elements. However, encapsulating the return/address storage function in a data storage mechanism could not be accomplished in the prior art, even if the data storage was provided on the same integrated circuit chip. This is because the return address could not be accessed from the data memory slot until several cycles or phases had passed after the return instruction was read by the first stage.
LIFOスタックをデータ処理システムのデータ記憶@
溝へ格納することは新しい思想ではない。LIFO stack for data storage in data processing systems @
Storing in ditches is not a new idea.
例えば、米国特許第4011462号は、データ記階機
構でLIFOスタックを使用することによυ、サブルー
チン・リンケージを実行する方法を説明している。上記
米国特許は、シーケンシャル位相命令パイプラインにつ
いて解決されるべき問題である、同時パイプライン命令
実行の問題を考慮していない。上記米国特許は、データ
記憶機構中のスタックのアクセスを命令によって行わせ
る。For example, US Pat. No. 4,011,462 describes a method for performing subroutine linkage by using a LIFO stack in a data storage mechanism. The US patent does not consider the problem of concurrent pipelined instruction execution, which is a problem to be solved for sequentially phased instruction pipelines. The above US patent allows instructions to access a stack in a data storage facility.
これは、必然的に、命令パイプライン中の命令のスルー
プットを低下させる。This necessarily reduces the throughput of instructions in the instruction pipeline.
■0本発明の目的
本発明の目的は、データ・プロセッサにおける命令実行
ハイプラインのために、改善されたシーケンス命今際溝
を与えることである。OBJECTS OF THE INVENTION It is an object of the present invention to provide improved sequence ordering for instruction execution high-lines in data processors.
本発明の他の目的は、電力消散を低下させた、集積回路
チップ上に完全に格納されたデータ・プロセッサのため
の改善されたパイプライノ命令機構を提供することであ
る。Another object of the present invention is to provide an improved pipeline instruction mechanism for a data processor fully contained on an integrated circuit chip with reduced power dissipation.
本発明の他の目的は、データ・プロセッサのための命令
パイプライ/機購におい機構ブラ/チ又はリターン動作
を実行するため、未使用の命令位相を利用することであ
る。Another object of the present invention is to utilize unused instruction phases to perform instruction pipeline/machine processing branch/return operations for a data processor.
本発明の他の目的は、向学、命令フェッチ・マシン・サ
イクルに続くマシン・サイクルでアクセスされるデータ
記瞳機構中に置かれ友命令スタック中のリターン・アド
レスへアクセスすることのできるプロセッサを提供する
ことである。Another object of the present invention is to provide a processor which is capable of accessing return addresses in a companion instruction stack located in a data storage mechanism that is accessed in a machine cycle following an instruction fetch machine cycle. It is to provide.
本発明の他の目的は、パイプラインの効率を低下’J−
ffることなく、複m[M相命令パイプラインによって
アクセスきれる同一のデータ記憶装置によって、データ
記憶機能と冷令スタツキノグ@能を実行させることであ
る。Another object of the invention is to reduce the efficiency of the pipeline.
The objective is to have data storage functions and cold stack functions performed by the same data storage device that can be accessed by multiple M-phase instruction pipelines without any FF.
■0本発明の要約
上記の目的は、本明細書に開示される本発明によって達
成される。本明細書で開示されるデータ・プロセッサの
ための命令パイプラインにおいて、命令実行は次のよう
な一連の位相で実行される。(10) Summary of the Present Invention The above objects are achieved by the present invention disclosed herein. In the instruction pipeline for the data processor disclosed herein, instruction execution is performed in a series of phases as follows.
即ち、これらの位相は、命令記[1!iffから命令を
フェッチし、フェッチされた命令からデータ記憶アドレ
スを計算し、計算され之アドレスに基きデータ記憶@溝
にアクセスして、データ・オペランドを獲得し、フェッ
チされた命令に従って、アクセスされたデータ上で論理
演算動作を実行する位相を含む。ブランチ支びリターン
命令は、データ記瞳@震中にリターン・アドレス・スタ
ックを設けることによって実行可能にされる。データ記
厖@購は、ブランチ動作が完了し友後に、リターンされ
るべ@次の命令記憶アドレスを記憶する。データ記は@
溝中の命令アドレス・スタックは、パイプラインの効率
を低下させることなく、いくつかの命令実行位相が経過
するまで、パイプラインの命令7エツチ・ステージによ
って直接にアクセスされることができないので、パイプ
ラインの命令フェッチ・ステージにスタック・レジスタ
が設けられる。このスタック・レジスタは、命令アドレ
ス・スタックのトップに現在置かれている命令記憶アド
レスの重複清報を含む。岐令フエンチ・ステージでリタ
ーン命令が現われると、命令記厖@溝中でリターンされ
るべき次の命令のアドレスは、パイプライン中の流れを
中断させることなく、即時に利用0T能となる。命令フ
ェッチ・ステージとデータ記憶アクセス・ステージの間
の)くイプライノ・ステージに置かれたスタック−ポイ
ンタは、パイプライン中の未使用の防令M相を利用して
、データ記憶アクセス・ステージで、命令アドレス・ス
タックから次に利用可能な命令記憶アドレスを読出させ
、それを次のリターン命令に対する準備としてスタック
・レジスタヘロードさせる。こうして、データ記憶機能
及び命令スクッキング機能は、パイプラインの効率を低
下させることなく、複数位相命令パイプライン中の中間
ステージによってアクセスされる同一のデータ記憶装置
によつ゛て実行される。追加°的利点として、データ記
厖機構中のアドレス・スタックの区分サイズが小さくな
り、節約されたスペースがデータ記憶に使用することが
できる。That is, these phases are the command [1! Fetch the instruction from if, calculate the data storage address from the fetched instruction, access the data storage@groove based on the calculated address, obtain the data operand, and access the data storage address according to the fetched instruction. Contains phases that perform logical operations on the data. Branch and return instructions are enabled by providing a return address stack during data storage. The data store stores the next instruction storage address to be returned after the branch operation is completed. Data record is @
The instruction address stack in the groove cannot be directly accessed by the instruction 7 etch stage of the pipeline until several instruction execution phases have passed without reducing pipeline efficiency. A stack register is provided at the instruction fetch stage of the line. This stack register contains a duplicate report of the instruction storage address currently placed on the top of the instruction address stack. When a return instruction appears in the branch quench stage, the address of the next instruction to be returned in the instruction register becomes immediately available without interrupting flow in the pipeline. The stack pointer placed in the intermediate stage (between the instruction fetch stage and the data storage access stage) is used to utilize the unused instruction M phase in the pipeline to Causes the next available instruction storage address to be read from the instruction address stack and loads it into the stack register in preparation for the next return instruction. Thus, data storage and instruction scooking functions are performed by the same data storage device accessed by intermediate stages in a multi-phase instruction pipeline without reducing pipeline efficiency. As an additional advantage, the partition size of the address stack in the data storage facility is reduced and the space saved can be used for data storage.
■、実施列の説明
本明細書において、データ・プロセッサのための命令パ
イプラインが開示される。この命令パイプラインにおい
て、命令実行は一連の位相中で実行される。これらの位
相は、命令記m1llfから命令ラフエッチし、フェッ
チされた命令からデータ記厖アドレスを計算し、データ
記tis購の計算されたアドレスにアクセスして、デー
タ・オペラ/ドを獲得し、フェッチされた命令に従って
、アクセスされたデータ上で論理又は演算動作を実行す
る位相を含む。ブラノチ及びリターン命令は、データ配
置機構中にリター7・アドレス・スタックを設けること
によって実行町q目にされる。リターン・アドレス・ス
タックは、ブランチ動作が完了した後にリメー7される
べき次の砧令記はアドレスを記憶する。データ記憶機構
中の命令アドレス・スタックはパイプラインの効率を低
下させることなく、いくつかの命令実行位相が経過する
まで、パイプラインの命令フェッチ・ステージによって
直接にアクセスされ得ないので、パイプライ/の命令フ
ェッチ・ステージにスタック・レジスタが設けられる。2. Description of the Implementation Column In this specification, an instruction pipeline for a data processor is disclosed. In this instruction pipeline, instruction execution is performed in a series of phases. These phases roughly fetch the instruction from the instruction m1llf, calculate the data storage address from the fetched instruction, access the calculated address in the data storage to obtain the data operand, and fetch the data operand. and performing logical or arithmetic operations on the accessed data in accordance with the instructions given. Blank and return instructions are made available for execution by providing a return address stack in the data location facility. The return address stack stores the address of the next command to be restored after the branch operation is completed. The instruction address stack in data storage cannot be accessed directly by the instruction fetch stage of the pipeline until several instruction execution phases have elapsed without reducing pipeline efficiency. A stack register is provided at the instruction fetch stage.
このスタック・レジスタは、命令アドレス・スタックの
トップに現在置かれている命令記はアドレスの重複情報
を含む。8令フエツチステージにリターン命令が現われ
ると、命令記憶l11嘴においてリターンされるべ@次
の命令のアドレスが、パイプライン中の流れを中断ざぜ
ることなく、即時に利用可能となる。命令7エツチ・ス
テージ反びデータ記憶アクセス・ステージの間のパイプ
ライン・ステージに置かれたスタック。This stack register contains address duplication information for the instruction currently placed at the top of the instruction address stack. When a return instruction appears in the 8th instruction fetch stage, the address of the next instruction to be returned in the instruction store l11 beak is immediately available without interrupting flow in the pipeline. Stack placed in pipeline stage between instruction 7 etch stage and data storage access stage.
ポインタは、パイプライン中の使用しない命令位相を利
用し、データ記憶アクセス・ステージで、命令アドレス
・スタックから次に利用可能な砧令起用アドレスを続出
はぜ、それを次のリターン時令の準備としてスタック・
レジスタにロードざぜる。このようにして、データ起用
機能及び命令スタッキ7グ機#目が、パイプラインの効
率を低下すせることなく、複数位相命令パイプライン中
の中間ステージによってアクセスされる同一のデータ起
用装置によって実行される。Pointers take advantage of unused instruction phases in the pipeline to populate the next available instruction address from the instruction address stack during the data storage access stage, preparing it for the next return instruction. Stack as
Load it into the register. In this way, data access functions and instruction stacking machine #7 can be performed by the same data access device accessed by intermediate stages in a multi-phase instruction pipeline, without reducing pipeline efficiency. Ru.
リアルタイム信号プロセッサ(R8P)は、16ビツト
・データ・フロー及び24ピツ゛ト命令セツ[%する学
−オベラ/ド汎用プロセッサである。コノフロセッサは
、洒号処理アルゴリズムを実行するため符別に適合比さ
れる。R8Pは、高効率及び高電力回路を必要としない
で、酸大処哩スループットを達成すべく設計されたパイ
プライ/命令装置である。そのアーキテクチャ−は、町
変精置乗算文び32ビツト除算を含む算術、論理、制−
命令の完全なレバー)IJ−ffiiむ。メモlj を
除い友全体のプロセッサは、第1図に示されるように、
単一のVLSIチップ5の上に設けられる。The Real-Time Signal Processor (R8P) is a general-purpose processor with a 16-bit data flow and a 24-bit instruction set. The conoflossor is code-wise matched to perform a slang processing algorithm. R8P is a pipeline/instruction unit designed to achieve high throughput without the need for high efficiency and high power circuits. Its architecture includes arithmetic, logic, control, and 32-bit division.
Complete lever of command) IJ-ffiimu. The processors of all the friends except for the memory lj are as shown in FIG.
It is provided on a single VLSI chip 5.
R8P命令セットは、1サイクルで演算機能を実hvる
命令である(乗算1.除算、左方シフ)1除<)。その
場合、オベラ/ドの1つはデータ・ストア(データ記隠
機構)8に含まれ、他のオベラ/ドは第3図に示される
スタック・レジスタ(ローカル・レジスタ)18に富ま
れる。結果はローカル・レジスタに戻される。そのよう
な命令を実行するため、実行されねばならない4つ0個
別的@能は次のとおりである。The R8P instruction set is an instruction that executes an arithmetic function in one cycle (multiplication 1, division, left shift) divided by 1<). In that case, one of the overwrite/dots is contained in the data store 8, and the other overload/domain is enriched in the stack register (local register) 18 shown in FIG. The result is returned to a local register. To execute such an instruction, the four distinct functions that must be executed are:
(1) 命令の7エツチ
(2)データ起用動作のための実効アドレスの形成(3
)データ記憶アクセスの実行
(4)演算動作の実行及び結果のロード任意の1つのそ
のような命令について、上記の4つの機能が順次に実行
さnねばならない。パイプラインrヒ命令の概念は、命
令のこの特性を利用する。R8Pのアーキテクチャ−は
、各@#Qへハードウェアの個別的領域を割当てる。4
つの@牝の1つを実行するステージが1つの命令の上で
動作している間、他のステージは同時に他の命令の上で
動作するように部用されてよい。ある猪今上の動作の実
行は、その命令の位相と呼ばれる。命令の位相1は、命
令の7エツチである。位相2は、実効アドレスの発生で
ある。位相3は、データ・メモリのアクセスである。位
相4は、演算1[Eの実行である。ハードウェア・ステ
ージは、4つの異った瞼令について同時に4つの位相を
実行する。(1) 7-etch instruction (2) Formation of effective address for data use operation (3)
) Performing data storage accesses (4) Performing arithmetic operations and loading results For any one such instruction, the four functions listed above must be performed sequentially. The concept of pipelined instructions takes advantage of this property of instructions. The R8P architecture allocates a separate area of hardware to each @#Q. 4
While a stage executing one of the two instructions is operating on one instruction, other stages may be used to operate on other instructions at the same time. The execution of a given action is called the phase of that instruction. Phase 1 of the instruction is 7 etches of the instruction. Phase 2 is the generation of the effective address. Phase 3 is data memory access. Phase 4 is the execution of operation 1[E. The hardware stage performs four phases simultaneously for four different eyelid orders.
R8Pは争′−のチップ5の上に設けられるので、チッ
プ上のスペースが貴重とな゛る。従って、データ・スト
ア(データ起用@購)8反び命令ストア(命令記は@W
it)6の大量起重機能は、チップ艷によってアクセス
されるy31J(固のメモリ・チップによって実行され
る。Since R8P is provided above the contested chip 5, space on the chip is at a premium. Therefore, data store (data usage @purchase) 8 warp instruction store (instruction list @W
The mass loading function of 6 is performed by the y31J (hard memory chip) which is accessed by the chip.
ブランチ命令の之めにリターン・アドレスの記録を維持
するため、64のアドレス容量をWTるL I F’O
記厖配置機構要でめる。この配置機構は、命令パイプラ
インの第1ステージによって即時にアクセス0T能でな
ければならない。しかし、そのような大量記は@能をチ
ップ5の上で実行することは、広いチップ領域を使用し
、過度の電力を消散する。他方、データ・ストア8でリ
ター7・アドレスL IFO記は!!能を実行すること
は、不適当でるると考えられる。何故ならば、リター7
・アドレスは、パイプライン・スループットを低下させ
ることなく、リターン命令が第」ステージによって読出
されるまで、データ・ストアからアクセスされ得ないか
らでるる。To maintain a record of return addresses for branch instructions, an address capacity of 64 is used.
The storage arrangement mechanism is required. This placement mechanism must be immediately accessible 0T by the first stage of the instruction pipeline. However, implementing such large scale functions on chip 5 uses a large amount of chip area and dissipates excessive power. On the other hand, in data store 8, litter 7 address LIFO is written! ! It would be considered inappropriate to perform such functions. Because, Litter 7
- The address cannot be accessed from the data store until the return instruction is read by the 'th' stage without reducing pipeline throughput.
この問題は、本発明によって次のように解決さレル。ア
ドレス・シーケンス・コノトロールは、第5図に示され
るように64レベル・スタック10を含む。スタック1
0はデータ・ストア8に置かれる(メモリ・ロケーショ
ン0−63)。スタック10のトップに書込まれた(直
は、「命令フェッチ及びシーケンス制御」ステージ)に
置かれた曝−の16ビツト・ハードウェア・スタック・
レジスタ18に保持される。6ビツト・スタック・ポイ
ンタ(SP)28(第4□□□)によってアドレスされ
るスタック10は、64レベルのサブルーチン及び割込
ルーテ/全ネストにすることを許す。This problem is solved by the present invention as follows. The address sequence control includes a 64 level stack 10 as shown in FIG. stack 1
0 is placed in data store 8 (memory locations 0-63). An exposed 16-bit hardware stack written to the top of stack 10 (directly located at the "Instruction Fetch and Sequence Control" stage)
It is held in register 18. The stack 10, addressed by a 6-bit stack pointer (SP) 28 (4th □□□), allows for 64 levels of subroutine and interrupt routes/total nesting.
スタックに影響を与える命令は、[無条件ブランチ及び
スタックJ(BS、l、「リターンJ(RET〕、「リ
ターン及び割込能動」(RET ENABLE)でろる
。マスクされない割込みもまたスタックに影響を与える
。Instructions that affect the stack are [unconditional branch and stack J (BS, l, ``return J (RET]), ``return and interrupt active'' (RET ENABLE). Unmasked interrupts also affect the stack. give.
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のトップのアドレスを
富む。The BS instruction reads the next sequential address (SAR1
6 (value of FIG. 3)] into the stack register 18 at the end of phase 2, and then executes an unconditional branch to the instruction address specified by the instruction's over/do a. Furthermore, by the end of phase 2, it causes the stack pointer 28 shown in FIG.
p = s p + 1), phase 3, 1 shift of 5AR16,
Stack 1 pointed to by stack pointer 28
Put 1 into address 0. In this way, stack pointer 28 always enriches the address of the top of stack 10.
リター7(RET)型命令は、スタック・ポインタ28
によって指定されたアドレス(即ちスタックのトップ)
の内容全、次の曲令のアドレスとして使用させる。この
値はスタック・レジスタ18(第3図)に保持されてい
るので、それは次のサイクルで使用0Tffflとなる
。位相2で、スタック・ポインタ2.8は1だけ減少さ
れて(SP=SP−1)、スタック10の次の値を指定
するようにされ、次いでその命令の位相3で、その値が
スタック10から読出されて、RET型岐令の位相3の
終りでスタック・レジスタ18ヘロートサれる。The litter 7 (RET) type instruction uses the stack pointer 28
the address specified by (i.e. the top of the stack)
The entire contents of the file will be used as the address of the next order. Since this value is held in stack register 18 (FIG. 3), it will be used 0Tfffl in the next cycle. In phase 2, stack pointer 2.8 is decremented by 1 (SP=SP-1) to point to the next value on stack 10, and then in phase 3 of that instruction, that value is placed on stack 10. The stack register 18 is read from the stack register 18 at the end of phase 3 of a RET-type branch.
これにより、°スタック10から読出されたばかシのリ
ターン・アドレスが、前のRET型命令から少なくとも
1命令だけ離れて生じる後のRET型冷令によって使用
0T能となる。何故ならば、スタック10f:読出し、
位相3でその値をスタック・レジスタ18ヘロードした
最初のRET型命令は、スタック・レジスタ18を更新
する時間を有するからである。This causes a blank return address read from the stack 10 to become available for use by a subsequent RET-type instruction that occurs at least one instruction away from the previous RET-type instruction. This is because stack 10f: read,
This is because the first RET type instruction that loads its value into stack register 18 in phase 3 has time to update stack register 18.
このようにして、チップ5は、i、sI装置上で余分の
チップ領域を占めることなく、スタック10を直ちにそ
の自今フェッチ・ステージ1で利用OTeとすることが
できる。これは、実際にはデータ・ストア8の区分され
た領域に置かれているスタック10ヘアクセスするため
、ブランチ及びリターン動作の間、R8P命令パイプラ
インの使用されない第2及び第3ステージを利用するこ
とによって達成される。In this way, chip 5 can immediately make stack 10 available OTe in its own fetch stage 1 without occupying extra chip area on the i,sI device. This utilizes the unused second and third stages of the R8P instruction pipeline during branch and return operations to access the stack 10, which is actually located in a partitioned area of the data store 8. This is achieved by
第1図に示されるように、貯蔵プログラム式データ・プ
ロセッサはチップ5の上に形成され、これは4つのタイ
ム・シーケンシャル・ステージを含むパイプライン式岐
令@購を有する。第1のステージ1は命令のシーケンシ
ング及びフェッチに1吏用され、第2のステージ2はデ
ータ・ストア・アドレス発生に使用され、第3のステー
ジ3はデータ・ストア・アクセスに使用され、第4のス
テージ4は演算実行に使用される。これらのステージは
、各々が動作コード及びオペランドを含む連続しfc命
令の上で重複モードで動作する。これらの命令は、チッ
プ5の外にあるデータ・ストア8からアクセスされたテ
ーク上で演算動作を実行するため、チップ5の外にある
命令ストア6からアクセスされる。As shown in FIG. 1, a stored program data processor is formed on chip 5, which has a pipelined processor containing four time sequential stages. The first stage 1 is used for instruction sequencing and fetching, the second stage 2 is used for data store address generation, and the third stage 3 is used for data store access. Stage 4 of 4 is used for performing calculations. These stages operate in redundant mode on successive fc instructions, each containing operational code and operands. These instructions are accessed from an instruction store 6 external to the chip 5 to perform arithmetic operations on takes accessed from a data store 8 external to the chip 5.
改善された砧令ブラ7テ@購が第3図、第4図、第5図
に詳細に示される。第5図の後入れ先出し命令アドレス
・スタック10は、命令ストア6のためにアドレス金肥
はするため、データ・ストア8の区分された領域中に設
けられる。第3図の命令アドレス・マルチプレクサ12
はステージ1に置かれ、七の出力13を命令ストア6の
アドレス入力へ接続される。マルチプレクサ12は命令
アドレスを命令ストア6へ入力するための複数の入力を
有する。第3図の命令アドレス増加器14がステージ1
に設けられ、その入力をマルチプレクサ12の出力13
へ接続され、その出力をシーケンシャル・アドレス・レ
ジスタ16を介して、マルチプレクサ12の人力の1つ
へ接続される。すれは、命令ストア・アドレスを単位量
だけ順次に増加するためである。The improved model is shown in detail in FIGS. 3, 4, and 5. A last-in-first-out instruction address stack 10 of FIG. 5 is provided in a partitioned area of data store 8 to provide address support for instruction store 6. Instruction address multiplexer 12 in FIG.
is placed in stage 1 and has its output 13 connected to the address input of instruction store 6. Multiplexer 12 has multiple inputs for inputting instruction addresses to instruction store 6. The instruction address incrementer 14 in FIG.
is provided at the output 13 of the multiplexer 12 and its input is
and its output is connected via sequential address register 16 to one of the inputs of multiplexer 12. This is because the instruction store address is sequentially increased by a unit amount.
第3図のスタック・レジスタ18はステージ1に設けら
れ、その入力をマルチプレクサ(MUX)ヲ介シて、シ
ーケンシャル・アドレス・レジスタ16の出力又はデー
タ・ストア8にあるスタック10から来る出力17へ選
択的に接続される。それは、増加器14から出力され之
最後の命令ストア・アドレス又はデータ・ストア8のス
タック10から線17を介して出力され之最後の命令ス
トア・アドレスを記憶するためである。更にスタック・
レジスタ18は、その出力をマルチプレクサ12の入力
又は線19を介してデータ・ストア8にある敵令アドレ
ス・スタック10へ選択的に接続される。スタック・レ
ジスタ18は畦−のアドレスのみを記はする。Stack register 18 in FIG. 3 is provided in stage 1 and selects its input via a multiplexer (MUX) to the output of sequential address register 16 or to output 17 coming from stack 10 in data store 8. connected. It is for storing the last instruction store address output from incrementer 14 or the last instruction store address output from stack 10 of data store 8 via line 17. Furthermore, the stack
Register 18 has its output selectively connected to the input of multiplexer 12 or via line 19 to an enemy command address stack 10 in data store 8 . The stack register 18 records only the address of the row.
第3図の自令シーケ/シング・デコーダ(7−ケ/シ7
グ・コノトロール)20はステージ1にあり、その人力
を命令ストア60出カフへ接続され、その出力21をマ
ルチプレクサ12へ接続される。それは、命令ストア6
のアドレス人力13を、マルチプレクサ12を介して、
シーケンシャル・アドレス・レジスタ16の出力又はス
タック・レジスタ18の出力のいずれか選択的に接続す
るように制@Tるためでめる。その制御は、線7を介し
て命令ストア6からアクセスされFjt後の命令ワード
の動作コードに応答して実行される。Self-instruction sequence/sing decoder (7-ke/shi7) in Figure 3
The controller 20 is in stage 1 and has its power connected to the command store 60 output cuff and its output 21 to the multiplexer 12. It is instruction store 6
address 13 through the multiplexer 12,
It is possible to selectively connect either the output of the sequential address register 16 or the output of the stack register 18. Its control is executed in response to the operational code of the instruction word after Fjt, which is accessed from instruction store 6 via line 7.
マルチプレクサ12は、その複数の入力の1つを命令ス
トア6の出カフへ接続させることができる。それは、命
令ストア6からアクセスされた最後の命令のオペランド
を、関連した動作コードが命令シーケ/シノグ・デコー
ダ20でテコードされたことに応答して、命令ストア6
へ無東件プラノチ・アドレス入力として選択的に転送す
るためでるる。Multiplexer 12 can have one of its inputs connected to an output of instruction store 6 . It transfers the operands of the last instruction accessed from instruction store 6 to instruction store 6 in response to the associated operational code being decoded by instruction sequence/synog decoder 20.
It comes out for selective transfer as an address input.
第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を有する。Data store access decoder 22 in FIG.
is placed in stage 2 and has an input cuff connected to the output of instruction store 6. This is to decode the operation code that came from the last instruction accessed from instruction store 6. Data store address generator 2 in Figure 4
11 is placed in stage 2 and has an input connected to the output of the instruction store 6, a control input 25 connected to the data store accessing decoder 22, and an associated t operational code connected to the data store access decoder 22. - In response to being encoded by the accessing decoder 22, output 26 selectively generates the address of the data store 8 from the operand of the last accessed spinning word. Stack pointer 28 in FIG. 4 is placed in stage 2 and connected to data store access decoder 2.2, control power 25 selectively increases or decreases the data store address value to access the data. Output 2 for accessing the last instruction address stored in the stack 10 of store 8
It has 9.
第5図のデータ・ストア・アドレス・レジスタ30はス
テージ3に置かれ、その入力をデータ・ストア・アドレ
ス発生器24の出力26へ接続され、その出力をデータ
・ストア8のアドレス入力へ接続される。それはデータ
・ストア8のロケーションにアクセスする定めである。Data store address register 30 of FIG. 5 is placed in stage 3 and has its input connected to output 26 of data store address generator 24 and its output connected to the address input of data store 8. Ru. It is intended to access the location of the data store 8.
ブランチ動作において、命令シーケ/ス・デコーダ20
は、関連したブランチ動作コードにEllして、無条件
ブランチ動作のオペランドがマルチプレクサ12を介し
て命令ストア乙のアドレス人力13へ転送されるのを選
択的に!l1il[lシ、シーケンシャル・アドレス・
レジスタ16が参位量だけ増加されるのを選択的に制御
し、関連したブランチ動作コードに応答してシーケンシ
ャル・アドレス・レジスタ16の内容をスタック・レジ
スタ18ヘロードし、関連したブランチ動作コードに応
答してスタック・レジスタ18の内容が線19を介して
データ・ストア8のデータ人力32へ非破壊的に出力さ
れるのを選択的に制御する。データ・ストア・アクセシ
/グ・デコーダ22は、ブランチ動作コードに応答して
、スタック・ポイ/り28が雫位量だけ増Doされ、か
つその内容がデータ・ストア・アドレス・レジスタ30
ヘスタツク10のロケーション・アドレスとして出力さ
れるのを選択的に制御する。それは、スタック・レジス
タ1Bの内容を、ブランチ動咋シードで指定されたブラ
ンチからのリター7・アドレスとして記憶するためであ
る。In a branch operation, the instruction sequence decoder 20
selectively causes the operands of the unconditional branch operation to be forwarded to the address input 13 of the instruction store 12 via the multiplexer 12 by filling the associated branch operation code. l1il[l, sequential address
selectively controlling register 16 to be incremented by an amount, loading the contents of sequential address register 16 into stack register 18 in response to an associated branch operation code, and loading the contents of sequential address register 16 into stack register 18 in response to an associated branch operation code; to selectively control the non-destructive output of the contents of stack register 18 via line 19 to data input 32 of data store 8. In response to the branch operation code, data store access decoder 22 causes stack pointer 28 to be incremented by a drop amount and its contents to be stored in data store address register 30.
It selectively controls what is output as the location address of the host stack 10. This is to store the contents of stack register 1B as the litter 7 address from the branch specified by the branch address seed.
上記のブランチ動作において、ステージ1の宿合シーケ
/シ/グ、デコーダ20は、ブランチ動作が発生すると
第1位相でその制御動作を実行する。ステージ2のデー
タ・ストア・アクセサ/グ・デコーダ22は、第1位相
に続く第2tif、相でその制御動作を実行する。ステ
ニジ3にあるデータ・ストア・アドレス・レジスタ(D
SAR)3Ωは、分合アドレス・スタック10のロケ−
ショアへアクセスし、データ・ストア8は、第2位相に
ff1(i31HIでスタック・レジスタ18の内容を
そこに記憶する。このようにして、他の場合に使用され
ないステージ2′&び3がブランチ動作の間に使用され
て、チップ5に置かれていない命令スタック10がアク
セスされる。In the above branch operation, the stage 1 match search/sign/decoder 20 executes the control operation in the first phase when the branch operation occurs. The stage 2 data store accessor/decoder 22 performs its control operations in the second phase following the first phase. The data store address register (D
SAR) 3Ω is the location of the shared address stack 10.
accessing the shore, data store 8 stores therein the contents of stack register 18 at ff1 (i31HI) in the second phase. In this way, stages 2'& 3, which are otherwise unused, are During operation, the instruction stack 10 that is not located on the chip 5 is accessed.
前のブランチ動作からのリターン動作において、ステー
ジ1の命令シーケンシング・デコーダ20は、第1位相
の間、リターン命令に応答して、スタック・レジスタ1
8の内容がマルチプレクサ12を介して命令ストア6の
アドレス人力13へ転送されるのt選択的に制御する。In a return operation from a previous branch operation, stage 1 instruction sequencing decoder 20 loads stack register 1 during a first phase in response to a return instruction.
8 is selectively transferred to address input 13 of instruction store 6 via multiplexer 12.
ステージ2のデータ・ストア・アクセシノグ・デコーダ
22は、第1位相に続く第2位相の間、リターン命令の
動作コードに応答して、スタック・ポインタ28が学位
量だけ減少されるのを制御し、かつデータ・ストア8の
スタック10に記憶された最後の命令アドレスにアクセ
スするため、ステージ3でスタック・ポインタ28の内
容がデータ・ストア・ア゛ドレス°レジスタ50へ出力
されるの全制御する。Stage 2 data store access decoder 22 controls stack pointer 28 to be decremented by an amount in response to a return instruction operational code during a second phase following the first phase; And in order to access the last instruction address stored in the stack 10 of the data store 8, it fully controls the output of the contents of the stack pointer 28 to the data store address register 50 in stage 3.
ステージ1の命令シーケンシング・デコーダ20は、第
2位相に続く第3位相で、データ・ストア8のスタック
10からアクセスされた最後の命令アドレスが、線17
を介してスタック・レジスタ18ヘロードされるのを選
択的に制御する。このようにして、スタック10が第3
位相までデータ・ストア8でアクセスされ得ない時でも
、リターン命令が前のリターン命令から少なくとも1サ
イクル遅れて生じた場合、曲令ストア6にアクセスTる
ためリターン・アドレスを使用することができる。Stage 1 instruction sequencing decoder 20 determines that in a third phase following the second phase, the last instruction address accessed from stack 10 of data store 8 is on line 17.
selectively controls loading into the stack register 18 via the . In this way, the stack 10
Even when the phase cannot be accessed in the data store 8, the return address can be used to access the curve store 6 if the return instruction occurs at least one cycle after the previous return instruction.
以下の説明は、リアル・タイムホ号プロセッサのいくつ
かのエレメ/トヲ詳細に説明したものである。The following description describes in detail some of the elements/tools of a real-time processor.
第3図に示されるステージ1は、砧令実行の位相1のみ
を実行する。このステージにおいて、前の宿舎の8ビッ
ト動作コードがデコードされ、現命令のアドレスがプロ
セッサ中の条件コード及び前命令の動作コードのデコー
ド結果に基いて決定され、現分令が命令ストア6からフ
ェッチされる。Stage 1 shown in FIG. 3 executes only phase 1 of the execution of the order. At this stage, the 8-bit operation code of the previous instruction is decoded, the address of the current instruction is determined based on the condition code in the processor and the decoding result of the operation code of the previous instruction, and the current instruction is fetched from the instruction store 6. be done.
プログラム・カウンタの値(即ち、現命令のアドレス)
ハ、シーケンシャル・アドレス・レジスタ16にあるア
ドレス又は多数のブランチ・アドレスの1つから選択さ
れる。アドレス選択はグロダラム及び/又は割込制菌の
下で行われる。全ての場合、ブランチングを1つの命令
サイクルで起すようにするため、現命令のアドレスは全
面的に命令実行の位相10間に決定される。Program counter value (i.e. address of current instruction)
c. selected from the address in sequential address register 16 or one of a number of branch addresses; Address selection is performed under glodarum and/or interrupt control. In all cases, the address of the current instruction is determined entirely during phase 10 of instruction execution so that branching occurs in one instruction cycle.
命令実行の第2位相で、有効なデータ・ストア・アドレ
スが、データ・ストア8のアクセスを必要とする命令に
ついて計算される。命令の16ビツトーオペランド・フ
ィールドraJは、第4図に示されるアドレス発生ステ
ージ2へ通される。During the second phase of instruction execution, valid data store addresses are computed for instructions requiring access to data store 8. The instruction's 16-bit operand field raJ is passed to address generation stage 2 shown in FIG.
次いで、データ・ストア動作の実効アドレスは、ml令
に従って4つの関数の1つに基いて形成される。′実効
アドレスの4つの種類は次のとおりである。The effective address for the data store operation is then formed based on one of four functions according to the ml directive. 'The four types of effective addresses are:
(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 )は循環バッファ動作の之め
に使用されるマスク機能でるる。(1) a Direct memory (2) a + B Offset memory (3) a+
Xi i=1.2 Indexed memory (4
) M(a, Xi, B) i=1.2 Masked memory here, B is the pace register, M is the mask register.
register, Xi is the index register (i-1, 2
), M(aXX i, B ) are mask functions used for circular buffer operation.
各種の言号処理データ購造に対しそ有効な制御を実行す
るため、実効アドレスの形成に使用されるレジスタ(即
ちXl、X2、Wl、W2)を更新する多数のレジスタ
が設けられている。これらの命令は、データ・ストア動
作を伴わない限り、第2位相で実行全完了する。データ
・ストアの瞥込みは第3位相で完了する。データ・スト
ア8を読出す動作は、位相3で読出動作及びステージ2
のレジスタ更新を実行し、更新されたレジスタは次のサ
イクル(位相)で利用or能、となる。データ書込動作
については、実効アドレスはステージ2論理によって発
生され、位相3におけるアクセスの準備のため位相2の
終りにデータ・ストア・アドレス・レジスタ30表送ら
れる。In order to provide effective control over the various language processing data purchases, a number of registers are provided that update the registers used to form effective addresses (ie, X1, X2, W1, W2). These instructions complete execution in the second phase unless they involve a data store operation. The look at the data store is completed in the third phase. The operation of reading data store 8 is performed in phase 3 and stage 2.
The updated registers become available in the next cycle (phase). For data write operations, the effective address is generated by the stage 2 logic and sent to the data store address register 30 table at the end of phase 2 in preparation for the access in phase 3.
データ・ストア・ステージ(fi相3)命令実行の位相
3で(メモリ・アクセス位相)、データ・ストア8は実
効アドレスでアクセスきれる。アドレス発生ステージ2
は、前のサイクル(M相〕で計算された実効アドレスを
、現位相で使用するため、第5図のデータ・ストア・ス
テージ5へ送る。読喉り動作については、データ・スト
ア出力が、前の命令の動作コードによって指定された適
当なレンスタヘロードされる。これは、位相4における
使用準備のため、その命令の位相3の完了時になされる
。成る種の命令はオペランドを求めてデータ・ストア8
にアクセスせず、位相4・の演算に関与するため即値オ
ペランドを必要とする。この場合、データ・ストア・ス
テージ3は、宿舎オペラ/ドraJiステージ2からス
テージ4へ通す通路を設定する。それは、その命令の位
相4でraJe[用するためでるる。Data Store Stage (fi Phase 3) In phase 3 of instruction execution (memory access phase), data store 8 can be accessed with an effective address. Address generation stage 2
sends the effective address computed in the previous cycle (M phase) to data store stage 5 of Figure 5 for use in the current phase.For read-down operations, the data store output is The appropriate instruction is loaded into the appropriate class specified by the previous instruction's operation code. This is done at the completion of phase 3 of that instruction in preparation for use in phase 4.・Store 8
It does not access , but requires an immediate operand because it participates in the calculation of phase 4. In this case, data store stage 3 establishes a path from dormitory opera/doraji stage 2 to stage 4. It appears to use raJe in phase 4 of that instruction.
命令の首尾一貫した実行を維持するため、4つの全ての
位相の実行は相互に固定した関係になければならない。To maintain consistent execution of instructions, the execution of all four phases must be in a fixed relationship to each other.
このため、外部装置がデータ・ストア8へのアクセスを
要求する時、それは!10論理64全通して行ない、パ
イプラインの全体がストップされねばならない。このプ
ロセスはサイクル・スチール動作と呼ばれる。データ・
ストア8に対するI10アクセスはサイクル・スチール
動作を生じ、これは1マシン・サイ多ルだけパイプライ
ンの実行を遅らせる。4つの全ての位相/ステージが遅
延される。Therefore, when an external device requests access to data store 8, it! The entire pipeline must be stopped. This process is called cycle stealing operation. data·
An I10 access to store 8 causes a cycle stealing operation, which delays pipeline execution by one machine cycle. All four phases/stages are delayed.
命令実行のI!4(最後の〕位相で、演算ステージ4は
命令で限定され友実際の演算動作を実行する。演算動作
セット中の大部分の命令は、演算ステージ4の学−サイ
クルで実行される。しかし、乗算、除算、及び左方シフ
トの各命令は、それが完了するのにこのステージの複数
の実行を必要とする。乗算命令は8サイクルまでを必要
左し、除算命令は17サイクルを必要とし、左方フット
命令はシフト・カウント(D−31)より1つだけ多い
サイクルを必要とする。これらの命令の場合、命令実行
の最初の3つのステージ2論理1.2.3は「凍結」さ
れ、その間に、現命令のステージ4が、その命令が完了
するまで実行を許される。I of command execution! In the fourth (last) phase, arithmetic stage 4 is limited by instructions and performs the actual arithmetic operations. Most of the instructions in the arithmetic operation set are executed in the logic cycle of arithmetic stage 4. However, Multiply, divide, and shift left instructions each require multiple executions of this stage for it to complete.Multiply instructions require up to 8 cycles; divide instructions require 17 cycles; Left foot instructions require only one more cycle than shift count (D-31). For these instructions, the first three stage 2 logic 1.2.3 of instruction execution are "frozen". , while stage 4 of the current instruction is allowed to execute until the instruction completes.
I10ステージ34の機能は2つの種類に分けることが
できる。それらは直接I10と外部制御I10である。The functions of I10 stage 34 can be divided into two types. They are direct I10 and external control I10.
次の説明は各@能を藺導に説明したものでるる。The following explanations are a guide to each @Noh.
(1)直接I10
これにより、プロセッサは、単一のワードをプログラム
制御の下で外部装置から入力したシ外部装置へ出力した
シすることができる。(1) Direct I10 This allows the processor to input a single word from an external device and output it to an external device under program control.
(2)外部制御I10
これにより、外部装置は、その制御の下で、直接にR8
P(i−読出したシR8Pへ瞥込んだりすることができ
る。(2) External control I10 This allows the external device to directly control R8 under its control.
P(i--You can glance at the read out R8P.
他のR8P@震
R8P中に設けられた他の@購は、リアル・タイム・ク
ロック、全てのレジスタにスキャン・イ//スキャ/・
アウトを実行しがっR8Pにラッチすることができるメ
インテナンス・インイーフェイス、及び1組のFI&t
iQ指令を出すことによって、外部装置がR8Pを制御
できるようにするl101/ターフエイスtきむ。Other R8P@Shake Other @purchases provided in R8P include real time clock, scan all registers.
Maintenance interface that can be latched to R8P while running out, and a set of FI&T
I101/Turf Eight allows an external device to control R8P by issuing an iQ command.
パイプライノ動作の例
命令パイブライ/の2つの例が第2図に示される。例1
.は実行されている学−の命令を示す。位相1から位相
4までは、4つのハードウェア・ステージによって砧今
上で実行される4つの@能を表わす。サイクルはマシ/
・サイクルを意味する。EXAMPLES OF PIPELINE OPERATION Two examples of the instruction pipeline operation are shown in FIG. Example 1
.. indicates the academic command being executed. Phase 1 through Phase 4 represent the four @functions performed on the Kinkima by the four hardware stages. Cycles are better/
・Means a cycle.
このレリにおける命令rAZ Z、a(Ml)jはマ
スクされたメ・r:す・ロケ−ショアM(a、Xl、B
)の内容1zレジスタの内容へ加え、その会計tzレジ
スタへ置く。宿舎オペラッドraJはレジスタXI、B
、Mによって修旧され、ステージ2でマスクされた実効
アドレス(e a ) =M(a。The instruction rAZ Z, a(Ml)j in this relay is the masked mail location M(a, Xl, B
) to the contents of the 1z register and place it in the accounting tz register. Accommodation operad raJ is register XI, B
, M and masked in stage 2, the effective address (e a ) = M(a.
Xl、B)が形成され、ストレージ・ロケ−ショアがス
テージ3でアクセスされる。合計は、ステージ4で、形
成され宛先レジ゛スタヘロードされる。Xl,B) is created and the storage location shore is accessed in stage 3. The sum is formed and loaded into the destination register in stage 4.
例2は、次の動作シーケンスを実けする命令のセットを
示す。Example 2 shows a set of instructions that implement the following sequence of operations.
(1) 「LZ al (Ml ) J これは、マ
スクされたメモリ・ロケーションM(al、X
1、B)を2レジスタヘロー
ドする。(1) ``LZ al (Ml) J This loads the masked memory location M(al, X 1, B) into two registers.
(2) rAz Z、N2(Ml) J コれはマスク
されたメモリ・ロケ−ショアM(N2、Xl、
B)の内容を2レジスタへ0口
え、その結果を2レジスタへ
置く。(2) rAz Z, N2 (Ml) J This writes the contents of the masked memory location M (N2, Xl, B) to 2 registers and places the result in 2 registers.
(3)rSTZ N3(Ml)J コれはZL/ジス
タの内容をマスクされたメモリ・ロケータ
ョンM(N3、XI、B)に
装置する。(3) rSTZ N3(Ml)J This stores the contents of the ZL/register into the masked memory location M(N3,XI,B).
(4)rB N4J これはa令アドレス(
N4)ヘブラノチする。(4) rB N4J This is the a-order address (
N4) Hebranochi.
「STz」命令のN3ステージが結果を移動させる友め
記憶動作を実行する前に、パイプラインのステージ4が
rAZJ命令を完了できる↓うに、ノー・オペレーショ
ン命令rNOP、Jが命令パイブライン中に挿入される
。使用されないサイクルは、命令パイプライ/中でその
時間的位置を保持する。A no-operation instruction rNOP,J is inserted into the instruction pipeline so that stage 4 of the pipeline can complete the rAZJ instruction before the N3 stage of the "STz" instruction performs the store operation that moves the result. Ru. Unused cycles retain their temporal position in the instruction pipeline.
今から、R8Pのハードウェア・ステージにおける動作
を詳細に説明する。The operation of the R8P hardware stage will now be explained in detail.
この説明は、(1)どのようにして命令がフェッチされ
かつデコードされるか、(2)どのようにして実効アド
レスが発生されかつ使用されるか、(3)どのようにし
て各種の条件コード及びレジスタ(SAR1スタックな
ど〕がセットされかつ解釈されるかを合む。This explanation covers (1) how instructions are fetched and decoded, (2) how effective addresses are generated and used, and (3) how various condition codes and registers (such as the SAR1 stack) are set and interpreted.
このステージは第3図の流れ図に示される。それは、命
令パイプライン実行の位相1の機能を実行する。このス
テージは、命令ストア6を制御する命令アドレス選択論
理を含む。This stage is illustrated in the flow diagram of FIG. It performs the functions of phase 1 of instruction pipeline execution. This stage includes instruction address selection logic that controls instruction store 6.
命令ストア
24ビツト幅である命令ストア6は、8ビツトの動作コ
ード・フィールドと16ビツトのオベラ/ド・フィール
ドによって溝成される。それは命令アドレス・マルチプ
レクサ(プログラム・カウンタ(PC)マルチプレクサ
〕12によってアドレスされる。16ピツトを宜むマル
チプレクサ出力13は、65536個までの命令を言む
命令ストア6をアドレスすることができる。Instruction Store The instruction store 6, which is 24 bits wide, is divided by an 8-bit operation code field and a 16-bit over/under field. It is addressed by an instruction address multiplexer (program counter (PC) multiplexer) 12. The multiplexer output 13, which serves 16 pits, can address an instruction store 6 that addresses up to 65,536 instructions.
命令アドレス選択論理
命令実行の位相1で、命令アドレス選択論理は、現命令
のアドレスの源(source)を決定するため、前の
命令から未定8ビット動作コードをデコードする。アド
レスはマルチプレクサ12によって選択され、命令がア
クセスされる。ブランチ、プロシード(proceed
) 、又はリター7動作を呼出す前命令からの動作コー
ドは、フェッチされつつおる命令のアドレスが5つのブ
ランチ源の1つから覗られるようにする。他の全ての動
作コードは、現命令ノアドレスがシーケンシャル・アド
レス・レジスタ16から取られるようにする。シーケン
シャル・アドレス・レジスタ16は、ラエッチされた最
後の命令のアドレス+1を言む。Instruction Address Selection Logic During phase 1 of instruction execution, the instruction address selection logic decodes the undetermined 8-bit operation code from the previous instruction to determine the source of the current instruction's address. The address is selected by multiplexer 12 and the instruction is accessed. branch, proceed
), or the operation code from the previous instruction that calls the litter7 operation, causes the address of the instruction being fetched to be looked at from one of the five branch sources. All other operational codes cause the address of the current instruction to be taken from sequential address register 16. Sequential address register 16 points to the address +1 of the last instruction latched.
命令のアドレス発生及びフエンチ動作は、ブランチング
が確実に1サイクルで起るように、同一サイクルで実行
される。Instruction address generation and fencing operations are performed in the same cycle to ensure that branching occurs in one cycle.
マルチプレツクス12は次の源の中から現命令のアドレ
スを選択する。これら源の全ては16ビツト′・レジス
タである。Multiplex 12 selects the address of the current instruction from among the following sources: All of these sources are 16-bit registers.
(1) シーケンシャル・アドレス・レジスタ16(
次のシーケンシャル・アドレス(pc+i ))(2)
スタック・レジスタ18(64ワード命令アドレス
・スタックのトップ)
(3) オペラ/ドf’aJレジスタ36 (命令の
オベラ/ド・フィールド〕
(4)保存レジスタ38(保存レジスタの内容〕(5)
IAR/ベクトル・レジスタ4o(ベクトル比され
た割込アドレス) ′
シーケンシャル・アドレス・レジスタ16は、命令スト
ア6を順次にアドレスする友め源として選択される。ス
タック・レジスタ18は、リターン型命令のために源と
して選択される。オベラ/ド「a」レジスタ36は、無
東件ブラ/チ命令のため源として選択される。更にそれ
は、条件基準が満足された時、全ての条件ブランチ命令
のために使用される。条件基準が満足されなければ、シ
ーケンシャル・アドレス・レジスタ16が選択される。(1) Sequential address register 16 (
Next sequential address (pc+i)) (2)
Stack register 18 (top of 64-word instruction address stack) (3) Opera/do f'aJ register 36 (instruction obera/do field) (4) Save register 38 (contents of save register) (5)
IAR/Vector Register 4o (Vectorized Interrupt Address) 'Sequential address register 16 is selected as a source for sequentially addressing instruction store 6. Stack register 18 is selected as a source for return type instructions. The over/do "a" register 36 is selected as the source for the non-contingent bra/ch instruction. Additionally, it is used for all conditional branch instructions when the condition criteria are satisfied. If the condition criteria are not met, sequential address register 16 is selected.
保存レジスタ68は、プロシード(PRCD)命令又は
プロシードを指定した機能が使用され九時(即ち、r−
P J形の命令)、次の命令のアドレスのため源とし
て使用される。IAR/ベクトル・レジスタ4oは、分
合ストアのワード1−63へのI/Q割込ブランチの友
めに使用される。命令ストアは適当な割込処理ルーチン
のアドレスに対するブランチ命令を言んでいる。The save register 68 is stored at 9 o'clock (i.e., r-
PJ-type instructions), is used as a source for the address of the next instruction. IAR/vector register 4o is used to mate the I/Q interrupt branch to words 1-63 of the share store. Instruction store refers to a branch instruction to the address of the appropriate interrupt handling routine.
条件付きブランチング
条件付きブランチングの決定は、8fllilの東件イ
/ディケータ・ピントの状態に基いてなされる。Conditional Branching Conditional branching decisions are made based on the condition of the 8flil data/decatur pin.
これらのピントは、命令が実行される時、プロセンサ中
に存在する各種の条件の@果としてセントされる。条件
イノディケータ・ピントは、ステージ4で発生され九条
件コード・ピント及び他のステージで発生された状況フ
ラグを含む。ブランチ条件は次のとおりである。These points are focused as a result of various conditions that exist in the processor when the instruction is executed. The condition indicator pinto is generated in stage 4 and includes nine condition code pintos and status flags generated in other stages. The branch conditions are as follows.
(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の複数サイクルを必要と
する乗算、除算、左方シフトな。(1) Operation result = OZCC = 1 (2) Operation result < ONCC = 1 (3) Operation result match 0CC = 1 (4
) Internal overflow l0F=1(
5) Pending internal overflow POF'=1
(6) External overflow EOF=1(7
) i7 Denks comparison flag I CF=1(
8) Software Flags SF=1 All arithmetic instructions will send condition codes 1-5 at the end of phase 4. Multiplications, divisions, and left shifts that require multiple cycles of phase 4 to complete.
どの命令については、条件コードは第4位相が終了した
後にセントされる。外部オー“バフロー(条件コード6
〕は位相3で決定され、位相4でセントされる。インデ
ックス比較フラ名(7)はステージ2で発生され、その
命令実行の位相2でセントされる。ソフトウェア・フラ
グは位相2のプログラム側聞の下でセントされる。条件
コード4.6.8はランチされ、具体的に防用されるま
で1ヘセントされ′几ままである。具体的に使用される
と、それらは、そ・れらを使用したブランチ命令の位相
2で0ヘリセントされる。他の全ての条件コードのピン
トは、それに影響を及ぼす各オペレーショ/によってセ
ントされる。For any instruction, the condition code is sent after the fourth phase is completed. External overflow (condition code 6
] is determined in phase 3 and cented in phase 4. The index compare name (7) is generated in stage 2 and is sent in phase 2 of the instruction's execution. The software flag is sent below the phase 2 program side. Condition code 4.6.8 is launched and will remain in place until specifically protected. When specifically used, they are 0 helicented in phase 2 of the branch instruction that uses them. The focus of all other condition codes is sent by each operation/operation that affects it.
条件付きブランチ命令は、次の命令実行の位相1で実行
2れ、従って、その時点で存在した条件に基いて実行さ
れる。成る種のプラ/チ命やは、演算ステージ4で設定
され九条件コードに基いて実行される。そのブランチは
、ブランチ命令の3サイクル又はそれ以上前にデコード
された演算命令の結果としてセントされる。、インデッ
クス比較フラグに基くブランチ命令CBI:CF)は、
前の吊金の結果セントされた条件に従って実行される。A conditional branch instruction is executed in phase 1 of the next instruction's execution, and is therefore executed based on the conditions that existed at that time. The various pla/chi orders are set in calculation stage 4 and executed based on nine condition codes. The branch is sent as the result of an arithmetic instruction that was decoded three or more cycles before the branch instruction. , the branch instruction CBI:CF) based on the index comparison flag is
Executed according to the conditions established as a result of the previous hanging.
外部オーバフローに基くブランチ命令は、そのブランチ
命令の3サイクル又はそれ以上前にセントされた条件に
基いて実行される。A branch instruction based on an external overflow is executed based on a condition that was sent three or more cycles before the branch instruction.
スタック動作
アドレス・シーケ/シ/グ・コノトロニルは、テーク・
ストア8に置かれた64レベル・スタック10を冴む(
メモリロケーショノ0−63)。Stack operation address seek/sequence conotronil
Clear the 64 level stack 10 placed in store 8 (
memory location 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に影響を与える。The value written to the top of stack 10 was placed in stage 1. One 16-pin stack register 18
is maintained. The 64-level stack 10 addressed by the 6-bint stack pointer 28 has 64
Enables nesting of subroutines/and interrupt routines up to levels. Instructions that affect the stack 10 are "unconditional brachi and stack J (BS)", "return J"
(RET), [litter/&61J included tiQ motion J (R
In addition, unmasked interrupts also affect stack 10.
B、S命令は、次のシーケンシャル・アドレス(シーケ
ンシャル・アドレス・レジスタ16の直)を、位相2の
終りにスタック:レジスタ18へ」込ませ、次いでその
時令のオベラ/ド「a」によって指定されfc冷令アド
レスへ無条件ブランチを1けう。更に、それは、位相2
の終り筐でにスタック・ボイ/り28を1だけ増む口ぎ
せ(SP=SP十i)、fif3で、シーケンシャル・
アドレス・レジスタ16の値を、スタック・ボイノタ2
8によって指定されたスタック10のアドレスへ書込む
。このようにして、更新されたスタック・ボイ/夕28
は、常にスタック1oのトップのアドレスをよむ。The B,S instruction causes the next sequential address (directly from sequential address register 16) to be placed on the stack: register 18 at the end of phase 2, and then the address specified by the address 'a' of the current instruction. Move an unconditional branch to the fc cold order address. Furthermore, it is phase 2
At the end of the box, increase the stack boi/re28 by 1 (SP=SP1i), and with fif3, sequential
The value of address register 16 is
Write to the address of stack 10 specified by 8. In this way, the updated stack boi/evening 28
always reads the top address of stack 1o.
リターン型命令は、スタック・ポイノタ28によって指
定されたアドレス〔即ち、スタックのトップ〕の内容を
、次メ醋令のアドレスとして防用させる・。それはスタ
ック・レジスタ18に保持すれているので、次のサイク
ルで使用可能である。A return-type instruction causes the contents of the address specified by the stack pointer 28 (ie, the top of the stack) to be used as the address of the next instruction. Since it is held in stack register 18, it is available for use on the next cycle.
位相2で、スタック・ボイ/り28は、スタック100
次のロケーションを指定するため、1だけ減少され(S
P=SP−1)、次いでその命令の位相3で、そのロケ
ーショ/の内容がスタック10から読出され、リターン
型命令の位相3の終りに、スタック・レジスタ18ヘロ
ードされる。これにより、スタック10から読出され友
ばかりのリター7・アドレスが、前のリターン型命令か
ら少なくとも1つの吊令だけ遅れて生じる後のリターン
型命令によって使用可能となる。これは、スタック10
を読出してそれを位相3でスタック・レジスタ18ヘロ
ードする最初の゛リターン型命令は、スタック・レジス
タの更新を完了するための時間を有するという理由によ
る。In phase 2, stack boi/li 28 is stack 100
To specify the next location, it is decremented by 1 (S
P=SP-1), then during phase 3 of the instruction, the contents of the location / are read from the stack 10 and loaded into the stack register 18 at the end of phase 3 of the return type instruction. This allows the litter 7 address read from the stack 10 to be used by a later return-type instruction that occurs at least one hang instruction later than the previous return-type instruction. This is stack 10
This is because the first return-type instruction that reads and loads it into stack register 18 in phase 3 has time to complete updating the stack register.
しかしリターン型命令が他のリターン型命令の直後に続
くならば、ハードウェアは、7特別のやり方でそれを処
理しなければならない。これは、第2のリターン型命令
がデコードされかつフエンチされ九時、デコーダ20は
、第2のリターン型命令の後の結合のアドレスは、スタ
ック・レジスタ18にあ゛る(直であると決定するから
である。しかし、スタック・レジスタ18は依然として
第2のリターン命令を指しており、従ってその命令が再
びフェッチされる。第2のリターン型命令の最初−のフ
ェッチについては問題がない。しかし、第2のリターン
型命令の第2のフェッチは、その位相2(第2のリター
ン型命令の最初のフェッチの位相3)でスタック・ポイ
/り2βを更新しようとする。もしそれが起ると、スタ
ック・ポイ/り28は間違った場所ヲ指すことになる。But if a return-type instruction immediately follows another return-type instruction, the hardware must handle it in a special way. This means that when the second return-type instruction is decoded and quenched, the decoder 20 determines that the address of the association after the second return-type instruction is in the stack register 18 (directly). However, the stack register 18 still points to the second return instruction, so that instruction is fetched again. There is no problem with the first fetch of the second return type instruction. , the second fetch of the second return type instruction attempts to update the stack point/re2β in its phase 2 (phase 3 of the first fetch of the second return type instruction). , the stack pointer 28 will point to the wrong location.
従って、デコーダ20は、第2のリターン型命令の第2
のフェッチの位相2.3.4で、通常のリターン命令の
代りに、線Z上にノー・オペレーショ/@号全挿入しな
ければならない。それによって、デコーダ22′は、ス
タック・ポインタ28が第2回目に更新されるめを禁止
し、デコーダ75は、データ・ストア8が第2回目に読
出されるのを禁止する。Therefore, the decoder 20 decodes the second return type instruction.
In phase 2.3.4 of the fetch, a full no-operation/@ sign must be inserted on line Z instead of the normal return instruction. Thereby, decoder 22' inhibits stack pointer 28 from being updated a second time, and decoder 75 inhibits data store 8 from being read a second time.
ハードウェアによって発生されたこのノー・オベレーシ
ョ/の結果、第2のリターン型命令の最初のフェッチは
通常の如く動作するが、第2のリターン型命令の第2の
フェッチは位相″1で通常の如く動作し、位相2.3.
4ではノー・オペレーション命令の如く動作する。第3
の連続し九すター7型命令は最初のリターン型命令と同
じように処理される。何故ならば、それはリターン型面
令ではなく、有効なノー・オペレーションl1ff令に
続くからでめる。2つ又はそれμ上の連続したリターン
命令の動作は、次のとおりでるる。As a result of this hardware-generated no-operation, the first fetch of the second return type instruction behaves normally, but the second fetch of the second return type instruction behaves normally in phase ``1''. It works like this, phase 2.3.
4 operates like a no-operation instruction. Third
Successive nine-star 7 type instructions are processed in the same way as the first return type instruction. This is because it is not a return type command, but follows a valid no-operation l1ff command. The operation of consecutive return instructions on two or more μ is as follows.
最初ρマシン・サイクルで、スタック・レジスタ18に
記憶される値はStでめシ、スタック。At the first ρ machine cycle, the value stored in the stack register 18 is St, then the stack.
ポインタ28に記憶゛される値はiでるる。ステージ1
にあるデコーダ20は第1サイクルで前の命’?rt
7’コードし、マルチプレクサ12を制御して、線13
の上に命令ストア6の最初のアドレスを入力させる。そ
れによって、命令ストア6から最初の命令がフェッチさ
れる。The value stored in pointer 28 is i. stage 1
The decoder 20 in the previous life'? rt
7' and controls multiplexer 12 to line 13.
Enter the first address of instruction store 6 above. Thereby, the first instruction is fetched from instruction store 6.
第2のマシ/・サイクルの始めに、スタック・レジスタ
18はStを記lしており、スタック・ポイ/り28は
iを記憶している、ステージ1にあるデコーダ20は、
最初の命令を、最初のサイクルに続く第2のサイクルで
、最初のりターノ命。At the beginning of the second cycle, the stack register 18 has recorded St, the stack pointer 28 has stored i, and the decoder 20 in stage 1:
The first command is given in the second cycle following the first cycle.
6トt、てデコードし、マルチプレクサ12を制御して
、スタック・レジスタ1Bの内容Sik、第2のアドレ
スとして命令ストア6へ転送する。それによって、防ヤ
スドア6から第2の命令がフェッチされる。嵐テージ2
にあるデコーダ22は、最初の命令を、第2のサイクル
で最初のリターン命令としてデコードレ、スタック・ポ
インタ28を制御して、その内容を単位量だけ減少して
「i−1」にする。この値は、ステージ3で、スタック
10のkめの最初のデータ・ストア・アドレスとしてデ
ータ・ストア・アドレス・レジスタ30へ出力される。6 and t, and controls the multiplexer 12 to transfer the content Sik of the stack register 1B to the instruction store 6 as the second address. As a result, the second command is fetched from the anti-rust door 6. Arashi Stage 2
The decoder 22 in the second cycle controls the decoder stack pointer 28 with the first instruction as the first return instruction in the second cycle, and reduces its contents by a unit amount to "i-1". This value is output to data store address register 30 in stage 3 as the kth first data store address of stack 10.
第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へ出力される。At the beginning of the third machine cycle, stack register 1
8 stores Si, and the stack pointer 28 is (
i-1) is stored. Decoder 2 in stage 1
0 is the second instruction total 1. In the third cycle following the second cycle, the second transfer/instruction is decoded and the multiplexer 12 is controlled to transfer the signal occupying the stack register 18 to the address store 6 as the second address. . Therefore, the second instruction is again fetched from the instruction store 6. The decoder 20 placed in stage 1 is connected to line 7.
The NO-OP output is connected to a decoder 22 in stage two and an operation code decoder 75 in stage three. That is the third
When the second return command is detected in the cycle, the No.
This is a method for outputting the -OP signal to line 7. The Ruru decoder 22 in stage 2 converts the second instruction into the second instruction in the third cycle.
Decode it as a return instruction and get stack boi/ri28! IJ is used to reduce its contents by a unit amount to (i-2). This value is output to the data store address register 30 in stage 3 as the ninth data store address in the stack 10.
ステージ3にるるデコーダ75は、第3サイクルで、最
初の結合を最初のリターン命令としてデコードし、かつ
データ・ストア8を制御して1.最初のデータ・ストア
・アドレス(i−1)に基いてスタック1oの最初のデ
ータへアクセスさせ、ステージ1の@17を介して、最
初のデータを値S、 とじてスタンクェート
レジスタ18へ出力させる。In the third cycle, the decoder 75 in stage 3 decodes the first combination as the first return instruction and controls the data store 8 to perform 1. Access the first data in stack 1o based on the first data store address (i-1), and output the first data as value S to the stack register 18 via @17 of stage 1. .
第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へ出力させる。At the beginning of the fourth machine cycle, stack register 1
8 writes 81-1, removes it, and stack points 28 (
i-2) fjr:giHl. In the fourth cycle following the third cycle, the decoder 20 in stage 1 again generates the second instruction and the second return instruction for the second time.
multiplexer 12'.
T! (1m, the contents of stack register 18 S,
-1 is transferred to the instruction store 6 as the third address. This causes the third instruction to be fetched from instruction store 6. The stage 2 decoder 22 outputs I! No-OP signal on 7 and answer, 4th
The operation on stack pointer 28 is omitted in the cycle. The decoder 75 in stage 3 decodes the second instruction as a second frame 7 instruction in the fourth cycle,
Data store 8 is controlled to create a second data store.
The second data of the stack 10 is accessed based on the address (i-2), and the second data e, rtfsi-2 is stored in the stack register 1 via the register 19 of stage 1.
Output to 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
へ出方させる。On the fifth cycle, stack register 18 is 5
i-2 is written, and stack boi/ri28 is (i
-2). Decoder 20 in stage 1
In the fifth cycle following the fourth cycle, the third branch is decoded as the first next instruction, and the multiplexer 12
is controlled to input the first next instruction address to the instruction store 6. As a result, the fourth command is fetched from the command store 6. The Ruru decoder 22 in stage 2 is
In the fifth cycle, the third instruction is decoded as the first next instruction, and the data store address generator 24 of FIG.・Store address register 3o
have them appear.
ステージ3にるる動作コード・デコーダ75は、@7に
るるNo−OPN号に応答して、第5サイクルでデータ
・ストア8に対する動作を省略する。Operation code decoder 75 in stage 3 omits operations on data store 8 in the fifth cycle in response to the No-OPN signal in @7.
この例では、スタック・レジス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つの連続
したリターン命令に対する針金ストア・アクセシノグ動
作は、時間的に拡張される。In this example, the contents in stack register j 1181i and stack register 28 do not change in @6 machine cycles. In the 6th cycle following the 5th cycle, the lutecoder 20 in stage 1 decodes the fourth + as the second next combination and switches the multiplexer 12 to I[I?
1llll, then the second next order store address 6
to use human power. Thereby, the fifth instruction is fetched from m% store 6 to 7. Ruru decoder 22 in stage 2
In the sixth cycle, decodes the fourth instruction as the next combination of the second and controls the data store address 'tQ generator 2a to write the next data store address of @2. , to the data store address register 50 in stage 3. Operation code for stage 3
In the sixth cycle, the decoder 75 decodes the third instruction or the first next instruction and controls the data store 8 to input the third data based on the first next data store address. Allow access. In this way, a wire store accessinog operation for two consecutive return instructions is extended in time.
ここで理解すべきは、前述のNo−UP信号を発生する
には、a令シーケンシノグ・デコーダ20ではなく、デ
ータ・ストア・アクセシ/グ・デコーダ22で発生させ
てよいことである。It should be understood that the aforementioned No-UP signal may be generated by the data store access decoder 22 instead of the a-order sequencing decoder 20.
これまで説明した、2個の連続したリターし命令に対す
る呻作は、自動的に任意数の連続したリター/に適合さ
せることができる。もし2Nf固の連続したリターン命
令が存在すれば、それらは3m回のマシン・サイクルで
実行され、3番目ごとのサイクルは、前述したようにハ
ードウェアによってNo−OPfi号を自動的に発生さ
れる。もしく2N+1“)個の連続したリターン命令が
存在すれば、それらは(3N+1)回のマシ7・サイク
ルで実行される。ここでNは、ハードウェアによって実
行されるNo−OP倍信号数でるり、(2N+1)は、
リターン命令の数である。Nはゼロ、又は任意の正の整
数でるるとする。The response described above for two consecutive litter commands can be automatically adapted to any number of consecutive litters. If there are 2Nf-specific consecutive return instructions, they will be executed in 3m machine cycles, and every third cycle will automatically generate a No-OPfi signal by the hardware as described above. . If there are 2N+1") consecutive return instructions, they will be executed in (3N+1) better than 7 cycles, where N is the number of No-OP times signals executed by the hardware. Ruri, (2N+1) is
This is the number of return instructions. It is assumed that N is zero or any positive integer.
マスクされない割込みが愛敬られると、スタック10が
影響を受ける。それは、割込まれたプログラムの適当な
リター7・アドレスが、1だけ増す口されたスタック・
ポイ/りを使用して(sp=SP+1)、データ・スト
ア8へアドレスとして瞥込まれる前に、スタック・レジ
スタ18へ入れられるからでるる。割込みは、命令スト
ア6の適当な割込エントリイ・アドレスへブランチさせ
る。When an unmasked interrupt is honored, the stack 10 is affected. It indicates that the appropriate return address of the interrupted program is incremented by 1, and the accessed stack address is incremented by 1.
Using a pointer (sp=SP+1), it is placed into the stack register 18 before being passed to the data store 8 as an address. Interrupts cause a branch to the appropriate interrupt entry address in instruction store 6.
2、アドレス発生ステージ(ステージ2)第41図のス
テージ2は、酪令実行の第2位相を実行する。ステージ
2の主な機能は、データ・ストア8の動作のために実行
アドレスを計算することでるる。データ・ストア8の動
作は宿舎実行の第3位相で起る。ステージ2で実行され
る他の機能は次のとおシでるる。2. Address Generation Stage (Stage 2) Stage 2 in FIG. 41 executes the second phase of execution of instructions. The main function of stage 2 is to calculate execution addresses for data store 8 operations. The operation of data store 8 occurs during the third phase of execution. Other functions performed in stage 2 are as follows.
(1) インデックス・レジスタの演算(2) イ
ンデックス・レジスタのテスト(3)保存レジスタの計
算
(4) インデックス・レジスタ/ストレージ・イン
ターフェイス(5) スタック・ポインタの更新
第4図はステージ2の機能的流れ図を示す。このステー
ジに示される全ての制御レジスタ(スタック・ポインタ
28を除く〕は、16ビントの長さを有する。スタック
・ポイ/り28は6ピントの長さである。次の表は、こ
れらの制御レジスタをリストしたものでろる。(1) Index register operation (2) Index register test (3) Save register calculation (4) Index register/storage interface (5) Stack pointer update Figure 4 shows the functional stage 2 Show a flowchart. All control registers shown in this stage (except stack pointer 28) have a length of 16 pins. Stack pointer 28 is 6 pints long. The following table lists these control registers: It's a list of registers.
インデックス・レジスタ(Xl、X2)44ペース・レ
ジスタ46
マスク・レジスタ48
増加レジスタ(w 1 、w 2 ) 4q転送レジス
タ50
スタック・ポインタ28
加算器52は、16ビントの、「2の補数」加算器でめ
る。/70算器52は、「より大きい」、「より小さい
」又は「等しい」を判別する論理機能を有する。0口算
器52は、減算のために右方へ入力された直の補数を形
成することができる。LSBへのキャリイに対して別個
の制御が実行される。44 index registers (Xl, Demeru. The /70 calculator 52 has a logic function that determines "greater than", "less than", or "equal". Zero counter 52 is capable of forming a direct complement input to the right for subtraction. Separate control is performed for the carry to LSB.
これによって、0口算器は、「2の補数」演算を実けし
、又は1ピント・オフセンH−挿入することができる。This allows the zero-counter to implement "two's complement" arithmetic or to insert one pinto off-sen H-insertion.
1ピント・オフセントは、比較機能において、「より小
さいか等しい」機能を作るため使用される。0口算器5
2′ も16ビントの「2の補数」加算器である。One pint offset is used in the comparison function to create a "less than or equal to" function. 0 account calculator 5
2' is also a 16-bin "two's complement" adder.
アドレス発生論理へのインターフェイスは次のとおりで
ある。The interface to the address generation logic is as follows.
(1) 結合における16ビントのオベラ/ドraJ
フィールド
(2)保存レジスタ38に対する16ピント出力(3)
ステージ3に対する実行アドレス出力(16ビツト
〕
(4) ステージ3に対する16ビントの入力バス及
び出力バス
(5) 制御のための動作コード
(6) インデックス比較フラグ(状況レジスタに富
まれる)
(7) ソフトウェア・フラグ(状況レジスター言ま
れる〕
線26上に有効なデータ・ストア・アドレスを発生する
には、アドレス指定の4つの方法の1つを夷目しなけれ
ばならない。4つの方法は前に説明した。全ての実効ア
ドレスは、緒令夷酊の位相2の終りに利用可能となる。(1) 16 bint obera/draJ in combination
Field (2) 16 pinto output to save register 38 (3)
Execution address output for stage 3 (16 bits) (4) 16-bit input and output bus for stage 3 (5) Operation code for control (6) Index comparison flag (rich in status register) (7) Software flags (referred to as status registers) To generate a valid data store address on line 26, one of four methods of addressing must be used. As explained above, all effective addresses are available at the end of Phase 2 of the start-up process.
実効アトtレスは、位相3で使用するため、ステージ3
へ送うれ−る。Effective attress is used in phase 3, so stage 3
I will send it to you.
インデックス・レジスタの動作
第4図に示される機能の残りの部分は、他のアドレス発
生演算機能を実行するために使用される。Index Register Operation The remainder of the functionality shown in FIG. 4 is used to perform other address generation arithmetic functions.
インデックス・レジスタの演算
この機能は、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で実ひされる。Index register arithmetic This function performs the 0-counter 52, index register [
Xl, X2] 44, increase '10' sister (Wl, W2
) 49 and by feedbanking the relot calculator 52 to the index register. The @Noh that can be practiced are as follows. X1=
Xi+a, X1=Xi+Wj, X1=Xi-Wj, i=
1.2 and j=1.2° These operations are implemented in phase 2 of the visitation run.
インデックス・レジスタのテスト
加算器52の結果によってインデックス比較フラグ(I
CF)が設定され、このフラグは、条件付きブランチ命
令rBIcFJによって使用される。υΩ算器52は、
適当なインデックス・レジスタから即1直(又は適当な
増加レジスタの内容)を減算することによって、インデ
ックス・レジスタの内容に影響を与えることなく、選択
されたインデックス・レジスタと、オペランドraJ又
は選択された増加レジスタとを比較する。指定されたテ
ストの結果に対して、フラグがセントされる。The result of the index register test adder 52 sets the index comparison flag (I
CF) is set and this flag is used by the conditional branch instruction rBIcFJ. The υΩ calculator 52 is
By subtracting the immediate value (or the contents of the appropriate increment register) from the appropriate index register, the selected index register and the operand ra Compare with increment register. A flag is sent for the result of the specified test.
このテストは、分合実行の位相2で起り、位相2の終り
に、比較フラグがセントされる。この比較の結果に基い
てブランチするBICFa令は、もし次の命令としてコ
ード「ヒされれば有効でるる。This test occurs during phase 2 of the merge execution, and at the end of phase 2, the compare flag is sent. The BICFa instruction that branches based on the result of this comparison will be valid if the next instruction is coded ``Hi''.
保存レジスタの計算
0口算器52からインデックス・レジスタへのフィード
バック通路は、保存レジスタ38に対しても利用0Tf
TI2でろる。保存レジスタは位相2の終りにロードさ
れる。この@能はA S V 砧今によって実行される
。The feedback path from the save register calculation zero counter 52 to the index register is also used for the save register 38.
It's TI2. The save register is loaded at the end of phase 2. This @Noh will be performed by ASV Kinutima.
インデックス・レジスタとデータ・ストアとのインター
フェイスは、直接又は転送レジスタ5゜を介して行われ
る。転送レジスタとのインターフェイスは、所望ならば
、データ孕一時的にそこに保存させること全可能にし、
またそこからデータをロードすることをiにする。デー
タ・ストア8が読出されると、その内容は、位相6の終
りに、適当なインデックス・レジスタへランチサレル。The interface between the index register and the data store is done directly or via transfer register 5°. Interfacing with the transfer register allows all data to be temporarily stored there, if desired.
Also, set i to load data from there. When data store 8 is read, its contents are transferred to the appropriate index register at the end of phase 6.
データ・ストアへの書込みは位相3で起る。Writing to the data store occurs in phase 3.
転送レジスタ
転送レジスタ50は、データ・ストア8とステージ2に
おける全ての制御レジスタとの間で血路を形成するため
に使用される。この通路は双方向性であり、データは転
送レジスタを介してデータ・ストアから任意の制御レジ
スタへ、また制御レジスタからデータ・ストアへ転送さ
れることができる。Transfer Register Transfer register 50 is used to provide a link between data store 8 and all control registers in stage 2. This path is bidirectional, and data can be transferred from the data store to any control register and from the control register to the data store via the transfer register.
更に、転送レジスタは、データ・ストア8と全ての制御
レジスタとの間に設けられたデータの一時的保存場所と
して使用される。データは11品令の位相2で、転送レ
ジスタから宛先レジスタヘロードされる。IONレジス
タから転送レジスタヘデータを転送する場合、転送が位
相2で起るように、有効な直接通路が転送レジスタに設
けられる。Additionally, the transfer register is used as a temporary storage location for data provided between the data store 8 and all control registers. Data is loaded from the transfer register to the destination register in phase 2 of 11 orders. When transferring data from the ION register to the transfer register, an effective direct path is provided to the transfer register so that the transfer occurs in phase two.
データ・ストア8の読出しは、位相3の終りに、現酪令
の動作コードによって指定されたレジスタへ、データ・
ストアの内容を転送させる。転送レジスタからデータ・
ストアへの瞥込みは、位相3で起る。A read of data store 8 is performed at the end of phase 3 by loading the data into the register specified by the current operation code.
Transfer the contents of the store. Data from transfer register
A look into the store occurs in phase 3.
成る種の命令は、その実行の位相4でオペランドraf
t必要とする。これらの命令のfcヤに、ステージ2は
、位相2の終りに、オペランドraJを実効アドレス観
へ送らねばならない。この1直は、位相3でステージ3
を介して通され、命令の動作コードによって指定された
ところに従って、ステージ4の中の適当なレジスタへ送
られる。それは必要に応じて位相4で使用することがで
きる。In phase 4 of its execution, an instruction of the type raf
trequires. For these instructions, stage 2 must send operand raJ to the effective address view at the end of phase 2. This first shift is phase 3 and stage 3.
and to the appropriate register in stage 4 as specified by the instruction's operation code. It can be used in phase 4 if required.
第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か
ら選択される。Data store stage 3 of FIG. 5 includes a data store 8, a data store address register 30, and a manual selection multiplexer (MUX) 54. Stage 3 is data placement and quenching 111 for R8P.
produce a fruitful crop. Data store 8 is for 16 bit words +V and addresses oT up to 655361 words.
[is. A 16-pit data store address register 30, along with image selection logic, is provided to select between the effective address generated by stage 2 and the address provided by stage 10 logic 34. Image selection is performed by motion code decoder 75. Operation code decoder 75 controls multiplexer 54 and data store address register 50 in response to the operation code input on @7. For a glance operation into data store 8, the data source is selected from (1) stage 4, (2) stage 2, (3) stage 1 stack register 18, . . . (4) I10 logic stage 34. .
データ・スートア8の出力(線56及び17)は、位相
3の完了時に、他の4つのステージで使用するため、現
砧令の動作コードによって指定された適当なレジスタへ
導かれる。データ・ストアへの書込動作は、ステージ2
で発生され几実効アドレスを使用して、訪令天行の位相
3で起る。記はされるデータは、位相2の終りに源レジ
スタで利用0T能なデータでるる。The output of data store 8 (lines 56 and 17) is routed to the appropriate register specified by the current operating code for use in the other four stages upon completion of phase 3. Write operations to the data store are stage 2
Occurs in phase 3 of the visit, using the effective address. The data being written becomes available in the source register at the end of phase 2.
データ・フェッチ動作は合金実行の位相3で実行され、
データは現ff、Q、の動作コードによって指定された
レジスタに置かれる。データ・ストア8カラステージ4
ヘデータをロードする場合、データは位相3の終りに適
当なレジスタに置かれ、次いで位相4で、加算器を通さ
れ(条件コードがセントされる〕、位相4の終りに宛先
レジスタへ書込まれる。The data fetch operation is performed in phase 3 of alloy execution;
The data is placed in the register specified by the current ff, Q, operation code. Data store 8 color stage 4
When loading data, the data is placed in the appropriate register at the end of phase 3, then passed through the adder (condition code is sent) in phase 4, and written to the destination register at the end of phase 4. .
I10論理ステージ34によるデータ・ストア8の使用
は、サイクル・スチール動作によって行われる。ステー
ジ34がデータ・ストア動作を要求する時、バイブライ
ノが停thgれ、その間、データ・ストア8のサイクル
がステージ34によって使用される。I10動作につい
て1つのサイクル・スチールが終ると、パイブライ/が
再開される。命令の首尾一貫し友実けを維持する九め、
パイプライ/の全てのステージが停止されねばならない
。。Use of data store 8 by I10 logic stage 34 is accomplished by cycle stealing operations. When stage 34 requests a data store operation, the vibrator is stopped thg while data store 8 cycles are used by stage 34. After one cycle steal for an I10 operation, the pipe stream is restarted. Ninth, to maintain consistency and integrity in commands;
All stages of the pipeline must be stopped. .
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吏用しない
からでるる。6L command r A Z Z, "a (I) J (Immediately turn on +1 avz and put the result on z),"
Phase 4 operation (7) 7ta6 to stage 4 operand r
For those that require =Jk, a direct path is provided from the data store address register 60 to the appropriate register in stage 4. This path is placed on the dynamic address line by stage 2, making it available as input data to stage 4. This is because the operation does not use the data store 8 during its execution.
これまで説明したリアルタイム信号プロセンサ・チップ
のa令パイプライン・アーキテクチャ−は、データ・ス
トアの区分された領域に置かれている64レベルのアド
レス・スタックへアクセスするため、ブランチ及びリタ
ーン動作の間に、地中されない命令位相を有利に利用す
る。アドレス・スタックは、実際には岐舎フエンチ・ス
テージよりもいくつかの命令位相を超えて置かれている
が、アドレス・スタックの内容は、ステージ1に置かれ
たスタック・レジスタの助け?かりて、即時に利用可能
でめる。眺に、プロセンサ・チップ上では、アドレス・
スタックによって余分のチップ領域や電力が消費される
ことはない。本発明を利用しなければ、アドレス・スタ
ックを命令フェッチ・ステージで直ちに利用するため、
それをプロセッサ・チップ上に設けねばならない。更に
、データ・ストアにおけるアドレス・スタックの区分サ
イズは小さくすることができ、節約された領域は他のデ
ータ装置に使用することができる。The A-order pipeline architecture of the real-time signal processor chip described so far provides access to a 64-level address stack located in partitioned areas of the data store, so that during branch and return operations , take advantage of command phases that are not underground. The address stack is actually placed a few instruction phases beyond the Kisha-Fench stage, but the contents of the address stack are stored with the help of stack registers placed in stage 1? available for immediate use. As you can see, on the Prosensor chip, the address
The stack consumes no extra chip area or power. Without the present invention, the address stack would be immediately utilized at the instruction fetch stage;
It must be provided on the processor chip. Furthermore, the partition size of the address stack in the data store can be reduced and the saved space can be used for other data devices.
第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番地FIG. 1 is a functional block diagram of the real-time signal processor, FIG. 2 is a diagram showing the instruction pipeline operation, and FIG. 3 is the l! ! II
FIG. 4 is a functional block diagram of the address generation stage, and FIG. 5 is a functional block diagram of the data store stage. 6...ftJe store, 8...data store, 10...Okinori address stack, 12...
Instruction address multiplexer, 14...Instruction address increase 7711B, 16...Sequential address register, 18...Stack register, 2
o...Kinrei Sequence/Sing Decoder, 22...
・Data store accessing decoder, 24-・
...Data store address generation 5% 2s...
Stack pointer, 60...Data store address register (υ5AR), 54...Input selection multiplexer, 75...Operation code decoder. Continued from page 10 Inventors Abraham Peired 10 27, Snose Rennie Court, California, USA 0 Inventors Frederick N. Lis 1466 Mohawk Road, Mohegan Lake, New York, USA 0 Inventors Michael Earl Cosgrove 2626 Alvey Drive, Highmarket, Virginia, United States
Claims (2)
憶するデータ記憶装置と、命令の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(1) Addresses of an instruction storage device for storing instructions, a data storage device for storing data, a k-th first stage for controlling the seven etchings and sequences of instructions, and the above-mentioned data write device? The second stage for generating the data register comprises a pipe-life instruction machine containing @3 stages for accessing the device, each of the stages containing a plurality of commands each containing an operation code and an opera/dot, respectively. a stored program data processor operating in a redundant mode for executing consecutive instructions, wherein instructions are accessed from said instruction storage device and instructions are executed on data accessed from said data storage device; an instruction address stack provided in a partitioned area of the data storage lid for storing instruction addresses of the instruction storage device; and a multiplexer provided in the first stage; a multiplexer having an output connected to an address input of the device and having a plurality of inputs for inputting instruction addresses to said instruction storage; and a sequential multiplexer for storing addresses of sequential storage locations in said instruction storage. - an address register and an address incrementer provided in said first station, said incrementing input connected to said multiplexer output and said incrementing said sequential address register for incrementing said instruction address; address multiplier with output connected to the power of the above multiplexer
The JO unit and the register provided in the first stage store the instruction address outputted from the address multiplier or the instruction address stack, so that the output of the sequential address register or the instruction address is stored. a stack register having an input selectively connected to an output from the address stack and having an output selectively connected to an input of the multiplexer or an input of the instruction address stack; a decoder disposed in the stage, the decoder having an input connected to an output of the instruction storage device and an output connected to the multiplexer, the decoder being responsive to an operational code of an instruction accessed from the instruction storage device; a first decoder for controlling an address input of the instruction storage device to be selectively connected to an output of the sequential address register or an output of the stack register via the multiplexer; The fc is accessed from the instruction storage device by a lever provided on the stage.
a second decoder having an input connected to an output of the instruction storage device for decoding operational codes of enemy commands and controlling access to the data storage device; a device having an input connected to an output of the instruction storage device and an input connected to the second decoder, the instruction storage device in response to decoding an operational code in the second decoder; an address generator for generating an address of the data storage device from an operand of an instruction accessed from the second stage; and a pointer device provided in the second stage, the pointer device having a control input connected to the second decoder; increasing or decreasing the address of a storage location in the data storage device;
a pointer device for specifying the storage location of the friend instruction address last stored in the instruction address stack;
a register provided in said third stage, having an input connected to an output of said address generator and an output of said voice retrieval device for accessing a storage location of said data storage device; an address register having an output connected to an address input of said data storage device; and a decoder provided in said third stage having an input connected to an output of said instruction storage device and an address register connected to said data storage device; IIJ 1 receives a connected control output and responds to an operation code of a branch instruction accessed from said instruction store so that the contents of said stack register are input to a data input of said data store.
111, and the multiplexer, in response to the decoding of the operation code in the first decoder, transfers the operands of the instruction accessed from the instruction storage device as a branch address to the instruction storage device. Forward. one of its inputs is connected to an output of the instruction storage device, the first decoder is responsive to the operation code of the branch instruction so that the operands of the branch instruction are transferred via the multiplexer to the output of the instruction storage device. the second decoder is responsive to the operation code of the branch instruction; , increasing or decreasing the void/return device so that the contents of the stack register are stored in the data storage device as a return address from the branch instruction specified by the operation code of the branch instruction. and controlling the output of the contents of said pointer device to said address register as an address of a storage location shore of said instruction address stack. ! L
憶するデータ記憶装置と、命令のフェッチ及びシーケ/
スを制御するための第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。(2) An instruction storage device that stores instructions, a data storage device that stores data, and an instruction fetch/sequence device.
a first stage for controlling the address of the data storage device, a second stage for generating an address of the data storage device, and a third stage for accessing the data storage device; Each of the stages operates in a redundant mode to execute a plurality of consecutive instructions, each containing an operational code and an operand, and instructions are accessed from said instruction store and instructions are accessed from said data store and executed on said data. In the storage program type data processor in which the above is executed, an instruction address stack provided in a partitioned area of the data storage device and an instruction address stack for storing instruction addresses of the instruction storage device; a multiplexer provided, the multiplexer having an output connected to an address input of the instruction storage device and having a plurality of inputs for inputting instruction addresses to the instruction storage device; a sequential address register for storing addresses of sequential storage locations in the first stage;
an address increment connected to the output of the multiplexer to increment the instruction address, and an address increment connected to the input of the multiplexer via the sequential address register to increment the instruction address; and a register provided in the first stage for storing the instruction address outputted from the address incrementer or the instruction address stack. a stack register having an output selectively connected to an output from the instruction address stack and an output selectively connected to an input of the multiplexer or an input of the instruction address stack; a fixed decoder mounted on the stage and configured to develop an input connected to the output of the multiplexer so that the address input of the instruction store is connected to the multiplexer in response to an operating code of an instruction accessed from the instruction store; i to be selectively connected to the output of said sequential address register or to the output of said multiplexer via
+ a first decoder for controlling the data allocation device; and a decoder provided in the second stage for decoding an operational code of an instruction accessed from the instruction storage device to control access to the data allocation device; a second decoder having an input connected to an output of the instruction storage device;
an address generator disposed in the stage having an output connected to the output of the instruction storage device and an input connected to the second decoder, the address generator being responsive to the decoding of the operational code in the second decoder; an address generator for generating an address for the data arrangement device; and a point/reference device in the second stage, the point/reference device being connected to the second decoder and having nine control inputs, for generating an address for the data arrangement device. a register provided in the third stage; a register provided in the third stage; a register provided in the third stage; In order to access the recorded location of the data storage device, an output connected to the output of the address generator and an output of the pointer device is connected, and an output connected to the address input of the data location device. an address register having an address register, and a friend decoder provided in said third stage having a friend power connected to an output of said instruction storage device, and a control output connected to said data arrangement device, said instruction storage device; a third decoder for controlling input of the contents of said stack register to a data input of said data arranger in response to an operation code of a branch instruction accessed from said branch instruction; a branch address register for storing an address, the multiplexer for transferring the contents of the branch address register to the instruction storage in response to decoding of the operation code in the first decoder. , one of its inputs is connected to the branch address register, the first decoder is configured to determine, in response to an operation code of a branch instruction accessed from the instruction storage, the contents of the branch address register as described above. controlling the transfer to the address input of the instruction storage device via a multiplexer, and controlling the transfer of the sequential
The second decoder controls loading of the address in the address register into the stack register, and the second decoder controls loading of the address in the address register into the stack register in response to the operation code of the branch instruction. (2) controlling the increase or decrease of said pointer device, and controlling said pointer device to be stored as a return address from a branch operation specified by a code in said data arrangement device; An instruction branch characterized in that it controls the output of contents to said address register as an address of storage location, 7, of said instruction address stack! ! ! 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 (en) | 1983-01-13 |
| JPS6058490B2 JPS6058490B2 (en) | 1985-12-20 |
Family
ID=23072986
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP57064838A Expired JPS6058490B2 (en) | 1981-06-30 | 1982-04-20 | Instruction branch mechanism |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US4399507A (en) |
| EP (1) | EP0068163B1 (en) |
| JP (1) | JPS6058490B2 (en) |
| DE (1) | DE3279007D1 (en) |
Families Citing this family (76)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| NL8006163A (en) * | 1980-11-12 | 1982-06-01 | Philips Nv | DEVICE FOR SORTING DATA WORDS ACCORDING TO THE VALUES OF ATTRIBUTE NUMBERS INCLUDING THESE. |
| US4541045A (en) * | 1981-09-21 | 1985-09-10 | Racal-Milgo, Inc. | Microprocessor architecture employing efficient operand and instruction addressing |
| JPS58129550A (en) * | 1982-01-27 | 1983-08-02 | Toshiba Corp | Arithmetic sequence device |
| JPS58189739A (en) * | 1982-04-30 | 1983-11-05 | Hitachi Ltd | Data processing system |
| JPS592143A (en) * | 1982-06-29 | 1984-01-07 | Hitachi Ltd | information processing equipment |
| 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 (en) * | 1983-07-08 | 1985-01-26 | Hitachi Ltd | Memory controller |
| US4578750A (en) * | 1983-08-24 | 1986-03-25 | Amdahl Corporation | Code determination using half-adder based operand comparator |
| JPS6051948A (en) * | 1983-08-31 | 1985-03-23 | Hitachi Ltd | Branch destination buffer storage device |
| JPS6074034A (en) * | 1983-09-30 | 1985-04-26 | Toshiba Corp | Pipeline control system |
| JPS60107141A (en) * | 1983-11-16 | 1985-06-12 | Fujitsu Ltd | Branch control system |
| JPS60156151A (en) * | 1983-12-23 | 1985-08-16 | Nec Corp | Memory access controlling device |
| AU553416B2 (en) * | 1984-02-24 | 1986-07-17 | Fujitsu Limited | Pipeline processing |
| US4600986A (en) * | 1984-04-02 | 1986-07-15 | Sperry Corporation | Pipelined split stack with high performance interleaved decode |
| 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 |
| JPH0776917B2 (en) * | 1984-12-29 | 1995-08-16 | ソニー株式会社 | Micro computer |
| 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 (en) * | 1985-11-15 | 1995-05-15 | 株式会社日立製作所 | Information processing equipment |
| US4709324A (en) * | 1985-11-27 | 1987-11-24 | Motorola, Inc. | Data processor control unit having an interrupt service using instruction prefetch redirection |
| JPS62145326A (en) * | 1985-12-20 | 1987-06-29 | Toshiba Corp | Microprogram control circuit |
| DE3751503T2 (en) * | 1986-03-26 | 1996-05-09 | Hitachi Ltd | Data processor in pipeline structure with the ability to decode and execute multiple instructions in parallel. |
| JPS62226232A (en) * | 1986-03-28 | 1987-10-05 | Toshiba Corp | Control system for branch instruction |
| JP2545789B2 (en) * | 1986-04-14 | 1996-10-23 | 株式会社日立製作所 | Information processing device |
| 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 (en) * | 1987-08-06 | 1989-02-16 | Otto Mueller | STACK CONTROL |
| 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 (en) * | 1987-12-25 | 1997-04-16 | 가부시기가이샤 히다찌세이사꾸쇼 | Data processing device suitable for high speed processing |
| 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 |
| EP0365322A3 (en) * | 1988-10-19 | 1991-11-27 | Hewlett-Packard Company | Method and apparatus for exception handling in pipeline processors having mismatched instruction pipeline depths |
| 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 (en) * | 1990-06-01 | 1992-02-07 | Sony Corp | Processor processing method |
| US5202975A (en) * | 1990-06-11 | 1993-04-13 | Supercomputer Systems Limited Partnership | Method for optimizing instruction scheduling for a processor having multiple functional resources |
| EP0535107B1 (en) * | 1990-06-11 | 1999-12-08 | Cray Research, Inc. | Method for optimizing instruction scheduling |
| 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 (en) * | 1992-10-13 | 2001-09-25 | ソニー株式会社 | Branch instruction execution method and branch instruction execution device |
| JP3345787B2 (en) * | 1993-04-13 | 2002-11-18 | 三菱電機株式会社 | Data processing device |
| 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 (en) * | 1995-05-11 | 1999-02-17 | 松下電器産業株式会社 | Processor and program translator |
| 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 |
| US6009517A (en) * | 1997-10-06 | 1999-12-28 | Sun Microsystems, Inc. | Mixed execution stack and exception handling |
| US6317796B1 (en) * | 1997-10-06 | 2001-11-13 | Sun Microsystems, Inc. | Inline database for receiver types in object-oriented systems |
| US5958039A (en) * | 1997-10-28 | 1999-09-28 | Microchip Technology Incorporated | Master-slave latches and post increment/decrement operations |
| FR2770660B1 (en) * | 1997-11-03 | 2000-08-25 | Inside Technologies | MICROPROCESSOR, ESPECIALLY FOR CHIP CARD |
| 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 (en) * | 2008-08-11 | 2014-10-29 | 日本電産サンキョー株式会社 | Non-contact IC card reader and data reading method |
| 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 (en) * | 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 (en) * | 1975-12-12 | 1982-10-28 | Ibm Deutschland Gmbh, 7000 Stuttgart | Function modification facility |
| 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/en not_active Expired
- 1982-06-02 DE DE8282104814T patent/DE3279007D1/en not_active Expired
- 1982-06-02 EP EP82104814A patent/EP0068163B1/en not_active Expired
Also Published As
| Publication number | Publication date |
|---|---|
| EP0068163A3 (en) | 1986-06-25 |
| EP0068163A2 (en) | 1983-01-05 |
| JPS6058490B2 (en) | 1985-12-20 |
| US4399507A (en) | 1983-08-16 |
| DE3279007D1 (en) | 1988-10-13 |
| EP0068163B1 (en) | 1988-09-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPS585847A (en) | Instruction branch mechanism | |
| KR100208889B1 (en) | Parallel processing device amd parallel processing method | |
| EP0996057B1 (en) | Data processor with an instruction unit having a cache and a ROM | |
| US6272596B1 (en) | Data processor | |
| JPS6313215B2 (en) | ||
| JPH0427573B2 (en) | ||
| US4539635A (en) | Pipelined digital processor arranged for conditional operation | |
| JPH04109336A (en) | Data processor | |
| JPH03158928A (en) | Data processor | |
| US7546442B1 (en) | Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions | |
| JPH0743648B2 (en) | Information processing equipment | |
| JP2690406B2 (en) | Processor and data processing system | |
| JP3490005B2 (en) | Instruction control apparatus and method | |
| JPS60178580A (en) | Instruction control system | |
| JPH02105937A (en) | Data processor | |
| JPH06103064A (en) | Data processing device and data processing method thereof | |
| JP2861560B2 (en) | Data processing device | |
| JPS62501940A (en) | Improvement of microprogram controller | |
| JP2636821B2 (en) | Parallel processing unit | |
| US6996702B2 (en) | Processing unit with cross-coupled ALUs/accumulators and input data feedback structure including constant generator and bypass to reduce memory contention | |
| JPH07200406A (en) | Cash system | |
| US20050188183A1 (en) | Digital signal processor having data address generator with speculative register file | |
| JP3325309B2 (en) | Subroutine return instruction processing unit | |
| JPS5995646A (en) | Arithmetic control system | |
| JPS5947668A (en) | Information processor |