JPS5828609B2 - Tokushiyumei Reishiori Sochi - Google Patents

Tokushiyumei Reishiori Sochi

Info

Publication number
JPS5828609B2
JPS5828609B2 JP48114325A JP11432573A JPS5828609B2 JP S5828609 B2 JPS5828609 B2 JP S5828609B2 JP 48114325 A JP48114325 A JP 48114325A JP 11432573 A JP11432573 A JP 11432573A JP S5828609 B2 JPS5828609 B2 JP S5828609B2
Authority
JP
Japan
Prior art keywords
processing unit
signal
central processing
instruction
special
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
JP48114325A
Other languages
Japanese (ja)
Other versions
JPS49100938A (en
Inventor
エイ フアン ド ゴール エイチ
エイ デラジ ブルース
ビー ヒユーズ レオナード
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Digital Equipment Corp
Original Assignee
Digital Equipment Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of JPS49100938A publication Critical patent/JPS49100938A/ja
Publication of JPS5828609B2 publication Critical patent/JPS5828609B2/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking

Description

【発明の詳細な説明】[Detailed description of the invention]

本発明は、一般的にはデータ処理装置に関連し、更に詳
しく述べると、別個のクラスの命令を実行することがで
きるデータ処理装置に関する。 背景技術 データ処理装置における中央演算処理装置は、普通機械
命令として知られている一組の命令を実行することがで
きることを特徴とする。 これらの命令は、 「ワード向き」であることが普通で
ある。 すなわち、命令は、命令を記憶する記憶装置内の1ワー
ド内のディジタル・ビットの数と等しい長さを持つ単一
のデータ・フードに作用する。 しかしながら、たとえば浮動小数点算術演算のように、
2又はそれ以上の記憶用のワードを必要とするデータに
ついて演算を実行することが、ある場合には望ましい。 浮動小数点機能で使われるデータは、通常整数および小
数部分を分離する小数点を持った固定小数点2進数とし
て記憶される。 しかしながら、浮動小数点演算は、浮動小数点形式の数
で実行される。 従って、固定小数点数を指数と仮数とから成る浮動小数
点形式に変換することが必要である。 2進表記法では、仮数は、すぐ左に2進小数点を持ち、
その2進小数点の左に符号ビットを持った小数である。 指数値は、「2」のべき乗を表わし、それにより仮数は
乗ぜられ、固定小数点形式を得る。 通常、仮数は前にある0を取除き、仮数を左にシフトし
、同時に指数減小することにより「正規化」される。 通常の「ワード向き」命令は浮動小数点数で作動するこ
とはできない。 従って、このデータを取扱うことができる浮動小数点命
令のような別個のクラスの命令を持つのが普通である。 命令は別個のクラスにあるとはいえ、プログラムにとっ
ては、そのプログラミングの仕事を簡単化するために、
機械および浮動小数点の両方の命令を混ぜることができ
ることが極めて望ましい。 浮動小数点命令は、特別の応用用の特殊クラスを表わす
。 他のクラスは他の応用のために定められうる。 たとえば、あるクラスの命令は、正弦および余弦匝を直
接得るための命令のような各種の三角関数に基づいても
よい。 従って、特殊クラスの命令を実行することができるデー
タ処理装置は、そのクラスにより実行される機能が、中
央演算処理装置に対する重大な変換を必要とせずに容易
に変更されるならば、一層融通性があり望ましい。 ここで、本明細書中においては、中央演算装置が通常実
行できる普通の機械命令とは別個のクラスの命令の1例
として浮動小数点命令について説明されているが、本発
明は、このような浮動小数点命令に限らず、中央演算処
理装置が通常実行できる普通の機械命令とは異なる特殊
クラスの命令がその他にも考えられるので、本発明はこ
れらのすべての特殊クラスの命令にも同様に適用しうる
ものであるので、本明細書において、浮動小数点命令を
含めてこれらのすべての特殊クラスの命令を意味する用
語として「特殊命令」なる用語が使用されており、また
、このような特殊クラスの命令を実行しうる特別設計の
処理装置を意味する用語として「特殊命令処理装置」な
る用語が使用される。 従来技術 あるデータ処理機械においては、中央演算処理装置は特
殊命令を実行するための特別な回路を含んでいる。 この「ハードウェア」的方法でも、浮動小数点命令は、
通常の機械命令を行なうよりかなり多くの時間が、その
演算を終了するために必要であることが普通である。 浮動小数点命令も含めて、順次全ての命令を中央演算処
理装置が実行する時、浮動小数点命令の追加は、与えら
れたプログラムを完了するのに必要な全時間を極めて増
加する。 更に、ハードウェア的方法は製造される時に回路が中央
演算処理装置に組入れられることが必要であり、その結
果、中央演算処理装置における特殊クラスの命令が前も
って定められる。 特殊クラスにより行なわれる機能は、あまり容易に修正
されない。 もう1つの方法は、浮動小数点機能を実施するための機
械命令のセットから戒るサブルーチンを使うことである
。 中央演算処理装置は、浮動小数点命令をプロセッサを適
当なサブルーチンを実行するようにし向ける命令として
使うだけである。 この方法は、特殊クラスの命令により行なわれる機能を
比較的簡単に変更することを可能にしている。 しかしながら、この方法は、普通ノ・−ドウエア的方法
より極めて遅い。 その他の先行技術のデータ処理装置は別個の機能モジュ
ールを並列に使っている。 各モジュールは別個の機能を行ない。 データを記憶装置から直接に検索し、又は逆に直接記憶
することにより独立して作動する。 浮動小数点命令に関しては、各モジュールは、単一の浮
動小数点命令又は多くても限定されたグループに従って
作動する。 モジュールは並列して作動するので、2つ又はそれ以上
が同時に作動する。 単一の演算を実行するのに必要とされる時間は、これま
でのハードウェア的方法とほぼ同じであるが、モジュー
ルの並列的性質は、特殊命令を含むプログラムを実行す
るための時間を極めて減少する。 各モジュールは独立して作動することが可能でなければ
ならないので、回路の冗長性が必要である。 各モジュールは通常1つの機能だけ行ない、他の機能用
には容易に変換されえない。 これまで、並列モジュールを使うこの方法は大型データ
処理装置に限定されてきた。 従来技術の問題点 特殊命令(例えば、浮動小数点)を処理するための前述
した従来の3つの方法のうち最初の2つの方式、すなわ
ち、中央演算処理装置がその他の命令としてその特殊命
令を単に処理していく方式及び中央演算処理装置がその
特殊命令を処理するためサブルーチンへ飛び越しを行な
うようなサブルーチン方式では、中央演算処理装置がそ
の特殊命令の処理のために使用されてしまっているので
その間に他の処理を行なうことができないという欠点が
ある。 また、3番目の従来方式では、多数の処理装置が並列に
接続されていて、それらの並列動作を行ないうるように
するために各モジュールに付加的な回路を必要とすると
いう問題点を有している。 発明の目的 従って、通常の機械命令と混ぜられうる特殊クラスの命
令を実行するために、中央演算処理装置に接続可能な装
置を提供することが、本発明の目的である。 中央演算処理装置と平行して作動し、特殊クラスの命令
を処理するための装置を提供することが本発明のもう1
つの目的である。 本発明の更にもう1つの目的は、特殊セットの命令を実
行し、しかも命令が実行する機能が容易に変えられうる
ような装置を提供することである。 発明の要約 本発明は、中央演算処理装置の動作と浮動小数点命令等
の特殊命令を処理するための特殊命令処理装置の動作と
の間の相互連結及び同期化を行なうもので、それら装置
の並列接続を避けながらそれら装置の並列動作を可能な
ものとし、装置全体の価格を低減でき且つ装置の処理速
度を高めることにあります。 すなわち、本発明によれば、中央演算処理装置が特殊命
令を特殊命令処理装置へ転送しうるようにされ、そして
、特殊命令処理装置がその特殊命令を実行している間、
中央演算処理装置は、他の処理動作を行ないうるように
されている。 例えば、中央演算処理装置は、特殊命令処理装置が特殊
命令を実行している間に、特殊命令処理装置からの結果
に依存しない割込みを実行したり、その他のハウスキー
ピングオペレーションを行なうことができる。 より詳細に述べるならば、本発明によれば、特定の命令
コードにより同定される独立したクラスの特殊命令を実
行するための特殊命令処理装置が設けられ、中央演算処
理装置は、これらのコードを同定し、それ自身を除勢し
、中央演算処理装置およびその特殊命令処理装置との間
で送られる一連の制御信号を通して、特殊命令処理装置
は、中央演算処理装置と並行してその特殊命令を実行す
る。 いくつかの準備的ステップの後、中央演算処理装置はそ
の作動プログラムに戻ることができ、任意の他の機械命
令を順次実行し、一方、特殊命令処理装置も作動する。 従って、多くの機械命令が特殊命令の間に入れられるな
らば、中央演算処理装置は、あまり極だった作動遅延に
出会わな(ですむ。 実際に特殊命令を実行する特殊命令処理装置内では、制
御回路がその命令をデコードし、それを実行するために
必要な信号を生成する。 その装置は、データを保持するための記憶レジスタも含
んでいる。 制御回路は中央演算処理装置からは独立しているので、
他のクラスの命令に応答するデータ処理装置をつくるた
めに、各種の装置が中央演算処理装置に接続されうる。 本発明は、特許請求の範囲においては、特殊性をもって
示されている。 本発明の上記および他の目的の更に完全な理解は、添付
図面を参照しつつ行なわれる以下の記述により得られよ
う。 本発明は、多くのデータ処理装置に適用可能なものであ
るが、特殊データ処理装置によってもっとも容易に理解
される。 かかる装置の1つは、「プログラム・カウンタを含む複
数個のレジスタの1つを同定する命令アドレスを持った
データ処理装置」に対して1971年10月19田こ出
された米国特許第3.614,741号に説明されてお
り、その特許は、本発明の譲受人に譲渡されており、こ
こでは参考として組入れられている。 さて、第1図を見ると、中央演算処理装置10は、第1
図に示されたデータ処理装置の中心にある。 それは、通常記憶装置11から順次得られたプログラム
命令を実行する。 入出力タイプライタおよび磁気ディスク又はドラム・メ
モリのような周辺装置12も、母線により中央演算処理
装置10および記憶装置11に並列に接続する。 中央演算処理装置10が、特殊クラスの浮動小数点命令
、又は他の命令をデコードするとき、一連の対話的なス
テップが、中央演算処理装置10および実際に特殊クラ
スの命令を実行する装置13の間に起る。 これらのステップ中に、命令はその装置(以後浮動小数
点装置13という)に移る。 一度び、対話的なステップが完了すると、その浮動小数
点装置13は、それ以上中央演算処理装置とのやりとり
をせずに指示された機能を実行する。 浮動小数点命令を実行するために、浮動小数点装置13
は、浮動小数点数で作動し、このための回路を含んでい
る。 更に第1図を見ると、指数計算論理装置14は、指数お
よび他のデータ情報を処理する。 端数計算論理15は、浮動小数点数の小数部分を処理す
る。 スクラッチ・パッド・アキュムレータ・レジスタ装置1
6は、データを記憶し、レジスタとレジスタとの間の転
送のために使われるいくつかの汎用レジスタを含んでい
る。 レジスタ装置16内の各レジスタは、「ワー目を、通常
記憶装置11内に「ワード」として記憶されるn個のデ
ィジタル・ビットのグループを同定するという意味で使
って、いくつかの「ワー目を記憶することができる。 スクラッチ・パッド・アキュムレータ・レジスタ装置1
6によって、各ワードはレジスタ・バイトを構成し、レ
ジスタ・バイトの位置は、レジスタ番号およびバイト番
号により同定される。 たとえば、Ac1
TECHNICAL FIELD This invention relates generally to data processing devices, and more particularly, to data processing devices capable of executing distinct classes of instructions. BACKGROUND OF THE INVENTION A central processing unit in a data processing device is characterized by being capable of executing a set of instructions, commonly known as machine instructions. These instructions are typically ``word-oriented.'' That is, an instruction operates on a single data food whose length is equal to the number of digital bits in a word in the storage device storing the instruction. However, like floating point arithmetic operations,
It is sometimes desirable to perform operations on data that require two or more words of storage. Data used in floating point functions is usually stored as fixed point binary numbers with a decimal point separating the integer and fractional parts. However, floating point operations are performed on numbers in floating point format. Therefore, it is necessary to convert fixed point numbers to floating point format consisting of an exponent and a mantissa. In binary notation, the mantissa has the binary point immediately to the left,
It is a decimal number with a sign bit to the left of the binary point. The exponent value represents the power of "2" by which the mantissa is multiplied to obtain fixed point format. Typically, the mantissa is "normalized" by removing leading zeros, shifting the mantissa to the left, and simultaneously decreasing the exponent. Normal "word-oriented" instructions cannot operate on floating point numbers. Therefore, it is common to have a separate class of instructions, such as floating point instructions, that can handle this data. Even though the instructions are in a separate class, programs can use them to simplify their programming tasks.
It is highly desirable to be able to mix both machine and floating point instructions. Floating point instructions represent a special class for special applications. Other classes may be defined for other applications. For example, a class of instructions may be based on various trigonometric functions, such as instructions for directly obtaining sine and cosine. Thus, a data processing device capable of executing a special class of instructions becomes more flexible if the functions performed by that class can be easily modified without requiring significant transformations to the central processing unit. is desirable. Although floating point instructions are described in this specification as an example of a class of instructions that are distinct from ordinary machine instructions that a central processing unit can normally execute, the present invention In addition to decimal point instructions, there may be other special classes of instructions that are different from ordinary machine instructions that a central processing unit can normally execute, and the present invention applies equally to all these special classes of instructions. Therefore, in this specification, the term "special instructions" is used to mean all of these special classes of instructions, including floating-point instructions; The term "special instruction processing unit" is used to refer to a specially designed processing unit capable of executing instructions. In some prior art data processing machines, the central processing unit includes special circuitry for executing special instructions. Even with this "hardware" method, floating point instructions are
Typically, significantly more time is required to complete the operation than it would take to perform a normal machine instruction. When a central processing unit executes all instructions sequentially, including floating point instructions, the addition of floating point instructions greatly increases the total time required to complete a given program. Furthermore, the hardware method requires that the circuit be incorporated into the central processing unit when manufactured, so that special classes of instructions in the central processing unit are predefined. Functions performed by special classes are less easily modified. Another method is to use subroutines from the set of machine instructions to implement floating point functions. The central processing unit only uses floating point instructions as instructions to direct the processor to execute the appropriate subroutine. This method allows the functions performed by special classes of instructions to be changed relatively easily. However, this method is usually much slower than hardware methods. Other prior art data processing devices use separate functional modules in parallel. Each module performs a separate function. It operates independently by retrieving data directly from, or conversely storing, data directly from the storage device. For floating point instructions, each module operates according to a single floating point instruction or at most a limited group. The modules operate in parallel, so two or more operate at the same time. Although the time required to perform a single operation is approximately the same as traditional hardware methods, the parallel nature of the modules significantly reduces the time required to execute programs containing special instructions. Decrease. Circuit redundancy is necessary because each module must be able to operate independently. Each module typically performs only one function and cannot be easily converted for other functions. Until now, this method of using parallel modules has been limited to large data processing equipment. Problems with the Prior Art The first two of the three conventional methods described above for processing special instructions (e.g., floating point), i.e., the central processing unit simply processes the special instruction as any other instruction. In the subroutine method in which the central processing unit jumps to a subroutine in order to process the special instruction, the central processing unit is already used to process the special instruction. It has the disadvantage that other processing cannot be performed. In addition, the third conventional method has the problem that a large number of processing devices are connected in parallel, and each module requires an additional circuit to enable parallel operation. ing. OBJECTS OF THE INVENTION Accordingly, it is an object of the present invention to provide an apparatus connectable to a central processing unit for executing a special class of instructions that can be mixed with normal machine instructions. It is another aspect of the invention to provide an apparatus for processing special classes of instructions operating in parallel with a central processing unit.
This is one purpose. Yet another object of the invention is to provide an apparatus for executing a specialized set of instructions, yet in which the functions performed by the instructions can be easily changed. SUMMARY OF THE INVENTION The present invention provides interconnection and synchronization between the operation of a central processing unit and the operation of a special instruction processing unit for processing special instructions such as floating-point instructions. The purpose is to enable these devices to operate in parallel while avoiding connections, thereby reducing the overall cost of the device and increasing the processing speed of the device. That is, according to the present invention, the central processing unit is enabled to transfer a special instruction to the special instruction processing unit, and while the special instruction processing unit is executing the special instruction,
The central processing unit is enabled to perform other processing operations. For example, the central processing unit may perform interrupts or perform other housekeeping operations that do not depend on results from the special instruction processor while the special instruction processor is executing the special instruction. More specifically, according to the present invention, a special instruction processing unit is provided for executing special instructions of an independent class identified by specific instruction codes, and a central processing unit is configured to execute these codes. Through a series of control signals that identify, disable itself, and are sent between the central processing unit and its special instruction processing unit, the special instruction processing unit executes its special instructions in parallel with the central processing unit. Execute. After some preparatory steps, the central processing unit can return to its operating program and execute any other machine instructions in sequence, while the special instruction processing unit also operates. Therefore, if many machine instructions are placed between special instructions, the central processing unit will not experience too much delay in operation. Within the special instruction processing unit that actually executes the special instructions, A control circuit decodes the instruction and generates the signals necessary to execute it. The device also includes storage registers to hold data. The control circuit is independent of the central processing unit. Because
Various devices can be connected to the central processing unit to create a data processing device that is responsive to other classes of instructions. The invention is pointed out with particularity in the claims. A more complete understanding of these and other objects of the invention will be gained from the following description, taken in conjunction with the accompanying drawings. Although the invention is applicable to many data processing devices, it is most readily understood with respect to specialized data processing devices. One such device is disclosed in U.S. Pat. No. 614,741, which patent is assigned to the assignee of the present invention and is incorporated herein by reference. Now, looking at FIG. 1, the central processing unit 10
It is located at the center of the data processing device shown in the figure. It typically executes program instructions obtained sequentially from storage 11. Peripheral devices 12, such as input/output typewriters and magnetic disk or drum memories, are also connected in parallel to the central processing unit 10 and the storage device 11 by busbars. When central processing unit 10 decodes a special class of floating point instructions, or other instructions, a series of interactive steps occur between central processing unit 10 and the unit 13 that actually executes the special class of instructions. It happens in During these steps, instructions pass to the device (hereinafter referred to as floating point unit 13). Once an interactive step is completed, the floating point unit 13 performs the instructed function without further interaction with the central processing unit. A floating point unit 13 is used to execute floating point instructions.
operates on floating point numbers and contains circuitry for this purpose. Still referring to FIG. 1, index calculation logic 14 processes index and other data information. Fraction calculation logic 15 processes the fractional portion of floating point numbers. Scratch pad accumulator register device 1
6 contains several general purpose registers used to store data and transfer between registers. Each register in the register device 16 is designated by a number of ``words'', using the term ``words'' to identify a group of n digital bits that are typically stored as a ``word'' in the storage device 11. Scratch pad accumulator register device 1
6, each word constitutes a register byte, and the location of the register byte is identified by the register number and byte number. For example, Ac1

〔0〕は、装置16の最低位のレジス
タ・バイト位置を同定し、一方、Ac1〔3〕は、最高
位のレジスタ・バイト位置を同定する。 いくつかの母線が中央演算処理装置10と、浮動小数点
装置13および浮動小数点装置13内の回路とを接続す
る。 アドレス情報は演算処理装置10からアドレス母線11
を通って移動する。 中央演算処理装置10が浮動小数点装置13内で行なわ
れた演算の結果を「欲する」時はいつでも、それは母線
18を通してデータを受取る。 中央演算処理装置10からのデータ転送は、データ母線
19を通して起る。 両方向母線20は、後で説明されるように、2つの装置
の間で制御信号を送る。 浮動小数点装置13内の母線21は、装置14から装置
16にデータを転送し、一方、母線23はそこからの情
報を返す。 同様に、母線23および24は、端数計算論理装置15
からスクラッチ・パッド・アキュムレータ・レジスタ装
置16へおよびその逆向きにそれぞれデータを移す働ら
きをする。 中央演算処理装置10が一連の機械命令を実行する時、
それは第3A図に示された基本的な演算を行なう。 ステップ201は、第1図に示された記憶装置11のプ
ログラム・カウンタ51により同定される場所から命令
を取り出し、次の命令の点にプログラム・カウンタ51
を増加する。 それは次に、ステップ203が命令が浮動小数点命令で
ないと判断したならば、ステップ202において命令を
実行する。 このプロセスは、命令デコーダ52(第1図)が浮動小
数点命令を受取るまで、反復的に起る。 命令デコーダ52が浮動小数点命令を受取る時はいつで
も、ステップ203はステップ204に分岐する。 プログラム・カウンタ51は、命令が取り出されるとき
、通常の如く自動的に増加される(前に進められる)の
であるが、その命令が特殊命令(浮動小数点命令)とし
てデコードされるならば、プログラム・カウンタ51は
減分され(後へ進められる)、従って、元の位置へ戻さ
れる(ステップ204)。 この位置で、プログラム・カウンタ51は、記憶装置に
おける浮動小数点命令を指している。 プログラム・カウンタ51のその内容は、後述するよう
にしてその命令が特殊命令処理装置(浮動小数点装置)
13へ通された後、その特殊命令処理装置へロードされ
る(ステップ107)。 従って、中央演算処理装置が特殊命令処理装置の動作と
並行して割込みを行ない又はその他の動作を行なってい
るとしても、特殊命令処理装置は、処理している命令の
記憶場所の記録を有していることになる。 ステップ205においては、制御装置53(第1図)は
、制御母線20内の線を通してFPATTN信号を生成
することにより、命令デコーダ52内の信号に応答する
。 一度びステップ205が完了すると、中央演算処理装置
10は、浮動小数点装置13がFPSYNC信号を転送
するまで、待ち状態に戻る。 しかしながらこの状態中に、中央演算処理装置10は、
割込みルーチンを実行したり、又は他の機能を行なうこ
とができる。 しかしながら、実行されているプログラム内のいかなる
命令も処理することはできない。 ステップ205でFPATTN信号を生成する時に、浮
動小数点装置13は、前の浮動小数点命令を処理してい
てもよいし、していなくてもよい。 浮動小数点装置13がふさがっているならば、中央演算
処理装置10は、浮動小数点装置13がその前の演算を
終了するまで待ち状態に留まる。 浮動小数点装置13が各命令を完了する時、それは、第
3A図に示されたステップ101,102および103
を実行する。 ステップ101においては、制御55(第2図に示され
ている)はFPREQ信号を除勢する。 FPREQ信号は出されている時、浮動小数点装置13
が母線18又は19の1つを通してのデータ転送を期待
していることを示す。 すると、制御回路55は、浮動小数点状態レジスタ31
の内容を、アキュムレータ・マルチプレクサ(ACMX
)35に移し、このACMX:は、■又は2ワードを並
列にレジスタ装置16内へ選択的に転送することができ
る。 この場合、状態ワードは、Ac1〔O〕レジスタ・バイ
ト位置に移る。 母線マルチプレクサ(BMX)37は、Ac1〔O〕バ
イト位置の内容をスカレジスタ30につなぎ、λカレジ
スタ30は、母線18上へ、又は指数演算論理装置34
への転送用のデータを記憶する。 ステップ103においては、制御55は、データ入力マ
ルチプレクサ(DIMX)32、および指数マルチプレ
クサ(EMX)33、指数演算論理装置34およびアキ
ュムレータ・マルチプレクサ35を通して、母線17上
のアドレスをレジスタ装置16に転送すべく通路を開く
。 一度びこの通路が開になると、制御55は待ち状態に入
り、制御母線20を通して中央演算処理装置10からの
FPATTN信号を受取るまで、いかなる他の機能も行
なわない。 依然として第2および第3図を参照しつつ、浮動小数点
装置13内の制御装置55が第3A図における待ち状態
に入った後、中央演算処理装置がステップ205におい
てF PAT T N信号を発生するものと仮定すれば
、制御装置55は、ステップ104〜110を実行する
ことによりFPATTN信号に応答する。 F PAT T N信号が制御55に到達する時、BR
レジスタ55の内容は、データ母線19上および命令レ
ジスタ(FIR)43内に移る。 ステップ104においてこれらの機能を実行した後、制
御装置は、浮動小数点装置13内に符号情報を記憶する
レジスタ44sおよび44dをノセットすることにより
ステップ105を実行する。 それからステップ106において制御55はFP皿Q信
号を生成する。 同じ時に、プログラム・カウンタ51(第10は、浮動
小数点命令用の記憶アドレスを含んでいる。 このアドレスは、アドレス母線17および前に開かれた
通路を通って、アキュムレータ・レジスタ装置16内の
Ac1〔1〕レジスタ・バイト位置内に移る。 この命令レジスタ43は、第2図の制御回路55内に設
けられる命令デコーダと関連付けられている。 浮動小数点クラス内の命令の1群は、固定小数点数を浮
動小数点数に、およびその逆向きの変換をするための変
換命令を含んでいる。 命令が変換命令であるならば、ステップ108はステッ
プ109に分岐し、ステップ109は浮動小数点装置1
3をして変換を実行せしめる。 ステップ110はFPSYNC信号の次の生成を可能に
する。 次に制御55は、中央演算処理装置10が再びFPAT
TN信号を生成するまで待ち状態に戻る。 FPSYNC信号は、短時間の遅延の後伝送されて、あ
る種の信号を処理せしめ、ある種の他の準備的演算を起
させる。 さて、第1および3C図を参照すれば、浮動小数点装置
13がこの待ち状態に入る時、中央演算処理装置10お
よび特に制御53はFPSYNC信号を待っている。 これが起る時、中央演算処理装置10は、入力レジスタ
30(第2図)内の状態ワードを、母線18およびBR
MXマルチプレクサ54を通してBRレジスタ55にロ
ードすることにより処理する。 データを定めるために伺らかのアドレス計算が必要であ
るならば、制御53はステップ201でそれらを行なう
。 それから制御53は制御母線20を通して第2図の制御
55に転送するためにPPATTN信号を生成する。 ステップ208を実行した後、システムは、浮動小数点
命令が含んでいるデータ・アドレスに依り、2つの待ち
状態のうちの1つに入る。 各浮動小数点命令は、いくつかのモードのうちのlっを
とりうる指定アドレスを持つ。 これらのうちの1つはモードOアドレスである。 モードOアドレスが存在する時は、浮動小数点装置用の
データは、中央演算処理装置10内の汎用レジスタか、
又は装置16内のレジスタかのいずれかの中にある。 これが真ならば、ステップ209は待ち状態210に分
岐し、そうでなげればシステムは待ち状態211に分岐
する。 浮動小数点装置13がFPATTN信号を受取る時、そ
れはこれらの特定の命令に従って分岐する。 一般的にいえば、装置13および中央演算処理装置10
は、それからは浮動小数点装置13からのFPSYNC
およびFPREQ信号および中央演算処理装置10から
のFPATTN信号の制御のもとに相互に作用する。 第3D図は、この相互作動状態中における中央演算処理
装置のオペレーション用の一般的な流れである。 プロセッサ(演算処理装置)がモードOの指定アドレス
を待っている状態にある時、制御55がFPSYNC信
号を生成するならば、中央演算処理装置10は、 「レ
ジスタ書込み」信号が出されているかどうかを決定する
ためにステップ212を使う。 この信号は、演算処理装置10内の汎用レジスタの1つ
にデータをロードすることが必要であるかどうかを示す
。 信号が出されているならば、ステップ212はステップ
213に分岐し、そこでは、アキュムレータ・レジスタ
16から、データ母線18および母線マルチプレクサ5
4を通して、レジスタ内への記憶のためにデータが移る
。 中央演算処理装置10および浮動小数点装置13の間に
はそれ以上の相互作用は必要でないので、ステップ21
3は制御53をステップ201に戻し、中央演算処理装
置10はその次の命令をとって来る。 一方、演算処理装置10が待ち状態211にある間に、
浮動小数点装置13がFPSYNC信号を生成するなら
ば、制御53はステップ214を使ってFPREQ信号
の状態をチェックする。 FPREQ信号が無ければ、それ以上の相互作用の必要
がないことを意味し、ステップ214は制御53をステ
ップ201に戻す。 FPREQ信号が存在すれば、伺らかのデータが転送さ
れるべきである。 浮動小数点装置制御55により生成される他の制御信号
が、データ転送の向きを決定する。 記憶装置11にデータをロードするために、ステップ2
15はステップ216に行き、そこでは、中央演算処理
装置10がBRレジスタ55の内容を記憶装置11内に
ロードする。 データが記憶装置11からロードされるべきであるなら
ば、ステップ217がこの機能を行ない、データをBR
レジスタ55内にロードする。 中央演算処理装置10内の母線アドレス・レジスタ(示
されていない)はステップ218で増加され、これで中
央演算処理装置10に対するシーフェンスの1サイクル
が完了し、その結果ステップ219において、制御53
はFPATTN信号を生成し、それから待ち状態211
に移る。 前述のように、この処理サイクルは、特定の命令が何で
あっても中央演算処理装置10で起る。 第3E 、3Fおよび3G図は、異なった命令に応答し
て浮動小数点装置13が使うステップを一般的に示して
いる。 第3C図では、ステップ112は適当でない命令に対し
てはステップ113にいく。 これが起る時、ステップ113はFPSYNCパルスを
生成せしめ、直後にステップ114はF P REQ信
号を除勢する。 制御55も、不適当な命令の性質を示す定数をAC7[
0)レジスタ・バイト位置に記憶し、何らかの必要な割
込み信号を生成し、関連したデータをステップ115お
よび116に記憶する。 それからシステムは自動的にステップ101にもどる。 FPSYNC信号が中央演算処理装置10に行くとき、
第3D図のステップ214は1−NOJ分岐を通り、中
央演算処理装置10は、起りうる何らかの割り込みに依
存して、直ちにその次の命令を実行し始める。 分岐の時に、メモリから、又はメモリへのデータ転送の
ために記憶サイクルがもはや必要でないならば、ステッ
プ111はステップ118〜120に分岐する。 ステップ118は、制御55をしてFPSYNC信号を
生成することを可能にせしめ、その後ステップ119で
FPREQ信号を除勢する。 それから命令が実行される。 この時間中に制御55はFPSYNC信号を生成する。 中央演算処理装置10は直ちに次のプログラム命令に戻
る。 度び命令が完了すると、ステップ120は制御をステッ
プ101に戻し、その結果終了シーフェンスが実行され
る。 記憶装置11からデータを得ることが必要である時、ス
テップ121(第3E図)は制御をしてステップ122
〜132を実行せしめる。 ステップ122では制御はFPSYNC信号を付勢する
。 何らかのアドレス修正が必要であるならば、制御55は
INCADR信号(第3F図のステップ123および1
24)を生成し、この信号を中央演算処理装置10は、
それがステップ218を実行スるかどうか制御するため
に使う。 次に、ステップ125で制御はFPCI信号を生成し、
それからF PAT T N信号を待つ。 制御55がその信号を受取る時、データは装置16内の
指定されたレジスタ内にロードする。 FPCI信号はデータが移動している向きを示す。 更にデータがロードされるべきであるならば、ステップ
127はステップ128に行き、制御55は別のF P
S YN C信号を生成し、ステップ123に戻る。 一度び全てのワードがロードされると、ステップ127
はステップ130に行き、そこでは再びFPSYNC信
号を付勢し、その後ステップ131でFPREQ信号を
除勢する。 それから中央演算処理装置10はステップ201に戻る
ことができる。 ステップ132では、ステップ101で始まる終了ルー
チンに戻る前に、制御55は浮動小数点命令を実行する
。 データをレジスタ装置16から記憶装置11内にロード
することが必要である時、同様なステップの組が起る。 制御55が記憶命令をデコードする時、それはデータを
入力レジスタ30に移し、それからFPSYNC信号を
付勢し、FPC■信号をして出力オペレーションを示す
ようにさせる。 中央演算処理装置10がF PS YN C信号を受取
る時、それはステップ217(第3D図)に従って、デ
ータを記憶する。 もし別のワードが記憶されるべきであるならば、ステッ
プ135は次のFPATTN信号の後ステップ136に
分岐し、そこでアドレス修正の必要性が判断される。 アドレス修正が必要ならば、ステップ137はIN C
AD R信号を生成する。 一度び全てのワードが記憶されると、制御55はステッ
プ135から「NO」分岐で出て、ステップ141でフ
リップフロップ76をセットし、ステップ101で始ま
る終了ルーチンへ戻る。 制御55の詳細についてのある部分を示している第4図
を参照することにより、制御信号のやりとりの方法につ
いてより一層理解されよう。 FPATTN信号の先端はフリップフロップ70をセッ
トし、それによりANDゲートを付勢し、フリップフロ
ップ73にセット信号を供給せしめ、フリップフロップ
73はセットされる時FPREQ信号を生威する。 この信号は伺らかのデータ転送が起ろうとしていること
を示し、制御55はDS EL倍信号応答してそれを生
威し、このDSEL信号は、第3B図のステップ106
のようなステップに対応する時に起る。 NANDゲート301は、フリップフロップ73がセッ
トされる時、正のFPCI信号を生成し、その出力導体
85により表わされるフリップフロップはREAD信号
を出さない。 これは書込みオペレーションが起ることを意味する。 命令が読取りオペレーションでのデータの転送を要求す
る時、?1ilt155は導体85にREAD信号を出
しその結果FPCI信号は出されない。 フリップフロップ73は、フリップフロップ304がリ
セットされるまでFPREQ信号を生成し続げる。 NANDゲート305からのクロック・パルスの後端が
フリップフロップ304をリセットする。 これは、続いてくるT2クロック・パルスとともに終了
を要求するある種の内部状態が起ることを示すDISB
信号に応答して起る。 貝肉RESET信号の後端もフリップフロップ73にク
ロックしてリセット状態にさせ、FPREQ信号を除勢
させる。 第3図で、FPSYNC信号を付勢するためのフリップ
フロップ76をセットする(たとえば第3C図内のステ
ップ110)ということは、それぞれタイミングおよび
制御装置302をして5YNC信号を生成せしめる。 この信号は、ゲードア4を付勢して、後続の装置302
からのT3タイミング・パルスをフリップフロップ76
のセットS気力に向かわせる。 フリップフロップ76の出力はNANDゲートおよび後
続のインバータ307を付勢して正のT2パルスをFP
SYNCパルスとして母線20に送らしめる。 NANDゲート306からの出力は、各FPSYNCパ
ルスの後端をしてフリップフロップ76をリセットせし
め、装置302が次の5YNC信号を生成するまでそれ
以上のFPSYNCパルスを除勢する。 フリップフロップ304がリセットする時はいつでも、
それはORゲート311を通してリセットRλ力にオー
バーライディングリセット信号を供給することによりフ
リップフロップ16を除勢する。 フリップフロップ76もまたある種の変換命令に応答し
てリセットする。 これらの状態が起る時、装置302はC0NV信号およ
びT4信号を生成し、ANDゲート310へ2つの入力
を提供する。 後続のクロック(CLK)パルスは付勢すれたANDゲ
ート310およびORゲート311を通して送られ、フ
リップフロップ76をリセットする。 2つの他の信号がフロップ73および76に作用する。 中央演算処理装置10が浮動小数点命令をデコードし、
割込み信号を受取るならば、それは浮動小数点装置13
とのそれ以上の通信を終了してよい。 これが起る時、中央演算処理装置内の制御53は、IN
TRCLR信号を生成し、これはORゲート312を通
して直接にフリップフロップ10をリセットし、それに
よりゲート72を除勢する。 制御55が続いてDSEL信号を生成する時、ゲート7
2はそれを阻止する。 INTRCLR信号が現われる時フリップフロップが前
にセットされていたならば、ゲート313はゲート31
4を付勢し、INIT信号を送らせ、フリップフロップ
304を直接セットさせる。 中央演算処理装置は、それがオンにされる度びにINI
T信号を生成し、これが開始信号を構成する。 フリップフロップ304をセットすることにより、フリ
ップフロップ76へのリセット入力の1つは取り除かれ
、その結果後続の5YNCおよびT3パルスがフリップ
フロップ76をセットすることができる。 制御302もまたデコードされている特定の命令に依存
する信号に応答して、上述のINCADRおよび「レジ
スタ書込み」信号を生成する。 ここで、前述したように本発明の装置の動作において重
要な役割を果たすFPATTN信号(転送信号)、FP
SYNC信号(同期信号)及びFPREQ信号(制御信
号)についてまとめて説明しておく。 FPATTN(Floating point Att
ention)信号は、中央演算処理装置が特殊命令処
理装置のなんらかの動作を要求していることを指示する
ため、中央演算処理装置によって発生されるものである
。 例えば、中央演算処理装置は、特殊命令を特殊命令処理
装置へ転送する場合(ステップ205参照)やオペラン
ドを特殊命令処理装置へ転送する場合(ステップ125
の後の゛FPATTN信号を待゛参照)に、このFPA
TTN信号を発生する。 また、中央演算処理装置は、記憶装置へ転送するため特
殊命令処理装置からデータを受ける場合に、とのFPA
TTN信号を発生する(ステップ140に続く゛FPA
TTN信号を待つ゛参照)。 FPSYNC信号(Floating Po1nt S
ynch−ronizing)信号は、特殊命令処理装
置が中央演算処理装置によるサービスを必要としている
ことを指示するため、特殊命令処理装置によって発生さ
れるものである。 例えば、特殊命令処理装置は、命令が違法命令である場
合には、このFPSYNC信号を発生して、中央演算処
理装置がその特殊命令処理装置の状態レジスタの内容を
検索するようにせしめる(ステップ113参照)。 また、特殊命令処理装置は、記憶装置へ又は記憶装置か
らデータを転送することが必要な場合に、とのFPSY
1’C信号を発生する(ステップ134及び122参局
。 FPREQ(Floating Po1nt Requ
est)信号は、特殊命令処理装置がオペランドに関し
て中央演算処理装置によるサービスを必要としているこ
とを指示するため、特殊命令処理装置によって発生され
るものである。 例えば、特殊命令処理装置がアドレス計算を必要とする
場合には、特殊命令処理装置は、このFPREQ信号を
発生する(ステップ106参照)。 ここで注意すべきことは、特殊命令処理装置がこのFP
REQ信号を発生しているだけでは、中央演算処理装置
はなにも動作せず、特殊命令処理装置からFPSYNC
信号を受けて初めて動作するということである(ステッ
プ110参照)。 また、特殊命令処理装置は、記憶装置へ又は記憶装置か
らデータを転送する必要があるとき、このFPREQ信
号を発生する(ステップ106にてセットされており、
実際に、特殊命令処理装置が記憶装置へ又は記憶装置か
らデータを転送する必要のない場合又はアドレス計算を
必要としない場合にはとのFPREQ信号は取り消され
る)。 同様に、ここでも注意すべきことは、特殊命令処理装置
がこのFPREQ信号を発生しているだけでは、中央演
算処理装置はなにも動作せず、特殊命令処理装置からF
PSYNC信号を受けて初めて動作するということであ
る。 すなわち、中央演算処理装置は、特殊命令処理装置が発
生するFPSYNC信号にのみ応答して動作を開始する
のであって、特殊命令処理装置の発生するFPREQ信
号は、中央演算処理装置が行なうべき動作の種類を指示
するのに使用されているだけである。 前述したように、中央演算処理装置の命令デコーダ52
が特殊命令である浮動小数点命令を受は取る時、中央演
算処理装置は、FPATTN信号を発生して、その特殊
命令を特殊命令処理装置へ転送する。 特殊命令処理装置は、その特殊命令を実行する。 特殊命令処理装置は、その特殊命令の実行に際して、ア
ドレス計算や記憶装置とのデータ転送等のための中央演
算処理装置による補助動作を必要とするときには、その
補助動作の種類を示すFPREQ信号を発生し、また、
FPSYNC信号を発生する。 中央演算処理装置は、そのFP S YNC信号に応答
してそのFPREQ信号の有無をチェックし、FPRE
Q信号があればそのFPREQ信号の指示する補助動作
を実行する。 特殊命令処理装置は、その特殊命令の処理を完了したと
きには、FPSYNC信号を発生するが、FPREQ信
号は発生しない。 従って、中央演算処理装置は、そのFPSYNC信号に
応答して、そのFPREQ信号の有無をチェックし、F
PREQ信号がないので、プログラム・カウンタ51に
従って次の命令の実行へと進む。 このように、中央演算処理装置は、次の3つの動作を除
けば、特殊命令処理装置と相互動作をする必要がないこ
とになる。 (1) %殊命令を特殊命令処理装置へ転送すること(
例えば、ステップ203,204,205)(2)その
命令を処理するのに使用されるオペランドのアドレス計
算(例えば、ステップ207)(3)特殊命令処理装置
から状態を検索するとと(例えば、ステップ206) 従って、中央演算処理装置は、FPATTN信号を発生
してから特殊命令処理装置がFPSYNC信号を発生す
るまでの間は、特殊命令処理装置の動作と並行して、割
込み処理や特殊命令処理装置の動作と並行しうるその他
の処理動作を行なうことができる。 その上、本発明の特殊命令処理装置は、記憶装置への又
は記憶装置からのデータ転送のために中央演算処理装置
のバスインターフェイス部分を利用しているから、本発
明によれば、システム全体としてのバスインターフェイ
ス回路が減少される。 また、本発明の特殊命令処理装置は、アドレス計算の如
き特定の動作を行なう回路として中央演算処理装置の回
路を利用するのであるから、本発明によれば、システム
全体としてのこの種の回路も減少される。 従って、本発明によれば、全体として安価なシステムに
て中央演算処理装置と特殊命令処理装置との間に特定の
並行処理を行なえるようにすることができるのである。 まとめると、浮動小数点装置13は特殊クラスの命令用
のプロセッサである。 この実施例においては、それはたまたま浮動小数点命令
用のプロセッサであった。 それは中央演算処理装置とは比較的独立して作動可能で
あり、それ自身および中央演算処理装置との間の相互作
用を制御する。 すなわち、中央演算処理装置は、更に相互連絡が必要で
あることを示すFPREQおよびFPSYNC信号の組
合わせを受取る限りにおいて、浮動小数点装置とやりと
りする。 従って明らかなように、装置13内の制御およびいくつ
かの内部レジスタを変え、装置13が行なう機能を変え
ることだけが必要である。 中央演算処理装置10には何も変更は必要ではない。 この方法では、従って、単に中央演算処理装置からいく
つかの接続をはずし、装置13を置きかえることにより
このクラスの命令を変えることが可能である。 第3図に示された一般的な流れ図を実施することができ
る他の多くの特別な実施例があることも明らかであろう
。 更に、いろいろな線図に示された流れ図および回路は変
更されうる。 従って、本発明の正しい精神および範囲内での全てのか
かる変更および修正を包含することが特許請求の範囲の
目的である。
[0] identifies the lowest register byte location of device 16, while Ac1[3] identifies the highest register byte location. Several busbars connect central processing unit 10 with floating point unit 13 and circuitry within floating point unit 13. Address information is sent from the arithmetic processing unit 10 to the address bus 11
move through. Whenever central processing unit 10 "wants" the result of an operation performed within floating point unit 13, it receives the data via bus 18. Data transfer from central processing unit 10 occurs through data bus 19. Bidirectional bus 20 routes control signals between the two devices, as will be explained later. Bus 21 within floating point unit 13 transfers data from device 14 to device 16, while bus 23 returns information therefrom. Similarly, the busbars 23 and 24 are connected to the fraction calculation logic unit 15.
and vice versa, respectively. When the central processing unit 10 executes a series of machine instructions,
It performs the basic operations shown in Figure 3A. Step 201 takes an instruction from the location identified by program counter 51 of storage device 11 shown in FIG.
increase. It then executes the instruction in step 202 if step 203 determines that the instruction is not a floating point instruction. This process occurs iteratively until instruction decoder 52 (FIG. 1) receives a floating point instruction. Whenever instruction decoder 52 receives a floating point instruction, step 203 branches to step 204. The program counter 51 is automatically incremented (advanced) as usual when an instruction is fetched, but if the instruction is decoded as a special instruction (floating point instruction), the program counter 51 Counter 51 is decremented (advanced) and therefore returned to its original position (step 204). At this location, program counter 51 points to floating point instructions in storage. The contents of the program counter 51 are as follows:
13 and then loaded into the special instruction processing unit (step 107). Therefore, even if the central processing unit is interrupting or performing other operations in parallel with the operations of the special instruction processing unit, the special instruction processing unit has a record of the storage location of the instructions it is processing. This means that In step 205, controller 53 (FIG. 1) responds to the signal in command decoder 52 by generating the FPATTN signal through a line in control bus 20. Once step 205 is completed, central processing unit 10 returns to a wait state until floating point unit 13 transfers the FPSYNC signal. However, during this state, the central processing unit 10
It can execute interrupt routines or perform other functions. However, it cannot process any instructions within the program that is being executed. At the time of generating the FPATTN signal in step 205, floating point unit 13 may or may not be processing a previous floating point instruction. If floating point unit 13 is occupied, central processing unit 10 remains in a wait state until floating point unit 13 finishes its previous operation. As floating point unit 13 completes each instruction, it follows steps 101, 102 and 103 shown in FIG. 3A.
Execute. In step 101, control 55 (shown in FIG. 2) disables the FPREQ signal. When the FPREQ signal is asserted, floating point unit 13
indicates that it expects data transfer through one of the buses 18 or 19. Then, the control circuit 55 controls the floating point status register 31
The contents of the accumulator multiplexer (ACMX
) 35, this ACMX: can selectively transfer 1 or 2 words in parallel into the register device 16. In this case, the status word moves to the Ac1[O] register byte location. A bus multiplexer (BMX) 37 connects the contents of the Ac1[O] byte position to the scale register 30, and the λ register 30 connects the contents of the Ac1[O] byte position to the scale register 30 onto the bus 18 or the exponential logic unit 34.
Store data for transfer to. In step 103, control 55 causes the address on bus 17 to be transferred to register device 16 through data input multiplexer (DIMX) 32 and exponent multiplexer (EMX) 33, exponent logic unit 34 and accumulator multiplexer 35. Open the passage. Once this path is open, control 55 enters a wait state and does not perform any other functions until it receives the FPATTN signal from central processing unit 10 via control bus 20. Still referring to FIGS. 2 and 3, after controller 55 in floating point unit 13 enters the wait state in FIG. 3A, the central processing unit generates the F PAT T N signal in step 205. Assuming that, controller 55 responds to the FPATTN signal by performing steps 104-110. When the F PAT T N signal reaches control 55, the BR
The contents of register 55 are transferred onto data bus 19 and into instruction register (FIR) 43. After performing these functions in step 104, the controller performs step 105 by nosetting registers 44s and 44d that store sign information within floating point unit 13. Then, in step 106, control 55 generates the FP pan Q signal. At the same time, the program counter 51 (10th) contains the storage address for the floating point instruction. This address is passed through the address bus 17 and the previously opened path to the Ac1 [1] Move into the register byte location. This instruction register 43 is associated with an instruction decoder provided in the control circuit 55 of FIG. 2. One group of instructions in the floating point class is the fixed point number to a floating point number and vice versa. If the instruction is a conversion instruction, step 108 branches to step 109, which converts the floating point unit 1 to a floating point number and vice versa.
3 to execute the conversion. Step 110 enables the next generation of the FPSYNC signal. Next, control 55 causes central processing unit 10 to perform FPAT again.
It returns to the waiting state until it generates a TN signal. The FPSYNC signal is transmitted after a short delay to allow certain signals to be processed and certain other preparatory operations to occur. Referring now to Figures 1 and 3C, when floating point unit 13 enters this wait state, central processing unit 10 and particularly control 53 is waiting for the FPSYNC signal. When this occurs, central processing unit 10 sends the status word in input register 30 (FIG. 2) to bus 18 and BR
Processing is performed by loading the BR register 55 through the MX multiplexer 54. If further address calculations are required to define the data, control 53 performs them in step 201. Control 53 then generates a PPATTN signal for transmission through control bus 20 to control 55 of FIG. After performing step 208, the system enters one of two wait states depending on the data address contained by the floating point instruction. Each floating point instruction has a specified address that can be in one of several modes. One of these is the mode O address. When a mode O address exists, data for the floating point unit is stored in a general-purpose register within the central processing unit 10, or
or in a register within device 16. If this is true, step 209 branches to wait state 210; otherwise the system branches to wait state 211. When floating point unit 13 receives the FPATTN signal, it branches according to these specific instructions. Generally speaking, the device 13 and the central processing unit 10
then FPSYNC from floating point unit 13
and FPREQ signals and interact under the control of the FPATTN signal from central processing unit 10. Figure 3D is a general flow for the operation of the central processing unit during this interoperating state. If the control 55 generates the FPSYNC signal when the processor is waiting for a specified address in mode O, the central processing unit 10 determines whether a "write register" signal is issued. Step 212 is used to determine . This signal indicates whether data needs to be loaded into one of the general purpose registers within processing unit 10. If the signal is asserted, step 212 branches to step 213 where data bus 18 and bus multiplexer 5 are transferred from accumulator register 16 to bus multiplexer 5.
4, data is transferred for storage into registers. Since no further interaction is required between the central processing unit 10 and the floating point unit 13, step 21
3 returns control 53 to step 201 and central processing unit 10 fetches the next instruction. On the other hand, while the arithmetic processing unit 10 is in the waiting state 211,
If floating point unit 13 generates the FPSYNC signal, control 53 uses step 214 to check the state of the FPREQ signal. If there is no FPREQ signal, meaning no further interaction is required, step 214 returns control 53 to step 201. If the FPREQ signal is present, the incoming data should be transferred. Other control signals generated by floating point unit control 55 determine the direction of data transfer. In order to load data into the storage device 11, step 2
15 goes to step 216 where the central processing unit 10 loads the contents of the BR register 55 into the storage device 11. If the data is to be loaded from storage 11, step 217 performs this function and transfers the data to BR.
Load into register 55. A busbar address register (not shown) within central processing unit 10 is incremented at step 218, completing one cycle of sea fencing for central processing unit 10, so that at step 219, control 53
generates the FPATTN signal and then enters the wait state 211
Move to. As previously mentioned, this processing cycle occurs in central processing unit 10 regardless of the particular instruction. Figures 3E, 3F and 3G generally illustrate the steps used by floating point unit 13 in response to different instructions. In FIG. 3C, step 112 goes to step 113 for instructions that are not appropriate. When this occurs, step 113 causes the FPSYNC pulse to be generated, immediately after step 114 disables the F P REQ signal. Control 55 also sets a constant indicating the nature of the inappropriate instruction to AC7[
0) Store in register byte locations, generate any necessary interrupt signals, and store associated data in steps 115 and 116. The system then automatically returns to step 101. When the FPSYNC signal goes to the central processing unit 10,
Step 214 of FIG. 3D takes the 1-NOJ branch and central processing unit 10 immediately begins executing its next instruction, depending on any possible interrupts. At the time of the branch, step 111 branches to steps 118-120 if storage cycles are no longer needed for data transfer to or from memory. Step 118 enables control 55 to generate the FPSYNC signal, and then step 119 disables the FPREQ signal. The command is then executed. During this time control 55 generates the FPSYNC signal. Central processing unit 10 immediately returns to the next program instruction. Once the repeat instruction is complete, step 120 returns control to step 101 so that a termination sea fence is executed. When it is necessary to obtain data from storage device 11, step 121 (FIG. 3E) takes control to step 122.
-132 are executed. In step 122, control asserts the FPSYNC signal. If any address modification is required, control 55 outputs the INCADR signal (steps 123 and 1 of FIG. 3F).
24), and the central processing unit 10 generates this signal,
Used to control whether it executes step 218. Next, in step 125 the control generates an FPCI signal;
Then wait for the F PAT T N signal. When control 55 receives that signal, it loads the data into the designated register within device 16. The FPCI signal indicates the direction in which data is moving. If more data is to be loaded, step 127 goes to step 128 and control 55 loads another F P
Generate the SYN C signal and return to step 123. Once all words have been loaded, step 127
goes to step 130 where it again energizes the FPSYNC signal, followed by step 131 where it de-energizes the FPREQ signal. Central processing unit 10 may then return to step 201. In step 132, control 55 executes floating point instructions before returning to the termination routine that began in step 101. A similar set of steps occurs when it is necessary to load data from register device 16 into storage device 11. When control 55 decodes a store instruction, it moves the data to input register 30, then asserts the FPSYNC signal and causes the FPC■ signal to indicate an output operation. When central processing unit 10 receives the F PS YN C signal, it stores the data according to step 217 (Figure 3D). If another word is to be stored, step 135 branches to step 136 after the next FPATTN signal, where the need for address modification is determined. If address correction is necessary, step 137
Generate ADR signal. Once all words have been stored, control 55 takes the "NO" branch from step 135, sets flip-flop 76 at step 141, and returns to the termination routine beginning at step 101. A better understanding of the manner in which control signals are exchanged will be gained by reference to FIG. 4, which shows some details of control 55. The leading edge of the FPATTN signal sets flip-flop 70, thereby energizing the AND gate and providing a set signal to flip-flop 73, which when set generates the FPREQ signal. This signal indicates that a data transfer is about to occur, and control 55 responds to the DSEL signal to generate the DSEL signal, step 106 of FIG. 3B.
Occurs when corresponding to a step such as NAND gate 301 produces a positive FPCI signal when flip-flop 73 is set, and the flip-flop represented by its output conductor 85 does not issue a READ signal. This means that a write operation will occur. When an instruction requests the transfer of data in a read operation? 1ilt 155 issues a READ signal on conductor 85 so that no FPCI signal is issued. Flip-flop 73 continues to generate the FPREQ signal until flip-flop 304 is reset. The trailing edge of the clock pulse from NAND gate 305 resets flip-flop 304. This indicates that some internal condition has occurred that requires termination with the subsequent T2 clock pulse.
Occurs in response to a signal. The rear end of the shellfish RESET signal is also clocked into the flip-flop 73 to reset it, thereby deactivating the FPREQ signal. In FIG. 3, setting flip-flop 76 to assert the FPSYNC signal (eg, step 110 in FIG. 3C) respectively causes timing and control unit 302 to generate the 5YNC signal. This signal energizes the gate door 4 so that the subsequent device 302
The T3 timing pulse from
The set of S will direct you towards energy. The output of flip-flop 76 energizes a NAND gate and subsequent inverter 307 to generate a positive T2 pulse at FP.
It is sent to the bus bar 20 as a SYNC pulse. The output from NAND gate 306 causes the trailing edge of each FPSYNC pulse to reset flip-flop 76, disabling further FPSYNC pulses until device 302 generates the next 5YNC signal. Whenever flip-flop 304 resets,
It disables flip-flop 16 by providing an overriding reset signal to the reset Rλ force through OR gate 311. Flip-flop 76 also resets in response to certain conversion commands. When these conditions occur, device 302 generates the C0NV and T4 signals and provides two inputs to AND gate 310. A subsequent clock (CLK) pulse is sent through enabled AND gate 310 and OR gate 311 to reset flip-flop 76. Two other signals act on flops 73 and 76. Central processing unit 10 decodes the floating point instruction;
If an interrupt signal is received, it is
You may terminate further communication with. When this occurs, control 53 within the central processing unit
Generates the TRCLR signal, which resets flip-flop 10 directly through OR gate 312, thereby disabling gate 72. When control 55 subsequently generates the DSEL signal, gate 7
2 prevents it. If the flip-flop was previously set when the INTRCLR signal appears, gate 313 will
4 is activated to send the INIT signal and directly set the flip-flop 304. The central processing unit outputs INI every time it is turned on.
A T signal is generated, which constitutes the start signal. Setting flip-flop 304 removes one of the reset inputs to flip-flop 76 so that subsequent 5YNC and T3 pulses can set flip-flop 76. Control 302 also generates the INCADR and "Write Register" signals mentioned above in response to signals that depend on the particular instruction being decoded. Here, as mentioned above, the FPATTN signal (transfer signal), which plays an important role in the operation of the device of the present invention, and the FP
The SYNC signal (synchronization signal) and FPREQ signal (control signal) will be explained together. FPATTN (Floating point Att
The CPU 20 signal is generated by the central processing unit to indicate that the central processing unit is requesting some operation of the special instruction processing unit. For example, when the central processing unit transfers a special instruction to the special instruction processing device (see step 205) or when transferring an operand to the special instruction processing device (step 125),
After ``Wait for FPATTN signal''), this FPA
Generates TTN signal. In addition, when the central processing unit receives data from the special instruction processing unit for transfer to the storage device, the central processing unit
generate a TTN signal (following step 140)
(See Waiting for TTN signal). FPSYNC signal (Floating Port S
The ynch-ronizing signal is generated by the special instruction processor to indicate that the special instruction processor requires service by the central processing unit. For example, if the instruction is an illegal instruction, the special instruction processor generates this FPSYNC signal to cause the central processing unit to retrieve the contents of the special instruction processor's status register (step 113). reference). The special instruction processing unit may also be used with the FPSY when it is necessary to transfer data to or from the storage device.
1'C signal is generated (steps 134 and 122).
est) signal is generated by the special instruction processor to indicate that the special instruction processor requires service by the central processing unit regarding an operand. For example, if the special instruction processor requires address calculation, the special instruction processor will generate this FPREQ signal (see step 106). What should be noted here is that the special instruction processing device
If the central processing unit only generates the REQ signal, the central processing unit will not operate, and the FPSYNC signal will be sent from the special instruction processing unit.
This means that it operates only after receiving a signal (see step 110). The special instruction processing unit also generates this FPREQ signal (set in step 106) when it is necessary to transfer data to or from the storage device.
In fact, the FPREQ signal is canceled if the special instruction processor does not need to transfer data to or from storage, or if address calculations are not required. Similarly, what should be noted here is that if the special instruction processing unit only generates this FPREQ signal, the central processing unit will not perform any operation;
This means that it operates only after receiving the PSYNC signal. That is, the central processing unit starts its operation only in response to the FPSYNC signal generated by the special instruction processing unit, and the FPREQ signal generated by the special instruction processing unit is indicative of the operation to be performed by the central processing unit. It is only used to indicate type. As mentioned above, the instruction decoder 52 of the central processing unit
When the central processing unit receives a floating point instruction that is a special instruction, the central processing unit generates the FPATTN signal to transfer the special instruction to the special instruction processing unit. The special instruction processing unit executes the special instruction. When the special instruction processing unit requires an auxiliary operation by the central processing unit for address calculation, data transfer with a storage device, etc. when executing the special instruction, it generates an FPREQ signal indicating the type of the auxiliary operation. Also,
Generates the FPSYNC signal. The central processing unit checks the presence or absence of the FPREQ signal in response to the FPSYNC signal and outputs the FPREQ signal.
If there is a Q signal, the auxiliary operation instructed by the FPREQ signal is executed. When the special instruction processing unit completes processing of its special instruction, it generates the FPSYNC signal but does not generate the FPREQ signal. Therefore, in response to the FPSYNC signal, the central processing unit checks the presence or absence of the FPREQ signal and
Since there is no PREQ signal, program counter 51 proceeds to execute the next instruction. In this way, the central processing unit does not need to interact with the special instruction processing unit except for the following three operations. (1) Transferring special instructions to the special instruction processing device (
For example, steps 203, 204, 205) (2) calculating the addresses of the operands used to process the instruction (e.g., step 207), and (3) retrieving state from the special instruction processor (e.g., step 206). ) Therefore, from the time the FPATTN signal is generated until the special instruction processor generates the FPSYNC signal, the central processing unit performs interrupt processing and the special instruction processor in parallel with the operation of the special instruction processor. Other processing operations may be performed that may be parallel to the operation. Moreover, since the special instruction processing device of the present invention utilizes the bus interface portion of the central processing unit for data transfer to and from the storage device, the system as a whole according to the present invention bus interface circuits are reduced. Further, since the special instruction processing device of the present invention utilizes the circuit of the central processing unit as a circuit for performing specific operations such as address calculation, the present invention also includes this type of circuit as a whole system. reduced. Therefore, according to the present invention, it is possible to perform specific parallel processing between the central processing unit and the special instruction processing unit in an inexpensive system as a whole. In summary, floating point unit 13 is a processor for a special class of instructions. In this example, it happened to be a processor for floating point instructions. It is operable relatively independently of the central processing unit and controls interactions between itself and the central processing unit. That is, the central processing unit interacts with the floating point unit to the extent that it receives a combination of FPREQ and FPSYNC signals indicating that further interaction is required. It is therefore clear that it is only necessary to change the controls and some internal registers within the device 13 and to change the function that the device 13 performs. No changes are required to the central processing unit 10. In this way, it is therefore possible to change this class of instructions simply by removing some connections from the central processing unit and replacing the device 13. It will also be apparent that there are many other specific embodiments in which the general flowchart shown in FIG. 3 can be implemented. Additionally, the flowcharts and circuits depicted in the various diagrams may be modified. It is therefore the purpose of the appended claims to cover all such changes and modifications as fall within the true spirit and scope of the invention.

【図面の簡単な説明】[Brief explanation of drawings]

第1図は中央演算処理装置および別個のクラスの命令を
実行するための並列装置を持ったデータ処理装置を示す
。 第2図は、浮動小数点命令を処理するようにされた、第
1図に示された並列装置の詳細なブロック線図である。 第3A−G図は、その装置のオペレーションを中央演算
処理装置とともに説明するための流れ図である。 第4図は、第2図の装置用の特殊制御回路の特定の部分
の模式線図である。 10・・・・・・中央演算処理装置、11・・・・・・
記憶装置、12・・・・・・周辺装置、13・・・・・
・浮動小数点装置、14・・・・・・指数計算論理、1
5・・・・・・端数計算論理、16・・・・・・レジス
タ装置、17,18,19,20,21゜22.23,
24・・・・・・母線、51・・・・・・プログラム・
カウンタ、52・・・・・・命令デコーダ、53・・・
・・・制御装置、55・・・・・・制御回路、31・・
・・・・浮動小数点状態レジスタ、30・・・・・・λ
カレジスタ、32・・・・・・データ久カマルチプレク
サ、34・・・・・・指数演算論理装置、33・・・・
・・指数マルチプレクサ、43・・・・・・命令レジス
タ。
FIG. 1 shows a data processing apparatus having a central processing unit and parallel units for executing separate classes of instructions. FIG. 2 is a detailed block diagram of the parallel device shown in FIG. 1 adapted to process floating point instructions. Figures 3A-G are flow diagrams illustrating the operation of the device along with the central processing unit. 4 is a schematic diagram of certain parts of the special control circuit for the apparatus of FIG. 2; FIG. 10...Central processing unit, 11...
Storage device, 12...Peripheral device, 13...
・Floating point unit, 14... Exponential calculation logic, 1
5... Fraction calculation logic, 16... Register device, 17, 18, 19, 20, 21゜22.23,
24... Bus line, 51... Program.
Counter, 52...Instruction decoder, 53...
...Control device, 55...Control circuit, 31...
...Floating point status register, 30...λ
register, 32... data storage multiplexer, 34... exponent arithmetic logic unit, 33...
...Exponent multiplexer, 43...Instruction register.

Claims (1)

【特許請求の範囲】 1 中央演算処理装置(10;第1図)に接続し、前記
中央演算処理装置の他の演算と並行して特殊命令用のデ
ータを処理するための特殊命令処理装置において、 (イ)アドレス通路(17;第1図)、データ通路(1
8,19;第1図)および制御通路(20;第1図)に
接続され前記中央演算処理装置から前記特殊命令を受け
るための手段と、 仲)前記制御通路上の転送信号(FPATTN;第2図
)に応答して、前記特殊命令処理装置を可能化し命令用
の第1の処理サイクルを開始せしめるための手段と、 (ハ)一連の処理サイクルで各命令を処理し、各処理サ
イクル中に制御信号(FPREQ ;第4図)および同
期信号(FPSYNC;第4図)を発生し、その後は更
に別の転送信号を受取るまでそれ以上の処理を阻止する
ような制御手段(55;第2図及び第4図)と、 (ニ)各命令について最終処理サイクル中に制御信号を
不能化するための手段(305,304゜73;第4図
ニステップ114;第3C図)と、を備えることを特徴
とする特殊命令処理装置。 2、特許請求の範囲第1項記載の特殊命令処理装置にお
いて、該特殊命令処理装置は、命令デコーダ、制御装置
および特殊命令を処理するための装置(34,42;第
2図)を含み、前記制御信号は前記中央演算処理装置か
らの転送信号に応答して、前記特殊命令処理装置および
前記中央演算処理装置を相互に作用せしめ(70,72
,73;第4図ニステップ104−106 ;第3B図
)、前記制御装置は、更に相互作用が必要である時制御
信号および同期信号を生成するために前記デコーダに応
答する装置(72,73;第4図ニステップ108;第
3B図)を含み、前記制御および同期信号は前記中央演
算処理装置に接続されることを特徴とする特殊命令処理
装置。 3 特許請求の範囲第1項記載の特殊命令処理装置にお
いて、該特殊命令処理装置は、浮動小数点算術演算に従
ってデータを処理するための装置(34,42;第2図
)を含み、前記中央演算処理装置は、前記特殊命令処理
装置内の処理サイクルの始めに応答して、@記特殊命令
処理装置内の演算と同時に行なわれる他の独立した処理
オペレーションに行くための装置(ステップ205に続
くステップ;第3B図)を含むことを特徴とする特殊命
令処理装置。
[Scope of Claims] 1. A special instruction processing device connected to a central processing unit (10; Fig. 1) for processing data for special instructions in parallel with other operations of the central processing unit. , (a) Address path (17; Figure 1), data path (1
means for receiving the special command from the central processing unit; 2) for enabling said special instruction processing unit to initiate a first processing cycle for an instruction; and (c) for processing each instruction in a series of processing cycles, during each processing cycle. control means (55; second control means) which generates a control signal (FPREQ; FIG. 4) and a synchronization signal (FPSYNC; FIG. 4), and then blocks further processing until receiving another transfer signal; and (d) means for disabling control signals during the final processing cycle for each instruction (305, 304° 73; step 114 in FIG. 4; FIG. 3C). A special instruction processing device characterized by: 2. The special instruction processing device according to claim 1, wherein the special instruction processing device includes an instruction decoder, a control device, and a device (34, 42; FIG. 2) for processing special instructions; The control signal causes the special instruction processing unit and the central processing unit to interact with each other in response to a transfer signal from the central processing unit (70, 72).
, 73; steps 104-106 in FIG. 4; FIG. 3B), the controller includes devices (72, 73) responsive to the decoder to generate control and synchronization signals when further interaction is required. ; FIG. 4 step 108; FIG. 3B), and the control and synchronization signals are connected to the central processing unit. 3. The special instruction processing device according to claim 1, wherein the special instruction processing device includes a device (34, 42; FIG. 2) for processing data according to floating point arithmetic operations, The processing unit, in response to the beginning of a processing cycle in the special instruction processing unit, performs a process (steps following step 205) for going to other independent processing operations that are performed concurrently with operations in the special instruction processing unit. ; FIG. 3B).
JP48114325A 1972-10-10 1973-10-11 Tokushiyumei Reishiori Sochi Expired JPS5828609B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US29595272A 1972-10-10 1972-10-10

Publications (2)

Publication Number Publication Date
JPS49100938A JPS49100938A (en) 1974-09-24
JPS5828609B2 true JPS5828609B2 (en) 1983-06-17

Family

ID=23139935

Family Applications (1)

Application Number Title Priority Date Filing Date
JP48114325A Expired JPS5828609B2 (en) 1972-10-10 1973-10-11 Tokushiyumei Reishiori Sochi

Country Status (5)

Country Link
JP (1) JPS5828609B2 (en)
CA (1) CA1013861A (en)
DE (1) DE2350871A1 (en)
GB (1) GB1429323A (en)
IE (1) IE40138B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS637217Y2 (en) * 1984-11-26 1988-03-01
JPH04504072A (en) * 1989-03-17 1992-07-23 メリット・メディカル・システムズ・インコーポレーテッド lock syringe

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3811114A (en) * 1973-01-11 1974-05-14 Honeywell Inf Systems Data processing system having an improved overlap instruction fetch and instruction execution feature
JPS6016647B2 (en) * 1977-11-30 1985-04-26 株式会社日立製作所 Arithmetic control method
US4229801A (en) * 1978-12-11 1980-10-21 Data General Corporation Floating point processor having concurrent exponent/mantissa operation
JPS59165140A (en) * 1983-03-10 1984-09-18 Fujitsu Ltd Two-dimensional arithmetic circuit
US4947316A (en) * 1983-12-29 1990-08-07 International Business Machines Corporation Internal bus architecture employing a simplified rapidly executable instruction set

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS637217Y2 (en) * 1984-11-26 1988-03-01
JPH04504072A (en) * 1989-03-17 1992-07-23 メリット・メディカル・システムズ・インコーポレーテッド lock syringe

Also Published As

Publication number Publication date
DE2350871A1 (en) 1974-04-18
JPS49100938A (en) 1974-09-24
IE40138L (en) 1974-04-10
IE40138B1 (en) 1979-03-28
GB1429323A (en) 1976-03-24
CA1013861A (en) 1977-07-12

Similar Documents

Publication Publication Date Title
JP3206704B2 (en) Data processing device with multiple on-chip memory buses
JP2539199B2 (en) Digital processor controller
US5099417A (en) Data processing device with improved direct memory access
JPH0731597B2 (en) Processor with multiple microprogram controlled processors
JPH083786B2 (en) Floating point processor
US5471607A (en) Multi-phase multi-access pipeline memory system
JPS5831014B2 (en) instruction prefetch device
US5029073A (en) Method for fast establishing a co-processor to memory linkage by main processor
EP0087785A2 (en) Microprogram controlled data processing apparatus
JPH10228376A (en) Method and program for processing multiple-register instruction
EP0010196B1 (en) Control circuit and process for digital storage devices
US5983328A (en) Data processing device with time-multiplexed memory bus
JPS5828609B2 (en) Tokushiyumei Reishiori Sochi
US4677549A (en) Pipelined data processor system having increased processing speed
US4967339A (en) Operation control apparatus for a processor having a plurality of arithmetic devices
JP2916605B2 (en) Computer processor
JPS6161416B2 (en)
US5276853A (en) Cache system
JPS6134188B2 (en)
JPH0227696B2 (en) JOHOSHORISOCHI
JP2619425B2 (en) Sequence controller
JPS6134186B2 (en)
JPS62536B2 (en)
JPS6119065B2 (en)
JPS603049A (en) Bus interface apparatus