CN109313548B - 用于执行simd收集和复制操作的方法和设备 - Google Patents

用于执行simd收集和复制操作的方法和设备 Download PDF

Info

Publication number
CN109313548B
CN109313548B CN201780035161.6A CN201780035161A CN109313548B CN 109313548 B CN109313548 B CN 109313548B CN 201780035161 A CN201780035161 A CN 201780035161A CN 109313548 B CN109313548 B CN 109313548B
Authority
CN
China
Prior art keywords
memory
processor
data elements
source addresses
buffer
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
CN201780035161.6A
Other languages
English (en)
Chinese (zh)
Other versions
CN109313548A (zh
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN109313548A publication Critical patent/CN109313548A/zh
Application granted granted Critical
Publication of CN109313548B publication Critical patent/CN109313548B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0673Single storage device
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3017Runtime instruction translation, e.g. macros
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System (AREA)
  • Display Devices Of Pinball Game Machines (AREA)
  • Image Processing (AREA)
CN201780035161.6A 2016-06-24 2017-06-06 用于执行simd收集和复制操作的方法和设备 Active CN109313548B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/192,992 US20170371657A1 (en) 2016-06-24 2016-06-24 Scatter to gather operation
US15/192,992 2016-06-24
PCT/US2017/036041 WO2017222798A1 (en) 2016-06-24 2017-06-06 Method and apparatus for performing simd gather and copy operations

Publications (2)

Publication Number Publication Date
CN109313548A CN109313548A (zh) 2019-02-05
CN109313548B true CN109313548B (zh) 2023-05-26

Family

ID=59054330

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780035161.6A Active CN109313548B (zh) 2016-06-24 2017-06-06 用于执行simd收集和复制操作的方法和设备

Country Status (8)

Country Link
US (1) US20170371657A1 (enExample)
EP (1) EP3475808B1 (enExample)
JP (1) JP7134100B2 (enExample)
KR (1) KR102507275B1 (enExample)
CN (1) CN109313548B (enExample)
ES (1) ES2869865T3 (enExample)
SG (1) SG11201810051VA (enExample)
WO (1) WO2017222798A1 (enExample)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10795678B2 (en) * 2018-04-21 2020-10-06 Microsoft Technology Licensing, Llc Matrix vector multiplier with a vector register file comprising a multi-port memory
US10782918B2 (en) * 2018-09-06 2020-09-22 Advanced Micro Devices, Inc. Near-memory data-dependent gather and packing
KR102811045B1 (ko) 2020-03-06 2025-05-21 삼성전자주식회사 데이터 버스, 그것의 데이터 처리 방법 및 데이터 처리 장치
US12443412B2 (en) 2022-01-30 2025-10-14 Simplex Micro, Inc. Method and apparatus for a scalable microprocessor with time counter
US12190116B2 (en) 2022-04-05 2025-01-07 Simplex Micro, Inc. Microprocessor with time count based instruction execution and replay
US12288065B2 (en) 2022-04-29 2025-04-29 Simplex Micro, Inc. Microprocessor with odd and even register sets
US12282772B2 (en) * 2022-07-13 2025-04-22 Simplex Micro, Inc. Vector processor with vector data buffer

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5887183A (en) * 1995-01-04 1999-03-23 International Business Machines Corporation Method and system in a data processing system for loading and storing vectors in a plurality of modes
US6513107B1 (en) * 1999-08-17 2003-01-28 Nec Electronics, Inc. Vector transfer system generating address error exception when vector to be transferred does not start and end on same memory page
WO2007071606A2 (en) * 2005-12-22 2007-06-28 International Business Machines Corporation Cache injection using semi-synchronous memory copy operation
JP2007172609A (ja) * 2005-12-22 2007-07-05 Internatl Business Mach Corp <Ibm> 効率的かつ柔軟なメモリ・コピー動作
WO2010088129A1 (en) * 2009-01-30 2010-08-05 Mips Technologies, Inc. System and method for improving memory transfer
CN102124443A (zh) * 2008-08-15 2011-07-13 飞思卡尔半导体公司 在单指令多数据(simd)数据处理器中提供扩展寻址模式
CN104303142A (zh) * 2012-06-02 2015-01-21 英特尔公司 使用索引阵列和有限状态机的分散
CN104937539A (zh) * 2012-11-28 2015-09-23 英特尔公司 用于提供推入缓冲器复制和存储功能的指令和逻辑

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5761706A (en) * 1994-11-01 1998-06-02 Cray Research, Inc. Stream buffers for high-performance computer memory system
US8432409B1 (en) * 2005-12-23 2013-04-30 Globalfoundries Inc. Strided block transfer instruction
US20120060016A1 (en) * 2010-09-07 2012-03-08 International Business Machines Corporation Vector Loads from Scattered Memory Locations
US8635431B2 (en) * 2010-12-08 2014-01-21 International Business Machines Corporation Vector gather buffer for multiple address vector loads
US8972697B2 (en) * 2012-06-02 2015-03-03 Intel Corporation Gather using index array and finite state machine
US10049061B2 (en) * 2012-11-12 2018-08-14 International Business Machines Corporation Active memory device gather, scatter, and filter
JP6253514B2 (ja) * 2014-05-27 2017-12-27 ルネサスエレクトロニクス株式会社 プロセッサ

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5887183A (en) * 1995-01-04 1999-03-23 International Business Machines Corporation Method and system in a data processing system for loading and storing vectors in a plurality of modes
US6513107B1 (en) * 1999-08-17 2003-01-28 Nec Electronics, Inc. Vector transfer system generating address error exception when vector to be transferred does not start and end on same memory page
WO2007071606A2 (en) * 2005-12-22 2007-06-28 International Business Machines Corporation Cache injection using semi-synchronous memory copy operation
JP2007172609A (ja) * 2005-12-22 2007-07-05 Internatl Business Mach Corp <Ibm> 効率的かつ柔軟なメモリ・コピー動作
CN102124443A (zh) * 2008-08-15 2011-07-13 飞思卡尔半导体公司 在单指令多数据(simd)数据处理器中提供扩展寻址模式
WO2010088129A1 (en) * 2009-01-30 2010-08-05 Mips Technologies, Inc. System and method for improving memory transfer
CN104303142A (zh) * 2012-06-02 2015-01-21 英特尔公司 使用索引阵列和有限状态机的分散
CN104937539A (zh) * 2012-11-28 2015-09-23 英特尔公司 用于提供推入缓冲器复制和存储功能的指令和逻辑

Also Published As

Publication number Publication date
US20170371657A1 (en) 2017-12-28
JP2019525294A (ja) 2019-09-05
JP7134100B2 (ja) 2022-09-09
KR102507275B1 (ko) 2023-03-06
ES2869865T3 (es) 2021-10-26
BR112018076270A2 (pt) 2019-03-26
WO2017222798A1 (en) 2017-12-28
CN109313548A (zh) 2019-02-05
EP3475808A1 (en) 2019-05-01
SG11201810051VA (en) 2019-01-30
BR112018076270A8 (pt) 2023-01-31
EP3475808B1 (en) 2021-04-14
KR20190020672A (ko) 2019-03-04

Similar Documents

Publication Publication Date Title
CN109313548B (zh) 用于执行simd收集和复制操作的方法和设备
US9678758B2 (en) Coprocessor for out-of-order loads
JP5758515B2 (ja) バイパスマルチプルインスタンス化テーブルを用いた移動除去のためのシステム及び方法
US8074060B2 (en) Out-of-order execution microprocessor that selectively initiates instruction retirement early
JP6306729B2 (ja) ストアをソート及びリタイアする命令及びロジック
CN105359089B (zh) 用于在微处理器中进行选择性重命名的方法和设备
EP2984557B1 (en) Systems and methods for flag tracking in move elimination operations
JP5209933B2 (ja) データ処理装置
JP2018519602A (ja) 連続ブロックの並列実行を有するブロックベースアーキテクチャ
JP2010532063A (ja) 条件命令を無条件命令および選択命令へと拡張する方法およびシステム
CN109564546B (zh) 通过绕过加载存储单元来跟踪存储和加载
CN106164810A (zh) 使用基于电压的功能的性能变化的指令优化
JP6911102B2 (ja) アドレス生成時のロード及びストアキューの割り当てのためのシステム及び方法
US20130339689A1 (en) Later stage read port reduction
CN107111487A (zh) 在乱序(ooo)处理器中提供早期指令执行,以及相关设备、方法和计算机可读媒体
CN114787772B (zh) 用于微处理器中累加寄存器结果的指令处理
WO2014190699A1 (zh) 一种cpu指令处理方法和处理器
HK1260879A1 (en) Method and apparatus for performing simd gather and copy operations
WO2022063269A1 (en) Method and apparatus for configurable hardware accelerator
CN115794229A (zh) 指令处理装置、方法、处理器系统以及设备
BR112018076270B1 (pt) Método e aparelho para realizar operações de coleta e cópia simd
US10983799B1 (en) Selection of instructions to issue in a processor
CN116134418A (zh) 在处理器中的指令流水线中插入代理读取指令
US20140075140A1 (en) Selective control for commit lines for shadowing data in storage elements

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1260879

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant