JP2010518471A - 処理環境での命令実行の制御 - Google Patents

処理環境での命令実行の制御 Download PDF

Info

Publication number
JP2010518471A
JP2010518471A JP2009547640A JP2009547640A JP2010518471A JP 2010518471 A JP2010518471 A JP 2010518471A JP 2009547640 A JP2009547640 A JP 2009547640A JP 2009547640 A JP2009547640 A JP 2009547640A JP 2010518471 A JP2010518471 A JP 2010518471A
Authority
JP
Japan
Prior art keywords
instruction
test
test set
routine
architecture
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
JP2009547640A
Other languages
English (en)
Other versions
JP5443172B2 (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2010518471A publication Critical patent/JP2010518471A/ja
Application granted granted Critical
Publication of JP5443172B2 publication Critical patent/JP5443172B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • 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)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)
  • Advance Control (AREA)
  • Retry When Errors Occur (AREA)

Abstract

【課題】選択された時にテストを実行することを可能にする機能を提供すること。
【解決手段】命令実行は、処理をメインライン処理で継続すべきなのか失敗してテスト・セットにすべきなのかを判定する単一のテストによって制御される。この単一のテストは、動的にセットされる変数を命令カウンタと比較する。このテストが満足される場合には、メインライン処理が継続される。そうでない場合には、処理は、失敗してテスト・セットになる。
【選択図】図5

Description

本発明は、全般的には、処理環境内の処理に関し、具体的には、処理環境内の命令実行の制御に関する。
通常、命令ストリームの実行中には、単一の命令が実行され、複数のテストが実行され、その後、次の命令が実行されるなどである。実行されるテストは、たとえば、ページ境界がまたがれているかどうかの検査、ある種のデバッギング・モードなど、特定の処理モードがアクティブであるかどうかの検査、および適当な実行モードの判定を含む。これらのテストは、命令実行が正しく進行することを保証するために、各命令の後に実行される。
これらのテストの実行は、正しい命令実行を保証するが、非常にコストがかかる。すなわち、各命令の後のこれらのテストの実行は、システム性能にかなり影響する。
「z/Architecture Principles of Operation」IBM Publication No.SA22−7832−04、2005年9月
前述に基づいて、テストがより低い頻度で実行されるように、処理を能率的にする機能の必要が存在する。たとえば、テストを実行する必要がない時がある。一例として、実行される命令がページの始めにある場合に、ページ境界またぎをチェックする必要はない。したがって、選択された時にテストを実行することを可能にする機能の必要が存在する。さらに、さまざまなテストの実行なしに別の命令の後にある命令を処理することを可能にする機能の必要が存在する。
請求項1で請求される方法ならびに対応するシステムおよびコンピュータ・プログラムの提供を介して、従来技術の短所が克服され、追加の利益が実現される。
追加の特徴および利益は、本発明の技術を介して実現される。本発明の他の実施形態および態様は、本明細書で詳細に説明され、請求される発明の一部と考えられる。
本発明の1つまたは複数の態様を、本明細書の末尾の特許請求の範囲で例として特に指摘し、明確に請求する。本発明の前述および他の目的、特徴、および利益は、添付図面と共に解釈される次の詳細な説明から明白である。
本発明の1つまたは複数の態様を組み込み、使用する処理環境の一実施形態を示す図である。 本発明の態様による図1の処理環境のシステム・アーキテクチャの一実施形態を示す図である。 本発明の態様による図2のシステム・アーキテクチャのエミュレータの一実施形態のさらなる詳細を示す図である。 本発明の態様による図3のエミュレータの中央処理装置(CPU)実施態様の一実施形態のさらなる詳細を示す図である。 本発明の態様による図4のCPU実施態様のインタープリタ・コードの一実施形態のさらなる詳細を示す図である。 本発明の態様による命令実行のフローの一実施形態を示す図である。 本発明の態様による命令ストリームの実行に関連する論理の一実施形態を示す図である。 本発明の態様による図7のテスト・セットの処理に関連する論理の一実施形態を示す図である。 本発明の1つまたは複数の態様を組み込んだコンピュータ・プログラム製品の一実施形態を示す図である。
本発明の態様によれば、機能が、処理環境内で命令実行を制御するために提供される。一例として、メインライン命令ストリーム内の命令は、単一のテストに合格することに応答して処理され続ける。しかし、テストに合格しない場合には、メインライン・ストリーム内の命令ではなく、テスト・セットが実行される。
単一のテストは、本明細書でend−of−range(範囲の終り)と称する、ある値が選択的にセットされる変数との命令カウンタの比較を含む。その値が満足されない間は、命令実行が、メインライン命令ストリーム内の次の命令に進み続ける。しかし、その値に達するかこれを超えた時には、実行が、失敗して所定のテスト・セットになり、このテスト・セットが実行される。
一実施形態で、テスト・セットの処理中に、バッファを使用して命令実行を容易にすることができる。たとえば、ある種の命令は、処理される時に特殊な処理を必要とする(たとえば、Execute命令およびページ境界をまたぐ命令)。この処理を容易にするために、バッファが使用され、このバッファに、必要な場合または望まれる場合に、ターゲット命令がコピーされ、命令に対する変更が可能になる。
本発明の1つまたは複数の態様を組み込み、使用する処理環境の一実施形態を、図1を参照して説明する。この例では、処理環境100は、ネイティブ・アーキテクチャと呼ぶことができる1つのアーキテクチャに基づくが、ゲスト・アーキテクチャと呼ぶことができるもう1つのアーキテクチャをエミュレートする。例として、ネイティブ・アーキテクチャは、米国ニューヨーク州アーモンクのInternational Business Machines Corporation社によって提供されるPower4もしくはPowerPC(R)アーキテクチャまたはIntel Corporation社によって提供されるIntel(R)アーキテクチャであり、ゲスト・アーキテクチャは、やはり米国ニューヨーク州アーモンクのInternational Business Machines Corporation社によって提供されるz/Architecture(R)である。z/Architecture(R)の諸態様は、参照によってその全体を本明細書に組み込まれる、「z/Architecture Principles of Operation」、IBM Publication No.SA22−7832−04、2005年9月に記載されている。
処理環境100は、たとえば、たとえば1つまたは複数のバス108を介して互いに結合された、ネイティブ・プロセッサ102(たとえば、中央処理装置(CPU))、メモリ104(たとえば、メイン・メモリ)、および1つまたは複数の入出力(I/O)デバイス106を含む。例として、ネイティブ・プロセッサ102は、米国ニューヨーク州アーモンクのInternational Business Machines Corporation社(IBM(R))によって提供されるpSeries(R)サーバの一部である。IBM(R)、pSeries(R)、Power PC(R)、およびz/Architecture(R)は、米国ニューヨーク州アーモンクのInternational Business Machines Corporation社の登録商標である。Intel(R)は、Intel Corporation社の登録商標である。本明細書で使用される他の名前が、International Business Machines Corporation社または他の会社の登録商標、商標、または製品名である場合がある。
ネイティブ・プロセッサ102は、この環境内での処理中に使用される、1つもしくは複数の汎用レジスタまたは1つもしくは複数の特殊目的レジスタあるいはその両方など、1つまたは複数のネイティブ・レジスタ110を含む。これらのレジスタは、任意の特定の時点でのこの環境の状態を表す情報を含む。
エミュレーションを提供するために、処理環境は、エミュレータ、ゲスト・オペレーティング・システム、および1つまたは複数のゲスト・アプリケーションを含むように設計される。これらの設計された特徴を、図2を参照してさらに説明する。
図2を参照して、処理環境100のシステム・アーキテクチャ200の一実施形態を説明する。システム・アーキテクチャ200は、たとえば、環境の設計された諸態様を定義する複数のインプリメンテーション・レイヤを含む。この特定の例では、レイヤは、1つまたは複数のインターフェースまたはコントローラあるいはその両方を介してメモリ204および入出力デバイスまたはネットワークあるいはその両方206に結合されたハードウェア202と、ホスト・オペレーティング・システム208と、エミュレータ210と、ゲスト・オペレーティング・システム212と、1つまたは複数のゲスト・アプリケーション214とを例として含む。1つのレイヤは、1つまたは複数のインターフェースを介して少なくとも1つの他のレイヤに結合される。たとえば、ゲスト・アプリケーション214は、少なくとも1つのインターフェースを介してゲスト・オペレーティング・システム212に結合される。他のインターフェースが、他のレイヤを結合するのに使用される。さらに、このアーキテクチャは、他のレイヤまたはインターフェースあるいはその両方をも含むことができる。図2に示されたさまざまなレイヤを、下でさらに説明する。
ハードウェア202は、処理環境のネイティブ・アーキテクチャであり、たとえば、Power4、PowerPC(R)、Intel(R)、または他のアーキテクチャに基づく。ハードウェア上で稼動するのは、International Business Machines Corporation社によって提供されるAIX(R)、またはLINUXなどのホスト・オペレーティング・システム208である。AIX(R)は、米国ニューヨーク州アーモンクのInternational Business Machines Corporation社の登録商標である。
エミュレータ210は、ネイティブ・アーキテクチャとは異なるアーキテクチャをエミュレートするのに使用される複数のコンポーネントを含む。この実施形態では、エミュレートされるアーキテクチャは、International Business Machines Corporation社によって提供されるz/Architecture(R)であるが、他のアーキテクチャもエミュレートすることができる。エミュレーションは、ゲスト・オペレーティング・システム212(たとえば、International Business Machines Corporation社の登録商標であるz/OS(R))が、ネイティブ・アーキテクチャ上で実行することを可能にし、1つまたは複数のゲスト・アプリケーション214(たとえば、Zアプリケーション)のサポートを可能にする。エミュレータ210に関するさらなる詳細を、図3を参照して説明する。
図3を参照すると、エミュレータ210は、1つまたは複数のサービス・プロセス302に結合された共有メモリ300と、入出力(I/O)インプリメンテーション304と、中央処理装置(CPU)インプリメンテーション306とを含み、これらのそれぞれを、下でさらに詳細に説明する。
共有メモリ300は、サービス・プロセス302、入出力インプリメンテーション304、およびCPUインプリメンテーション306から可視のホスト内のメモリの一部の表現である。これは、独立プロセス(たとえば、サービス・プロセス、入出力インプリメンテーション、CPUインプリメンテーション)がデータを読み取り、共有メモリ内に格納することによって通信するストレージ区域である。一例として、共有メモリは、たとえばシステム・グローバル情報、CPUコンテキストおよび情報、エミュレートされたメイン・ストレージ、エミュレートされたメイン・ストレージ・キー、ならびにサブチャネル(すなわち、入出力デバイスを表すデータ構造)を含む複数の領域を含む。
サービス・プロセス302は、CPUを作成するのに使用される1つまたは複数のプロセスおよび1つまたは複数の他のプロセスを含むと同時に、開始、停止、リセット、初期プログラム・ロード(IPL)その他などの設計されたオペレータ・ファシリティを提供する。サービス・プロセス302は、エミュレートされたシステム・ファシリティの表示または変更、共有リソースの入手/解放、他のメンテナンス・コマンドその他など、他の機能をも提供することができる。
入出力インプリメンテーション304は、たとえば、入出力デバイスと通信するのに使用される1つまたは複数のサブチャネル・プロセスおよび入出力コントローラを含む。入出力コントローラは、本発明の一態様で、サブチャネル・プロセスを開始し、回復を実行する責任を負う。
CPUインプリメンテーション306は、命令を実行し、その処理を管理する責任を負う。CPUインプリメンテーション306は、図4〜5を参照して説明する複数のコンポーネントを含む。
図4を参照すると、CPUインプリメンテーション306は、たとえば、命令を入手し、変換し、実行するのに使用されるインタープリタ・コード400と、初期スタートアップおよびチップ(たとえば、サービス・コール論理プロセッサ(SCLP)プロセス)との通信を助けるアーキテクチャ化されたコプロセッサ402と、エミュレータのタイミング機能の責任を負うタイミング・ファシリティ404とを含む。インタープリタ・コード400に関するさらなる詳細を、図5を参照して説明する。
インタープリタ・コード400は、たとえば、メモリ・アクセス・ユニット422、CPU制御426、非同期割込みハンドラ428、および同期割込みハンドラ430に結合されたインタープリテーション・ユニット420を含む。
インタープリテーション・ユニット420は、メモリから1つまたは複数のゲスト命令を入手し、それらのゲスト命令のネイティブ命令を提供し、それらのネイティブ命令を実行する責任を負う。ゲスト命令は、ネイティブ・プロセッサ102のアーキテクチャ以外のアーキテクチャで実行されるように開発されたソフトウェア命令(たとえば、機械命令)を含む。たとえば、ゲスト命令を、z/Architecture(R)プロセッサ上で実行されるように設計されたものとすることができるが、このゲスト命令は、その代わりに、たとえばpSeries(R)サーバとすることのできるネイティブ・プロセッサ102上でエミュレートされる。
一例で、ネイティブ命令の提供は、ゲスト命令に関連するエミュレータ内のコード・セグメントを選択することを含む。たとえば、各ゲスト命令は、エミュレータ内の関連するコード・セグメントを有し、この関連するコード・セグメントは、1つまたは複数のネイティブ命令のシーケンスを含み、そのコード・セグメントが、実行のために選択される。
さらなる例では、提供は、たとえば変換プロセス中に、所与のゲスト命令に関する命令のネイティブ・ストリームを作成することを含む。これは、機能を識別することと、同等のネイティブ命令を作成することとを含む。
命令がメモリ・アクセスを含む場合に、メモリ・アクセス・ユニット422が、共有メモリ300へのアクセスに使用される。メモリ・アクセス・ユニットは、動的アドレス変換(DAT)432またはアクセス・レジスタ変換(ART)434などの変換機構を使用して、論理アドレスを絶対アドレスに変換することができ、この絶対アドレスが、必要な場合に、メモリにアクセスするのに使用され、あるいはさらに変換され得る。
この実施形態では、インタープリテーション・ユニット420内の処理は、能率的にされなければならない。したがって、待ち状態またはあるアーキテクチャ・レベルから別のアーキテクチャ・レベルへ(たとえば、z/Architecture(R)からESA/390へ)の変更その他など、より複雑な状況が生じる場合に、制御は、CPU制御426に転送され、このCPU制御426が、イベントを処理し、制御をインタープリテーション・ユニット420に返す。
さらに、割込みが発生する場合に、処理は、インタープリテーション・ユニット420から、割込みが非同期割込みである場合には非同期割込みハンドラ428に、割込みが同期割込みである場合には同期割込みハンドラ430に遷移する。割込みが処理された後に、処理は、インタープリテーション・ユニット420に戻る。
具体的に言うと、インタープリテーション・ユニットは、共有メモリ内のある種の位置を監視し、ある位置が変化した場合に、これは、割込みがCPUまたは入出力のうちの1つによってセットされたことを意味する。したがって、インタープリテーション・ユニットは、適当な割込みハンドラを呼び出す。
インタープリテーション・ユニット420に関するさらなる詳細を、図6を参照して説明する。具体的に言うと、図6は、インタープリテーション・ユニットに関連する処理フローの一実施形態を示す。この実施形態では、処理フローは、スレッド式と考えられる。というのは、各命令ルーチンが、関連する復号/ディスパッチ・ルーチンを有する(すなわち、中央制御を有しない)からである。このフローは、一実施形態で、z/Architecture(R)をエミュレートしている命令を実行している。
図6を参照すると、処理フロー500が、一方は本明細書でメインライン処理502と称し、他方はテスト・セット処理504と称する2つのセクションを含むことが示されている。メインライン処理は、処理が、命令の間でかなりのテストを実行せずにある命令ルーチンから別の命令ルーチンに進む、能率的にされた処理である。この実施形態では、命令実行の間に実行される唯一のテストは、メインライン処理が継続すべきかどうかまたは処理が失敗してテスト・セットにならなければならないかどうかを判定する単純なテストである。さらなるテストを実行しなければならないか、他のアクションが要求される場合には、処理は、メインライン処理を終了し、テスト・セット処理504に入る。テストまたは他の処理が実行されたならば、処理は、メインライン処理で再開される。大多数の時間に、処理が、メインライン処理のままになると期待される。
一実施形態では、メインライン処理に入る前に、ある種の初期化が実行される。たとえば、ポインタが、インタープリテーション・ユニット420(図5)に入力され、このポインタは、実行される命令ストリームを含む特定のファイルまたはメモリ区域を示す。この命令ストリームは、たとえば、ネイティブ・プロセッサ上で実行されるZ命令を含む。
命令ストリームにポインタを設けることに加えて、命令ストリームの命令カウンタならびにエミュレートされる処理環境に関連する状態(たとえば、Z状態)が、設けられる。この状態は、たとえば、命令プログラム・イベント記録(I−PER)モードがアクティブであるかどうか、I−STEPまたはADSTOPがアクティブであるかどうか、現在の実行モードなどを示す、さまざまなレジスタおよびフラグを含む。状態が、評価され、その評価に基づいて、テスト・セット処理504(図6)のテスト・セットのうちの1つが選択される。たとえば、I−PERモードがアクティブである場合には、PERテスト・セットを選択してよい。ポインタには、選択されたテスト・セットがセットされ、処理は、そのテスト・セットで継続される。
選択されたテスト・セットが実行され、これは、下で説明するように、1つもしくは複数のテストまたは1つもしくは複数のアクションあるいはその両方を実行することを含むことができる。テスト・セットでは、処理がメインライン処理にもう一度失敗する場合に、どのテスト・セットを次に選択すべきかに関する判断を行う。さらに、メインライン処理を継続すべきかどうかを判定するための単一のテストで使用される変数end−of−rangeが、セットされる。この変数は、下でさらに詳細に説明するように、実行されるテストおよび命令ストリームの処理ステージに基づいてセットされる。
テスト・セットの実行の後に、処理は、そのテスト・セットによって決定されるメインライン処理の命令ルーチン506に継続する。選択された命令ルーチンが完了する時に、制御は、選択された命令ルーチン506に関連する復号/ディスパッチ・ルーチン508で継続される。
復号/ディスパッチ・ルーチンは、次のオペコードについて命令ストリームを読み取り、その命令に進むか、失敗してテスト・セットに進む。たとえば、復号/ディスパッチ・ルーチンでは、単一のテストを実行して、能率的にされたメインライン処理が継続するかどうか、または処理が一時的に失敗してテスト・セット処理になるかどうかを判定する。すなわち、復号/ディスパッチ・ポイントでは、テストを行って、より複雑な処理が必要であるかどうか、または処理がメインライン・ストリーム内に留まることができるかどうかを判定する。より複雑な処理が要求される場合には、命令を囲む状況を、所定のテスト・セット内で人工的に変更して、命令ルーチンに進む前に状況を単純にする。というのは、命令ルーチンが、状況が単純であることを仮定するからである。たとえば、命令ストリームは、物理的に連続した位置から命令をフェッチできると仮定する。復号/ディスパッチが、命令がページ境界をまたぐのでそれが不可能であることを示す場合には、処理は、テスト・セットに継続し、このテスト・セットで、追加処理が実行される。
たとえば、命令ページ境界またぎ510、回復511、I−PERフェッチ512、I−StepおよびAdstop 514、開始および終了516、ならびに統計収集実行モード決断(JITモード)518を含む、処理のために選択できるさまざまなテスト・セットがある。これらのテスト・セットが、例として提供されるが、追加の、より少数の、または異なるテスト・セットを使用することができる。各テスト・セットは、メインライン処理に戻る前に実行される1つまたは複数のアクションを含むことができる。テスト・セットに関するさらなる詳細を、下で説明する。
選択できる1つのテスト・セットが、命令ページ境界またぎ510であり、これは、命令がページ境界をまたいでいるかどうかを判定するのに使用される。このテスト・セットは、命令がページ(またはメモリの他の指定された単位)の終りに近い時に呼び出される。たとえば、end−of−range変数には、たとえば、ページの終りから4バイトを引いたものと等しい値がセットされる。完了したばかりの命令ルーチンに関連する復号/ディスパッチ・ルーチンでは、end−of−range値を命令カウンタと比較して、命令がページの終りに近いかどうかを判定する。この単一のテストが満足される場合に、この例では命令ページ境界またぎ510が呼び出される。
命令ページ境界またぎ510では、テストを実行して、命令が複数のページにまたがるかどうかを判定する。一例として、ページがやはり4バイトを有し、命令が2バイトのみである場合に、その命令は、それでもそのページに収まる。したがって、処理は、メインライン処理で再開され、このメインライン処理が、この命令を処理する。しかし、命令が6バイトであり、命令のうちの4バイトだけが1ページ上にある場合に、その命令はページ境界をまたいでいると判定される。命令の最後の2バイトは、論理的には連続するが、物理的には不連続なので、処理が、最後の2バイトを入手し、6バイトを提供する(これらが物理的に連続であるかのように)ために実行される。6バイトが、物理的に連続するメモリにあるかのように入手され、実行すべき適当な命令ルーチンに(ポインタを介して)供給される。
上で説明したように、メインライン処理内の各命令内でページ境界またぎテストを実行するのではなく、このテストは、望まれる時または必要な時にのみ実行される。すなわち、このテストは、命令がページの終りに近いと判定される時に限って実行される。
もう1つのテスト・セットが、回復511である。このテスト・セットは、下でさらに詳細に説明するように、命令に関する特別な処理が必要な時に呼び出される。1つの例で、さまざまな変数の値が格納され、これらの変数が、その後に変更される。その後、回復が、これらの変数を保存された値に戻すのに使用される。
もう1つのテスト・セットが、I−PERフェッチ512である。PER監視は、指定されたストレージ区域からの命令のフェッチなど、ある種のプログラム・イベントを監視するz/Architectureのデバッギング・ツールである。このテスト・セットは、end−of−range値が、I−PERモードを開始しなければならないことを示す時に使用される。たとえば、PER監視を、ページの途中で開始しなければならず、end−of−range変数と命令カウンタとの比較が、ページの途中を示し、PER監視が開始される場合に、このテスト・セットが呼び出され、PERに関連する処理が実行される。
もう1つのテスト・セットが、I−StepおよびAdstop 514である。I−StepおよびAdstopは、設計されたz/Architecture(R)内のデバッギング・ツールである。I−Stepについて、プロセッサは、単一命令を通ってステップし、その後、停止状態になるモードにされる。停止状態中に、機械の状態が検査される。たとえば、レジスタを手作業で読み取り、その後、I−Stepモード継続を発行する。I−Stepテスト・セットを呼び出すためには、end−of−range変数が、命令カウンタと一致する。すべての種類の命令の実行の後に、命令カウンタは、すぐにend−of−rangeを超え、したがって、end−of−rangeには、人工的に0がセットされる。したがって、プログラム実行は、各命令の直後にテスト・ブロックに進む。プログラム実行は、停止状態に進み、ユーザ対話を待ち、その後、継続する。
Adstopは、命令アドレスが特定の範囲内である時の停止である。これは、PERモードに似ている。
もう1つのテスト・セットが、開始および終了テスト・セットである。このテスト・セットは、制御をCPU制御に転送しなければならない時および制御をCPU制御から戻って転送しなければならない時に使用される。プログラム実行が、あるアーキテクチャ・モードかラベルのアーキテクチャ・モードに変化する時に、このフローは終了され、制御は、CPU制御で継続される。このテスト・セットを呼び出すために、一例として、end−of−range変数に0がセットされる。
統計収集実行モード決断518は、どのモードを実行に使用しなければならないのかを判定するのに使用される。このテスト・セットは、使用統計を収集し、その統計に基づいて実行モードを選択する。実行モードの例は、インタープリタティブ・モード(メインライン処理502に戻る)、各実行される命令がバッファにコピーされる記録モード、およびアドレスが以前に変換された時に使用される変換モードを含む。このテスト・セットを呼び出すために、一例として、end−of−range変数に0がセットされる。これは、このテスト・セットを各命令の後に処理することを可能にする。
上のテスト・セットでは、主要なテストまたはアクションが示されるが、各テスト・セットは、他のアクションを含むことができる。たとえば、各テスト・セットは、たとえば、主要なテストまたはアクションに加えて、命令ページ境界またぎがまたがれつつあるかどうか、または割込みが保留中であるかどうかをもチェックすることができる。多数の他の例も存在する。
インタープリテーション・ユニット420による命令ストリームの処理に関連するさらなる詳細を、図7を参照して説明する。
当初に、命令ストリームへのポインタを、命令ストリームに関連する命令カウンタおよび状態と一緒に、インタープリテーション・ユニット420に入力する、ステップ600。状態は、たとえば、例として、浮動小数点レジスタ、汎用レジスタ、制御レジスタ、またはアドレッシング・レジスタあるいはこれらの組合せを含むレジスタと、たとえばPERモード・アクティブ、I−Stepアクティブなどを示すフラグとを含む。この状態を評価する、ステップ602。
評価に基づいて、テスト・セットのうちの1つを選択し、テスト・セットの処理を開始する、ステップ604。このテスト・セットは、処理が特定のテスト・セットを開始しなければならないことを評価が示すという点で、事前に決定される。テスト・セット内で、ある種のアクションが、テスト・セットに依存して実行される。さらに、テスト・セットは、必要な場合に、次に呼び出すべきテスト・セットを決定し、その、次のテスト・セットをポイントするようにテスト・セット・ポインタをセットする。次のテスト・セットは、テスト・セット内で実行される評価(たとえば、PERアクティブ、ページ境界またぎに近い、I−Stepアクティブなど)に依存して、同一のテスト・セットまたは異なるテスト・セットとすることができる。
テスト・セットの実行に応答して、フローは、メインライン処理内の選択された命令ルーチンに進み、そのルーチンが実行される、ステップ606。一例で、このルーチンは、1つの命令を含むが、他の例では、このルーチンが、複数の命令を含むことができる。命令ルーチンが完了した時に、処理は、その命令ルーチンに関連する復号/ディスパッチ・ルーチンに継続する、ステップ608。復号/ディスパッチでは、単一のテストを実行して、処理を次の命令に継続すべきなのか、失敗してテスト・セットにすべきなのかを判定する、ステップ610。この単一のテストは、end−of−rangeの値が満足されたかどうかに関するチェックである。これが満足されていない場合、問合せ612、処理は、メインライン実行に継続する、ステップ606。そうでない場合には、処理は、失敗して所定のテスト・セットになり、ステップ614、その後、テスト・セットが処理される、ステップ616。その後、処理は、テスト・セットによって示される、処理すべき次の命令ルーチンに継続する。
テスト・セットの処理に関する追加の詳細を、図8を参照して説明する。テスト・セットの処理中に、特殊な処理を含む命令を実行することができる。そのような命令の処理を容易にするために、下で説明するように、バッファが使用される。
図8を参照すると、テスト・セットの処理が開始され、命令に出会う、ステップ700。この命令が特殊な処理を必要とするタイプの命令であるかどうかに関する判定を行う、問合せ702。たとえば、命令が、executeまたはページ境界をまたぐ命令であるかどうかに関するチェックを行う。特殊な処理を必要とする命令である場合には、バッファが使用される。このバッファは、プロセッサのローカル・メモリ内に存在する一時バッファである。たとえば、命令が、ターゲット命令を実行することを指定するZ命令であるexecute命令である場合に、ターゲット命令が、バッファリングされるメモリ位置にロードされる、ステップ704。ターゲット命令をバッファにコピーすることによって、命令に関連する少なくとも1つの態様を変更することができる、ステップ706。たとえば、ターゲット命令が、move character(MVC)命令であると仮定すると、命令内で指定される、移動すべきバイト数が変更されなければならない。命令が、バッファにコピーされ、移動すべきバイト数を示すために変更される。たとえば、移動すべきオリジナル・バイト数が4バイトである場合に、これを、8バイトなど、別の値に変更することができる。したがって、4バイトを移動するのではなく、ターゲット命令は、8バイト(または任意の他のバイト数)を移動するように変更される。
さらなる例として、命令が、ページ境界をまたぐ命令であると仮定する。この場合に、ターゲット命令は、実行すべき命令であり、論理的には連続するが、物理的には不連続であり、命令のバイトが、これらを物理的に連続したものにするためにバッファにコピーされる。たとえば、あるページに配置された命令のバイトの第1セットが、バッファにコピーされ、別のページ上のその命令の残りのバイトも、バッファにコピーされる、ステップ704。この例では、命令を変更する必要はなく、したがって、ステップ706は無視される。
バッファを初期化した後に、さまざまなタスクが、処理されるテスト・セットの一部として実行される。これらのタスクは、たとえば、命令ポインタをバッファにリダイレクトすることと、後の使用のためにさまざまな変数の値を保存すること、ステップ708を含む。たとえば、end−of−range変数の現在の値、ならびに次テスト・セット・インジケータの現在の値を保存する。
その後、これらの変数の値を置換する、ステップ710。たとえば、end−of−rangeに0をセットし、次テスト・セット・インジケータを、回復テスト・セットをポイントするようにセットする。
次に、バッファ内の命令を実行する。復号/ディスパッチで、単一のテスト(たとえば、end−of−range変数)が失敗し、したがって、回復テスト・セットが選択される、ステップ714。回復中に、ステップ708〜710でのアクションが元に戻される。たとえば、命令ポインタは、オリジナルの命令ストリームにリダイレクトされ、end−of−range変数には、保存された値がセットされ、次テスト・セット・インジケータも、保存された値にリセットされる。その後、処理は、次の命令で継続される、ステップ716。
問合せ702に戻って、命令が、特殊な処理を必要とするタイプの命令ではない場合には、処理は、テスト・セットによる指示通りに、テスト・セットのまたは戻ってメインライン処理の次の命令に継続する。
本発明の1つまたは複数の態様を、たとえばコンピュータ可読媒体を有する製造品(たとえば、1つまたは複数のコンピュータ・プログラム製品)に含めることができる。媒体は、その中に、たとえば、本発明の機能を提供し、容易にするためにコンピュータ可読プログラム・コード手段または論理(たとえば、命令、コード、コマンドなど)を有する。製造品を、コンピュータ・システムの一部として含めるか、別々に販売することができる。
本発明の1つまたは複数の態様を組み込んだ製造品またはコンピュータ・プログラム製品の一例を、図9を参照して説明する。コンピュータ・プログラム製品800は、たとえば、本発明の1つまたは複数の態様を提供し、容易にするためにその上にコンピュータ可読プログラム・コード手段または論理804を格納するために1つまたは複数のコンピュータ使用可能媒体802を含む。媒体は、電子、磁気、光学、電磁、赤外線、または半導体システム(または装置もしくはデバイス)、あるいは伝搬媒体とすることができる。コンピュータ可読媒体の例は、半導体メモリまたはソリッド・ステート・メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、リジッド磁気ディスク、および光ディスクを含む。光ディスクの例は、コンパクト・ディスク読取り専用メモリ(CD−ROM)、書換可能コンパクト・ディスク(CD−R/W)、およびDVDを含む。
1つまたは複数のコンピュータ可読プログラム・コード手段または論理によって定義される1つまたは複数の相互に関係付けられたモジュールのプログラム命令のシーケンスまたは論理アセンブリは、本発明の1つまたは複数の態様の実行を指示する。
有利なことに、単一のend−of−rangeテストによって決定されるテスト(単一のend−of−rangeテスト以外の)または他のアクションが要求されない限り、制御がメインライン処理内で維持される、命令実行を制御する能力が提供される。必要な時に限ってテストを実行することによって、性能が高められ、コーディングが単純化される(たとえば、各命令がテストのすべてに関するコードを含む必要がない)。
有利なことに、処理は、分岐が、インタープリタに戻った後に次のルーチンへではなく、次のルーチンへ(テスト・セットを処理する必要がないと仮定して)発生するという点で、能率的にされる。
さらなる利益として、execute命令など、ある種の命令に関連するオーバーヘッドが、バッファを使用することによって減らされる。execute命令に関して、メモリのあるページからメモリの別のページへのジャンプに関連するオーバーヘッドがある。たとえば、メモリのあるページにあるexecute命令が実行され、その後、メモリの異なるページにあるターゲット命令が実行される。ターゲット命令が実行された後に、処理は、execute命令の後の命令にリターンする。この行き来する分岐に関連するオーバーヘッドがある。しかし、バッファを使用することによって、最初のページを去ることの記録が維持され、したがって、処理がリターンする時に、回復を実行することができ、追加のテストまたはアクションあるいはその両方(たとえば、アドレス変換など)を実行する必要はない。
さまざまな実施形態を上で説明したが、これらは例にすぎない。たとえば、処理環境は、Power4、PowerPC(R)、またはIntel(R)以外のアーキテクチャに基づく処理ユニットを含むことができる。さらに、pSeries(R)サーバ以外のサーバが、本発明の1つまたは複数の態様を組み込み、使用することができる。さらに、本明細書で言及したもの以外のオペレーティング・システムを使用することができる。さらに、処理環境は、z/Architecture(R)以外の環境をエミュレートすることができる。さらに、さまざまなエミュレータを使用することができる。エミュレータは、さまざまな会社によって市販され、提供される。さらに、処理環境は、エミュレータ・コードを含む必要がない。多数の他のタイプの処理環境が、本発明の1つまたは複数の態様を組み込み、または使用し、あるいはその両方を行うことができる。
さらに、バッファが、execute命令およびページ境界をまたぐ命令など、ある種の命令の処理に使用されるが、バッファが使用される他の命令または状況あるいはその両方があってもよく、これらは、本発明の範囲に含まれる。
さらに、テスト・セットは、例として提供されたものである。追加の、より少数の、または他の、あるいはこれらの組合せのテスト・セットを使用することができる。含まれるテスト・セットの個数は、設計依存である。本発明に対する多数の変形形態が、可能であり、本発明の範囲に含まれる。
さらに、1つまたは複数の実施形態で、直接または間接にシステム・バスを介してメモリ要素に結合される少なくとも1つのプロセッサを含む、プログラム・コードを格納し、または実行し、あるいはその両方を行うのに適するデータ処理システムが使用可能である。メモリ要素は、たとえば、プログラム・コードの実際の実行中に使用されるローカル・メモリ、バルク・ストレージ、および、実行中にバルク・ストレージからコードを取り出さなければならない回数を減らすために少なくともいくつかのプログラム・コードの一時的記憶を提供するキャッシュ・メモリを含む。
入出力デバイスすなわちI/Oデバイス(キーボード、ディスプレイ、ポインティング・デバイス、DASD、テープ、CD、DVD、サム・ドライブ、および他の記憶媒体などを含むがこれらに限定はされない)を、直接にまたは介在する入出力コントローラを介してのいずれかでシステムに結合することができる。ネットワーク・アダプタをシステムに結合して、データ処理システムが、介在する私有ネットワークまたは公衆ネットワークを介して他のデータ処理システム、リモート・プリンタ、またはストレージ・デバイスに結合された状態になることを可能にすることもできる。モデム、ケーブル・モデム、およびイーサネット(R)・カードが、使用可能なタイプのネットワーク・アダプタのうちの少数である。
本発明の1つまたは複数の態様の機能を、ソフトウェア、ファームウェア、ハードウェア、またはこれらの組合せで実施することができる。本発明の機能を実行するために機械によって実行可能な命令の少なくとも1つのプログラムを実施する機械によって可読の少なくとも1つのプログラム・ストレージ・デバイスを提供することができる。
本明細書で示される流れ図は、例にすぎない。これらの流れ図または本明細書で説明されるステップ(もしくは動作)に対する、本発明の趣旨から逸脱しない多数の変形形態があり得る。たとえば、ステップを、異なる順序で実行することができ、ステップを、追加し、削除し、または変更することができる。これらの変形のすべてが、請求される発明の一部と考えられる。
実施形態を本明細書で詳細に図示し、説明したが、本発明の趣旨から逸脱せずに多数の変更、追加、および置換などを行うことができ、したがって、これらが、添付の特許請求の範囲で定義される本発明の範囲に含まれると考えられることが、当業者には明白である。

Claims (15)

  1. 命令ストリームの命令ルーチンを実行することと、
    前記命令ルーチンの実行に応答して、処理を前記命令ストリームの別の命令ルーチンに継続すべきなのか、あるいは失敗してテスト・セットになるべきなのかを判定するためにテストを使用することと、
    前記判定に応答して前記別の命令ルーチンまたは前記テスト・セットを実行することと
    を含む、処理環境で命令実行を制御する方法。
  2. 前記テストが、前記判定において、動的にセットされる変数を使用する、請求項1に記載の方法。
  3. 前記変数に、前記変数をセットするために実行される1つまたは複数のテストの結果に依存する値がセットされ、前記値が、前記命令ストリームの実行中に変更可能である、請求項2に記載の方法。
  4. 前記テストの前記使用が、どのように進行すべきかを判定するために、前記命令ルーチンの命令カウンタを前記変数の値と比較することを含む、請求項2に記載の方法。
  5. 前記テスト・セットが、複数の命令ルーチンによって使用可能であり、前記複数の命令ルーチンが前記テスト・セット・コードを欠くことを可能にする、請求項1に記載の方法。
  6. 前記テスト・セットが、複数のテスト・セットから以前に選択される、請求項1に記載の方法。
  7. 前記複数のテスト・セットが、命令ページ境界またぎテスト・セット、I−PERフェッチ・テスト・セット、I−Stepおよびadstopテスト・セット、開始および終了テスト・セット、ならびに統計収集実行モード決断テスト・セットのうちの少なくとも1つを含む、請求項6に記載の方法。
  8. 前記処理環境の状態の評価を実行することと、
    前記評価に少なくとも部分的に基づいて前記テスト・セットを選択することと
    をさらに含む、請求項1に記載の方法。
  9. 前記命令ルーチンが、ゲスト・アーキテクチャの1つまたは複数の命令をエミュレートする、請求項1に記載の方法。
  10. 前記処理環境が、エミュレートされた環境を含み、前記処理環境が、あるアーキテクチャに基づき、前記あるアーキテクチャとは異なる別のアーキテクチャをエミュレートする、請求項1に記載の方法。
  11. 前記別のアーキテクチャが、z/Architectureを含み、前記あるアーキテクチャが、非z/Architectureを含む、請求項10に記載の方法。
  12. 前記テストが、前記命令ルーチンに関連する復号/ディスパッチ・ルーチンに含まれ、前記命令ストリームの各命令ルーチンが、分散された復号/ディスパッチ・ルーチンを関連付けられる、請求項1に記載の方法。
  13. 前記別の命令ルーチンを、前記実行される命令ルーチンと同一または前記実行される命令ルーチンと異なるものにすることができる、請求項1に記載の方法。
  14. 請求項1ないし13のいずれかに記載の方法の全ステップを実行するように適合された手段を含むシステム。
  15. コンピュータ・システム上で実行される時に請求項1ないし13のいずれかに記載の方法の全ステップを実行する命令を含むコンピュータ・プログラム。
JP2009547640A 2007-02-01 2008-01-22 処理環境での命令実行の制御 Active JP5443172B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/670,163 US7783867B2 (en) 2007-02-01 2007-02-01 Controlling instruction execution in a processing environment
US11/670,163 2007-02-01
PCT/EP2008/050727 WO2008092778A2 (en) 2007-02-01 2008-01-22 Controlling instruction execution in a processing environment

Publications (2)

Publication Number Publication Date
JP2010518471A true JP2010518471A (ja) 2010-05-27
JP5443172B2 JP5443172B2 (ja) 2014-03-19

Family

ID=39674541

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009547640A Active JP5443172B2 (ja) 2007-02-01 2008-01-22 処理環境での命令実行の制御

Country Status (7)

Country Link
US (1) US7783867B2 (ja)
EP (1) EP2115582B1 (ja)
JP (1) JP5443172B2 (ja)
KR (1) KR101013275B1 (ja)
CN (1) CN101601013B (ja)
TW (1) TWI410864B (ja)
WO (1) WO2008092778A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010518470A (ja) * 2007-02-01 2010-05-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 命令実行を容易にするためのバッファの使用

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9411591B2 (en) 2012-03-16 2016-08-09 International Business Machines Corporation Run-time instrumentation sampling in transactional-execution mode
US9158660B2 (en) 2012-03-16 2015-10-13 International Business Machines Corporation Controlling operation of a run-time instrumentation facility
US9405541B2 (en) 2012-03-16 2016-08-02 International Business Machines Corporation Run-time instrumentation indirect sampling by address
US9454462B2 (en) 2012-03-16 2016-09-27 International Business Machines Corporation Run-time instrumentation monitoring for processor characteristic changes
US9367316B2 (en) 2012-03-16 2016-06-14 International Business Machines Corporation Run-time instrumentation indirect sampling by instruction operation code
US9250902B2 (en) 2012-03-16 2016-02-02 International Business Machines Corporation Determining the status of run-time-instrumentation controls
US9471315B2 (en) * 2012-03-16 2016-10-18 International Business Machines Corporation Run-time instrumentation reporting
US9430238B2 (en) 2012-03-16 2016-08-30 International Business Machines Corporation Run-time-instrumentation controls emit instruction
US9280447B2 (en) 2012-03-16 2016-03-08 International Business Machines Corporation Modifying run-time-instrumentation controls from a lesser-privileged state
US9483268B2 (en) * 2012-03-16 2016-11-01 International Business Machines Corporation Hardware based run-time instrumentation facility for managed run-times
US9442824B2 (en) 2012-03-16 2016-09-13 International Business Machines Corporation Transformation of a program-event-recording event into a run-time instrumentation event
US9465716B2 (en) 2012-03-16 2016-10-11 International Business Machines Corporation Run-time instrumentation directed sampling
US9916185B2 (en) 2014-03-18 2018-03-13 International Business Machines Corporation Managing processing associated with selected architectural facilities
US9582295B2 (en) 2014-03-18 2017-02-28 International Business Machines Corporation Architectural mode configuration
US10311228B2 (en) 2014-09-30 2019-06-04 Apple Inc. Using a fine-grained address space layout randomization to mitigate potential security exploits
US10311227B2 (en) * 2014-09-30 2019-06-04 Apple Inc. Obfuscation of an address space layout randomization mapping in a data processing system
US11366800B2 (en) * 2016-08-22 2022-06-21 American Megatrends International, Llc System and method to automate validating media redirection in testing process
KR20240030359A (ko) * 2022-08-30 2024-03-07 오픈엣지테크놀로지 주식회사 신경망에서의 연산방법 및 이를 위한 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001306334A (ja) * 2000-04-25 2001-11-02 Nec Software Hokuriku Ltd エミュレーション装置
JP2004110827A (ja) * 2002-09-19 2004-04-08 Arm Ltd 複数の個別記憶アドレス領域内に記憶された可変長命令の実行
JP2004516550A (ja) * 2000-12-15 2004-06-03 インテル・コーポレーション パイプライン方式のプロセッサのための監視点エンジン

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5463739A (en) * 1992-12-22 1995-10-31 International Business Machines Corporation Apparatus for vetoing reallocation requests during a data transfer based on data bus latency and the number of received reallocation requests below a threshold
US5560013A (en) 1994-12-06 1996-09-24 International Business Machines Corporation Method of using a target processor to execute programs of a source architecture that uses multiple address spaces
US5638525A (en) * 1995-02-10 1997-06-10 Intel Corporation Processor capable of executing programs that contain RISC and CISC instructions
US20060015780A1 (en) * 1995-10-25 2006-01-19 Cityu Research Limited Specifying data timeliness requirement and trap enabling on instruction operands of a processor
US5960198A (en) * 1997-03-19 1999-09-28 International Business Machines Corporation Software profiler with runtime control to enable and disable instrumented executable
GB2329049B (en) * 1997-09-09 2002-09-11 Advanced Risc Mach Ltd Apparatus and method for identifying exceptions when debugging software
US7137105B2 (en) * 1999-05-12 2006-11-14 Wind River Systems, Inc. Dynamic software code instrumentation method and system
US6321329B1 (en) * 1999-05-19 2001-11-20 Arm Limited Executing debug instructions
US6880152B1 (en) 1999-10-13 2005-04-12 Transmeta Corporation Method of determining a mode of code generation
US6381672B1 (en) 2000-05-11 2002-04-30 Advanced Micro Devices, Inc. Speculative opening of a new page when approaching page boundary during read/write of isochronous streams
US7149878B1 (en) * 2000-10-30 2006-12-12 Mips Technologies, Inc. Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values
US6915416B2 (en) * 2000-12-28 2005-07-05 Texas Instruments Incorporated Apparatus and method for microcontroller debugging
GB0125628D0 (en) * 2001-10-25 2001-12-19 Ibm Computer system with watchpoint support
US20030093649A1 (en) 2001-11-14 2003-05-15 Ronald Hilton Flexible caching of translated code under emulation
US6920587B2 (en) * 2002-04-25 2005-07-19 International Business Machines Corporation Handling multiple operating system capabilities in a logical partition data processing system
US20060218425A1 (en) * 2005-02-25 2006-09-28 Zhimin Ding Integrated microcontroller and memory with secure interface between system program and user operating system and application

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001306334A (ja) * 2000-04-25 2001-11-02 Nec Software Hokuriku Ltd エミュレーション装置
JP2004516550A (ja) * 2000-12-15 2004-06-03 インテル・コーポレーション パイプライン方式のプロセッサのための監視点エンジン
JP2004110827A (ja) * 2002-09-19 2004-04-08 Arm Ltd 複数の個別記憶アドレス領域内に記憶された可変長命令の実行

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010518470A (ja) * 2007-02-01 2010-05-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 命令実行を容易にするためのバッファの使用

Also Published As

Publication number Publication date
TWI410864B (zh) 2013-10-01
WO2008092778A4 (en) 2008-12-31
EP2115582A2 (en) 2009-11-11
CN101601013A (zh) 2009-12-09
EP2115582B1 (en) 2019-04-10
WO2008092778A2 (en) 2008-08-07
JP5443172B2 (ja) 2014-03-19
US20080189529A1 (en) 2008-08-07
US7783867B2 (en) 2010-08-24
KR101013275B1 (ko) 2011-02-09
CN101601013B (zh) 2012-10-03
WO2008092778A3 (en) 2008-11-13
TW200849089A (en) 2008-12-16
KR20090084896A (ko) 2009-08-05

Similar Documents

Publication Publication Date Title
JP5443172B2 (ja) 処理環境での命令実行の制御
US5938778A (en) System and method for tracing instructions in an information handling system without changing the system source code
KR100737666B1 (ko) 가상 기계 동작에서 기계 상태를 관리하는 방법 및 시스템
US5678032A (en) Method of optimizing the execution of program instuctions by an emulator using a plurality of execution units
US8875114B2 (en) Employing identifiers provided by an operating system of a processing environment to optimize the processing environment
JP6195572B2 (ja) ランタイム計装制御の状況の決定のためのコンピュータ・プログラム、方法、およびシステム
JPS6017539A (ja) エミユレ−シヨン方式
US20090198980A1 (en) Facilitating processing in a computing environment using an extended drain instruction
JP5235900B2 (ja) 命令実行を容易にするためのバッファの使用
US7685381B2 (en) Employing a data structure of readily accessible units of memory to facilitate memory access
US7293184B2 (en) Programmatic binding for power management events involving execution of instructions in a first programming system with a first interface and a second programming system with a second interface
CN111506395B (zh) 一种混合仿真的全数字虚拟运行环境的实现方法及装置
JP2527038B2 (ja) 拡張記憶転送制御方式
EP0842466B1 (en) Method for emulating program instructions
JPH06208480A (ja) システムプログラムシミュレーション方式
JPS63276635A (ja) 割り込み制御方法
JPH10312294A (ja) 情報処理装置、情報処理方法、及び、情報処理プログラムを記録した読み取り可能な記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100924

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121120

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130604

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130830

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131219

R150 Certificate of patent or registration of utility model

Ref document number: 5443172

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150