KR101660659B1 - 멀티-스레딩된 프로세싱 시스템에서의 서브루틴들의 실행 - Google Patents

멀티-스레딩된 프로세싱 시스템에서의 서브루틴들의 실행 Download PDF

Info

Publication number
KR101660659B1
KR101660659B1 KR1020157007715A KR20157007715A KR101660659B1 KR 101660659 B1 KR101660659 B1 KR 101660659B1 KR 1020157007715 A KR1020157007715 A KR 1020157007715A KR 20157007715 A KR20157007715 A KR 20157007715A KR 101660659 B1 KR101660659 B1 KR 101660659B1
Authority
KR
South Korea
Prior art keywords
minrc
value
program
subroutine
instruction
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
KR1020157007715A
Other languages
English (en)
Korean (ko)
Other versions
KR20150054858A (ko
Inventor
린 천
Original Assignee
퀄컴 인코포레이티드
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 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20150054858A publication Critical patent/KR20150054858A/ko
Application granted granted Critical
Publication of KR101660659B1 publication Critical patent/KR101660659B1/ko
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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/323Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
    • 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3888Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple threads [SIMT] in parallel
    • 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3888Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple threads [SIMT] in parallel
    • G06F9/38885Divergence aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
KR1020157007715A 2012-09-10 2013-08-08 멀티-스레딩된 프로세싱 시스템에서의 서브루틴들의 실행 Active KR101660659B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/608,668 2012-09-10
US13/608,668 US9229721B2 (en) 2012-09-10 2012-09-10 Executing subroutines in a multi-threaded processing system
PCT/US2013/054148 WO2014039206A1 (en) 2012-09-10 2013-08-08 Executing subroutines in a multi-threaded processing system

Publications (2)

Publication Number Publication Date
KR20150054858A KR20150054858A (ko) 2015-05-20
KR101660659B1 true KR101660659B1 (ko) 2016-09-27

Family

ID=49004016

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157007715A Active KR101660659B1 (ko) 2012-09-10 2013-08-08 멀티-스레딩된 프로세싱 시스템에서의 서브루틴들의 실행

Country Status (6)

Country Link
US (1) US9229721B2 (enExample)
EP (1) EP2893434B1 (enExample)
JP (1) JP6073479B2 (enExample)
KR (1) KR101660659B1 (enExample)
CN (1) CN104603749B (enExample)
WO (1) WO2014039206A1 (enExample)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8832417B2 (en) 2011-09-07 2014-09-09 Qualcomm Incorporated Program flow control for multiple divergent SIMD threads using a minimum resume counter
US9256429B2 (en) 2012-08-08 2016-02-09 Qualcomm Incorporated Selectively activating a resume check operation in a multi-threaded processing system
US9619230B2 (en) * 2013-06-28 2017-04-11 International Business Machines Corporation Predictive fetching and decoding for selected instructions
US9582321B2 (en) * 2013-11-08 2017-02-28 Swarm64 As System and method of data processing
FR3013869B1 (fr) * 2013-11-22 2016-01-01 Thales Sa Procede de detection des debordements de pile et processeur pour la mise en oeuvre d'un tel procede
US10133572B2 (en) * 2014-05-02 2018-11-20 Qualcomm Incorporated Techniques for serialized execution in a SIMD processing system
GB2529899B (en) * 2014-09-08 2021-06-23 Advanced Risc Mach Ltd Shared Resources in a Data Processing Apparatus for Executing a Plurality of Threads
US9928076B2 (en) * 2014-09-26 2018-03-27 Intel Corporation Method and apparatus for unstructured control flow for SIMD execution engine
US9766892B2 (en) * 2014-12-23 2017-09-19 Intel Corporation Method and apparatus for efficient execution of nested branches on a graphics processor unit
US9921838B2 (en) * 2015-10-02 2018-03-20 Mediatek Inc. System and method for managing static divergence in a SIMD computing architecture
US9928117B2 (en) 2015-12-11 2018-03-27 Vivante Corporation Hardware access counters and event generation for coordinating multithreaded processing
FR3082331B1 (fr) * 2018-06-08 2020-09-18 Commissariat Energie Atomique Processeur mimd emule sur architecture simd
US12405790B2 (en) * 2019-06-28 2025-09-02 Advanced Micro Devices, Inc. Compute unit sorting for reduced divergence
US12314760B2 (en) * 2021-09-27 2025-05-27 Advanced Micro Devices, Inc. Garbage collecting wavefront
US20250306946A1 (en) * 2024-03-27 2025-10-02 Advanced Micro Devices, Inc. Independent progress of lanes in a vector processor

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004206692A (ja) 2002-12-20 2004-07-22 Internatl Business Mach Corp <Ibm> マルチスレッド化プロセッサ・システム上での実行のために、スレッドについての優先順位値を決定する方法および装置
US20100257534A1 (en) 2004-11-24 2010-10-07 Cismas Sorin C Hardware Multithreading Systems and Methods
US20110113222A1 (en) 2001-06-22 2011-05-12 Intel Corporation Method and apparatus for assigning thread priority in a processor or the like

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4435758A (en) 1980-03-10 1984-03-06 International Business Machines Corporation Method for conditional branch execution in SIMD vector processors
US5522083A (en) * 1989-11-17 1996-05-28 Texas Instruments Incorporated Reconfigurable multi-processor operating in SIMD mode with one processor fetching instructions for use by remaining processors
GB2273377A (en) 1992-12-11 1994-06-15 Hughes Aircraft Co Multiple masks for array processors
US5689677A (en) 1995-06-05 1997-11-18 Macmillan; David C. Circuit for enhancing performance of a computer for personal use
US5938762A (en) * 1995-10-06 1999-08-17 Denso Corporation Method and apparatus for performing exception processing routine in pipeline processing
US6272616B1 (en) * 1998-06-17 2001-08-07 Agere Systems Guardian Corp. Method and apparatus for executing multiple instruction streams in a digital processor with multiple data paths
US6889319B1 (en) 1999-12-09 2005-05-03 Intel Corporation Method and apparatus for entering and exiting multiple threads within a multithreaded processor
US6947047B1 (en) 2001-09-20 2005-09-20 Nvidia Corporation Method and system for programmable pipelined graphics processing with branching instructions
US20050050305A1 (en) 2003-08-28 2005-03-03 Kissell Kevin D. Integrated mechanism for suspension and deallocation of computational threads of execution in a processor
US7477255B1 (en) 2004-04-12 2009-01-13 Nvidia Corporation System and method for synchronizing divergent samples in a programmable graphics processing unit
US7890734B2 (en) * 2004-06-30 2011-02-15 Open Computing Trust I & II Mechanism for selecting instructions for execution in a multithreaded processor
US7890735B2 (en) 2004-08-30 2011-02-15 Texas Instruments Incorporated Multi-threading processors, integrated circuit devices, systems, and processes of operation and manufacture
US7761697B1 (en) 2005-07-13 2010-07-20 Nvidia Corporation Processing an indirect branch instruction in a SIMD architecture
US7543136B1 (en) 2005-07-13 2009-06-02 Nvidia Corporation System and method for managing divergent threads using synchronization tokens and program instructions that include set-synchronization bits
US7353369B1 (en) * 2005-07-13 2008-04-01 Nvidia Corporation System and method for managing divergent threads in a SIMD architecture
US7788468B1 (en) 2005-12-15 2010-08-31 Nvidia Corporation Synchronization of threads in a cooperative thread array
JP2007272353A (ja) 2006-03-30 2007-10-18 Nec Electronics Corp プロセッサ装置及び複合条件処理方法
US7617384B1 (en) 2006-11-06 2009-11-10 Nvidia Corporation Structured programming control flow using a disable mask in a SIMD architecture
US8312254B2 (en) * 2008-03-24 2012-11-13 Nvidia Corporation Indirect function call instructions in a synchronous parallel thread processor
US8438554B1 (en) * 2008-12-11 2013-05-07 Nvidia Corporation System, method, and computer program product for removing a synchronization statement
US8615646B2 (en) 2009-09-24 2013-12-24 Nvidia Corporation Unanimous branch instructions in a parallel thread processor
US8539204B2 (en) 2009-09-25 2013-09-17 Nvidia Corporation Cooperative thread array reduction and scan operations
US8850436B2 (en) 2009-09-28 2014-09-30 Nvidia Corporation Opcode-specified predicatable warp post-synchronization
US8832417B2 (en) * 2011-09-07 2014-09-09 Qualcomm Incorporated Program flow control for multiple divergent SIMD threads using a minimum resume counter
US9256429B2 (en) * 2012-08-08 2016-02-09 Qualcomm Incorporated Selectively activating a resume check operation in a multi-threaded processing system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110113222A1 (en) 2001-06-22 2011-05-12 Intel Corporation Method and apparatus for assigning thread priority in a processor or the like
JP2004206692A (ja) 2002-12-20 2004-07-22 Internatl Business Mach Corp <Ibm> マルチスレッド化プロセッサ・システム上での実行のために、スレッドについての優先順位値を決定する方法および装置
US20100257534A1 (en) 2004-11-24 2010-10-07 Cismas Sorin C Hardware Multithreading Systems and Methods

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Collange, Sylvain. Stack-less SIMT reconvergence at low cost. Technical Report HAL-00622654, INRIA, 2011.

Also Published As

Publication number Publication date
KR20150054858A (ko) 2015-05-20
EP2893434B1 (en) 2018-03-21
US9229721B2 (en) 2016-01-05
CN104603749A (zh) 2015-05-06
CN104603749B (zh) 2017-09-19
JP6073479B2 (ja) 2017-02-01
EP2893434A1 (en) 2015-07-15
JP2015531945A (ja) 2015-11-05
US20140075165A1 (en) 2014-03-13
WO2014039206A1 (en) 2014-03-13

Similar Documents

Publication Publication Date Title
KR101660659B1 (ko) 멀티-스레딩된 프로세싱 시스템에서의 서브루틴들의 실행
JP6077117B2 (ja) マルチスレッド処理システムにおけるレジュームチェック動作を選択的にアクティブ化すること
US8832417B2 (en) Program flow control for multiple divergent SIMD threads using a minimum resume counter
JP6800850B2 (ja) 中央処理装置(cpu)と補助プロセッサとの間の改善した関数コールバック機構
US12455745B2 (en) Processor subroutine cache
CN109144686B (zh) 对任务进行调度
CN106233248B (zh) 用于在多线程处理器上执行发散操作的方法和设备
US8572355B2 (en) Support for non-local returns in parallel thread SIMD engine
CN102282537A (zh) 增强大指令宽度处理器的处理效率
US10732976B2 (en) Integrated circuit processor and method of operating the integrated circuit processor in different modes of differing thread counts
CN109144687B (zh) 对任务进行调度
JP2007526571A (ja) Simdデバイスにおける制御フロー管理のための方法及び装置
KR102152735B1 (ko) 그래픽 처리 장치 및 이의 동작 방법
US12086592B2 (en) Processor, processing method, and related device for accelerating graph calculation
CN108628639B (zh) 处理器和指令调度方法
KR20130091113A (ko) 재구성 기반 컴퓨팅 장치의 제1메모리 제어기 및 제2메모리 제어기와, 디버깅용 트레이스 데이터 처리가 가능한 재구성 기반 컴퓨팅 장치
US9983932B2 (en) Pipeline processor and an equal model compensator method and apparatus to store the processing result
US20150363227A1 (en) Data processing unit and method for operating a data processing unit
KR101646768B1 (ko) 이퀄-모델 프로세서를 위한 인터럽트 처리장치 및 처리방법과 그 처리장치를 포함하는 프로세서
JP4151497B2 (ja) パイプライン処理装置
CN117083594A (zh) 用于在矢量处理器中进行去同步化执行的方法和设备
JP2004126948A (ja) 補助演算装置、中央演算装置及び情報処理装置
WO2015136686A1 (ja) 情報処理装置及び方法
KR20140139835A (ko) 카운터 기반 멀티 사이클 프로세서 제어 장치

Legal Events

Date Code Title Description
PA0105 International application

St.27 status event code: A-0-1-A10-A15-nap-PA0105

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

A201 Request for examination
P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

PA0302 Request for accelerated examination

St.27 status event code: A-1-2-D10-D17-exm-PA0302

St.27 status event code: A-1-2-D10-D16-exm-PA0302

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

T11-X000 Administrative time limit extension requested

St.27 status event code: U-3-3-T10-T11-oth-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U12-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000

FPAY Annual fee payment

Payment date: 20190624

Year of fee payment: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 5

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 6

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 7

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 8

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 9

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 10

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000