JPH02235174A - Bus matrix - Google Patents

Bus matrix

Info

Publication number
JPH02235174A
JPH02235174A JP3229690A JP3229690A JPH02235174A JP H02235174 A JPH02235174 A JP H02235174A JP 3229690 A JP3229690 A JP 3229690A JP 3229690 A JP3229690 A JP 3229690A JP H02235174 A JPH02235174 A JP H02235174A
Authority
JP
Japan
Prior art keywords
result
operands
multiplier
adder
operand
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.)
Pending
Application number
JP3229690A
Other languages
Japanese (ja)
Inventor
Leslie D Kohn
レスリイ・デイ・コーン
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of JPH02235174A publication Critical patent/JPH02235174A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3884Pipelining

Abstract

PURPOSE: To execute a dual operation and to improve the performance of a processor by providing a multiplier device multiplying operand inputs, an adder device adding them and a data route controller connected to operand input. CONSTITUTION: A controller 12 constituted of a multiplexer selects that the operand (OP) 1 of the multiplier device 24 becomes either KR from a register 22, KI from a register 21 or SRC1 from a line 20. A controller 25 selects that OP2 becomes SRC2 from a line 26 or the final result of the adder device 32 from a line 34. Controllers 31 and 33 select necessary inputs for OP1 and OP2 in the device 32. The result of the device 32 is connected to one of 32 floating point registers by the line 34. Thus, a bus matrix with which the dual operation is executed in the floating point device of the processor is obtained.

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は、半導体マイクロプロセッサに関し、更に詳し
くは、デュアル算術演算を行なうパス・マトリックスに
関する。
DETAILED DESCRIPTION OF THE INVENTION Field of the Invention The present invention relates to semiconductor microprocessors, and more particularly to path matrices that perform dual arithmetic operations.

〔発明の背景〕 本発明は、マイクロプロセッサにおいて浮動小数点装置
の一部を形成しているパス・マトリックス回路に係わる
ものである。本発明に関して使用される寸イクロプロセ
ッサは、N 10 TM7’ aセツサと呼称されてい
るインテル860”マイクロプロセッサである。(イン
テルは、インテル・コーポレーションの登鎌商標である
。) NIOプロセッサは、3 2/6 4ビットI EEE
コンパチプル浮動小数点プロセッサ、32ビットRIS
O整数プロセッサ、および64ビット3次元図形プロセ
ッサである。ベクトルおよびスカラ演算の両方K関して
最適化され次数値プロセッサを用いると、それは、単一
チップで、百万個以上のトランジスタを内蔵しかつクレ
イ1の性能の約半分もの性能を有する産業用第1次統合
高性能ベクトル●プロセッサとなる。NIOプロセッサ
は、非常に速い実行速度を得るのにパイプライン浮動小
数点装置を使用している。
BACKGROUND OF THE INVENTION The present invention relates to path matrix circuits forming part of floating point units in microprocessors. The microprocessor used in connection with the present invention is an Intel 860" microprocessor designated as the NIO TM7'a processor (Intel is a registered trademark of Intel Corporation). 2/6 4 bit I EEE
Compatible floating point processor, 32-bit RIS
O integer processor, and a 64-bit 3D graphics processor. Using a K-optimized order value processor for both vector and scalar operations, it is possible to use an industrial processor with more than a million transistors and about half the performance of Cray 1 on a single chip. Becomes a primary integrated high-performance vector ●processor. NIO processors use pipelined floating point units to obtain very fast execution speeds.

後述するように、本発明は、N10プロセッサの浮動小
数点ハードウエアに関して十分に最適化されたパス●マ
トリックスを提供する。このバス・マ} IJツクスは
、乗算器装置およびアダー装置の同時(デュアル)演算
をサポートする。これらデュアル演算は、最も一般的K
使用されているソフトウエア●アルゴリズム、たとえば
積、DAXPY,FFTなどの合計をサポートする。
As discussed below, the present invention provides a path matrix that is fully optimized for floating point hardware in the N10 processor. This bus matrix supports simultaneous (dual) operation of multiplier units and adder units. These dual operations are the most common K
Software used ● Supports summation algorithms such as product, DAXPY, FFT, etc.

一般に、マイクロプロセッサの命令に関し、ソース●オ
ペランドおよびデステイネーションは、1組の浮動小数
点レジスタから来るようK指定されている。大抵の装置
では、この組の浮動小数点レジスタは、通常、2つのソ
ース●オペランドと1つのデステイネーション●オベラ
ンドを供給する。簡単な加算または乗算演算を行なう・
には、3つのオペランド構成で十分である。しかし、演
算または乗算を同時に行なうようなデュアル演算を行な
うには、あと3つのオペランド(全部で6つのオペラン
ド)が必要である。6つのオペランドを処理するのに浮
動小数点レジスタ・ファイルを必要とすることはあtb
有効的ではないので、従来のマイクロプロセッサは、代
表的には、デュアル演算を連続的に行なっている。言い
換えれば、最初に加算を行ない、続いて乗算、ま九はこ
の逆を行なっている。
Generally, for microprocessor instructions, the source operand and destination are specified to come from a set of floating point registers. In most devices, this set of floating point registers typically provides two source operands and one destination operand. Perform simple addition or multiplication operations
A three operand configuration is sufficient for . However, to perform dual operations such as simultaneous operations or multiplications, three more operands (six operands in total) are required. There is no need for a floating point register file to handle six operands.
Because of the lack of efficiency, conventional microprocessors typically perform dual operations sequentially. In other words, first we perform addition, then multiplication, and vice versa.

連続演算の他の方法は、乗算および加算演算の両方を並
列して行なうことである。この方法は、乗算累積演算と
して知られている幅広く採用されている方法でおる。乗
算累積演算κおいて、乗算器は、浮動小数点レジスタ・
ファイルからの2′)のソース−オペランドを得る。ア
ダーのオペランド入力の一方は、乗算器の結果出力を受
信する。
Another method of sequential operations is to perform both multiplication and addition operations in parallel. This method is a widely used method known as the multiply-accumulate operation. In the multiply-accumulate operation κ, the multiplier is a floating point register.
Obtain the source-operand of 2') from the file. One of the adder's operand inputs receives the result output of the multiplier.

アダーの他のソース●オベランド入力は、アダー自身の
結果出力に接続して、ある種のフィードバック構成を成
している。シミエレートされた算術演算は、基本的には
積の合計の累積である。しかし、乗算累積演算には、簡
単な演算なとえば積の合計しか行危うことができないと
いう問題点がある。これは、相互接続が、通常、固定構
造の”/%−ドーワイヤード・だからである。様々なア
ルゴリズムを供給するという要求に対し、実質的Kよシ
汎用化されかつよク幅広く演算を処理できる装置が必要
とされている。これには、非常K有効的な方法で複雑な
アルゴリズムを供給できるバス●マトリックスを有して
いることが有利である。後述するように、本発明は、有
効的な方法で幅広い並列演算、またはアルゴリズムを実
行できるようにしている。この能力は、従来のプロセッ
サに比較して、ここで述べているマイクロプロセッサの
性能を高めている。
The adder's other sources ● Oberand inputs are connected to the adder's own result outputs to form a kind of feedback configuration. A simulated arithmetic operation is essentially an accumulation of sums of products. However, the multiplication and accumulation operation has a problem in that it can only perform simple operations such as the sum of products. This is because the interconnects are typically fixed-structure, do-wired.In response to the demands of providing a variety of algorithms, they are virtually universal and can handle a wide range of operations. What is needed is an apparatus that advantageously has a bus matrix capable of feeding complex algorithms in a highly efficient manner. This ability increases the performance of the microprocessor described here compared to traditional processors.

〔発明の概景〕[Overview of the invention]

浮動小数点演算を実行することができるマイクロプロセ
ッサにおけるデュアル算術演耳を行なうバス・マトリッ
クスについて脱明する。マイクロプロセッサは、第1お
よび第2浮動小数点ソース命令オペランドおよび浮動小
数点デステイネーシg/φレジスタを供給する。乗算装
置は、第1および第2オペランドを乗算するのに使用さ
れ、第1結果を生じる。アダー装置は、第3および第4
オペランドを加算するのに使用され、第2結果を生じる
。また、本発明は、所定のアルゴリズムに関する内部ル
ープ計算を行なうのに使用される定数の夾数部および虚
数部を記憶し、かつ乗算器により発生された第1結果を
一時記憶するレジスタ装置を含んでいる。データ経路制
御装置は、並列に所定のアルゴリズムを実現するよう、
複数のオペランドの1つを選択して乗算器およびアダー
の各オペランド入力に接続するのに使用される。本発明
のこの特徴によシ、乗算および加算演算の両方を並列に
行なって、マイクロプロセッサにおいて幅広いアルゴリ
ズムを供給することができる。
A bus matrix for dual arithmetic operations in a microprocessor capable of performing floating point operations is explained. The microprocessor provides first and second floating point source instruction operands and floating point destination g/φ registers. A multiplier is used to multiply the first and second operands to produce a first result. The adder device has the third and fourth
Used to add operands to produce a second result. The invention also includes a register device for storing the conjunctive and imaginary parts of constants used to perform inner loop calculations for a given algorithm and for temporarily storing the first result generated by the multiplier. I'm here. The data path controller implements a predetermined algorithm in parallel.
It is used to select one of a plurality of operands to connect to each operand input of the multiplier and adder. This feature of the invention allows both multiplication and addition operations to be performed in parallel to provide a wide variety of algorithms in a microprocessor.

最後に、複数のオペランド(第1結果、第2結果、第1
および第2ソース・オペランド、定数、ま九は一時記憶
された第1結果を含んでいる)全データ経路制御装置の
入力に接続するようバス・マ} IJツクスにおいて相
互接続されている。所定のアルゴリズムに関し、データ
経路制御装置は、乗算器またはアダーのいずれかの適当
な入力に、どの特定のオベ2冫ド入力を接続すべきかを
決定する。九とえば、本発明の実施例においては、16
個の異なるソフトウエア命令またはアルゴリズムを供給
する16個の異なるデータ経路が示されている。
Finally, multiple operands (first result, second result, first
and a second source operand, a constant, containing the temporarily stored first result) are interconnected in a bus mask for connection to inputs of all data routing devices. For a given algorithm, the data path controller determines which particular output input should be connected to the appropriate input of either the multiplier or the adder. For example, in an embodiment of the present invention, 16
Sixteen different data paths are shown serving different software instructions or algorithms.

以下、添付の図面K基いて、本発明の実施例に関し説明
する。
Embodiments of the present invention will be described below with reference to the accompanying drawing K.

〔実施例〕〔Example〕

並列算術演算を行なうのに使用される浮動小数点パス・
マトリックスについて説明する。以下の説明において、
特定のデータ経路などの詳細な記載は、本発明の理解を
助けるためのものであり、本発明はこれら詳細な記載に
限定されないことは、当条者Kは明白であろう。また、
アダーおよび乗算器など周知の構造および回路について
の詳細な説明は、本発明を不明瞭にしないよう省略する
A floating point path used to perform parallel arithmetic operations.
Explain the matrix. In the following explanation,
It will be apparent to those skilled in the art that the detailed descriptions, such as specific data paths, are provided to aid in understanding the invention, and the invention is not limited to these details. Also,
Detailed descriptions of well-known structures and circuits, such as adders and multipliers, are omitted so as not to obscure the present invention.

多くの最近のマイクロプロセッサのアーキテクチュアに
おいて、浮動小数点装置は、演算が装置に供給される速
度を増すのに並列方式を使用している。ある種の並列方
式は、゜バイブライニングと呼ばれている。パイグライ
ンーアーキテクデュアは、並列に実行することができる
一連のより基本的演算(“段゛と呼ばれている)として
各演算を処理する。たとえば、プロセッサの浮動小数点
アダー装置について考察する。アダーの演算を▲と表し
、段を▲1 ,^2 ,A3と表す。段は、1つのアグ
ーの命令に関するA1+1が、次のアグーの命令に関す
るA1と並列に実行できるように指定される。また、丁
度1クロツクで、各Aiを実行することができる。なお
、プロセッサの乗算器およびベクトル整数装置のパイプ
2イニングは、段数が異なっていることを除けば、同様
に説明できる。
In many modern microprocessor architectures, floating point units use parallelism to increase the speed at which operations are delivered to the unit. One type of parallelism is called bilining. The pie-grain architecture processes each operation as a series of more basic operations (called "stages") that can be executed in parallel. For example, consider the floating-point adder unit of a processor. The operation of is expressed as ▲, and the stages are expressed as ▲1, ^2, and A3. The stages are specified such that A1+1 regarding one Agu instruction can be executed in parallel with A1 regarding the next Agu instruction. , each Ai can be executed in exactly one clock. Note that the pipe two innings of the processor's multiplier and vector integer unit can be described similarly, except that the number of stages is different.

第1図は、本発明を含んでいるプロセッサの浮動小数点
アダー(単精度入力オベランドが使用される場合は浮動
小数点乗算器)において見られるような3段バイブライ
ニングを示している。図の各列L、バイブラインの3段
の1つを示している。
FIG. 1 illustrates three-stage bilining as found in the floating point adder (or floating point multiplier if a single precision input overland is used) of a processor incorporating the present invention. Each row L in the figure shows one of the three stages of the vibe line.

各段は、結果を即値結果を保持するとともに、(ソフト
ウエアによシ第1段に供給される場合)これら結果に関
する状態情報を保持する。また、図面において、命令ス
トリームは、全てlal類の一連9連続浮動小数点命令
から成っている(すなわち、全てアダ〜命令か、または
全て単精度乗算器命令である)。
Each stage holds immediate results and (if provided by software to the first stage) state information regarding these results. Also, in the drawing, the instruction stream consists of a series of nine consecutive floating point instructions, all of the LAL class (ie, all adda instructions or all single precision multiplier instructions).

命令の時間的関係は、f,+ 1 +1 + 1 ” 
2 +等と表される。図の行は、連続するクロック・サ
イクルKおける装置の状態を表している。パイプライン
演算が行なわれるごとに、最後の段の状態は、状態レジ
スタが利用できるようになる(たとえば、NIOプロセ
ッサにおいて、結果は、浮動小数点ステータス●レジス
タ”fsr“において利用できる)。パイプラインの最
終段の結果は% rde+stに記憶され、パイプライ
ンは1段進められ、かつ入力オペランドarcl , 
sr−c2は、パイプラインの最初の段に転送される。
The temporal relationship of the instructions is f, + 1 + 1 + 1 ”
It is expressed as 2 + etc. The rows of the diagram represent the state of the device during successive clock cycles K. Each time a pipeline operation is performed, the state of the last stage is made available in a status register (eg, in a NIO processor, the result is available in a floating point status register "fsr"). The result of the final stage of the pipeline is stored in %rde+st, the pipeline is advanced one stage, and the input operands arcl,
sr-c2 is transferred to the first stage of the pipeline.

二−モニツクsrcl ,src2 , rdestは
、NIOプロセッサK位置する32個の浮動小数点レジ
スタの1つを示している。
The two-monics srcl, src2, rdest refer to one of the 32 floating point registers located in NIO processor K.

NIOプロセッサにおいて、パイプラインの段数は、1
〜3個である。3段パイプラインK関するパイプライン
演算は、3つ前の演算の結果を記憶する。2段パイプラ
インに関するパイプライン演算は、2つ前の演算の結果
を記憶する。1段パイプラインK関するパイプライン演
算は、前の演算の結果を記憶する。NIOプロセッサは
、乗算器用、アダー用、ベクトルー整数装置用、浮動小
数点パイプラインを有している。アダー・パイプライン
は3段有している。乗算器のパイ゛プラインにおける段
数は、パイプラインのソース・オペランドの精度によシ
、2ま念は3段となる。ベクトルー整数装置は、全精度
に対して1段有している。
In the NIO processor, the number of pipeline stages is 1.
~3 pieces. Pipeline operations related to the three-stage pipeline K store the results of the three previous operations. A pipeline operation related to a two-stage pipeline stores the result of the two previous operations. Pipeline operations related to the one-stage pipeline K store the results of previous operations. The NIO processor has multiplier, adder, vector-to-integer unit, and floating point pipelines. The adder pipeline has three stages. The number of multiplier stages in the pipeline depends on the precision of the pipeline's source operands, with two stages being three stages. The vector-integer unit has one stage for full precision.

ロード●パイプラインは全精度に対して3段有している
Load ● The pipeline has three stages for total precision.

第2図は、本発明の実施例を示している。第2図の浮動
小数点パス・マトリックスは、乗算器装置24とアダー
装置32を有している。装置24,32の内部構成は、
尚分野において周知であるのでここでの説明は省略する
が、簡単K言えば、これらは普通のデイジタル乗算器ま
たはアダーから成っている。本実施例は、本発明の出願
人Kgl渡された、発明の名称「並列乗算のための4−
27ダー・セル」および「浮動小数点乗算のためのステ
イツキ●ビット●プレデイクタ」の2つの米国特許願に
おいて開示され九乗算器装置を使用している。本実施例
のアダー装置は、本発明の出願人に譲渡され念、発明の
名称「浮動小数点アダーの念めのプリノーマリゼーショ
ン」および「浮動小数点アダーのための切シ上げ論理装
置」の2つの米国特許顧に開示されている。
FIG. 2 shows an embodiment of the invention. The floating point path matrix of FIG. 2 includes a multiplier unit 24 and an adder unit 32. The internal configuration of the devices 24 and 32 is as follows:
In simple terms, these consist of conventional digital multipliers or adders, although they are well known in the art and will not be discussed here. This embodiment is based on the title of the invention "4-4 for parallel multiplication" passed to the applicant Kgl
Two US patent applications, ``27 Dar Cell'' and ``Statsky Bit Predictor for Floating Point Multiplication'', are disclosed in two US patent applications using a nine multiplier device. The adder device of this embodiment is assigned to the applicant of the present invention, and has two United States Patent No. Disclosed to patent advisor.

図示のように、バス・マトリックスは、さらに3つの特
殊なレジスタ、すなわちKRレシスタ22、KIレジス
タ21、Tレジスタ30を有している(KIは定数の虚
数部、KRは定数の実数部、Tは一時的を示している)
。これらレジスタは、1つのデュアル演算命令からの値
を記憶し、かつそれらをその後のデュアル演算命令の入
力として供給することができる。定数レジスタ22.2
1は、オペランドsrclの実数部および虚数部をそれ
ぞれ記憶するのに使用することができる。その後、sr
clO代シにこれら値を乗算パイプラインに供給するこ
とができる。T(一時的)レジスタ30は、乗算器パイ
プラインの最後の段の結果を記憶するのに有効で、その
後、その値をsrclの代シにアダー●パイプラインに
供給する。
As shown, the bus matrix further includes three special registers: KR register 22, KI register 21, and T register 30 (KI is the imaginary part of the constant, KR is the real part of the constant, and T indicates temporary)
. These registers can store values from one dual arithmetic instruction and provide them as inputs to subsequent dual arithmetic instructions. Constant register 22.2
1 can be used to store the real and imaginary parts of the operand srcl, respectively. After that, sr.
These values can then be fed into the multiplication pipeline instead. The T (temporary) register 30 is useful for storing the result of the last stage of the multiplier pipeline and then providing its value to the adder pipeline on behalf of srcl.

第2゜図は、またデータ経路制御装置23,25,31
 .33を示している。データ経路制御装置23.25
,31.33は、乗算器装置およびアダー装置のオペラ
ンド入力を選択するのに使用される。これら各制御装置
(第2図では1本の水平ラインにより示されている)は
、代表的には、マルテプレクサま九は制御可能バスのよ
うなスイッチング装置を有している。本実施例は、当分
野において周知な普通のマルチプレクサを使用している
FIG. 2 also shows data path control devices 23, 25, 31.
.. 33 is shown. Data path controller 23.25
, 31.33 are used to select the operand inputs of the multiplier unit and the adder unit. Each of these controllers (represented by a single horizontal line in FIG. 2) typically includes a switching device such as a controllable bus. This embodiment uses conventional multiplexers well known in the art.

動作において、複数のオペランド(データ経路制御装置
を示した水平ラインに向かう矢印Kよシ示されている)
から1つのオペランドが選択さね、乗算器t九はアダー
のいずれかに接続される。九とえば、データ経路制御装
置23は、どのアルゴリズムが供給されるかによ,9、
KIK記憶された定数の虚数値、KRに記憶された定数
の実数値、またはソース●オペランドsrclのいずれ
かを乗算器装置24の第1オペランド入力に供給する。
In operation, multiple operands (indicated by arrow K pointing towards the horizontal line indicating the data path controller)
One operand is selected from , and multiplier t9 is connected to one of the adders. 9. For example, the data path controller 23 may
Either the imaginary value of the constant stored in KIK, the real value of the constant stored in KR, or the source operand srcl is applied to the first operand input of multiplier unit 24.

本実施例において、各マルチプレクサ23,25,31
,33の制御は、Opコードで4ビット●デ一夕経路制
御欄(DPC)によシ行なわれる。DPCは、特殊なレ
ジスタのローディングおよびオペランドを指定する。
In this embodiment, each multiplexer 23, 25, 31
, 33 is controlled by a 4-bit output path control field (DPC) using an Op code. DPC specifies special register loading and operands.

第2図は、本発明の実施例によシサポートされる可能な
アルゴリズムの全てを実挑するのK使用される全バス接
続マトリックスを示している。乗算器装置24のオペラ
ンド1は、レジスタ22から供給され九KR,レジスタ
21からのKl,t次はライン20に沿って供給された
grclのいずれかになるように選択される。これらの
値のどれか1つK決定することにより、乗算器のオペラ
ンド1 ( apl)は、DPCの特定の工冫コーディ
ングκよシ確定される。同様に、乗算器のオベ2冫ド2
 ( op2)は、ライン26から供給されたarc2
、またはライン34に生じるアダー・パイプラインの最
終段の結果のいずれかになる。制御装置25は、これら
2つの値のいずれかがオペランド2になるかを決定する
。アダーのオペランド1は、2イy2Gに接続したac
rl,?レジスタ30K記憶された一時的結果値、また
はライン34に沿つ九アダー●パイプライン入力の最終
段の結果のいずれかくなる。制御装置31は、アダー装
置32のオペランド1人力に関し適切なデータ経路を選
択するのK使用される。最後に、アダー32のオペラン
ド2は、ライン26からのsrc 2 ,ライン2Tに
おける乗算器パイプラインの最終段の結果、ま九はライ
ン34に供給されたアダー・パイプラインの最終段の結
果のいずれかになるよ5K選択される。制御装置すなわ
ちマルチプレクサ装置33は、どの入力オペランドがア
ダー装置32のオペランド2になるかを選択するように
、DPCによ9命令される。ライン34に沿ってたアダ
ー装置32によシ供給された結果は、プロセッサの32
個の浮動小数点レジスタの1つに接続されるrdest
値を宍している。
FIG. 2 shows the total bus connection matrix used to demonstrate all of the possible algorithms supported by embodiments of the present invention. Operand 1 of multiplier unit 24 is selected to be either KR supplied from register 22, Kl from register 21, or grcl supplied along line 20. By determining one of these values, the operand 1 (apl) of the multiplier is determined by the specific engineering coding κ of the DPC. Similarly, the multiplier obed2
(op2) is arc2 supplied from line 26
, or the result of the final stage of the adder pipeline occurring on line 34. Controller 25 determines which of these two values will be operand 2. Operand 1 of the adder is the ac connected to 2iy2G.
rl,? This will either be the temporary result value stored in register 30K, or the result of the last stage of the nine adder pipeline inputs along line 34. The controller 31 is used to select the appropriate data path for one of the operands of the adder device 32. Finally, operand 2 of adder 32 is either src 2 from line 26, the result of the last stage of the multiplier pipeline on line 2T, or the result of the last stage of the adder pipeline supplied on line 34. The 5K will be chosen. The controller or multiplexer device 33 is instructed by the DPC to select which input operand becomes operand 2 of the adder device 32. The results provided by adder device 32 along line 34 are sent to processor 32.
rdest connected to one of the floating point registers
It has value.

表1は、いかにしてDPCの様々な工冫コーディングが
異なるデータ経路を選択し、そしてそれによシ異なるア
ルゴリズムを供給するかを示している。DPCの各位は
、それに関連した独特の1組の二一モニツクを有してい
る。二一モニツクPFAM, PFSM ハ、デュアル
演算命令“パイプライン浮動小数点加算および乗算”お
よび“パイプライン浮動小数点減算および乗算゜である
。表1の二−モニツクによシ示されたデュアル演算命令
に関して実現される実際のデータ経路は、第3図乃至第
8図に示されている。
Table 1 shows how various technical coding of the DPC selects different data paths and therefore provides different algorithms. Each member of the DPC has a unique set of 21 Monics associated with it. 21 Monics PFAM, PFSM C. Dual arithmetic instructions "Pipeline floating point addition and multiplication" and "Pipeline floating point subtraction and multiplication." The actual data paths taken are shown in FIGS. 3-8.

表I  DPCエンコーディング −Kロードが設定されると、乗算器のオペランド1がK
Rの場合KRはロードされ、乗算器のオペランド1がK
Lの場合KLがロードされる。
Table I DPC Encoding - When K load is set, multiplier operand 1 is
If R then KR is loaded and operand 1 of the multiplier is K
If L, KL is loaded.

たとえば、プログラマがマトリックス反転を行ないたい
場合について考察する。本発明において、これは、第3
図の実際のデータ経路に示されているソフトウエア命令
r2plを使用して行なわれる。
For example, consider the case where a programmer wants to perform a matrix inversion. In the present invention, this is the third
This is done using the software instruction r2pl shown in the actual data path of the figure.

マトリックス反転を行なう際、アルゴリズムの内部ルー
プは次の数学的関係で示される。
When performing matrix inversion, the inner loop of the algorithm is represented by the following mathematical relationship:

kV凰 + V! → V. ζとで、kは実数の定数で、V,,V.はベクトル要素
である。マトリックス反転を行なうことは、各ベクトル
要素に、ある定数をかけ、その後その結果に第2ベクト
ルを加算することを含んでおシ、それによシその結果が
第2ベクトル記憶位置く記憶し直される。この命令を供
給するため、第3図において、KRレジスタは乗算器装
置のapl 入力に直接的に接続している。乗算器装置
は他の入力(op2)は、浮動小数点命令オペランドs
rc2K接続している。乗算器装置の出力結果は、アダ
ー装置のop2人力に接続し、かつアダー装toopl
入力は、浮動小数点装置のsrcl命令オペランドに接
続している。srcl , src2オペランドは、上
記式のv11 v,に対応している。アダー装置からの
結果は、rdeit  レジスタ内に配置され、ベクト
ルV!に関する新しい値になる。
kV 凰 + V! →V. ζ, k is a real constant, V,,V. is a vector element. Performing a matrix inversion involves multiplying each vector element by a constant and then adding a second vector to the result, whereby the result is stored back in a second vector storage location. . To provide this instruction, in FIG. 3, the KR register is connected directly to the apl input of the multiplier unit. The other input (op2) of the multiplier unit is the floating point instruction operand s
rc2K is connected. The output result of the multiplier device is connected to the op2 power of the adder device and the adder device toopl
The input is connected to the srcl instruction operand of the floating point unit. The srcl and src2 operands correspond to v11 v in the above equation. The result from the adder device is placed in the rdeit register and vector V! becomes the new value for

マトリックス反転は、本発明のバス●マトリックスでは
行なうことができるが、従来の乗算累積演算を用いては
簡単に行なうことができないという、内部ループ定数を
含んでいるデュアル演算の適当な例である。乗算累積方
式は、一般的に精度が劣夛、プログラムするのがよシむ
ずかしく、さらに結果を得るのが遅いので、あま夛好ま
しくない。(なお、従来の乗算累積演算は、本発明のパ
ス・マトリックスに供給されるようなml2apnソフ
トウエア命令によシ供給される。)本発明は、ここK示
した実施例に限定されず、本発明の思想から離れるとと
なく様々K改変できるとと唸当業者には明白であろう。
Matrix inversion is a suitable example of a dual operation involving an inner loop constant, which can be performed with the bus matrix of the present invention, but cannot easily be performed using conventional multiply-accumulate operations. Multiply-accumulate methods are generally less accurate, more difficult to program, and slower to obtain results, making them less desirable. (It should be noted that conventional multiply-accumulate operations are provided by ml2apn software instructions such as those provided in the path matrix of the present invention.) The present invention is not limited to the embodiment shown herein; It will be obvious to those skilled in the art that various modifications can be made without departing from the idea of the invention.

たとえば、ここでは、供給し得る様々なアルゴリズムを
示してはいるが、別のアルゴリズムを供給するのに他の
マトリックス接続を使用してもよい。
For example, although various algorithms are shown here that may be provided, other matrix connections may be used to provide different algorithms.

以上のようK,本発明は、マイクロプロセッサの浮動小
数点装置においてデュアル演算命令を行なう優れたパス
・マトリックスを提供する。
As described above, the present invention provides an excellent path matrix for performing dual arithmetic instructions in a floating point unit of a microprocessor.

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

第1図は本発明の浮動小数点バス・マトリックスに関連
し次プロセッサのパイプライン●アー卑テクチュアと3
つのパイプライン段を示し、第2図は本発明のバス・マ
トリックスの実施例を示し、第3図はl!j!1に示す
ように、それぞれ特定のソフトウエア命令を表す二−モ
ニツクr2pl ,r2slに関して選択された実際の
データ経路を示し、第4図は表IK示すように、それぞ
れ特定のソフトウエア命令を表す二−モニツクr2pt
,r2stK関して選択され次実際のデータ経路を示し
、第5図は表1に示すように、それぞれ特定のソフトウ
エア命令を表す二−モニツクr2paL r2aslK
関して選択された実際のデータ経路を示し、第6図は表
1に示すように、それぞれ特定のソフトウエア命令を表
す二一モニツクr2apt, r2amtに関して選択
された実際のデータ経路を示し、第7図は表1に示すよ
うに、それぞれ特定のソフトウエア命令を表す二−モニ
ツクi2pl, 12mlに関して選択された実際のデ
ータ経路を示し、第8図は表1に示すように、それぞれ
特定のソフトウェア命令を表す二一モニツクi2pt,
 12stに関して選択された実際のデータ経路を示し
、第9図は表1に示すように、それぞれ特定のソフトウ
エア命令を表す二−モニツク12apl, 12asl
に関して選択された実際のデータ経路を示し、第10図
は表1に示すように、それぞれ特定のソフトウエア命令
を表す二−モニツク12apL i2astに関して選
択された実際のデータ経路を示し、第11図は表1に示
すように、それぞれ特定のソフトウエア命令を表す二一
モニツクratlp2,ratlg2に関して選択され
た実際のデータ経路を示し、第12図は表1に示すよう
に、それぞれ特定のソフトウエア命令を表す二一モニツ
クm12畳pm, ml2asmに関して選択された実
際のデータ経路を示し、第l3図は表1に示すように、
それぞれ特定のソフトウエア命令を表す二一モニツクr
ilp2, rals2に関して選択された実際のデー
タ経路を示し、第14図は表1に示すように、それぞれ
特定のソフトウエア命令を表す二−モニツクml2tt
pa,ml2ttsa  に関して選択された実際のデ
ータ経路を示し、第15図は表1に示すように、それぞ
れ特定のン7トウエア命令を表す二−モニツクiatl
p2.iatls2  に関して選択された実際のデー
タ経路を示し、第16図は表1に示すように、それぞれ
特定のソフトウエア命令を表す二一モニツクml2tp
ml ml2tamに関して選択された実際のデータ経
路を示し、第17図は表1に示すように、それぞれ特定
のン7トウエア命令を表す二−モニツクiilp2* 
imls2 に関して選択された実際のデータ経路を示
し、第18図は表1に示すようK1それぞれ特定のソフ
トウエア命令を表す二−モニックml2tpss, m
l2tsaに関して選択された実際のデータ経路を示し
ている。 24・●φ・乗算器装置、32・●●−アダー装置、 23.25 ,33 φデータ経 路制御装置、 ●KLレジスタ、 22 ● 7I[逼−1 ●KRレジスタ、 30 ● .Tレジスタ。
FIG. 1 shows the following processor pipeline architecture related to the floating-point bus matrix of the present invention.
FIG. 2 shows an embodiment of the bus matrix of the invention, and FIG. 3 shows l! j! 1 shows the actual data paths selected for two monitors r2pl, r2sl, each representing a specific software instruction, and FIG. -Monique r2pt
, r2stK, and FIG.
FIG. 6 shows the actual data paths selected for the 21 monitors r2apt and r2amt, each representing a particular software instruction, as shown in Table 1; The figures show the actual data paths selected for the two-monics i2pl, 12ml, each representing a specific software instruction, as shown in Table 1, and FIG. 21 Monique i2pt, which represents
12st, FIG. 9 shows two monitors 12apl, 12asl, each representing a specific software instruction, as shown in Table 1.
FIG. 10 shows the actual data paths selected for two monitors 12apLi2ast, each representing a particular software instruction, as shown in Table 1, and FIG. Table 1 shows the actual data paths selected for the two monitors ratlp2, ratlg2, each representing a specific software instruction, and FIG. Figure 13 shows the actual data path selected for the 21 Monique m12 tatami pm, ml2 asm, as shown in Table 1.
21 Monik r, each representing a specific software instruction.
14 shows the actual data paths selected for ilp2, rals2, and the binary ml2tt, each representing a specific software instruction, as shown in Table
15 shows the actual data paths selected for pa, ml2ttsa, and FIG.
p2. The actual data paths selected for iatls2 are shown in Figure 16, each representing a specific software instruction, as shown in Table 1.
Figure 17 shows the actual data path selected for mlml2tam, and FIG.
18 shows the actual data path selected for imls2, and FIG.
3 shows the actual data path selected for l2tsa. 24・●φ・multiplier device, 32・●●−adder device, 23.25 ,33 φ data path control device, ●KL register, 22 ● 7I[逼−1 ●KR register, 30 ● . T register.

Claims (3)

【特許請求の範囲】[Claims] (1)第1および第2オペランド入力と、第1結果を供
給する出力を有する乗算器と、 第3および第4オペランド入力と、第2結果を供給する
出力を有するアダーと、 並列方式で所定のアルゴリズムを供給するよう、上記第
1結果と上記第2結果と第1および第2ソース・オペラ
ンドを含んでいる複数のオペランドの1つを選択して上
記乗算器と上記アダーの各オペランド入力に接続するデ
ータ経路制御装置と、から成ることを特徴とするデュア
ル算術演算を行なうバス・マトリックス。
(1) a multiplier having first and second operand inputs and an output providing a first result; and an adder having third and fourth operand inputs and an output providing a second result; selecting one of a plurality of operands including the first result, the second result, and first and second source operands to each operand input of the multiplier and the adder to provide an algorithm of A dual arithmetic bus matrix comprising: a data routing device connected to the bus matrix;
(2)浮動小数点装置を有しかつ第1および第2浮動小
数点命令オペランドを供給するプロセッサにおいて、 第1および第2オペランドを乗算して、第1結果を生じ
る乗算器装置と、 第3および第4オペランドを加算して、第2結果を生じ
るアダー装置と、 定数を記憶しかつ上記第1結果を一時的に記憶するレジ
スタ装置と、 複数のオペランドの1つが上記第1オペランドになるよ
うにかつ上記複数のオペランドの別の1つが上記第2オ
ペランドになるように上記乗算器に接続するとともに、
上記複数のオペランドの1つが上記第3オペランドにな
るようにかつ上記複数のオペランドの1つが上記第4オ
ペランドになるように上記アダー装置に接続して、所定
のデュアル演算アルゴリズムを供給するマルチプレクサ
装置と、 から成ることを特徴とするデュアル演算命令を実行する
プロセッサ。
(2) in a processor having a floating point unit and providing first and second floating point instruction operands, a multiplier unit that multiplies the first and second operands to produce a first result; an adder device that adds four operands to produce a second result; a register device that stores a constant and temporarily stores said first result; and an adder device that adds four operands to produce a second result; connected to the multiplier so that another one of the plurality of operands becomes the second operand,
a multiplexer device connected to the adder device such that one of the plurality of operands becomes the third operand and one of the plurality of operands becomes the fourth operand to supply a predetermined dual operation algorithm; , A processor that executes dual arithmetic instructions.
(3)浮動小数点乗算器および浮動小数点アダーを有し
かつ第1および第2浮動小数点命令オペランドを供給す
るプロセッサの浮動小数点セクションにおいて、 定数と上記乗算器の最終段の結果とを記憶するレジスタ
装置と、 上記乗算器と上記アダーの各オペランド入力に関連し、
かつ乗算および加算演算を同時に行なうことによりソフ
トウェア・アルゴリズムを供給するように、上記第1お
よび第2命令オペランド、上記定数、上記乗算器の上記
最終段の結果、上記乗算器の現在の段の結果、上記アダ
ーの現在の段の結果と含んでいる複数のオペランドの1
つを上記関連するオペランド入力に接続するデータ経路
制御装置と、 から成ることを特徴とするデュアル命令を実行するバス
・マトリックス。
(3) In a floating point section of a processor having a floating point multiplier and a floating point adder and supplying first and second floating point instruction operands, a register device for storing constants and the result of the final stage of the multiplier. and, related to each operand input of the multiplier and the adder,
and the first and second instruction operands, the constant, the result of the last stage of the multiplier, the result of the current stage of the multiplier, so as to provide a software algorithm by performing multiplication and addition operations simultaneously. , the result of the current stage of the above adder and one of the multiple operands it contains.
a data routing device connecting one of said operands to said associated operand input; and a bus matrix for executing dual instructions.
JP3229690A 1989-02-10 1990-02-13 Bus matrix Pending JPH02235174A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US30943089A 1989-02-10 1989-02-10
US309.430 1989-02-10

Publications (1)

Publication Number Publication Date
JPH02235174A true JPH02235174A (en) 1990-09-18

Family

ID=23198205

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3229690A Pending JPH02235174A (en) 1989-02-10 1990-02-13 Bus matrix

Country Status (2)

Country Link
JP (1) JPH02235174A (en)
DE (1) DE4001232C2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999008204A1 (en) * 1997-08-05 1999-02-18 Hitachi, Ltd. Device and method for processing data

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0474246A2 (en) * 1990-09-06 1992-03-11 Matsushita Electric Industrial Co., Ltd. Image signal processor
WO1993001541A1 (en) * 1991-07-01 1993-01-21 Fujitsu Limited Apparatus for sum-of-product operation

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4561065A (en) * 1982-02-23 1985-12-24 Tokyo Shibaura Denki Kabushiki Kaisha Arithmetic processing device using sampled input data and several previous output data
GB8612453D0 (en) * 1986-05-22 1986-07-02 Inmos Ltd Multistage digital signal multiplication & addition

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999008204A1 (en) * 1997-08-05 1999-02-18 Hitachi, Ltd. Device and method for processing data

Also Published As

Publication number Publication date
DE4001232A1 (en) 1990-08-16
DE4001232C2 (en) 1996-05-30

Similar Documents

Publication Publication Date Title
US5204828A (en) Bus apparatus having hold registers for parallel processing in a microprocessor
US7424594B2 (en) Efficient complex multiplication and fast fourier transform (FFT) implementation on the ManArray architecture
JP5866128B2 (en) Arithmetic processor
US8271571B2 (en) Microprocessor
US6922716B2 (en) Method and apparatus for vector processing
US7072929B2 (en) Methods and apparatus for efficient complex long multiplication and covariance matrix implementation
TWI763698B (en) Vector multiply-add instruction
JP3578502B2 (en) Method for performing parallel data processing on a single processor
EP0314809B1 (en) Vector processor for processing recurrent equations at a high speed
CN111381880B (en) Processor, medium, and operation method of processor
JPH04167172A (en) Vector processor
JPH0850575A (en) Programmable processor,method for execution of digital signal processing by using said programmable processor and its improvement
JPS6125188B2 (en)
US20080059764A1 (en) Integral parallel machine
US6675286B1 (en) Multimedia instruction set for wide data paths
JPH0659861A (en) 3-1 logic operating device
US20030084083A1 (en) Method and apparatus for performing integer multiply operations using primitive multi-media operations that operate on smaller operands
JPH02235174A (en) Bus matrix
US10929101B2 (en) Processor with efficient arithmetic units
US7260711B2 (en) Single instruction multiple data processing allowing the combination of portions of two data words with a single pack instruction
JPH09269939A (en) Computing element digital signal processor using the same
JPH04141769A (en) First-order recursive arithmetic processor
JPH0241563A (en) Vector processing system
JPH04357565A (en) Vector processor
JPS63172367A (en) Vector data processor