JP5315517B2 - Information processing apparatus and virtual circuit writing method - Google Patents
Information processing apparatus and virtual circuit writing method Download PDFInfo
- Publication number
- JP5315517B2 JP5315517B2 JP2008184301A JP2008184301A JP5315517B2 JP 5315517 B2 JP5315517 B2 JP 5315517B2 JP 2008184301 A JP2008184301 A JP 2008184301A JP 2008184301 A JP2008184301 A JP 2008184301A JP 5315517 B2 JP5315517 B2 JP 5315517B2
- Authority
- JP
- Japan
- Prior art keywords
- arithmetic
- circuit
- data
- calculation
- writing
- 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
Links
Images
Landscapes
- Multi Processors (AREA)
- Stored Programmes (AREA)
Abstract
Description
本発明は、情報処理装置および情報処理方法に関し、特に、書き換え可能なプログラマブル・ロジック・デバイス(PLD:Programmable Logic Device)を用いて膨大な計算量の処理を行うコンピュータに適用して好適な情報処理装置および仮想回路書き込み方法に関する。 The present invention relates to an information processing apparatus and an information processing method, and in particular, information processing suitable for application to a computer that performs processing of an enormous amount of calculation using a rewritable programmable logic device (PLD). The present invention relates to an apparatus and a virtual circuit writing method.
近年、大規模演算の環境が高度に整備されてきたのを受け、生物・化学・天文・工学などの広い分野においてHPC(high-performance computing) による演算手法が利用されている。HPC は複数の計算機システムを結合し、一つのシステムとして演算環境を提供するものである。一つの計算機システムの性能が低くとも、システム全体としては高速に演算が可能となる。 In recent years, a large-scale computing environment has been highly developed, and computation techniques using HPC (high-performance computing) are used in a wide range of fields such as biology, chemistry, astronomy, and engineering. HPC combines a plurality of computer systems and provides a computing environment as one system. Even if the performance of one computer system is low, the entire system can be operated at high speed.
例えば、HPCの一例としてスーパーコンピュータがある。スーパーコンピュータは従来、専用のプロセッサを及び専用アーキテクチャで構成されてきたが、図1に示すように、バス2を介して汎用のマイクロ・プロセッサ1を多数接続して並列実行するアーキテクチャで構成されたものが現れている。
For example, there is a supercomputer as an example of HPC. Conventionally, a supercomputer has been configured with a dedicated processor and a dedicated architecture. However, as shown in FIG. 1, the supercomputer is configured with an architecture in which a large number of general-
また、HPCには、汎用PC(Personal Computer)によるグリッド構成のものや、GPGPU(General Purpose Graphics Processing Unit)を利用したグリッド構成など、IC(Integrated Circuit)を並べた構成のものもある。 Some HPCs have a configuration in which ICs (Integrated Circuits) are arranged, such as a grid configuration using a general-purpose PC (Personal Computer) and a grid configuration using a GPGPU (General Purpose Graphics Processing Unit).
さらにFPGA(Field Programmable Gate Array)等のリコンフィギャラブル(再構成可能)な半導体集積回路(LSI:Large Scale Integration)を用いて並列実行するアーキテクチャで構成されたものなど、高性能な演算を行う研究も見られるようになった。特に大規模演算向けに構成されているクラスタ型のものは、RHPC(Reconfigurable High Performance Computing)やHPRCs(High-Performance Reconfigurable Computers)などと呼ばれている。このような回路をリコンフィギャラブルなハードウェアは、総称してプログラマブル・ロジック・デバイス(PLD:Programmable Logic Device)と呼ばれており、少数の製品から量産品まで幅広く流通している。 In addition, research that performs high-performance operations, such as FPGAs (Field Programmable Gate Array) and other architectures that are configured in parallel architecture using reconfigurable semiconductor integrated circuits (LSI: Large Scale Integration) Also came to be seen. In particular, cluster-type computers configured for large-scale computation are called RHPC (Reconfigurable High Performance Computing) and HPRCs (High-Performance Reconfigurable Computers). Such reconfigurable hardware is generally called a programmable logic device (PLD) and is widely distributed from a small number of products to mass-produced products.
例えば、本出願人は、ハードウェア・モジュール(hwModule)と呼ばれる PCI型FPGAボードを利用した、ハードウェア/ソフトウェア(hw/sw)複合体を提案している(例えば、特許文献1を参照。)。 For example, the present applicant has proposed a hardware / software (hw / sw) complex using a PCI type FPGA board called a hardware module (hwModule) (see, for example, Patent Document 1). .
hw/sw複合体とは、ハードウェア・モジュールのFPGAを仮想回路(hwNet)として利用し、ハードウェア・オブジェクト(hwObject)と呼ばれる仮想回路の詳細な制御を隠蔽するクラスを継承することにより、回路資源を容易に利用できるシステムである。このハードウェア/ソフトウェア複合体の特長として、汎用性、並列分散処理や外部機器との接続などがあげられる。 The hw / sw complex uses a hardware module FPGA as a virtual circuit (hwNet) and inherits a class that hides the detailed control of the virtual circuit called a hardware object (hwObject). It is a system that can easily use resources. Features of this hardware / software complex include versatility, parallel distributed processing, and connection to external devices.
すなわち、ソフトウェアから直接、FPGA内の仮想回路を制御でき、対象となるアプリケーション対応して作成された適切な仮想回路をFPGAに書き込むことで、最速な仮想回路により、アプリ毎の問題を計算することが可能である。 That is, the virtual circuit in the FPGA can be controlled directly from the software, and the problem for each application is calculated by the fastest virtual circuit by writing an appropriate virtual circuit created for the target application in the FPGA. Is possible.
一般に、同一の演算をソフトウェアとハードウェア回路で実行した場合、ハードウェア回路による実行はソフトウェアの場合と比較して30倍から数百倍、高速であることが経験的に知られている。例えば、現行のマイクロ・プロセッサは、3GHzの周波数で動作するが、安価なFPGAでは200MHz動作が普通に得られる最良の速度である。したがって、マイクロ・プロセッサによるソフトウェア実行に対して、FPGAによる仮想回路では、実効的に6GHz(200MHz×30)から20−40GHzで動作するマイクロ・プロセッサに対応する。さらに、FGPA内に複数個の演算回路を入れることで、10数倍の性能向上が可能となり、60GHz〜400GHz相当の性能が見込まれる。
上述したHPCに共通した特徴は、アプリケーション・プログラムを並列実行可能な形態に分割し、並列実行可能な演算装置に割り当てて実行するというものである。このような構成のHPCは高価であり、かつ、多人数が異なる問題領域に使用するため、HPCは汎用的な構成、すなわち、汎用のマイクロ・プロセッサ間で任意のデータ転送路が実現できるように設計される。概念的には、図1に示したバス2のような共通の通信路を介して、マイクロ・プロセッサ1が接続される形態である。しかし、いずれの演算結果もバス2を介して分散した各マイクロ・プロセッサ2に転送され、そのバスネックが性能のボトルネックとなっている。
A feature common to the above-described HPC is that an application program is divided into a form that can be executed in parallel, and is assigned to an arithmetic device that can be executed in parallel for execution. Since the HPC having such a configuration is expensive and is used for problem areas with different numbers of people, the HPC has a general configuration, that is, an arbitrary data transfer path can be realized between general-purpose microprocessors. Designed. Conceptually, the
上述のとおり、図1に示したような形態では、共通の通信路であるバス2のオーバーヘッドが大きくなる。そこで、バス2のオーバーヘッドをなくすために、図2に示すようなスイッチボックス5で高速化を図るものが普通である。スイッチボックス5において、任意のマイクロ・プロセッサからのデータを最適なマイクロ・プロセッサを選択して送るというものである。マイクロ・プロセッサの代わりにFPGAを用いたものもあるが、バス2を用いることやスイッチボックス5等の構成は同じである。
As described above, in the form as shown in FIG. 1, the overhead of the
しかし、これらの方式では、消費電力が膨大なものになり、これ以上の高速化を実現することは困難であった。また、通信路での高速性と低消費電力を実現するために広帯域のデータ通信が可能な光通信を使用することが考えられているが高価なものになる。また、高価なスーパーコンピュータとなるので金銭面から多くの台数を用意することは、難しく多人数の利用者が予約して時分割で使用するため、利用できるまでの待ち時間が長くなるという問題も生じている。 However, with these methods, the power consumption becomes enormous, and it has been difficult to achieve higher speeds. In addition, in order to realize high speed and low power consumption in the communication path, it is considered to use optical communication capable of broadband data communication, but it becomes expensive. Also, since it becomes an expensive supercomputer, it is difficult to prepare a large number of units from the financial aspect, and it is difficult for many users to make reservations and use them in time division, so there is a problem that the waiting time until use becomes long Has occurred.
また特許文献1に記載されたhw/sw複合体のアプリケーション例には、これまでhwModuleのネットワーク対応に関する研究がなされてきた。しかし、大規模並列化を要求する、数値シミュレーションなどのアプリケーションには、計算機間を非常に高速にデータ転送することを必要とするものもあり、その際にバスネックがボトルネックとなって必ずしもHPCとしての要求性能を満たせなかった。すなわち、内部演算速度の向上に対してデータ転送は、通信路の電気特性に律束されるので、安価で高速の通信路を得ることができなかった。
In addition, as for the application example of the hw / sw complex described in
本発明は、このような状況に鑑みてなされたものであり、個人用に使える安価で高性能な大規模演算用のコンピュータを提供できるようにする。 The present invention has been made in view of such a situation, and makes it possible to provide an inexpensive and high-performance computer for large-scale computation that can be used for personal use.
本発明の情報処理装置は、演算対象の構造に合わせて複数の演算装置を配置し、演算実行時はバスを介在させず演算装置間で直接データ転送し、各演算装置から演算結果を取り出してホストプロセッサへ送出またはホストプロセッサからデータを入力するときのみバスを使用するようにしたものである。
具体的には、本発明の一側面の情報処理装置は、メモリと、演算装置アレイと、ホストプロセッサと、バスを備えるように構成する。
メモリは、演算対象について所定の演算を行うアプリケーション・プログラムを記憶する。
演算装置アレイは、複数の演算装置から構成される。この複数の演算装置は、前記演算対象の各々の問題領域に対応して隣接する演算装置間で直接データ通信可能に接続されて配置され、また前記アプリケーション・プログラムの実行に用いられ前記各々の問題領域に対応した演算を行う演算回路が再構成され、隣接する演算装置間で前記問題領域について前記演算回路による演算結果データを送受信する。
ホストプロセッサは、前記演算装置アレイを構成する各演算装置に対して予め演算結果データの転送先としての隣接する演算装置を決定し、前記アプリケーション・プログラムを実行し、前記演算装置アレイを構成する各演算装置から各問題領域についての演算結果データを取得し、前記演算対象について演算結果を算出する。
バスは、前記メモリ、前記ホストプロセッサおよび前記演算装置アレイとの間で、データを通信する。
そして、演算装置に対し、前記ホストプロセッサから送られる、前記演算対象の各々の問題領域に対応する仮想回路データを含んだ仮想回路書き込みデータに基づいて、前記演算回路を書き込むための仮想回路データ書き込み回路を書き込み、該仮想回路データ書き込み回路を書き込んだ後、当該演算装置は、前記仮想回路書き込みデータに含まれる書き込み順番に従って、隣接する演算装置へ該仮想回路書き込みデータを転送する。
In the information processing apparatus of the present invention, a plurality of arithmetic devices are arranged in accordance with the structure to be operated, and data is directly transferred between the arithmetic devices without performing a bus at the time of executing the arithmetic, and the arithmetic result is taken out from each arithmetic device. The bus is used only when sending data to the host processor or inputting data from the host processor.
Specifically, an information processing apparatus according to one aspect of the present invention includes a memory, an arithmetic device array, a host processor, and a bus.
The memory stores an application program that performs a predetermined calculation on the calculation target.
The arithmetic device array is composed of a plurality of arithmetic devices. The plurality of arithmetic devices are arranged so as to be directly communicable between adjacent arithmetic devices corresponding to each problem area to be calculated, and are used for executing the application program. An arithmetic circuit that performs an operation corresponding to the area is reconfigured, and operation result data by the arithmetic circuit is transmitted and received between the adjacent arithmetic devices for the problem area.
The host processor previously determines an adjacent computing device as a transfer destination of computation result data for each computing device constituting the computing device array, executes the application program, and configures each computing device array Calculation result data for each problem area is acquired from the calculation device, and the calculation result is calculated for the calculation target.
A bus communicates data between the memory, the host processor, and the computing device array.
Then, virtual circuit data writing for writing the arithmetic circuit to the arithmetic unit based on virtual circuit write data including virtual circuit data corresponding to each problem area to be calculated is sent from the host processor to the arithmetic unit. After writing the circuit and writing the virtual circuit data write circuit, the arithmetic device transfers the virtual circuit write data to the adjacent arithmetic device in accordance with the write order included in the virtual circuit write data.
本発明の一側面の情報処理装置によれば、演算対象の構造に合わせて複数の演算装置が配置され、演算実行時はバスを介在させず演算装置間で直接データ転送が行われる。そして、各演算装置で演算された演算結果は、取り出してバスを介してホストプロセッサへ送出される。全ての演算装置は隣接演算装置に対してのみデータを転送する処理を実行すればよく、データ転送区間が短くなる。 According to the information processing apparatus of one aspect of the present invention, a plurality of arithmetic devices are arranged in accordance with the structure to be calculated, and data is directly transferred between the arithmetic devices without interposing a bus when executing the arithmetic operation. Then, the calculation result calculated by each calculation device is taken out and sent to the host processor via the bus. All the arithmetic devices only need to execute the process of transferring data only to the adjacent arithmetic devices, and the data transfer interval is shortened.
また、本発明の一側面の仮想回路書き込み方法は、演算対象の各々の問題領域に対応して隣接する演算装置間で直接データ通信可能に接続されて配置された複数の演算装置の各々に対して、ホストプロセッサから送られる前記演算対象の各々の問題領域に対応する仮想回路データを含んだ仮想回路書き込みデータに基づいて、演算回路を書き込むための仮想回路データ書き込み回路を書き込む。
次に、演算装置に仮想回路データ書き込み回路を書き込んだ後、当該演算装置は、前記仮想回路書き込みデータに含まれる書き込み順番に従って、隣接する演算装置へ該仮想回路書き込みデータを転送する。
次に、全ての演算装置について前記仮想回路データ書き込み回路の書き込みが終了後、前記仮想回路データ書き込み回路が最後に書き込まれた演算装置から最初に書き込まれた演算装置まで前記全ての演算装置について前記演算回路を書き込む。
Further, the virtual circuit writing method according to one aspect of the present invention is provided for each of a plurality of arithmetic devices arranged so as to be directly communicable between adjacent arithmetic devices corresponding to each problem area to be calculated. Te, based on the virtual circuits write data containing a virtual circuit data corresponding to each of the problem areas of the operation target sent from the host processor, write the virtual circuit data write circuit for writing an arithmetic circuit.
Next, after writing the virtual circuit data write circuit to the arithmetic device, the arithmetic device transfers the virtual circuit write data to the adjacent arithmetic device in accordance with the write order included in the virtual circuit write data.
Next, after the writing of the virtual circuit data writing circuit is completed for all the arithmetic devices, the virtual circuit data writing circuit is the arithmetic device from which the virtual circuit data writing circuit was last written to the first written arithmetic device. Write the arithmetic circuit .
また、本発明の一側面の仮想回路書き込み方法によれば、演算装置アレイを構成する複数の演算装置に対して、まず演算回路を書き込むための仮想回路データ書き込み回路が書き込まれた後、前記仮想回路データ書き込み回路が最後に書き込まれた演算装置から最初に書き込まれた演算装置まで全ての演算装置について前記演算回路が書き込まれる。そのため、演算回路が途中で書き込めなくなるということが生じる恐れがない。 According to the virtual circuit writing method of one aspect of the present invention, after a virtual circuit data writing circuit for writing an arithmetic circuit is first written to a plurality of arithmetic devices constituting the arithmetic device array, the virtual circuit writing method is performed. The arithmetic circuit is written in all the arithmetic devices from the arithmetic device in which the circuit data writing circuit was last written to the arithmetic device in which the circuit data was written first. Therefore, there is no possibility that the arithmetic circuit cannot be written in the middle.
以上のように、本発明によれば、個人用に使える安価で高性能な大規模演算用のコンピュータを実現することができる。それにより、個人でも用途に応じて手軽に大規模演算可能なコンピュータを利用でき、待ち時間も減らすことができる。 As described above, according to the present invention, an inexpensive and high-performance computer for large-scale computation that can be used for personal use can be realized. As a result, even an individual can use a computer that can easily perform a large-scale calculation according to the application, and the waiting time can be reduced.
以下、本発明を実施するための最良の形態の例について、添付図面を参照しながら説明する。説明は下記項目に従って順に行うとする。
1.本発明の一実施の形態に係る演算装置アレイの概念
2.隣接する演算装置との接続
3.情報処理装置の概要
4.情報処理装置の全体構成
5.ホストプロセッサの構成
6.演算装置(演算ボード、書き込み・入出力ボード)の構成
7.演算装置アレイによる演算処理
8.演算装置への書き込み処理
9.本発明の他の実施の形態に係る演算装置アレイ
10.本発明のさらに他の実施の形態に係る演算装置アレイ
Hereinafter, an example of the best mode for carrying out the present invention will be described with reference to the accompanying drawings. The explanation will be made in order according to the following items.
1. 1. Concept of arithmetic device array according to one embodiment of the
[1.本発明の一実施の形態に係る演算装置アレイの概念]
本発明に係る情報処理装置は、特許文献1(特開2003−208311号公報)に記載の技術をスーパーコンピュータ等のHPCに適用し、大規模演算をスケーラブルに行える基盤として、演算対象(対象問題)の構造を反映させて多数のPLD同士を相互接続したPLDアレイ(演算装置アレイ)を構成したものである。演算装置アレイは、PLDとして例えば大規模FPGAを搭載し、外部IO(入出力部)を大量に装備した小型のFPGAカード(演算装置)を、格子状に並べた構成を取る。
[1. Concept of arithmetic device array according to one embodiment of the present invention]
An information processing apparatus according to the present invention applies a technique described in Patent Document 1 (Japanese Patent Application Laid-Open No. 2003-208311) to an HPC such as a supercomputer, and serves as a basis for performing a large-scale operation in a scalable manner. The PLD array (arithmetic unit array) in which a large number of PLDs are interconnected to each other is reflected. The arithmetic device array has a configuration in which, for example, a large-scale FPGA is mounted as a PLD, and small FPGA cards (arithmetic devices) equipped with a large amount of external IO (input / output units) are arranged in a grid pattern.
すなわち、演算対象が1次元、2次元、3次元の構造である場合、それらの構造に合わせて隣接する演算装置を直接接続して1次元、2次元、3次元に配置し、演算対象において生じる数値あるいはそのデータ変化を隣接した演算装置に直接転送する。したがって、全ての演算装置は隣接演算装置に対してのみデータを転送する処理を実行すればよく、データ転送区間が短くなり、データ転送処理が情報処理装置の処理能力のボトルネックになることを回避する。また電力消費が少なくなる。 That is, when the calculation object has a one-dimensional, two-dimensional, or three-dimensional structure, adjacent calculation devices are directly connected in accordance with those structures and arranged in one, two, or three dimensions, and the calculation object is generated. The numerical value or its data change is directly transferred to the adjacent arithmetic unit. Therefore, all the arithmetic devices only need to execute the process of transferring data only to the adjacent arithmetic device, and the data transfer section is shortened, so that the data transfer processing is prevented from becoming a bottleneck of the processing capability of the information processing device. To do. Also, power consumption is reduced.
FPGA等のRC−LSI(Reconfigurable LSI)は、演算対象に合わせて回路を構成することができるため、専用回路を用いた高性能な演算手段を比較的安価に手に入れることができる。なお、以下に述べる実施の形態の例では、演算装置にFPGAを利用した例を説明するが、広義の再構成可能なPLDであればこの例に限られるものでなく、CPLD(Complex Programmable Logic Device)等を適用できる。 Since an RC-LSI (Reconfigurable LSI) such as an FPGA can configure a circuit in accordance with a calculation target, a high-performance calculation means using a dedicated circuit can be obtained relatively inexpensively. In the example of the embodiment described below, an example in which an FPGA is used as an arithmetic unit will be described. However, the present invention is not limited to this example as long as it is a reconfigurable PLD in a broad sense, and a CPLD (Complex Programmable Logic Device). ) Etc. can be applied.
図3は、演算対象の物理的または論理的な構造の一例を示すものである。
演算対象6は、流体モデルや液体モデルなどであり、1次元、2次元および3次元の任意の構造を取り得る。演算対象の具体例としては、例えば天文学や物理学分野において現在進められているALMAプロジェクトや重力波検出、さらには、次世代核融合実証炉等における炉設計、高エネルギー物理学分野においては、次世代加速器の内部反応予測シミュレーション、地球科学分野における様々な可視化シミュレーション(具体的には断層モデルの可視化等)、気象学的には中長期予報のためのシミュレーション分野の拡充等が要望として上がってきている。また、宇宙航空分野においては、人工衛星の機能設計や国際宇宙ステーションにおけるシミュレーション、将来の月への基地建設、有人火星探査におけるリスクシミュレーション等の分野からの要望も生じている。
FIG. 3 shows an example of a physical or logical structure to be calculated.
The calculation target 6 is a fluid model, a liquid model, or the like, and can take any one-dimensional, two-dimensional, or three-dimensional structure. Specific examples of computation targets include, for example, the ALMA project currently being promoted in the fields of astronomy and physics, gravity wave detection, reactor design in the next generation fusion demonstration reactor, and high energy physics. The internal reaction prediction simulation of the next generation accelerator, various visualization simulations in the earth science field (specifically, visualization of fault models, etc.), and meteorology, the expansion of the simulation field for medium- to long-term forecasts has been raised as requests. Yes. In the aerospace field, there are also demands from fields such as functional design of satellites, simulation at the International Space Station, construction of a base for the future moon, risk simulation in manned Mars exploration.
例えば、電磁気学や半導体工学などでよく利用される方程式の一つにポアソン方程式があるが、これは楕円型の偏微分方程式である。この方程式を差分法で解く場合、領域内の格子点数だけの連立方程式を解く必要がある。格子幅については任意でよいが、精度に反映されるため、いかに効率よく大型の連立方程式を解くかが問題となる。解きたい問題の領域について、格子点間隔を狭めれば格子点が増加し、それゆえ大規模な演算が必要となる。 For example, one of the equations often used in electromagnetism and semiconductor engineering is the Poisson equation, which is an elliptic partial differential equation. When solving this equation by the difference method, it is necessary to solve simultaneous equations for the number of grid points in the region. The lattice width may be arbitrary, but it is reflected in the accuracy, so how to solve a large simultaneous equation efficiently becomes a problem. In the problem area to be solved, the lattice points increase if the lattice point interval is narrowed, and therefore a large-scale calculation is required.
図3に示した演算対象6は3次元構造の例であり、本発明の情報処理装置を用いて当該演算対象6について演算処理を行うにあたり、この演算対象6を格子状の複数の問題領域6−1に分割する。この例では、演算対象6を、4(X方向)×3(Y方向)×3(Z方向)=36の問題領域に分割している。そして、図4に示すように、演算対象6に対し複数の演算装置40−1を、当該演算対象6の各々の問題領域6−1に対応するように配置して演算装置アレイ40を構成する。例えば斜線で表した個別の問題領域6−1の演算は、同じく斜線で表した対応する位置の演算装置40−1が担当する。したがって、この例では演算装置アレイ40は、問題領域6−1と同じ36個の演算装置40−1を用いて構成される。 The calculation target 6 shown in FIG. 3 is an example of a three-dimensional structure, and when performing calculation processing on the calculation target 6 using the information processing apparatus of the present invention, the calculation target 6 is converted into a plurality of lattice problem areas 6. Divide into -1. In this example, the calculation target 6 is divided into problem areas of 4 (X direction) × 3 (Y direction) × 3 (Z direction) = 36. Then, as shown in FIG. 4, a plurality of arithmetic devices 40-1 are arranged for the calculation target 6 so as to correspond to each problem area 6-1 of the calculation target 6 to constitute the calculation device array 40. . For example, the calculation of individual problem areas 6-1 represented by diagonal lines is performed by the arithmetic unit 40-1 at the corresponding position, also represented by diagonal lines. Therefore, in this example, the arithmetic device array 40 is configured by using the same 36 arithmetic devices 40-1 as the problem area 6-1.
各々の問題領域においては、隣接した問題領域と相互作用が行われ、物理量が隣接の問題領域に伝搬されるので、その物理現象に対応して隣接した演算装置間で対応するデータ転送が行われる。具体的には、一つの問題領域内には演算の対象となる多数のデータが格子点6−1A,6−1B,6−1C,・・・上にあり、対応する演算装置による演算が領域境界に達した場合にその演算結果が、当該演算装置から隣接する演算装置へ転送される。 In each problem area, an interaction with an adjacent problem area is performed, and a physical quantity is propagated to the adjacent problem area, so that corresponding data transfer is performed between adjacent arithmetic devices corresponding to the physical phenomenon. . Specifically, in one problem area, a large number of data to be calculated are on the grid points 6-1A, 6-1B, 6-1C,..., And the calculation by the corresponding calculation device is an area. When the boundary is reached, the calculation result is transferred from the calculation device to the adjacent calculation device.
このように、本発明では、分割した問題領域の物理形状や特性に対応して、演算装置を割り当て、隣接する演算装置間で直接データ転送することで、高性能なデータ処理能力を維持している。 As described above, according to the present invention, high-performance data processing capability is maintained by assigning arithmetic devices corresponding to the physical shape and characteristics of the divided problem areas and transferring data directly between adjacent arithmetic devices. Yes.
これに対し、従来の方式では、固定的に物理構成のままであり通信路でのデータ転送がネックとなり、演算対象に対して演算装置の性能を十分に発揮することができない。また、通常の場合には、演算装置間のデータ転送がボトルネックとなり通信路の高速性能を使用できずにいる。それを改善するために光ケーブル等の最高性能の通信路を用意すると、システム全体が高価なものとならざるを得ない。 On the other hand, in the conventional method, the physical configuration is fixed and the data transfer on the communication path becomes a bottleneck, and the performance of the arithmetic device cannot be sufficiently exerted on the operation target. Also, in normal cases, data transfer between arithmetic devices becomes a bottleneck, and the high-speed performance of the communication path cannot be used. In order to improve it, if the highest performance communication path such as an optical cable is prepared, the entire system must be expensive.
本発明では、演算対象に応じて演算装置間を連接接続する通信路がスケーラブルに増大するので、高性能・高価格の通信路を用いる必要がない。また、データ転送先が隣接する演算装置までのため、通信路に掛かる処理負荷も小さく、消費電力も少なくすることができる。 In the present invention, the communication path for connecting and connecting the arithmetic devices according to the calculation target increases in a scalable manner, so that it is not necessary to use a high-performance and high-priced communication path. In addition, since the data transfer destination is up to an adjacent computing device, the processing load on the communication path is small and the power consumption can be reduced.
[2.隣接する演算装置との接続]
本発明の情報処理装置においては、上記のとおり隣接する演算装置間で直接データ転送できるように構成している。以下、この隣接する演算装置との接続の形態について、図5〜図7を参照して説明する。
[2. Connection with adjacent processing unit]
The information processing apparatus of the present invention is configured so that data can be directly transferred between adjacent arithmetic devices as described above. Hereinafter, the form of connection with this adjacent arithmetic unit will be described with reference to FIGS.
図5、演算装置(演算ボード)のコネクタ配置を示す図である。図6は、演算装置(演算ボード)の相互接続を示す図である。さらに、図7は、演算装置の分解斜視図である。 FIG. 5 is a diagram showing the connector arrangement of the arithmetic device (arithmetic board). FIG. 6 is a diagram showing the interconnection of arithmetic devices (arithmetic boards). FIG. 7 is an exploded perspective view of the arithmetic device.
本実施の形態における演算装置40−1は、図5〜図7に示すように、上下に配置された1対の演算ボード50と書き込み・入出力ボード60(特許請求の範囲に記載された書き込みボードの一例)から構成される。
演算ボード50は、主に演算処理を担当する演算回路等(特許請求の範囲に記載された演算回路に相当)が書き込まれるFPGA51、主記憶装置として機能するメモリ52、および複数のコネクタ(接続端子)が設置された基板50Aを備える。また、書き込み・入出力ボード60は、演算ボード50のFPGAに演算回路等を書き込むための書き込み回路およびデータ転送用の入出力回路等が書き込まれるFPGA61、主記憶装置として機能するメモリ62、および複数のコネクタ(接続端子)が設置された基板60Aを備える。各コネクタは、演算ボード50の基板50Aおよび書き込み・入出力ボード60の基板60A上の各辺の所定位置に設けられる。演算ボード50と書き込み・入出力ボード60の機能等の詳細については後述する。
As shown in FIG. 5 to FIG. 7, the arithmetic device 40-1 in the present embodiment includes a pair of
The
演算ボード50は、これらの複数のコネクタにより相互に接続することが可能である。例えば、図6に示すように、演算ボード50は前接続用のコネクタ53Fを当該演算ボード50の前に配置されている演算ボード50の後用接続用のコネクタ53Bと直結することによって、前に配置された演算ボード50と直接データ転送可能になる。同様にして、後接続用のコネクタ53B、左接続用のコネクタ53L、右接続用のコネクタ53R、上接続用のコネクタ53U、下接続用のコネクタ53Dにより、それぞれ当該演算ボード50の後ろ、左、右、上、下に位置する演算ボード50と直接データ転送可能に接続できる。
The
また、演算ボード50は、書き込み・入出力ボード60と接続するためのコネクタ54を備え、コネクタ54を対応する書き込み・入出力ボード60のコネクタ64と直結することで、2つのボード間を直接データ転送可能にする。
In addition, the
演算ボード50は、前後左右方向の接続についてはコネクタ直結とし、高速転送を可能とする。また隣接接続端子の上下端子すなわちコネクタは、積層に適するよう対応する同一の場所にレイアウトする。ただし、各ボードの廃熱を考えると、上下端子の接続は直結とはせずにケーブルを介して接続するのが好ましい。
The
なお、書き込み・入出力ボード60の基板60Aにおいて、対応する演算ボード50の下接続用のコネクタ53Dに対応する位置に、コネクタ53Dの形状に合わせて切り欠き60A1が形成してある。書き込み・入出力ボード60の切り欠き60A1が形成された辺は、コネクタ63B,63Fが設けられた辺の長さと比較して短い。この切り欠き60A1を通して、演算ボード50の下接続用のコネクタ53Dが対応する書き込み・入出力ボード60の基板50Aを貫通し、その下に配置された演算ボード50と接続することができる。
In the
書き込み・入出力ボード60に切り欠き60A1を形成した場合、コネクタ63B,63Fが設けられた辺が短いので基板60Aの面積が小さくなり、材料の節約、コスト削減に繋がる。なお、演算ボード50のコネクタ53Dが書き込み・入出力ボード60を貫通できればよいので、例えば演算ボード50と同面積・同形状の書き込み・入出力ボード60に、切り欠き60A1に代えて貫通用の孔を設けてもよい。
When the notch 60A1 is formed in the writing / input /
図7に示した例では、コネクタ53F,53R,54は芯線の接続部が凸であるオス型コネクタとし、コネクタ53B,53L,64は芯線の接続部が凹であるメス型コネクタとしているが、この例に限られるものではない。
In the example shown in FIG. 7, the
[3.情報処理装置の概要]
次に、上述のような構成の演算装置アレイを用いた情報処理装置の概要について説明する。
[3. Overview of information processing equipment]
Next, an outline of an information processing apparatus using the arithmetic device array having the above-described configuration will be described.
既述のとおり、本発明の情報処理装置は、特許文献1に記載された半導体回路制御装置を応用して構成する。つまり、本発明においては、FPGA等のPLDの内部構成には関与しないが、動的に回路(いわゆる「仮想回路」)が書き換え可能なRC−LSIを用いる。そして、複数のRC−LSI(演算装置に相当)を演算対象の構造に合わせて配置し、かつ、隣接するRC−LSIを相互に直接接続して演算装置アレイを構成することにより、RC−LSI間でバスを用いず直接データ転送可能に構成する。
As described above, the information processing apparatus of the present invention is configured by applying the semiconductor circuit control apparatus described in
このように構成することにより、本発明においても、特許文献1に記載された半導体回路制御装置と同様に、仮想回路をオブジェクトでラッピングしたハードウェア・オブジェクトモデルは通常のソフトウェア・オブジェクトと外見は同様であり、自由にプログラムの中で使用できる。オブジェクト・ライブラリ中のオブジェクトから派生する方法を踏襲し、ハードウェア・オブジェクト・ライブラリを用意する。並列性が重視される画像認識、音声認識などの処理、常時観測が必要な処理など、専用回路に適した処理はハードウェア・オブジェクトとしてライブラリからRC−LSIに読み出して処理する。ただし、ハードウェア・オブジェクトは回路であるので、所定の同期信号に基づいてタイミングや同期の制御は行わなければならない。また、仮想回路を包み込むオブジェクトを演算対象に合わせて必要数だけ確保できるように、メモリやRC−LSIを演算装置に用意する。
With this configuration, in the present invention as well as the semiconductor circuit control device described in
図8は、本発明の一実施の形態に係る情報処理装置の概要を示す図である。
本実施の形態における情報処理装置は、例えば、CPUなどからなるホストプロセッサ11と、実際のメモリ空間を構築するメモリ12と、仮想回路空間を構築するPLD13とを備える。
FIG. 8 is a diagram showing an overview of an information processing apparatus according to an embodiment of the present invention.
The information processing apparatus according to the present embodiment includes, for example, a
アプリケーション(アプリケーション・プログラム)21は、ソフトウェアで実現してあるオブジェクトの他に最適な性能を実現する回路を含んだハードウェア・オブジェクト26も含まれている。アプリケーション21を実行する計算機は、メモリ空間を実現するメモリ(メモリ素子)12上にアプリケーションのソフトウェア・プログラム部分を配置し、これとソフトウェアを実行するホストプロセッサ11をシステムバスで接続している。同時にホストプロセッサ11には複数のPLD13を接続した標準バスが接続されている。これらのバスを総称してバス14と表記する。
The application (application program) 21 includes a
このPLD13はアプリケーションが起動され、動作中にハードウェア・オブジェクト26が起動されると、その回路部分のハードウェア・ネット29が書き込まれる実ハードウェア部品である。メモリ素子と同様に多数のLSIで回路空間を構成する。PLD13は、後述するハードウェア・モジュール30に搭載されるFPGAおよび演算装置アレイ40を構成する演算装置40−1に搭載されたFPGA(図7参照)に相当する。
The
アプリケーション21が起動されるとメモリ12内にアプリケーション21がまず配置される。プログラムの処理が進みハードウェア・オブジェクト(hwObject)26を生成するコンストラクタ文が実行されると、メモリ12とPLD13とに跨って(両方でセットとして)ハードウェア・オブジェクト26が配置される。ここでは、hwObject−1とhwObject−2のコンストラクタ文が実行されて二つのハードウェア・オブジェクト26が生成されている。アプリケーション21は、hwObject−1及びhwObject−2を含む。各ハードウェア・オブジェクト26に対応して、ハードウェア・ドライバ(hwDD)27及びハードウェア・ネット29が存在する。ハードウェア・ドライバ27は、メモリ12内に生成される。一方、ハードウェア・ネット29は、仮想回路空間であるPLD13内に、直接データ転送可能に生成され且つ消去可能とされる。
When the
図9は、ホストプロセッサとハードウェア・ネット間の制御概要の流れを示す図である。
ここでは、ハードウェア・オブジェクト26に対する読み書きの要求がアプリケーション21から、順次、要求を伝えてハードウェア・ネット29にまで伝えて応答を返すまで処理が続く。この時、ハードウェア・ネット29は並列動作を行う。アプリケーション21はハードウェア・オブジェクト26に実行を命令して、返答を待たずに、次の処理、例えば、別のハードウェア・オブジェクト26の実行を行っていく。ハードウェア・ネット29の処理が終了したかどうかを調べる処理を行いハードウェア・オブジェクト26のメンバー変数の値を読み取る。このように、アプリケーション21のレベルでの並列処理にあった形で、ハードウェア・オブジェクト26すなわち演算回路を含む組み込み回路の並列性を適切に利用することができる。
FIG. 9 is a diagram showing a flow of control outline between the host processor and the hardware network.
Here, the processing continues until a read / write request to the
以下に、情報処理装置の基本的な動作を説明する。
まず、アプリケーション21が起動されると、OSはアプリケーション21の実行に必要な領域をアプリケーション21が排他的に使用できるように確保して制御をアプリケーション21に渡す。アプリケーション21の起動・初期化プログラムは、プログラムで使用されるイベント管理、メッセージ管理等のOSとの通信やアプリケーション21内での管理に必要な基盤部分の立ち上げを行う。なお、ハードウェア・オブジェクト26の管理に必要な管理制御部分もこの時にアプリケーション部に組み込まれる。
The basic operation of the information processing apparatus will be described below.
First, when the
アプリケーションの動作中にハードウェア・オブジェクト26を生成する文が実行されると、ハードウェア・オブジェクト26がメモリ領域にIO処理部であるハードウェア・ドライバ27を含んで生成される。PLD13には同時に回路としてのハードウェア・ネット29が書き込まれ、ハードウェア・オブジェクト26が排他的に使用できるように設定される。このハードウェア・ネット29の回路データは、例えば、このハードウェア・ネット29の動作仕様を動作記述言語により記述し、設計自動化ツールである高位・論理合成、配置・配線ツールを使いPLD13に書き込まれる回路データを事前に作成して、回路ライブラリに登録しておくことができる。ここで、事前にハードウェア・ネット29を書き込んでおき、ハードウェア・オブジェクト26の生成時に回路を単に活性化させ、回路の書き込み時間を短縮させることは容易に考えられる。
When a statement that generates the
ハードウェア・オブジェクト26は一度生成されると、ハードウェア・オブジェクト26を消滅させる文が実行されるかアプリケーション21が終了するまで存在し続ける。アプリケーション21の動作中にハードウェア・オブジェクト26に対する読み書きを行う文が実行されると、それがハードウェア・ネット29に関係するメンバー変数やメンバー関数に対する場合には、ハードウェア・ドライバ27を介してハードウェア・ネット29に対するIO処理を行う。
Once created, the
[4.情報処理装置の全体構成」
図10は、情報処理装置の全体構成を示す図である。
本実施の形態における情報処理装置は、例えば、ホストプロセッサ11と、主記憶装置としてのメモリ12と、仮想回路空間であるハードウェア・モジュール30と、演算対象の各問題領域について演算を行う演算装置アレイ40とを備える。
演算装置アレイ40はハードウェア・モジュールの一種であり、図4に示した例では3次元構造であるが、ここでは説明の便宜のため2次元構造で表現してある。また、ホストプロセッサ11、メモリ12、およびハードウェア・モジュール30は、所定の規格(PCI規格等)のバス14を通じて高速なデータ転送が可能となっている。
[4. Overall Configuration of Information Processing Device "
FIG. 10 is a diagram illustrating an overall configuration of the information processing apparatus.
The information processing apparatus according to the present embodiment includes, for example, a
The arithmetic device array 40 is a kind of hardware module and has a three-dimensional structure in the example shown in FIG. 4, but is represented here in a two-dimensional structure for convenience of explanation. In addition, the
図に示すように、ソフトウェア・プログラムの大半はメモリ12に置かれ、ホストプロセッサ11により実行される。各種制御・処理のための回路は仮想化され、ハードウェア・ネット(hwNet)として、バス14上に置かれたハードウェア・モジュール30と名付けたハードウェア部品中に設けられ、ホストプロセッサ11が必要となった時点に一時的に書き込まれる。そして、ハードウェア・モジュール30に書き込まれた仮想回路によって、演算装置アレイ40の各演算装置40−1内のFPGAに演算回路等の仮想回路が書き込まれる。ハードウェア・モジュール30および各演算装置40−1に書き込まれた仮想回路は、不要になれば消去または再利用のために初期化される。
As shown in the figure, most of the software programs are stored in the
この生成・消去の手順の詳細は後述するが、ソフトウェアのオブジェクトと同じようにコンストラクタとデストラクタ演算子で行われる。ハードウェア・モジュール30および演算装置アレイ40はメモリ型のデバイスとして認識され、ハードウェア・オブジェクト26への読み書きはメモリ12上に作られたオブジェクトと同じように行われる。メモリ空間上に自由にオブジェクトが作れるのと同じように、ハードウェア・オブジェクト26が自由に作られる仮想回路空間を実部品として提供するのがハードウェア・モジュール30および演算装置アレイ40である。したがって、特に演算装置アレイ40は演算対象に合わせて大きな仮想回路空間を張るように多数の演算装置40−1を事前に用意する。ハードウェア・オブジェクト26を使った計算モデルは仮想回路をオブジェクトとして扱い、アプリケーション21にハードウェア・ネット29を埋め込むインターフェースを提供するものである。
The details of the generation / deletion procedure will be described later, but are performed by a constructor and a destructor operator in the same manner as a software object. The hardware module 30 and the arithmetic unit array 40 are recognized as memory-type devices, and reading / writing to the
本実施の形態では、再構成可能システムを構成する一要素として、図10に示したようなハードウェアボードである、ハードウェア・モジュール30を導入している。ハードウェア・モジュール30は、例えば、標準バス・インターフェース(BI)31、ローカルメモリ(LM)32、ローカルプロセッサ(LP)33、FPGA34、入出力インターフェース35をデータ転送可能に接続する構成になっている。
In the present embodiment, a hardware module 30 which is a hardware board as shown in FIG. 10 is introduced as one element constituting the reconfigurable system. For example, the hardware module 30 is configured to connect a standard bus interface (BI) 31, a local memory (LM) 32, a local processor (LP) 33, an
LP33は、FPGA等のRC−LSIで構成され、ハードウェア・モジュール30内の制御を行う。すなわちLP33によってLM32を利用しつつハードウェア・ネット(仮想回路データ書き込みのための書き込み回路の一例)がJTAG方式でFPGA34に書き込まれる。FPGA34は、入出力インターフェース35および通信路36を介して演算装置アレイ40の各演算装置40−1内のFPGAにハードウェア・ネット29(演算回路等の仮想回路)を書き込む。演算装置アレイ40の各演算装置40−1に書き込まれた仮想回路のそれぞれが、ハードウェア・ネット29として機能する。
The
BI31は、後述するハードウェア・ドライバの制御命令によりホストプロセッサ11とハードウェア・ネット29(FPGA34、演算装置アレイ40)との通信を制御する。ハードウェア・モジュール30(演算装置アレイ40を含む)はメモリ・デバイスとして認識され、メモリと同じような形態でバス14(例えば、PCI)に接続して情報処理装置(計算機)に組み込まれる。この時、OSによりハードウェア・モジュール・ドライバと呼ぶデバイス・ドライバが演算装置アレイ40の各演算装置40−1に組み込まれ、メモリ領域が割り当てられる。多数のメモリ・チップが一様且つ平坦なメモリ空間を構成するように多数のハードウェア・モジュール(演算装置40−1)内のRC−LSIは仮想回路空間を構成する。
The
なお、LP33およびFPGA34は、ホストプロセッサ11から送信されたデータを演算装置アレイ40へ転送し、また、演算装置アレイ40から送信されたデータをホストプロセッサ11へ転送する入出力回路としての機能も備える。
Note that the
図10に示すようなハードウェア・モジュール30を介してホストプロセッサ11からの仮想回路データを演算装置アレイ40の各演算装置40−1のFPGAに転送することで、演算装置アレイ40の各演算装置40−1にそれぞれハードウェア・ネット29を配置することができる。詳細は後述するが、例えば演算装置「00」のFPGA51に書き込まれた最初のhwNet−1の出力を演算装置「01」に転送し、それを演算装置「01」のFPGA51に書き込まれたhwNet−2が読み込む事で、hwNet−1とhwNet−2(図8参照)とは同時に動作してパイプライン処理を行う事ができる。
The virtual circuit data from the
また、LP33によりホストプロセッサ11の負担を減らす事ができる。すなわち、各演算装置40−1のFPGA51に書き込まれる使用頻度が高いハードウェア・ネット29の書き込みは、BI31を通してこのLP33に書き込み命令を送る事で可能である。
Further, the load on the
[5.ホストプロセッサの構成]
図11に、ホストプロセッサの階層構成図を示す。
ホストプロセッサ11は、アプリケーション21、オブジェクト・マネジャー22、ハードウェア・モジュール・ドライバ23、OS24、バス25を備える。この例では、アプリケーション21を3つ含む例を示しているが、適宜の数のアプリケーションを有することができる。各アプリケーション21は、ひとつ又は複数のハードウェア・オブジェクト26、ハードウェア・ドライバ27、アプリケーション21とハードウェア・ドライバ27との入出力を制御するインターフェース28の組を有する。
[5. Host processor configuration]
FIG. 11 shows a hierarchical configuration diagram of the host processor.
The
各ハードウェア・ドライバ27は、ハードウェア・ネット29毎に定義され、(ハードウェア・モジュール30を介して)ハードウェア・ネット29の入出力動作を制御する。ハードウェア・ドライバ27には、例えば、hwNetの端子情報、書き込みや読み込み、イネーブル、アウトプット・イネーブルなどのhwNetの制御情報、hwObject番号、hwNet番号、hwModule(演算装置)番号、割り当てPLD番号(演算装置とhwModuleが一対一に対応する場合は不要)、hwNet割り当て端子番号、局所(ローカル)メモリ割り当てアドレス、局所メモリ割り当て領域サイズ、hwNet状態、hwNet命令、主メモリでのhwNet通信領域アドレス、hwNet通信領域サイズ、hwNet通信領域カレント・アドレスなどの通信制御情報が組み込まれている。これらの情報は、ハードウェア・ネットの回路情報と共にハードウェア・ネットライブラリに保存されている。ハードウェア・オブジェクト26が生成されてハードウェア・ネット29がロードされる時には、hwModule(演算装置)番号、hwNet番号、PLD番号などを取得してハードウェア・ドライバ27がハードウェア・オブジェクト26の一部として生成される。
Each
ハードウェア・モジュール30および演算装置アレイ40を情報処理装置(計算機)に組み込んだ時、図に示すハードウェア・モジュール・ドライバ23は添付されたデバイス情報をもとにOS24にデバイス・ドライバとして永続的に登録される。このハードウェア・モジュール・ドライバ23は、計算機のバスに接続されたハードウェア・モジュール30に対する通信を制御している。例えば、バス14としてPCIバスを使う時にはPCIデバイス情報などがOSから割り当てられる。情報処理装置を立ち上げる時には常にハードウェア・モジュール・ドライバ23は、OSに事前に組み込まれる。一方、このハードウェア・モジュール・ドライバ23に反して、ハードウェア・オブジェクト26のハードウェア・ドライバ27は、ハードウェア・ネット29が存在する時だけハードウェア・モジュール・ドライバ23の中に組み込まれ、OS24がハードウェア・ドライバ27を感知することはない。他方、ハードウェア・オブジェクト26側は、ハードウェア・ドライバ27をOSに組み込まれたデバイス・ドライバのようにみなしてハードウェア・ネット29に対するアクセスを行う。このとき、どのハードウェア・モジュール30および演算装置アレイ40に対するアクセスを行うかなどは考慮する必要がない。
When the hardware module 30 and the arithmetic unit array 40 are incorporated into an information processing apparatus (computer), the
このように、本発明では、OS24側からは、ハードウェア・モジュール・ドライバ23が常時組み込まれるデバイス・ドライバとして安定して制御及び監視を行う事ができるので、システムの安定性を保証する事ができる。他方、アプリケーション21側からは、ハードウェア・ドライバ27が必要なときにだけ割り当てられるので、ハードウェア・ネット29を使う自由度が大幅に増すことになる。
As described above, in the present invention, the
[6.演算装置(演算ボード、書き込み・入出力ボード)の構成]
図12は、演算装置(演算ボード、書き込み・入出力ボード)の仮想回路書き込み後の機能を示すブロック図である。以下、図12を参照して、演算ボード50、書き込み・入出力ボード60の順に説明する。
[6. Arithmetic unit (arithmetic board, writing / input / output board) configuration]
FIG. 12 is a block diagram illustrating functions after the virtual circuit is written in the arithmetic device (arithmetic board, writing / input / output board). Hereinafter, the
演算ボード50は少なくとも、仮想回路空間が形成されるFPGA51と、メモリ空間が形成されるメモリ52を備える。メモリ52には、ハードウェア・モジュール30を介してホストプロセッサ11から送信された演算対象の問題領域に対応する仮想回路データや演算対象データ、各回路による演算結果データ等が一時的に格納される。また、メモリ52は、ある問題領域における演算中でない格子点に関する情報など、演算に必要ない情報を一時的に格納したりもする。
The
FPGAの内部構造は周知であり、例えば、任意の論理を構成可能な4入力程度の組合せ回路と順序回路からなる論理ブロックが、格子状に多数配置され、その間の配線を簡易なスイッチブロックで接続し、スイッチを切り替えることで所望の機能を持つ仮想回路を再構成するようにしている。そして、仮想回路が再構成された論理ブロックにより、入出力ブロックI/Oを介してデータの入力および演算結果の出力等が行われる。 The internal structure of the FPGA is well known. For example, a large number of logic blocks consisting of combinational circuits and sequential circuits of about 4 inputs that can form any logic are arranged in a grid, and the wiring between them is connected with a simple switch block. Then, a virtual circuit having a desired function is reconfigured by switching the switch. Then, data is input through the input / output block I / O, the operation result is output, and the like by the logic block in which the virtual circuit is reconfigured.
本実施の形態におけるFPGA51は、メモリ制御回路55、並列演算回路56(演算回路の一例)、演算対象データ入出力回路57、演算結果データ入出力回路58、隣接FPGAデータ転送回路59X,59Y,59Zを含む回路が書き込まれる。並列演算回路56を含む全ての回路は、書き込み・入出力ボード60に搭載されたFPGA61により書き込まれる。なお、以降、演算回路を含むこれらの回路を総称して「演算回路等」という。
The
メモリ制御回路55は、メモリ52に記憶された各種データの読み出しおよび書き込みを行い、演算ボード50上のメモリ52と各仮想回路とのデータ転送を実現する回路である。
The
並列演算回路56は、複数の論理ブロック56A,56B・・・を備え、演算対象の問題領域に対応した演算を行う回路である。例えば、演算対象が連続系の物理問題のときには、問題領域の各格子点上に定義された微分方程式を離散化した連立方程式を計算する並列回路が再構成される。また、演算対象が多分岐とグラフ構造で示される場合には、ノード分岐を辿りながら計算を行う並列回路が再構成される。
The parallel
問題領域内の格子点(i,j,k)における物理量fは、演算対象が3次元の場合、次式で表され、隣接格子上の物理量で与えられる方程式が定義できる。
f(i, j, k) = F(i-1, j-1, k-1, i, j, k, i+1, j+1, k+1)
The physical quantity f at the lattice point (i, j, k) in the problem area is expressed by the following formula when the calculation target is three-dimensional, and an equation given by the physical quantity on the adjacent grid can be defined.
f (i, j, k) = F (i-1, j-1, k-1, i, j, k, i + 1, j + 1, k + 1)
今、問題領域の1辺の格子点数をNとすると、問題領域内の格子点数は3次元で増加するのに対し、境界面では2次元で増加するため、格子点での演算量はNの3乗に比例(〜N3)し、境界面では6/N2に比例する。よって、演算量に関して格子点/境界面(〜N3/6N2)=N/6である。したがって、両者の演算量と演算手段とのバランスをとるには、N個の格子点用の並列演算回路に対する境界面用のそれの数をN/6以上とすればよい。例えば、論理ブロック56Aが領域内の格子点に対応し、論理ブロック56Bが境界面に対応するとすれば、論理ブロック56Aの数を論理ブロック56Bの数のN/6以上とする。
Now, assuming that the number of grid points on one side of the problem area is N, the number of grid points in the problem area increases three-dimensionally, but increases two-dimensionally at the boundary surface. It is proportional to the third power (˜N 3 ) and proportional to 6 / N 2 at the boundary surface. Therefore, the grid point / boundary surface (˜N 3 / 6N 2 ) = N / 6 with respect to the calculation amount. Therefore, in order to balance the amount of calculation between the two and the calculation means, the number of the boundary planes for the parallel calculation circuits for N lattice points may be N / 6 or more. For example, if the
演算対象データ入出力回路57は、ホストプロセッサ11の制御下でハードウェア・モジュール30から送られる演算対象データが書き込み・入出力ボード60を介して入力される回路である。入力された演算対象データは、メモリ制御回路55を介してメモリ52に記憶され、並列演算回路56等による処理に利用される。演算対象データには、例えば演算対象の範囲、問題領域、演算結果の転送先、演算条件等、演算に使用するパラメータが含まれる。
The calculation target data input /
なお、演算対象データのパラメータ(演算条件、演算対象、問題領域等)は、メモリ52に記憶させている途中で、つまりホストプロセッサ11から送られる段階で変更になることも考えられる。そのような場合、演算対象データ入出力回路57は、メモリ52に途中まで記憶させた演算対象データに、メモリ52における当該演算対象データが格納されたアドレス情報を付加してホストプロセッサ11へ送信するようにしてもよい。このようにした場合、ホストプロセッサ11は、各演算装置の変更後の演算対象データと、各演算装置から戻ってきた演算対象データとを比較し、真に変更された演算対象データについてのみ該当演算装置へ再送すればよいので、通信路のリソースの節約および再送処理に要する時間を短縮できる。
Note that the parameters (calculation conditions, calculation targets, problem areas, etc.) of the calculation target data may be changed while being stored in the
演算結果データ入出力回路58は、当該演算ボード50の並列演算回路56等による演算完了後の演算結果データ、あるいは演算に使用するパラメータ等のデータを、メモリ制御回路55を介してメモリ52に記憶したり、対応する書き込み・入出力ボード60へ送信したりする回路である。この演算結果データには、並列演算回路56による演算結果に加え、当該演算ボード(演算装置)の番号、問題領域の各格子点情報とそれに対応する演算結果データ等が含まれる。なお、演算結果データは、演算対象データに含まれる「演算結果の転送先」に基づいて隣接する所定の演算ボードへ転送される。
The calculation result data input /
なお、演算中の演算対象データのパラメータ変更やシミュレーション方法の変更などの理由により、演算を途中で停止することがある。このような場合、演算結果データ入出力回路58は、メモリ52に途中まで記憶させた演算結果データに、メモリ52における当該演算結果データが格納されたアドレス情報を付加してホストプロセッサ11へ送信するようにしてもよい。このようにした場合、ホストプロセッサ11は、各演算装置による途中までの演算結果を利用して演算対象の解析を行うことができる。さらに、その途中までの演算結果をホストプロセッサ11(メモリ12)から読み込むようにしてもよい。それにより、途中まで実施した演算結果を流用することができるので、新たに演算が必要な部分のみ演算を行えばよく、演算に要する時間を短縮できる。
Note that the calculation may be stopped halfway due to a change in the parameter of the calculation target data being calculated or a change in the simulation method. In such a case, the calculation result data input /
隣接FPGAデータ転送回路59Xは、各コネクタを介してX方向(前後)に隣接する演算ボード50との間でデータの送受信を行い、並列演算回路56へ転送する回路である。この隣接する演算ボード50との間でやり取りするデータには、隣接する演算ボード50による演算結果に加え、領域境界を跨ぐデータの送受信を実現するため、送信元の演算ボード(演算装置)の番号、各々の格子点情報とそれに対応する演算結果データ等が含まれる。同様にして、隣接FPGAデータ転送回路59YはY方向(左右)に隣接する演算ボード50と、隣接FPGAデータ転送回路59ZはZ方向(上下)に隣接する演算ボード50とデータの送受信を行う。なお、各隣接FPGAデータ転送回路59X,59Y,59Zから隣接する演算装置40−1へのデータ転送は、ハードウェア・モジュール30を介してホストプロセッサ11から送られるクロック信号(CLK)に基づき全演算装置40−1でタイミングを合わせて行われる。
The adjacent FPGA
次に、書き込み・入出力ボード60について説明する。図6に示したように隣接する演算ボード50同士を接続し、書き換え可能な半導体装置に演算回路等を書き込むためには、書き込みを行う書き込み回路が必要である。
Next, the writing / input /
書き込み・入出力ボード60は少なくとも、仮想回路空間が形成されるFPGA61と、メモリ空間が形成されるメモリ62を備える。メモリ62には、ハードウェア・モジュール30を介してホストプロセッサ11から送信された演算対象の問題領域に対応する仮想回路データや演算対象データ、また演算ボード50から送られてくる演算結果データや各回路の演算結果データ等が一時的に格納される。
The writing / input /
本実施の形態におけるFPGA61は、ハードウェア・モジュール30のFPGA34の制御の下、メモリ制御回路65、書き込み回路66(仮想回路データ書き込み回路の一例)、仮想回路データ入出力回路67、各種データ入出力回路68が書き込まれる。以降において、各種データ入出力回路68を「演算回路等」に含める場合もある。
The
メモリ制御回路65は、メモリ62に記憶された各種データの読み出しおよび書き込みを行い、書き込み・入出力ボード60上のメモリ62と各仮想回路とのデータ転送を実現する回路である。
The
書き込み回路66は、ホストプロセッサ11の制御下でハードウェア・モジュール30から送信される演算対象の問題領域に対応する仮想回路データに基づいて、演算ボード50のFPGA51に各仮想回路を書き込む回路である。ホストプロセッサ11からの指示内容によって、問題領域ごとに各演算ボード50のFPGA51に書き込む仮想回路を変える場合もあれば、仮想回路の論理構成は同一で演算対象パラメータを変えることで問題領域ごとに異なる演算結果を得るような場合もある。
The
仮想回路データ入出力回路67は、ハードウェア・モジュール30から送信される仮想回路データの入力、および当該仮想回路データを指定された書き込み・入出力ボード60へ転送するべく制御する回路である。
The virtual circuit data input /
各種データ入出力回路68は、ハードウェア・モジュール30から送られてきた仮想回路データや演算対象データを受信し、メモリ制御回路65を介してメモリ62に記憶したり、対応する演算ボード50へ転送したりする回路である。また、対応する演算ボード50から送られてくる問題領域の演算結果データや各回路の演算結果データ等を、ハードウェア・モジュール30を介してホストプロセッサ11へ送信する回路である。
The various data input /
なお、書き込み・入出力ボード60の書き込み回路66および仮想回路データ入出力回路67は、対応する演算ボード50への演算回路等の書き込みが終了した時点で消去してもよい。このようにした場合、書き込み・入出力ボード60のFPGA61のリソースを節約することができる。勿論、FPGA61へ各種データ入出力回路68を書き込んでもなおリソースに余裕があれば、書き込み回路66および仮想回路データ入出力回路67を残しておいてもよい。
Note that the
[7.演算装置アレイによる演算処理]
次に、図10に示した演算装置アレイ40を例に演算処理の概要を説明する。
前提として、演算装置アレイ40を構成する各演算装置40−1の演算ボード50および書き込み・入出力ボード60に、各々が担当する演算対象の問題領域に合わせてhwNet29である仮想回路(図12参照)が書き込まれた状態であるとする。演算を行う順番は、演算対象の物理現象や特性等に基づいて決定される。ここでは演算装置「00」,演算装置「10」,演算装置「20」から演算を開始して横方向へ順に移動していき、末端の演算装置「03」,演算装置「13」,演算装置「23」で演算を終了する場合を想定する。
[7. Arithmetic processing by arithmetic device array]
Next, the outline of the arithmetic processing will be described by taking the arithmetic device array 40 shown in FIG. 10 as an example.
As a premise, a virtual circuit which is hwNet29 is arranged on the
演算装置アレイ40を構成する12個の演算装置、演算装置「00」〜演算装置「23」の各々の演算ボード50に、それぞれが担当する演算対象の問題領域ごとの演算対象パラメータの初期値が入力されメモリ52に一時記憶される。また、メモリ52は、当該演算装置が転送すべき「演算結果の転送先」の情報を記憶している。
The initial values of the parameters to be calculated for each problem area to be calculated are assigned to the
演算装置「00」,「10」,「20」の演算ボード50における並列演算回路56(図12参照)は、ハードウェア・モジュール30を介して入力されるホストプロセッサ11からの指示を受けて、あるいは所定の信号や条件をトリガとするタイミングで、各々の対応する問題領域について演算を開始する。生成された各演算結果データはそれぞれのメモリ52に記憶する。
The parallel arithmetic circuit 56 (see FIG. 12) in the
続いて、演算装置「00」,「10」,「20」はメモリ52に格納した各々の演算結果データを、ホストプロセッサ11(または図示せぬクロック発生部)が発信するクロック信号(CLK)に同期して、隣接FPGAデータ転送回路59X(図12参照)からコネクタ53R(図7参照)を介してそれぞれ「演算結果の転送先」である演算装置「01」,「11」,「21」へ転送する。
Subsequently, each of the arithmetic devices “00”, “10”, “20” uses the operation result data stored in the
演算装置「01」,「11」,「21」では、各隣接FPGAデータ転送回路59Xがコネクタ53Lを介して演算装置「00」,「10」,「20」からそれぞれ演算結果データを受信する。そして、受信した演算結果データと演算対象パラメータ値、及び各演算装置に保存された過去の演算時点での演算結果を用いて、演算装置「01」,「11」,「21」の並列演算回路56が新たな演算結果データを生成し、それぞれのメモリ52に記憶する。
In the arithmetic devices “01”, “11”, and “21”, each adjacent FPGA
同様にして、演算装置「01」,「11」,「21」は各々の演算結果データを、「演算結果の転送先」の情報に従って演算装置「02」,「12」,「22」に転送する。演算装置「02」,「12」,「22」では、演算装置「01」,「11」,「21」から受信した各々の演算結果データと演算対象パラメータ値、及び各演算装置に保存された過去の演算時点での演算結果を用いて、並列演算回路56が新たな演算結果データを生成し、それぞれのメモリ52に記憶する。
Similarly, the arithmetic devices “01”, “11”, and “21” transfer the respective arithmetic result data to the arithmetic devices “02”, “12”, and “22” according to the information of “calculation result transfer destination”. To do. In the calculation devices “02”, “12”, and “22”, the calculation result data and calculation target parameter values received from the calculation devices “01”, “11”, and “21”, and the calculation devices are stored in each calculation device. The
また、演算装置「02」,「12」,「22」は各々の演算結果データを、「演算結果の転送先」の情報に従って演算装置「03」,「13」,「23」に転送する。演算装置「03」,「13」,「23」では、演算装置「02」,「12」,「22」から受信した各々の演算結果データと演算対象パラメータ値、及び各演算装置に保存された過去の演算時点での演算結果を用いて、演算装置「03」,「13」,「23」の並列演算回路56が新たな演算結果データを生成し、それぞれのメモリ52に記憶する。
The arithmetic devices “02”, “12”, and “22” transfer the respective arithmetic result data to the arithmetic devices “03”, “13”, and “23” according to the information of “calculation result transfer destination”. In the arithmetic devices “03”, “13”, and “23”, each arithmetic result data and arithmetic target parameter value received from the arithmetic devices “02”, “12”, and “22” are stored in each arithmetic device. Using the calculation results at the past calculation time, the
演算装置「00」〜演算装置「23」の全ての演算装置で演算処理が終了した後、演算結果データをホストプロセッサ11へ送信する処理を実行する。まず演算装置「00」〜演算装置「23」の各々の演算ボード50における並列演算回路56は、担当する問題領域について演算結果データを生成した後、当該演算結果データを演算結果データ入出力回路58からコネクタ54を介して対応する書き込み・入出力ボード60へ転送する。
After the arithmetic processing is completed in all the arithmetic devices “00” to “23”, processing for transmitting the operation result data to the
演算装置「00」〜演算装置「23」の各々の書き込み・入出力ボード60において、各種データ入出力回路68がコネクタ64を介して、対応する演算ボード50から演算結果データを受信する。そして、各種データ入出力回路68は、受信した演算結果データを、通信路36を通じてハードウェア・モジュール30へクロック信号(CLK)に同期して転送する。
In each of the writing / input /
ハードウェア・モジュール30においては、演算装置アレイ40の演算装置「00」〜演算装置「23」から受信した各演算結果データをFPGA34からローカルプロセッサ33へ送る。ローカルプロセッサ33は、標準バス・インターフェース31からバス14を介して、ホストプロセッサ11へ演算結果データを転送する。
In the hardware module 30, calculation result data received from the calculation devices “00” to “23” of the calculation device array 40 is sent from the
演算装置アレイ40を構成する各演算装置40−1から個々の問題領域に対する演算結果データを取得したホストプロセッサ11は、当該演算結果データと対応する演算装置の番号を基に演算対象全体の演算を実行する。そして、図3に示したような演算対象全体の物理的構造や論理的構造、特性などを解析し、表示装置(図示せず)に出力する。
The
上記構成の演算ボード50と書き込み・入出力ボード60を備える演算装置40−1によれば、任意の演算装置40−1の演算ボード50による演算結果データを隣接する演算装置40−1の演算ボード50へ直接転送することができる。つまり、演算のためのデータ転送にはバスを介さない。
According to the arithmetic device 40-1 including the
また、演算装置アレイ40の各演算装置40−1による演算結果データ等を取り出してホストプロセッサ11宛てに送信するとき、および、ホストプロセッサ11から仮想回路データや演算対象データ等を受信するときのみバス(例えばバス14)を利用する。
このように構成したことにより、隣接する演算装置40−1間のデータ転送処理が情報処理装置の処理能力のボトルネックになることを回避することができる。
Further, the bus is only used when the calculation result data and the like by the respective calculation devices 40-1 of the calculation device array 40 are taken out and transmitted to the
With this configuration, it is possible to avoid the data transfer process between the adjacent arithmetic devices 40-1 from becoming a bottleneck of the processing capability of the information processing device.
なお、演算装置アレイ40の各演算装置からホストプロセッサ11への演算結果データの転送は、各演算装置において問題領域の演算が終了後、演算結果データをメモリに記憶する処理と併せて実行するようにするとよい。このようにした場合、演算が終了した演算装置から順に演算結果データがホストプロセッサ11へ向けて転送されるので、データの輻輳が抑制され、バス14を始めとする各通信路におけるオーバーヘッドを小さくすることができる。
It should be noted that the transfer of the operation result data from each operation device of the operation device array 40 to the
本出願人の試作した情報処理装置によれば、128セットの演算装置を用いて演算装置アレイを構成したところ、約0.7テラフロップス(TFLOPS)を達成している。 According to the information processing apparatus prototyped by the present applicant, when an arithmetic unit array is configured using 128 sets of arithmetic units, about 0.7 teraflops (TFLOPS) is achieved.
[8.演算装置への書き込み処理]
次に、図13および図14を参照して、演算装置アレイを構成する各演算装置に対する演算回路等の書き込み処理を説明する。図13は、演算回路等書き込み処理を示すフローチャートである。図14は、演算回路等書き込み処理時の状態遷移を示すものである。
[8. Write processing to arithmetic unit]
Next, with reference to FIG. 13 and FIG. 14, the writing process of the arithmetic circuit etc. with respect to each arithmetic unit which comprises an arithmetic unit array is demonstrated. FIG. 13 is a flowchart showing write processing such as an arithmetic circuit. FIG. 14 shows a state transition at the time of writing processing such as an arithmetic circuit.
図10に示したように、最初の書き込み回路はホストプロセッサ11上にあり、ホストプロセッサ11から段階的に、演算装置アレイ40の各演算装置40−1に演算回路等の仮想回路を書き込んでいく。しかし、仮想回路の中に書き込み回路が構成されていないと、次段(隣接)の演算装置40−1に仮想回路を書き込むことができない。他方、演算時には、書き込み回路は不用であるので、仮想回路の書き込みが終了したときには削除するのが望ましい。したがって、書き込みが可能なように、全ての演算装置40−1に対して、書き込み回路あるいは書き込み用の接続回路を書き込み、その後に末端の演算装置40−1から演算回路等に置き換えていく必要がある。この処理は、ホストプロセッサ11上で動作するソフトウェアが図13に示す流れに沿って行う。
As shown in FIG. 10, the first write circuit is on the
まず、ホストプロセッサ11がバス14および標準バス・インターフェース31を介して、メモリ12に記憶してある演算対象に基づく仮想回路書き込みデータをハードウェア・モジュール30へ送信する(ステップS1)。この仮想回路書き込みデータには少なくとも、演算対象の各問題領域に対応する「演算装置の番号」と、それに対応する「仮想回路データ」と、「書き込み順番」の情報が含まれる。現段階では、演算装置40−1を構成する演算ボード50および書き込み・入出力ボード60には仮想回路が書き込まれていない初期状態である(図14A)。
First, the
ホストプロセッサ11は、ハードウェア・モジュール30内のFPGAからなるローカルプロセッサ33に、仮想回路書き込みデータを書き込む(ステップS2)。
The
そして仮想回路書き込みデータが書き込まれたローカルプロセッサ33は、ハードウェア・モジュール30内の演算装置アレイ制御用のFPGA34に、仮想回路書き込みデータを書き込む(ステップS3)。
The
仮想回路書き込みデータが書き込まれたFPGA34は、入出力インターフェース35および通信路36を通じて、演算装置アレイ40の所定の演算装置40−1に仮想回路書き込みデータを送信する(ステップS4)。
The
FPGA34は、演算装置40−1の書き込み・入出力ボード60のFPGA61に、仮想回路データに基づく書き込み回路66および仮想回路データ入出力回路67を再構成する。さらに、各種データ入出力回路68を再構成する。そして、書き込み回路66および仮想回路データ入出力回路67が書き込まれた書き込み・入出力ボード60では、入力された仮想回路書き込みデータを当該仮想回路書き込みデータに含まれる書き込み順番に従って、隣接する演算装置40−1の書き込み・入出力ボード60へ転送する(ステップS5)。このとき、書き込み・入出力ボード60に書き込み回路66および仮想回路データ入出力回路67が書き込まれた状態となる(図14B)。
The
図10を例に説明すると、一例として演算装置「00」→演算装置「10」,「01」→演算装置「20」,「11」,「22」→・・・の順番に書き込み回路66等を書き込んでいく。なお、図10に示した例では、演算装置が2次元に配置してあるが、演算装置が3次元に配置されていれば書き込み処理を3次元で展開してもよい。
Referring to FIG. 10 as an example, as an example, the writing
ホストプロセッサ11は、書き込み・入出力ボード60へ書き込み回路66等を書き込むと、その都度、動作確認のため書き込み・入出力ボード60から書き込み完了を示す終了信号(フラグ)を取得する。そして、ホストプロセッサ11は、全ての演算装置40−1の書き込み・入出力ボード60について、書き込み回路等の再構成が終了したか否かを判定する(ステップS6)。
Each time the
全ての書き込み・入出力ボード60について書き込み回路66等の書き込みが終了していない場合、ステップS5の処理に戻り、書き込み処理を継続する。
If writing by the writing
一方、全ての書き込み・入出力ボード60について書き込みが終了した場合、演算装置アレイ40の末端の書き込み・入出力ボード60の書き込み回路66が、対応する演算ボード50のFPGA51に並列演算回路56等の仮想回路(図12参照)を書き込んでいく(ステップS7)。
On the other hand, when writing is completed for all the writing / input /
そして、全ての書き込み・入出力ボード60に対応する書き込み回路66が、入力された仮想回路書き込みデータに含まれる書き込み順番情報に従って、対応する書き込み演算ボード50のFPGA51に並列演算回路56等の仮想回路を書き込んでいく(ステップS8)。
Then, the
例えば、演算装置「23」→演算装置「22」,「13」→演算装置「21」,「12」,「03」→・・・の順番に並列演算回路56へ置き換えていく。なお、図10に示した例では、演算装置が2次元に配置してあるが、演算装置が3次元に配置されていれば書き込み処理も3次元で展開してもよい。
For example, the parallel
ホストプロセッサ11は、演算ボード50へ並列演算回路56等が書き込まれると、その都度、演算ボード50から書き込み完了を示す終了信号(フラグ)を取得する。ホストプロセッサ11は終了信号に基づき、全ての演算装置40−1の演算ボード50について、並列演算回路56等の書き込みが終了したか否かを判定する(ステップS9)。
The
全ての演算ボード50について書き込みが終了していない場合、ステップS8の処理に戻り、並列演算回路56等の書き込み処理を継続する。
If writing has not been completed for all the
一方、全ての演算ボード50について書き込みが終了した場合、演算装置アレイ40の演算装置40−1に対する仮想回路の書き込みを終了する。このとき、書き込み・入出力ボード60には書き込み回路66と仮想回路データ入出力回路67等が、演算ボード50には並列演算回路56等が書き込まれた状態となる(図14C)。
On the other hand, when the writing is completed for all the
1つの演算装置を書き換えるのにおおよそ40msであるので、演算装置アレイ全体でも数秒で書き換えることができる。 Since it takes approximately 40 ms to rewrite one arithmetic device, the entire arithmetic device array can be rewritten in a few seconds.
なお、FPGAはゲートアレイであるからゲート数のリソースには限りがある。また、演算時には、書き込み回路は不用であるので、仮想回路の書き込みが終了したときには削除するのが望ましい。そこで、演算ボード50に並列演算回路56等を書き込むその一方で、仮想回路データ書き込み回路が最後に書き込まれた演算装置40−1から最初に書き込まれた演算装置40−1まで順に、書き込み・入出力ボード60のFPGA61に書き込んだ書き込み回路66と仮想回路データ入出力回路67を消去する。このとき、書き込み・入出力ボード60には各種データ入出力回路68が、また演算ボード50には並列演算回路56等が書き込まれた状態となる(図14D)。
Since the FPGA is a gate array, the number of gates is limited. In addition, since a writing circuit is unnecessary at the time of calculation, it is desirable to delete it when the writing of the virtual circuit is completed. Therefore, while the parallel
また、仮想回路データ書き込み回路が最後に書き込まれた演算装置40−1から最初に書き込まれた演算装置40−1まで順に、書き込み・入出力ボード60のFPGA61に書き込んだ書き込み回路66と仮想回路データ入出力回路67を消去するとしたが、この例に限られない。すなわち、ホストプロセッサ11が全ての演算装置40−1について演算回路等の書き込み動作が正常かどうかを確認できればよく、適切な順番で、書き込み・入出力ボード60の書き込み回路66と仮想回路データ入出力回路67を消去していけばよい。
Further, the
さらに上述した例では、仮想回路データ入出力回路67と各種データ入出力回路68を別々に構成したが、データ転送回路などとして一体に構成してもよい。
Further, in the above-described example, the virtual circuit data input /
図15は、演算回路等の仮想回路を書き込んだ後の演算装置アレイの状態を示したものである。
この例では、第1の演算装置の演算ボード50−1と隣接する第2の演算装置の演算ボード50−2が接続し、第1の演算装置の書き込み・入出力ボード60−1と隣接する第2の演算装置の書き込み・入出力ボード60−2が接続している。第1の演算装置はハードウェア・モジュールを介してハードウェア・モジュール30(ホストプロセッサ11側)と接続しているとする。
FIG. 15 shows the state of the arithmetic device array after writing a virtual circuit such as an arithmetic circuit.
In this example, the arithmetic board 50-1 of the first arithmetic device and the arithmetic board 50-2 of the second arithmetic device adjacent to each other are connected and adjacent to the write / input / output board 60-1 of the first arithmetic device. The write / input / output board 60-2 of the second arithmetic unit is connected. It is assumed that the first arithmetic device is connected to the hardware module 30 (
第1の演算装置の演算ボード50−1の並列演算回路56で生成された演算結果データは、対応する書き込み・入出力ボード60−1の各種データ入出力回路68からハードウェア・モジュール30へ送信され、ハードウェア・モジュール30からバス14を介してホストプロセッサ11へ転送される。
Calculation result data generated by the
一方、第2の演算装置の演算ボード50−2の並列演算回路56で生成された演算結果データは、対応する書き込み・入出力ボード60−2の各種データ入出力回路68からまずはホストプロセッサ11側に近い第2の演算装置の書き込み・入出力ボード60−2へ送信される。それから、書き込み・入出力ボード60−2の各種データ入出力回路68によって、第2の演算装置の当該演算結果データが通信路36を介してハードウェア・モジュール30へ送信され、ハードウェア・モジュール30からバス14を介してホストプロセッサ11へ転送される。
On the other hand, the operation result data generated by the
本例では、説明の便宜上、隣接する2個の演算装置間の演算結果データの転送処理について説明したが、それ以上の個数の演算装置間、あるいは3次元配置された複数の演算装置間においても技術思想の基本は同じである。 In this example, for the sake of convenience of explanation, the processing for transferring the calculation result data between two adjacent arithmetic devices has been described. However, even between a larger number of arithmetic devices or a plurality of arithmetic devices arranged in three dimensions. The basics of technical thought are the same.
上述のように構成された本実施の形態によれば、演算装置アレイを構成する全ての演算装置(FPGA等)は隣接演算装置に対してのみ演算結果等のデータを転送する処理を実行すればよく、データ転送処理が情報処理装置の処理能力のボトルネックになることを回避することができる。 According to the present embodiment configured as described above, if all the arithmetic devices (FPGA, etc.) constituting the arithmetic device array execute processing for transferring data such as arithmetic results only to adjacent arithmetic devices. In many cases, it is possible to avoid the data transfer process from becoming a bottleneck of the processing capability of the information processing apparatus.
また、従来の演算装置は全てのデータ転送にバスを介して行っていたため消費電力が膨大なものになり、データ転送の高速化を実現する上で障害となっていたが、上記実施の形態では演算装置間のデータ転送にバスを用いずコネクタ直結によるデータ転送を行うようにしたので、バスを用いた場合と比較して消費電力を小さくできる。 In addition, since the conventional arithmetic unit performs all data transfer via the bus, the power consumption becomes enormous, which has been an obstacle to realizing high-speed data transfer. Since the data transfer between the arithmetic devices is performed by the connector direct connection without using the bus, the power consumption can be reduced as compared with the case of using the bus.
また、従来は通信路での高速性と低消費電力を実現するために光通信を利用することが行われていたが、本実施の形態では光通信を用いずに処理能力の向上および低消費電力を実現するので、大規模演算用の情報処理装置を安価に提供できる。したがって、個人であっても、予約待ちをすることなく、大規模演算用のコンピュータを利用できるようになる。 Conventionally, optical communication has been used in order to realize high speed and low power consumption in a communication path. However, in this embodiment, improvement in processing capability and low consumption are achieved without using optical communication. Since power is realized, an information processing apparatus for large-scale computation can be provided at a low cost. Therefore, even an individual can use a computer for large-scale computation without waiting for a reservation.
[9.本発明の他の実施の形態に係る演算装置アレイ]
3次元構造の演算装置アレイ40において、図12に示したように、一つの演算装置40−1の演算ボード50には、隣接FPGAデータ転送回路が3対ある。この隣接FPGAデータ転送回路の接続先を電気的に変えることで、3次元領域の中に2次元領域を畳み込むことができる。すなわち、3次元に構成した演算装置アレイの各演算装置を電気的に制御することにより、2次元または3次元の演算装置アレイとして使用することが可能になる。
[9. Arithmetic device array according to another embodiment of the present invention]
In the arithmetic device array 40 having a three-dimensional structure, as shown in FIG. 12, the
例えば、図16に示す演算装置アレイ70は、XY領域に配列された4つの演算装置アレイ71,72,73,74が順に連接された構成である。末端の演算装置、例えばX端の演算装置においてZ方向の演算装置に接続することでXY領域はZ方向に向きを変え、上層の演算装置アレイで逆方向に進むことが可能である。
For example, the arithmetic device array 70 shown in FIG. 16 has a configuration in which four
すなわち、演算装置アレイ71のX端に位置する演算装置71−1,71−2,71−3と、対応する下層の演算装置アレイ72のX端に位置する演算装置72−10,72−11,72−12をそれぞれケーブル76で接続している。一方、演算装置アレイ72と演算装置アレイ73との関係では、演算装置アレイ71と演算装置アレイ72の接続部分とは反対側のX端を接続する。同様にして、演算装置アレイ73と演算装置アレイ74との関係では、演算装置アレイ72と演算装置アレイ73の接続部分とは反対側のX端を接続する。
That is, the arithmetic devices 71-1, 71-2, 71-3 located at the X end of the
結果として、最下層にある演算装置アレイ74の演算装置74−1,71−2,71−3から、演算装置アレイ72および演算装置アレイ73を経由して、最上層にある演算装置アレイ71の演算装置71−10,71−11,71−12までが2次元に接続され、演算装置アレイ70を2次元領域で構成することができる。
As a result, the
これらの接続態様は、ホストプロセッサ11が演算対象に合わせて決定する。つまり、演算装置アレイを構成する複数の演算装置のうちいずれの演算装置間を接続するかをホストプロセッサ11が決定し、その決定事項を「演算結果の転送先」として各演算装置に送るようにする。
These connection modes are determined by the
このようにして、コネクタを用いて物理的に3次元に配置した演算装置アレイであっても、より低次(2次元、1次元)の演算対象となる問題領域を畳み込んで演算が行えるよう各演算装置に所望の演算回路等を書き込むことで、隣接する演算装置と物理的な接続を変えることなく電気的に接続を変更することができる。 In this way, even in an arithmetic device array physically arranged in three dimensions using a connector, it is possible to perform an operation by convolving a problem area that is a lower-order (two-dimensional, one-dimensional) calculation target. By writing a desired arithmetic circuit or the like in each arithmetic device, the connection can be electrically changed without changing the physical connection with the adjacent arithmetic device.
[10.本発明のさらに他の実施の形態に係る演算装置アレイ]
次に、演算対象が周期境界条件を満たす場合の演算装置アレイについて説明する。
演算対象が周期境界条件を満たす場合、演算装置アレイを構成する複数のハードウェア・ネットすなわち演算装置のうち周期境界に位置する演算装置同士を電気的に接続し、トーラス状(円環)を形成する。
[10. Arithmetic device array according to still another embodiment of the present invention]
Next, an arithmetic device array in the case where the operation target satisfies the periodic boundary condition will be described.
When the calculation target satisfies the periodic boundary condition, a plurality of hardware nets constituting the arithmetic device array, that is, the arithmetic devices located at the periodic boundary among the arithmetic devices are electrically connected to form a torus shape (ring) To do.
例えば、図17に示す2次元の演算装置アレイ80において、周期境界に該当する最終段の演算装置80−10,80−11,80−12と、一方の周期境界に該当する初段の演算装置80−1,80−2,80−3をコネクタ81を介して電気的に接続する。この時、各演算装置間で発生する遅延時間が同一になるように各演算装置のコネクタはフレシキブルな配線を用いて適用する事も勿論である.このようにして、演算装置80−10,80−11,80−12の各々の演算結果データを、最初に演算を行う演算装置80−1,80−2,80−3に戻すことにより、繰り返し処理が行える。なお、図17に示す例では、2次元的周期境界条件を満たす場合を説明したが、3次元の周期境界条件を満たす場合にも適用できることは勿論である。
For example, in the two-dimensional arithmetic unit array 80 shown in FIG. 17, the final stage arithmetic units 80-10, 80-11, and 80-12 corresponding to the periodic boundary and the first stage arithmetic unit 80 corresponding to one periodic boundary. −1, 80-2, 80-3 are electrically connected via the
以上に述べた実施の形態は、本発明を実施するための好適な形態の具体例であるから、技術的に好ましい種々の限定が付されている。ただし、本発明は、以上の実施の形態の説明において特に本発明を限定する旨の記載がない限り、これらの実施の形態に限られるものではない。したがって、例えば、以上の説明で挙げた使用材料とその使用量、処理時間、処理順序および各パラメータの数値的条件等は好適例に過ぎず、また、説明に用いた各図における寸法、形状および配置関係等も実施の形態の一例を示す概略的なものである。したがって、本発明は、上述した実施の形態の例に限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。 The embodiment described above is a specific example of a preferred embodiment for carrying out the present invention, and therefore various technically preferable limitations are given. However, the present invention is not limited to these embodiments unless otherwise specified in the above description of the embodiments. Therefore, for example, the materials used in the above description, the amount used, the processing time, the processing order, and the numerical conditions of each parameter are only suitable examples, and the dimensions, shapes, and The arrangement relationship and the like are also schematic showing an example of the embodiment. Therefore, the present invention is not limited to the above-described embodiments, and various modifications and changes can be made without departing from the scope of the present invention.
例えば、図12に示す演算装置41−1において、演算ボード50と書き込み・入出力ボード60に、それぞれメモリ52とメモリ62を備えるようにしたがこれらは一つで代用してもよい。例えば、メモリ62は搭載せずメモリ52だけを使用するようにしてもよい。また、メモリ52とメモリ62に代えて大規模なメモリボードを用意したり、ハードディスク等の大容量記録装置を設けるようにしたりしてもよい。
For example, in the arithmetic device 41-1 shown in FIG. 12, the
6−1A〜6−1C…格子点、11…ホストプロセッサ、12…メモリ、13…PLD、14…バス、21…アプリケーション、22…オブジェクト・マネジャー、23…ハードウェア・モジュール・ドライバ、25…バス、26…ハードウェア・オブジェクト、27…ハードウェア・ドライバ、28…インターフェース、29…ハードウェア・ネット、30…ハードウェア・モジュール、31…標準バス・インターフェース、32…ローカルメモリ、33…ローカルプロセッサ、34…FPGA、35…入出力インターフェース、36…通信路、40…演算装置アレイ、40−1…演算装置、50…演算ボード、51…FPGA、52…メモリ、53F,53B,53L,53R,53U,53D,54…コネクタ、55…メモリ制御回路、56…並列演算回路、56A,56B…論理ブロック、57…演算対象データ入出力回路、58…演算結果データ入出力回路、59X,59Y,59Z…隣接FPGAデータ転送回路、60…書き込み・入出力ボード、60A1…切り欠き、61…FPGA、62…メモリ、63F,63B,64…コネクタ、65…メモリ制御回路、66…書き込み回路、67…仮想回路データ入出力回路、68…各種データ入出力回路
6-1A to 6-1C ... lattice points, 11 ... host processor, 12 ... memory, 13 ... PLD, 14 ... bus, 21 ... application, 22 ... object manager, 23 ... hardware module driver, 25 ... bus , 26 ... hardware object, 27 ... hardware driver, 28 ... interface, 29 ... hardware net, 30 ... hardware module, 31 ... standard bus interface, 32 ... local memory, 33 ... local processor, 34 ... FPGA, 35 ... I / O interface, 36 ... communication path, 40 ... arithmetic unit array, 40-1 ... arithmetic unit, 50 ... arithmetic board, 51 ... FPGA, 52 ... memory, 53F, 53B, 53L, 53R,
Claims (8)
前記演算対象の各々の問題領域に対応して隣接する演算装置間で直接データ通信可能に接続されて配置され、また前記アプリケーション・プログラムの実行に用いられ前記各々の問題領域に対応した演算を行う演算回路が再構成され、隣接する演算装置間で前記問題領域についての前記演算回路による演算結果データを送受信する複数の演算装置からなる演算装置アレイと、
前記演算装置アレイを構成する各演算装置に対して予め演算結果データの転送先としての隣接する演算装置を決定し、前記アプリケーション・プログラムを実行し、各演算装置から各問題領域についての演算結果データを取得し、前記演算対象について演算結果を算出するホストプロセッサと、
前記メモリ、前記ホストプロセッサおよび前記演算装置アレイとの間で、データを通信するバスと、を含み、
前記演算装置に対し、前記ホストプロセッサから送られる、前記演算対象の各々の問題領域に対応する仮想回路データを含んだ仮想回路書き込みデータに基づいて、前記演算回路を書き込むための仮想回路データ書き込み回路を書き込み、該仮想回路データ書き込み回路を書き込んだ後、当該演算装置は、前記仮想回路書き込みデータに含まれる書き込み順番に従って、隣接する演算装置へ該仮想回路書き込みデータを転送する
情報処理装置。 A memory for storing an application program for performing a predetermined calculation on a calculation target;
Corresponding to each problem area to be calculated, the calculation devices are arranged so as to be directly communicable between adjacent calculation devices, and are used for executing the application program to perform the calculation corresponding to each problem area. An arithmetic device array comprising a plurality of arithmetic devices in which an arithmetic circuit is reconfigured and transmits and receives operation result data by the arithmetic circuit for the problem area between adjacent arithmetic devices;
The arithmetic unit determines the adjacent computing device as previously processed data destination for each arithmetic unit constituting the array, executes the application program, the operation result data for each problem area from the arithmetic unit And a host processor for calculating a calculation result for the calculation target;
The memory, between the host processor and the arithmetic unit array, viewed including a bus for communicating data, and
A virtual circuit data writing circuit for writing the arithmetic circuit to the arithmetic device based on virtual circuit write data including virtual circuit data corresponding to each problem area to be calculated, sent from the host processor. After writing the virtual circuit data write circuit, the arithmetic device transfers the virtual circuit write data to an adjacent arithmetic device according to the write order included in the virtual circuit write data .
請求項1に記載の情報処理装置。 In previous SL plurality of arithmetic unit, after the writing of the virtual circuit data write circuit for all the arithmetic unit terminates, the virtual circuit data write circuit wherein all the last written arithmetic unit until first written arithmetic units The information processing apparatus according to claim 1, wherein the arithmetic circuit is written in the arithmetic apparatus.
請求項2に記載の情報処理装置。 The information processing apparatus according to claim 2, wherein the arithmetic device includes a pair of arithmetic devices including an arithmetic board to which the arithmetic circuit is written and a writing board to which the virtual circuit data writing circuit is written.
請求項3に記載の情報処理装置。 In the plurality of arithmetic devices constituting the computing device array, with write No write the arithmetic circuit to the arithmetic board, writes the data input and output circuit for transferring data to said host processor and receiving the writing board according Item 4. The information processing device according to Item 3.
前記演算ボードの演算回路は、第1のコネクタを介して隣接する演算ボードの演算回路と前記演算結果データの送受信を行うとともに、第2および第3のコネクタを介して前記書き込みボードの前記書き込み回路および前記データ入出力回路とデータの送受信を行う
請求項4に記載の情報処理装置。 The computing board of the computing device includes a first connector for connecting to adjacent computing boards in the vertical and horizontal directions, and a second connector for connecting to the writing board that makes a pair. , Comprising a third connector for connecting to the paired arithmetic boards,
The arithmetic circuit of the arithmetic board transmits / receives the arithmetic result data to / from the arithmetic circuit of the adjacent arithmetic board via the first connector, and the write circuit of the write board via the second and third connectors The information processing apparatus according to claim 4, wherein data is transmitted to and received from the data input / output circuit.
請求項5に記載の情報処理装置。 The information processing apparatus according to claim 5, wherein the host processor controls a predetermined arithmetic board among a plurality of arithmetic boards constituting the arithmetic device array to be electrically connected via a first connector.
請求項5に記載の情報処理装置。 When the calculation target satisfies the periodic boundary condition, the host processor electrically connects the arithmetic devices corresponding to the periodic boundary among the plurality of arithmetic devices constituting the arithmetic device array via the first connector. The information processing apparatus according to claim 5.
前記演算装置に仮想回路データ書き込み回路を書き込んだ後、当該演算装置は、前記仮想回路書き込みデータに含まれる書き込み順番に従って、隣接する演算装置へ該仮想回路書き込みデータを転送するステップと、
全ての演算装置について前記仮想回路データ書き込み回路の書き込みが終了後、前記仮想回路データ書き込み回路が最後に書き込まれた演算装置から最初に書き込まれた演算装置まで前記全ての演算装置について前記演算回路を書き込むステップと、
を含む仮想回路書き込み方法。 Each problem of the calculation target sent from the host processor to each of the plurality of calculation devices arranged so as to be directly communicable between adjacent calculation devices corresponding to each problem area of the calculation target a step of based on the virtual circuit writing data including the virtual circuit data corresponding to the area, write the virtual circuit data write circuit for writing an arithmetic circuit,
After writing the virtual circuit data write circuit to the arithmetic device, the arithmetic device transfers the virtual circuit write data to an adjacent arithmetic device according to the write order included in the virtual circuit write data;
After the writing of the virtual circuit data writing circuit for all the arithmetic devices, the arithmetic circuit for all the arithmetic devices from the arithmetic device in which the virtual circuit data writing circuit was last written to the first arithmetic device to be written Writing step;
A virtual circuit writing method including:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008184301A JP5315517B2 (en) | 2008-07-15 | 2008-07-15 | Information processing apparatus and virtual circuit writing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008184301A JP5315517B2 (en) | 2008-07-15 | 2008-07-15 | Information processing apparatus and virtual circuit writing method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010026607A JP2010026607A (en) | 2010-02-04 |
JP5315517B2 true JP5315517B2 (en) | 2013-10-16 |
Family
ID=41732412
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008184301A Expired - Fee Related JP5315517B2 (en) | 2008-07-15 | 2008-07-15 | Information processing apparatus and virtual circuit writing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5315517B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014185462A1 (en) * | 2013-05-17 | 2014-11-20 | 日本電気株式会社 | Substrate and substrate apparatus, and method for connecting substrate |
JP6743568B2 (en) | 2016-08-09 | 2020-08-19 | 富士通株式会社 | Control device, information processing system, program, and information processing method |
CN111859829B (en) * | 2019-04-04 | 2024-04-16 | 北京比特大陆科技有限公司 | Method, apparatus and device for controlling a computing pad, and medium and program product |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09282295A (en) * | 1996-04-11 | 1997-10-31 | Sanyo Electric Co Ltd | Inter-processor data transfer method for parallel computer |
JP3845021B2 (en) * | 2002-01-15 | 2006-11-15 | 独立行政法人科学技術振興機構 | Semiconductor circuit control device and semiconductor circuit control program |
-
2008
- 2008-07-15 JP JP2008184301A patent/JP5315517B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010026607A (en) | 2010-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7412586B1 (en) | Switch memory architectures | |
US20190057060A1 (en) | Reconfigurable fabric data routing | |
US11782729B2 (en) | Runtime patching of configuration files | |
US20200228121A1 (en) | Method and apparatus for implementing configurable streaming networks | |
CN100580621C (en) | Data processing device, control method, automatic control device, terminal and generation method | |
JP5315517B2 (en) | Information processing apparatus and virtual circuit writing method | |
CN115885344A (en) | Deterministic near computation memory for deterministic processors and enhanced data movement between memory units and processing units | |
Lohner | Advances in FEFLO | |
Nyboe et al. | MPSoC4Drones: An open framework for ROS2, PX4, and FPGA integration | |
JP2023542852A (en) | Systems and methods using neural networks | |
US20230409395A1 (en) | Runtime Virtualization of Reconfigurable Data Flow Resources | |
US20230162032A1 (en) | Estimating Throughput for Placement Graphs for a Reconfigurable Dataflow Computing System | |
Mohiyuddin | Tuning hardware and software for multiprocessors | |
US20230385043A1 (en) | Skip Buffer Splitting | |
Williams | Adaptive parallel meshes with complex geometry | |
Cicuttin et al. | HyperFPGA: A possible general purpose reconfigurable hardware for custom supercomputing | |
Hu | Solution of partial differential equations using reconfigurable computing | |
Shahsavani et al. | Efficient compilation and mapping of fixed function combinational logic onto digital signal processors targeting neural network inference and utilizing high-level synthesis | |
Glinskiy et al. | Supercomputer technologies for solving problems of computational physics | |
US20230385077A1 (en) | Forward-style Gradient GeMMs | |
Christodoulis et al. | An FPGA target for the StarPU heterogeneous runtime system | |
US20230325312A1 (en) | Merging Buffer Access Operations in a Coarse-grained Reconfigurable Computing System | |
US20240069770A1 (en) | Multiple contexts for a memory unit in a reconfigurable data processor | |
US20230297349A1 (en) | Bandwidth-Aware Computational Graph Mapping | |
US20230409520A1 (en) | All Reduce Across Multiple Reconfigurable Dataflow Processors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20100414 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110707 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130122 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130314 |
|
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: 20130604 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130613 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |