多次元の第1行列データをFFT演算する演算部と、前記第1行列データの少なくとも1行の連続する行を含む一部のデータである第2行列データを記憶する第1メモリと、1回のアクセスでアクセスできる最小ビット数を有し、前記第1行列データを記憶する第2メモリと、を具備し、前記演算部は、前記第2行列データを前記最小ビット数以上のサイズの行列データである第3行列データに分割し、前記第3行列データを各々行列転置させ、前記第2行列データを行列転置された前記第3行列データ単位で前記第2メモリに記憶させ、前記第1行列データが行列転置されるように、行列転置された前記第1行列データの少なくとも1行の連続する行を含む一部のデータである第4行列データを前記第3行列データ単位で前記第2メモリから前記第1メモリに記憶させ、前記第1メモリに記憶された前記第4行列データを1行単位でFFT演算することを特徴とする演算装置。前記第3行列データのサイズは前記最小ビット数の自然数倍であることを特徴とする請求項1記載の演算装置。前記第2メモリはSDRAMであり、前記演算部は、前記第2行列データの同行の列順に複数の前記第3行列データを、前記第2メモリの同行列アドレスにバンクアドレス順に記憶させることを特徴とする請求項1または2記載の演算装置。前記演算部は、前記第2行列データの同列の次の行の前記第3行列データを前記第2メモリの同じバンクアドレスの前記第3行列データのサイズに対応する次の行列アドレスに続き記憶させることを特徴とする請求項3記載の演算装置。前記演算部は、前記第2行列データを前記第3行列データ単位で前記第2メモリに記憶させる際に、バンクアドレスが一巡する度に、前記第4行列データのサイズに対応する次の行列アドレスに前記第3行列データを記憶させることを特徴とする請求項4記載の演算装置。演算装置が多次元の第1行列データをFFT演算する演算方法であって、前記第1行列データの少なくとも1行の連続する行を含む一部のデータである第2行列データを、前記第1行列データを記憶する第2メモリに1回のアクセスでアクセスできる最小ビット数以上のサイズの行列データである第3行列データに分割し、前記第3行列データを各々行列転置させるステップと、前記第2行列データを行列転置された前記第3行列データ単位で前記第2メモリに記憶させるステップと、前記第1行列データが行列転置されるように、行列転置された前記第1行列データの少なくとも1行の連続する行を含む一部のデータである第4行列データを前記第3行列データ単位で前記第2メモリから第1メモリに記憶させるステップと、前記第1行列データを1行単位でFFT演算するステップと、を含むことを特徴とする演算方法。多次元の第1行列データをFFT演算するプログラムであって、前記第1行列データの少なくとも1行の連続する行を含む一部のデータである第2行列データを、前記第1行列データを記憶する第2メモリに1回のアクセスでアクセスできる最小ビット数以上のサイズの行列データである第3行列データに分割し、前記第3行列データを各々行列転置させ、前記第2行列データを行列転置された前記第3行列データ単位で前記第2メモリに記憶させ、前記第1行列データが行列転置されるように、行列転置された前記第1行列データの少なくとも1行の連続する行を含む一部のデータである第4行列データを前記第3行列データ単位で前記第2メモリから第1メモリに記憶させ、前記第1行列データを1行単位でFFT演算する処理を、コンピュータに実行させるプログラム。FFT演算する行列データが膨大な場合は、演算装置内の第1メモリ例えば、キャッシュメモリに行列データが収まらない。そこで、演算装置は、演算装置の外部に設けられた第2メモリ例えば、SDRAMに行列データを記憶させる。演算装置は、行列データのうち演算に用いるデータを演算装置内の第1メモリに一次的に格納し、演算を行なう。例えば、キャッシュメモリとSDRAMとの間のデータ転送をバースト転送することで、キャッシュメモリとSDRAMとの間のデータ転送速度を向上させることができる。しかしながら、多次元FFT演算においては、行列転置が行なわれる。この際は、行列の連続しない各点のデータにアクセスすることになる。このため、キャッシュメモリとSDRAMとの間のデータ転送としてバースト転送を用いたとしても高速なデータ転送が行なえない。このため、第1メモリと第2メモリとの間のデータ転送がFFT演算全体のボトルネックになってしまう。このように、行列転置を行なうFFT演算においては、第1メモリと第2メモリとの間のデータ転送がFFT演算全体のボトルネックとなる。本演算装置、演算方法およびプログラムは、FFT演算を高速化することを目的とする。例えば、多次元の第1行列データをFFT演算する演算部と、前記第1行列データの少なくとも1行の連続する行を含む一部のデータである第2行列データを記憶する第1メモリと、1回のアクセスでアクセスできる最小ビット数を有し、前記第1行列データを記憶する第2メモリと、を具備し、前記演算部は、前記第2行列データを前記最小ビット数以上のサイズの行列データである第3行列データに分割し、前記第3行列データを各々行列転置させ、前記第2行列データを行列転置された前記第3行列データ単位で前記第2メモリに記憶させ、前記第1行列データが行列転置されるように、行列転置された前記第1行列データの少なくとも1行の連続する行を含む一部のデータである第4行列データを前記第3行列データ単位で前記第2メモリから前記第1メモリに記憶させ、前記第1メモリに記憶された前記第4行列データを1行単位でFFT演算することを特徴とする演算装置を用いる。例えば、演算装置が多次元の第1行列データをFFT演算する演算方法であって、前記第1行列データの少なくとも1行の連続する行を含む一部のデータである第2行列データを、前記第1行列データを記憶する第2メモリに1回のアクセスでアクセスできる最小ビット数以上のサイズの行列データである第3行列データに分割し、前記第3行列データを各々行列転置させるステップと、前記第2行列データを行列転置された前記第3行列データ単位で前記第2メモリに記憶させるステップと、前記第1行列データが行列転置されるように、行列転置された前記第1行列データの少なくとも1行の連続する行を含む一部のデータである第4行列データを前記第3行列データ単位で前記第2メモリから第1メモリに記憶させるステップと、前記第1行列データを1行単位でFFT演算するステップと、を含むことを特徴とする演算方法を用いる。例えば、多次元の第1行列データをFFT演算するプログラムであって、前記第1行列データの少なくとも1行の連続する行を含む一部のデータである第2行列データを、前記第1行列データを記憶する第2メモリに1回のアクセスでアクセスできる最小ビット数以上のサイズの行列データである第3行列データに分割し、前記第3行列データを各々行列転置させ、前記第2行列データを行列転置された前記第3行列データ単位で前記第2メモリに記憶させ、前記第1行列データが行列転置されるように、行列転置された前記第1行列データの少なくとも1行の連続する行を含む一部のデータである第4行列データを前記第3行列データ単位で前記第2メモリから第1メモリに記憶させ、前記第1行列データを1行単位でFFT演算する処理を、コンピュータに実行させるプログラムを用いる。本演算装置、演算方法およびプログラムによれば、FFT演算を高速化することができる。以下、図面を参考に実施例について説明する。図1は、実施例1に係る演算装置が用いられるシステムの例を示す図である。システムは、アナログデジタルコンバータADC32、演算装置20、デジタル処理装置34および第2メモリ12を備えている。ADC22は、受信したアナログ信号をデジタル化する。演算装置20は、デジタル信号をFFT演算する。演算装置20は、例えば第1メモリ10を内蔵している。演算装置20は、例えばFFT演算専用のLSILargeScaleIntegratedCircuitである。または、例えばFFT演算用にプログラムされたFPGAFieldProgrammableGateArrayである。さらに、例えば、CPUCentralProcessingUnitのように、汎用の演算装置でもよい。さらに、コンピュータでもよい。第2メモリ12は、例えば演算装置20の外部メモリである。第2メモリ12は、例えばSDRAMであり、1回のアクセスでアクセスできる最小ビット数を有している。デジタル処理装置34は、FFT演算されたデジタル信号をデジタル処理する。図1のシステムは、例えば、OFDMOrthogonalFrequencyDivisionMultiplex変復調器等の通信機器、デコーダ等の画像処理機器、スペクトルアナライザ等の計測機器の一部として用いられる。図2は、演算装置のブロック図である。図2のように、演算装置20は、演算部21、入力部22、制御部23、出力部24および第1メモリ10を備えている。演算部21は、デジタルデータをFFT演算する。入力部22は、外部からFFT演算するデジタル信号およびコマンドを受信する。また、第2メモリ12からFFT演算中のデータを受信する。出力部24は、FFT演算したデジタル信号を送信する。また、第2メモリ12にFFT演算中のデータを送信する。第1メモリ10は、演算部21において、FFT演算中のデータを一時格納管する。第1メモリ10は、例えばキャッシュメモリであり、例えばFPGAの内部RAMである。第1メモリ10は、例えばSRAMStaticRAMである。制御部23は、演算部21、入力部22、出力部24および第1メモリ10を制御する。なお、以下の説明では、制御部23の動作は演算部21の動作に含め説明する。内部バス26は、各部間に接続され各部間にデータおよびコマンドを伝送する。次に、2次元FFT演算の例を説明する。図3は、演算装置が行なう処理のフローチャートである。図3のように、入力部22は、2次元行列データを入力するステップS10。入力された2次元行列データは、第2メモリ12または第1メモリ10に格納され、以下の演算中に演算部21に転送および格納される。演算部21は、2次元行列データを行列転置するステップS12。演算部21は、行列転置された2次元行列データの各行毎に1次元FFT演算するステップS14。演算部21は、1次元FFT演算した2次元行列データを行列転置するステップS16。演算部21は、行列転置された2次元行列データの各行毎に1次元FFT演算するステップS18。演算部21は、1次元FFT演算した2次元行列データを行列転置するステップS20。出力部24は、演算した2次元行列データを出力するステップS22。図4aから図6dは、2次元FFT演算の例を示す模式図である。図4aのように、ステップS10において、0からm-1の行と0からn-1列のm行n列の2次元行列データが入力される。2次元行列データには、m×n点のデータがある。図4bのように、ステップS12において、入力された2次元行列データをn行m列の2次元行列データに行列転置する。図5aのように、ステップS14において、0行目のデータを1次元FFT演算する。斜線部が1次元FFT演算する行を示している。図5bのように、次に1行目のデータを1次元FFT演算する。このようにして、図5cのようにn-1行目まで1次元FFT演算する。図6aのように、ステップS16において、各行を1次元FFT演算した2次元行列データをm行n列の2次元行列データに行列転置する。図6bのように、ステップS18において、0行目のデータを1次元FFT演算する。図6cのように、m-1行目まで1次元FFT演算する。図6dのように、ステップS20において、各行を1次元FFT演算した2次元行列データをさらにn行m列の2次元行列データに行列転置する。ステップS22において、行列転置した2次元行列データを出力する。次に、実施例1における演算部21の制御を説明する。2次元行列データである第1行列データは、2n点を含み、各点のデータサイズがmのデータとする。nが偶数の場合、例えば2n/2行2n/2列の行列データである。また、nが奇数の場合、例えば2n/20.5行2n/2-0.5列の行列データである。例えば、n=9の場合、29個すなわち512個のデータが、例えば32行16列状に配置されている。行列の各点にはmbitのデータがある、例えば、各点のデータが16bitで量子化されたデジタルデータの場合、mは16である。さらに、各点のデータが複素数の場合、mは16bit×2=32bitである。2次元行列データを第1メモリ10に記憶させる方法について説明する。第1メモリ10は、FFT演算する2次元行列データを全て記憶する容量を備えていない。一方、第2メモリ12は、2次元行列データを全て記憶する容量を備えている。そこで、演算部21は、2次元行列データを第2メモリ12に記憶させる。図7は、演算部の行なうフローチャートを示す図である。図8aから図9bは、第1メモリ10および第2メモリ12を示す模式図である。図8aのように、第1行列データM1は、2次元FFT演算する2次元行列データである。第1行列データM1が入力部22より入力する、または、第2メモリ12内の領域に格納されている。図8aのように、第1行列データM1は、第2行列データM21~M24に分割されている。第2行列データM21~M24は、第1行列データM1の少なくとも1行の連続する行を含む第1行列データM1の一部のデータである。第2行列データM21~M24は、それぞれ第1メモリ10に格納可能なサイズである。また、第2行列データM21~M24は、例えば互いに同じサイズである。第2行列データM21~M24のサイズは互いに異なっていてもよい。図8bのように、演算部21は、最初の第2行列データM21を第1メモリ10に記憶させるステップS30。演算部21は、第2行列データM21を第3行列データM31~M34に分割するステップS32。第3行列データM31~M34は、それぞれ、最小ビット数以上の大きさの行列データである。例えば、第2メモリ12がSDRAMの場合、データバス幅Wが最小ビット数Bminである。SDRAMにおいては、転送する最初のアドレスを指定すれば、指定されたアドレスからデータバス幅W分の連続するアドレスのデータをアクセスすることができる。また、第2メモリ12がDDRDoubleDataRateSDRAMの場合、データバス幅W×2プリフェチ分が最小ビット数Bminである。この場合、1回のアクセス例えば、1回のアドレス指定で、最小ビット数Bminの連続するアドレスのデータをアクセスできる。さらに、第2メモリ12がDDR2SDRAMの場合、データバス幅W×4が最小ビット数Bminであり、第2メモリ12がDDR3SDRAMの場合、データバス幅W×8が最小ビット数Bminである。このように、最初のアドレスを指定することにより、最初のアドレスから連続するアドレスを有する最小ビット数のデータを読み出しまたは記憶するデータのアクセス方法は、バースト転送またはシーケンシャルアドレスアクセスと呼ばれている。第3行列データの大きさTsizeとしては、最小ビット数Bmin以上とすることができる。さらに、第3行列データの大きさTsizeは、最小ビット数Bminの自然数倍であることが好ましい。第3行列データは、Tpoint=Tsize/mmは、前述の1点当りのデータサイズであるの点を有する。Tpointは2のべき乗であることが好ましい。例えば、Tpoint=2n3とする。この場合、n3が偶数のとき、第3行列データは、例えば2n3/2行2n3/2列の行列となる。n3が奇数のとき、第3行列データは、例えば2n3/20.5行2n3/2-0.5列の行列となる。図8bのように、演算部21は、第3行列データM31~M34を各々行列転置させ、第3行列データm31~m34とするステップS34。図8cのように、演算部21は、第2行列データM21を転置された第3行列データm31~m34単位で第2メモリ12に記憶させるステップS36。演算部21は、第2行列データが最後のデータか判断するステップS38。Yesの場合、終了する。Noの場合、次の第2行列データM22にインクリメントするステップS40。図9aのように、演算部21は、第2行列データM22を第1メモリ10に記憶させるステップS30。演算部21は、第2行列データM22を第3行列データM35~M38に分割するステップS32。演算部21は、第3行列データM35~M38毎に行列転置し、第3行列データm35~m38とするステップS34。演算部21は、第2行列データM22を、第3行列データm35~m38毎に第2メモリ12に記憶させる。図9bのように、このようにして、第1行列データM1中の全ての第3行列データm31~m316が行列転置され、第2メモリ12に記憶される。第2メモリ12に記憶されている2次元行列データを1次元FFT演算する方法について説明する。図10は、演算部21の行なうフローチャートを示す図である。図11aから図12bは、第1メモリ10および第2メモリ12を示す模式図である。図11aから図12bにおいて、1次元FFT演算したデータ領域をハッチングしている。演算部21は、図9bのように第2メモリ12に格納されている第1行列データM1の一部を、図11aのように、第3行列データ毎に第1メモリ10に記憶させるステップS50。このとき、第1行列データM1が行列転置されるように、第4行列データm41を第3行列データ単位で第1メモリ10に記憶させる。図11aのように、例えば、第3行列データm31、m35、m39およびm313を第4行列データm41として第1メモリ10に記憶させる。第4行列データm41の各行は、第1行列データM1が行列転置した行に対応する。すなわち、第4行列データm41の1行目は、図8aの第1行列データM1の1列目に対応する。このように、第4行列データは、行列転置された第1行列データM1の少なくとも1行の連続する行を含む一部のデータである。図11bのように、演算部21は、第4行列データm41の1行目を1次元FFT演算するステップS52。演算部21は、第4行列データm41の最後の行か否かを判断するステップS54。Noの場合、次の行にインクリメントするステップS56。ステップS52に進み、次の行を1次元FFT演算するステップS52。ステップS52においてYesの場合、図11cのように、第4行列データm41の全ての行の1次元FFT演算が終了している。図12aのように、演算部21は第4行列データm41を第3行列データ単位で第2メモリ12に記憶させるステップS58。演算部21は、最後の第4行列データかを判断するステップS60。Noの場合、次の第4行列データにインクリメントするステップS62。ステップS50に進む。ステップS60においてYesの場合、図12bのように、第1行列データm1の全ての行の1次元FFT演算が終了している。演算部21が図7および図10の処理を行うことにより、図3の行列転置と1次元FFT演算を行なうことができる。実施例1によれば、演算部21は、多次元の第1行列データをFFT演算する。図7のステップS32およびS34のように、演算部21は、第2行列データを最小ビット数以上のサイズの行列データである第3行列データに分割し、第3行列データを各々行列転置させる。ステップS36のように、演算部21は、第2行列データを行列転置された第3行列データ単位で第2メモリ12に記憶させる。図10のステップS50のように、演算部21は、第1行列データが行列転置されるように、第3行列データ単位で第4行列データを第1メモリ10に記憶させる。ステップS52のように、演算部21は、第1メモリ10に記憶された第2行列データを1行単位でFFT演算する。このように、第2行列データを第2メモリに1回のアクセスでアクセスできる最小ビット数以上のサイズの第3行列データに分割する。第2メモリ12に、第2行列データを第3行列データ単位で格納する。また、第4行列データを第3行列データ単位で読み出す。これにより、例えばバースト転送を用い高速なデータ転送が行なうことができる。例えば、第1行列データの行列転置の際に、第2メモリ12から第1行列データの全点をランダムアドレスアクセスする場合に比べ、第2メモリ12へのアクセスを効率化できる。第3行列データのサイズは前記最小ビット数の自然数倍であることが好ましい。これにより、例えば、バースト転送した場合に、使用しないデータをアクセスすることを抑制できる。図10のステップS50において、演算部21は、複数の第3行列データを連続するアドレスを用い第2メモリ12から読み出し、第1メモリ10に記憶させることが好ましい。例えば、第2メモリ12の連続するアドレスに格納されている第3行列データを第2メモリ12から第1メモリ10に記憶させる。これにより、例えば、より多くのデータをバースト転送できる。よって、第2メモリ12へのアクセスをより効率化できる。図7のステップS36において、演算部21は、複数の第3行列データを連続するアドレスを用い第2メモリ12から読み出せるように、第2行列データを第2メモリ12に記憶させることが好ましい。実施例2は、実施例1の具体例である。実施例2においては、第2メモリ12は、データバス幅Wが64bitのDDR2SDRAMである。この場合、最小ビット数Bmin=64bit×4=256bitである。第1行列データの点数2n=219=524288であり、210=1024行29=512列の行列である。1点あたりのデータサイズmは16bit×2=32bitである。図13aおよび図13bは、第1行列データを示す模式図である。図13aのように、第1行列データは、1024行512列の行列である。第1行列データM1の上の数は列の番号を、第1行列データM1の左の数は行の番号を示している。第1行列データM1内の数字は、点の番号を示している。点は0~524287まであり、図17まで、点の番号は共通して使用する。第0行の点を0~511、第1行の点を512~1023、第1023行の点を523776~524287とする。図13bを参照し、第3行列データM31~M3129の点数は、最小ビット数Bmin×2/m=256×2/32=16=24である。そこで、例えば、第3行列データを4行4列の行列とする。図7のステップS30において、第1メモリ10に転送する第2行列データM21を、例えば第1行列データM1の4行分とする。第2行列データM21は第3行列データM31~M3128に分割されている。図14aおよび図14bは、第1メモリ内の第3行列データを示す模式図である。図14aを参照し、図7のステップS30において、第2行列データM21が第1メモリ10に転送される。図14bのように、図7のステップS34において、各第3行列データM31~M3128が行列転置され、それぞれ第3行列データm31~m3128となる。例えば、第3行列データM31の0行目の点0、1、2、3が行列転置された第3行列データm31の0列目となる。第3行列データM31の0列目の点0、512、1024、1536が行列転置された第3行列データm31の0行目となる。図15は、SDRAM内の領域を示す模式図である。図15のように、第2メモリ12はバンク0~3を備えている。各バンクは行列RowColumnアドレスが0から順に付されている。1つの行列アドレスのデータサイズは、データバス幅Wのbit数に対応する。すなわち、1つの行列アドレスを指定するとデータバス幅W=64bitのデータを指定することとなる。実施例2においては、点のデータ数m=32bitである。したがって、1つの行列アドレスで2つの点のデータを記憶できる。例えば、図15において、バンク0の行列アドレス0は、点0と512とのデータを格納できる。よって、1つの第3行列データ4行×4行×32bitは8個の行列アドレスに格納できる。図7のステップS36において、第3行列データは、バンクアドレス0の行列アドレス0~7に第3行列データm31を格納する。次に、バンクアドレス1の行列アドレス0~7に第3行列データm32を格納する。このように、バンクアドレスを1インクリメントし、同じ行列アドレスに第3行列データを順に格納する。最後のバンクアドレス3に第3行列データm34を格納した後、最初のバンクアドレス0に戻り、行列アドレスを2048し、第3行列データm35を格納する。同様に、バンクアドレスが一巡する度に行列アドレスを2048し、第3行列データを格納する。最初の第2行列データM21第3行列アドレスm31~m3128を第2メモリ12に格納した後、行列アドレスを8する。同様に次の第2行列データM22の第3行列データm3129~m3256を格納する。以下、最後の第2行列データまで繰り返す。図16は、SDRAM内の領域を示す模式図である。図17aおよび図17bは、第1メモリ内の領域を示す模式図である。図10のステップS50において、SDRAMのバンクアドレス0および行列アドレス0から行列アドレス2047までを第4行列データm41として第1メモリ10に転送する。これにより、第3行列データm31、m3129...m332641が連続して第1メモリ10に転送される。このとき、1つの第3行列データを転送するたびに行列アドレスを8増加させることにより、第3行列データを連続して第1メモリ10に転送できる。図17aのように、第3行列データm1、m3129...m332641が第1メモリ10に記憶される。第4行列データm41の1行目のように、1行目の各点は、順に0、516、1024、1536、2048、2560、3072、3587...323776である。これは、図13aに図示された第1行列データM1の第0列の各点に対応する。このように、第1メモリ10には、図13aに図示された第1行列データM1の第0列から第3列が行列転置され、第0行から第3行として格納される。図10のステップS52において、図17aの第4行列データm41の各行を1次元FFT演算することにより、図13aの第1行列データM1を行列転置した行列の各行を1次元FFT演算することができる。次に、バンクアドレス1とし、行列アドレス0から行列アドレス2047までを第4行列データm42として第1メモリ10に転送する。図17aのように、第3行列データm35、m3133...m332645が第1メモリ10に記憶される。このように、バンクアドレスを1インクリメントし、同じ行列アドレスから第4行列データを第2メモリ12から順に読み出す。第4行列データm42の各行を1次元FFT演算する。最後のバンクアドレス3から第4行列データm44を読み出した後、最初のバンクアドレス0に戻り、行列アドレスを2048し、第4行列データを読み出す。同様に、バンクアドレスが一巡する度に行列アドレスを2048し、第4行列データを読み出す。以下、最後の第4行列データまで繰り返す。実施例2によれば、演算部21が第2行列データの同行の列順に複数の第3行列データを、第2メモリ12の同行列アドレスにバンクアドレス順に記憶させる。例えば、図15のように、第3行列データを同行の列順m31~m34で第2メモリ12の同行列アドレス0にバンクアドレス順0~3に記憶させる。これにより、バンクアドレスを切り替えながら行列アドレスは変えずに第2行列データを第2メモリ12に記憶できるため、オーバーヘッドを縮小できる。また、演算部21は、第2行列データの同列の次の行の第3行列データを第2メモリ12の同じバンクアドレスの第3行列データのサイズに対応する次の行列アドレスに続き記憶させる。例えば、図15のように、第2行列データの同列の次の行の第3行列データm3129を、同じバンクアドレス0の第3行列データのサイズに対応する次の行列アドレス8に続き記憶させる。これにより、図10のステップS50において、図16のように、同じバンクアドレスの行列アドレス順に第3行列データを第1メモリ10に転送することにより、図17aのように、第1行列データを行列転置することができる。このように、図15において、第2行列データを格納する度に行列アドレスを増加させる8は、第3行列データのデータサイズ/SDRAMの1アドレスのサイズに対応する。例えば、第3行列データのサイズは、4×4×32=512bitである。SDRAMの行列アドレスのサイズは、SDRAMのデータバス幅W=64bitである。よって、第2行列データを格納する度に行列アドレスを512/64=8増加させればよい。さらに、演算部21は、第2行列データを第3行列データ単位で第2メモリ12に記憶させる際に、バンクアドレスが一巡する度に、第4行列データのサイズに対応する次の行列アドレスに第3行列データを記憶させる。例えば、図15において、バンクアドレスが一巡する度に増加させる行列アドレスは、2048である。これは、例えば第2行列データM21を第2メモリ12に記憶させた後に、次の第2行列データM22を第2メモリに記憶させた際に、行列アドレスに隙間無くデータが埋まるための数字である。すなわち、第3行列データm31、m3129...m332641が隙間無く埋まる行列アドレスである。これは、図16のように第4行列データm41のサイズに対応する。第4行列データm41は、図17aのように、図13aに示した第1行列データM1の列1024×第3行列データの行4=4096点を含んでいる。各点は、32bitであるから、第4行列データm41のサイズは、1024×4×32bitである。一方、1つの行列アドレスのサイズは、64bitである。よって、バンクアドレスが一巡する度に増加させる行列アドレス1024×4×32/64=2048である。これにより、図16のように、第2メモリ12に第4行列データを隙間無く埋めることができる。このように、実施例2の一例においては、第2メモリ12から第1メモリ10に連続したアドレスを用いデータを転送することにより、SDRAMライトアクセス効率を40にすることができる。仮に、第1行列データの行列転置を全てランダムアクセスで行なう場合、SDRAMライトアクセス効率は1である。さらに、第2行列データを第2メモリ12に記憶する際に、オーバーヘッドを縮小できる効果を加えると、SDRAMライトアクセス効率を60にすることができる。実施例1および実施例2において、2次元FFT演算を例に説明したが、多次元FFT演算でもよい。以上、本発明の実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形変更が可能である。実施例1および2を含む実施形態に関し、さらに以下の付記を開示する。付記1:多次元の第1行列データをFFT演算する演算部と、前記第1行列データの少なくとも1行の連続する行を含む一部のデータである第2行列データを記憶する第1メモリと、1回のアクセスでアクセスできる最小ビット数を有し、前記第1行列データを記憶する第2メモリと、を具備し、前記演算部は、前記第2行列データを前記最小ビット数以上のサイズの行列データである第3行列データに分割し、前記第3行列データを各々行列転置させ、前記第2行列データを行列転置された前記第3行列データ単位で前記第2メモリに記憶させ、前記第1行列データが行列転置されるように、行列転置された前記第1行列データの少なくとも1行の連続する行を含む一部のデータである第4行列データを前記第3行列データ単位で前記第2メモリから前記第1メモリに記憶させ、前記第1メモリに記憶された前記第4行列データを1行単位でFFT演算することを特徴とする演算装置。付記2:前記第3行列データのサイズは前記最小ビット数の自然数倍であることを特徴とする付記1記載の演算装置。付記3:前記演算部は、複数の前記第3行列データを連続したアドレスで前記第2メモリから読み出せるように、前記第2行列データを転置された前記第3行列データ単位で前記第2行列データを前記第2メモリに記憶させることを特徴とする付記1または2記載の演算装置。付記4:前記第2メモリはSDRAMであり、前記演算部は、前記第2行列データの同行の列順に複数の前記第3行列データを、前記第2メモリの同行列アドレスにバンクアドレス順に記憶させることを特徴とする付記1から3のいずれか一項記載の演算装置。付記4:前記演算部は、前記第2行列データの同列の次の行の前記第3行列データを前記第2メモリの同じバンクアドレスの前記第3行列データのサイズに対応する次の行列アドレスに続き記憶させることを特徴とする付記4記載の演算装置。付記6:前記第3行列データのサイズに対応する行列アドレスは、第3行列データのサイズ/データバス幅であることを特徴とする付記5記載の演算装置。付記7:前記演算部は、前記第2行列データを前記第3行列データ単位で前記第2メモリに記憶させる際に、バンクアドレスが一巡する度に、前記第4行列データのサイズに対応する次の行列アドレスに前記第3行列データを記憶させることを特徴とする付記5記載の演算装置。付記8:前記第4行列データのサイズに対応する行列アドレスは、前記第1行列データの列数×前記第3行列データの行数×各行列の1点当りのデータサイズ/データバス幅であることを特徴とする付記7記載の演算装置。付記9:演算装置が多次元の第1行列データをFFT演算する演算方法であって、前記第1行列データの少なくとも1行の連続する行を含む一部のデータである第2行列データを、前記第1行列データを記憶する第2メモリに1回のアクセスでアクセスできる最小ビット数以上のサイズの行列データである第3行列データに分割し、前記第3行列データを各々行列転置させるステップと、前記第2行列データを行列転置された前記第3行列データ単位で前記第2メモリに記憶させるステップと、前記第1行列データが行列転置されるように、行列転置された前記第1行列データの少なくとも1行の連続する行を含む一部のデータである第4行列データを前記第3行列データ単位で前記第2メモリから第1メモリに記憶させるステップと、前記第1行列データを1行単位でFFT演算するステップと、を含むことを特徴とする演算方法。付記10:多次元の第1行列データをFFT演算するプログラムであって、前記第1行列データの少なくとも1行の連続する行を含む一部のデータである第2行列データを、前記第1行列データを記憶する第2メモリに1回のアクセスでアクセスできる最小ビット数以上のサイズの行列データである第3行列データに分割し、前記第3行列データを各々行列転置させ、前記第2行列データを行列転置された前記第3行列データ単位で前記第2メモリに記憶させ、前記第1行列データが行列転置されるように、行列転置された前記第1行列データの少なくとも1行の連続する行を含む一部のデータである第4行列データを前記第3行列データ単位で前記第2メモリから第1メモリに記憶させ、前記第1行列データを1行単位でFFT演算する処理を、コンピュータに実行させるプログラム。