JP2016511470A5 - - Google Patents
Download PDFInfo
- Publication number
- JP2016511470A5 JP2016511470A5 JP2015558998A JP2015558998A JP2016511470A5 JP 2016511470 A5 JP2016511470 A5 JP 2016511470A5 JP 2015558998 A JP2015558998 A JP 2015558998A JP 2015558998 A JP2015558998 A JP 2015558998A JP 2016511470 A5 JP2016511470 A5 JP 2016511470A5
- Authority
- JP
- Japan
- Prior art keywords
- register
- processor
- vrf
- vector
- alignment
- 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 (23)
- ベクトルアライメント命令を実行するための方法であって、
第1のプロセッサ上の開始場所に、前記第1のプロセッサと第2のプロセッサとの間で共有されたスカラーレジスタファイル内のレジスタからアクセスするステップと、
前記第2のプロセッサ上で、ベクトルレジスタファイル(VRF)のレジスタ内の前記開始場所で始まる1組のデータ値を、前記VRFの標的レジスタに1組のアライメントされたデータ値として記憶されるようにアライメントするステップと、
前記VRFの標的レジスタに前記アライメントされた1組のデータ値を記憶するステップとを含む方法。 - 前記スカラーレジスタファイルの前記レジスタ、および前記標的レジスタは、前記ベクトルアライメント命令内で指定され、前記VRFの前記レジスタは、ベクトルユニット(Vu)ベースレジスタに記憶された値によって間接的に識別される、請求項1に記載の方法。
- スパンビットが、前記VRFの第1のレジスタ群のうちの第1のレジスタまたは前記VRFの第2のレジスタ群のうちの第2のレジスタを前記VRFの前記レジスタとして選択する、請求項1に記載の方法。
- 前記スパンビットは前記開始場所の最上位ビットである、請求項3に記載の方法。
- 前記第1のレジスタ群のうちの前記第1のレジスタは、前記ベクトルアライメント命令のVuフィールドによって識別され、前記第1のレジスタ群のそれ以外のレジスタは、レジスタの命令指定による順序付けに従って識別される、請求項3に記載の方法。
- 前記第1のプロセッサは汎用(GP)プロセッサであり、前記第2のプロセッサは単一命令多重データ(SIMD)ベクトルプロセッサである、請求項1に記載の方法。
- 前記第1のプロセッサ上の演算に影響を及ぼすことなく開始場所のアクセスが発生可能なように、前記スカラーレジスタファイルの前記レジスタが、前記第2のプロセッサに割り当てられたデータポートを通じて共有される、請求項1に記載の方法。
- 前記第1のプロセッサ上で作成され、前記第1のプロセッサの前記スカラーレジスタファイル内の前記レジスタに記憶され、かつ前記第1のプロセッサと前記第2のプロセッサとの間で共有される値からスパンビットおよび前記開始場所にアクセスするステップと、
前記第2のプロセッサ上で前記ベクトルレジスタファイル(VRF)の1組のレジスタ内の前記開始場所で始まる前記1組のデータ値を、前記VRFの標的レジスタの組に前記1組のアライメントされたデータ値として記憶されるようにアライメントするステップであって、前記VRFの前記1組のレジスタは前記スパンビットに基づいて第1のレジスタセットまたは第2のレジスタセットとして選択される、アライメントするステップと、
をさらに含む、請求項1に記載の方法。 - 前記第1のレジスタセットは、Vu識別されたレジスタで始まるリニアプラスワン順序付けにおける3つのレジスタからなる組であるとともに前記第2のレジスタセットは、Vu+k識別されたレジスタで始まるリニアプラスkプラスワン順序付けにおける3つのレジスタからなる組であり、かつkは前記アライメント命令によって1以上の整数となるように指定される、請求項8に記載の方法。
- 前記第1のレジスタセットは、Vu識別されたレジスタで始まるリニアプラスツー順序付けにおける3つのレジスタからなる組であるとともに前記第2のレジスタセットは、Vu+k識別されたレジスタで始まるリニアプラスkプラスツー順序付けにおける3つのレジスタからなる組であり、かつkは前記アライメント命令によって1以上の整数となるように指定される、請求項8に記載の方法。
- 前記第1のレジスタセットはVu、Vu+P1、Vu+P2であり、前記第2のレジスタセットはVu+P1、Vu+P2、Vu+P3であり、かつP1、P2、P3はアクセス可能なVRFレジスタの範囲内に来るように前記アライメント命令によって指定された素数である、請求項8に記載の方法。
- ベクトルアライメントおよび演算命令を実行するための方法であって、
第1のプロセッサ上で作成された開始場所に対して、前記第1のプロセッサと第2のプロセッサとの間で共有されたスカラーレジスタファイル内のレジスタからアクセスするステップと、
前記第2のプロセッサ上でベクトルレジスタファイル(VRF)のレジスタ内の前記開始場所で始まる1組のデータ値を、1組のアライメントされたデータ値が作成されるようにアライメントするステップと、
前記VRFの標的レジスタに記憶される結果を作成するために前記アライメントされたデータ値に対して前記ベクトルアライメントおよび演算命令に従って演算をするステップと、
を含む方法。 - 前記第1のプロセッサ上の演算に影響を及ぼすことなく前記開始場所の前記アクセスが発生可能なように、前記スカラーレジスタファイル内の前記レジスタが、前記第2のプロセッサに割り当てられたデータポートを通じて共有される、請求項12に記載の方法。
- 前記スカラーレジスタファイル内の前記レジスタ、および前記標的レジスタは、前記ベクトルアライメントおよび演算命令において指定され、前記VRFの前記レジスタはベクトルユニット(Vu)ベースレジスタに記憶された値によって間接的に識別される、請求項12に記載の方法。
- ベクトルマスクアライメント命令を実行するための方法であって、
第1のプロセッサ上で作成されたマスクおよび開始場所に対して、前記第1のプロセッサと第2のプロセッサとの間で共有されたスカラーレジスタファイル内の第1のレジスタおよび第2のレジスタからアクセスするステップと、
前記マスク内のイネーブルビットに従って前記第2のプロセッサ上でベクトルレジスタファイル(VRF)の1組のレジスタを識別するように前記マスクを適用するステップと、
第2のプロセッサ上で前記VRFの前記識別された1組のレジスタ内の前記開始場所で始まる1組のデータ値を、前記VRFの標的レジスタの組に1組のアライメントされたデータ値として記憶されるようにアライメントするステップと、
前記VRFの標的レジスタの組に前記アライメントされた1組のデータ値を記憶するステップと
を含む方法。 - 前記第1のプロセッサ上の演算に影響を及ぼすことなく前記マスクおよび前記開始場所の前記アクセスが発生可能なように、前記第1のレジスタおよび前記第2のレジスタが、前記第2のプロセッサに割り当てられたデータポートを通じて共有される、請求項15に記載の方法。
- ベクトルアライメント命令を実行するための装置であって、
1つまたは複数のレジスタ値を第2のプロセッサと共有するように構成された第1のプロセッサと関連付けされたスカラーレジスタファイルであって、前記1つまたは複数のレジスタ値はベクトルアライメント命令において指定されたRtアドレスに従って前記スカラーレジスタファイルからアクセスされる、スカラーレジスタファイルと、
ベクトルレジスタファイル(VRF)の複数のレジスタ内の識別されたデータを、前記ベクトルアライメント命令、および前記1つまたは複数のレジスタ値から決定されたアライメント開始場所に従ってアライメントするように構成された前記第2のプロセッサ内のアライメント回路と、
前記アライメント回路から前記アライメントされたデータを選択し、前記ベクトルアライメント命令によって指定されたアライメント記憶アドレスに従って、前記アライメントされたデータを前記ベクトルレジスタファイル内に記憶するように構成された記憶回路と、
を備える装置。 - 前記開始場所は前記複数のレジスタの開始レジスタ内にある、請求項17に記載の装置。
- ダブルアライメント命令は、スパンコードの状態に従って前記VRFの第1のレジスタセットまたは第2のレジスタセットを識別するために、前記1つまたは複数のレジスタ値から選択された前記スパンコードを指定する、請求項17に記載の装置。
- マスクアライメント命令が、マスク内の1つまたは複数のイネーブルビットに従って、前記VRFから選択される1つまたは複数のレジスタ内に記憶されたデータのアライメントを識別するために、前記1つまたは複数のレジスタ値から選択されるマスクを指定する、請求項17に記載の装置。
- 前記第1のプロセッサ上の演算に影響を及ぼすことなく前記レジスタ値の前記アクセスが発生可能なように、前記第1のプロセッサ内の前記スカラーレジスタファイルからアクセスされる前記1つまたは複数のレジスタ値が、前記第2のプロセッサに割り当てられたデータポートを通じて共有される、請求項17に記載の装置。
- コンピュータ読取り可能なプログラムデータおよびコードによって符号化されたコンピュータ可読記憶媒体であって、前記プログラムデータおよびコードは実行時に、
第1のプロセッサ上の開始場所に対して、前記第1のプロセッサと第2のプロセッサとの間で共有されたスカラーレジスタファイル内のレジスタからアクセスすること、
第2のプロセッサ上でベクトルレジスタファイル(VRF)のレジスタ内の前記開始場所で始まる1組のデータ値を、前記VRF内の標的レジスタに1組のアライメントされたデータ値として記憶されるようにアライメントすること、および
前記VRFの標的レジスタに前記アライメントされた1組のデータ値を記憶すること
を行うように動作可能である、コンピュータ可読記憶媒体。 - ベクトルアライメント命令を実行するための装置であって、
第1のプロセッサ内のスカラーレジスタファイルからアクセスされる1つまたは複数のレジスタ値を第2のプロセッサと共有するための手段であって、前記1つまたは複数のレジスタ値はベクトルアライメント命令において指定されたRtアドレスに従ってアクセスされ、前記共有されたレジスタ値のうちの1つから開始場所が決定される、共有するための手段と、
前記ベクトルアライメント命令に従って、ベクトルレジスタファイル(VRF)の開始Vuレジスタ内の前記開始場所と前記VRFの最終Vuレジスタの終了場所との間で識別された前記第2のプロセッサ内のデータをアライメントするための手段と、
アライメント回路から前記アライメントされたデータを選択するとともに前記ベクトルアライメント命令によって指定されたアライメント記憶アドレスに従って前記アライメントされたデータを前記ベクトルレジスタファイル内に記憶するための手段と、
を備える装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/777,297 US9632781B2 (en) | 2013-02-26 | 2013-02-26 | Vector register addressing and functions based on a scalar register data value |
US13/777,297 | 2013-02-26 | ||
PCT/US2014/017713 WO2014133895A2 (en) | 2013-02-26 | 2014-02-21 | Vector register addressing and functions based on a scalar register data value |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2016511470A JP2016511470A (ja) | 2016-04-14 |
JP2016511470A5 true JP2016511470A5 (ja) | 2017-06-29 |
JP6293795B2 JP6293795B2 (ja) | 2018-03-14 |
Family
ID=50272743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015558998A Expired - Fee Related JP6293795B2 (ja) | 2013-02-26 | 2014-02-21 | スカラーレジスタデータ値に基づいたベクトルレジスタアドレス指定および関数 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9632781B2 (ja) |
EP (1) | EP2962187B1 (ja) |
JP (1) | JP6293795B2 (ja) |
KR (1) | KR101753900B1 (ja) |
CN (1) | CN104981771B (ja) |
WO (1) | WO2014133895A2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10001995B2 (en) | 2015-06-02 | 2018-06-19 | Intel Corporation | Packed data alignment plus compute instructions, processors, methods, and systems |
US20170177355A1 (en) * | 2015-12-18 | 2017-06-22 | Intel Corporation | Instruction and Logic for Permute Sequence |
US11243958B2 (en) | 2015-12-31 | 2022-02-08 | Teradata Us, Inc. | Implementing contract-based polymorphic and parallelizable SQL user-defined scalar and aggregate functions |
US10762164B2 (en) | 2016-01-20 | 2020-09-01 | Cambricon Technologies Corporation Limited | Vector and matrix computing device |
CN106990940B (zh) * | 2016-01-20 | 2020-05-22 | 中科寒武纪科技股份有限公司 | 一种向量计算装置及运算方法 |
US10296337B2 (en) * | 2016-03-21 | 2019-05-21 | International Business Machines Corporation | Preventing premature reads from a general purpose register |
GB2548600B (en) * | 2016-03-23 | 2018-05-09 | Advanced Risc Mach Ltd | Vector predication instruction |
CN111651205B (zh) * | 2016-04-26 | 2023-11-17 | 中科寒武纪科技股份有限公司 | 一种用于执行向量内积运算的装置和方法 |
US20180217838A1 (en) * | 2017-02-01 | 2018-08-02 | Futurewei Technologies, Inc. | Ultra lean vector processor |
KR102343652B1 (ko) | 2017-05-25 | 2021-12-24 | 삼성전자주식회사 | 벡터 프로세서의 서열 정렬 방법 |
CN114008604A (zh) * | 2020-07-28 | 2022-02-01 | 深圳市汇顶科技股份有限公司 | 具有专用寄存器的risc处理器 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5922066A (en) | 1997-02-24 | 1999-07-13 | Samsung Electronics Co., Ltd. | Multifunction data aligner in wide data width processor |
US5933650A (en) * | 1997-10-09 | 1999-08-03 | Mips Technologies, Inc. | Alignment and ordering of vector elements for single instruction multiple data processing |
US7197625B1 (en) | 1997-10-09 | 2007-03-27 | Mips Technologies, Inc. | Alignment and ordering of vector elements for single instruction multiple data processing |
GB2372848B (en) | 2001-02-20 | 2004-10-27 | Advanced Risc Mach Ltd | Data processing using a coprocessor |
GB2382673B (en) | 2001-10-31 | 2005-10-26 | Alphamosaic Ltd | A vector processing system |
US7376812B1 (en) | 2002-05-13 | 2008-05-20 | Tensilica, Inc. | Vector co-processor for configurable and extensible processor architecture |
US6986023B2 (en) * | 2002-08-09 | 2006-01-10 | Intel Corporation | Conditional execution of coprocessor instruction based on main processor arithmetic flags |
AU2003256870A1 (en) * | 2002-08-09 | 2004-02-25 | Intel Corporation | Multimedia coprocessor control mechanism including alignment or broadcast instructions |
GB2409066B (en) * | 2003-12-09 | 2006-09-27 | Advanced Risc Mach Ltd | A data processing apparatus and method for moving data between registers and memory |
US7574409B2 (en) | 2004-11-04 | 2009-08-11 | Vericept Corporation | Method, apparatus, and system for clustering and classification |
US7620797B2 (en) | 2006-11-01 | 2009-11-17 | Apple Inc. | Instructions for efficiently accessing unaligned vectors |
GB2444744B (en) | 2006-12-12 | 2011-05-25 | Advanced Risc Mach Ltd | Apparatus and method for performing re-arrangement operations on data |
US8255446B2 (en) * | 2006-12-12 | 2012-08-28 | Arm Limited | Apparatus and method for performing rearrangement and arithmetic operations on data |
US7783860B2 (en) | 2007-07-31 | 2010-08-24 | International Business Machines Corporation | Load misaligned vector with permute and mask insert |
US20090172348A1 (en) * | 2007-12-26 | 2009-07-02 | Robert Cavin | Methods, apparatus, and instructions for processing vector data |
US10387151B2 (en) | 2007-12-31 | 2019-08-20 | Intel Corporation | Processor and method for tracking progress of gathering/scattering data element pairs in different cache memory banks |
US7865693B2 (en) | 2008-10-14 | 2011-01-04 | International Business Machines Corporation | Aligning precision converted vector data using mask indicating offset relative to element boundary corresponding to precision type |
US8607033B2 (en) | 2010-09-03 | 2013-12-10 | Lsi Corporation | Sequentially packing mask selected bits from plural words in circularly coupled register pair for transferring filled register bits to memory |
US8904153B2 (en) | 2010-09-07 | 2014-12-02 | International Business Machines Corporation | Vector loads with multiple vector elements from a same cache line in a scattered load operation |
US20120254589A1 (en) * | 2011-04-01 | 2012-10-04 | Jesus Corbal San Adrian | System, apparatus, and method for aligning registers |
-
2013
- 2013-02-26 US US13/777,297 patent/US9632781B2/en active Active
-
2014
- 2014-02-21 CN CN201480008139.9A patent/CN104981771B/zh active Active
- 2014-02-21 EP EP14709827.1A patent/EP2962187B1/en active Active
- 2014-02-21 KR KR1020157025988A patent/KR101753900B1/ko active IP Right Grant
- 2014-02-21 WO PCT/US2014/017713 patent/WO2014133895A2/en active Application Filing
- 2014-02-21 JP JP2015558998A patent/JP6293795B2/ja not_active Expired - Fee Related
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2016511470A5 (ja) | ||
US10133570B2 (en) | Processors, methods, systems, and instructions to select and consolidate active data elements in a register under mask into a least significant portion of result, and to indicate a number of data elements consolidated | |
JP2016526220A5 (ja) | ||
JP2013175218A5 (ja) | ||
JP2019504403A5 (ja) | ||
JP2012194992A5 (ja) | データ処理装置、プログラム、データ構造、データ処理システム、パケットデータ、記録媒体、記憶装置、データ処理方法、データ通信方法および命令セット | |
JP2017529591A5 (ja) | ||
JP2015201216A5 (ja) | ||
JP2016537726A5 (ja) | ||
JP2014194770A5 (ja) | ||
WO2014133895A3 (en) | Vector register addressing and functions based on a scalar register data value | |
JP2017535842A5 (ja) | ||
JP2016515265A5 (ja) | ||
JP2015534169A5 (ja) | ||
KR101787615B1 (ko) | 단일 명령어에 응답하여 회전 및 xor을 수행하기 위한 시스템들, 장치들, 및 방법들 | |
JP2015532748A5 (ja) | ||
JP2016530631A (ja) | ベクトルの算術的削減 | |
JP2018505506A5 (ja) | ||
JP2013536487A5 (ja) | ||
WO2017185385A1 (zh) | 一种用于执行向量合并运算的装置和方法 | |
EP3343359A1 (en) | Apparatus and method for processing sparse data | |
JP2013536486A5 (ja) | ||
RU2015151125A (ru) | Процессоры, способы и системы для осуществления доступа к набору регистров либо как к множеству малых регистров, либо как к объединенному большому регистру | |
JP2017532657A5 (ja) | ||
US20180203692A1 (en) | Vector arithmetic instruction |