JP3132566B2 - 命令先行制御装置 - Google Patents

命令先行制御装置

Info

Publication number
JP3132566B2
JP3132566B2 JP01223974A JP22397489A JP3132566B2 JP 3132566 B2 JP3132566 B2 JP 3132566B2 JP 01223974 A JP01223974 A JP 01223974A JP 22397489 A JP22397489 A JP 22397489A JP 3132566 B2 JP3132566 B2 JP 3132566B2
Authority
JP
Japan
Prior art keywords
register
instruction
stored
registers
work
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
JP01223974A
Other languages
English (en)
Other versions
JPH0385636A (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.)
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 JP01223974A priority Critical patent/JP3132566B2/ja
Publication of JPH0385636A publication Critical patent/JPH0385636A/ja
Application granted granted Critical
Publication of JP3132566B2 publication Critical patent/JP3132566B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Description

【発明の詳細な説明】 技術分野 本発明は情報処理システムで用いられる命令先行制御
装置に関する。
従来技術 従来の情報処理システムでは、レジスタ設定命令の指
定する演算数が命令実行装置に送る前に取込まれ、該演
算数に論理または算術演算が実施される。演算装置は、
レジスタ設定命令を実行すれば得られるべきレジスタへ
の書込データを、命令実行装置の実行の完了を待つこと
なく生成する。この演算装置の演算結果を格納するワー
クレジスタは、レジスタ設定命令で指定する可能性のあ
るレジスタと同数の数だけ備えられている。このため、
多くのレジスタは有効なデータを保持しておらずハード
ウェア量の肥大化を招いているという欠点がある。
発明の目的 本発明の目的はワークレジスタのハードウェア量を削
減するようにした命令先行制御装置を提供することであ
る。
発明の構成 本発明による命令先行制御装置は、レジスタ設定命令
のレジスタの設定動作と他の命令の読出動作とが競合し
た場合、該レジスタ設定命令の指定する演算数を命令実
行装置に送る前に取り込み、該演算数に演算を施し前記
レジスタ設定命令の実行により得られるレジスタへの書
き込みデータを該命令実行装置の実行の完了を待つこと
なく生成するとともに、前記レジスタ設定命令の実行に
より得られる書き込みデータを必要とする後続の命令の
アドレス計算を行うアドレス生成手段と、このアドレス
生成手段により行われるアドレス計算に使用されるレジ
スタ数よりも少なく前記アドレス生成手段の演算結果を
格納する複数のワークレジスタ手段と、前記各ワークレ
ジスタ手段への前記演算結果の格納の有無を示すデータ
が格納される第1のレジスタと、前記レジスタ設定命令
が更新するレジスタ番号が格納される第2のレジスタ
と、前記第2のレジスタに格納されたレジスタ番号と後
続の命令が指定するレジスタ番号とが一致するか否かを
判別する判別手段と、前記判別手段の判別結果が一致を
示した場合に前記第1のレジスタに格納されたデータを
参照して前記ワークレジスタ手段に格納されている演算
結果を取り出して前記後続の命令の演算に使用する手段
と、前記複数のワークレジスタ手段のうちパイプライン
の後段により早く遷移した命令による演算結果を格納す
るものの内容を消去して新たな命令による演算結果を格
納させるよう制御する制御手段とを含むことを特徴とす
る。
実施例 次に本発明の一実施例について図面を参照して詳細に
説明する。
第1図を参照すると、本発明の一実施例はアドレス生
成のためのベースアドレスを格納するソフトウェアビジ
ブルなベースレジスタファイル(BR)401、このベース
レジスタファイル401に対するアドレスを格納するベー
スレジスタアドレスレジスタ(BRA)100、アドレス生成
のためのインデックスを格納するソフトウェアビジブル
なインデックスレジスタファイル(GR)402、このイン
デックスレジスタファイル402に対するアドレスを格納
するインデックスレジスタアドレスレジスタ101、命令
語から与えられるディスプレースメントを格納するディ
スプレースメントレジスタ102、このレジスタ102からの
ディスプレースメントを格納するレジスタ105、演算結
果を格納するワークレジスタ109及び110、これらワーク
レジスタ109及び110及びベースレジスタ401からの出力
のいずれか一つを選択するセレクタ300、ワークレジス
タ109及び110及びインデックスレジスタ402からの出力
のいずれか一つを選択するセレクタ301、セレクタ300の
出力を格納するレジスタ103、セレクタ301の出力を格納
するレジスタ104、これらレジスタ103,104及び105から
の出力を演算し論理アドレスを生成するアドレス生成器
400、このアドレス生成器400で生成された論理アドレス
を格納する論理アドレスレジスタ106、このレジスタ106
からの論理アドレスを物理アドレスに変換するアドレス
変換バッファ(以下TLB)403、このTLB403からの物理ア
ドレスを格納する物理アドレスレジスタ107、このレジ
スタ107からのアドレスで指示される位置からオペラン
ドを読出すキャッシュメモリ404、このキャッシュメモ
リ404からのオペランドを格納するオペランドレジスタ1
08、このレジスタ108からのオペランドを演算しベース
レジスタ401及びインデックスレジスタ402に演算結果を
格納する演算論理ユニット(以下ALU)405を含む。
更に、本発明の一実施例は、以上のハードウェア要素
をパイプラインで動作させることを前提とし、レジスタ
更新命令に応答して更新対象のレジスタのレジスタ番号
を該パイプラインと同期して持ち回るレジスタ群119,11
8,117及び116、先行演算において2つのワークレジスタ
109及び110のどちらにデータを格納したかを示す制御情
報を持ち回るレジスタ112,113,114及び115、レジスタ11
9,118,117及び116に格納されたレジスタ番号の示すレジ
スタに対し、ワークレジスタ109及び110のどちらかに先
行演算結果の格納されていることを示す信号を生成する
オアゲート200,201,202及び203、及びワークレジスタ10
9及び110が有効な先行演算結果を示す信号を生成するオ
アゲート204及び205を含む。
上述のパイプラインについて以下詳細に説明する。
Dサイクルは、アドレス生成のため、アドレスレジス
タ100及び101に格納された命令語の索引フィールドの内
容の一部で示されるレジスタ401及び402が索引されると
ともに命令語のディスプレースメントフィールド102の
内容が取出されるサイクルである。
但し、メモリに対するロードリクエストを出さないRI
形式等の場合は、演算対象となるレジスタの内容とイミ
ディエイト値とが取出される。
Aサイクルでは、Dサイクルにおいて取出されたベー
スレジスタ401,インデックスレジスタ402及びディスプ
レースメント部102の内容がアドレス生成器400で生成さ
れることによりアドレス生成が行われる。
但し、メモリに対するロードリクエストを出さないRI
形式等の場合は、レジスタの内容とイミディエイト値と
により先行して演算が行われる。この演算結果はオアゲ
ート215及び216の出力に応答してワークレジスタ109及
び110に格納される、以後、この演算を先行演算と呼
ぶ。
TサイクルではAサイクルで生成されたオペランドア
ドレスがTLB403により物理アドレスに変換されるサイク
ルである。
Oサイクルは、TサイクルでTLB403により生成された
オペランドの物理アドレスでキャッシュメモリ404が索
引されオペランドデータが求められるサイクルである。
EサイクルはOサイクルで索引されたオペランドデー
タを使用して演算が行われレジスタファイル401及び402
に格納されるサイクルである。
本発明の一実施例は先行して演算を行った演算結果を
格納しておく2つのワークレジスタ109及び110が備えら
れている。
レジスタ更新命令の発生に応答して、更新するレジス
タのレジスタ番号がパイプラインと同期してレジスタ11
6〜119で持ち回られる。
先行演算を行った場合、2つのワークレジスタ109及
び110のどちらにデータを格納したかを示す制御情報は
レジスタ112〜115で持ち回られる。ワークレジスタ109
及び110が2つあるため、レジスタ112〜115は2ビット
で夫々構成されている。先行演算結果がワークレジスタ
109に格納されている場合、各レジスタ112〜115の第1
ビット目には“1"が格納されており、ワークレジスタ11
0に格納されている場合は各レジスタの第2ビット目に
は“1"が格納されている。
オアゲート200〜203の出力は各レジスタ119,118,117,
及び116の示すレジスタ番号のレジスタに対してワーク
レジスタ109及び110のどちらかに先行演算結果が格納さ
れていることを示す。
オアゲート204及び205の出力は夫々ワークレジスタ10
9及び110が有効な先行結果を格納していることを示す。
先行演算を行った場合、演算結果をワークレジスタ10
9と110とのどちらに書込むべきかは以下のように制御さ
れる。
オアゲート204の出力が“0"を示す場合、ワークレジ
スタ109は有効な先行演算結果を格納していないため、
先行演算の演算結果がワークレジスタ109に格納され
る。
オアゲート204の出力が“1"でオアゲート205の出力が
“0"の場合は、ワークレジスタ109は有効な先行演算結
果を格納しているが、ワークレジスタ110は有効な先行
演算結果を示していない。このため、先行演算の演算結
果はワークレジスタ110に格納される。アンドゲート214
が“1"の場合は、ワークレジスタ109及び110がともに有
効な先行演算結果を格納していることを意味する。
この状態で先行演算が生じた場合、アンドゲート207
〜213、セレクタ310及びオアゲート215及び216により、
ワークレジスタ109及び110の中で、古い方の先行演算結
果を格納しているワークレジスタに対して、既に格納ず
みの先行演算結果を消去して先行演算の新たな演算結果
が格納される。
これは、先に先行演算の行われた命令の方がパイプラ
インの下の方にあるはずなので、先行演算結果を消去し
てもEステージのALU405より正確な更新データがレジス
タファイル401及び402にすぐに戻ってくるので影響は少
ないためである。
Dステージにおいてレジスタ100及び101に格納されて
いるアドレス生成に必要なレジスタのレジスタ番号が、
レジスタ119,118,117及び116の内容と夫々比較される。
一致していなかった場合には、レジスタファイル401及
び402の出力がレジスタ103及び104にセットされる。一
致していたがオアゲート200〜203とアンドゲート217〜2
20とにより先行演算結果がワークレジスタ109及び110に
格納されていることが判別した場合は、ワークレジスタ
109または110の中で必要とする先行演算結果を格納した
ワークレジスタが、比較回路302〜305、オア回路200〜2
03、アンド回路217〜220及びセレクタ310の指示によ
り、レジスタ103及び104にセットされる。
更にレジスタ100及び101の内容がレジスタ119,118,11
7及び116の内容と比較され、一致していて先行演算結果
が先行していなかった場合、ALU405からレジスタファイ
ル401及び402のアドレス生成に必要なレジスタに対して
更新データの書込が生ずるまでアドレス生成が中断され
る。
後続命令のレジスタ更新命令により先行演算を行った
レジスタのレジスタ番号と同一のレジスタ番号のレジス
タに対して更新指示が行われた場合、比較回路306〜309
により先行演算結果を抹消するためレジスタ112〜115を
夫々初期化する。
このように先行演算の演算結果をワークレジスタ109
及び110に格納した順番を覚えておく手段と、ワークレ
ジスタ109及び110への先行演算結果の格納を先入先出法
で制御することにより、先行演算結果を格納しておくワ
ークレジスタのハードウェア量を縮退できる。
発明の効果 本発明によれば、レジスタ設定命令が指定する演算数
を命令実行装置に送る前に取込み該演算数に論理演算や
算術演算を実施し、このレジスタ設定命令を実行すれば
得られるべき書込データを実行装置の実行に先行して生
成する演算装置での演算結果をどのワークレジスタに格
納したかを判別する判別手段と、ワークレジスタ群への
演算結果の格納を先入先出法で制御する制御手段とを備
えることにより、ワークレジスタ群のハードウェア量を
削減できるという効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例を示す図である。 主要部分の符号の説明 100……ベースレジスタアドレスレジスタBRA 101……インデックスレジスタアドレスレジスタGRA 102……ディスプレースメントレジスタDISP 106……論理アドレスレジスタ 107……物理アドレスレジスタ 108……オペランドレジスタ 109,110……ワークレジスタ 302〜309……比較回路 400……アドレス生成器 401……ベースレジスタファイルBR 402……インデックスレジスタファイルGR 403……アドレス変換バッファTLB 404……キャッシュメモリ 405……演算論理ユニット

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】レジスタ設定命令のレジスタの設定動作と
    他の命令の読出動作とが競合した場合、該レジスタ設定
    命令の指定する演算数を命令実行装置に送る前に取り込
    み、該演算数に演算を施し前記レジスタ設定命令の実行
    により得られるレジスタへの書き込みデータを該命令実
    行装置の実行の完了を待つことなく生成するとともに、
    前記レジスタ設定命令の実行により得られる書き込みデ
    ータを必要とする後続の命令のアドレス計算を行うアド
    レス生成手段と、 このアドレス生成手段により行われるアドレス計算に使
    用されるレジスタ数よりも少なく前記アドレス生成手段
    の演算結果を格納する複数のワークレジスタ手段と、 前記各ワークレジスタ手段への前記演算結果の格納の有
    無を示すデータが格納される第1のレジスタと、 前記レジスタ設定命令が更新するレジスタ番号が格納さ
    れる第2のレジスタと、 前記第2のレジスタに格納されたレジスタ番号と後続の
    命令が指定するレジスタ番号とが一致するか否かを判別
    する判別手段と、 前記判別手段の判別結果が一致を示した場合に前記第1
    のレジスタに格納されたデータを参照して前記ワークレ
    ジスタ手段に格納されている演算結果を取り出して前記
    後続の命令の演算に使用する手段と、 前記複数のワークレジスタ手段のうちパイプラインの後
    段により早く遷移した命令による演算結果を格納するも
    のの内容を消去して新たな命令による演算結果を格納さ
    せるよう制御する制御手段とを含むことを特徴とする命
    令先行制御装置。
JP01223974A 1989-08-30 1989-08-30 命令先行制御装置 Expired - Fee Related JP3132566B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP01223974A JP3132566B2 (ja) 1989-08-30 1989-08-30 命令先行制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP01223974A JP3132566B2 (ja) 1989-08-30 1989-08-30 命令先行制御装置

Publications (2)

Publication Number Publication Date
JPH0385636A JPH0385636A (ja) 1991-04-10
JP3132566B2 true JP3132566B2 (ja) 2001-02-05

Family

ID=16806597

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01223974A Expired - Fee Related JP3132566B2 (ja) 1989-08-30 1989-08-30 命令先行制御装置

Country Status (1)

Country Link
JP (1) JP3132566B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240078035A1 (en) * 2022-09-01 2024-03-07 Arm Limited Write-back rescheduling

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6293540B1 (en) * 1999-11-29 2001-09-25 Diebold, Incorporated Currency dispenser service method
CN107305486B (zh) * 2016-04-19 2020-11-03 中科寒武纪科技股份有限公司 一种神经网络maxout层计算装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0762823B2 (ja) * 1985-05-22 1995-07-05 株式会社日立製作所 デ−タ処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240078035A1 (en) * 2022-09-01 2024-03-07 Arm Limited Write-back rescheduling

Also Published As

Publication number Publication date
JPH0385636A (ja) 1991-04-10

Similar Documents

Publication Publication Date Title
US3949379A (en) Pipeline data processing apparatus with high speed slave store
US4524416A (en) Stack mechanism with the ability to dynamically alter the size of a stack in a data processing system
US4229801A (en) Floating point processor having concurrent exponent/mantissa operation
EP0213842A2 (en) Mechanism for performing data references to storage in parallel with instruction execution on a reduced instruction-set processor
JPS59501684A (ja) 目的命令ストリ−ムへ殆んど実時間で插入するためのソ−スおよび目的命令ストリ−ムの外部における加速式命令写像
JPH0814801B2 (ja) プログラマブルアクセスメモリ
US4348724A (en) Address pairing apparatus for a control store of a data processing system
US4630192A (en) Apparatus for executing an instruction and for simultaneously generating and storing related information
JPH01503011A (ja) キャッシュマネッジメントシステムを含むデジタルデータ処理システム用汎用プロセッサユニット
JP2001184211A (ja) 処理システムにおいてスタックのポップおよびプッシュ動作を行なうための装置および方法
US5226132A (en) Multiple virtual addressing using/comparing translation pairs of addresses comprising a space address and an origin address (sto) while using space registers as storage devices for a data processing system
JP2001034537A (ja) アドレス変換回路
US4360869A (en) Control store organization for a data processing system
JP3132566B2 (ja) 命令先行制御装置
US5287483A (en) Prefetched operand storing system for an information processor
KR19990037571A (ko) 단일 주기 내에 간접 어드레싱 모드 어드레스를 출력하는 데이터 포인터 및 그 제공방법
US4737908A (en) Buffer memory control system
JP2901247B2 (ja) 掃出し制御方式
US4348723A (en) Control store test selection logic for a data processing system
JPH10116191A (ja) 圧縮命令用バッファを備えたプロセッサ
JPS59112479A (ja) キヤツシユメモリの高速アクセス方式
JP3424430B2 (ja) プロセッサ
JP2864548B2 (ja) 命令キャッシュ装置
JPH03141444A (ja) データ処理装置
JPH02259945A (ja) ストア処理方式

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees