JP6432348B2 - 演算装置及び演算方法 - Google Patents

演算装置及び演算方法 Download PDF

Info

Publication number
JP6432348B2
JP6432348B2 JP2014554119A JP2014554119A JP6432348B2 JP 6432348 B2 JP6432348 B2 JP 6432348B2 JP 2014554119 A JP2014554119 A JP 2014554119A JP 2014554119 A JP2014554119 A JP 2014554119A JP 6432348 B2 JP6432348 B2 JP 6432348B2
Authority
JP
Japan
Prior art keywords
data
unit
rearrangement
arithmetic
delay
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.)
Active
Application number
JP2014554119A
Other languages
English (en)
Other versions
JPWO2014103235A1 (ja
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of JPWO2014103235A1 publication Critical patent/JPWO2014103235A1/ja
Application granted granted Critical
Publication of JP6432348B2 publication Critical patent/JP6432348B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Multi Processors (AREA)

Description

本発明は、複数の演算処理部(プロセッサ)を含む演算装置に関し、特に、データを並び替える演算装置に関する。
信号処理は、連続する多量のデータ(ストリームデータ)を演算対象データとして扱う。そして、信号処理は、それら多量のデータに対して繰り返し同じ処理(複数の命令を用いて実現できる演算)を実行する場合が多い。
多量のデータを効率的に処理するためのプロセッサアーキテクチャの一つに、アレイプロセッサがある。
図7は、一般的なアレイプロセッサ19の構成の一例を示すブロック図である。
図7に示すアレイプロセッサ19は、複数の演算処理部11a〜11d(以下、これらをまとめて演算処理部11と言う)及び演算処理部12a〜12d(以下、これらをまとめて演算処理部12と言う)をアレイ状に配置したアレイ演算部14を含む。(なお、以下の説明において、アレイ演算部14に含まれる各演算処理部、つまり、演算処理部11と演算処理部12とをまとめて、演算処理部15と言う。)
さらに、アレイプロセッサ19は、アレイ演算部14に接続されたメモリバンク10a〜10d(以下、まとめてメモリバンク10と言う)及びメモリバンク13a〜13d(以下、まとめてメモリバンク13と言う)を備えるデータメモリ17を含む。(なお、以下の説明において、メモリバンク10とメモリバンク13とをまとめて、マルチバンク16と言う。)
アレイ状に配置された演算処理部15は、近隣の演算処理部15と接続している。演算処理部15の間には、網の目のように配線が、接続されている。それぞれの接続は、演算処理部15の入力段にあるスイッチで制御されている。演算対象のデータは、アレイ演算部14に接続されているマルチバンク16のメモリバンク10及びメモリバンク13に格納される。
アレイ演算部14は、内部の接続構成に基づき、並列度及び演算処理に対する柔軟性の度合いが異なる。図7に示すアレイプロセッサ19では、演算処理部15は、図7に示すように近隣の演算処理部15と接続している。
アレイプロセッサ19は、複数の演算処理部15を協調させて所定の処理を実行する。そのため、演算処理部15に到達して入力されるデータのタイミングが異なる場合、アレイプロセッサ19は、適切に演算を実行できない場合がある。
例えば、図7において、演算処理部12bに注目して説明する。そして、演算処理部12bの演算は、演算処理部11bと演算処理部12aとの演算結果が必要であるとする。この場合、演算処理部11b及び演算処理部12aの演算の実行タイミングが異なると、そのタイミングに基づき、演算処理部11b及び演算処理部12aから演算処理部12bへのそれぞれの演算結果の入力タイミングに、差が生じる。同様に、演算処理部11b及び演算処理部12aの演算の出力の遅延が異なると、その遅延差に基づき、演算処理部11b及び演算処理部12aから演算処理部12bへのそれぞれの演算結果の入力タイミングに、差が生じる。このタイミング差に相当する時間が、無駄時間となる。
アレイプロセッサ19の演算処理中において、なるべく多くの演算処理部15が同時に動作していることが、アレイプロセッサ19の動作効率を高めるポイントとなる。そのため、演算処理部15間の同期制御をいかに構成するかは、アレイプロセッサ19の動作効率向上のために重要である。
そのため、データの同期機構が、用いられている(例えば、特許文献1参照)。
図8は、同期機構としてFIFO(First In First Out)メモリを用いたアレイプロセッサ29の構成の一例を示すブロック図である。
図8に示すように、アレイプロセッサ29は、演算処理部21a〜21d(以下、まとめて演算処理部21と言う)及び演算処理部22a〜22d(以下まとめて、演算処理部22と言う)を含む。また、アレイプロセッサ29は、メモリバンク20a〜20d(以下、まとめてメモリバンク20と言う)及びメモリバンク23a〜23d(以下、まとめてメモリバンク23と言う)を含む。さらに、アレイプロセッサ29は、演算処理部21、演算処理部22、メモリバンク20及びメモリバンク23の入出力を、FIFO24a〜24g、FIFO25a〜25g及びFIFO26a〜26dを介して接続する。以下、FIFO24a〜24gをまとめて、FIFO24と言う。同様に、FIFO25a〜25gを、まとめてFIFO25と言う。FIFO26a〜26dをまとめて、FIFO26と言う。そして、アレイプロセッサ29は、入出力データを同期する同期制御部27a〜27d(以下、まとめて同期制御部27と言う)及び同期制御部28a〜28d(以下、まとめて同期制御部28と言う)を含む。同期制御部27及び同期制御部28は、FIFO24、FIFO25及びFIFO26を用いて、メモリバンク20、メモリバンク23、演算処理部21及び演算処理部22に到達するデータを制御する。演算処理部21及び演算処理部22は、同期制御部27及び同期制御部28を用いて、到達する入力データが入力ポート毎に異なる場合の同期制御を可能とする。
また、他の解決方法として、演算処理部と近隣の演算処理部との接続に非同期制御部を導入する技術がある(例えば、特許文献2参照)。特許文献2に記載の技術は、所定の演算処理に対する入力データが不足した場合、それぞれの演算処理部が演算の実行を待つ。
特表平4−503720号公報 特開昭58−181168号公報
特許文献1に記載の技術は、演算処理部21、演算処理部22、メモリバンク20及びメモリバンク23の間の接続が、全てFIFO24〜26を介したスイッチで構成する。そのため、特許文献1に記載の技術は、データ転送に関する回路規模が増大するという問題点があった。また、特許文献1に記載の技術は、回路規模が増大するため、消費電力が増加するという問題点があった。
特許文献2に記載の技術は、演算処理部が非同期動作であるため、データ転送に関する冗長なハンドシェイクが発生する。そのため、特許文献2に記載の技術は、演算処理部の演算効率が低下するという問題点があった。また、特許文献2に記載の技術は、演算効率が低下するため、実行時間が増加する問題点があった。
本発明の目的は、上述した課題である演算効率の低下、回路規模の増大及び消費電力の増大を解決する演算装置及び演算処理方式を提供することにある。
本発明の一形態における演算装置は、演算対象データを格納する第1のデータ格納手段と、データを用いて演算を実行する演算処理手段と、前記第1のデータ格納手段に格納された前記演算対象データ及び前記演算処理手段で演算されたデータの中から指示されたデータを選択し、パラメータに基づいて、指示されたデータのうち遅延の指示を受けたデータに対し所定の遅延を付与し、遅延の指示を受けないデータに対し遅延させず、パラメータに基づいて、指示されたデータの並び替えを実行し、前記演算処理手段において演算されるデータと前記演算処理手段の演算結果データとを出力するデータ並び替え手段と、前記データ並び替え手段が出力した前記演算結果データを格納する第2のデータ格納手段とを含む。
本発明の一形態における演算方法は、演算対象データを格納し、データを用いて演算し、格納された前記演算対象データ及び演算されたデータの中から指示されたデータ選択し、パラメータに基づいて、指示されたデータのうち遅延の指示を受けたデータに対し所定の遅延を付与し、遅延の指示を受けないデータに対し遅延させず、パラメータに基づいて、指示されたデータの並び替えを実行し、演算されたデータと演算結果データとを出力し、前記演算結果データを格納する。
本発明の一形態におけるコンピュータ読み取り可能なプログラムを記録した記録媒体は、演算対象データを格納する処理と、データを用いて演算する処理と、格納された前記演算対象のデータ及び演算されたデータの中から指示されたデータ選択し、パラメータに基づいて、指示されたデータのうち遅延の指示を受けたデータに対し所定の遅延を付与し、遅延の指示を受けないデータに対し遅延させず、パラメータに基づいて、指示されたデータの並び替えを実行し、演算されるデータと演算結果データとを出力する処理と、前記演算結果データを格納する処理とをコンピュータに実行させるプログラムを記録する。
本発明によれば、回路規模及び消費電力の増大を抑えながら、演算効率を高めることができる。
図1は、本発明における第1の実施形態の演算装置の構成の一例を示すブロック図である。 図2は、第1の実施形態のデータ並び替え部の構成の一例を示すブロック図である。 図3は、第1の実施形態の演算装置の別の構成の一例を示すブロック図である。 図4は、第1の実施形態の演算装置の別の構成の一例を示すブロック図である。 図5は、第1の実施形態の演算装置の別の構成の一例を示すブロック図である。 図6は、第1の実施形態のデータ並び替え部の構成の一例を示すブロック図である。 図7は、一般的なアレイプロセッサの構成を示すブロック図である。 図8は、一般的な同期機構を搭載したアレイプロセッサの構成を示すブロック図である。
次に、本発明の実施形態について図面を参照して説明する。
なお、各図面は、本発明の実施形態を説明するものである。そのため、本発明は、各図面の記載に限られるわけではない。また、各図面の同様の構成には、同じ番号を付し、その繰り返しの説明は、省略する場合がある。
(第1の実施形態)
図1は、本発明における第1の実施形態の演算装置37の構成の一例を示すブロック図である。
演算装置37は、メモリバンク30a〜30dと、メモリバンク33a〜33dと、演算処理部31a〜31dと、演算処理部32a〜32dと、データ並び替え部34a〜34bとを含む。以下、メモリバンク30a〜30dをまとめて、メモリバンク30と言う。同様に、メモリバンク33a〜33dをまとめて、メモリバンク33と言う。演算処理部31a〜31dをまとめて、演算処理部31と言う。演算処理部32a〜32dをまとめて、演算処理部32と言う。データ並び替え部34a〜34bをまとめてデータ並び替え部34と言う。
本実施形態の演算装置37は、図1に示すように、データ並び替え部34aと、演算処理部31と、データ並び替え部34bと、演算処理部32とを、環状(リング状)に接続する。
メモリバンク30は、データ並び替え部34aと、データ並び替え部34bとに接続する。
メモリバンク33は、データ並び替え部34aと、データ並び替え部34bとに接続する。
メモリバンク30及びメモリバンク33は、演算データを格納する。そのため、メモリバンク30及びメモリバンク33は、データ格納部とも言える。なお、演算データは、演算対象となるデータ(演算対象データ)と演算結果となるデータ(演算結果データ)とを含むデータである。
また、メモリバンク30及びメモリバンク33は、使用目的に制限はない。メモリバンク30又はメモリバンク33のいずれか一部のメモリバンクが、演算対象データを保持し、残りのメモリバンクが演算結果データを格納すれば良い。例えば、メモリバンク30が演算対象データを保持し、メモリバンク33が演算結果データを保持しても良い。反対に、メモリバンク33が演算対象データを保持し、メモリバンク30が演算結果データを格納しても良い。また、メモリバンク30及びメモリバンク33の一部が、演算対象データを保持し、残りのメモリバンク30及びメモリバンク33が、演算結果データを格納しても良い。さらに、メモリバンク30及びメモリバンク33は、他のデータを保持しても良い。例えば、メモリバンク30又はメモリバンク33は、後ほど説明するパラメータを保持しても良い。
以下では、一例として、メモリバンク30が、演算対象データを保持し、メモリバンク33が、演算結果データを格納するとして説明する。
データ並び替え部34aは、前段となる演算処理部32と、後段となる演算処理部31と、メモリバンク30と、メモリバンク33とに接続する。
データ並び替え部34bは、前段となる演算処理部31と、後段となる演算処理部32と、メモリバンク30と、メモリバンク33とに接続する。
データ並び替え部34aは、前段の演算処理部32の処理結果のデータ又はメモリバンク30のデータのどちらかを、出力先として接続する後段の演算処理部31に、適切なタイミングで供給する。そのため、データ並び替え部34aは、データを時間方向に並び替え、データを供給する演算処理部31を選択し、データを供給する。
データ並び替え部34bは、前段の演算処理部31の処理結果のデータ又はメモリバンク30のデータのどちらかを、出力先として接続する後段の演算処理部32に、適切なタイミングで供給する。そのために、データ並び替え部34bは、データを時間方向に並び替え、データを供給する演算処理部32を選択し、データを供給する。
複数の演算処理部31及び演算処理部32は、所定の演算処理に必要な要素演算を実行する。
例えば、演算処理部31及び演算処理部32は、四則演算、論理演算、アキュムレーション又はパワー計算を実行する。
ただし、本実施形態の演算処理部31及び演算処理部32が実行する演算は、特に制限はない。
演算処理部31は、前段となるデータ並び替え部34aと、後段となるデータ並び替え部34bとに接続する。演算処理部31は、データ並び替え部34aからメモリバンク30のデータを受け取り、所定の演算を処理し、データ並び替え部34bに演算結果を出力する。
演算処理部32は、前段となるデータ並び替え部34bと、後段となるデータ並び替え部34aとに接続する。演算処理部32は、データ並び替え部34bからメモリバンク30のデータと演算処理部32の演算結果とを受け取り、所定の演算を処理し、データ並び替え部34aに演算結果を出力する。
以下では、必要に応じ、演算処理部31を「第1の演算処理部」と、演算処理部32を「第2の演算処理部」と言う。
また、必要に応じ、データ並び替え部34aを「第1のデータ並び替え部」と、データ並び替え部34bを「第2のデータ並び替え部」と言う。
次に、図面を参照して、データ並び替え部34について、詳細に説明する。
図2は、データ並び替え部34の構成の一例を示すブロック図である。
図2に示すように、データ並び替え部34は、入力データ選択部40と、マルチバンクメモリ41と、並び替え制御部42とを含む。
入力データ選択部40は、メモリバンク30と、メモリバンク33と、前段の演算処理部(演算処理部31又は演算処理部32)と、マルチバンクメモリ41と、並び替え制御部42とに接続する。
そして、入力データ選択部40は、メモリバンク30からの入力データ及び前段の演算処理部からの入力データを出力する演算処理部を、選択する。
例えば、データ並び替え部34aの入力データ選択部40は、メモリバンク30からの入力データ及び前段の演算処理部32の入力データを出力する演算処理部31を、選択する。
同様に、データ並び替え部34bの入力データ選択部40は、メモリバンク30からの入力データ及び前段の演算処理部31の入力データを出力する演算処理部32を、選択する。
また、入力データ選択部40は、前段の演算処理部からの入力データを、メモリバンク33に出力するか否かを、選択する。
例えば、データ並び替え部34aの入力データ選択部40は、前段の演算処理部32からの入力データを、メモリバンク33に出力するか否かを、選択する。
同様に、データ並び替え部34bの入力データ選択部40は、前段の演算処理部31からの入力データを、メモリバンク33に出力するか否かを、選択する。
マルチバンクメモリ41は、複数のポートを具備するマルチポートメモリである。
なお、図2に示すマルチバンクメモリ41は、ボート数として、4ポートとなっているが、これは例示である。本実施形態のマルチバンクメモリ41は、4未満のポート数を備えても良く、4を超えるポート数を備えても良い。
マルチバンクメモリ41は、入力データ選択部40と、演算処理部31又は演算処理部32と、並び替え制御部42とに接続する。
そして、マルチバンクメモリ41は、並び替え制御部42から、書き込み及び読み出しタイミングの信号又は指示を受ける。また、マルチバンクメモリ41は、並び替え制御部42から、書き込みポート及び読み出しポートの指示を受け取る。そして、マルチバンクメモリ41は、これらを基に、受け取ったデータを格納し、データを出力ポート方向に並び替え、データを時間方向に並び替える。
例えば、図2に示す4ポートのマルチバンクメモリ41を用いて、上記の動作について説明する。ここで、ポート番号は、それぞれ0、1、2、3とする。そして、ポート番号(第0ポート−第3ポート)は、各構成の符号(a−d)に、それぞれ対応するものとする。
例えば、マルチバンクメモリ41は、指示を基に、第0ポートから書き込まれたデータを第2ポートに送り出す。この結果、例えば、マルチバンクメモリ41は、演算処理部31aからのデータを演算処理部32cに転送する。
また、例えば、マルチバンクメモリ41は、指示を基に、Nサイクル目に書き込まれたデータを、N+4サイクル目に送り出す。この場合、マルチバンクメモリ41は、時間方向に4サイクル分、データを遅延させる。
なお、本実施形態のマルチバンクメモリ41は、複数のバンクに同時にアクセスできれば、特に制限はない。例えば、マルチバンクメモリ41は、所定のポート数とメモリを備えた一般的なマルチポートメモリでも良い。また、マルチバンクメモリ41は、複数のメモリを接続するクロスバを搭載したメモリ装置でも良い。そのため、マルチバンクメモリ41は、「マルチポート格納部」と言うこともできる。
並び替え制御部42は、入力データ選択部40と、マルチバンクメモリ41とに接続する。
並び替え制御部42は、少なくとも、入力データ選択部40の選択動作と、マルチバンクメモリ41のメモリアクセスとを制御する。
並び替え制御部42は、制御方法について、特に制限はない。例えば、並び替え制御部42は、入力データ選択部40に、入力データの選択を示す入力データ選択信号を送っても良い。あるいは、並び替え制御部42は、入力データ選択部40に、選択命令を送っても良い。
また、並び替え制御部42は、マルチバンクメモリ41に、書き込みアドレス及び読み出しアドレスを送っても良い。あるいは、並び替え制御部42は、書き込み命令及び読み出し命令を送っても良い。
次に、本実施形態の演算装置37の動作について説明する。
説明の前提として、演算は、メモリバンク30から並列に演算処理部31に向かって読み出されるデータを対象とする。そして、演算処理部31及び演算処理部32が演算した結果は、メモリバンク33に格納されると仮定する。
また、演算装置37の演算処理として、以下に示す処理を説明する。
(1)演算に必要なパラメータをデータ並び替え部34に格納する(以下、「パラメータのプレローディング」ステップとする)。
(2)メモリバンク30に格納されているデータを用いて、演算処理部31及び演算処理部32で所定の演算を処理し、その後、演算結果をメモリバンク33に書き込む(以下、「本演算」ステップとする)。
まず、(1)のパラメータのプレローディングステップについて説明する。
メモリバンク30から並列にデータ並び替え部34にパラメータが、転送される。
ここで、パラメータとは、マルチバンクメモリ41におけるデータの出力ポートの切り替え及びデータの時間方向の並び替え、つまり、データの並び替え及び遅延を指示するデータである。
パラメータは、演算処理の前に、メモリバンク30に格納されていれば良い。例えば、演算装置37を用いて演算を実行する利用者が、演算処理の前に、パラメータをメモリバンク30に格納する。
なお、本実施形態では、データ並び替え部34は、メモリバンク30から読み出されたパラメータがブロードキャストされて入力できるようにメモリバンク30と接続されている。そのため、本実施形態のデータ並び替え部34a及びデータ並び替え部34bは、双方に必要なデータであっても、一度に、メモリバンク30から読み出せる。
転送されたパラメータは、データ並び替え部34の内部の入力データ選択部40に入力される。そして、入力データ選択部40は、並び替え制御部42が生成した入力データ選択信号に基づき、必要なパラメータを選択する。そして、必要なパラメータは、並び替え制御部42が生成した書き込みアドレスに従い、マルチバンクメモリ41の所定の場所に格納される。
マルチバンクメモリ41は、パラメータを基に、データの所定の遅延や並び替えを実行する。
本実施形態の演算装置37は、(1)のステップが終了すると、実際の演算処理のための(2)の本演算ステップを処理する。
次に、(2)の本演算ステップについて説明する。
まず、演算データが、メモリバンク30から並列にデータ並び替え部34aに転送される。
データ並び替え部34aに演算データ(演算対象データ)が入力されると、データ並び替え部34aの入力データ選択部40は、入力された演算データを選択する。そして、入力データ選択部40は、データ並び替え部34aの並び替え制御部42が生成する書き込みアドレスを用いて、マルチバンクメモリ41に演算データを格納する。このとき、並び替え制御部42は、生成した書き込みアドレスの数をカウントし、読み出しアドレス生成のタイミングを判定する。
例えば、データ転送の遅延が4サイクルの場合、並び替え制御部42は、書き込みアドレスのカウント数が4以上となったときに、最初の読み出しアドレスを生成する。このような動作を基に、並び替え制御部42は、所定のデータ転送遅延を実現する。
マルチバンクメモリ41が演算データを格納すると、並び替え制御部42は、読み出しアドレス生成タイミング及びアドレスを制御する。この並び替え制御部42の動作に基づき、演算データは、前述したように、所定の遅延が与えられ、並列方向に並び替えられ、所定のタイミングで演算処理部31に転送される。
演算データが複数の演算処理部31に入力されると、演算処理部31は、所定の演算を実行する。
演算処理部31の演算結果のデータは、後段のデータ並び替え部34bに転送される。演算結果のデータがデータ並び替え部34bに入力されると、データ並び替え部34bは、データ並び替え部34aと同様に、入力データ(演算結果)に所定の遅延を与え、所定の並列方向に並び替え、演算処理部32に転送する。
演算処理部32は、データが転送されると、所定の演算を実行し、後段のデータ並び替え部34aにデータを送信する。
演算処理部32からデータ並び替え部34aにデータが入力されると、データ並び替え部34aの並び替え制御部42は、入力されたデータがメモリバンク33に書き戻す対象であるか否かを判断する。そして、並び替え制御部42は、データ並び替え部34aの入力データ選択部40に、判断に沿った入力データ選択信号を供給する。その結果、入力データは、メモリバンク33に転送される。
演算装置37は、以上の処理をデータ数の回数繰り返し、所定の演算を実現できる。なお、演算装置37の各部は、処理を、パイプライン的に実行しても良い。
ここまでの説明では、説明の明確化のため、データ並び替え部34は、複雑な並び替え処理を用いていない。しかし、演算装置37は、これまでの説明と同様の動作を基に、複雑なデータ転送(又は、演算処理部の接続)を有する演算処理を実現できる。例えば、演算装置37のデータ並び替え部34が、データの並び替えを適宜実行すれば、演算処理部31及び演算処理部32は、効率的に、協調動作しながら、所定の演算を実行できる。
また、ここまでの説明において、演算処理部31及び演算処理部32は、各1回演算処理を実行した。
しかし、本実施形態の演算装置37は、演算処理部31及び演算処理部32の処理の回数を1回に限る必要はない。
データ並び替え部34、演算処理部31及び演算処理部32は、図1に示すように、リング状に接続している。
そのため、演算装置37は、次に示す動作を基に、演算処理部の段の数を超える規模の演算を処理できる。
まず、データ並び替え部34aは、メモリバンク30のデータを必要に応じて並び替えた後、選択して、演算処理部31に転送する。
演算処理部31は、所定の演算を処理し、データ並び替え部34bに転送する。
データ並び替え部34bは、メモリバンク30のデータ及び演算処理部31の演算結果を必要に応じて並び替えた後、選択し、演算処理部32に転送する。
演算処理部32は、所定の演算を処理し、データ並び替え部34aに転送する。
これまでの説明では、データ並び替え部34aは、演算処理部32の処理結果を選択して、メモリバンク33に送り出した。
しかし、ここでは、データ並び替え部34aは、メモリバンク30のデータ及び演算処理部32の処理結果を必要に応じて並び替えた後、選択して、演算処理部31に転送する。
なお、データ並び替え部34aは、受け取った演算結果に最終的な演算結果が含まれる場合、その演算結果を選択して、メモリバンク33に転送する。具体的には、入力データ選択部40が、並び替え制御部43の指示を基に、演算処理部32の処理結果をメモリバンク33に転送する。
演算処理部31は、所定の演算を処理し、データ並び替え部34bに転送する。
前回と同様に、データ並び替え部34bは、メモリバンク30のデータ及び演算処理部31の演算結果を必要に応じて並び替えた後、選択し、演算処理部32に転送する。また、データ並び替え部34bは、受け取った演算結果に最終的な演算結果が含まれる場合、その演算結果を、メモリバンク33に転送する。
演算装置37は、所定の演算処理が終了するまで、この処理を繰り返す。
なお、演算回数が1段で済むような演算規模が小さな演算を含む場合、データ並び替え部34bは、最初の演算結果を受けた段階で、最終的な演算結果をメモリバンク33に転送しても良い。この場合、上記と同様に、データ並び替え部34bの入力データ選択部40が、演算結果をメモリバンク33に転送する。
このように、本実施形態の演算装置37は、演算処理部の段数を超える処理を実現できる。
また、ここまでの説明において、説明の便宜のため、データ並び替え部34の入力データ選択部40が選択できるデータは、メモリバンク30からのデータと前段の演算処理部からのデータとした。しかし、本実施形態の演算装置37は、これに限る必要はない。
例えば、データ並び替え部34は、前段に加え後段の演算処理部からデータを受けて、選択しても良い。
図3は、本実施形態の別の構成を含む演算装置38の構成の一例を示すブロック図である。
図3に示す演算装置38は、図1に示す演算装置37のデータ並び替え部34a及びデータ並び替え部34bに換え、データ並び替え部34d及びデータ並び替え部34eを含む。(以下、データ並び替え部34dとデータ並び替え部34eをまとめて、「演算装置38のデータ並び替え部34」と言う。)
演算装置38のデータ並び替え部34は、メモリバンク30と、メモリバンク33と、演算処理部31と演算処理部32とに接続する。そして、演算装置38のデータ並び替え部34は、メモリバンク30と、演算処理部31と、演算処理部32とからデータを受けて、選択する。
このように構成された演算装置38は、演算処理部に、メモリバンク30と前段の演算処理部に加え、後段の演算処理部の演算結果を入力できる。そのため、演算装置38は、より高度又は効率の良い演算を実行できる。
なお、以下、特に断らない限り、演算装置38を含めて演算装置37として説明する。
同様に、データ並び替え部34は、データ並び替え部34d及びデータ並び替え部34eを含むとする。
また、本実施形態の演算装置37が含むメモリバンク30、メモリバンク33、演算処理部31及び演算処理部32の数を、4個としたのは、例示である。本実施形態の演算装置37は、4未満又は4を超える各構成を含んでも良い。
また、演算装置37は、データ並び替え部34の数を2に限る必要はない。例えば、演算装置37は、2を超えるデータ並び替え部34を含んでも良い。
図4は、データ並び替え部34を3つ含む演算装置39の構成の一例を示すブロック図である。なお、図4において、全てのデータの接続線を記載すると、図が煩雑となるため、接続線が複数であることを示す斜めの線を用いて記載した。
演算装置39は、データ並び替え部34aと、データ並び替え部34bと、データ並び替え部34cと、メモリバンク30と、メモリバンク33と、演算処理部31と、演算処理部32と、演算処理部35とを含む。
データ並び替え部34cは、データ並び替え部34bと同様の構成を含み、同様に動作する。そのため、本実施形態のデータ並び替え部34cは、第2のデータ並び替え部の一部と言える。
また、演算処理部35は、演算処理部32と同様の構成を含み、同様に動作する。そのため、本実施形態の演算処理部35は、第2の演算処理部の一部と言える。
演算処理部31、演算処理部32及び演算処理部35は、並列に演算処理を実行できる。
そのため、このような構成を含む演算装置39は、演算装置37に比べ、多くの演算処理を並列に実行できる。
以下、特に断らない限り、演算装置39を含めて、演算装置37として説明する。同様に、データ並び替え部34は、データ並び替え部34cを含むとする。
また、演算装置37は、データ並び替え部34を1つ含んでも良い。
図5は、データ並び替え部34を1つ含む演算装置36の構成の一例を示すブロック図である。
演算装置36は、データ並び替え部34aと、メモリバンク30と、メモリバンク33と、演算処理部31とを含む。
演算装置36のデータ並び替え部34aは、演算に必要な回数、演算処理部31の演算を繰り返す。
なお、演算装置36は、本実施形態の最小構成の一例である。
以下、特に断らない限り、演算装置36を含めて、演算装置37として説明する。
また、演算装置37は、データ並び替え部34の前後の演算処理部の数が異なっても良い。
また、演算装置37は、メモリバンク30及びメモリバンク33の数を4つに限る必要はない。演算装置37は、メモリバンク30又はメモリバンク33を、4つ未満含んでも良く、4つを超えて含んでも良い。また、演算装置37は、異なる数のメモリバンク30及びメモリバンク33を含んでも良い。
このように、本実施形態の演算装置37は、回路規模及び消費電力の増大を抑えながら、演算効率を高める効果を得ることができる。
その理由は、次のとおりである。
演算装置37のデータ並び替え部34が、データの転送先制御を実施する。つまり、演算装置37は、スイッチやFIFOを分散して配置する必要がない。そのため、演算装置37は、ハードウェア使用効率が高くでき、回路規模及び消費電力の増大を抑えることができる。
また、演算装置37のデータ並び替え部34は、複数のメモリバンクと演算処理部とに接続し、所定の並び替えを実施できる。そのため、演算装置37は、メモリバンクのメモリ帯域に合わせた適切な並列度の演算処理部の構成を保つことができ、演算効率を高める効果を得ることができる。
また、演算装置37は、パラメータのローディングの時間を短縮できる効果を得ることができる。
その理由は、次のとおりである。
演算装置37のデータ並び替え部34は、メモリバンクから演算に必要なパラメータをブロードキャストで受信できる。したがって、演算装置37は、複数のパラメータを使用する場合に、パラメータの同時に受信できるためである。
<変形例>
演算装置37の構成は、これまでの説明に限らない。
例えば、演算装置37は、メモリバンク30、メモリバンク33、演算処理部31、演算処理部32及びデータ並び替え部34の少なくとも一部を、ネットワーク又はバスを介して接続する別装置としても良い。
また、演算装置37は、各構成を複数の構成に分けても良い。
例えば、データ並び替え部34は、各構成を、ネットワーク又はバスを介して接続する別装置を用いて構成しても良い。
また、データ並び替え部34は、複数の構成を1つの構成としても良い。
例えば、データ並び替え部34は、CPU(Central Processing Unit)と、ROM(Read Only Memory)と、RAM(Random Access Memory)と、インターフェース回路(IF)とを含むコンピュータとして実現しても良い。
図6は、本実施形態の別の構成であるデータ並び替え部60の構成の一例を示すブロック図である。
データ並び替え部60は、CPU610と、ROM620と、RAM630と、IF640とを含むコンピュータを構成している。
CPU610は、ROM620からプログラムを読み込む。そして、CPU610は、読み込んだプログラムに基づいて、RAM630とIF640とを制御する。CPU610を含むコンピュータは、図2に示す入力データ選択部40と、マルチバンクメモリ41と、並び替え制御部42としての各機能を実現しても良い。CPU610は、各機能を実現する際に、RAM630をプログラムの一時記憶として使用する。
なお、CPU610は、コンピュータで読み取り可能にプログラムを記憶した記憶媒体700が含むプログラムを、図示しない記憶媒体読み取り装置を用いて読み込んでも良い。あるいは、CPU610は、IF640を介して、図示しない外部の装置からプログラムを受け取っても良い。
ROM620は、CPU610が実行するプログラム及び固定的なデータを記憶する。ROM620は、例えば、P−ROM(Programmable-ROM)やフラッシュROMである。
RAM630は、CPU610が実行するプログラムやデータを一時的に記憶する。RAM630は、例えば、D−RAM(Dynamic-RAM)である。
IF640は、メモリバンク30、メモリバンク33、演算処理部31、演算処理部32とのデータのやり取りを中継する。IF640は、PCI(Peripheral Component Interconnect)カードやファイバーチャネルカードである。
このように構成されたデータ並び替え部60は、データ並び替え部34と同様の効果を得ることができる。
その理由は、データ並び替え部60のCPU610が、プログラムに基づいてデータ並び替え部34と同様の動作を実現できるためである。
(第2の実施形態)
次に、本発明の第2の実施形態の演算装置37について、図面を参照して説明する。
本実施形態の演算装置37の構成は、第1の実施形態の演算装置37と同じため、構成の説明は省略する。
本実施形態の演算装置37は、データ並び替え部34の並び替え制御が異なる点を除いて、第1の実施形態度と同様に動作する。そのため、同様の動作の説明を省略し、本実施形態に特有の動作を説明する。
第1の実施形態の入力データ選択部40は、データ並び替え部34の並び替え制御部42が供給する入力データを選択する信号を基に、後段の演算処理部への入力データの選択、及び、メモリバンクへ演算結果を出力するか否かを選択する。
これに対し、本実施形態のデータ並び替え部34の入力データ選択部40は、入力されたデータを、そのままマルチバンクメモリ41に入力する。ただし、本実施形態の入力データ選択部40は、同時に複数のデータを同じマルチバンクメモリ41のバンクに入力する状況が発生した場合、データ入力のタイミングを調停する調停機構を備える。
本実施形態の調停機構は、特に制限はない。例えば、調停機構は、次のように動作すればよい。
調停機構は、データを受け取る。そして、調停機構は、そのデータの出力先(例えば、ポート)に出力するデータの入力の状態、つまり、他に出力するデータがあるか否かを確認する。
他のデータが入力されていない場合、調停機構は、受け取ったデータを出力先に出力する。
他のデータが入力されている場合、調停機構は、指示(パラメータ)を基に、先に出力するデータを出力する。そして、出力したデータが出力先に受け取られ、出力先が次のデータを受け取れる状態後、調停機構は、残りのデータを出力する。
あるいは、本実施形態の調停機構は、ラウンドロビン方式を用いてデータを調停し、順に1データずつマルチバンクメモリ41に書き込んでも良い。
本実施形態の演算装置37は、並び替え制御部42の動作を軽減化する効果を得ることができる。
その理由は、次のとおりである。
第1の実施形態の入力データ選択部40は、入力データ選択信号を生成するため、生成に必要なパラメータを保持する回路(機構)が必要である。
一方、本実施形態の演算装置37の入力データ選択部40は、マルチバンクメモリ41の入力データのタイミングの調停機構(回路)を備える。
一般に、調停機構の回路の規模は、パラメータを保持するための回路の規模より小さい。そのため、本実施形態の入力データ選択部40は、第1の実施形態の入力データ選択部40より少ない回路規模で実現できるためである。
(第3の実施形態)
次に、本発明の第3の実施形態の演算装置37について、図面を参照して説明する。
本実施形態の演算装置37の構成は、第1の実施形態の演算装置37と同じため、構成の説明は省略する。
本実施形態の演算装置37は、データ並び替え部34の並び替え制御が異なる点を除いて、第1の実施形態度と同様に動作する。そのため、同様の動作の説明を省略し、本実施形態に特有の動作を説明する。
第1の実施形態の並び替え制御部42は、マルチバンクメモリ41の読み出しタイミングを、入力データ選択部40への書き込みアドレスの生成のカウンタを基に制御した。そして、この制御を基に、並び替え制御部42は、演算データ転送の所定の遅延を発生した。
これに対し、本実施形態の並び替え制御部42は、次のように動作する。
並び替え制御部42は、マルチバンクメモリ41の書き込みアドレスと読み出しアドレスとを監視する。
そして、並び替え制御部42は、データの書き込みに関して、次のように動作する。
マルチバンクメモリ41の初期状態は、全てのアドレスが、書き込みされていない状態(未書き込み)である。
書き込みアドレスが「未書き込み」の場合、並び替え制御部42は、データをマルチバンクメモリ41に書き込む。書き込み後、並び替え制御部42は、そのアドレスを「書き込み済み」とする。
書き込みアドレスが「書き込み済み」の場合、並び替え制御部42は、そのアドレスのデータが読み出されるまで、マルチバンクメモリ41への書き込みを停止する。そして、そのアドレスのデータが読み出された後、並び替え制御部42は、そのアドレスにデータを書き込む。この場合、並び替え制御部42は、そのアドレスを、「書き込み済み」とする。
一方、並び替え制御部42は、読み出しに関して、次のように動作する。
「書き込み済み」のアドレスの読み出しの場合、並び替え制御部42は、マルチバンクメモリ41に、読み出しアドレスに格納されたデータを、出力させる。出力後、並び替え制御部42は、そのアドレスを「未書き込み」とする。
「未書き込み」のアドレスの読み出しの場合、並び替え制御部42は、そのアドレスの書き込みが生成する(「書き込み済み」となる)まで、データの読み出しを停止する。並び替え制御部42は、「書き込み済み」を検出後、データを読み出す。並び替え制御部42は、読み出し後、そのアドレスを「未書き込み」とする。
なお、並び替え制御部42は、データの読み出しの後に「未書き込み」を設定せず、そのアドレスに対する書き込みの有無を確認後、「未書き込み/書き込み済み」を設定しても良い。
このような動作を基に、並び替え制御部42は、マルチバンクメモリ41のデータの、時間方向及び出力(ポート)方向の並び替えを実現する。
本実施形態の演算装置37は、第1の実施形態の演算装置37に比べ、制御を容易とする効果を得ることができる。
その理由は、次のとおりである。
本実施形態の演算装置37の並び替え制御部42は、マルチバンクメモリ41の書き込みアドレスと読み出しアドレスとを監視し、アドレスを基に制御する。そのため、並び替え制御部42は、書き込みにおいて、メモリアクセスのタイミングの考慮が不要となるためである。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2012年12月25日に出願された日本出願特願2012−281060を基礎とする優先権を主張し、その開示の全てをここに取り込む。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1) 演算対象データを格納する第1のデータ格納手段と、
データを用いて演算を実行する演算処理手段と、
前記第1のデータ格納手段に格納された前記演算対象データ及び前記演算処理手段で演算されたデータの中から指示されたデータを選択し、パラメータに基づいて、指示されたデータのうち遅延の指示を受けたデータに対し所定の遅延を付与し、遅延の指示を受けないデータに対し遅延させず、パラメータに基づいて、指示されたデータの並び替えを実行し、前記演算処理手段において演算されるデータと前記演算処理手段の演算結果データとを出力するデータ並び替え手段と、
前記データ並び替え手段が出力した前記演算結果データを格納する第2のデータ格納手段と
を含む演算装置。
(付記2) 複数のデータ並び替え手段と、複数の演算処理手段とを含み、
前記データ並び替え手段が、
前記演算対象データと、1又は2以上の演算処理手段の演算結果のデータの中から指示されたデータを選択する
付記1に記載の演算装置。
(付記3) 前記データ並び替え手段が、
データを受け取り、指示されたデータを選択し、前記第2のデータ格納手段、又は、前記演算処理手段に出力する入力データ選択手段と、
前記入力データ選択手段からデータを受け取り、前記パラメータに基づいて、遅延の指示を受け取ったデータに対し遅延を付与し、遅延の指示を受けないデータに対し遅延させず、パラメータを基に、指示された並び替えを実行し、所定の出力ポートから出力するマルチポート格納手段と、
前記入力データ選択部及び前記マルチポート格納手段を制御する並び替え制御手段と
を含むことを特徴とする付記1又は付記2に記載の演算装置。
(付記4) 前記入力データ選択手段が、
入力されたデータと同じ出力先の他のデータがあるか否かを確認し、他のデータがない場合、前記入力されたデータを出力し、他のデータがある場合、いずれかのデータを出力後、前記出力先が再度受信可能となった後、残りのデータを出力する
ことを特徴とする付記3に記載の演算装置。
(付記5) 前記並び替え制御手段が、
前記マルチポート格納手段の読み出しアドレス及び書き込みアドレスを監視し、
読み出し指示を受けたとき、
前記読み出し指示のアドレスが書き込み済みの場合、前記読み出しアドレスからデータを読み出し、
前記読み出し指示のアドレスが未書き込みの場合、前記読み出しアドレスにデータが書き込まれるまで読み出しを停止する
ことを特徴とする付記3又は付記4に記載の演算装置。
(付記6) 演算対象データを格納し、
データを用いて演算し、
格納された前記演算対象データ及び演算されたデータの中から指示されたデータ選択し、パラメータに基づいて、指示されたデータのうち遅延の指示を受けたデータに対し所定の遅延を付与し、遅延の指示を受けないデータに対し遅延させず、パラメータに基づいて、指示されたデータの並び替えを実行し、演算されるデータと演算結果データとを出力し、
前記演算結果データを格納する
演算方法。
(付記7) 演算対象データを格納する処理と、
データを用いて演算する処理と、
格納された前記演算対象データ及び演算されたデータの中から指示されたデータ選択し、パラメータに基づいて、指示されたデータのうち遅延の指示を受けたデータに対し所定の遅延を付与し、遅延の指示を受けないデータに対し遅延させず、パラメータに基づいて、指示されたデータの並び替えを実行し、演算されるデータと演算結果データとを出力する処理と、
前記演算結果データを格納する処理と
をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
本発明は、アレイプロセッサが有用となる処理、つまり、行列演算や、フィルタリング処理や、データの並び替え等の信号処理用途に適用できる。
10 メモリバンク
11 演算処理部
12 演算処理部
13 メモリバンク
14 アレイ演算部
15 演算処理部
16 マルチバンク
17 データメモリ
19 アレイプロセッサ
20 メモリバンク
21 演算処理部
22 演算処理部
23 メモリバンク
24 FIFO
25 FIFO
26 FIFO
27 同期制御部
28 同期制御部
29 アレイプロセッサ
30 メモリバンク
31 演算処理部
32 演算処理部
33 メモリバンク
34 データ並び替え部
35 演算処理部
36 演算装置
37 演算装置
38 演算装置
39 演算装置
40 入力データ選択部
41 マルチバンクメモリ
42 並び替え制御部
60 データ並び替え部
610 CPU
620 ROM
630 RAM
640 IF
700 記憶媒体

Claims (6)

  1. 演算対象データを格納する第1のデータ格納手段と、
    データを用いて演算を実行する演算処理手段と、
    前記第1のデータ格納手段に格納された前記演算対象データ及び前記演算処理手段で演算されたデータの中から指示されたデータを選択し、パラメータに基づいて、指示されたデータのうち遅延の指示を受けたデータに対し所定の遅延を付与し、遅延の指示を受けないデータに対し遅延させず、パラメータに基づいて、指示されたデータの並び替えを実行し、前記演算処理手段において演算されるデータと前記演算処理手段の演算結果データとを出力するデータ並び替え手段と、
    前記データ並び替え手段が出力した前記演算結果データを格納する第2のデータ格納手段と
    を含み、
    前記データ並び替え手段が、
    データを受け取り、指示されたデータを選択し、前記第2のデータ格納手段、又は、前記演算処理手段に出力する入力データ選択手段と、
    前記入力データ選択手段からデータを受け取り、前記パラメータに基づいて、遅延の指示を受け取ったデータに対し遅延を付与し、遅延の指示を受けないデータに対し遅延させず、パラメータを基に、指示された並び替えを実行し、所定の出力ポートから出力するマルチポート格納手段と、
    前記入力データ選択手段及び前記マルチポート格納手段を制御する並び替え制御手段と
    を含む演算装置。
  2. 複数のデータ並び替え手段と、複数の演算処理手段とを含み、
    前記データ並び替え手段が、
    前記演算対象データと、1又は2以上の演算処理手段の演算結果のデータの中から指示されたデータを選択する
    請求項1に記載の演算装置。
  3. 前記入力データ選択手段が、
    入力されたデータと同じ出力先の他のデータがあるか否かを確認し、他のデータがない場合、前記入力されたデータを出力し、他のデータがある場合、いずれかのデータを出力後、前記出力先が再度受信可能となった後、残りのデータを出力する
    ことを特徴とする請求項1又は2に記載の演算装置。
  4. 前記並び替え制御手段が、
    前記マルチポート格納手段の読み出しアドレス及び書き込みアドレスを監視し、
    読み出し指示を受けたとき、
    前記読み出し指示のアドレスが書き込み済みの場合、前記読み出しアドレスからデータを読み出し、
    前記読み出し指示のアドレスが未書き込みの場合、前記読み出しアドレスにデータが書き込まれるまで読み出しを停止する
    ことを特徴とする請求項1ないし3のいずれか1項に記載の演算装置。
  5. 演算対象データを格納し、
    データを用いて演算し、
    格納された前記演算対象データ及び演算されたデータの中から指示されたデータを選択し、パラメータに基づいて、指示されたデータのうち遅延の指示を受けたデータに対し所定の遅延を付与し、遅延の指示を受けないデータに対し遅延させず、パラメータに基づいて、指示されたデータの並び替えを実行し、演算されるデータと演算結果データとを出力し、
    前記演算結果データを格納する
    演算方法において、さらに、
    データを選択する制御として、データを受け取り、指示されたデータを選択して、前記演算結果データを格納する、又は、前記データを用いて演算するように出力し、
    指示されたデータに対する遅延及び並び替えの制御として、マルチポート格納手段において、データを選択する制御に基づくデータを受け取り、前記パラメータに基づいて、遅延の指示を受け取ったデータに対し遅延を付与し、遅延の指示を受けないデータに対し遅延させずパラメータを基に、指示された並び替えを実行し、所定の出力ポートから出力する
    演算方法。
  6. 演算対象データを格納する処理と、
    データを用いて演算する処理と、
    格納された前記演算対象データ及び演算されたデータの中から指示されたデータを選択し、パラメータに基づいて、指示されたデータのうち遅延の指示を受けたデータに対し所定の遅延を付与し、遅延の指示を受けないデータに対し遅延させず、パラメータに基づいて、指示されたデータの並び替えを実行し、演算されるデータと演算結果データとを出力する処理と、
    前記演算結果データを格納する処理と
    をコンピュータに実行させるためのプログラムにおいて、さらに、
    データを選択する処理として、データを受け取り、指示されたデータを選択し、前記演算結果データを格納する処理、又は、前記データを用いて演算する処理のために出力する処理を実行させ、
    指示されたデータに対する遅延及び並び替えの処理として、マルチポート格納手段において、データを選択する処理に基づくデータを受け取り、前記パラメータに基づいて、遅延の指示を受け取ったデータに対し遅延を付与し、遅延の指示を受けないデータに対し遅延させず、パラメータを基に、指示された並び替えを実行し、所定の出力ポートから出力する処理を実行させるための、プログラム。
JP2014554119A 2012-12-25 2013-12-16 演算装置及び演算方法 Active JP6432348B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012281060 2012-12-25
JP2012281060 2012-12-25
PCT/JP2013/007383 WO2014103235A1 (ja) 2012-12-25 2013-12-16 演算装置及び演算方法

Publications (2)

Publication Number Publication Date
JPWO2014103235A1 JPWO2014103235A1 (ja) 2017-01-12
JP6432348B2 true JP6432348B2 (ja) 2018-12-05

Family

ID=51020359

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014554119A Active JP6432348B2 (ja) 2012-12-25 2013-12-16 演算装置及び演算方法

Country Status (4)

Country Link
US (1) US9507541B2 (ja)
EP (1) EP2940594A4 (ja)
JP (1) JP6432348B2 (ja)
WO (1) WO2014103235A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106126124B (zh) * 2016-06-29 2019-05-21 北京联想核芯科技有限公司 一种数据处理方法及电子设备
CN106484326B (zh) * 2016-09-14 2019-08-27 Oppo广东移动通信有限公司 一种数据传输处理方法及移动终端

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2121182B (en) 1981-07-10 1985-07-24 Lucas Ind Plc Linear inductive transducer
JPS58181168A (ja) 1982-04-17 1983-10-22 Nippon Telegr & Teleph Corp <Ntt> 自律型プロセツサアレイ方式
US5029079A (en) 1988-08-04 1991-07-02 Array Microsystems, Inc. Apparatus and method for flexible control of digital signal processing devices
JPH1091442A (ja) * 1996-09-13 1998-04-10 Hitachi Ltd プロセッサ
JP3668356B2 (ja) * 1997-04-07 2005-07-06 シャープ株式会社 高速フーリエ変換演算回路
JPH1185463A (ja) * 1997-09-01 1999-03-30 Mitsubishi Electric Corp 演算ネットワーク装置
JP4436951B2 (ja) * 1999-12-22 2010-03-24 パナソニック株式会社 信号処理系統設定装置及び方法
US7020673B2 (en) 2001-01-19 2006-03-28 Sony Corporation Reconfigurable arithmetic device and arithmetic system including that arithmetic device and address generation device and interleave device applicable to arithmetic system
JP3846196B2 (ja) * 2001-01-19 2006-11-15 ソニー株式会社 演算装置および並列演算装置
TWI234737B (en) * 2001-05-24 2005-06-21 Ip Flex Inc Integrated circuit device
US7219172B1 (en) * 2004-06-01 2007-05-15 Storage Technology Corporation System and method of dynamically controlling storage device access duty cycle
JP4594666B2 (ja) * 2004-07-12 2010-12-08 富士通株式会社 再構成可能な演算装置
US7546434B2 (en) * 2005-06-22 2009-06-09 International Business Machines Corporation Method to write data to an information storage and retrieval system
WO2007003370A2 (en) * 2005-06-30 2007-01-11 Interuniversitair Microelektronica Centrum Vzw A memory arrangement for multi-processor systems
JP5279342B2 (ja) * 2008-05-22 2013-09-04 キヤノン株式会社 情報処理方法及び装置
JP5178346B2 (ja) * 2008-06-25 2013-04-10 株式会社東芝 半導体装置、および、半導体装置によるデータ処理方法
JP5163332B2 (ja) * 2008-07-15 2013-03-13 富士通セミコンダクター株式会社 設計プログラム、設計装置、および設計方法
JP5231949B2 (ja) 2008-11-12 2013-07-10 株式会社東芝 半導体装置、および、半導体装置によるデータ処理方法
WO2011036918A1 (ja) * 2009-09-24 2011-03-31 日本電気株式会社 データ並べ替え回路、可変遅延回路、高速フーリエ変換回路、およびデータ並べ替え方法
JP5556323B2 (ja) * 2010-04-15 2014-07-23 日本電気株式会社 データ並び替え回路に対する制御情報自動生成方法、データ並び替え回路、コンピュータ、及び制御情報自動生成プログラム
US8738880B2 (en) * 2010-08-17 2014-05-27 International Business Machines Corporation Throttling storage initialization for data destage
WO2013102970A1 (ja) * 2012-01-04 2013-07-11 日本電気株式会社 データ処理装置、及びデータ処理方法

Also Published As

Publication number Publication date
EP2940594A1 (en) 2015-11-04
JPWO2014103235A1 (ja) 2017-01-12
US20150347056A1 (en) 2015-12-03
US9507541B2 (en) 2016-11-29
EP2940594A4 (en) 2016-09-21
WO2014103235A1 (ja) 2014-07-03

Similar Documents

Publication Publication Date Title
US4553203A (en) Easily schedulable horizontal computer
US10929944B2 (en) Low power and low latency GPU coprocessor for persistent computing
JP2008507034A5 (ja)
JP2014505916A (ja) Simdレジスタファイルから汎用レジスタファイルへデータを移動させるための方法及び装置
JPS62208158A (ja) マルチプロセツサシステム
CN111656339B (zh) 存储器装置及其控制方法
KR20190028426A (ko) Simd 아키텍처에서 레인 셔플을 위한 셔플러 회로
US9304775B1 (en) Dispatching of instructions for execution by heterogeneous processing engines
US11482264B2 (en) Memory module adapted to implementing computing functions
JP6432348B2 (ja) 演算装置及び演算方法
US20190303347A1 (en) Data processing engine tile architecture for an integrated circuit
CA2299567A1 (en) Data processor and data processing system
CN112074810A (zh) 并行处理设备
JP6294732B2 (ja) データ転送制御装置及びメモリ内蔵装置
JP3576148B2 (ja) 並列プロセッサ
JP2004503872A (ja) 共同利用コンピュータシステム
JP2015179409A (ja) データ処理装置
CN116324741A (zh) 用于可配置硬件加速器的方法和装置
JP2023509813A (ja) Simt指令処理方法及び装置
US10579559B1 (en) Stall logic for a data processing engine in an integrated circuit
CN110383259B (zh) 计算处理装置和信息处理系统
US8316215B2 (en) Vector processor with plural arithmetic units for processing a vector data string divided into plural register banks accessed by read pointers starting at different positions
JP4482356B2 (ja) Simdプロセッサを用いた画像処理方法及び画像処理装置
WO2013102970A1 (ja) データ処理装置、及びデータ処理方法
US20040111567A1 (en) SIMD processor with multi-port memory unit

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180302

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180807

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180919

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: 20181009

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181022

R150 Certificate of patent or registration of utility model

Ref document number: 6432348

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150