JP6604393B2 - ベクトルプロセッサ、演算実行方法、プログラム - Google Patents
ベクトルプロセッサ、演算実行方法、プログラム Download PDFInfo
- Publication number
- JP6604393B2 JP6604393B2 JP2018041432A JP2018041432A JP6604393B2 JP 6604393 B2 JP6604393 B2 JP 6604393B2 JP 2018041432 A JP2018041432 A JP 2018041432A JP 2018041432 A JP2018041432 A JP 2018041432A JP 6604393 B2 JP6604393 B2 JP 6604393B2
- Authority
- JP
- Japan
- Prior art keywords
- determination unit
- data type
- storage device
- output destination
- temporary storage
- 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
Links
- 238000000034 method Methods 0.000 title claims description 22
- 238000004364 calculation method Methods 0.000 claims description 39
- 238000006243 chemical reaction Methods 0.000 claims description 21
- 230000004044 response Effects 0.000 claims description 11
- 239000011159 matrix material Substances 0.000 description 33
- 238000010586 diagram Methods 0.000 description 11
- 238000007792 addition Methods 0.000 description 3
- 238000003672 processing method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30025—Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30109—Register structure having multiple operands in a single register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30112—Register structure comprising data of variable length
Description
命令に応じた演算を実行する際に用いるデータを表す複数の要素を保持する一時記憶装置と、
前記命令に応じて、前記一時記憶装置が保持する要素のそれぞれを、予め定められたデータ型のうちのどのデータ型で扱うか判断するデータ型判断部と、
前記データ型判断部による判断の結果に基づいて、前記一時記憶装置が記憶する要素の出力先を決定する出力先決定部と、
を有し、
前記出力先決定部が決定した出力先に各要素を出力することで前記演算を実行する
という構成を採る。
命令に応じた演算を実行する際に用いるデータを表す複数の要素を保持する一時記憶装置を有するベクトルプロセッサが、
前記命令に応じて、前記一時記憶装置が保持する要素のそれぞれを、予め定められたデータ型のうちのどのデータ型で扱うか判断し、
判断の結果に基づいて、前記一時記憶装置が記憶する要素の出力先を決定し、
決定した出力先に各要素を出力することで前記演算を実行する
という構成を採る。
命令に応じた演算を実行する際に用いるデータを表す複数の要素を保持する一時記憶装置を有するベクトルプロセッサに、
前記命令に応じて、前記一時記憶装置が保持する要素のそれぞれを、予め定められたデータ型のうちのどのデータ型で扱うか判断するデータ型判断部と、
前記データ型判断部による判断の結果に基づいて、前記一時記憶装置が記憶する要素の出力先を決定する出力先決定部と、
を実現させ、
前記出力先決定部が決定した出力先に各要素を出力することで前記演算を実行するプログラムである。
本発明の第1の実施形態を図1から図19までを参照して説明する。図1は、ベクトルプロセッサ1の構成の一例を示す図である。図2は、演算処理部12の構成の一例を示す図である。図3から図12までは、データ構造の一例を説明するための図である。図13は、複素数同士の乗算を行う際の処理の一例を説明するための図である。図14は、2×2行列同士の乗算を行う際の処理の一例を説明するための図である。図15は、除算を行う際の処理の一例を説明するための図である。図16は、ソートを行う際の処理の一例を説明するための図である。図17は、半精度の乗算を行う際の処理の一例を説明するための図である。図18は、ベクトルプロセッサ1が行う演算処理方法の一例を示すフローチャートである。図19は、一般的な乗算処理の一例を説明するための図である。
次に、図20を参照して、本発明の第2の実施形態について説明する。第2の実施形態では、ベクトルプロセッサ3の構成の概要について説明する。
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるベクトルプロセッサなどの概略を説明する。但し、本発明は、以下の構成に限定されない。
命令に応じた演算を実行する際に用いるデータを表す複数の要素を保持する一時記憶装置と、
前記命令に応じて、前記一時記憶装置が保持する要素のそれぞれを、予め定められたデータ型のうちのどのデータ型で扱うか判断するデータ型判断部と、
前記データ型判断部による判断の結果に基づいて、前記一時記憶装置が記憶する要素の出力先を決定する出力先決定部と、
を有し、
前記出力先決定部が決定した出力先に各要素を出力することで前記演算を実行する
ベクトルプロセッサ。
(付記2)
付記1に記載のベクトルプロセッサであって、
前記データ型判断部は、前記命令に応じてデータ型を判断することで、前記一時記憶装置が記憶する複数の要素を1つの要素として扱う
ベクトルプロセッサ。
(付記3)
付記1又は付記2に記載のベクトルプロセッサであって、
前記データ型判断部は、前記命令に応じて、1つの値をいくつの要素を用いて表現するかを示すデータ型のうちのどのデータ型で扱うか判断する
ベクトルプロセッサ。
(付記4)
付記1から付記3までのいずれか1項に記載のベクトルプロセッサであって、
前記データ型判断部は、前記命令に応じて、演算対象の種類に応じたデータ型のうちのどのデータ型で扱うか判断する
ベクトルプロセッサ。
(付記5)
付記1から付記4までのいずれか1項に記載のベクトルプロセッサであって、
前記出力先決定部は、前記データ型判断部による判断の結果と、前記命令の種類と、に基づいて、前記一時記憶装置が記憶する要素の出力先を決定する
ベクトルプロセッサ。
(付記6)
付記1から付記5までのいずれか1項に記載のベクトルプロセッサであって、
前記一時記憶装置が記憶する各要素を用いて前記演算を実行する演算処理部を有し、
前記出力先決定部は、前記データ型判断部による判断の結果に基づいて、前記一時記憶装置が記憶する各要素を前記演算処理部に含まれる演算器のうちのどの演算器のどのポートに出力するか決定することで、各要素の出力先を決定する
ベクトルプロセッサ。
(付記7)
付記6に記載のベクトルプロセッサであって、
前記演算処理部に含まれる前記演算器のそれぞれは、前記一時記憶装置と通信可能なよう接続されている
ベクトルプロセッサ。
(付記8)
付記1から付記7までのいずれか1項に記載のベクトルプロセッサであって、
前記一時記憶装置が保持する要素のデータ型のうちの、1つの値をいくつの要素を用いて表現するかを示すデータ型を変換する変換部を有する
ベクトルプロセッサ。
(付記9)
命令に応じた演算を実行する際に用いるデータを表す複数の要素を保持する一時記憶装置を有するベクトルプロセッサが、
前記命令に応じて、前記一時記憶装置が保持する要素のそれぞれを、予め定められたデータ型のうちのどのデータ型で扱うか判断し、
判断の結果に基づいて、前記一時記憶装置が記憶する要素の出力先を決定し、
決定した出力先に各要素を出力することで前記演算を実行する
演算実行方法。
(付記10)
命令に応じた演算を実行する際に用いるデータを表す複数の要素を保持する一時記憶装置を有するベクトルプロセッサに、
前記命令に応じて、前記一時記憶装置が保持する要素のそれぞれを、予め定められたデータ型のうちのどのデータ型で扱うか判断するデータ型判断部と、
前記データ型判断部による判断の結果に基づいて、前記一時記憶装置が記憶する要素の出力先を決定する出力先決定部と、
を実現させ、
前記出力先決定部が決定した出力先に各要素を出力することで前記演算を実行する
プログラム。
11 ベクトルレジスタ
12 演算処理部
121 レジスタ
122 演算器
1221 乗算器
1222 減算器
123 演算器
1231 減算器
1232 加算器
1233 乗算器
1234 比較器
13 変換部
14 データ型判断部
15 セレクタ
21 ベクトルレジスタ
22 乗算器
3 ベクトルプロセッサ
31 一時記憶装置
32 データ型判断部
33 出力先決定部
Claims (10)
- 命令に応じた演算を実行する際に用いるデータを表す複数の要素を保持する一時記憶装置と、
前記命令に応じて、前記一時記憶装置が保持する要素のそれぞれを、予め定められたデータ型のうちのどのデータ型で扱うか判断するデータ型判断部と、
前記データ型判断部による判断の結果に基づいて、前記一時記憶装置が記憶する要素の出力先を決定する出力先決定部と、
を有し、
前記出力先決定部が決定した出力先に各要素を出力することで前記演算を実行し、
前記データ型判断部は、前記命令に応じて、演算対象の種類に応じたデータ型のうちのどのデータ型で扱うか判断する
ベクトルプロセッサ。 - 請求項1に記載のベクトルプロセッサであって、
前記データ型判断部は、前記命令に応じてデータ型を判断することで、前記一時記憶装置が記憶する複数の要素を1つの要素として扱う
ベクトルプロセッサ。 - 請求項1又は2に記載のベクトルプロセッサであって、
前記データ型判断部は、前記命令に応じて、1つの値をいくつの要素を用いて表現するかを示すデータ型のうちのどのデータ型で扱うか判断する
ベクトルプロセッサ。 - 請求項1から請求項3までのいずれか1項に記載のベクトルプロセッサであって、
前記出力先決定部は、前記データ型判断部による判断の結果と、前記命令の種類と、に基づいて、前記一時記憶装置が記憶する要素の出力先を決定する
ベクトルプロセッサ。 - 請求項1から請求項4までのいずれか1項に記載のベクトルプロセッサであって、
前記一時記憶装置が記憶する各要素を用いて前記演算を実行する演算処理部を有し、
前記出力先決定部は、前記データ型判断部による判断の結果に基づいて、前記一時記憶装置が記憶する各要素を前記演算処理部に含まれる演算器のうちのどの演算器のどのポートに出力するか決定することで、各要素の出力先を決定する
ベクトルプロセッサ。 - 請求項5に記載のベクトルプロセッサであって、
前記演算処理部に含まれる前記演算器のそれぞれは、前記一時記憶装置と通信可能なよう接続されている
ベクトルプロセッサ。 - 請求項1から請求項6までのいずれか1項に記載のベクトルプロセッサであって、
前記一時記憶装置が保持する要素のデータ型のうちの、1つの値をいくつの要素を用いて表現するかを示すデータ型を変換する変換部を有する
ベクトルプロセッサ。 - 命令に応じた演算を実行する際に用いるデータを表す複数の要素を保持する一時記憶装置を有するベクトルプロセッサが、
前記命令に応じて、前記一時記憶装置が保持する要素のそれぞれを、演算対象の種類に応じたデータ型のうちのどのデータ型で扱うか判断し、
判断の結果に基づいて、前記一時記憶装置が記憶する要素の出力先を決定し、
決定した出力先に各要素を出力することで前記演算を実行する
演算実行方法。 - 命令に応じた演算を実行する際に用いるデータを表す複数の要素を保持する一時記憶装置を有するベクトルプロセッサに、
前記命令に応じて、前記一時記憶装置が保持する要素のそれぞれを、予め定められたデータ型のうちのどのデータ型で扱うか判断するデータ型判断部と、
前記データ型判断部による判断の結果に基づいて、前記一時記憶装置が記憶する要素の出力先を決定する出力先決定部と、
を実現させ、
前記出力先決定部が決定した出力先に各要素を出力することで前記演算を実行し、
前記データ型判断部は、前記命令に応じて、演算対象の種類に応じたデータ型のうちのどのデータ型で扱うか判断する
プログラム。 - 命令に応じた演算を実行する際に用いるデータを表す複数の要素を保持する一時記憶装置と、
前記命令に応じて、前記一時記憶装置が保持する要素のそれぞれを、予め定められたデータ型のうちのどのデータ型で扱うか判断するデータ型判断部と、
前記データ型判断部による判断の結果に基づいて、前記一時記憶装置が記憶する要素の出力先を決定する出力先決定部と、
を有し、
前記出力先決定部が決定した出力先に各要素を出力することで前記演算を実行し、
前記一時記憶装置が保持する要素のデータ型のうちの、1つの値をいくつの要素を用いて表現するかを示すデータ型を変換する変換部を有する
ベクトルプロセッサ。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018041432A JP6604393B2 (ja) | 2018-03-08 | 2018-03-08 | ベクトルプロセッサ、演算実行方法、プログラム |
US16/292,554 US10877764B2 (en) | 2018-03-08 | 2019-03-05 | Vector processor, operation performing method, and non-transitory computer-readable recording medium for recording program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018041432A JP6604393B2 (ja) | 2018-03-08 | 2018-03-08 | ベクトルプロセッサ、演算実行方法、プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019159440A JP2019159440A (ja) | 2019-09-19 |
JP6604393B2 true JP6604393B2 (ja) | 2019-11-13 |
Family
ID=67843985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018041432A Active JP6604393B2 (ja) | 2018-03-08 | 2018-03-08 | ベクトルプロセッサ、演算実行方法、プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US10877764B2 (ja) |
JP (1) | JP6604393B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7323177B2 (ja) * | 2019-12-17 | 2023-08-08 | 株式会社 システムスクエア | 検査システム、検査装置、学習装置及びプログラム |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10312374A (ja) | 1997-05-13 | 1998-11-24 | Kofu Nippon Denki Kk | ベクトル演算処理装置 |
JP2005275626A (ja) * | 2004-03-23 | 2005-10-06 | Fujitsu Ltd | 演算種別と精度を選択可能な近似演算処理方法および近似演算処理装置 |
JP5309636B2 (ja) * | 2008-03-21 | 2013-10-09 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US8359455B2 (en) * | 2008-12-09 | 2013-01-22 | Shlomo Selim Rakib | System and method for generating real addresses using a connection ID designating a buffer and an access pattern |
JP5699554B2 (ja) * | 2010-11-11 | 2015-04-15 | 富士通株式会社 | ベクトル処理回路、命令発行制御方法、及びプロセッサシステム |
US10095516B2 (en) * | 2012-06-29 | 2018-10-09 | Intel Corporation | Vector multiplication with accumulation in large register space |
US9594724B2 (en) * | 2012-08-09 | 2017-03-14 | International Business Machines Corporation | Vector register file |
JP6003744B2 (ja) * | 2013-03-22 | 2016-10-05 | 富士通株式会社 | 演算処理装置及び演算処理方法 |
US10169014B2 (en) * | 2014-12-19 | 2019-01-01 | International Business Machines Corporation | Compiler method for generating instructions for vector operations in a multi-endian instruction set |
GB2540943B (en) * | 2015-07-31 | 2018-04-11 | Advanced Risc Mach Ltd | Vector arithmetic instruction |
-
2018
- 2018-03-08 JP JP2018041432A patent/JP6604393B2/ja active Active
-
2019
- 2019-03-05 US US16/292,554 patent/US10877764B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20190278606A1 (en) | 2019-09-12 |
US10877764B2 (en) | 2020-12-29 |
JP2019159440A (ja) | 2019-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107077416B (zh) | 用于以选择性舍入模式进行向量处理的装置和方法 | |
KR102492356B1 (ko) | 데이터 처리장치에서의 산술 확대 | |
JP5647859B2 (ja) | 乗累算演算を実行するための装置および方法 | |
JP5731937B2 (ja) | ベクトル浮動小数点引数削減 | |
JPH02196328A (ja) | 浮動小数点演算装置 | |
US10579338B2 (en) | Apparatus and method for processing input operand values | |
KR20120030332A (ko) | 임플리시트 혼합형 오퍼랜드들을 구비한 dsp엔진 | |
KR20190119076A (ko) | 데이터 처리장치에서의 곱셈-누적 | |
TWI808259B (zh) | 具有壓縮進位之數位電路 | |
JP6604393B2 (ja) | ベクトルプロセッサ、演算実行方法、プログラム | |
JP5794385B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US20070198811A1 (en) | Data-driven information processor performing operations between data sets included in data packet | |
WO2020161458A1 (en) | Encoding special value in anchored-data element | |
JP5193358B2 (ja) | 多項式データ処理演算 | |
JP4482052B2 (ja) | 演算装置および演算方法 | |
CN115713104A (zh) | 用于神经网络的数据处理电路、神经网络电路和处理器 | |
CN202331425U (zh) | 基于矢量运算的矢量浮点运算装置 | |
JP2019219753A (ja) | 半導体装置及びその制御方法 | |
US10963245B2 (en) | Anchored data element conversion | |
JP4613992B2 (ja) | Simd演算器、simd演算器の演算方法、演算処理装置及びコンパイラ | |
JP7078129B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
KR20080052194A (ko) | 재구성형 프로세서 연산 방법 및 장치 | |
JP2011180966A (ja) | 積和演算器 | |
JP2002304288A (ja) | データ演算処理装置及びデータ演算処理プログラム | |
JPH04239909A (ja) | 演算処理方法および演算処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180308 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190123 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190312 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190403 |
|
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: 20190917 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190930 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6604393 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |