JP2018525730A5 - - Google Patents

Download PDF

Info

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
Application number
JP2018502081A
Other languages
English (en)
Other versions
JP2018525730A (ja
JP6737869B2 (ja
Filing date
Publication date
Priority claimed from US14/803,728 external-priority patent/US10459731B2/en
Application filed filed Critical
Publication of JP2018525730A publication Critical patent/JP2018525730A/ja
Publication of JP2018525730A5 publication Critical patent/JP2018525730A5/ja
Application granted granted Critical
Publication of JP6737869B2 publication Critical patent/JP6737869B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Claims (30)

  1. 入力データ要素のシーケンスを記憶するように構成される第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処理回路と
    を備える、装置。
  2. 前記SIMD処理回路は、命令に基づいて、前記第1のレジスタの前記第1のレジスタの前記第1のレジスタ部分における前記第1の入力データ要素、前記第2のレジスタの前記第1のレジスタ部分における前記第1のシフトされたデータ要素、またはそれらの任意の組合せに対して同時にスライディングウィンドウ演算を実行する、請求項1に記載の装置。
  3. 前記第1のレジスタの前記第1のレジスタ部分における前記第1の入力データ要素および前記第2のレジスタの前記第1のレジスタ部分における前記第1のシフトされたデータ要素は、前記命令の命令コードにおける即値フィールドに基づいて選択される、請求項2に記載の装置。
  4. 前記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に記載の装置。
  5. 前記水平演算は、加算演算、ビット単位OR演算、または乗算演算を含む、請求項4に記載の装置。
  6. 前記ALUは、前記第1のマルチプレクサによって供給された前記データ要素および前記第2のマルチプレクサによって供給された前記データ要素に対して垂直演算を実行するように動作可能であり、前記水平演算は、前記垂直演算の後に実行される、請求項4に記載の装置。
  7. 前記垂直演算は乗算演算を含む、請求項6に記載の装置。
  8. 前記SIMD処理回路は、前記第1のレーンと第2のレーンとを含む複数のレーンであって、前記第2のSIMDレーンが、前記第1のレジスタの前記第2のレジスタ部分に記憶された前記第2の入力データ要素および前記第2のレジスタの第2のレジスタ部分に記憶される第2のシフトされたデータ要素に対してスライディングウィンドウ演算を実行するように構成される、複数のレーンをさらに備える、請求項1に記載の装置。
  9. 前記第1のレーンによって実行される前記スライディングウィンドウ演算と前記第2のレーンによって実行される前記スライディングウィンドウ演算並行して実行される、請求項8に記載の装置。
  10. 前記シフタ回路は、前記シフトされたデータを前記第2のレジスタに供給するように構成される、請求項1に記載の装置。
  11. 第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の位置と異なる位置を有する、ステップと
    を含む、方法。
  12. 前記第1の入力データ要素は、第1のデータ要素から始まって第Nのデータ要素で終わるN個のデータ要素を含み、前記第1のシフトされた入力データ要素は、第(N+1)のデータ要素から始まって第2*Nのデータ要素で終わるN個のデータ要素を含み、Nが前記SIMD処理回路の前記レーン幅に対応する、請求項11に記載の方法。
  13. 前記SIMD処理回路は、命令に基づいて、前記第1のレジスタの前記第1のレジスタ部分における前記第1の入力データ要素、前記第2のレジスタの前記第1のレジスタ部分における前記第1のシフトされたデータ要素、またはそれらの任意の組合せに対して同時にスライディングウィンドウ演算を実行する、請求項11に記載の方法。
  14. 前記第1のレジスタの前記第1のレジスタ部分における前記第1の入力データ要素および前記第2のレジスタの前記第1のレジスタ部分における前記第1のシフトされたデータ要素は、前記命令の命令コードにおける即値フィールドに基づいて選択される、請求項13に記載の方法。
  15. 第1のマルチプレクサにおいて、前記第1のレジスタの前記第1のレジスタ部分における前記第1の入力データ要素のうちの1つまたは前記第2のレジスタの前記第1のレジスタ部分における前記第1のシフトされたデータ要素のうちの1つを算術および論理ユニット(ALU)に供給するステップと、
    第2のマルチプレクサにおいて、前記第1のレジスタの前記第1のレジスタ部分における前記第1の入力データ要素のうちの1つまたは前記第2のレジスタの前記第1のレジスタ部分における前記第1のシフトされたデータ要素のうちの1つを前記ALUに供給するステップと
    をさらに含む、請求項11に記載の方法。
  16. 前記ALUにおいて、前記第1のマルチプレクサによって供給されたデータ要素および前記第2のマルチプレクサによって供給されたデータ要素に対して水平演算を実行するステップを含む、請求項15に記載の方法。
  17. 前記水平演算は、加算演算、ビット単位OR演算、または乗算演算を含む、請求項16に記載の方法。
  18. 前記第1のマルチプレクサによって供給された前記データ要素および前記第2のマルチプレクサによって供給された前記データ要素に対して垂直演算を実行するステップであって、前記水平演算は、前記垂直演算の後に実行される、ステップをさらに含む、請求項16に記載の方法。
  19. 前記垂直演算は乗算演算を含む、請求項18に記載の方法。
  20. 前記SIMD処理回路の第2のSIMDレーンを使用して前記第1のレジスタの前記第2のレジスタ部分に記憶された第2の入力データ要素および前記第2のレジスタの第2のレジスタ部分に記憶された第2のシフトされたデータ要素に対してスライディングウィンドウ演算を実行するステップであって、前記第1のレーンが前記複数のSIMDレーンに含まれる、ステップをさらに含む、請求項11に記載の方法。
  21. 前記第1のレーンによって実行される前記スライディングウィンドウ演算と前記第2のSIMDレーンによって実行される前記スライディングウィンドウ演算が並行して実行される、請求項20に記載の方法。
  22. 前記シフトされたデータ要素を前記第2のレジスタに供給するステップをさらに含む、請求項11に記載の方法。
  23. 入力データ要素のシーケンスを記憶するための第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の位置と異なる位置を有する、手段と
    を備える、装置。
  24. 前記第1の入力データ要素は、第1のデータ要素から始まって第Nのデータ要素で終わるN個のデータ要素を含み、前記第1のシフトされた入力データ要素は、第(N+1)のデータ要素から始まって第2*Nのデータ要素で終わるN個のデータ要素を含み、Nが前記スライディングウィンドウ演算を実行するための手段の前記レーン幅に対応する、請求項23に記載の装置。
  25. 前記スライディングウィンドウ演算を実行するための手段は、命令に基づいて、前記記憶するための第1の手段の前記第1の部分における前記第1の入力データ要素、前記記憶するための第2の手段の前記第1の部分における前記第1のシフトされたデータ要素、またはそれらの任意の組合せに対して同時にスライディングウィンドウ演算を実行する、請求項23に記載の装置。
  26. 前記記憶するための第1の手段の前記第1の部分における前記第1の入力データ要素および前記記憶するための第2の手段の前記第1の部分における前記第1のシフトされたデータ要素は、前記命令の命令コードにおける即値フィールドに基づいて選択される、請求項25に記載の装置。
  27. データ要素を供給するための手段であって、前記記憶するための第1の手段の前記第1の部分における前記第1の入力データ要素のうちの1つを算術および論理ユニット(ALU)に供給するように構成される、手段と、
    データ要素を供給するための第2の手段であって、前記記憶するための第2の手段の前記第1の部分における前記第1のシフトされたデータ要素のうちの1つを前記ALUに供給するように構成される、手段と
    をさらに備える、請求項23に記載の装置。
  28. 前記記憶するための第1の手段の前記第2の部分に記憶された前記第2の入力データ要素および前記記憶するための第2の手段の第2の部分に記憶された第2のシフトされたデータ要素に対してスライディングウィンドウ演算を実行するための第2の手段をさらに備える、請求項23に記載の装置。
  29. 命令を含む非一時的コンピュータ可読記憶媒体であって、前記命令は、プロセッサによって実行されたときに、前記プロセッサに、
    第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の位置と異なる位置を有する、実行することと
    を行わせる、非一時的コンピュータ可読記憶媒体。
  30. 前記第1の入力データ要素は、第1のデータ要素から始まって第Nのデータ要素で終わるN個のデータ要素を含み、前記第1のシフトされた入力データ要素は、第(N+1)のデータ要素から始まって第2*Nのデータ要素で終わるN個のデータ要素を含み、Nが前記SIMD処理回路の前記レーン幅に対応する、請求項29に記載の非一時的コンピュータ可読記憶媒体。
JP2018502081A 2015-07-20 2016-07-11 スライディングウィンドウ演算 Active JP6737869B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 哈尔滨工业大学 定点向量处理器及其向量数据访存控制方法

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)