JP2723642B2 - ソフトウェア命令のエミュレーション方式 - Google Patents

ソフトウェア命令のエミュレーション方式

Info

Publication number
JP2723642B2
JP2723642B2 JP2041923A JP4192390A JP2723642B2 JP 2723642 B2 JP2723642 B2 JP 2723642B2 JP 2041923 A JP2041923 A JP 2041923A JP 4192390 A JP4192390 A JP 4192390A JP 2723642 B2 JP2723642 B2 JP 2723642B2
Authority
JP
Japan
Prior art keywords
emulation
storage unit
information
microinstruction
instruction
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 - Fee Related
Application number
JP2041923A
Other languages
English (en)
Other versions
JPH03244034A (ja
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.)
KOBE NIPPON DENKI SOFUTOEA KK
NEC Corp
Original Assignee
KOBE NIPPON DENKI SOFUTOEA KK
Nippon Electric Co 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 KOBE NIPPON DENKI SOFUTOEA KK, Nippon Electric Co Ltd filed Critical KOBE NIPPON DENKI SOFUTOEA KK
Priority to JP2041923A priority Critical patent/JP2723642B2/ja
Publication of JPH03244034A publication Critical patent/JPH03244034A/ja
Application granted granted Critical
Publication of JP2723642B2 publication Critical patent/JP2723642B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はソフトウェア命令のエミュレーション方式に
関し、特にマイクロ命令によりソフトウェア命令のエミ
ュレーションを実行するソフトウェア命令のエミュレー
ション方式に関する。
〔従来の技術〕
第4図は従来のソフトウェア命令のエミュレーション
方式のブロック図である。
第4図において、フェッチされたエミュレーションの
対象となるソフトウェア命令は、カレント命令格納部1
へ格納され、カレント命令格納部1で保持するソフトウ
ェア命令の一部のビット列が制御記憶部2へ送出され
る。
制御記憶部2では、上記のビット列を、マイクロ命令
を参照するアドレスに変換し、制御記憶部2の上記アド
レスに格納されているマイクロ命令を読み出し出力す
る。制御記憶部2が出力するマイクロ命令は、次に実行
されるマイクロ命令を指定するフィールドと、エミュレ
ーションの終了の有無を示すフラグとを有している。そ
して、エミュレーション終了を示すフラグを持ったマイ
クロ命令が現われるまで、1実行サイクルごとに上記の
フィールドに従ってマイクロ命令を更新し続ける。そし
て、エミュレーション終了を示すフラグを持ったマイク
ロ命令が現われエミュレーションの終了が検出される
と、次に実行されるソフトウェア命令のフェッチが行わ
れる。
また、マイクロ命令を参照するアドレスには、ソフト
ウェア命令の一部のビット列しか含まれていないため、
制御記憶部2の出力するマイクロ命令は、エミュレーシ
ョンに必要なレジスタ番号、アドレス情報、イミディエ
ート値を持つことができない。このため、エミュレーシ
ョン情報切り出し部3で、カレント命令格納部1に保持
されているソフトウェア命令から、エミュレーションに
必要なエミュレーション情報であるレジスタ番号、アド
レス情報、イミディエート値を切り出す必要があり、一
つのソフトウェア命令のエミュレーションが終了するま
では、カレント命令格納部1の内容を更新することがで
きない。そして、モディファイ部5では、エミュレーシ
ョン情報切り出し部3より切り出された情報が、マイク
ロ命令中に付与されて出力される。
第5図は第4図に示すソフトウェア命令のエミュレー
ション方式のタイムチャートであり、ソフトウェア命令
M1を三つのマイクロ命令m11,m12,m13で、ソフトウェア
命令M2を二つのマイクロ命令m21,m22で、またソフトウ
ェア命令M3を二つのマイクロ命令m31,m32でエミュレー
ションする例を示している。
第5図において、M1〜M3はカレント命令格納部1に保
持されているソフトウェア命令であり、m11〜m13は制御
記憶部2が出力するソフトウェア命令M1をエミュレーシ
ョンするマイクロ命令、m21,m22はソフトウェア命令M2
をエミュレーションするマイクロ命令、m31,m32はソフ
トウェア命令M3をエミュレーションするマイクロ命令で
ある。また、m11′〜m13′,m21,m22′,m31′,m32
は、エミュレーション情報が付与されたマイクロ命令を
それぞれ示している。
第5図においては、マイクロ命令m13がソフトウェア
命令M1のエミュレーション終了のフラグを持ち、マイク
ロ命令m13のときに、ソフトウェア命令M1のエミュレー
ションが終了する。そして、次に実行するソフトウェア
命令M2のフェッチが、フェッチサイクルの期間に行われ
るが、ソフトウェア命令M2をエミュレーションするマイ
クロ命令は、ソフトウェア命令M2のフェッチが完了する
までは出力することができないため、フェッチサイクル
の期間中はマイクロ命令は実行されず、フェッチサイク
ルの後で実行されていた。同様に、ソフトウェア命令M3
のフェッチもソフトウェア命令M2のエミュレーション終
了に行われていた。
〔発明が解決しようとする課題〕
上述した従来のソフトウェア命令のエミュレーション
方式は、以下の欠点があった。
(1)一つのソフトウェア命令のエミュレーションが終
了するまで、カレント命令格納部の内容を保持しなけれ
ばならない。そのため、次に実行するソフトウェア命令
のフェッチを行うことができず、一つのソフトウェア命
令のエミュレーションが終了して、次のソフトウェア命
令がカレント命令格納部に格納されると初めて、次のソ
フトウェア命令のフェッチを行うことができ、このフェ
ッチサイクルの時間を費やしてから次のソフトウェア命
令のエミュレーション動作に入るので、ソフトウェア命
令のフェッチサイクルの時間があることにより、エミュ
レーション動作速度がそれだけ遅くなって性能が低下し
てしまう。
(2)エミュレーション情報を切り出すとき、ハードウ
ェアのバグのために、一旦不正な値を切り出してしまっ
た場合には、再度正しい値を切り出してエミュレーショ
ン動作を継続するための方法がなく、ハードウェアのバ
グを除去するしか方法がなかった。
〔課題を解決するための手段〕
本発明のソフトウェア命令のエミュレーション方式
は、ソフトウェア命令のエミュレーションをマイクロ命
令によって行うソフトウェア命令のエミュレーション方
式において、 (A)前記エミュレーションが実行されるソフトウェア
命令を格納するカレント命令格納部、 (B)前記カレント命令格納部に格納されたソフトウェ
ア命令を構成するビット情報を読み出してエミュレーシ
ョンを実行するためのマイクロ命令を生成する制御記憶
部、 (C)前記エミュレーションを実行するために必要なエ
ミュレーション情報を、前記カレント命令格納部に格納
されたソフトウェア命令から切り出すエミュレーション
情報切り出し部、 (D)該エミュレーション情報切り出し部により切り出
されたエミュレーション情報を保持し、かつマイクロ命
令により任意にエミュレーション情報の内容の変更が可
能なエミュレーション情報格納部、 (E)該エミュレーション情報格納部から出力されたエ
ミュレーション情報を前記マイクロ命令に付与し出力す
るモディファイ部、 を有している。
〔実施例〕
次に、本発明の実施例について図面を参照して説明す
る。
第1図は本発明の一実施例のブロック図である。
第1図に示すソフトウェア命令のエミュレーション方
式は、エミュレーションが実行されるソフトウェア命令
を格納するカレント命令格納部1、カレント命令格納部
1に格納されたソフトウェア命令を構成するビット情報
を読み出してエミュレーションを実行するためのマイク
ロ命令を生成する制御記憶部2、エミュレーションを実
行するために必要なエミュレーション情報をカレント命
令格納部1に格納されたソフトウェア命令から切り出す
エミュレーション情報切り出し部3、エミュレーション
情報切り出し部3により切り出されたエミュレーション
情報を保持し、かつマイクロ命令により任意にエミュレ
ーション情報の内容の変更が可能なエミュレーション情
報格納部4、エミュレーション情報格納部4から出力さ
れたエミュレーション情報をマイクロ命令に付与し出力
するモディファイ部5から構成されている。
次に、動作を説明する。
第1図において、フェッチされたエミュレーションの
対象となるソフトウェア命令は、カレント命令格納部1
へ格納される。そして、カレント命令格納部1で保持す
るソフトウェアの一部のビット列は、制御記憶部2へ送
出され、制御記憶部2では、このビット列を、マイクロ
命令を参照するアドレスに変換し、制御記憶部2に格納
されているマイクロ命令を読み出して出力する。
制御記憶部2から出力されるマイクロ命令は、次に実
行されるマイクロ命令を指定するフィールドと、エミュ
レーションの終了の有無を示すフラグとを持っており、
エミュレーション終了を示すフラグを持ったマイクロ命
令が実行されるまで、1実行サイクルごとに上記フィー
ルドにしたがって、マイクロ命令を更新し続ける。
制御記憶部2の出力するマイクロ命令には、ソフトウ
ェア命令のエミュレーションに必要なレジスタ番号、ア
ドレス情報、イミディエート値が含まれていないので、
エミュレーション情報切り出し部3は、カレント命令格
納部1に保持されているソフトウェア命令から上記エミ
ュレーション情報を切り出す。切り出されたエミュレー
ション情報は、エミュレーション情報格納部4へ伝えら
れる。
エミュレーション情報格納部4では、切り出されたエ
ミュレーションに必要な情報を格納し、かつマイクロ命
令により、エミュレーション情報格納部4のエミュレー
ション情報を任意に書き換えできるようになっている。
切り出されたエミュレーション情報がエミュレーショ
ン情報格納部4に保持されているため、カレント命令格
納部1ではソフトウェア命令を保持しておく必要がな
い。そのため、切り出されたエミュレーション情報がエ
ミュレーション情報格納部4に格納されるのと同時に、
カレント命令格納部1は、次に実行するソフトウェア命
令をフェッチすることができる。
エミュレーション情報切り出し部3には、入力データ
とともに、エミュレーション情報格納部4のエミュレー
ション情報を指示するフィールドを持ったマイクロ命令
を、制御記憶部2より与えることで、エミュレーション
情報格納部4に格納された任意のエミュレーション情報
を書き換えることができる。
また、エミュレーション情報格納部4の任意のエミュ
レーション情報を書き換えることができるので、これに
よって、ソフトウェア命令の不正な切り出しを次に述べ
るようにして回避することができる。
制御記憶部2内に格納されているマイクロ命令は、次
に実行するマイクロ命令を指定するフィールドを持って
いるが、不正な切り出しの発生するソフトウェア命令の
エミュレーションが実行され、不正な切り出しが検出さ
れたとき、ソフトウェア命令の不正な切り出しに対する
回避ルーチンに制御を移すことができるようにこのフィ
ールドを書き換えることにより、マイクロ命令でコーデ
ィングされている回避ルーチンヘ制御を移すことができ
る。
制御記憶部2からエミュレーション情報切り出し部3
に出力された回避ルーチンを構成するマイクロ命令の制
御により、カレント命令格納部1のソフトウェア命令を
データとしてアクセスし、正しいエミュレーション情報
を切り出して、エミュレーション情報の書き換えを行う
ためのマイクロ命令に付与される。そして、上記の正し
いエミュレーション情報を付与された、エミュレーショ
ン情報の書き換え用のマイクロ命令を実行することで、
不正に切り出されたエミュレーション情報を書き換える
ことができる。
モディファイ部5では、制御記憶部2の出力するマイ
クロ命令に、エミュレーション情報格納部4で保持する
正しいエミュレーション情報を付与して出力される。
第2図は第1図に示すソフトウェア命令のエミュレー
ション方式のタイムチャートである。
第2図において、M1〜M3はカレント命令格納部1に保
持されているソフトウェア命令、D1〜D3,D3′はソフト
ウェア命令M1〜M3から切り出されてエミュレーション情
報格納部4で保持されるエミュレーション情報、m11〜m
13,m21,m22,m31〜m34は制御記憶部2が出力するマイク
ロ命令、m11′〜m13′,m21′,m22′,m31′〜m34′は
エミュレーション情報が付与されたマイクロ命令をそれ
ぞれ示している。
カレント命令格納部1にソフトウェア命令M1がフェッ
チされ、エミュレーション情報格納部4にはエミュレー
ション情報D1が格納される。そして、マイクロ命令m13
のときに、エミュレーション終了を示すフラグにより、
ソフトウェア命令M1のエミュレーションが終了する。こ
のとき、カレント命令格納部1では、次のソフトウェア
命令M2のフェッチは既にソフトウェア命令M1エミュレー
ションの実行中に終了して、次に実行されるソフトウェ
ア命令M2がもうカレント命令格納部1に格納されてお
り、エミュレーション情報格納部4にはエミュレーショ
ン情報D2が直ちに格納される。そのためフェッチサイク
ルがあっても、エミュレーション動作の中での時間的損
失とはならない。
次のサイクルでは、エミュレーション情報格納部4に
は、ソフトウェア命令M3 ら切り出されたエミュレーシ
ョン情報D3が保持されているが、ここで不正な切り出し
が検出されたとすると、マイクロ命令m32でエミュレー
ション情報格納部4の書き換えが行われ、ソフトウェア
命令M3ら切り出されたエミュレーション情報D3がエミュ
レーション情報D3′に書き換えられる。
そして、次のマイクロ命令m33,m34により、書き直さ
れたエミュレーション情報D3′を用いてソフトウェア命
令M3のエミュレーションが行われる。
次に、ソフトウェア命令の不正な切り出しの回避の具
体例を説明する。
ソフトウェア命令のフォーマットの例を第3図に示
す。OPはオペレーションコード、GR1,GR2はレジスタ番
号、ADはアドレスを示している。
具体例としてソフトウェア命令フォーマット「1」を
有するソフトウェア命令A1に対し、ハードウェア上の不
具合により、ソフトウェア命令フォーマット「2」の切
り出しが行われた場合について、不具合を回避する実施
例を以下に示す。
ソフトウェア命令Aをデータとしてアクセスし、マイ
クロ命令により、ソフトウェア命令フォーマット「1」
にしたがって、GR1,GR2のレジスタ番号を取り出し、さ
らにエミュレーョン情報の書き換えを行うマイクロ命令
により、エミュレーション情報格納部4のGR1,GR2のレ
ジスタ番号を格納している部分の書き換えを行う。
その後、ソフトウェア命令Aに対してエミュレーショ
ンを実行するマイクロ命令に制御を移し、これ以降は通
常のエミュレーション動作を行うことにより、ハードウ
ェアの不具合による不正な切り出しの回避を行うことが
できる。
〔発明の効果〕
以上説明したように、本発明は、ソフトウェア命令の
エミュレーション中に、次に実行するソフトウェア命令
を先取りし、ソフトウェア命令のエミュレーション情報
を切り出してエミュレーョン情報格納部に保持したと
き、不正な切り出しがあった場合は、マイクロ命令によ
って、エミュレーション情報格納部のエミュレーション
情報を書き換えることにより、以下の効果を有する。
(1)ソフトウェア命令のフェッチサイクルの所要時間
はエミュレーションの動作を低下させる原因とならない
ので、それだけ動作速度を大きくでき、性能を大きく向
上することができる。
(2)マイクロ命令でエミュレーション情報格納部のエ
ミュレーション情報が書き換え可能になっており、不正
な切り出しを行うソフトウェア命令を、回避ルーチンに
よってデータとしてアクセスして正しい値を切り出した
後、エミュレーション情報格納部の不正な値と書き換え
ることでエミュレーション情報切り出しの不正を容易に
回避することが可能となる。
【図面の簡単な説明】
第1図は本発明の一実施例のブロック図、第2図は第1
図に示すソフトウェア命令のエミュレーション方式のタ
イムチャート、第3図はソフトウェア命令フォーマット
の例を示す図、第4図は従来のソフトウェア命令のエミ
ュレーション方式のブロック図、第5図は第4図に示す
ソフトウェア命令のエミュレーション方式のタイムチャ
ートである。 1……カレント命令格納部、2……制御記憶部、3……
エミュレーション情報切り出し部、4……エミュレーシ
ョン情報格納部、5……モディファイ部。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平1−183736(JP,A) 特開 昭63−173129(JP,A) 特開 平1−185731(JP,A)

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】ソフトウェア命令のエミュレーションをマ
    イクロ命令によって行うソフトウェア命令のエミュレー
    ション方式において、 (A)前記エミュレーションが実行されるソフトウェア
    命令を格納するカレント命令格納部、 (B)前記カレント命令格納部に格納されたソフトウェ
    ア命令を構成するビット情報を読み出してエミュレーシ
    ョンを実行するためのマイクロ命令を生成する制御記憶
    部、 (C)前記エミュレーションを実行するために必要なエ
    ミュレーション情報を、前記カレント命令格納部に格納
    されたソフトウェア命令から切り出すエミュレーション
    情報切り出し部、 (D)該エミュレーション情報切り出し部により切り出
    されたエミュレーション情報を保持し、かつマイクロ命
    令により任意にエミュレーション情報の内容の変更が可
    能なエミュレーション情報格納部、 (E)該エミュレーション情報格納部から出力されたエ
    ミュレーション情報を前記マイクロ命令に付与し出力す
    るモディファイ部、 を有することを特徴とするソフトウェア命令のエミュレ
    ーション方式。
  2. 【請求項2】請求項1記載のソフトウェア命令のエミュ
    レーション方式において、前記エミュレーション情報格
    納部が、前記エミュレーション情報切り出し部により切
    り出されたエミュレーション情報を保持し、かつマイク
    ロ命令により任意にエミュレーション情報であるレジス
    タ番号、アドレス情報、イミディエート値の内容の変更
    が可能であることを特徴とするソフトウェア命令のエミ
    ュレーション方式。
JP2041923A 1990-02-21 1990-02-21 ソフトウェア命令のエミュレーション方式 Expired - Fee Related JP2723642B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2041923A JP2723642B2 (ja) 1990-02-21 1990-02-21 ソフトウェア命令のエミュレーション方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2041923A JP2723642B2 (ja) 1990-02-21 1990-02-21 ソフトウェア命令のエミュレーション方式

Publications (2)

Publication Number Publication Date
JPH03244034A JPH03244034A (ja) 1991-10-30
JP2723642B2 true JP2723642B2 (ja) 1998-03-09

Family

ID=12621769

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2041923A Expired - Fee Related JP2723642B2 (ja) 1990-02-21 1990-02-21 ソフトウェア命令のエミュレーション方式

Country Status (1)

Country Link
JP (1) JP2723642B2 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01183736A (ja) * 1988-01-18 1989-07-21 Toshiba Corp 情報処理装置

Also Published As

Publication number Publication date
JPH03244034A (ja) 1991-10-30

Similar Documents

Publication Publication Date Title
RU2137183C1 (ru) Устройство и способ обработки данных с использованием наборов команд
US5568646A (en) Multiple instruction set mapping
US8024555B2 (en) Condition code flag emulation for program code conversion
US7159122B2 (en) Message digest instructions
US4992931A (en) Data alignment correction apparatus for properly formatting data structures for different computer architectures
GB2376100A (en) Processing non-native instruction using hardware executor
JPH1115673A (ja) 異なるランタイム環境において実行するための実行可能プログラムにおけるコードシーケンスを機能的に類似したコードシーケンスと条件付きで置き換えるローダ
JP2013539883A (ja) 複数の命令セットからの命令の復号
US7356710B2 (en) Security message authentication control instruction
JP2002366367A (ja) プログラム命令解釈
JPS6212529B2 (ja)
JP2723642B2 (ja) ソフトウェア命令のエミュレーション方式
JP3858013B2 (ja) 複数の個別記憶アドレス領域内に記憶された可変長命令の実行
JP4159586B2 (ja) 情報処理装置および情報処理の高速化方法
JP3055139B2 (ja) マイクロプログラム制御方式
US5463747A (en) Microprogram data processor processing operand address calculation and instruction execution with common hardware
JP2637770B2 (ja) マイクロコンピュータ
JPS6341092B2 (ja)
JP3057732B2 (ja) 情報処理装置
JP2576386B2 (ja) 情報処理装置
JPH0192840A (ja) データ処理装置
JP2689894B2 (ja) マイクロプログラム制御型情報処理装置
JP2001184227A (ja) シミュレーション装置
JPS6149692B2 (ja)
JP2559924B2 (ja) プログラマブルコントローラ

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees