JPH06202877A - エミュレーション装置 - Google Patents

エミュレーション装置

Info

Publication number
JPH06202877A
JPH06202877A JP34907292A JP34907292A JPH06202877A JP H06202877 A JPH06202877 A JP H06202877A JP 34907292 A JP34907292 A JP 34907292A JP 34907292 A JP34907292 A JP 34907292A JP H06202877 A JPH06202877 A JP H06202877A
Authority
JP
Japan
Prior art keywords
processor
instruction code
code
instruction
generated
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.)
Withdrawn
Application number
JP34907292A
Other languages
English (en)
Inventor
Sanehisa Doi
実久 土肥
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP34907292A priority Critical patent/JPH06202877A/ja
Publication of JPH06202877A publication Critical patent/JPH06202877A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【目的】本発明は、プロセッサを効率よく使用して、高
速でかつ効率的なエミュレーションを行うエミュレーシ
ョン装置を提供することを目的とする。 【構成】少なくとも、前記異種プロセッサで使用される
命令コードの解析を行う第1のプロセッサ1-1 と、該第
1のプロセッサ1-1 による命令コードの解析結果に基づ
いて、第3のプロセッサ1-3 で実行可能な命令コードを
生成する第2のプロセッサ1-2 と、該第2のプロセッサ
1-2 により生成された命令コードを実行する第3のプロ
セッサ1-3 とで構成される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、エミュレーション装置
に関する。近年のコンピュータシステムは高速化の要求
に伴い、従来にはなかった新しいアーキテクチャによ
り、従来のプロセッサとは比較にならない程の速度性能
を実現できるプロセッサが現れてきた。
【0002】一方、従来のプロセッサで使用されていた
ソフトウェア資産は膨大なものとなっているために、新
しいアーキテクチャを持つプロセッサを用いて、従来の
プロセッサで実行するために開発されたソフトウェア資
産を使用するために、高速にエミュレートさせるエミュ
レーション装置が要求されている。
【0003】
【従来の技術】図10は従来例を示す図である。図10
に示すように、アドレスバス、データバス、コードバス
を有するバス3にプロセッサ10-1,10-2,10-3を接続し、
さらに、図示しない主メモリおよび外部記憶装置を接続
してマルチプロセッサシステムを構成している。
【0004】前記主メモリおよび外部記憶装置には、そ
れぞれコードメモリ空間およびデータメモリ空間が存在
し、この図10では主メモリと外部記憶装置の区別せ
ず、コードメモリ空間およびデータメモリ空間として図
示している。前記データメモリ空間の命令コード記憶領
域には、プロセッサ10-1,10-2,10-3と異なるアーキテク
チャによるプロセッサ(以下、異種プロセッサと称す
る)で使用されていたプログラムの命令コード列を記憶
しており、また、前記コードメモリ空間のコード解析プ
ログラム記憶領域にはコード解析プログラムが、また、
実行プログラム記憶領域には実行プログラムがそれぞれ
記憶されている。
【0005】そのコードメモリ空間の実行プログラム記
憶領域に記憶されている実行プログラムは、異種プロセ
ッサで使用されていた各命令コードに相当する機能をエ
ミュレーションを行うプロセッサで実行できるサブルー
チンとして所有している。また、コードメモリ空間のコ
ード解析プログラム記憶領域に記憶されているコード解
析プログラムは、データメモリ空間の命令コード記憶領
域に記憶されている命令コードを解析するためのもので
あり、異種プロセッサで使用されていた命令コードとコ
ードメモリ空間の実行プログラム記憶領域に実行プログ
ラムとして記憶しているサブルーチンを対応付けて記憶
しているものである。
【0006】以下に、上記従来のエミュレーション装置
によるエミュレーションについて、図10および図11
を用いて説明する。図11は従来のエミュレーション装
置によるエミュレーションのフローチャートである。従
来のエミュレーションは、マルチプロセッサシステムに
おいても単一のプロセッサにより行われており、以下、
プロセッサ10-1によってエミュレーションが行われるも
のとする。
【0007】プロセッサ10-1は、まず、データメモリ空
間の命令コード記憶領域から1つの命令コードを読み込
む(図11のS31)。そして、プロセッサ10-1は、コ
ードメモリ空間のコード解析プログラム記憶領域に記憶
されているコード解析プログラムを読み込み、該コード
解析プログラムを使用してその読み出した命令コードの
解析を行う(図11のS32)。
【0008】該コード解析プログラムによる命令コード
の解析によって該命令コードに対応するサブルーチンを
見つけると、プロセッサ10-1はコードメモリ空間の実行
プログラム記憶領域に記憶されている実行プログラム中
の該サブルーチン(エミュレーションコード)を呼び出
し実行する(図11のS33)。上記データメモリ空間
の命令コード記憶領域に記憶している異種プロセッサの
全ての命令コードについて、ステップS31〜S33の
命令コード解析、該命令コード解析結果による実行プロ
グラムの実行を繰り返して行う。
【0009】
【発明が解決しようとする課題】以上のように、従来の
エミュレーション装置は、単一のプロセッサが命令コー
ドの解析、実行を繰り返していた。近年のプロセッサ
は、命令コードを連続して読み込み、実行することによ
って処理速度が速くなるようにつくられている。
【0010】しかし、上述したように、従来のエミュレ
ーション装置では、単一のプロセッサによって命令コー
ドの解析、実行が繰り返して行われるために、命令コー
ドを連続して読み込み、実行することができない。その
ため、従来のエミュレーション装置では、高速にエミュ
レーションを行うことができなかった。
【0011】また、例えば、命令コードがDOループの
際には、一度、そのDOループ内の命令コードを解析し
ているにも関わらず、DOループを繰り返す度に毎回そ
のDOループ内の命令コードを解析して実行する必要が
あった。本発明は、プロセッサを効率よく使用して、高
速でかつ効率的なエミュレーションを行うエミュレーシ
ョン装置を提供することを目的とする。
【0012】
【課題を解決するための手段】図1は、本発明の第1の
原理図である。図中、1-1 は第1のプロセッサであり、
異種プロセッサで使用される命令コードの解析を行うも
のである。1-2 は第2のプロセッサであり、該第1のプ
ロセッサ1-1 による命令コードの解析結果に基づいて、
第3のプロセッサ1-3 で実行可能な命令コードを生成す
るものである。
【0013】1-3 は第3のプロセッサであり、該第2の
プロセッサ1-2 により生成された命令コードを実行する
ものである。図2は、本発明の第2の原理図である。図
中、1-4 はプロセッサであり、異種プロセッサで使用さ
れる命令コードの解析を行い、該命令コードの解析結果
に基づいて命令コードを生成して記憶し、該生成した命
令コードを実行するものである。
【0014】
【作用】第1の発明では、図1に示すように、第1のプ
ロセッサ1-1 にコード解析プログラムを用いて、異種プ
ロセッサで使用されていた命令コードの解析を行わせ
る。その第1のプロセッサ1-1 による命令コードの解析
結果に基づいて、第2のプロセッサ1-2 に、コード変換
プログラムを用いて第3のプロセッサ1-3 で実行可能な
命令コードを生成させる。
【0015】そして、該第2のプロセッサ1-2 により生
成された命令コードは、第3のプロセッサ1-3 によって
実行される。このように、命令コードの解析、変換、実
行の各処理をそれぞれのプロセッサに割り振ることによ
り、各プロセッサによって各処理が専用に行われるよう
になる。
【0016】よって、第3のプロセッサ1-3 では、コー
ド変換後の命令コードの実行のみを行うことができるた
め、命令コードを連続して読み込んで実行することが可
能となる。また、第2の発明では、図2に示すように、
プロセッサ1-4 は、まず、異種プロセッサで使用されて
いた命令コードを順次読み込み、コード解析プログラム
を用いて命令コードの解析を行い、その命令コードの解
析結果を記憶する。
【0017】この命令コード解析処理を一定期間行った
後、命令コード解析処理から命令コード変換処理に処理
を切り換える。命令コード変換処理に処理を切り換える
と、該プロセッサ1-4 は命令コード解析処理による命令
コードの解析結果に基づいて、該プロセッサ1-4 で実行
可能な命令コードを生成して記憶する。
【0018】この命令コード変換処理を一定期間行った
後、命令コード変換処理から変換後命令コード実行処理
に処理を切り換える。変換後命令コード実行処理に処理
を切り換えると、該プロセッサ1-4 は命令コード変換処
理によって生成された命令コードを順次読み込み、その
読み込んだ命令コードの実行を行う。
【0019】この変換後コード実行処理を一定期間行っ
た後、再び、命令コード解析処理に戻り、上記各処理を
繰り返して行う。以上により、この第2の発明によって
も、連続して命令コードを読み込み、実行することが可
能となる。上記の構成によって、DOループの際には、
一度、該DOループ内の命令コードは解析して変換さ
れ、プロセッサ1-4 で実行可能な命令コードとして記憶
されているため、DOループを繰り返す度に命令コード
の解析する必要がなくなる。
【0020】
【実施例】以下、図面を用いて実施例を詳細に説明す
る。図3は本発明の第1の実施例を示す図である。図3
に示すように、アドレスバス、データバス、コードバス
を有するバス3にそれぞれ、キャッシュメモリ2-1 を有
する解析用プロセッサ1-1 、キャッシュメモリ2-2 を有
する変換用プロセッサ1-2 、キャッシュメモリ2-3 を有
する実行用プロセッサ1-3 を接続し、さらに、図示しな
いが上記従来例と同様に、主メモリおよび外部記憶装置
を接続してマルチプロセッサシステムを構成している。
また、本実施例のマルチプロセッサシステムでは、デマ
ンドページングを採用している。
【0021】前記主メモリおよび外部記憶装置には、前
記従来例と同様にコードメモリ空間およびデータメモリ
空間が存在し、この図11においても主メモリと外部記
憶装置の区別をせず、コードメモリ空間およびデータメ
モリ空間として図示している。 前記データメモリ空間
の命令コード記憶領域には、異種プロセッサで使用され
ていたプログラムの命令コードを記憶しており、また、
前記コードメモリ空間のコード解析プログラム記憶領域
にはコード解析プログラムが、コード変換プログラム記
憶領域にはコード変換プログラムがそれぞれ記憶されて
いる。
【0022】そのコード解析プログラムは、データメモ
リ空間の命令コード記憶領域に記憶されている命令コー
ド列による処理の流れ、どのデータからどのデータが生
成されるか等のデータの依存関係、命令コードの並び換
えが可能かどうか等の解析をするものである。また、コ
ード変換プログラムは、異種プロセッサで使用されてい
た命令コードを少なくとも実行用プロセッサ1-3 で実行
可能な命令コードを生成をするものである。
【0023】以下に、本発明の第1の実施例によるエミ
ュレーションについて、図3および図4を用いて説明す
る。図4は本発明の第1の実施例によるエミュレーショ
ンのフローチャートである。本実施例では、解析用プロ
セッサ1-1 に異種プロセッサで使用されていたプログラ
ムの命令コードの解析を、変換用プロセッサ1-2 に解析
用プロセッサ1-1 による命令コード解析後の命令コード
変換を、実行用プロセッサ1-3 に変換用プロセッサ1-2
による命令コード変換後のコード実行をそれぞれ行わせ
るように割り当てている。
【0024】また、解析用プロセッサ1-1 は、コードメ
モリ空間のコード解析プログラム記憶領域に記憶してい
るコード解析プログラムを読み込んだ際には、その解析
用プロセッサ1-1 が有するキャッシュメモリ2-1 に該コ
ード解析プログラムを記憶し、変換用プロセッサ1-2
は、コードメモリ空間のコード変換プログラム記憶領域
に記憶しているコード変換プログラムを読み込んだ際に
は、その変換用プロセッサ1-2 が有するキャッシュメモ
リ2-2 に該コード変換プログラムを記憶する。
【0025】まず、解析用プロセッサ1-1 は、データメ
モリ空間の命令コード記憶領域に記憶している異種プロ
セッサで使用されていたプログラムの命令コードを読み
込み(図4のS1)、また、コードメモリ空間のコード
解析プログラム記憶領域に記憶しているコード解析プロ
グラムを読み込み、該コード解析プログラムを使用して
前記読み込んだ命令コードの解析を行う(図4のS
2)。
【0026】その解析用プロセッサ1-1 による命令コー
ドの解析は、データメモリ空間の解析プログラム作業領
域を使用して、命令コードの種類、処理の流れ、データ
の依存関係、命令コードの並び換えが可能であるかどう
か等を調べるものである。また、コードメモリ空間のコ
ード解析プログラム記憶領域からコード解析プログラム
を解析用プロセッサ1-1 が読み込んだ際には、該コード
解析プログラムを該解析用プロセッサ1-1 が有している
キャッシュメモリ2-1 に記憶し、以後、該キャッシュメ
モリ2-1 に記憶しているコード解析プログラムを使用し
て命令コードの解析を行う。
【0027】解析用プロセッサ1-1 による命令コードの
解析結果は、データメモリ空間の解析結果記憶領域に格
納される(図4のS3)。その解析用プロセッサ1-1
は、上記ステップS1〜S3のデータメモリ空間の命令
コード記憶領域からの命令コードの読み込み、および該
読み込んだ命令コードの解析を繰り返して行い、その命
令コードの解析結果をデータメモリ空間の解析結果記憶
領域に格納する。
【0028】変換用プロセッサ1-2 は、データメモリ空
間の解析結果記憶領域に記憶されている命令コードの解
析結果を読み込み(図4のS4)、また、コードメモリ
空間のコード変換プログラム記憶領域からコード変換プ
ログラムを読み込み、該コード変換プログラムを使用し
て前記読み込んだ命令コードの解析結果に基づき命令コ
ードを生成する(図4のS6)。
【0029】解析用プロセッサ1-1 によって、命令コー
ドを並び換えても実行結果に影響を及ぼさず、かつ、そ
の並び換えによって実行速度が速くなるという命令コー
ドの解析結果が得られた命令コードについては、その変
換用プロセッサ1-2 による命令コード生成の際に、生成
される命令コードの並び換え(最適化)が行われる(図
4のS5)。
【0030】変換用プロセッサ1-2 はデータメモリ空間
の変換プログラム作業領域を使用して命令コードの生成
を行い、該変換用プロセッサ1-2 によって生成された命
令コードは、コード変換後プログラムとしてコードメモ
リ空間のコード変換後プログラム記憶領域に格納される
(図4のS7)。そのコードメモリ空間のコード変換プ
ログラム記憶領域からコード変換プログラムを変換用プ
ロセッサ1-2 が読み込んだ際には、該コード変換プログ
ラムを該プロセッサが有しているキャッシュメモリ2-2
に記憶し、以後、該キャッシュメモリ2-2 に記憶してい
るコード変換プログラムを使用して命令コードの生成を
行う。
【0031】変換用プロセッサ1-2 は、上記ステップS
4〜S7のデータメモリ空間の解析結果記憶領域からの
コード解析結果の読み込み、および該コード解析結果に
基づいた命令コードの生成、生成した命令コードのコー
ドメモリ空間のコード変換後プログラム記憶領域への格
納を繰り返して行う。実行用プロセッサ1-3 は、コード
メモリ空間のコード変換後プログラム記憶領域に記憶さ
れているコード変換後プログラムの命令コードを読み込
み(図4のS8)、その命令コードを実行する(図4の
S9)。その際には、読み込んだ命令コードを該実行用
プロセッサ1-3 が有しているキャッシュメモリ2-3 に記
憶する。
【0032】実行用プロセッサ1-3 は、上記ステップS
8,S9のコードメモリ空間のコード変換後プログラム
記憶領域からのコード変換後プログラムの命令コードの
読み込み、および該読み込んだ命令コードの実行を繰り
返して行う。上記のように、各プロセッサ1-1,1-2,1-3
によって処理が行われている際に、実行用プロセッサ1-
3 によるコード変換後プログラムの命令コード実行時
に、該命令コードがジャンプ命令などによって、変換用
プロセッサ1-2 によってまだコード変換がなされていな
い部分に差しかかる場合がある。
【0033】そのコード未変換部分にさしかかる場合に
は、 実行用プロセッサ1-3 がコード変換後プログラムを順
次実行をしてきた結果、コード未変換部分に達する場
合、 実行用プロセッサ1-3 が実行したコード変換後プログ
ラムの命令コードがジャンプ命令であり、コード未変換
部分にとぶ場合、 実行用プロセッサ1-3 が実行したコード変換後プログ
ラムの命令コードがコール命令であり、そのコール命令
によりコード未変換部分のサブルーチンを実行しようと
した場合、 などがある。
【0034】以下に、コード未変換部分に差しかかった
際の処理について説明する。図5は、実行用プロセッサ
がコード変換後プログラムを順次実行してきた結果、コ
ード未変換部分に達した場合の処理のフローチャートを
示すものである。図6は実行用プロセッサが実行したコ
ード変換後プログラムの命令コードがジャンプ命令、コ
ール命令等であって、該命令コードの実行によりコード
未変換部分に達する場合を示すものである。
【0035】まず、図5を用いて、実行用プロセッサ1-
3 がコード変換後プログラムを順次実行してきた結果、
コード未変換部分に達した場合の処理について説明す
る。実行用プロセッサ1-3 は該実行用プロセッサ1-3 が
有しているキャッシュメモリ2-3 にアクセスしてキャッ
シュミスヒットと判定されると(図5のS11)、オペ
レーティングシステムに制御が移り、オペレーティング
システムは必要とするページが主メモリ上に存在するか
どうか検索する(図5のS12)。
【0036】オペレーティングシステムによる検索の結
果、主メモリ上に前記必要とするページが存在する場合
には、実行用プロセッサ1-3 は主メモリから該ページを
読み込んでキャッシュメモリ2-3 に記憶し、該ページの
命令コードを実行する(図5のS13)。また、検索の
結果、必要とするページが主メモリ上に存在しない、す
なわちページフォルトと判定されると、さらに、オペレ
ーティングシステムはページアウトによって外部記憶装
置等のSwap領域上に該ページを書き出したかどうか
判定する(図5のS14)。
【0037】判定の結果、ページアウトにより外部記憶
装置にページを書き出している場合には、そのページを
ページインして主メモリに格納する。そして、実行用プ
ロセッサ1-3 は、主メモリから該ページを読み込んでキ
ャッシュメモリ2-3 に記憶し、該ページの命令コードを
実行する(図5のS15)。また、判定の結果、必要と
しているページがページアウトされていないとすると、
実行用プロセッサ1-3 がコード未変換部分に差しかかっ
たことになり、変換用プロセッサ1-2 により命令コード
が変換されるまで実行用プロセッサ1-3 は待機状態とな
る(図5のS16)。
【0038】次に、実行用プロセッサが実行したコード
変換後プログラムの命令コードがジャンプ命令、コール
命令等であって、該命令コードの実行によりコード未変
換部分の命令コードを実行しようとする場合について説
明する。その説明には、図7のコード未変換部分の命令
コード実行の際の処理を示す図と図6を使用する。
【0039】予め、解析用プロセッサ1-1 による命令コ
ード解析、変換用プロセッサ1-2 による命令コード変換
の際に、次のような処理をする。まず、解析用プロセッ
サ1-1 による命令コード解析の際に、解析中の命令コー
ド(図7に示す、“jump b”)がジャンプ命令、
コール命令等で、かつ、該命令コードの実行により、ま
だ解析されていない命令コードを実行するようになると
いう解析結果を得て、その解析結果をデータメモリ空間
の解析結果記憶領域に格納したとする。
【0040】そして、変換用プロセッサ1-2 は、データ
メモリ空間の解析結果記憶領域から上記解析結果を読み
込んだ時には、実行用プロセッサ1-3 によるコード変換
後プログラムの命令コードの実行の際に、エラーとして
オペレーティングシステムに制御が渡されるような命令
コード(図7に示す、“TRAP”)を生成する。その
際には、どの元命令コードを変換したものかを示すポイ
ンタ(図7に示す、“a”)を付与して、命令コード
(図7に示す、“A: TRAP a”)を生成する。
【0041】生成した命令コードは、上記同様、コード
メモリ空間のコード変換後プログラム記憶領域に格納さ
れる。実行用プロセッサ1-3 は、前記と同様に、コード
メモリ空間のコード変換後プログラム記憶領域からコー
ド変換後プログラムの命令コードを順次読み込み実行す
る。
【0042】その際に、変換用プロセッサ1-2 により生
成された上記変換後命令コード(図7に示す、“A:
TRAP a”)を読み込んで実行したとすると(図6
のS21)、該変換後命令コードを実行することによ
り、エラーとなってオペレーティングシステムに制御が
渡る(図6のS22)。オペレーティングシステムは、
エラーの原因となった変換後命令コード(図7に示す、
“A: TRAP a”)に付与されているポインタ
(図7に示す、“a”)から、該変換後命令コードがど
の元命令コードに対応するか見つけ出す(図6のS2
3)。
【0043】該変換後命令コードに対応する元命令コー
ド(図7に示す、“a: jumpb”)を見つける
と、該元命令コードの変換を変換用プロセッサ1-2 に要
求するとともに、その元命令コード(図7に示す、
“a: jump b”)のジャンプ先またはコール先
(図7に示す、“b”)である命令コード(図7に示
す、“b: lda c,d”)からの解析を解析用プ
ロセッサ1-1 に要求する(図6のS24)。
【0044】変換用プロセッサ1-2 は、解析用プロセッ
サ1-1 による該元命令コードの解析結果から、該元命令
コードに対応する本当の命令コード(図7に示す、命令
コード“A: JUMP B”)を生成して、コードメ
モリ空間のコード変換後プログラム記憶領域の変換後命
令コード(図7に示す、“A: TRAP a”)を生
成した命令コード(図7に示す、“A: JUMP
B”)に書き換える(図6のS25)。
【0045】命令コードの書き換えが終了すると、実行
用プロセッサ1-3 に命令コード書き換え終了が通知さ
れ、実行用プロセッサ1-3 により、書き換えられた命令
コードから再実行される(図6のS26)。本実施例で
は、異種プロセッサの命令コードの解析、変換、実行の
各処理をそれぞれ1つのプロセッサに割り振って3つの
プロセッサを使用しエミュレーションを行ったが、各処
理のそれぞれを複数のプロセッサを使用してエミュレー
ションを行ってもよい。
【0046】次に、第2の実施例について説明する。図
8は本発明の第2の実施例を示す図である。図8に示す
ように、第2の実施例では、アドレスバス、データバ
ス、コードバスを有するバス3にキャッシュメモリ2-4
を有するプロセッサ1-4 を接続し、さらに、図示しない
が主メモリおよび外部記憶装置を接続したシステム構成
をとっている。また、本実施例のシステム構成において
も、上記第1の実施例と同様に1デマンドページングを
採用している。
【0047】上記第1の実施例では、異種プロセッサの
命令コードの解析、変換、実行の各処理を3つのプロセ
ッサ1-1,1-2,1-3 に割り振ってエミュレーションを行っ
たが、第2の実施例では、図8に示すように、1つのプ
ロセッサ1-4 により異種プロセッサの命令コードの解
析、変換、実行の各処理を行う。1つのプロセッサ1-4
によるエミュレーションは、その命令コードの解析、変
換、実行の各処理をそれぞれ1つのタスクとしたマルチ
タスクによって行われる。
【0048】プロセッサ1-4 は、必要とするコード解析
プログラム、コード変換プログラム、コード変換後プロ
グラムの命令コードが該プロセッサ1-4 のキャッシュメ
モリ2-4 に存在する場合には、それらを用いて処理を
し、該キャッシュメモリ2-4 に存在しない場合には、必
要とするプログラムまたは命令コードが格納されている
コードメモリ空間の各領域、または、ページアウトされ
たSwap領域からそれらを読み込んで処理を行い、そ
れらを読み込んだ際には該キャッシュメモリ2-4に記憶
する。
【0049】以下に、その1つのプロセッサ1-4 によっ
て、エミュレーションを行う場合について説明する。図
9は、第2の実施例によるエミュレーションを示す図で
ある。まず、コード未変換部分を実行する場合がない、
通常の場合について、図9(a)を用いて説明する。
【0050】第2の実施例では、上記第1の実施例と同
様に、まず、命令コードを解析するタスク(以下、解析
用タスクと称する)によってコードメモリ空間のコード
解析プログラム記憶領域からコード解析プログラムを読
み込む。さらに、データメモリ空間の命令コード記憶領
域から異種プロセッサで使用されていた命令コードを順
次読み込み、該コード解析プログラムを使用して読み込
んだ命令コードの解析を行う。
【0051】そのタスクによる命令コードの解析結果
は、データメモリ空間の解析結果記憶領域に記憶され
る。この解析用タスクによる命令コードの解析は一定時
間行われ(図9(a)に示す、時間t0,t1 間)、解析用
タスクによる処理が一定時間に達すると、オペレーティ
ングシステムによってタスクの切り換えが行われる。
【0052】そのオペレーティングシステムによるタス
クの切り換えにより、解析用タスクから命令コードを変
換するタスク(以下、変換用タスクと称する)に切り換
えられる。変換用タスクでは、前記解析用タスクによる
命令コードの解析結果が記憶されているデータメモリ空
間の解析結果記憶領域から該命令コードの解析結果を読
み込み、その解析結果に基づいて命令コードを生成す
る。
【0053】そして、生成された命令コードは、コード
メモリ空間のコード変換後プログラム記憶領域にコード
変換後プログラムとして格納される。この変換用タスク
による命令コードの生成も、前記解析用タスクと同じよ
うに一定時間行われ(図9(a)に示す、時間t1,t
2 間)、変換用タスクによる処理が一定時間に達する
と、オペレーティングシステムによってタスクの切り換
えが行われる。
【0054】そのオペレーティングシステムによるタス
クの切り換えにより、変換用タスクから命令コードを実
行するタスク(以下、実行用タスクと称する)に切り換
えられる。実行用タスクでは、前記変換用タスクによる
命令コード生成処理により生成されコードメモリ空間の
解析結果記憶領域に格納された、コード変換後プログラ
ムの命令コードを読み込んで実行する。
【0055】この実行用タスクによるコード変換後プロ
グラムの命令コードの実行も、前記解析用タスクおよび
変換用タスクと同じように一定時間行われ(図9(a)
に示す、時間t2,t3 間)、実行用タスクによる処理が一
定時間に達すると、オペレーティングシステムによって
タスクの切り換えが行われる。オペレーティングシステ
ムによるタスクの切り換えにより、再び、解析用タスク
に切り換えられ、上記説明した処理が行われる。
【0056】以上のように、タスクを順次切り換えて、
命令コードの解析、変換、実行を繰り返し、エミュレー
ションを行う。上記では、各タスクによる処理時間を同
一とし、その処理時間経過後、タスクの切り換えを行う
ように説明したが、変換用タスクによって1ページ分の
命令コードが生成されると、変換用タスクから実行用タ
スクに切り換えるようにしてもよい。
【0057】次に、第2の実施例において、実行用タス
クによる命令コード実行の際に、コード未変換部分を実
行しようとした場合について、図9(b)を用いて説明
する。解析用タスクによる処理で、解析中の命令コード
がジャンプ命令、コール命令等で、かつ、該命令コード
の実行により、まだ解析されていない命令コードを実行
するようになるという解析結果を得た場合には、前記第
1の実施例と同様に、該解析結果に基づいて、変換用タ
スクによる命令コード生成では、実行することによりオ
ペレーティングシステムに制御が渡るような命令コード
が生成されている。
【0058】図9(b)に示す、時間t2において、変換
用タスクから実行用タスクに切り換えられ、その実行用
タスクによる命令コード実行の際に、命令コードがジャ
ンプ命令、コール命令等であって、該命令コードの実行
によりコード未変換部分の命令コードを実行しようとし
たとする。その場合には、前記第1の実施例と同様に、
実行用タスクにより該命令コードが実行されることによ
り、図9(b)に示す、時間t3' においてオペレーティ
ングシステムに制御が渡る。
【0059】そして、制御が渡されたオペレーティング
システムは、実行した命令コードがどの元命令コードに
対応するか見つけ出す。元命令コードを見つけると、該
元命令コードの変換を変換用タスクに、また、該元命令
コードによるジャンプ先またはコール先である命令コー
ドからの解析を解析用タスクに通知して、図9(b)に
示す、時間t4' において、実行用タスクから変換用タス
クに切り換える。
【0060】変換用タスクでは、通知を受けた元命令コ
ードに対する命令コードの生成を行って命令コードの書
き換えを行い、図9(b)に示す、時間t5' において、
変換用タスクから解析用タスクに切り換える。解析用タ
スクに切り換えられると、解析用タスクは、オペレーテ
ィングシステムから通知された命令コードからの解析を
行う。
【0061】以上、命令コードの解析、変換、実行の各
処理をそれぞれプロセッサを割り振る場合、1つのプロ
セッサによって各処理を行う場合のエミュレーションに
ついて説明した。あるプロセッサに1つの処理を割り振
り、他の2つの処理を別のプロセッサに割り振るとい
う、以下に示すパターンが考えられる。
【0062】あるプロセッサに命令コードの解析、別
のプロセッサに命令コードの変換、実行を行わせる。 あるプロセッサに命令コードの変換、別のプロセッサ
に命令コードの解析、実行を行わせる。 あるプロセッサに命令コードの実行、別のプロセッサ
に命令コードの解析、変換を行わせる。
【0063】これらのパターンにおいて、2つの処理を
行うプロセッサでは、前記したように、2つの各処理を
それぞれ1つのタスクとしたマルチタスクによって行う
ことにより、エミュレーションが可能となる。
【0064】
【発明の効果】以上説明したように、本発明によれば、
複数または単一のプロセッサによって異種プロセッサの
エミュレーションを高速に実行することが可能となる。
【図面の簡単な説明】
【図1】本発明の第1の原理図である。
【図2】本発明の第2の原理図である。
【図3】本発明の第1の実施例を示す図である。
【図4】本発明の第1の実施例によるエミュレーション
のフローチャートである。
【図5】実行用プロセッサがコード変換後プログラムを
順次実行してきた結果、コード未変換部分に達する場合
のフローチャートである。
【図6】実行用プロセッサが実行したコード変換後プロ
グラムの命令コードの実行により、コード未変換部分に
達する場合のフローチャートである。
【図7】コード未変換部分の命令コード実行の際の処理
を示す図である。
【図8】本発明の第2の実施例を示す図である。
【図9】第2の実施例によるエミュレーションを示す図
である。
【図10】従来例を示す図である。
【図11】従来のエミュレーションのフローチャートで
ある。
【符号の説明】
1-1 解析用プロセッサ(第1のプロセッサ) 1-2 変換用プロセッサ(第2のプロセッサ) 1-3 実行用プロセッサ(第3のプロセッサ) 1-4 プロセッサ 2-1,2-2,2-3,2-4 キャッシュメモリ 3 バス
【手続補正書】
【提出日】平成5年12月24日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図1】
【図2】
【図3】
【図9】
【図4】
【図5】
【図7】
【図6】
【図8】
【図10】
【図11】

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 異種プロセッサのエミュレーションを行
    うエミュレーション装置において、 少なくとも、前記異種プロセッサで使用される命令コー
    ドの解析を行う第1のプロセッサ(1-1 )と、 該第1のプロセッサ(1-1 )による命令コードの解析結
    果に基づいて、第3のプロセッサ(1-3 )で実行可能な
    命令コードを生成する第2のプロセッサ(1-2)と、 該第2のプロセッサ(1-2 )により生成された命令コー
    ドを実行する第3のプロセッサ(1-3 )と、 を有することを特徴とするエミュレーション装置。
  2. 【請求項2】 前記第3のプロセッサ(1-3 )は一度実
    行した命令コードを記憶するものとし、該第3のプロセ
    ッサ(1-3 )は前記第2のプロセッサ(1-2)が生成し
    た命令コードの実行、または該命令コード生成以前に生
    成して自己が記憶している命令コードの再実行を行うこ
    とを特徴とする前記請求項1記載のエミュレーション装
    置。
  3. 【請求項3】 前記第3のプロセッサ(1-3 )は記憶手
    段(2-3 )を有し、前記一度実行した命令コードは該記
    憶手段(2-3 )に記憶されることを特徴とする前記請求
    項2記載のエミュレーション装置。
  4. 【請求項4】 前記第1のプロセッサ(1-1 )および第
    2のプロセッサ(1-2 )はそれぞれ記憶手段(2-1 )お
    よび記憶手段(2-2 )を有し、 該第1のプロセッサ(1-1 )の記憶手段(2-1 )には異
    種プロセッサの命令コードを解析するためのプログラム
    が記憶され、該第2のプロセッサ(1-2 )の記憶手段
    (2-2 )には該第1のプロセッサ(1-1 )による命令コ
    ードの解析結果に基づいて、前記第3のプロセッサ(1-
    3 )で実行可能な命令コードを生成するためのプログラ
    ムが記憶され、 該第1のプロセッサ(1-1 )および第2のプロセッサ
    (1-2 )は、それぞれが有する記憶手段(2-1 )および
    記憶手段(2-2 )に記憶されているプログラムにより処
    理を行うことを特徴とする前記請求項1乃至請求項3の
    いずれかに記載のエミュレーション装置。
  5. 【請求項5】 前記第1のプロセッサ(1-1 )、第2の
    プロセッサ(1-2 )および第3のプロセッサ(1-3 )は
    互いに割り込みをかけることを可能とし、 該第3のプロセッサ(1-3 )は実行に必要な命令コード
    が第2のプロセッサ(1-2 )により生成されていない場
    合、 該第2のプロセッサ(1-2 )に割り込みをかけて、該命
    令コードの生成を該第2のプロセッサ(1-2 )に要求す
    ることを特徴とする前記請求項1乃至請求項4のいずれ
    かに記載のエミュレーション装置。
  6. 【請求項6】 前記第3のプロセッサ(1-3 )により前
    記第2のプロセッサ(1-2 )に命令コードの生成を要求
    した際、該命令コードを生成するための解析が前記第1
    のプロセッサ(1-1 )によって行われていない場合、 該第2のプロセッサ(1-2 )は前記第1のプロセッサ
    (1-1 )に割り込みをかけて、該命令コードを生成する
    ために異種プロセッサで使用されていた命令コードの解
    析を該第1のプロセッサ(1-1 )に要求することを特徴
    とする前記請求項5記載のエミュレーション装置。
  7. 【請求項7】 異種プロセッサのエミュレーションを行
    うエミュレーション装置において、 前記異種プロセッサで使用される命令コードの解析を行
    い、該命令コードの解析結果に基づいて自己で実行可能
    な命令コードを生成して記憶し、該生成した命令コード
    の実行、または該命令コード生成以前に生成して自己が
    記憶している命令コードの再実行を行うプロセッサ(1-
    4 )を有することを特徴とするエミュレーション装置。
  8. 【請求項8】 異種プロセッサのエミュレーションを行
    うエミュレーション装置において、 前記異種プロセッサで使用される命令コードの解析を行
    い、該命令コードの解析結果に基づいて、第2のプロセ
    ッサで実行可能な命令コードを生成する第1のプロセッ
    サと、 該第1のプロセッサにより生成された命令コードを実行
    する際に該命令コードを記憶するものとし、該第1のプ
    ロセッサにより生成された命令コードの実行、または該
    命令コード生成以前に生成して自己が記憶している命令
    コードの再実行を行う第2のプロセッサと、 を有することを特徴とするエミュレーション装置。
  9. 【請求項9】 異種プロセッサのエミュレーションを行
    うエミュレーション装置において、 前記異種プロセッサで使用される命令コードの解析を行
    う第1のプロセッサと、 該第1のプロセッサによる命令コードの解析結果に基づ
    いて、自己で実行可能な命令コードを生成して記憶し、
    該生成した命令コードの実行、または該命令コード生成
    以前に生成して自己が記憶している命令コードの再実行
    を行う第2のプロセッサと、 を有することを特徴とするエミュレーション装置。
  10. 【請求項10】 前記異種プロセッサで使用されていた
    命令コードの解析は、命令コードの種類、処理の流れ、
    データ依存関係および命令コードの並び換えの可能性を
    調べることであることを特徴とする前記請求項1乃至請
    求項9のいずれかに記載のエミュレーション装置。
  11. 【請求項11】 前記命令コードの生成時に、命令コー
    ドの解析結果に基づいて最適化を行うことを特徴とする
    前記請求項1、請求項4または請求項7乃至請求項9の
    いずれかに記載のエミュレーション装置。
JP34907292A 1992-12-28 1992-12-28 エミュレーション装置 Withdrawn JPH06202877A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP34907292A JPH06202877A (ja) 1992-12-28 1992-12-28 エミュレーション装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP34907292A JPH06202877A (ja) 1992-12-28 1992-12-28 エミュレーション装置

Publications (1)

Publication Number Publication Date
JPH06202877A true JPH06202877A (ja) 1994-07-22

Family

ID=18401304

Family Applications (1)

Application Number Title Priority Date Filing Date
JP34907292A Withdrawn JPH06202877A (ja) 1992-12-28 1992-12-28 エミュレーション装置

Country Status (1)

Country Link
JP (1) JPH06202877A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08123697A (ja) * 1994-10-24 1996-05-17 Nec Corp エミュレーション高速化方式
US6606743B1 (en) 1996-11-13 2003-08-12 Razim Technology, Inc. Real time program language accelerator
JP2006221643A (ja) * 2005-02-08 2006-08-24 Sony Computer Entertainment Inc 命令セットのエミュレーションのための方法、装置及びシステム
JP2009527836A (ja) * 2006-02-21 2009-07-30 株式会社ソニー・コンピュータエンタテインメント データ処理
JP2010140233A (ja) * 2008-12-11 2010-06-24 Nec Computertechno Ltd エミュレーションシステム及びエミュレーション方法
JP2013061810A (ja) * 2011-09-13 2013-04-04 Fujitsu Ltd 情報処理装置、情報処理装置制御方法及び中間コード命令実行プログラム
JP2018028777A (ja) * 2016-08-17 2018-02-22 Necプラットフォームズ株式会社 エミュレーション装置、エミュレーション方法、及び、エミュレーションプログラム

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08123697A (ja) * 1994-10-24 1996-05-17 Nec Corp エミュレーション高速化方式
US6606743B1 (en) 1996-11-13 2003-08-12 Razim Technology, Inc. Real time program language accelerator
JP2006221643A (ja) * 2005-02-08 2006-08-24 Sony Computer Entertainment Inc 命令セットのエミュレーションのための方法、装置及びシステム
JP4645973B2 (ja) * 2005-02-08 2011-03-09 株式会社ソニー・コンピュータエンタテインメント 命令セットのエミュレーションのための方法、装置及びシステム
JP2009527836A (ja) * 2006-02-21 2009-07-30 株式会社ソニー・コンピュータエンタテインメント データ処理
JP2011227908A (ja) * 2006-02-21 2011-11-10 Sony Computer Entertainment Inc データ処理
JP2010140233A (ja) * 2008-12-11 2010-06-24 Nec Computertechno Ltd エミュレーションシステム及びエミュレーション方法
JP2013061810A (ja) * 2011-09-13 2013-04-04 Fujitsu Ltd 情報処理装置、情報処理装置制御方法及び中間コード命令実行プログラム
JP2018028777A (ja) * 2016-08-17 2018-02-22 Necプラットフォームズ株式会社 エミュレーション装置、エミュレーション方法、及び、エミュレーションプログラム
US10268462B2 (en) 2016-08-17 2019-04-23 Nec Platforms, Ltd. Emulation device, emulation method, and recording medium storing emulation program

Similar Documents

Publication Publication Date Title
CN101233489B (zh) 自适应进程分派的方法和系统
US5305455A (en) Per thread exception management for multitasking multithreaded operating system
US6496922B1 (en) Method and apparatus for multiplatform stateless instruction set architecture (ISA) using ISA tags on-the-fly instruction translation
US6513057B1 (en) Heterogeneous symmetric multi-processing system
US9201653B2 (en) Binary translator with precise exception synchronization mechanism
JP5405799B2 (ja) 仮想計算機の制御方法、仮想化プログラム及び仮想計算機システム
US9495136B2 (en) Using aliasing information for dynamic binary optimization
EP0565705B1 (en) Out of order job processing method and apparatus
US8635627B2 (en) Method, medium and apparatus storing and restoring register context for fast context switching between tasks
CA2306519A1 (en) Method and apparatus for handling exceptions as normal control flow
Dobry et al. Design decisions influencing the microarchitecture for a Prolog machine
JP5030647B2 (ja) 複数処理ノードを含むコンピュータ・システムでプログラムをロードする方法、該プログラムを含むコンピュータ可読媒体、及び、並列コンピュータ・システム
JPH06202877A (ja) エミュレーション装置
CN114253713A (zh) 一种基于reactor的异步批处理方法及系统
KR101244069B1 (ko) 프로그램 코드 변환시 정밀한 예외 핸들링을 위한 방법 및장치
US20210247991A1 (en) Simulation method and simulation system
US7065754B1 (en) Method and apparatus for switching between multiple implementations of a routine
US20060253271A1 (en) Method for facilitating transformation of multi-threaded process-oriented object code to event-based object code
Kawano et al. Fine-grain multi-thread processor architecture for massively parallel processing
CN114041116A (zh) 数据移动任务优化的方法和装置
JP3309810B2 (ja) プログラムリンクシステム、方法及び記録媒体
JP5822848B2 (ja) 例外の制御方法、システムおよびプログラム
Hansen A multiprocessor implementation of Joyce
JPH04268928A (ja) エミュレーション装置及び半導体装置
JPH06295265A (ja) 仮想記憶制御における命令中断情報格納制御方法

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20000307