KR20070055554A - 스레드 라이브록 유닛 - Google Patents
스레드 라이브록 유닛 Download PDFInfo
- Publication number
- KR20070055554A KR20070055554A KR1020077006549A KR20077006549A KR20070055554A KR 20070055554 A KR20070055554 A KR 20070055554A KR 1020077006549 A KR1020077006549 A KR 1020077006549A KR 20077006549 A KR20077006549 A KR 20077006549A KR 20070055554 A KR20070055554 A KR 20070055554A
- Authority
- KR
- South Korea
- Prior art keywords
- livelock
- processor
- logical processor
- thread
- state
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 86
- 230000009471 action Effects 0.000 claims description 27
- 230000004044 response Effects 0.000 claims description 17
- 239000003638 chemical reducing agent Substances 0.000 claims description 7
- 235000003642 hunger Nutrition 0.000 claims description 7
- 230000037351 starvation Effects 0.000 claims description 7
- 238000012913 prioritisation Methods 0.000 claims description 6
- 230000000694 effects Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 41
- 230000007704 transition Effects 0.000 description 35
- 239000000872 buffer Substances 0.000 description 16
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 239000012536 storage buffer Substances 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000006735 deficit Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007562 laser obscuration time method Methods 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/3854—Instruction completion, e.g. retiring, committing or graduating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
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)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Bus Control (AREA)
- Multi Processors (AREA)
- Debugging And Monitoring (AREA)
- Hardware Redundancy (AREA)
- Power Sources (AREA)
Abstract
Description
Claims (39)
- 제1 논리 프로세서 및 제2 논리 프로세서를 포함하는 프로세서 코어;상기 제1 논리 프로세서에 연결된 제1 스레드 라이브록 유닛;상기 제2 논리 프로세서에 연결된 제2 스레드 라이브록 유닛; 및중재기를 포함하고,상기 제1 라이브록 유닛은 상기 제1 라이브록 유닛에 의한 실행에 가용한 명령이 부족한 것에 대응하여 상기 제2 라이브록 유닛의 정지(stall)를 요청하는 것이며,상기 제1 및 제2 스레드 라이브록 유닛과 상기 중재기는 상기 제1 논리 프로세서와 상기 제2 논리 프로세서 간의 우선순위 매김을 집행하는 것을 특징으로 하는 프로세서.
- 제1항에 있어서,상기 제1 스레드 라이브록 감지기는 또한 상기 제1 논리 프로세서가 제1 소프트웨어 스레드에 대한 명령 실행 중 순방향 진행을 할 수 없는지를 판단하고,상기 제2 스레드 라이브록 감지기는 상기 제2 논리 프로세서가 제2 소프트웨어 스레드에 대한 명령 실행 중 순방향 진행을 할 수 없는지를 판단하는 것을 특징으로 하는 프로세서.
- 제1항에 있어서,상기 제1 및 제2 논리 프로세서에 연결된 메모리 라이브록 유닛을 더 포함하는 프로세서.
- 제3항에 있어서,상기 메모리 라이브록 유닛은 또한 메모리 라이브록 회피 동작을 개시하는 것을 특징으로 하는 프로세서.
- 제1항에 있어서,상기 중재기는 장기 대기시간 캐쉬 미스(long latency cache miss)를 해결하기 위해 상기 제1 논리 프로세서 및 상기 제2 논리 프로세서 간의 우선순위 매김을 집행하는 것을 특징으로 하는 프로세서.
- 제3항에 있어서,상기 제1 및 제2 라이브록 유닛은 또한 상기 메모리 라이브록 유닛에게 우선순위를 양보하는 것을 특징으로 하는 프로세서.
- 제1항에 있어서,상기 라이브록 유닛들은 또한 실행에 가용한 명령이 없음에 대응하여 고갈 회피 동작(starvation avoidance action)을 개시하는 것을 특징으로 하는 프로세 서.
- 제6항에 있어서,상기 제1 라이브록 유닛은 또한 상기 제1 논리 프로세서와 연관된 제1 소프트웨어 스레드에 대해 상기 가용 명령이 없음이 존재하는지를 판단하고,상기 제2 라이브록 유닛은 또한 상기 제2 논리 프로세서와 연관된 제2 소프트웨어 스레드에 대해 상기 가용 명령이 없음이 존재하는지를 판단하는 것을 특징으로 하는 프로세서.
- 제2항에 있어서,상기 제1 라이브록 유닛은 또한 상기 제1 논리 프로세서가 상기 제1 소프트웨어 스레드에 대한 명령 실행 중 순방향 진행을 할 수 없다는 판단에 대응하여 활성(active)이 되는 것을 특징으로 하는 프로세서.
- 제9항에 있어서,상기 제1 논리 프로세서가 활성인 경우 상기 제2 라이브록 유닛은 상기 제1 논리 프로세서에게 우선순위를 양보하는 것을 특징으로 하는 프로세서.
- 제2항에 있어서,상기 제2 라이브록 유닛은 또한 상기 제2 논리 프로세서가 제2 소프트웨어 스레드에 대한 명령 실행 중 순방향 진행을 할 수 없다는 판단에 대응하여 활성이 되는 것을 특징으로 하는 프로세서.
- 제11항에 있어서,상기 제2 논리 프로세서가 활성인 경우 상기 제1 라이브록 유닛은 상기 제2 논리 프로세서에게 우선순위를 양보하는 것을 특징으로 하는 프로세서.
- 제12항에 있어서,상기 제1 라이브록 유닛은 상기 제2 논리 프로세서에 의해 실행된 상위 우선순위 록 연산(high-priority lock operation) 중 상기 제2 논리 프로세서에게 우선순위를 양보하는 것을 특징으로 하는 프로세서.
- 제1항에 있어서,상기 프로세서 코어는 적어도 하나의 추가적인 논리 프로세서를 포함하고, 각각은 추가적인 라이브록 유닛에 연결되며,상기 적어도 하나의 추가적인 라이브록 유닛은, 상기 제1 및 제2 라이브록 유닛 및 상기 중재기와 함께, 상기 제1 논리 프로세서, 상기 제2 논리 프로세서, 및 상기 적어도 하나의 추가적인 논리 프로세서 간의 우선순위 매김을 집행하는 것을 특징으로 하는 프로세서.
- 메모리 시스템; 및적어도 제1 논리 프로세서를 구비한 제1 프로세서 코어; 및제2 프로세서 코어;를 포함하고, 상기 제1 프로세서 코어는, 상기 제1 논리 프로세서에 복수의 조건들이 존재하는지 판단하고 또한 상기 복수의 조건이 만족됨에 따라 상기 제1 논리 프로세서가 라이브록 상태인지를 판단하는 제1 라이브록 유닛을 더 포함하며,상기 제1 라이브록 유닛은 또한 상기 제1 논리 프로세서가 라이브록 상태인 것으로 판단함에 대응하여 상기 제2 프로세서 코어의 정지를 요청하는 것을 특징으로 하는 시스템.
- 제15항에 있어서,상기 제1 라이브록 유닛은 또한, 상기 제1 논리 프로세서가 라이브록 상태인 것으로 판단함에 대응하여, 상기 제2 프로세서 코어와 연관된 적어도 하나의 마이크로 아키텍처 구조체(microarchitectural structure)의 플러시(flush)를 요청하는 것을 특징으로 하는 시스템.
- 제15항에 있어서,상기 제1 라이브록 유닛은 또한, 상기 복수의 조건이 만족됨에 따라, 상기 제1 논리 프로세서가 명령 고갈 상태인지를 판단하는 것을 특징으로 하는 시스템.
- 제17항에 있어서,상기 제1 라이브록 유닛은 또한 상기 제1 논리 프로세서가 명령 고갈 상태인 것으로 판단됨에 대응하여 고갈 회피 동작을 개시하는 것을 특징으로 하는 시스템.
- 제15항에 있어서,상기 제1 및 제2 프로세서로부터의 우선순위 요청을 중재하는 중재기를 더 포함하고, 상기 우선순위 요청은 라이브록 판단에 기초하는 것을 특징으로 하는 시스템.
- 제15항에 있어서,상기 메모리 시스템은 DRAM(dynamic random access memory)을 더 포함하는 것을 특징으로 하는 시스템.
- 제1 프로세서에 대한 제1 논리 프로세서가 적어도 하나의 명령 실행에 있어서 순방향 진행을 할 수 없는지 판단하는 단계;순방향 진행을 할 수 없는 경우, 제2 논리 프로세서의 동작 정지를 선언하는 단계;상기 정지로 인해 상기 제1 논리 프로세서에 대한 순방향 진행이 이루어졌는지 판단하는 단계;순방향 진행이 이루어지지 않은 경우, 상기 제1 논리 프로세서가 명령 고갈 상태인지 판단하는 단계 및 명령 고갈인 경우, 고갈 회피 동작을 취하는 단계; 및상기 제2 논리 프로세서의 정지를 요청하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제21항에 있어서,상기 제2 논리 프로세서와 연관된 파이프라인이 플러시되도록 요청하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제21항에 있어서,제2 프로세서의 정지를 요청하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제21항에 있어서,상기 제2 논리 프로세서의 동작 정지를 선언하는 단계는,상기 제2 논리 프로세서가 활성 라이브록 회피 상태에 있지 않은 경우 상기 정지를 선언하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제21항에 있어서,상기 제2 논리 프로세서의 동작 정지를 선언하는 단계는,상기 제2 논리 프로세서가 상위 우선순위 록 연산을 수행하고 있지 않은 경 우 상기 정지를 선언하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제21항에 있어서,상기 제2 논리 프로세서의 동작 정지를 선언하는 단계는,상기 제1 논리 프로세서가 적어도 소정 시간 동안 순방향 진행을 할 수 없었다고 판단함에 대응하여 상기 정지를 선언하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 멀티스레드 프로세서(multi-threaded processor)에 있어서, 복수의 스레드 및 메모리 라이브록 유닛 간의 스레드 우선순위를 할당하는 방법으로,상기 메모리 라이브록 유닛과 상기 프로세서의 적어도 두 개의 스레드 간에 복수의 조건이 존재하는지 판단하는 단계로, 상기 적어도 두 개의 스레드는 제1 스레드 및 남은 스레드 집합을 포함하는 단계;상기 복수의 조건이 만족됨에 따라, 상기 제1 스레드가 라이브록 상태인지를 판단하는 단계; 및상기 제1 스레드가 라이브록 상태인 경우, 상기 제1 스레드에게 우선순위를 할당하고 상기 남은 스레드 집합에는 우선순위를 할당하지 않는 단계를 포함하는 것을 특징으로 하는 방법.
- 제27항에 있어서,상기 제1 스레드는 적어도 소정 시간 동안 라이브록 상태였는지 판단하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제27항에 있어서,상기 제1 스레드의 순방향 진행을 촉진하는 동작을 취하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제29항에 있어서,동작을 취하는 단계는, 상기 남은 스레드 중 적어도 하나에게 정지를 발행하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제29항에 있어서,동작을 취하는 단계는, 명령 고갈(instruction-side starvation)의 판단에 대응하여 라이브록 차단기(livelock breaker)를 호출하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제31항에 있어서,방출 큐의 일부가 비어있는지를 판단하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제29항에 있어서,동작을 취하는 단계는, 캐쉬 미스에 대응하여 중재기에게 우선순위 요청을 발행하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제29항에 있어서,동작을 취하는 단계는, 다른 프로세서에게 정지 요청을 발행하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 복수의 프로세서 코어;각각의 상기 복수의 프로세서 코어와 통신하도록 연결된 라이브록 감소기(livelock reducer)를 포함하고, 상기 복수의 프로세서 코어 각각은 복수의 스레드를 실행시킬 수 있는 멀티스레딩 프로세서이고,상기 라이브록 감소기는 제1 프로세서 코어로부터 제1 스레드에 대한 스레드 진행 정보를 수신하고 상기 제1 프로세서 코어로부터의 상기 제1 스레드에 대한 상기 스레드 진행 정보에 대응하여 상기 복수의 프로세서의 제2 프로세서 코어의 제2 스레드의 활동성을 조정하는 것을 특징으로 하는 멀티코어 멀티스레드 프로세서(multicore multithreaded processor).
- 제35항에 있어서,상기 라이브록 감소기는 복수의 라이브록 회로를 포함하고, 적어도 하나의 라이브록 회로는 상기 복수의 프로세서 코어 중 하나와 연관되는 것을 특징으로 하는 멀티코어 멀티스레드 프로세서.
- 제35항에 있어서,상기 라이브록 감소기는 상기 복수의 프로세서 코어와 연결된 중재 제어 로직(arbitation control logic)을 포함하고, 상기 중재 제어 로직은 상기 복수의 코어로부터 스레드 진행 정보를 수신하여 어떤 스레드를 보조해야 하는지를 결정하도록 우선순위를 중재하는 것을 특징으로 하는 멀티코어 멀티스레드 프로세서.
- 제35항에 있어서,각각의 프로세서 코어는상기 코어와 연결된, 스레드 라이브록 표지를 측정하는 스레드 라이브록 유닛; 및상기 코어와 연결된, 메모리 라이브록 표지를 측정하는 메모리 라이브록 유닛을 포함하는 것을 특징으로 하는 멀티코어 멀티스레드 프로세서.
- 제38항에 있어서,각각의 상기 복수의 코어의 상기 스레드 라이브록 유닛 및/또는 상기 메모리 라이브록 유닛으로부터 라이브록 정보를 수신하는 중재기를 더 포함하고, 상기 중재기는 상기 라이브록 정보에 대응하여 하나의 스레드에 다른 스레드에 대해 우선순위를 부여하는 것을 특징으로 하는 멀티코어 멀티스레드 프로세서.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/948,878 US7748001B2 (en) | 2004-09-23 | 2004-09-23 | Multi-thread processing system for detecting and handling live-lock conditions by arbitrating livelock priority of logical processors based on a predertermined amount of time |
US10/948,878 | 2004-09-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070055554A true KR20070055554A (ko) | 2007-05-30 |
KR100880470B1 KR100880470B1 (ko) | 2009-01-28 |
Family
ID=35997071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020077006549A KR100880470B1 (ko) | 2004-09-23 | 2005-09-13 | 스레드 라이브록 유닛 |
Country Status (7)
Country | Link |
---|---|
US (2) | US7748001B2 (ko) |
JP (1) | JP4603583B2 (ko) |
KR (1) | KR100880470B1 (ko) |
CN (2) | CN101031877B (ko) |
DE (1) | DE112005002305B4 (ko) |
TW (1) | TWI298458B (ko) |
WO (1) | WO2006034288A2 (ko) |
Families Citing this family (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7748001B2 (en) | 2004-09-23 | 2010-06-29 | Intel Corporation | Multi-thread processing system for detecting and handling live-lock conditions by arbitrating livelock priority of logical processors based on a predertermined amount of time |
US9626194B2 (en) * | 2004-09-23 | 2017-04-18 | Intel Corporation | Thread livelock unit |
US7525986B2 (en) * | 2004-10-28 | 2009-04-28 | Intel Corporation | Starvation prevention scheme for a fixed priority PCI-Express arbiter with grant counters using arbitration pools |
US7810083B2 (en) * | 2004-12-30 | 2010-10-05 | Intel Corporation | Mechanism to emulate user-level multithreading on an OS-sequestered sequencer |
US7380038B2 (en) * | 2005-02-04 | 2008-05-27 | Microsoft Corporation | Priority registers for biasing access to shared resources |
WO2007031696A1 (en) * | 2005-09-13 | 2007-03-22 | Arm Limited | Cache miss detection in a data processing apparatus |
US7558946B2 (en) * | 2005-12-12 | 2009-07-07 | Intel Corporation | Breaking a lock situation in a processor without detection of the lock situation using a multi-level approach |
WO2007099273A1 (en) * | 2006-03-03 | 2007-09-07 | Arm Limited | Monitoring values of signals within an integrated circuit |
WO2007101969A1 (en) * | 2006-03-06 | 2007-09-13 | Arm Limited | Accessing a cache in a data processing apparatus |
JP4557949B2 (ja) * | 2006-04-10 | 2010-10-06 | 富士通株式会社 | 資源ブローカリングプログラム、該プログラムを記録した記録媒体、資源ブローカリング装置、および資源ブローカリング方法 |
US7434033B2 (en) | 2006-04-14 | 2008-10-07 | International Business Machines Corporation | Placing a processor into a gradual slow mode of operation in response to a detected livelock condition within a processor pipeline |
US7437539B2 (en) * | 2006-04-14 | 2008-10-14 | International Business Machines Corporation | Issue unit for placing a processor into a gradual slow mode of operation in response to a detected livelock condition within a processor pipeline |
WO2007132424A2 (en) * | 2006-05-17 | 2007-11-22 | Nxp B.V. | Multi-processing system and a method of executing a plurality of data processing tasks |
US20080046684A1 (en) * | 2006-08-17 | 2008-02-21 | International Business Machines Corporation | Multithreaded multicore uniprocessor and a heterogeneous multiprocessor incorporating the same |
JP4841358B2 (ja) | 2006-08-18 | 2011-12-21 | 富士通株式会社 | リクエスト送信制御装置およびリクエスト送信制御方法 |
US7590784B2 (en) * | 2006-08-31 | 2009-09-15 | Intel Corporation | Detecting and resolving locks in a memory unit |
US8276151B2 (en) | 2006-09-06 | 2012-09-25 | International Business Machines Corporation | Determination of running status of logical processor |
CN100458751C (zh) * | 2007-05-10 | 2009-02-04 | 忆正存储技术(深圳)有限公司 | 并行闪存控制器 |
US8117618B2 (en) * | 2007-10-12 | 2012-02-14 | Freescale Semiconductor, Inc. | Forward progress mechanism for a multithreaded processor |
JP4691153B2 (ja) * | 2008-12-10 | 2011-06-01 | 富士通株式会社 | マルチコアプロセッサ,制御方法および情報処理装置 |
US8392667B2 (en) * | 2008-12-12 | 2013-03-05 | Nvidia Corporation | Deadlock avoidance by marking CPU traffic as special |
JP5035469B2 (ja) * | 2009-03-31 | 2012-09-26 | 富士通株式会社 | データ転送回路及びデータ転送方法 |
US8352561B1 (en) | 2009-07-24 | 2013-01-08 | Google Inc. | Electronic communication reminder technology |
US8516577B2 (en) | 2010-09-22 | 2013-08-20 | Intel Corporation | Regulating atomic memory operations to prevent denial of service attack |
US8898434B2 (en) | 2011-11-11 | 2014-11-25 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Optimizing system throughput by automatically altering thread co-execution based on operating system directives |
WO2013101138A1 (en) * | 2011-12-30 | 2013-07-04 | Intel Corporation | Identifying and prioritizing critical instructions within processor circuitry |
US20130332910A1 (en) * | 2012-05-22 | 2013-12-12 | Nec Laboratories America, Inc. | Dynamic livelock analysis of multi-threaded programs |
US9336357B2 (en) * | 2012-09-28 | 2016-05-10 | Intel Corporation | Secure access management of devices |
JP6201591B2 (ja) * | 2013-09-30 | 2017-09-27 | 富士通株式会社 | 情報処理装置および情報処理装置の制御方法 |
US9575916B2 (en) | 2014-01-06 | 2017-02-21 | International Business Machines Corporation | Apparatus and method for identifying performance bottlenecks in pipeline parallel processing environment |
US9501377B2 (en) | 2014-03-18 | 2016-11-22 | International Business Machines Corporation | Generating and implementing data integration job execution design recommendations |
US9424160B2 (en) | 2014-03-18 | 2016-08-23 | International Business Machines Corporation | Detection of data flow bottlenecks and disruptions based on operator timing profiles in a parallel processing environment |
US9642787B2 (en) | 2014-04-25 | 2017-05-09 | The Procter & Gamble Company | Method of inhibiting copper deposition on hair |
US9626749B2 (en) | 2014-12-10 | 2017-04-18 | Intel Corporation | Sub-pixel modification of digital images by locally shifting to an arbitrarily dense supergrid |
US10248463B2 (en) * | 2015-02-13 | 2019-04-02 | Honeywell International Inc. | Apparatus and method for managing a plurality of threads in an operating system |
WO2016178658A1 (en) * | 2015-05-01 | 2016-11-10 | Hewlett Packard Enterprise Development Lp | Throttled data memory access |
US10346168B2 (en) | 2015-06-26 | 2019-07-09 | Microsoft Technology Licensing, Llc | Decoupled processor instruction window and operand buffer |
US10191747B2 (en) * | 2015-06-26 | 2019-01-29 | Microsoft Technology Licensing, Llc | Locking operand values for groups of instructions executed atomically |
US9766946B2 (en) * | 2015-11-11 | 2017-09-19 | International Business Machines Corporation | Selecting processor micro-threading mode |
TWI597666B (zh) * | 2015-12-28 | 2017-09-01 | 緯創資通股份有限公司 | 共享裝置的使用方法及資源共享系統 |
GB2558076B (en) * | 2016-06-20 | 2019-02-20 | Imagination Tech Ltd | Livelock detection in a hardware design using formal verification |
US10069949B2 (en) | 2016-10-14 | 2018-09-04 | Honeywell International Inc. | System and method for enabling detection of messages having previously transited network devices in support of loop detection |
US9798549B1 (en) | 2016-10-31 | 2017-10-24 | International Business Machines Corporation | Out-of-order processor that avoids deadlock in processing queues by designating a most favored instruction |
US10740102B2 (en) | 2017-02-24 | 2020-08-11 | Oracle International Corporation | Hardware mechanism to mitigate stalling of a processor core |
US10810086B2 (en) | 2017-10-19 | 2020-10-20 | Honeywell International Inc. | System and method for emulation of enhanced application module redundancy (EAM-R) |
US10783026B2 (en) | 2018-02-15 | 2020-09-22 | Honeywell International Inc. | Apparatus and method for detecting network problems on redundant token bus control network using traffic sensor |
EP3818440A4 (en) | 2018-07-02 | 2021-08-18 | Drivenets Ltd. | SYSTEM FOR IMPLEMENTATION OF MULTIPLE APPLICATIONS |
US10831563B2 (en) * | 2019-03-19 | 2020-11-10 | International Business Machines Corporation | Deadlock resolution between distributed processes using process and aggregated information |
CN110058931B (zh) * | 2019-04-19 | 2022-03-22 | 上海兆芯集成电路有限公司 | 用以任务调度的处理系统及其加速方法 |
CN110032453B (zh) | 2019-04-19 | 2022-05-03 | 上海兆芯集成电路有限公司 | 用以任务调度与分配的处理系统及其加速方法 |
CN110083387B (zh) | 2019-04-19 | 2021-11-12 | 上海兆芯集成电路有限公司 | 使用轮询机制的处理系统及其访存方法 |
CN110046053B (zh) | 2019-04-19 | 2021-11-12 | 上海兆芯集成电路有限公司 | 用以分配任务的处理系统及其访存方法 |
US11422849B2 (en) * | 2019-08-22 | 2022-08-23 | Intel Corporation | Technology for dynamically grouping threads for energy efficiency |
CN112187581B (zh) * | 2020-09-29 | 2022-08-02 | 北京百度网讯科技有限公司 | 服务信息处理方法、装置、设备及计算机存储介质 |
CN115408153B (zh) * | 2022-08-26 | 2023-06-30 | 海光信息技术股份有限公司 | 多线程处理器的指令分发方法、装置和存储介质 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US621254A (en) | 1899-03-14 | Track-sight | ||
JP3760035B2 (ja) * | 1996-08-27 | 2006-03-29 | 松下電器産業株式会社 | 複数の命令流を独立に処理し、命令流単位に処理性能を柔軟に制御するマルチスレッドプロセッサ |
JPH10111828A (ja) * | 1996-09-27 | 1998-04-28 | Internatl Business Mach Corp <Ibm> | メモリシステム、データ転送方法 |
US6658447B2 (en) * | 1997-07-08 | 2003-12-02 | Intel Corporation | Priority based simultaneous multi-threading |
US6343352B1 (en) * | 1997-10-10 | 2002-01-29 | Rambus Inc. | Method and apparatus for two step memory write operations |
US6212544B1 (en) * | 1997-10-23 | 2001-04-03 | International Business Machines Corporation | Altering thread priorities in a multithreaded processor |
US6216178B1 (en) * | 1998-11-16 | 2001-04-10 | Infineon Technologies Ag | Methods and apparatus for detecting the collision of data on a data bus in case of out-of-order memory accesses of different times of memory access execution |
US6535905B1 (en) * | 1999-04-29 | 2003-03-18 | Intel Corporation | Method and apparatus for thread switching within a multithreaded processor |
US6542921B1 (en) | 1999-07-08 | 2003-04-01 | Intel Corporation | Method and apparatus for controlling the processing priority between multiple threads in a multithreaded processor |
US6543002B1 (en) * | 1999-11-04 | 2003-04-01 | International Business Machines Corporation | Recovery from hang condition in a microprocessor |
US6898617B2 (en) * | 1999-11-18 | 2005-05-24 | International Business Machines Corporation | Method, system and program products for managing thread pools of a computing environment to avoid deadlock situations by dynamically altering eligible thread pools |
US6618825B1 (en) * | 2000-04-20 | 2003-09-09 | Hewlett Packard Development Company, L.P. | Hierarchy of fault isolation timers |
US6920516B2 (en) * | 2000-08-31 | 2005-07-19 | Hewlett-Packard Development Company, L.P. | Anti-starvation interrupt protocol |
US6880073B2 (en) * | 2000-12-28 | 2005-04-12 | International Business Machines Corporation | Speculative execution of instructions and processes before completion of preceding barrier operations |
US7401211B2 (en) * | 2000-12-29 | 2008-07-15 | Intel Corporation | Method for converting pipeline stalls caused by instructions with long latency memory accesses to pipeline flushes in a multithreaded processor |
US6651158B2 (en) * | 2001-06-22 | 2003-11-18 | Intel Corporation | Determination of approaching instruction starvation of threads based on a plurality of conditions |
US7454600B2 (en) * | 2001-06-22 | 2008-11-18 | Intel Corporation | Method and apparatus for assigning thread priority in a processor or the like |
US7248585B2 (en) * | 2001-10-22 | 2007-07-24 | Sun Microsystems, Inc. | Method and apparatus for a packet classifier |
US6968431B2 (en) * | 2001-11-15 | 2005-11-22 | International Business Machines Corporation | Method and apparatus for livelock prevention in a multiprocessor system |
US7065596B2 (en) * | 2002-09-19 | 2006-06-20 | Intel Corporation | Method and apparatus to resolve instruction starvation |
US7000047B2 (en) * | 2003-04-23 | 2006-02-14 | International Business Machines Corporation | Mechanism for effectively handling livelocks in a simultaneous multithreading processor |
US20040216103A1 (en) * | 2003-04-24 | 2004-10-28 | International Business Machines Corporation | Mechanism for detecting and handling a starvation of a thread in a multithreading processor environment |
US7401207B2 (en) * | 2003-04-25 | 2008-07-15 | International Business Machines Corporation | Apparatus and method for adjusting instruction thread priority in a multi-thread processor |
US7748001B2 (en) | 2004-09-23 | 2010-06-29 | Intel Corporation | Multi-thread processing system for detecting and handling live-lock conditions by arbitrating livelock priority of logical processors based on a predertermined amount of time |
US7437539B2 (en) * | 2006-04-14 | 2008-10-14 | International Business Machines Corporation | Issue unit for placing a processor into a gradual slow mode of operation in response to a detected livelock condition within a processor pipeline |
US7434033B2 (en) * | 2006-04-14 | 2008-10-07 | International Business Machines Corporation | Placing a processor into a gradual slow mode of operation in response to a detected livelock condition within a processor pipeline |
-
2004
- 2004-09-23 US US10/948,878 patent/US7748001B2/en not_active Expired - Fee Related
-
2005
- 2005-09-13 KR KR1020077006549A patent/KR100880470B1/ko active IP Right Grant
- 2005-09-13 DE DE112005002305T patent/DE112005002305B4/de not_active Expired - Fee Related
- 2005-09-13 WO PCT/US2005/033699 patent/WO2006034288A2/en active Application Filing
- 2005-09-13 CN CN2005800322593A patent/CN101031877B/zh not_active Expired - Fee Related
- 2005-09-13 JP JP2007532620A patent/JP4603583B2/ja not_active Expired - Fee Related
- 2005-09-13 CN CN200810127366XA patent/CN101334721B/zh not_active Expired - Fee Related
- 2005-09-14 TW TW094131659A patent/TWI298458B/zh not_active IP Right Cessation
-
2010
- 2010-05-19 US US12/783,469 patent/US8276149B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
DE112005002305B4 (de) | 2011-03-17 |
TWI298458B (en) | 2008-07-01 |
DE112005002305T5 (de) | 2007-09-06 |
JP2008513894A (ja) | 2008-05-01 |
WO2006034288A2 (en) | 2006-03-30 |
US20100229172A1 (en) | 2010-09-09 |
CN101334721B (zh) | 2013-06-19 |
KR100880470B1 (ko) | 2009-01-28 |
WO2006034288A3 (en) | 2006-11-23 |
JP4603583B2 (ja) | 2010-12-22 |
CN101031877A (zh) | 2007-09-05 |
US20060064695A1 (en) | 2006-03-23 |
CN101334721A (zh) | 2008-12-31 |
US7748001B2 (en) | 2010-06-29 |
US8276149B2 (en) | 2012-09-25 |
CN101031877B (zh) | 2010-05-05 |
TW200632740A (en) | 2006-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100880470B1 (ko) | 스레드 라이브록 유닛 | |
JP5054665B2 (ja) | スリープ‐起動機構を用いた比較および交換動作 | |
JP6095670B2 (ja) | コンピュータ・システム内のオペランド活性情報の維持 | |
US6542921B1 (en) | Method and apparatus for controlling the processing priority between multiple threads in a multithreaded processor | |
US6651158B2 (en) | Determination of approaching instruction starvation of threads based on a plurality of conditions | |
US9524191B2 (en) | Apparatus including a stall counter to bias processing element selection, and masks to allocate reservation unit entries to one or more processing elements | |
EP3048527B1 (en) | Sharing idled processor execution resources | |
JP6434791B2 (ja) | マルチスレッディングを支援するための演算ユニット、それを含むプロセッサ及びプロセッサの動作方法 | |
AU2011305091A1 (en) | Apparatus, method, and system for dynamically optimizing code utilizing adjustable transaction sizes based on hardware limitations | |
JP2006040142A (ja) | プロセッサシステムおよびスレッド切り替え制御方法 | |
JP2006343872A (ja) | マルチスレッド中央演算装置および同時マルチスレッディング制御方法 | |
KR20100111700A (ko) | 로킹된 오퍼레이션을 수행하기 위한 방법 및 시스템 | |
US8516577B2 (en) | Regulating atomic memory operations to prevent denial of service attack | |
JP5145936B2 (ja) | マルチスレッド中央演算装置および同時マルチスレッディング制御方法 | |
US9626194B2 (en) | Thread livelock unit | |
JP2010061642A (ja) | スレッドのスケジューリングテクニック |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130104 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20140103 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20141230 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20160104 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20170102 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20180103 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20190103 Year of fee payment: 11 |
|
FPAY | Annual fee payment |
Payment date: 20200103 Year of fee payment: 12 |