JPH0222736A - 中央処理装置 - Google Patents

中央処理装置

Info

Publication number
JPH0222736A
JPH0222736A JP17343688A JP17343688A JPH0222736A JP H0222736 A JPH0222736 A JP H0222736A JP 17343688 A JP17343688 A JP 17343688A JP 17343688 A JP17343688 A JP 17343688A JP H0222736 A JPH0222736 A JP H0222736A
Authority
JP
Japan
Prior art keywords
register
calculation
instruction
arithmetic
information
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
JP17343688A
Other languages
English (en)
Inventor
Eiji Tanitsu
谷津 英司
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP17343688A priority Critical patent/JPH0222736A/ja
Publication of JPH0222736A publication Critical patent/JPH0222736A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は中央処理装置に関し、特に電子計算機等の各種
ディジタル情報処理装置内で使用される中央処理装置に
関する。
〔従来の技術〕
従来、この種の中央処理装置では、命令処理能力を向上
するための典型的な1手法としてバイブライン制御方式
が採用されている。
バイブライン制御方式が採用される中央処理装置では、
例えば命令実行の手順が実行時間をτとするn(正整数
)個のフェーズに分割されて命令が実行される。これに
より、最初の命令の実行結果(演算命令の演算結果等)
は時間rnxτ」の後にしか得られないが、時間「τ」
毎に命令の実行を開始するように運用すれば最終的には
時間「τ」毎に各命令の実行結果を得ることができる。
さらに、パイプライン制御方式における演算命令の実行
フェーズの実質的な短縮(実質的な演算命令の実行時間
の短縮)のための手法としては、複数の演算機能ブロッ
クを設けて複数の演算命令の実行フェーズを同時に進行
させる方式(複数の演算機能ブロックが同時に動作し得
るパイプライン制御方式)が採用されている。
〔発明が解決しようとする課題〕
上述した従来の中央処理装置(複数の演算機能ブロック
が同時に動作し得るパイプライン制御方式が採用される
中央処理装置)では、演算命令の実行フェーズがn (
/ji算実行時間が「nXτ」)の先行する演算命令へ
と演算実行フェーズがm(正整数)(演算実行時間が「
m×τ」)の後続する演算命令Bとがそれぞれの演算命
令によって使用される演算機能ブロックで別個に実行さ
れる場合に、n>mのときには演算命令Aよりも先に演
算命令Bが終了し演算命令Bの演算結果が命令仕様に基
づいた演算レジスタに書き込まれるということが生しる
このような場合には、演算命令Aの実行中に演算例外や
ハードウェアの故障が発生したときの命令再試行時にお
いてfi算命令Aの演算データが演算命令Bの実行によ
り変更されていることがあるので、命令再試行を正しく
行うことができないケースが起こり得るという欠点があ
る。
また、演算命令への演算結果が書き込まれる演算レジス
タと演算命令Bの演算結果が書き込まれる演算レジスタ
とが同一の演算レジスタである場合には、演算命令Aお
よびBを含むプログラムの実行の正当性を保つために演
算命令Aの実行の終了を待ってから演算命令Bはその演
算結果の転送(演算レジスタへの書込み等)を行わなけ
ればならないので、演算命令Bにより使用されている演
算機能ブロックはその転送が終了するまでは待ち状態に
なってしまい、演算機能ブロックの遊休時間が大きくな
るという欠点がある。
本発明の目的は、上述の点に迄み、複数の演算機能ブロ
ックが同時に動作し得るパイプライン制御方式が採用さ
れる中央処理装置において、演算例外やハードウェアの
故障が発生した場合の命令再試行を常に正確に行うこと
ができ、演算機能ブロックの遊休時間を少なくできる中
央処理装置を提供することにある。
〔課題を解決するための手段〕
本発明の中央処理装置は、各演算命令の演算結果を書き
込む演算レジスタのレジスタコードをプログラム上の命
令実行順序に基づき記憶するレジスタコード記憶部と、
このレジスタコード記憶部へのレジスタコードの書込み
アドレスを持回り情報として演算機能ブロックにおける
実行フェーズの進行とともに持ち回る持回り手段と、演
算機能ブロックからの演算命令の演算結果とその演算結
果に対応する前記持回り手段からの持回り情報とを保持
するレジスタ対と、このレジスタ対に保持されている演
算結果および演算機能ブロックからの演算結果の中から
プログラム上の命令実行1111j序に則って演算レジ
スタに書き込むべき演算結果を前記レジスタ対に保持さ
れている持回り情報等に基づき選択する選択手段とを有
する。
〔作用〕
本発明の中央処理装置では、レジスタコード記憶部が各
演算命令の演算結果を書き込む演算レジスタのレジスタ
コードをプログラム上の命令実行順序に基づき記憶し、
持回り手段がレジスタコード記憶部へのレジスタコード
の書込みアドレスを持回り情報として演算機能ブロック
における実行フェーズの進行とともに持ち回り、レジス
タ対が演算機能ブロックからの演算命令の演算結果とそ
の演算結果に対応する持゛回り手段からの持回り情報と
を保持し、選択手段がレジスタ対に保持されている演算
結果および演算機能ブロックからの演算結果の中からプ
ログラム上の命令実行順序に則って演算レジスタに書き
込むべき演算結果をレジスタ対に保持されている持回り
情報等に基づき選択する。
〔実施例〕
次に、本発明について図面を参照して説明する。
第1図は、本発明の中央処理装置の一実施例の構成を示
すブロック図である。本実施例の中央処理装置は、命令
情報レジスタ1−1.1−2.・・・1−h (IRl
、IR2,・・・、1Rh)  (hは正整数)と、レ
ジスタ4−1  (RCW)および4−2 (RCR)
と、レジスタコード記tα部5と、演算レジスタ群6と
、比較回路7−1.・・・、77−m7−(+l)と、
デコーダ8−1  (DECI)および8−2  (D
EC2)と、セレクタ9と、加算回路10−1および1
0−2と、演算機能ブロック11−1.11−2.−、
11−n (演算部1.演算部2、・・・、演算部n)
と、持回り情報レジスタ211、−、21− i、 2
2−1.−、22  j、 ・=、 2n1、−、2n
−k (El  1.−、 El −t、  R2−1
,・−・、R2−j、−、En−1,−、Enk)(i
、jおよびkは正整数)と、演算結果データレジスタ3
1 1.−、3m −1(D 1.−、  Dm)と、
持回り情報レジスタ31−2.  ・・・、3m−2(
R51,−、R5m)と、状態レジスタ31−3゜3m
−3(Vl、−、Vm)とを含んで構成されている。
命令情報レジスタ1−1.l−2,・・・、1−hは、
前処理フェーズ中の各フェーズにおいて使用されるレジ
スタである(最終フェーズに係る命令情報レジスタ1−
hにおいて、演算命令の演算結果が書き込まれる演算レ
ジスタ群6内の演算レジスタが指定される)。
レジスタ4−1は、レジスタコード記te部5の書込み
アドレスを保持するレジスタである。
レジスタ4−2は、レジスタコード記憶部5の読出しア
ドレスを保持するレジスタである。
レジスタコード記憶部5は、デコーダ8−1により作成
されたレジスタコードを演算命令の命令実行順(プログ
ラム上の命令実行順)に記憶する。
比較回路7−1. ・=、  7−m、  7−(m+
1)は、持回り情報レジスタ31−2.・・・、3m−
2中の持回り情報(比較回路?−(m+1)の場合には
演算機能ブロック11−1.11−2. ・”、 11
−nに対応する持回り情報レジスタ21− i、 22
−j、・・・2n−kから送られてきたばかりの持回り
情報)とレジスタ4−2の内容とを比較する。
デコーダ8−1 (第1の形式のデコーダ)は、前処理
フェーズの最終フェーズに係る命令情報レジスタ1−h
の情報に基づいて演算レジスタ群6中のどの演算レジス
タに演算結果を書き込むかを示すレジスタコード(演算
レジスタ群6中のアドレス等の演算レジスタの識別情報
)を作成する。
デコーダ8−2 (第2の形式のデコーダ)は、比較回
路7−1.−、 7−m、  ? −(m+1)・によ
る比較結果に基づいて次に演算レジスタ群6内の演算レ
ジスタに書き込むべき演算結果をセレクタ9に選択させ
るためのセレクトコードおよび状態レジスタ31−3.
・・・、3m−3へのセット/リセット信号を生成する
(比較回路7−1.・・・、7m、  7− (m+1
) 、デコーダ8−2およびセレクタ9により選択手段
が実現されている)。
加算回路l0−1は、各演算命令の実行フェーズの開始
毎にレジスタ4−1の内容に1を加算して更新する。
加算回路10−2は、演算レジスタ群6への演算命令の
演算結果の書込み毎にレジスタ4−2の内容に1を加算
して更新する。
演算機能ブロック11 1.11−2.−、11−nは
、パイプライン化された演算機能ブロックである(演算
機能ブロック11−1はi個の実行フェーズに分割され
、演算機能ブロック11−2はj個の実行フェーズに分
割され、演算機能ブロック11−nはに個の実行フェー
ズに分割されてパイプライン化されている)。
持回り情報レジスタ21−1.・・・、 21− i、
 221、 ・=、 22  j、 −、2n −1,
−、2n−には、演算機能ブ07り11−1.11−2
.−、11−n中の各実行フェーズに対応して持回り情
報(デコーダ8−1によって生成されたレジスタコード
のレジスタコード記憶部5への書込みアドレスからなる
)を持ち回る(演算命令の実行の進行に付随させて情報
を移行して保持する)ためのレジスタである(持回り情
報レジスタ21−1、・・・、21−i、221、−、
22− j、 −、2n −1,−、2n −kの全て
によって持回り手段が実現されている)。
演算結果データレジスタ31−1.・・・、3m−1は
、演算機能ブロック11−1.11−2.−、11−n
からの演算結果のデータを保持するためのレジスタであ
る。
持回り情報レジスタ31.−2.・・・、3m−2は、
演算結果データレジスタ31−1.・・・、3m−1に
対応しており、演算機能ブロック11−1.11−2.
・・・11−nに対応する持回り情報レジスタ21−i
、22j、・・・、2n−k(最終の実行フェーズに係
る持回り情報レジスタ)からの持回り情報を保持するた
めのレジスタである(演算結果データレジスタ31−1
.・・・、3m−1と持回り情報レジスタ31−2・・
・、3m−2とは対をなしてレジスタ対31.・・・、
 3mを構成している)。
状態レジスタ31−3.・・・、3m−3は、演算結果
データレジスタ31−1.・・・、3n−1に対応して
おり、レジスタ対31.・・・、 3mの使用状態を表
示するためのフリップフロップであり、レジスタ対31
゜・・・、 3mが使用中のときには「1」がセットさ
れてレジスタ対31.・・・、 3mが未使用中のとき
には「O」がセットされる。
次に、このように構成された本実施例の中央処理装置の
動作について説明する。
演算命令の実行が前処理フェーズから実行フェーズに移
行する際に、デコーダ8−1は命令情報レジスタ1−h
の情報に基づいて当該演算命令の演算結果を書き込む演
算レジスタ群6内の演算レジスタのレジスタコードを生
成する。
生成されたレジスタコードは、その時点におけるレジス
タ4−1の値(加算回路10−1により漸次加算されて
いる値)を書込みアドレスとするレジスタコード記憶部
5内の領域に書き込まれる。
このときのレジスタコード記憶部5への書込みアドレス
が当該演算命令の持回り情報となり、この持回り情報が
当該演算命令により使用される演算機能ブロック1l−
a(1≦a≦n)に対応する持回り情報レジスタ2a−
1(最初の実行フェーズに係る持回り情報レジスタ)に
セットされて演算の実行とともに(実行フェーズの進行
にともなって)持ち回られる。
当該演算命令の実行の終了後には、演算機能ブロック1
1−aから出力される演算結果とともに、当該演算命令
の持回り情報が持回り情報レジスタ2a−1<演算機能
ブロックliaの実行フェーズのフェーズ数は! (正
整数)とする)から出力される。そうすると、その持回
り情報は、比較回路?−(m+1)に入力されて次に演
算結果を書き込むべき演算レジスタ群6内の演算レジス
タのレジスタコードが記憶されているレジスタコード記
憶部5内の領域のアドレス(読出しアドレス)を示して
いるレジスタ4−2の内容と比較される。
この比較において両者が一致する場合(先行する他の演
算命令の演算結果の演算レジスタ群6への書込みが終了
している場合)には、当該演算命令の演算結果は直ちに
演算レジスタ群6内の所定の演算レジスタ(持回り情報
により示される演算レジスタ)に書き込まれる。
一方、上述の比較において両者が一致しない場合(先行
する他の演算命令の実行がまだ完了していない場合)に
は、当該演算命令の演算結果および持回り情報は未使用
状態のレジスタ対3b(1≦b≦m)に書き込まれ、状
態レジスタ3b−3が「l」にセットされる。
その後、先行する演算命令の演算結果の演算レジスタ群
6への書込みが終了し、レジスタ4−2の内容が加算回
路l0−2により更新され、比較回路7−bにおける比
較においてレジスタ4−2の内容と持回り情報レジスタ
3b−2に保持されている持回り情報とが一致した時点
で、演算結果データレジスタ3b−1の内容(演算結果
)が演算レジスタ群6内の所定の演算レジスタに書き込
まれる。
以上のような動作により、演算命令の実行が終了する順
序にかかわらず演算レジスタ群6内の演算レジスタは常
にプログラム上の命令実行順序に基づいて更新されるこ
とになる。
〔発明の効果〕
以上説明したように本発明は、複数の演算機能ブロック
が同時に動作し得るパイプライン制御方式が採用される
中央処理装置において、演算命令の実行終了の順序にか
かわらずプログラム上の命令実行順序に基づく演算レジ
スタの更新が保証されることにより、演算例外やハード
ウェアの故障が発生した場合の命令再試行を常に正確に
行うことができるという効果がある。
また、このことにより、同一の演算レジスタに演算結果
を書き込む複数の演算命令の同時実行においてプログラ
ムの実行の正当性を保証するために後続する演算命令が
先行する演算命令の終了を待つという必要がなくなって
、情報処理資源としての演算機能ブロックの遊休時間を
少なくできるという効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例の構成を示すブロック図であ
る。 図において、 1−1.12.・・・、■−h ・命令1ff報レジスタ、 4−1.4−2・・・レジスタ、 5・・・・・・・・・レジスフコード記19部、6・・
・・・・・・・演算レジスタ群、7−1.・・・、7−
m、? −(m+1)・・・・・・・・・比較回路、 8−1.8−2・・・デコーダ、 9・・・・・・・・・セレクタ、 10−1.lo−2・ ・ 111、ll−2,・・・。 1、・・・、21−i。 2n−k  ・ 311・ ・ ・ ・ ・・・、3m−1 ・・・、3m−2 ・・・、3+*−3 2n−1゜ 31、・・・。 3+、−1゜ 31−2゜ 31−3゜ ・加算回路、 1−n ・演算機能ブロック、 22−1.・・・、22− j、、、。 ・持回り情報レジスタ、 ・レジスタ対、 ・演算結果データレジスタ、 ・持回り情報レジスタ、 ・状態レジスタである。

Claims (1)

  1. 【特許請求の範囲】 各演算命令の演算結果を書き込む演算レジスタのレジス
    タコードをプログラム上の命令実行順序に基づき記憶す
    るレジスタコード記憶部と、このレジスタコード記憶部
    へのレジスタコードの書込みアドレスを持回り情報とし
    て演算機能ブロックにおける実行フェーズの進行ととも
    に持ち回る持回り手段と、 演算機能ブロックからの演算命令の演算結果とその演算
    結果に対応する前記持回り手段からの持回り情報とを保
    持するレジスタ対と、 このレジスタ対に保持されている演算結果および演算機
    能ブロックからの演算結果の中からプログラム上の命令
    実行順序に則って演算レジスタに書き込むべき演算結果
    を前記レジスタ対に保持されている持回り情報等に基づ
    き選択する選択手段を有することを特徴とする中央処理
    装置。
JP17343688A 1988-07-12 1988-07-12 中央処理装置 Pending JPH0222736A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17343688A JPH0222736A (ja) 1988-07-12 1988-07-12 中央処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17343688A JPH0222736A (ja) 1988-07-12 1988-07-12 中央処理装置

Publications (1)

Publication Number Publication Date
JPH0222736A true JPH0222736A (ja) 1990-01-25

Family

ID=15960432

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17343688A Pending JPH0222736A (ja) 1988-07-12 1988-07-12 中央処理装置

Country Status (1)

Country Link
JP (1) JPH0222736A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6647485B2 (en) 1991-07-08 2003-11-11 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US7028161B2 (en) 1991-07-08 2006-04-11 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution and concurrent results distribution

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6647485B2 (en) 1991-07-08 2003-11-11 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US6915412B2 (en) 1991-07-08 2005-07-05 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US6934829B2 (en) 1991-07-08 2005-08-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US6986024B2 (en) 1991-07-08 2006-01-10 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US7028161B2 (en) 1991-07-08 2006-04-11 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution and concurrent results distribution
US7555632B2 (en) 1991-07-08 2009-06-30 Seiko Epson Corporation High-performance superscalar-based computer system with out-of-order instruction execution and concurrent results distribution
US7941635B2 (en) 1991-07-08 2011-05-10 Seiko-Epson Corporation High-performance superscalar-based computer system with out-of order instruction execution and concurrent results distribution

Similar Documents

Publication Publication Date Title
EP0087978B1 (en) Information processing unit
US4187539A (en) Pipelined data processing system with centralized microprogram control
US4016545A (en) Plural memory controller apparatus
EP0437044B1 (en) Data processing system with instruction tag apparatus
JP2539199B2 (ja) デジタルプロセッサ制御装置
EP0205809B1 (en) Vector processing
US5155817A (en) Microprocessor
US5604912A (en) System and method for assigning tags to instructions to control instruction execution
JPS61107434A (ja) デ−タ処理装置
JPS5911943B2 (ja) デ−タ処理装置の為のトラツプ機構
JPH0353328A (ja) レジスタ退避回復方法ならびに処理装置
US5802359A (en) Mapping processor state into a millicode addressable processor state register array
JP2653037B2 (ja) データ処理システム
JPH10301778A (ja) レジスタの名前変更を管理する方法および装置
JPH03286332A (ja) デジタルデータ処理装置
JPH0222736A (ja) 中央処理装置
EP0374598B1 (en) Control store addressing from multiple sources
US5784606A (en) Method and system in a superscalar data processing system for the efficient handling of exceptions
EP0257650B1 (en) Microprocessor
JPH09138748A (ja) 浮動小数点命令の早期完了方法および装置
US20040123073A1 (en) Data processing system having a cartesian controller
JPS61288230A (ja) パイプライン制御方式
JPH0377137A (ja) 情報処理装置
JP3526773B2 (ja) マルチプロセッサ装置およびその制御方法
JPH03263265A (ja) ベクトル処理装置