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

データ処理装置

Info

Publication number
JP3435278B2
JP3435278B2 JP01790796A JP1790796A JP3435278B2 JP 3435278 B2 JP3435278 B2 JP 3435278B2 JP 01790796 A JP01790796 A JP 01790796A JP 1790796 A JP1790796 A JP 1790796A JP 3435278 B2 JP3435278 B2 JP 3435278B2
Authority
JP
Japan
Prior art keywords
arithmetic
unit
general
purpose register
result
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 - Fee Related
Application number
JP01790796A
Other languages
English (en)
Other versions
JPH09212360A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP01790796A priority Critical patent/JP3435278B2/ja
Priority to US08/792,733 priority patent/US5895498A/en
Publication of JPH09212360A publication Critical patent/JPH09212360A/ja
Application granted granted Critical
Publication of JP3435278B2 publication Critical patent/JP3435278B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、パイプライン処理
で演算を行うデータ処理装置に関する。
【0002】
【従来の技術】パイプライン処理を行なうことが可能な
演算ユニットにおいて、演算器が複数であった場合は、
それぞれの演算器において実行される演算命令の演算時
間(レイテンシ)が全て同じであるか、あるいは演算器
が1つであれば、演算結果を演算結果保存用の汎用レジ
スタへ書き込む時のリソースコンフリクトは生じない。
【0003】しかし、一般的に、除算/開平(SQR
T)などのレイテンシは他の演算のレイテンシに比べ非
常に大きい。従って、第1の命令(以降、MACと記
す)と、第1の命令に比べより多くのレイテンシを有す
る第2の命令(以降、DIVと記す)を別々の演算器で
実行し、その結果を1つの汎用レジスタに書き込むよう
な構成であった場合は、2つの演算が同時に終了した時
に、1つの汎用レジスタへ同時に演算結果を書き込もう
とするので、書き込みのコンフリクトが生じる。
【0004】これを回避するために、(1)書き込みポ
ートを複数にする(複数命令を同時に発行できる演算ユ
ニットなど)、(2)後続命令をストールさせる、とい
った方策が採られている。
【0005】以降に、従来のデータ処理装置について、
ブロック図(図5)と、2つの演算結果を汎用レジスタ
へ書き込む時にコンフリクトが起きた例を示すパイプラ
イン図(図6)とを用いて説明し、また、その回避策に
ついて、上記(2)の方法を用いてコンフリクトを回避
した例を示すパイブライン図(図7)を用いて説明す
る。
【0006】図5に示す従来のデータ処理装置では、演
算を行なう演算器としてMAC用演算器101とDIV
用演算器102の2種類の演算器と、さらにこれら演算
器101,102によって得られた演算結果を書き込む
ための1種類の汎用レジスタ103とを備えている。な
お、図中では、動作を見やすくするため、書き込み用の
汎用レジスタ103と読み込み用の汎用レジスタ103
とに書き分けているが、実際の汎用レジスタ103は1
種類である。
【0007】命令シーケンス104(命令内容について
は後述する)よりデコーダ105へ命令が送られると、
デコーダ105では、汎用レジスタ103に対し、演算
データを演算器101または102へ出力するためのア
ドレスを指定し、さらに演算命令がMAC用演算器10
1とDIV用演算器102のどちらで実行されるものか
を判断し、演算を実行する側の演算器へ各サイクル毎に
ラッチ回路106を経て、各演算実行ステージ(20
1,202,203まはた204,205)へ演算開始
命令を発行する。
【0008】次に、演算開始命令が発行されると、汎用
レジスタ103の出力ポート103Aより、演算データ
が演算器101または102へ入力され、各ステージ毎
(201,202,203または204,205)に所
定の演算処理が行なわれる。MAC用演算器101で
は、データが入力されてから3サイクル目で演算が終了
し、その後、4サイクル目で演算結果書き込み用のセレ
クタ107を経由し、汎用レジスタ103へ演算結果の
書き込みが行なわれる。一方、DIV用演算器102で
はデータが入力されてから6サイクル目で演算が終了
し、7サイクル目でMAC演算器101と共通のセレク
タ107を経由し、汎用レジスタ103へ演算結果の書
き込みが行なわれる。
【0009】前記命令シーケンスとしては、「MAC−
a」、「MAC−b」、「DIV−a」、「MAC−
c」、「MAC−d」、「MAC−e」、「MAC−
f」、「DIV−b」,「MAC−g」、「MAC−
h」、「MAC−i」の順で構成されている。ここで、
「MAC−a」,「MAC−b」,…,「MAC−i」
は、全て共通の命令であり、MAC用演算器101にて
演算を実行し汎用レジスタ103へ書き込む命令であ
る。また、「DIV−a」,「DIV−b」は、共通の
命令であり、DIV用演算器102にて演算を実行し汎
用レジスタ103へ書き込む命令である。
【0010】図6のパイプライン図を用いて、図5の従
来装置において問題箇所となる演算結果の書き込み時の
コンフリクトについて述べる。
【0011】図6中において、コンフリクトが起きてい
る部分を[401]及び[402]で示している。先に
述べたように、MAC用演算器101での演算にかかる
時間は3サイクルであり、DIV用演算器102での演
算にかかる時間は6サイクルである。両演算器101,
102は共に、実行ステージ(ステージE1(20
1),ステージE2(202),ステージE3(20
3)、ステージE1(204),ステージE2(20
5))が異なる場合には、パイプライン処理による演算
命令の連続実行が可能である。
【0012】従って、図6では#4から#7(期間T1
1)のようにMAC演算命令は順次発行され、演算処理
が実行できている。ところが、図5に示す装置のように
演算処理時間の違う2種類の演算器101,102によ
って演算を実行し、かつ演算結果を書き込む汎用レジス
タ103が共通のものであった場合は、図6中の[40
1],[402]のように、1つ前のサイクル([40
1]場合は#9)で同時に演算が終了したとき、次のサ
イクル([401]場合は#10)で同時に書き込もう
とするため(矢印403,404)、書き込み時にコン
フリクトが起きてしまう。
【0013】そこで、図6に示す[401],[40
2]のようなコンフリクトが起きないように、前述のコ
ンフリクト回避方法(2)を用いた従来例について図7
を用いて説明する。
【0014】2つの演算結果の書き込みステージが同じ
タイミングにならないようにするために、どちらか一方
(ここではMAC用演算器101の命令「MAC−e」
(501)の実行開始のタイミングを1サイクル(図7
中の#7の502)ずらすことにより、MAC用演算器
101の実行ステージは全段1サイクルずつ空き(点線
矢印504)、#10のライトバックステージ(50
3)に1サイクル分の空きができる。
【0015】従って、その空白となったライトバックス
テージ(503)を利用し、「DIV−a」の演算結果
を書き戻すことができ、コンフリクトは回避される。図
6の[402]のコンフリクトについても同様の対策に
より回避できる(図7の505,506)。
【0016】
【発明が解決しようとする課題】しかしながら、上記従
来のデータ処理装置のコンフリクト回避方法では、次の
ような問題点があった。
【0017】前述したように、従来のデータ処理装置の
コンフリクト回避方法としては、(1)書き込みポート
を複数にする、(2)後続命令をストールさせる、とい
った方策が採られている。しかし、書き込みポートを複
数にする方法(1)では、単にポート数が増えるだけで
なく、書き込み制御なども複雑になる。また、後続命令
をストールさせる方法(2)では、演算結果を書き込む
ために1サイクル以上、命令実行を遅らせることにな
り、演算処理の動作時間が遅くなるだけでなく、データ
処理装置全体の性能も低下させてしまうことになる。
【0018】本発明は、上述の如き従来の問題点を解決
するためになされたもので、その目的は、書き込み制御
を複雑としないで書き込みのコンフリクトを回避するこ
とができるデータ処理装置を提供することである。その
他の目的は、ストールを持たせずに書き込みのコンフリ
クトを回避し、演算処理を迅速に行うことができるデー
タ処理装置を提供することである。さらにその他の目的
は、書き込み制御を複雑としないで且つストールを持た
せずに書き込みのコンフリクトを回避し、演算処理を迅
速に行うことができるデータ処理装置を提供することで
ある。
【0019】
【0020】
【0021】
【0022】
【0023】
【課題を解決するための手段】請求項1の発明の特徴
は、演算データを格納する汎用レジスタ部と、前記汎用
レジスタ部より読み出されたデータを用いて第1の所定
の演算を行い、その演算結果を前記汎用レジスタ部へ所
定のサイクル後出力する第1の演算部と、前記汎用レジ
スタ部より読み出されたデータを用いて第2の所定の演
算を行い、その演算結果を前記第1の演算部より長いサ
イクル後出力する第2の演算部と、前記第2の演算部よ
り出力された演算結果を一時保存する一時保存レジスタ
とを備え、前記第2の演算器に発行された先行する第1
の命令による前記一時保持レジスタ中の演算結果は、該
第2の演算器に対する次の第2の命令によって、前記汎
用レジスタ部に書き込むことにある。
【0024】
【0025】請求項2の発明の特徴は、請求項1の発明
において、前記第2の演算部での演算実行開始から、前
記一時保存レジスタに書き込まれている該演算実行直前
の演算結果を前記汎用レジスタへ書き込むまでのサイク
ル数を、前記第1の演算部において演算実行開始からそ
の演算結果を前記汎用レジスタに書き込むまでのサイク
ル数と同じにしたことにある。
【0026】この請求項2の発明によれば、第1の演算
部と第2の演算部が同時に実行を開始しない場合に、第
1の演算部及び一時保存レジスタから汎用レジスタへの
書き込み時にコンフリクトが生じない。
【0027】
【0028】
【0029】
【0030】
【0031】請求項3の発明の特徴は、演算データを格
納する汎用レジスタ部と、前記汎用レジスタ部より読み
出されたデータを用いて第1の所定の演算を行い、その
演算結果を前記汎用レジスタ部へ第1の所定のサイクル
後出力する第1の演算部と、前記汎用レジスタ部より読
み出されたデータを用いて第2の所定の演算を行い、そ
の演算結果を第2の所定のサイクル後出力する第2の演
算部と、前記汎用レジスタ部より読み出されたデータを
用いて第3の所定の演算を行い、その演算結果を第3の
所定のサイクル後出力する第3の演算部と、前記第2の
演算部より出力された演算結果を一時保存する第1の一
時保存レジスタと、前記第3の演算部より出力された演
算結果を一時保存する第2の一時保存レジスタとを備
え、前記第2または第3の演算器に発行された先行する
第1の命令による前記第1または第2の一時保持レジス
タ中の演算結果は、該第2または第3の演算器に対する
次の第2の命令によって、前記汎用レジスタ部に書き込
むことを特徴とするデータ処理装置。
【0032】この請求項3の発明によれば、演算部が3
個以上ある場合にも的確に対応することことができる。
【0033】請求項4の発明の特徴は、演算データを格
納する汎用レジスタ部と、前記汎用レジスタより読み出
されたデータを用い第1の所定の演算を行い、その演算
結果を前記演算データとして前記汎用レジスタ部へ所定
のサイクルで出力する第1の演算部と、前記汎用レジス
タより読み出されたデータを用い第2の所定の演算を行
い、その演算結果を前記演算データとして前記汎用レジ
スタ部へ前記第1の演算部より長いサイクルで出力する
第2の演算部とを有し、前記第1と第2の演算部の演算
実行開始サイクルが異なるデータ処理装置において、前
記第2の演算部の演算結果を一時保存するための一時保
存レジスタを設け、前記一時保存レジスタに書き込まれ
た演算結果は、前記第2の演算部に対して次の演算命令
が発行されたときから、前記第1の演算部と同じ前記汎
用レジスタへの書き込みタイミングを経て、前記汎用レ
ジスタに書き込むことにある。
【0034】この請求項4の発明によれば、第1の演算
部において演算を実行する命令(第1の命令)と第2の
演算部において演算を実行する命令(第1の命令と演算
時間が異なる第2の命令)との書き込みタイミングを同
じサイクルに合わせることができる。従って、第1と第
2の演算部の書き込みのコンフリクトは発生しなくな
り、しかも従来のような余計なストールが不要となる。
【0035】請求項5の発明の特徴は、請求項4の発明
において、前記一時保存レジスタに書き込まれる前記第
2の演算部の演算結果は、該第2の演算部に対する1つ
前の演算命令の実行によって得られたデータであり、前
記第2の演算部に対する演算命令の発行に基づいて生成
される空白サイクルで前記一時保存レジスタ中のデータ
を前記汎用レジスタに書き込み、前記第2の演算部の次
の演算を開始することにある。
【0036】この請求項5の発明によれば、例えば、演
算実行から汎用レジスタへ書き込むまでを1命令で行っ
ていた命令を、演算実行用の命令と、汎用レジスタへの
書き込み用の命令との2つに分け、さらにこの2つの命
令を組み合わせて1つの命令を構成し、この命令を実行
することにより、一時保存レジスタ中の第2の演算部の
既存の演算結果を空白サイクルで汎用レジスタに書き込
むと共に、第2の演算部の次の演算を開始する。
【0037】
【発明の実施の形態】以下、本発明の実施形態を図面に
基づいて説明する。図1は、本発明の第1実施形態に係
るデータ処理装置の構成を示すブロック図である。
【0038】本実施形態のデータ処理装置は、命令(命
令内容については後述する)を出力する命令シーケンス
1を有し、その出力側には、命令シーケンス1からの命
令を解読して各種制御信号S1を出力するデコーダ2が
接続されている。デコーダ2の出力側には、演算データ
を格納する1種類の汎用レジスタ3が接続されると共
に、各サイクル毎に設けられた複数のラッチ回路(L)
4が接続されている。なお、図中では、動作を見やすく
するため、書き込み用の汎用レジスタ3と読み込み用の
汎用レジスタ3とに書き分けているが、実際の汎用レジ
スタ3は1種類である。
【0039】また、汎用レジスタ3の出力ポート3Aに
は、MAC用演算器5(第1の演算部)とDIV用演算
器6(第2の演算部)の2種類の演算器が接続されてい
る。MAC用演算器5は、汎用レジスタ3より読み出さ
れたデータを用いステージE1(5a)、ステージE2
(5b)及びステージE3(5c)の順で(各1サイク
ル)所定の演算を行い、その演算結果を3サイクルでセ
レクタ7の一方側に出力する。一方、DIV用演算器6
は、汎用レジスタ3より読み出されたデータを用い、ス
テージE1(6a:5サイクル)及びステージE2(6
b:1サイクル)の順で除算等を行い、その演算結果を
6サイクルで一時保存レジスタ(QUO)8へ出力す
る。そして、一時保存レジスタ8の出力側には、セレク
タ7の他方入力側が接続され、セレクタ7の出力側が前
記汎用レジスタ3に接続されている。
【0040】ここで、一時保存レジスタ8は、本発明の
特徴の一部を成し、前記DIV用演算器6の演算結果を
一時保存するためのレジスタであり、ラッチ回路4から
の制御信号S2により動作が制御され、次のD1V演算
が実行されて演算結果が上書きされるまで前の演算結果
を保存することができる。後に詳述するようにMAC用
演算器5の汎用レジスタ3に対する書き込みタイミング
と同一タイミングで、一時保存レジスタ8中のデータが
汎用レジスタ3に書き込まれるようになっている。
【0041】また、命令シーケンス1の内容としては、
「MAC−a」、「MAC−b」、「DIV−a」、
「MAC−c」、「MAC−d」、「MAC−e」、
「MAC−f」、「DIV−b」,「MAC−g」、
「MAC−h」、「MAC−i」、「DIV−c」の順
で構成されている。ここで、「MAC−a」,「MAC
−b」,…,「MAC−i」は、全て共通の命令であ
り、MAC用演算器5にて演算を実行し汎用レジスタ3
へ書き込む命令である。また、「DIV−a」はDIV
用演算器6を用いて演算を実行する命令であり、「DI
V−b」は一時保存レジスタ8に保存された演算結果を
汎用レジスタ3へ書き込むと共に、次のDIV演算を開
始する命令である。さらに、「DIV−c」は一時保存
レジスタ8に保存された演算結果を汎用レジスタ3へ書
き込むだけの命令である。
【0042】上記命令シーケンス1中の「DIV−b」
が本発明の特徴を成す演算命令であるが、この命令を実
行するに際し、DIV演算器6側の演算結果を一時的に
保存する前記一時保存レジスタ8が必要となり、該一時
保存レジスタ8を制御するための制御信号S2が必要と
なる。
【0043】次に、以上のように構成されるデータ処理
装置の動作を説明する。
【0044】命令シーケンス1よりデコーダ2へ命令が
送られると、デコーダ2では、汎用レジスタ3に対し、
演算データを演算器へ出力するためのアドレスを指定
し、さらに演算命令がMAC用演算器5とDIV用演算
器6のどちらで実行されるものかを判断し、演算を実行
する側の演算器へ各サイクル毎にラッチ回路4を経て、
各演算実行ステージ(5a,5b,5cまたは6a,6
b)へ演算開始命令を発行する。
【0045】そして、演算開始命令が発行されると、汎
用レジスタ3の出力ポート3Aより、演算データが演算
器へ入力され、各ステージ毎(5a,5b,5cまたは
6a,6b)に所定の演算処理が行なわれる。MAC用
演算器5では、データが入力されてから3サイクル目で
演算が終了し、その後、4サイクル目で演算結果書き込
み用のセレクタ7を経由し、汎用レジスタ3へ演算結果
の書き込みが行なわれる。
【0046】一方、DIV用演算器6ではデータが入力
されてから6サイクル目で演算が終了し、7サイクル目
でDIV演算器6の演算結果を一時保存レジスタ8に書
き込む。この一時保存レジスタ8に書き込まれた演算結
果は、次のDIV演算命令が発行された時に、MAC用
演算器5を実行した時と同じ汎用レジスタ3への書き込
みタイミングで、セレクタ7を経由して汎用レジスタ3
へ書き込まれる。なお、演算命令は、演算器が違うもの
に対して2つ以上同時に発行されないものである。
【0047】図2は、図1に示す装置の命令実行のパイ
プラインを示す図である。
【0048】デコーダ2で「MAC−a」,「MAC−
b」が順次発行されると(サイクル#1,#2)、MA
C用演算器5において、ステージE1(5a)、ステー
ジE2(5b)、ステージE2(5c)の順で3サイク
ルの演算が行なわれる。その演算結果は、セレクタ7を
経て、演算開始から4サイクル目(#5)に汎用レジス
タ3へ書き込まれる(ライトバックステージ11)。こ
の演算命令はパイプライン化されており、これを図2の
パイプラインで表わすと、#1から#6のサイクル期間
T1で示すように実行される。
【0049】一方、DIV演算は、デコーダ2に「DI
V−a」命令(13)が入力されると、この「DIV−
a」命令は、DIV演算器6のステージE1(6a)に
おいて演算を実行する(12)。なお、このときは「D
IV−a」以前にDIV演算が行なわれていないため、
一時保存レジスタ8から汎用レジスタ3への演算結果書
き込み命令は不要である。また、DIV演算命令(1
3)が発行されると、MAC用演算器5では各ステージ
E1〜E3に1サイクル分の演算動作が行なわれない空
白(14)が生じ、その結果、ライトバックのステージ
についても1サイクルの空白(15)が生ずる。
【0050】DIV用演算器6のステージE1(6a)
での演算実行時間T2は5サイクルであり、続いてステ
ージE2(6b)へ実行ステージが移る(16)。すな
わち、デコード2に「DIV−b」が発行されると(#
8)、次のサイクル(#9)で「DIV−a」がステー
ジE2(6b)へ移り(16)、演算が終了すると、一
時保存レジスタ8への書き込みが行なわれ、その結果は
次の演算結果が書き込まれるまで保存される(17)。
【0051】次の「DIV−b」は、「DIV−a」の
演算ステージがステージE2(6b)へ移ると実行開始
可能となり、従って、「DIV−b」の実行については
「DIV−a」との空白なしに演算が開始できる(1
8)。また、「DIV−b」命令(19)は、「DIV
−a」(13)の演算結果を一時保存レジスタ8より汎
用レジスタ3へ書き込む(20)と共に(実際に汎用レ
ジスタ3へ書き込まれるのは命令開始後4サイクル目
(#12))、「DIV−b」の演算を開始する(2
1)ことが可能な命令である。この命令の実行により
「DIV−a」の演算結果を一時保存レジスタ8ヘ一時
的に保存することで、その演算結果をMAC演算と同様
に4サイクル目に汎用レジスタ3に書き込むことができ
る。
【0052】最後に、全てのDIV演算が終了したとこ
ろで、一時保存レジスタ8に格納されている演算結果を
「DIV−c」命令(23)にて汎用レジスタ3へ書き
込み(24)、DIV演算は全て終了となる。
【0053】このように、本実施形態では、従来ならば
空白のままになっていたライトバックステージ(22)
を利用し、「DIV−a」(13)にて得られ一時保存
レジスタ8に一時保存していた演算結果を、汎用レジス
タ3へ書き込み(22)、同時に次の演算を開始(1
8)できるため、余計なストールなどが必要なくなる。
【0054】図3は、本発明の第2実施形態に係るデー
タ処理装置の構成を示すブロック図であり、図1と共通
する要素には同一の符号が付されている。
【0055】本実施形態では、演算実行時間の異なる3
種類の演算器で構成したものである。すなわち、図1に
示すMAC用演算器5及びDIV用演算器6に加え、M
UL用演算器31を備えている。また、これら演算器
5,6,31によって得られた演算結果を書き込むため
の汎用レジスタは、上記第1実施形態と同様に汎用レジ
スタ3の1種類のみである。さらに、DIV演算6及び
MUL用演算器31は、MAC演算器5と実行サイクル
数が異なるので、上記第1実施形態用いたのと同じよ
うにそれぞれの演算器6,31について制御信号S2で
制御される一時保存レジスタ8,32が設けられてい
る。
【0056】次に、本実施形態の動作を説明する。
【0057】命令シーケンス1よりデコーダ2へ命令が
送られると、デコーダ2では、汎用レジスタ3に対し、
演算データを演算器へ出力するためのアドレスを指定
し、さらに演算命令がMAC用演算器5、DIV用演算
器6及びMUL用演算器31のどちらで実行されるもの
かを判断し、演算を実行する演算器へ各サイクル毎にラ
ッチ回路4を経て、各演算実行ステージ(5a,5b,
5c、6a,6b、または31a,31b,31c)へ
演算開始命令を発行する。
【0058】そして、演算開始命令が発行されると、汎
用レジスタ3の出力ポート3Aより、演算データが演算
器へ入力され、各ステージ毎(5a,5b,5c、6
a,6bまたは31a,31b,31c)に所定の演算
処理が行なわれる。MAC用演算器5では、データが入
力されてから3サイクル目で演算が終了し、その後、4
サイクル目で演算結果書き込み用のセレクタ7を経由
し、汎用レジスタ3へ演算結果の書き込みが行なわれ
る。
【0059】一方、DIV用演算器6では、データが入
力されてから6サイクル目で演算が終了し、7サイクル
目でDIV演算器6の演算結果を一時保存レジスタ8に
書き込む。また、MUL用演算器31では、5サイクル
で演算が終了し、その演算結果を6サイクル目に一時保
存レジスタ32に書き込む。
【0060】各一時保存レジスタ8,32に書き込まれ
た演算結果は、MAC用演算器において実行された演算
結果を汎用レジスタ3へ書き込むタイミングと同じタイ
ミングで、汎用レジスタ3に書き込まれる。なお、演算
命令は、演算器が違うものに対して2つ以上同時に発行
されないものである。
【0061】また、本実施形態の命令シーケンス1の内
容としては、「MAC−a」、「MAC−b」、「DI
V−a」、「MAC−c」、「MAC−d」、「MAC
−e」、「MAC−f」、「M/D−a」、「MAC−
g」、「MAC−h」、「MAC−i」、「D/M−
a」の順で構成されている。ここで、「MAC−a」,
「MAC−b」,…,「MAC−i」は、全て共通の命
令であり、MAC用演算器5にて演算を実行し汎用レジ
スタ3へ書き込む命令である。また、「DIV−a」は
DIV用演算器6を用いて演算を実行する命令であり、
「M/D−a」は、DIV用演算器6の一時保存レジス
タ8に保存された演算結果を汎用レジスタ3へ書き込む
と共に、MUL用演算器31の演算を開始する命令であ
る。さらに、「D/M−a」は、MUL用演算器31の
一時保存レジスタ32に保存された演算結果を汎用レジ
スタ3へ書き込むと共に、DIV用演算器6の次の演算
を開始する命令である。
【0062】図4は、図3に示す装置の命令実行のパイ
プラインを示す図である。
【0063】デコーダ2で「MAC−a」,「MAC−
b」が順次発行されると(サイクル#1,#2)、MA
C用演算器5において、ステージE1(5a)、ステー
ジE2(5b)、ステージE2(5c)の順で3サイク
ルの演算が行なわれる。その演算結果は、セレクタ7を
経て演算開始から4サイクル目(#5)に汎用レジスタ
3へ書き込まれる(ライトバックステージ41)。この
演算命令はパイプライン化されており、これを図4のパ
イプラインで表わすと、#1から#6のサイクル期間T
5で示すように実行される。
【0064】一方、DIV演算は、デコーダ2に「DI
V−a」命令(43)が入力されると、この「DIV−
a」命令は、DIV演算器6のステージE1(6a)に
おいて演算を実行する(42)。なお、このときは「D
IV−a」以前にDIV演算が行なわれていないため、
一時保存レジスタ8から汎用レジスタ3への演算結果書
き込み命令は不要となる。また、DIV演算命令(
)が発行されると、MAC用演算器5では各ステージ
E1〜E3に1サイクル分の演算動作が行なわれない空
白(44)が生じ、その結果、ライトバックステージに
ついても1サイクルの空白(45)が生ずる。
【0065】DIV用演算器6のステージE1(6a)
での演算実行時間T6は5サイクルであり、続いてステ
ージE2(6b)へ実行ステージが移る(46)。その
演算が終了すると、一時保存レジスタ8への書き込みが
行なわれ、その結果は次の演算結果が書き込まれるまで
保存される(47)。
【0066】次の「M/D−a」命令(48)では、
「DIV−a」命令(43)の演算結果を一時保存レジ
スタ8より汎用レジスタ3へ書き込むと共に(49,5
1)(実際に汎用レジスタ3へ書き込まれるのは「M/
D−a」命令開始後4サイクル目(#12)、MUL
用演算器31においてMUL演算を開始する(50)。
【0067】また、サイクル#11で発行される「D/
M−a」命令(52)は、「MUL−a」の演算結果を
一時保存レジスタ32より汎用レジスタ3へ書き込む
(53)と共に次のDIV演算(54)を開始させるこ
とができる。
【0068】このように、演算実行時間の異なる3種類
の演算器で構成した本実施形態でも、上記第1実施形態
と同様の利点を得ることができるほか、演算を行う上で
のオペランドとして必要なデータ交換が容易となる。
【0069】
【発明の効果】以上詳細に説明したように、本発明によ
れば、新しい命令方式を用い、演算結果を一時保存レジ
スタに保存することにより、演算時間の異なる複数の命
令の書き込みタイミングを同じサイクルに合わせること
ができる。従って、複数の演算器の書き込みのコンフリ
クトが回避でき、しかも従来のようなストールが必要な
く実行可能となる。これにより、演算に必要な演算実行
サイクル数が減り、装置の性能が向上するという効果が
得られる。
【0070】また、数種類の中の任意の演算器実行と、
各一時保存レジスタの中の任意のレジスタから汎用レジ
スタへの書き込みが可能であるため、演算を行う上での
オペランドとして必要なデータ交換を容易に行うことが
可能となる。
【図面の簡単な説明】
【図1】本発明の実施形態に係るデータ処理装置の構成
を示すブロック図である。
【図2】図1に示す装置の命令実行のパイプラインを示
す図である。
【図3】本発明の実施形態に係るデータ処理装置の構成
を示すブロック図である。
【図4】図3に示す装置の命令実行のパイプラインを示
す図である。
【図5】従来のデータ処理装置の構成を示すブロック図
である。
【図6】図3に示す装置においてコンフリクトが起きた
例を示すパイプライン図である。
【図7】従来のコンフリクトを回避した例を示すパイブ
ライン図である。
【符号の説明】
1 命令シーケンス 2 デコーダ 3 汎用レジスタ 4 ラッチ回路 5 MAC用演算器 6 DIV用演算器 7 セレクタ 8,32 一時保存レジスタ 31 MUL用演算器 S1,S2 制御信号
フロントページの続き (72)発明者 国松 敦 神奈川県川崎市幸区堀川町580番1号 株式会社東芝 半導体システム技術セン ター内 (72)発明者 井出 進博 神奈川県川崎市幸区小向東芝町1 株式 会社東芝 研究開発センター内 (56)参考文献 特開 昭63−20537(JP,A) 特開 平3−157722(JP,A) 特開 平7−244588(JP,A) 特開 平9−212660(JP,A) 特開 平9−270017(JP,A) 特開 平9−270024(JP,A) 特開 平9−212658(JP,A) 特開 平7−191833(JP,A) 特開 平6−290030(JP,A) 松原玄宗ほか2名,非同期回路を用い た高速除算/平方根演算器の設計,電子 情報通信学会論文誌D−I 情報・シス テムI−コンピュータ,社団法人電子情 報通信学会,1997年 3月25日,第J80 −D−I巻第3号,p.197−206 照山竜生ほか4名,PS2はトロイの 木馬 6.2GFLOPSのマイクロプ ロセサを開発,日経エレクトロニクス, 日経BP社,1999年10月 4日,第735 号,p.138−145 (58)調査した分野(Int.Cl.7,DB名) G06F 9/38 G06F 9/30 G06F 17/00 - 17/18 G06F 7/00 - 7/52 G06T 1/20

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】 演算データを格納する汎用レジスタ部
    と、 前記汎用レジスタ部より読み出されたデータを用いて
    1の所定の演算を行い、その演算結果を前記汎用レジス
    タ部へ所定のサイクル後出力する第1の演算部と、 前記汎用レジスタ部より読み出されたデータを用いて
    2の所定の演算を行い、その演算結果を前記第1の演算
    部より長いサイクル後出力する第2の演算部と、 前記第2の演算部より出力された演算結果を一時保存す
    一時保存レジスタとを備え、前記第2の演算器に発行された先行する第1の命令によ
    る前記一時保持レジスタ中の演算結果は、該第2の演算
    器に対する次の第2の命令によって、前記汎用レジスタ
    部に書き込むことを特徴とするデータ処理装置。
  2. 【請求項2】 前記第2の演算部での演算実行開始か
    ら、前記一時保存レジスタに書き込まれている該演算実
    行直前の演算結果を前記汎用レジスタへ書き込むまでの
    サイクル数を、前記第1の演算部において演算実行開始
    からその演算結果を前記汎用レジスタに書き込むまでの
    サイクル数と同じにしたことを特徴とする請求項に記
    載のデータ処理装置。
  3. 【請求項3】 演算データを格納する汎用レジスタ部
    と、 前記汎用レジスタ部より読み出されたデータを用いて
    1の所定の演算を行い、その演算結果を前記汎用レジス
    タ部へ第1の所定のサイクル後出力する第1の演算部
    と、 前記汎用レジスタ部より読み出されたデータを用いて
    2の所定の演算を行い、その演算結果を第2の所定のサ
    イクル後出力する第2の演算部と、 前記汎用レジスタ部より読み出されたデータを用いて
    3の所定の演算を行い、その演算結果を第3の所定のサ
    イクル後出力する第3の演算部と、 前記第2の演算部より出力された演算結果を一時保存す
    る第1の一時保存レジスタと、 前記第3の演算部より出力された演算結果を一時保存す
    る第2の一時保存レジスタとを備え、前記第2または第3の演算器に発行された先行する第1
    の命令による前記第1または第2の一時保持レジスタ中
    の演算結果は、該第2または第3の演算器に対する次の
    第2の命令によって、前記汎用レジスタ部に書き込むこ
    とを特徴とするデータ処理装置。
  4. 【請求項4】 演算データを格納する汎用レジスタ部
    と、前記汎用レジスタより読み出されたデータを用い
    1の所定の演算を行い、その演算結果を前記演算データ
    として前記汎用レジスタ部へ所定のサイクルで出力する
    第1の演算部と、前記汎用レジスタより読み出されたデ
    ータを用い第2の所定の演算を行い、その演算結果を前
    記演算データとして前記汎用レジスタ部へ前記第1の演
    算部より長いサイクルで出力する第2の演算部とを有
    し、前記第1と第2の演算部の演算実行開始サイクルが
    異なるデータ処理装置において、 前記第2の演算部の演算結果を一時保存するための一時
    保存レジスタを設け、前記一時保存レジスタに書き込まれた演算結果は、前記
    第2の演算部に対して次の演算命令が発行されたときか
    ら、 前記第1の演算部と同じ前記汎用レジスタへの書き
    込みタイミングを経て、前記汎用レジスタに書き込むこ
    とを特徴とするデータ処理装置。
  5. 【請求項5】 前記一時保存レジスタに書き込まれる前
    記第2の演算部の演算結果は、該第2の演算部に対する
    1つ前の演算命令の実行によって得られたデータであ
    り、 前記第2の演算部に対する演算命令の発行に基づいて生
    成される空白サイクルで前記一時保存レジスタ中のデー
    タを前記汎用レジスタに書き込み、前記第2の演算部の
    次の演算を開始することを特徴とする請求項に記載の
    データ処理装置。
JP01790796A 1996-02-02 1996-02-02 データ処理装置 Expired - Fee Related JP3435278B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP01790796A JP3435278B2 (ja) 1996-02-02 1996-02-02 データ処理装置
US08/792,733 US5895498A (en) 1996-02-02 1997-01-31 Arithmetic processor which latches data in a temporary register before the data is latched in a general purpose register

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP01790796A JP3435278B2 (ja) 1996-02-02 1996-02-02 データ処理装置

Publications (2)

Publication Number Publication Date
JPH09212360A JPH09212360A (ja) 1997-08-15
JP3435278B2 true JP3435278B2 (ja) 2003-08-11

Family

ID=11956826

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01790796A Expired - Fee Related JP3435278B2 (ja) 1996-02-02 1996-02-02 データ処理装置

Country Status (2)

Country Link
US (1) US5895498A (ja)
JP (1) JP3435278B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6092167A (en) * 1998-03-20 2000-07-18 Lsi Logic Corporation Robust interface for high speed memory access
US20020016597A1 (en) * 2000-08-02 2002-02-07 Dwyer Clifford J. Delivery apparatus for a self-expanding stent
JP2006048661A (ja) * 2004-07-06 2006-02-16 Matsushita Electric Ind Co Ltd プロセッサとコプロセッサとの間でのデータ転送を制御する演算処理装置
JP2006228121A (ja) * 2005-02-21 2006-08-31 Toshiba Corp 演算処理装置
GB2458487B (en) * 2008-03-19 2011-01-19 Imagination Tech Ltd Pipeline processors
JP5593975B2 (ja) 2010-08-30 2014-09-24 富士通セミコンダクター株式会社 画像処理装置、画像処理方法、及びスケジューリング装置
US10061580B2 (en) * 2016-02-25 2018-08-28 International Business Machines Corporation Implementing a received add program counter immediate shift (ADDPCIS) instruction using a micro-coded or cracked sequence
CN111857823A (zh) * 2020-07-15 2020-10-30 北京百度网讯科技有限公司 用于写回指令执行结果的装置和方法、处理装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4124890A (en) * 1977-06-20 1978-11-07 Vasenkov Alexandr A Microprocessor computing system
JPS58106636A (ja) * 1981-12-18 1983-06-25 Hitachi Ltd パイプライン演算装置
US5367691A (en) * 1991-04-15 1994-11-22 Motorola, Inc. Pipe-staggered apparatus and method utilizing carry look-ahead signal processing
JPH0612229A (ja) * 1992-06-10 1994-01-21 Nec Corp 乗累算回路
US5771366A (en) * 1995-06-09 1998-06-23 International Business Machines Corporation Method and system for interchanging operands during complex instruction execution in a data processing system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
松原玄宗ほか2名,非同期回路を用いた高速除算/平方根演算器の設計,電子情報通信学会論文誌D−I 情報・システムI−コンピュータ,社団法人電子情報通信学会,1997年 3月25日,第J80−D−I巻第3号,p.197−206
照山竜生ほか4名,PS2はトロイの木馬 6.2GFLOPSのマイクロプロセサを開発,日経エレクトロニクス,日経BP社,1999年10月 4日,第735号,p.138−145

Also Published As

Publication number Publication date
US5895498A (en) 1999-04-20
JPH09212360A (ja) 1997-08-15

Similar Documents

Publication Publication Date Title
CN112099762A (zh) 快速实现sm2密码算法的协处理系统及方法
JP3435278B2 (ja) データ処理装置
JP2002163127A (ja) トレース制御回路
JP3579843B2 (ja) ディジタル信号処理装置
US6016541A (en) Instruction controlling system and method thereof
JP2690406B2 (ja) プロセッサおよびデータ処理システム
JPH0916409A (ja) マイクロコンピュータ
JPS60178580A (ja) 命令制御方式
JP2001117886A (ja) プロセッサ及びプロセッサシステム
JPH07219766A (ja) 演算処理装置
JP2929980B2 (ja) 情報処理装置
JP2668987B2 (ja) データ処理装置
JP2812610B2 (ja) パイプライン制御方式
JP2824484B2 (ja) パイプライン処理計算機
JP5185478B2 (ja) パイプライン処理方法並びにその方法を利用するパイプライン処理装置
JP3520372B2 (ja) メモリ制御ユニット並びに入出力制御ユニットの動作におけるクリティカル・パスの削除
JP2806690B2 (ja) マイクロプロセッサ
JPH08272608A (ja) パイプライン処理装置
JPH02301830A (ja) 情報処理方式
JP3743155B2 (ja) パイプライン制御型計算機
JP3134811B2 (ja) データ処理装置
JP3124361B2 (ja) メモリデータロード装置
JP2763450B2 (ja) パイプライン処理データ処理装置
WO2000065452A1 (en) Pipelined access to single ported cache
JPH05250161A (ja) マイクロコンピュータ装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20030513

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

Free format text: PAYMENT UNTIL: 20090530

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees