JPH0283735A - 命令先取り装置 - Google Patents

命令先取り装置

Info

Publication number
JPH0283735A
JPH0283735A JP63234903A JP23490388A JPH0283735A JP H0283735 A JPH0283735 A JP H0283735A JP 63234903 A JP63234903 A JP 63234903A JP 23490388 A JP23490388 A JP 23490388A JP H0283735 A JPH0283735 A JP H0283735A
Authority
JP
Japan
Prior art keywords
instruction
address
page
branch
circuit
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
JP63234903A
Other languages
English (en)
Other versions
JP2722523B2 (ja
Inventor
Toshiteru Shibuya
渋谷 俊輝
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 JP63234903A priority Critical patent/JP2722523B2/ja
Priority to FR8912407A priority patent/FR2636748B1/fr
Priority to US07/410,577 priority patent/US5168557A/en
Publication of JPH0283735A publication Critical patent/JPH0283735A/ja
Application granted granted Critical
Publication of JP2722523B2 publication Critical patent/JP2722523B2/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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • 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
    • G06F9/3844Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables

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

【発明の詳細な説明】 [産業上の利用分野] 本発明は、命令語を保持し、実アドレスでアクセスされ
るキャッシュメモリを有する情報処理装置に関し、特に
分岐命令の実アドレスを指定する情報とその勺岐先実ア
ドレスとを対にして複数対記伍する分岐ヒストリテーブ
ルを用いて分岐r・測を行う命令先取り装置に関する。
[従来の技術] 従来、分岐ヒストリテーブルを用いて分岐予測を行なう
この種の命令先取り装置としては、特開昭59−915
50号公報に記載されているのが知られている。この公
報では、実アドレスで命令をチエツクするに際して、先
取りすべきアドレスで、命令記憶回路から命令を取出す
と同時に分岐ヒストリテーブルを索引し、もし分岐ヒス
トリテーブルにヒツトすれば分岐ヒストリテーブルより
供給される予測された分岐先アドレスを、次に先取りす
べきアドレスとし、もし分岐ヒストリテーブルにヒツト
しなければ、先取りアドレスに命令記憶回路から取り出
された読出し幅を加算したアドレスを次に先取りすべき
アドレスとする。
[発明か解決しようとする課題] 先取りすべきアドレスが、分岐ヒストリテープルにヒツ
トしなくて、命令記憶回路の読出し幅を、先取りすべき
アドレスに加算した結果、先取りすべきアドレスのペー
ジ番号が変更された場合(以下ページ越えと記す)、先
取りすべきアドレスを実アドレスで保持しているため、
命令の先取りを続けることはできなくなる。この場合、
加算前に先取りされた命令の論理アドレスのページ番号
に“l′を加えたページ番号をもつページの論理アドレ
スに対応する実アドレスのページ番号で先取りを行わな
ければならない。上述した、特開昭59−91550号
公報では、この操作を、ページ越えの直前に先取りされ
た命令(以下、ページ最後の命令と記す)のオペランド
に関するアドレス変換を終了した後に行っていた。従っ
て、ページ越えが発生すると、ページ最後の命令のオペ
ランドのアドレス変換の終了を待ち、その後、ページ最
後の命令の論理アドレスに′72を加算し、加算結果を
アドレス変換し、得られた実アドレス(以下、次ページ
アドレスと記す)で命令の先取りを再開するため、命令
の先取りが長時間停止し、性能低下を招くという欠点が
ある。
[課題を解決するための手段] 本発明の命令先取り装置の1つは分岐ヒストリテーブル
に、ページ最後の命令の実アドレスと、そのページ最後
の命令の次の命令の実アドレスとを対にして登録し、ペ
ージ越えが発生した時、登録れた情報に基づいて命令の
先取りを続け、同時に、登録されていた情報の確認を行
うために、次ページのアドレス変換を指示する制御回路
を有している。
本発明の命令先取り装置の他の1つは、分岐ヒストリテ
ーブルに、ページ最後の命令の実アドレスと、そのペー
ジ最後の命令の次の命令の実アドレスとを対にして登録
し、ページ越えが発生した時、登録された情報に基づい
て命令の先取りを続け、かつ、ページ最後の命令がアド
レス変換を行わない命令の時は、その命令の動作と同時
に、次ページのアドレス変換を指示し、アドレス変換を
行う命令の時は、その命令の次に、次ページのアドレス
変換を指示する制御回路を有している。
[実施例] 次に本発明について、図面を参照して説明する。
第1図は本発明の第1の実施例による命令先取り装置の
構成を示すブロック図である。
第1の実施例による命令先取り装置は、命令解読回路4
03、オペランドアドレス生成回路4Q4、命令アドレ
ス生成回路431、選択回路435、アドレス変換回路
432、オペランド記憶回路を有するオペランド読出し
回路406、命令実行回路407、命令記憶回路408
、命令バッファ409、分岐ヒストリテーブル410、
命令アドレスレジスタ4]1、命令アドレス加算回路4
12、分岐情報バッファ413、命令整列回路414、
分岐情報切換回路415、分岐情報レジスタ41.6,
417,418、および419、予測確認回路433、
アドレス生成回路42]、選択回路422、レジスタ4
23、命令先取り制御回路424、および分岐ヒストリ
テーブル更新指示フリップフロップ425とから構成さ
れる。
命令記憶回路408、およびオペランド読出し回路40
6内のオペランド記憶回路は、ともに主記悟装置(図示
せず)そのものであってもよく、あるいは主記悌装置の
一部の写しである命令キャッシュメモリ、オペラントキ
ャッンユメモリであってもよい。キャッシュメモリの詳
細は、特開昭56−87282号公報を参照できる。又
、本実施例における命令記憶回路408と、オペランド
読出回路406内の記憶回路が共用となっていても、本
発明は適用できる。
分岐ヒストリテーブル410は、分岐命令のアドレスを
指定する情報と、該分岐命令の実行の予測としての分岐
成否フラグと、分岐先アドレスとを、第2図(a)に示
すように対にして記憶している。
命令アドレスレジスタ411は、命令読出しのリクエス
トアドレスを保持して、命令の読出し動作を実行する。
さらに、命令アドレスレジスタ4]1は、信号線101
を介して、分岐ヒストリテーブル4ユ0、および命令ア
ドレス加算回路4]2に接続されている。命令アドレス
レジスタ41〕の内容で分岐ヒストリテーブル410を
索引し、読出されるべき命令のアドレスがそれに登録さ
れているか否かを示すBHTビット信号が信号線106
に出力される。登録されていれば、対応する分岐先アド
レスが信号線105に読出される。登録されていなけれ
ば、命令アドレス加算回路412により、後続の命令語
の命令先取りのためのアドレスが生成され、信号線10
7に出力される。
分岐ヒストリテーブル410には、前述の分岐情報の他
に、ページ最後の命令アドレスと、次ページアドレスと
を対にしてページ越え情報として登録される。登録され
たページ越え情報は、分岐情報と同じように読出され、
同じように命令アドレスレジスタ411にセットされる
命令アドレス加算回路412は、後続の命令語のアドレ
スを計算する際にページ越えが発生すると、信号線11
8にページ越え信号を出力する。
従って、信号線102に命令記憶回路408から読出さ
れた8バイトの命令語がページ最後の命令語であれば、
同時に信号tW118にページ越え信号が出力される。
命令バッファ409は、命令記憶回路408から読出さ
れた8バイトの先取り命令語と、信号線118のページ
越え信号とを対にして蓄え、命令の供給における待行列
を形成する。
命令整列回路41d4は、命令バッファ409が空であ
れば信号線102と118の情報を2.又、命令バッフ
ァ409が空でなければ、命令バッファ409の情報を
選択し、命令語を抽出して信号線104を介して、命令
解読回路403に命令を供給すると同時に、ページ越え
信号を信号線140に出力する回路である。
分岐情報バッファ413は、命令語バッファ409に格
納される命令語に対して用意されており、その命令語中
に、分岐成功と予測された分岐命令が存在するか、ある
いはその命令語がページ最後の命令語と予測されれば、
第2図(a)に示す分岐情報を保持する回路であり、分
岐命令あるいハページ最後の命令語のアドレスは、信号
線101を介して、また、分岐情報としての分岐先アド
レス又は次ページアドレス、およびVビットは、分岐ヒ
ストリテーブル410から信号線105を介して、それ
ぞれセットされる。
分岐情報切換回路415は、命令バッファ409が空の
時、信号線101および105を介して与えられる分岐
情報を、そうでない時は、分岐情報バッファ413を介
して与えられる分岐情報をそれぞれ出力する。
分岐情報レジスタ416は、分岐情報切換回路415の
出力と、命令整列回路414の出力するページ越え信号
とを第2図(b)に示す形式で、命令解読ステージに対
応して保持する。
分岐情報レジスタ417,418は、第2図(c)に示
す形式で、分岐情報と、命令解読回路403の出力する
命令語長とを、それぞれオペアンプアドレス生成、アド
レス変換の各ステージに対応して保持する。
分岐情報レジスタ419は、その分岐先アドレス、又は
次ページアドレスを、該分岐命令の大行こよって生成さ
れる実際の分岐先アドレス、又はページ越えによって得
られる次ページ論理アドレスから生成された実際の次ペ
ージアドレスに置換えて保持するレジスタである。
選択回路435は、信号線131を介して与えられるペ
ージ越え信号が“1”であれば、信号線130からの命
令アドレス生成回路431の出力を、“O”であれば信
号線129からのオペランドアドレス生成回路404の
出力を選択する。
予測確認回路433は、分岐命令の実行にあたっては、
生成される実際の分岐命令の実行の状態と、分岐情報レ
ジスタ418に保持される該分岐命令の予nj情報の一
致をとり、ページ越えにあたっては、次ページ論理アド
レスより得られる次ベジの実際のアドレス(次ページア
ドレス)と、分岐情報レジスタ418に保持される該ペ
ージ越えの予測情報の一致をとる回路である。
アドレス生成回路421は、分岐情報レジスタ419に
保持される分岐命令のアドレスと、該分岐命令白身の命
令語長とを加算し、分岐をしない側の命令の命令アドレ
スを生成する。
選択回路422は、分岐命令の分岐成否信号線110の
状態に応答して、該信号線の状態が“分岐する”を示す
時、線115を介して与えられる分岐情報レジスタ41
9の保持する分岐先アドレスを選択し、線110の状態
が“分岐しない2を示す時、線116を介して与えられ
るアドレス生成回路421の出力を選択し、選択された
信号を信号線113を介して、レジスタ423に供給す
る。
分岐成否信号線110は、命令実行回路407が分岐命
令を処理していない時は、常に“分岐をする”相当の状
態を示す。従って分岐情報レジスタ419にページ越え
情報が保持されているときは、選択回路422は、信号
線115を介して与えられる実際の次ページアドレスを
選択し、信号線113を介してレジスタ423に供給す
る。
レジスタ423は、分岐命令、又はページ越えの予測が
失敗したとき、分岐ヒストリテーブル410を更新する
ためのものであり、さらに信号線]17を介して命令ア
ドレスレジスタ411に命令先取りのための新たなアド
レスを供給する。
命令先取り制御回路424は、信号線106を介して分
岐ヒストリテーブル4〕0から与えられるBHTヒント
信号および予測確認回路433から信号線]]2を介し
て与えられる予iQ+失敗信号に基づいて、命令アドレ
スレジスタ411の入力と労咳ヒストリテーブル410
の更新を制御する回路である。
分岐ヒストリテーブル410の詳細については、例えば
、特開昭59−91550号公報を参照されたい。
第3図を参照すると、命令アドレス加算回路412は、
信号線101を介して与えられる命令アドレスレジスタ
411の保持する命令先取りアドレスに命令記憶回路4
08からの命令語の読出し幅である“8”を加算する回
路である。加算結果は、下位3ビツトが切り捨てられ、
常に8の倍数として、信号線107に出力される。又、
加算の際に、下位12ビツト以下より下位13ビットへ
のキャリーか生しると、命令先取りアドレスかページサ
イズである41<バイトを越えたことを意味するページ
越え信号を、信号線118へ出力するO 第4図を参照すると、命令アドレス生成回路43〕は、
レジスタ1101. 1102、およびアドレス加算器
1103.1104とから構成される。レジスタ110
1は、命令解読回路403より、信号線13つを介して
与えられる命令語長を保持し、レジスタ1102は、命
令の論理アドレスを保持する、それぞれオペランドアド
レス生成ステージに対応したレジスタである。なお、本
実施例では命令語長は2゜4.6.8バイトである。レ
ジスタ1101.1102の出力は、アドレス加算器1
103で加算され、次命令の論理アドレスを生成する アドレス加算S 1103で生成された次命令アドレス
は、レジスタ1102へ供給され、1マシンサイクル後
には、次の命令の命令アドレスとなる。アドレス加算器
1工03の出力は、さらにアドレス加算器1104へ供
給され、ここで“7°が加算され、その加算結果の下位
3ビツトは切捨てられて、信号線]30へ出力される。
従って、レジスタ1102に、ページ最後の命令アドレ
ス、詳しく述べれば、ベジの最後の8バイト内のアドレ
ス(ページサイズが4にバイトなので、4096n−8
以上かつ4096n未満のアドレス)が命令アドレスと
して保持されると、レジスタ1101の命令語長は最大
でも8バイトなので、信号線130には次ページの論理
アドレス(この場合、4096n)が出力される。
第5図を参照すると、命令整列回路414は、それぞれ
8バイトの命令語を保持る命令語レジスタ+201.1
202、整列すべき命令のアドレスの下位3ビツトのみ
を保持するワード内アドレスレジスタ1203、ページ
越え信号を保持するページ越えフリップフロップ120
4.  !205、フリップフロップ1206、120
7、ワード内アドレスレジスタ1203の指示により命
令語レジスタ1201.1202より命令を抽出する命
令整列器1208、命令整列器1208の出力する命令
より、その命令語長を解読する命令語長デコーグ120
9、ワード内アドレスレジスタ12o3の出力と、命令
語長デコーダ1209の出力とを加算し、次命令のワー
ド内アドレスを算出する加算器1210゜オアゲート1
2]1.1212、アントゲ−)1213.1214゜
1215、 1218とから構成される。
命令整列回路414は、第5図に示す他に、分岐予測が
働いたときの制御回路も含まれるが、本発明には直接関
係しないので説明の都合上、省略しである。加算器12
1oは、加算結果が“8”に等しいか“8°以上である
がを信号線2001および2002に出力する。
命令語レジスタ1201.1202は、通常連続した1
6バイトの命令語を保持し、その内容はレジスタ120
2から1201へと8バイトづつ左にシフトされつつセ
ットされる。
命令語レジスタ1201は、その保持する命令語が命令
整列器1208で全て抽出され、未抽出の命令語が1バ
イトもない空の時にセットされ、そのセットは、命令バ
ッファ409が空であれば命令記憶回路408の出力で
ある信号線102から、そうでない時は、命令語レジス
タ1202からなされる。
又、命令語レジスタ1202は、命令バッファ409が
空のとき命令記憶回路408の出力である信号線102
から、そうでないときは、命令バッファ409の出力で
ある信号線103からセットされる。
ページ越えフリップフロップ1204.1205は、そ
れぞれ命令語レジスタ1201.1202に対応してお
り、対応する命令語レジスタの保持する命令語がページ
の最後の8バイトの命令語である時、“1°を出力して
表示する。ページ越えフリップフロップ1204は、対
応する命令語レジスタ1201が信号線102からセッ
トされる時は、命令アドレス加算回路412より信号線
118を介して与えられるページ越え信号をセットし、
命令語レジスタ1201が命令語レジスタ1202より
セットされる時は、ページ越えフリップフロップ120
5よりセットされる。
同様に、ページ越えフリップフロップ1205は、対応
する命令語レジスタ1202が信号線102からセット
される時は信号線118からセットされ、命令エタレン
スタ1202か信号線10Bがらセラ]・される時は、
命令バッファ409の出力であるベーン越え信号線]2
3からセラ)・される。
命令語レジスタ1201.1202、およびページ越え
フリリブフロップ1204.1205は、アンド回路1
216の出力か“1”となるとセットされる。
ワード内ア1−レスレジスタ】2o3は、オアゲート1
212のNOR出力が“]”となるとセセラされる。
命令整列回路4]4より抽出され整列された命令は、信
号線104に出力されるが、信号線104には、整列さ
れた命令の何効表示としてE信号も含まれる。整列され
た命令語は、命令整列器1208より出力され、E信号
は、オアゲート+212のNOR出力より与えられる。
又、命令整列回路414は、ページ越え信号を信号線1
40に出力する。信号線140の該ページ越え信号は、
命令整列回路414がページ最後の命令を信号線ユ04
に出力し、供給した直後の1マシンサイクルのみ出力さ
れる。
第6図及び第7図は、第5図に示す命令整列回路4]4
の動作を説明するためのタイムチャ=1・である。エー
ス下、第6図、7図のタイムチャー1・と、第5図のブ
ロック図とを参照しつつ、命令整列回路4]4の動作に
ついて詳細に説明する。
第6図は、ベーン最後の8ハイドの命令語ワー1’ 1
か命令語レジスタ120]に、ワード1に後続する次の
・°゛−シの最初の8ハイドの命令語ワード■か命令語
レジスタ1202にセットされ、かつ、ワードIとワー
ド■に命令か跨っていない場合の命令整列回路4]4の
動作をボすタイムチャー1・である。
マシンサイクル〕で命令語レジスタ12o1と1202
こそれぞれワーF’ Iとnがセットされ、ワード1が
ヘ−7最後のF′、/・イトの命令語であるため、対応
するページ越えフリップフロップ+ 204には“1′
かセラ1され、ワード■はページ最後でな(・ため、対
応ずヨ、ベー〉・越えフリリブフロップ12o5には“
O′かセットされる。又、一ト内アトレスレンスタ]2
03には、これから抽圧、整列す−・ご命令Zのワード
内アドレスか保持されている。
〕 9 まず、ワード内アドレスレジスタ1203の指示により
、命令Zか命令整列器120εによって抽出され、信号
線104に出力される。それと同時に、該命令Zの命令
語長か命令語デコ−ダ12o9で解読され、該命令Zの
ワード内アドレスと、命令語長が加算器1210で加算
され、次命令Aのワード内アドレスが求められる。同時
に、加算結果が“8”に−5しいため、信号線2001
に“1“か出力される。ページ越えフリップフロップ1
204を信号線2001により、アンドゲート1214
の出力は“12に、オアゲート1212のOR出力の信
号線140は0” NOR出力は“1”、同じくオアゲ
ート1211の出力は“1“となり、アンドゲート12
16の出力も“1”となる。従って、信号線104には
命令ZとE信号が出力され、信号線140のページ越え
信号には“0”が出力される。
次のマシンサイクル2では、マシンサイクル1でのアン
ドゲート121Bの出力が“1“であったため、命令語
レジスタ1201では命令語レジスタ12o2こ保持さ
れていたワード■セットされ、ページ越えフリップフロ
ップ1204には、ページ越えフリップフロップ120
5の保持していた”0“がセットされる。同時に、ワー
ド内アドレスレジスタ1203には、マシンサイクル1
でオアゲート1212のNOR出力が]”であったため
、加算器1210の出力する命令Aのワード内アドレス
°○”がセットされる。又、フリップフロップ1207
には、マシンサイクルiてアンドゲート12j4の出力
が“1′であったため、“1”がセットされる。ワード
内アドレスレジスタ1203と命令整列器1208によ
り、命令Aか整列され、命令語長デコーダI209と加
算器12■0により、次命令Bのワード内アドレスが計
算される。フリップフロップ1207が“ユ”であるた
め、オアゲート1212のOR出力信号線140のペー
ジ越え信号は“1′となり、NOR出力は0”となり、
信号線104E信号は“0″となる。又、アンドゲート
1216の出力も“0”となる。
次のマシンサイクル3になると、マシンサイクル2でオ
アゲート1212のNOR出力と、アンドゲート121
6の出力がともに0“であったため、命全語レジスタ1
2[)1. 12[)2、ページ越えフリ・ノブフ。ツ
ブ1204.1205、ワード内アドレスレノスタ12
031t、すべてマシンサイクル2の内容が保持さレル
。マシンサイクル2の時と同様に、命令へが整列され信
号線]04に出力される。フリノブフ。ツブ1207は
“0′にセットされ、オアゲート1212のOR出力は
“O“にNOR出力は“コ2になり、アンドゲート12
16の出力は“0゛になる。従って、信号線104のE
信号は“1°になり、命令へが供給される。
第7図は、第6図と同様、ページ最後の8バイトの命令
語ワードIと、ワードIに後続する次のページの最初の
8バイトの命令語が、それぞれ前λ己命令語レジスタ1
201.1202にセットされ、かつ、ワードIとワー
ド■に命令が跨っている場合の動作を示すタイムチャー
トである。
マシンサイクル]で、フード内アドレスレジスタ120
3に、ワードI、Hに跨ったdiI令Aのワード内アド
レスがセットされ、命令語レジスタ1201にページ最
後のワードIが保持されているため、対応するベーン越
えフリップフロップ1204には“1゜かセットされて
いる。ワード内アドレスレジスタ1203と命令整列器
1208によって命令Aが整列され、命令語長デコーダ
1209と加算器I210によって、命令への次命令B
のワード内アドレスが求められると同時に、加算結果が
“8”を越えるために、信号線2002に1゛か出力さ
れる。フリップフロップ1204と信号線20Q2によ
り、オアゲート1211の出力は“]”に、]アントゲ
ー 1213の出力も“12になり、フリップフロップ
1206の否定出力は“1′であることから、アンドゲ
ート1215の出力も“1′に、オアゲート1212の
OR出力は“1”  NOR出力は“O゛になり、アン
ドゲート121Bの出力も“0゛となる。従って、信号
線104のE信号は“0“となり、信号線140のペー
ジ越え信号は“1”となる。
次のマシンサイクル2ては、前のマシンサイクル〕でオ
アゲート1212のNOR出力およびアンドゲート12
16の出力か”0′であったため、命令語レジスタ+2
01.1202、ページ越えフリップフロラブ1204
. 1205、およびワード内アドレスレジスタ120
3は、すべてマシンサイクル1のときの内容を保持する
。従って、マシンサイクル1と同様、命令Aが抽出整列
され、信号線104に出力され、加算器1210は命令
Aの次命令の命令Bのワード内アドレスを算出すると同
時に信号線2002に“1”を出力する。マシンサイク
ル1と同様、オアゲー; j211とアンドゲート12
!3の出力はともに゛】。
となるが、フリップフロップ1206が°1′にセット
されているため、アンドゲート1215の出力は“1°
とならず、オアゲート1212のOR出力は“0″に、
NOR出力は111に、そしてアンドゲート121Bの
出力も“1”になる。信号線104のE信号は“1“と
なり、信号線140のページ越え信号は“0”となって
命令Aが供給される。
次のマシンサイクル3では、ワード内アドレスレジスタ
1203によって、命令Bが供給される。
以上、第6図、第7図の動作をまとめると、命令整列回
路414は、ページ最後のワードを受取ると、ページ最
後のワードにあって、次ページの最初のワードに跨って
いない最後の命令を供給した後、命令の供給を1マシン
サイクルとめて、ベーン越えを出力した後、後続の命令
の供給を再開する。
第8図を参照すると、予測確認回路433は、レジスタ
1401.1402、フリップフロップ1403゜14
04、1405、アドレス比較器1406、アンドゲー
トj4Q7. i4Qε、排他的論理和を求めるイクス
クルーシブオアゲート1409、およびオアゲート14
10゜1411とから構成される。
レジスタ1401には、アドレス変換回路432で変換
された実際の分岐先アドレス、又は次ページの実アドレ
スが、信号線109を介してセットされる。レジスタ1
402には、分岐情報レジスタ418に保持される予測
された分岐先アドレス、又は次ページの最初のアドレス
が、信号線108を介してセットされる。
プリップフロップJ403には、分岐情報レジスタ41
8に保持されるページ越えビットが、信号線134を介
してセットされる。フリップフ口ップ1405には、分
岐情報レジスタ4ユ8の保持するVビットがセットされ
る。
アドレス比較器1406は、レジスタ140jと140
2の内容の一致をチエツクし、不一致の場合“1”を出
力する。従って、フリップフロップ1404には、予測
がなされたにもかかわらず、予測アドレスと実際のアド
レスが不一致の時、“1°がセットされる。オアゲート
1410とアンドゲート1408によって、ページ越え
、又は分岐する分岐命令について予測されたが、予測さ
れたアドレスが不一致の場合が検出される。イクスクル
ーシブオアゲート1409によって、ページ越えや、分
岐する分岐命令でないのに予測があった場合と、逆にペ
ージ越えや分岐する分岐命令であるのに、予測がなかっ
た場合が検出される。アンドゲート1408の出力とイ
クスクルーシブオアゲート1409の出力は、合わせて
、オアゲート1411より、予測失敗信号として、信号
線112に出力される。
第9図を参照すると、命令先取り制御回路424は、フ
リップフロップ1501、バッファゲート1502. 
1503. 1504、およびアンドゲート1505か
ら構成される。
フリップフロップ1501は、信号線1]2を介して与
えられる予flpI失敗信号を1マシンサイクル保持す
るためのフリップフロップである。この命令先取り制御
回路424の出力は、アドレスレジスタ411の前段に
あるセレクタの選択指示信号となる。信号線106を介
して与えられるBITヒツト信号が“1”であれば、信
号線105に出力される予mlされたアドレスを選択す
るよう指示し、信号線112の予測失敗信号が“1°で
あれば、まず信号線114に出力される分岐命令、又は
ページ最後の命令のアドレスを選択するよう指示し、こ
のアドレスで分岐ヒストリテーブル410の更新を行い
、]ママシンサイクルには、レジスタ423の出力であ
る信号線117を選択するよう指示し、上記のいづれで
もない時は、信号線107に出力される+8されたアド
レスを選択するよう指示する。
次に、第10図に示すような命令群を実行した場合の動
作について、第1図および第11図のタイムチャートを
参照しつつ説明する。
第10図は、論理アドレス空間における命令の配列の一
例を示す図であって、ページ境界を跨いで命令Aがあり
、その前後に命令ZとBがある。
命令Aの前半のある8バイトワードの実アドレスは40
96n−8であり、後半のある8バイトワードの実アド
レスは4096mとする。又、実アドレス4096mに
対応する論理アドレスは<A>’ 、命令Zの論理アド
レスを<2>する。
第11図を参照すると、まずマシンサイクル0において
、命令アドレスレジスタ411に、ページ最後の8バイ
トのアドレス4096n−8がセットされ、このアドレ
スによって分岐ヒストリテーブル410が索引され、ペ
ージ越え予測情報が取出され、信号線106に、BHT
ビット信号が出力される。同時に、命令アドレス加算回
路412によってアドレス4096n−8に8が加えら
れ、信号線118にページ越え信号が出力される。
次のマシンサイクル1では、分岐ヒストリテーブル41
0より取出された予測された次ページアドレス4096
mが命令アドレスレジスタ411にセットされ、命令記
憶回路408、命令バッファ409、命令整列回路41
4によって命令Zの供給(Ic)が行われる。
マシンサイクル2では、命令Aの供給は抑止され、かわ
りにページ越え信号ρ′・信号線140に出力され、命
令Zの解読(ID)が行われる。
マシンサイクル3では、命令Zのオペランドアドレス生
成(OA)が行われ、命令Aは命令整列回路414より
供給される。ページ越え(p o)に関する情報として
、ページ越え信号と、ページ最後の8バイトのアドレス
4096n−8と、予測されたページアドレス4096
mが、分岐情報レジスタ416に保持される。
次のマシンサイクル4では、命令Zのオペランドアドレ
スのアドレス変換(A T)が行われ、命令アドレス生
成回路431 (!A)では、命令Zの論理アドレス<
2>に命令Zの命令語長が加算サレ、命令Aの論理アド
レス<A>が求められ、サラに、7′が加算され下位3
ビツトが切捨てうして、次ページの論理アドレスくA〉
′が求めラレ、信号線130に出力される。又、後続の
命令への解読(ID)が行われる。
マシンサイクル5では、命令Zのオペランドの読出しく
OC)が行われ、ページ越えについては、次ページ論理
アドレスくA〉′が、アドレス変換回路432で変換さ
れ、実アドレスa′が信号線109に出力される。又、
命令Aのオペランドアドレス生成(OA)が行われる。
次のマシンサイクル6で、予測の確zB(pC)が予測
確認回路433で行われ、実際の次ページアドレスa′
と、予測された次ページアドレス4096mとが比較さ
れる。一致していれば、命令Aおよびその後続の命令は
、そのまま実行される。もし、不一致であれば、予測失
敗信号が、信号線112に出力され、次のマシンサイク
ル7で命令A以降の命令はキャンセルされ、無効化され
分岐ヒストリテーブル410がa′を予測するよう更新
(HU )された後、アトしスa′で命令語が取出され
、正しい命令A以降の供給が再開される。
ページ最後の命令の次に、ページ越え処理、そしてその
次にページ越え予測に従った命令が実行されるので、ペ
ージ越え処理で予測の確認を行い、誤っていた時は、ペ
ージ越え処理の直後以降の命令をキャンセルすることに
なり、有効な命令をキャンセルしたり、キャンセルすべ
き命令がキャンセルされないというようなことはなく、
常に必要最小限の命令のみがキャンセルされる。
さてこの場合、ページ越え予測が的中して成功すれば、
ページ越えの処理に要する時間は1マシンサイクルであ
り 7Z 測情報が分岐ヒストリテーブルに登録されて
いない、あるいは登録されていても誤っていた場合には
、6マシンサイクルを要する。通常の的中率は約90%
であることが経験的に知られているので、ページ越え処
理に要する時間は、平均的に、 IXo、9+6X0.1−1.5 となり、1.5マシンサイクルである。
尚、本発明を適用しない特開昭59−91550号公報
では、ページ越え処理に(IC)、  (ID)。
IA、ATの4マシンサイクルを要しているので、本発
明により2.5マシンサイクルの2速化を実現できる。
第12図は本発明の第2の実施例による命令先取り装置
の構成を示すブロック図である。
第2の実施例による命令先取り装置は、第1図に示され
た第1の実施例による命令先取り装置の命令解読回路4
03、命令整列回路414が、それぞれ命令解読回路4
38、命令整列回路437に変形され、さらにページ越
え制御回路436が付加されている点を除いて、第1図
に示されたものと同様の構成を有する。以下、第1の実
施例と同一の機能を有するものは同一参照符号を付し、
それらの説明を省略する。
命令整列回路437は、命令バッファ409が空であれ
ば信号線102と118の情報を、又、命令バッファ4
09が空でなければ、命令バッファ409の情報を選択
し、命令語を抽出して信号線104を介して命令解読回
路438に命令を供給すると同時に、ページ越え信号を
信号線140に出力する回路である。
分岐情報レジスタ416は、分岐情報切換回路415の
出力を第13図(a)に示す形式で、命令解読ステージ
に対応して保持する。
分岐情報l/ジスタ@ 17 * ’+ X 8は、第
13図(b)に示す形式で、分岐情報と、ページ越え制
御回路436より信号線142を介して出力されるペー
ジ越え信号と命令解読回路438より信号線139を介
して出力される命令語長とを、それぞれオペランドアド
レス生成、アドレス変換の各ステージに対応して保持す
る。
ページ越え制御回路436は、命令整列回路437より
信号線140を介して出力されるページ越え信号を命令
解読回路438より信号線141を介して与えられるア
ドレス変換命令信号によって制御し、tSS綿線142
ページ越え信号として出力する回路である。
第14図を参照すると、命令整列回路437は、それぞ
れ8バイトの命令語を保持する命令語レジスタ1601
.1602、整タリすべき命令のアドレスの下位3ビツ
トのみを保持するワード内アドレスレジスタ1603、
ページ越え信号を保持するページ越えフリップフロップ
1604 1605、ワード内アドレスレジスタ160
3の指示により命令語レジスタ16011602より命
令を抽出する命令整列器1606、命令整列器1606
と同様に命令を抽出してその命令コードのみを出力する
命令コード整列器1607.1608、命令コード整列
器1807.1608の出力する命令コードを解読して
、その命令語長を出力する命令語長デコーダ1609.
 IBIQ、ワード内アドレスレジスタ1603の出力
と命令語長デコーダ】609の出力とを加算する加算器
1611、加算器1611の出力と命令語長デコーダ1
610の出力とを加算する加算器1612、アンドゲー
ト1813.1614.1615、およびオアゲート1
6i6 1617とから構成され、整列された命令は、
信号線104に、ページ越え信号は信号線140にそれ
ぞれ出力される。
命令整列回路437は、第14図に示す他に分岐予測が
働いた時の制御回路も含まれるが、・本発明には直接関
係しないので説明の都合上、省略しである。
命令語レジスタ1801.1602は、通常連続した1
6バイトの命令語を保持し、その内容はレジスタ160
2から1601へと8バイトづつシフトされつつセット
される。
命令語レジスタ1601は、その保持する命令語が命令
整列器1606で全て抽出され、未抽出の命令語が1バ
イトもない空の時にセットされ、そのセットは命令バッ
ファ409が空であれば命令記憶回路408の出力であ
る信号線102から、そうでない時は、命令語レジスタ
1602からなされる。又、命令語レジスタ1602は
、命令バッファ409が空の時、命令記憶回路408の
出力である信号線102から、そうでない時は、命令バ
ッファ409の出力である信号線〕03からセットされ
る。
ページ越えフリップフロップ1604.1605は、そ
れぞれ命令語レジスタ1801. In2に対応してお
り、対応する命令語レジスタの保持する命令語がページ
最後の8バイトの命令語である時、°1”を出力して表
示する。ページ越えフリップフロップ1604は、対応
する命令語レジスタ1601が信号線102からセット
される時は、命令アドレス加算回路412より信号線1
18を介して与えられるページ越え信号をセットし、命
令語レジスタ1601が命令語レジスタIC02よりセ
ットされる時は、ページ越えフリップフロップ1605
よりセットされる。
同様に、ページ越えフリップフロップ1605は、対応
する命令語レジスタ1602が信号線102からセット
される時は信号線118からセットされ、命令語レジス
タ1802が信号線103からセットされる時は命令バ
ッファ409の出力であるページ越え信号線123から
セットされる。
本実施例の命令先取り装置で扱う命令語長は、2.4,
6.8バイトの4種類であり、命令アドレスは必ず偶数
なので、8バイトの命令語の中に命令の先頭の存在する
可能性があるのは左から数えてバイト0,2,4.6の
4ケ所である。命令コードは]バイトであり、命令の先
頭にあるので、命令コードを取出すには、命令語レジス
タのバイト0,2,4.6をワード内アドレスレジスタ
の出力する値の上位2ビツト(命令アドレスは偶数なの
で下位1ビツトは常に0)の指示で選択することになる
命令コード整列器1607は、上記動作を行う回路であ
り、その出力は命令整列器1606の出力のバイトOと
等しい。
命令語長デコーダ1609は、命令コード整列器160
7の出力を解読するので、その出力は、現在整列してい
る命令の命令語長である。従って、命令語長デコーダ1
609の出力とワード内アドレスレジスタ1603の出
力を加算する加算器1611の出力は、次に整列すべき
命令のアドレスの下位ビットとなり、その下位3ビツト
はワード内アドレスレジスタ1603へ導かれる。
加算器1811は加算結果が8と等しいか、8より大き
いかを信号線2101および2102にそれぞれ出力す
る。信号線2]01.、2102は、オアゲート161
7て論理和かとられ、命令語レジスタ1601.160
2、およびページ越えフリップフロップ1603. 1
604のセット信号となる。
従って、次に整列すべき命令のワード内アドレスが8以
上となると、命令語レジスタ16o1には、命令語レジ
スタ1602の内容がセットされる。
加算器1611の出力4ビツトは、さらに命令コート整
列器1808と加算器1612へ接続されている。
命令コード整列器1608は、命令語レジスタ1601
1602を合わせた16バイトの命令語により加算器1
611の出力によって命令コードを取出す回路であり、
その出力は、命令語長デコーダ1B10へ接続される。
従って、命令語長デコーダ161oの出力は、次に整列
すべき命令の命令語長であって、それは加算51612
で加算器1811の出力と加算され、次の次に整列すべ
き命令のアドレスの下位ビットの算出に使用される。
加算器1612ノ出力は、信号線2103.2104テ
あって、それぞれ、加算結果か8より大きいか、]6よ
り大きいかを表示する。
第15図は、第14図の命令整列回路437の動作の原
理を説明する図であり、命令語レジスタ1601、16
02の16バイトの命令語の中に含まれる命令の長さと
位置の関係を示している。縦に長い太線はページ境界を
示しており、従って、縦線のすぐ左の命令語レジスタに
対応するページ越えフリップフロップは“1”である。
16バイトの命令語のうち、ページ最後の命令が、太線
で囲まれている。太線の中の数字はそのページ最後の命
令の命令語長であり、さらにページ最後の命令の右側に
ある数字は、ページ最後の命令の直後の命令の命令語長
を示している。
例えば、第15図(a)を参照すると、命令語レジスタ
l602がページ最後の8バイトの命令語であり、16
バイトの命令語のうちバイト6から始まる8バイトの命
令は、その直後の命令が4.6゜8バイト長の命令であ
れば、ページ最後の命令であることを示している。第6
図(g) 、(h) 、(+) 、(D3つ については、直後の命令の命令語長についての条件はな
い。
第15図を参照すると、これから整列すべき命令がペー
ジ最後の命令である条件は、(a)から(r)について
は、ページ越えフリップフロップ1605(P L)が
“1°であってこれから整列すべき命令のワード内アド
レス(WA)整列すべき命令の6令3長fl(WA)の
和が8より大きくて、かつ、整列すべき命令の次の命令
の命令語長f I (WA+ f T  (WA) )
と、整列すべき命令のワード内アドレス(WA)と整列
すべき命令の命令語長f I  (WA)の和が16よ
り大きい場合であることを示している。ここで、fl(
x)は、16バイトのうち、バイトXにある命令語長を
意味するとする。
同様に、(g)から(i)については、ページ越えフリ
ップフロップ1804 (P IJ )が“1′であっ
て、整列すべき命令のワード内アドレス(WA)と整列
すべき命令の命令語長の和が8に等しい場合であること
を示しており、(k)から(p)については、ページ越
えフリップフロップl[104(PU)が“1゜であっ
て、整列すべき命令のワード内アドレス(WA)と、整
列すべき命令の命令語長f I (WA)と、次に整列
すべき命令の命令語長f I  (WA+ f I  
(WA) )との和が8より大きい場合であることを示
している。
第14図にもどると、アンドゲート1B13.16+4
゜l615とオアゲート1616は、上記3つの条件の
論理をとっている回路であり、ページ最後の命令が整列
され、信号線104に出力される時、同時にページ越え
信号が信号線140に出力される。
第16図を参照すると、ページ越え制御回路436は、
フリップフロップ1701.1702、バッファゲート
1703、アンドゲート1704.1705、オアゲ−
) 170[iとから構成される。
ページ越え制御回路436は、信号線140を介して命
令整列回路437より与えられるページ越え信号をフリ
ップフロップ1701で1マシンサイクル保持した後、
命令解読回路438より信号線141を介して与えられ
るアドレス変換命令信号との論理をとって、信号線14
2にページ越え信号を出力する。信号線コ41のアドレ
ス変換信号は、命令解読回路438で解読した命令がア
ドレス変換を行う命令の時、“1”が出力される。
ここでいうアドレス変換とは、オペランドの読み書きの
ためのアドレス変換や、分岐命令の分岐先のアドレス変
換をさし、通常の命令の先取りについてはアドレス変換
を行わないので、含まれない。
さて、バッフアゲ−1−1703、アンドゲートI 7
04゜l705、フリップフロップ1702およびオア
ゲートl706によって、解読した命令がアドレス変換
を行う命令である時は、ページ越え信号を1マシンサイ
クルおくらせて出力し、アドレス変換を行わない命令の
時は、すぐ出力する。
ページ越え信号が17シンサイクル保留された時は、信
号線〕42のページ越え信号と同時に、信号線143に
命令供給抑止信号が1マシンサイクル出力される。
命令供給抑止信号は命令解読回路438へ送られ、ペー
ジ最後の命令の次の命令の供給を1サイクルおくらせる
のに使用される。
従って、ページ最後の命令がアドレス変換を行わない命
令の時は、ページ最後の命令のオペランドアドレス生成
ステージへの命令の供給と、ページ越え信号の供給は同
時に行イつれ、アドレス変換を行う命令の時は、ページ
最後の命令を供給した直後に1マシンサイクル命令の供
給を抑止して、ページ越え信号を供給して、その後でペ
ージ最後の命令の次の命令を供給する。
次に第10図に示すような命令群を実行した場合の動作
について、第12図および第17図、第18図のタイム
チャートを参照しつつ説明する。
第″、7図を参照すると、まずマシンサイクル0におい
て、命令アドレスレジスタ411に、ページ最後の8バ
イトのアドレス4096n−8がセットされ、このアド
レスによって分岐ヒストリテーブル4〕0が索引され、
ページ越え予1]情報が取出され、信号線106に、B
HTヒツト信号が出力される。同時に、命令アドレス加
算回路412によってアドレス4096n−8に8が加
えられ、信号線118にページ越え信号が出力される。
次のマシンサイクル1では、分岐ヒストリテーブル41
0より取出された予測された次ページアドレス4096
mが命令アドレスレジスタ411にセットされ、命令記
憶回路408、命令バッファ409、命令整列回路43
7によってアドレス変換を行わない命令Zの供給(IC
)が行われる。
同時に、命令Zがページ最後の命令であるため、信号線
140にページ越え信号が出力される。
マシンサイクル2では命令Aの供給(IC)が行われ、
命令Zは命令の解読(I D)が行われる。
命令Zはアドレス変換を行わない命令であるため、信号
線141のアドレス変換信号には“0”が出力され、信
号線142のページ越え信号が出力される。
マシンサイクル3では、命令Zのオペランドアドレス生
成(OA)が行われ、同時に命令アドレス生成回路43
1で命令Zの論理アドレス<2>に命令Zの命令語長が
加算され、命令Aの論理アドレス<A>か求められ、さ
らに7′″が加算され、その下位3ビツトが切捨てられ
て次ページの論理アドレスくA〉′が求められ、信号線
130に出力される。又、後続の命令Aの解読(ID)
が行われる。
次のマシンサイクル4では、命令Zのアドレス変換(A
T)が行われるはずであるが、命令Zはアドレス変換を
行わない命令であるため、実際には何も行われない。か
わりに、ページ越え処理(PO)として、次ページ論理
アドレスがアドレス変換され、実アドレスa′が信号線
109に出力される。又、命令Aのオペランドアドレス
生成(OA)が行われる。
マシンサイクル5では、予測の確認(P C)が予測確
認回路433で行われ、実際の次ページアドレスa′ 
と予測された左ページアドレス4096mとが比較され
る。一致していれば、命令Aおよびその後続の命令はそ
のまま実行される。
もし、不一致であれば、予δFJ失敗信号が信号線11
2に出力され、次のマシンサイクル6て命令A以降の命
令はキャンセルされ、無効化され、分岐ヒストリテーブ
ル4コ0がa′を正しく予flF+するよう更新(HU
)され、アドレスa′で命令語カ取り出され、正しい命
令A以降の供給が再開される。
この場合、ページ越えの予測が的中して成功すれば、ペ
ージ越え処理に要するマシンサイクルは0であり、予I
I情報が分岐ヒストリテーブル登録されていない、ある
いは登録されていても、誤っていた場合は5マシンサイ
クルを要する。
第18図を参照すると、第17図と同様のタイムチャー
トが示しである。第17図との違いは、ページ最後の命
令Zがアドレス変換を行う命令であることである。その
ため、マシンサイクル2で命令Zの解読<ID)が行わ
れると、アドレス変換命令信号が命令解読回路438か
ら信号線141に出力される。このため、命令Zは次の
マシンサイクル3てオペランドアドレス生成(OA)が
行われ、マシンサイクル4ではオペランドのアドレス変
m (AT)が行われるが、後続の命令Aは]マシンサ
イクル抑止され、マシンサイクル34て命令のV(読(
ID)が行われ、マシンサイクル6でベランドのアドレ
ス変換(AT)が行われる。そのかわり、マシンサイク
ル4ては、命令アドレス生成回路431によって次ペー
ジ論理アドレスくA〉′が求められ、信号線130に出
力され、次のマシンサイクル5でアドレス変換(AT)
され、実アドレスa′が信号線109に出力される。
マシンサイクル6では、命令Zの演W (EX)が行わ
れ、ページ越えの予測の確認が行われる。
予測が正しければ、命令Aおよびその後続の命令はその
まま実行され、正しくなければ、次のマシンサイクル7
で命令A以降の命令はキャンセルされ、分岐ヒストリテ
ーブル410の更新(HU)が行われたのち、正しいア
ドレスa′で命令語が取出され、正しい命令の供給が再
開される。この場合、予測が的中すればページ越え処理
は、1マシンサイクル、失敗すれば6マシンサイクルを
要することになる。
ページ最後の命令がアドレス変換をしない第17図の場
合でも、アドレス変換をする第18図の場合でも、ペー
ジ越えの予測に従った命令は、ページ越えの処理の直後
に処理されるので、ページ越え処理で予測の確認を行い
、誤っていた時、ページ越え処理の直後以降の命令をキ
ャンセルすることになり、有効な命令がキャンセルされ
たり、キャンセルすべき命令がキャンセルされないとい
うようなことはなく、常に必要最小限の命令のみがキャ
ンセルされる。
予測の的中率、およびアドレス変換を行わない命令の出
現率は、経験的にそれぞれ90%、25%程度であるこ
とが知られている。従って、本実施例によるページ越え
処理に要する時間は、平均的に、 (OX O,9+  5X O,1) X O,25+
 (LX O,9+ 6 X O,1)X O,75−
1,25となり1.25マシンサイクルである。
本発明を適用しない特開昭59−91550号公報では
、ページ越え処理に(IC)、(ID)。
IA、ATのマシンサイクルを要しているの・で、本発
明により2.75マシンサイクルの高速化を実現できる
[発明の効果] 以上説明したように本発明は、ページ越えについての情
報を分岐ヒストリテーブルに登録し、その情報によって
命令の先取りを行うことによって、ページ越え処理の高
速化を実現できるという効果がある。
【図面の簡単な説明】
第1図は本発明の第1の実施例による命令先取り装置の
構成を示すブロック図、第2図は第1図中の分岐ヒスト
リテーブル、分岐情報バッファ、分岐情報レジスタの格
納形式を示す図、第3図は第1図の命令アドレス加算回
路412の詳細な構成を示すブロック図、第4図は第1
図の命令アドレス生成回路431の詳細な構成を示すブ
ロック図、第5図は第1図の命令整列回路414の詳細
な構成を示すブロック図、第6図及び第7図は命令整列
回路4]4の動作を説明するだめのタイムチャート、第
8図は第1図の予測if認四回路33の詳細な構成を示
すブロック図、第9図は第1図の命令先取り制御回路4
24の詳細な構成を示すブロック図、第10図は命令の
配列の一例を示す図、第11図は第10図の命令を実行
した時の第1の実施例の動作を説明するためのタイムチ
ャート、 第12図は本発明の第2の実施例による命令先取り装置
の構成を示すブロック図、第13図は第12図中の分岐
ヒストリテーブル、分岐情報バッファ、分岐情報レジス
タの格納形式を示す図、第14図は第12図の命令整列
回路437の詳細な構成を示すブロック図、第15図は
命令整列回路4゛37の動作の原理を説明する図、第1
6図は第12図のページ越え制御回路436の詳細な構
成を示す図、第17図、第18図は第10図の命令を実
行した時の第2の実施例の動作を説明するためのタイム
チャートである。 403・命令解読回路、404 オペランドアドレス生
成回路、406・オペランド読出し回路、407・・命
令実行回路、408・命令記憶回路、409・−命令バ
ッファ、410・・分岐ヒストリテーブル、4]〕・・
・命令アドレスレジスタ、412命令アドレス加算回路
、413・・分岐情報バッファ、4]4・・命令整列回
路、4コ5・・・分岐情報切替回路、416,417.
418□419・・・分岐情報レジスタ、421・・ア
ドレス生成回路、422・・選択回路、423・・レジ
スタ、424・・命令先取り制御回路、425・・・更
新指示フリップフロップ、43コ・・・命令アドレス生
成回路、432・アドレス変換回路、43B・・・予測
確認回路、435・・・選択回路、436・ページ越え
制御回路、437 ・命令整列回路、438・・・命令
解読回路、100ドアドレス加算器、1101 110
2・・・レジスタ、1103. 1104・・アドレス
加算器、1201.1202・・命令語レジスタ、12
03・・ワード内アドレスレジスタ、1204.120
5・・ページ越え表示フリップフロップ、]、20B、
  1207・・フリップフロップ、1208・・・命
令整列器、1209・・・命令語長デコーダ、1210
・・・加算器、1211.1212・・・オアゲート、
1213.1214. i’215゜1216・・・ア
ントゲ−1・、1401.1402・・・レジスタ、1
403、1404.1405・・・フリップフロップ、
140B・・・アドレス比較器、1407.1408−
7 ンドゲート、14o9・・・イクスクルーシブオア
ゲート、1410.1411・・・オアゲート、150
1・・・フリップフロップ、1502.1503150
4・−・バッファゲート、IDLIO・・・アンドゲー
ト、1801、1602・・・命令語レジスタ、160
3・・・ワード内アドレスレジスタ、lH4,4605
・・・ページ越えフリップフロップ、1606・・・命
令整列器、1607.1608・・・命令コード整列器
、1609.1610・・・命令語長デコーダ、161
1、1612・・・加算器、1613.1814.16
15・・・アンドゲート、161B、 1[i+7・・
・オアゲート、1701.1702・・・フリップフロ
ップ、1703・・・バッファゲート、1704゜17
05・・・アンドゲート、1706・・・アオゲート。

Claims (1)

  1. 【特許請求の範囲】 1、ページングを行い、命令語を保持し、実アドレスで
    アクセスされるキャッシュメモリと、分岐命令の実アド
    レスを指定する情報と該分岐命令の分岐先実アドレスを
    含む情報とを対にして複数対記憶する分岐ヒストリテー
    ブルとを有し、アドレス変換装置に結合された命令先取
    り装置に於いて、 ページの最後にある命令の実アドレスを指定する情報と
    該命令の次命令の実アドレスを含む情報とを対にして、
    前記分岐ヒストリテーブルに登録する登録手段と、 先取りすべき命令の実アドレスがページ境界を越えた時
    に、該先取りすべき命令の論理アドレスのアドレス変換
    を前記アドレス変換装置に指示する指示手段と、 該アドレス変換の結果を待たずに、前記分岐ヒストリテ
    ーブルで予測された分岐先アドレスとして報告されるペ
    ージ最後の命令の次命令の実アドレスにより命令を供給
    する供給手段と を備えることを特徴とする命令先取り装置。 2、ページングを行い、命令語を保持し、実アドレスで
    アクセスされるキャッシュメモリと、分岐命令の実アド
    レスを指定する情報と該分岐命令の分岐先実アドレスを
    含む情報とを対にして複数対記憶する分岐ヒストリテー
    ブルとを有し、アドレス変換装置に結合された命令先取
    り装置に於いて、 ページの最後にある命令の実アドレスを指定する情報と
    該命令の次命令の実アドレスを含む情報とを対にして、
    前記分岐ヒストリテーブルに登録する登録手段と、 先取りすべき命令の実アドレスがページ境界を越えた時
    に、直前に先取りした命令がアドレス変換を行わない命
    令の場合には、該直前に先取りした命令の動作として該
    直前に先取りした命令の次のページの論理アドレスのア
    ドレス変換を前記アドレス変換装置に指示する第1の指
    示手段と、前記先取りすべき命令の実アドレスがページ
    境界を越えた時に、前記直前に先取りした命令がアドレ
    ス変換を行う命令の場合には、該直前に先取りした命令
    の供給の後に、該直前に先取りした命令の次のページの
    論理アドレスのアドレス変換を前記アドレス変換装置に
    指示する第2の指示手段と、 該アドレス変換の結果を待たずに、前記分岐ヒストリテ
    ーブルで予測された分岐先アドレスとして報告されるペ
    ージの最後の命令の次命令の実アドレスにより命令を供
    給する供給手段と を備えることを特徴とする命令先取り装置。
JP63234903A 1988-09-21 1988-09-21 命令先取り装置 Expired - Lifetime JP2722523B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP63234903A JP2722523B2 (ja) 1988-09-21 1988-09-21 命令先取り装置
FR8912407A FR2636748B1 (fr) 1988-09-21 1989-09-21 Dispositif de prelecture d'instruction capable de traiter les changements de page sans perte de temps
US07/410,577 US5168557A (en) 1988-09-21 1989-09-21 Instruction prefetching device having a history table for memorizing page last real instruction addresses and page-over all real instruction addresses providing for quicker page-over processing time

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63234903A JP2722523B2 (ja) 1988-09-21 1988-09-21 命令先取り装置

Publications (2)

Publication Number Publication Date
JPH0283735A true JPH0283735A (ja) 1990-03-23
JP2722523B2 JP2722523B2 (ja) 1998-03-04

Family

ID=16978106

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63234903A Expired - Lifetime JP2722523B2 (ja) 1988-09-21 1988-09-21 命令先取り装置

Country Status (3)

Country Link
US (1) US5168557A (ja)
JP (1) JP2722523B2 (ja)
FR (1) FR2636748B1 (ja)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2508280B2 (ja) * 1989-07-28 1996-06-19 日本電気株式会社 分岐ヒストリテ―ブル制御方式
JPH03156542A (ja) * 1989-08-29 1991-07-04 Hitachi Ltd アドレス変換装置及びそのためのアドレス情報の管理方法
JPH04340145A (ja) * 1991-05-17 1992-11-26 Nec Corp キャッシュメモリ装置
JP2682264B2 (ja) * 1991-05-21 1997-11-26 日本電気株式会社 プログラムカウンタ装置
WO1993017384A1 (en) * 1992-02-27 1993-09-02 Wang Laboratories, Inc. Cpu having pipelined instruction unit and effective address calculation unit with retained virtual address capability
US5507028A (en) * 1992-03-30 1996-04-09 International Business Machines Corporation History based branch prediction accessed via a history based earlier instruction address
US5392410A (en) * 1992-04-30 1995-02-21 International Business Machines Corporation History table for prediction of virtual address translation for cache access
US5404471A (en) * 1992-11-20 1995-04-04 International Business Machines Corp. Method and apparatus for switching address generation modes in CPU having plural address generation modes
JP3254019B2 (ja) * 1992-11-30 2002-02-04 富士通株式会社 データ先読み制御装置
US5588128A (en) * 1993-04-02 1996-12-24 Vlsi Technology, Inc. Dynamic direction look ahead read buffer
BR9406606A (pt) * 1993-05-14 1996-01-02 Intel Corp Mecanismo para história especulativa em um buffer objeto de ramificação
KR100310581B1 (ko) * 1993-05-14 2001-12-17 피터 엔. 데트킨 분기목표버퍼의추측기록메카니즘
US5388247A (en) * 1993-05-14 1995-02-07 Digital Equipment Corporation History buffer control to reduce unnecessary allocations in a memory stream buffer
US5925125A (en) * 1993-06-24 1999-07-20 International Business Machines Corporation Apparatus and method for pre-verifying a computer instruction set to prevent the initiation of the execution of undefined instructions
JP2596712B2 (ja) * 1993-07-01 1997-04-02 インターナショナル・ビジネス・マシーンズ・コーポレイション 近接した分岐命令を含む命令の実行を管理するシステム及び方法
US5887174A (en) * 1996-06-18 1999-03-23 International Business Machines Corporation System, method, and program product for instruction scheduling in the presence of hardware lookahead accomplished by the rescheduling of idle slots
US5813045A (en) * 1996-07-24 1998-09-22 Advanced Micro Devices, Inc. Conditional early data address generation mechanism for a microprocessor
US6044222A (en) * 1997-06-23 2000-03-28 International Business Machines Corporation System, method, and program product for loop instruction scheduling hardware lookahead
US8127121B2 (en) 1999-01-28 2012-02-28 Ati Technologies Ulc Apparatus for executing programs for a first computer architechture on a computer of a second architechture
US8074055B1 (en) 1999-01-28 2011-12-06 Ati Technologies Ulc Altering data storage conventions of a processor when execution flows from first architecture code to second architecture code
US7013456B1 (en) 1999-01-28 2006-03-14 Ati International Srl Profiling execution of computer programs
US8065504B2 (en) 1999-01-28 2011-11-22 Ati International Srl Using on-chip and off-chip look-up tables indexed by instruction address to control instruction execution in a processor
US7065633B1 (en) 1999-01-28 2006-06-20 Ati International Srl System for delivering exception raised in first architecture to operating system coded in second architecture in dual architecture CPU
US7275246B1 (en) 1999-01-28 2007-09-25 Ati International Srl Executing programs for a first computer architecture on a computer of a second architecture
US7941647B2 (en) 1999-01-28 2011-05-10 Ati Technologies Ulc Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination
US7111290B1 (en) 1999-01-28 2006-09-19 Ati International Srl Profiling program execution to identify frequently-executed portions and to assist binary translation
US6954923B1 (en) 1999-01-28 2005-10-11 Ati International Srl Recording classification of instructions executed by a computer
US6978462B1 (en) 1999-01-28 2005-12-20 Ati International Srl Profiling execution of a sequence of events occuring during a profiled execution interval that matches time-independent selection criteria of events to be profiled
US6763452B1 (en) 1999-01-28 2004-07-13 Ati International Srl Modifying program execution based on profiling
US6779107B1 (en) 1999-05-28 2004-08-17 Ati International Srl Computer execution by opportunistic adaptation
US7254806B1 (en) 1999-08-30 2007-08-07 Ati International Srl Detecting reordered side-effects
US6651162B1 (en) 1999-11-04 2003-11-18 International Business Machines Corporation Recursively accessing a branch target address cache using a target address previously accessed from the branch target address cache
US6934832B1 (en) 2000-01-18 2005-08-23 Ati International Srl Exception mechanism for a computer
US7085915B1 (en) 2000-02-29 2006-08-01 International Business Machines Corporation Programmable prefetching of instructions for a processor executing a non-procedural program
JP2003196156A (ja) * 2001-12-28 2003-07-11 Fujitsu Ltd 情報処理装置および情報処理方法
US6983356B2 (en) * 2002-12-19 2006-01-03 Intel Corporation High performance memory device-state aware chipset prefetcher
US6925928B2 (en) * 2003-09-18 2005-08-09 Anthony Fox Trash compactor for fast food restaurant waste
CN102662690B (zh) * 2012-03-14 2014-06-11 腾讯科技(深圳)有限公司 应用程序启动方法和装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4218743A (en) * 1978-07-17 1980-08-19 International Business Machines Corporation Address translation apparatus
US4498146A (en) * 1982-07-30 1985-02-05 At&T Bell Laboratories Management of defects in storage media
US4594659A (en) * 1982-10-13 1986-06-10 Honeywell Information Systems Inc. Method and apparatus for prefetching instructions for a central execution pipeline unit
US4680700A (en) * 1983-12-07 1987-07-14 International Business Machines Corporation Virtual memory address translation mechanism with combined hash address table and inverted page table
US4757438A (en) * 1984-07-12 1988-07-12 Texas Instruments Incorporated Computer system enabling automatic memory management operations
US4691277A (en) * 1984-10-24 1987-09-01 International Business Machines Corp. Small instruction cache using branch target table to effect instruction prefetch
US4797810A (en) * 1986-06-26 1989-01-10 Texas Instruments Incorporated Incremental, multi-area, generational, copying garbage collector for use in a virtual address space

Also Published As

Publication number Publication date
FR2636748B1 (fr) 1994-04-29
JP2722523B2 (ja) 1998-03-04
FR2636748A1 (fr) 1990-03-23
US5168557A (en) 1992-12-01

Similar Documents

Publication Publication Date Title
JPH0283735A (ja) 命令先取り装置
EP0205809B1 (en) Vector processing
US4476525A (en) Pipeline-controlled data processing system capable of performing a plurality of instructions simultaneously
EP0380859B1 (en) Method of preprocessing multiple instructions
US10795675B2 (en) Determine whether to fuse move prefix instruction and immediately following instruction independently of detecting identical destination registers
CA1324671C (en) Decoding multiple specifiers in a variable length instruction architecture
JPS63503177A (ja) 命令先取制御装置
JPH1021074A (ja) 割り込み制御方式、プロセッサ及び計算機システム
EP0378415A2 (en) Multiple instruction dispatch mechanism
JP3794918B2 (ja) 復帰選択ビットを用いて分岐予測のタイプを分類する分岐予測
US3553655A (en) Short forward conditional skip hardware
JPS5991551A (ja) 分岐先アドレス予測を行なう命令先取り装置
JPS5943447A (ja) デ−タ処理装置
JP2626675B2 (ja) データ誘起状態信号発生装置及び方法
JPS62159230A (ja) 命令先取り装置
JPS60164842A (ja) 命令先取り装置
JPH0248733A (ja) 情報処理装置
US6289439B1 (en) Method, device and microprocessor for performing an XOR clear without executing an XOR instruction
JPS5991552A (ja) セツトアソシアテイブ型分岐ヒストリテ−ブルを有する命令先取り装置
JPS62159231A (ja) 命令先取り装置
JPH02254541A (ja) 条件分岐命令の制御方式
JPH0754460B2 (ja) 命令先取り装置
JPH0752402B2 (ja) データ処理装置
JPS5991554A (ja) 分岐方向予測を行なう命令先取り装置
JPS62159233A (ja) 命令先取り装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071128

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081128

Year of fee payment: 11

EXPY Cancellation because of completion of term