JP2005202614A - 動的変換方式のエミュレータ向けメモリ管理方法 - Google Patents

動的変換方式のエミュレータ向けメモリ管理方法 Download PDF

Info

Publication number
JP2005202614A
JP2005202614A JP2004007460A JP2004007460A JP2005202614A JP 2005202614 A JP2005202614 A JP 2005202614A JP 2004007460 A JP2004007460 A JP 2004007460A JP 2004007460 A JP2004007460 A JP 2004007460A JP 2005202614 A JP2005202614 A JP 2005202614A
Authority
JP
Japan
Prior art keywords
instruction
program
instruction set
address
converted
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.)
Granted
Application number
JP2004007460A
Other languages
English (en)
Other versions
JP4701611B2 (ja
Inventor
Akihiro Takamura
明裕 高村
Yoshio Miki
良雄 三木
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 JP2004007460A priority Critical patent/JP4701611B2/ja
Priority to US10/933,218 priority patent/US7617087B2/en
Publication of JP2005202614A publication Critical patent/JP2005202614A/ja
Application granted granted Critical
Publication of JP4701611B2 publication Critical patent/JP4701611B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Abstract

【課題】動的変換方法によるエミュレーション時の命令キャッシュミスを低減する。
【解決手段】エミュレーションプログラムのうちエミュレーション動作中に実行頻度の高い部分との命令キャッシュ競合がおこるか否かの判定を行い、競合しないアドレスのみを変換済命令格納領域に設定する。
【効果】動的変換方法のエミュレータでの命令キャッシュミスが低減され、エミュレーション速度が向上する。
【選択図】図12

Description

本発明は第一の命令セットを実行可能なプロセッサで第二の命令セット向けに記述されたプログラムを実行する計算機システムに関する。
一般に、プログラムは特定の命令セット上で動作させることを前提に作成されている。しかしながら、コンピュータ・ハードウェアは経年変化によって故障するため、プログラムを継続して使用するためには、新しいコンピュータ・ハードウェアの導入が必要になるが、コンピュータ・ハードウェアの生産中止などにより、プログラムが前提とする命令セットを有するコンピュータ・ハードウェアを導入できないことがある。
ある命令セット(第一の命令セット)を有する新たなコンピュータ・ハードウェアで、第二の命令セットを前提に記述されたプログラムを実質的に動作させる一つの方法は、そのプログラムを、第一の命令セット、つまりコンピュータ・ハードウェアにネイティブな命令セットで記述されたプログラムに変換することである。
プログラムの変換方式には、プログラムの実行前に、プログラム全体の変換を行なう静的変換方式と、実行時に必要に応じて変換を行なう動的変換方式がある。静的変換方式では、命令とデータの区別が不明確である場合や、実行するまで分岐先アドレスが決定しない場合には適用できない。
一方、動的変換方式は上記の問題は生じないが、変換された命令を格納するメモリ領域によっては、命令キャッシュの競合の問題が生じる。これを説明すると、動的変換方式では、動的変換を行なうプログラム(エミュレーションプログラム)の実行により、まず変換後の命令列を格納する命令格納領域をメモリ上に確保し、第二の命令セットで記述された変換対象のプログラムを第一の命令セットのプログラムに変換して前記命令格納領域に格納し、この命令格納領域にある命令を実行する。この動的変換を行なうプログラム中の実行頻度が高い領域と、変換済み命令の格納領域とで命令キャッシュの検索に用いる添字(カラム番号)が重なる場合、変換済み命令格納領域にある命令を実行する際に、命令キャッシュミスが多数発生し、性能が大きく低下することがある。このように、同一の命令キャッシュ領域を複数のプログラム領域が使用するために、キャッシュミスが発生する状況を命令キャッシュにおける競合と呼ぶ。
特許文献1には、動的変換方式をとるバイナリ・プログラム変換装置が示される。それによると、複数の命令ブロックにより構成された変換前のプログラムが実行された際の情報に基づき、変換前のプログラムの複数ブロックを再構成し、もって変換後のプログラムを実行する際の命令キャッシュ競合を削減してキャッシュヒット率を向上する。
特開平10−187460号公報
動的変換手法では、変換済み命令格納領域のアドレスによっては、命令キャッシュの競合のために性能が大きく低下する可能性があるという問題がある。上記特許文献1に記載された技術により命令キャッシュの競合を削減するには、変換前のプログラム動作の履歴(実行トレース)を採取して命令ブロック単位に解析するという手順が必要となる。本発明の目的は、実行トレース採取・解析などの特別な手順を行うことなく命令キャッシュにおける競合を減らすことで、動的変換手法で安定して高い性能を得ることを可能にすることである。
本発明の代表的構成では、エミュレーションプログラムの初期化処理の部分に変換前のプログラムと変換済プログラムの格納アドレスとの対応関係を記録する変換済命令格納領域表に予め格納領域を設定する手順を含む。そしてその格納領域を設定は、エミュレーション動作に際して実行頻度が高い部分のメモリ上のアドレス情報を取得し、この実行頻度が高い部分と命令キャッシュ上でキャッシュ競合が生じるアドレスを除外して変換後命令が格納されるべき領域として設定する。
エミュレーション動作中に実行頻度が高い部分とは、代表的にはエミュレーションプログラムのうちのメインループ、例えば変換済命令検索処理の部分と変換済命令実行処理の部分である。キャッシュ競合が生じるアドレスとはその実行頻度が高い部分と命令キャッシュ上のカラム番号、つまり命令キャッシュを検索する際の添字が同一になるメモリ領域である。
上記構成では、エミュレーションプログラムのメインループと、そのメインループでアクセスされる変換済命令とが命令キャッシ上でキャッシュ競合となることがない。、したがってエミュレーション動作中にキャッシュミスによるメモリアクセスの回数が減少し、、動的変換手法で安定して高い性能を得ることができる。
図1に第一の実施例のに用いられるコンピュータシステムを示す。
本実施例のコンピュータシステムは、プロセッサ100とメモリ120からなる。
プロセッサ100には命令キャッシュ101が塔載されている。命令キャッシュ101 はメモリ120から読み出したプログラムを格納する、メモリ120より高速で小容量なメモリである。最近実行されたプログラムを命令キャッシュ101に格納しておくことで、プログラムを繰り返し実行する際に、メモリ120から読み出す代わりに、命令キャッシュ101から読み出しができるため、読み出し時間を短縮することができる。
メモリ120にはエミュレーションプログラム200と高頻度実行アドレス表122と命令キャシュ構成情報123と変換済命令格納領域表124と使用way表125が格納されている。
図2に実施例における命令キャッシュの構成を示す。ここでは、命令キャッシュの検索の添字とアドレスタグに論理アドレスを使用する容量64Kバイト、2ウエイセットアソシエティブ方式、ラインサイズ128バイトの命令キャッシュを使用する。他の構成、方式の命令キャッシュを採用する計算機システムであっても本発明を適用できる。命令キャッシュの1要素は、論理アドレスが格納されるアドレスタグと、このアドレスタグを開始アドレスとするラインサイズ分のデータからなる。ただし、アドレスタグはラインサイズの整数倍であるという制限がある。命令キャッシュ全体には(容量/way数/ラインサイズ)個の要素が集まったものがウエイ数分だけある。
命令キャッシュからある論理アドレスに対応するデータを読み出す場合は、まず、論理アドレスと(容量/way数―1)との論理積をとり、これを添字とする。次に各way毎に、添字に対応する要素のアドレスタグが論理アドレスと一致し且つ(ラインサイズー1)ではないものを検索する。いずれかのwayで該当するアドレスタグがあればキャッシュヒットであり、そのアドレスタグに対応するデータを読み出す。一方全てのなければキャッシュミスであり、メモリからデータを読み出す必要があるため読み出しが遅くなってしまう。
図3に、第一の実施形態におけるエミュレーションプログラム200の内容を示す。エミュレーションプログラム200は、エミュレーションに必要な変数を初期化する初期化処理220と動的変換方式でエミュレーションを実行する変換実行処理240からなる。
初期化処理220は、高頻度実行アドレス取得処理300、命令キャッシュ構成取得処理320、命令キャッシュ使用way数推定処理340 変換済命令格納領域初期化処理360とこれらの処理から呼び出される命令キャッシュアドレス変換処理380と命令キャッシュ競合判定処理400 からなる。
変換実行処理240は変換済命令検索処理500、命令変換処理520、変換済み命令実行処理540、終了判定処理560からなる。
図4に高頻度実行アドレス表122の詳細を示す。高頻度実行アドレス表122にはエミュレーションプログラム中で実行回数が多いプログラムの開始アドレスと終了アドレスが1つ以上格納されている。この例では、エミュレーションプログラムの変換済命令検索処理と変換済命令実行処理の実行回数が多く、変換済命令検索処理の開始アドレスは0x10001104、終了アドレスは0x100012ff、変換済命令実行処理の開始アドレスは0x10001728、終了アドレスは0x10001857であることを示している。
図5に命令キャッシュ構成表123の詳細を示す。命令キャッシュ構成表123には命令キャッシュアドレス変換処理380で論理アドレスから命令キャッシュ101の検索に用いる添字を算出するために、命令キャッシュ101 の容量、way数、ラインサイズが格納されている。この例では、容量が0x10000(64Kバイト)、way 数が1 (ダイレクトマップ方式)、ラインサイズが128バイトであることを示している。
図6に変換済命令格納領域表124の詳細を示す。変換済命令格納領域表124には、変換開始アドレスと変換済命令格納領域が1つ以上格納されている。この例では、4つの変換開始アドレスと変換済命令格納アドレスの対があり、変換開始アドレスが0x00000040である変換済命令は0x12001000に格納されていることを示している。
図7に命令キャッシュ使用way表125の詳細を示す。命令キャッシュ使用way表125は命令キャッシュ101の検索に用いる添字毎に高頻度実行アドレス表122に登録されているプログラムが使用するway数を記録する。この例では、高い頻度で実行されるプログラムが図4に示す高頻度実行アドレス表122、命令キャッシュ101 の構成が図5に示す命令キャッシュ構成表123であった時の命令キャッシュ使用way表125の内容であり、命令キャッシュ101が高い頻度で実行される。プログラムにより添字34から37までと添字46から48までが1way分使用されていることを表わしている。
図8に、エミュレーションプログラム200の動作手順の詳細を示す。エミュレーションプログラム200はまず初期化処理220を実行してから変換実行処理240を実行する。
図9に、初期化処理220の動作手順の詳細を示す。初期化処理220では、命令キャッシュ101において、エミュレーションプログラム200のなかで実行頻度が高いアドレスと競合を起こす可能性が低い変換済命令格納領域を変換済み命令格納領域表124に登録する。まず、高頻度実行アドレス取得処理300により、エミュレーションプログラム200のなかで実行頻度が高いアドレスを取得して、高頻度実行アドレス表に格納する。次に、命令キャッシュ構成取得処理320により命令キャッシュアドレス変換処理380に必要な命令キャッシュ101の構成情報(容量、way数、ラインサイズ)を取得し、命令キャッシュ構成情報123に格納する。
さらに、命令キャッシュ使用way推定処理340によりエミュレーションプログラム200のなかで実行頻度が高いアドレスが命令キャッシュ101中のどのキャシュアドレスとなるかを算出し、キャッシュの検索に用いる添字毎に使用way数を推定する。最後に変換済命令格納領域初期化処理360 により、エミュレーションプログラム200のなかで実行頻度が高いアドレスと競合を起こす否かを判定し、競合を起こす可能性が低い変換済命令格納領域だけを変換済み命令格納領域表124に登録する。
図10に高頻度実行アドレス取得処理300の詳細を示す。高頻度実行アドレス取得処理300では、まず、高頻度実行アドレス取得301により、エミュレーショプログラム200のなかの1つ以上の実行頻度が高いプログラムの開始アドレスと終了アドレス対を取得する。取得方法としては、エミュレーショプログラム作成時点で、プログラム作成者が、高い頻度で実行されるプログラムの開始アドレスと終了アドレスを高頻度実行アドレス取得301に埋め込む方法や、高い頻度で実行されるプログラムの開始アドレスと終了アドレスをファイルに記録しておき、高頻度実行アドレス取得301 でファイルから読み出す方法がある。次に、高頻度実行アドレス表の生成302で、取得した実行頻度が高いプログラムの開始アドレスと終了アドレス対を高頻度実行アドレス表122に登録する。
図11に命令キャッシュ構成取得処理320の詳細を示す。命令キャッシュ構成取得処理320では、まず、命令キャッシュ構成の取得321により、命令キャッシュ101の容量、way数、ラインサイズを取得する。取得方法としては、エミュレーショプログラム作成時点で、プログラム作成者が使用するプロセッサ100の命令キャッシュ101の構成を命令キャッシュ構成の取得321に埋め込む方法、OSが用意する命令キャッシュ構成変数を利用する方法、OSが用意する命令キャッシュ構成を取得するライブラリやAPI(Application Program Interface)を使用して取得する方法がある。次に、命令キャッシュ構成表の作成322により、取得した命令キャッシュ101の容量、way数、ラインサイズを命令キャッシュ構成表123に登録する。
図12に命令キャッシュ使用way推定処理340の詳細を示す。命令キャッシュ使用way数推定処理340では、まず、高頻度実行アドレス取得341により、高頻度実行アドレス表122に登録された、実行頻度が高いプログラムの開始アドレスと終了アドレスを取得する。次に、命令キャッシュアドレス変換処理により、開始アドレスと終了アドレスをそれぞれ命令キャッシュ検索に用いる添字の開始アドレスと終了アドレスに変換する。さらに、命令キャッシュ使用way記録342により、命令キャッシュ内での開始アドレスから命令キャッシュ内での終了アドレスまでの命令キャッシュ使way表125の使用way数に1を加える。以上の手順は、終了判定ステップ343にて高頻度実行アドレス表122に登録された開始アドレスから終了アドレスまでの全てについて使用wayの記録が終了したのを確認するまで繰り返し実行される。
図13に変換済命令格納領域初期化処理360の詳細を示す。変換済命令格納領域初期化処理360では、まず、メモリ取得361でmalloc()等の関数を用いて変換済命令格納領域の1要素分の大きさを持つメモリ開始アドレスを取得する。メモリ終了アドレスはメモリ開始アドレスに変換済命令格納領域の1要素分の大きさ- 1を加算することで算出する。次に命令キャッシュアドレス変換処理380により、メモリ取得361で得たメモリ開始アドレスとメモリ終了アドレスをそれぞれ命令キャッシュ内で検索に使用する添字の開始アドレスと終了アドレスに変換する。さらに、命令キャッシュ競合判定処理400でメモリ取得361で得たメモリでプログラムを実行した際に高頻度実行プログラムと命令キャッシュ101で競合を起こすか否かを判定する。 すなわち、命令キャッシュ内での開始アドレスと終了アドレスを引数として命令キャッシュ競合判定処理400を呼び出し、戻り値として競合の有無を得る。競合がある場合は、ステップ362からメモリ取得のステップ361にもどる。競合がない場合はステップ363に進み、メモリ取得361で取得したメモリ開始アドレスを変換済命令格納領域表124の変換済命令格納アドレスに登録する。以上の手順は、終了判定ステップ364にて変換済命令格納領域表124の全ての変換済命令格納領域の登録が確認されるまで繰り返し実行する。
図14に命令キャッシュアドレス変換処理380の詳細を示す。命令キャシュアドレス変換処理380では、論理アドレスを入力として受け取り、命令キャッシュ101 内の添字を戻り値として出力する。本処理はn-wayセットアソシアティブ方式で論理アドレスを添字としてキャッシュを検索する方式を仮定しているが、他の方式でも本手順と同様に命令キャッシュアドレスへの変換が可能である。まず、容量マスク381により、入力された論理アドレス and (命令キャッシュ構成表123の命令キャッシュ容量 - 1)の論理演算を行ない、これを論理アドレスMとする。次に、ラインサイズ除算382で論理アドレスM/命令キャッシュ構成表123の命令キャッシュラインサイズを計算し、これを命令キャッシュ内の添字とする。そして、命令キャッシュ内の添字を戻り値として出力する。
図15に命令キャッシュ競合判定処理400の詳細を示す。命令キャッシュ競合判定処理400では、命令キャッシュ内の添字を入力として受け取り、実行頻度が高いプログラムと命令キャッシュ内で競合が発生するか否かを出力する。まず、命令キャッシュ使用way数取得401で命令キャッシュ使用way表125を参照し入力された命令キャッシュ内の添字に対応する使用way数を取得する。次に、使用way数判定402で、使用way数と命令キャッシュ構成表123の命令キャッシュway 数とを比較する。使用way数が命令キャッシュway数と等しいか小さければ競合はないと判定し、使用way数が命令キャッシュway数よりも大きければ競合があると判定する。
図16に変換実行処理240の詳細を示す。変換実行処理240では、まず、変換済命令検索処理500で変換済み命令格納領域表123の命令アドレスがエミュレートするプロセッサのPC(プログラムカウンタ)と同じものを検索する。変換済み命令が存在241により、PCと同じものが存在する場合には命令変換処理520 をスキップする。PCと同じものが存在しない場合には、命令変換処理520により、メモリ上のPCが指す第一の命令セットで記述された命令以降を第二の命令セットで記述された命令列に変換し、変換済命令格納領域表124のうち、最も使用されていないと考えられる変換済命令格納アドレスが指すメモリアドレスに変換した命令列を格納すると共に、命令格納領域表123の命令アドレスにPCを格納する。さらに、変換済み命令実行処理540によりPCに対応する変換済み命令を実行する。エミュレーション終了242により、変換済命令検索処理500から変換済命令実行処理540までをエミュレーションが終了するまで繰り返し実行する。
本発明によれば、命令キャッシュ競合判定処理を行なうことにより、従来、エミュレーションプログラムのうち高頻度実行プログラムと命令キャッシュで競合を起こしていた変換済命令格納領域が変換済命令格納領域対応表に登録されなくなるため、競合による命令キャッシュミスに伴なう性能低下を起こす確率が低くすることができる。
本発明の一実施例である計算機システムの構成を示すブロック図。 上記実施例の命令キャッシュの構成を示すブロック図。 エミュレーションプログラムの構成を示す概念図。 高頻度実行アドレス表の内容を示す概念図。 命令キャッシュ構成表の内容を示す概念図。 変換済命令格納領域表の内容を示す概念図。 命令キャッシュ使用way表の内容を示す概念図。 エミュレーションプログラムのフローチャート。 初期化処理のフローチャート。 高頻度実行アドレス取得処理のフローチャート。 命令キャッシュ構成取得処理のフローチャート。 命令キャッシュ使用way推定処理のフローチャート。 変換済命令格納領域初期化処理のフローチャート。 命令キャッシュアドレス変換処理のフローチャート。 命令キャッシュ競合判定処理のフローチャート。 変換実行処理のフローチャート。
符号の説明
361 メモリ取得
381 命令キャッシュアドレス変換処理
400 命令キャッシュ競合判定処理
363 変換命令格納領域判定表に登録。

Claims (6)

  1. 命令キャッシュを有し、第一の命令セットを解釈・実行可能なプロセッサとメモリとを含むる計算機システムにて、上記メモリに格納されたエミュレーションプログラムにより、第二の命令セットで記述されたプロクラムを上記第一の命令セットで記述されたプログラムに必要に応じて変換しながら実行する動的変換方式のプログラム実行における使用メモリの管理方法であって、
    上記第二の命令セットで記述されたプログラムに対応する上記第一の命令セットで記述されたプログラムのアドレスを検索するために使用する変換済命令格納領域表の初期化のための手順として、
    1)上記エミュレーションプログラムの中で、エミュレーション動作中に実行頻度が高い部分のアドレス情報を取得するステップ、及び
    2)上記アドレス情報から、上記命令キャッシュにて上記実行頻度が高い部分とキャッシュ競合を生じるメモリアドレスを特定し、特定されたメモリアドレスを除外して変換済命令が格納されるべき格納領域を設定するステップを含み、
    命令変換及び実行の手順として、
    3)上記第二の命令セットで作成されたプログラムに対応する第一の命令セットで作成されたプログラムが上記メモリ上に有るか否を上記変換済命令格納領域表を用いて検索し、
    4)第一の命令セットで作成されたプログラムが有る場合はこれを上記プロセッサで実行し、
    5)第一の命令セットで作成されたプログラムが無い場合は上記第二の命令セットで作成されたプログラムを第一の命令セットで作成したプログラムに変換し、変換したプログラムを上記メモリの設定された格納領域の範囲内に格納し、格納したプログラムの格納アドレスと変換前の上記第1の命令セットで作成されたプログラムとの対応関係を上記変換済命令格納領域表に格納する、
    とのステップを含むことを特徴とするエミュレータ向けメモリ管理方法。
  2. 上記実行頻度が高い部分のアドレス情報は上記エミュレーションプログラムの作成時点で該プログラム中に埋め込まれることを特徴とする請求項1記載のエミュレータ向けメモリ管理方法。
  3. 上記実行頻度が高い部分は上記エミュレーションプログラムのうち変換済命令検索処理の部分を含む請求項1記載のエミュレータ向けメモリ管理方法。
  4. 上記実行頻度が高い部分は上記エミュレーションプログラムのうち変換済命令検索処理の部分を含む請求項1記載のエミュレータ向けメモリ管理方法。
  5. 命令キャッシュを有し、第一の命令セットを解釈・実行可能なプロセッサとメモリとを含むる計算機システム上で動作し、第二の命令セットで記述されたプロクラムを上記第一の命令セットで記述されたプログラムに必要に応じて変換しながら実行させるエミュレーションプログラムであって、
    上記第二の命令セットで記述されたプログラムに対応する上記第一の命令セットで記述されたプログラムのアドレスを検索するために使用する変換済命令格納領域表の初期化のための手順として、
    1)上記エミュレーションプログラムの中で、エミュレーション動作中に実行頻度が高い部分のアドレス情報を取得するステップ、及び
    2)上記アドレス情報から、上記命令キャッシュにて上記実行頻度が高い部分とキャッシュ競合を生じるメモリアドレスを特定し、特定されたメモリアドレスを除外して変換済命令が格納されるべき格納領域を設定するステップを前記計算機システムに実行させ、、
    命令変換及び実行の手順として、
    3)上記第二の命令セットで作成されたプログラムに対応する第一の命令セットで作成されたプログラムが上記メモリ上に有るか否を上記変換済命令格納領域表を用いて検索し、
    4)第一の命令セットで作成されたプログラムが有る場合はこれを実行し、
    5)第一の命令セットで作成されたプログラムが無い場合は上記第二の命令セットで作成されたプログラムを第一の命令セットで作成したプログラムに変換し、変換したプログラムを上記メモリの設定された格納領域の範囲内に格納し、格納したプログラムの格納アドレスと変換前の上記第1の命令セットで作成されたプログラムとの対応関係を上記変換済命令格納領域表に格納する、
    との手順をステップを前記計算機システムに実行させることを特徴とするエミュレーションプログラム。
  6. 命令キャッシュを有し、第一の命令セットを解釈・実行可能なプロセッサとメモリとを含む計算機システムにおいて、
    上記計算機システムは、メモリ上に、第一の命令セットで記述されたエミュレーションプログラムと、第二の命令セットで記述されたプログラムのアドレスに対応する第一の命令セットで記述されたプログラムのアドレスを検索するために使用する変換済命令格納領域表とを有し、
    上記エミュレーションプログラムは、
    上記変換済命令格納領域表を初期化する初期化処理と、
    第二の命令セットで記述されたプログラムに対応する第一の命令セットで記述されたプログラムの有無を変換済命令格納領域表を用いて検索し、第二の命令セットで記述されたプログラムに対応する第一の命令セットで記述されたプログラムがある場合は、対応する第一の命令セットで記述されたプログラムを上記プロセッサで実行し、第二の命令セットで記述されたプログラムに対応する第一の命令セットで記述されたプログラムがない場合は第二の命令セットで記述されたプログラムに対応する第一の命令セットで記述されたプログラムに変換し、変換された命令を変換済命令格納領域表の第一の命令セットで記述されたプログラムのアドレスに格納すると共に、その対応関係を変換済命令格納領域表に格納する変換実行処理とを有し、
    上記初期化処理は
    上記プロセッサの命令キャッシュの構成を取得する命令キャッシュ構成取得処理と、
    命令キャッシュを使用する確率が高いプログラムのアドレス情報を取得する高頻度実行アドレス取得処理と、第二の命令セットで記述されたプログラムのアドレスに対応する第一の命令セットで記述されたプログラムのアドレスと、命令キャッシュの構成と命令キャッシュを使用する確率が高いプログラムのアドレス情報と、上記プロセッサの命令キャッシュの構成とから第一の命令セットで記述されたプログラムが上記命令キャッシュを使用する確率が高いプログラムと上記命令キャッシュで競合を起こすか否かを判定する命令キャッシュ競合判定処理とを有し、変換済命令格納領域表の第一の命令セットで記述されたプログラムのアドレスを初期化する際に、命令キャッシュ競合判定で競合があると判定されたメモリアドレスを除外して変換済命令格納領域表の第一の命令セットで記述されたプログラムのアドレスに登録することを特徴とする計算機システム。
JP2004007460A 2004-01-15 2004-01-15 動的変換方式のエミュレータ向けメモリ管理方法 Expired - Fee Related JP4701611B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004007460A JP4701611B2 (ja) 2004-01-15 2004-01-15 動的変換方式のエミュレータ向けメモリ管理方法
US10/933,218 US7617087B2 (en) 2004-01-15 2004-09-03 Memory management method for dynamic conversion type emulator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004007460A JP4701611B2 (ja) 2004-01-15 2004-01-15 動的変換方式のエミュレータ向けメモリ管理方法

Publications (2)

Publication Number Publication Date
JP2005202614A true JP2005202614A (ja) 2005-07-28
JP4701611B2 JP4701611B2 (ja) 2011-06-15

Family

ID=34747146

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004007460A Expired - Fee Related JP4701611B2 (ja) 2004-01-15 2004-01-15 動的変換方式のエミュレータ向けメモリ管理方法

Country Status (2)

Country Link
US (1) US7617087B2 (ja)
JP (1) JP4701611B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018028777A (ja) * 2016-08-17 2018-02-22 Necプラットフォームズ株式会社 エミュレーション装置、エミュレーション方法、及び、エミュレーションプログラム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008059279A (ja) * 2006-08-31 2008-03-13 Internatl Business Mach Corp <Ibm> 文字列出力処理を最適化する技術
JP4600700B2 (ja) * 2009-03-17 2010-12-15 日本電気株式会社 プログラムのメモリ空間への配置方法、装置、およびプログラム
JP6693308B2 (ja) * 2016-07-05 2020-05-13 富士通株式会社 負荷推定プログラム、負荷推定方法及び負荷推定装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11212798A (ja) * 1998-01-26 1999-08-06 Nec Corp 言語処理方法、言語処理装置及び言語処理プログラムを記録した記憶媒体
JP2000076132A (ja) * 1998-08-31 2000-03-14 Hitachi Ltd キャッシュメモリを備えた情報処理装置
JP2000148506A (ja) * 1998-11-13 2000-05-30 Nec Corp キャッシュメモリへのプログラム割り付け装置、キャッシュメモリへのプログラム割り付け方法、及び、その方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2001166948A (ja) * 1999-12-07 2001-06-22 Nec Corp プログラム変換方法、プログラム変換装置及びプログラム変換プログラムを記憶した記憶媒体
JP2003140909A (ja) * 2001-11-07 2003-05-16 Fujitsu Ltd Jitコンパイラを備えた仮想計算機

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG47981A1 (en) * 1994-03-01 1998-04-17 Intel Corp Pipeline process of instructions in a computer system
US6093213A (en) * 1995-10-06 2000-07-25 Advanced Micro Devices, Inc. Flexible implementation of a system management mode (SMM) in a processor
JP3425069B2 (ja) 1996-10-28 2003-07-07 富士通株式会社 バイナリ・プログラム変換装置および方法
US6075937A (en) * 1998-03-18 2000-06-13 International Business Machines Corporation Preprocessing of stored target routines for controlling emulation of incompatible instructions on a target processor and utilizing target processor feedback for controlling non-sequential incompatible instruction emulation
US6704925B1 (en) * 1998-09-10 2004-03-09 Vmware, Inc. Dynamic binary translator with a system and method for updating and maintaining coherency of a translation cache
US6463582B1 (en) * 1998-10-21 2002-10-08 Fujitsu Limited Dynamic optimizing object code translator for architecture emulation and dynamic optimizing object code translation method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11212798A (ja) * 1998-01-26 1999-08-06 Nec Corp 言語処理方法、言語処理装置及び言語処理プログラムを記録した記憶媒体
JP2000076132A (ja) * 1998-08-31 2000-03-14 Hitachi Ltd キャッシュメモリを備えた情報処理装置
JP2000148506A (ja) * 1998-11-13 2000-05-30 Nec Corp キャッシュメモリへのプログラム割り付け装置、キャッシュメモリへのプログラム割り付け方法、及び、その方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2001166948A (ja) * 1999-12-07 2001-06-22 Nec Corp プログラム変換方法、プログラム変換装置及びプログラム変換プログラムを記憶した記憶媒体
JP2003140909A (ja) * 2001-11-07 2003-05-16 Fujitsu Ltd Jitコンパイラを備えた仮想計算機

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Also Published As

Publication number Publication date
US20050160407A1 (en) 2005-07-21
US7617087B2 (en) 2009-11-10
JP4701611B2 (ja) 2011-06-15

Similar Documents

Publication Publication Date Title
JP5147280B2 (ja) 異機種マルチプロセッサ・システムにおけるガーベッジ・コレクションのためのシステムおよび方法
US6971092B1 (en) System and method for analyzing data accesses of a trace from a computer-executable program to determine data access patterns
US6813693B2 (en) System and method for the discovery and use of repetitively accessed data
WO2017067175A1 (zh) 一种加载elf文件的方法、装置、设备和计算机存储介质
JP5608594B2 (ja) プレロード命令制御
US20080215848A1 (en) Method and System For Caching Address Translations From Multiple Address Spaces In Virtual Machines
US8839215B2 (en) String cache file for optimizing memory usage in a java virtual machine
KR100955101B1 (ko) 효율적인 메모리 계층 관리
US8589143B2 (en) Virtualization apparatus and processing method thereof
US20130246709A1 (en) Translation address cache for a microprocessor
KR20090026296A (ko) 예측 데이터 로더
US8856761B2 (en) Instruction processing method, instruction processing apparatus, and instruction processing program
JP2007531075A (ja) プログラム・コードを変換するための共用コード・キャッシングの方法および装置
JP2020525905A (ja) アドレス変換データの無効化
US6052530A (en) Dynamic translation system and method for optimally translating computer code
KR101851330B1 (ko) 코드 재사용 공격 탐지 장치 및 그 방법
JP4666511B2 (ja) データ処理におけるメモリキャッシング
JP4701611B2 (ja) 動的変換方式のエミュレータ向けメモリ管理方法
US7143399B2 (en) Method and apparatus for prefetching memory pages during execution of a computer program
US20070203877A1 (en) Intermediate cache utility for file system access
US20100268921A1 (en) Data collection prefetch device and methods thereof
US7975303B1 (en) Efficient file scanning using input-output hints
US6532532B1 (en) Instruction execution mechanism
CN109710267B (zh) 基于二进制翻译自修改代码检测方法和装置
KR101376884B1 (ko) 프로그램 명령어 프리페치 제어 장치 및 그 방법

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060424

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061006

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091215

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101109

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101222

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110208

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110221

LAPS Cancellation because of no payment of annual fees