KR20170051465A - 복수의 쓰레드를 실행하기 위한 데이터 처리장치에서의 공유 자원 - Google Patents
복수의 쓰레드를 실행하기 위한 데이터 처리장치에서의 공유 자원 Download PDFInfo
- Publication number
- KR20170051465A KR20170051465A KR1020177008698A KR20177008698A KR20170051465A KR 20170051465 A KR20170051465 A KR 20170051465A KR 1020177008698 A KR1020177008698 A KR 1020177008698A KR 20177008698 A KR20177008698 A KR 20177008698A KR 20170051465 A KR20170051465 A KR 20170051465A
- Authority
- KR
- South Korea
- Prior art keywords
- thread
- threads
- lock
- instruction
- subset
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/3009—Thread control instructions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent 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]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
도 1은 일 실시 예에 따른 데이터 처리장치를 도시한 것이고,
도 2는 프로그램 카운터 값이 다른 다수의 상이한 쓰레드의 실행 예를 도시한 것이고,
도 3은 S IMT 시스템에서 일어날 수도 있는 코드를 도시한 것이고,
도 4는 도 3의 데드락을 어떻게 방지하는지를 설명하는 제2 코드 예를 도시한 것이고,
도 5는 SIMT 시스템의 쓰레드간에 어떻게 선택이 일어나는지를 흐름도 형태로 도시한 것이고,
도 6은 쓰레드들의 실행 방법을 흐름도 형태로 도시한 것이고,
도 7은 쓰레드들의 서브세트에 대해 유지된 상태 데이터의 다른 예를 나타내고,
도 8은 제3 코드 예를 나타내고,
도 9는 도 7의 상태 데이터를 사용하여 쓰레드 프로그램 카운터를 선택하는 방법을 도시한 흐름도다.
Claims (27)
- 복수의 쓰레드를 실행하도록 구성된 데이터 처리장치로서,
적어도 상기 복수의 쓰레드의 서브세트에 대해 실행되는 명령어들로 이루어진 스트림에서의 하나의 명령어를 식별하는 일반 프로그램 카운터 - 상기 서브세트에서의 각 쓰레드가 상기 명령어들로 이루어진 스트림에서의 하나의 명령어를 식별하는 관련된 쓰레드 프로그램 카운터를 가짐-;
상기 쓰레드들의 상기 서브세트의 선택된 쓰레드를 선택하고, 상기 일반 프로그램 카운터를 상기 선택된 쓰레드와 관련된 상기 쓰레드 프로그램 카운터로 설정하도록 구성된 선택기; 및
상기 선택된 쓰레드를 포함한 상기 쓰레드들의 상기 서브세트의 하나 이상에 대해 상기 일반 프로그램 카운터에 의해 식별된 명령어를 실행하도록 구성된 프로세서를 구비하고,
상기 쓰레드들의 상기 서브세트는 상기 쓰레드들의 상기 서브세트 중 어느 것이 공유 자원에 대한 배타적 액세스를 갖는지를 추적하는 적어도 하나의 록 파라미터와 관련되고;
상기 프로세서는, 쓰레드가 그 쓰레드에 대해 실행된 제1 명령어에 응답하여 상기 공유 자원에 대한 배타적 액세스를 얻었다는 것을 나타내기 위해 상기 적어도 하나의 록 파라미터를 변경하고, 상기 쓰레드가 그 쓰레드에 대해 실행된 제2 명령어에 응답하여 더 이상 상기 공유 자원에 대한 배타적 액세스를 갖지 않는 것을 나타내기 위해 상기 쓰레드와 관련된 상기 적어도 하나의 록 파라미터를 변경하도록 구성되고;
상기 선택기는 상기 적어도 하나의 록 파라미터에 근거하여 상기 선택된 쓰레드를 선택하도록 구성된, 데이터 처리장치.
- 제 1 항에 있어서,
상기 프로세서는, 상기 쓰레드에 대해 실행된 적어도 하나의 록킹 명령어를 포함하는 록킹 시퀀스에 응답하여 상기 공유 자원에 대한 쓰레드 배타적 액세스를 허가하도록 구성된, 데이터 처리장치.
- 제 2 항에 있어서,
상기 록킹 시퀀스는 상기 제1 명령어를 포함하지 않는, 데이터 처리장치.
- 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
상기 프로세서는, 쓰레드에 대해 실행된 적어도 하나의 언록킹 명령어를 포함하는 언록킹 시퀀스에 응답하여 상기 쓰레드를 위해 상기 공유 자원에 대한 배타적 액세스를 양보하도록 구성된, 데이터 처리장치.
- 제 4 항에 있어서,
상기 언록킹 시퀀스는 상기 제2 명령어를 포함하지 않는, 데이터 처리장치.
- 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
상기 선택기는, 상기 공유 자원에 대한 배타적 액세스를 갖지 않는 것으로서 상기 적어도 하나의 록 파라미터에 의해 나타낸 제2 쓰레드보다 우선적으로 상기 공유 자원에 대한 배타적 액세스를 갖는 것으로서 상기 적어도 하나의 록 파라미터에 의해 나타낸 제1 쓰레드를, 상기 선택된 쓰레드로서 선택하도록 구성된, 데이터 처리장치.
- 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
상기 선택기는, 상기 쓰레드들의 서브세트의 각 쓰레드와 관련된 함수 호출 깊이 파라미터에 근거하여 상기 선택된 쓰레드를 선택하도록 구성된, 데이터 처리장치.
- 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,
상기 선택기는, 상기 쓰레드의 서브세트의 각 쓰레드와 관련된 상기 쓰레드 프로그램 카운터에 근거하여 상기 선택된 쓰레드를 선택하도록 구성된, 데이터 처리장치.
- 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
상기 서브세트의 각 쓰레드는 대응한 록 파라미터를 가지고, 상기 프로세서는, 쓰레드에 대해 실행된 제1 명령어에 응답하여 상기 공유 자원에 대한 배타적 액세스를 상기 쓰레드가 얻었다는 것을 나타내기 위해 상기 쓰레드에 대응한 상기 록 파라미터를 변경하고, 상기 쓰레드에 대해 실행된 제2 명령어에 응답하여 상기 공유 자원에 대한 배타적 액세스를 상기 쓰레드가 더 이상 갖지 않는다는 것을 나타내기 위해 상기 쓰레드에 대응한 상기 록 파라미터를 변경하도록 구성된, 데이터 처리장치.
- 제 9 항에 있어서,
상기 프로세서는, 제1 쓰레드가 제1 공유 자원에 대해 배타적 액세스를 갖고 제2 쓰레드가 제2 공유 자원에 대한 배타적 액세스를 갖게 허용하도록 구성되는, 데이터 처리장치.
- 제 9 항 또는 제 10 항에 있어서,
상기 선택기는, 쓰레드들의 상기 서브세트의 각 쓰레드의 대응한 록 파라미터에 근거하여 쓰레드들의 제1 세트를 선택하도록 구성되고,
상기 선택기는, 상기 쓰레드들의 제1 세트 중에서, 함수 호출 깊이 파라미터에 근거하여 쓰레드들의 제2 세트를 선택하도록 구성되고,
상기 선택기는, 상기 쓰레드들의 제2 세트 중에서 상기 선택된 쓰레드를, 상기 쓰레드들의 제2 세트에서 상기 쓰레드들과 관련된 쓰레드 프로그램 카운터들에 근거하여 선택하도록 구성되는, 데이터 처리장치.
- 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
상기 적어도 하나의 록 파라미터는, 쓰레드들의 상기 서브세트간에 공유된 공유 록 파라미터와, 쓰레드들의 상기 서브세트 중 어느 것이 공유 자원에 대한 배타적 액세스를 갖는지를 나타내는 록 소유자 파라미터를 포함하는, 데이터 처리장치.
- 제 12 항에 있어서,
상기 공유 록 파라미터는, 쓰레드들의 상기 서브세트 중 어떤 것이 공유 자원에 대한 배타적 액세스를 갖는지를 나타내는 록 플래그를 포함하는, 데이터 처리장치.
- 제 12 항 또는 제 13 항에 있어서,
상기 공유 록 파라미터는, 상기 록 소유자 파라미터에 의해 나타낸 쓰레드가 배타적 액세스를 갖는 자원의 수를 나타내는 록 카운트를 포함하는, 데이터 처리장치.
- 제 12 항 내지 제 14 항 중 어느 한 항에 있어서,
제1 쓰레드가 제1 공유 자원에 대한 배타적 액세스를 갖는 경우, 상기 프로세서는 제2 공유 자원에 대한 배타적 액세스를 갖는 제2 쓰레드를 방지하도록 구성된, 데이터 처리장치.
- 제 12 항 내지 제 15 항 중 어느 한 항에 있어서,
상기 적어도 하나의 록 파라미터는 쓰레드가 공유 자원에 대한 배타적 액세스를 갖는 것을 나타내는 경우, 상기 선택기는 상기 록 소유자 파라미터에 의해 나타낸 쓰레드를 상기 선택된 쓰레드로서 선택하도록 구성되고,
상기 적어도 하나의 록 파라미터는 쓰레드가 공유 자원에 대한 배타적 액세스를 갖지 않는 것을 나타내는 경우, 상기 선택기는, 쓰레드들의 상기 서브세트 중에서, 함수 호출 깊이 파라미터에 근거하여 쓰레드들의 또 다른 서브세트를 선택하고, 상기 쓰레드들의 상기 또 다른 서브세트에서 쓰레드들과 관련된 상기 쓰레드 프로그램 카운터들에 근거하여 쓰레드들의 상기 또 다른 서브세트 중에서 상기 선택된 쓰레드들을 선택하도록 구성된, 데이터 처리장치.
- 제 1 항 내지 제 16 항 중 어느 한 항에 있어서,
상기 프로세서는, 상기 제1 명령어에 응답하여 상기 적어도 하나의 록 파라미터를 증분하도록 구성되고,
상기 프로세서는, 상기 제2 명령어에 응답하여 상기 적어도 하나의 록 파라미터를 감분하도록 구성되는, 데이터 처리장치.
- 제 17 항에 있어서,
상기 적어도 하나의 록 파라미터는, 쓰레드가 배타적 액세스를 갖는 공유 자원들의 수를 나타내는, 데이터 처리장치.
- 제 1 항 내지 제 18 항 중 어느 한 항에 있어서,
상기 쓰레드들의 상기 서브세트의 하나 이상은 상기 선택된 쓰레드의 대응한 쓰레드 파라미터들에 일치하는 하나 이상의 관련된 쓰레드 파라미터들을 갖는 쓰레드들을 포함하고, 상기 하나 이상의 관련된 쓰레드 파라미터들이 적어도 상기 쓰레드 프로그램 카운터를 포함하는, 데이터 처리장치.
- 제 1 항 내지 제 19 항 중 어느 한 항에 있어서,
상기 명령어는 마이크로 연산을 포함하는, 데이터 처리장치.
- 제 1 항 내지 제 20 항 중 어느 한 항에 있어서,
상기 제1 명령어와 상기 제2 명령어는, 적어도 하나의 사전 정의된 명령어 세트에서의 NOOP 명령어로서 부호화되는, 데이터 처리장치.
- 제 1 항 내지 제 21 항 중 어느 한 항에 있어서,
상기 프로세서는, 상기 제1 명령어와 상기 제2 명령어 중 적어도 하나에 응답하여 또 다른 연산을 행하도록 구성되는, 데이터 처리장치.
- 제 22 항에 있어서,
상기 또 다른 연산은, 상기 공유 자원에 대한 배타적 액세스를 얻기 위한 록킹 시퀀스의 일부인 연산과, 상기 공유 자원에 대한 배타적 액세스를 양보하기 위한 언록킹 시퀀스의 일부인 연산과, 상기 공유 자원을 액세스하기 위한 연산과, 쓰레드가 상기 공유 자원에 대한 배타적 액세스를 가졌는지를 판단하기 위한 연산과, 비교 및 교환 연산 중 하나 이상인, 데이터 처리장치.
- 제 1 항 내지 제 23 항 중 어느 한 항에 있어서,
상기 공유 자원은 메모리에서의 데이터를 포함하는, 데이터 처리장치.
- 제 24 항에 있어서,
상기 프로세서는, 상기 공유 자원에 대한 배타적 액세스를 양보하기에 앞서 메모리 배리어 연산을 메모리에 발행하도록 구성되는, 데이터 처리장치.
- 복수의 쓰레드의 서브세트에 대해 명령어들로 이루어진 스트림을 실행하는 데이터 처리 방법으로서, 상기 서브세트에서의 각 쓰레드가 상기 명령어들로 이루어진 스트림에서의 하나의 명령어를 식별하는 관련된 쓰레드 프로그램 카운터를 갖고, 상기 데이터 처리 방법은,
상기 쓰레드들의 상기 서브세트의 선택된 쓰레드를 선택하고, 일반 프로그램 카운터를 상기 선택된 쓰레드와 관련된 상기 쓰레드 프로그램 카운터로 설정하는 단계-상기 일반 프로그램 카운터가 쓰레드들의 상기 서브세트에 대해 실행되는 명령어들로 이루어진 스트림에서의 하나의 명령어를 식별함-; 및
상기 선택된 쓰레드를 포함한 상기 쓰레드들의 상기 서브세트의 하나 이상에 대해 상기 일반 프로그램 카운터에 의해 식별된 명령어를 실행하는 단계를 포함하고,
상기 쓰레드들의 상기 서브세트는 상기 쓰레드들의 상기 서브세트 중 어느 것이 공유 자원에 대한 배타적 액세스를 갖는지를 추적하는 적어도 하나의 록 파라미터와 관련되고;
상기 적어도 하나의 록 파라미터는, 쓰레드가 그 쓰레드에 대해 실행된 제1 명령어에 응답하여 상기 공유 자원에 대한 배타적 액세스를 얻었다는 것을 나타내도록 변경되고, 상기 쓰레드가 그 쓰레드에 대해 실행된 제2 명령어에 응답하여 더 이상 상기 공유 자원에 대한 배타적 액세스를 갖지 않는 것을 나타내도록 변경되고;
상기 선택기는 상기 적어도 하나의 록 파라미터에 근거하여 상기 선택된 쓰레드를 선택하도록 구성된, 데이터 처리 방법.
- 복수의 쓰레드를 실행하도록 구성된 데이터 처리장치로서,
적어도 복수의 쓰레드의 서브세트에 대해 실행되는 명령어들로 이루어진 스트림에서의 하나의 명령어를 식별하는 일반 프로그램 카운터 수단 - 상기 서브세트에서의 각 쓰레드가 상기 명령어들로 이루어진 스트림에서의 하나의 명령어를 식별하는 관련된 쓰레드 프로그램 카운터 수단을 가짐-;
상기 쓰레드들의 상기 서브세트의 선택된 쓰레드를 선택하고, 상기 일반 프로그램 카운터 수단을 상기 선택된 쓰레드와 관련된 상기 쓰레드 프로그램 카운터 수단에 설정하는 선택 수단; 및
상기 선택된 쓰레드를 포함한 상기 쓰레드들의 상기 서브세트의 하나 이상에 대해 상기 일반 프로그램 카운터 수단에 의해 식별된 명령어를 실행하는 프로세서 수단을 구비하고,
상기 쓰레드들의 상기 서브세트는 상기 쓰레드들의 상기 서브세트 중 어느 것이 공유 자원에 대한 배타적 액세스를 갖는지를 추적하는 적어도 하나의 록 파라미터와 관련되고;
상기 프로세서 수단은, 쓰레드가 그 쓰레드에 대해 실행된 제1 명령어에 응답하여 상기 공유 자원에 대한 배타적 액세스를 얻었다는 것을 나내기 위해 상기 적어도 하나의 록 파라미터를 변경하고, 상기 쓰레드가 그 쓰레드에 대해 실행된 제2 명령어에 응답하여 더 이상 상기 공유 자원에 대한 배타적 액세스를 갖지 않는 것을 나타내기 위해 상기 적어도 하나의 록 파라미터를 변경하기 위한 수단이고;
상기 선택 수단은 상기 적어도 하나의 록 파라미터에 근거하여 상기 선택된 쓰레드를 선택하기 위한 수단인, 데이터 처리장치.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB1415834.9A GB2529899B (en) | 2014-09-08 | 2014-09-08 | Shared Resources in a Data Processing Apparatus for Executing a Plurality of Threads |
| GB1415834.9 | 2014-09-08 | ||
| PCT/GB2015/052177 WO2016038328A1 (en) | 2014-09-08 | 2015-07-28 | Shared resources in a data processing appartus for executing a plurality of threads |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20170051465A true KR20170051465A (ko) | 2017-05-11 |
| KR102449957B1 KR102449957B1 (ko) | 2022-10-05 |
Family
ID=51796341
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020177008698A Active KR102449957B1 (ko) | 2014-09-08 | 2015-07-28 | 복수의 쓰레드를 실행하기 위한 데이터 처리장치에서의 공유 자원 |
Country Status (11)
| Country | Link |
|---|---|
| US (1) | US10528350B2 (ko) |
| EP (1) | EP3191955B1 (ko) |
| JP (1) | JP6563485B2 (ko) |
| KR (1) | KR102449957B1 (ko) |
| CN (1) | CN106716348B (ko) |
| GB (1) | GB2529899B (ko) |
| IL (1) | IL250301B (ko) |
| RU (1) | RU2685021C2 (ko) |
| SG (1) | SG11201701158XA (ko) |
| TW (1) | TWI695319B (ko) |
| WO (1) | WO2016038328A1 (ko) |
Families Citing this family (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108021339B (zh) * | 2017-11-03 | 2021-05-04 | 网宿科技股份有限公司 | 一种磁盘读写的方法、设备以及计算机可读存储介质 |
| CN108037680B (zh) * | 2017-12-14 | 2020-05-19 | 北京霍因数字科技有限公司 | 一种指令处理方法及装置 |
| EP3588280B1 (en) * | 2018-06-25 | 2021-09-08 | ARM Limited | Handling load-exclusive instructions in apparatus having support for transactional memory |
| CN109271260A (zh) * | 2018-08-28 | 2019-01-25 | 百度在线网络技术(北京)有限公司 | 临界区加锁方法、装置、终端及存储介质 |
| CN109831585B (zh) * | 2019-02-22 | 2021-06-25 | 维沃移动通信有限公司 | 一种运行参数调整方法及移动终端 |
| US11372649B2 (en) * | 2019-06-24 | 2022-06-28 | Microsoft Technology Licensing, Llc | Flow control for multi-threaded access to contentious resource(s) |
| CN112988368B (zh) * | 2019-12-12 | 2025-04-29 | 北京算能科技有限公司 | 进程处理方法及相关产品 |
| CN111352762A (zh) * | 2020-03-04 | 2020-06-30 | 恒生电子股份有限公司 | 一种进程访问确定方法和相关装置 |
| CN113377492B (zh) * | 2020-03-10 | 2022-05-24 | 阿里巴巴集团控股有限公司 | 内存管理方法、装置、电子设备及计算机可读存储介质 |
| CN113835871A (zh) * | 2020-06-24 | 2021-12-24 | 阿里巴巴集团控股有限公司 | 线程管理方法、装置、计算机存储介质和应用软件 |
| CN112000019B (zh) * | 2020-07-24 | 2024-04-26 | 青岛海尔空调器有限总公司 | 用于共享设备指令控制的方法、装置及设备 |
| CN111913810B (zh) * | 2020-07-28 | 2024-03-19 | 阿波罗智能技术(北京)有限公司 | 多线程场景下的任务执行方法、装置、设备和存储介质 |
| CN115408178B (zh) * | 2022-10-31 | 2023-02-21 | 北京登临科技有限公司 | 用于保护对片上资源的访问的方法、介质和电子设备 |
Citations (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20040068993A (ko) * | 2001-12-31 | 2004-08-02 | 인텔 코오퍼레이션 | 특정 메모리 액세스가 발생할 때까지 스레드의 실행을중단하기 위한 방법 및 장치 |
| US7015913B1 (en) * | 2003-06-27 | 2006-03-21 | Nvidia Corporation | Method and apparatus for multithreaded processing of data in a programmable graphics processor |
| US20070101333A1 (en) * | 2005-10-27 | 2007-05-03 | Mewhinney Greg R | System and method of arbitrating access of threads to shared resources within a data processing system |
| US20070283357A1 (en) * | 2006-06-05 | 2007-12-06 | Cisco Technology, Inc. | Techniques for reducing thread overhead for systems with multiple multi-theaded processors |
| KR20080076981A (ko) * | 2005-12-30 | 2008-08-20 | 인텔 코오퍼레이션 | 무한 트랜잭션 메모리 시스템 |
| US20080270732A1 (en) * | 2007-04-27 | 2008-10-30 | Weidong Cai | Adaptive arena assignment based on arena contentions |
| US7496918B1 (en) * | 2004-06-01 | 2009-02-24 | Sun Microsystems, Inc. | System and methods for deadlock detection |
| US20090144519A1 (en) * | 2007-12-03 | 2009-06-04 | Qualcomm Incorporated | Multithreaded Processor with Lock Indicator |
| US20110154368A1 (en) * | 2009-12-22 | 2011-06-23 | International Business Machines Corporation | Recursive locking of a thread-shared resource |
| US20120054394A1 (en) * | 2010-09-01 | 2012-03-01 | Alcatel-Lucent Usa Inc. | Fast Biased Locks |
| WO2012132017A1 (ja) * | 2011-03-31 | 2012-10-04 | 富士通株式会社 | 排他制御方法、および排他制御プログラム |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6598068B1 (en) * | 1996-01-04 | 2003-07-22 | Sun Microsystems, Inc. | Method and apparatus for automatically managing concurrent access to a shared resource in a multi-threaded programming environment |
| US6357016B1 (en) | 1999-12-09 | 2002-03-12 | Intel Corporation | Method and apparatus for disabling a clock signal within a multithreaded processor |
| US7765547B2 (en) * | 2004-11-24 | 2010-07-27 | Maxim Integrated Products, Inc. | Hardware multithreading systems with state registers having thread profiling data |
| US20070124545A1 (en) * | 2005-11-29 | 2007-05-31 | Anton Blanchard | Automatic yielding on lock contention for multi-threaded processors |
| TWI462011B (zh) * | 2007-12-28 | 2014-11-21 | Accton Technology Corp | 程序之執行緒群組管理方法 |
| US8055856B2 (en) * | 2008-03-24 | 2011-11-08 | Nvidia Corporation | Lock mechanism to enable atomic updates to shared memory |
| US8166480B2 (en) * | 2008-07-29 | 2012-04-24 | International Business Machines Corporation | Reducing lock contention by adding a time slice to an active thread holding a lock |
| CN108345547A (zh) * | 2012-06-15 | 2018-07-31 | 英特尔公司 | 乱序加载的基于锁的和基于同步的方法 |
| US9229721B2 (en) | 2012-09-10 | 2016-01-05 | Qualcomm Incorporated | Executing subroutines in a multi-threaded processing system |
| US9678897B2 (en) | 2012-12-27 | 2017-06-13 | Nvidia Corporation | Approach for context switching of lock-bit protected memory |
| US9304940B2 (en) * | 2013-03-15 | 2016-04-05 | Intel Corporation | Processors, methods, and systems to relax synchronization of accesses to shared memory |
-
2014
- 2014-09-08 GB GB1415834.9A patent/GB2529899B/en active Active
-
2015
- 2015-07-28 SG SG11201701158XA patent/SG11201701158XA/en unknown
- 2015-07-28 WO PCT/GB2015/052177 patent/WO2016038328A1/en not_active Ceased
- 2015-07-28 KR KR1020177008698A patent/KR102449957B1/ko active Active
- 2015-07-28 EP EP15744324.3A patent/EP3191955B1/en active Active
- 2015-07-28 JP JP2017512043A patent/JP6563485B2/ja active Active
- 2015-07-28 RU RU2017110464A patent/RU2685021C2/ru active
- 2015-07-28 US US15/505,714 patent/US10528350B2/en active Active
- 2015-07-28 CN CN201580046904.0A patent/CN106716348B/zh active Active
- 2015-08-20 TW TW104127210A patent/TWI695319B/zh active
-
2017
- 2017-01-26 IL IL250301A patent/IL250301B/en active IP Right Grant
Patent Citations (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20040068993A (ko) * | 2001-12-31 | 2004-08-02 | 인텔 코오퍼레이션 | 특정 메모리 액세스가 발생할 때까지 스레드의 실행을중단하기 위한 방법 및 장치 |
| US7015913B1 (en) * | 2003-06-27 | 2006-03-21 | Nvidia Corporation | Method and apparatus for multithreaded processing of data in a programmable graphics processor |
| US7496918B1 (en) * | 2004-06-01 | 2009-02-24 | Sun Microsystems, Inc. | System and methods for deadlock detection |
| US20070101333A1 (en) * | 2005-10-27 | 2007-05-03 | Mewhinney Greg R | System and method of arbitrating access of threads to shared resources within a data processing system |
| KR20080076981A (ko) * | 2005-12-30 | 2008-08-20 | 인텔 코오퍼레이션 | 무한 트랜잭션 메모리 시스템 |
| US20070283357A1 (en) * | 2006-06-05 | 2007-12-06 | Cisco Technology, Inc. | Techniques for reducing thread overhead for systems with multiple multi-theaded processors |
| US20080270732A1 (en) * | 2007-04-27 | 2008-10-30 | Weidong Cai | Adaptive arena assignment based on arena contentions |
| US20090144519A1 (en) * | 2007-12-03 | 2009-06-04 | Qualcomm Incorporated | Multithreaded Processor with Lock Indicator |
| KR20100101629A (ko) * | 2007-12-03 | 2010-09-17 | 콸콤 인코포레이티드 | 로크 표시기를 갖는 멀티스레드 프로세서 |
| US20110154368A1 (en) * | 2009-12-22 | 2011-06-23 | International Business Machines Corporation | Recursive locking of a thread-shared resource |
| US20120054394A1 (en) * | 2010-09-01 | 2012-03-01 | Alcatel-Lucent Usa Inc. | Fast Biased Locks |
| WO2012132017A1 (ja) * | 2011-03-31 | 2012-10-04 | 富士通株式会社 | 排他制御方法、および排他制御プログラム |
Also Published As
| Publication number | Publication date |
|---|---|
| IL250301A0 (en) | 2017-03-30 |
| RU2685021C2 (ru) | 2019-04-16 |
| EP3191955A1 (en) | 2017-07-19 |
| GB2529899A (en) | 2016-03-09 |
| CN106716348B (zh) | 2021-05-18 |
| RU2017110464A (ru) | 2018-10-10 |
| TW201617859A (zh) | 2016-05-16 |
| JP6563485B2 (ja) | 2019-08-21 |
| US10528350B2 (en) | 2020-01-07 |
| SG11201701158XA (en) | 2017-03-30 |
| GB201415834D0 (en) | 2014-10-22 |
| GB2529899B (en) | 2021-06-23 |
| KR102449957B1 (ko) | 2022-10-05 |
| TWI695319B (zh) | 2020-06-01 |
| JP2017530455A (ja) | 2017-10-12 |
| IL250301B (en) | 2020-08-31 |
| WO2016038328A1 (en) | 2016-03-17 |
| CN106716348A (zh) | 2017-05-24 |
| EP3191955B1 (en) | 2021-09-22 |
| RU2017110464A3 (ko) | 2019-02-07 |
| US20170286107A1 (en) | 2017-10-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR102449957B1 (ko) | 복수의 쓰레드를 실행하기 위한 데이터 처리장치에서의 공유 자원 | |
| US8464261B2 (en) | System and method for executing a transaction using parallel co-transactions | |
| US9170844B2 (en) | Prioritization for conflict arbitration in transactional memory management | |
| US11106795B2 (en) | Method and apparatus for updating shared data in a multi-core processor environment | |
| US9727369B2 (en) | System and method for implementing reader-writer locks using hardware transactional memory | |
| US7120762B2 (en) | Concurrent execution of critical sections by eliding ownership of locks | |
| US8819352B2 (en) | Hybrid Transactional Memory (HybridTM) | |
| US12229565B2 (en) | In-core parallelization in a data processing apparatus and method | |
| US11579873B2 (en) | Handling load-exclusive instructions in apparatus having support for transactional memory | |
| KR20200061361A (ko) | 예외 마스크 갱신 명령 후 트랜잭션의 비중지 처리의 허가 | |
| US11734051B1 (en) | RTOS/OS architecture for context switching that solves the diminishing bandwidth problem and the RTOS response time problem using unsorted ready lists | |
| CN118260051A (zh) | 线程访问控制设备、方法与计算设备 | |
| JP2021511587A (ja) | コミット・ウィンドウ移動要素 | |
| Leichtling | Constant RMR Transformation to Augment Reader-Writer Locks with Atomic Upgrade/Downgrade Support |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0105 | International application |
Patent event date: 20170330 Patent event code: PA01051R01D Comment text: International Patent Application |
|
| PG1501 | Laying open of application | ||
| A201 | Request for examination | ||
| PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20200715 Comment text: Request for Examination of Application |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20211129 Patent event code: PE09021S01D |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20220705 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20220928 Patent event code: PR07011E01D |
|
| PR1002 | Payment of registration fee |
Payment date: 20220929 End annual number: 3 Start annual number: 1 |
|
| PG1601 | Publication of registration |