"複数の異なる演算スロットを有し、マルチサイクル動作を行う演算処理装置であって、演算する命令をプリデコードしてその種類を識別するプリデコード部と、前記命令の種類に対応した重み設定値を格納する重み設定レジスタと、前記識別された命令の種類および前記重み設定値を受け取り、前記演算する命令に対して重みづけ値を計算する重みづけ計算部と、前記重みづけ計算部の計算結果に基づいて、前記複数の異なる演算スロットのいずれかを選択するスロット選択部と、を有することを特徴とする演算処理装置。前記複数の異なる演算スロットは、ALU系処理およびMUL系処理を実行可能な少なくとも1つのMULスロット、および、前記ALU系処理およびLDST系処理を実行可能な少なくとも1つのLDSTスロットを含み、前記プリデコード部は、前記演算する命令が命令キューに存在する間に、該演算する命令がMUL系命令か、LDST系命令か、或いは、ALU系命令かを識別するプリデコード結果を出力し、前記重み設定レジスタは、前記MUL系命令、前記LDST系命令および前記ALU系命令の重み設定値を格納し、前記重みづけ計算部は、前記プリデコード部からの前記プリデコード結果、および、前記重み設定レジスタからの前記重み設定値を受け取り、前記MUL系命令および前記LDST系命令の重みづけ値を計算し、前記スロット選択部は、前記重みづけ計算部の計算結果に基づいて、前記MULスロットまたは前記LDSTスロットのいずれかを選択する、ことを特徴とする請求項1に記載の演算処理装置。複数の異なる演算スロットを有し、マルチサイクル動作を行う演算処理装置のスロット制御方法であって、演算する命令をプリデコードして該演算する命令の種類を識別し、前記演算する命令の種類および前記命令の種類に対応した重み設定値を受け取り、前記演算する命令に対して重みづけ値を計算し、前記計算された重みづけ値に基づいて、前記複数の異なる演算スロットのいずれかを選択する、ことを特徴とする演算処理装置のスロット制御方法。前記複数の異なる演算スロットは、ALU系処理およびMUL系処理を実行可能な少なくとも1つのMULスロットと、前記ALU系処理およびLDST系処理を実行可能な少なくとも1つのLDSTスロットを含み、前記演算する命令のプリデコードは、該演算する命令が命令キューに存在する間に、該演算する命令がMUL系命令か、LDST系命令か、或いは、ALU系命令かを識別するプリデコード結果を出力し、前記演算する命令に対する重みづけ値の計算は、前記プリデコード結果、および、前記MUL系命令,前記LDST系命令および前記ALU系命令に対する重み設定値を受け取り、前記MUL系命令および前記LDST系命令の重みづけ値を計算し、前記演算スロットの選択は、前記計算された重みづけ値に基づいて、前記MULスロットまたは前記LDSTスロットのいずれかを選択する、ことを特徴とする請求項3に記載の演算処理装置のスロット制御方法。新たに実行可能なALU系命令が到着したとき、当該ALU系命令の後ろの後続命令を識別し、それがALU系命令ではなかった場合に、前記後続命令とは異なる制限を有する演算スロットを優先的に選択する、ことを特徴とする請求項4に記載の演算処理装置のスロット制御方法。上述したように、ベクトルプロセッサは、科学技術計算だけでなく、携帯端末のソフトウェア無線といった適用も考えられ、その適用範囲は、様々な分野に拡大する傾向にある。また、ベクトルプロセッサに設けられた複数の演算スロットは、全て同じ種類のものではなく、例えば、ALU系処理およびMUL系処理を実行可能なMUL系と、ALU系処理およびLDST系処理を実行可能なLDST系とに大別される。ところで、ベクトルプロセッサは、例えば、命令メモリから読みだした命令を順次キューに格納し、デコードステージで先に演算中の命令とのレジスタ干渉を確認し、条件が整えば空いている演算スロットに命令を振り分けるといった処理を行っている。なお、命令は、複数サイクルかけて実行される。しかしながら、命令を複数サイクルかけて実行する場合、命令の供給に演算が追い付かずデコードステージで待ちの状態が発生することがある。また、各演算スロットに命令を振り分ける場合、その命令に適した演算スロットに割り当てることができるとは限らない。例えば、MUL系命令およびLDST系命令は、実行可能な演算スロットが限定されているのに対しALU系はその制限がないため、ALU系の配置が適切ではないと、スロットが空いているにも関わらず次の命令を実行できないという状態が発生する。その結果、実装した演算スロットを十分に使いきれず、演算スロットの使用効率が低下することになる。一実施形態によれば、複数の異なる演算スロットを有し、マルチサイクル動作を行う演算処理装置であって、プリデコード部と、重み設定レジスタと、重みづけ計算部と、スロット選択部と、を有することを特徴とする演算処理装置が提供される。前記プリデコード部は、演算する命令をプリデコードしてその種類を識別し、また、前記重み設定レジスタは、前記命令の種類に対応した重み設定値を格納する。さらに、前記重みづけ計算部は、前記識別された命令の種類および前記重み設定値を受け取り、前記演算する命令に対して重みづけ値を計算し、そして、前記スロット選択部は、前記重みづけ計算部の計算結果に基づいて、前記複数の異なる演算スロットのいずれかを選択する。開示の演算処理装置および演算処理装置のスロット制御方法は、演算スロットの使用効率を向上させることができるという効果を奏する。まず、演算処理装置および演算処理装置のスロット制御方法の実施例を詳述する前に、図1および図2を参照して演算処理装置の一例およびその演算処理装置における課題を説明する。図1は、演算処理装置の一例を示すブロック図であり、マルチサイクル動作を行うベクトルプロセッサベクトル型プロセッサを示す。図1において、参照符号110~113は演算スロット、102は命令キュー、103はデコード部[スロット選択部]、104は命令メモリ、105はレジスタ、106はメモリアクセス制御部、そして、107はデータメモリを示す。図1に示すプロセッサにおいて、演算スロット110~113は、ALU系処理およびMUL系処理を実行可能なMUL系演算スロット110,111と、ALU系処理およびLDST系処理を実行可能なLDST系演算スロット112,113とに大別される。なお、ALU系処理とは、加算処理および論理演算処理等のことであり、また、MUL系処理とは、乗算処理等のことであり、そして、LDST系処理とは、ロード処理およびストア処理等のデータメモリ107をアクセスする処理のことである。図1に示すプロセッサにおいて、命令メモリ104から読みだした命令は、命令キュー102に順次格納され、さらに、デコード部スロット選択部103に供給される。デコード部103では、命令キュー102から供給された命令と、先に演算中の命令とのレジスタ干渉を確認し、条件が整えば空いている演算スロットスロット110~113に命令を振り分ける。なお、命令は、複数サイクルかけて実行される。図2は、図1の演算処理装置における課題を説明するための図である。図2に示されるように、図1のプロセッサ演算処理装置では、例えば、空きスロットが複数あった場合、静的な設定で最下位番号を優先的に選択といった実装がなされる。具体的に、例えば、スロット110にALU系命令が挿入されると、最下位番号のスロット110が選択されてスロット110にALU系命令が挿入される。しかしながら、次の命令がMUL系命令の場合、スロット112および113が空いているにも関わらず、MULスロット110,111が空いていないため、MUL系命令を待たせてしまうことになる。すなわち、スロット112および113は空いているが、LDSTスロットのため、次の命令であるMUL系命を実行することができず、そのMUL系命令を待たせることになり、演算スロットの有効活用を行うことができない。このように、MUL系とLDST系は実行可能な演算スロットが限定されているため、そのような制限のないALU系の配置が不適切な場合、スロットが空いているにもかかわらず次の命令を実行できないという状態が発生する。また、命令を複数サイクルかけて実行する場合、命令の供給に演算が追い付かずデコードステージで待ちの状態が発生することもある。このように、図1の演算処理装置は、実装した演算スロットを十分に使いきれないという課題がある。以下、演算処理装置および演算処理装置のスロット制御方法の実施例を、添付図面を参照して詳述する。図3は、第1実施例の演算処理装置を示すブロック図であり、マルチサイクル動作を行うベクトルプロセッサを示す。図3において、参照符号10~13は演算スロットスロット、2は命令キュー、3はデコード部、4はスロット選択部、5は使用スロットのプリデコード部プリデコード部、6は重みづけ計算部、そして、7は重み設定レジスタを示す。図3に示すプロセッサにおいて、スロット10および11は、ALU系処理およびMUL系処理を実行可能なMULスロットであり、また、スロット12および13は、ALU系処理およびLDST系処理を実行可能なLDSTスロットである。なお、図3において、上述した図1および図2で示した命令メモリ104、レジスタ105、メモリアクセス制御部106およびデータメモリ107は、省略されている。また、図3において、図1および図2で示したデコード部スロット選択部103は、デコード部3およびスロット選択部4と分割して描かれている。これは、第1実施例を示す図3だけでなく、第2,第3および第4実施例を示す図5,図7および図9においても同様である。図3と前述した図1との比較から明らかなように、本第1実施例の演算処理装置プロセッサでは、プリデコード部5,重みづけ計算部6および重み設定レジスタ7が設けられている。プリデコード部5は、命令が命令キュー2に存在する間に、その命令がMUL系命令か、LDST系命令か、或いは、そうではない命令ALU系命令かをプリデコードし、その結果を重みづけ計算部6に出力する。重みづけ計算部6は、上述したプリデコード部5からのプリデコード結果、および、重み設定レジスタ7からの重み設定値を受け取り、後述する所定のアルゴリズムに従った計算を行って、その計算された重みづけ値をスロット選択部4に出力する。スロット選択部4は、重みづけ計算部6で計算された重みづけ結果を受け取り、それに基づいて、現在の命令次に実行する命令:到着した命令がALU系命令であれば、MULスロットおよびLDSTスロットの優先順位を変更して空きスロットを探索する。ここで、重み設定レジスタ7に格納される重みは、例えば、プロセッサの転送命令や外部からの書き込みにより設定できるようになっている。次に、一例として、重みづけ計算部6において、現在の命令の後ろ2つの命令1つ後ろの命令、および、2つ後ろの命令を探索して重みづけを行い、それに基づいて、スロットの選択部4がスロットの選択を判断する場合を説明する。まず、MUL系命令の重みをMとし、LDST系命令の重みをLとすると、MおよびLは、以下のようにして計算される。M=1つ後ろの命令がMULなら重みM1、そうでないなら02つ後ろの命令がMULなら重みM2、そうでないなら0L=1つ後ろの命令がLDSTなら重みL1、そうでないなら02つ後ろの命令がLDSTなら重みL2、そうでないなら0ここで、重みM1,M2,L1,L2は、あらかじめ設定しておく。具体的に、例えば、M1=L1=3,M2=L2=2といったように設定する。なお、MULスロットまたはLDSTスロットを優先して選択するとは、例えば、MUL系命令の場合、まず、スロット10および11の空きを探索し、空いていればそのスロットを使用し、また、空いていなければ、スロット12および13を探索する。そして、スロット12および13が空いていればそのスロットを使用し、空いていなければストールするという動作を表している。なお、上記の説明では、一例として、重みづけ計算部6において、現在の命令の後ろ2つの命令を探索して重みづけを行う場合を示したが、探索する後ろの命令の数や重みづけの仕方は、様々に変形することができる。図4は、第1実施例の演算処理装置のスロット制御方法を説明するためのフローチャートである。なお、図4に示すフローチャートは、演算処理装置のスロット制御処理の開始時点でリソース競合などの命令発行制約に関する条件判定は終了しており、スロットの割り当て割り振りのみが残っているものとして記載されている。図4に示されるように、スロット制御処理が開始すると、まず、ステップST11において、現在の命令次に実行する命令:スロットに割り振る命令がALU系命令かどうかを判別する。ステップST11において、ALU系命令であると判別すると、ステップST12に進んで、重みづけ計算を行って、ステップST16に進む。ここで、ステップST12における重みづけ計算は、前述した図3における重みづけ計算部6で行われ、例えば、現在の命令の後ろ2つの命令を探索して、MUL系命令の重みMおよびLDST系命令の重みLを計算する処理に対応する。ステップST16では、MがLよりも大きいかどうかM>Lを判別し、MがLよりも大きいと判別すると、ステップST17に進んで、LDSTスロットLDST系演算スロット12,13から優先して割り当てを行って、ステップST19に進む。また、ステップST16において、MがLよりも大きくないと判別すると、ステップST18に進んで、MULスロットMUL系演算スロット10,11から優先して割り当てを行って、ステップST19に進む。ステップST19では、LDSTスロット12,13に空きが有るかどうかを判別し、空きが有ると判別すると、ステップST20に進んで、命令現在の命令を挿入して処理を終了する。一方、ステップST19において、LDSTスロット12,13に空きが無いと判別すると、ステップST21に進んで、ストール処理パイプランの停止処理を行って処理を終了する。次に、ステップST11において、現在の命令がALU系命令ではないと判別すると、ステップST13に進んで、MUL系命令かどうかを判別する。ステップST13において、現在の命令がMUL系命令であると判別すると、ステップST14に進んで、MULスロットの空きを探索して、ステップST22に進む。一方、ステップST13において、現在の命令がMUL系命令ではない、すなわち、LDST系命令であると判別すると、ステップST15に進んで、LDSTスロットの空きを探索して、ステップST22に進む。ステップST22では、MULスロット10,11に空きが有るかどうかを判別し、空きが有ると判別すると、ステップST23に進んで、命令現在の命令を挿入して処理を終了する。一方、ステップST22において、MULスロット10,11に空きが無いと判別すると、ステップST24に進んで、ストール処理を行って処理を終了する。このように、本第1実施例によれば、現在の命令がALU系命令だった場合、後ろの命令に基づいた重みづけ計算を行って、MUL系命令の重みMおよびLDST系命令の重みLを求め、より重みの少ない方命令の少ない方のスロットを優先して選択する。これにより、演算スロットの使用効率活用効率を向上させることが可能となる。図5は、第2実施例の演算処理装置を示すブロック図であり、また、図6は、第2実施例の演算処理装置のスロット制御方法を説明するためのフローチャートである。ここで、本第2実施例の図5および図6と上述した第1実施例の図3および図4とは、図面上は、実質的に同様なものとして描かれているが重みづけ計算の処理が異なっている。すなわち、図5と上述した図3との比較から明らかなように、本第2実施例のプロセッサは、重みづけ計算を行うための重みづけ計算部6’および重み設定レジスタ7’が第1実施例とは異なっている。また、図6と上述した図4との比較から明らかなように、本第2実施例のスロット制御処理は、ステップST12’における重みづけ計算を行う処理が異なっている。前述した第1実施例のプロセッサでは、現在の命令の後ろ2つの命令1個以上後ろの命令を見て、それらの中の制限された命令について重みづけをしながら数え上げ、より少ない演算スロットを優先的に選択するようになっている。これに対して、本第2実施例のプロセッサでは、現在の命令の後ろ2つの命令を見るのに加えて、各スロット10~13が命令を実行中であるかどうかも踏まえて、MUL系命令の重みMおよびLDST系命令の重みLを計算するようになっている。すなわち、図5に示されるように、本第2実施例のプロセッサにおいて、重みづけ計算部6’には、各スロット10~13から当該スロットが命令を実行中であるかどうかの情報スロットの埋まり具合の信号が供給されている。なお、重み設定レジスタ7’は、各スロット10~13に対して、当該スロットが命令を実行中であるかどうかによる重みも設定されることになる。次に、一例として、重みづけ計算部6’において、現在の命令の後ろ2つの命令および各スロットが命令を実行中であるかどうかの現在の使用状況を探索して重みづけを行い、それに基づいて、スロットの選択部4がスロットの選択を判断する場合を説明する。すなわち、MUL系命令の重みMおよびLDST系命令の重みLは、以下のようにして計算される。M=1つ後ろの命令がMULなら重みM1、そうでないなら02つ後ろの命令がMULなら重みM2、そうでないなら0スロット0が命令を実行中であればM3、そうでないなら0スロット1が命令を実行中であればM4、そうでないなら0L=1つ後ろの命令がLDSTなら重みL1、そうでないなら02つ後ろの命令がLDSTなら重みL2、そうでないなら0スロット2が命令を実行中であればL3、そうでないなら0スロット3が命令を実行中であればL4、そうでないなら0ここで、重みM1,M2,M3,M4,L1,L2,L3,L4は、あらかじめ設定しておく。具体的に、例えば、M1=L1=3、M2=L2=2、M3=M4=L3=L4=1といったように設定する。なお、重みづけ計算の結果により、LDST優先かMUL優先かを判断し、スロットを選択するのは、前述した第1実施例と同様である。すなわち、本第2実施例のスロット制御方法は、ステップST12’における重みづけ計算の処理を、上記のような各スロットが命令を実行中であるかどうかを踏まえて行う以外、図4を参照して説明した第1実施例と同様である。このように、本第2実施例によれば、現在の命令がALU系命令だった場合、後ろの命令と共に、各スロットが命令を実行中であるかどうかに基づいた重みづけ計算を行うことにより、演算スロットの使用効率をより一層向上させることが可能となる。図7は、第3実施例の演算処理装置を示すブロック図であり、マルチサイクル動作を行うベクトルプロセッサを示す。ここで、本第3実施例では、前述した重み設定レジスタ7,7’が設けられておらず、現在の命令の後ろの命令の実行にかかる時間、並びに、各スロットで実行している命令の終了予想時間サイクル数が重みづけ計算部6に情報として供給されている。すなわち、本第3実施例のプロセッサにおいて、使用スロットのプリデコード部5’は、命令が命令キュー2に存在する間に、その命令がMUL系命令か、LDST系命令か、或いは、ALU系命令かをプリデコードし、その結果を重みづけ計算部6に出力する。さらに、プリデコード部5’は、命令が命令キュー2に存在する間に、その命令の実行にかかる時間をデコードして重みづけ計算部6に出力する。重みづけ計算部6には、各スロット10~13から、当該スロットが命令を実行中であるかどうかの情報と共に、現在実行している命令の終了時間終了予想サイクル数、無い場合は0が供給される。そして、重みづけ計算部6は、命令キュー2に存在する後ろの命令の種類およびその命令の実行にかかる時間、並びに、各スロットが命令を実行中であるかどうかおよびその実行している命令の終了予想時間を受け取って、重みづけ計算を行う。ここで、本第3実施例において、例えば、現在の命令がALU系命令以外の場合、並びに、現在の命令がALU系命令であって、且つ、その1つ後ろの命令もALU系命令の場合には、前述した第1実施例または第2実施例と同様の処理を行う。すなわち、本第3実施例は、現在の命令がALU系命令であって、その1つ後ろの命令がALU系命令ではない場合に、演算スロットの使用効率をより一層向上させることが可能となる。次に、一例として、重みづけ計算部6において、現在の命令がALU系命令であって、その1つ後ろの命令がMUL系命令の場合、スロット10および11にMUL系命令を割り当てたときの終了予想時刻を見積もると、以下のように予想される。スロット10の終了時刻=スロット10の現在実行中の命令の残りサイクル数無い場合は0MUL系命令の実行サイクル数1スロット11の終了時刻=スロット11の現在実行中の命令の残りサイクル数無い場合は0MUL系命令の実行サイクル数1ここで、スロット10および11の終了時刻の予想において、最後の1は、MUL系命令が次の命令であるため、実行開始が1サイクル後になるから加算するものである。そして、上記スロット10および11の終了時刻の予想値のうち、小さい方早く終わる方を現在のALU系命令の1つ後ろのMUL系命令に対して予約する。そして、現在のALU系命令は、上記スロット10,11を除いて空いているスロット12,13に割り当て、空きが無い場合には、ストールする。また、一例として、重みづけ計算部6において、現在の命令がALU系命令であって、その1つ後ろの命令がLDST系命令の場合、スロット12および13にLDST系命令を割り当てたときの終了予想時刻を見積もると、以下のように予想される。スロット12の終了時刻=スロット12の現在実行中の命令の残りサイクル数無い場合は0LDST系命令の実行サイクル数1スロット13の終了時刻=スロット13の現在実行中の命令の残りサイクル数無い場合は0LDST系命令の実行サイクル数1そして、上記スロット12および13の終了時刻の予想値のうち、小さい方早く終わる方を現在のALU系命令の1つ後ろのLDST系命令に対して予約する。そして、現在のALU系命令は、上記スロット12,13を除いて空いているスロット10,11に割り当て、空きが無い場合には、ストールする。図8は、第3実施例の演算処理装置のスロット制御方法を説明するためのフローチャートである。なお、図8に示すフローチャートは、演算処理装置のスロット制御処理の開始時点でリソース競合などの命令発行制約に関する条件判定は終了しており、スロットの割り当てのみが残っているものとして記載されている。図8に示されるように、スロット制御処理が開始すると、まず、ステップST31において、現在の命令次に実行する命令:スロットに割り振る命令がALU系命令かどうかを判別する。ステップST31において、ALU系命令であると判別すると、ステップST32に進んで、現在の命令の1つ後ろの命令もALU系命令かどうかを判別し、また、ALU系命令ではないと判別すると、ステップST33に進む。ステップST32において、現在の命令の1つ後ろの命令もALU系命令であると判別すると、ステップST36に進み、また、現在の命令の1つ後ろの命令はALU系命令ではないと判別すると、ステップST33に進む。ステップST36において、現在の命令の1つ後ろの命令がMUL系命令であると判別すると、ステップST37に進む。ステップST37では、MULスロット10,11で終了時刻を予想し、早い方を選択して現在の命令ALU系命令の1つ後ろのMUL系命令に対して予約して、ステップST38に進む。ステップST38では、選択されたMULスロット10,11以外のスロットLDSTスロット12,13で、空いているスロットを探索して、ステップST41に進む。ステップST41では、LDSTスロット12,13に空きが有るかどうかを判別し、空きが有ると判別すると、ステップST42に進んで、命令現在の命令を挿入して処理を終了する。一方、ステップST41において、LDSTスロット12,13に空きが無いと判別すると、ステップST43に進んで、ストール処理を行って処理を終了する。また、ステップST36において、現在の命令の1つ後ろの命令がMUL系命令ではない、すなわち、LDST系命令であると判別すると、ステップST39に進む。ステップST39では、LDSTスロット12,13で終了時刻を予想し、早い方を選択して現在の命令の1つ後ろのLDST系命令に対して予約して、ステップST40に進む。ステップST40では、選択されたLDSTスロット12,13以外のスロットMULスロット10,11で、空いているスロットを探索して、ステップST41に進む。ステップST41では、MULスロット10,11に空きが有るかどうかを判別し、空きが有ると判別すると、ステップST42に進んで、命令現在の命令を挿入して処理を終了する。一方、ステップST41において、MULスロット10,11に空きが無いと判別すると、ステップST43に進んで、ストール処理を行って処理を終了する。すなわち、ステップST37およびST39において、前述したMUL系およびLDST系命令の終了時刻の予想を行い、予約するスロット番号をスロット選択部4に供給する。そして、ステップST38およびST39並びに、ST41~ST43において、スロット選択部4は、予約スロット以外のスロットからそのMUL系およびLDST系命令を割り当てるスロットを選択する。なお、図8におけるステップST33,ST34,ST35,ST44,ST45およびST46は、例えば、前述した図4におけるステップST13,ST14,ST15,ST22,ST23およびST24と同様のものであり、その説明は省略する。このように、本第3実施例は、現在の命令がALU系命令であって、その1つ後ろの命令がALU系命令ではない場合に、命令キューに在る命令の実行にかかる時間、および、各スロットで実行している命令の終了時刻を予想してスロットの割り振りを行う。これにより、現在の命令がALU系命令であって、その1つ後ろの命令がALU系命令ではない場合に、使用効率をより一層向上させることが可能となる。図9は、第4実施例の演算処理装置を示すブロック図であり、マルチサイクル動作を行うベクトルプロセッサを示す。ここで、図9に示す第4実施例は、例えば、前述した図3に示す第1実施例において、演算スロットとして、ALU系命令専用のALUスロット14およびスカラー演算用のスカラースロット15を設けたものに相当する。図9に示されるように、本第4実施例の演算処理装置プロセッサは、MULスロット10,11、LDSTスロット12,13、ALUスロット14およびスカラースロット15を有する。さらに、プロセッサは、命令キュー2、デコード部3、スロット選択部40、使用スロットのプリデコード部5,重みづけ計算部60および重み設定レジスタ70が設けられている。プリデコード部5は、命令が命令キュー2に存在する間に、その命令がMUL系命令か、LDST系命令か、或いは、そうではない命令ALU系命令かをプリデコードし、その結果を重みづけ計算部60に出力する。重みづけ計算部60は、プリデコード部5からのプリデコード結果、および、重み設定レジスタ70からの重み設定値を受け取り、後述する所定のアルゴリズムに従った計算を行って、その計算された重みづけ値をスロット選択部40に出力する。スロット選択部40は、重みづけ計算部60で計算された重みづけ結果を受け取り、それに基づいて、現在の命令がALU系命令であれば、ALUスロット,MULスロットおよびLDSTスロットの優先順位を変更して空きスロットを探索する。ここで、重み設定レジスタ70に格納される重みは、例えば、プロセッサの転送命令や外部からの書き込みにより設定できるようになっている。次に、一例として、重みづけ計算部60において、現在の命令の後ろ2つの命令を探索して重みづけを行い、それに基づいて、スロットの選択部40がスロットの選択を判断する場合を説明する。まず、MUL系命令の重みをMとし、LDST系命令の重みをLとすると、MおよびLは、以下のようにして計算される。M=1つ後ろの命令がMULなら重みM1、そうでないなら02つ後ろの命令がMULなら重みM2、そうでないなら0L=1つ後ろの命令がLDSTなら重みL1、そうでないなら02つ後ろの命令がLDSTなら重みL2、そうでないなら0ここで、重みM1,M2,L1,L2は、あらかじめ設定しておく。具体的に、例えば、M1=L1=3,M2=L2=2といったように設定する。なお、MULスロットまたはLDSTスロットを優先して選択するとは、例えば、MUL系命令の場合、まず、スロット10および11の空きを探索し、空いていればそのスロットを使用し、また、空いていなければ、スロット12および13を探索する。そして、スロット12および13が空いていればそのスロットを使用し、空いていなければストールするという動作を表している。ここで、重みづけ計算部60は、現在の命令の後ろ2つの命令を探索して重みづけを行う場合を示したが、探索する後ろの命令の数や重みづけの仕方は、様々に変形することができるのは前述した通りである。また、図9において、ALUスロット14およびスカラースロット15は、それぞれ1つずつ配置されているが、これらのスロットも複数配置してもよく、また、ALUスロットまたはスカラースロットの一方がなくてもかまわないのはいうまでもない。図10は、第4実施例の演算処理装置のスロット制御方法を説明するためのフローチャートである。なお、図10に示すフローチャートは、演算処理装置のスロット制御処理の開始時点でリソース競合などの命令発行制約に関する条件判定は終了しており、スロットの割り当てのみが残っている場合であるのは、前述した各実施例と同様である。図10に示されるように、スロット制御処理が開始すると、まず、ステップST51において、現在の命令がALU系命令かどうかを判別する。ステップST51において、ALU系命令であると判別すると、ステップST52に進んで、ALUスロット14が空いているかどうかを判別する。ステップST52において、ALUスロット14が空いていると判別すると、ステップST68に進んで、そのALUスロット14を使用して現在の命令ALU系命令を割り当てて処理を終了する。また、ステップST52において、ALUスロット14が空いていないと判別すると、ステップST54に進んで、例えば、前述した図4のステップST12と同様の処理を行う。一方、ステップST51において、現在の命令がALU系命令ではないと判別すると、ステップST53に進んで、スカラー命令かどうかを判別する。ステップST53において、現在の命令がスカラー命令であると判別すると、ステップST67に進んで、そのスカラースロット15を使用して現在の命令スカラー命令を割り当てて処理を終了する。ここで、スカラー命令の場合、そのスカラー命令は1サイクルで終了するため、スカラースロット15は必ず空いており、ステップST53でスカラー命令であると判別すれば、その空いているスカラースロット15に命令を挿入する。なお、現在の命令がスカラー命令でもALU系命令でもない場合は、例えば、前述した図4と同様である。すなわち、図10におけるステップST54~ST66は、例えば、前述した図4におけるステップST12~ST24に相当するものであり、同様の処理を行うことになる。この第4実施例のように、本実施例の適用は、MULスロットおよびLDSTスロットだけを有するものに限定されず、さらに、ALUスロットおよびスカラースロットを有するものであってもよい。また、これらALUスロットおよびスカラースロットは、複数設けてもよく、また、ALUスロットまたはスカラースロットの一方を設けなくともよいのは前述した通りである。さらに、例えば、第4実施例のように、ALUスロットおよびスカラースロットを有するプロセッサに対して、前述した第2または第3実施例を適用することができるのは、いうまでもない。以上、詳述したように、本実施例の演算処理装置および演算処理装置のスロット制御方法によれば、演算スロットの使用効率を向上させることがえきる。その結果、演算処理装置の演算性能を高めることが可能となる。以上の実施例を含む実施形態に関し、さらに、以下の付記を開示する。付記1複数の異なる演算スロットを有し、マルチサイクル動作を行う演算処理装置であって、演算する命令をプリデコードしてその種類を識別するプリデコード部と、前記命令の種類に対応した重み設定値を格納する重み設定レジスタと、前記識別された命令の種類および前記重み設定値を受け取り、前記演算する命令に対して重みづけ値を計算する重みづけ計算部と、前記重みづけ計算部の計算結果に基づいて、前記複数の異なる演算スロットのいずれかを選択するスロット選択部と、を有することを特徴とする演算処理装置。付記2前記複数の異なる演算スロットは、ALU系処理およびMUL系処理を実行可能な少なくとも1つのMULスロット、および、前記ALU系処理およびLDST系処理を実行可能な少なくとも1つのLDSTスロットを含み、前記プリデコード部は、前記演算する命令が命令キューに存在する間に、該演算する命令がMUL系命令か、LDST系命令か、或いは、ALU系命令かを識別するプリデコード結果を出力し、前記重み設定レジスタは、前記MUL系命令、前記LDST系命令および前記ALU系命令の重み設定値を格納し、前記重みづけ計算部は、前記プリデコード部からの前記プリデコード結果、および、前記重み設定レジスタからの前記重み設定値を受け取り、前記MUL系命令および前記LDST系命令の重みづけ値を計算し、前記スロット選択部は、前記重みづけ計算部の計算結果に基づいて、前記MULスロットまたは前記LDSTスロットのいずれかを選択する、ことを特徴とする付記1に記載の演算処理装置。付記3前記重みづけ計算部は、現在の命令の後ろの命令を探索して、前記重みづけ値を計算する、ことを特徴とする付記2に記載の演算処理装置。付記4前記重みづけ計算部は、現在の命令の後ろの命令、および、前記各スロットが命令を実行中であるかどうかの現在の使用状況を探索して、前記重みづけ値を計算する、ことを特徴とする付記2に記載の演算処理装置。付記5前記重みづけ計算部は、現在の命令の後ろの命令の種類およびその命令の実行にかかる時間、並びに、前記各スロットが命令を実行中であるかどうかおよびその実行している命令の終了予想時間を受け取って、前記重みづけ値を計算する、ことを特徴とする付記2に記載の演算処理装置。付記6複数の異なる演算スロットを有し、マルチサイクル動作を行う演算処理装置のスロット制御方法であって、演算する命令をプリデコードして該演算する命令の種類を識別し、前記演算する命令の種類および前記命令の種類に対応した重み設定値を受け取り、前記演算する命令に対して重みづけ値を計算し、前記計算された重みづけ値に基づいて、前記複数の異なる演算スロットのいずれかを選択する、ことを特徴とする演算処理装置のスロット制御方法。付記7前記複数の異なる演算スロットは、ALU系処理およびMUL系処理を実行可能な少なくとも1つのMULスロットと、前記ALU系処理およびLDST系処理を実行可能な少なくとも1つのLDSTスロットを含み、前記演算する命令のプリデコードは、該演算する命令が命令キューに存在する間に、該演算する命令がMUL系命令か、LDST系命令か、或いは、ALU系命令かを識別するプリデコード結果を出力し、前記演算する命令に対する重みづけ値の計算は、前記プリデコード結果、および、前記MUL系命令,前記LDST系命令および前記ALU系命令に対する重み設定値を受け取り、前記MUL系命令および前記LDST系命令の重みづけ値を計算し、前記演算スロットの選択は、前記計算された重みづけ値に基づいて、前記MULスロットまたは前記LDSTスロットのいずれかを選択する、ことを特徴とする付記6に記載の演算処理装置のスロット制御方法。付記8新たに実行可能なALU系命令が到着したとき、当該ALU系命令の後ろの後続命令を識別し、それがALU系命令ではなかった場合に、前記後続命令とは異なる制限を有する演算スロットを優先的に選択する、ことを特徴とする付記7に記載の演算処理装置のスロット制御方法。付記9新たに実行可能なALU系命令が到着したとき、当該ALU系命令の後ろの後続命令を識別し、それがALU系命令ではなかった場合に、現在の演算スロットの状況から前記後続命令を配置した場合の演算スロットの状況を予測し、前記MULスロットまたは前記LDSTスロットのうち空きが多い方を優先的に選択する、ことを特徴とする付記7に記載の演算処理装置のスロット制御方法。付記10新たに実行可能なALU系命令が到着したとき、当該ALU系命令の後ろの後続命令を識別し、それがALU系命令ではなかった場合に、前記後続命令が最も早く終了する演算スロットの割り当てを計算し、予測結果に基づいて当該ALU系命令の演算スロットを選択する、ことを特徴とする付記7に記載の演算処理装置のスロット制御方法。"