JP2559416B2 - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JP2559416B2
JP2559416B2 JP62174601A JP17460187A JP2559416B2 JP 2559416 B2 JP2559416 B2 JP 2559416B2 JP 62174601 A JP62174601 A JP 62174601A JP 17460187 A JP17460187 A JP 17460187A JP 2559416 B2 JP2559416 B2 JP 2559416B2
Authority
JP
Japan
Prior art keywords
instruction
address
branch
address space
information
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
JP62174601A
Other languages
English (en)
Other versions
JPS6419434A (en
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP62174601A priority Critical patent/JP2559416B2/ja
Publication of JPS6419434A publication Critical patent/JPS6419434A/ja
Application granted granted Critical
Publication of JP2559416B2 publication Critical patent/JP2559416B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は情報処理装置に関するものである。
〔従来の技術〕
従来より、分岐命令を高速処理する方法として、連想
記憶を用いた方式が数多く知られている。
特開昭46−25832には、分岐命令のアドレスとそれに
対応する分岐先の命令語とを対にして記憶するルートメ
モリ(連想記憶)を用いた分岐命令高速化の方法が記載
されている。この方法では、分岐命令の解読時に、分岐
命令のアドレスによりルートメモリを参照し、それに対
応する分岐先の命令語を出力させることにより、分岐命
令を高速に処理している。
また、The Computer Journal,15(Feb.1972),pp.42
−50には、分岐命令のアドレスとそれに対応する分岐先
の命令アドレスとを対にして記憶する連想記憶を用いた
分岐命令の高速化方法が記載されている。この方法で
は、分岐命令の先読み時に、命令の先読みアドレスによ
り連想記憶を参照し、対応する分岐先の命令アドレスが
存在する時にはその命令アドレスで分岐先の命令列の先
読みを開始することにより、分岐命令を高速に処理して
いる。
また、連想記憶を他の目的に使用したものとして、特
願昭58−237778(31−83−02289)や特願昭 −
(31−84−04338)に記載されている方法があ
る。この方法では、先行命令によってレジスタに書込ま
れる演算結果を用いて後続命令が実行される際に、その
演算結果が確定するまで、後続命令の処理であって、か
つ、その演算結果を用いる処理を停止させるような情報
処理装置において、その停止時間を連想記憶を用いて短
縮している。すなわち、先行命令アドレス又は先行命令
の先読みアドレス等と先行命令の前の実行時の演算結果
又はオペランドデータとを対にして連想記憶に記憶して
おき、先行命令の次の実行時の解読時に先行命令の命令
アドレスを用いるかまたは先行命令の次の実行時の先読
み時に先行命令の先読みアドレスを用いて連想記憶を参
照して、対応する先行命令の演算結果又はオペランドデ
ータが存在するかを調べる。対応するものがある時は、
それが演算結果の時にはそれを用いて、またそれがオペ
ランドデータである時にはそれに先行命令の演算を施し
た結果を用いて、停止されていた処理を開始させる。
〔発明が解決しようとする問題点〕
上記の従来技術では、多重アドレス空間を扱う情報処
理装置への配慮がなされておらず、空間の切換えがあっ
た場合には、性能が低下するという問題があった。すな
わち、上記従来技術では、命令アドレス又は命令の先読
みを含んだ連想キーと何らかの情報とを対にして連想記
憶に記憶し、命令アドレス又は命令の先読みアドレスで
連想記憶を参照し、対応する何らかの情報ですなわち、
分岐先の命令語又は分岐先の命令アドレス又は先行命令
の演算結果で次の処理を開始している。したがって、空
間が切替った場合、切替え前の空間における上記何らか
の情報を用いて次の処理を開始する可能性が出てくる。
切替え前の空間での上記情報は切替え時の空間の情報と
は一般には異なるので、それを用いて行った処理は誤り
である。誤りである時には、その処理は正しい情報を用
いてやりなおすことになり、その分だけ性能が低下す
る。
たとえば、ルートメモリを用いた方法の場合には、ル
ートメモリは誤った分岐先の命令語を出力する。その分
岐先の命令語を用いた処理は誤りであり、誤りであるこ
とが判明してからこの処理を無効化し、正しい分岐先の
命令語で処理をやりなおすことになり、その分だけ性能
は低下する。
また、分岐先の命令語を保持するための命令バッファ
はこの誤った分岐先の命令語が保持されるので、この誤
った分岐先の命令語が保持されている間は命令バッファ
は無駄に使われており、後続の処理で命令バッファを使
う処理は開始できない。
The Computer Journalに記載された方法の場合にも、
連想記憶は誤った分岐先の命令アドレスを出力する。こ
の命令アドレスに基づいた分岐先の命令列の先読みは誤
りであり、この読み出し中は記憶手段は他の読み出しを
受け付けられない。また、この記憶手段がキャッシュで
あってなおかつ分岐先の命令列がキャッシュ中になかっ
た場合には、キャッシュには主記憶から不必要なデータ
を読み出して格納することになる。また、この命令アド
レスで読み出した分岐先の命令語を用いた処理は誤りで
ある、正しい分岐先の命令語で処理をやりなおす分だけ
性能が低下する。
また、分岐先の命令アドレスを保持するための命令ア
ドレスバッファ及び分岐の命令列を保持するための命令
バッファには、この誤った命令アドレス及び誤った命令
が格納されるので、この間は命令アドレスバッファ及び
命令バッファは無駄に使われており、後続の処理でこれ
らを使う処理は開始できない。
特願昭58−237778に記載された方法の場合にも、連想
記憶は誤った演算結果を出力する。この演算結果を用い
た後続命令の処理は誤りであり、誤りが判明してからこ
の処理を無効化し、正しい演算結果で処理をやりなおす
ことになり、その分だけ性能は低下する。
本発明の目的はこのような性能低下を回避することで
ある。
〔問題点を解決するための手段〕
上記目的は、連想記憶に記憶する連想キーとして、命
令のアドレス又は命令の先読みアドレスに加えて、アド
レス空間識別子の全体又は一部を含めることにより達成
される。
〔作用〕
アドレス空間識別子の全体又は一部を連想キーに含め
ることにより、連想記憶の参照の時に命令アドレス又は
命令の先取りアドレスの他に、アドレス空間識別子の全
体又は一部も連想キーの一部として一致が調べられるこ
とになる。
アドレス空間識別子の全体を含めた場合には、アドレ
ス空間が切替った時の、切替え前のアドレス空間の識別
子と切替え故に連想が間違った情報を出力することはな
くなる。
アドレス空間識別子の一部しか含めない場合には、切
替え前のアドレス空間の識別子の一部と切替え後のアド
レス空間の識別子の一部とは、異なる場合と一致する場
合とがあるうる。両者が一致する場合には、アドレス空
間の切替え故に連想記憶が間違った情報を出力すること
を防ぐことは出来ないが、両者が異なる場合には、アド
レス空間の切替が故に連想記憶が間違った情報を出力す
ることはなくなる。
このように、アドレス空間識別子の全体又は一部を連
想キーに含めることにより、アドレス空間が切替ったた
めに連想記憶が間違った情報を出力することの全体又は
一部を防ぐことができる。故に、連想記憶が間違った情
報を出力することによる性能低下の全体又は一部を防ぐ
ことができる。
〔実施例〕
以下、上述の特公昭54−9456に記載されている「ルー
トメモリ」に本発明を適用した場合の実施例を第1図〜
第10図を用いた説明する。
まず、メモリの概要を説明する。
第2図は分岐命令を含んだ命令列である。この図で
は、100番地、101番地、102番地、200番地の命令が示さ
れている。101番地の命令は分岐命令12である。この分
岐命令の分岐先の命令は、200番地のターゲット命令16
とする。したがって、命令10が実行されると次には分岐
命令12で実行され、その次にはターゲット命令16が実行
されることになる。
第3図は、第2図の命令列を実行した時の動作フロー
図である。各命令はそれぞれ幾つかの処理ステージを経
て処理される。各処理ステージにおける処理内容は次の
通りである。
ID:命令を解読する。
MF:命令で参照するアドレスを生成する。
CS:界キャッシュを探索する。
EX:演算を実行する。
CSステージでキャッシュを探索した際、所望のデータ
又は命令がキャッシュに存在することが判明した場合に
は、所望のデータ又は命令をキャッシュから読み出す。
キャッシュに存在しないことが判明した場所には所望の
データ又は命令は主記憶から読み出すことになる。以下
では、データ又は命令は常にキャッシュから読み出せる
として説明するが、本発明の本旨には影響はない。
命令は通常1サイクルごとに1命令の割合で処理され
る。第3図では、まず命令10が処理される。次に、分岐
命令12の処理が、命令10の処理より1サイクル遅れで開
始される。分岐命令はまずIDステージで解読され、次の
MFステージで分岐先の命令すなわち、ターゲット命令16
のアドレスを生成する。次のCSステージでは、そのアド
レスに基づいてキャッシュを探索し、次のサイクルのIF
ステージでキャッシュから命令(ターゲット命令)が読
み出される。読み出されたターゲット命令は次のIDステ
ージで解読される。結局、分岐命令のIDステージが開始
されてから、4サイクル後にターゲット命令のIDステー
ジが開始される。
なお、この時、分岐命令のID、MFステージと同時に、
RSステージが実行される。このRSステージでは分岐命令
のアドレス(101番他)と分岐命令12をキーとしてルー
トメモリが探索される。この時が、この分岐命令が実行
される最初の時と考えると、ルートメモリには101番地
と分岐命令12をキーとする組はなく、分岐命令のCSステ
ージでターゲット命令が読み出されたのち分岐命令のア
ドレス(101番地)と分岐命令12とターゲット命令から
なる組がルートメモリに登録される。
その後、ターゲット命令に引き続く命令列が実行され
いく。その過程で再び命令10が第3図のように実行され
るとする。命令10のIDステージが開始されると、その1
サイクル後の分岐命令12のIDステージが開始される。分
岐命令のMF,CSステージはIDステージ以降、順次開始さ
れる。これと並行して、分岐命令のIDステージでは、分
岐命令のアドレス(101番施)と分岐命令12をキーとし
てルートメモリが探索される(RSステージ)。この時に
は、分岐命令のアドレスと分岐命令12をキーとする組が
存在しており、次のRFステージでルートメモリよりター
ゲット命令が読み出され、その次のサイクルよりターゲ
ット命令のIDステージが始まり、ターゲット命令が解読
される。したがって、この場合には分岐命令職IDステー
ジが開始されてから、2サイクル後にターゲット命令の
IDステージが開始される。
このようにルートメモリがうまく働いた時には、通常
は4サイクルかかる分岐命令処理が、2サイクルで処理
される。
この時、2度目に実行されるターゲット命令16は、1
度目にそのターゲット命令16が実行された時にそれをル
ートメモリに記憶しておいたものである。通常は,1度目
のターゲット命令は同一と考えられる両者が異なること
もまれにありうる。たとえば、1度目のターゲット命令
が実行されてから、2度目のターゲット命令が実行され
るまでの間に、別の命令によりターゲット命令が書きか
えられる場合である。この書きかえがあったか否かの確
認ために、第3図のごとく、ターゲット命令のMFステー
ジと同時にIFステージを、CSステージと同時にCKステー
ジを行い、IFステージではキャッシュからターゲット命
令を読み出し、CKステージではキャッシュから読み出し
たターゲット命令とRFステージでルートメモリから読み
出したターゲット命令とを比較する。もし、比較結果が
不一致であれば、ルートメモリから読み出したターゲッ
ト命令の処理を無効にし、キャッシュから読みだしたタ
ーゲット命令で実行を再度行う。比較結果は一致であれ
ば、第3図の如くルートメモリから読み出したターゲッ
ト命令の処理を継続する。
以上、アドレス空間が1つのみでのルートメモリ方式
の概略の動作を示した。
次に、アドレス空間が複数ある時のルートメモリ方式
の概略の動作を、第4図と第5図を用いて説明する。
第4図は、2つのアドレス空間A1とA2それぞれに分岐
命令を含んだ命令列がある例である。アドレス空間A1で
は、100番地、101番地、102番地、200番地にある命令が
図示されている。101番地の命令が分岐命令22であり、
この命令の分岐先の命令は、200番地のターゲット命令2
6とする。したがって、命令20が実行されると次に分岐
命令22が実行され、その次にはターゲット命令26が実行
されることになる。
アドレス空間A2では、100番地、101番地、102番地、3
00番地にある命令が図示されている。101番地の命令が
分岐命令32であり、この命令の分岐先の命令は300番地
のターゲット命令36とする。したがって、命令30が実行
されると次は分岐命令32が実行され、次にはターゲット
命令36が実行されることになる。
なお、分岐命令22と分岐命令32は同一の分岐命令と仮
定する。
第5図は、第4図の命令列を実行した時の動作フロー
図である。この図では初めにアドレス空間A2の命令列が
実行され、その次には、またアドレス空間A1の命令列が
実行される場合が図示されいる。
まず初めに、アドレス空間A1の命令列の命令20、分岐
命令22、ターゲット命令26が実行される。この時、分岐
命令22のIDステージと同時にRSステージが起動されて、
分岐命令のアドレス(101番地)と分岐命令22をキーと
してルートメモリが探索される。この時が、この分岐命
令の最初の実行とすると、ルートメモリには101番地と
分岐命令22をキーとする組はなく、分岐命令のMF、CSス
テージの後、ターゲット命令IFステージが起動され、結
局、分岐命令22の4サイクル後に、ターゲット命令のID
ステージが開始される。この時、分岐命令のアドレス
(101番地)と分岐命令22とターターゲット命令26から
なる組がルートメモリに登録される。
その後、アドレス空間A2の命令列に実行が移り、命令
30、分岐命令32、ターゲット命令36が順に実行されてい
く。この時、分岐命令32のIDステージと同時にRSステー
ジが起動されて、分岐命令のアドレス(101番地)と分
岐命令32をキーとしてルートメモリが探索される。ルー
トメモリには101番地と分岐命令22とターゲット命令26
とからなる組が登録されており、分岐命令22と分岐命令
32とは同一の分岐命令と仮定しているので次のRFステー
ジでターゲット命令26が読み出される。RFステージ以
降、ターゲット命令26のID、MF、CSステージが処理され
る。本当はターゲット命令26ではなく、ターゲット命令
36が実行されるべき所であり、下述するようにターゲッ
ト命令26の実行は途中で中断される。一方、分岐命令32
のMF、CSステージ、ターゲット命令のIFステージによ
り、キャッシュよりターゲット命令36が読み出され、CK
ステージでルートメモリから読み出したターゲット命令
26とキャッシュから読み出したターゲット命令36とが比
較させ、両者が一致しないことが判明する。したがっ
て、ルートメモリから読み出したターゲット命令26の実
行はCSステージ以降、中断(無効化)され、代って、キ
ャッシュから読み出したターゲット命令36の実行が開始
される。ターゲット命令36のIDステージは分岐命令32年
のIDステージの5サイクル後に開始される。この時、ル
ートメモリには、101番他とターゲット命令26の対に代
って、101番地とターゲット命令36の対が登録される。
その後、再びアドレス空間A1の命令列に実行が移り、
命令20、分岐命令22、ターゲット命令26が順に実行され
ていく。分岐命令22の実行に際して、上記のようにルー
トメモリを参照する(RSステージ)と、ルートメモリか
らはターゲット命令36が読み出され(RFステージ)、本
当はターゲット命令26を実行すべき所をターゲット36の
実行が開始される(ID、MF、CSステージ)。しかし、キ
ャッシュからはターゲット命令26が読み出され(IFステ
ージ)、ターゲット命令26とターゲット命令36との不一
致が判明(CKステージ)するので、ターゲット命令36の
実行はCSステージ以降、中断され、ターゲット命令26の
実行が開始される。ターゲット命令26のIDステージの開
始は、分岐命令22のIDステージの5サイクル後である。
以上のように、アドレス空間が2つになったために、
ルートメモリが誤ったターゲット命令を出力し、ルート
メモリがうまく働いた時には2サイクルで済す処理が5
サイクルもかかり、性能が低下している。
次に実施例で示す情報処理装置の具体的構成を示す。
第6図は実施課で示す情報処理装置の構成を示す図
で、次の4つの部分からなる。
(1)命令ユニット(6002):命令の先取り、解読等を
司る。
(2)実行ユニット(6006):命令を実行する。
(3)ルートメモリ(6000):分岐先命令(ターゲット
命令)語を含む命令列(分岐先命令列)を記憶する連想
記憶。
(4)主メモリ(6004):この中にキャッシュがあり、
キャッシュに存在する命令・データは高速に読み出せ
る。
6008〜6016は、上記(1)〜(4)の装置間を結ぶ信
号線のうち、実施例の説明に関連のあるもののみを示し
たものである。
第1図はルートメモリ6000の具体的構成を示す図であ
る。
1000は連想記憶装置であり、命令アドレス、命令語、
アドレス空間識別子分岐先命令列を組とする語を記憶す
る。命令アドレスはICpartに記憶され、命令語はIRpart
に記憶され、アドレス空間識別子はASpartに記憶され、
分岐先命令列はPTIpartに記憶される。
1002〜1006はIC,IR,AS信号線の値を記憶するレジスタ
であり、1010は比較器である。
このような構成において、命令ユニットからIC信号線
6008、IR信号線6009、AS信号線6010を介して命令アドレ
ス、命令語、アドレス空間識別子が転送されてきて、か
つ、命令語が分岐命令である時、ルートメモリは転送さ
れたものと等しいものを記憶した語が存在するか否かを
探索し、存在する場合にはPTI信号線6012にその語の中
の分岐先命令列を出力する。
第7図は命令ユニットの具体的構成を示す図である。
7000、7002は先取りした命令列を記憶する命令バッフ
アレジスタであり、7006は命令バッフアレジスタより取
り出した命令語を記憶する命令レジスタであり、7004は
命令バッフアレジスタより命令語を切り出すアライナで
あり、7008は命令レジスタ中の命令語の命令アドレスを
記憶する命令カウンタであり、7010はアドレス空間識別
子レジスタであり7014は命令レジスタ中の命令語を解読
する解読器である7016はアドレス計算器である。
命令バッフアレジスタには、主メモリからのIDATA信
号線とルートメモリからのPTI信号線が入力されてお
り、どちらかの信号線から命令列が転送されてくるとそ
の命令列を記憶する。命令バッフアレジスタは0と1の
2つあるが、通常は片方の命令バッフアレジスタ(たと
えば0)が使用されており、分岐命令が出現するとその
分岐先の命令列が他方の命令バッフアレジスタ(この場
合1)に記憶され、それ以降の命令列は、次の分岐命令
が出現するまでは命令バッフアレジスタ1に記憶され
る。
命令レジスタには、現在命令レジスタにある命令語の
次の命令語が、命令バッフアレジスタよりアライナを介
して取り出され、セットされる。命令カウンタには現在
命令レジスタにある命令語の命令アドレスが記憶されて
いるので、その値に4(1命命語のバイト長に相当す
る)を加えた値が次の命令語アドレスである。アライナ
はこの値が出力される信号線7022を用いて次の命命語を
取り出す。
命令カウンタには、現在命令レジスタにある命令語ア
ドレスが記憶されている。そのアドレスは7012で4増加
されて、命令レジスタに次の命令語が記憶される時に、
命令カウンタに記憶される。
命令レジスタ中の命令語の参照するアドレスはアドレ
ス計算器7016で生成され、ADDR信号線6016に出力され
る。
アドレス空間識別子レジスタには実行中の命令列の存
在するアドレス空間の識別子が常に格納されている。ア
ドレス空間の切替えが起こると、このレジスタの内容は
書き換えられる。第6図で示したようにIC,IR,ASの各信
号線はルートメモリに入力される。
次に、実施例の動作説明する。
動作は大きく分けて2つの動作に分けられる。
(1)前動作 命令ユニットにおける命令の解読(IDステージ)時に
ルートメモリを命令アドレス、命令語、アドレス空間識
別子に基づいて探索する(RSステージ)。それらを含む
語が存在する時には、その語の中の分岐先命令列をRTI
信号線を介して命令ユニットに送る(RFステージ)。
(2)本動作 命令ユニットにおいて分岐命令が解読される(IDステ
ージ)と、その分岐先の命令語のアドレス(分岐先アド
レス)を求め、ADDR信号線を介して主記憶へ送る(MFス
テージ)。分岐先命令列の主記憶からの読出し(IDATA
信号線を介して行う)が完了すると、後述する場合分け
に従いルートメモリの書換えを行う。
本動作での分岐先命令列の読出しは、前動作で分岐先
命令列が得られた否かに拘らず行われる。
その目的は次の2つである。
(1)分岐先連想記憶に存在しない分岐命令に対して分
岐先命令列を得る。
(2)分岐先連想記憶に存在した分岐命令に対して、主
記憶上の分岐先命令列が変更されていて、ルートメモリ
の分岐先命令列が正しくない可能性があるので、その検
証を行う。
次に第7図に従い、前動作を詳しく説明する。
IDステージ命令が命令レジスタに記憶されて解読が開
始される。この時、同時にRSステージが始まりこの命令
に対する命令アドレス、命令語、アドレス空間識別子が
IC,IR,ASの各信号線を介してルートメモリに転送され
る。
IR信号線上の命令語が分岐命令である場合には、IC,I
R,ASの各信号線上の値がICレジスタ、IRレジスタ、ASレ
ジスタに記憶される。
その後、連想記憶1000に、IC,IR,ASの各信号線上の値
を含む語が存在するか否かを探索する。RFステージでそ
のような語が存在する時はその語の中の分岐命令列をPT
I信号線に出力し、かつPTIレジスタをセットする。
一方、命令ユニットでは、PTI信号線を介して分岐先
命令列が出力された時には、それを空いている方の命令
バッフアレジスタに記憶する。
次に、第8図に従い、本動作を詳しく説明する。
本動作は命令語が命令レジスタに記憶されて、解読が
開始されると時すなわち、IDステージから開始される。
まず、命令レジスタ中の命令が分岐命令か否かが調べ
られる。以下の動作は分岐命令である時のみ行われる。
まず、MFステージでアドレス計算器を用いて分既先ア
ドレスを求め、ADDR信号線を介して主メモリに送る。
その後、IFステージで分岐先アドレスに対する分岐先
命令列がIDATA信号線を介して転送され(IDATA読出し)
るまで、ルートメモリは中断される。
ルートメモリが中断中、8006でIC,IR,ASに対応する語
が存在していた時には、命令ユニットでは分岐先の命令
列に対して先行制御が継続される。対応する語が存在し
ていない時には、分岐先の命令列がないので先行制御は
行われない。
IDATA読出しが完了すると、以下のような場合ごとに
以下に示す動作が行われる。
(1)8006でIC,IR,ASに対応する語が存在していた時: PTIレジスタ1008の値とIDATA信号線上の値が比較器10
10で比較される。その結果、両者が等しくない時のみ、
存在していた語のPTI部分がIDATA信号線の値で書換えら
れる。
(2)8006でIC,IR,ASに対応する語が存在してない時: ICレジスタ、IRレジスタ、ASレジスタおよびIDATA信
号線上の値よりなる語を連想記憶装置1000に書き込む。
なお、(1)の時で比較器1010の結果が不一致の時に
は、命令ユニットで行っていた先行制御は無効化され
る。
以上で実施例の構成・動作の説明を終わる。なお、第
1図、第6図、第7図には種々の制御を行うための装
置、制御線は示されていないが、これらは本発明の要旨
と特に関係はなく、また、それらは従来技術により容易
に構成可能なものなので省略した。
次に本実施例の効果について、上述した第4図の命令
列、及び、その命令列を実行した時の動作フロー図であ
る第10図を用いて説明する。
初めに、アドレス空間A1の命令列が実行される。この
時、、アドレス空間識別子レジスタにはA1が入ってい
る。まず、命令20がIDステージで解読され、以下MF,CS
ステージと順次処理される。次に、分岐命令のID,MF,CS
の各ステージが命令20の1サイクル遅れで実行される。
この時、IDステージと同時にRSステージが実行され、命
令カウンタ、命令レジスタ、アドレス空間識別子レジス
タの101、分岐命令22、アドレス空間識別子A1がIC、I
R、AS信号線を介してルートメモリに送られ、ルートメ
モリが探索される。この時がこの分岐命令の実行される
最初の時なので、ルートメモリには101番地を含んだ組
は存在せず、ルートメモリからターゲット命令26は読み
出せない。ターゲット命令26は、分岐命令のCSステー
ジ、ターゲット命令のIFステージでキャッシュより読み
出され、ターゲット命令のIDステージは分岐命令22のID
ステージの4ステージ後より開始される。この時、分岐
命令の命令カウンタ値101番地と分岐命令22とアドレス
空間識別子A1とターゲット命令26よりなる組がルートメ
モリに登録される。
その後、アドレス空間A2の命令列に実行が移り、命令
30、分岐命令32、ターゲット命令36が順に実行されてい
く。アドレス空間識別子レジスタにはA2が格納されてい
る。まず、命令30がIDステージで解読され、以下MF,CS
ステージが順次処理される。次に、命令30の1サイクル
遅れで、分岐命令32のID,MF,CSステージが順次処理され
る。この時、IDステージと同時にRSステージが実行さ
れ、命令カウンタ、命令レジスタ、アドレス空間識別子
レジスタ上の101番地、分岐命令32(これは分岐命令22
と同一と仮定したものである)、アドレス空間識別子A2
がIC,IR,AS信号線を介してルートメモリに送られ、ルー
トメモリが探索される。ルートメモリにあるのは、101
番地と分岐命令22(すなわち、分岐命令32)とアドレス
空間識別子A1をキーとする組であり、101番地と分岐命
令32とアドレス空間識別子A2をキーとする組は存在しな
いので、ルートメモリからターゲット命令は読み出され
ない。ターゲット命令36は分岐命令32のCSステージ,タ
ーゲット命令のIFステージでキャッシュより読み出さ
れ、ターゲット命令366のIDステージは分岐命令32のID
ステージの4ステージ後より開始される。この時、分岐
命令32の命令カウンタ値101番地と分岐命令32とアドレ
ス空間識別子A2とターゲット命令36よりなる組が、分岐
命令22の命令カウンタ値101番地と分岐命令22とアドレ
ス空間識別子A1とターゲット命令26よりなる組とは別
に、ルートメモリに登録される。その後、アドレス空間
A1の命令列に実行が移り、命令20、分岐命令22、ターゲ
ット命令26が順に実行されていく。アドレス空間識別子
レジスタにはA1が格納されている。まず、命令20がIDス
テージで解読され、以下、MF,CSが順次処理される。次
に、命令30の1サィクル遅れで、分岐命令22のID,MF,CS
ステージが順次処理される。この時、IDステージと同時
にRSステージが実行され、命令カウンタ、命令レジス
タ、アドレス空間識別子レジスタ上の101番地、分岐命
令22、アドレス空間識別子A1がIC,IR,AS信号線を介して
ルートメモリに送られ、ルートメモリが探索される。ル
ートメモリには、101番地と分岐命令22とアドレス空間
識別子A1とターゲット命令26の組と、101番地と分岐命
令32(分岐命令22と同一)とアドレス空間識別子A2とタ
ーゲット命令36の組とがある。ここではキー部が前者と
一致するので、ターゲット命令26がルートメモリがRFス
テージで読み出される。結局、ターゲット命令26のIDス
テージは、分岐命令22のIDステージの2サイクル後に開
始される。
このように、本実施例では、連想キーにアドレス空間
識別子を加えることにより、アドレス空間が2つになっ
てもルートメモリが誤ったターゲット命令を出力するこ
とはなくなり、5サイクルかかっていた処理が4サイク
ル又は2サイクルで処理され、性能低下が回避されてい
る。
〔発明の効果〕
本発明のように、 アドレス空間識別子の全体又は一部を連想キーに含め
ることにより、連想記憶の参照の時に命令アドレスは命
令の先取りアドレスの他に、アドレス空間識別子の全体
又は一部も連想キーの一部として一致が調べられること
になる。
アドレス空間識別子の全体を含めた場合には、アドレ
ス空間が切替った時の、切替え前のアドレス空間の識別
子と切替え後のアドレス空間の識別子と切替え後のアド
レス空間の識別子が必ず異なるために、アドレス空間の
切替え故に連想記憶が間違った情報を出力することはな
くなる。
アドレス空間識別子の一部しか含めない場合には、切
替え前のアドレス空間の識別子の一部と切替え後のアド
レス空間の識別子の一部とは、異なる場合と一致する場
合とがありうる。両者が一致する場合には、アドレス空
間の切替え故に連想記憶が間違った情報を出力すること
を防ぐことは出来ないが、両者が異なる場合には、アド
レス空間の切替え故に連想記憶が間違った情報を出力す
ることはなくなる。
こまように、アドレス空間識別子の全体又は一部を連
想キーに含めることにより、アドレス空間が切替ったた
めに連想記憶が間違った情報を出力することの全体又は
一部を防ぐことができる。故に、連想記憶が間違った情
報を出力することによる性能低下の全体又は一部を防ぐ
ことができる。
すなわち、ルートメモリを用いた方法の場合には、ル
ートメモリが誤った分岐先の命令語を出力することは全
くなくなるか又は一部を除いてなくなるので、誤った分
岐先の命令語を用いた処理を無効化し、正しい分岐先の
命令高で処理をやりなおすことによる性能低下は全くな
くなるか又は一部を除いてなくなる。
また、分岐先の命令語を保持するための命令バッファ
には誤った分岐先の命令語が保持されることはなくなる
ので、この誤った分岐先の命令語が保持されている間、
後続の処理で命令バッファを使う処理が開始できないと
いうことは全く又は一部を除いてなくなる。
The Computer Journalに記載された方法の場合にも、
連想記憶が誤った分岐先の命令アドレスを出力すること
は全く又は一部を除いてなくなる。誤った命令アドレス
に基づいた分岐先の命令列の読み出し中に記憶手段が他
の読み出しを受け付けられないということは全く又は一
部を除いてなくなる。また、この記憶手段がキャッシュ
であってなおかつ分岐先の命令列がキャッシュ中になか
った場合には、キャッシュに主記憶から不必要なデータ
を読み出して格納するということは全く又は一部を除い
てなくなる。また、誤った命令アドレスで読み出した分
岐先の命令語を用いた処理を無効化し、正しい分岐先の
命令語で処理をやりなおすことによる性能の低下の全体
又は一部はなくなる。
また、分岐先の命令アドレスを保持するための命令ア
ドレスバッファ及び分岐列を保持するための命令バッフ
ァには、こま誤った命令アドレス及び誤った命令が格納
されることは全く又は一部を除いてなくなるので、この
間、後続の処理でこれらを使う処理が開始できないとい
うことは全く又は一部を除いてなくなる。
特願昭58−237778に記載された方法の場合にも、連想
記憶は誤った演算結果を出力することは全く又は一部を
除いてなくなる。この誤った演算結果を読いた後続命令
の処理を無効化し、正しい演算結果で処理をやりなおす
ことによる性能の低下の全体又は一部はなくなる。
【図面の簡単な説明】
第1図は、実施例のルートメモリの構成図、第2図はア
ドレス空間1つでの命令列、第3図は第2図の動作フロ
ー図、第4図はアドレス空間2つでの命令列、第5図は
第第4図の動作フロー図、第6図は実施例の全体図,第
7図は命令ユニットの構成図、第8図、第9図は実施例
の動作フロー図、第10図は実施例での第4図の動作フロ
ー図である。 符号の説明 1000……連想記憶、10,14,20,24,30,34……命令、12,2
2,32,……分岐命令、16,26,36……ターゲット命令、600
0……ルートメモリ、6002……命令ユニット、6004……
主メモリ、6006……演算ユニット、7006……命令レジス
タ、7008……命令カウンタ、7010……アドレス空間識別
子レジスタ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 釜田 栄樹 東京都国分寺市東恋ヶ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 井上 潔 東京都国分寺市東恋ヶ窪1丁目280番地 株式会社日立製作所中央研究所内

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】アドレス空間識別情報によって識別される
    複数のアドレス空間によりなるメモリを持ち、命令によ
    って参照されるべきアドレス空間のアドレス空間識別情
    報を保持する手段を有する情報処理装置であって、命令
    の格納されている命令アドレスの全体又はその一部と、
    上記命令の格納されているアドレス空間のアドレス空間
    識別情報の全体又はその一部とを入力とし、上記命令の
    以前の実行時の処理に関する情報を出力とする連想記憶
    手段と、上記命令が再度実行される時に、上記命令の命
    令アドレスの全体又はその一部と、上記命令の格納され
    ているアドレス空間のアドレス空間識別情報の全体又は
    その一部とを入力キーとし、上記連想記憶手段を参照す
    る手段と、上記参照により上記連想記憶手段から出力さ
    れる以前の実行時の情報を今回の実行時の予測情報と
    し、上記命令の今回の実行もしくは上記命令以降の命令
    の今回の実行を予測処理する手段と、上記の再度の実行
    後に、上記命令の格納されていた命令アドレスの全体又
    はその一部と、上記命令の格納されていたアドレス空間
    のアドレス空間識別情報の全体又はその一部とを入力キ
    ーとし、上記命令の今回の実行時の処理に関する情報を
    上記連想記憶手段に登録する手段とを有することを特徴
    とする情報処理装置。
  2. 【請求項2】上記特許請求第1項記載の情報処理装置で
    あって、上記登録手段として、分岐命令の分岐が実行さ
    れた時に、分岐命令の格納されていた命令アドレスの全
    体又はその一部と、上記分岐命令の格納されていたアド
    レス空間のアドレス空間識別情報の全体又はその一部と
    を入力キーとし、上記分岐命令の今回の実行時の処理に
    関する情報を上記連想記憶手段に登録する手段を有する
    ことを特徴とする情報処理装置。
  3. 【請求項3】上記特許請求第2項記載の情報処理装置で
    あって、上記登録手段として、上記分岐命令の今回の実
    行時の処理に関する情報として、上記分岐命令の今回の
    分岐先命令を上記連想記憶手段に登録する手段を有する
    ことを特徴とする情報処理装置。
  4. 【請求項4】上記特許請求第1項記載の情報処理装置で
    あって、上記登録手段として、上記命令によってレジス
    タに書き込まれる実行結果を、上記命令以降の命令が参
    照する時で、上記命令によって上記実行結果がレジスタ
    に書き込まれるまで上記実行結果を参照する命令の実行
    を停止する時に、上記命令の格納されていた命令アドレ
    スの全体又はその一部と、上記命令の格納されていたア
    ドレス空間のアドレス空間識別情報の全体又はその一部
    とを入力キーとし、上記命令の今回の実行時の処理に関
    する情報を上記連想記憶手段に登録する手段を有するこ
    とを特徴とする情報処理装置。
  5. 【請求項5】上記特許請求第4項記載の情報処理装置で
    あって、上記登録手段として、上記命令の今回の実行時
    の処理に関する情報として、上記命令の今回の実行結果
    を上記連想記憶手段に登録する手段を有することを特徴
    とする情報処理装置。
  6. 【請求項6】アドレス空間識別情報によって識別される
    複数のアドレス空間によりなるメモリを持ち、命令によ
    って参照されるべきアドレス空間のアドレス空間識別情
    報を保持する手段を有する情報処理装置であって、命令
    の格納されている命令アドレスの全体又はその一部と、
    上記命令の格納さ命令されているアドレス空間のアドレ
    ス空間識別情報の全体又はその一部とを入力とし、上記
    命令の以前の実行時の処理に関する情報を出力とする連
    想記憶手段と、上記命令が再度実行される際にその命令
    の先読み時に、上記命令の先読み命令アドレスの全体又
    はその一部と、上記命令の格納されているアドレス空間
    のアドレス空間識別情報の全体又はその一部とを入力キ
    ーとし、上記連想記憶手段を参照する手段と、上記参照
    により上記連想記憶手段から出力される以前の実行時の
    情報を今回の実行時の予測情報とし、上記命令の今回の
    実行もしくは上記命令以降の命令の今回の実行を予測処
    理する手段と、上記の再度の実行後に、上記命令の格納
    されていた命令アドレスの全体又はその一部と、上記命
    令の格納されていたアドレス空間のアドレス空間識別情
    報の全体又はその一部とを入力キーとし、上記命令の今
    回の実行時の処理に関する情報を上記連想記憶手段に登
    録する手段とを有することを特徴とする情報処理装置。
  7. 【請求項7】上記特許請求第6項記載の情報処理装置で
    あって、上記登録手段として、分岐命令の分岐が実行さ
    れた時に、分岐命令の格納されていた命令アドレスの全
    体又はその一部と、上記分岐命令の格納されていたアド
    レス空間のアドレス空間識別情報の全体又はその一部と
    を入力キーとし、上記分岐命令の今回の実行時の処理に
    関する情報を上記連想記憶手段に登録する手段を有する
    ことを特徴とする情報処理装置。
  8. 【請求項8】上記特許請求第7項記載の情報処理装置で
    あって、上記登録手段として、上記分岐命令の今回の実
    行時の処理に関する情報として、上記分岐命令の今回の
    分岐先命令アドレスを上記連想記憶手段に登録する手段
    を有することを特徴とする情報処理装置。
JP62174601A 1987-07-15 1987-07-15 情報処理装置 Expired - Lifetime JP2559416B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62174601A JP2559416B2 (ja) 1987-07-15 1987-07-15 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62174601A JP2559416B2 (ja) 1987-07-15 1987-07-15 情報処理装置

Publications (2)

Publication Number Publication Date
JPS6419434A JPS6419434A (en) 1989-01-23
JP2559416B2 true JP2559416B2 (ja) 1996-12-04

Family

ID=15981428

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62174601A Expired - Lifetime JP2559416B2 (ja) 1987-07-15 1987-07-15 情報処理装置

Country Status (1)

Country Link
JP (1) JP2559416B2 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6254341A (ja) * 1985-09-03 1987-03-10 Nec Corp 命令先取り装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6254341A (ja) * 1985-09-03 1987-03-10 Nec Corp 命令先取り装置

Also Published As

Publication number Publication date
JPS6419434A (en) 1989-01-23

Similar Documents

Publication Publication Date Title
EP0380859B1 (en) Method of preprocessing multiple instructions
US4942520A (en) Method and apparatus for indexing, accessing and updating a memory
KR920006744B1 (ko) 분기명령 및 비교명령의 한편 또는 양편의 실행클록수를 영으로 하는 데이터처리장치
US6101577A (en) Pipelined instruction cache and branch prediction mechanism therefor
US5121473A (en) Pipelined system includes correction mechanism operated on history information identifying conditional jump instructions for which the jump prediction was incorrect on previous instances of execution of those instructions
US6081887A (en) System for passing an index value with each prediction in forward direction to enable truth predictor to associate truth value with particular branch instruction
JPH0557616B2 (ja)
JPH0789319B2 (ja) デ−タ処理装置における先行制御装置
JPH0231419B2 (ja)
JPH0283735A (ja) 命令先取り装置
US5146570A (en) System executing branch-with-execute instruction resulting in next successive instruction being execute while specified target instruction is prefetched for following execution
KR100276138B1 (ko) 브랜치 패턴 필드를 가진 브랜치 이력 테이블을 구비한 디지탈프로세서
JP2001236224A (ja) 分岐予測テーブル汚染の低減方法
US6421771B1 (en) Processor performing parallel operations subject to operand register interference using operand history storage
JPH02287626A (ja) パイプライン方式の分岐命令制御装置
US7603545B2 (en) Instruction control method and processor to process instructions by out-of-order processing using delay instructions for branching
JP2559416B2 (ja) 情報処理装置
US7036003B1 (en) Instruction processing device and method for controlling branch instruction accompanied by mode change
WO1998011484A1 (fr) Processeur de commande a memoire d'historique
JPS5991551A (ja) 分岐先アドレス予測を行なう命令先取り装置
JPH10116229A (ja) データ処理装置
JP3082944B2 (ja) パイプライン処理装置
JPS6236258B2 (ja)
JP2534662B2 (ja) 命令キヤツシユ制御方法
US6952763B1 (en) Write before read interlock for recovery unit operands

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term