(57)【要約】【課題】ハイブリッド・アーキテクチャの命令セットをテストするためのコンピュータ実装方法を提供する。【解決手段】方法は、第１のベース・アーキテクチャ用の第１の命令定義テーブルを定義すること、および第２のベース・アーキテクチャ用の第２の命令定義テーブルを定義することを含み、第１のベース・アーキテクチャは、第２のベース・アーキテクチャとは異なっている。方法は、差分テーブルを定義することであって、この差分テーブルがアーキテクチャ固有の動作を定義する、定義することと、差分テーブルおよび第１の命令定義テーブルまたは第２の命令定義テーブルのうちの少なくとも１つに基づいてハイブリッド・アーキテクチャ・テーブルを生成することとを含む。方法は、ハイブリッド・アーキテクチャ・テーブルに基づいてテストを実行することを含み、ハイブリッド・アーキテクチャ・テーブルは、第１のベース・アーキテクチャと第２のベース・アーキテクチャの間で互換性のあるハイブリッド・アーキテクチャ用である。【選択図】図２
2019537090.tif 000002
【特許請求の範囲】
【請求項１】
ハイブリッド・アーキテクチャの命令セットをテストするためのコンピュータ実装方法であって、
第１のベース・アーキテクチャ用の第１の命令定義テーブルを定義することと、
第２のベース・アーキテクチャ用の第２の命令定義テーブルを定義することであって、前記第１のベース・アーキテクチャが、前記第２のベース・アーキテクチャとは異なっている、前記定義することと、
差分テーブルを定義することと、
前記差分テーブルに基づいてハイブリッド・アーキテクチャ・テーブルを生成することと、
前記ハイブリッド・アーキテクチャ・テーブルに基づいてテストを実行することと
を含んでいる、コンピュータ実装方法。
【請求項２】
前記ハイブリッド・アーキテクチャ・テーブルを前記生成することが、
前記第１の命令定義テーブルまたは前記第２の命令定義テーブルのうちの少なくとも１つから第１の命令を選択することと、
前記差分テーブル内の前記第１の命令を検索することと、
前記差分テーブル内の前記第１の命令を見つけることに応答して、前記差分テーブルに従って前記命令を変更することと、
前記変更された命令を前記ハイブリッド・アーキテクチャ・テーブルに追加することと、
前記差分テーブルにおいて、前記第１の命令定義テーブルまたは前記第２の命令定義テーブルのうちの少なくとも１つの次の命令を検索することと、
前記次の命令を検索することに応答して、前記ハイブリッド・アーキテクチャ・テーブルを更新することと
を含んでいる、請求項１に記載の方法。
【請求項３】
前記第１の命令が前記差分テーブルに存在しない場合に、前記第１の命令を前記ハイブリッド・アーキテクチャ・テーブルに追加する、請求項２に記載の方法。
【請求項４】
前記差分テーブルが複数の命令を含んでいる、請求項１に記載の方法。
【請求項５】
前記第１のアーキテクチャがｓ／３９０アーキテクチャであり、前記第２のアーキテクチャがｚ／Ａｒｃｈｉｔｅｃｔｕｒｅである、請求項１に記載の方法。
【請求項６】
非ハイブリッド・アーキテクチャのテストをシミュレートする場合に、前記第１のアーキテクチャ定義テーブルまたは前記第２のアーキテクチャ定義テーブルのうちの少なくとも１つからの命令を使用し、そうでない場合、前記ハイブリッド・アーキテクチャ・テーブルに基づいて前記テストを実行する、請求項１に記載の方法。
【請求項７】
複数のアーキテクチャ定義テーブルおよび複数の差分テーブルが前記ハイブリッド・アーキテクチャ・テーブルの生成に使用される、請求項１に記載の方法。
【請求項８】
ハイブリッド・アーキテクチャの命令セットをテストするためのコンピュータ・プログラム製品であって、
第１のプログラム命令を格納しているコンピュータ可読記憶媒体を備えており、前記第１のプログラム命令が、前記プロセッサに、
第１のベース・アーキテクチャ用の第１の命令定義テーブルを定義することと、
第２のベース・アーキテクチャ用の第２の命令定義テーブルを定義することであって、前記第１のベース・アーキテクチャが、前記第２のベース・アーキテクチャとは異なっている、前記定義することと、
差分テーブルを定義することと、
前記差分テーブルに基づいてハイブリッド・アーキテクチャ・テーブルを生成することと、
前記ハイブリッド・アーキテクチャ・テーブルに基づいてテストを実行することと
を実行させるように、前記プロセッサによって実行可能である、コンピュータ・プログラム製品。
【請求項９】
前記ハイブリッド・アーキテクチャ・テーブルを生成することが、
前記第１の命令定義テーブルまたは前記第２の命令定義テーブルのうちの少なくとも１つから第１の命令を選択することと、
前記差分テーブル内の前記第１の命令を検索することと、
前記差分テーブル内の前記第１の命令を見つけることに応答して、前記差分テーブルに従って前記命令を変更することと、
前記変更された命令を前記ハイブリッド・アーキテクチャ・テーブルに追加することと、
前記差分テーブルにおいて、前記第１の命令定義テーブルまたは前記第２の命令定義テーブルのうちの少なくとも１つの次の命令を検索することと、
前記次の命令を検索することに応答して、前記ハイブリッド・アーキテクチャ・テーブルを更新することと
を含んでいる、請求項８に記載のコンピュータ・プログラム製品。
【請求項１０】
前記第１の命令が前記差分テーブルに存在しない場合に、前記第１の命令を前記ハイブリッド・アーキテクチャ・テーブルに追加する、請求項９に記載のコンピュータ・プログラム製品。
【請求項１１】
前記差分テーブルが複数の差分テーブルを含んでいる、請求項８に記載のコンピュータ・プログラム製品。
【請求項１２】
前記第１のアーキテクチャがｓ／３９０アーキテクチャであり、前記第２のアーキテクチャがｚ／Ａｒｃｈｉｔｅｃｔｕｒｅである、請求項８に記載のコンピュータ・プログラム製品。
【請求項１３】
非ハイブリッド・アーキテクチャのテストをシミュレートする場合に、前記第１のアーキテクチャ定義テーブルまたは前記第２のアーキテクチャ定義テーブルのうちの少なくとも１つからの命令を使用し、そうでない場合、前記ハイブリッド・アーキテクチャ・テーブルに基づいて前記テストを実行する、請求項８に記載のコンピュータ・プログラム製品。
【請求項１４】
複数のベース・アーキテクチャおよび複数の差分テーブルが前記ハイブリッド・アーキテクチャ・テーブルの生成に使用される、請求項８に記載のコンピュータ・プログラム製品。
【請求項１５】
ハイブリッド・アーキテクチャの命令セットをテストするためのシステムであって、
プロセッサに接続されているストレージ媒体を備えており、
前記プロセッサが、
第１のベース・アーキテクチャ用の第１の命令定義テーブルを定義することと、
第２のベース・アーキテクチャ用の第２の命令定義テーブルを定義することであって、前記第１のベース・アーキテクチャが、前記第２のベース・アーキテクチャとは異なっている、前記定義することと、
差分テーブルを定義することと、
前記差分テーブルに基づいてハイブリッド・アーキテクチャ・テーブルを生成することと、
前記ハイブリッド・アーキテクチャ・テーブルに基づいてテストを実行することと
を実行するように構成されている、システム。
【請求項１６】
前記ハイブリッド・アーキテクチャ・テーブルを生成することが、
前記第１の命令定義テーブルまたは前記第２の命令定義テーブルのうちの少なくとも１つから第１の命令を選択することと、
前記差分テーブル内の前記第１の命令を検索することと、
前記差分テーブル内の前記第１の命令を見つけることに応答して、前記差分テーブルに従って前記命令を変更することと、
前記変更された命令を前記ハイブリッド・アーキテクチャ・テーブルに追加することと、
前記差分テーブルにおいて、前記第１の命令定義テーブルまたは前記第２の命令定義テーブルのうちの少なくとも１つの次の命令を検索することと、
前記次の命令を検索することに応答して、前記ハイブリッド・アーキテクチャ・テーブルを更新することと
を含んでいる、請求項１５に記載のシステム。
【請求項１７】
前記第１の命令が前記差分テーブルに存在しない場合に、前記第１の命令を前記ハイブリッド・アーキテクチャ・テーブルに追加する、請求項１６に記載のシステム。
【請求項１８】
前記第１のアーキテクチャがｓ／３９０アーキテクチャであり、前記第２のアーキテクチャがｚ／Ａｒｃｈｉｔｅｃｔｕｒｅである、請求項１５に記載のシステム。
【請求項１９】
非ハイブリッド・アーキテクチャのテストをシミュレートする場合に、前記第１のアーキテクチャ定義テーブルまたは前記第２のアーキテクチャ定義テーブルのうちの少なくとも１つからの命令を使用し、そうでない場合、前記ハイブリッド・アーキテクチャ・テーブルに基づいて前記テストを実行する、請求項１５に記載のシステム。
【請求項２０】
複数のベース・アーキテクチャおよび複数の差分テーブルが前記ハイブリッド・アーキテクチャ・テーブルの生成に使用される、請求項１５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、テスト命令セットに関し、特に、ハイブリッド命令アーキテクチャのセットをテストするためのシステムおよび方法に関する。
【背景技術】
【０００２】
対応するアーキテクチャへの機械の実装の順守を保証する目的でテスト・ケースを生成するために、テスト生成ツールが使用される。コンピュータ・システムの場合、テスト・ケースは、コンピュータを駆動して特定の結果を生成するコンピュータ命令のセットであることができ、生成された結果の正しさがテスト・ビークル（test vehicle）によって判定される。そのようなテスト・ケースは、疑似ランダムな方法で構築され得る。加えて、効果的なテスト生成ツールは、自動化された動的な方法で、それらのテスト・ケースを構築する。テスターは、そのようなテスト結果を使用して、実装システムまたは実装システムの機能のうちの１つが、それが機能するために本来確立されているとおりに、機能しているかどうかを判定する。可能性のある問題を明らかにするために、多数のテスト・ケースがシミュレートされる。システムのソフトウェアおよびハードウェアが変更されるときに、異なるテスト・ケースを実行して、システムの信頼性および安定性を決定しなければならない。
【０００３】
レガシー・システムおよびソフトウェア・プログラムが段階的に廃止されるとき、またはアーキテクチャの動作を含むより新しいバージョンが定義されるときに、現在のシステムは、最新バージョンのシステムまたはソフトウェアあるいはその両方を同時にサポートしながら、レガシー・バージョンをサポートできなければならない。レガシー・バージョンと最新バージョンの間の互換性を提供するために、ハイブリッド・アーキテクチャが利用される。一緒に動作するときの２つのバージョンの品質を維持するために、それらのハイブリッド・アーキテクチャはテストを必要とする。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
課題は、テスト・ツールが、異なるアーキテクチャによって定義された機械命令のセットから成るテスト・ケースを動的かつ効率的に（すなわち、保守を最小限に抑えて）構築できるようにする（言い換えると、ハイブリッド・モデル用のテスト・ケースを作成できるようにする）ことである。１つまたは複数の実施形態では、ハイブリッド・アーキテクチャをテストするための拡張可能で柔軟性のある手段が提示される。
【課題を解決するための手段】
【０００５】
ハイブリッド・アーキテクチャの命令セットをテストするためのコンピュータ実装方法が提供される。方法は、第１のベース・アーキテクチャ用の第１の命令定義テーブルを定義すること、および第２のベース・アーキテクチャ用の第２の命令定義テーブルを定義することを含み、第１のベース・アーキテクチャは、第２のベース・アーキテクチャとは異なっている。方法は、差分テーブル（delta table）を定義すること、およびこの差分テーブルに基づいてハイブリッド・アーキテクチャ・テーブルを生成することも含む。方法は、ハイブリッド・アーキテクチャ・テーブルに基づいてテストを実行することを含む。
【０００６】
別の実施形態に従って、ハイブリッド・アーキテクチャの命令セットをテストするためのコンピュータ・プログラム製品が提供される。コンピュータ可読記憶媒体が、プロセッサによって実行可能な第１のプログラム命令を格納しており、第１のプログラム命令は、このプロセッサに、第１のベース・アーキテクチャ用の第１の命令定義テーブルを定義すること、および第２のベース・アーキテクチャ用の第２の命令定義テーブルを定義することを実行させ、第１のベース・アーキテクチャは、第２のベース・アーキテクチャとは異なっている。また、コンピュータ・プログラム製品は、差分テーブルを定義し、この差分テーブルに基づいてハイブリッド・アーキテクチャ・テーブルを生成する。このコンピュータ・プログラム製品は、ハイブリッド・アーキテクチャ・テーブルに基づいてテストを実行する。
【０００７】
ハイブリッド・アーキテクチャの命令セットをテストするためのシステムが提供される。システムはストレージ媒体を含み、ストレージ媒体はプロセッサに接続されており、プロセッサは、第１のベース・アーキテクチャ用の第１の命令定義テーブルを定義し、第２のベース・アーキテクチャ用の第２の命令定義テーブルを定義するように構成されており、第１のベース・アーキテクチャは、第２のベース・アーキテクチャとは異なっており、差分テーブルを定義する。システムは、差分テーブルに基づいてハイブリッド・アーキテクチャ・テーブルを生成すること、およびハイブリッド・アーキテクチャ・テーブルに基づいてテストを実行することも含む。
【０００８】
好ましい実施形態では、差分テーブルはアーキテクチャ固有の動作を定義し、ハイブリッド・アーキテクチャ・テーブルは、第１の命令定義テーブルまたは第２の命令定義テーブルのうちの少なくとも１つにも基づいており、ハイブリッド・アーキテクチャ・テーブルは、第１のベース・アーキテクチャと第２のベース・アーキテクチャの間で互換性のあるハイブリッド・アーキテクチャ用である。
【０００９】
本発明と見なされる対象は、本明細書の最後にある特許請求の範囲において具体的に指摘され、明確に請求される。本発明の前述およびその他の特徴、および長所は、添付の図面と併せて行われる以下の詳細な説明から明らかになる。
【図面の簡単な説明】
【００１０】
【図１】本明細書の内容を実践するための処理システムの一例を示すブロック図である。
【図２】ハイブリッド・アーキテクチャの命令セットをテストするための実施形態を示すフロー図である。
【図３】ハイブリッド・アーキテクチャの命令セットをテストするための実施形態を示すフロー図である。
【図４】ハイブリッド・アーキテクチャの命令セットをテストするための実施形態を示すブロック図である。
【図５】ハイブリッド・アーキテクチャの命令セットをテストするための別の実施形態を示すブロック図である。
【図６】ハイブリッド・アーキテクチャの命令セットをテストするための実施形態の例を示すブロック図である。
【図７】ハイブリッド・アーキテクチャの命令セットをテストするための実施形態を示すフロー図である。
【発明を実施するための形態】
【００１１】
ハイブリッド・アーキテクチャの命令セットをテストするための本開示の１つまたは複数の実施形態に従って、コンピュータ実装方法、コンピュータ・プログラム製品、およびシステムが提供される。方法は、第１のベース・アーキテクチャ用の第１の命令定義テーブルを定義すること、および第２のベース・アーキテクチャ用の第２の命令定義テーブルを定義することを含み、第１のベース・アーキテクチャは、第２のベース・アーキテクチャとは異なっている。方法は、差分テーブルを定義することであって、この差分テーブルがアーキテクチャ固有の動作を定義する、定義することと、差分テーブルおよび第１の命令定義テーブルまたは第２の命令定義テーブルのうちの少なくとも１つに基づいてハイブリッド・アーキテクチャ・テーブルを生成することとを含む。方法は、ハイブリッド・アーキテクチャ・テーブルに基づいてテストを実行することを含み、ハイブリッド・アーキテクチャ・テーブルは、第１のベース・アーキテクチャと第２のベース・アーキテクチャの間で互換性のあるハイブリッド・アーキテクチャ用である。
【００１２】
課題は、テスト・ツールが、異なるアーキテクチャによって定義された機械命令のセットから成るテスト・ケースを動的かつ効率的に（すなわち、保守を最小限に抑えて）構築できるようにする（言い換えると、ハイブリッド・モデル用のテスト・ケースを作成できるようにする）ことである。１つまたは複数の実施形態では、ハイブリッド・アーキテクチャをテストするための拡張可能で柔軟性のある手段が提示される。
【００１３】
さまざまなアーキテクチャで使用される機械語は、コンピュータの中央処理装置（ＣＰＵ）によって直接実行される命令のセットであり、各命令が特定のタスクを実行する。命令は、オペコードと、それに続く１つまたは複数のオペランドの名詞から成り、オペコードはアクションであるが、オペランドは、操作されるメモリ内のデータ位置または切り替え先になるメモリ内のプログラム位置である。命令セットは、コンピュータのソフトウェアとハードウェアの間のインターフェイスである。
【００１４】
ベース・テーブルは、アーキテクチャの機械命令セットの基本的な定義を含む。１つまたは複数の実施形態では、複数のアーキテクチャ用の複数のベース・テーブルを生成できる。さまざまな種類のアーキテクチャは、ＥＳＡＭＥ（Ｅｎｔｅｒｐｒｉｓｅ  Ｓｙｓｔｅｍ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｍｏｄｅｌ  Ｅｘｔｅｎｓｉｏｎｓ）アーキテクチャ、ｓ／３９０アーキテクチャ、その他のＳｙｓｔｅｍ  ｚアーキテクチャなどを含む。
【００１５】
１つまたは複数の実施形態では、差分テーブルは、ベース・アーキテクチャの命令がハイブリッド・アーキテクチャにおいてどのように動作するかを表す。ハイブリッド・アーキテクチャ・テーブルは、ハイブリッド・アーキテクチャ用の機械命令の定義を含む。ベース・テーブルから生成されるハイブリッド・テーブルおよび差分テーブルは、テスト目的に使用される機械命令の最終的セットを含み、ハイブリッド・モードが、複数のベース・アーキテクチャ間の互換モードをサポートする。
【００１６】
１つまたは複数の実施形態では、互換モード・アーキテクチャは、２つのＩＢＭ  ｚ／システム・アーキテクチャ（ｓ／３９０アーキテクチャおよびｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ）（Ｒ）の組み合わせであるｓ／３９０互換モード・アーキテクチャである。ｓ／３９０の命令セットおよび一部のｚ／Ａｒｃｈｉｔｅｃｔｕｒｅの命令が、ｓ／３９０互換モードにおいてサポートされる。ｓ／３９０互換モードは、ｓ／３９０モードが中止されているため、一部のｓ／３９０のプログラムをｚ／Ａｒｃｈｉｔｅｃｔｕｒｅプラットフォーム上で実行できるようにする。
【００１７】
１つまたは複数の実施形態では、ｓ／３９０互換アーキテクチャの検証が実行される。１つの例では、ｓ／３９０の命令が第１のベース・テーブルに生成され、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅの命令が第２のベース・テーブルに生成される。差分テーブルは、ｓ／３９０のテーブルまたはｚ／Ａｒｃｈｉｔｅｃｔｕｒｅのテーブルあるいはその両方からの命令のセットの一意の動作を定義するために作成される。最後に、ベース・テーブルおよび差分テーブルに従ってハイブリッド命令セットが生成され、ｓ／３９０互換モードにおいてサポートされる命令の最終的セットを作成する。
【００１８】
図１を参照すると、本明細書における内容を実装するための処理システム１００の実施形態が示されている。この実施形態では、システム１００は、１つまたは複数の中央処理装置（プロセッサ）１０１ａ、１０１ｂ、１０１ｃなど（総称して、または一般的に、プロセッサ１０１として参照される）を含む。一実施形態では、各プロセッサ１０１は、縮小命令セット・コンピュータ（ＲＩＳＣ）マイクロプロセッサを含んでよい。プロセッサ１０１は、システム・バス１１３を介して、システム・メモリ１１４およびさまざまなその他のコンポーネントに接続される。読み取り専用メモリ（ＲＯＭ）１０２は、システム・バス１１３に接続され、システム１００の特定の基本機能を制御する基本入出力システム（ＢＩＯＳ）を含んでよい。
【００１９】
図１は、システム・バス１１３に接続された入出力（Ｉ／Ｏ）アダプタ１０７およびネットワーク・アダプタ１０６をさらに示している。Ｉ／Ｏアダプタ１０７は、ハード・ディスク１０３またはテープ・ストレージ・デバイス１０５あるいはその両方、あるいは任意のその他の類似するコンポーネントと通信する小型コンピュータ・システム・インターフェイス（ＳＣＳＩ）アダプタであってよい。Ｉ／Ｏアダプタ１０７、ハード・ディスク１０３、およびテープ・ストレージ・デバイス１０５は、本明細書では、総称してマス・ストレージ１０４として参照される。処理システム１００上で実行するためのオペレーティング・システム１２０は、マス・ストレージ１０４に格納されてよい。ネットワーク・アダプタ１０６は、バス１１３を外部ネットワーク１１６と相互接続し、データ処理システム１００が他のそのようなシステムと通信できるようにする。画面（例えば、表示モニタ）１１５は、ディスプレイ・アダプタ１１２によってシステム・バス１１３に接続され、ディスプレイ・アダプタ１１２は、グラフィックス重視のアプリケーションおよびビデオ・コントローラの性能を向上するために、グラフィックス・アダプタを含んでよい。一実施形態では、アダプタ１０７、１０６、および１１２は、１つまたは複数のＩ／Ｏバスに接続されてよく、Ｉ／Ｏバスは、中間バス・ブリッジ（図示されていない）を介してシステム・バス１１３に接続される。ハード・ディスク・コントローラ、ネットワーク・アダプタ、およびグラフィックス・アダプタなどの周辺機器を接続するのに適したＩ／Ｏバスは、通常、ＰＣＩ（Peripheral Component Interconnect）などの一般的なプロトコルを含む。ユーザ・インターフェイス・アダプタ１０８およびディスプレイ・アダプタ１１２を介してシステム・バス１１３に接続されているように、その他の入出力デバイスが示されている。キーボード１０９、マウス１１０、およびスピーカ１１１は、すべてユーザ・インターフェイス・アダプタ１０８を介してバス１１３に相互接続されており、例えばユーザ・インターフェイス・アダプタ１０８は、複数のデバイス・アダプタを１つの集積回路に統合するスーパーＩ／Ｏチップを含んでよい。
【００２０】
実施形態例では、処理システム１００は、グラフィックス・プロセッシング・ユニット１３０を含む。グラフィックス・プロセッシング・ユニット１３０は、ディスプレイへの出力を対象にしたフレーム・バッファ内の画像の作成を高速化するためにメモリを操作して変更するように設計された特殊な電子回路である。一般に、グラフィックス・プロセッシング・ユニット１３０は、コンピュータ・グラフィックスおよび画像処理の操作では非常に効率的であり、データの大きいブロックの処理が並列に実行されるアルゴリズムに関して汎用ＣＰＵよりも効果的にする高度な並列構造を有する。
【００２１】
したがって、図１で構成されているように、システム１００は、プロセッサ１０１の形態での処理能力と、システム・メモリ１１４およびマス・ストレージ１０４を含んでいるストレージ能力と、キーボード１０９およびマウス１１０などの入力手段と、スピーカ１１１およびディスプレイ１１５を含んでいる出力能力とを含む。一実施形態では、システム・メモリ１１４およびマス・ストレージ１０４の一部は、図１に示されたさまざまなコンポーネントの機能を調整するために、オペレーティング・システムを集合的に格納する。
【００２２】
ここで図２を参照すると、ハイブリッド・アーキテクチャの命令セットをテストするための実施形態のフロー図２００が示されている。ブロック２０２は、第１のベース・アーキテクチャ用の第１の命令定義テーブルを定義する。１つまたは複数の実施形態では、命令定義テーブルは、ベース・アーキテクチャから生成される。ベース・アーキテクチャは、ｓ／３９０アーキテクチャ、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ、または任意のその他のアーキテクチャに基づく命令セット用であることができる。ブロック２０４は、第２のベース・アーキテクチャ用の第２の命令定義テーブルを定義し、第１のアーキテクチャは、第２のベース・アーキテクチャとは異なっている。
【００２３】
フロー図２００のブロック２０６は、差分テーブルを定義することを含み、この差分テーブルは、アーキテクチャ固有の動作を定義する。動作の例は、ストレージに対するデータの書き込み方法および読み取り方法を含む動作に影響を与える可能性がある。差分テーブルを、動作中のシステムによって手動で定義することができ、差分テーブルは、ベース・アーキテクチャの特定の命令が、結果として得られたハイブリッド・アーキテクチャにおいてどのように動作するかを表す。１つまたは複数の実施形態では、ベース・アーキテクチャの命令を変更するために、少なくとも１つの差分テーブルが使用される。
【００２４】
ブロック２０８は、差分テーブルおよび第１の命令定義テーブルまたは第２の命令定義テーブルのうちの少なくとも１つに基づいてハイブリッド・アーキテクチャ・テーブルを生成する。ブロック２１０は、ハイブリッド・アーキテクチャ・テーブルに基づいてテストを実行し、ハイブリッド・アーキテクチャ・テーブルは、第１のベース・アーキテクチャと第２のベース・アーキテクチャの間で互換性のあるハイブリッド・アーキテクチャ用である。１つまたは複数の実施形態では、ハイブリッド・アーキテクチャは、第１のアーキテクチャと第２のアーキテクチャの間の互換モードで動作し、この互換モードはレガシー・アーキテクチャをサポートする。例えば、ｓ／３９０の互換モードは、レガシーｓ／３９０アーキテクチャの複数のプログラムが、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅにおいて動作できるようにする。ハイブリッド・アーキテクチャは、システムのシミュレーションをテストするためのフレームワークを提供する。
【００２５】
ここで図３を参照すると、ハイブリッド・アーキテクチャの命令セットをテストするためのフロー図３００が示されている。ブロック３０２は、第１の命令定義テーブルまたは第２の命令定義テーブルのうちの少なくとも１つから第１の命令を選択する。
【００２６】
ブロック３０４は、差分テーブル内の第１の命令を検索する。ブロック３０６は、差分テーブル内の第１の命令を見つけることに応答して、差分テーブルに従って命令を変更する。選択された第１の命令が差分テーブル内に存在する場合、命令が、ハイブリッド・アーキテクチャ・テーブルに保存される前に変更される。
【００２７】
ブロック３０８は、変更された命令をハイブリッド・アーキテクチャ・テーブルに追加する。一実施形態では、ハイブリッド・アーキテクチャは、差分テーブル内で見つかって変更された命令をハイブリッド・テーブルに追加することによって生成される。そうではなく、差分テーブル内に存在しない命令の場合、変更されない命令がハイブリッド・アーキテクチャ・テーブルに追加される。ブロック３１０は、差分テーブルにおいて、第１の命令定義テーブルまたは第２の命令定義テーブルのうちの少なくとも１つの次の命令の検索を繰り返すことを含む。１つまたは複数の実施形態では、差分テーブル内で検索されていない命令がベース・アーキテクチャ内に残らなくなるまで、ベース・アーキテクチャの各命令が差分テーブル内で行ごとに検索される。
【００２８】
ブロック３１２は、次の命令を検索することに応答して、ハイブリッド・アーキテクチャ・テーブルを更新する。差分テーブル内の各命令を検索した後に、命令が、差分テーブルに基づいて元の形態または変更された形態のどちらかで、ハイブリッド・テーブルに追加され、ハイブリッド・アーキテクチャをテストするための命令の最終的セットを形成する。
【００２９】
ここで図４を参照すると、ハイブリッド・アーキテクチャの命令セットをテストするためのブロック図４００が示されている。ｓ／３９０の命令セット４０２は第１のベース・アーキテクチャを表し、ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅの命令セット４０４は第２のベース・アーキテクチャを表す。差分テーブル４０６は、特定のアーキテクチャの動作がハイブリッド・アーキテクチャの下でどのように動作するかの記述を含む。ｓ／３９０互換命令セット４０８は、差分テーブル４０６および命令セット４０２、４０４を含んでいるテーブルに基づいて生成されたハイブリッド・アーキテクチャを表す。ｓ／３９０互換命令セット４０８は、テスト中に使用される。ハイブリッド命令セットが生成され、ｓ／３９０互換モードにおいてサポートされる命令の最終的セットを作成する。
【００３０】
ここで図５を参照すると、ハイブリッド・アーキテクチャの命令セットをテストするためのブロック図５００が示されている。図４に類似している図５は、第１の命令セット５０２および第２の命令セット５０４を提供し、第１の命令セットはｓ／３９０アーキテクチャ用であり、第２の命令セットはｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ用である。差分テーブル５０６は、アーキテクチャ固有の動作がハイブリッド・アーキテクチャにおいてどのように変更されるかを表す命令を含む。ハイブリッド命令セット５０８は、差分テーブル５０６およびベース・アーキテクチャ５０２、５０４に基づいて得られる複数のハイブリッド命令セットを示している。ハイブリッド・アーキテクチャの命令は、システムの互換モードをテストするために使用される。
【００３１】
ここで図６を参照すると、ハイブリッド・アーキテクチャの命令セットをテストするためのブロック図６００が示されている。アーキテクチャ定義テーブルＡ６０２は、ベース・アーキテクチャＡを表す。アーキテクチャ定義テーブルＡ６０２は、複数の命令を含む。それらの命令は、加算命令であるＡＤＤ１命令および減算命令であるＳＵＢ１命令をそれぞれ含む。アーキテクチャ定義テーブルＢ６０４は、ベース・アーキテクチャＢを表す。アーキテクチャ定義テーブルＢ６０４は、ＡＤＤ２およびＳＵＢ２を含む、複数の命令を含む。各ベース・アーキテクチャは、これらの命令を別々に定義する。例えば、１つのベース・アーキテクチャが３２ビット数値を加算／減算してよく、他のベース・アーキテクチャが６４ビット数値を加算／減算する。
【００３２】
ブロック図６００は、差分テーブル６０６を示している。差分テーブルは、ベース・アーキテクチャに基づいて手動で生成される。別の実施形態では、複数の差分テーブルが使用され得る。差分テーブルは、ベース・テーブルの命令がハイブリッド・アーキテクチャにおいてどのように変更されるかを表す。１つまたは複数の実施形態では、差分テーブルは、識別された命令を、ハイブリッド・アーキテクチャ・テーブルに追加する前に変更するために使用される。１つの例では、差分テーブル６０６は、ＡＤＤ命令がベース・アーキテクチャ定義テーブルＡ６０２によって定義されたとおりに使用されなければならず、ＳＵＢ命令がベース・アーキテクチャ定義テーブルＢ６０４によって定義されたとおりに使用されなければならないということを定義する。
【００３３】
ハイブリッド・アーキテクチャ・テーブル６０８は、ベース・アーキテクチャ定義テーブル６０２、６０４、および差分テーブル６０６に基づいて追加されている命令を含む。１つの例では、ベース・アーキテクチャＡが選択された場合、テーブルＢから減算を追加することによって、ハイブリッド・テーブルが生成される。同様に、ベース・アーキテクチャＢが使用される場合、ＡＤＤ命令がテーブルＡからハイブリッド・テーブルに追加される。ベース・アーキテクチャ定義テーブルおよび差分テーブルの両方に基づいて、ハイブリッド・アーキテクチャ・テーブルが生成される。
【００３４】
ここで図７を参照すると、フロー図７００が示されている。ベース・アーキテクチャごとに各アーキテクチャ定義テーブル（ベース・テーブル）が生成され、差分テーブルが定義された後に、ブロック７０２に示されているように、ベース・テーブルから命令が選択される。ブロック７０４は、選択された命令を差分テーブル内で検索し、判定ブロック７０６は、選択された命令が差分テーブル内で見つかったかどうかを判定する。見つかった場合、ブロック７０８は、ベース・テーブルから選択された命令を変更する。選択された命令が変更された後に、変更された命令がハイブリッド・テーブルに保存される。１つまたは複数の実施形態では、命令は、命令の「ｉｔｅｘｔ」フィールドを再定義することと、命令が影響を受ける例外のタイプを再定義することと、命令を構築およびシミュレートするためのエントリ・ポインタを再定義することとによって変更されてよい。見つからなかった場合、ブロック７１０は、選択された命令をハイブリッド・テーブルに保存する。１つまたは複数の実施形態では、命令が、テスト中に非ハイブリッド・アーキテクチャの下で実行されることになっている場合、ベース・テーブルからの命令が使用され、差分定義は、非ハイブリッド・アーキテクチャにおいて実行される命令に対して影響を与えない。ブロック７１２は、ベース・テーブルの命令がすべて使用されて、ベース・テーブルの各命令が差分テーブル内で検索されるまで、プロセスが継続することを可能にする。
【００３５】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読記憶媒体を含んでよい。
【００３６】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読記憶媒体のさらに具体的な例の非網羅的リストは、ポータブル・フロッピー・ディスク、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピー・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含む。本明細書において使用されているコンピュータ可読記憶媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波（例えば、光ファイバ・ケーブルを通過する光パルス）、あるいはワイヤを介して送信される電気信号などの一時的信号であると解釈されるべきではない。
【００３７】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から各コンピューティング・デバイス／処理デバイスへ、またはネットワーク（例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ）を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えてよい。各コンピューティング・デバイス／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス／処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
【００３８】
本発明の処理を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいは、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む１つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードのいずれかであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ）を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、（例えば、インターネット・サービス・プロバイダを使用してインターネットを介して）外部コンピュータに対して行われてよい。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブル・ロジック・アレイ（ＰＬＡ）を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行してよい。
【００３９】
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
【００４０】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作を実施する手段を作り出すように、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読記憶媒体がフローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読記憶媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組み合わせに特定の方式で機能するように指示できるものであってもよい。
【００４１】
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指定される機能／動作を実施するように、コンピュータ実装プロセスを生成すべく、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれ、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で一連の動作可能なステップを実行させるものであってもよい。
【００４２】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および処理を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための１つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された２つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
【図１】
2019537090.tif 000003
【図２】
2019537090.tif 000004
【図３】
2019537090.tif 000005
【図４】
2019537090.tif 000006
【図５】
2019537090.tif 000007
【図６】
2019537090.tif 000008
【図７】
2019537090.tif 000009
【手続補正書】
【提出日】令和1年5月16日(2019.5.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ハイブリッド・アーキテクチャの命令セットをテストするためのコンピュータ実装方法であって、
第１のベース・アーキテクチャ用の第１の命令定義テーブルを定義することと、
第２のベース・アーキテクチャ用の第２の命令定義テーブルを定義することであって、前記第１のベース・アーキテクチャが、前記第２のベース・アーキテクチャとは異なっている、前記定義することと、
差分テーブルを定義することと、
前記差分テーブルに基づいてハイブリッド・アーキテクチャ・テーブルを生成することと、
前記ハイブリッド・アーキテクチャ・テーブルに基づいてテストを実行することと
を含んでいる、コンピュータ実装方法。
【請求項２】
前記ハイブリッド・アーキテクチャ・テーブルを前記生成することが、
前記第１の命令定義テーブルまたは前記第２の命令定義テーブルのうちの少なくとも１つから第１の命令を選択することと、
前記差分テーブル内の前記第１の命令を検索することと、
前記差分テーブル内の前記第１の命令を見つけることに応答して、前記差分テーブルに従って前記命令を変更することと、
前記変更された命令を前記ハイブリッド・アーキテクチャ・テーブルに追加することと、
前記差分テーブルにおいて、前記第１の命令定義テーブルまたは前記第２の命令定義テーブルのうちの少なくとも１つの次の命令を検索することと、
前記次の命令を検索することに応答して、前記ハイブリッド・アーキテクチャ・テーブルを更新することと
を含んでいる、請求項１に記載の方法。
【請求項３】
前記第１の命令が前記差分テーブルに存在しない場合に、前記第１の命令を前記ハイブリッド・アーキテクチャ・テーブルに追加する、請求項２に記載の方法。
【請求項４】
前記差分テーブルが複数の命令を含んでいる、請求項１に記載の方法。
【請求項５】
前記第１のアーキテクチャがｓ／３９０アーキテクチャであり、前記第２のアーキテクチャがｚ／Ａｒｃｈｉｔｅｃｔｕｒｅである、請求項１に記載の方法。
【請求項６】
非ハイブリッド・アーキテクチャのテストをシミュレートする場合に、前記第１のアーキテクチャ定義テーブルまたは前記第２のアーキテクチャ定義テーブルのうちの少なくとも１つからの命令を使用し、そうでない場合、前記ハイブリッド・アーキテクチャ・テーブルに基づいて前記テストを実行する、請求項１に記載の方法。
【請求項７】
複数のアーキテクチャ定義テーブルおよび複数の差分テーブルが前記ハイブリッド・アーキテクチャ・テーブルの生成に使用される、請求項１に記載の方法。
【請求項８】
ハイブリッド・アーキテクチャの命令セットをテストするためのプログラムであって、
プロセッサに、
第１のベース・アーキテクチャ用の第１の命令定義テーブルを定義することと、
第２のベース・アーキテクチャ用の第２の命令定義テーブルを定義することであって、前記第１のベース・アーキテクチャが、前記第２のベース・アーキテクチャとは異なっている、前記定義することと、
差分テーブルを定義することと、
前記差分テーブルに基づいてハイブリッド・アーキテクチャ・テーブルを生成することと、
前記ハイブリッド・アーキテクチャ・テーブルに基づいてテストを実行することと
を実行させるためのプログラム。
【請求項９】
ハイブリッド・アーキテクチャの命令セットをテストするためのシステムであって、
プロセッサに接続されているストレージ媒体を備えており、
前記プロセッサが、
第１のベース・アーキテクチャ用の第１の命令定義テーブルを定義することと、
第２のベース・アーキテクチャ用の第２の命令定義テーブルを定義することであって、前記第１のベース・アーキテクチャが、前記第２のベース・アーキテクチャとは異なっている、前記定義することと、
差分テーブルを定義することと、
前記差分テーブルに基づいてハイブリッド・アーキテクチャ・テーブルを生成することと、
前記ハイブリッド・アーキテクチャ・テーブルに基づいてテストを実行することと
を実行するように構成されている、システム。
【国際調査報告】
2019537090.tif 000010
2019537090.tif 000011