JP3212213B2 - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JP3212213B2
JP3212213B2 JP04536594A JP4536594A JP3212213B2 JP 3212213 B2 JP3212213 B2 JP 3212213B2 JP 04536594 A JP04536594 A JP 04536594A JP 4536594 A JP4536594 A JP 4536594A JP 3212213 B2 JP3212213 B2 JP 3212213B2
Authority
JP
Japan
Prior art keywords
instruction
unit
operations
arithmetic
register
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
Application number
JP04536594A
Other languages
English (en)
Other versions
JPH07253888A (ja
Inventor
秀仁 武和
松尾  茂
真二 藤原
正久 成田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP04536594A priority Critical patent/JP3212213B2/ja
Priority to KR1019950004472A priority patent/KR100334174B1/ko
Priority to US08/401,691 priority patent/US6092183A/en
Publication of JPH07253888A publication Critical patent/JPH07253888A/ja
Application granted granted Critical
Publication of JP3212213B2 publication Critical patent/JP3212213B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は命令に基づいてデータを
処理するデータ処理装置に係り、特に1つの命令に複数
の演算を有する命令を処理するデータ処理装置に関す
る。
【0002】
【従来の技術】複数の演算を一度に指示する命令(以
後、複合命令とする)、例えば、VLIW命令などは、
1度に処理する演算数を多くすることで、データ処理装
置(例えば、プロセッサなど)の高速処理を実現してい
る。
【0003】そこで、1マシンサイクルに演算できる演
算数を増やすため、並列に演算を実行し、演算結果を一
度に出す構成になっていた。
【0004】また、上記複合命令で指示された演算で、
オーバーフロー等による例外処理が生じた場合は、通常
の単一演算命令の処理と同様に、ソフトウエアによって
複合命令で指示された演算全てを再実行するものであっ
た。
【0005】
【発明が解決しようとする課題】上述の従来の技術で
は、複数の演算器を並列に動作させるための制御、複数
の演算結果を同時に記憶する仕組を必要とし、装置とし
て複雑なものになる。また、用いる部品などの物量が多
くなり、コンパクトで低消費電力のデータ処理装置を実
現する妨げとなっている。
【0006】また、例外発生時においても従来の技術で
は、正常終了するであろう一部の演算についてもソフト
ウェアで再実行することになり、例外発生時の処理のオ
ーバーヘッドが大きい。
【0007】本発明の第1の目的は、複数演算を有する
複合命令を、幾つかの実行単位に対応又は分割して処理
することで、コンパクトで低消費電力のデータ処理装置
を提供することにある。
【0008】本発明の第2の目的は、複合命令での例外
発生処理を、例外発生の生じた演算についてのみ行うデ
ータ処理装置の提供にある。
【0009】
【課題を解決するための手段】上記第1の目的を達成す
るための本発明の特徴は、命令をデコードし、上記命令
が複数の演算を実行する命令であることを検出する検出
部と上記検出部によって複数の演算を実行する命令であ
るなら、予め定められた1回の演算数に基づいて、上記
命令の命令コードを複数サイクルに組み替える命令生成
部と上記命令コードを組み替えた命令の複数サイクルに
演算実行するための制御を行う演算制御部とを含むデコ
ーダと、上記演算制御部からの制御に基づいて、上記命
令を複数サイクルに分けて演算を実行する演算部とを有
することにある。
【0010】上記第2の目的を達成するための本発明の
特徴は、上記演算部の演算処理によって、例外処理が発
生すると、例外処理の発生した命令と、既に演算処理が
実行された演算結果、又は、未だ実行されていない演算
を保持する例外レジスタを有することにある。
【0011】
【作用】複数の演算を実行する命令の処理を予め定めた
1サイクルあたりの演算数に応じて複数サイクルに分割
し演算実行することで、演算器の数が減り、それらを制
御する制御部の機構が簡素化される。従って、演算の並
列度の高い命令を処理する高速なデータ処理装置との互
換を保ちながら、データ処理装置としての小型化,低消
費電力化が達成される。
【0012】例外処理の発生を演算の実行単位に対し
て、検出・保持・処理することで、全ての演算を再度実
行する必要が無くなり、例外処理を早く行うことができ
る。
【0013】
【実施例】本発明の概略を図17を用いて示す。
【0014】単一演算命令又は複数の演算を指示する命
令1700は、メモリなどから読みだされて命令レジス
タ1701に保持される。命令1700は命令レジスタ
1701からデコーダ部1710に入力され、検出部171
1によって複数の演算を指示する命令であるか否かが検
出される。
【0015】1712は、検出部1711の検出結果に
応じて、単一命令ならその命令を演算制御部1715に
スルーさせ、一般的な演算処理である演算制御部で演算
制御信号を生成し、演算部1720を制御して、演算処
理を行う。
【0016】1712は、検出部1711の検出結果に
応じて、複合命令ならその命令から予め定めた演算数と
演算順序に基づき、演算に必要なフィールドを組み替え
る。予め演算数と演算種類,演算順序は定められている
ので、組み替えられたフィールドに同期して、演算部1
720を制御する制御信号を演算制御部1715で生成
する。演算部1720は、この制御信号に基づいて、デ
ータをアクセスし、演算処理を行う。
【0017】ここで、検出部1711は、上述の複数の
演算を指示する命令か否かの検出以外に、1度に処理す
る演算数より多い命令か否かを検出しても良い。この場
合、1度に処理する演算数より少ない命令と検出される
と、命令生成部1712はその命令を演算制御部171
5にスルーさせ、上述の演算処理を実行する。
【0018】さらに、予め実行する命令が複数の演算を
指示する命令だけである場合、又は1度に処理する演算
数より多い命令だけである場合は、検出部1711は不
要である。
【0019】また、1度に処理する演算数は、演算器の
数によって決まるが、これは命令レジスタに保持される
命令の中で最も多い演算数より少ない演算器の数である
ことは本発明の趣旨からいって明確である。
【0020】ただし、用いられる演算器をすべて用いる
必要はなく、データの処理の形態(プログラムの内容を
含めて)又は消費電力の節約(バッテリー駆動の場合な
ど)等によってはさらに少ない演算数を指定し、処理を
実行することができる。
【0021】そのほか、演算器自身が特定用途の演算器
である場合、つまり、加算器と積算器で構成される演算
部である場合に特定の演算器、例えば、加算器だけを用
いるように演算数を少なく設定し、処理を実行すること
ができる。
【0022】本発明をさらに詳細に説明する。
【0023】本発明の1つの実施例を図1に示す。
【0024】本実施例は命令コード101を毎サイクル
供給するフェッチ部100とその命令コード106をデ
コードし、動作させる演算器に対する制御情報108と
その演算に用いるデータが格納されているレジスタの番
号109,110と演算結果を格納するレジスタの番号
111とを特定するデコーダ107,そのデコード結果
108,109,110,111に基づき動作するレジ
スタ113,乗算器117,加算器116,演算例外時
にその例外の原因118,120に応じて命令コード1
06を変換するコード変換123,例外処理のソフトウ
エアに情報を渡すために、変換された例外発生の命令コ
ード124を格納する例外レジスタ125からなる。
【0025】本実施例において通常の命令コードでは、
命令コードのフェッチ,命令コードのデコード,レジス
タ読み出しと演算,演算結果のレジスタへの書き込みの
一連の動作を実行する。
【0026】乗算命令と加算命令が連続した場合のタイ
ミングを図2(a)に示す。図に示すように命令は1サ
イクルピッチで発行でき、また、1サイクルピッチでの
書き込みが可能である。本実施例は加算器と乗算器の並
列動作機能を持たない。そのため、加算と乗算を同時に
指示する複合命令では、本実施例では2サイクルにわた
る処理を行う。
【0027】次にその処理を説明する。フェッチ部10
0から出力された複合命令のコード101はセレクタ1
04に送られる。1つ前の命令103が複合命令でない
として、セレクタ104では複合命令のコード101が
選択される。命令コード106を受け取るデコーダの詳細
を図3に示す。デコーダ106は、命令の種類を識別す
る命令コードデコード部300と命令の種類によって異
なるレジスタフィールドを切り出す、ソース1,ソース
2、及びターゲット用レジスタフィールド切り出し部3
08,309,310とこれら切り出し部から事前に切
り出されたフィールド311〜319を命令コードデコ
ード部300の出力により選択するセレクタ304,3
05,306からなる。また、各切り出し部の出力で、
311,314,317は複合命令の乗算用のレジスタ
フィールドの内容、312,315,318は複合命令
の加算用のレジスタフィールドの内容、313,31
6,319は通常命令用のレジスタフィールドの内容を
示す。ここで、命令コード106は複合命令であること
と、1サイクル前にデコードした通常命令により信号1
05が0であることから、図3のデコード表に基づいて
信号301〜303のうち信号301がアサートされ
る。これと上記デコードの結果から図3のセレクタ30
4〜306においてそれぞれ複合命令の乗算用のレジス
タフィールド311,314,317が選択される。
【0028】また、複合命令の処理中である事を示す信
号127がアサートされる。デコード結果108〜11
2により、乗算用のデータがレジスタ113から乗算器
117に読み出され、それらの乗算結果119がレジスタ
113に書き込まれる。
【0029】以上が複合命令の1サイクル目の処理であ
る。
【0030】ラッチ126によって、1サイクル前の命
令コードのデコード情報127が次のサイクルの処理で
信号105として使用可能になる。
【0031】信号105を使用した複合命令の2サイク
ル目の各ブロックの動作を説明する。フェッチ部100
は次の命令をセレクタに出力する。
【0032】供給停止信号105がアサートされている
ので、フェッチ部100はこの命令コード101を出力
し続ける。セレクタの制御信号105が複合命令のデコ
ードでアサートされたので、セレクタ104は1つ前の
命令コードである複合命令103を選択する。命令コー
ド106が複合命令のコードのままであることと制御信
号105が1に変わったことから、デコーダ107では
図2のデコード表に従い信号201〜203のうち信号
202がアサートされる。
【0033】その結果、セレクタ204〜206におい
てそれぞれ複合命令の加算用のレジスタ番号が選択され
る。
【0034】また、複合命令の処理中である事を示す信
号127がネゲートされる。このデコード結果に基づ
き、加算用のデータがレジスタから加算器116に読み
出され、それらの加算結果120がレジスタ113に書
き込まれる。以上が複合命令の2サイクル目の処理であ
る。次のサイクル、信号105がネゲートされているの
で、前のサイクルから保持されていた命令コード101
が、セレクタ104によりデコーダ107に渡されるの
で、正しい命令実行順序通り命令の処理が続行可能にな
る。以上の動作のタイミングを図2(b)に示す。フェ
ッチ(信号101)は複合命令を発行した後、次のサイク
ルで信号105がアサートされるため次命令が2サイク
ルにわたって発行される。フェッチ(信号103)は信
号101がラッチ102を通った信号であるので図の様
に1サイクル遅れた状態となる。セレクタ104で2サ
イクルの間に信号101の次に信号103と選択され、
信号106となるのでデコーダ107は2サイクルにわ
たって複合命令のデコードを実行する。さらに、信号1
05が2サイクル目にアサートされることから、デコー
ド結果の信号109,110は図に示すように1サイク
ル目が乗算用のデータの読みだし、2サイクル目は加算
用のデータの読みだしをレジスタに指示する内容にな
る。また、信号108は、1サイクル目に乗算器の制
御,2サイクル目に加算器の制御を指示する信号とな
る。信号108の一部をラッチで受けて演算器の出力に
タイミングを合わせ多信号102は、図のように1サイ
クルのみアサートされる。その信号112により、信号
128には1サイクル目に乗算結果,2サイクル目に加
算結果が、セレクタ122で選択され、ラッチを通し書
き込みのタイミングに合わせて出力される。信号111
は、図のように書き込みのタイミングに合わせて1サイ
クル目は乗算用の書き込みの指示,2サイクル目は加算
用の書き込み指示の内容となる。
【0035】以上が、演算が正常に終了した場合の処理
である。
【0036】演算例外が発生した場合、命令コードを例
外コードに置き換え、レジスタに信号を送りレジスタへ
の書き込みを抑止する。変換後の命令コードは例外命令
をソフトで再実行する際に利用される。
【0037】複合命令処理の加算処理中に演算例外発生
した場合、図9に示す様に1サイクル目の乗算の処理は
すでに終了し、レジスタに結果が書き込み抑止信号が間
に合わず乗算結果がレジスタ113に書き込まれてい
る。そのため、加算中に例外が発生した場合は、ソフト
で再実行する命令は加算処理だけになる。そこで、コー
ド変換123では、複合命令の処理進度を示す制御信号
127に従い命令コードを変更する。制御信号127が
ネゲートされている場合、1サイクル目の処理であるか
ら、図5に示すように複合命令のコード106に対して
の置き換えのみを行いその結果を例外レジスタ125に
保存する。制御信号127がアサートされている場合、
2サイクル目の処理であるから、図5に示すように複合
命令のコード106から加算用のレジスタ番号を抜き出
し加算命令のコードを作り、その命令コードに対して加
算命令用の例外コードへの置き換えを行い、例外レジス
タ125に保存する。これにより、乗算処理をやり直さ
ず、加算処理のみの再実行が可能となる。これらの処理
により、大きな並列動作機能用の論理を持たずして複合
命令が処理でき、コンパクトで低消費電力の小さな計算
機が実現できる。図6にこれらの処理ができるCPUを
使ったシステムの例を示す。CPUを小さくできるた
め、システム全体もコンパクトなものができ、消費電力
も抑えることができる。
【0038】次に、本発明を浮動小数点の処理装置に応
用した実施例を図7に示す。700〜703は複合命令
の命令コードを2サイクルにわたって発行させるための
シーケンサである。また、命令実行のパイプラインが乱
れた際に、ラッチ701をとめて次の命令の命令コード
を保持する機能も持つ。命令実行のパイプラインは、命
令間でレジスタの利用が競合したり、加算器をループし
て使う除算や平方根の演算のために生じる。704〜7
08は命令コード709からそれぞれ対応するビットを
切り出す。演算部制御710はデコードされた結果71
1から、個々の命令に対して必要な演算器の制御を指示
する信号712を作る。パイプライン制御713はデコ
ードされた結果714から、命令による実行ステップ数
の違いから生じるパイプラインの乱れを制御する信号7
15を作る。レジスタ競合チェック716は切り出され
たレジスタフィールド717〜719を命令間で比較す
るこどでレジスタの競合を検知する。演算部720は、
図8に示すように、基本的に加算器800と乗算器80
1からなる。除算と平方根は加算器800を繰り返し使
用することで実行する。
【0039】以上は、複合命令が2つの演算からなって
いる命令セットに対する処理装置の実施例であったが、
他の実施例として、複合命令で指定できる演算数が2か
らNまでである場合の命令セットに対する処理装置の実
施例を図9に示す。
【0040】本実施例は複合命令に対して次の様に処理
Nサイクルにわたった処理を行う。フェッチ部900か
ら出力された複合命令のコード901はセレクタ904
に送られる。1つ前の命令が複合命令でない場合、セレ
クタ904では複合命令のコード901が選択される。
デコーダ907では、図10(b)のデコード表に基づ
いて、選択された複合命令906に対して乗算を実行す
るためのデコードが行われる。即ち、図10(a)のデ
コーダ907の詳細図において、命令コード906が複
合命令でカウンタ値905が0のため、信号1001〜
1004のうち信号1001がアサートされ、セレクタ
1006〜1008においてそれぞれ複合命令の演算1
用のレジスタ番号が選択される。また、複合命令の処理
中である事を示す信号931がアサートされる。デコー
ド結果に基づき、演算1用のデータ914,915がレ
ジスタ913から演算器1(916)に読み出され、そ
れらの演算結果921がレジスタ913に書き込まれ
る。以上が1サイクル目の処理となる。
【0041】カウンタ926では、図6に基づきイネー
ブル信号931がアサートされているためカウンタ値9
27を更新し新しいカウンタ値932を生成する。カウ
ンタ926によって、1サイクル前の命令コードのデコ
ード情報927が次のサイクルの処理で信号905とカ
ウンタ値932として使用可能になる。信号905とカ
ウンタ値932を使用した複合命令の2サイクル目の各
ブロックの動作を説明する。フェッチ部900は次の命
令をセレクタ904に出力する。供給停止信号905が
アサートされているので、フェッチ部900はこの命令
コード901を出力し続ける。セレクタの制御信号90
5が複合命令のデコードでアサートされたので、セレク
タ904は1つ前の命令コードである複合命令903を
選択する。デコーダ907では、制御信号905がアサ
ートされ、カウンタ値932が1を示すので、選択され
た複合命令906に対して演算2を実行するためのデコ
ードが図10(a)の真理値表によって行われる。即
ち、図10(b)のデコーダの詳細図において、命令コ
ード906が複合命令で信号905が1で、カウンタ値
1のため、信号1001〜1009のうち信号1002
がアサートされ、セレクタ1005〜1008において
それぞれ複合命令の演算2用のレジスタ番号が選択され
る。また、複合命令の処理中である事を示す信号931
がアサートされの状態を保つ。デコード結果に基づき、
演算2用のデータ914,915がレジスタから演算器
(917)に読み出され、それらの演算結果918がレジ
スタ913に書き込まれる。以上が複合命令の2サイクル
目の処理である。また、カウンタ926のイネーブル信
号931がアサート状態を保つので、図11に基づきカ
ウンタ926では、カウンタ値932が更に更新され、
フェッチの停止信号905はアサート状態を保つ。
【0042】これらの一連の動作を演算N−1(カウン
タ値N−2に対応)に対するデコードまで繰り返す。演
算Nのデコードでは、図11に示すように、制御信号9
05がアサートされ、カウンタ値932がN−1を示す
ので、選択された複合命令906に対して演算Nを実行
するためのデコードが図10(b)の真理値表によって
行われる。即ち、図10(a)のデコーダの詳細図にお
いて、命令コード906が複合命令で信号905が1
で、カウンタ値N−1のため、信号1001〜1004
のうち信号1004がアサートされ、セレクタ1006
〜1008においてそれぞれ複合命令の演算N用のレジ
スタ番号が選択される。またカウンタ426のイネーブ
ル信号431をネゲートする。つぎのサイクルでカウン
タ926では、図11に基づき、イネーブル信号931が
ネゲートされたことにより、カウンタ値932がクリア
され、フェッチの停止信号905とセレクタの制御信号
905がネゲートされる。信号905がネゲートされて
いるので、前のサイクルから保持されていた命令コード
901が、セレクタ904によりデコーダ907に渡さ
れるので、正しい命令実行順序通り命令の処理が続行可
能になる。
【0043】次に、本実施例での複合命令処理中の演算
例外発生時のコード変換923と例外レジスタ925の
動作を説明する。コード変換923は、カウンタ値92
7を参照することで、複合命令906の処理進度を知
る。それにより、疑似的に未処理の演算だけを指示する
別の複合命令のコードに対しての変換を行いその結果9
23を例外レジスタ925に保存する。演算M(1<M
<N)で例外が発生した場合のコード変換の例を図12
に示す。
【0044】次に、VLIW(Very Long Instruction
Word)型の処理装置に対して、本発明を適用した実施例
を図13に示す。一般にVLIWは1命令コードの各フ
ィールドで演算,主記憶制御,分岐制御を指示し、その
ため、それを処理する装置は1度に命令を実行する機能
を有している。本実施例では、命令を一度に処理する機
能を有する代わりに、カウンタ1313を用いることで
次のように命令を処理する。命令フェッチ1301はプ
ログラムカウンタ1312によって示されるアドレスに
格納されている命令コードを命令キャッシュ1300よ
りデコーダ1302へ渡す。デコーダ1302では、分岐制
御を最後に実行する関係上、命令コードの左端のフィー
ルドから順にデコードする。カウンタは、デコードする
フィールドをデコーダに指示する。デコードの開始時に
カウント値は0にセットされ、フィールドがデコードさ
れる度にカウントが進み、全フィールドがデコードされ
た時点で0にクリアされる。カウントが進んでる間、カ
ウンタ1313は次命令アドレス決定部1310にプロ
グラムカウンタ1311の停止を指示する。プログラム
カウンタ1311は全フィールドがデコードされるまで
同じ値を示すため、命令フェッチ1301は同じ命令コ
ードをデコーダ1302に出力することができる。これ
により演算器の並列動作のための論理やレジスタのポー
ト数を増やすことなくVLIWの命令を処理できる。
【0045】次に、加算と乗算を指示する複合命令を処
理する実施例において積和命令を処理する機能を付けた
実施例を図14に示す。積和命令は、加算と乗算の処理
が独立である複合命令とは異なり、乗算結果に加算する
命令である。本実施例ではこの積和命令を次のように処
理する。複合命令と同様に2サイクルにわたり処理を行
うので、パイプラインを延ばす仕組みは実施例1に倣
う。但し、1サイクル目の乗算はレジスタに書き込まな
いため、書き込み抑止信号1401を出力する。そのか
わりテンポラリレジスタを経由し、2サイクル目の加算
の読み出しサイクルに合わせてバス115に出力する。
また、レジスタからの加算ソースは1つで良いので、読
み出しを抑止する。加算終了後、結果をレジスタに書き
込む。これらのタイミングを図15に示す。図16にデ
コーダの詳細及びデコード表を示す。命令コードデコー
ド部300はデコード表に従い、各信号を出力する。10
9,110,111はそれぞれ、ソース1用,ソース2
用,ターゲット用フィールドの内容でレジスタ113に
渡される。信号1401は積和命令の乗算の書き込み抑
止と加算の読み出し抑止とバスへの出力制御に使う。
【0046】
【発明の効果】以上述べたように、本発明によれば、複
合命令の処理をいくつかの実行単位に分割して処理する
ことで、サイズがコンパクトで、低消費電力なデータ処
理装置が提供できる。
【図面の簡単な説明】
【図1】本発明の1つの実施例のブロック図。
【図2】(a)本発明の1つの実施例における通常命令
処理時のタイミング図、(b)本発明の1つの実施例に
おける複合命令処理時のタイミング図。
【図3】本発明の1つの実施例のデコーダの詳細図とデ
コード表。
【図4】本発明の1つの実施例における複合命令の例外
発生時のタイミング図。
【図5】本発明の1つの実施例のコード変換の説明図。
【図6】本発明の1つの実施例を用いたシステム図。
【図7】本発明の他の1つの実施例のブロック図。
【図8】本発明の他の1つの実施例の演算部の詳細図。
【図9】本発明の他のもう1つの実施例のブロック図。
【図10】(a)本発明の他のもう1つの実施例のデコ
ーダの詳細図、(b)本発明の他のもう1つの実施例の
デコード表。
【図11】本発明の他のもう1つの実施例のカウンタの
真理値表。
【図12】本発明の他のもう1つの実施例のコード変換
の説明図。
【図13】(a)一般的なVLIWの命令形式、(b)
本発明をVLIWに適用した実施例のブロック図。
【図14】本発明の実施例に積和命令の処理機能を追加
した装置の実施例。
【図15】積和命令処理時のタイミング図。
【図16】積和命令機能を追加したデコーダの詳細図と
デコード表。
【図17】本発明を示す構成図。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 藤原 真二 東京都国分寺市東恋ケ窪一丁目280番地 株式会社 日立製作所 中央研究所内 (72)発明者 成田 正久 茨城県日立市幸町三丁目2番1号 日立 エンジニアリング株式会社内 (56)参考文献 特開 平4−247523(JP,A) 特開 平5−53808(JP,A) 特表 平7−505968(JP,A) 米国特許6092183(US,A) 国際公開93/20507(WO,A1) (58)調査した分野(Int.Cl.7,DB名) G06F 9/30 - 9/42

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】命令をデコードし、上記命令が複数の演算
    を実行する命令であることを検出する検出部と、上記検
    出部によって複数の演算を実行する命令を検出した場合
    予め定められた1度に処理する演算数に基づいて上記
    命令の一部のフィールドを演算順序に基づいて複数の命
    令に組み替えるフィールド組み替え部と、上記組み替え
    たフィールドの順序に同期して複数サイクルに演算実行
    するための制御信号を生成する演算制御部とを有するデ
    コーダと、 上記演算制御部からの制御信号に基づいて上記命令を複
    数サイクルに分けて演算を実行する演算部と、命令実行中に上記演算部が処理できない例外処理が発生
    した場合に、前記命令を記憶しておく例外レジスタとを
    有し、 上記デコーダによって複数サイクルに分割された演算を
    上記演算部が処理中に例外が発生した場合、上記命令を
    未処理部分の演算に等価な命令コードに変換して上記例
    外レジスタに記憶する ことを特徴とするデータ処理装
    置。
  2. 【請求項2】請求項において、 上記複数の演算を実行する命令は、VLIW命令である
    ことを特徴とするデータ処理装置。
  3. 【請求項3】請求項において、 上記検出部は、上記命令が指示する演算数が1度に処理
    する演算数より多いときに、上記フィールド組替え部に
    検出結果を出力し、上記フィールド組替え部は複数のサ
    イクルに分割することを特徴とするデータ処理装置。
  4. 【請求項4】請求項において、 上記演算部は1つの演算器であることを特徴とするデー
    タ処理装置。
  5. 【請求項5】請求項において、 上記演算部は上記命令が指示する演算数より少ない数の
    演算器であることを特徴とするデータ処理装置。
  6. 【請求項6】請求項において、 上記演算部は異なる演算処理を実行する演算器が複数あ
    ることを特徴とするデータ処理装置。
JP04536594A 1994-03-16 1994-03-16 データ処理装置 Expired - Lifetime JP3212213B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP04536594A JP3212213B2 (ja) 1994-03-16 1994-03-16 データ処理装置
KR1019950004472A KR100334174B1 (ko) 1994-03-16 1995-03-06 데이타처리장치
US08/401,691 US6092183A (en) 1994-03-16 1995-03-10 Data processor for processing a complex instruction by dividing it into executing units

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP04536594A JP3212213B2 (ja) 1994-03-16 1994-03-16 データ処理装置

Publications (2)

Publication Number Publication Date
JPH07253888A JPH07253888A (ja) 1995-10-03
JP3212213B2 true JP3212213B2 (ja) 2001-09-25

Family

ID=12717253

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04536594A Expired - Lifetime JP3212213B2 (ja) 1994-03-16 1994-03-16 データ処理装置

Country Status (3)

Country Link
US (1) US6092183A (ja)
JP (1) JP3212213B2 (ja)
KR (1) KR100334174B1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11232147A (ja) * 1998-02-16 1999-08-27 Toshiba Corp パワーエスティメーション装置、パワーエスティメーション方法、及びパワーエスティメーションプログラムを記録した機械読み取り可能な記録媒体
US6308262B1 (en) * 1998-09-30 2001-10-23 Intel Corporation System and method for efficient processing of instructions using control unit to select operations
JP2001202243A (ja) * 1999-04-30 2001-07-27 Hitachi Ltd データ処理装置
JP4021590B2 (ja) * 1999-06-21 2007-12-12 東芝ソリューション株式会社 浮動小数点演算装置
US7333530B1 (en) * 2001-08-06 2008-02-19 Analog Devices, Inc. Despread signal recovery in digital signal processors
JP3948615B2 (ja) 2002-07-05 2007-07-25 富士通株式会社 プロセッサ及び命令制御方法
US7937557B2 (en) 2004-03-16 2011-05-03 Vns Portfolio Llc System and method for intercommunication between computers in an array
US7904695B2 (en) 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous power saving computer
US7904615B2 (en) * 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous computer communication
US7966481B2 (en) 2006-02-16 2011-06-21 Vns Portfolio Llc Computer system and method for executing port communications without interrupting the receiving computer
US7996454B2 (en) * 2007-11-16 2011-08-09 Vns Portfolio Llc Method and apparatus for performing complex calculations in a multiprocessor array
CN107179895B (zh) * 2017-05-17 2020-08-28 北京中科睿芯科技有限公司 一种应用复合指令加快数据流结构中指令执行速度的方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63131230A (ja) * 1986-11-21 1988-06-03 Hitachi Ltd 情報処理装置
US4916652A (en) * 1987-09-30 1990-04-10 International Business Machines Corporation Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures
WO1991004536A1 (en) * 1989-09-20 1991-04-04 Dolphin Server Technology A/S Instruction cache architecture for parallel issuing of multiple instructions
ATE146611T1 (de) * 1990-05-04 1997-01-15 Ibm Maschinenarchitektur für skalaren verbundbefehlssatz
EP0474297B1 (en) * 1990-09-05 1998-06-10 Koninklijke Philips Electronics N.V. Very long instruction word machine for efficient execution of programs with conditional branches
EP0498067A2 (en) * 1991-02-08 1992-08-12 International Business Machines Corporation Microcode generation for a scalable compound instruction set machine
US5539911A (en) * 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US5347639A (en) * 1991-07-15 1994-09-13 International Business Machines Corporation Self-parallelizing computer system and method
US5511172A (en) * 1991-11-15 1996-04-23 Matsushita Electric Co. Ind, Ltd. Speculative execution processor
JPH05233281A (ja) * 1992-02-21 1993-09-10 Toshiba Corp 電子計算機
US5438668A (en) * 1992-03-31 1995-08-01 Seiko Epson Corporation System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer
JP2786574B2 (ja) * 1992-05-06 1998-08-13 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータ・システムにおける順不同ロード動作の性能を改善する方法と装置
WO1994027216A1 (en) * 1993-05-14 1994-11-24 Massachusetts Institute Of Technology Multiprocessor coupling system with integrated compile and run time scheduling for parallelism
US5546599A (en) * 1994-03-31 1996-08-13 International Business Machines Corporation Processing system and method of operation for processing dispatched instructions with detected exceptions

Also Published As

Publication number Publication date
KR100334174B1 (ko) 2002-09-25
KR950033813A (ko) 1995-12-26
JPH07253888A (ja) 1995-10-03
US6092183A (en) 2000-07-18

Similar Documents

Publication Publication Date Title
US7467286B2 (en) Executing partial-width packed data instructions
JP2864421B2 (ja) 命令の多機能ユニットへの同時ディスパッチのための方法及び装置
US20020169942A1 (en) VLIW processor
US20050251645A1 (en) Method and apparatus for staggering execution of an instruction
JP2000222206A (ja) データ処理装置
EP0968463A2 (en) Vliw processor processes commands of different widths
EP0947917A2 (en) Method and apparatus for handling imprecise exceptions
US6192467B1 (en) Executing partial-width packed data instructions
JP3212213B2 (ja) データ処理装置
JP2620511B2 (ja) データ・プロセッサ
US20030005261A1 (en) Method and apparatus for attaching accelerator hardware containing internal state to a processing core
US6055628A (en) Microprocessor with a nestable delayed branch instruction without branch related pipeline interlocks
JP2874351B2 (ja) 並列パイプライン命令処理装置
EP0279953B1 (en) Computer system having mixed macrocode and microcode instruction execution
JP3182591B2 (ja) マイクロプロセッサ
JPH06295243A (ja) データ処理装置
US6453412B1 (en) Method and apparatus for reissuing paired MMX instructions singly during exception handling
JP2000284962A (ja) マイクロコンピュータ
JP2004508607A (ja) 例外ルーチンを有するプロセッサのレジスタライトトラフィックを減じる装置及び方法
JP3019818B2 (ja) データ処理方法
JP2536726B2 (ja) マイクロプロセッサ
JP2812610B2 (ja) パイプライン制御方式
US20220308889A1 (en) Reconfigurable Multi-Thread Processor for Simultaneous Operations on Split Instructions and Operands
JPH06131180A (ja) 命令処理方式および命令処理装置
JP2000003279A (ja) Vliwプロセッサ、プログラム生成装置、および記録媒体

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080719

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090719

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100719

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110719

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110719

Year of fee payment: 10

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110719

Year of fee payment: 10

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120719

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120719

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130719

Year of fee payment: 12

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term