JPH0827718B2 - 情報処理装置 - Google Patents
情報処理装置Info
- Publication number
- JPH0827718B2 JPH0827718B2 JP58186437A JP18643783A JPH0827718B2 JP H0827718 B2 JPH0827718 B2 JP H0827718B2 JP 58186437 A JP58186437 A JP 58186437A JP 18643783 A JP18643783 A JP 18643783A JP H0827718 B2 JPH0827718 B2 JP H0827718B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- store
- branch destination
- read
- queue
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3812—Instruction prefetching with instruction modification, e.g. store into instruction stream
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)
Description
【発明の詳細な説明】 〔発明の利用分野〕 本発明は、先行制御方式の情報処理装置に関する。
周知のように、先行制御方式の情報処理装置は、現在
実行中の命令の他にこれに続く命令群を予め主記憶装置
(メモリ)から先行して読み出して命令バッファに格納
しておき、現在実行中の命令終了後に次の命令を該命令
バッファから取り出して実行処理する。従って、前の命
令の実行と次の命令の実行の間に発生する命令読出しの
オーバヘッドを減少せしめることができる。
実行中の命令の他にこれに続く命令群を予め主記憶装置
(メモリ)から先行して読み出して命令バッファに格納
しておき、現在実行中の命令終了後に次の命令を該命令
バッファから取り出して実行処理する。従って、前の命
令の実行と次の命令の実行の間に発生する命令読出しの
オーバヘッドを減少せしめることができる。
ところで、メモリから命令バッファへの読出しは、メ
モリの読出し幅、例えば8バイト単位に読み出されるた
めに、命令以外にオペランドとしてのデータも読み出さ
れる可能性がある。先行する命令がメモリにストア動作
を行い、命令やデータを変更し、しかも、そのストア領
域の命令やデータが既に命令バッファに取り込まれてい
る場合、メモリと命令バッファの内容の間に不一致が生
じる。
モリの読出し幅、例えば8バイト単位に読み出されるた
めに、命令以外にオペランドとしてのデータも読み出さ
れる可能性がある。先行する命令がメモリにストア動作
を行い、命令やデータを変更し、しかも、そのストア領
域の命令やデータが既に命令バッファに取り込まれてい
る場合、メモリと命令バッファの内容の間に不一致が生
じる。
かゝる問題に対処するため、従来は、例えば命令バッ
ファに取り込まれている内容がメモリ上で変更された時
点で命令バッファの内容を全て無効化し、実行中の命令
のアドレスと変更された命令やデータのアドレス間に存
在する命令(これは前述した如くメモリの読出し幅との
関係でデータも含まれ得る)を再びメモリから読み出し
ている。しかし、変更された命令やデータの前に分岐命
令があり、分岐成功により分岐を行ったような場合や、
変更されたのが命令でなくデータの場合(データが命令
バッファに取り込まれていても、命令でないため無視で
きる)、あるいは変更された内容が命令として全く実行
されない場合、命令バッファ内の有効な命令を含めて全
て無効化し、メモリから再読出しすることは、命令の処
理効率上望ましくない。
ファに取り込まれている内容がメモリ上で変更された時
点で命令バッファの内容を全て無効化し、実行中の命令
のアドレスと変更された命令やデータのアドレス間に存
在する命令(これは前述した如くメモリの読出し幅との
関係でデータも含まれ得る)を再びメモリから読み出し
ている。しかし、変更された命令やデータの前に分岐命
令があり、分岐成功により分岐を行ったような場合や、
変更されたのが命令でなくデータの場合(データが命令
バッファに取り込まれていても、命令でないため無視で
きる)、あるいは変更された内容が命令として全く実行
されない場合、命令バッファ内の有効な命令を含めて全
て無効化し、メモリから再読出しすることは、命令の処
理効率上望ましくない。
そこで、命令バッファに先取りされている内容がメモ
リ上で変更されたことを検出した場合、以後の先取りは
抑止するが、既に先取りされた命令については処理を続
行し、命令の実行が上記変更された命令に進んだ時、命
令バッファの内容を無効とし、メモリから該変更された
命令を含むそれ以降の命令を読み出すようにして、命令
の処理効率の向上を図った情報処理装置が提案されてい
る(特公昭56−40378号および特開昭57−185545号)。
リ上で変更されたことを検出した場合、以後の先取りは
抑止するが、既に先取りされた命令については処理を続
行し、命令の実行が上記変更された命令に進んだ時、命
令バッファの内容を無効とし、メモリから該変更された
命令を含むそれ以降の命令を読み出すようにして、命令
の処理効率の向上を図った情報処理装置が提案されてい
る(特公昭56−40378号および特開昭57−185545号)。
しかし、この情報処理装置では、分岐命令の分岐先命
令読出しにおいて、分岐先命令アドレスを計算し、それ
を先取り命令変更検出論理部に転送するまでの間に、先
行するストア動作が実行されると、命令の先取り変更検
出の抜けが生じる。即ち、命令の実行が分岐命令まで進
むと、分岐先命令アドレスを計算し、該アドレス以降の
命令をメモリから先行して読み出して命令バッファに格
納していく。一方、上記計算された分岐先命令アドレス
は先取り命令変更検出論理部に転送され、先行する命令
のストア・アドレスと比較するのに用いられるが、たま
たまその間にストア動作が実行されて、該分岐先命令が
変更された場合、命令バッファには変更前の内容が取り
込まれることになる。したがって、分岐先命令アドレス
が先取り命令変更検出論理部に転送され、該先取り命令
変更検出論理部が有効に動作する時刻まで、分岐先命令
の読出しを遅らせる必要があるが、これは先行制御方式
の利点を損うことになり、命令処理効率の点で好ましく
ない。
令読出しにおいて、分岐先命令アドレスを計算し、それ
を先取り命令変更検出論理部に転送するまでの間に、先
行するストア動作が実行されると、命令の先取り変更検
出の抜けが生じる。即ち、命令の実行が分岐命令まで進
むと、分岐先命令アドレスを計算し、該アドレス以降の
命令をメモリから先行して読み出して命令バッファに格
納していく。一方、上記計算された分岐先命令アドレス
は先取り命令変更検出論理部に転送され、先行する命令
のストア・アドレスと比較するのに用いられるが、たま
たまその間にストア動作が実行されて、該分岐先命令が
変更された場合、命令バッファには変更前の内容が取り
込まれることになる。したがって、分岐先命令アドレス
が先取り命令変更検出論理部に転送され、該先取り命令
変更検出論理部が有効に動作する時刻まで、分岐先命令
の読出しを遅らせる必要があるが、これは先行制御方式
の利点を損うことになり、命令処理効率の点で好ましく
ない。
本発明の目的は、命令バッファの不必要な無効化と、
メモリの不必要な読出しを減少させると共に、上記先取
り命令変更検出論理部が有効に動作する時刻まで分岐先
命令の読出しを遅らせることなく、分岐命令によって読
み出された分岐先命令が先行するストア動作によって書
き換えられることの検出を可能とすることにより、分岐
命令における分岐先命令の読出しを高速に行い、命令処
理効率の一層の向上を図った先行制御方式の情報処理装
置を提供することにある。
メモリの不必要な読出しを減少させると共に、上記先取
り命令変更検出論理部が有効に動作する時刻まで分岐先
命令の読出しを遅らせることなく、分岐命令によって読
み出された分岐先命令が先行するストア動作によって書
き換えられることの検出を可能とすることにより、分岐
命令における分岐先命令の読出しを高速に行い、命令処
理効率の一層の向上を図った先行制御方式の情報処理装
置を提供することにある。
本発明は、分岐命令によって分岐先命令が読み出され
る場合、分岐先命令読出しアドレスとその分岐命令に先
行し、ストアが完了していないすべてのストア命令のス
トア・アドレスとを比較し、先取りする命令がメモリ上
で変更されることを検出する。検出結果は、先取りした
命令に付随したフラグとして命令バッファに記憶し、命
令が命令バッファから取りだされた時、該フラグも同時
に取り出す。そして、命令が実際に実行を開始する時
に、その命令が、先取りされた後、先行するストア命令
によって変更されたか否か判定し、変更されていた場
合、命令バッファの無効化とメモリからの再読出しを行
う。これにより、命令バッファの不必要な無効化とメモ
リの不必要な読出しが減少すると共に、分岐先命令の読
出しを遅らせる必要がなく、命令の処理効率の一層の向
上がもたらされる。
る場合、分岐先命令読出しアドレスとその分岐命令に先
行し、ストアが完了していないすべてのストア命令のス
トア・アドレスとを比較し、先取りする命令がメモリ上
で変更されることを検出する。検出結果は、先取りした
命令に付随したフラグとして命令バッファに記憶し、命
令が命令バッファから取りだされた時、該フラグも同時
に取り出す。そして、命令が実際に実行を開始する時
に、その命令が、先取りされた後、先行するストア命令
によって変更されたか否か判定し、変更されていた場
合、命令バッファの無効化とメモリからの再読出しを行
う。これにより、命令バッファの不必要な無効化とメモ
リの不必要な読出しが減少すると共に、分岐先命令の読
出しを遅らせる必要がなく、命令の処理効率の一層の向
上がもたらされる。
なお、ストア命令により変更される後続の命令が、本
発明で対象としている分岐命令により読み出される分岐
先命令以外の命令の場合には、例えば、先の特公昭56−
40378号や特開昭57−185545号に記載されている技術を
適用すればよい。
発明で対象としている分岐命令により読み出される分岐
先命令以外の命令の場合には、例えば、先の特公昭56−
40378号や特開昭57−185545号に記載されている技術を
適用すればよい。
第1図は本発明に係る情報処理装置の一実施例のブロ
ック図で、特に本発明に関係する部分のみを示したもの
である。第1図において、命令バッファ(IBR:Instruct
ion Buffer Register)5には、記憶制御装置1により
メモリ2から先取りされた命令がデータ線12を介して格
納される。該命令に付随するフラグについては後述す
る。IBR5の格納指示および格納位置は、命令読出し制御
部9より出力されるセット信号21で制御される。第1図
では、IBR5はIBR0〜IBR31の32面あるとし、各面には、
それぞれ2バイトのデータが格納できる。
ック図で、特に本発明に関係する部分のみを示したもの
である。第1図において、命令バッファ(IBR:Instruct
ion Buffer Register)5には、記憶制御装置1により
メモリ2から先取りされた命令がデータ線12を介して格
納される。該命令に付随するフラグについては後述す
る。IBR5の格納指示および格納位置は、命令読出し制御
部9より出力されるセット信号21で制御される。第1図
では、IBR5はIBR0〜IBR31の32面あるとし、各面には、
それぞれ2バイトのデータが格納できる。
命令レジスタ(IR:Instruction Register)6には、
命令デコード制御部25より出力されるセット信号33によ
り、次にデコードされる命令がIBR5よりデータ線14を介
して格納される。IR6の命令はデータ線19を介し、デコ
ーダ8に転送される。デコーダ8は、IR6から転送され
てきた命令をデコードし、該命令の実行に必要な制御情
報を制御線16,20,42等に出力する。こゝで、制御線20は
分岐命令のときオンとなり、制御線42はストアリクエス
トを発行する命令のときオンとなる。制御線16の制御情
報(命令コード等)は命令キュー(IQ:Instruction Que
ue)7に格納され、命令の実行待ちとなる。IQ7への格
納は、命令デコード制御部25より出力されるセット信号
34により指示され、IQ0,IQ1,IQ2のいずれかに格納され
る。
命令デコード制御部25より出力されるセット信号33によ
り、次にデコードされる命令がIBR5よりデータ線14を介
して格納される。IR6の命令はデータ線19を介し、デコ
ーダ8に転送される。デコーダ8は、IR6から転送され
てきた命令をデコードし、該命令の実行に必要な制御情
報を制御線16,20,42等に出力する。こゝで、制御線20は
分岐命令のときオンとなり、制御線42はストアリクエス
トを発行する命令のときオンとなる。制御線16の制御情
報(命令コード等)は命令キュー(IQ:Instruction Que
ue)7に格納され、命令の実行待ちとなる。IQ7への格
納は、命令デコード制御部25より出力されるセット信号
34により指示され、IQ0,IQ1,IQ2のいずれかに格納され
る。
命令実行制御部32は、命令キュー7のIQ0,IQ1,IQ2の
いずれか1つをデータ線18、セレクタ30を介して選択
し、次に実行すべき命令の制御情報をデータ線39を介し
て取り出す。この場合、選択すべきIQ番号は、セレクト
信号37で指定される。
いずれか1つをデータ線18、セレクタ30を介して選択
し、次に実行すべき命令の制御情報をデータ線39を介し
て取り出す。この場合、選択すべきIQ番号は、セレクト
信号37で指定される。
アドレス加算器(AA:Address Adder)27は、IR6の命
令の所定フィールドで指定された汎用レジスタ(GR:Gen
eral Register)26より読み出したベース値およびイン
デックス値に、IR6の命令のディスプレイスメント値を
加え、オペランド・アドレスをデータ線36に出力する。
ストア命令の場合、データ線36はストアオペランドの下
限アドレス(先頭アドレス)を示すことになる。ストア
長論理部28は、IR6の命令の所定フィールドをデータ線1
9を介して入力し、ストアオペランドのストアすべき長
さをデータ線43に出力する。ストア長は、例えばSTORE
命令では4バイトと固定長であり、MOVE命令ではLフィ
ールドで指定される。加算器41は、データ線36の値とデ
ータ線43の値を加え、ストアオペランドの上限アドレス
を(最終アドレス)データ線44に出力する。
令の所定フィールドで指定された汎用レジスタ(GR:Gen
eral Register)26より読み出したベース値およびイン
デックス値に、IR6の命令のディスプレイスメント値を
加え、オペランド・アドレスをデータ線36に出力する。
ストア命令の場合、データ線36はストアオペランドの下
限アドレス(先頭アドレス)を示すことになる。ストア
長論理部28は、IR6の命令の所定フィールドをデータ線1
9を介して入力し、ストアオペランドのストアすべき長
さをデータ線43に出力する。ストア長は、例えばSTORE
命令では4バイトと固定長であり、MOVE命令ではLフィ
ールドで指定される。加算器41は、データ線36の値とデ
ータ線43の値を加え、ストアオペランドの上限アドレス
を(最終アドレス)データ線44に出力する。
ストア・アドレス・キュー(SQ:Store Add ress Queu
e)3は実行待ちのストア命令の下限アドレス(SLLi:St
ore Lower Limit)(i=0,1,2)と上限アドレス(SU
Li:Store Upper Limit)(i=0,1,2)を格納する。有
効表示ビット(SQVi:Store Queue Valid)(i=0,1,
2)は、その命令がストア命令のとき“1"となり、該当S
LLiおよびSULiが有効であることを示す。SQ3の格納およ
び取り出しは、IQ7と同様に制御される。すなわち、命
令デコード制御部25から出力されるセット信号34によ
り、制御線42、データ線36、データ線44の値がそれぞれ
SQVi,SLLi,SULiに格納される。また、SQ3の内容は、
命令実行制御部32が出すセレクト信号37により制御され
るセレクタ29によって選択され、線45に出力される。線
45の値は、レジスタ31に格納される。レジスタ31はSQ3
の一面と同一の構造で、SQV3,SLL3,SUL3を持つ。レジ
スタ31の格納は、命令実行制御部32が出すセット信号41
によって指定される。SLL3,SUL3は、実行中のストア命
令の下限アドレスと上限アドレスを示すものである。
e)3は実行待ちのストア命令の下限アドレス(SLLi:St
ore Lower Limit)(i=0,1,2)と上限アドレス(SU
Li:Store Upper Limit)(i=0,1,2)を格納する。有
効表示ビット(SQVi:Store Queue Valid)(i=0,1,
2)は、その命令がストア命令のとき“1"となり、該当S
LLiおよびSULiが有効であることを示す。SQ3の格納およ
び取り出しは、IQ7と同様に制御される。すなわち、命
令デコード制御部25から出力されるセット信号34によ
り、制御線42、データ線36、データ線44の値がそれぞれ
SQVi,SLLi,SULiに格納される。また、SQ3の内容は、
命令実行制御部32が出すセレクト信号37により制御され
るセレクタ29によって選択され、線45に出力される。線
45の値は、レジスタ31に格納される。レジスタ31はSQ3
の一面と同一の構造で、SQV3,SLL3,SUL3を持つ。レジ
スタ31の格納は、命令実行制御部32が出すセット信号41
によって指定される。SLL3,SUL3は、実行中のストア命
令の下限アドレスと上限アドレスを示すものである。
以下、命令レジスタ(IR)6に分岐命令が格納された
場合を説明する。
場合を説明する。
IR6に分岐命令が格納されると、AA27は分岐先命令ア
ドレスを計算してデータ線36に出力する。一方、デコー
ダ8は制御線20をオンにする。命令読出し制御部9は、
制御線20によりIR6の命令が分岐命令であることを認識
し、分岐先命令読出しを起動する。すなわち、命令読出
し制御部9は、命令読出しリクエスト線(IFリクエス
ト)24をオンとし、同時にデータ線36の分岐先命令アド
レスを命令読出しアドレス線23に与える。記憶制御装置
1はメモリ2を制御し、命令データ(分岐先命令群)を
読み出す。該読み出された命令データは、データ線12を
介して命令バッファ(IBR)5に転送される。
ドレスを計算してデータ線36に出力する。一方、デコー
ダ8は制御線20をオンにする。命令読出し制御部9は、
制御線20によりIR6の命令が分岐命令であることを認識
し、分岐先命令読出しを起動する。すなわち、命令読出
し制御部9は、命令読出しリクエスト線(IFリクエス
ト)24をオンとし、同時にデータ線36の分岐先命令アド
レスを命令読出しアドレス線23に与える。記憶制御装置
1はメモリ2を制御し、命令データ(分岐先命令群)を
読み出す。該読み出された命令データは、データ線12を
介して命令バッファ(IBR)5に転送される。
なお、当然のことながら、このとき既に命令バッファ
5に入っている内容は、分岐先命令群の転送に先立って
クリアするか、あるいは、後続の分岐先命令群で書き替
えるかして、使われないようにする。
5に入っている内容は、分岐先命令群の転送に先立って
クリアするか、あるいは、後続の分岐先命令群で書き替
えるかして、使われないようにする。
一方、先取り命令変更検出論理部4は、線23で与えら
れる命令読出しアドレス(分岐先命令アドレス)を、線
10により与えられるストアが完了していない先行ストア
命令のストア・アドレスSLLi,SULi,SQVi(i=0,1,
2)及び実行中のストア命令のストア・アドレスSLL3,S
UL3,SQV3と比較し、メモリ2から読み出される命令デ
ータ(分岐先命令)が先行するストア動作によって変更
されるか否か検出する。以後、命令が先行するストア動
作によって変更されることをPSC(Program Store Confl
ict)と称す。例えば命令長は2バイト、4バイト、6
バイトのいずれかであるため、検出は2バイト単位に行
う。命令読出し幅が8バイトの時、PSCの有無を示す4
ビットがデータ線11に出力される。
れる命令読出しアドレス(分岐先命令アドレス)を、線
10により与えられるストアが完了していない先行ストア
命令のストア・アドレスSLLi,SULi,SQVi(i=0,1,
2)及び実行中のストア命令のストア・アドレスSLL3,S
UL3,SQV3と比較し、メモリ2から読み出される命令デ
ータ(分岐先命令)が先行するストア動作によって変更
されるか否か検出する。以後、命令が先行するストア動
作によって変更されることをPSC(Program Store Confl
ict)と称す。例えば命令長は2バイト、4バイト、6
バイトのいずれかであるため、検出は2バイト単位に行
う。命令読出し幅が8バイトの時、PSCの有無を示す4
ビットがデータ線11に出力される。
第2図は先取り命令変更検出論理部4の詳細図であ
る。第2図において、ストアマーク論理回路50,51,52,5
3は第1図のSQ3の3面及びレジスタ31にそれぞれ対応す
る。各ストアマーク論理回路50〜53は命令読出しアドレ
ス(IFA:Instruction Fetch Address)を共通に入力し
て、それをSLLi,SULi(i=0,1,2,3)と並列に比較
し、結果を線540〜570,541〜571,542〜572および543〜5
73に与える。ANDゲート58〜61はストアマーク論理回路5
0の出力とSQV0とのアンド条件をとり、結果を線580〜61
0に出力する。同様に、ANDゲート62〜65はストアマーク
論理回路51の出力とSQV1のアンド条件、ANDゲート66〜6
9はストアマーク論理回路52の出力とSQV2のアンド条
件、ANDゲート70〜73はストアマーク論理回路53の出力
とSQV3のアンド条件をとり、それぞれ結果を線620〜65
0、660〜690、700〜730へ出力する。最後にアンドゲー
ト58〜61,62〜65,60〜69,70〜73の出力をORゲート74で
ビット対応にオアし、PSCの有無を示す4ビット(A,B,
C,D)をデータ線11に出力する。
る。第2図において、ストアマーク論理回路50,51,52,5
3は第1図のSQ3の3面及びレジスタ31にそれぞれ対応す
る。各ストアマーク論理回路50〜53は命令読出しアドレ
ス(IFA:Instruction Fetch Address)を共通に入力し
て、それをSLLi,SULi(i=0,1,2,3)と並列に比較
し、結果を線540〜570,541〜571,542〜572および543〜5
73に与える。ANDゲート58〜61はストアマーク論理回路5
0の出力とSQV0とのアンド条件をとり、結果を線580〜61
0に出力する。同様に、ANDゲート62〜65はストアマーク
論理回路51の出力とSQV1のアンド条件、ANDゲート66〜6
9はストアマーク論理回路52の出力とSQV2のアンド条
件、ANDゲート70〜73はストアマーク論理回路53の出力
とSQV3のアンド条件をとり、それぞれ結果を線620〜65
0、660〜690、700〜730へ出力する。最後にアンドゲー
ト58〜61,62〜65,60〜69,70〜73の出力をORゲート74で
ビット対応にオアし、PSCの有無を示す4ビット(A,B,
C,D)をデータ線11に出力する。
第2図におけるストアマーク論理回路50の詳細を第3
図に示す。ストアマーク論理回路51、52、53についても
同様である。こゝで、命令読出しは8バイト単位で行う
とし、そのアドレスを含む8バイト境界内のデータをフ
ェッチするとする。比較回路75はSLL0(ビット0〜2
8)、IFA(ビット0〜28)を入力として8バイト単位で
比較し、SLL0=IFAのとき出力線750を“1"、SLL0<IFA
のとき出力線751を“1"とする。比較回路76はIFA(ビッ
ト0〜28)、SUL0(ビット0〜28)を入力として同様に
8バイト単位で比較し、IFA=SUL0のとき出力線760を
“1"、IFA<SUL0のとき出力線761を“1"とする。ANDゲ
ート77は線750と760、ANDゲート78は線751と760、ANDゲ
ート79は線750と761、ANDゲート80は線751と761のアン
ド条件をそれぞれとり、その出力P0〜P3を線770〜800を
介してストアマーク発生器81に与える。ストアマーク発
生器81は上記ANDゲート770〜800の出力P0〜P3、およびS
LL0(ビット29,30)、SUL0(ビット29,30)を入力と
し、第4図(a)の論理にしたがってストアマーク(A,
B,C,D)を線540〜570に与える。ストアマークは2バイ
ト単位で表わす。こゝで、“X"は、その出力がその入力
値に依存しないことを表わす。第4図(b)は第4図
(a)の場合の8バイト内でのPSCの発生情況を図示し
たものである。
図に示す。ストアマーク論理回路51、52、53についても
同様である。こゝで、命令読出しは8バイト単位で行う
とし、そのアドレスを含む8バイト境界内のデータをフ
ェッチするとする。比較回路75はSLL0(ビット0〜2
8)、IFA(ビット0〜28)を入力として8バイト単位で
比較し、SLL0=IFAのとき出力線750を“1"、SLL0<IFA
のとき出力線751を“1"とする。比較回路76はIFA(ビッ
ト0〜28)、SUL0(ビット0〜28)を入力として同様に
8バイト単位で比較し、IFA=SUL0のとき出力線760を
“1"、IFA<SUL0のとき出力線761を“1"とする。ANDゲ
ート77は線750と760、ANDゲート78は線751と760、ANDゲ
ート79は線750と761、ANDゲート80は線751と761のアン
ド条件をそれぞれとり、その出力P0〜P3を線770〜800を
介してストアマーク発生器81に与える。ストアマーク発
生器81は上記ANDゲート770〜800の出力P0〜P3、およびS
LL0(ビット29,30)、SUL0(ビット29,30)を入力と
し、第4図(a)の論理にしたがってストアマーク(A,
B,C,D)を線540〜570に与える。ストアマークは2バイ
ト単位で表わす。こゝで、“X"は、その出力がその入力
値に依存しないことを表わす。第4図(b)は第4図
(a)の場合の8バイト内でのPSCの発生情況を図示し
たものである。
再び第1図を参照する。IBR5は先取りされた命令を格
納するデータ部と、そのデータのPSCの有無を示すフラ
グ部より構成される。フラグは先取り命令2バイト単位
に1ビット付加される。命令読出し幅は8バイトであ
る。第2図乃至第4図で説明した先取り命令変更検出論
理部4において報告された先取り命令変更ビット(A,B,
C,D)は、データ線11を介し、命令バッファ5のフラグ
部に格納される。格納位置は該当命令データと同一の位
置である。
納するデータ部と、そのデータのPSCの有無を示すフラ
グ部より構成される。フラグは先取り命令2バイト単位
に1ビット付加される。命令読出し幅は8バイトであ
る。第2図乃至第4図で説明した先取り命令変更検出論
理部4において報告された先取り命令変更ビット(A,B,
C,D)は、データ線11を介し、命令バッファ5のフラグ
部に格納される。格納位置は該当命令データと同一の位
置である。
IBR5の先取り命令変更ビットも上記命令の流れと同様
に処理される。すなわち、分岐先命令がIR6に取り出さ
れた時、その命令のPSCの有無を示すフラグもIBR5より
データ線13を介して取り出され、IR6へ格納される。次
に、命令がIQ7にキューイングされるのと同時に、命令
レジスタ6のフラグも、線15を介してIQ7のフラグへキ
ューイングされる。従って、IQ7は各命令に対応してフ
ラグを持つことになる。命令がIQ7より取り出され、命
令実行部18へ転送されると同時に、その命令のPSCの有
無を示すフラグも、データ線17およびセレクタ30を介
し、制御線38へ現われる。これにより、実行へ進んだ命
令のPSCの有無が制御線38によって示される。制御線38
がオンの時、すなわち、PSCが発生している時、命令実
行制御部32は当該命令の実行を中止する。この制御線38
の状態は命令読出し制御部9に与えられる。命令読出し
制御部9は、制御線38がオンの時、リセット信号22をオ
ンとして、先取りされたIBR5の内容を無効化し、命令読
出しを再度起動する。
に処理される。すなわち、分岐先命令がIR6に取り出さ
れた時、その命令のPSCの有無を示すフラグもIBR5より
データ線13を介して取り出され、IR6へ格納される。次
に、命令がIQ7にキューイングされるのと同時に、命令
レジスタ6のフラグも、線15を介してIQ7のフラグへキ
ューイングされる。従って、IQ7は各命令に対応してフ
ラグを持つことになる。命令がIQ7より取り出され、命
令実行部18へ転送されると同時に、その命令のPSCの有
無を示すフラグも、データ線17およびセレクタ30を介
し、制御線38へ現われる。これにより、実行へ進んだ命
令のPSCの有無が制御線38によって示される。制御線38
がオンの時、すなわち、PSCが発生している時、命令実
行制御部32は当該命令の実行を中止する。この制御線38
の状態は命令読出し制御部9に与えられる。命令読出し
制御部9は、制御線38がオンの時、リセット信号22をオ
ンとして、先取りされたIBR5の内容を無効化し、命令読
出しを再度起動する。
なお、第1図では省略したが、制御線38がオンの時、
当然のことながら命令レジスタ6、命令キュー7に残さ
れている内容も無効化される。
当然のことながら命令レジスタ6、命令キュー7に残さ
れている内容も無効化される。
このように、第1図の構成によれば、分岐命令の分岐
先命令読出し時における先取り命令変更検出論理の抜け
を防止することができる。すべての命令読出しにおいて
抜けなく、先取り命令変更を検出するには、例えば先に
述べた特開昭57−185545号のような方式を第1図に取り
入れ、その検出結果を、制御線38とオアして、命令実行
制御部32に報告すれば良い。
先命令読出し時における先取り命令変更検出論理の抜け
を防止することができる。すべての命令読出しにおいて
抜けなく、先取り命令変更を検出するには、例えば先に
述べた特開昭57−185545号のような方式を第1図に取り
入れ、その検出結果を、制御線38とオアして、命令実行
制御部32に報告すれば良い。
以上述べた如く、本発明によれば、特に、分岐命令に
よって分岐先命令が読出される場合、分岐先命令読出し
アドレスと、その分岐命令に先行し、ストアが完了して
いないすべてのストア命令のストア・アドレスと比較し
て、先取りする命令がメモリ上で変更されることを検出
するため、分岐先命令読出しを遅らせることなく、分岐
先命令読出し時における先取り命令変更検出論理の抜け
が防止でき、命令の処理効率の向上がもたらされる。
よって分岐先命令が読出される場合、分岐先命令読出し
アドレスと、その分岐命令に先行し、ストアが完了して
いないすべてのストア命令のストア・アドレスと比較し
て、先取りする命令がメモリ上で変更されることを検出
するため、分岐先命令読出しを遅らせることなく、分岐
先命令読出し時における先取り命令変更検出論理の抜け
が防止でき、命令の処理効率の向上がもたらされる。
また、上記検出結果は命令に付随したフラグとして命
令バッファに記憶し、命令が実際に実行を開始する時
に、該命令に付随するフラグにより、その命令が先行す
るストア命令によって変更されたか否か判定し、変更さ
れた場合、命令バッファ等の無効化とメモリからの再読
出しを行うため、命令バッファ等の不必要な無効化とメ
モリの不必要な読出しが減少し、やはり命令の処理効率
が向上する。
令バッファに記憶し、命令が実際に実行を開始する時
に、該命令に付随するフラグにより、その命令が先行す
るストア命令によって変更されたか否か判定し、変更さ
れた場合、命令バッファ等の無効化とメモリからの再読
出しを行うため、命令バッファ等の不必要な無効化とメ
モリの不必要な読出しが減少し、やはり命令の処理効率
が向上する。
第1図は本発明の情報処理装置の主要部の一実施例を示
すブロック図、第2図は第1図における先取り命令変更
検出論理部の詳細図、第3図は第2図におけるストアマ
ーク論理回路の詳細図、第4図(a),(b)は第3図
の動作例を示す図である。 1…記憶制御装置、2…主記憶装置(メモリ)、3…ス
トア・アドレス・キュー、4…先取り命令変更検出論理
部、5…命令バッファ、6…命令レジスタ、7…命令キ
ュー、8…デコーダ、9…命令読出し制御部、25…命令
デコード制御部、32…命令実行制御部。
すブロック図、第2図は第1図における先取り命令変更
検出論理部の詳細図、第3図は第2図におけるストアマ
ーク論理回路の詳細図、第4図(a),(b)は第3図
の動作例を示す図である。 1…記憶制御装置、2…主記憶装置(メモリ)、3…ス
トア・アドレス・キュー、4…先取り命令変更検出論理
部、5…命令バッファ、6…命令レジスタ、7…命令キ
ュー、8…デコーダ、9…命令読出し制御部、25…命令
デコード制御部、32…命令実行制御部。
フロントページの続き (56)参考文献 特開 昭58−161043(JP,A) 特開 昭57−193843(JP,A) 特開 昭54−82140(JP,A) 特開 昭57−185545(JP,A) 特開 昭58−115680(JP,A) 特開 昭53−74857(JP,A) 特開 昭58−137048(JP,A)
Claims (1)
- 【請求項1】先行する命令の実行と非同期にメモリから
命令を先読みして命令バッファに格納し、該命令バッフ
ァから命令を命令レジスタに順次取り出し、該命令レジ
スタに取り出された命令をデコーダでデコードし、該デ
コード結果を命令キューに格納し、該命令キューの内容
を順次取り出して実行する、先行制御方式の情報処理装
置において、 前記デコーダのデコード結果に応じ、前記命令レジスタ
に取り出された先行するストア命令のストア・アドレス
をストア動作が完了するまで保持するストアアドレスキ
ューと、 前記命令レジスタに分岐命令が取り出されると、前記デ
コーダのデコード結果に応じ、該分岐先命令で指定され
る分岐先命令アドレスにより分岐先命令読出しを起動
し、メモリから分岐先命令を先読みし、前記命令バッフ
ァの内容を該先読みした分岐先命令に置きかえる命令読
出し制御部と、 前記メモリから先読みされる分岐先命令の読出しアドレ
スと前記ストアアドレスキューに保持されているストア
・アドレスとを比較して、前記メモリから先読みされる
分岐先命令が先行するストア命令によって変更されるか
否か検出し、該検出結果をフラグとして前記命令バッフ
ァ内の該当分岐先命令に付随して記憶する先取り命令変
更検出論理部と、 前記命令バッファ内に記憶された前記フラグが、当該命
令に付随して命令レジスタ、命令キューと順次伝播する
信号線と、 前記命令キューから出力される命令に付随する前記フラ
グに基づき、当該命令が先行するストア命令によって変
更されていることを示していると、当該命令の実行を中
止せしめるとともに、前記命令読出し制御部に対して前
記命令バッファの内容の無効化と命令読出しの再起動を
指示し、さらに前記命令レジスタ、命令キューの内容を
無効化せしめる制御線とを具備していることを特徴とす
る情報処理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP58186437A JPH0827718B2 (ja) | 1983-10-05 | 1983-10-05 | 情報処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP58186437A JPH0827718B2 (ja) | 1983-10-05 | 1983-10-05 | 情報処理装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS6077241A JPS6077241A (ja) | 1985-05-01 |
| JPH0827718B2 true JPH0827718B2 (ja) | 1996-03-21 |
Family
ID=16188428
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP58186437A Expired - Lifetime JPH0827718B2 (ja) | 1983-10-05 | 1983-10-05 | 情報処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0827718B2 (ja) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6263339A (ja) * | 1985-09-13 | 1987-03-20 | Fujitsu Ltd | パイプライン制御方式 |
| JPH06100968B2 (ja) * | 1986-03-25 | 1994-12-12 | 日本電気株式会社 | 情報処理装置 |
| US4991090A (en) * | 1987-05-18 | 1991-02-05 | International Business Machines Corporation | Posting out-of-sequence fetches |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5374857A (en) * | 1976-12-15 | 1978-07-03 | Fujitsu Ltd | Data processor |
| JPS5482140A (en) * | 1977-12-14 | 1979-06-30 | Hitachi Ltd | Information processor |
| JPS57185545A (en) * | 1981-05-11 | 1982-11-15 | Hitachi Ltd | Information processor |
| JPS57193843A (en) * | 1981-05-22 | 1982-11-29 | Mitsubishi Electric Corp | Pipeline computer |
| JPS58115680A (ja) * | 1981-12-28 | 1983-07-09 | Nec Corp | 情報処理装置 |
-
1983
- 1983-10-05 JP JP58186437A patent/JPH0827718B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JPS6077241A (ja) | 1985-05-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN101495962A (zh) | 用于预取不连续指令地址的方法和设备 | |
| CN118277292A (zh) | 一种数据预取方法和数据预取装置 | |
| US5276825A (en) | Apparatus for quickly determining actual jump addresses by assuming each instruction of a plurality of fetched instructions is a jump instruction | |
| JPH0816394A (ja) | システムメモリから命令コードを先取りするための先取り装置および方法 | |
| EP0394711A2 (en) | Branch instruction control unit based on a pipeline method | |
| JPH03129432A (ja) | 分岐制御回路 | |
| US20060224870A1 (en) | Information processing device | |
| JPH09330221A (ja) | マイクロプロセッサにおける早期例外を追跡するシステム及び方法 | |
| JPH0827718B2 (ja) | 情報処理装置 | |
| JP2000056970A (ja) | 命令及びデータの先読み方法、マイクロコントローラ、疑似命令検出回路、及び、記録媒体 | |
| EP0324952A2 (en) | Branching circuit for a pipelined processor | |
| JPH07306785A (ja) | 分岐命令実行機能を持つプロセッサおよび分岐命令制御方法 | |
| JPH05241827A (ja) | 命令バッファ制御装置 | |
| JP2817524B2 (ja) | 命令キャッシュ制御方式 | |
| JP4049490B2 (ja) | 情報処理装置 | |
| JPS6240555A (ja) | プリフエツチ制御方式 | |
| JPH09311787A (ja) | データ処理装置 | |
| JPS6277648A (ja) | 命令読出し制御方法 | |
| JPH08286914A (ja) | メモリ制御装置 | |
| JPS63311438A (ja) | ストア命令不一致制御回路 | |
| JPS6047618B2 (ja) | 情報処理装置 | |
| JPH0540624A (ja) | 集積回路マイクロプロセツサの命令フエツチ装置 | |
| JPH04213727A (ja) | 情報処理装置 | |
| JPS6232507B2 (ja) | ||
| JPS61211744A (ja) | 命令先取り制御装置 |