JPH03245223A - 演算装置 - Google Patents

演算装置

Info

Publication number
JPH03245223A
JPH03245223A JP2043009A JP4300990A JPH03245223A JP H03245223 A JPH03245223 A JP H03245223A JP 2043009 A JP2043009 A JP 2043009A JP 4300990 A JP4300990 A JP 4300990A JP H03245223 A JPH03245223 A JP H03245223A
Authority
JP
Japan
Prior art keywords
data
instruction
register
instructions
arithmetic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2043009A
Other languages
English (en)
Other versions
JP2553728B2 (ja
Inventor
Hiroshi Nishikawa
宏 西川
Takashi Hamada
浜田 高志
Motohiro Misawa
三沢 基宏
Kazuo Sakushima
和生 佐久嶋
Yoshikazu Fukino
美和 吹野
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2043009A priority Critical patent/JP2553728B2/ja
Publication of JPH03245223A publication Critical patent/JPH03245223A/ja
Application granted granted Critical
Publication of JP2553728B2 publication Critical patent/JP2553728B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、プロセサ内に演算器を複数個有し、複数命令
に対してそのデータ依存関係を識別して複数個の演算器
を同時または逐次的に実行する演算装置に関するもので
ある。
従来の技術 従来、演算器を複数個設けた演算装置としては、VT、
IW(ベリーロング・インストラクション・ワ“ド V
ery Long In5truction Word
 )計算機と呼ばれるアーキテクチャが知られている。
第4図は従来の同アーキテクチャのブロック図であり、
レジスタファイル401は第1の演算器402ヘデータ
を供給するためのデータ読出しポー) rslcL r
s2a並びに第1の演算器402の演算結果を書込むた
めのポー) rdaを備えている。そして、同レジスタ
ファイル401は、第2の演算器403ヘデータを供給
するためのデータ読出しポー)rslb、r521)並
びに第2の演算器403の演算37、−2 結果を書込むためのポー) rdbをも備えている。
命令レジスタ404は、前記2つの演算器402.40
3を同時に動作させるために、2命令を格納できるビッ
ト長を持ち、命令バス406を経由してデータがこの命
令レジスタ404に格納される。
命令レジスタ404中の2命令は、制御信号406.4
07をそれぞれ介して第1の演算器402、第2の演算
器403への指令となる。
このようなアーキテクチャを採用すると、プロセサ内部
では、最大2命令までを並列に実行することが可能とな
り、ベクトル化の効かない命令の高速化を達成すること
が可能となる。
第6図は従来のプロセサに対する命令格納メモリの内容
例を示す図であり、基本的には、命令1語に対し第1列
と第2列の2つの命令が格納された形態のメモリである
。プロセサは命令ポインタで指示される命令語を順次取
出し、命令レジスタ404に格納し、命令レジスタ40
4に格納された命令を実行することになる。命令RO=
Il+R2を例にとると、命令の実行は次のようになる
。レジスタファイ#401から読出されたレジスタR1
、R2の内容が第1の演算器401に送られ、R1とR
2が加算される。そして、この演算結果のROがレジス
タファイル401に入力して格納されるのである。
第6図には、同時に実行することが不可能な命令が格納
されている状態も、合わせて表示しである。即ち、第1
列、第4エントリにある命令R3=RO−R3は、同列
第3エン) IJの命令R,0=R1−R2の実行後で
ないと、実行不可能である。同時に、第1列、第6エン
トリの命令R5= R3−R2は、同列第4エントリ命
令R3=RO−43の実行後でないと実行不可能である
。同時実行不可能な理由は、命令の演算結果を次の命令
で使用するからであり、演算結果は、レジスタファイル
401に格納しない限り、次命令でのレジスタファイル
401の読出しが実行できない。
したがって、第6図に示されるように、命令格納メモリ
中にはnop命令が格納され、メモリに無駄が生じるこ
とになる。
6/<−。
第6図には、第4図のプロセサが第6図に示された命令
を実行するときのタイミングチャートしてあり、10,
12・・・16は第5図の第1列の第1エントリから第
6エントリに格納された命令に対応し、11,13・・
・17は、第2列の第1エントリから第6エントリに格
納された命令に対応する。
ここに、rl」は、命令格納メモリから命令を読出して
命令レジスタ404に格納するまでの時間を示し、rE
Jはレジスタファイル401中のレジスタからデータを
読出した後、演算を施して、この演算結果をレジスタフ
ァイル401に格納するまでの時間を示す。
このタイミングチャートからも理解されるように、第1
、第2の演算器402,403を有する場合に、命令の
1語長を大きくすることにより並列動作が実現できるか
ら、1つずつ命令を実行することに比較して、高性能が
達成できる点がVLIW計算器の大きな特長である。
発明が解決しようとする課題 ところで、前述した従来のV L I W計算器にあ6
へ−7 つでは、nop命令が存在するため、最も密度の高い状
態で命令格納メモリに命令を充填できないから、次のよ
うな問題点も含む。即ち、演算器2つ用のプロセサと1
つ用のプロセサでは結合性が無く、演算器1つのプロセ
サで動作するプログラムのコンパイルコードは、演算器
2つのプロセサ上では正常に動作しなくなり、プログラ
ムの再タンパイル動作が必要になる。また、パイプライ
ンの段数が、命令フユッチと実行の2段であるため、n
op命令の実行時間の命令全体の実行時間に占める比率
が大きい等の課題がある。
本発明は、前述したような従来の課題に鑑みてなされた
もので、その目的とするところは、複数個の演算器を有
するプロセサであって、演算器1つ用のタンパイルコー
ドにも動作でき、再タンパイル動作が不用で、コードを
圧縮でき、演算動作を高速化できる演算装置を提供する
ことにある。
課題を解決するための手段 上記目的を達成するため、本発明の演算装置はデータの
読出しポート、演算結果を格納するポー7 、 トをもつレジスタファイルと、レジスタファイルからの
読出しデータを格納する入力ラッチと、第1、第2の演
算器と、演算結果を格納する出力ラッチと、前記第1、
第2の演算器が同時に動作可能なビy)巾を有し、かつ
第1、第2の演算器に命令を指示する命令レジスタと、
命令レジスタの複数命令の場合に同時実行が可能か否か
を判別し、かつ第1、第2の演算器へのデータな入力ラ
ッチと出力ラッチのいずれかに選択入力させるデータ依
存判別回路とを備えるものである。
作用 このような演算装置によると、パイプラインが命令フユ
ッチ、レジスタファイルのデータの入力ラッチへの読出
し、第1、第2の演算器の動作、演算結果の出力ラッチ
からレジスタファイルへの書込みの4段になり、複数命
令に対してはデータ依存関係が判定されることになる。
したがって、複数命令の同時実行が可能な場合は、入力
ラッチのデータが第1と第2の演、算器に共に入力され
、命令が同時実行される。一方、同時実行が不可能な命
令の場合は、第1、第2の演算器に入力ラッチまたは出
力ラッチからデータが選択入力され、複数の命令実行が
逐次的に行なわれるようになる。
実施例 以下、第1図ないし第3図を用いて本発明の実施例を詳
細に説明する。
第1図は、2個の演算器を用いた場合の本発明による演
算装置のブロック図である。レジスタファイル101は
、データ読出しポートとしてのrsla。
rs2a、 rslb、 rs2bの4つの独立ポート
をもち、書込みポートとしてはrda s  rdbの
2つの独立ポートを有している。入力ラッチ102,1
03.108.109には、レジスタファイル101か
らの読出しデータが格納される。第1、第2の演算器1
06.112の演算結果は、その出力ラッチ107.1
13にそれぞれ格納されるが、出力ラッチ107の出力
は、第1、第2の演算器106,112の入力を選択す
るためのセレクタ104.106.110゜111に接
続されると共に、レジスタファイル101のポートrd
aにも接続される。同様に、出力ラッ9 ベー。
チ113の出力もセレクタ104.105.110.1
11に接続され、レジスタファイル101のポートrd
bにも接続される。
命令バス116は、第1、第2の演算器106.112
を同時に動作させることが可能なビy)巾をもったもの
で、命令格納メモリからの読出し結果は命令レジスタ1
14に格納される。そして、命令レジスタ114中に格
納された2つの命令は、デコード信号118を通して第
1の演算器106用の指令となり、デコード信号117
を通して第2の演算器112用の指令となる。データ依
存判定回路116は、命令レジスタ114に格納された
命令が同時実行可能か否かを判定し、同時実行不可能で
ある場合は、命令を逐次的に実行させる機能を備えてい
る。
第2図は命令格納メモリの内容例を示し、第3図にはこ
の命令を実行したときのタイミングチャートを示しであ
る。タイミングチャート中の「I」は、命令格納メモリ
から命令レジスタ114への命令格納時間、rDJはレ
ジスタファイル10/、ニー。
101からデータを読出して第1、第2の演算器106
.112の入力ラッチ102,103,108゜109
へ転送するデータ転送時間、rEJは第1、第2の演算
器106,112に対するデータが入力されて演算結果
が出力ラッチ107.113に格納されるまでの時間、
「W」は出力ラッチ107.113の内容がレジスタフ
ァイル101に格納されるまでの時間とする。
命令格納メモリから読み出された命令l0(RO=R1
+R2)及び11 (R,3=R1−R2)の実行は次
のように進む。まずIO,11の命令が時刻【1に命令
レジスタ114に格納される。次に、命令工0で示され
る演算ソースであるレジスタファイル101中のレジス
タR1、R2の内容が読出され、第1の演算器1060
入カラツチ102゜103に保持される。同様に、命令
■1の演算ソースであるR1、R2の内容も、第2の演
算器112の入力ラッチ108,109に保持される。
この作業はDフェーズに相当し、時刻t2に終了するが
、Eフェーズでは、2つの第1、第2の演算器106゜
11 . 112で加算、減算が同時に行なわれ、演算結果が時刻
t3に出力ラッチ107.113に格納される。Wフェ
ーズでは、これら出力ラッチ107.1−13の内容が
レジスタファイル101のRO,R3に同時に書込まれ
る。この作業は時刻t4に終了する。
2つの命令が同時に実行可能であるのは、工0ののデス
ティネーションレジスタが、11のソースレジスタと異
なっているからである。
同様に、I2 (R4=R,1+ R2)、I3(R5
=R3+R2)の実行の場合、これらの2つの命令は同
時に実行可能である。しかし、I3のEフェーズでは、
I1の命令によって更新されるレジスタR3の内容をソ
ースデータとして用いているから、I3のEフェーズの
実行は、I1のWフェーズの実行と同時に進む。したが
って、I3のEフェーズの実行直前には、レジスタR3
の内容は更新されていないため、第1図のデータ依存判
別回路116が働き、I3のDフェーズでは、R3に書
込むべきデータを保持している第2の演算器112の出
力ラッチ113から後のEフェーズで用いる入力データ
を入手することにすればよい。つまり、このようにすれ
ば、命令I2、工3が同時に実行できるのみならず、直
前の命令IO1■1との間での命令実行パイプラインを
乱さずに、命令実行ができることになる。
次の命令であるI4(Ro−凡1−R2)、I6(R3
−4L〇−几3)の実行に関しては、I4の結果をI6
が使用するので、同時実行することはできない。このこ
とは、データ依存判別回路116を用いてDフェーズで
検出判定できる。詳細にいうと、この処理は、I5のE
フェーズを1段遅らせることで(即ち時刻t5〜時副時
刻の間)行なうことにする。つまり、Eフェーズで第2
の演算器112の入力として、工4のEフェーズで生成
された演算結果を使用することが行なわれる。
総括すると、このような処理により、同時に2命令が実
行可能でない場合に1命令ずつパイプライン動作したと
きに、同等のパフォーマンスを保証できる。
なお、命令I6(凡5 = R3−R2)、I7(R6
=13、、、−2 R1−几2)は同時実行可能であるけれども、直前の2
命令が同時実行可能でないことを受けて、■フェーズの
次は、nop化を行なえば、矛盾なく動作することがで
きる。
発明の効果 以上に述べてきたように、本発明によれば、演算器1つ
用にコンパイルされたオブジェクトでも、複数個の演算
器を有するプロセサで動作することが可能になり、再コ
ンパイル動作が不要になる。また、本発明では、コンパ
イルドコード中ニ並列実行可能でない演算器の命令フィ
ールドをnop化する命令を入れる必要がないため、コ
ードを圧縮化できる。そして、本発明では、複数個の演
算器を同時に動作するため、1つの演算器のプロセサに
比較して演算動作が高速になる。
【図面の簡単な説明】
第1図は本発明による演算装置のブロック結線図、第2
図は命令格納メモリの内容例を示す概念図、第3図は命
令実行のパイプラインのタイミングチャート、第4図は
従来の演算装置のブロック145、 結線図、第5図は命令格納メモリの内容例を示す概念図
、第6図は命令実行のタイミングチャートである。 101・・・レジスタファイル、102.103.10
8.109・・・入力ラッチ、106・・・第1の演算
器、112・・・第2の演算器、107.113・・・
出力ラッチ、114・・・命令レジスタ、115・・・
データ依存判別回路。

Claims (2)

    【特許請求の範囲】
  1. (1)データの読出しポート、演算結果を格納するポー
    トをもつレジスタファイルと、前記レジスタファイルか
    らの読出しデータを格納する入力ラッチと、第1、第2
    の演算器と、演算結果を格納する出力ラッチと、前記第
    1、第2の演算器が同時に動作可能なビット巾を有し、
    かつ前記第1、第2の演算器に命令を指示する命令レジ
    スタと、前記命令レジスタの複数命令の場合に同時実行
    が可能か否かを判別し、かつ前記第1、第2の演算器へ
    のデータを入力ラッチと出力ラッチのいずれかに選択入
    力させるデータ依存判別回路とを備える演算装置。
  2. (2)入力ラッチはセレクタを介して第1、第2の演算
    器に接続され、出力ラッチはセレクタとレジスタファイ
    ルに接続され、データ依存判別回路はセレクタを動作し
    てデータ選択を行なう請求項1記載の演算装置。
JP2043009A 1990-02-23 1990-02-23 演算装置 Expired - Lifetime JP2553728B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2043009A JP2553728B2 (ja) 1990-02-23 1990-02-23 演算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2043009A JP2553728B2 (ja) 1990-02-23 1990-02-23 演算装置

Publications (2)

Publication Number Publication Date
JPH03245223A true JPH03245223A (ja) 1991-10-31
JP2553728B2 JP2553728B2 (ja) 1996-11-13

Family

ID=12651992

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2043009A Expired - Lifetime JP2553728B2 (ja) 1990-02-23 1990-02-23 演算装置

Country Status (1)

Country Link
JP (1) JP2553728B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04268920A (ja) * 1991-02-25 1992-09-24 Fujitsu Ltd 除算器
JPH06242952A (ja) * 1993-01-08 1994-09-02 Internatl Business Mach Corp <Ibm> スーパースカラ・プロセッサにおける命令処理の選択的逐次化の方法およびシステム
US6141746A (en) * 1997-10-20 2000-10-31 Fujitsu Limited Information processor

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6255736A (ja) * 1985-08-30 1987-03-11 アドバンスト・マイクロ・デイバイシズ・インコ−ポレ−テツド デジタルプロセッサ制御装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6255736A (ja) * 1985-08-30 1987-03-11 アドバンスト・マイクロ・デイバイシズ・インコ−ポレ−テツド デジタルプロセッサ制御装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04268920A (ja) * 1991-02-25 1992-09-24 Fujitsu Ltd 除算器
JPH06242952A (ja) * 1993-01-08 1994-09-02 Internatl Business Mach Corp <Ibm> スーパースカラ・プロセッサにおける命令処理の選択的逐次化の方法およびシステム
US6141746A (en) * 1997-10-20 2000-10-31 Fujitsu Limited Information processor

Also Published As

Publication number Publication date
JP2553728B2 (ja) 1996-11-13

Similar Documents

Publication Publication Date Title
US5450556A (en) VLIW processor which uses path information generated by a branch control unit to inhibit operations which are not on a correct path
US6061780A (en) Execution unit chaining for single cycle extract instruction having one serial shift left and one serial shift right execution units
EP0378830B1 (en) Method and apparatus for handling multiple condition codes as for a parallel pipeline computer
US3983539A (en) Polymorphic programmable units employing plural levels of sub-instruction sets
US5299321A (en) Parallel processing device to operate with parallel execute instructions
TW514782B (en) System and method for reducing write traffic in processors
US4587632A (en) Lookahead stack oriented computer
US7418575B2 (en) Long instruction word processing with instruction extensions
US3943494A (en) Distributed execution processor
JPS6351287B2 (ja)
JPS635777B2 (ja)
KR100346515B1 (ko) 수퍼파이프라인된수퍼스칼라프로세서를위한임시파이프라인레지스터파일
JP3449186B2 (ja) パイプラインバイパス機能を有するデータ処理装置
US5274777A (en) Digital data processor executing a conditional instruction within a single machine cycle
KR101016257B1 (ko) 프로세서 및 정보 처리 장치
JP3004108B2 (ja) 情報処理装置
JPH02227730A (ja) データ処理システム
EP1025484A1 (en) Autonomously cycling data processing architecture
JPH03245223A (ja) 演算装置
JP2916605B2 (ja) コンピュータ用プロセツサ
WO1985002277A1 (en) Microprogram control method
US5812845A (en) Method for generating an object code for a pipeline computer process to reduce swapping instruction set
JP3737573B2 (ja) Vliwプロセッサ
JPH073655B2 (ja) 整理編集プロセツサ
JPH0222413B2 (ja)