"メモリの複数のバンクに第1のバンクアクセス順序でアクセスする第1の処理部と、前記第1の処理部のアクセスの開始に続いて第2のバンクアクセス順序で前記複数のバンクにアクセスを開始する第2の処理部と、前記第1の処理部及び前記第2の処理部による前記複数のバンクへのアクセスが競合する場合に、前記第2のバンクアクセス順序を前記競合が生じない第3のバンクアクセス順序に並べ替えて前記第2の処理部を前記複数のバンクにアクセスさせる制御部とを備えることを特徴とするプロセッサ。請求項1において、前記制御部は、前記第3のバンクアクセス順序による前記第2の処理部の前記複数のバンクへのアクセスの開始タイミングを、前記第1の処理部の前記複数のバンクへのアクセスの開始タイミングから1サイクル後に制御することを特徴とするプロセッサ。請求項1または2において、前記第2の処理部は、前記第3のバンクアクセス順序により前記メモリにアクセスして読み出したデータを複数のレジスタに第1のレジスタアクセス順序でアクセスして書き込み、前記複数のレジスタに第2のレジスタアクセス順序でアクセスし、前記書き込まれたデータを読み出す第3の処理部をさらに有し、前記制御部は、前記第2のレジスタアクセス順序を、前記第1のレジスタアクセス順序による書き込みが終了したレジスタから順にアクセスするように制御することを特徴とするプロセッサ。請求項3において、前記制御部は、前記第2のバンクアクセス順序と前記第3のバンクアクセス順序とに基づいて前記第2のレジスタアクセス順序を並べ替えることを特徴とするプロセッサ。請求項1または2において、前記第1の処理部は、前記第1のバンクアクセス順序により前記メモリにアクセスして読み出したデータを複数のレジスタに第1のレジスタアクセス順序でアクセスして書き込み、前記第2の処理部は、前記第3のバンクアクセス順序により前記メモリにアクセスして読み出したデータを前記複数のレジスタに第2のレジスタアクセス順序でアクセスして書き込み、前記複数のレジスタに第3のレジスタアクセス順序でアクセスし、前記第1及び第2の処理部により書き込まれたデータを読出す第3の処理部をさらに有し、前記制御部は、前記第3のレジスタアクセス順序を、前記第1及び第2の処理部による書き込みが終了したレジスタから順にアクセスするように制御することを特徴とするプロセッサ。複数のレジスタに第1のレジスタアクセス順序でアクセスしてデータを書き込む第1の処理部と、前記複数のレジスタに第2のレジスタアクセス順序でアクセスして前記書き込まれたデータを読出す第2の処理部と、前記第2のレジスタアクセス順序を、前記複数のレジスタのうち、読み出すデータの前記第1の処理部による書き込みが終了したレジスタから順にアクセスされる第3のレジスタアクセス順序に並べ替えて、前記第2の処理部に前記複数のレジスタへアクセスさせる制御部とを有するプロセッサ。複数のレジスタに第1のレジスタアクセス順序でアクセスしてデータを書き込む第1の処理部と、前記複数のレジスタに第2のレジスタアクセス順序でアクセスしてデータを書き込む第2の処理部と、前記複数のレジスタに第3のレジスタアクセス順序でアクセスして前記第1、第2の処理部により書き込まれたデータを読出す第3の処理部と、前記第3のレジスタアクセス順序を、前記複数のレジスタのうち、読み出すデータの前記第1、第2の処理部による書き込みが終了したレジスタから順にアクセスするように制御する制御部とを有するプロセッサ。メモリの複数のバンクに第1のバンクアクセス順序でアクセスする第1の処理部と、前記第1の処理部のアクセスの開始に続いて第2のバンクアクセス順序で前記複数のバンクにアクセスを開始する第2の処理部とを有するプロセッサの制御方法であって、前記第1の処理部及び前記第2の処理部による前記複数のバンクへのアクセスが競合する場合に、前記第2のバンクアクセス順序を前記競合が生じない第3のバンクアクセス順序に並べ替えて前記第2の処理部を前記複数のバンクにアクセスさせる、プロセッサの制御方法。請求項8において、前記第2の処理部が、前記第3のバンクアクセス順序により前記メモリにアクセスして読み出したデータを複数のレジスタに第1のレジスタアクセス順序でアクセスして書き込み、前記プロセッサが、前記複数のレジスタに第2のレジスタアクセス順序でアクセスして前記書き込まれたデータを読み出す第3の処理部をさらに有し、前記第2のレジスタアクセス順序を、前記第1のレジスタアクセス順序による書き込みが終了したレジスタから順にアクセスするように制御する、プロセッサの制御方法。請求項8において、前記第1の処理部が、前記第1のバンクアクセス順序により前記メモリにアクセスして読み出したデータを複数のレジスタに第1のレジスタアクセス順序でアクセスして書き込み、前記第2の処理部が、前記第3のバンクアクセス順序により前記メモリにアクセスして読み出したデータを前記複数のレジスタに第2のレジスタアクセス順序でアクセスして書き込み、前記プロセッサが、前記複数のレジスタに第3のレジスタアクセス順序でアクセスして前記第1及び第2の処理部により書き込まれたデータを読出す第3の処理部をさらに有し、前記第3のレジスタアクセス順序を、前記第1及び第2の処理部による書き込みが終了したレジスタから順にアクセスするように制御する、プロセッサの制御方法。しかしながら、ストールが頻繁に生じると、処理効率が低下するので問題となる。そこで、本発明の目的は、複数のパイプラインを有するプロセッサであって、処理効率を低下させることなくバンク競合を回避できるプロセッサ、及びその制御方法を提供することにある。上記の目的を達成するための一実施形態におけるプロセッサは、メモリの複数のバンクに第1のバンクアクセス順序でアクセスする第1の処理部と、前記第1の処理部のアクセスの開始に続いて第2のバンクアクセス順序で前記複数のバンクにアクセスを開始する第2の処理部と、前記第1の処理部及び前記第2の処理部による前記複数のバンクへのアクセスが競合する場合に、前記第2のバンクアクセス順序を前記競合が生じない第3のバンクアクセス順序に並べ替えて前記第2の処理部を前記複数のバンクにアクセスさせる制御部とを備える。以下に説明する実施形態によれば、複数のパイプラインを有するプロセッサにおいて、処理効率を低下させることなくバンク競合を回避できる。以下、図面にしたがって本発明の実施の形態について説明する。但し、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。図1は、本実施形態におけるプロセッサの構成を説明するための図である。本実施形態におけるプロセッサの例として、ベクトルプロセッサ100の構成が示される。ベクトルプロセッサ100では、命令メモリ102に格納された命令に従って、ベクトルパイプライン104がデータメモリ106に格納されるデータを読み出して各種演算を行う。ベクトルプロセッサ100は、命令メモリ102、ベクトルパイプライン104、データメモリ106のほかに、デコーダ108、ベクトルレジスタ110、スカラレジスタ112、バンク競合検出部113、及び制御部114を有する。ベクトルプロセッサ100は、たとえば、信号処理用LSILargeScaleIntegratedcircuitである。データメモリ106は、ベクトルプロセッサ100の外部に設けてもよい。命令メモリ102は、ベクトルパイプライン104に対する各種命令を格納する。各種命令は、データメモリ106からデータをベクトルレジスタ110に読み出すロードストア命令や、ベクトルレジスタ110に格納されるデータに対し算術演算などを行う演算命令などである。命令メモリ102は、たとえばSRAMStaticRandomAccessMemoryである。デコーダ108は、命令メモリ102から命令を読み出してデコードし、デコードした命令をベクトルパイプライン104に入力するとともに、ロードストア命令でアクセスするデータメモリ106のアドレスをスカラレジスタ112から読み出し、ベクトルパイプライン104に入力する。データメモリ106は、たとえばDRAMDynamicRandomAccessMemoryなどの大容量メモリである。データメモリ106は、記憶領域に連続したアドレスが割り当てられる。記憶領域は、それぞれ入出力ポートを有する複数のバンクに分割される。データメモリ106では、バンクインターリーブにより記憶領域にアクセスがなされる。ベクトルパイプライン104は、それぞれロードストア命令や演算命令をパイプラインにより実行するスロット1040、1041、1042、及び1043を有する。スロット1040~1043は、それぞれ、シーケンサseq0~seq3と、演算器prc0~prc3を有する。スロット1040~1043では、それぞれ、シーケンサseq0~seq3による制御のもと、演算器prc0~prc3が命令を実行する。各スロットが実行する命令と、その実行タイミングは、各命令に応じてシーケンサseq0~seq3により決定される。スロット1040~1043が、本実施形態における処理部の例である。ベクトルプロセッサ100は、たとえば、命令のフェッチIF、命令のデコードID、命令の実行EX、メモリアクセスMEM、及び実行結果のレジスタ書込みWBのステージにより、命令が実行される。IF、IDステージは、同一サイクルで実行される。IDステージで、デコードされた命令がスロット1040~1043のシーケンサseq0~seq3に入力される。また、EX~WBの各ステージでは、ベクトルパイプライン104のスロット1040~1043により、命令に応じた処理が実行される。EXステージでシーケンサseq0~3から演算器prc0~prc3に命令が転送され、演算器prc0~prc3が各命令に応じた処理を実行する。たとえば、ロードストア命令の場合、IFステージで、命令メモリ102からロードストア命令が読み出される。そして、IDステージで、デコーダ108がロードストア命令をデコードして、スロット1040~1043に入力する。各スロットは、EXステージでデータメモリ106にアクセスし、MEMステージでデータメモリ106からデータ要素を読み出し、そして、読み出したデータ要素をWBステージでベクトルレジスタ110に書き込む。また、演算命令の場合、IFステージで、命令メモリ102から演算命令が読み出され、IDステージで演算命令がデコードされてベクトルパイプライン1040~1043に入力される。各スロットは、EXステージでベクトルレジスタ110からデータ要素を読み出して演算を実行し、WBステージで演算結果をベクトルレジスタ110に書き込む。図2には、データメモリ106の構成が模式的に示される。データメモリ106は、連続したアドレスが行方向及び列方向に割り当てられた記憶領域1060を有する。記憶領域1060の各マス目は、16ビットごとのデータの格納領域を示す。16ビットごとのデータがデータ要素である。マス目の中の数字は、データ要素の順番を示す。記憶領域1060は、それぞれ入出力ポートを有する4個のバンクBK0~BK3に分割される。以下、4個のバンクを例に説明がなされるが、バンク数は4個以外であってもよい。各バンクは、8個のデータ要素に対応する128ビットのバンク幅を有する。たとえば、行R1には、バンクBK0に0番目~7番目の、バンクBK1に8番目~15番目の、バンクBK1に16番目~23番目の、そして、バンクBK2に24番目~31番目のデータ要素が格納される。バンクBK0~BK3からは、読出しアドレスが入力される1アクセスで、それぞれ8個のデータ要素が読み出される。図3は、ベクトルレジスタ110について説明する図である。ベクトルレジスタ110には、スロット1040~1043が演算処理するためのデータメモリ106から読み出されたデータ要素が、一時的に格納される。図3Aに示すように、ベクトルレジスタ110の記憶領域1100は128ビットの幅を有し、1つの行アドレスに8個のデータ要素が格納される。記憶領域1100における各マス目は16ビット長の格納領域を示し、マス目の中の数字はデータ要素の番号を示す。図3Bには、ベクトルレジスタ110における論理ベクトルレジスタVR番号と物理ベクトルレジスタVR番号の例が示される。論理ベクトルレジスタ番号は、ロードストア命令や演算命令におけるベクトルレジスタ110のデータの位置を示す。一方、物理ベクトルレジスタ番号は、ベクトルレジスタ110における物理的なデータの位置を示す。論理ベクトルレジスタ番号は、vr0、vr1、vr2、と表わされる。また、それぞれの論理ベクトルレジスタ番号に対応する物理ベクトルレジスタ番号は、vr0、vr1、vr2、と表わされる。物理ベクトルレジスタ番号は、たとえば、図3Aのデータ要素の番号に対応しており、本実施形態における複数のレジスタの例である。図4は、ロードストア命令を実行するベクトルパイプライン104の動作を説明するための図である。図4Aには、データメモリ106におけるアドレス配置が示される。左から右へ、上から下へアドレスが増加する。バンクBK0において、各行のベースアドレスは、0x00、0x40、0x80、0xC0、である。また、バンクBK1~BK3の先頭におけるベースアドレスからのオフセット値は、それぞれ、0x10、0x20、0x30である。図4Bには、ロードストア命令の処理シーケンスが示される。ここでは、横軸を処理サイクルC1、C2、C3,として、2個のスロットが実行するロードストア命令の例が示される。たとえば、ロードストア命令LS1は、スロット1040により実行される。この命令は、vldhsr2,vr0であり、データメモリ106の論理アドレスsr2たとえばバンクBK0の0x00から順次、論理ベクトルレジスタ番号vr0にデータの読み出しを指示する命令である。また、ロードストア命令LS2は、スロット1041により実行される。この命令は、vldhsr3,vr1であり、データメモリ106の論理アドレスsr3たとえば、たとえばバンクBK1の0x110から、論理ベクトルレジスタ番号vr1にデータの読み出しを指示する命令である。図4Bでは、各処理サイクルにおいてアクセスするバンクとアドレスとが示される。また、各処理サイクルは図1で示したパイプラインにおけるEXステージに対応する。なお、ここでは、4つの処理サイクルが1つの命令サイクルに対応する以下、同様。ロードストア命令LS1は、たとえば、処理サイクルC1から実行される。まず、スロット1040は、サイクルC1でバンクBK0のアドレス0x00に、サイクルC2でバンクBK1のアドレス0x10に、サイクルC3でバンクBK2のアドレス0x20に、そして、サイクルC4でバンクBK3のアドレス0x30にアクセスする。これに引き続いて、さらに、スロット1040は、サイクルC5でバンクBK0のアドレス0x40に、サイクルC6でバンクBK1のアドレス0x50に、サイクルC7でバンクBK2のアドレス0x60に、そして、サイクルC8でバンクBK3のアドレス0x70にアクセスする。なお、スロット1040がアクセスするデータメモリ106のアドレスは、図4Aで、斜線/により示される。一方、ロードストア命令LS2は、処理サイクルC2から実行される。スロット1041は、サイクルC2でバンクBK0のアドレス0x100に、サイクルC3でバンクBK1のアドレス0x110に、サイクルC4でバンクBK2のアドレス0x120に、そして、サイクルC5でバンクBK3のアドレス0x130にアクセスする。これに引き続いて、さらに、スロット1041は、サイクルC6でバンクBK0のアドレス0x140に、サイクルC7でバンクBK1のアドレス0x150に、サイクルC8バンクBK2のアドレス0x160に、そして、サイクルC9でバンクBK3のアドレス0x170にアクセスする。なお、スロット1041がアクセスするデータメモリ106のアドレスは、図4Aで、斜線\により示される。図4Bでは、スロット1040、1041が同じサイクルで同じバンクにアクセスすることがない。よって、この場合、バンク競合は生じない。しかし、スロット1040、1041が同じサイクルで同じバンクにアクセスすると、バンク競合が生じる。かかる場合、制御部114が命令の並べ替えを行うことで、処理効率を低下させることなくバンク競合を回避する。図5は、バンク競合が生じる場合を示す。図5Aには、図4Aと同じデータメモリ106のアドレスが示される。また、図5B~Dには、ロードストア処理のシーケンスが示される。なお、図5B~Dにおいてロードストア命令LS1、LS2によりアクセスされるメモリ106のアドレスは、図5Aにおいてそれぞれ斜線/、\で示される。図5Bでは、スロット1041が実行するロードストア命令LS2において、データメモリ106におけるアクセスの開始アドレスが、図4Bの場合と異なる。たとえば、スロット1041は、サイクルC2でバンクBK1のアドレス0x110へのアクセスを開始し、サイクルごとに、バンクBK2のアドレス0x120、バンクBK3のアドレス0x130にアクセスし、さらに引き続き、バンクBK0のアドレス0x140、バンクBK1のアドレス0x150、バンクBK2のアドレス0x160、BK3のアドレス0x170、そしてバンクBK0のアドレス0x180にアクセスする。すなわち、いわゆるラップ折り返しパターンでアクセスが行われる。すると、サイクルC2~C8においてバンク競合が発生する。ここで、バンク競合をストールにより回避しようとすると、図5Cに示すようになる。図5Cに示すように、ロードストア命令LS2を1サイクル分ストールすることにより、バンク競合が回避される。しかし、これにより、ロードストア命令LS2の終了がサイクルC10まで遅延する。そこで、本実施形態では、制御部114が、第1の処理部であるスロット1040が第1のロードストア命令LS1の実行を開始した後に第2の処理部であるスロット1041が第2のロードストア命令LS2の実行を開始するとき、第2の命令における複数のバンクBK0~BK3へのバンクアクセス順序を、スロット1040、1041のバンクへのアクセスが競合しないようなバンクアクセス順序以下、競合回避バンクアクセス順序というに並べ替えて、スロット1041に第2のロードストア命令LS2を実行させる。具体的には、図5Dに示すように、図5AでサイクルC5に対応していたバンクBK0のアドレス0x140へのアクセスをサイクルC2で実行し矢印51、サイクルC2~C4に対応していたBK1のアドレス0x110、バンクBK2のアドレス0x120、バンクBK3のアドレス0x130へのアクセスを、それぞれ1サイクル遅らせる。また、同様に、図5AでサイクルC9に対応していたバンクBK0のアドレス0x180へのアクセスをサイクルC6で実行し矢印52、サイクルC6~C8に対応していたBK2のアドレス0x150、バンクBK2のアドレス0x160、バンクBK3のアドレス0x170へのアクセスを、それぞれ1サイクル遅らせる。そうすることで、4つのサイクルのうち、第1~第3サイクルを1サイクル分ストールさせ、第4サイクルを最初に実行することと等価になる。よって、バンク競合が回避される。このように並べ替えられた競合回避バンクアクセス順序で、ロードストア命令LS2が実行される。このようにして、たとえば図5Bとの比較において示されるように、ロードストア命令LS2をストールすることなく、すなわち処理効率を低下させることなく、バンク競合を回避することができる。図1に戻り、さらに図6を参照しつつ、上記の制御を行う制御部114について説明する。制御部114は、依存関係検出部1142と、並べ替え制御部1144と、並べ替えアドレス生成部1146とを有する。また、並べ替え制御部1144は、図6に示すように、アクセス順序制御部602、レジスタ管理部604、発行タイミング検出部606、並べ替え管理フラグ608、610、612、614、及び、レジスタ管理フラグ616、618、620、622を有する。図1、図6に示す構成のうち、まず、バンクアクセス順序の並べ替えに関する構成の動作について説明する。制御部114には、デコーダ108からデコードされたロードストア命令LS1、LS2が入力される。また、バンク競合検出部113には、デコードされたロードストア命令LS1、LS2でアクセスするデータメモリ106のアドレスが、スカラレジスタ112から入力される。バンク競合検出部113は、ロードストア命令LS1、LS2のバンクアクセス順序を解析し、ロードストア命令LS1、LS2におけるバンク競合を検出する。バンク競合は、各ロードストア命令がそれぞれ予定されるタイミングで実行された場合に、各ロードストア命令に同じサイクルで同じバンクにアクセスする命令が含まれているときに検出される。バンク競合検出部113は、バンク競合を検出すると、これを並べ替え制御部1144に通知する。これに応答して、並べ替え制御部1144は、ロードストア命令LS2のバンクアクセス順序を、競合回避バンクアクセス順序に並べ替える。並べ替え制御部1144では、アクセス順序制御部602が、ロードストア命令LS1、LS2のバンクアクセス順序を判定する。ロードストア命令LS1、LS2は、たとえば図7Aに示すような、データメモリ106のアドレスへの、処理サイクルごとのアクセス順序以下、メモリアクセス順序というを有する。ここでは、メモリアクセス順序が、各バンクの先頭のベースアドレスからのオフセット値で示される。たとえば、メモリアクセス順序MA1は、バンクBK0の0x0、バンクBK1の0x10、バンクBK2の0x20、そしてバンクBK3の0x30の順序である。また、メモリアクセス順序MA2は、0x10、0x20、0x30、0x0の順序である。さらに、メモリアクセス順序MA3は、0x20、0x30、0x0、0x10の順序である。そして、メモリアクセス順序MA4は、0x30、0x0、0x10、0x20の順序である。アクセス順序制御部602は、このようなメモリアクセス順序MA1~MA4から、図7Bに示すようなバンクアクセス順序を判定する。たとえば、メモリアクセス順序MA1に対応するバンクアクセス順序BA1は、バンクBK0、BK1、BK2、BK3の順序である。また、メモリアクセス順序MA2に対応するバンクアクセス順序BA2は、バンクBK1、BK2、BK3、BK0の順序である。さらに、メモリアクセス順序MA3に対応するバンクアクセス順序BA3は、バンクBK2、BK3、BK0、BK1の順序である。そして、メモリアクセス順序MA4に対応するバンクアクセス順序BA4は、バンクBK3、BK0、BK1、BK2の順序である。たとえば、図5Bの例では、ロードストア命令LS1のバンクアクセス順序はBA1と判定される。また、ロードストア命令LS2のバンクアクセス順序は、BA2と判定される。よって、アクセス順序制御部602は、ロードストア命令LS2のバンクアクセス順序BA2を、ロードストア命令LS1とバンク競合が生じないような競合回避アクセス順序に並べ替える。競合回避アクセス順序は、最後にアクセスされるバンクを最初にアクセスするように並べ替えた順序である。ここでは、競合回避アクセス順序は、ロードストア命令LS1と同じバンクアクセス順序BK1になる。そして、アクセス順序制御部602は、ロードストア命令LS1と、バンクアクセス順序が並べ替えられたLS2を並べ替えアドレス生成部1146に転送する。並べ替えアドレス生成部1146は、ロードストア命令LS1、LS2に基づいて、データメモリ106のアクセスされるアドレスを生成して、スロット1140、1141にそれぞれ入力する。すると、スロット1140、1141は、ロードストア命令LS1、LS2に従って、図5Dで示したように、それぞれバンクBK0~BK3に順次アクセスする。また、アクセス順序制御部602は、各ロードストア命令の並べ替え前及び後のバンクアクセス順序を、並べ替え管理フラグ608~614に書き込む。たとえば、並べ替え管理フラグ608~614には、スロット1040~1043で実行されるロードストア命令のバンクアクセス順序が書き込まれる。よって、ロードストア命令LS1のバンクアクセス順序BA1は、並べ替え管理フラグ608に書き込まれる。また、ロードストア命令LS2の並べ替え前のバンクアクセス順序BA1と並べ替え後のバンクアクセス順序BA2は、並べ替え管理フラグ610に書き込まれる。さらに、レジスタ管理部604には、デコーダ108からロードストア命令の実行状態が入力される。命令の実行状態には、EX、MEM、WBなどのステージごとに、対応する命令がデコードされたことを示す情報が含まれる。レジスタ管理部604は、命令の実行状態をレジスタ管理フラグ616~622に記録して管理する。この動作については後に詳述する。図8は、バンクアクセス順序の並べ替え手順を示すフローチャート図である。図8に示す手順は、たとえば、1命令サイクル分の命令がフェッチされるごとに実行される。まず、デコーダ108がロードストア命令をデコードするS802。そして、バンク競合検出部113が、バンク競合の有無を判定するS804。バンク競合が検出されない場合S804のNo、ロードストア命令がベクトルパイプライン104で実行されるS812。たとえば、ロードストア命令LS1は、先行の命令との間でバンク競合が生じない。よって、並べ替えアドレス生成部1146が生成するアドレスに対し、ロードストア命令LS1がスロット1040により実行される。そして、並べ替え制御部1144が、データが書き込まれたベクトルレジスタ110のレジスタを管理するS814。たとえば、スロット1040がロードストア命令LS1のWBステージが完了したときに、そのことを示す情報がレジスタ管理フラグ616~622のうち616に書き込まれる。詳しくは後述するが、ロードストア命令LS1では書き込み先のレジスタが指定されているので、WBステージの完了を把握することで、そのレジスタへの処理完了が管理される。一方、バンク競合が検出された場合S804のYes、並べ替え制御部1142が、競合回避バンクアクセス順序を決定するS806。たとえば、ロードストア命令LS2の場合、ロードストア命令LS1との間でバンク競合が検出される。よって、アクセス順序制御部602により、ロードストア命令LS2の競合回避バンクアクセス順序BA1が決定される。そして、並べ替えアドレス生成部1146が、競合回避バンクアクセス順序に対応する並べ替えアドレスを生成するS808。そして、アクセス順序制御部602が、バンクアクセス順序を管理するS810。たとえば、ロードストア命令LS2の並べ替え前と後のバンクアクセス順序が、並べ替え管理フラグ610~622のうち610に書き込まれる。そして、ロードストア命令がベクトルパイプライン104で実行されるS812。たとえば、ロードストア命令LS2がスロット1041により実行される。そして、並べ替え制御部1144が、データが書き込まれたレジスタを管理するS814。上記のような手順によれば、ストールにより処理効率を低下させることなく、バンク競合を回避できる。図9は、4個のスロットによりロードストア命令が実行される例を示す。図9A~Cには、スロット1040~1043によるロードストア処理LS1~LS4のシーケンスが示される。図9Aは、バンク競合が生じる場合のシーケンスを示す。スロット1040、1041によるロードストア命令LS1、LS2のシーケンスは、図5Bと同じである。すなわち、ロードストア命令LS1を処理するスロット1040は、バンクアクセス順序BA1BK0、BK1、BK2、BK3の順序でデータメモリ106にアクセスしてデータの読み出しを行う。また、ロードストア命令LS2を処理するスロット1041は、バンクアクセス順序BA2BK1、BK2、BK3、BK0の順序でデータメモリ106にアクセスしてデータの読み出しを行う。これに加え、スロット1042は、ロードストア命令LS3を実行する。ロードストア命令LS3は、vldhsr4,vr2であり、データメモリ106の論理アドレスsr4たとえばバンクBK3の0x230から順次、論理ベクトルレジスタ番号vr2にデータの読み出しを指示する命令である。これに従いスロット1042は、バンクアクセス順序BA4BK3、BK0、BK1、BK2の順序でデータメモリ106にアクセスする。すなわち、スロット1042は、サイクルC3でバンクBK3のアドレス0x230に、サイクルC4でバンクBK0のアドレス0x240に、サイクルC5でバンクBK1のアドレス0x250に、そして、サイクルC6でバンクBK2のアドレス0x260にアクセスする。さらに、スロット1042は、サイクルC7でバンクBK3のアドレス0x270に、サイクルC8でバンクBK0のアドレス0x280に、サイクルC9でバンクBK1のアドレス0x290に、そして、サイクルC10でバンクBK2のアドレス0x2A0にアクセスする。また、スロット1043は、ロードストア命令LS4を実行する。ロードストア命令LS4は、vldhsr5,vr3であり、データメモリ106の論理アドレスsr5たとえばバンクBK2の0x320から順次、論理ベクトルレジスタ番号vr3にデータの読み出しを指示する命令である。これに従いスロット1043は、バンクアクセス順序BA3BK2、BK3、BK0、BK1の順序でデータメモリ106にアクセスする。たとえば、サイクルC4でバンクBK2のアドレス0x320に、サイクルC5でバンクBK3のアドレス0x330に、サイクルC6でバンクBK0のアドレス0x340に、そして、サイクルC7でバンクBK1のアドレス0x350にアクセスし、さらに引き続いて、サイクルC8でバンクBK2のアドレス0x360に、サイクルC9でバンクBK3のアドレス0x370に、サイクルC10でバンクBK0のアドレス0x380に、サイクルC11でバンクBK1のアドレス0x390にアクセスする。図9Aでは、サイクルC2~C8で、スロット1040、1041においてバンク競合が発生している。ここで、ロードストア命令LS2~LS4を順次、先のロードストア命令とのバンク競合が回避されるまでストールさせると、図9Bのようになる。図9Bに示すように、ロードストア命令LS2が1サイクル、ロードストア命令LS3が3命令サイクル、そして、ロードストア命令LS4が6命令サイクルストールされることで、バンク競合が回避される。しかし、そうすることにより、ロードストア命令LS1~LS4の終了するタイミングが、サイクルC17まで遅延する。そこで、本実施形態では、図9Cに示すように、スロット1040がロードストア命令LS1の実行を開始した後にスロット1041がロードストア命令LS2の実行を開始するとき、制御部114は、スロット1040、1041のバンクへのアクセスが競合しないような競合回避バンクアクセス順序に並べ替えて矢印91、92、スロット1041にロードストア命令LS2を実行させる。競合回避アクセス順序は、最後にアクセスされるバンクが最初にアクセスされるような順序である。たとえば、バンクアクセス順序BA2において最後にアクセスされるバンクBK0が最初にアクセスされるバンクアクセス順序BA1である。すなわち、ここでは、ロードストア命令LS1と同じバンクアクセス順序になる。ここにおいて、スロット1040、1041、及び1042におけるバンク競合が回避される。さらに、スロット1042がロードストア命令LS3の実行を開始した後にスロット1043がロードストア命令LS4の実行を開始するとき、制御部114は、ロードストア命令LS4におけるバンクアクセス順序BA3を、スロット1042、1043のバンクへのアクセスが競合しないようなバンクアクセス順序、すなわち競合回避バンクアクセス順序に並べ替えて矢印93、94、スロット1043にロードストア命令LS4を実行させる。競合回避アクセス順序は、最後にアクセスされるバンクを最初にアクセスするような順序である。たとえば、バンクアクセス順序BA4において最後にアクセスされるバンクBK1が最初にアクセスされるようなバンクアクセス順序BA2である。ここにおいて、スロット1040~1043におけるバンク競合が回避される。図9Cでは、ロードストア命令LS1~LS4が、サイクルC11で終了する。図9Bとの比較において、6サイクル分、処理を高速化できる。このように、本実施形態によれば、複数のスロットにおいて、処理効率を低下させることなくバンク競合を回避することができる。ところで、各ロードストア命令では、データメモリ106から読み出されるデータを書き込むベクトルレジスタ110のレジスタが指定される。たとえば、図9A~Cにおけるロードストア命令LS1は、論理ベクトルレジスタ番号vr0を指定し、データメモリ106から読み出されるデータ要素を、論理ベクトルレジスタ番号vr0に対応する物理ベクトルレジスタ番号vr0~vr63に書き込むための命令である。また、ロードストア命令LS2は、論理ベクトルレジスタ番号vr1を指定し、データメモリ106から読み出されるデータ要素を論理ベクトルレジスタ番号vr1に対応する物理ベクトルレジスタ番号vr64~vr127に書き込むための命令である。さらに、ロードストア命令LS3は、論理ベクトルレジスタ番号vr2を指定し、データメモリ106から読み出されるデータ要素を論理ベクトルレジスタ番号vr2に対応する物理ベクトルレジスタ番号vr128~vr191に書き込むための命令である。そして、ロードストア命令LS4は、論理ベクトルレジスタ番号vr3を指定し、データメモリ106から読み出されるデータ要素を論理ベクトルレジスタ番号vr3に対応する物理ベクトルレジスタ番号vr192~vr255に書き込むための命令である。すると、上記のようにしてロードストア命令におけるバンクアクセス順序を並べ替えたときに、ベクトルレジスタ110におけるデータ書込みレジスタのアクセス順序が変更される。このことは、ベクトルレジスタ110からデータを読み出して演算を行う演算命令の開始タイミングに影響を与える。そこで、本実施形態における制御部114は、ベクトルレジスタ110の複数のレジスタにスロット1041によるレジスタアクセス順序とは異なるレジスタアクセス順序でアクセスし、スロット1041により書き込まれたデータを読出す演算命令をスロット1042が実行する場合において、スロット1042によるレジスタアクセス順序を、読出しデータのスロット1041による書き込みが終了したレジスタから順にアクセスされるようなレジスタアクセス順序に並べ替えて、スロット1042に演算命令を実行させる。図10は、レジスタアクセス順序の並べ替えについて説明する図である。図10Aには、スロット1040、1041、及び1042が、ロードストア命令LS1、LS2、及び演算命令AL3を実行する場合のシーケンスが示される。スロット1040、1041は、ロードストア命令LS1、LS2を実行して、ベクトルレジスタ110にデータ要素を書き込む。スロット1042は、スロット1041によりベクトルレジスタ110に書き込まれたデータを読み出す演算命令AL3を実行する。演算命令AL3は、vaddhvr1,vr2vr3であり、論理ベクトルレジスタ番号vr1、vr2に書き込まれたデータ要素を加算して、加算結果のvr3への書き込みを指示する命令である。ロードストア命令LS1、LS2のシーケンスにおいて、スロット1040、1041によりアクセスされるバンクと、読み出されたデータ要素を書き込むベクトルレジスタ110の物理ベクトルレジスタ番号が示される。ここでは、スロット1040、1041におけるバンク競合を回避するために、ロードストア命令LS2が競合回避バンクアクセス順序に並べ変えられた状態が示される。たとえば、スロット1040は、サイクルC1でバンクBK0にアクセスして読み出すデータをベクトルレジスタ110の物理ベクトルレジスタ番号vr0-7に、サイクルC2でバンクBK1にアクセスして読み出したデータをベクトルレジスタ110の物理ベクトルレジスタ番号vr8-15に、サイクルC3でバンクBK2にアクセスして読み出したデータをベクトルレジスタ110の物理ベクトルレジスタ番号vr16-23に、そして、サイクルC4でバンクBK3にアクセスして読み出すデータをベクトルレジスタ110の物理ベクトルレジスタ番号vr24-31に書き込む。一方、スロット1041は、サイクルC2でバンクBK0にアクセスして読み出すデータをベクトルレジスタ110の物理ベクトルレジスタ番号vr88-95に、サイクルC3でバンクBK1にアクセスして読み出すデータをベクトルレジスタ110の物理ベクトルレジスタ番号vr64-71に、サイクルC4でバンクBK2にアクセスして読み出すデータをベクトルレジスタ110の物理ベクトルレジスタ番号vr72-79に、そして、サイクルC5でバンクBK3にアクセスして読み出すデータをベクトルレジスタ110の物理ベクトルレジスタ番号vr80-87に書き込む。また、演算命令AL3のシーケンスにおいて、スロット1042がデータを読み出すためにアクセスする、ベクトルレジスタ110の物理ベクトルレジスタ番号が示される。演算命令AL3では、ベクトルレジスタ110において物理ベクトルレジスタ番号の小さい順にアクセスが行われる。よって、ロードストア命令LS2によりアクセスされてデータが書き込まれるベクトルレジスタ110の物理ベクトルレジスタ番号vr64-71、vr72-79、vr80-87、及びvr88-95に対し、順にアクセスされる。このレジスタアクセス順序は、バンクアクセス順序変更前のロードストア命令LS2におけるレジスタアクセス順序に対応する。ところで、ロードストア命令LS2におけるデータメモリ106へのアクセスは、図1で示したEXステージで実行される。そして、データメモリ106からのデータ読み出しはMEMステージで実行され、ベクトルレジスタ110への書き込みはWBステージで実行される。よって、図10Aにおいて、ロードストア命令LS2によるベクトルレジスタ110へのデータ書き込みは、データメモリ106へのアクセスが実行されるサイクルから2サイクル後に終了する。よって、このデータのベクトルレジスタ110からの読み出しは、3サイクル後から可能になる。たとえば、物理ベクトルレジスタ番号vr64-71からのデータの読み出しは、サイクルC3の3サイクル後のサイクルC6から可能になる。よって、演算命令AL3によれば、スロット1042は、サイクルC6でベクトルレジスタ110の物理ベクトルレジスタ番号vr64-71から、サイクルC7でベクトルレジスタ110の物理ベクトルレジスタ番号vr72-79から、サイクルC8でベクトルレジスタ110の物理ベクトルレジスタ番号vr80-87から、そしてサイクルC9でベクトルレジスタ110の物理ベクトルレジスタ番号vr88-95からデータ要素を読み出す。よって、演算命令AL3は、サイクルC9で終了する。ここで、ベクトルレジスタ110の物理ベクトルレジスタ番号vr88-95からのデータ要素の読み出しに着目すると、ロードストア命令LS2のバンクアクセス順序が並べ替えられたことにより、物理ベクトルレジスタ番号vr88-95へのデータ要素の書込みは、サイクルC4で終了する。よって、物理ベクトルレジスタ番号vr88-95からのデータ要素の読出しは、サイクルC5から可能になる。そこで、本実施形態では、図10Bに示されるように、制御部114は、演算命令AL3におけるレジスタアクセス順序を、読出しデータのロードストア命令LS2による書き込みが終了したレジスタから順にアクセスされるようなレジスタアクセス順序、たとえば物理ベクトルレジスタ番号vr88-95へのアクセスが最初に行われるような順序に並べ替える矢印1000。このようにすることで、演算命令AL3は、サイクルC8で終了する。よって、処理時間が短縮される。図10Cには、ベクトルレジスタ110へのデータ要素の書込みが終了する前に読み出しを行うことにより処理が破綻することを回避する例として、ロードストア命令LS2におけるバンクアクセス順序の並べ替えを管理せずに、演算命令AL3をストールする場合が示される。ここでは、ロードストア命令LS2の最後の処理サイクルC5でアクセスされるデータの書き込みが終了してから、すなわちサイクルC8から、演算命令AL3の実行が開始される。よって、演算命令AL3の終了は、サイクルC11になる。本実施形態によれば、このような図10Cとの比較において、図10Bに示すように、3サイクル処理の終了が早くなる。ここで、再び図1、及び図6を参照して、レジスタアクセス順序の並べ替えを行う制御部114の動作について説明する。制御部114では、依存関係検出部1142に、命令メモリ102からロードストア命令LS2と演算命令AL3が入力される。依存関係検出部1142は、ロードストア命令LS2と演算命令AL3とを解析して、ロードストア命令LS2に対する演算命令AL3の依存関係を検出する。依存関係は、ロードストア命令LS2によりデータを書き込む論理ベクトルレジスタ番号と、演算命令AL3によりデータを読み出す論理ベクトルレジスタ番号が重複するときに検出される。依存関係検出部1142は、検出結果を並べ替え制御部1144に転送する。並べ替え制御部1144は、依存関係が検出された場合、上述したロードストア命令LS2のバンクアクセス順序の並べ替えに加え、演算命令AL3におけるレジスタアクセス順序の並べ替えを行う。さらに、並べ替え制御部1144は、レジスタアクセス順序を並べ替えた演算命令AL3の発行タイミングを決定する。並べ替え制御部1144では、アクセス順序制御部602に、ロードストア命令LS2と、演算命令AL3が入力される。そして、アクセス順序制御部602は、ロードストア命令LS2の並べ替え前のバンクアクセス順序と、並べ替え後のバンクアクセス順序とに基づき、演算命令AL3におけるレジスタアクセス順序の並べ替えを行う。ロードストア命令LS2の並べ替え前のバンクアクセス順序と、並べ替え後のバンクアクセス順序とは、並べ替え管理フラグ610から取得される。図11は、アクセス順序制御部602の動作を説明するための図である。図11Aのテーブルには、並べ替え前のバンクアクセス順序と並べ替え後のバンクアクセス順序に対応するレジスタアクセス順序が示される。たとえば、ロードストア命令LS2の並べ替え前のバンクアクセス順序はBA2であり、並べ替え後のバンクアクセス順序はBA1である。よって、これに対応するレジスタアクセス順序は、RA4である。図11Bには、ベクトルレジスタ110におけるレジスタアクセス順序が示される。図11Bでは、論理ベクトルレジスタ番号vr0における物理ベクトルレジスタ番号vr0-31を例として、8個のデータ要素ずつデータ書込みを行うときの物理ベクトルレジスタ番号のアクセス順序が示される。たとえば、レジスタアクセス順序RA1は、vr0-7、vr8-15、vr16-23、vr24-31の順序である。また、レジスタアクセス順序RA2は、vr8-15、vr16-23、vr24-31、vr0-7の順序である。さらに、レジスタアクセス順序RA3は、vr16-23、vr24-31、vr0-7、vr8-15の順序である。そして、レジスタアクセス順序RA4は、vr24-31、vr0-7、vr8-15、vr16-23の順序である。図11Bによると、たとえば、演算命令AL3の並べ替えられるレジスタアクセス順序RA4は、物理ベクトルレジスタ番号vr64-95において、vr88-95、vr64-71、vr72-79、vr80-87の順序である。アクセス順序制御部602は、図11A、Bの情報をマップデータ等として予め内部のROMReadOnlyMemoryなどに記憶する。そして、アクセス順序制御部602は、図11A、Bの情報を用いて、ロードストア命令LS2の並べ替え前後のバンクアクセス順序から、演算命令AL3におけるレジスタアクセス順序を決定し、その並べ替えを行う。そして、アクセス順序制御部602は、並べ替えたレジスタアクセス順序を並べ替えアドレス生成部1146に転送する。並べ替えアドレス生成部1146は、レジスタアクセス順序に対応するベクトルレジスタ110のアドレスを生成し、演算命令AL3を実行するスロット1142に転送する。図12は、並べ替え管理フラグ608~614に書き込まれる値の例を示す。図12Aは、図10Bで示したシーケンス図である。図12Bには、図12Aのシーケンス図に対応して、ロードストア命令LS1を実行するスロット1040用の並べ替え管理フラグ608、ロードストア命令LS2を実行するスロット1041用の並べ替え管理フラグ610、及び、演算命令AL3を実行するスロット1042用の並べ替え管理フラグ612の例が示される。ロードストア命令LS1はバンクアクセス順序BA1を有するので、ロードストア命令LS1が実行されるサイクルC1~C4において、並べ替え管理フラグ608にはバンクアクセス順序BA1が書き込まれる。また、ロードストア命令LS2は、バンクアクセス順序がBA2からBA1に変更される。よって、ロードストア命令LS2が実行されるサイクルC2~C5において、並べ替え管理フラグ608には、変更前のバンクアクセス順序BA2と変更後の競合回避バンクアクセス順序BA1が書き込まれる。そして、サイクルC1の時点で、並べ替え管理フラグ608が有するバンクアクセス順序BA1と、並べ替え管理フラグ610が有する競合回避バンクアクセス順序BA1とに基づき、演算命令AL3のレジスタアクセス順序がRA1からRA4に変更される。よって、並べ替え管理フラグ612にはレジスタアクセス順序RA4が書き込まれる。そして、演算命令AL3が実行されるサイクルC5~C8において、並べ替え管理フラグ612の値は、レジスタアクセス順序RA4に維持される。図1、図6に戻る。並べ替え制御部1144は、レジスタアクセス順序を並べ替えた演算命令AL3の発行タイミングを決定する。レジスタ管理部604に、デコーダ108からロードストア命令の実行状態が入力される。実行状態は、EXステージ、MEMステージ、WBステージのいずれのステージが実行されたかを示す。レジスタ管理部604は、実行状態をレジスタ管理フラグ616~622に書き込んで記録する。たとえば、ロードストア命令LS2を実行するスロット1041の実行状態は、レジスタ管理フラグ616~622のうち618に書き込まれる。処理レジスタ管理部604は、レジスタ管理フラグ616~622の値を、発行タイミング検出部606に通知する。そして、発行タイミング検出部606は、レジスタ管理フラグ616~622の値に基づき、演算命令AL3の発行タイミングを検出する。図13は、発行タイミング検出について説明する図である。図13Aは、図10Bと同じシーケンス図である。ここでは、ロードストア命令LS1のバンクアクセス順序に応じてロードストア命令LS2のバンクアクセス順序が並べ替えられ、さらに、ロードストア命令LS2のレジスタアクセス順序に応じて演算命令AL3のレジスタアクセス順序が並べ替えられた状態が示される。図13Bには、上記の並べ替えが行われるときの、レジスタ管理フラグの例が示される。ここでは、ロードストア命令LS2を実行するスロット1041用のレジスタ管理フラグ618が示される。レジスタ管理フラグ618は、さらに、ベクトルレジスタ110の物理ベクトルレジスタ番号順に、レジスタ管理フラグ618-1、618-2、618-3、及び618-4を有する。レジスタ管理フラグ618-1は物理ベクトルレジスタ番号vr64-71に対する処理に、レジスタ管理フラグ618-2は物理ベクトルレジスタ番号vr72-79に対する処理に、レジスタ管理フラグ618-3は物理ベクトルレジスタ番号vr80-87に対する処理に、そして、レジスタ管理フラグ618-4は物理ベクトルレジスタ番号vr88-95に対する処理に、それぞれ対応する。レジスタ管理フラグ618-1~618-4は、初期値がOFFである。そして、レジスタ管理フラグ618-1~618-4は、それぞれ対応する物理ベクトルレジスタ番号vrへのデータ要素の書き込みが終了したときにONが書き込まれる。図13Aに示すように、ロードストア命令LS2では、サイクルC2で物理ベクトルレジスタ番号vr88-95へのデータ読出しのためのバンクアクセスが実行される。すると、2サイクル後のサイクルC4のときにWBステージが実行されてデータがベクトルレジスタ110に書き込まれる。よって、サイクルC4のときにレジスタ管理フラグ618-4はONになる。同様にして、サイクルC3で物理ベクトルレジスタ番号vr64-71へのデータ読出しのためのバンクアクセスが実行され、2サイクル後のサイクルC5のときにデータがベクトルレジスタ110に書き込まれる。よって、サイクルC5でレジスタ管理フラグ618-1はONになる。また、サイクルC4で物理ベクトルレジスタ番号vr72-79へのデータ読出しのためのバンクアクセスが実行され、2サイクル後のサイクルC6のときにデータがベクトルレジスタ110に書き込まれる。よって、サイクルC6でレジスタ管理フラグ618-2はONになる。そして、サイクルC5で物理ベクトルレジスタ番号vr80-87へのデータ読出しのためのバンクアクセスが実行され、2サイクル後のサイクルC7のときにデータがベクトルレジスタ110に書き込まれる。よって、サイクルC7でレジスタ管理フラグ618-3はONになる。レジスタ管理部604は、発行タイミング検出部606に、レジスタ管理フラグ616~622の値を転送する。そして、発行タイミング検出部606は、レジスタ管理フラグ616~622の値が示すロードストア命令LS1およびLS2の実行状態に基づき、発行タイミングを検出する。たとえば、図13Bに示したように、サイクルC4でレジスタ管理フラグ618-4がONになると、次のサイクルから演算命令AL3が実行可能になる。よって、発行タイミング検出部606は、サイクルC4のときに、発行タイミングを検出する。そして、発行タイミング検出部606は、デコーダ108に演算命令AL3の発行を指示する制御信号を伝送する。これに応答して、デコーダ108は、サイクルC5から実行されるように、スロット1042に演算命令AL3を発行する。次に、複数のロードストア命令に演算命令が依存する例を示す。図14は、2つのロードストア命令に演算命令が依存する場合のシーケンスを示す。図14Aには、ロードストア命令LS1、LS2、及びLS3がスロット1040、1041、及び1042により実行され、スロット1041、1042によりベクトルレジスタ110に書き込まれたデータを、演算命令AL4を実行するスロット1043が読み出す場合のシーケンスが示される。ここでは、ロードストア命令LS1~LS3を実行するスロット1040~1042におけるバンク競合を回避するために、ロードストア命令LS2、LS3がストールされた状態が示される。ロードストア命令LS1では、バンクアクセス順序BA1でデータメモリ106にアクセスが行われ、ベクトルレジスタ110に、レジスタアクセス順序RA1でデータが書き込まれる。また、ロードストア命令LS2では、バンクアクセス順序BA2でデータメモリ106にアクセスが行われ、ベクトルレジスタ110に、レジスタアクセス順序RA1でデータが書き込まれる。そして、ロードストア命令LS3では、バンクアクセス順序BA3でデータメモリ106にアクセスが行われ、ベクトルレジスタ110に、レジスタアクセス順序RA1でデータが書き込まれる。ここでは、ロードストア命令LS2が1サイクル分ストールされている。また、ロードストア命令LS3が2サイクル分ストールされている。また、演算命令AL4は、vaddhvr0,vr1vr2であり、論理ベクトルレジスタ番号vr0、vr1に書き込まれたデータ要素を加算して、加算結果のvr2への書き込みを指示する命令である。これに従い、スロット1043は、ベクトルレジスタ110にレジスタアクセス順序RA1でアクセスしてデータを読み出し、演算を行う。たとえば、最初のサイクルでは、物理ベクトルレジスタ番号vr0、63にアクセスが行われる。物理ベクトルレジスタ番号vr0に書き込まれるデータへのアクセスは、ロードストア命令LS3においてサイクルC5で行われる。よって、書込みが終了するのは2サイクル後のC7である。一方、物理ベクトルレジスタ番号vr64に書き込まれるデータへのアクセスは、ロードストア命令LS2においてサイクルC3で行われる。よって、書込みが終了するのは2サイクル後のC5である。よって、この場合、演算命令AL4は、遅い方のサイクルC7の次のC8から開始される。次に、本実施形態によるシーケンスが、図14Bに示される。図14Bでは、ロードストア命令LS2、LS3が、それぞれ競合回避バンクアクセス順序に並べ替えられた状態が示される。ロードストア命令LS2における競合回避バンクアクセス順序は、当初のバンクアクセス順序BA2において、最後にアクセスされるバンクBK0が最初にアクセスされるようにする。よって、バンクアクセス順序BA1になる。また、ロードストア命令LS3における競合回避バンクアクセス順序は、まず、当初のバンクアクセス順序BA3において、最後にアクセスされるバンクBK1が最初にアクセスされるようにする。すると、並べ替え後のロードストア命令LS2との間でバンク競合が生じる。よって、同様の並べ替えが繰り返される。最終的に、競合回避バンクアクセス順序BA1になる。このように、最後にアクセスされるバンクが最初にアクセスされるようにする処理を繰り返すことで、競合回避バンクアクセス順序が求められる。次に、レジスタアクセス順序の並べ替えについて説明する。演算命令AL4は2つのロードストア命令に依存する。複数のロードストア命令に演算命令が依存する場合は、並べ替え制御部1144の動作が、図10、図11において説明した内容とは異なる。この場合、レジスタ管理フラグ616~622により、依存するロードストア命令の実行状態が管理される。図14Cに、具体例が示される。図14Cでは、ロードストア命令LS2を実行するスロット1041用のレジスタ管理フラグ618-0~618-3と、ロードストア命令LS3を実行するスロット1042用のレジスタ管理フラグ620-0~620-3とが示される。ここでは、レジスタ管理フラグ618-0は物理ベクトルレジスタ番号vr64-71に対する処理に、レジスタ管理フラグ618-1は物理ベクトルレジスタ番号vr72-79に対する処理に、レジスタ管理フラグ618-2は物理ベクトルレジスタ番号vr80-87に対する処理に、そして、レジスタ管理フラグ618-3は物理ベクトルレジスタ番号vr88-95に対する処理に、それぞれ対応する。また、レジスタ管理フラグ620-0は物理ベクトルレジスタ番号vr0-7に対する処理に、レジスタ管理フラグ620-1は物理ベクトルレジスタ番号vr8-15に対する処理に、レジスタ管理フラグ620-2は物理ベクトルレジスタ番号vr16-23に対する処理に、そして、レジスタ管理フラグ620-3は物理ベクトルレジスタ番号vr24-31に対する処理に、それぞれ対応する。レジスタ管理フラグ618-0~618-3、620-0~620-3は、それぞれ対応する物理ベクトルレジスタ番号に対するデータ要素の書き込みが終了するサイクルで、レジスタ管理部604によりONが書き込まれる。たとえば、レジスタ管理フラグ618-3はサイクルC4で、レジスタ管理フラグ618-0はサイクルC5で、レジスタ管理フラグ618はサイクルC6で、そして、レジスタ管理フラグ618-2はサイクルC7で、それぞれONになる。また、レジスタ管理フラグ620-2はサイクルC5で、レジスタ管理フラグ620-3はサイクルC6で、レジスタ管理フラグ620-0はサイクルC7で、そして、レジスタ管理フラグ620-1はサイクルC8で、それぞれONになる。一方、演算命令AL4の各サイクルでは、物理ベクトルレジスタ番号vr0とvr[64]、vr8とvr[72]、vr16とvr[80]、というように、64間隔が離れた物理ベクトルレジスタ番号にアクセスされる。これらの物理ベクトルレジスタ番号のペアは、それぞれレジスタ管理フラグのペア618-0、620-0、ペア618-1、620-1、ペア618-2、620-2、及び、ペア618-3、620-3のいずれかに対応する。よって、レジスタ管理部604は、レジスタ管理フラグのペア618-0、620-0、ペア618-1、620-1、ペア618-2、620-2、及び、ペア618-3、620-3のうちいずれかにおいて、両方ともONになったときに、演算命令AL4におけるレジスタアクセス順序を決定する。たとえば、サイクルC6でペア618-3、620-3が、サイクルC7でペア618-0、620-0とペア618-2、620-2が、そして、サイクルC8でペア618-1、620-1が、それぞれ両方ともONになる。よって、このなかでもっとも早いサイクルC6で、レジスタ管理部604は、ペア618-3、620-3に対応する物理ベクトルレジスタ番号へのアクセスを開始するように、レジスタアクセス順序を並べ替える。そして、次のサイクルC7から、並べ替えられた演算命令AL4が開始される。このときの状態が、図14Bに示される。レジスタ管理部604は、並べ替えたレジスタアクセス順序に対応するベクトルレジスタ110のアドレスの生成を、並べ替えアドレス生成部1146に指示する信号を出力する。すると、並べ替えアドレス生成部1146は、アクセスすべきアドレスを生成して、演算命令AL4を実行するスロット1043に送る。また、レジスタ管理部604は、演算命令AL4の発行を指示する信号を、発行タイミング検出部606に伝送する。すると、発行タイミング検出部606は、これをデコーダ108に転送する。そして、デコーダ108は、演算命令AL4をデコードしてスロット1043に送る。これにより、スロット1043は、図14Bに示されるタイミングで、演算命令AL4を実行する。図15は、レジスタアクセス順序の並べ替えの動作手順を示すフローチャート図である。図15に示す手順は、たとえば、1命令サイクル分の命令がフェッチされるごとに実行される。まず、デコーダ108が演算命令をデコードするS1500。そして、依存関係検出部1142が、先行するロードストア命令との依存関係を検出するS1502。依存関係が検出されない場合S1504のNo、演算命令がベクトルパイプライン104で実行されるS1520。一方、依存関係が検出された場合であってS1504のYes、依存する先行命令が1つの場合S1506のYes、アクセス順序制御部602は、先行するロードストア命令のバンクアクセス順序を参照しS1508、演算命令のレジスタアクセス順序を制御するS1510。たとえば、アクセス順序制御部602がレジスタアクセス順序を並べ替え、レジスタ管理部604が処理レジスタ管理フラグ616~622に実行状態を書き込む。そして、演算命令が実行されるS1520。また、依存関係が検出された場合であってS1504のYes、依存する先行命令が2つの場合S1506のNo、S1512のYes、レジスタ管理部604は、処理レジスタ管理フラグ616~622により処理完了レジスタを監視しS1514、レジスタアクセス順序を決定するS1516。そして、レジスタ管理部604は、レジスタアクセスの完了状況を処理レジスタ管理フラグ616~622に書き込んで管理するS1518。そして、演算命令が実行されるS1520。このようにして、1つ、または2つのロードストア命令に演算命令が依存するときであっても、処理が破綻することなく、処理効率低下を回避できる。以上の実施の形態をまとめると、次の付記のとおりである。付記1メモリの複数のバンクに第1のバンクアクセス順序でアクセスする第1の処理部と、前記第1の処理部のアクセスの開始に続いて第2のバンクアクセス順序で前記複数のバンクにアクセスを開始する第2の処理部と、前記第1の処理部及び前記第2の処理部による前記複数のバンクへのアクセスが競合する場合に、前記第2のバンクアクセス順序を前記競合が生じない第3のバンクアクセス順序に並べ替えて前記第2の処理部を前記複数のバンクにアクセスさせる制御部とを備えることを特徴とするプロセッサ。付記2付記1において、前記制御部は、前記第3のバンクアクセス順序による前記第2の処理部の前記複数のバンクへのアクセスの開始タイミングを、前記第1の処理部の前記複数のバンクへのアクセスの開始タイミングから1サイクル後に制御することを特徴とするプロセッサ。付記3付記1または2において、前記第2の処理部は、前記第3のバンクアクセス順序により前記メモリにアクセスして読み出したデータを複数のレジスタに第1のレジスタアクセス順序でアクセスして書き込み、前記複数のレジスタに第2のレジスタアクセス順序でアクセスし、前記書き込まれたデータを読み出す第3の処理部をさらに有し、前記制御部は、前記第2のレジスタアクセス順序を、前記第1のレジスタアクセス順序による書き込みが終了したレジスタから順にアクセスするように制御することを特徴とするプロセッサ。付記4付記3において、前記制御部は、前記第2のバンクアクセス順序と前記第3のバンクアクセス順序とに基づいて前記第2のレジスタアクセス順序を並べ替えることを特徴とするプロセッサ。付記5付記1または2において、前記第1の処理部は、前記第1のバンクアクセス順序により前記メモリにアクセスして読み出したデータを複数のレジスタに第1のレジスタアクセス順序でアクセスして書き込み、前記第2の処理部は、前記第3のバンクアクセス順序により前記メモリにアクセスして読み出したデータを前記複数のレジスタに第2のレジスタアクセス順序でアクセスして書き込み、前記複数のレジスタに第3のレジスタアクセス順序でアクセスし、前記第1及び第2の処理部により書き込まれたデータを読出す第3の処理部をさらに有し、前記制御部は、前記第3のレジスタアクセス順序を、前記第1及び第2の処理部による書き込みが終了したレジスタから順にアクセスするように制御することを特徴とするプロセッサ。付記6付記5において、前記制御部は、前記第1、第2の処理部それぞれの前記複数のレジスタへのアクセスを記録し、当該記録に基づいて前記第3のレジスタアクセス順序を決定するプロセッサ。付記7付記1乃至6のいずれかにおいて、前記第3のバンクアクセス順序では、前記第2のバンクアクセス順序で最後にアクセスされるバンクが他の前記バンクより先にアクセスされるプロセッサ。付記8複数のレジスタに第1のレジスタアクセス順序でアクセスしてデータを書き込む第1の処理部と、前記複数のレジスタに第2のレジスタアクセス順序でアクセスして前記書き込まれたデータを読出す第2の処理部と、前記第2のレジスタアクセス順序を、前記複数のレジスタのうち、読み出すデータの前記第1の処理部による書き込みが終了したレジスタから順にアクセスされる第3のレジスタアクセス順序に並べ替えて、前記第2の処理部に前記複数のレジスタへアクセスさせる制御部とを有するプロセッサ。付記9複数のレジスタに第1のレジスタアクセス順序でアクセスしてデータを書き込む第1の処理部と、前記複数のレジスタに第2のレジスタアクセス順序でアクセスしてデータを書き込む第2の処理部と、前記複数のレジスタに第3のレジスタアクセス順序でアクセスして前記第1、第2の処理部により書き込まれたデータを読出す第3の処理部と、前記第3のレジスタアクセス順序を、前記複数のレジスタのうち、読み出すデータの前記第1、第2の処理部による書き込みが終了したレジスタから順にアクセスするように制御する制御部とを有するプロセッサ。付記10付記9において、前記制御部は、前記第1、第2の処理部それぞれの前記複数のレジスタへのアクセスを記録し、当該記録に基づいて前記第3のレジスタアクセス順序を決定するプロセッサ。付記11メモリの複数のバンクに第1のバンクアクセス順序でアクセスする第1の処理部と、前記第1の処理部のアクセスの開始に続いて第2のバンクアクセス順序で前記複数のバンクにアクセスを開始する第2の処理部とを有するプロセッサの制御方法であって、前記第1の処理部及び前記第2の処理部による前記複数のバンクへのアクセスが競合する場合に、前記第2のバンクアクセス順序を前記競合が生じない第3のバンクアクセス順序に並べ替えて前記第2の処理部を前記複数のバンクにアクセスさせる、プロセッサの制御方法付記12付記11において、前記第2の処理部が、前記第3のバンクアクセス順序により前記メモリにアクセスして読み出したデータを複数のレジスタに第1のレジスタアクセス順序でアクセスして書き込み、前記プロセッサが、前記複数のレジスタに第2のレジスタアクセス順序でアクセスして前記書き込まれたデータを読み出す第3の処理部をさらに有し、前記第2のレジスタアクセス順序を、前記第1のレジスタアクセス順序による書き込みが終了したレジスタから順にアクセスするように制御する、プロセッサの制御方法。付記13付記11において、前記第1の処理部が、前記第1のバンクアクセス順序により前記メモリにアクセスして読み出したデータを複数のレジスタに第1のレジスタアクセス順序でアクセスして書き込み、前記第2の処理部が、前記第3のバンクアクセス順序により前記メモリにアクセスして読み出したデータを前記複数のレジスタに第2のレジスタアクセス順序でアクセスして書き込み、前記プロセッサが、前記複数のレジスタに第3のレジスタアクセス順序でアクセスして前記第1及び第2の処理部により書き込まれたデータを読出す第3の処理部をさらに有し、前記第3のレジスタアクセス順序を、前記第1及び第2の処理部による書き込みが終了したレジスタから順にアクセスするように制御する、プロセッサの制御方法。付記14複数のレジスタに第1のレジスタアクセス順序でアクセスしてデータを書き込む第1の処理部と、前記複数のレジスタに第2のレジスタアクセス順序でアクセスして前記書き込まれたデータを読出す第2の処理部とを有するプロセッサの制御方法であって、前記第2のレジスタアクセス順序を、前記複数のレジスタのうち、読み出すデータの前記第1の処理部による書き込みが終了したレジスタから順にアクセスされるような第3のレジスタアクセス順序に並べ替えて、前記第2の処理部に前記複数のレジスタへのアクセスを実行させる、プロセッサの制御方法。付記15複数のレジスタに第1のレジスタアクセス順序でアクセスしてデータを書き込む第1の処理部と、前記複数のレジスタに第2のレジスタアクセス順序でアクセスしてデータを書き込む第2の処理部と、前記複数のレジスタに第3のレジスタアクセス順序でアクセスして前記第1、第2の処理部により書き込まれたデータを読出す第3の処理部とを有するプロセッサの制御方法であって、前記第3のレジスタアクセス順序を、前記複数のレジスタのうち、読み出すデータの前記第1、第2の処理部による書き込みが終了したレジスタから順にアクセスされるような第4のレジスタアクセス順序に並べ替えて、前記第3の処理部に前記複数のレジスタへのアクセスを実行させる、プロセッサの制御方法。"