JPS623336A - 条件付きブランチ方式 - Google Patents

条件付きブランチ方式

Info

Publication number
JPS623336A
JPS623336A JP61149297A JP14929786A JPS623336A JP S623336 A JPS623336 A JP S623336A JP 61149297 A JP61149297 A JP 61149297A JP 14929786 A JP14929786 A JP 14929786A JP S623336 A JPS623336 A JP S623336A
Authority
JP
Japan
Prior art keywords
instruction
register
branch
instructions
contents
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
JP61149297A
Other languages
English (en)
Inventor
Jiei Baamu Aren
アレン・ジェイ・バーム
Shiii Miraa Terensu
テレンス・シィー・ミラー
Eii Fuotorando Deibitsuto
ディビット・エィー・フォトランド
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.)
Hewlett Packard Japan Inc
Original Assignee
Yokogawa Hewlett Packard 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 Yokogawa Hewlett Packard Ltd filed Critical Yokogawa Hewlett Packard Ltd
Publication of JPS623336A publication Critical patent/JPS623336A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30003Arrangements for executing specific machine instructions
    • G06F9/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、コンピュータにおける命令フォーマツトの縮
少化に関し、特に、例えば、データの転送とブランチ等
の2つの命令を同時に実行できる方式に関する。
〔従来技術とその問題点〕
従来のマイクロプログラム方式のコンピュータでは、そ
の制御部に自律的な(autonomous)読出し専
用メモリが設けられている。プログラム命令が開始され
るごとにこの制御部は、その命令の命令コードからアド
レスを得て読出し専用メモリに与える。今処理されてい
る命令の実行のためにコンビ1゛。
エータに制御信号を供給する一連のワードの最初の  
   ゛、1ワードが何であるかが上記アドレスにより
指示される。各命令は自己に対応付けられたマイクロサ
ブル      □−チンに制御を渡す。その結果、コ
ンピュータによ      5ってなされる逐次的な動
作は極めて詳細なレベルに      。
おけるプログラムの実行動作に対応している。    
    、そのような従来のコンピュータにおいては、
一般      −1的にプログラム命令は命令コード
とオペランド、すなわち、演算されるべきデータの位置
に関する情報     つを含む。これらのオペランド
は付加的な動作を指定     、゛・する情報を含む
こともある。前記プログラム命令の     、;長さ
は扱うデータ量に従って相対的に長くすること    
  ;もてきるし、又は、短くすることもできる。命令
コ     −。
−ドは、実行すべき動作を指定する。一旦、命令コ  
   5r−ドの長さを定めると、ある固定組の相異な
る命令     バコードおよびそれらに関連したプロ
グラム命令だけ      ”が′あるようにできる。
しかしながら、ある数のピッ     ”;:゛ トにする理論的に表わせる命令コード、すなわち、  
    :前記固定組の命令コードの全てをマイクロプ
ロゲラ     :′、1 ム化されたリリースを備えたコンピュータのプログラム
命令の特定のために使用することはない。一般的には、
上記固定紐の一部、すなわち、サブセットのみしか使用
されておらず、この結果、プログラミング効率の底下が
生じている。
さらに、従来のコンピュータにおいては、使用されるメ
モリが最大のハードウェア・コストを占めているため、
ハードウェア・スピードの向上およびハードウェアの最
小化のためにはそのメモリの使用効率向上の達成が肝要
である。固定命令長コンピュータにおいては、夫々の命
令で実行すべき動作が簡単か複雑かに無関係に全ての命
令コードに対して同一のビット数を割当てる必要がある
。このため1例えば、多くのビットが簡単な動作を指定
するために無駄に使用されている一方では、命令語の長
さによって命令の能力が制限される局面では、複雑な動
作を行なうために多くの命令が無駄に使用されている。
したがって全てのアプリニージョンを最も効率的に実行
できる命令セットを有するコンピュータを設計すること
が望ましい。
従来のマイクロプログラム方式のコンピュータの効率を
向上させるために、最適化コンパイラの概念が採用され
実現された。ここで目指されたことは、(1)プログラ
ミング言語を大きな仮想アドレス空間におけるマイクロ
命令と同様な複雑でない命令レベルまでコンパイルし、
また、(2)技術が許す限り、命令サイクル時間をでき
るだけ短くすること、である。
そのような最適化コンパイラを有するコンピュータは以
前のものより少ない命令を持つように設計される。これ
らの少ない命令は簡単なものであり、1サイクル内で実
行される。そのようなコンピュータは縮少命令セット・
コンピュータ(reducedinstruction
  set  computer。
以下RISCと称する)と呼ばれている。
特に、固定命令長のコンピュータでは、度々用いられる
簡単な動作の命令でさえも固定命令長である。
これに反して、可変命令長のコンピュータは、度々用い
られる簡単な動作の命令を短いフォーマットでエンコー
ドし、よって、本質的にはそれらの命令語長を減少させ
る。したがって、従来では、符号圧縮をするため、可変
命令長が用いられていた。残念ながら、このようにする
と、命令のフェッチングやデコーディングの困難さもま
た増加する。代わりに。
従来技術では、2個の動作結合して単一の命令フォーマ
ツ1−にすることが可能であった。この場合、2つの動
作は直列に実行されていた。しかし、このような場合、
極めて長い動作時間が長くなるという犠牲の下に符号圧
縮度(code  compression)を大きく
していた。
〔発明の目的〕
したがって、本発明の目的は、上述した従来技術の欠点
を解消し、動作がはやくまたはコード圧縮度が高い条件
付きブランチ方式を提供することにある。
〔発明の概要〕
本発明の一実施例に係る条件付きブランチ方式では、度
々実行される2以上の命令結合して単一の命令フォーマ
ットにし、この単一命令フォーマットで、どちらの命令
をも実行させる。本実施例では、RISCにおいて、度
々使用されるデータの転送とブランチング命令を単一の
命令フォーマットに結合させ、実施例に説明されるよう
に、コンピュータ装置の一実行サイクルで同時にこれら
命令を実行させる。
〔発明の実施例〕
本発明の目的を達成するために、本発明の一実施例に基
づいて動作するコンピュータ装置では、データ1送/ブ
ランチ命令が与えられる。この命令は、可変もしくはリ
テラルの第1のオペランドを第2のオペランドに転送す
ると同時にこれをゼロと比較することができるように定
義される。比較の結果がある選択された条件と合致した
場合は、ブランチが起こる。言い換えれば、レジスタの
内容を新しいレジスタにコピーすることによって、それ
は他のレジスタに移動したこととなる。そして、ブラン
チは、転送した値によって条件付けられる。
データ転送/ブランチ命令110を以下に示す。
MOVB、c、n r +、r 2、wdそして、第1
図に示すように以下のフォーマットを有する。
32 / r x / r I/ c / w + /
 n / wここで32は6ビツトのフィールド・コー
ド112で、データ転送/ブランチ命令を示す。r2は
5ビツトのフィールド114でターゲノ1−のレジスタ
r2を示す。r+4よ5ビツトのフィールド′116で
、ソ 躾−ス・レジスタr、を示す。Cは3ビツトのフィール
ド118で条件を示す6W冒よ11ピッ1−でフィール
ド120で、オフセットを示す。
nは1ビツトのフィールド122で、次の命令を無効に
するかどうかを示す。Wは1ビツトのフィールド124
で、オフセットの符号を示す。
動作を説明すれば、汎用レジスタr、の内容は、汎用レ
ジスタr2にコピーされる。条件Cがコピーされた値が
条件Cを満足すれば、ワード・ディスプレイスソフトw
dは命令Wと×1のフィールド120.124から組み
立てられ、符号拡張され、プログラム・カウンタ・オフ
セットに加算される。条件Cは抽出もしくは、ディポジ
ット関係の条件セットのいずれかの条件である。
次の命令サイクルでは、条件Cの真偽にかかわらず次命
令無効化(nullification)が選択されな
い限り、命令が実行される。次命令無効化が指定される
と、成功した前方ブランチの前または、失敗した後方ブ
ランチに続く命令が無効化される。
このような命令110は、以下に詳細に説明するように
実行される。
1、第1の命令サイクル、Tの間 a レジスタ1の内容をレジスタ2にコピーする。
b コピーされた内容の値を調べ、条件Cが成作が行な
われ続行される。
(1)14ビツトの直接値である14ビツトのワードを
WとW、から組立てる。これは、Wの後にWIの最下位
ビットを結合させ、そのwlの最下位ビットの後にWの
残りのピッ1−を結合させ、その結果Xを左に2桁シフ
トさせることにより得られる。
し く2)結果Xを32ビツトX構成するためXの左側に符
号ピッ1−を拡張する。ここで、Xの最上位のビットを
符号ビットとする。
(3)符号拡張の結果を”DISP”とする。
(4) ”D I S P ”と8を現在のプログラム
・カウンタ・オフセット×加えて、時間T+2の間、す
なわち次の命令サイクルの次、に実行される命令のプロ
グラム・カウンタ・オフセットとする。(つまり所謂遅
1゛ 延Xランチが行なわれるのである。
2、第2の命令サイクル、T+1の間 〆で次命令無効化が指定されると以下の場合には、この
サイクル間に実行される命令が無効化される。
この「場合」と岬よ、転送した値が、条件Cを満足しか
つ、ディスプレイスソフト”DISP”が正またはぜ口
の場合あるいは、転送した値が条件Cを満足させずかつ
、ディスプレイスソフト“DISP”が負の場合である
本発明の一実施例におけるデータ転送/ブランチ110
の命令110を実行させるコンピュータ装置のアーキテ
クチャ−の−例を第2図に示す。ALX(算術論理演算
ユニット)部210は、レジスターの内容を汎用レジス
タ212から読み取り、ALU214でテストする。レ
ジスタ1の内容(図示せず)は、レジスタ2(図示せず
)等の他のレジスタにコピーされる。その間に、レジス
タ1の内容の値は予め選択された条件216のセットが
一致するかどうかテストされる。もしそうであれば、命
令セット110のフィールド120.124から作られ
たワード・ディスプレイスソフトwd220がコンピュ
ータ装置の命令アドレス部211のプログラム・カラさ
れていれば、起る。言い換えれば、成功した前方ブラン
チに続く命令もしくは失敗した後方ブランチの後に続く
命令(つまり、これらのブランチの遅延スロットの命令
)が無効化される。このようにして、ブランチは、予め
選ばれた条件216をALN214の値が一致すること
によって、決定される。
〔発明の効果〕
以上説明したように、ブランチとデータの転送等を単一
の命令に結合させることによって、命令の高密度化を達
成し、コンピュータ装置における実行速度が改善される
【図面の簡単な説明】
第1図は、本発明の一実施例であるデータの転送とブラ
ンチングの命令セットの構造図。第2図は、第1図の命
令セットを実行させるコンピュータ装置のブロック図。 110:データの転送とブランチ命令、112:6ビツ
ト・フィールド・コード、114:5ビツト・フィール
ド、116:5ビツトフイールド、118:3ビツト・
フィールド、120:11ビツトフイールド、122,
124:1ビツト・フィールド、210 : ALU部
、212:汎用レジスタ・ファイル、214:ALU、
211:命令アドレス部、220ニブランチ・ディスプ
レイスソフト、222ニブログラム・カウンタ

Claims (1)

    【特許請求の範囲】
  1. ブランチ条件の発生と該条件に基く条件付きブランチと
    を同じ命令サイクル内で行なう条件付きブランチ方式。
JP61149297A 1985-06-28 1986-06-25 条件付きブランチ方式 Pending JPS623336A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US75081985A 1985-06-28 1985-06-28
US750819 1985-06-28

Publications (1)

Publication Number Publication Date
JPS623336A true JPS623336A (ja) 1987-01-09

Family

ID=25019295

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61149297A Pending JPS623336A (ja) 1985-06-28 1986-06-25 条件付きブランチ方式

Country Status (3)

Country Link
EP (1) EP0213301A3 (ja)
JP (1) JPS623336A (ja)
CA (1) CA1254661A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0876996A (ja) * 1994-08-31 1996-03-22 Matsushita Electric Works Ltd プログラマブルコントローラ
KR100325177B1 (ko) * 1991-07-08 2002-02-21 고성능 알아이에스씨 마이크로프로세서 구조
JP2018500657A (ja) * 2014-12-23 2018-01-11 インテル・コーポレーション 融合された単一のサイクルのインクリメント−比較−ジャンプを実施するための命令及びロジック

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4755966A (en) * 1985-06-28 1988-07-05 Hewlett-Packard Company Bidirectional branch prediction and optimization
JP2723238B2 (ja) * 1988-01-18 1998-03-09 株式会社東芝 情報処理装置
GB2228597A (en) * 1989-02-27 1990-08-29 Ibm Data processor with conditional instructions
FR2759176B1 (fr) * 1997-02-05 1999-04-09 Sgs Thomson Microelectronics Micro-processeur faisant une prediction d'adresse rapide
GB2551548B (en) * 2016-06-22 2019-05-08 Advanced Risc Mach Ltd Register restoring branch instruction

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3382805T2 (de) * 1982-08-23 1996-09-26 Western Electric Co Rechner mit dynamischem Aufbau eines Befehlzusatzfeldes zur Speicherung der folgenden Befehlsadresse.

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100325177B1 (ko) * 1991-07-08 2002-02-21 고성능 알아이에스씨 마이크로프로세서 구조
KR100325176B1 (ko) * 1991-07-08 2002-02-25 고성능 알아이에스씨 마이크로프로세서 구조
JPH0876996A (ja) * 1994-08-31 1996-03-22 Matsushita Electric Works Ltd プログラマブルコントローラ
JP2018500657A (ja) * 2014-12-23 2018-01-11 インテル・コーポレーション 融合された単一のサイクルのインクリメント−比較−ジャンプを実施するための命令及びロジック

Also Published As

Publication number Publication date
CA1254661A (en) 1989-05-23
EP0213301A2 (en) 1987-03-11
EP0213301A3 (en) 1988-10-26

Similar Documents

Publication Publication Date Title
US5448746A (en) System for comounding instructions in a byte stream prior to fetching and identifying the instructions for execution
EP0454985B1 (en) Scalable compound instruction set machine architecture
KR960003046B1 (ko) 비정렬 레퍼런스의 처리가 가능한 risc 컴퓨터 및 그 처리방법
US5303356A (en) System for issuing instructions for parallel execution subsequent to branch into a group of member instructions with compoundability in dictation tag
EP0071028B1 (en) Instructionshandling unit in a data processing system with instruction substitution and method of operation
US7458069B2 (en) System and method for fusing instructions
US6021265A (en) Interoperability with multiple instruction sets
EP0758464B1 (en) Data processing with multiple instruction sets
EP2569694B1 (en) Conditional compare instruction
US5504932A (en) System for executing scalar instructions in parallel based on control bits appended by compounding decoder
EP0427245B1 (en) Data processor capable of simultaneously executing two instructions
EP0471191B1 (en) Data processor capable of simultaneous execution of two instructions
EP0220682B1 (en) Data processing system
EP0206276B1 (en) Method and computer device for handling data conditionally
JP2840604B2 (ja) マイクロコード式cpuで実行される命令用のオペランドを指定する方法および装置
EP0354585A2 (en) Instruction pipeline microprocessor
JPH01137331A (ja) 制御ワード分岐方法
JPS623337A (ja) デ−タ・ストア方式
US6058470A (en) Specialized millicode instruction for translate and test
JPS623336A (ja) 条件付きブランチ方式
US6055623A (en) Specialized millicode instruction for editing functions
US6067617A (en) Specialized millicode instructions for packed decimal division
JPS6212529B2 (ja)
US5590293A (en) Dynamic microbranching with programmable hold on condition, to programmable dynamic microbranching delay minimization
KR100322725B1 (ko) 전문 갱신 및 분기 명령을 이용하는 밀리코드 플래그