ロード命令の追い越しの許可又は不許可を示す追い越し許可フラグをもつストア命令と、ロード命令の追い越しをブロックする追い越しブロック命令と、を含む命令セットをもつプロセッサと、前記追い越し許可フラグを設定する追い越し許可フラグ設定手段と、前記追い越しブロック命令を生成する追い越しブロック命令生成手段と、をもつコンパイラと、前記追い越しブロック命令を命令リオーダバッファに登録する追い越しブロック命令登録手段と、前記追い越し許可フラグの設定されたストア命令を参照しながら、メモリアクセス命令を命令リオーダバッファに登録する命令バイパス手段と、をもつ命令リオーダユニットと、を有するプログラム実行システム。前記命令リオーダユニットは、前記追い越し許可フラグがONに設定されている第1の命令について、その後続の命令を、前記第1の命令と同時に又は追い越して処理されるよう、前記命令リオーダバッファに登録されることを特徴とする請求項1記載のプログラム実行システム。ロード命令の追い越しの許可又は不許可を示す追い越し許可フラグをもつストア命令と、ロード命令の追い越しをブロックする追い越しブロック命令と、を含む命令セットをもつプロセッサを備えるプログラム実行システムにおいて、プログラムを実行する方法であって、コンパイラにおいて、前記追い越し許可フラグを設定する追い越し許可フラグ設定ステップと、前記コンパイラにおいて、前記追い越しブロック命令を生成する追い越しブロック命令生成ステップと、命令リオーダユニットが、前記追い越しブロック命令を命令リオーダバッファに登録する追い越しブロック命令登録ステップと、前記命令リオーダユニットが、前記追い越し許可フラグの設定されたストア命令を参照しながら、メモリアクセス命令を命令リオーダバッファに登録する命令バイパスステップと、を備える方法。前記命令リオーダユニットが、前記追い越し許可フラグがONに設定されている第1の命令について、その後続の命令を、前記第1の命令と同時に又は追い越して処理されるよう、前記命令リオーダバッファに登録することを特徴とする請求項3記載の方法。しかしながら、メモリアクセス命令のメモリディスアンビギュエションを行う場合には、前述のような仕組みであるため、先行して実行できるロード命令数を増やしプログラムを高速化するには、命令リオーダバッファ29のエントリ数、および、先行N215の列を増やすしかない。しかし、CPUの物理的な制約からそれらを増やすことは難しいという課題がある。また、それらが増えれば増えるほど、命令リオーダユニット26の処理量が増え、性能向上の度合いが減少するという課題がある。また、SIMD命令、ベクトル命令では、上述のような処理を行うので、それらがアクセスするすべてのメモリ領域ごとに先行させなければならない命令の完了を待ちあわせなければならない。そのため、ロード命令をできるだけ先行して開始しプログラムを高速化するには、図4のようにそれらの命令がアクセスするすべての領域のアドレスを命令リオーダバッファに登録しなければならなくなる。さらに、命令リオーダユニット26がアドレス計算の終わった命令を命令リオーダバッファに登録するとき、各エントリのすべてのアドレスを調べ先行させなければならない命令を得る必要があり、また、命令実行完了通知27を受け取ったときも各エントリのすべてのアドレスを調べ、クリアしなければならなくなる。このため、アドレスの登録領域が増加するだけでなく、調べるための時間も増加してしまうという課題があり、CPUの物理的制約、また、性能向上の恩恵も少ないことから、SIMD命令、ベクトル命令タイプのロード命令を先行して実行し、プログラムを高速化することはできない。本発明は、かかる実情に鑑み、ロード命令による追い越しの許可/不許可を示すフラグをもつストア命令、ロード命令の追い越しをブロックする命令を命令セットに含むCPUと、そのフラグの設定、命令を生成するコンパイラを提供することで、プログラムを高速に実行する手法を提供しようとするものである。本発明は、ロード命令の追い越しの許可/不許可を示す追い越し許可フラグをもつストア命令、ロード命令の追い越しをブロックする命令を含む命令セットをもつCPUと、そのフラグを設定する追い越し許可フラグ設定手段、その命令を生成する追い越しブロック命令生成手段をもつコンパイラと、追い越しをブロックする命令を命令リオーダバッファに登録する追い越しブロック命令登録手段、追い越し許可フラグの設定されたストア命令を参照しながら、メモリアクセス命令を命令リオーダバッファに登録する命令バイパス手段をもつ命令リオーダユニットを有する。なお、本明細書において、メモリにデータを書き込むことをストア、それを行う命令をストア命令、メモリからデータを読み込むことをロード、それを行う命令をロード命令という。また、ロード命令、ストア命令をまとめてメモリアクセス命令という。本発明によれば、追い越し許可フラグはONに設定されている第1の命令の後続の命令が、第1の命令と同時に、または、第1の命令を追い越して処理される。これにより、処理時間が短縮され、プログラムが高速化されるという効果を奏し得る。以下、本発明の実施の形態について図面を参照しつつ詳細に説明する。なお、同一の要素には同一の符号を付し、重複する説明を省略する。図5は、本発明の一実施形態に係るプログラム実行システムの概略構成を示すブロック図である。同図に示すように、本実施例において、CPUの命令セットは、追い越し許可フラグをもつストア命令54、55、56、および、追い越しする命令をブロックする命令以下追い越しブロック命令という。57を含む。また、本実施例におけるコンパイラ51は、プログラムのあるループ中のストア命令の追い越し許可フラグをON追い越しを許可に設定する指示行516が指定されたときループ中のストア命令54、55、56の追い越し許可フラグをONに設定する追い越し許可フラグ設定手段52と、プログラム中のある地点以降のロード命令の追い越しをブロックすることを指定する指示行515が指定されたときその場所に追い越しブロック命令57を生成する追い越しブロック命令生成手段53を有する。命令リオーダユニット59は、メモリディスアンビギュエションを行いロード、ストア命令の実行順番を制御する。本実施例における命令リオーダユニット59は、追い越しブロック命令57を命令リオーダバッファ517に登録する追い越しブロック命令登録手段510、追い越し許可フラグがONに設定されたストア命令を先行させなければならない命令とせず、かつ、命令リオーダバッファ517中の追い越しブロック命令57を先行させなければならない命令として、ロード命令を命令リオーダバッファ517に登録する命令バイパス手段511を有する。また、命令リオーダユニット59は、命令リオーダユニット26として説明した動作及び機能を包含している。アドレス計算ユニット58は、実行ステージ14に相当し、メモリアクセス命令のアクセスするメモリ領域のアドレスを計算する。命令デコードステージ13の結果が入力される。メモリアクセスユニット513は、リード/ライトステージ15に相当する。本実施例では、アドレス計算ユニット58、メモリアクセスユニット513は、二つの命令を同時に処理できるものとするが、並列処理可能な命令の数はこれに限定されない。命令リオーダバッファ517は、命令パイプラインのリード/ライトステージ15の直前のバッファに相当する。命令実行完了通知512は、命令実行完了通知27と同様の通知である。本実施例におけるプログラム実行システムは、コンピュータにより実現される。プログラム実行システムは、システムの動作及び処理を制御するCPUと、プログラムや必要なデータを格納するROM及び/又はRAMと、外部からの入力及び外部への出力をするための入出力インタフェースと、外部とデータ通信するための通信インタフェースと、これらを結ぶバス等を備える。また、本明細書等において、手段とは、単に物理的手段を意味するものではなく、その手段が有する機能をソフトウェアによって実現する場合、すなわち、CPUが、メモリまたは外部記憶装置などに記憶された所定のプログラムを実行することにより実現する場合を含む。このとき、1つの手段が有する機能が2つ以上の物理的手段により実現されても、2つ以上の手段の機能が1つの物理的手段により実現されてもよい。次に、図5~9を用いて本実施例における動作について説明する。図6は、本実施例における追い越し許可フラグ設定手段の動作を示すフローチャートである。本実施例におけるコンパイラ51の追い越し許可フラグ設定手段52は、コンパイラがストア命令を処理するときに起動される。図6に示すように、まず、ストア命令がループに含まれるかどうかを判定するS61。ストア命令がループに含まれないとき、ストア命令の追い越し許可フラグをOFFに設定するS64。ストア命令がループに含まれるとき、ループに対して追い越し許可フラグをONに設定する指示行516が指定されたかどうかを判定するS62。指定されていないとき、ストア命令の追い越し許可フラグをOFFに設定するS64。指定されていたとき、ストア命令の追い越し許可フラグをONに設定するS63。図7は、本実施例における追い越しブロック命令生成手段の動作を示すフローチャートである。本実施例におけるコンパイラ51の追い越しブロック命令生成手段53は、コンパイラが文を処理する直前に起動される。図7に示すように、まず、文の直前にロード命令の追い越しをブロックすることを指定する指示行515が指定されているか判定するS71。指定されていないとき、従来どおり、現在の文に対応する命令を生成するS73。指定されていたとき、追い越しブロック命令を生成するS72。その後、従来どおり、現在の文に対応する命令を生成するS73。図8は、本実施例における追い越しブロック命令登録手段の動作を示すフローチャートである。本実施例における命令リオーダユニット59の追い越しブロック命令登録手段510は、命令リオーダユニット59が命令リオーダバッファ517に追い越しブロック命令57を登録するときに起動される。図8に示すように、追い越しブロック命令登録手段510は、命令リオーダバッファ517からエントリを取り出すS81。次に取り出したエントリが空のエントリかどうかを判定するS82。空のエントリでないとき、追い越しブロック命令に先行させなければならない命令として本エントリの番号を登録するS83。次に、取り出したエントリが命令リオーダバッファ517の最後のエントリかどうかを判定するS84。最後のエントリでなかったとき、命令リオーダバッファ517から次のエントリを取り出しS81、処理を繰り返す。ステップS84で最後のエントリだったとき、処理を終了する。ステップS82でエントリが空のエントリであったとき、取り出したエントリが命令リオーダバッファ517の最後のエントリかどうかを判定するS84。最後のエントリでなかったとき、命令リオーダバッファ517から次のエントリを取り出しS81、処理を繰り返す。ステップS84で最後のエントリだったとき、処理を終了する。図9は、本実施例における命令バイパス手段の動作を示すフローチャートである。本実施例における命令リオーダユニット59の命令バイパス手段511は、命令リオーダユニット59が命令リオーダバッファ517に命令を登録するときに起動される。図9に示すように、まず、命令リオーダバッファ517からエントリを取り出す出したエントリが追い越しブロック命令のものかどうか判定するS93。エントリが追い越しブロック命令のものであるとき、登録しようとしている命令に先行させなければならない命令として、このエントリの番号を登録するものとするS94。その後、取り出したエントリが命令リオーダバッファ517の最後のエントリだったかどうか判定するS95。最後のエントリでなかったとき、次のエントリを取り出すS91。最後のエントリだったとき、従来と同じように、命令を命令リオーダバッファ517の空きエントリに登録するS96。ステップS93で追い越しブロック命令のエントリでなかったとき、エントリがストア命令のものかどうか判定するS97。エントリがストア命令のものでなかったとき、すなわち、ロード命令のエントリであったとき、登録しようとしている命令がロード命令であるかどうか判定するS910。ロード命令であるとき、取り出したエントリが命令リオーダバッファ517の最後のエントリだったかどうか判定しS95、次のエントリを処理するかS91、命令を登録してS96、処理を終了する。ステップS910でロード命令でなかったとき、すなわち、ストア命令であったとき、メモリアクセス命令のメモリディスアンビギュエションを行い、必要であれば先行させなければならない命令としてエントリ番号を登録するものとする。また、SIMD命令、ベクトル命令であるときは直前に登録した命令を先行させなければならない命令として登録するものとするS911。ステップS911は、従来どおりの処理である。その後、取り出したエントリが命令リオーダバッファ517の最後のエントリだったかどうか判定しS95、次のエントリを処理するかS91、命令を登録してS96、処理を終了する。ステップS97でエントリがストア命令のものであったとき、登録しようとしている命令がロード命令かどうか判定するS98。ロード命令でないとき、すなわち、ストア命令であるとき、メモリアクセス命令のメモリディスアンビギュエションを行い、必要であれば先行させなければならない命令としてエントリ番号を登録するものとする。また、SIMD命令、ベクトル命令であるときは直前に登録した命令を先行させなければならない命令として登録するものとするS911。その後、取り出したエントリが命令リオーダバッファ517の最後のエントリだったかどうか判定しS95、次のエントリを処理するかS91、命令を登録してS96、処理を終了する。ステップS98でロード命令であったとき、エントリに登録されていたストア命令の追い越し許可フラグがONであるかどうか判定するS99。追い越し許可フラグがOFF追い越し不可であったとき、メモリアクセス命令のメモリディスアンビギュエションを行い、必要であれば先行させなければならない命令としてエントリ番号を登録するものとする。また、SIMD命令、ベクトル命令であるときは直前に登録した命令を先行させなければならない命令として登録するものとするS911。その後、取り出したエントリが命令リオーダバッファ517の最後のエントリだったかどうか判定しS95、次のエントリを処理するかS91、命令を登録してS96、処理を終了する。ステップS99で追い越し許可フラグがON追い越し許可であったとき、取り出したエントリが命令リオーダバッファ517の最後のエントリだったかどうか判定しS95、次のエントリを処理するかS91、命令を登録してS96、処理を終了する。このようにして、追い越し許可フラグがONのストア命令があったとき、ロード命令のメモリディスアンビギュエションを省くことができ、また、SIMD命令、ベクトル命令タイプのロード命令を先行して実行することができ、プログラム実行が高速化される。図10は、本実施例において、ベクトル命令の場合における効果を示す図である。ソースコード101は、サンプルのCプログラムのループである。同図においてx、y、z、idxはポインタである。このループ内では、二つのポインタの指示先から値をベクトルロードし、そのベクトル加算結果を、命令102でストアしている。命令102のストアは、一般的に、ベクトル拡散と呼ばれる。指示行103は、ループ中のストア命令の追い越し許可フラグをON追い越しを許可に設定する。このループに対して、本発明のコンパイラは、ソースコード101のループの一回の繰り返しに対して、ベクトル命令列104を生成する。VSC命令105は、追い越し許可フラグがONに設定されたストア命令ベクトル拡散命令である。VLDはベクトルロード命令、VADDはベクトル加算命令である。プログラムの実行では、命令列104が命令パイプラインに繰り返し投入される。命令列106は、命令列104が命令パイプラインに投入される順番を示す。左端例1010は投入される順番を示す。最初に、VLD命令109が投入される。命令108は次の繰り返しの最初のVLD命令であり、命令107はその次の繰り返しの最初のVLD命令である。時系列1011は、従来技術のときの命令パイプラインのリード/ライトステージでの処理状況である。命令は、右から左に流れていく。従来は、ベクトル命令の追い越しは行われなかったため、VSC命令1012と同時に、あるいはそれより先に、VLD命令1013は処理されなかった。後続のVSC命令1021に続くVLD命令1022も同じである。これに対して、時系列1014は、本発明での命令パイプラインのリード/ライトステージでの処理状況である。VSC命令1016の追い越し許可フラグはONに設定されているため、その後続のVLD命令1015が、VSC命令1016と同時に処理される。VSC命令1017も追い越し許可フラグがONに設定されているため、その後続のVLD命令1018、VLD命令1019がVSC命令1017を追い越して処理される。これにより、時間1020に相当する時間が短縮され、プログラムが高速化される。本発明の他の実施例として、プログラマが追い越し許可フラグをONに設定する指示行をループに対して指定する代わりに、文ごとに指定する方法がある。図11Aは、他の実施例におけるプログラム111の一例を示す図である。図11Bは、この実施例において追い越し許可フラグ設定手段の動作を示すフローチャートである。指示行112は、直後の文に対して指定された指示行である。このときの追い越し許可フラグ設定手段の動作は、最初に文に対して追い越し許可フラグをONに設定する指示行が指定されていたかどうかを判定するS113。指定されていたとき、文に対して生成するストア命令の追い越し許可フラグをONに設定するS114。そうでないとき、ストア命令の追い越し許可フラグをOFFに設定するS115。図12は、本発明の他の実施例におけるコンパイラの機能構成を示すブロック図である。この実施例においては、プログラマが追い越し許可フラグをONに設定する指示行、ロード命令の追い越しをブロックすることを指定する指示行をループ、文に対して指定する代わりに、図12のコンパイラのように追い越し可能ストア命令検出手段121をコンパイラに追加し、それによりコンパイラがプログラムを解析し、追い越しブロック命令をどの位置に作るのか、どのストア命令の追い越し許可フラグをONに設定するのか、OFFに設定するのかを自動的に判定する方法がある。このとき、その検出結果を追い越し許可フラグ設定手段122、追い越しブロック命令生成手段123で利用する。図13は、本発明の他の実施例を示す図である。この実施例は、ストア命令に追い越し許可フラグを設ける代わりに、追い越し許可を示す命令追い越し許可命令を追加し、その命令と追い越しブロック命令の間の区間のストア命令を追い越し許可と判断する方法である。同図において、OVT135が追い越し許可命令である。追い越し許可命令は、指示行1317の指定された位置に、コンパイラ131の追い越し許可命令生成手段132によって生成される。命令列134は、本実施例のコンパイラ131によって生成されたループ1316に対する命令列である。LABELから末尾のIFまでの命令138がループの一回の繰り返しに相当する命令列である。その直前に追い越し許可命令であるOVT135が生成される。そしてループの出口には指示行1318に相当する追い越しブロック命令SOVT137が生成される。追い越しブロック命令は、指定された位置に、コンパイラ131の追い越しブロック命令生成手段133によって生成される。このとき、OVT135とSOVT137の間で実行されるすべてのストア命令136は追い越し許可となる。アドレス計算ユニット139、命令実行完了通知1314、メモリアクセスユニット1315、命令リオーダバッファ1319は、図5に記載の実施例の対応する構成と同様の構成を備える。本実施例の命令リオーダユニット1310は、追い越し許可/ブロック命令登録手段1311を備える。追い越し許可命令は、追い越し許可/ブロック命令登録手段1311により、図8の追い越しブロック命令登録手段と同じ手順で命令リオーダバッファ1319に登録される。追い越しブロック命令は、追い越し許可/ブロック命令登録手段1311により、図8の追い越しブロック命令登録手段と同じ手順で命令リオーダバッファ1319に登録される。本実施例の命令バイパス手段1312は、図9の追い越し許可フラグがONであるかの判定S99の代わりに、追い越し許可命令実行後に一度も追い越しブロック命令を実行していないかどうかを判定する。実行していないとき、追い越し許可であるので取り出したエントリが命令リオーダバッファ1319の最後のエントリだったかどうか判定しS95、次のエントリを処理するかS91、命令を登録してS96、処理を終了する。追い越しブロック命令を実行していたとき、メモリアクセス命令のメモリディスアンビギュエションを行い、必要であれば先行させなければならない命令としてエントリ番号を登録するものとする。また、SIMD命令、ベクトル命令であるときは直前に登録した命令を先行させなければならない命令として登録するものとするS911。その後、取り出したエントリが命令リオーダバッファ1319の最後のエントリだったかどうか判定しS95、次のエントリを処理するかS91、命令を登録してS96、処理を終了する。それ以外は、図9の命令バイパス手段と同じ動作をする。本発明の他の実施例として、プログラマが追い越し許可命令、追い越しブロック命令の位置を指示行で支持する代わりに、図12のコンパイラのように追い越し可能ストア命令検出手段をコンパイラに追加し、それによりコンパイラがプログラムを解析し、追い越し許可命令、追い越しブロック命令をどの位置に作るのかを自動的に判定する方法もある。なお、本発明は、上記した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において、他の様々な形で実施することができる。このため、上記実施形態はあらゆる点で単なる例示にすぎず、限定的に解釈されるものではない。例えば、上述の各処理ステップは処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。付記1ロード命令の追い越しの許可又は不許可を示す追い越し許可フラグをもつストア命令と、ロード命令の追い越しをブロックする追い越しブロック命令と、を含む命令セットをもつプロセッサと、前記追い越し許可フラグを設定する追い越し許可フラグ設定手段と、前記追い越しブロック命令を生成する追い越しブロック命令生成手段と、をもつコンパイラと、前記追い越しブロック命令を命令リオーダバッファに登録する追い越しブロック命令登録手段と、前記追い越し許可フラグの設定されたストア命令を参照しながら、メモリアクセス命令を命令リオーダバッファに登録する命令バイパス手段と、をもつ命令リオーダユニットと、を有するプログラム実行システム。付記2前記命令リオーダユニットは、前記追い越し許可フラグがONに設定されている第1の命令について、その後続の命令を、前記第1の命令と同時に又は追い越して処理されるよう、前記命令リオーダバッファに登録されることを特徴とする付記1記載のプログラム実行システム。付記3ロード命令の追い越しの許可又は不許可を示す追い越し許可フラグをもつストア命令と、ロード命令の追い越しをブロックする追い越しブロック命令と、を含む命令セットをもつプロセッサを備えるプログラム実行システムにおいて、プログラムを実行する方法であって、コンパイラにおいて、前記追い越し許可フラグを設定する追い越し許可フラグ設定ステップと、前記コンパイラにおいて、前記追い越しブロック命令を生成する追い越しブロック命令生成ステップと、命令リオーダユニットが、前記追い越しブロック命令を命令リオーダバッファに登録する追い越しブロック命令登録ステップと、前記命令リオーダユニットが、前記追い越し許可フラグの設定されたストア命令を参照しながら、メモリアクセス命令を命令リオーダバッファに登録する命令バイパスステップと、を備える方法。付記4前記命令リオーダユニットが、前記追い越し許可フラグがONに設定されている第1の命令について、その後続の命令を、前記第1の命令と同時に又は追い越して処理されるよう、前記命令リオーダバッファに登録することを特徴とする付記3記載の方法。