Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4597640B2 - FDTD computing device and FDTD computing method - Google Patents
[go: Go Back, main page]

JP4597640B2 - FDTD computing device and FDTD computing method - Google Patents

FDTD computing device and FDTD computing method Download PDF

Info

Publication number
JP4597640B2
JP4597640B2 JP2004331127A JP2004331127A JP4597640B2 JP 4597640 B2 JP4597640 B2 JP 4597640B2 JP 2004331127 A JP2004331127 A JP 2004331127A JP 2004331127 A JP2004331127 A JP 2004331127A JP 4597640 B2 JP4597640 B2 JP 4597640B2
Authority
JP
Japan
Prior art keywords
data
calculation
buffer memory
block
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004331127A
Other languages
Japanese (ja)
Other versions
JP2006139723A (en
Inventor
秀俊 鈴木
良 山口
真司 上林
雄太 高儀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Docomo Inc filed Critical NTT Docomo Inc
Priority to JP2004331127A priority Critical patent/JP4597640B2/en
Publication of JP2006139723A publication Critical patent/JP2006139723A/en
Application granted granted Critical
Publication of JP4597640B2 publication Critical patent/JP4597640B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

本発明はFDTD演算装置、FDTD演算方法に関し、特にアンテナの特性や、人体を模擬した誘電体に電波を照射した時の吸収量をシミュレータで評価する等の電磁界シミュレーション全般に用いるFDTD演算装置、FDTD演算方法に関する。   The present invention relates to an FDTD arithmetic apparatus and an FDTD arithmetic method, and more particularly to an FDTD arithmetic apparatus used in general electromagnetic field simulation such as evaluating characteristics of an antenna and absorption amount when a radio wave is irradiated on a dielectric simulating a human body, The present invention relates to an FDTD calculation method.

FDTD(Finit Defference Time Domain Method)法とは、解析する領域をセルと呼ばれる格子状の立方体のブロックで分割し、各辺上に電界を、各面の中心に垂直方向に磁界を割り当ててマクスウェルの方程式を解くことにより、解析領域内における電界、磁界の空間的・時間的な変化を表現する電磁界シミュレーション手法である。本手法はFortranやC等のプログラミング言語を用いて実現されている。   The FDTD (Finite Difference Time Domain Method) method divides a region to be analyzed into blocks of lattice cubes called cells, assigns an electric field on each side, and assigns a magnetic field in the vertical direction to the center of each surface. It is an electromagnetic field simulation technique that expresses spatial and temporal changes of electric and magnetic fields in the analysis region by solving equations. This method is implemented using programming languages such as Fortran and C.

FDTD法の概要を図13に示す。同図(a)は解析対象となる領域を示す図である。解析対象となる領域を格子状のセルで分割した場合において、その分割した1つのセルが同図中の破線円内に示されている。このセルの1つに着目した拡大図が同図(b)である。同図(b)において、白抜き矢印は電界、黒塗り矢印は磁界を示しており、電界によって磁界が発生している。同図(c)を参照すると、面Sにおいて、電界Ey及び電界Exによって、磁界Hzが発生している。セルを構成する他の面についても同様に、電界によって磁界が発生することになる。また、この発生した磁界によって、電界が発生する。その様子が同図(d)に示されている。同図(d)では、磁界Hx及びHyによって、電界Ezが発生している。
このように、電界によって磁界が発生し、磁界によって電界が発生することに鑑み、FDTD法では次に示すマクスウェルの方程式を差分計算し、電界・磁界の値を順次計算することによって電磁界の変化を計算する。
An outline of the FDTD method is shown in FIG. FIG. 4A shows a region to be analyzed. When a region to be analyzed is divided by lattice-like cells, one divided cell is shown in a broken-line circle in FIG. An enlarged view focusing on one of the cells is FIG. In FIG. 2B, the white arrow indicates an electric field, and the black arrow indicates a magnetic field, and a magnetic field is generated by the electric field. Referring to FIG. 3C, a magnetic field Hz is generated on the surface S by the electric field Ey and the electric field Ex. Similarly, a magnetic field is generated by the electric field on the other surfaces constituting the cell. An electric field is generated by the generated magnetic field. This is shown in FIG. In FIG. 4D, an electric field Ez is generated by the magnetic fields Hx and Hy.
Thus, in view of the fact that a magnetic field is generated by an electric field and the electric field is generated by a magnetic field, the FDTD method calculates the difference of the following Maxwell's equations and sequentially calculates the electric field and magnetic field values to change the electromagnetic field. Calculate

Figure 0004597640
Figure 0004597640

磁界から電界を計算する式および電界から磁界を計算する式を示す。磁界から電界を計算する際には、1時間ステップ前の同じ位置の電界値とその周りを囲むように位置する磁界(4パラメータ)および3係数(Cex、Cey、Cez等)から計算され、電界から磁界を計算する際には、1時間ステップ前の同じ位置の磁界値とその周りを囲むように位置する電界(4パラメータ)および3係数(Chx、Chy、Chz等)から計算される。
電界の演算式は以下の通りである。
An expression for calculating an electric field from a magnetic field and an expression for calculating a magnetic field from the electric field are shown. When calculating the electric field from the magnetic field, the electric field is calculated from the electric field value at the same position one hour before and the surrounding magnetic field (four parameters) and three coefficients (Cex, Cey, Cez, etc.) The magnetic field is calculated from the magnetic field value at the same position one hour before and the electric field (four parameters) and the three coefficients (Chx, Chy, Chz, etc.) positioned so as to surround it.
The calculation formula of the electric field is as follows.

Figure 0004597640
Figure 0004597640

ただし、以下に示すCex、Cey、Cez、Cexly、Cexlz、Ceylx、Ceylz、Cezlx、および、Cezlyはセルの位置に依存する定数である。   However, Cex, Cey, Cez, Cexly, Cexlz, Ceylx, Ceylz, Cezlx, and Cezly shown below are constants depending on the position of the cell.

Figure 0004597640
Figure 0004597640

磁界の演算式は以下の通りである。   The calculation formula of the magnetic field is as follows.

Figure 0004597640
Figure 0004597640

ただし、以下に示すChx、Chy、Chz、Chxly、Chxlz、Chylx、Chylz、Chzlx、および、Chzlyはセルの位置に依存する定数である。   However, Chx, Chy, Chz, Chxly, Chxlz, Chylx, Chylz, Chzlx, and Chzly shown below are constants depending on the position of the cell.

Figure 0004597640
Figure 0004597640

ここで、括弧内の数値は、x座標、y座標、z座標、の位置を示し、それぞれの変数の意味は次表のとおりである。   Here, the numerical values in parentheses indicate the positions of the x coordinate, the y coordinate, and the z coordinate, and the meaning of each variable is as shown in the following table.

Figure 0004597640
Figure 0004597640

なお、特許文献1には、プリント基板を設計する際に、FDTD法による電磁界シミュレータを用いて放射パターンを求めた旨が記載されており、様々な製品の設計の際にFDTD法が用いられる。
特開2002−24312号公報(段落[0066])
Patent Document 1 describes that a radiation pattern was obtained using an electromagnetic field simulator based on the FDTD method when designing a printed circuit board, and the FDTD method is used when designing various products. .
JP 2002-24312 A (paragraph [0066])

FDTD法を、プログラム言語で記述して実現する場合、コンピュータの自動制御により計算が進行し、メモリ読込みおよび書き込みに関する制御は不要である。その一方、並列計算ではないため各セルを1つ1つ順番に計算することになる。
しかし、FDTD法は、解析領域を細かく分割して、1セル毎に逐次計算を行うため、計算機資源(メモリ)を多く必要とし、計算には長時間を要することが判っている。
When the FDTD method is described and realized in a program language, calculation proceeds by automatic control of a computer, and control regarding memory reading and writing is unnecessary. On the other hand, since it is not parallel calculation, each cell is calculated one by one.
However, since the FDTD method divides the analysis region into fine pieces and sequentially performs calculation for each cell, it is known that a lot of computer resources (memory) are required and the calculation takes a long time.

そのため、高速化することの一手法として、計算機で実現していたアルゴリズムをFPGA(Field Programmable Gate Array)に実装して並列計算を行うことによる高速化の検討がなされている。
FPGAは大規模データの高速処理用および科学技術演算のアクセラレータとして使用可能な汎用演算器である。処理データの保存用として外部メモリを有しており、並列演算時の一時保存用としてバッファメモリを有している。FPGA並列演算器の構成の概要を図14に、FPGAにFDTD法を適用した場合の処理フローを図15に示す。
Therefore, as one method for speeding up, studies have been made on speeding up by implementing an algorithm implemented by a computer in an FPGA (Field Programmable Gate Array) and performing parallel computation.
The FPGA is a general-purpose computing unit that can be used for high-speed processing of large-scale data and as an accelerator for scientific and technical computation. An external memory is provided for storing processing data, and a buffer memory is provided for temporary storage during parallel computation. FIG. 14 shows an outline of the configuration of the FPGA parallel computing unit, and FIG. 15 shows a processing flow when the FDTD method is applied to the FPGA.

図14を参照すると、FPGA並列演算器は、演算対象となるデータ全体を記憶しておくための外部メモリ1と、この外部メモリ1に記憶されているデータのうち1回の演算対象となるデータを読み出して記憶するためのバッファメモリ2と、バッファメモリ2に記憶されているデータについて並列演算を行うCPUとして機能するFPGA部3とを含んで構成されている。   Referring to FIG. 14, the FPGA parallel computing unit includes an external memory 1 for storing the entire data to be computed, and data to be computed once among the data stored in the external memory 1. Are read and stored, and an FPGA unit 3 that functions as a CPU that performs a parallel operation on the data stored in the buffer memory 2 is configured.

図15を参照すると、最初に、初期データを外部メモリ1に書き込む(ステップS1)。次に、外部メモリから演算対象となるデータを読み出し(ステップS2)、そのデータをバッファメモリ2に一時保存する(ステップS3)。
この状態において、バッファメモリ2に記憶されているデータを用いて、FPGAで並列演算を行う(ステップS4)。この演算結果を外部メモリ1に書き込む(ステップS5)。その後、演算が終了したかどうか判断し(ステップS6)、演算終了まで、ステップS2からステップS5までを繰返し実行する。
Referring to FIG. 15, first, initial data is written in the external memory 1 (step S1). Next, data to be calculated is read from the external memory (step S2), and the data is temporarily stored in the buffer memory 2 (step S3).
In this state, using the data stored in the buffer memory 2, parallel operation is performed by the FPGA (step S4). This calculation result is written in the external memory 1 (step S5). Thereafter, it is determined whether or not the calculation is completed (step S6), and steps S2 to S5 are repeatedly executed until the calculation is completed.

ところで、図14に示されているようにFPGA並列演算器を構成した場合、FPGA部3から外部メモリ1へのアクセス時間は、FPGA部3からバッファメモリ2へのアクセス時間よりも長いので、この外部メモリ1へのアクセス時間が演算処理時間の大勢を占めることになる。例えば、演算処理全体にかかる処理時間の割合は、図15中のステップS2:ステップS3:ステップS4において、約20:3:5の割合である。このため、演算処理時間の短縮が困難である、という問題点がある。
本発明は上述した従来技術の問題点を解決するためになされたものであり、その目的は演算処理時間を短縮することのできるFDTD演算装置、FDTD演算方法を提供することである。
By the way, when the FPGA parallel computing unit is configured as shown in FIG. 14, the access time from the FPGA unit 3 to the external memory 1 is longer than the access time from the FPGA unit 3 to the buffer memory 2. The access time to the external memory 1 occupies most of the processing time. For example, the ratio of the processing time for the entire calculation process is approximately 20: 3: 5 in step S2: step S3: step S4 in FIG. For this reason, there is a problem that it is difficult to shorten the processing time.
The present invention has been made to solve the above-described problems of the prior art, and an object of the present invention is to provide an FDTD arithmetic apparatus and an FDTD arithmetic method that can reduce the arithmetic processing time.

本発明の請求項1によるFDTD演算装置は、解析対象となる領域を市松模様状に第1ブロック群と第2ブロック群とからなる格子状の複数のブロックによって分割し、この分割した各ブロックの各辺に電界及び磁界の一方を、前記各ブロックの各面に他方を割り当ててマクスウェルの方程式を解く演算を行うことにより、前記領域内における電界及び磁界の空間的及び時間的な変化を得るためのFDTD演算装置であって、
外部メモリから読み込んだデータを記憶するバッファ記憶手段と、
前記解析対象となる領域を構成する複数のブロックについて前記第1ブロックに対応するデータのうち、前記バッファ記憶手段に既に記憶されており次の回の演算において前記第1ブロック群の各辺のうち、それらにそれぞれ隣接する前記第2ブロック群の各辺に接する辺に対応するデータを再利用データとし、前記再利用データ以外のデータを読み込むデータ読み込み手段と、前記バッファ記憶手段に記憶されているデータを用いて前記演算を行う演算手段とを含むことを特徴とする。解析対象となる領域を構成する複数のブロックについてその配列の1つおきのブロックに対応するデータのうち、バッファメモリに既に記憶されており次の回の演算において用いるデータ以外のデータを読み込むようにしたので、外部メモリへのアクセス回数が少なくなり、演算時間を短縮できる。
The FDTD arithmetic unit according to claim 1 of the present invention divides an area to be analyzed into a checkered pattern by a plurality of grid-like blocks including a first block group and a second block group, and each of the divided blocks is divided. one of electric and magnetic fields to each side, by performing an operation to solve Maxwell's assigning the other on each side of the blocks, for obtaining a spatial and temporal changes in the electric field and magnetic field in the region FDTD arithmetic unit,
Buffer storage means for storing data read from external memory;
Of the data corresponding to the first block group for a plurality of blocks constituting the region to be analyzed, the data is already stored in the buffer storage means and is calculated for each side of the first block group in the next calculation. Among them, data corresponding to the sides in contact with each side of the second block group adjacent to each other is used as reuse data, and is stored in the data storage means for reading data other than the reuse data and the buffer storage means. And calculating means for performing the calculation using existing data. Among the data corresponding to every other block in the array for the plurality of blocks constituting the analysis target area, data other than the data already stored in the buffer memory and used in the next calculation is read. As a result, the number of accesses to the external memory is reduced and the computation time can be shortened.

本発明の請求項2によるFDTD演算装置は、請求項1において、前記データ読み込み手段は、前記複数のブロックのうち前記領域の端部に位置するブロックについて奇数番目のもの及び偶数番目のもののいずれか一方に対応するデータを読み込み、次の回は他方に対応するデータを読み込むことを特徴とする。奇数番目のデータ、偶数番目のデータを交互に読み込むことにより、重複して用いるデータ以外のデータを読み込んで演算することができ、外部メモリへのアクセス回数を少なくすることができ、演算時間を短縮できる。   According to a second aspect of the present invention, in the FDTD arithmetic apparatus according to the first aspect, the data reading means is either an odd-numbered one or an even-numbered one of the plurality of blocks located at the end of the region. Data corresponding to one is read, and data corresponding to the other is read the next time. By alternately reading odd-numbered data and even-numbered data, data other than redundantly used data can be read and calculated, the number of accesses to the external memory can be reduced, and calculation time is reduced. it can.

本発明の請求項3によるFDTD演算装置は、請求項1又は2において、前記演算において固定的に使用するパラメータを、該演算の間、前記バッファ記憶手段に固定的に記憶させておくことを特徴とする。固定的に使用するパラメータを、バッファメモリに固定的に記憶させておくことにより、外部メモリへのアクセス回数を少なくすることができ、演算時間をより短縮できる。   According to a third aspect of the present invention, the FDTD arithmetic apparatus according to the first or second aspect is characterized in that, in the first or second aspect, the parameters that are used fixedly in the calculation are fixedly stored in the buffer storage means during the calculation. And By storing fixedly used parameters in the buffer memory, the number of accesses to the external memory can be reduced, and the calculation time can be further shortened.

本発明の請求項4によるFDTD演算方法は、解析対象となる領域を市松模様状に第1ブロック群と第2ブロック群とからなる格子状の複数のブロックによって分割し、この分割した各ブロックの各辺に電界及び磁界の一方を、前記各ブロックの各面に他方を割り当ててマクスウェルの方程式を解く演算を、バッファメモリと該バッファメモリよりもアクセス時間が長い外部メモリとに対するデータ読み込みを制御する並列演算機によって行うことにより、前記領域内における電界及び磁界の空間的及び時間的な変化を得るためのFDTD演算方法であって、
前記並列演算機によって、前記外部メモリから読み込んだデータをバッファメモリに記憶する記憶ステップと、
前記並列演算機によって、前記解析対象となる領域を構成する複数のブロックについて前記第1ブロックに対応するデータのうち、前記バッファメモリに既に記憶されており次の回の演算において前記第1ブロック群の各辺のうち、それらにそれぞれ隣接する前記第2ブロック群の各辺に接する辺に対応するデータを再利用データとし、前記再利用データ以外のデータを、前記外部メモリから前記バッファメモリに読み込むデータ読み込みステップと、前記並列演算機によって、前記バッファメモリに記憶されているデータを用いて前記演算を行う演算ステップとを含むことを特徴とする。解析対象となる領域を構成する複数のブロックについてその配列の1つおきのブロックに対応するデータのうち、バッファメモリに既に記憶されており次の回の演算において用いるデータ以外のデータを読み込むようにしたので、外部メモリ1へのアクセス回数が少なくなり、演算時間を短縮できる。
The FDTD calculation method according to claim 4 of the present invention divides a region to be analyzed into a checkered pattern by a plurality of grid-like blocks including a first block group and a second block group, and each of the divided blocks is divided. Controls reading of data into the buffer memory and an external memory having a longer access time than the buffer memory, by assigning one of an electric field and a magnetic field to each side and assigning the other to each side of each block to solve Maxwell's equations An FDTD calculation method for obtaining a spatial and temporal change of an electric field and a magnetic field in the region by performing by a parallel calculator ,
A storage step of storing data read from the external memory in the buffer memory by the parallel computing unit ;
Of the data corresponding to the first block group for the plurality of blocks constituting the region to be analyzed by the parallel computing device, the data is already stored in the buffer memory, and the first block in the next computation Among the sides of the group, the data corresponding to the sides in contact with the sides of the second block group adjacent to each other is used as reuse data, and data other than the reuse data is transferred from the external memory to the buffer memory. A data reading step to be read; and a calculation step of performing the calculation using the data stored in the buffer memory by the parallel calculator . Among the data corresponding to every other block in the array for the plurality of blocks constituting the analysis target area, data other than the data already stored in the buffer memory and used in the next calculation is read. As a result, the number of accesses to the external memory 1 is reduced, and the calculation time can be shortened.

以上説明したように本発明は、解析対象となる領域を構成する複数のブロックについてその配列の1つおきのブロックに対応するデータのうち、バッファメモリに既に記憶されており次の回の演算において用いるデータ以外のデータを読み込むようにしたので、演算時間を短縮することができるという効果がある。   As described above, according to the present invention, among the data corresponding to every other block in the array, a plurality of blocks constituting the region to be analyzed are already stored in the buffer memory and are calculated in the next calculation. Since data other than the data to be used is read, there is an effect that the calculation time can be shortened.

以下、本発明の実施の形態を、図面を参照して説明する。なお、以下の説明において参照する各図では、他の図と同等部分は同一符号によって示されている。
本実施の形態では、4行4列(N行M列のN=4、M=4)のセルブロック構成の場合について説明する。
(実施の形態)
図1は電界Ezを計算するためのセルブロック構成例を、図2は電界Exを計算するためのセルブロック構成例を、図3は電界Eyを計算するためのセルブロック構成例を、図4は磁界Hzを計算するためのセルブロック構成例を、図5は磁界Hxを計算するためのセルブロック構成例を、図6は磁界Hyを計算するためのセルブロック構成例を、それぞれ示す図である。
Hereinafter, embodiments of the present invention will be described with reference to the drawings. In the drawings referred to in the following description, the same parts as those in the other drawings are denoted by the same reference numerals.
In this embodiment, a case of a cell block configuration of 4 rows and 4 columns (N rows and M columns, N = 4, M = 4) will be described.
(Embodiment)
1 shows a cell block configuration example for calculating the electric field Ez, FIG. 2 shows a cell block configuration example for calculating the electric field Ex, FIG. 3 shows a cell block configuration example for calculating the electric field Ey, and FIG. Is a diagram showing a cell block configuration example for calculating the magnetic field Hz, FIG. 5 is a diagram showing a cell block configuration example for calculating the magnetic field Hx, and FIG. 6 is a diagram showing a cell block configuration example for calculating the magnetic field Hy. is there.

図1において、黒塗り矢印は電界Ez、白抜き矢印及び網掛け矢印は、磁界Hx又は磁界Hy,を示している。図2において、黒塗り矢印は電界Ex、白抜き矢印及び網掛け矢印は、磁界Hy又は磁界Hz,を示している。図3において、黒塗り矢印は電界Ey、白抜き矢印及び網掛け矢印は、磁界Hx又は磁界Hz,を示している。
図4において、黒塗り矢印は磁界Hz、白抜き矢印及び網掛け矢印は、電界Ex又は電界Ey,を示している。図5において、黒塗り矢印は磁界Hx、白抜き矢印及び網掛け矢印は、電界Ey又は電界Ez,を示している。図6において、黒塗り矢印は磁界Hy、白抜き矢印及び網掛け矢印は、電界Ex又は電界Ez,を示している。
In FIG. 1, black arrows indicate the electric field Ez, white arrows and shaded arrows indicate the magnetic field Hx or the magnetic field Hy. In FIG. 2, black arrows indicate the electric field Ex, white arrows and shaded arrows indicate the magnetic field Hy or the magnetic field Hz. In FIG. 3, black arrows indicate the electric field Ey, white arrows and shaded arrows indicate the magnetic field Hx or the magnetic field Hz.
In FIG. 4, the black arrow indicates the magnetic field Hz, and the white arrow and the shaded arrow indicate the electric field Ex or the electric field Ey. In FIG. 5, black arrows indicate the magnetic field Hx, white arrows and shaded arrows indicate the electric field Ey or the electric field Ez. In FIG. 6, the black arrow indicates the magnetic field Hy, and the white arrow and the shaded arrow indicate the electric field Ex or the electric field Ez.

(重複データ以外のデータの読み込み)
ところで、図1〜図6にそれぞれ示されているセルブロック構成においては、白抜きで示されているブロックと網掛けで示されているブロックとが交互に市松模様状に配列されている。ここで、図3に注目すると、白抜きで示されているブロック全てを構成する辺に対応するデータを用いて第1回目の演算を行った後、網掛けで示されているブロック全てを構成する辺に対応するデータを用いて第2回目の演算を行い、合計2回の演算を1セットとして、同図のセルブロック構成について演算を行う場合を考える。
(Reading data other than duplicate data)
By the way, in the cell block configuration shown in FIGS. 1 to 6, the blocks shown in white and the blocks shown in shaded are alternately arranged in a checkered pattern. Here, paying attention to FIG. 3, after performing the first calculation using data corresponding to the sides constituting all the blocks shown in white, all the blocks shown in shaded are constituted. Consider a case where the second calculation is performed using data corresponding to the edge to be performed, and the calculation is performed on the cell block configuration of FIG.

その場合、第1回目の演算と第2回目の演算とで重複して利用するデータが存在する。この重複するデータについては、第1回目の演算の前に外部メモリからバッファメモリに読み込んでいるので、それを第2回目の演算に用いる(1時間ステップ前に使用した値を用いる)。このため、第2回目の演算の前には重複して利用するデータ以外のデータをバッファメモリに読み込むようにすれば、外部メモリへのアクセス回数が少なくなり、演算時間を短縮できる。
第1回目の演算の前に外部メモリからバッファメモリに読み込むデータについて図7を、第2回目の演算の前に外部メモリからバッファメモリに読み込むデータについて図8を、それぞれ参照して説明する。
In that case, there is data that is used redundantly in the first calculation and the second calculation. Since this duplicated data is read from the external memory into the buffer memory before the first calculation, it is used for the second calculation (the value used before one time step is used). Therefore, if data other than redundantly used data is read into the buffer memory before the second calculation, the number of accesses to the external memory is reduced, and the calculation time can be shortened.
The data read from the external memory to the buffer memory before the first calculation will be described with reference to FIG. 7, and the data read from the external memory to the buffer memory before the second calculation will be described with reference to FIG.

図7を参照すると、第1回目の演算においては、白抜きで示されているブロックを演算対象とするので、その演算の前に外部メモリからバッファメモリに読み込むデータは、
磁界Hx(1)、Hx(3)、Hx(5)〜Hx(8)、Hx(9)〜Hx(12)、Hx(13)〜Hx(16)、Hx(18)、及び、Hx(20)、
磁界Hz(1)〜Hz(4)、Hz(7)〜Hz(10)、Hz(11)〜Hz(14)、及び、Hz(17)〜Hz(20)、
電界Ey(1)、Ey(3)、Ey(6)、Ey(8)、Ey(9)、Ey(11)、Ey(14)、及び、Ey(16)、
である。これらに対応するデータ全てを外部メモリからバッファメモリに読み込むことになる。ここで、第2回目の演算に用いるデータは、同図中の網掛けで示されているブロックである。この網掛けで示されているブロックに注目すると、第1回目の演算に用いるデータと大部分が共通する。すなわち、
磁界Hx(5)〜Hx(8)、Hx(9)〜Hx(12)、Hx(13)〜Hx(16)、
磁界Hz(2)〜Hz(4)、Hz(7)〜Hz(9)、Hz(12)〜Hz(14)、Hz(17)〜Hz(19)、
については、第1回目の演算で用いた後、同じデータを第2回目の演算でも共通して用いることになる。そこで、この共通して用いるデータについては、外部メモリから再度読み込むのではなく、バッファメモリに既に記憶されているデータをそのまま用いる。
Referring to FIG. 7, in the first calculation, since the blocks shown in white are the calculation target, the data read from the external memory to the buffer memory before the calculation is
Magnetic fields Hx (1), Hx (3), Hx (5) to Hx (8), Hx (9) to Hx (12), Hx (13) to Hx (16), Hx (18), and Hx ( 20),
Magnetic fields Hz (1) to Hz (4), Hz (7) to Hz (10), Hz (11) to Hz (14), and Hz (17) to Hz (20),
Electric fields Ey (1), Ey (3), Ey (6), Ey (8), Ey (9), Ey (11), Ey (14), and Ey (16),
It is. All data corresponding to these are read from the external memory into the buffer memory. Here, the data used for the second calculation is a block indicated by shading in FIG. When attention is paid to the block indicated by the shaded area, most of the data is the same as the data used for the first calculation. That is,
Magnetic fields Hx (5) to Hx (8), Hx (9) to Hx (12), Hx (13) to Hx (16),
Magnetic fields Hz (2) to Hz (4), Hz (7) to Hz (9), Hz (12) to Hz (14), Hz (17) to Hz (19),
As for, after being used in the first calculation, the same data is commonly used in the second calculation. Therefore, for the data used in common, the data already stored in the buffer memory is used as it is, instead of reading from the external memory again.

この結果、図8を参照すると、第2回目の演算においては、網掛けで示されているブロックを演算対象とするので、その演算の前に外部メモリからバッファメモリに読み込むデータは、
磁界Hx(2)、Hx(4)、Hx(17)、及び、Hx(19)、
磁界Hz(5)、Hz(6)、Hz(15)、及び、Hz(16)、
電界Ey(2)、Ey(4)、Ey(5)、Ey(7)、Ey(10)、Ey(12)、Ey(13)、及び、Ey(15)、
である。したがって、第2回目の演算においては、第1回目の演算よりもはるかに少ないデータを外部メモリからバッファメモリに読み込むだけで済むことになる。よって、外部メモリへのアクセス回数を少なくすることができる。
As a result, referring to FIG. 8, in the second calculation, since the block indicated by shading is the calculation target, the data read from the external memory to the buffer memory before the calculation is
Magnetic fields Hx (2), Hx (4), Hx (17), and Hx (19),
Magnetic fields Hz (5), Hz (6), Hz (15), and Hz (16),
Electric fields Ey (2), Ey (4), Ey (5), Ey (7), Ey (10), Ey (12), Ey (13), and Ey (15),
It is. Therefore, in the second calculation, it is only necessary to read much less data from the external memory into the buffer memory than in the first calculation. Therefore, the number of accesses to the external memory can be reduced.

(演算処理の処理フロー)
図7及び図8のように、白抜きで示されているブロックに対応するデータについて第1回目の演算を行い、その後網掛けで示されているブロックに対応するデータについて第2回目の演算を行う場合の演算処理の処理フローについて、図9を参照して説明する。
同図において、ステップS2からS5までの処理が上記の第1回目の演算に対応し、ステップS6〜S9までの処理が上記の第2回目の演算に対応する。
同図を参照すると、最初に、初期データを外部メモリ1に書込む(ステップS1)。次に、演算対象となる、上記の白抜きで示されているブロックに対応するデータを外部メモリから読み出し(ステップS2)、そのデータをバッファメモリ2に一時保存する(ステップS3)。
(Processing flow of arithmetic processing)
As shown in FIG. 7 and FIG. 8, the first calculation is performed on the data corresponding to the blocks shown in white, and then the second calculation is performed on the data corresponding to the blocks shown in shading. A processing flow of the arithmetic processing in the case of performing will be described with reference to FIG.
In the figure, the processing from step S2 to S5 corresponds to the first calculation, and the processing from step S6 to S9 corresponds to the second calculation.
Referring to the figure, first, initial data is written into the external memory 1 (step S1). Next, the data corresponding to the above-described blocks shown in white are read from the external memory (step S2), and the data is temporarily stored in the buffer memory 2 (step S3).

この状態において、バッファメモリ2に記憶されているデータを用いて、FPGAで並列演算を行う(ステップS4)。この演算結果を外部メモリ1に書き込む(ステップS5)。
次に、上記の網掛けで示されているブロックに対応するデータのうち、上記ステップS2において読み出した以外のデータ(重複データ以外のデータ)を外部メモリから読み出し(ステップS6)、そのデータをバッファメモリ2に一時保存する(ステップS7)。
In this state, using the data stored in the buffer memory 2, parallel operation is performed by the FPGA (step S4). This calculation result is written in the external memory 1 (step S5).
Next, among the data corresponding to the blocks indicated by the above shaded data, data other than the data read in step S2 (data other than duplicate data) is read from the external memory (step S6), and the data is buffered. Temporarily stored in the memory 2 (step S7).

この状態において、バッファメモリ2に記憶されているデータを用いて、FPGAで並列演算を行う(ステップS8)。この演算結果を外部メモリ1に書き込む(ステップS9)。その後、演算が終了したかどうか判断する(ステップS10)。演算終了でなければ、ステップS2に戻り、処理を続行する。
以上のように、ステップS2からS5まで、及び、ステップS6からS9まで、の2回の演算を1セットとして、図3のセルブロック構成についての演算が完了することになる。
In this state, using the data stored in the buffer memory 2, parallel operation is performed by the FPGA (step S8). This calculation result is written in the external memory 1 (step S9). Thereafter, it is determined whether or not the calculation is completed (step S10). If the calculation is not finished, the process returns to step S2 to continue the process.
As described above, the calculation for the cell block configuration of FIG. 3 is completed by setting two calculations of steps S2 to S5 and steps S6 to S9 as one set.

次に、外部メモリに記憶されているデータの例について図10を、バッファメモリへ読み込まれたデータの例について図11及び図12を、それぞれ参照して説明する。
(外部メモリの記憶内容)
図10を参照すると、外部メモリ1には、図1から図8までの各図に示されているHx、Hy、Hz、Ex、Ey、Ezに対応するデータが書き込まれ、記憶されている。FPGAは、演算に先立ち、外部メモリ1にアクセスし、上記の演算に必要なデータを読み出し、バッファメモリに書き込む。外部メモリ1に記憶されているデータについては、本例では、最大4個単位ブロックの読み出し又は書き込みが可能であるものとする。例えば、Hx(1,2,1)、Hx(2,2,1)、Hx(3,2,1)、Hx(4,2,1)をまとめて読み出して、Hx(5)〜Hx(8)としてバッファメモリに書き込む。
Next, an example of data stored in the external memory will be described with reference to FIG. 10, and an example of data read into the buffer memory will be described with reference to FIGS. 11 and 12.
(Contents stored in external memory)
Referring to FIG. 10, data corresponding to Hx, Hy, Hz, Ex, Ey, Ez shown in each of FIGS. 1 to 8 is written and stored in the external memory 1. Prior to the calculation, the FPGA accesses the external memory 1 to read out data necessary for the above calculation and write it into the buffer memory. With respect to data stored in the external memory 1, in this example, it is assumed that a maximum of four unit blocks can be read or written. For example, Hx (1, 2, 1), Hx (2, 2, 1), Hx (3, 2, 1), and Hx (4, 2, 1) are collectively read and Hx (5) to Hx ( 8) Write to the buffer memory.

ここで、図7及び図8を再び参照すると、Hx(1)からHx(4)までの4個のデータについては、第1回目の演算に対応している図7では奇数番目のHx(1)及びHx(3)を用い、第2回目の演算に対応している図8では偶数番目のHx(2)及びHx(4)を用いている。したがって、最初の4個のデータについては、第1回目の演算では奇数番目の2個のデータをバッファメモリに読み込み、第2回目の演算では偶数番目の2個のデータをバッファメモリに読み込めばよいことになる。   Here, referring again to FIG. 7 and FIG. 8, for the four data from Hx (1) to Hx (4), the odd-numbered Hx (1) in FIG. 7 corresponding to the first calculation is shown. ) And Hx (3), and even-numbered Hx (2) and Hx (4) are used in FIG. 8 corresponding to the second calculation. Therefore, for the first four data, the odd number of two data is read into the buffer memory in the first calculation, and the even number of two data is read into the buffer memory in the second calculation. It will be.

また、図7及び図8を参照すると、Hx(17)からHx(20)までの4個のデータについては、第1回目の演算に対応している図7では奇数番目のHx(18)及びHx(20)を用い、第2回目の演算に対応している図8では偶数番目のHx(17)及びHx(19)を用いている。したがって、最初の4個のデータについては、第1回目の演算では偶数番目の2個のデータをバッファメモリに読み込み(奇数番目は読み込まない)、第2回目の演算では奇数番目の2個のデータをバッファメモリに読み込めば(偶数番目は読み込まない)よいことになる。   Also, referring to FIG. 7 and FIG. 8, for the four data from Hx (17) to Hx (20), the odd-numbered Hx (18) and Hx (18) in FIG. 7 corresponding to the first calculation are shown. In FIG. 8, which corresponds to the second calculation using Hx (20), even-numbered Hx (17) and Hx (19) are used. Therefore, for the first four data, the even numbered two data are read into the buffer memory in the first calculation (the odd number is not read), and the odd number of the two data in the second calculation. Can be read into the buffer memory (even numbers are not read).

図10に戻り、上述したHx(1)からHx(4)までの4個のデータとして用いるHx(1,1,1)、Hx(2,1,1)、Hx(3,1,1)、Hx(4,1,1)のデータD13については、第1回目の演算では奇数番目の2個のデータHx(1,1,1)、Hx(3,1,1)を読み出し、Hx(1)、Hx(3)としてバッファメモリに書き込み、第2回目の演算では偶数番目の2個のデータHx(2,1,1)、Hx(4,1,1)を読み出し、Hx(2)、Hx(4)としてバッファメモリに書き込めばよい。同様に、上述したHx(17)からHx(20)までの4個のデータとして用いるデータについては、第1回目の演算では偶数番目の2個のデータを読み出し、Hx(18)、Hx(20)としてバッファメモリに書き込み、第2回目の演算では奇数番目の2個のデータを読み出し、Hx(17)、Hx(19)としてバッファメモリに書き込めばよい。   Returning to FIG. 10, Hx (1,1,1), Hx (2,1,1), Hx (3,1,1) used as the four data from Hx (1) to Hx (4) described above. , Hx (4,1,1) data D13 is read in the first calculation by reading odd-numbered two pieces of data Hx (1,1,1) and Hx (3,1,1). 1), Hx (3) is written in the buffer memory, and even-numbered two pieces of data Hx (2,1,1) and Hx (4,1,1) are read in the second calculation, and Hx (2) , Hx (4) may be written to the buffer memory. Similarly, for the data used as the four data from Hx (17) to Hx (20) described above, the even-numbered two data are read in the first calculation, and Hx (18), Hx (20 ) In the buffer memory, and in the second calculation, the odd-numbered two pieces of data are read out and written into the buffer memory as Hx (17) and Hx (19).

Hzについても同様に、上述したHz(1)からHz(4)までの4個のデータとして用いるデータについては、第1回目の演算では奇数番目の2個のデータを読み出し、Hz(1)、Hz(3)としてバッファメモリに書き込み、第2回目の演算では偶数番目の2個のデータを読み出し、Hx(2)、Hx(4)としてバッファメモリに書き込めばよい。そして、上述したHz(17)からHz(20)までの4個のデータとして用いるデータについては、第1回目の演算では偶数番目の2個のデータを読み出し、Hz(18)、Hz(20)としてバッファメモリに書き込み、第2回目の演算では奇数番目の2個のデータを読み出し、Hz(17)、Hz(19)としてバッファメモリに書き込めばよい。   Similarly for Hz, for the data used as the four data from Hz (1) to Hz (4) described above, the odd-numbered two data are read out in the first calculation, and Hz (1), What is necessary is just to write to the buffer memory as Hz (3), to read two even-numbered data in the second calculation, and to write to the buffer memory as Hx (2) and Hx (4). And about the data used as four data from the above-mentioned Hz (17) to Hz (20), even number two data are read in the 1st calculation, and Hz (18), Hz (20) Is written into the buffer memory, and in the second calculation, the odd-numbered two pieces of data are read out and written into the buffer memory as Hz (17) and Hz (19).

(バッファメモリの記憶内容)
ここで、図11には第1回目の演算の前にバッファメモリに読み込んだデータの内容が示されている。同図に示されているように、Hx(1)からHx(4)までの4個のデータとして用いるデータについては奇数番目の2個のデータが読み出され、Hx(1)、Hx(3)としてバッファメモリに記憶され、Hx(17)からHx(20)までの4個のデータとして用いるデータについては偶数番目の2個のデータが読み出され、Hx(18)、Hx(20)としてバッファメモリに記憶されている。また、Hz(1)からHz(4)までの4個のデータとして用いるデータについては奇数番目の2個のデータが読み出され、Hz(1)、Hz(3)としてバッファメモリに記憶され、Hz(17)からHz(20)までの4個のデータとして用いるデータについては偶数番目の2個のデータが読み出され、Hz(18)、Hz(20)としてバッファメモリに記憶されている。なお、図7中の白抜きで示されているブロックについて演算するため、Ey(1)、Ey(3)、Ey(6)、Ey(8)、Ey(9)、Ey(11)、Ey(14)、Ey(16)がバッファメモリに記憶されている。
(Contents stored in buffer memory)
Here, FIG. 11 shows the contents of data read into the buffer memory before the first calculation. As shown in the figure, for data used as four data from Hx (1) to Hx (4), two odd-numbered data are read out, and Hx (1), Hx (3 ) Are stored in the buffer memory and used as the four data from Hx (17) to Hx (20), the even-numbered two data are read out as Hx (18) and Hx (20). Stored in buffer memory. For data used as four data from Hz (1) to Hz (4), odd-numbered two data are read and stored in the buffer memory as Hz (1) and Hz (3). For the data used as four data from Hz (17) to Hz (20), two even-numbered data are read and stored in the buffer memory as Hz (18) and Hz (20). In addition, since it calculates about the block shown with the outline in FIG. 7, Ey (1), Ey (3), Ey (6), Ey (8), Ey (9), Ey (11), Ey (14) and Ey (16) are stored in the buffer memory.

図12には第2回目の演算の前にバッファメモリに読み込んだデータの内容が示されている。同図に示されているように、Hx(1)からHx(4)までの4個のデータとして用いるデータについては偶数番目の2個のデータが読み出され、Hx(2)、Hx(4)としてバッファメモリに記憶され、Hx(17)からHx(20)までの4個のデータとして用いるデータについては奇数番目の2個のデータが読み出され、Hx(17)、Hx(19)としてバッファメモリに記憶されている。また、Hz(1)からHz(4)までの4個のデータとして用いるデータについては偶数番目の2個のデータが読み出され、Hz(2)、Hz(4)としてバッファメモリに記憶され、Hz(17)からHz(20)までの4個のデータとして用いるデータについては奇数番目の2個のデータが読み出され、Hz(17)、Hz(19)としてバッファメモリに記憶されている。なお、図8中の網掛けで示されているブロックについて演算するため、Ey(2)、Ey(4)、Ey(5)、Ey(7)、Ey(10)、Ey(12)、Ey(13)、Ey(15)がバッファメモリに記憶されている。 FIG. 12 shows the contents of data read into the buffer memory before the second calculation. As shown in the figure, for the data used as four data from Hx (1) to Hx (4), two even-numbered data are read out, and Hx (2), Hx (4 ) Are stored in the buffer memory and used as the four data from Hx (17) to Hx (20), the odd-numbered two data are read out as Hx (17) and Hx (19). Stored in buffer memory. For data used as four data from Hz (1) to Hz (4), even-numbered two data are read and stored in the buffer memory as Hz (2) and Hz (4). For the data used as four data from Hz (17) to Hz (20), the odd-numbered two data are read out and stored in the buffer memory as Hz (17) and Hz (19). In order to calculate the blocks indicated by shading in FIG. 8 , Ey (2), Ey (4), Ey (5), Ey (7), Ey (10), Ey (12), Ey (13) and Ey (15) are stored in the buffer memory.

以上のことから、図10に示されている外部メモリ1からバッファメモリへの読み込みは、以下のように行われる。
(1)各4個単位ブロックの先頭ビットのアドレスを探す。
(2)磁界Hx、磁界Hzについては、5単位ブロックを読み出すため、最初のブロックと最後のブロックについては、4個のデータを奇数番目と偶数番目とに分ける。
(3) 最初のブロックの奇数番目のデータと、2〜4番目の単位ブロックの全データと、最後のブロックの偶数番目のデータとを読み出す。
(4)電界Eyについては、市松模様状に用いるため、各単位ブロック毎に、奇数番目、奇数番目、偶数番目、偶数番目、奇数番目、奇数番目、偶数番目、偶数番目、の順に読み出す。
From the above, reading from the external memory 1 shown in FIG. 10 to the buffer memory is performed as follows.
(1) Search for the address of the first bit of each four unit block.
(2) For the magnetic field Hx and the magnetic field Hz, since 5 unit blocks are read out, for the first block and the last block, the four data are divided into odd and even numbers.
(3) Read odd-numbered data of the first block, all data of the second to fourth unit blocks, and even-numbered data of the last block.
(4) The electric field Ey is read in the order of odd-numbered, odd-numbered, even-numbered, even-numbered, odd-numbered, odd-numbered, even-numbered, even-numbered for each unit block because it is used in a checkered pattern.

(5)第1回目の演算を行う。
(6)磁界Hx、磁界Hzについては、最初のブロックの偶数番目、及び、最後のブロックの奇数番目のみを読み出す。
(7)電界Eyについては、市松模様状に用いるため、各単位ブロック毎に、偶数番目、偶数番目、奇数番目、奇数番目、偶数番目、偶数番目、奇数番目、奇数番目、の順に読み出す。
(8)第2回目の演算を行う。
以上のように、第2回目の演算の前に外部メモリからバッファメモリに読み込むデータは非常に少なくなるので、外部メモリへのアクセス回数を少なくすることができ、演算時間を短縮できる。
(5) Perform the first calculation.
(6) For the magnetic field Hx and the magnetic field Hz, only the even number of the first block and the odd number of the last block are read.
(7) The electric field Ey is read in the order of even-numbered, even-numbered, odd-numbered, odd-numbered, even-numbered, even-numbered, odd-numbered, odd-numbered for each unit block because it is used in a checkered pattern.
(8) The second calculation is performed.
As described above, since the data read from the external memory to the buffer memory before the second calculation is very small, the number of accesses to the external memory can be reduced and the calculation time can be shortened.

本例では、電界Ey(電界のy方向成分)を算出する場合、かつ計算単位としてセルのブロックを4×4×1とした場合について説明する。
前出の計算式より、電界Eyを計算するために使用するパラメータは電界Eyが1個、磁界Hxが2個、磁界Hzが2個、Cey、CeylxおよびCeylzが各1個の合計8個のパラメータである。
In this example, a case where the electric field Ey (y-direction component of the electric field) is calculated and a block of cells is set to 4 × 4 × 1 as a calculation unit will be described.
From the above formula, the parameters used to calculate the electric field Ey are one electric field Ey, two magnetic fields Hx, two magnetic fields Hz, and one each of Cey, Ceylx and Ceylz. It is a parameter.

8個のパラメータを毎回外部メモリから読み出し、計算を実行して、計算結果の電界Ezを外部メモリに書き込む処理を実施すると、8パラメータ×16セル=128回の外部メモリアクセスが発生する。
ここで、図3を参照して既に説明したように、セルを順番に計算すると網掛け矢印は隣接するセルにおける計算で重複して使用することが判る。
If 8 parameters are read from the external memory each time, the calculation is executed, and the electric field Ez of the calculation result is written in the external memory, 8 parameters × 16 cells = 128 times of external memory access occurs.
Here, as already described with reference to FIG. 3, when cells are calculated in order, it can be seen that the shaded arrows are used redundantly in calculations in adjacent cells.

そこで、1つ置きの間隔で配置された網掛けの面の計算を同時に実行し(第1回目の演算)、次に白抜きの面の計算を同時に実行する(第2回目の演算)処理を施すことにより、重複するパラメータをバッファメモリに蓄えておくことができ、外部メモリへのアクセス回数を削減することで計算時間の短縮を図る。本実施例においては、8パラメータ×16セル−24=104回のアクセスで済み、速度として1.23倍の高速化が見込める。すなわち、セルのブロック単位をN行×M列×1とすると、
8NM/(5NM−(N・(M−1)+M・(N−1)))…(1)
であり、式(1)にN=4、M=4を代入すると、
仮に、本発明を採用しない場合(式(1)の分子)には8パラメータ×16セル=128回の外部メモリへのアクセスが発生することになる。これに対し、本実施例においては、8パラメータ×16セル−24=104回(式(1)の分母)のアクセスで済み、速度として1.23倍の高速化が見込める。
Therefore, the calculation of the shaded surfaces arranged at every other interval is executed simultaneously (first calculation), and the calculation of the white surface is executed simultaneously (second calculation). As a result, duplicate parameters can be stored in the buffer memory, and the calculation time can be shortened by reducing the number of accesses to the external memory. In this embodiment, 8 parameters × 16 cells−24 = 104 accesses are required, and a speed increase of 1.23 times can be expected. That is, if the cell block unit is N rows × M columns × 1,
8NM / (5NM- (N. (M-1) + M. (N-1))) (1)
And substituting N = 4 and M = 4 into equation (1),
If the present invention is not adopted (numerator of formula (1)), 8 parameters × 16 cells = 128 accesses to the external memory occur. On the other hand, in this embodiment, it is only necessary to access 8 parameters × 16 cells−24 = 104 times (the denominator of Expression (1)), and a speed increase of 1.23 times can be expected.

さらに、Cey、CeylxおよびCeylzの3個のパラメータは、セルの位置に依存する定数であることから、バッファメモリ内にテーブルとして固定的に保持することが可能である。これらを演算の間、バッファメモリに固定的に記憶させておくことにより、読込むパラメータを5個に削減することが可能である。したがって、上記処理と組み合わせることにより、5パラメータ×16セル−24=56回まで外部メモリへのアクセスを削減できる。この場合の処理速度は、8個のパラメータを外部メモリからバッファメモリに毎回読み込む場合に比べて2.28倍の高速化が図れる。セルのブロック単位をN×N×1とすることにより、8N/(3N+2)倍の高速化が図れる。   Further, since the three parameters of Cey, Ceylx, and Ceylz are constants depending on the position of the cell, they can be fixedly held as a table in the buffer memory. It is possible to reduce the number of parameters to be read to five by storing them in the buffer memory in a fixed manner during the calculation. Therefore, by combining with the above processing, access to the external memory can be reduced up to 5 parameters × 16 cells−24 = 56 times. In this case, the processing speed can be increased by 2.28 times as compared with the case where the eight parameters are read from the external memory into the buffer memory each time. By setting the cell block unit to N × N × 1, the speed can be increased by 8N / (3N + 2) times.

ところで、上記N、Mの値の少なくとも一方は偶数であることが望ましい。N、Mが共に奇数の場合には、演算に用いるために読み込むデータの数が奇数になるので、第1回目の演算データ量と第2回目の演算データ量とが異なり、FPGAの演算が行われない期間が発生し、演算効率が低下するからである。   By the way, it is desirable that at least one of the values of N and M is an even number. When N and M are both odd numbers, the number of data to be read for use in the calculation is an odd number. Therefore, the first calculation data amount is different from the second calculation data amount, and the FPGA calculation is performed. This is because a period that is not broken occurs and the calculation efficiency decreases.

(重複パラメータの識別手法)
これまで示した、重複して使用されるパラメータを複数回読込むことのないよう識別する手法について、以下説明する。
(1)メモリアドレス設定法
バッファメモリの領域内で、重複パラメータが書き込まれるメモリアドレスにフラグを付加し、フラグの付加されたメモリアドレスのパラメータは2回の計算で使用された後に次のパラメータを読込む制御を行う。つまり、2回の演算で使用するパラメータの内、バッファメモリに既に記憶されており次の回の演算において用いるパラメータ以外のパラメータのみを外部メモリより読込む。
(Duplicate parameter identification method)
The technique for identifying the parameters used so far as being duplicated so as not to be read multiple times will be described below.
(1) Memory address setting method A flag is added to the memory address where the duplicate parameter is written in the buffer memory area. The parameter of the memory address to which the flag is added is used in two calculations, and then the next parameter is set. Control reading. That is, of the parameters used in the two calculations, only the parameters other than those already stored in the buffer memory and used in the next calculation are read from the external memory.

(2)端部読込み法
図3を参照すれば判るように、重複しないパラメータは、N個×M個×1個のセルブロックの内、端部に位置するブロックのパラメータおよび計算面に垂直のパラメータ(図3の実施例ではEy)である。これより、端部に位置するパラメータおよび計算面に垂直向きのパラメータのみを識別して外部メモリより読込む。
(2) Edge reading method As can be seen with reference to FIG. 3, non-overlapping parameters are perpendicular to the parameter and calculation plane of the block located at the edge of the N × M × 1 cell blocks. Parameter (Ey in the embodiment of FIG. 3). As a result, only the parameters located at the end and the parameters perpendicular to the calculation plane are identified and read from the external memory.

本発明によれば、FDTD法をFPGAのような並列演算機に適用した際に外部メモリへのアクセス回数の削減により電磁界演算時間を短縮できる。このため、人体近傍の電磁環境、携帯電話機の輻射電力、及び、屋内電磁環境等を高速に推定でき、低消費電力・電磁界環境設計効率の向上を実現できる。また、各種製品の開発効率の飛躍的な向上を実現できる。   According to the present invention, when the FDTD method is applied to a parallel computing machine such as an FPGA, the electromagnetic field computation time can be shortened by reducing the number of accesses to the external memory. For this reason, the electromagnetic environment near the human body, the radiated power of the mobile phone, the indoor electromagnetic environment, and the like can be estimated at high speed, and low power consumption and electromagnetic field environment design efficiency can be improved. In addition, the development efficiency of various products can be dramatically improved.

電界Ezを計算するためのセルブロック構成例を示す図である。It is a figure which shows the cell block structural example for calculating the electric field Ez. 電界Exを計算するためのセルブロック構成例を示す図である。It is a figure which shows the example of a cell block structure for calculating the electric field Ex. 電界Eyを計算するためのセルブロック構成例を示す図である。It is a figure which shows the example of a cell block structure for calculating the electric field Ey. 磁界Hzを計算するためのセルブロック構成例を示す図である。It is a figure which shows the example of a cell block structure for calculating the magnetic field Hz. 磁界Hxを計算するためのセルブロック構成例を示す図である。It is a figure which shows the cell block structural example for calculating the magnetic field Hx. 磁界Hyを計算するためのセルブロック構成例を示す図である。It is a figure which shows the cell block structural example for calculating the magnetic field Hy. 第1回目の演算の前に外部メモリからバッファメモリに読み込むデータを示す図である。It is a figure which shows the data read from the external memory to the buffer memory before the 1st calculation. 第2回目の演算の前に外部メモリからバッファメモリに読み込むデータを示す図である。It is a figure which shows the data read from the external memory to the buffer memory before the 2nd calculation. 本発明によるFPGA演算装置の処理フローを示す図である。It is a figure which shows the processing flow of the FPGA arithmetic unit by this invention. 外部メモリに記憶されているデータの例を示す図である。It is a figure which shows the example of the data memorize | stored in the external memory. 第1回目の演算の前にバッファメモリに読み込んだデータの内容を示す図である。It is a figure which shows the content of the data read into the buffer memory before the 1st calculation. 第2回目の演算の前にバッファメモリに読み込んだデータの内容を示す図である。It is a figure which shows the content of the data read into the buffer memory before the 2nd calculation. FDTD法の概要を示す図である。It is a figure which shows the outline | summary of the FDTD method. FPGA並列演算器の構成の概要を示す図である。It is a figure which shows the outline | summary of a structure of a FPGA parallel computing unit. FPGA並列演算器の処理フローを示す図である。It is a figure which shows the processing flow of an FPGA parallel computing unit.

符号の説明Explanation of symbols

1 外部メモリ
2 バッファメモリ
3 FPGA
1 External memory 2 Buffer memory 3 FPGA

Claims (4)

解析対象となる領域を市松模様状に第1ブロック群と第2ブロック群とからなる格子状の複数のブロックによって分割し、この分割した各ブロックの各辺に電界及び磁界の一方を、前記各ブロックの各面に他方を割り当ててマクスウェルの方程式を解く演算を行うことにより、前記領域内における電界及び磁界の空間的及び時間的な変化を得るためのFDTD演算装置であって、
外部メモリから読み込んだデータを記憶するバッファ記憶手段と、
前記解析対象となる領域を構成する複数のブロックについて前記第1ブロックに対応するデータのうち、前記バッファ記憶手段に既に記憶されており次の回の演算において前記第1ブロック群の各辺のうち、それらにそれぞれ隣接する前記第2ブロック群の各辺に接する辺に対応するデータを再利用データとし、前記再利用データ以外のデータを読み込むデータ読み込み手段と、前記バッファ記憶手段に記憶されているデータを用いて前記演算を行う演算手段とを含むことを特徴とするFDTD演算装置。
The region to be analyzed is divided into a checkered pattern by a plurality of grid-like blocks including the first block group and the second block group, and one of the electric field and the magnetic field is applied to each side of each of the divided blocks. An FDTD arithmetic unit for obtaining a spatial and temporal change of an electric field and a magnetic field in the region by assigning the other to each surface of a block and performing an operation to solve Maxwell's equation,
Buffer storage means for storing data read from external memory;
Of the data corresponding to the first block group for a plurality of blocks constituting the region to be analyzed, the data is already stored in the buffer storage means and is calculated for each side of the first block group in the next calculation. Among them, data corresponding to the sides in contact with each side of the second block group adjacent to each other is used as reuse data, and is stored in the data storage means for reading data other than the reuse data and the buffer storage means. And an arithmetic means for performing the arithmetic operation using the existing data.
前記データ読み込み手段は、前記複数のブロックのうち前記領域の端部に位置するブロックについて奇数番目のもの及び偶数番目のもののいずれか一方に対応するデータを読み込み、次の回は他方に対応するデータを読み込むことを特徴とする請求項1記載のFDTD演算装置。   The data reading means reads data corresponding to one of an odd-numbered block and an even-numbered block for a block located at an end of the region among the plurality of blocks, and the next time, data corresponding to the other block The FDTD arithmetic unit according to claim 1, wherein: 前記演算において固定的に使用するパラメータを、該演算の間、前記バッファ記憶手段に固定的に記憶させておくことを特徴とする請求項1又は2記載のFDTD演算装置。   3. The FDTD arithmetic apparatus according to claim 1, wherein parameters used in the calculation are fixedly stored in the buffer storage means during the calculation. 解析対象となる領域を市松模様状に第1ブロック群と第2ブロック群とからなる格子状の複数のブロックによって分割し、この分割した各ブロックの各辺に電界及び磁界の一方を、前記各ブロックの各面に他方を割り当ててマクスウェルの方程式を解く演算を、バッファメモリと該バッファメモリよりもアクセス時間が長い外部メモリとに対するデータ読み込みを制御する並列演算機によって行うことにより、前記領域内における電界及び磁界の空間的及び時間的な変化を得るためのFDTD演算方法であって、
前記並列演算機によって、前記外部メモリから読み込んだデータを前記バッファメモリに記憶する記憶ステップと、
前記並列演算機によって、前記解析対象となる領域を構成する複数のブロックについて前記第1ブロックに対応するデータのうち、前記バッファメモリに既に記憶されており次の回の演算において前記第1ブロック群の各辺のうち、それらにそれぞれ隣接する前記第2ブロック群の各辺に接する辺に対応するデータを再利用データとし、前記再利用データ以外のデータを、前記外部メモリから前記バッファメモリに読み込むデータ読み込みステップと、前記並列演算機によって、前記バッファメモリに記憶されているデータを用いて前記演算を行う演算ステップとを含むことを特徴とするFDTD演算方法。
The region to be analyzed is divided into a checkered pattern by a plurality of grid-like blocks including the first block group and the second block group, and one of the electric field and the magnetic field is applied to each side of each of the divided blocks. An operation for allocating the other to each face of the block and solving Maxwell's equation is performed by a parallel computing unit that controls reading of data into the buffer memory and an external memory having a longer access time than the buffer memory . An FDTD calculation method for obtaining spatial and temporal changes in electric and magnetic fields,
By the parallel operation machine, a storage step of storing the data read from the external memory to the buffer memory,
Of the data corresponding to the first block group for the plurality of blocks constituting the region to be analyzed by the parallel computing device, the data is already stored in the buffer memory, and the first block in the next computation Among the sides of the group, the data corresponding to the sides in contact with the sides of the second block group adjacent to each other is used as reuse data, and data other than the reuse data is transferred from the external memory to the buffer memory. An FDTD calculation method comprising: a data reading step to be read; and a calculation step of performing the calculation using the data stored in the buffer memory by the parallel calculator .
JP2004331127A 2004-11-15 2004-11-15 FDTD computing device and FDTD computing method Expired - Fee Related JP4597640B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004331127A JP4597640B2 (en) 2004-11-15 2004-11-15 FDTD computing device and FDTD computing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004331127A JP4597640B2 (en) 2004-11-15 2004-11-15 FDTD computing device and FDTD computing method

Publications (2)

Publication Number Publication Date
JP2006139723A JP2006139723A (en) 2006-06-01
JP4597640B2 true JP4597640B2 (en) 2010-12-15

Family

ID=36620496

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004331127A Expired - Fee Related JP4597640B2 (en) 2004-11-15 2004-11-15 FDTD computing device and FDTD computing method

Country Status (1)

Country Link
JP (1) JP4597640B2 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5032177B2 (en) * 2007-03-30 2012-09-26 富士フイルム株式会社 Wave field analysis method and apparatus, and computer-readable recording medium storing a program for causing a computer to execute the wave field analysis method
JP5190823B2 (en) * 2008-03-31 2013-04-24 国立大学法人室蘭工業大学 Electromagnetic wave analysis apparatus and electromagnetic wave analysis method
KR101598595B1 (en) * 2014-07-29 2016-03-02 한양대학교 산학협력단 Complex-curve fitting method of dispersive dielectric material using quadratic complex rational function for time-domain electromagnetic numerical analysis and device for modelling dispersive dielectric material based on the same
KR101678683B1 (en) * 2015-08-19 2016-11-22 한양대학교 산학협력단 Device and method for analyzing electromagnetic wave using finite-difference time-domain parallel processing algorithm based on dispersive modelling of quadratic complex rational function
CN107239586B (en) * 2016-03-29 2020-12-04 南京理工大学 A Parallel Method of Domain Decomposition Efficient for Unconditionally Stable Finite Difference Time-Domain Methods
JP7087625B2 (en) 2018-04-19 2022-06-21 富士通株式会社 Information processing equipment, information processing methods and information processing programs
JP7661288B2 (en) 2022-09-07 2025-04-14 Kddi株式会社 Wave calculation program, device and method for calculating boundaries for each frequency band

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5812418A (en) * 1996-10-31 1998-09-22 International Business Machines Corporation Cache sub-array method and apparatus for use in microprocessor integrated circuits
JP3639116B2 (en) * 1998-06-12 2005-04-20 富士通株式会社 Electromagnetic wave analysis apparatus and computer-readable recording medium recording electromagnetic wave analysis program

Also Published As

Publication number Publication date
JP2006139723A (en) 2006-06-01

Similar Documents

Publication Publication Date Title
Gan et al. Accelerating solvers for global atmospheric equations through mixed-precision data flow engine
CN114580249B (en) Multi-loop FDTD electromagnetic field simulation analysis method, system, equipment and medium
JP4597640B2 (en) FDTD computing device and FDTD computing method
CN102508820A (en) Method for data correlation in parallel solving process based on cloud elimination equation of GPU (Graph Processing Unit)
Shah et al. A novel implementation of 2D3V particle-in-cell (PIC) algorithm for Kepler GPU architecture
CN119294342A (en) A chip layout optimization method, system and device based on improved reinforcement learning
Fobel et al. A scalable, serially-equivalent, high-quality parallel placement methodology suitable for modern multicore and GPU architectures
Fang et al. Global placement exploiting soft 2D regularity
CN110633483B (en) Simulation method in semiconductor design process, storage medium and semiconductor design system
CN108038335B (en) Method and device for determining stress load of aircraft skin unit
CN120723486A (en) Method and computing device for obtaining protocol results
Ferreira et al. Vectorization of Riemann solvers for the single-and multi-layer shallow water equations
CN116956687B (en) Method and device for generating two-dimensional hybrid grid for electromagnetic simulation based on region division
CN118798008A (en) Concrete structure cracking analysis method and system based on extended finite element method
EP2058740A1 (en) High-speed calculation process method of combination equation based on finite element method and boundary element method
JPH11340154A (en) Process simulation method and storage medium used therefor
Cao et al. Towards a Higher Roofline for Matrix-Vector Multiplication in Matrix-Free HOSFEM
CN109684760B (en) Elastic vector wave field numerical simulation method and system based on random search algorithm
US20110185328A1 (en) System and Method for Circuit Design Floorplanning
JP7182528B2 (en) Method and apparatus for processing image data for machine vision
JP7800273B2 (en) Simulation program, simulation method, and simulation device
Qin et al. Accelerating wave-propagation algorithms with adaptive mesh refinement using the graphics processing unit (GPU)
US7412359B2 (en) Mutual immittance calculation program, mutual immittance calculation apparatus and method, and electromagnetic-field strength calculation program
Balasalle et al. Optimizing memory access patterns for cellular automata on GPUs
Hanson et al. Deft: Boosting scalability of deformable convolution operations on GPUs

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071003

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100706

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100827

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100921

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100922

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131001

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees