JPH0326872B2 - - Google Patents
Info
- Publication number
- JPH0326872B2 JPH0326872B2 JP59149835A JP14983584A JPH0326872B2 JP H0326872 B2 JPH0326872 B2 JP H0326872B2 JP 59149835 A JP59149835 A JP 59149835A JP 14983584 A JP14983584 A JP 14983584A JP H0326872 B2 JPH0326872 B2 JP H0326872B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- vector
- data
- vpu
- cpu
- 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 - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8076—Details on data register access
- G06F15/8084—Special arrangements thereof, e.g. mask or switch
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
- Advance Control (AREA)
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明はデータ処理装置に関するものであり、
具体的には、現存の制御技術を用いた機能(フア
クシヨナル)装置、及びベクトル計算を行なう目
的で設計された機能装置でその目的を達成すため
のスカラ計算用のデータ径路を含んだデータ処理
装置に関するものである。[Detailed Description of the Invention] [Field of Industrial Application] The present invention relates to a data processing device,
Specifically, functional devices using existing control technology, functional devices designed for the purpose of vector calculations, and data processing devices that include data paths for scalar calculations to achieve that purpose. It is related to.
下記の米国特許はベクトル・データ処理を行な
う現存のデータ処理構造の代表例である。
The following US patents are representative of existing data processing structures that perform vector data processing.
米国特許第4128880号はベクトル処理のために
特別に設計されたプロセツサを開示するが、それ
は独自のプログラミングを必要とし、処理のため
にベクトル・データをそれに供与するたにはホス
ト・コンピユータに依存しなければならない。こ
の米国特許は多くのユーザーの必要性を越えた可
能性を提供する極めて大きいプログラムのため極
めて高い速度で処理する他のプロセツサをも示し
ている。 U.S. Pat. No. 4,128,880 discloses a processor specifically designed for vector processing, but it requires its own programming and relies on a host computer to provide it with vector data for processing. There must be. This US patent also shows other processors that process at extremely high speeds for extremely large programs, offering possibilities beyond the needs of many users.
ベクトル・オペランドを処理するための他の例
は米国特許第4172287号である。元来スカラ計算
用に設計された一般用データ・プロセツサであつ
て、各インストラクシヨンを実行するため1対の
オペランドを処理するように設計された演算兼輪
理装置を含むものを改造し、ベクトル命令を識別
できるようにした。改造の大部分はベクトル素子
のアクセスのためのメモリ・アドレス演算の取扱
に関係する。処理全体の速度を高めるため極く限
られたメモリ・アドレシング状態の下でのみ、ベ
クトル・バフアを加えて使用に供している。しか
しこのように改造しても元来の演算装置が依然と
し使用される。後者の米国特許ではベクトル命令
のマイクロプログラミングのため追加の記憶装置
も必要となり、この形式の実行制御につきものの
速度低下を伴なう。更に基本プロセツサの割込み
処理動力は、エラー処理の精度が低い場合はベク
トル処理の状態に依存する。 Another example for processing vector operands is US Pat. No. 4,172,287. A general-purpose data processor originally designed for scalar computations, modified to include an arithmetic and rotation unit designed to process a pair of operands to execute each instruction, Vector instructions can now be identified. Most of the modifications involve handling of memory address operations for vector element access. Vector buffers are added and used only under very limited memory addressing conditions to speed up the overall processing. However, even with this modification, the original arithmetic unit is still used. The latter US patent also requires additional storage due to the microprogramming of vector instructions, with the inherent slowdowns associated with this form of execution control. Furthermore, the interrupt processing power of the basic processor depends on the state of vector processing if the accuracy of error processing is low.
本発明の解決課題は次の通りである。 The problems to be solved by the present invention are as follows.
(1) 中央処理装置(CPU)の基本的な命令処
理・実行装置に対してベクトル処理機能装置を
接続するだけで、高速ベクトル処理能力を持つ
た一般用データ処理システムを提供すること。(1) To provide a general data processing system that has high-speed vector processing capability by simply connecting a vector processing function device to the basic instruction processing/execution device of a central processing unit (CPU).
(2) ベクトル機能装置へ推進信号を与えるために
マイクロプログラム制御しか必要でないマイク
ロプログラミング制御を有する基本的データ・
プロセツサ用のベクトル処理を提供すること。(2) Basic data and microprogramming control that requires only microprogramming control to provide propulsion signals to vector function devices.
To provide vector processing for processors.
(3) ベクトル例外条件を正しく処理するため適切
な基本システムに対して、精密な割込み及びエ
ラー情報を提供すること。(3) Providing precise interrupt and error information to the appropriate underlying system to correctly handle vector exception conditions.
(4) アドレス可能なベクトル・レジスタと、長い
連鎖状素子のうちの特定素子に対してのみ融通
自自在な処理を行なうことを可能にするマスキ
ング能力と、を含んだベクトル処理用の機能装
置を提供すること。(4) A functional device for vector processing that includes an addressable vector register and a masking capability that allows flexible processing to be performed only on specific elements in a long chain of elements. to provide.
〔問題点を解決するための手段〕
上記の課題は、アドレス可能ベクトル・レジス
タ、並列加算器及び乗算/除算装置を含むパイプ
ライン式演算装置、パイプライン式益算装置を並
列化する例外条件又はエラー表示輪理、及びオペ
ランド・アクセス制御のためのマスク輪理を含ん
だハード配線されたベクトル処理機能装置によつ
て解決される。ベクトル機能装置は基本プロセツ
サの命令処理兼制御輪理と、実行する命令を受取
るための基本装置のオペランド取出し能力及び記
憶能力と、動作されるべきベクトル素子に完全に
依存する。ベクトル処理機能装置は基本システム
のマイクロプログラム制御からアドバンス信号を
受取ることにより基本システムと同期した状態で
ベクトル処理を進める。[Means for Solving the Problems] The above-mentioned problems address the exceptional conditions for parallelizing pipelined arithmetic units, pipelined arithmetic units including addressable vector registers, parallel adders, and multiplication/division units, or The solution is a hard-wired vector processing function unit that includes an error indication wheel and a mask wheel for operand access control. Vector functional units depend entirely on the instruction processing and control processing of the basic processor, the operand fetching and storage capabilities of the basic unit to receive instructions to execute, and the vector elements to be operated on. The vector processing function unit advances vector processing in synchronization with the base system by receiving advance signals from the base system's microprogram control.
ベクトル処理機能装置の演算パイプラインは
夫々例外条件又はエラーを表示する論理を含んだ
複数の段より成る。例外条件又はエラーを表示す
る論理は間違つた結果を出すのを防止し、且つ正
しく処理して例外条件から復旧するためその例外
条件又はエラーの情報を基本システムに提供す
る。 The computational pipeline of a vector processing function unit consists of multiple stages, each stage containing logic to indicate an exceptional condition or error. Logic that indicates an exception condition or error prevents erroneous results and provides information about the exception condition or error to the underlying system for correct processing and recovery from the exception condition.
マスクレジスタ及び論理ベクトル機能装置のベ
クトル記憶中の幾つかの素子を統合することによ
り、長いベクトルのうちの幾つかの素子だけを取
扱う融通性を与える。これにより、一旦素子がア
クセスされてしまうと処理に手数がかからなくな
り、演算装置のパイプラインを非常に有効に利用
できるようになる。 Integrating some elements in the mask register and the vector store of the logical vector function unit provides the flexibility of handling only some elements of a long vector. As a result, once an element is accessed, the processing becomes less troublesome, and the pipeline of the arithmetic unit can be used very effectively.
第第2図は本発明の対象であるVPU20を含
んだデータ処理システムの全体図である。第2図
のVPU20を除く残りの部分が米国特許第
4200927号に開示されたような基本データ処理シ
ステムである。
FIG. 2 is an overall diagram of a data processing system including the VPU 20, which is the object of the present invention. The remaining parts except VPU20 in Figure 2 are covered by the US patent.
It is a basic data processing system as disclosed in No. 4200927.
メモリ装置21はプロセツサ記憶23及びプロ
セツサ記憶制御機能(PSCF)24を含む。メモ
リ装置21はプログラム命令と、VPU20で処
理すべきベクトルを含むデータ・オペランドとを
記憶するために使用する。CPU22は命令を予
じめ処理する機能(IPPF)25、及びE機能装
置26を含む。これらの装置の詳細は米国特許第
4200927号に開示されている。IPPF25はE機能
26が実行すべきすべての命令及びVPU20が
実行すべきすべての命令の取出し及び符号解読を
引受ける。E機能26は非ベクトルを処理する命
令を実行し、E機能26とメモリ装置21との間
にデータ径路27を作る。E機能26は命令実行
制御信号を発生するためのマイクロプログラム制
御記憶を持つ。 Memory device 21 includes processor memory 23 and processor storage control function (PSCF) 24. Memory device 21 is used to store program instructions and data operands, including vectors to be processed by VPU 20. The CPU 22 includes an instruction preprocessing function (IPPF) 25 and an E function unit 26 . Details of these devices can be found in U.S. Patent No.
It is disclosed in No. 4200927. IPPF 25 takes care of fetching and decoding all instructions to be executed by E function 26 and all instructions to be executed by VPU 20. E function 26 executes instructions that process non-vectors and creates a data path 27 between E function 26 and memory device 21 . E function 26 has a microprogram control store for generating instruction execution control signals.
基本データ処理システムとVPU20との相互
接続はVPU20及びE機能26間のインタフエ
イス28と、VPU20及びIPPF25間のインタ
フエイス29とによつてなされる。 Interconnection between the basic data processing system and the VPU 20 is provided by an interface 28 between the VPU 20 and the E function 26, and an interface 29 between the VPU 20 and the IPPF 25.
第1図はVPU20及びCPU22の種々の機能
装置を示す。情報を含む詳細は第2図に示すイン
タフエイス28及び29の説明に護ることにす
る。 FIG. 1 shows various functional units of VPU 20 and CPU 22. Details, including information, will be found in the description of interfaces 28 and 29 shown in FIG.
インタフエイス29はIPPE25中のI素子命
令キユー30からVPU20のベクトル命令レジ
スタ31及びQ命令バツフア32へベクトル命令
OPコードを送る。 The interface 29 transfers vector instructions from the I element instruction queue 30 in the IPPE 25 to the vector instruction register 31 and Q instruction buffer 32 of the VPU 20.
Send the OP code.
インタフエイス29はベクトル・インデツクス
レジスタ33及びストライドレジスタ34間でア
ドレス情報を転送するのにも使用される。ストラ
ンドレジスタ34は順序づけられたベクトル素子
間の主記憶アドレス区切りを指定するアドレス情
報を収容している。 Interface 29 is also used to transfer address information between vector index register 33 and stride register 34. Strand register 34 contains address information specifying main memory address divisions between ordered vector elements.
VPU20及びCPU22のE機能26間のイン
タフエイス28の詳細は第1図に示す。第2図の
VPU20及びメモリ装置21間のデータの転送
はデータバス35によつて行われる。2図のメモ
リ装置21からVPU26へのデータ転送はデー
タバス27、E機能26のレジスタ36、データ
バス35、VPU20中のレジスタ37へと行な
われる。VPU20から第2図のメモリ装置21
へのデータ転送は、VPU20中のレジスタ38
又はラムダレジスタ39から2方向性のバス35
を介してE機能26中のレジスタ40を介してバ
ス27へと行なわれる。 Details of the interface 28 between the VPU 20 and the E function 26 of the CPU 22 are shown in FIG. Figure 2
Data transfer between the VPU 20 and the memory device 21 is performed by a data bus 35. Data transfer from the memory device 21 to the VPU 26 in FIG. From the VPU 20 to the memory device 21 in Figure 2
Data transfer to register 38 in VPU20
or from lambda register 39 to bidirectional bus 35
to bus 27 via register 40 in E function 26.
多重の演算パイプライン処理がVPU20で行
われ、長いベクトルを処理するときには多量のア
ドレス演算が行われる。多様なエラー状態が
CPU22又はVPU20に生じたときは、エラー
状態が生じた命令実行順序に於ける正確な地点を
表示することが大切である。 Multiple calculation pipeline processing is performed in the VPU 20, and a large amount of address calculations are performed when processing long vectors. Various error conditions
When an error condition occurs in CPU 22 or VPU 20, it is important to indicate the exact point in the instruction execution order where the error condition occurs.
生じうる1つのエラー状態はメモリ装置21か
らE機能26へのデータアクセスに於けるエラー
の検出に関係する。E機能26に於けるエラーの
検出に反応してすべての処理を打切ると言うより
は、アクセス例外条件がE機能26中の41で受
取られて線42を介してVPU20のアクセス例
外条件機構43へ送られる。43が受取つた例外
条件は以後の時刻で利用されて、どれだけの命令
処理がベクトル素子の長いストリングに対して行
われたかどうかについての一層正確な情報を与え
る。これについては後述する。 One error condition that may arise involves the detection of an error in accessing data from memory device 21 to E function 26. Rather than aborting all processing in response to the detection of an error in the E function 26, the access exception condition is received at 41 in the E function 26 and sent via line 42 to the access exception condition mechanism 43 of the VPU 20. sent to. The exception conditions received by 43 are utilized at subsequent times to provide more accurate information as to how much instruction processing has been performed on a long string of vector elements. This will be discussed later.
生じうる他のエラー状態は、VPU20での演
算エラーの検出に関係する。演算エラーに応答し
て例外条件コードが44で作られ、線45を介し
てCPU22の状態表示器46に送られる。演算
例外条件はコード化された形で表わされて、
CPU22による解析のための状態表示器(トリ
ガ)46に記憶され、なすべき訂正処理を決定す
るのに利用される。 Other error conditions that may arise relate to the detection of computational errors in VPU 20. In response to an arithmetic error, an exception condition code is generated at 44 and sent via line 45 to a status indicator 46 of CPU 22. Operational exception conditions are expressed in coded form,
It is stored in a status indicator (trigger) 46 for analysis by the CPU 22 and used to determine the corrective action to be taken.
前に説明され第1図に示されたように、E機能
26はその基本制御機構とてマイクロプログラム
制御記憶47を有する。分岐岐即ち制御記憶47
中のマイクロ命令実行の順序の変更が輪理48に
よつて信号されて、種々の分岐点を表示する。分
岐要求を表わす種々の信号線がVPU20からサ
ービス要求49によつて信号され、線50を介し
て分岐点輪理48へ送られる。 As previously described and shown in FIG. 1, the E function 26 has a microprogram control store 47 as its basic control mechanism. Branch branch or control memory 47
Changes in the order of execution of microinstructions within are signaled by wheel 48 to indicate various branch points. Various signal lines representing branch requests are signaled by service request 49 from VPU 20 and sent to branch point wheel 48 via line 50.
第1図に示す1つの最後の線(第2図のインタ
フエイスの1部である線)は線51である。マイ
クロ命令が制御記憶47から読取られてデータレ
ジスタ52に入れられたとき、符号解読器が
CPU22のE機能26へ実行制御信号を与える。
本発明の1部としてVPU20の動作のタイミン
グ制御がCPU22の基本クロツクサイクルによ
つて行われる。VPU20の種々の機能の順次進
行は、データレジスタ52の符号解読からの線5
1上の信号の制御を受ける。この信号は推進53
と名付けられる。VPU20に於けるすべてのタ
イミング及びゲート付勢は、線51上のマイクロ
命令順序の制御を受けてそれと同期し、VPU2
0のすての論理及びゲートへ進む線54上の推進
パルスに応答する。 The one last line shown in FIG. 1 (the line that is part of the interface of FIG. 2) is line 51. When a microinstruction is read from control memory 47 and placed into data register 52, the decoder
An execution control signal is given to the E function 26 of the CPU 22.
As part of the present invention, timing control of the operation of VPU 20 is provided by the basic clock cycles of CPU 22. The sequential progression of the various functions of VPU 20 follows line 5 from the decoding of data register 52.
Under the control of the signal above 1. This signal is propulsion 53
It is named. All timing and gate activation in VPU 20 is controlled and synchronized with the microinstruction sequence on line 51,
Responsive to all logic at 0 and a driving pulse on line 54 going to the gate.
第3図は第1図の線50上に信号されるVPU
20の状態情報を示し、それらの状態情報は制御
記憶47からのマイクロ命令の順序を制御するた
ため分岐点輪理48で使用されるものである。信
号線55及び56は第1図のIPPF25及びE機
能26からのベクトル処理関連信号線を示す。制
御記憶47のマイクロ命令順序に於ける分岐は、
VPU20の準備完了、オペランド取出し又は記
憶のための要件、ベクトル命令の終端、及びベク
トル例外条件表示を表わす機つかのVPU20の
状態で生じる。 Figure 3 shows the VPU signaled on line 50 of Figure 1.
20 state information is shown which is used by branch point processor 48 to control the order of microinstructions from control store 47. Signal lines 55 and 56 represent vector processing related signal lines from IPPF 25 and E function 26 of FIG. Branches in the microinstruction order of control store 47 are:
Occurs in several VPU 20 states to indicate VPU 20 readiness, requirements for operand fetch or store, end of vector instruction, and vector exception condition indications.
第4図は、本発明のVPU20の種々の径路、
レジスタ、機能装置を示す。VPU20及びCPU
22間のインタフエイスに関係する幾つかのレジ
スタ及びバスは第1図と関連して既に述べた。バ
スはインタフエイス線29及び35を含む。レジ
スタとしてはデータ・イン・レジスタ37、夫々
ステージA及びランダムと表記されたレジスタ3
8及び39、命令レジスタ31、命令バツフア3
2、及びアドレス・インデツクスレジスタ33を
含む。 FIG. 4 shows various paths of the VPU 20 of the present invention,
Indicates a register, functional device. VPU20 and CPU
Some of the registers and buses involved in the interface between 22 and 22 were previously described in connection with FIG. The bus includes interface lines 29 and 35. The registers are data-in register 37, register 3 labeled stage A and random, respectively.
8 and 39, instruction register 31, instruction buffer 3
2, and an address index register 33.
これらのレジスタ、まだ説明していない他のレ
ジスタ、及び演算装置の機能について以下に説明
する。第4図にベクトル・レジスタ・アレイ57
が示されている。このアレイ57は16個のベクト
ル・レジスタ(VR)を含み、各VRは128個の4
バイト素子で構成されてている。VRを(奇偶ペ
アに)結合して2倍語オペランドを形成してもよ
い。ベクトル・レジスタ・アレイ57のアドレシ
ングは後述の多数のアドレス・レジスタ(第4図
では一般的に58で示す)と関連する。 These registers, other registers not yet described, and the functionality of the arithmetic unit are described below. Figure 4 shows the vector register array 57.
It is shown. This array 57 contains 16 vector registers (VR), each VR containing 128 4
It is made up of bite elements. VRs may be combined (in odd-even pairs) to form double word operands. Addressing of vector register array 57 is associated with a number of address registers (indicated generally at 58 in FIG. 4) described below.
ステージAレジスタ38及びステージBレジス
タ59はVR57から読出されたデータを受取
る。レジスタ38からのデータは命令次第でベク
トル・データ径路又はE機能26の何れかへ進
む。レジスタ38は線60上のベクトル・マス
ク・レジスタ(VMR)からのデータを受取るこ
ともできる。VMRの機能は後述する。レジスタ
39は演算データの流れに対して遅延レジスタと
して使用されるばかりか、レジスタ38からE機
能26へ送られているデータに対してバツクアツ
プ・レジスタとして使用される。データ遅延は正
しいVRアクセスを実行するのに必要である。 Stage A register 38 and stage B register 59 receive data read from VR 57. Data from register 38 goes either to the vector data path or to E function 26 depending on the instruction. Register 38 can also receive data from a vector mask register (VMR) on line 60. The functions of VMR will be described later. Register 39 is used as a delay register for the flow of operational data as well as a backup register for data being sent from register 38 to E function 26. Data delay is necessary to perform correct VR access.
レジスタ61及び62は種々の源からの情報を
受取る。その出力は浮動小数点演算のための指数
整合時に使用される予備シフト論理へ送られる。
夫々レジスタ63及び64にある演算・輪理装置
(ALU)はALU65によつて処理されるべきデ
ータを収容したステージング・レジスタである。
演算・輪理装置(ALU)65は並列のバイナリ
加算器である。ALU出力レジスタ66は前のサ
イクルで得られたALU65の出力を保持する。
事後正規化輪理67が浮動小数点演算用に設けら
れている。ALU取出しレジスタ68の入力は事
後正規化輪理67の出力を受取る。レジスタ68
はALU65に循還するデータに対して遅延レジ
スタとして働く。レジスタ68はレジスタ61,
63,66と一緒に4サイクル閉回路を形成す
る。これは後述のベクトル累算命令用に使用され
る。 Registers 61 and 62 receive information from various sources. Its output is sent to pre-shift logic used during exponent matching for floating point operations.
Arithmetic and processing units (ALUs) in registers 63 and 64, respectively, are staging registers containing data to be processed by ALU 65.
Arithmetic/Line Unit (ALU) 65 is a parallel binary adder. ALU output register 66 holds the output of ALU 65 obtained in the previous cycle.
A post normalization wheel 67 is provided for floating point operations. The input of ALU fetch register 68 receives the output of post-normalization wheel 67. register 68
acts as a delay register for data circulating to the ALU 65. Register 68 is register 61,
Together with 63 and 66, it forms a 4-cycle closed circuit. This is used for the vector accumulation instruction described below.
インデツクス・レジスタ33はレジスタ68の
出力を入力として受取る。インデツクス・レジス
タ33はインデツクス形式の命令中に発生するア
ドレスを保持するために使用される。特定の場合
には、そのアドレスは次に第1図に示すIPPF2
5のアドレス増分器へ送られる。 Index register 33 receives the output of register 68 as an input. Index register 33 is used to hold addresses that occur during index type instructions. In certain cases, the address is then IPPF2 as shown in Figure 1.
5 address incrementer.
VR取出しレジスタ69はVRアレイ57に書
込まれるデータのためのステージとして働く。そ
の合入力はレジスタ37から又は幾つかの源を持
つ取出しバス70からのものである。 VR fetch register 69 serves as a stage for data written to VR array 57. The input is from register 37 or from fetch bus 70 which has several sources.
レジスタ71及び72はそれぞれ乗算ステージ
Aレジスタ及び乗算ステージBレジスタである。
これらのレジスタは指数合計論理37を含む乗算
データ径路の残り部分に送るデータを収容する。
被乗数Aステージ・レジスタ74は乗算に対して
被乗数を、除算に対して除数を保持し、更に除算
機能中は被除数をバツフアする。乗数レジスタ7
5は乗算用の乗数を記憶し、且つ除算の商を記憶
する。 Registers 71 and 72 are a multiplication stage A register and a multiplication stage B register, respectively.
These registers contain data to send to the remainder of the multiplication data path, including the exponent sum logic 37.
Multiplicand A stage register 74 holds the multiplicand for multiplications, the divisor for divisions, and also buffers the dividend during division functions. Multiplier register 7
5 stores a multiplier for multiplication and stores a quotient for division.
レジスタ74及び75の出力は乗・除算装置7
6に対する入力となる。乗・除算装置76の出力
径路に積・商レジスタ77及び事後正規化輪理7
8がある。乗・除算データ径路の最後のレジスタ
は乗算取出しレジスタ79であつて、事後正規化
輪理78の出力を受取り、且つ除算機能の1部と
してのすべてのベクトル除算命令に対し及びある
種の複合ベクトル命令に対し、ALU65のデー
タ径路へ供給されるべきデータのための遅延レジ
スタとして働く。 The outputs of registers 74 and 75 are sent to multiplication/division device 7
This is the input for 6. A product/quotient register 77 and a post-normalization wheel 7 are connected to the output path of the multiplication/division device 76.
There are 8. The last register in the multiply/divide data path is the multiply fetch register 79, which receives the output of the postnormalization wheel 78 and for all vector divide instructions as part of the divide function and for certain complex vectors. Serves as a delay register for data to be provided to the data path of ALU 65 for instructions.
前述のレジスタ37は第1図のE機能26中の
レジスタ36から到来するデータに対するバツフ
アとして働く。ALU65はバイナリの短精度オ
ペランド及び長精度オペランドに対して加算及び
減算を行う演算・輪理装置である。ALU65は
AND、OR、及びEXOR輪理動作と、オペランド
の0,1,2、又は3ビツト左へ輪理的にシフト
する動作とを行うことができる。 The aforementioned register 37 serves as a buffer for data coming from register 36 in E function 26 of FIG. The ALU 65 is an arithmetic/cycle unit that performs addition and subtraction on binary short-precision operands and long-precision operands. ALU65 is
AND, OR, and EXOR operations and operations that logically shift the operand by 0, 1, 2, or 3 bits to the left can be performed.
インタフエイス29の情報を受取る命令バツフ
ア32は命令実行中VPU20中の他の符号解読
回路が使用するベクトル・レジスタ・アドレス及
びベクトル命令OPコードを保持する。 Instruction buffer 32, which receives information from interface 29, holds vector register addresses and vector instruction OP codes used by other decoding circuits in VPU 20 during instruction execution.
第4図に於てベクトル・オペランド・データは
VRアレイ5又はデータ・イン・レジスタ37を
介してCPU22から到来する。両オペランドが
VRアレイ57から到来したときは第1のベクト
ル素子はデータ径路のA側を通つて進行する。第
2のベクトル素子はデータ径路のB側を通つて進
行する。データ径路のすべての部分(ALU65
又は乗・除算装置76)が同時にステツプする。
最初、A側ベクトル・オペランドの第1の素子が
B側ベクトル・オペランドの第1の素子よりも1
サイクル早くVRアレイ57から読出される。か
くて2サイクルの後にA側素子1はラムダ・レジ
スタ39にあり、B側素子1はステージBレジス
タ59にあり、A側素子2がステージAレジスタ
38にある。この初期オフセツトはVRアレイ5
7より成る単一ポート・アレイ・チツプに順応す
るために与えられた。このオフセツトは後述の物
理アレイ・チツプに於ける輪理ベクトル配列と関
連して、任意所定のサイクル中には任意のアレ
イ・チツプから1度しか読取られないようにす
る。VR取出しレジスタ69からのベクトル結果
は各機械サイクル毎にVRアレイ57中に記憶さ
れる。 In Figure 4, the vector operand data is
It comes from CPU 22 via VR array 5 or data in register 37. Both operands
When arriving from VR array 57, the first vector element travels through the A side of the data path. The second vector element travels through the B side of the data path. All parts of the data path (ALU65
or the multiplier/divider unit 76) steps simultaneously.
Initially, the first element of the A-side vector operand is 1 greater than the first element of the B-side vector operand.
It is read out from the VR array 57 a cycle early. Thus, after two cycles A-side element 1 is in lambda register 39, B-side element 1 is in stage B register 59, and A-side element 2 is in stage A register 38. This initial offset is VR array 5
7 to accommodate a single port array chip. This offset, in conjunction with the circular vector arrangement in the physical array chip described below, ensures that only one read from any array chip occurs during any given cycle. The vector result from VR fetch register 69 is stored in VR array 57 for each machine cycle.
第2図のメモリ装置21からの1つのベクトル
があり且つVRアレイ57からも1つのベクトル
があるとき、VRアレイ57からのベクトルはデ
ータ径路のB側を通つて流れる。E機能26から
到来するベクトルはレジスタ37に入り、次に
ALUシフトAレジスタ61又は乗算ステージA
レジスタ71の何れかで始まるデータ径路のA側
を通つて流れる。ベクトル結果は命令によつて指
定される通り宛先VRアレイ57に書込まれる。 When there is one vector from memory device 21 of FIG. 2 and there is also one vector from VR array 57, the vector from VR array 57 flows through the B side of the data path. The vector coming from E function 26 enters register 37 and then
ALU shift A register 61 or multiplication stage A
Flows through the A side of the data path starting in either register 71. The vector results are written to the destination VR array 57 as specified by the instruction.
VRアレイ57から1つのベクトルがあり且つ
E機能26からスカラ・オペランドがあるとき、
CPU22はある信号を使つてALU65又は乗・
除算装置76データ径路の何れかのA側にスカ
ラ・オペランドを送る。スカラ・オペランドは
ALUシフトAレジスタ61又は乗算ステージA
レジスタ71の何れかに保持され、後続の輪理へ
供給される。VRアレイ57のオペランドはデー
タ径路のB側を通つて流れる。結果は宛先VRア
レイ57に書込まれる。 When there is one vector from VR array 57 and a scalar operand from E function 26,
The CPU 22 uses a certain signal to use the ALU 65 or multiply
Divide unit 76 sends a scalar operand to either A side of the data path. The scalar operand is
ALU shift A register 61 or multiplication stage A
It is held in one of the registers 71 and supplied to the subsequent wheel. The operands of VR array 57 flow through the B side of the data path. The results are written to destination VR array 57.
メモリ装置21からの1つのベクトルと、E機
能26からの1つのスカラ素子とが存在すると
き、CPU22はスカラ・オペランドをALU65
又は乗・除算装置76のデータ径路の何れかのA
側に送る信号を発生する。然る後CPU22は推
進信号を出してベクトル記憶オペランドをデータ
径路のB側経由でステツプさせる。次に結果が宛
先VRアレイ57に書込まれる。 When there is one vector from memory device 21 and one scalar element from E function 26, CPU 22 transfers the scalar operand to ALU 65.
or any A of the data path of the multiplication/division device 76
Generates a signal to be sent to the other side. CPU 22 then issues a push signal to step the vector storage operand through the B side of the data path. The results are then written to the destination VR array 57.
一連のベクトルの素子をメモリ装置21から
VPU20へ転送すべきときの、ベクトル・ロー
ド命令のためのデータ転送径路はCPU22から
レジスタ6、データ・バス35をつてデータ・イ
ン・レジスタ37へ入る。次にデータはVR取出
しレジスタ69を介してVRアレイ57中に記憶
される。1つの素子がVR中に書込まれる度毎
に、後述のベクトル素子アドレス・レジスタが1
宛増分される。ストランド(即ち相次ぐ素子間の
メモリ・アドレスで1以外のもの)を用いるロー
ド命令に対しては、CPU22はベクトル素子の
記憶アドレスを計算し、記憶に対する取出し要求
を作り、1サイクル当り1素子の最大速度でデー
タを転送する。後述のマスク・レジスタを使用す
るベクトル・ロード命令に対しては、ビツト・マ
スクを試験して特定素子がVR57中にロードさ
れるべきか否かを決定する。アドレス計算の1部
としてインデツクス・ベクトルを使用する命令に
対してはVPU20は記憶アドレスを計算する。
次にそのアドレスはインタフエイス29を介して
CPU22へ送られて、取出し要求を作り且つデ
ータをデータ・バス35経由でVPU20へ転送
する。 elements of a series of vectors from memory device 21
The data transfer path for the vector load instruction when it is to be transferred to the VPU 20 is from the CPU 22 to the register 6, the data bus 35, and the data in register 37. The data is then stored into VR array 57 via VR fetch register 69. Each time an element is written into VR, the vector element address register described below is set to 1.
is incremented. For load instructions that use strands (i.e., memory addresses between successive elements other than 1), the CPU 22 calculates the storage address of the vector element, makes a fetch request to the memory, and processes a maximum of one element per cycle. Transfer data at speed. For vector load instructions that use mask registers, described below, the bit mask is tested to determine whether a particular element is to be loaded into VR 57. For instructions that use an index vector as part of the address calculation, VPU 20 calculates the storage address.
Then that address is sent via interface 29.
Sent to CPU 22 to make a fetch request and transfer the data to VPU 20 via data bus 35.
ベクトル記憶命令の間にVPU20はデータを
VR57からステージAレジスタ38及び両方向
性データ・バス35経由でCPU22へ転送する。
若しもクロツク停状態がCPU22に生じたなら
ば、1サイクル後にVPU20に於て1つの信号
がアクテイブになる。データ・バス35上に乗せ
るべきであつたデータはラムダ・レジスタ39保
持される。実行が再開したたときラムダ・レジス
タ39中のデータはデータ・バス35上に出され
る。ベクトル・ロード命令と同じような態様で、
アドレス計算、ベクトル・マスク利用、及びイン
デツクス・ベクトル使用が行われる。 During a vector store instruction, the VPU 20 stores data
Transfer from VR 57 to CPU 22 via stage A register 38 and bidirectional data bus 35.
If a clock stall condition occurs in CPU 22, one signal becomes active in VPU 20 one cycle later. The data that should have been placed on data bus 35 is held in lambda register 39. When execution resumes, the data in lambda register 39 is placed on data bus 35. In a similar manner to vector load instructions,
Address calculations, vector mask usage, and index vector usage are performed.
CPU22によるVPU20のサイクリングの強
制的な制御を第5図に示す。CPU22で既に述
べた素子は制御記憶47、制御記憶データ・レジ
スタ52及びレジスタ36を含む。CPU22に
よつて行われる強制的な制御は、CP推進と標記
された1サイクル・トリガ80をセツトする制御
記憶データ・レジスタ52中の特定のマイクロ命
令の特定マイクロ順序を検出することによつて達
成される。信号線51が付勢されてVP推進信号
54を53に於て発生させ、その信号はVPU2
0のステージ間のデータ径路のすべてのデータ径
路ゲートへ供給される。ベクトル・データは推進
信号54が存在しない限りデータ径路を通つて推
進されない。これはVPU20に対する強制的な
CPU22の制御及び同期を保証する。ベクトル
推進信号54がアクテイブでないときは、データ
流れ中の各レジスタはそのデータを保持する。ア
クテイブであるときはデータはVPU20にある
命令によつて指図された通りにゲートされる。 FIG. 5 shows forced control of cycling of the VPU 20 by the CPU 22. Elements previously mentioned in CPU 22 include control store 47, control store data register 52, and register 36. The forced control exerted by the CPU 22 is accomplished by detecting a particular micro-sequence of particular micro-instructions in the control storage data register 52 which sets a one-cycle trigger 80 labeled CP Proceed. be done. Signal line 51 is energized to generate a VP propulsion signal 54 at 53, which signal is transmitted to VPU2.
0 to all datapath gates of the interstage datapath. Vector data is not propelled through the data path unless propulsion signal 54 is present. This is mandatory for VPU20
Ensures control and synchronization of the CPU 22. When vector drive signal 54 is not active, each register in the data stream holds its data. When active, data is gated as directed by instructions in VPU 20.
第5図にVPU20中の機能データ径路を並列
化するデータ有効ビツトを示す。81で示す初期
データ有効ビツトがCPU22のデータ・レジス
タ36と関連づけられ且つマイクロ命令マイクロ
順序によつてセツトされて、レジスタ36の内容
が有効であること及びVPU20へゲート可能で
あることを表示するように働く、データ有効ビツ
トの機能は特定のステージで処理されつつあるデ
ータの有効性を保障することである。取出しレジ
スタ69と関連したデータ有効ビツトが存在しな
いときはVR57の更新を阻止する。オペランド
の源次第でCPU22又はVR57の出力が、処理
されるべき各素子に対してデータ有効ビツトをセ
ツトし、最後の素子が処理された後にデータ有効
ビツトをリセツトする。 FIG. 5 shows the data valid bits that parallelize the functional data paths in the VPU 20. An initial data valid bit, indicated at 81, is associated with data register 36 of CPU 22 and is set by the microinstruction micro-order to indicate that the contents of register 36 are valid and can be gated to VPU 20. The function of the data validity bit is to ensure the validity of the data being processed at a particular stage. The absence of the data valid bit associated with fetch register 69 prevents updating of VR 57. Depending on the source of the operands, the output of CPU 22 or VR 57 sets the data valid bit for each element to be processed and resets the data valid bit after the last element has been processed.
取出しレジスタ69と関連したデータ有効ビツ
ト82がVR57の更新を許すとき、正しく処理
され終つたベクトル素子の数を表示するためカウ
ンタが増分される。このカウンタはベクトルのす
べての素子の処理の完了をも表示する。このカウ
ンタはエラーが生じた状況下で、及び特定のベク
トル命令に対する処理が再開されたとき正しく処
理され終つた素子の総数を表示する必要が生じた
状況下で使用される。データ径路を通るデータ有
効ビツトの通路が実行中の特定のベクトル命令次
第で制御線により形成される。 When data valid bit 82 associated with fetch register 69 allows updating of VR 57, a counter is incremented to indicate the number of vector elements that have been successfully processed. This counter also indicates the completion of processing all elements of the vector. This counter is used in situations where an error has occurred and where it is necessary to indicate the total number of correctly processed elements when processing for a particular vector instruction is resumed. The path of data valid bits through the data path is defined by the control lines depending on the particular vector command being executed.
第6図に示すすべての素子は既に説明されたも
のであり、前と同じ参照番号を付してある。第6
図は2つの代表的なベクトル命令に対するVPU
20内のデータ流れ径路の2つの形態を示す。実
線のデータ径路はVR累算命令を実行するための
形態を示し、破線の径路はVR及び主記憶乗算・
累算命令を実行するための形態を示す。 All elements shown in FIG. 6 have been previously described and have the same reference numerals as before. 6th
The figure shows VPU for two typical vector instructions.
2 shows two configurations of data flow paths within 20. The solid line data path shows the form for executing the VR accumulation instruction, and the dashed line path shows the form for executing VR and main memory multiplication/
2 shows a form for executing an accumulation instruction.
ベクトル累算命令に対しては、4つの部分和が
VR57から読出されてデータ流れのA側に送ら
れる。部分和はステージAレジスタ38、ラム
ダ・レジスタ39、ALUシフトAレジスタ61、
及びALUイン・レジスタ63を介しステツプさ
れる。最初の部分和がレジスタ63が到達し且つ
そのステージに対する有効ビツトがONになつた
とき、B側のデータ流れの読取りが始まる。デー
タ径路中のデータはステツプし続ける中間B側が
読出される。 For vector accumulate instructions, the four partial sums are
It is read from VR57 and sent to the A side of the data stream. The partial sum is stored in the stage A register 38, lambda register 39, ALU shift A register 61,
and ALU in register 63. Reading of the B side data stream begins when the first partial sum is reached by register 63 and the valid bit for that stage is turned ON. The data in the data path is read out on the intermediate B side which continues to step.
累算されるべき素子がステージBレジスタ59
に入るとき、データ流れのA側からの最初の部分
和がALU取出しレジスタ68に入る。次の推進
パルスでALU取出しレジスタ68の内容を線8
3経由でALUシフトAレジスタ61へ転送し、
その間にステージBレジスタ59の内容はALU
シフトBレジスタ65へ転送される。推進パルス
は今や両オペランドをデータ流れの中でステツプ
し、累算された結果を先ずALU出力レジスタ6
6へゲートし、次にALU取出しレジスタ68へ
ゲートし且つ線84を介してVR取出しレジスタ
69へゲートする。VR取出しレジスタ69は累
算結果をVR57の4つの部分和場所のうちの1
つへ送り込む。ALU取出しレジスタ68はすべ
ての結果をALUシフトAレジスタ61に送り返
す。この部分和は次にB側からの他の素子と共に
ALU65へ供給され、この動作が継続する。累
算命令の結果は次の通りである。即ち4番目毎の
素子が加算され、その結果がベクトル・レジスタ
の4つの部分和場所のうち1つへ入れられる。 The element to be accumulated is the stage B register 59.
Upon entry, the first partial sum from the A side of the data stream enters the ALU fetch register 68. At the next propulsion pulse, the contents of the ALU extraction register 68 are transferred to line 8.
3 to the ALU shift A register 61,
Meanwhile, the contents of stage B register 59 are changed to ALU
Transferred to shift B register 65. The propulsion pulse now steps both operands in the data stream, first sending the accumulated result to the ALU output register 6.
6 to ALU fetch register 68 and via line 84 to VR fetch register 69. The VR retrieval register 69 transfers the accumulated result to one of the four partial sum locations of the VR 57.
send it to one. ALU fetch register 68 sends all results back to ALU shift A register 61. This partial sum is then combined with other elements from the B side.
The signal is supplied to the ALU 65 and this operation continues. The result of the accumulate instruction is as follows. That is, every fourth element is added and the result is placed in one of the four partial sum locations of the vector register.
第6図の破線は主記憶からのデータを使用する
乗算及び累算のための構成を示す。第第1の推進
パルスでデータを記憶からデータ・イン・レジス
タ37へゲートし、VR57オペランドの第1の
素子をステージBレジスタ59へと送り込む。第
2の推進パルスでデータ・イン・レジスタ37を
乗算ステージAレジスタ71へゲートし、ステー
ジBレジスタ59を乗算ステージBレジスタ72
へゲートし、第1の部分和をステージAレジスタ
38へゲートする。第2の推進パルスで付勢され
たゲートは更に5つのサイクルの間使用される。
この時点で更に5つの素子乗・除算装置76のデ
ータ流れの中に読込まれている。しかし乗算取出
しレジスタ59中のデータは未だ有効であること
が確認されておらず、部分和0がALU取出しレ
ジスタ68中に存在する。ALU65に向うデー
タ流れは、乗算取出しレジスタ79が有効データ
を表示するまでは更に推進しないように阻止され
る。正当なデータ及びそれと関連した有効ビツト
が乗算取出しレジスタ79に到達したとき、次の
推進パルスがALU取出しレジスタ68をALUシ
フトAレジスタ61へゲートし、乗算取出しレジ
スタ79をALUシフトBレジスタ62へゲート
する。更に4つ推進した後に第1の部分和の累算
された結果と有効ビツトと一緒の乗算結果とが
ALU取出しレジスタ68とVR取出し69に到達
する。結果をベクトル・レジスタ57へ書込むこ
とが始まるのは、積及び部分和0の第1の和が
ALU取出し68に到達したときである。 The dashed lines in FIG. 6 indicate an arrangement for multiplication and accumulation using data from main memory. The first drive pulse gates data from storage into data-in register 37 and drives the first element of the VR57 operand into stage B register 59. The second propulsion pulse gates data in register 37 into multiplication stage A register 71 and gates stage B register 59 into multiplication stage B register 72.
and gates the first partial sum into stage A register 38. The gate energized with the second propulsion pulse is used for an additional five cycles.
At this point, five more elements have been read into the data stream of the multiplier/divider unit 76. However, the data in the multiply fetch register 59 has not yet been confirmed to be valid, and a partial sum of 0 is present in the ALU fetch register 68. Data flow towards ALU 65 is blocked from further forwarding until multiply fetch register 79 indicates valid data. When the valid data and its associated valid bits reach the multiply fetch register 79, the next propulsion pulse gates the ALU fetch register 68 to the ALU shift A register 61 and the multiply fetch register 79 to the ALU shift B register 62. do. After four more steps, the accumulated result of the first partial sum and the multiplication result with the significant bit are
ALU fetch register 68 and VR fetch 69 are reached. Writing the result to vector register 57 begins when the first sum of products and partial sums 0 is
This is when the ALU extraction 68 is reached.
第7図,第8図,第9図はベクトル・レジス
タ・アレイ57と、第4図中58で略示したベク
トル・レジスタ・アレイ・アドレシング機構とを
示す。アレイ57は夫々128個の4バイト素子よ
り成る16個のベクトル・レジスタ(VR)を含
む。VRの2倍ワード・オペランドを形成するた
め組立合わせる(奇・偶ペアにする)ことが可能
である。アレイ全体は64アレイ・チツプ85の
形をとる。各チツプ85は9ビツト幅(8ビツト
+パリテイビツト)である。アレイ・チツプ85
は1サイクル当り唯1度の読み/書きに制限され
るので、第7図に示すようにVRを4路インター
リーブする必要がある。アレイ57の各縦欄は、
4つのグループに分けた16個のチツプ85より成
る1つのインターリーブを表わす。アレイ57の
各横列は4つのVRを表わす。4つの縦欄に形成
されたベクトル・レジスタ0番(VR0)につい
ての素子0〜127の関係は第7図に示される。
VRはベクトル動作のために1サイクル当り2つ
の素子を与えることができ、且つベクトル動作か
ら又はCPU22から1サイクル当り1つの素子
を受取ることができる。第7図はVRレジスタか
ら38のようなステージ・レジスタへ読出すため
のデータ径路を示し、第8図はVR取出しレジス
タ69を介してVR中へデータを読込むことを示
す。 7, 8 and 9 illustrate vector register array 57 and vector register array addressing mechanism, indicated schematically at 58 in FIG. Array 57 includes 16 vector registers (VR) of 128 4-byte elements each. They can be assembled (odd and even pairs) to form VR double word operands. The entire array takes the form of a 64 array chip 85. Each chip 85 is 9 bits wide (8 bits + parity bit). array chip 85
Since it is limited to only one read/write per cycle, it is necessary to interleave the VR four ways as shown in FIG. Each column of the array 57 is
It represents one interleave consisting of 16 chips 85 divided into four groups. Each row of array 57 represents four VRs. The relationship of elements 0 to 127 with respect to vector register number 0 (VR0) formed in four columns is shown in FIG.
VR can provide two elements per cycle for vector operations and can receive one element per cycle from vector operations or from CPU 22. 7 shows the data path for reading from the VR register to a stage register such as 38, and FIG. 8 shows reading data into the VR via the VR fetch register 69.
第4図の58で略示しベクトル・レジスタ・ア
レイ57のアドレシングの詳細を第9図に示す。
3つのベクトル素子アドレス・レジスタVEAR
1、VEAR2及びVEAR3がある。これらのレ
ジスタは第9図では一般的に参照番号86で示
す。VEAR2及びEAAR3は任意所定のサイク
ル中にVRから読取られる源ベクトルの素子の数
を収容するのが普通である。VEAR1はVRに書
込まれるベクトルの素子の数を収容する。 The addressing details of vector register array 57, shown schematically at 58 in FIG. 4, are shown in FIG.
Three vector element address registers VEAR
There are 1, VEAR2 and VEAR3. These registers are indicated generally by the reference numeral 86 in FIG. VEAR2 and EAAR3 typically contain the number of elements of the source vector read from VR during any given cycle. VEAR1 contains the number of elements of the vector written to VR.
VEAR1は結果をVRに書込む大概のベクトル
命令に対するベクトル割込みインデツクス
(VIX)としても利用される。各VEARはそれ自
身の増分器によつて更新され且つ4図に示すデー
タ・イン・レジスタ37からロードされる。 VEAR1 is also used as the vector interrupt index (VIX) for most vector instructions that write results to VR. Each VEAR is updated by its own incrementer and loaded from the data in register 37 shown in FIG.
VIXはVR取出しレジスタ69と関連したデー
タ有効信号がVRへの書込みを許容するように働
くときにのみ増分される。従つても若しもVRは
更新されるべきでないことをエラー状態が示すな
らば、VIXはステツプされず、且つ特定命令の
実行中に処理されてしまつた素子の数を表示す
る。この情報は任意の固定ルーチンの後、命令が
再開されるとき利用可能である。 VIX is incremented only when the data valid signal associated with VR fetch register 69 acts to permit writing to VR. Therefore, if an error condition indicates that VR should not be updated, VIX is not stepped and displays the number of elements that have been processed during execution of the particular instruction. This information is available when the instruction is resumed after any fixed routine.
アドレシング機構も又3つのベクトル・アドレ
ス・レジスタ(VAR)を含む。これらのレジス
タは第9図では一般的に87で示す。VARは
VAR1,VAR2,VAR3と標記される。VAR
2及びVAR3は素子が読取られつつある源VRの
数を通常収容する。VAR1は素子が書込まれつ
つある宛先VRの数を収容する。 The addressing mechanism also includes three vector address registers (VARs). These registers are indicated generally at 87 in FIG. VAR is
They are marked as VAR1, VAR2, and VAR3. VAR
2 and VAR3 typically contain the number of the source VR from which the element is being read. VAR1 contains the number of destination VR to which the element is being written.
VEAR86のビツト5及び6は線88上に縦
欄選択(CS)信号を出し、VAR87のビツト2
及び3は線89上に横列選択(RS)信号を出す。
90で示す7ビツトのアドレスは各アレイ・チツ
プ85中の128個の場所のうちの特定の1つをア
ドレスするために使用される。 Bits 5 and 6 of VAR 86 provide a column select (CS) signal on line 88, and bit 2 of VAR 87 provides a column select (CS) signal on line 88.
and 3 provide a row select (RS) signal on line 89.
The 7-bit address shown at 90 is used to address a particular one of the 128 locations in each array chip 85.
第9図に示すように各縦欄(インターリーブ)
は独立的にアドレス可能である。同じアドレスが
1つの縦欄中のすべての16アレイ・チツプ85に
対して与えられるので、1つの縦欄中に書込んで
他の3つの従欄のうちの任意の1つから読出すこ
とが可能である。データ選択はステージ・レジス
タ中へゲートする前に輪理チツプに於て行われ
る。短オペランドは半分のステージ・レジスタ
(例えばレジスタ38)の両部分に提示される。
長オペランドについては偶数番レジスタ素子が左
半分(0〜31)へ進み、奇数番レジスタ素子が右
半分(32〜63)へ進む。 Each column (interleaved) as shown in Figure 9
are independently addressable. Since the same address is given to all 16 array chips 85 in one column, it is possible to write into one column and read from any one of the other three slave columns. It is possible. Data selection is done in the ring chip before gating into the stage registers. Short operands are presented in both parts of the half stage register (eg register 38).
For long operands, even numbered register elements go to the left half (0-31) and odd numbered register elements go to the right half (32-63).
第10図,第11図,第12図はベクトル処理
中のマスク・レジスタの種々の用途を示す。ベク
トル・マスク・レジスタ(VMR)は輪理的に
128ビツトで構成され、その任意の1つをVPU2
0での処理によつてセツト又はリセツトすること
ができる。それは、主記憶からの情報又は主記憶
に記憶された内容と共に、1サイクル当り8ビツ
トの速さでロードすることができる。マスクク・
レジスタの128個のビツトはVRに記憶された128
個の素子に相当する。第10図に示すようにマス
ク・レジスタの128個のビツトは更に16個の8ビ
ツト・レジスタとして構成されたVMRアレイ9
1として実施される。VMRの特定のバイナリ・
ビツトの用途はVMRアドレス・レジスタ92及
びビツト選択輪理93によつて選択される。
VMRアドレス・レジスタ92のビツト0−3は
VMRアレイ91中の1つのレジスタを選択し、
ビツト4−6は選択されたレジスタの8個のバイ
ナリ・ビツトのうちの特定の1つを選択する。演
算及び輪理的処理中にマスキングを使用するか否
かの選択がベクトル・モード・トリガ94のセツ
ト状態又はリセツト状態によつてなされる。ゲー
ト95はベクトル・モード・トリガ94によつて
能動化されて、ビツト選択93で選択された特定
のマスク・ビツトがバイナリの1であるときに出
力96を出す。 Figures 10, 11, and 12 illustrate various uses of mask registers during vector processing. The vector mask register (VMR) is
It consists of 128 bits, and any one of them can be connected to VPU2.
It can be set or reset by processing with 0. It can be loaded with information from main memory or content stored in main memory at a rate of 8 bits per cycle. Maskuku・
The 128 bits in the register are the 128 bits stored in the VR.
corresponds to 1 element. As shown in Figure 10, the 128 bits of the mask register are further configured as 16 8-bit registers in the VMR array 9.
1. VMR specific binaries
Bit usage is selected by VMR address register 92 and bit selection wheel 93.
Bits 0-3 of VMR address register 92 are
Select one register in the VMR array 91,
Bits 4-6 select a particular one of the eight binary bits of the selected register. The selection of whether or not to use masking during arithmetic and logical processing is made by the set or reset state of vector mode trigger 94. Gate 95 is activated by vector mode trigger 94 to provide an output 96 when the particular mask bit selected by bit select 93 is a binary one.
マスク・レジスタに関連する第1の命令グルー
プは演算命令及び輪理命令より成る。ベクトル・
モード・トリガ94がオフのとき、1つのベクト
ルの各素子はデータ流れに従つて流れて処理さ
れ、結果がVR57で取出される。しかし若しも
モード・トリガ94がオンならば1つの例外事項
を除いて前と同様に処理が進行する。ALU65
の結果がALU出力レジスタ66へ進み、且つ有
効ビツト97がセツトされたとき、バイナリ1の
マスク・ビツトを表示した信号96は有効ビツト
97をVR取出しレジスタ69と関連した有効ビ
ツト98へゲートすることができる。バイナリ0
のベクトル・マスク・レジスタはALU出力結果
をVR57に記憶させない。ベクトル・マスク・
レジスタ・アドレス・レジスタ92はALU出力
レジスタ66に結果が記憶される度毎に1宛増分
される。 The first group of instructions associated with the mask register consists of arithmetic instructions and circular instructions. vector·
When mode trigger 94 is off, each element of a vector is processed as the data flows and the results are retrieved at VR 57. However, if mode trigger 94 is on, processing proceeds as before, with one exception. ALU65
When the result of is passed to ALU output register 66 and valid bit 97 is set, signal 96 indicating a binary 1 mask bit gates valid bit 97 to valid bit 98 associated with VR fetch register 69. I can do it. binary 0
The vector mask register does not cause the ALU output results to be stored in the VR57. vector mask
Register address register 92 is incremented by one each time a result is stored in ALU output register 66.
第11図に示すように、マスク・ビツトはロー
ド拡張と呼ばれる命令に於て使用される。この場
合、ベクトル素子はデータ有効ビツトと共に主記
憶中の順次アドレスによりCPU22からデー
タ・イン・レジスタ37へ転送される。推進パル
ス54毎に宛先VR57と関連したベクトル素子
アドレス・レジスタがVMRアドレス・レジスタ
92と一緒に1宛増分される。バイナリ1である
ベクトル・マスク・ビツトと関連した宛先VR5
7の素子のみが取出しレジスタ69からデータを
受取つて、VR57に素子を記憶させるように9
8に於てデータを有効にセツトする。 As shown in FIG. 11, mask bits are used in an instruction called load extension. In this case, the vector elements are transferred from the CPU 22 to the data in register 37 by sequential address in main memory along with the data valid bit. For each propulsion pulse 54, the vector element address register associated with destination VR 57 is incremented by one along with VMR address register 92. Destination VR5 associated with vector mask bit that is binary 1
9 so that only element 7 receives data from the fetch register 69 and stores the element in VR 57.
At step 8, the data is set to valid.
第12図に於てベクトルの128素子の順序が
VR57からステージ・レジスタ38又はラム
ダ・レジスタ39へ読出され、且つインタフエイ
ス線35を介してCPU22へ送られる。しかし
線99を介してCPU22へ信号されるバイナリ
1なる相当したマスク・ビツトを有する素子のみ
が実際に主記憶に記憶される。 In Figure 12, the order of the 128 elements of the vector is
It is read out from VR 57 to stage register 38 or lambda register 39 and sent to CPU 22 via interface line 35. However, only those elements having the corresponding mask bit of a binary 1 signaled to CPU 22 via line 99 are actually stored in main memory.
VPU20が例外条件又はエラー条件に関する
正しい情報を出す様子が第13図及び第14図に
示される。VPU20のデータ流れの種々のステ
ージが前と同じ参照番号を付してこれらの図で示
される。記憶アクセス例外に対するデータ径路を
第13図に示す。記憶アクセセス例外に関する例
外ビツトのデータ径路はVPU20の機能データ
径路と並行する。データ径路ステージ当り1つの
例外ビツトがある。この例外データ径路は第2図
の主記憶素子21からのベクトルを使う命令用に
使用される。若しもアクセス例外が特定素子用の
記憶装置で検出されたならば、CPU22は線4
2の信号(通常0である)を1にし、この信号を
不良データと一緒にVPU20へ送る。その信号
はデータ・イン・レジスタ37で始まるアクセス
例外データ径路へ送られて43に於て並列データ
径路が始まる。このアクテイブなビツトは不良デ
ータと一緒に流れ、そのデータがVR57で取出
されるのを禁止する。不良データが取出されたサ
イクルの間に、VPU20は線100を介して
CPUにアクセス例外を信号し、この命令に対す
るデータが更に取出されるのをすべて禁止する。
線100は第3図に示すベクトル取出し例外と表
記された線に相当し、第1図に示す制御記憶47
と関連した分岐輪理48へ供給される。 The manner in which VPU 20 provides correct information regarding exceptional or error conditions is shown in FIGS. 13 and 14. Various stages of data flow in VPU 20 are indicated in these figures with the same reference numerals as before. FIG. 13 shows the data path for storage access exceptions. The exception bit data path for storage access exceptions is parallel to the VPU 20 functional data path. There is one exception bit per data path stage. This exception data path is used for instructions that use vectors from main memory element 21 of FIG. If an access exception is detected in the storage device for a particular device, CPU 22
2 signal (normally 0) is set to 1, and this signal is sent to the VPU 20 together with the defective data. That signal is sent to the access exception data path starting at data in register 37 to begin the parallel data path at 43. This active bit flows with bad data and prevents that data from being retrieved by VR57. During the cycle in which bad data is retrieved, VPU 20
Signals an access exception to the CPU and prevents any further data fetching for this instruction.
The line 100 corresponds to the line labeled vector retrieval exception shown in FIG.
It is supplied to a branch wheel 48 associated with.
アクセス例外データ径路は実行中の命令に従つ
て制御線により形成される。線100上の例外信
号の識別に際して、CPU22マイクロコードは
その処理ループを、例外に遭遇したすべてのベク
トル命令に対し共通の終了ルーチンに分岐する。
このルーチンに於てマイクロコードは宛先ベクト
ル・レジスタを表わすVEAR1のカウント状態
により表示されるVIXを使用し、例外を有する
素子の記憶アドレスを計算する。アドレス情報を
更新した後、マイクロコードがフアイリング場所
への取出しを行ない、標準的な割込み処理ルーチ
ンに入る。第13図に示す通り、一般的に101で
示す輪理がアクセス例外をCPU22へ送り、VR
取出しレジスタ69に収容されたデータに対して
VR57を更新することを阻止する。論理101
の3つの入力の1つの線102上の信号は、デー
タ・イン・レジスタ37からのVR57を通常ロ
ードする命令に対するアクセス例外を表示する。
信号線103はALU出力レジスタ66に於ける
データに対するアクセス例外を表示し、線104
は乗・除算装置76から取出される以前の時点に
於けるアクセス例外を信号する。線105の信号
は第14図で説明する演算例外に関するものであ
る。 The access exception data path is formed by control lines according to the instruction being executed. Upon identification of an exception signal on line 100, CPU 22 microcode branches its processing loop to a common termination routine for all vector instructions encountering the exception.
In this routine, the microcode uses VIX, indicated by the count state of VEAR1, which represents the destination vector register, to calculate the storage address of the element with the exception. After updating the address information, the microcode fetches to the filing location and enters a standard interrupt handling routine. As shown in Fig. 13, generally, the ring 101 sends the access exception to the CPU 22 and the VR
For the data stored in the retrieval register 69
Prevent updating VR57. logic 101
A signal on line 102 of one of the three inputs of 3 indicates an access exception to an instruction that normally loads VR 57 from data-in register 37.
Signal line 103 indicates an access exception to data in ALU output register 66;
signals an access exception at a time prior to being retrieved from the multiplier/divider unit 76. The signal on line 105 relates to the operation exception described in FIG.
第14図はVPU200のデータ径路の並列部
分である演算例外ビツトのデータ径路を示す。こ
の例外の形式は3ビツト・ワードに符号化され
る。3ビツト・コードがVPU20から第1図と
関連して既に述べた線45を介してCPU22の
状態トリガへ送られる。106で示すように3ビ
ツト例外コードは、第13図に示したアクセス例
外もあるときにはCPU22へ転送されることは
ない。 FIG. 14 shows the data path of the operation exception bit, which is a parallel portion of the data path of the VPU 200. The type of this exception is encoded in a 3-bit word. A 3-bit code is sent from VPU 20 to the status trigger of CPU 22 via line 45 previously discussed in connection with FIG. As shown at 106, the 3-bit exception code is not transferred to the CPU 22 when there is also an access exception shown in FIG.
前に示した通り、演算例外径路も又VPU20
のデータ径路を並列化する。演算例外が見出され
るデータ径路中に3つの異なつた場所がある。デ
ータがステージ・レジスタ71及び72から第4
図の107で示す乗・除算装置76へ転送される
とき、0による除算及び未正規化オペランド例外
に出会う。乗算オーバーフロー、及びアンダーフ
ロー例外に乗算取出しレジスタ79の直前で出会
うことがある。最後に第4図のALU65に於て、
ALUオーバーフロー、アンダーフロー、及び重
み損失例外にALU取出しレジスタ68の直前で
出会う。 As shown earlier, the arithmetic exception path is also VPU20
Parallelize the data paths of There are three different places in the data path where an operation exception can be found. Data is transferred from stage registers 71 and 72 to the fourth stage.
When transferred to the multiplier/divider unit 76, shown at 107 in the figure, a divide-by-zero and unnormalized operand exception is encountered. Multiply overflow and underflow exceptions may be encountered just before the multiply take register 79. Finally, in ALU65 in Figure 4,
ALU overflow, underflow, and weight loss exceptions are encountered just before the ALU fetch register 68.
線45を介介してレジスタ44からCPU状態
46へ送られる種々の演算例外に対するコードは
下記の通りである。 The code for the various arithmetic exceptions sent from register 44 to CPU state 46 via line 45 is as follows.
001:指数オーバーフロー
010:指数アンダーフロー
011:重み
100:固定小数点オーバーフロー
101:未正規化乗・除算
110:浮動小数点0除算
かくて以上の説明により基本データ処理装置に
付加可能なベクトル処理装置の構成が開示された
そのベクトル処理装置の順序づけは、マイクロプ
ログラム制御記憶の正規の順序づけと同期した積
極的制御を受ける。更にエラー条件又は例外条件
の精密な表示を、基本データ処理システムの割込
み処理機構へ信号することができる。それは基本
データ処理システムが解析するため既知の状態に
ベクトル処理装置を置くため、ベクトル素子の記
憶全体を制御しているベクトル処理装置によつて
信号される。そしてベクトル処理装置は更に特定
の演算例外を表示するコード化された信号を基本
データ処理装置へ与える。基本データ処理装置の
主記憶の融通性あるしかも効率的な利用がベクト
ル・マスク・レジスタと関連した輪理の使用を通
じて本発明のベクトル処理装置によつて実現され
る。001: Exponential overflow 010: Exponential underflow 011: Weight 100: Fixed point overflow 101: Unnormalized multiplication/division 110: Floating point division by 0 Thus, the above explanation provides the configuration of a vector processing device that can be added to the basic data processing device. The ordering of the vector processing unit disclosed is subject to active control in synchronization with the regular ordering of the microprogram control store. Additionally, a precise indication of the error or exception condition can be signaled to the underlying data processing system's interrupt handling mechanism. It is signaled by the vector processor controlling the entire storage of vector elements to place the vector processor in a known state for analysis by the underlying data processing system. The vector processing unit then provides coded signals to the basic data processing unit that indicate specific operation exceptions. Flexible and efficient utilization of the main memory of the basic data processing system is achieved by the vector processing system of the present invention through the use of vector mask registers and associated rings.
本発明のよれば一般の基本的なデータ処理装置
に付加するだけで高速ベクトル処理機能を果たす
ベクトル処理装置を実現することができ、しかも
一旦ベクトル処理装置のベクトル記憶中の素子が
アクセスされてしまうと処理に手数がかからなく
なり、演算装置のパイプラインを有効に利用でき
るようになる。
According to the present invention, it is possible to realize a vector processing device that performs a high-speed vector processing function by simply adding it to a general basic data processing device, and furthermore, once the elements in the vector storage of the vector processing device are accessed. This reduces processing time and allows effective use of the pipeline of the arithmetic unit.
第1図は本発明のベクトル処理装置と基本デー
タ処理装置の中央処理装置(CPU)との間の主
要インタフエイスを示す図、第2図は既存のデー
タ処理装置と共に本発明を含んだベクトル処理装
置を示す全体的ブロツク図、第3図はベクトル処
理に関して基本データ処理装置のマイクロプログ
ラム分岐輪理に与える信号を示す図、第4図は本
発明のベクトル処理装置の機能素子及びデータ流
れ径路中のこれらの素子の制御可能な相互接続を
示す図、第5図は本発明のベクトル処理装置のデ
ータ径路及び基本データ処理装置のマイクロプロ
グラム制御によるデータ推進の制御を示す図、第
6図は2つの代表的なベクトル命令を実行するた
めの本発明のベクトル処理装置の素子の相互接続
図、第7図は本発明のベクトル処理装置のベクト
ル・レジスタの配列及び出力データ径路を示す
図、第8図は同じくベクトル処理装置のベクト
ル・レジスタの配列及び入力データ径路を示す
図、第9図はベクトル処理装置のベクトル・レジ
スタのアドレシング論理を示す図、第10図はベ
クトル処理装置に於ける演算中の1つのベクトル
の素子と関連したマスキングの使用を示す図、第
11図は主記憶からベクトル・レジスタへのロー
デイング中の1つのベクトルの素子と関連したマ
スキングの使用を示す図、第12図はベクトル・
レジスタから主記憶への素子の記憶中の1つのベ
クトルの素子と関連したマスキングの使用を示す
図、第3図は主記憶からの1つの素子のアクセス
中に生じたエラーを表示するアクセス例外に応答
している本発明のベクトル処理装置の輪理を示す
図、第14図は本発明のベクトル処理装置に於け
る演算処理中に生じたエラーを表示した演算例外
に応答している本発明のベクトル処理装置の論理
を示す図である。
20……ベクトル処理装置(VPU)、21……
主記憶、22……中央処理装置(CPU)、25…
…命令予備処理機能(IPPF)、26……E機能装
置、27……データ径路、29……インタフエイ
ス、30……I素子命令キユー、31……ベクト
ル命令レジスタ、32……Q命令バツフア、33
……ベクトル・バツフア・レジスタ、34……ス
トライド・レジスタ、35……データ・バス、3
7……データ・イン・レジスタ、44……例外コ
ード、46……状態表示器、47……制御記憶、
48……分岐点、49……サービス要求、52…
…データ・レジスタ、53……推進。
FIG. 1 is a diagram showing the main interface between the vector processing device of the present invention and the central processing unit (CPU) of the basic data processing device, and FIG. 2 is a diagram showing the vector processing device including the present invention together with the existing data processing device. FIG. 3 is a diagram showing the signals applied to the microprogram branching circuit of the basic data processing device for vector processing; FIG. 4 shows the functional elements and data flow paths of the vector processing device of the present invention. 5 shows the controllable interconnection of these elements of the invention; FIG. 5 shows the data path of the vector processing device of the invention and the control of the data propulsion by microprogram control of the basic data processing device; FIG. FIG. 7 is an interconnection diagram of the elements of the vector processing device of the present invention for executing two representative vector instructions; FIG. 7 is a diagram showing the vector register arrangement and output data path of the vector processing device of the present invention; The figure also shows the arrangement of vector registers and input data paths of the vector processing device, FIG. 9 shows the addressing logic of the vector registers of the vector processing device, and FIG. 10 shows the operation during calculation in the vector processing device. FIG. 11 is a diagram illustrating the use of masking in conjunction with the elements of one vector during loading from main memory to a vector register; FIG. vector·
Figure 3 illustrates the use of masking in conjunction with the elements of a vector during the storage of elements from registers to main memory; FIG. FIG. 14 is a diagram illustrating the operation of the vector processing device of the present invention in response to an arithmetic exception indicating an error that occurred during arithmetic processing in the vector processing device of the present invention. FIG. 2 is a diagram showing the logic of a vector processing device. 20... Vector processing unit (VPU), 21...
Main memory, 22...Central processing unit (CPU), 25...
...Instruction preprocessing function (IPPF), 26...E function unit, 27...Data path, 29...Interface, 30...I element instruction queue, 31...Vector instruction register, 32...Q instruction buffer, 33
... Vector buffer register, 34 ... Stride register, 35 ... Data bus, 3
7...Data in register, 44...Exception code, 46...Status indicator, 47...Control memory,
48... Branching point, 49... Service request, 52...
...Data register, 53...Promotion.
Claims (1)
装置と、 上記記憶装置に接続され、上記記憶装置から取
り出した命令の実行を制御するための実行制御信
号を発生するマイクロプログラム制御装置を含む
中央処理装置(CPU)と、 ベクトル・データを処理するためのベクトル処
理装置(VPU)と、 上記CPU及び上記VPUを接続するためのイン
タフエイス手段であつて、上記実行制御信号の1
つである推進信号を上記マイクロプログラム制御
装置から上記VPUへ転送するための信号線を含
むインタフエイス手段とを具備し、 上記推進信号を用いて上記VPU内のタイミン
グおよびゲートを制御することにより、上記
VPUでのベクトル処理を上記CPUに同期させる
ことを特徴とする、 ベクトル処理能力を有するデータ処理装置。[Scope of Claims] 1. A storage device for storing instruction words and operands, and a microprogram control connected to the storage device and generating an execution control signal for controlling the execution of instructions retrieved from the storage device. a central processing unit (CPU) including the device; a vector processing unit (VPU) for processing vector data; and an interface means for connecting the CPU and the VPU, the interface means being one of the execution control signals.
interface means including a signal line for transferring a propulsion signal from the microprogram controller to the VPU, and controlling timing and gates in the VPU using the propulsion signal; the above
A data processing device having vector processing capability, characterized in that vector processing in a VPU is synchronized with the CPU.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US54467483A | 1983-10-24 | 1983-10-24 | |
| US544674 | 1983-10-24 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS60103482A JPS60103482A (en) | 1985-06-07 |
| JPH0326872B2 true JPH0326872B2 (en) | 1991-04-12 |
Family
ID=24173116
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP14983584A Granted JPS60103482A (en) | 1983-10-24 | 1984-07-20 | Data processor having vector processing capacity |
Country Status (3)
| Country | Link |
|---|---|
| EP (1) | EP0141232B1 (en) |
| JP (1) | JPS60103482A (en) |
| DE (1) | DE3484978D1 (en) |
Families Citing this family (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS60136872A (en) * | 1983-12-26 | 1985-07-20 | Hitachi Ltd | Vector processing device |
| US4745547A (en) * | 1985-06-17 | 1988-05-17 | International Business Machines Corp. | Vector processing |
| EP0333365A3 (en) * | 1988-03-18 | 1991-05-08 | Digital Equipment Corporation | Method and apparatus for handling asynchronous memory management exceptions by a vector processor |
| US5043867A (en) * | 1988-03-18 | 1991-08-27 | Digital Equipment Corporation | Exception reporting mechanism for a vector processor |
| US9715385B2 (en) | 2013-01-23 | 2017-07-25 | International Business Machines Corporation | Vector exception code |
| US9823924B2 (en) | 2013-01-23 | 2017-11-21 | International Business Machines Corporation | Vector element rotate and insert under mask instruction |
| US9804840B2 (en) | 2013-01-23 | 2017-10-31 | International Business Machines Corporation | Vector Galois Field Multiply Sum and Accumulate instruction |
| US9778932B2 (en) | 2013-01-23 | 2017-10-03 | International Business Machines Corporation | Vector generate mask instruction |
| US9513906B2 (en) | 2013-01-23 | 2016-12-06 | International Business Machines Corporation | Vector checksum instruction |
| US9471308B2 (en) | 2013-01-23 | 2016-10-18 | International Business Machines Corporation | Vector floating point test data class immediate instruction |
| US10176110B2 (en) | 2016-07-18 | 2019-01-08 | International Business Machines Corporation | Marking storage keys to indicate memory used to back address translation structures |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5390840A (en) * | 1977-01-21 | 1978-08-10 | Mitsubishi Electric Corp | Arithmetic processor of microprogram control |
| JPS5479533A (en) * | 1977-12-07 | 1979-06-25 | Nec Corp | Data processing unit |
-
1984
- 1984-07-20 JP JP14983584A patent/JPS60103482A/en active Granted
- 1984-09-21 DE DE8484111282T patent/DE3484978D1/en not_active Expired - Lifetime
- 1984-09-21 EP EP19840111282 patent/EP0141232B1/en not_active Expired
Also Published As
| Publication number | Publication date |
|---|---|
| JPS60103482A (en) | 1985-06-07 |
| DE3484978D1 (en) | 1991-10-02 |
| EP0141232B1 (en) | 1991-08-28 |
| EP0141232A2 (en) | 1985-05-15 |
| EP0141232A3 (en) | 1988-07-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5051896A (en) | Apparatus and method for nullifying delayed slot instructions in a pipelined computer system | |
| US4791555A (en) | Vector processing unit | |
| US4745547A (en) | Vector processing | |
| JP2645669B2 (en) | Data processing system | |
| US5923579A (en) | Optimized binary adder and comparator having an implicit constant for an input | |
| US4760519A (en) | Data processing apparatus and method employing collision detection and prediction | |
| US4873629A (en) | Instruction processing unit for computer | |
| US4740893A (en) | Method for reducing the time for switching between programs | |
| JP3983857B2 (en) | Single instruction multiple data processing using multiple banks of vector registers | |
| US5517440A (en) | Optimized binary adders and comparators for inputs having different widths | |
| US4876644A (en) | Parallel pipelined processor | |
| EP0450802B1 (en) | Floating point arithmetic unit | |
| US4367524A (en) | Microinstruction execution unit for use in a microprocessor | |
| CA1119731A (en) | Multibus processor for increasing execution speed using a pipeline effect | |
| US4713750A (en) | Microprocessor with compact mapped programmable logic array | |
| JP3607476B2 (en) | Method and processing apparatus for communicating integer data and floating point data via a shared data path in a microprocessor | |
| US4755962A (en) | Microprocessor having multiplication circuitry implementing a modified Booth algorithm | |
| JPH02226420A (en) | Floating point computation execution apparatus | |
| US5590351A (en) | Superscalar execution unit for sequential instruction pointer updates and segment limit checks | |
| EP0141232B1 (en) | Vector processing unit | |
| Schneck | Supercomputer architecture | |
| US4967343A (en) | Pipelined parallel vector processor including parallel configured element processors for processing vector elements in parallel fashion | |
| AU644065B2 (en) | Arithmetic unit | |
| US4631672A (en) | Arithmetic control apparatus for a pipeline processing system | |
| US4373182A (en) | Indirect address computation circuit |