JP2018525730A5 - - Google Patents
Download PDFInfo
- Publication number
- JP2018525730A5 JP2018525730A5 JP2018502081A JP2018502081A JP2018525730A5 JP 2018525730 A5 JP2018525730 A5 JP 2018525730A5 JP 2018502081 A JP2018502081 A JP 2018502081A JP 2018502081 A JP2018502081 A JP 2018502081A JP 2018525730 A5 JP2018525730 A5 JP 2018525730A5
- Authority
- JP
- Japan
- Prior art keywords
- register
- data element
- input data
- shifted
- storing
- 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.)
- Granted
Links
Claims (30)
- 入力データ要素のシーケンスを記憶するように構成される第1のレジスタであって、前記第1のレジスタは、前記入力データ要素のシーケンスの第1の入力データ要素を記憶する第1のレジスタ部分と、前記入力データ要素のシーケンスの第2の入力データ要素を記憶する第2のレジスタ部分とを有し、前記第1の入力データ要素は、前記入力データ要素のシーケンスにおいて前記第2の入力データ要素に隣接する、第1のレジスタと、
シフトされたデータ要素を生成するために、前記第1のレジスタの前記入力データ要素を前記第1のレジスタの前記第1のレジスタ部分の幅に等しいビット数だけシフトするように構成されるシフタ回路と、
前記シフトされたデータ要素を記憶するように構成される第2のレジスタであって、前記第2のレジスタは、前記シフトされたデータ要素の第1のシフトされたデータ要素を記憶する第1のレジスタ部分を有し、前記第1のシフトされたデータ要素は、前記第1のレジスタの前記第2のレジスタ部分における前記第2の入力データ要素に対応し、前記第2のレジスタの前記第1のレジスタ部分の幅は、前記第1のレジスタの前記第1のレジスタ部分の前記幅に等しい、第2のレジスタと、
第1のレーンを有するシングルインストラクションマルチプルデータ(SIMD)処理回路であって、前記第1のレーンが、前記第1のレジスタの前記第1のレジスタ部分の前記幅に等しいレーン幅を有し、前記SIMD処理回路が、前記シフタ回路による前記入力データ要素のシフトの後に、前記第1のレジスタの前記第1のレジスタ部分における前記第1の入力データ要素と、前記第2のレジスタの前記第1のレジスタ部分における前記第1のシフトされたデータ要素とに対してスライディングウィンドウ演算を実行するように構成され、前記スライディングウィンドウ演算を実行することが、前記第1のレジスタの前記第1のレジスタ部分の第1の位置において記憶される第1の入力データ要素と、前記第2のレジスタの前記第1のレジスタ部分の第2の位置において記憶される第1のシフトされたデータ要素に基づく結果を決定することを含み、前記第2のレジスタの前記第1のレジスタ部分の前記第2の位置が、前記第1のレジスタの前記第1のレジスタ部分の前記第1の位置と異なる位置を有する、SIMD処理回路と
を備える、装置。 - 前記SIMD処理回路は、命令に基づいて、前記第1のレジスタの前記第1のレジスタの前記第1のレジスタ部分における前記第1の入力データ要素、前記第2のレジスタの前記第1のレジスタ部分における前記第1のシフトされたデータ要素、またはそれらの任意の組合せに対して同時にスライディングウィンドウ演算を実行する、請求項1に記載の装置。
- 前記第1のレジスタの前記第1のレジスタ部分における前記第1の入力データ要素および前記第2のレジスタの前記第1のレジスタ部分における前記第1のシフトされたデータ要素は、前記命令の命令コードにおける即値フィールドに基づいて選択される、請求項2に記載の装置。
- 前記SIMD処理回路は、
算術および論理ユニット(ALU)と、
前記第1のレジスタの前記第1のレジスタ部分における前記第1の入力データ要素のうちの1つまたは前記第2のレジスタの前記第1のレジスタ部分における前記第1のシフトされたデータ要素のうちの1つを前記ALUに供給するように構成される、第1のマルチプレクサと、
前記第1のレジスタの前記第1のレジスタ部分における前記第1の入力データ要素のうちの1つまたは前記第2のレジスタの前記第1のレジスタ部分における前記第1のシフトされたデータ要素のうちの1つを前記ALUに供給するように構成される、第2のマルチプレクサと
を備え、
前記ALUは、前記第1のマルチプレクサによって供給されたデータ要素および前記第2のマルチプレクサによって供給されたデータ要素に対して水平演算を実行するように動作可能である、
請求項1に記載の装置。 - 前記水平演算は、加算演算、ビット単位OR演算、または乗算演算を含む、請求項4に記載の装置。
- 前記ALUは、前記第1のマルチプレクサによって供給された前記データ要素および前記第2のマルチプレクサによって供給された前記データ要素に対して垂直演算を実行するように動作可能であり、前記水平演算は、前記垂直演算の後に実行される、請求項4に記載の装置。
- 前記垂直演算は乗算演算を含む、請求項6に記載の装置。
- 前記SIMD処理回路は、前記第1のレーンと第2のレーンとを含む複数のレーンであって、前記第2のSIMDレーンが、前記第1のレジスタの前記第2のレジスタ部分に記憶された前記第2の入力データ要素および前記第2のレジスタの第2のレジスタ部分に記憶される第2のシフトされたデータ要素に対してスライディングウィンドウ演算を実行するように構成される、複数のレーンをさらに備える、請求項1に記載の装置。
- 前記第1のレーンによって実行される前記スライディングウィンドウ演算と前記第2のレーンによって実行される前記スライディングウィンドウ演算が並行して実行される、請求項8に記載の装置。
- 前記シフタ回路は、前記シフトされたデータを前記第2のレジスタに供給するように構成される、請求項1に記載の装置。
- 第1のレジスタに入力データ要素のシーケンスを記憶するステップであって、前記入力データ要素のシーケンスは、前記第1のレジスタの第1のレジスタ部分に記憶された第1の入力データ要素と、前記第1のレジスタの第2のレジスタ部分に記憶された第2の入力データ要素とを含む、ステップと、
シフトされたデータ要素を生成するために、前記第1のレジスタの前記入力データ要素を前記第1のレジスタの前記第1のレジスタ部分の幅に等しいビット数だけシフトするステップと、
第2のレジスタに前記シフトされたデータ要素を記憶するステップであって、前記シフトされたデータ要素は、第2のレジスタの第1のレジスタ部分に記憶された第1のシフトされたデータ要素を含み、前記第2のレジスタの前記第1のレジスタ部分の幅は、前記第1のレジスタの前記第1のレジスタ部分の幅に等しい、ステップと、
前記入力データ要素のシフトの後に、シングルインストラクションマルチプルデータ(SIMD)処理回路の第1のレーンを使用して、前記第1のレジスタの前記第1のレジスタ部分における前記第1の入力データ要素と、前記第2のレジスタの前記第1のレジスタ部分における前記第1のシフトされたデータ要素とに対してスライディングウィンドウ演算を実行するステップであって、前記第1のレーンは、前記第1のレジスタの前記第1のレジスタ部分の前記幅に等しいレーン幅を有し、前記スライディングウィンドウ演算を実行するステップが、前記第1のレジスタの前記第1のレジスタ部分の第1の位置において記憶された第1の入力データ要素と、前記第2のレジスタの前記第1のレジスタ部分の第2の位置において記憶された第1のシフトされたデータ要素に基づく結果を決定するステップを含み、前記第2のレジスタの前記第1のレジスタ部分の前記第2の位置が、前記第1のレジスタの前記第1のレジスタ部分の前記第1の位置と異なる位置を有する、ステップと
を含む、方法。 - 前記第1の入力データ要素は、第1のデータ要素から始まって第Nのデータ要素で終わるN個のデータ要素を含み、前記第1のシフトされた入力データ要素は、第(N+1)のデータ要素から始まって第2*Nのデータ要素で終わるN個のデータ要素を含み、Nが前記SIMD処理回路の前記レーン幅に対応する、請求項11に記載の方法。
- 前記SIMD処理回路は、命令に基づいて、前記第1のレジスタの前記第1のレジスタ部分における前記第1の入力データ要素、前記第2のレジスタの前記第1のレジスタ部分における前記第1のシフトされたデータ要素、またはそれらの任意の組合せに対して同時にスライディングウィンドウ演算を実行する、請求項11に記載の方法。
- 前記第1のレジスタの前記第1のレジスタ部分における前記第1の入力データ要素および前記第2のレジスタの前記第1のレジスタ部分における前記第1のシフトされたデータ要素は、前記命令の命令コードにおける即値フィールドに基づいて選択される、請求項13に記載の方法。
- 第1のマルチプレクサにおいて、前記第1のレジスタの前記第1のレジスタ部分における前記第1の入力データ要素のうちの1つまたは前記第2のレジスタの前記第1のレジスタ部分における前記第1のシフトされたデータ要素のうちの1つを算術および論理ユニット(ALU)に供給するステップと、
第2のマルチプレクサにおいて、前記第1のレジスタの前記第1のレジスタ部分における前記第1の入力データ要素のうちの1つまたは前記第2のレジスタの前記第1のレジスタ部分における前記第1のシフトされたデータ要素のうちの1つを前記ALUに供給するステップと
をさらに含む、請求項11に記載の方法。 - 前記ALUにおいて、前記第1のマルチプレクサによって供給されたデータ要素および前記第2のマルチプレクサによって供給されたデータ要素に対して水平演算を実行するステップを含む、請求項15に記載の方法。
- 前記水平演算は、加算演算、ビット単位OR演算、または乗算演算を含む、請求項16に記載の方法。
- 前記第1のマルチプレクサによって供給された前記データ要素および前記第2のマルチプレクサによって供給された前記データ要素に対して垂直演算を実行するステップであって、前記水平演算は、前記垂直演算の後に実行される、ステップをさらに含む、請求項16に記載の方法。
- 前記垂直演算は乗算演算を含む、請求項18に記載の方法。
- 前記SIMD処理回路の第2のSIMDレーンを使用して前記第1のレジスタの前記第2のレジスタ部分に記憶された第2の入力データ要素および前記第2のレジスタの第2のレジスタ部分に記憶された第2のシフトされたデータ要素に対してスライディングウィンドウ演算を実行するステップであって、前記第1のレーンが前記複数のSIMDレーンに含まれる、ステップをさらに含む、請求項11に記載の方法。
- 前記第1のレーンによって実行される前記スライディングウィンドウ演算と前記第2のSIMDレーンによって実行される前記スライディングウィンドウ演算が並行して実行される、請求項20に記載の方法。
- 前記シフトされたデータ要素を前記第2のレジスタに供給するステップをさらに含む、請求項11に記載の方法。
- 入力データ要素のシーケンスを記憶するための第1の手段であって、前記入力データ要素のシーケンスの第1の入力データ要素を記憶する第1の部分と、前記入力データ要素のシーケンスの第2の入力データ要素を記憶する第2の部分とを有し、前記第1の入力データ要素は、前記入力データ要素のシーケンスにおいて前記第2の入力データ要素に隣接する、第1の手段と、
シフトされたデータ要素を生成するために、前記記憶するための第1の手段の前記入力データ要素を前記記憶するための第1の手段の前記第1の部分の幅に等しいビット数だけシフトするための手段と、
前記シフトされたデータ要素を記憶するための第2の手段であって、前記シフトされたデータ要素の第1のシフトされたデータ要素を記憶するための第1の部分を有し、前記第1のシフトされたデータ要素は、前記記憶するための第1の手段の前記第2の部分の前記第2の入力データ要素に対応し、前記記憶するための第2の手段の前記第1の部分の幅は、前記記憶するための第1の手段の前記第1の前記幅に等しい、手段と、
前記記憶するための第1の手段の前記第1の部分における前記第1の入力データ要素と、前記記憶するための第2の手段の前記第1の部分における前記第1のシフトされたデータ要素とに対してスライディングウィンドウ演算を実行するための手段であって、前記記憶するための第1の手段の前記第1の部分の前記幅に等しいレーン幅を有し、前記記憶するための第1の手段の前記第1の部分の第1の位置において記憶された第1の入力データ要素と、前記記憶するための第2の手段の前記第1の部分の第2の位置において記憶された第1のシフトされたデータ要素に基づく結果を決定することを含み、前記記憶するための第2の手段の前記第1の部分の前記第2の位置が、前記記憶するための第1の手段の前記第1の部分の前記第1の位置と異なる位置を有する、手段と
を備える、装置。 - 前記第1の入力データ要素は、第1のデータ要素から始まって第Nのデータ要素で終わるN個のデータ要素を含み、前記第1のシフトされた入力データ要素は、第(N+1)のデータ要素から始まって第2*Nのデータ要素で終わるN個のデータ要素を含み、Nが前記スライディングウィンドウ演算を実行するための手段の前記レーン幅に対応する、請求項23に記載の装置。
- 前記スライディングウィンドウ演算を実行するための手段は、命令に基づいて、前記記憶するための第1の手段の前記第1の部分における前記第1の入力データ要素、前記記憶するための第2の手段の前記第1の部分における前記第1のシフトされたデータ要素、またはそれらの任意の組合せに対して同時にスライディングウィンドウ演算を実行する、請求項23に記載の装置。
- 前記記憶するための第1の手段の前記第1の部分における前記第1の入力データ要素および前記記憶するための第2の手段の前記第1の部分における前記第1のシフトされたデータ要素は、前記命令の命令コードにおける即値フィールドに基づいて選択される、請求項25に記載の装置。
- データ要素を供給するための手段であって、前記記憶するための第1の手段の前記第1の部分における前記第1の入力データ要素のうちの1つを算術および論理ユニット(ALU)に供給するように構成される、手段と、
データ要素を供給するための第2の手段であって、前記記憶するための第2の手段の前記第1の部分における前記第1のシフトされたデータ要素のうちの1つを前記ALUに供給するように構成される、手段と
をさらに備える、請求項23に記載の装置。 - 前記記憶するための第1の手段の前記第2の部分に記憶された前記第2の入力データ要素および前記記憶するための第2の手段の第2の部分に記憶された第2のシフトされたデータ要素に対してスライディングウィンドウ演算を実行するための第2の手段をさらに備える、請求項23に記載の装置。
- 命令を含む非一時的コンピュータ可読記憶媒体であって、前記命令は、プロセッサによって実行されたときに、前記プロセッサに、
第1のレジスタに入力データ要素のシーケンスを記憶することであって、前記入力データ要素のシーケンスは、前記第1のレジスタの第1のレジスタ部分に記憶された第1の入力データ要素と、前記第1のレジスタの第2のレジスタ部分に記憶された第2の入力データ要素とを含む、記憶することと、
シフトされたデータ要素を生成するために、前記第1のレジスタの前記入力データ要素を前記第1のレジスタの前記第1のレジスタ部分の幅に等しいビット数だけシフトすることと、
第2のレジスタに前記シフトされたデータ要素を記憶することであって、前記シフトされたデータ要素は、第2のレジスタの第1のレジスタ部分に記憶された第1のシフトされたデータ要素を含み、前記第2のレジスタの前記第2のレジスタ部分の幅は、前記第1のレジスタの前記第1のレジスタ部分の幅に等しい、記憶することと、
前記入力データ要素のシフトの後に、シングルインストラクションマルチプルデータ(SIMD)処理回路のレーンを使用して、前記第1のレジスタの前記第1のレジスタ部分における前記第1の入力データ要素と、前記第2のレジスタの前記第1のレジスタ部分における前記第1のシフトされたデータ要素とに対してスライディングウィンドウ演算を実行することであって、前記レーンは、前記第1のレジスタの前記第1のレジスタ部分の前記幅に等しいレーン幅を有し、前記スライディングウィンドウ演算を実行することが、前記第1のレジスタの前記第1のレジスタ部分の第1の位置において記憶された第1の入力データ要素と、前記第2のレジスタの前記第1のレジスタ部分の第2の位置において記憶された第1のシフトされたデータ要素に基づく結果を決定することを含み、前記第2のレジスタの前記第1のレジスタ部分の前記第2の位置が、前記第1のレジスタの前記第1のレジスタ部分の前記第1の位置と異なる位置を有する、実行することと
を行わせる、非一時的コンピュータ可読記憶媒体。 - 前記第1の入力データ要素は、第1のデータ要素から始まって第Nのデータ要素で終わるN個のデータ要素を含み、前記第1のシフトされた入力データ要素は、第(N+1)のデータ要素から始まって第2*Nのデータ要素で終わるN個のデータ要素を含み、Nが前記SIMD処理回路の前記レーン幅に対応する、請求項29に記載の非一時的コンピュータ可読記憶媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/803,728 | 2015-07-20 | ||
US14/803,728 US10459731B2 (en) | 2015-07-20 | 2015-07-20 | Sliding window operation |
PCT/US2016/041779 WO2017014979A1 (en) | 2015-07-20 | 2016-07-11 | Simd sliding window operation |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2018525730A JP2018525730A (ja) | 2018-09-06 |
JP2018525730A5 true JP2018525730A5 (ja) | 2020-01-30 |
JP6737869B2 JP6737869B2 (ja) | 2020-08-12 |
Family
ID=56511938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018502081A Active JP6737869B2 (ja) | 2015-07-20 | 2016-07-11 | スライディングウィンドウ演算 |
Country Status (8)
Country | Link |
---|---|
US (1) | US10459731B2 (ja) |
EP (1) | EP3326061B1 (ja) |
JP (1) | JP6737869B2 (ja) |
KR (1) | KR102092049B1 (ja) |
CN (1) | CN107873091B (ja) |
BR (1) | BR112018001183A2 (ja) |
CA (1) | CA2990249A1 (ja) |
WO (1) | WO2017014979A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11803377B2 (en) * | 2017-09-08 | 2023-10-31 | Oracle International Corporation | Efficient direct convolution using SIMD instructions |
US11403727B2 (en) | 2020-01-28 | 2022-08-02 | Nxp Usa, Inc. | System and method for convolving an image |
US11586442B2 (en) | 2020-08-06 | 2023-02-21 | Nxp Usa, Inc. | System and method for convolving image with sparse kernels |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5743239A (en) * | 1980-08-27 | 1982-03-11 | Hitachi Ltd | Data processor |
US6009505A (en) * | 1996-12-02 | 1999-12-28 | Compaq Computer Corp. | System and method for routing one operand to arithmetic logic units from fixed register slots and another operand from any register slot |
US6230253B1 (en) * | 1998-03-31 | 2001-05-08 | Intel Corporation | Executing partial-width packed data instructions |
US6816961B2 (en) * | 2000-03-08 | 2004-11-09 | Sun Microsystems, Inc. | Processing architecture having field swapping capability |
DE10023319B4 (de) * | 2000-05-12 | 2008-07-10 | Man Roland Druckmaschinen Ag | Verfahren zum Umspulen von Thermotransferband zum Bebildern von Druckformen |
US7126991B1 (en) | 2003-02-03 | 2006-10-24 | Tibet MIMAR | Method for programmable motion estimation in a SIMD processor |
US7275147B2 (en) * | 2003-03-31 | 2007-09-25 | Hitachi, Ltd. | Method and apparatus for data alignment and parsing in SIMD computer architecture |
GB2409065B (en) | 2003-12-09 | 2006-10-25 | Advanced Risc Mach Ltd | Multiplexing operations in SIMD processing |
US7933405B2 (en) * | 2005-04-08 | 2011-04-26 | Icera Inc. | Data access and permute unit |
US7761694B2 (en) * | 2006-06-30 | 2010-07-20 | Intel Corporation | Execution unit for performing shuffle and other operations |
US20080100628A1 (en) | 2006-10-31 | 2008-05-01 | International Business Machines Corporation | Single Precision Vector Permute Immediate with "Word" Vector Write Mask |
GB2444744B (en) * | 2006-12-12 | 2011-05-25 | Advanced Risc Mach Ltd | Apparatus and method for performing re-arrangement operations on data |
WO2008077803A1 (en) | 2006-12-22 | 2008-07-03 | Telefonaktiebolaget L M Ericsson (Publ) | Simd processor with reduction unit |
CN101021832A (zh) * | 2007-03-19 | 2007-08-22 | 中国人民解放军国防科学技术大学 | 支持局部寄存和条件执行的64位浮点整数融合运算群 |
CN100461095C (zh) * | 2007-11-20 | 2009-02-11 | 浙江大学 | 一种支持多模式的媒体增强流水线乘法单元设计方法 |
US9081501B2 (en) * | 2010-01-08 | 2015-07-14 | International Business Machines Corporation | Multi-petascale highly efficient parallel supercomputer |
CN102012893B (zh) * | 2010-11-25 | 2012-07-18 | 中国人民解放军国防科学技术大学 | 一种可扩展向量运算装置 |
US9588766B2 (en) * | 2012-09-28 | 2017-03-07 | Intel Corporation | Accelerated interlane vector reduction instructions |
US9424031B2 (en) | 2013-03-13 | 2016-08-23 | Intel Corporation | Techniques for enabling bit-parallel wide string matching with a SIMD register |
CN104699458A (zh) * | 2015-03-30 | 2015-06-10 | 哈尔滨工业大学 | 定点向量处理器及其向量数据访存控制方法 |
-
2015
- 2015-07-20 US US14/803,728 patent/US10459731B2/en active Active
-
2016
- 2016-07-11 CA CA2990249A patent/CA2990249A1/en not_active Abandoned
- 2016-07-11 KR KR1020187001587A patent/KR102092049B1/ko active IP Right Grant
- 2016-07-11 BR BR112018001183A patent/BR112018001183A2/pt not_active Application Discontinuation
- 2016-07-11 JP JP2018502081A patent/JP6737869B2/ja active Active
- 2016-07-11 CN CN201680039649.1A patent/CN107873091B/zh active Active
- 2016-07-11 EP EP16742134.6A patent/EP3326061B1/en active Active
- 2016-07-11 WO PCT/US2016/041779 patent/WO2017014979A1/en active Application Filing
Similar Documents
Publication | Publication Date | Title |
---|---|---|
BR112015030001A2 (pt) | instruções de acesso à memória de múltiplos registradores, processadores, métodos e sistemas | |
JP2015043216A5 (ja) | ||
GB2537533A (en) | A data processing apparatus and method for performing segmented operations | |
GB2456775B (en) | Apparatus and method for performing permutation operations on data | |
GB2571685A (en) | An apparatus and method for processing input operand values | |
JP2016530631A5 (ja) | ||
JP2018525730A5 (ja) | ||
JP2016511470A5 (ja) | ||
US20140129809A1 (en) | Byte selection and steering logic for combined byte shift and byte permute vector unit | |
US9898286B2 (en) | Packed finite impulse response (FIR) filter processors, methods, systems, and instructions | |
EP3093757A3 (en) | Multi-dimensional sliding window operation for a vector processor | |
PH12020551746A1 (en) | Matrix vector multiplier with a vector register file comprising a multi-port memory | |
US9678716B2 (en) | Apparatus and method for performing absolute difference operation | |
JP2014194540A5 (ja) | ||
US20220206796A1 (en) | Multi-functional execution lane for image processor | |
JP2017515228A5 (ja) | ||
EP2919112A3 (en) | Packed two source inter-element shift merge processors, methods, systems, and instructions | |
GB2555315A (en) | Element size increasing instruction | |
EP3326060B1 (en) | Mixed-width simd operations having even-element and odd-element operations using register pair for wide data elements | |
CN107851016B (zh) | 向量算术指令 | |
CN107873091B (zh) | 用于滑动窗口运算的方法和设备 | |
JP2022546034A (ja) | マイクロプロセッサ内におけるレジスタ結果の累積のための命令ハンドリング | |
RU2017126055A (ru) | Электронное вычислительное устройство | |
RU2634200C1 (ru) | Устройство для ускоренного вычисления матрицы неполного параллелизма | |
JP2015185076A5 (ja) |