JPS59501426A - 次段アドレスの計算を前もつて実行する機構 - Google Patents

次段アドレスの計算を前もつて実行する機構

Info

Publication number
JPS59501426A
JPS59501426A JP50279283A JP50279283A JPS59501426A JP S59501426 A JPS59501426 A JP S59501426A JP 50279283 A JP50279283 A JP 50279283A JP 50279283 A JP50279283 A JP 50279283A JP S59501426 A JPS59501426 A JP S59501426A
Authority
JP
Japan
Prior art keywords
instruction
address
branch
computer
main memory
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.)
Granted
Application number
JP50279283A
Other languages
English (en)
Other versions
JPH0544049B2 (ja
Inventor
デイトゼル・デイヴイツド・ロジヤ−
マツクリラン・フバ−ト・ラエ・ジユニヤ
Original Assignee
ウエスタ−ン エレクトリツク カムパニ−,インコ−ポレ−テツド
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 ウエスタ−ン エレクトリツク カムパニ−,インコ−ポレ−テツド filed Critical ウエスタ−ン エレクトリツク カムパニ−,インコ−ポレ−テツド
Publication of JPS59501426A publication Critical patent/JPS59501426A/ja
Publication of JPH0544049B2 publication Critical patent/JPH0544049B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/30054Unconditional branch instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/3802Instruction prefetching

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

【発明の詳細な説明】 次段アドレスの計算を前もって実行する機構技術分野 本願発明はディジタルコンピュータのアーキテクチュアに関し、さらに詳しくは 、分岐命令あるいはジャンプ命令としても知られている実効プログラムの転送の 実行に関するものである。
発明の背景 ディジタルコンピュータはメモリ装置から命令とデータを読み出し、そこに記憶 されたプログラムに従って命令を実行する。コンピュータの命令は演算命令、制 御型命令、またはそれらの組み合わせからなる。演算命令は直接計算や論理機能 を実行する。制御命令は命令の実行順序を指図する。コンピュータ命令は、通常 はコンピュータメモリ内で見出された通りに順に実行される。制御命令は、この ようにそれがない場合は順に処理される制御の流れを変化させるものである。
命令は可変サイズ、すなわち可変長であシ得る。実行すべき次段の命令のアドレ スは、通常は現在の命令のアドレスにその長さを加算することで計算される。
現在実行中の命令のアドレスは、通常プログラムカウンタとして知られる機械式 レジスタに保たれる。制御命令、すなわち分岐命令またはジャンプ命令はこのプ ログラムカウンタをある特定の値に設定する。この値は制御命令のオペランドで ある。
分岐命令はプログラム中でしばしば発生する。多くのプログラムで実行される全 命令の6分の1以上が分岐命令である。分岐命令には二通りあシ、それは条件分 岐および無条件分岐命令である。無条件分岐は自己のオペランドに次段の命令の アドレスを特定することによって制御の流れを常に変化させる。一方、条件分岐 はある特定の条件に合ったときのみ制御の流れを変化させる。その条件に合わな いときは、その分岐命令が何の効果も持たないかの如く、制御は次の正規の順の アドレスの命令に転送される。分岐命令を実行する時間を減少することが望まれ る。
発明の要約 本願発明の図示した実施例に従い、分岐命令を実行するのに必要な時間は、命令 がメモリから取り出された後で、かつその命令が命令貯蔵部を介して実行装置に 転送される前に命令前取シ装置内のその命令に次段のアドレスフィールドを加え ることによって太幅1(減少される。命令が命令貯蔵部に転送される前に、その 命令に次段のアドレスフィールドを加えることにより、命令貯蔵部から実行装置 へ命令を転送する度にその後に次段の命令のアドレスを計算する必要性が少なく なる。
さらに、次段命令のアドレスフィールドを用いると、前段の命令の次段アドレス フィールドとして、分岐命令のターケラトを含むことによって分岐命令を少くす ることができ、以って別個の転送命令を不要とすることができる。このことは、 あたかも分岐命令が無限に速く実行されるごとくに装置のスピードアップを図る 効果をもつ・ものである。
図面の簡単な説明 第1図は、本願発明の利点を有するように構成された汎用ディジタルコンピュー タの関連する部分を示すブロック図である。
詳細な説明 第1図を参照すると、本願発明の利点を理解するのに便利な汎用コンピュータの ブロック図が示されている。第1図のディジタルコンピュータにはデータと命令 の両方を記憶するために使用できる主記憶1oが含まれる。命令は、命令取出論 理回路12によって主記憶10から取り出され、命令貯蔵メモリ14に記憶され る。本願発明に従い、以下にさらに詳しく記述するように、命令取出論理回路1 2ばさらに次段命令のアドレスを形成し、この次段命令アドレスをバス15を経 て貯蔵部14に転送する。
貯蔵部14は従来のコシピユータメモリ貯蔵部、つまり高速バッファから成る。
貯蔵部14は次段命令の(4) アドレスを記憶するだめの余分のスペースを供給するように構成きれCいる。実 行すべき命令は貯蔵部14かもバス17を経て実行装置16に転送される。命令 のだめのデータオペランドが次に主記憶1oからバス19を経て実行装置16に 転送きれる。主記憶10、実行装置16、および貯蔵部14は従来方式で動作し 、当業者が一般に行なうような種々の方法のうちのいずれかによって実行され得 る。実行装置16の出力はバス19を経て主記憶10へ転送されるか、あるいは バス9を経て利用手段(不図示)に転送される。
命令取出論理回路12をさらに詳しく参照すると、これには一般にプログラムカ ウンタとして知られる命令アドレスレジスタ(IA几)22が示されている。
命令アドレスレジスタ22は取シ出すべき命令のアドレスを保持する。取出制御 論理回路20は有限状態機械であっても良いし、従来の組合せ論理を含む装置で あっても良いが、この取出制御論理回路の指示によって命令は主記憶1[1から バス11を経て取り出され、命令レジスタ(IR)24に格納される。
本願発明に従い、すぐ後に続く命令も主記憶10かも取シ出され、次段命令レジ スタ(NI几)26に格納される。次段命令レジスタ内の命令が分岐命令でない 場合は、次段命令のアドレスは命令レジスタ24内の命令の長さを命令アドレス レジスタ22の内容に加(5) 符表BH39−50142G (3)算するこ とにより計算これる。命令レジスタ24内の命令の長さは命令長装置28によっ て決められる。この命令長装置は読出し専用メモリか組合せ論理回路のどちらか から成る。次段命令アドレスは加算器6oにおいて命令長装置28から出力これ たバス29上の命令長の値を命令アドレス!ノジスタ22から出力されたバス2 6上の現在のアドレス値に加算することにより計算される。バス25上に現われ る加算器3oの出力は、それからリード27上の−Lネイブル信号に応動して多 重送信器32を通pバス15に出力される。同時に、命令レジスタ24内の命令 はバス13を介して命令貯蔵部14に転送される。このようにして命令貯蔵部1 4内の命令は、命令レジスタ24からの命令と、それに隣接する次段アドレスフ ィールドに格納された加算器30からの次段命令アドレスとから成る。
一方、次段命令レジスタ26に記憶された命令が分岐命令である場合は、該命令 内の次段アドレスフィールドの内容は次段命令レジスタ26に記憶された命令の ターゲットとみなされる。次段命令レジスタ26の内容は命令貯蔵部14に転送 される。この転送はり一ド39をエネイブルし、それによって多重送信器62を 動作させ、バス31をバス15に通過させるようにすることで行なわれる。それ と同時に命令レジスタ24の内容はバス13を経て命令貯蔵部14に転送される 。
(6) このようにして、命令貯蔵部14は1つの命令と、それに隣接する次段命令のア ドレスを含む。次段命令レジスタ26は分岐命令を保持しておシ、かつその内容 は命令貯蔵部14に転送されて宿舎に隣接する次段アドレスフィールドに格納さ れるので、次段アドレスフィールドは分岐アドレスのターゲットを含んでいる。
このようにして分岐命令に必要な実行時間が減少される。
本願発明は以下の命令群を参照してきらによく理解I MOVA、B (Aの内 容をBに移せ)2 ADD C!、D (c(D内容をDに加えよ)5 JMP  37. (37にジャンプせよ)初め、アドレス1が命令アドレスレジスタ2 2に入力される。その後、命令1っt 、D ” MC)V A、B ’“が主 記憶10から取り出され命令レジスタ24に入力される。その次の命令っまり° “ADD O,D″が主記憶1゜から取り出され、次段命令レジスタ26に入力 される。
レジスタ26に入力された命令が分岐宿舎ではないので、次の命令のアドレスつ まシ2はレジスタ22内の現在の命令の長さを加算することで計算される。その 後、レジスタ24内の命令と加算器3oがらの次段命令のアドレスとが、上述し たように同時に命令貯蔵部(7) 14に転送される。貯蔵部14に入力される命令は以続いて命令アドレス2がレ ジスタ22に入力きれる。
命令2.つまり□’ADD O,D”が主記憶10から取り出されレジスタ24 に入力される。その次の命令6、ツー4 j) ” JMP 37”が主記憶1 oがら取シ出されレジスタ26に入力される。次段酷令レジスタ26は分岐命令 を保持しているので、分岐のターゲットっます37“は、レジスタ24からの命 令とともに命令貯蔵部14に転送される。このようにして貯蔵部14内の命令は 以下のようになる。
このようにして、命令貯蔵部14から命令6つまり“JMP 67°°を取り出 すのに必要な実行時間および実行装置16によって費される、関連した時間が減 少される。
FIG、/ 補正書の翻訳文提出書 (特許法第184条の7第1項) 昭和59年 4月23日 特許庁長官 若杉和夫 殿 ■、特許出願の表示 PCT/US 83/Q l l 292、発明の名称 7ノコウ キ コラ 次段アドレスの計算を前もって実行する機構3、特許出願人 住 所 アメリカ合衆国 10038 ニューヨーク。
ニューヨーク、ブロードウェー 222名称 ウェスターン エレクトリック  刀ムパニー。
住所 〒100 東京都千代田区丸の内1−2−3 、富士ビル2095、補正書の提出年月日 1983年12月 9日 6、添付書類の目録 補正書の翻訳文 1通 (1゛) 請求の範囲 1、(補正後) 分岐命令に必要な実行時間を実質的に減少させるだめのコンピ ュータであって、主記憶と、 命令取出装置と、 命令貯蔵部と、 実行装置とを含み、該コンピュータは、前記命令貯蔵部が、 牙1の命令のアドレスを記憶するための第1の手段と、 前記第1の命令を記憶するための第2の手段と、第2の命令を記憶する第3の手 段とを含むことと、前記第2の命令が牙3の命令のアドレスを示すだめのアドレ スフィールドを含むことを特徴、とするコンピュータ。
2、請求の範囲第1項記載のコンピュータにおいて、前記命令取出装置はさらに 、前記主記憶から取り出すべき次段の命令のアドレスを発生するだめの手段を含 むコンピュータ。
6、請求の範囲第2項記載のコンピュータにおいて、前記次段命令のアドレスを 発生するだめの前記手段が、 前記第2の手段内の命令の長さを計算するだめの手段と、 (2) 前記命令長を前記第1命令のアドレスに加えて前記次段命令のアドレスを生み出 すだめの手段と、前記次段命令のアドレスを前記命令貯蔵部に転送する手段とを 含むコンピュータ。鳴 4、請求の範囲第3項記載のコンピュータにおいて、前記命令取出装置は、さら に 前記第3の手段内の前記第2命令が分岐命令であるかどつかを判定し、前記牙2 命令が分岐命令である場合は前記アドレスフィールドの内容を前記オ6の手段か ら前記命令貯蔵部へ転送するだめの手段を含むコンピュータ。
5(補正後) 主記憶と、命令取出装置と、命令貯蔵部と、実行装置とを含むコ ンビ、ユータにおいて、分岐命令に必要な実行時間を実質的に減少させる方法で あって、該方法は、 第1の命令のアドレスを前記命令貯蔵部内の第1の手段に記憶する工程と、 前記第1命令を前記主記憶から取り出し、前記第1命令を前記命令貯蔵部内の第 2の手段に記憶する工程と、 第2の命令を前記主記憶から取り出し、前記第2命令を前記命令貯蔵部内のオ乙 の手段に記憶する工程とを含むことと、 前記第2命令は第3の命令のアドレスを示すだめの(6) アドレスフィールドを含むこととを特徴とする方法。
6、請求の範囲第5項記載の方法において、さらに前記主記憶から取り出すべき 次段の命令のアドレスを発生する工程を含む方法。
Z 請求の範囲第6項記載の方法において、さらに前記第2の手段内の前記第1 命令の長さを計算する工程と、 前記命令長を前記第1命令のアドレスに加えることによって前記次段命令アドレ スを生み出す工程と、前記次段命令アドレスを前記命令貯蔵部に転送する工程と を含む方法。
8、 請求の範囲オフ項記載の方法において、さらに、前記オ6の手段内の前記 第2命令が分岐命令であるかどうかを判定する工程と、 前記第2命令が分岐命令である場合に、前記アドレスフィールドの内容を前記オ 6の手段から前記命令貯蔵部に転送する工程とを含む方法。

Claims (1)

  1. 【特許請求の範囲】 1、 分岐命令に必要な実行時間を実質的に減少させるだめのコンピュータにお いて、 主記憶と、 命令取出装置と、 命令貯蔵部と、 実行装置とを含むことと、 前自己命令貯蔵部が、 第1の命令のアドレスを記憶するための第1の手段と、 前記第1の命令を記憶するためのす20手段と、第2の命令を記憶する牙3の手 段とを含むことと、前記第2の命令がオ6の命令のアドレスを示すだめのアドレ スフィールドを含むことを特徴とするコンピユー タ0 2、 請求の範囲第1項記載のコンピュータにおいて、前記命令取出装置はさら に、前記主記憶から取り出すべき次段の命令のアドレスを発生するための手段を 含むコンピュータ。 3、請求の範囲第2項記載のコンピュータにおいて、前記次段命令のアドレスを 発生するための前記手段が、 前記第2の手段内の命令の長さを計算するだめの手段と、 ぐ9) 前記命令長を前記第1命令のアドレスに加えて前記次段命令のアドレスを生み出 すだめの手段と、前記次段命令のアドレスを前記宿合貯蔵部に転送する手段とを 含むコンピュータ。 4、 請求の範囲第3項記載のコンピュータにおいて、前記命令取出装置はさら に、 前記第3の手段内の前記第2命令が分岐命令であるかとうかを判定し、前記第2 命令が分岐命令である場合は前記アドレスフィールドの内容を前記第3の手段か ら前記命令貯蔵部へ転送するための手段を含むコンピュータ。 5、主記憶と、命令取出装置と、命令貯蔵部と、実行装置とを含むコンピュータ において、分岐命令に必要な実行時間を実質的に減少させる方法であって、該第 1の命令のアドレスを第1の手段に記憶する工程と、 前記第1命令を前記主記憶から取シ出し、前記第1命令を第2の手段に記憶する 工程と、 第2の命令を前記主記憶から取シ出し前記第2命令を第3の手段に記憶する工程 とを含み、前記第2命令は第3の命令のアドレスを示すためのアドレスフィール ドを含む方法。 6、 請求の範囲第5項記載の方法において、さらに(10) 前記主記・)意から取り出すべき次段の命令のアドレスを発生する工程を含む方 法。 Z 請求の範囲オ6項記載の方法において、さらに前記第2の手段内の前記第1 命令の長さを計算する工程と、 前記酷令長を前記第1命令のアドレスに加えることによって前記次段命令アドレ スを生み出す工程と、前記次段命令アドレスを前記命令貯蔵部に転送する工程と を含む方法。 8、請求の範囲オフ項記載の方法において、さらに前記オ6の手段内の前記第2 命令が分岐命令であるかどうかを判定する工程と、 前記第2命令が分岐命令である場合に、前記アドレスフィールドの内容を前記第 3の手段から前記命令貯蔵部に転送する工程とを含む方法。
JP50279283A 1982-08-23 1983-07-22 次段アドレスの計算を前もつて実行する機構 Granted JPS59501426A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US41043082A 1982-08-23 1982-08-23
US410430FREGB 1982-08-23

Publications (2)

Publication Number Publication Date
JPS59501426A true JPS59501426A (ja) 1984-08-09
JPH0544049B2 JPH0544049B2 (ja) 1993-07-05

Family

ID=23624698

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50279283A Granted JPS59501426A (ja) 1982-08-23 1983-07-22 次段アドレスの計算を前もつて実行する機構

Country Status (6)

Country Link
EP (2) EP0411679B1 (ja)
JP (1) JPS59501426A (ja)
CA (1) CA1193738A (ja)
DE (2) DE3382805T2 (ja)
GB (1) GB2126384B (ja)
WO (1) WO1984000833A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0190484A3 (en) * 1985-01-28 1988-09-21 Data General Corporation Enhanced speed digital computer and method of speed enhancement
CA1250667A (en) * 1985-04-15 1989-02-28 Larry D. Larsen Branch control in a three phase pipelined signal processor
CA1254661A (en) * 1985-06-28 1989-05-23 Allen J. Baum Method and means for instruction combination for code compression
US5131086A (en) * 1988-08-25 1992-07-14 Edgcore Technology, Inc. Method and system for executing pipelined three operand construct
US5101341A (en) * 1988-08-25 1992-03-31 Edgcore Technology, Inc. Pipelined system for reducing instruction access time by accumulating predecoded instruction bits a FIFO

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL262931A (ja) * 1960-03-29
US3764988A (en) * 1971-03-01 1973-10-09 Hitachi Ltd Instruction processing device using advanced control system
FR2226079A5 (ja) * 1973-04-13 1974-11-08 Honeywell Bull Soc Ind
US3900835A (en) * 1973-09-24 1975-08-19 Digital Equipment Corp Branching circuit for microprogram controlled central processor unit
US3961313A (en) * 1974-12-04 1976-06-01 International Business Machines Corporation Computer control apparatus
US4210960A (en) * 1977-09-02 1980-07-01 Sperry Corporation Digital computer with overlapped operation utilizing conditional control to minimize time losses
US4200927A (en) * 1978-01-03 1980-04-29 International Business Machines Corporation Multi-instruction stream branch processing mechanism
US4298927A (en) * 1978-10-23 1981-11-03 International Business Machines Corporation Computer instruction prefetch circuit
US4323967A (en) * 1980-04-15 1982-04-06 Honeywell Information Systems Inc. Local bus interface for controlling information transfers between units in a central subsystem
US4371928A (en) * 1980-04-15 1983-02-01 Honeywell Information Systems Inc. Interface for controlling information transfers between main data processing systems units and a central subsystem

Also Published As

Publication number Publication date
DE3382805T2 (de) 1996-09-26
EP0116600A4 (en) 1987-08-12
JPH0544049B2 (ja) 1993-07-05
DE3382805D1 (de) 1996-06-05
GB2126384A (en) 1984-03-21
EP0116600B1 (en) 1991-04-10
EP0411679A2 (en) 1991-02-06
EP0411679A3 (en) 1991-07-10
EP0116600A1 (en) 1984-08-29
DE3382250D1 (de) 1991-05-16
CA1193738A (en) 1985-09-17
EP0411679B1 (en) 1996-05-01
WO1984000833A1 (en) 1984-03-01
GB2126384B (en) 1986-03-19
GB8322134D0 (en) 1983-09-21

Similar Documents

Publication Publication Date Title
JP3592230B2 (ja) データ処理装置
JP2992223B2 (ja) コンピュータシステム、命令ビット長圧縮方法、命令発生方法、及びコンピュータシステム動作方法
JPS6217252B2 (ja)
JPH1091443A (ja) 情報処理回路、マイクロコンピュータ及び電子機器
US10303399B2 (en) Data processing apparatus and method for controlling vector memory accesses
JPH01310441A (ja) データ処理装置
JPS59501426A (ja) 次段アドレスの計算を前もつて実行する機構
JPH07239780A (ja) 1クロック可変長命令実行処理型命令読み込み電子計 算機
TWI770079B (zh) 向量產生指令
US7757066B2 (en) System and method for executing variable latency load operations in a date processor
US4853889A (en) Arrangement and method for speeding the operation of branch instructions
US7028164B2 (en) Instruction fetch apparatus for wide issue processors and method of operation
JP2901247B2 (ja) 掃出し制御方式
JP3490191B2 (ja) 計算機
JPH08161166A (ja) プロセッサ
JP2828611B2 (ja) コンピュータシステム及び命令実行方法
JPH02157939A (ja) 命令処理方法及び命令処理装置
JP5263497B2 (ja) 信号処理プロセッサ及び半導体装置
JP3325309B2 (ja) サブルーチンリターン命令処理装置
JPH0816392A (ja) コンピュータシステム、コンピュータシステム動作方法、及びコンピュータ命令シーケンス実行方法
JP3971509B2 (ja) プロセッサ
JP2001092658A (ja) データ処理回路及びデータ処理装置
JPH07191845A (ja) 即値データ転送装置
JPS63292329A (ja) パイプライン処理装置
JPH04329436A (ja) 中央演算処理装置