JPH04246728A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPH04246728A
JPH04246728A JP3012191A JP1219191A JPH04246728A JP H04246728 A JPH04246728 A JP H04246728A JP 3012191 A JP3012191 A JP 3012191A JP 1219191 A JP1219191 A JP 1219191A JP H04246728 A JPH04246728 A JP H04246728A
Authority
JP
Japan
Prior art keywords
instruction
address
buffer
rewriting
decoding
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.)
Pending
Application number
JP3012191A
Other languages
English (en)
Inventor
Yasumasa Nakada
中田 恭正
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP3012191A priority Critical patent/JPH04246728A/ja
Publication of JPH04246728A publication Critical patent/JPH04246728A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、主記憶装置から命令
を先取りしてから解読するまでの間、その先取りした命
令をバッファに格納する機構を備え、特に命令自身を書
換える命令(命令書換え命令)を実行する場合に好適な
情報処理装置に関する。
【0002】
【従来の技術】近年の情報処理装置では、処理の高速化
のために、主記憶装置からCPUに命令を先取りして命
令デコード機構内のバッファ(命令バッファ)に一時格
納し、同バッファから命令を順に取出して解読して命令
実行に供する命令フェッチデコード方式が適用されるこ
とが多い。このような情報処理装置において、例えば計
算結果に応じて(その計算結果に合った命令を実行する
ために)命令自身を書換えながら実行されるソフトウェ
アを走行させることがある。
【0003】さて従来は、命令自身を書換える命令(命
令書換え命令)が命令バッファから取出されて解読され
実行される場合、同書換え命令で指定される主記憶装置
上の命令アドレス(書換え対象アドレス)の命令(書換
え対象命令)が書換えられるだけであった。このため、
命令書換え命令が実行される前に、同書換え命令の書換
え対象となる命令が既にCPU内にフェッチされている
と、同書換え命令で指定される主記憶装置上の命令は書
換えられるものの、CPU内にフェッチされている該当
命令は書換えられないため、期待通りの処理が行われな
いという問題があった。
【0004】
【発明が解決しようとする課題】上記したように、主記
憶装置から幾つかの命令を前もってデコード機構内の命
令バッファに取込み、その命令を順に取出して解読して
実行する従来の情報処理装置では、実行される命令が命
令書換え命令の場合、同書換え命令で指定される主記憶
装置上の命令アドレスの命令(書換え対象命令)が書換
えられるだけであったため、この書換え対象命令が既に
命令バッファ内にフェッチされていると、或いは実行中
であるならば、書換え前の命令が実行されてしまい、期
待通りの処理が行われないという問題があった。そこで
、従来は、あまり多くの命令を前もってフェッチしない
とか、或いはそのようなソフトウェアを実行させないと
いう制限がつけられていた。
【0005】この発明は上記事情に鑑みてなされたもの
でその目的は、命令自身を書換えるソフトウェアが、主
記憶装置から命令バッファに取込む命令数を制限するこ
となく期待通り処理される情報処理装置を提供すること
にある。
【0006】
【課題を解決するための手段】この発明は、命令フェッ
チ手段によって主記憶装置から取込まれた命令とその命
令アドレスを一時格納する命令バッファを持つ命令デコ
ード手段と、この命令デコード手段によって解読された
命令の実行を司り、実行中命令の命令アドレスを実行完
了まで保持する命令実行手段とを設け、上記命令実行手
段において命令書換え命令を実行する際には、その命令
書換え先アドレスと同じ命令アドレスが同命令実行手段
および命令バッファのうちの命令バッファだけに保持さ
れているか否かを調べ、命令バッファだけに保持されて
いる場合には、主記憶装置上の該当アドレスの命令の書
換えと共に、命令バッファ上の該当命令を書換えるよう
にしたことを特徴とする。
【0007】また、命令実行手段は、上記命令書換え先
アドレスと同じ命令アドレスが自手段内に保持されてい
る場合には、同アドレスが命令バッファに保持されてい
るか否かに無関係に、命令実行を全てキャンセルすると
共に命令バッファを無効にし、且つ命令書換え命令の命
令アドレスからの命令取込みを命令フェッチ手段に要求
すると共に命令書換え先アドレスを命令デコード手段に
送り、これを受けた命令デコード手段は、送られた命令
書換え先アドレスと同じ命令アドレスの命令を解読対象
命令として命令バッファから取出して解読する際には、
この命令が命令実行手段によって書換えられたことを確
認することを特徴とする。
【0008】
【作用】上記の構成において、命令フェッチ手段は主記
憶装置から命令を取込むと、同命令およびその命令アド
レスの対を命令デコード手段に送る。この命令デコード
手段に送られた命令および命令アドレスの対は命令デコ
ード手段内の命令バッファに格納される。命令デコード
手段は、通常状態では命令バッファから格納順に命令を
取出して解読し、その解読結果と命令アドレスを命令実
行手段に送る。命令実行手段は、解読された命令を実行
すると共に同命令の命令アドレスを実行完了まで保持す
る。
【0009】命令実行手段は、命令書換え命令を実行す
る際に、同命令の命令書換え先アドレスと同じ命令アド
レスが同実行手段内、或いは命令バッファに保持されて
いるかを調べる。もし、同じ命令アドレスが命令バッフ
ァだけに保持されている場合には、命令実行手段は主記
憶装置上の該当アドレスの命令の書換えと共に命令バッ
ファ上の該当命令の書換えを行う。これにより、この命
令バッファ上の該当命令が解読されて実行された場合に
は、期待通りの処理が行われる。
【0010】また、命令実行手段は、命令書換え命令の
命令書換え先アドレスと同じ命令アドレスを自身で保持
している場合には、この命令アドレスが命令バッファに
保持されているか否かに無関係に、命令実行を全てキャ
ンセルすると共に命令バッファを無効にし、且つ命令書
換え命令の命令アドレスからの命令取込みを命令フェッ
チ手段に要求すると共に命令書換え先アドレスを命令デ
コード手段に送る。命令フェッチ手段は、命令実行手段
からの要求に応じて、命令書換え命令の命令アドレスか
らの命令取込みを行い、取込んだ命令とその命令アドレ
スの対を命令デコード手段に送る。命令デコード手段に
送られた命令および命令アドレスの対は命令デコード手
段内の命令バッファに格納される。命令デコード手段は
、命令バッファから格納順に命令を取出して解読する。 この際、命令デコード手段は命令実行手段から命令書換
え先アドレスが送られていることから、解読しようとす
る命令と対を成す命令アドレスと命令書換え先アドレス
とを比較する。そして命令デコード手段は、両アドレス
が一致していなければ、即ち解読しようとする命令が書
換えられるべき命令でなければ、そのまま解読を行い、
その解読結果を命令アドレスと共に命令実行手段に送る
。これに対して、両アドレスが一致していれば、即ち解
読しようとする命令が書換えられるべき命令であれば、
命令デコード手段は、その命令(命令バッファ内の解読
対象命令)が命令実行手段によって書換えられるのを待
ち、書換えられたことを確認してから解読を行う。 これにより、命令解読結果が命令実行手段に送られて実
行された場合には、期待通りの処理が行われる。
【0011】
【実施例】図1はこの発明の一実施例に係る情報処理装
置のブロック構成図である。図1において、10は命令
およびデータが格納される主記憶装置、20は主記憶装
置10に格納されている命令を取込んで実行するCPU
である。CPU20は、主記憶装置10から命令をフェ
ッチし、同命令の命令アドレス(ここでは仮想アドレス
)との対を次に述べる命令デコード機構40に送る命令
フェッチ機構30、命令フェッチ機構30によってフェ
ッチされた命令の解読を行う命令デコード機構40、お
よび命令デコード機構40によって解読された命令を実
行する命令実行機構50を備えている。
【0012】命令デコード機構40は、命令フェッチ機
構30から送られた命令とその命令アドレスの対を格納
する命令バッファ41と、命令実行機構50における命
令書換え命令の実行に際して特定条件が成立した場合に
同機構50から送られる命令書換え先アドレスを保持す
るためのレジスタ42とを持つ。命令バッファ41に格
納される命令および命令アドレスの対には、同命令が(
命令実行機構50による命令書換え命令の実行によって
)書換えられたか否かを示すフラグFが付されている。 また命令実行機構50は、命令デコード機構40によっ
て解読された命令の命令アドレスを、その命令の実行終
了まで保持するための実行中命令アドレスバッファ51
を持つ。
【0013】図2は命令実行機構50における命令書換
え命令実行処理手順を説明するためのフローチャート、
図3は命令実行機構50から命令書換え先アドレスが与
えられている場合の命令デコード機構40における処理
手順を説明するためのフローチャートである。
【0014】次に、図1の構成の動作を、図2および図
3のフローチャートを適宜参照して説明する。まず命令
フェッチ機構30は、主記憶装置10から前もって幾つ
かの命令をCPU20内に取込み、取込んだ命令とその
命令アドレスの対を命令デコード機構40に順に送る。 命令デコード機構40に送られた命令およびその命令ア
ドレスの対は、命令デコード機構40内の命令バッファ
41に順に格納される。
【0015】命令デコード機構40は、命令バッファ4
1に格納された命令をその格納順に取出して解読する。 命令デコード機構40は、命令解読結果とその命令の命
令アドレスとを命令実行機構50に送ると共に、命令バ
ッファ41上の該当命令とその命令アドレスを無効にす
る。命令実行機構50は命令デコード機構40によって
解読された命令を実行すると共に、命令デコード機構4
0から送られたその命令の命令アドレスを、命令アドレ
スバッファ51に順に格納する。この命令アドレスバッ
ファ51に格納された命令アドレスは、該当命令の実行
が終了すると、命令実行機構50によって無効にされる
【0016】さて、命令実行機構50では、命令デコー
ド機構40によって解読された命令をパイプライン的に
連続的に実行することが可能となっている。ここで、命
令実行機構50において主記憶装置10上の命令自身を
書換えるための命令書換え命令が実行されるものとする
。この場合、命令実行機構50は命令デコード機構40
内の命令バッファ41(の命令アドレスフィールド)、
および自身が持つ実行中命令アドレスバッファ51を参
照し、命令書換え命令で指定される命令書換え先アドレ
ス(例えば命令書換え命令が持つ命令書換え先を示す仮
想アドレス)に一致する命令アドレスを探す(図2ステ
ップS1)。
【0017】もし、命令書換え先アドレスに一致する命
令アドレスが、命令バッファ41および命令アドレスバ
ッファ51のいずれにも存在しない場合には(図2ステ
ップS2)、命令実行機構50は従来と同様の命令書換
え命令実行処理を行い、同命令の指定する主記憶装置1
0上の命令書き書換え先アドレスの命令(書換え対象命
令)を書換える(図2ステップS3)。この書換えを終
了すると、命令実行機構50は実行中命令アドレスバッ
ファ51に保持されていた該当命令(命令書換え命令)
の命令アドレスを無効にする。
【0018】また、命令書換え先アドレスに一致する命
令アドレスが命令バッファ41(の命令アドレスフィー
ルド)だけに存在する場合には(図2ステップS4)、
命令実行機構50は従来と同様に命令書換え命令の指定
する主記憶装置10上の命令書き書換え先アドレスの命
令(書換え対象命令)を書換えると共に、同じ書換えを
、その命令アドレスと対をなして命令バッファ41に格
納されている命令に対しても行う(図2ステップS5)
。命令実行機構50はステップS5にて命令バッファ4
1上の命令を書換えた際、同命令とその命令アドレスの
対に付されているフラグFをオンし、同命令が書換えら
れたことを示す。命令実行機構50は以上のステップS
5を終了すると、実行中命令アドレスバッファ51に保
持されていた該当命令(命令書換え命令)の命令アドレ
スを無効にする。
【0019】次に、命令書換え先アドレスに一致する命
令アドレスが(実行中命令の命令アドレスを保持するた
めの)実行中命令アドレスバッファ51に存在する場合
には、命令実行機構50は同アドレスが命令バッファ4
1のアドレスフィールドに存在するか否かに無関係に以
下の動作を行う。まず命令実行機構50は、命令バッフ
ァ41を全て無効にすると共に、実行中命令アドレスバ
ッファ51を最も古い命令アドレスを残して全て無効に
する(図2ステップS6)。この実行命令アドレスバッ
ファ51に残された最も古い命令アドレスは、命令書換
え命令の命令アドレスのはずであることから、命令実行
機構50はこの命令アドレスから再び命令フェッチをや
り直すように命令フェッチ機構30に要求し、それと同
時に、この命令書換え命令の指定する命令書換え先アド
レスを命令デコード機構40に送る(図2ステップS7
)。この際、命令実行機構50は、実行命令アドレスバ
ッファ51に残された最も古い命令アドレスを無効にす
る。
【0020】さて、命令実行機構50から命令デコード
機構40に送られた命令書換え先アドレスは、同機構4
0内のレジスタ42に保持される。一方、命令フェッチ
機構30は命令実行機構50からの再フェッチ要求を受
けると、要求された命令アドレス(実質的に実行されな
かった書換え命令の命令アドレス)からの再フェッチを
行う。これにより、上記書換え命令を先頭とする幾つか
の命令が主記憶装置10からCPU20に順に取込まれ
る。命令フェッチ機構30によってCPU20に順に取
込まれた命令は、その命令アドレスと対をなして命令デ
コード機構40に送られる。命令デコード機構40に送
られた命令およびその命令アドレスの対は、命令デコー
ド機構40内の命令バッファ41に順に格納される。
【0021】命令デコード機構40は、レジスタ42に
命令書換え先アドレスが保持されている場合には、図3
のフローチャートに従う動作を行う。即ち命令デコード
機構40は、命令バッファ41に格納された命令を順に
取出して解読しようとする際には、まず命令バッファ4
1内で解読対象命令と対をなして保持されている命令ア
ドレスと、レジスタ42に保持されている命令書換え先
アドレスとを比較する(図3ステップS11)。
【0022】もし、解読対象命令の命令アドレスと命令
書換え先アドレスとが一致していなければ(図3ステッ
プS12)、即ち解読対象命令が実質的に実行されなか
った命令書換え命令によって書換えられるべき命令でな
い場合には、命令デコード機構40はその解読対象命令
の解読を行う(図3ステップS13)。そして命令デコ
ード機構40は、命令解読結果とその命令の命令アドレ
スとを命令実行機構50に送ると共に、命令バッファ4
1上の該当命令とその命令アドレスを無効にする(図3
ステップS14)。
【0023】これに対し、解読対象命令の命令アドレス
と命令書換え先アドレスとが一致していれば、即ち解読
対象命令が実質的に実行されなかった命令書換え命令に
よって書換えられるべき命令である場合には、命令デコ
ード機構40はその解読対象命令(命令書換え対象命令
)が(図2ステップS5に従う命令実行機構50の命令
書換え命令の実行により書換えられるのを待つ(ステッ
プS15)。本実施例において、解読対象命令が書換え
られたか否かは、解読対象命令とその命令アドレスの対
に付されているフラグFを参照することにより判別可能
であり、命令デコード機構40は同フラグFがオンされ
たことを検出すると、解読対象命令が書換えられたもの
として、その解読対象命令の解読を行う(図3ステップ
S13)。そして命令デコード機構40は、命令解読結
果とその命令の命令アドレスとを命令実行機構50に送
ると共に、命令バッファ41上の該当命令とその命令ア
ドレス(およびフラグF)を無効にする(図3ステップ
S14)。
【0024】
【発明の効果】以上詳述したようにこの発明によれば、
主記憶装置からCPUにフェッチされた命令を解読終了
まで保持するための命令バッファに、命令と対をなして
その命令アドレスが保持される構成とすると共に、命令
実行手段内に、実行中の命令の命令アドレスが保持され
る構成とすることにより、命令書換え命令を実行する際
に、その命令で指定される命令書換え先アドレスの命令
(書換え対象命令)が、命令バッファ内に存在するか、
或いは実行中であるかが判別でき、その判別結果により
命令バッファ内の該当命令の書換え、或いは命令書換え
命令以降の命令の再フェッチを行うことにより、命令書
換え命令による命令書換えの対象となる命令を必ず書換
えが施された後に実行することができるようになり、ど
んなに多くの命令を前もって主記憶装置から命令バッフ
ァにフェッチしていても、命令自身を書換えるソフトウ
ェアを期待通りに処理することができる。
【図面の簡単な説明】
【図1】この発明の一実施例に係る情報処理装置のブロ
ック構成図。
【図2】図1に示す命令実行機構50における命令書換
え命令実行処理手順を説明するためのフローチャート。
【図3】図1に示す命令実行機構50から命令書換え先
アドレスが与えられている場合の命令デコード機構40
における処理手順を説明するためのフローチャート。
【符号の説明】
10…主記憶装置、20…CPU、30…命令フェッチ
機構、40…命令デコード機構、41…命令バッファ、
42…レジスタ、50…命令実行機構、51…命令アド
レスバッファ。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】  主記憶装置から命令を取込む命令フェ
    ッチ手段と、この命令フェッチ手段によって取込まれた
    命令およびその命令アドレスの対を一時格納する命令バ
    ッファを持ち、同バッファから格納順に命令を取出して
    解読する命令デコード手段と、この命令デコード手段に
    よって解読された命令の実行を司り、実行中命令の命令
    アドレスを実行完了まで保持する命令実行手段であって
    、命令を書換えるための命令書換え命令の実行に際して
    は、その命令書換え先アドレスと同じ命令アドレスが同
    命令実行手段および上記命令バッファのうちの上記命令
    バッファだけに保持されているか否かを調べ、上記命令
    バッファだけに保持されている場合には、上記主記憶装
    置上の該当アドレスの命令と共に、上記命令バッファ上
    の該当命令を書換える命令実行手段と、を具備し、命令
    書換え命令実行時に、書換え対象命令が既に命令バッフ
    ァに取込まれていることをアドレス比較により検出して
    、同バッファ上の該当命令も書換えるようにしたことを
    特徴とする情報処理装置。
  2. 【請求項2】  上記命令実行手段は、上記命令書換え
    命令の実行に際しては、その命令書換え先アドレスと同
    じ命令アドレスが同命令実行手段内に保持されているか
    否かを調べ、保持されている場合には、上記命令バッフ
    ァに保持されているか否かに無関係に、命令実行を全て
    キャンセルすると共に上記命令バッファを無効にし、且
    つ上記命令書換え命令の命令アドレスからの命令取込み
    を上記命令フェッチ手段に要求すると共に上記命令書換
    え先アドレスを上記命令デコード手段に送り、上記命令
    デコード手段は、上記命令実行手段から送られた命令書
    換え先アドレスと同じ命令アドレスの命令を解読対象命
    令として上記命令バッファから取出して解読する際には
    、この命令が上記命令実行手段によって書換えられたこ
    とを確認することを特徴とする請求項1記載の情報処理
    装置。
JP3012191A 1991-02-01 1991-02-01 情報処理装置 Pending JPH04246728A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3012191A JPH04246728A (ja) 1991-02-01 1991-02-01 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3012191A JPH04246728A (ja) 1991-02-01 1991-02-01 情報処理装置

Publications (1)

Publication Number Publication Date
JPH04246728A true JPH04246728A (ja) 1992-09-02

Family

ID=11798514

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3012191A Pending JPH04246728A (ja) 1991-02-01 1991-02-01 情報処理装置

Country Status (1)

Country Link
JP (1) JPH04246728A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001504957A (ja) * 1996-09-26 2001-04-10 トランスメタ・コーポレーション 先進のプロセッサにおけるメモリ・データ・エリアシング方法および装置
US6571329B1 (en) 1999-08-24 2003-05-27 Fujitsu Limited Detection of overwrite modification by preceding instruction possibility of fetched instruction code using fetched instructions counter and store target address
US7716452B1 (en) 1996-08-22 2010-05-11 Kelly Edmund J Translated memory protection apparatus for an advanced microprocessor

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7716452B1 (en) 1996-08-22 2010-05-11 Kelly Edmund J Translated memory protection apparatus for an advanced microprocessor
US8055877B1 (en) 1996-08-22 2011-11-08 Kelly Edmund J Translated memory protection apparatus for an advanced microprocessor
JP2001504957A (ja) * 1996-09-26 2001-04-10 トランスメタ・コーポレーション 先進のプロセッサにおけるメモリ・データ・エリアシング方法および装置
US6571329B1 (en) 1999-08-24 2003-05-27 Fujitsu Limited Detection of overwrite modification by preceding instruction possibility of fetched instruction code using fetched instructions counter and store target address

Similar Documents

Publication Publication Date Title
JPH03147022A (ja) 分岐命令処理装置および処理方法
JPS6356731A (ja) デ−タ処理装置
US5226138A (en) Method for selectively transferring data instructions to a cache memory
JPH02287626A (ja) パイプライン方式の分岐命令制御装置
JPH04246728A (ja) 情報処理装置
JPH07306785A (ja) 分岐命令実行機能を持つプロセッサおよび分岐命令制御方法
JP2534662B2 (ja) 命令キヤツシユ制御方法
JP2508021B2 (ja) デ−タ処理装置
JP2902847B2 (ja) 自己変更コード実行方式
JPS61217834A (ja) デ−タ処理装置
JPH05173786A (ja) 自己変更コード実行方式
JP3456770B2 (ja) 情報処理装置
JPH0795288B2 (ja) マイクロコンピュータ
JPH01193938A (ja) 命令先読み装置
JPH0736693A (ja) 情報処理装置
JPH0528043A (ja) 命令キヤツシユメモリの無効化制御方法
JPS6336336A (ja) 情報処理装置
JP2000347934A (ja) キャッシュメモリ装置
JPS63311438A (ja) ストア命令不一致制御回路
JPH0235525A (ja) 命令フェッチ制御方法
JPS6373432A (ja) 情報処理装置
JPH04158444A (ja) 情報処理装置
JPS62203236A (ja) 命令プリフェッチ方法
JPH0578052B2 (ja)
JPH01188941A (ja) プログラム実行制御方式