(57)【特許請求の範囲】
【請求項１】
複数のメモリポートを有するとともに複数のデータを記憶し、前記メモリポートを介して前記データへのアクセスが行われる記憶手段と、
前記記憶手段に対して複数のアクセスを一括で行うリスト命令が同一の前記ポートへの複数のメモリアクセスリクエストを発行するものである場合に、当該複数のアクセスリクエストを一つのメモリアクセスリクエストに圧縮して前記記憶手段に当該ポートを介して発行するメモリリクエスト制御手段と、
前記複数のメモリポートと一対一対応に設けられ、前記リスト命令が発行され、かつ、対応する前記ポートに前記メモリアクセスリクエストが前記メモリリクエスト制御手段から発行された場合に、該メモリアクセスリクエストの数を計数する複数のカウンタ手段と、
前記複数のカウンタ手段の内容と該カウンタ手段のソフトウェアシミュレーションの結果とを比較し、リスト命令に係わる障害の有無を判断する制御手段と
を含む情報処理装置。
【請求項２】
前記複数のカウンタ手段の内容を連結して一つの計数値として記憶するレジスタ手段
を含むことを特徴とする請求項１記載の情報処理装置。
【請求項３】
複数のメモリポートを有するとともに複数のデータを記憶し、前記メモリポートを介して前記データへのアクセスが行われる記憶手段を備えた情報処理装置において、
前記記憶手段に対して複数のアクセスを一括で行うリスト命令が、同一の前記ポートへの複数のメモリアクセスリクエストを発行するものである場合に、当該複数のアクセスリクエストを一つのメモリアクセスリクエストに圧縮して前記記憶手段に当該ポートを介して発行するメモリリクエスト制御ステップと、
前記リスト命令が発行され、かつ、前記ポートに前記メモリアクセスリクエストが前記メモリリクエスト制御ステップで発行された場合に、該メモリアクセスリクエストの数を前記ポート毎に計数する計数ステップと、
前記計数ステップでの計数結果と該計数ステップのソフトウェアシミュレーションの結果とを比較し、リスト命令に係わる障害の有無を判断する判断ステップと
を含むことを特徴とするリスト命令の検証方法。
【請求項４】
前記ポート毎に計数された計数値を一つに連結してレジスタ手段に記憶する記憶ステップを含むことを特徴とする請求項３記載のリスト命令の検証方法。
【請求項５】
複数のメモリポートを有するとともに複数のデータを記憶し、前記メモリポートを介して前記データへのアクセスが行われる記憶手段を備えた情報処理装置において、
前記記憶手段に対して複数のアクセスを一括で行うリスト命令が、同一の前記ポートへの複数のメモリアクセスリクエストを発行するものである場合に、当該複数のアクセスリクエストを一つのメモリアクセスリクエストに圧縮して前記記憶手段に当該ポートを介して発行するメモリリクエスト制御処理と、
前記リスト命令が発行され、かつ、前記ポートに前記メモリアクセスリクエストが前記メモリリクエスト制御処理で発行された場合に、該メモリアクセスリクエストの数を前記ポート毎に計数する計数処理と、
前記計数処理での計数結果と該計数処理のソフトウェアシミュレーションの結果とを比較し、リスト命令に係わる障害の有無を判断する判断処理と
をコンピュータに実行
させることを特徴とするリスト命令の検証のためのプログラム。
【請求項６】
前記ポート毎に計数された計数値を一つに連結してレジスタ手段に記憶する記憶処理を前記コンピュータに実行させることを特徴とする請求項５記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のメモリアクセスを一括で行うリスト命令の検証機能を有する情報処理装置、リスト命令の検証方法、及びリスト命令の検証のためのプログラム
【背景技術】
【０００２】
情報処理装置を構成する記憶手段へのアクセス方法については、様々な高速化や効率化の技術が提案されている。
【０００３】
例えば、特許文献１には、複数の演算装置と複数の記憶装置とで構成される情報処理装置において、１つの記憶装置の同一アドレスへのアクセスリクエストが複数発行された場合、該複数のリクエストを１つのリクエストに圧縮する技術の一例が記載されている。
【０００４】
特許文献１に記載されたリクエストの圧縮に関する技術は、複数の演算装置から同一の主記憶アドレスへのリクエストが複数発行された場合、該複数のリクエストを１つのリクエストに圧縮する機能と、圧縮されたリクエストに対する記憶装置からのリプライデータを上記圧縮対象の複数演算装置に向けて展開して送出する機能とを有する。
【０００５】
また、一括で複数の命令を発行し処理する情報処理装置として、例えば、ベクトル型コンピュータがあるが、このベクトル型コンピュータは、一般的に、リスト命令と呼ばれる複数のメモリアクセスを一括で行う命令を備えている。
【０００６】
このリスト命令には、メモリから複数のデータを一括で読み出すギャザー命令と、メモリへ複数のデータを一括で書き込むスキャタ命令の２種類が存在する。
【０００７】
これら２つの命令は、複数のベクトル要素毎にアクセスするメモリのアドレスを指定するので、同じメモリアドレスが複数指定された場合は、複数のメモリアクセスリクエストが同じアドレスに対して発生することになる。そのため、メモリのアクセス処理で競合が発生してしまい、コンピュータシステム全体としての性能低下につながる。
【０００８】
そこで、同一のアドレスに対し複数のメモリアクセスリクエストが発生する場合は、それらの複数のリクエストを１つのリクエストに圧縮して処理を行う高速化の機能をコンピュータシステムに加える場合が多い。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平９−４４４５９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
前述した特許文献１に記載された技術、及び、前述のベクトル型コンピュータのメモリアクセスリクエスト圧縮の技術は、これらの圧縮処理が正しく行われたかどうかをテストプログラムで検証することが困難であるという問題点がある。
【００１１】
その理由は、当該圧縮処理が行われていなくても、実行結果では判断できない場合があるためである。
【００１２】
例えば、前述のベクトル型コンピュータのギャザー命令で、同一のアドレスに対し複数のメモリアクセスリクエストが発生した例では、圧縮無しの場合、メモリアクセス処理で競合が発生し、該複数のリクエストが順番に処理されることになり、リプライデータはそれぞれのリクエストに対し、同じものが１つずつ返ってくる。
【００１３】
次に、該複数のメモリアクセスリクエストを１つのリクエストに圧縮した場合、リプライデータは１つであるが、該複数のメモリアクセスリクエストに対して複製されて返されるため、実行結果は、該複数のメモリアクセスリクエストに、同じリプライデータが１つずつ返されることになる。
【００１４】
そのため、実行結果が圧縮無しの場合と同じになり、実行結果を見ただけでは、圧縮処理が行われた否かを検知することができない。
【００１５】
本発明の目的は、上述した問題点を解決できるリスト命令の検証機能を有する情報処理装置、リスト命令の検証方法、及びリスト命令の検証のためのプログラムを提供することにある。
【課題を解決するための手段】
【００１６】
本発明の情報処理装置は、複数のメモリポートを有するとともに複数のデータを記憶し、前記メモリポートを介して前記データへのアクセスが行われる記憶手段と、
前記記憶手段に対して複数のアクセスを一括で行うリスト命令が同一の前記ポートへの複数のメモリアクセスリクエストを発行するものである場合に、当該複数のアクセスリクエストを一つのメモリアクセスリクエストに圧縮して前記記憶手段に当該ポートを介して発行するメモリリクエスト制御手段と、
前記複数のメモリポートと一対一対応に設けられ、前記リスト命令が発行され、かつ、対応する前記ポートに前記メモリアクセスリクエストが前記メモリリクエスト制御手段から発行された場合に、該メモリアクセスリクエストの数を計数する複数のカウンタ手段と
から構成される。
【００１７】
本発明のリスト命令の検証方法は、  複数のメモリポートを有するとともに複数のデータを記憶し、前記メモリポートを介して前記データへのアクセスが行われる記憶手段を備えた情報処理装置において、
前記記憶手段に対して複数のアクセスを一括で行うリスト命令が、同一の前記ポートへの複数のメモリアクセスリクエストを発行するものである場合に、当該複数のアクセスリクエストを一つのメモリアクセスリクエストに圧縮して前記記憶手段に当該ポートを介して発行し、
前記リスト命令が発行され、かつ、前記ポートに前記メモリアクセスリクエストが前記メモリリクエスト制御ステップで発行された場合に、該メモリアクセスリクエストの数を前記ポート毎に計数する。
【００１８】
本発明のリスト命令の検証のためのプログラムは、
複数のメモリポートを有するとともに複数のデータを記憶し、前記メモリポートを介して前記データへのアクセスが行われる記憶手段を備えた情報処理装置において、
前記記憶手段に対して複数のアクセスを一括で行うリスト命令が、同一の前記ポートへの複数のメモリアクセスリクエストを発行するものである場合に、当該複数のアクセスリクエストを一つのメモリアクセスリクエストに圧縮して前記記憶手段に当該ポートを介して発行するメモリリクエスト制御処理と、
前記リスト命令が発行され、かつ、前記ポートに前記メモリアクセスリクエストが前記メモリリクエスト制御処理で発行された場合に、該メモリアクセスリクエストの数を前記ポート毎に計数する計数処理と
をコンピュータに実行させる。
【発明の効果】
【００１９】
本発明には、リスト命令におけるメモリアクセスリクエストの圧縮処理が正しく行われたかどうかを検証することができるという効果がある。
【図面の簡単な説明】
【００２０】
【図１】図１は、一括で複数の命令を発行し処理する情報処理装置の一般的な構成を示すブロック図である。
【図２】図２は、ギャザー命令処理時の一般的なメモリアクセス動作の一例を示す模式図である。
【図３】図３は、本発明の実施形態の構成を示すブロック図である。
【図４】図４は、本発明の実施形態におけるリスト命令リクエスト数カウンタ部の構成を示すブロック図である。
【図５】図５は、本発明の実施形態におけるテストプログラムの動作を示すフローチャートである。
【図６】図６は、本発明の実施形態におけるメモリリクエスト制御部の動作の一例を示す模式図である。
【図７】図７は、本発明の実施形態におけるリスト命令リクエスト数カウンタ値移送命令の構成を示す図である。
【発明を実施するための形態】
【００２１】
前述した一括で複数の命令を発行し処理する情報処理装置（例えば、ベクトル型コンピュータ）が一般的に備えているリスト命令の一つであるギャザー命令のメモリアクセスリクエスト数の圧縮処理動作の一例について、図１及び図２を参照して説明する。
【００２２】
図１は、一括で複数の命令を発行し処理する情報処理装置１０の構成を示すブロック図である。
図１を参照すると、情報処理装置１０は制御手段２０と記憶手段３０とを備える。なお、図１は、情報処理装置１０の全体構成のうち、本説明に関連する構成要素のみを示している。
【００２３】
制御手段２０は、メモリリクエスト制御部２１と、ベクトルレジスタ２２とを備える。
【００２４】
記憶手段３０は、データ記憶域３１を備える。
【００２５】
そして、制御手段２０から記憶手段３０をアクセスするための８個のポート（ポート０からポート７）があり、それぞれのポートからデータ記憶域３１の特定の記憶領域のデータにアクセスすることができる。
【００２６】
図２はメモリリクエスト制御部２１におけるギャザー命令処理時のメモリアクセス動作の一例を示す模式図である。
【００２７】
ギャザー命令は、ベクトル要素毎に指定した複数のアドレスの記憶領域からデータを読み出し、一括でベクトルレジスタ２２へ格納する命令である。
【００２８】
まず、メモリアクセスリクエスト数の圧縮が無い場合を図２の（Ａ）に示す例で説明する。
【００２９】
図２の（Ａ）に示す例を参照すると、ベクトル要素０のアクセスアドレスは「アドレスＡ」である。以下同様に、ベクトル要素１のアクセスアドレスは「アドレスＢ」、ベクトル要素２のアクセスアドレスは「アドレスＣ」となり、最後のベクトル要素７のアクセスアドレスは「アドレスＨ」となる。つまり、ベクトル要素０からベクトル要素７に対応するメモリアクセスリクエストは、それぞれ１つずつの合計８個が発行される。
【００３０】
このとき、メモリリクエスト制御部２１が、どのメモリアクセスリクエストをどのメモリポートに対して発行するかは、ベクトル要素０からベクトル要素７のそれぞれのアクセスアドレスに依存する。
【００３１】
図２の（Ａ）に示す例では、「アドレスＡ」はメモリポート０からアクセスする記憶領域に存在することを示す。以下同様に、「アドレスＢ」はメモリポート１からアクセスする記憶領域に存在することを示し、「アドレスＣ」はメモリポート１からアクセスする記憶領域に存在することを示し、最後の「アドレスＨ」はメモリポート７からアクセスする記憶領域に存在することを示している。つまり、図２の（Ａ）の場合は、メモリリクエスト制御部２１は、メモリポート０と、メモリポート３と、メモリポート４と、メモリポート５とに、それぞれ１個、そして、メモリポート１と、メモリポート７にそれぞれ２個の、合計８個のメモリアクセスリクエストを発行する。
【００３２】
これらの、各メモリポートに発行されたメモリアクセスリクエストに対して、各メモリポートに各メモリアクセスリクエストで要求されたデータがリプライデータとしてデータ記憶域３１から返ってくる。メモリリクエスト制御部２１は、これらリプライデータを該当のベクトルレジスタへ格納する。
【００３３】
次に、メモリアクセスリクエスト数の圧縮がある場合を図２の（Ｂ）に示す例で説明する。
【００３４】
ギャザー命令では、ベクトルの要素毎にアクセスするメモリアドレスを指定するが、複数のベクトル要素で同一のメモリアドレスが指定される場合、メモリリクエスト制御部２１は、その複数のベクトル要素のうちで要素番号の大きい方のベクトル要素のリクエストを代表して採用（リクエストの圧縮）して処理を行う。
【００３５】
図２の（Ｂ）の例は、ベクトル要素０からベクトル要素３のアクセスアドレスが「アドレスＡ」で全て一致し、さらにベクトル要素４からベクトル要素７のアクセスアドレスが「アドレスＥ」で全て一致するというケースである。この場合は、メモリリクエスト制御部２１は、ベクトル要素３の「アドレスＡ」へのメモリアクセスリクエストとおよびベクトル要素７の「アドレスＥ」へのメモリアクセスリクエストを代表して採用する。そして、メモリリクエスト制御部２１は、それぞれのアドレスに対応するメモリポート０およびメモリポート４へメモリアクセスリクエストを発行する。つまり、メモリリクエスト制御部２１は、ベクトル要素０からベクトル要素７の８個のメモリアクセスリクエストを、ベクトル要素３およびベクトル要素７の２個のリクエストに圧縮する。すなわち、リクエストの数が８個から２個に削減される。
【００３６】
そして、各メモリポートにリプライデータが返ってくると、メモリリクエスト制御部２１は、保存しておいた圧縮情報から、返ってきたリプライデータＡをベクトル要素０からベクトル要素３のためのベクトルレジスタに、また、リプライデータＥをベクトル要素４からベクトル要素７のためのベクトルレジスタへそれぞれ格納する。
【００３７】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００３８】
図３は、本発明の実施形態を示すブロック図である。
図３を参照すると、情報処理装置１００は制御手段２００と記憶手段３００とを備える。なお、図３は、情報処理装置１００の全体構成のうち、本発明に関連する構成要素のみを示している。
【００３９】
制御手段２００は、メモリリクエスト制御部２１０と、ベクトルレジスタ２２０と、ソフトウェアビジブルレジスタ２３０とを備える。
【００４０】
記憶手段３００は、データ記憶域３１０と、ソフトウェアシミュレータ実行結果記憶域３２０とを備える。
【００４１】
そして、制御手段２００から記憶手段３００をアクセスするためのポートとして、８個のポート（ポート０からポート７）があり、それぞれのポートからデータ記憶域３１０の特定の記憶領域のデータにアクセスすることができる。
【００４２】
次に、制御手段２００の構成及び動作について簡単に説明する。
【００４３】
ソフトウェアビジブルレジスタ２３０は、プログラムから値を参照することのできるレジスタで、複数存在する。
【００４４】
ベクトルレジスタ２２０は、一般的に使用されるレジスタで、通常、プログラムが動作する場合は、ここにアドレスやデータが格納される。
【００４５】
制御手段２００は、リスト命令リクエスト数カウンタ値移送命令で、後述するメモリリクエスト制御部２１０内に設けられたリスト命令リクエスト数カウンタブロック２１１の値を、ソフトウェアビジブルレジスタ２３０に移送する。
【００４６】
リスト命令リクエスト数カウンタ値移送命令の構成を図７に示す。
図７を参照すると、リスト命令リクエスト数カウンタ値移送命令は、「オペコード」と、「ＭＯＤＥ」と、「ＲＥＧ」から構成される。「オペコード」は、メモリリクエスト制御部２１０に対し、リスト命令リクエスト数カウンタ値移送命令の実行を指示するコードである。「ＭＯＤＥ」は、リスト命令リクエスト数カウンタブロック２１１とソフトウェアビジブルレジスタ２３０との間のデータの移送方向を示す。「ＭＯＤＥ」の値が「０」の場合は、リスト命令リクエスト数カウンタブロック２１１からソフトウェアビジブルレジスタ２３０へデータを移送する。「ＭＯＤＥ」の値が「１」の場合は、逆に、ソフトウェアビジブルレジスタ２３０からリスト命令リクエスト数カウンタブロック２１１へデータを移送する。「ＲＥＧ」は、複数あるソフトウェアビジブルレジスタ２３０の１つを識別する番号を表す。
【００４７】
メモリリクエスト制御部２１０は、リスト命令リクエスト数カウンタブロック２１１を備える。そして、メモリリクエスト制御部２１０は、プログラムが発行したメモリリクエストの命令が、リスト命令かどうかの判断を行い、リスト命令の場合には、リクエスト数の圧縮が可能であれば圧縮処理を行い、リスト命令リクエスト数カウンタブロック２１１のカウントアップ処理を行う。
【００４８】
図４は、リスト命令リクエスト数カウンタブロック２１１内の各ポート対応に設けられるリスト命令リクエスト数カウンタ部２１１−０の構成を示す。すなわち、リスト命令リクエスト数カウンタブロック２１１は、メモリリクエスト制御部２１０のメモリポート対応に８個の上記リスト命令リクエスト数カウンタ部２１１−０を有する。
【００４９】
図４を参照すると、リスト命令リクエスト数カウンタ部２１１−０は、アンドゲート２１１−１と、セレクタ２１１−２と、８ビットのリスト命令リクエストカウンタ２１１−３と、＋１加算器２１１−４とを備える。
【００５０】
次に、リスト命令リクエスト数カウンタ部２１１−０の構成及び動作について簡単に説明する。
【００５１】
まず、リスト命令リクエスト数カウンタ部２１１−０は、メモリリクエスト制御部２１０からメモリリクエスト命令の情報を受信する。ここで、アンドゲート２１１−１の入力Ｖはメモリリクエスト命令が有効か否かを表し、取りうる値は「１」が有効、「０」が無効である。また、入力Ｌはメモリリクエスト命令がリスト命令か否かを表し、取りうる値は「１」がリスト命令、「０」がリスト命令以外である。
【００５２】
そして、リスト命令リクエスト数カウンタ部２１１−０は、アンドゲート２１１−１の入力Ｖが「１」（メモリリクエスト命令が有効）であり、かつ、Ｌが「１」（リスト命令である）の場合、つまり、メモリリクエスト命令が有効でリスト命令の場合のみ、出力が「１」になる。したがって、セレクタ２１１−２は、＋１加算器２１１−４の出力（すなわち、そのときのカウンタ２１１−３の値に１を加算した値）を選択し、リスト命令リクエスト数カウンタ２１１−３に格納する。結果として、リスト命令リクエスト数カウンタ２１１−１の値に１が加算されることになる。
【００５３】
次に、記憶手段３００の構成及び動作について簡単に説明する。
【００５４】
ソフトウェアシミュレータ実行結果記憶域３２０は、ソフトウェアシミュレータが実行したリスト命令リクエスト数のシミュレーション結果を保持しておくための記憶域である。この記憶域に記憶された値をプログラムが読み出し、ソフトウェアビジブルレジスタ２３０に格納されたリスト命令リクエスト数カウンタブロックの値との比較を行う。
【００５５】
データ記憶域３１０は、通常のデータを保持しておくための記憶域であり、プログラムが発行したメモリリクエスト命令が、指定したアドレスに対応したメモリポートを通じて、データの読み書きを行う。
【００５６】
以上のように構成された情報処理装置１００の動作について、図５のフローチャートと、図６の模式図を参照して説明する。
【００５７】
図５は、本発明の実施形態でのテストプログラムの動作の概要を示すフローチャートである。
【００５８】
また、図６は、メモリリクエスト制御部２１０の、上述のテストプログラム実行時のメモリアクセス動作の一例を示す模式図である。
【００５９】
なお、図６の例は、図２のギャザー命令処理時のメモリアクセス動作の例と同じ条件を使用している。すなわち、複数のベクトル要素で同一のメモリアドレスへのアクセスが指定される場合、メモリリクエスト制御部２１０は、ベクトルの要素番号の大きい方のベクトル要素のリクエストを代表して採用（リクエストの圧縮）して処理を行う。
【００６０】
図２の例では、ベクトル要素０からベクトル要素３のアクセスアドレスが「アドレスＡ」で全て一致し、さらにベクトル要素４からベクトル要素７のアクセスアドレスが「アドレスＥ」で全て一致するケースで、この場合、メモリリクエスト制御部２１０は、ベクトル要素０からベクトル要素７の８個のメモリアクセスリクエストを、ベクトル要素３およびベクトル要素７の２個のリクエストに圧縮し、それによりリクエストの数が８個から２個に削減される。
【００６１】
そして、各メモリポートにリプライデータが返ってくると、メモリリクエスト制御部２１０は、保存しておいた圧縮情報から、返ってきたリプライデータＡをベクトル要素０からベクトル要素３のためのベクトルレジスタへ、また、リプライデータＥをベクトル要素４からベクトル要素７のためのベクトルレジスタへそれぞれ格納する。
【００６２】
図５に示すように、まず、テストプログラムは試験命令列を生成する（ステップＳ１０１）。
【００６３】
次に、テストプログラムはこの試験命令列を制御手段２００上で実行する（ステップＳ１０２）。
【００６４】
この試験命令列には、メモリアクセスリクエストの圧縮が可能なリスト命令も含まれる。今、そのようなリスト命令の一つであるギャザー命令が実行される場合について図６を用いて説明する。
【００６５】
図６を参照すると、当該ギャザー命令では、ベクトル要素０からベクトル要素３のアクセスアドレスＡが全て一致し、ベクトル要素４からベクトル要素７のアクセスアドレスＥが全て一致すると、上述したように、メモリアクセスリクエストの圧縮が行われ、メモリリクエスト制御部２１０はベクトル要素３およびベクトル要素７の２個のアクセスリクエストのみを発行する。これらのリクエストは、それぞれメモリポート０およびメモリポート４へ発行される。
【００６６】
このとき、メモリリクエスト制御部２１０は、リクエストを発行したメモリポート０およびメモリポート４に対応したリスト命令リクエスト数カウンタ部２１１−０の値を＋１カウントアップする。他のメモリポートに対応したリスト命令リクエスト数カウンタ部２１１−０の値は、初期値の“０”のままとなる。
【００６７】
具体的には、メモリポート０および４のそれぞれに対応したリスト命令リクエスト数カウンタ部２１１−０（図４参照）のアンドゲート２１１−１の一方の入力にメモリリクエスト有効ビットＶが「１」である信号が、また、他方の入力にリスト命令ビットＬが「１」（リスト命令であることを示す。）である信号が制御部２１０からそれぞれ送られ、その結果、８ビットのカウンタ２１１−３の内容が初期値「０」から「１」にカウントアップされる。
一方、他のポートに対応したリスト命令リクエスト数カウンタ部２１１−０内のアンドゲート２１１−１の一方の入力にはメモリリクエスト有効ビットＶが「０」の信号が制御部２１０から送られるため、カウントアップ動作は行われない。
【００６８】
ここで、仮に、故障や設計ミスにより、メモリリクエストの圧縮が行われない場合、メモリポート０にアクセスアドレスＡに対する３個のメモリリクエストが送信されることになり、そのため、カウンタ２１１−３が＋３カウントアップされ、その内容が「３」となるため、後述するソフトウェアシミュレーションの結果と一致しなくなり、異常が発見できる。
【００６９】
正常にメモリリクエストの圧縮が行われた場合には、その後、メモリリクエスト制御部２１０は、メモリポート０に返ってきたリプライデータＡをベクトル要素０からベクトル要素３のためのベクトルレジスタへ、また、メモリポート４に返ってきたリプライデータＥをベクトル要素４からベクトル要素７ためのベクトルレジスタにそれぞれ格納する。
【００７０】
ステップＳ１０２において試験命令列の実行を終了すると、テストプログラムは、試験命令列に複数のメモリアクセスを一括で行うリスト命令が含まれているかどうかを判断する（ステップＳ１０３）。
【００７１】
リスト命令が含まれている場合は、ステップＳ１０５へ進む。
【００７２】
ステップＳ１０５では、テストプログラムは、前述のリスト命令リクエスト数カウンタ値移送命令（図７を参照して説明した）を用いて、リスト命令リクエスト数カウンタブロック２１１に格納されている値をソフトウェアビジブルレジスタ２３０に移送する。ここでは、テストプログラムは、８ポート分のリスト命令リクエスト数カウンタ部２１１−０内のカウンタ２１１−３の値をメモリポート０からメモリポート７へとつなげて６４ビットの値とし、これをリスト命令リクエスト数カウンタ値移送命令の「ＲＥＧ」により指定される一つの６４ビットのソフトウェアビジブルレジスタに格納する。
例えば、試験命令列中に図６で説明した一つのギャザー命令のみがリスト命令として含まれていたとすると、「０１０００００００１００００００」（ビット単位で記載すると長くなるので、ここでは便宜上１６進数で表記する。）という値がソフトウェアビジブルレジスタ２３０に移送されることになる。
もし、上述したようにメモリアクセスリクエストの圧縮が正常に行われず、メモリポート０に３個のリクエストが発行されたとすると「０３０００００００１００００００」（１６進表記）という値がソフトウェアビジブルレジスタ２３０に移送されることになる。
【００７３】
次にテストプログラムは、試験命令列のソフトウェアシミュレーションを実施する（ステップＳ１０６）。この時、テストプログラムは、通常の試験命令列のソフトウェアシミュレーションに加えて、リスト命令リクエスト数カウンタブロック２１１の動作（リスト命令リクエスト数カウンタ２１１−３の動作等）のソフトウェアシミュレーションも実施し、結果をソフトウェアシミュレータ実行結果記憶域３２０に保存する（図６の例では「０１０００００００１００００００」（１６進数）となる）。
【００７４】
次にテストプログラムは、ステップＳ１０６で保存したリスト命令リクエスト数カウンタブロックのソフトウェアシミュレーション結果を読み出す（ステップＳ１０７）・そして、テストプログラムは、その読み出されたシミュレーション結果の値と、試験命令列中のリスト命令（ここでは図６のギャザー命令）の実際のハードウェアでの実行結果が保存されているソフトウェアビジブルレジスタ２３０の値との比較を行う（ステップ１０８）。これら両者の値が一致すれば、正常であり、一致しなければメモリアクセスリクエストの圧縮が正常に行われなかったことがわかる。
【００７５】
なお、ステップＳ１０３で、試験命令列にリスト命令が含まれていない場合は、テストプログラムは、リスト命令リクエスト数カウンタブロック２１１の動作のソフトウェアシミュレーションを含まない通常の試験命令列のソフトウェアシミュレーションを実施する（ステップＳ１０４）。
【００７６】
以上のようにして情報処理装置１００はテストプログラムの実行を終了する。
【００７７】
上述したように、本実施形態には、リスト命令におけるメモリアクセスリクエストの圧縮処理が正しく行われたかどうかを検証することできるという効果がある。
【００７８】
その理由は、実際のハードウェア上において、リスト命令が発行する実際のメモリアクセスリクエストの数をリスト命令リクエスト数カウンタブロックで計数し、その計数結果を、リスト命令のメモリアクセスリクエスト数のソフトウェアシミュレーションでの結果と比較できるようにし、メモリアクセスリクエストの圧縮処理等が正しく行われたかどうかを判断できるようにしたからである。
【符号の説明】
【００７９】
１０    情報処理装置
２０    制御手段
２１    メモリリクエスト制御部
２２    ベクトルレジスタ
３０    記憶手段
３１    データベース記憶域
１００    情報処理装置
２００    制御手段
２１０    メモリリクエスト制御部
２１１    リスト命令リクエスト数カウンタブロック
２１１−０    リスト命令リクエスト数カウンタ部
２１１−１    アンドゲート
２１１−２    セレクタ
２１１−３    リスト命令リクエスト数カウンタ
２１１−４    ＋１加算器
２２０    ベクトルレジスタ
２３０    ソフトウェアビジブルレジスタ
３００    記憶手段
３１０    データ記憶域
３２０    ソフトウェアシミュレータ実行結果記憶域
【図１】
0005882800.tif 000002
【図２】
0005882800.tif 000003
【図３】
0005882800.tif 000004
【図４】
0005882800.tif 000005
【図５】
0005882800.tif 000006
【図６】
0005882800.tif 000007
【図７】
0005882800.tif 000008