JPH0769795B2 - コンピュータ - Google Patents

コンピュータ

Info

Publication number
JPH0769795B2
JPH0769795B2 JP61146759A JP14675986A JPH0769795B2 JP H0769795 B2 JPH0769795 B2 JP H0769795B2 JP 61146759 A JP61146759 A JP 61146759A JP 14675986 A JP14675986 A JP 14675986A JP H0769795 B2 JPH0769795 B2 JP H0769795B2
Authority
JP
Japan
Prior art keywords
register
field
instruction
values
condition
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
JP61146759A
Other languages
English (en)
Other versions
JPS623335A (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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPS623335A publication Critical patent/JPS623335A/ja
Publication of JPH0769795B2 publication Critical patent/JPH0769795B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/30021Compare instructions, e.g. Greater-Than, Equal-To, MINMAX

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)
  • Advance Control (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、コンピュータ・システムに係り、特に少数の
命令セットで動作するコンピュータにおいて、高効率化
に貢献する新規な命令セットを備えたコンピュータ・シ
ステムに関する。
〔従来技術及びその問題点〕
従来のマイクロプログラミング型コンピュータは、その
制御装置に読み出し専用メモリを使用している。プログ
ラミング命令が開始される毎に、前記制御装置はその命
令の機能或いは動作コード(以下、オペレーション・コ
ード或いはopcode或いは命令コードと称す。)からアド
レスを得て、前記読み出し専用メモリに与えている。処
理中の上述の特定命令実行のために前記コンピュータに
制御信号を供給する一連のワードのうち最初のワードが
何であるかが上記アドレスにより検出される。各命令は
関連したマイクロサブルーチンに制御を渡す。これによ
りコンピュータの命令毎の動作が詳細なレベルにおける
プログラムの実行により達成される。
そのような従来のコンピュータにおいては、一般的にプ
ログラム命令は、オペレーション・コードと、オペラン
ド、即ち演算されるべきデータの位置に相対的な情報と
を含む。これらのオペランドは、付加的に動作を指定す
る情報を含むこともある。前記プログラム命令の長さは
関連するデータ量に従って相対的に長くすることもでき
るし、又は短くすることもできる。オペレーション・コ
ードは実行すべき動作を指定するものである。一度、オ
ペレーション・コードの長さが確定すると、ある固定組
(セット)のオペレーション・コード及びそれらに関連
したプログラム命令だけを持たせることが可能となる。
しかしながら、ある数のビットにより理論的に表せるオ
ペレーション・コード、即ち前記固定組のオペレーショ
ン・コードのすべてをマイクロプログラム化されたリソ
ースを備えたコンピュータのプログラム命令の特定のた
めに使用することはない。一般的には、上記固定組の一
部、即ちサブセットのみしか使用されておらず、この結
果、プログラミング効率の低下が生じている。
さらに、従来のコンピュータにおいては、使用されるメ
モリが最大のハードウェア・コストを占めているため、
ハードウェア・スピードの向上及びハードウェアの最小
化のためには、そのメモリの使用効率向上の達成が肝要
である。固定命令長コンピュータにおいては、実行すべ
き動作が簡単であるか複雑であるかにかかわらず、各命
令ワードに対して同一ビット数を持たせる必要がある。
このため、多くのビットが簡単な動作を指定するため無
駄に使用されている。また一方では、1命令の長さによ
ってその能力が制限される状態において、複雑な動作の
ために多くの命令が無駄に使用されている。したがっ
て、すべてのアプリケーションを実行できる命令セット
を有するコンピュータを設計することが望ましい。
従来、マイクロプログラミング型コンピュータの効率を
向上させるために、コンパイラを最適化する概念(conc
ept)を実施し、 (1)プログラミング言語を大仮想アドレス空間におけ
るマイクロ命令と同様な複雑でない命令レベルまでおと
してコンパイラし、また、 (2)技術的に可能な限り命令サイクル時間を短くする
ようにしている。そのように最適化されたコンパイラを
有するコンピュータは、以前のものより少ない命令を持
つように設計される。これらの少ない命令は、簡単なも
のであり、1サイクル内で実行される。そのようなコン
ピュータは少数の命令セットを有するコンピュータ(re
duced instruction set computer以下RISCと略称)と呼
ばれている。
ところで、多くのプログラムは、ある条件を判断し、そ
の判断の結果をブール変数にストアするというアルゴリ
ズムを備えている。ところが、従来例のコンピュータに
おける大部分の命令セットは、条件(比較の結果である
ことが多い。)を、分岐の決定を行うためだけに用いて
おり、条件から変数等に直接的に値を与えてはいなかっ
た。
これら従来例における命令セットの一例には、条件に基
づいてブランチすることによってビットのセット或いは
クリアを行うコードを構成せしめるための命令セットが
ある。この命令セットは、概して速度が遅く、高性能プ
ロセッサのパイプラインにすきまをつくる条件分岐を含
んでいる。
もう一つの従来例の命令セットは、条件の値をレジスタ
に入れるという特別な命令を実行するものである。この
命令セットは、結果をストアするには条件が選択され決
定されるまで待たなければならなかった。この動作は別
のタイミングを伴うので、算術演算等の結果を得てスト
アするよりも遅かった。
〔目的〕
本発明は、上記した従来技術の欠点を除くためになされ
たものであって、その目的とするところは、パイプライ
ン方式のコンピュータの条件判断を含むプログラムの実
行における効率を高めることである。
〔概要〕
本発明の実施例では、比較の結果がある条件を満足する
か否かを判断すると同時に、この判断結果とは独立にレ
ジスタを所定値に設定する命令を実行する。この命令に
続く実行パス上で上述の判断結果に基づいて上記レジス
タを選択的に書き換えることにより、このレジスタには
上記判断結果に基づいた論理値等が入ることになる。本
特定の実施例に示されるように上記選択的な書き換えの
ために次命令の無効化を用いてもよい。
即ち、本発明の好ましい実施例による命令セットは、比
較の結果をストアするため2つの命令を用いている。こ
の2つの命令は、分岐命令を用いておらず、また結果を
ストアする前に条件が確定するまで待つ必要もない。ま
た、それは、単に比較の結果としての「0」又は「1」
の値をストアする場合に比較して、より一般的な動作を
実行することもできる。
基本的には、この新規な命令セットは、2つのオペラン
ドを比較し、無条件に「0」(「0」は論理「偽」を表
す。)を指定されたディストネーションにストアすると
共に比較結果に従って次命令を無効化する新規な命令を
含むものである。
〔実施例〕
以下、本発明を図面に示す実施例に基づいて説明する。
本発明の好適な実施例によるコンピュータにおける命令
セットは、2つのレジスタの内容を比較し、1つのレジ
スタをクリアし、更に比較の結果に基づいて後に続く命
令を条件付で実行せしめるものである。
これは言い換えると、次のようなことである。即ち、先
ず2つ汎用レジスタ、例えば汎用レジスタ「rb」及び汎
用レジスタ「rc」の内容を比較し、もうひとつ別の汎用
レジスタ「ra」をクリアしてゼロとする。該比較命令に
続いて、次の実行サイクルにおける命令が条件付きで実
行される。即ち、次命令の実行は、条件が満たされた場
合に無効化(nullify)される。この条件は、任意の算
術演算の結果を表す条件又はその否定条件でよい。
この比較・クリア命令、COMCLRは、次のように表現され
る。
COMCLR,cf rb,rc,ra ここで、cfは算術演算結果を表す条件又はその否定条
件、rb及びrcはその内容が比較される汎用レジスタ、ra
はクリアされる汎用レジスタである。
そしてCOMCLRは、第1図及び下に示すような、フォーマ
ットを有している。
02/rb/rc/c/f/44/ra ここで、02は、この命令が算術/論理演算のクラスであ
ることを示す6ビットのフィールド120、 rb(ソースレジスタb)は、内容を比較するレジスタを
汎用レジスタ「b」に特定する5ビットフィールド12
2、 rc(ソースレジスタc)は、内容を比較するレジスタを
汎用レジスタ「c」に特定する5ビットフィールド12
4、 cは、3ビット条件指定子(スペシファイア)126、 fは、1ビット否定指定子128、 44は、7ビットオペレーション・コード指定子、 ra(ターゲットレジスタa)は、内容をクリアするレジ
スタを汎用レジスタ「a」に特定する5ビットフィール
ド132である。
命令110の動作は、次のように進行する。即ち、 (1)最初のサイクル、Tの間。
(a)汎用レジスタ「rb」の内容と、汎用レジスタ「r
c」の内容の1の補数と、「1」との和をとることによ
り減算を行う。そして、 (b)汎用レジスタ「ra」の値を「0」とする。
(2)2番目のサイクル、T+1の間。
(c,f)によって定義された条件が満たされた場合、こ
のT+1サイクルの間に実行された命令は無効化され
る。この無効化は、T+1サイクルの間に実行された命
令の結果のストアを阻止することによって行っても良
い。
この比較及びクリア命令110の動作を、第2図に基づい
て説明する。この図では、レジスタ・ファイル210から
出た汎用レジスタ「rb」及び「rc」(図示せず)の内容
が演算装置(ALU)212で比較される。より詳細に言え
ば、レジスタ「rb」の内容とレジスタ「rc」の内容の1
の補数と「1」とが加えられる。マルチプレクサ(MU
X)214は、ALU212からの入力220、命令110、及び「0」
入力112に対応して出力216を供給する。出力216は、COM
CLR命令の実行中だから該出力216には「0」入力112が
選択される。この出力216は、レジスタ・ファイル210の
レジスタ「ra」に送られる。ALU212で比較された結果
は、予め選択された条件218に従い、シーケンサ制御ユ
ニットに送られる。ここで、予め決められた条件によっ
て左右される、次命令(例えば、「ra」に「1」をセッ
トする命令。)の無効化が必要であるか否かの決定がな
される。したがって上記のような動作により、本発明に
よるコンピュータにおいては、予め選択されたレジスタ
を条件付でクリアする方法が、円滑化、単純化、高効率
化される。
〔効果〕
本発明は、上記のように構成され、作用するものである
から、次命令を無効化するか否かの判断とレジスタのク
リアとが1サイクルでなされるので、例えばある条件を
判断しその結果に基づいてレジスタの設定を行うプログ
ラムを実行する場合、より高速な処理が可能となる効果
が得られる。
【図面の簡単な説明】
第1図は本発明の実施例に係るコンピュータの備える比
較及び無条件クリア命令を示す図、第2図は本発明の実
施例に係るコンピュータの第1図に示す命令を実行する
ための装置のブロック図である。 110:比較及び無条件クリア命令。126,128:第1のフィー
ルド。122:第2のフィールド。124:第3のフィールド。
130:第4のフィールド。

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】2つの値の比較に関する条件を特定する第
    1のフィールドと、前記2つの値の一方を特定するため
    の第2のフィールドと、前記2つの値の他方を特定する
    ための第3のフィールドと、無条件にクリアされるべき
    レジスタを特定するための第4のフィールドとを有する
    比較及び無条件クリア命令を命令セット中に含み、前記
    命令に応答して、前記レジスタを無条件にクリアすると
    ともに、前記第2及び第3のフィールドにより特定され
    た各値を比較し、前記第1のフィールドにより特定され
    た条件を満たす場合に次命令を無効化する手段を具備す
    るコンピュータ。
  2. 【請求項2】前記レジスタの無条件クリアと、前記第2
    及び第3のフィールドにより特定された各値の比較と
    は、1サイクルの間に実行されるものである特許請求の
    範囲第1項に記載されたコンピュータ。
  3. 【請求項3】前記レジスタのクリアは、該レジスタの値
    を0にするものである特許請求の範囲第1項又は第2項
    に記載されたコンピュータ。
  4. 【請求項4】前記コンピュータは、パイプライン方式で
    各命令を実行するものである特許請求の範囲第1項又は
    第2項又は第3項に記載されたコンピュータ。
  5. 【請求項5】2つの値の比較に関する条件を特定する第
    1のフィールドと、前記2つの値の一方を特定するため
    の第2のフィールドと、前記2つの値の他方を特定する
    ための第3のフィールドと、無条件にクリアされるべき
    レジスタを特定するための第4のフィールドとを有する
    比較及び無条件クリア命令と、前記第4のフィールドに
    より特定される前記レジスタに特定の値をセットする次
    命令とを命令セット中に含み、前記比較及び無条件クリ
    ア命令に応答して、前記レジスタを無条件にクリアする
    とともに、前記第2及び第3のフィールドにより特定さ
    れた各値を比較し、前記第1のフィールドにより特定さ
    れた条件を満たす場合に前記次命令を無効化する手段を
    具備し、もって、分岐によることなく、2つの値の比較
    に関する所与の条件の判定結果に応じた値が特定のレジ
    スタにセットされるようにしたコンピュータ。
  6. 【請求項6】前記レジスタの無条件クリアと、前記第2
    及び第3のフィールドにより特定された各値の比較と
    は、1サイクルの間に実行されるものであり、当該比較
    の結果が前記第1のフィールドにより特定された条件を
    満たす場合には、次の1サイクルで実行される前記次命
    令を無効化するものである特許請求の範囲第5項に記載
    いのコンピュータ。
  7. 【請求項7】前記次命令の無効化は、該次命令の実行に
    よる前記レジスタに対するストアを阻止することによる
    ものである特許請求の範囲第5項又は第6項に記載のコ
    ンピュータ。
  8. 【請求項8】前記レジスタのクリアは、該レジスタの値
    を0にするものである特許請求の範囲第5項又は第6項
    又は第7項に記載のコンピュータ。
  9. 【請求項9】前記コンピュータは、パイプライン方式で
    各命令を実行するものである特許請求の範囲第5項又は
    第6項又は第7項又は第8項に記載のコンピュータ。
JP61146759A 1985-06-28 1986-06-23 コンピュータ Expired - Lifetime JPH0769795B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US750809 1985-06-28
US06/750,809 US4747046A (en) 1985-06-28 1985-06-28 Mechanism for comparing two registers and storing the result in a general purpose register without requiring a branch

Publications (2)

Publication Number Publication Date
JPS623335A JPS623335A (ja) 1987-01-09
JPH0769795B2 true JPH0769795B2 (ja) 1995-07-31

Family

ID=25019253

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61146759A Expired - Lifetime JPH0769795B2 (ja) 1985-06-28 1986-06-23 コンピュータ

Country Status (6)

Country Link
US (2) US4747046A (ja)
EP (1) EP0206276B1 (ja)
JP (1) JPH0769795B2 (ja)
AU (1) AU583929B2 (ja)
CA (1) CA1258712A (ja)
DE (1) DE3686741T2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4814976C1 (en) * 1986-12-23 2002-06-04 Mips Tech Inc Risc computer with unaligned reference handling and method for the same
CA1327080C (en) * 1987-05-26 1994-02-15 Yoshiko Yamaguchi Reduced instruction set computer (risc) type microprocessor
JPH0330018A (ja) * 1989-06-28 1991-02-08 Nec Corp 10進演算方式
JP2655191B2 (ja) * 1989-07-05 1997-09-17 三菱電機株式会社 演算処理装置
CA2045735A1 (en) * 1990-06-29 1991-12-30 Richard Lee Sites Computer performance by eliminating branches
AU7108994A (en) * 1993-06-14 1995-01-03 Apple Computer, Inc. Method and apparatus for finding a termination character within a variable length character string or a processor
US5815695A (en) * 1993-10-28 1998-09-29 Apple Computer, Inc. Method and apparatus for using condition codes to nullify instructions based on results of previously-executed instructions on a computer processor
US6058473A (en) * 1993-11-30 2000-05-02 Texas Instruments Incorporated Memory store from a register pair conditional upon a selected status bit
US6026484A (en) * 1993-11-30 2000-02-15 Texas Instruments Incorporated Data processing apparatus, system and method for if, then, else operation using write priority
DE4430195B4 (de) * 1993-12-13 2004-09-23 Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto Verfahren zur Auswertung von Booleschen Ausdrücken
US5623615A (en) * 1994-08-04 1997-04-22 International Business Machines Corporation Circuit and method for reducing prefetch cycles on microprocessors
US5768172A (en) * 1995-10-04 1998-06-16 Apple Computer, Inc. Graphic software functions without branch instructions
US7801215B2 (en) * 2001-07-24 2010-09-21 Sasken Communication Technologies Limited Motion estimation technique for digital video encoding applications
JP3851228B2 (ja) 2002-06-14 2006-11-29 松下電器産業株式会社 プロセッサ、プログラム変換装置及びプログラム変換方法、並びにコンピュータプログラム
EP1387254B1 (en) * 2002-07-31 2012-12-12 Texas Instruments Incorporated Skip instruction carrying out a test with immediate value
EP1387255B1 (en) * 2002-07-31 2020-04-08 Texas Instruments Incorporated Test and skip processor instruction having at least one register operand
WO2006127856A2 (en) 2005-05-24 2006-11-30 Texas Instruments Incorporated Operand width indication for micro-sequence processing

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3577190A (en) * 1968-06-26 1971-05-04 Ibm Apparatus in a digital computer for allowing the skipping of predetermined instructions in a sequence of instructions, in response to the occurrence of certain conditions
US3881173A (en) * 1973-05-14 1975-04-29 Amdahl Corp Condition code determination and data processing
EP0072373B1 (en) * 1981-08-19 1986-03-19 International Business Machines Corporation Improved microprocessor
US4589065A (en) * 1983-06-30 1986-05-13 International Business Machines Corporation Mechanism for implementing one machine cycle executable trap instructions in a primitive instruction set computing system
US4569016A (en) * 1983-06-30 1986-02-04 International Business Machines Corporation Mechanism for implementing one machine cycle executable mask and rotate instructions in a primitive instruction set computing system
US4618956A (en) * 1983-09-29 1986-10-21 Tandem Computers Incorporated Method of operating enhanced alu test hardware
US4654786A (en) * 1984-04-11 1987-03-31 Texas Instruments Incorporated Data processor using picosquencer to control execution of multi-instruction subroutines in a single fetch cycle

Also Published As

Publication number Publication date
JPS623335A (ja) 1987-01-09
AU5934186A (en) 1987-01-08
AU583929B2 (en) 1989-05-11
CA1258712A (en) 1989-08-22
DE3686741D1 (de) 1992-10-22
US4747046A (en) 1988-05-24
US4873627A (en) 1989-10-10
EP0206276A3 (en) 1988-10-05
DE3686741T2 (de) 1993-01-21
EP0206276B1 (en) 1992-09-16
EP0206276A2 (en) 1986-12-30

Similar Documents

Publication Publication Date Title
US5903760A (en) Method and apparatus for translating a conditional instruction compatible with a first instruction set architecture (ISA) into a conditional instruction compatible with a second ISA
CN100483336C (zh) 数据处理系统内处理数据的设备及方法
EP2569694B1 (en) Conditional compare instruction
JPH0776921B2 (ja) データ処理方法及び装置
EP0427245B1 (en) Data processor capable of simultaneously executing two instructions
JP2848606B2 (ja) マクロ命令パイプラインを用いてマイクロ命令を変更する方法及び装置
US5381531A (en) Data processor for selective simultaneous execution of a delay slot instruction and a second subsequent instruction the pair following a conditional branch instruction
GB2355084A (en) Conditional instruction execution
JP2002512399A (ja) 外部コプロセッサによりアクセス可能なコンテキストスイッチレジスタセットを備えたriscプロセッサ
EP0206276B1 (en) Method and computer device for handling data conditionally
WO2012136975A1 (en) A data processing apparatus and method for performing vector operations
JP2507638B2 (ja) デ―タ処理装置
WO2001006353A1 (en) Conditional instruction execution in a computer
JP2004529405A (ja) 依存性を決定するためのコンテンツ・アドレス指定可能メモリを実装したスーパースケーラ・プロセッサ
JPH01137331A (ja) 制御ワード分岐方法
JPH09152973A (ja) カウント/リンク・レジスタ変更命令の投機実行をサポートする方法及び装置
CN1318957C (zh) 在程序控制流中实现改变的装置和方法
JP2009230338A (ja) プロセサおよび情報処理装置
CA1254661A (en) Method and means for instruction combination for code compression
KR100206350B1 (ko) 중앙처리장치
US6308262B1 (en) System and method for efficient processing of instructions using control unit to select operations
González A survey of branch techniques in pipelined processors
JP2503223B2 (ja) 先行制御方式
JP3060917B2 (ja) プロセッサ
JPH0433021A (ja) 分岐命令制御方式

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term