KR100814993B1 - 특정 메모리 액세스가 발생할 때까지 스레드의 실행을중단하기 위한 방법 및 장치 - Google Patents
특정 메모리 액세스가 발생할 때까지 스레드의 실행을중단하기 위한 방법 및 장치 Download PDFInfo
- Publication number
- KR100814993B1 KR100814993B1 KR1020047010389A KR20047010389A KR100814993B1 KR 100814993 B1 KR100814993 B1 KR 100814993B1 KR 1020047010389 A KR1020047010389 A KR 1020047010389A KR 20047010389 A KR20047010389 A KR 20047010389A KR 100814993 B1 KR100814993 B1 KR 100814993B1
- Authority
- KR
- South Korea
- Prior art keywords
- monitor
- thread
- address
- processor
- instruction
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000004044 response Effects 0.000 claims abstract description 25
- 238000005192 partition Methods 0.000 claims description 13
- 239000000872 buffer Substances 0.000 claims description 11
- 239000003795 chemical substances by application Substances 0.000 claims description 10
- 238000013519 translation Methods 0.000 claims description 9
- 238000001514 detection method Methods 0.000 claims description 8
- 238000012544 monitoring process Methods 0.000 claims description 8
- 230000010076 replication Effects 0.000 claims description 6
- 230000001419 dependent effect Effects 0.000 claims description 5
- 210000001364 upper extremity Anatomy 0.000 claims 1
- 238000013461 design Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 238000012360 testing method Methods 0.000 description 9
- 238000000638 solvent extraction Methods 0.000 description 6
- 230000006378 damage Effects 0.000 description 4
- 230000007420 reactivation Effects 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010367 cloning Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000001693 membrane extraction with a sorbent interface Methods 0.000 description 2
- 239000012536 storage buffer Substances 0.000 description 2
- 206010000210 abortion Diseases 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000012795 verification Methods 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/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; 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
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30079—Pipeline control instructions, e.g. multicycle NOP
-
- 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
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- 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
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
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)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Acyclic And Carbocyclic Compounds In Medicinal Compositions (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
Claims (69)
- 제1 스레드(thread)를 포함하는 복수의 스레드(thread)의 실행을 위한 복수의 실행 수단(execution means) - 상기 제1 스레드는 모니터 주소(monitor address)를 나타내는 관련 주소 피연산자를 갖는 제1 명령어를 가짐 - ;상기 제1 스레드의 실행을 중단시키기 위한 중단 수단(suspend means); 및상기 모니터 주소로의 메모리 액세스에 응답하여, 상기 제1 스레드의 재개를 야기하기 위한 모니터 수단을 포함하는 프로세서.
- 제1항에 있어서, 상기 메모리 액세스가 상기 모니터 주소로의 실질적 또는 잠재적 기록(write)을 나타내는 경우에만, 상기 메모리 액세스에 응답하여 상기 모니터 수단이 재개를 야기하는 프로세서.
- 제1항에 있어서, 만약 상기 제1 스레드가 중단되고 모니터 이벤트들이 언마스킹되면(unmasked), 상기 모니터 수단은 상기 모니터 주소로의 상기 메모리 액세스에 응답하여 상기 제1 스레드의 재개를 야기하는 프로세서.
- 제1항 또는 제2항에 있어서, 상기 메모리 액세스 이외의 이벤트에 응답하여 상기 제1 스레드의 재개를 야기하는 이벤트 검출 로직(event detection logic)을 더 포함하는 프로세서.
- 제4항에 있어서, 상기 이벤트는 인터럽트(interrupt) 또는 장애(fault)인 프로세서.
- 제3항에 있어서, 상기 관련 주소 피연산자는 암시적 피연산자(implicit operand)인 프로세서.
- 제6항에 있어서, 상기 관련 주소 피연산자는 소정의 레지스터에 저장되는 프로세서.
- 제3항에 있어서,상기 중단 수단은 제2 명령어에 응답하여 상기 제1 스레드의 실행을 중단시키고,상기 제1 명령어는 상기 모니터 수단을 인에이블(enable)시키고, 상기 제2 명령어는 상기 모니터 수단에 의해 전달된 이벤트 신호를 언마스킹하는 프로세서.
- 제8항에 있어서, 만약 상기 제1 명령어가 실행되었다면, 상기 제2 명령어는 상기 모니터를 단지 인에이블시키는 프로세서.
- 제1항에 있어서, 상기 중단 로직은 상기 제1 명령어에 응답하여 상기 제1 스 레드의 실행을 중단시키는 프로세서.
- 제3항에 있어서,상기 모니터 주소에 대한 저장소(stores)의 가시성을 향상시키기 위한 일관성 수단(coherency means)을 더 포함하는 프로세서.
- 제3항에 있어서,일관성 수단은, 일관성 도메인 내의 어떠한 캐시도 변경된 상태(modified state) 또는 배타적 상태(exclusive state)에서 상기 모니터링 주소에 정보를 저장하지 않음을 보장하는 프로세서.
- 제11항에 있어서,상기 일관성 수단은, 임의의 내부 캐시들로부터의 상기 모니터링되는 주소와 연관된 캐시 라인을 플러싱(flushing)하고, 상기 모니터 주소에 연관된 상기 캐시 라인의 버스 판독 라인 트랜잭션(bus read line transaction)을 상기 프로세서에 결합된 다른 프로세서들로 생성시키는 프로세서.
- 제11항에 있어서, 상기 일관성 수단은, 임의의 다른 버스 에이전트들이 기록 트랜잭션을 브로드캐스팅(broadcasting)하지 않고 상기 모니터 주소로의 상기 기록 트랜잭션을 수행하지 못하도록, 상기 프로세서가 버스 사이클을 생성하도록 하는 프로세서.
- 제3항에 있어서, 다른 버스 에이전트의 상기 모니터 주소에 있는 정보를 판독한 것에 응답하여 히트 신호(hit signal)를 확인하기 위한 수단을 더 포함하는 프로세서.
- 제15항에 있어서, 히트 신호를 확인하기 위한 상기 수단은 상기 모니터 주소를 포함하는 버스 트랜잭션의 스누프 단계(snoop phase) 동안 상기 히트 신호를 확인하는 프로세서.
- 제3항에 있어서, 상기 관련 주소 피연산자를 물리적 주소인 상기 모니터 주소로 변환하기 위한 주소 변환 로직(address translation logic)을 더 포함하는 프로세서.
- 제3항에 있어서, 상기 모니터 주소는, 물리적 주소, 가상 주소(virtual address), 상대 주소(relative address), 및 선형 주소(linear address)로 이루어진 집합에서 선택되는 프로세서.
- 제3항에 있어서,다수의 스레드들이 활성인 경우에, 상기 복수의 스레드 중의 각각의 활성 스레드에 각각의 분할 가능한 자원의 일부를 제공하기 위해 분할되는 복수의 분할 가능한 자원을 더 포함하고,상기 중단 수단은, 상기 제1 스레드의 실행 중단에 응답하여 상기 제1 스레드에 제공된 상기 복수의 분할들 중의 임의의 분할을 포기하는 프로세서.
- 제19항에 있어서, 상기 모니터 수단은, 상기 모니터 주소로의 상기 메모리 액세스에 응답하여 상기 제1 스레드의 실행을 수용하기 위하여 상기 복수의 분할 가능한 자원이 재분할되도록 하는 프로세서.
- 제20항에 있어서, 상기 복수의 분할 가능한 자원은명령어 큐;재정렬 버퍼(re-order buffer);레지스터 풀(pool); 및복수의 저장 버퍼를 포함하는 프로세서.
- 제21항에 있어서,상기 복수의 스레드의 각각에 대해 복제되는 복수의 복제 자원을 더 포함하고,상기 복수의 복제 자원은복수의 프로세서 상태 변수;명령어 포인터; 및레지스터 리네이밍 로직(register renaming logic)을 포함하는 프로세서.
- 제22항에 있어서,상기 복수의 스레드 중의 임의의 스레드에 의한 사용을 위해 이용 가능한 복수의 공유 자원을 더 포함하고,상기 복수의 공유 자원은상기 복수의 실행 수단;캐시; 및스케쥴러를 포함하는 프로세서.
- 제3항의 상기 프로세서; 및상기 복수의 스레드들을 위한 명령어들을 저장하기 위한 메모리를 포함하는 시스템.
- 제24항에 있어서,멀티 스레딩 운영 시스템; 및멀티미디어 인터페이스를 더 포함하는 시스템.
- 제1 명령어 - 상기 제1 명령어는 모니터 주소를 나타내는 피연산자를 가짐 - 및 제2 명령어를 수신하기 위한 프론트 엔드(front end);상기 제1 명령어 및 상기 제2 명령어를 실행하고, 상기 제1 명령어가 실행되면, 상기 제2 명령어에 응답하여 구현 의존 상태(implementation dependent state)에 진입하기 위한 복수의 실행 자원들; 및상기 모니터 주소로의 메모리 액세스에 응답하여 상기 구현 의존 상태의 탈출을 야기하는 모니터를 포함하는 프로세서.
- 제26항에 있어서, 상기 복수의 실행 자원들은, 상기 제1 명령어가 실행되고, 상기 제1 명령어의 실행 후, 제2 명령어의 실행 이전에 어떠한 중단 이벤트도 발생하지 않은 경우에, 상기 제2 명령어에 응답하여 상기 구현 의존 상태에 진입하는 프로세서.
- 제26항 또는 제27항에 있어서, 상기 피연산자는 선형 주소를 나타내는 소정의 레지스터로부터의 암시적인 피연산자이고, 상기 프로세서는 물리적인 주소인 상기 모니터 주소를 획득하기 위하여 상기 선형 주소를 변환하기 위한 주소 변환 로직을 더 포함하는 프로세서.
- 제26항 또는 제27항에 있어서,상기 프로세서에 결합된 다른 프로세서에서의 어떠한 캐시도 변경된 상태나 배타적 상태에서 상기 모니터 주소에 있는 정보를 저장하지 않음을 보장하기 위한 일관성 로직을 더 포함하는 프로세서.
- 제26항 또는 제27항에 있어서, 다른 프로세서가 상기 모니터 주소를 스누핑(snooping)하는 것에 응답하여 히트 신호를 확인하기 위한 수단을 더 포함하는 프로세서.
- 제26항 또는 제27항에 있어서, 상기 제1 명령어 및 상기 제2 명령어는 복수의 스레드들 중의 제1 스레드의 명령들이고, 상기 구현 의존 상태는 상기 제1 스레드를 위한 분할된 자원이 포기되는 역분할 상태(de-partitioned state)를 포함하는 프로세서.
- 명령어들을 수신하기 위한 복수의 스레드 분할 가능 자원;상기 복수의 스레드 분할 가능 자원과 협력하여 명령어들을 실행하기 위한 복수의 공유 자원;상기 제1 스레드에서의 명령어에 응답하여 제1 스레드를 중단시키며, 상기 제1 스레드를 중단시키는 것 이외에 상기 제1 스레드에 연관된 상기 복수의 스레드 분할 가능 자원의 분할 영역들을 포기하기 위한 스레드 중단 로직; 및상기 프로세서로 하여금 상기 제1 스레드에 의해 표시되는 메모리 주소로의 액세스에 응답하여 상기 복수의 스레드 분할 가능 자원을 재분할하고, 상기 제1 스레드의 실행을 재개하도록 하기 위한 모니터를 포함하는 프로세서.
- 제32에 있어서,상기 메모리 주소로의 상기 액세스는 상기 제1 스레드에서 실행되는 제1 명령어에 의해 명시되며,상기 명령어에 의해, 스레드를 재개시키도록 하는 모니터 이벤트들 신호를 생성하기 위해 상기 모니터가 언마스킹되며, 상기 명령어에 응답하여 상기 스레드 중단 로직이 상기 제1 스레드를 중단시키는 프로세서.
- 제32항 또는 제33항에 있어서, 상기 복수의 분할 가능한 자원들은명령어 큐;재정렬 버퍼;레지스터 풀; 및복수의 저장 버퍼들을 포함하고, 상기 프로세서는 상기 복수의 스레드의 각각에 대해 복제되는 복수의 복제 자원을 더 포함하며,상기 복수의 복제 자원은복수의 프로세서 상태 변수;명령어 포인터; 및레지스터 리네이밍 로직을 포함하는 프로세서.
- 실행 중인 제1 스레드에서의 제1 연산 코드(opcode)를 수신하는 단계 - 상기 제1 연산 코드는 모니터 주소를 나타내는 관련 주소 피연산자를 가짐 - ;상기 제1 스레드를 중단시키는 단계;상기 모니터 주소로의 메모리 액세스를 검출하는 단계; 및상기 모니터 주소로의 상기 메모리 액세스를 검출한 것에 응답하여 상기 제1 스레드를 재개시키는 단계를 포함하는 방법.
- 제35항에 있어서, 상기 제1 스레드를 중단시키는 단계는상기 제1 스레드에서 제2 명령어를 수신하는 단계; 및상기 제2 명령어에 응답하여 상기 제1 스레드를 중단시키는 단계를 포함하는 방법.
- 제35항 또는 제36항에 있어서, 상기 메모리 액세스는 기록 액세스인 방법.
- 제35항 또는 제36항에 있어서,상기 관련 주소 피연산자를 모니터링되는 물리적 주소로 변환하는 단계를 더 포함하고,상기 모니터 주소로의 상기 메모리 액세스를 검출하는 단계는, 상기 모니터링되는 물리적 주소로의 기록 액세스를 검출하는 단계를 포함하는 방법.
- 제35항 또는 제36항에 있어서, 다른 에이전트들이 상기 모니터 주소에 저장된 정보의 소유권(ownership)을 획득하는 것을 방지하는 단계를 더 포함하는 방법.
- 제35항 또는 제36항에 있어서, 상기 검출 단계는외부 버스 트랜잭션들로부터 사이클 정보를 수신하는 단계; 및상기 모니터 주소로의 기록을 검출하는 단계를 포함하는 방법.
- 제35항 또는 제36항에 있어서,상기 메모리 주소로의 상기 메모리 액세스 이외의 이벤트에 응답하여 상기 제1 스레드를 재개시키는 단계를 더 포함하는 방법.
- 제41항에 있어서, 상기 이벤트는 인터럽트인 방법.
- 제42항에 있어서, 상기 인터럽트는, 제2 피연산자에 의해 파괴 이벤트(break event)로 간주되도록 지시되는 마스킹된 인터럽트(masked interrupt)인 방법.
- 제35항 또는 제36항에 있어서,상지 제1 연산코드와 연관된 선형 주소를 물리적인 주소로 변환하는 단계를 더 포함하는 방법.
- 제44항에 있어서,다른 버스 에이전트가 상기 물리적인 주소를 판독하면 히트 신호를 발생시키는 단계를 더 포함하는 방법.
- 제2항에 있어서, 만약 상기 제1 스레드가 중단되고 모니터 이벤트들이 언마스킹되면(unmasked), 상기 모니터 수단은 상기 모니터 주소로의 상기 메모리 액세스에 응답하여 상기 제1 스레드의 재개를 야기하는 프로세서.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/039,579 US7363474B2 (en) | 2001-12-31 | 2001-12-31 | Method and apparatus for suspending execution of a thread until a specified memory access occurs |
US10/039,579 | 2001-12-31 | ||
PCT/US2002/039786 WO2003058447A2 (en) | 2001-12-31 | 2002-12-11 | A method and apparatus for suspending execution of a thread until a specified memory access occurs |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20040068993A KR20040068993A (ko) | 2004-08-02 |
KR100814993B1 true KR100814993B1 (ko) | 2008-03-18 |
Family
ID=21906217
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020047010389A KR100814993B1 (ko) | 2001-12-31 | 2002-12-11 | 특정 메모리 액세스가 발생할 때까지 스레드의 실행을중단하기 위한 방법 및 장치 |
Country Status (11)
Country | Link |
---|---|
US (2) | US7363474B2 (ko) |
JP (2) | JP4601958B2 (ko) |
KR (1) | KR100814993B1 (ko) |
CN (1) | CN100383740C (ko) |
AU (1) | AU2002364557A1 (ko) |
DE (2) | DE10297596B4 (ko) |
GB (1) | GB2400947B (ko) |
HK (1) | HK1066883A1 (ko) |
RU (1) | RU2308754C2 (ko) |
TW (2) | TWI322959B (ko) |
WO (1) | WO2003058447A2 (ko) |
Families Citing this family (137)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7127561B2 (en) * | 2001-12-31 | 2006-10-24 | Intel Corporation | Coherency techniques for suspending execution of a thread until a specified memory access occurs |
US7653912B2 (en) * | 2003-05-30 | 2010-01-26 | Steven Frank | Virtual processor methods and apparatus with unified event notification and consumer-producer memory operations |
US7213093B2 (en) * | 2003-06-27 | 2007-05-01 | Intel Corporation | Queued locks using monitor-memory wait |
US8984199B2 (en) * | 2003-07-31 | 2015-03-17 | Intel Corporation | Inter-processor interrupts |
US20050108711A1 (en) * | 2003-11-13 | 2005-05-19 | Infineon Technologies North America Corporation | Machine instruction for enhanced control of multiple virtual processor systems |
US7310722B2 (en) * | 2003-12-18 | 2007-12-18 | Nvidia Corporation | Across-thread out of order instruction dispatch in a multithreaded graphics processor |
US7490218B2 (en) * | 2004-01-22 | 2009-02-10 | University Of Washington | Building a wavecache |
US7657882B2 (en) | 2004-01-22 | 2010-02-02 | University Of Washington | Wavescalar architecture having a wave order memory |
US7770179B1 (en) * | 2004-01-30 | 2010-08-03 | Xilinx, Inc. | Method and apparatus for multithreading on a programmable logic device |
US7823162B1 (en) | 2004-01-30 | 2010-10-26 | Xilinx, Inc. | Thread circuits and a broadcast channel in programmable logic |
US7552042B1 (en) | 2004-01-30 | 2009-06-23 | Xilinx, Inc. | Method for message processing on a programmable logic device |
US8984517B2 (en) * | 2004-02-04 | 2015-03-17 | Intel Corporation | Sharing idled processor execution resources |
US7581214B2 (en) * | 2004-04-15 | 2009-08-25 | Intel Corporation | Live set transmission in pipelining applications |
JP4376692B2 (ja) * | 2004-04-30 | 2009-12-02 | 富士通株式会社 | 情報処理装置、プロセッサ、プロセッサの制御方法、情報処理装置の制御方法、キャッシュメモリ |
US8607241B2 (en) * | 2004-06-30 | 2013-12-10 | Intel Corporation | Compare and exchange operation using sleep-wakeup mechanism |
US8074030B1 (en) | 2004-07-20 | 2011-12-06 | Oracle America, Inc. | Using transactional memory with early release to implement non-blocking dynamic-sized data structure |
US7206903B1 (en) * | 2004-07-20 | 2007-04-17 | Sun Microsystems, Inc. | Method and apparatus for releasing memory locations during transactional execution |
US7703098B1 (en) | 2004-07-20 | 2010-04-20 | Sun Microsystems, Inc. | Technique to allow a first transaction to wait on condition that affects its working set |
KR101051703B1 (ko) | 2004-08-09 | 2011-07-25 | 삼성전자주식회사 | 서스펜드/리쥼 기능을 갖는 집적 회로 카드 및 집적 회로카드 시스템 |
US7434009B2 (en) * | 2004-09-30 | 2008-10-07 | Freescale Semiconductor, Inc. | Apparatus and method for providing information to a cache module using fetch bursts |
US7257679B2 (en) * | 2004-10-01 | 2007-08-14 | Advanced Micro Devices, Inc. | Sharing monitored cache lines across multiple cores |
US7313673B2 (en) * | 2005-06-16 | 2007-12-25 | International Business Machines Corporation | Fine grained multi-thread dispatch block mechanism |
US9003421B2 (en) * | 2005-11-28 | 2015-04-07 | Intel Corporation | Acceleration threads on idle OS-visible thread execution units |
KR100763200B1 (ko) | 2006-02-24 | 2007-10-04 | 삼성전자주식회사 | 인터럽트 가능한 스레드 동기화 방법 및 장치 |
KR100771877B1 (ko) | 2006-07-21 | 2007-11-01 | 삼성전자주식회사 | 오동작 방지용 커맨드 세트 프로토콜 처리 방법 및 장치 |
US20080022079A1 (en) * | 2006-07-24 | 2008-01-24 | Archer Charles J | Executing an allgather operation with an alltoallv operation in a parallel computer |
US8443341B2 (en) * | 2006-11-09 | 2013-05-14 | Rogue Wave Software, Inc. | System for and method of capturing application characteristics data from a computer system and modeling target system |
US8239657B2 (en) | 2007-02-07 | 2012-08-07 | Qualcomm Incorporated | Address translation method and apparatus |
US8898438B2 (en) * | 2007-03-14 | 2014-11-25 | XMOS Ltd. | Processor architecture for use in scheduling threads in response to communication activity |
US7937532B2 (en) * | 2007-03-30 | 2011-05-03 | Intel Corporation | Method and apparatus for speculative prefetching in a multi-processor/multi-core message-passing machine |
JP4420055B2 (ja) | 2007-04-18 | 2010-02-24 | 日本電気株式会社 | マルチスレッドプロセッサ及びそれに用いるスレッド間同期操作方法 |
US8161480B2 (en) | 2007-05-29 | 2012-04-17 | International Business Machines Corporation | Performing an allreduce operation using shared memory |
KR101109029B1 (ko) * | 2007-06-20 | 2012-01-31 | 후지쯔 가부시끼가이샤 | 연산 장치 |
US20090006663A1 (en) * | 2007-06-27 | 2009-01-01 | Archer Charles J | Direct Memory Access ('DMA') Engine Assisted Local Reduction |
JP2009110209A (ja) * | 2007-10-29 | 2009-05-21 | Panasonic Corp | 演算処理装置、プロセッサ、プログラム変換装置およびプログラム |
US8386822B2 (en) * | 2008-02-01 | 2013-02-26 | International Business Machines Corporation | Wake-and-go mechanism with data monitoring |
US8452947B2 (en) * | 2008-02-01 | 2013-05-28 | International Business Machines Corporation | Hardware wake-and-go mechanism and content addressable memory with instruction pre-fetch look-ahead to detect programming idioms |
US8732683B2 (en) * | 2008-02-01 | 2014-05-20 | International Business Machines Corporation | Compiler providing idiom to idiom accelerator |
US8127080B2 (en) | 2008-02-01 | 2012-02-28 | International Business Machines Corporation | Wake-and-go mechanism with system address bus transaction master |
US8880853B2 (en) * | 2008-02-01 | 2014-11-04 | International Business Machines Corporation | CAM-based wake-and-go snooping engine for waking a thread put to sleep for spinning on a target address lock |
US8612977B2 (en) * | 2008-02-01 | 2013-12-17 | International Business Machines Corporation | Wake-and-go mechanism with software save of thread state |
US8788795B2 (en) * | 2008-02-01 | 2014-07-22 | International Business Machines Corporation | Programming idiom accelerator to examine pre-fetched instruction streams for multiple processors |
US8225120B2 (en) * | 2008-02-01 | 2012-07-17 | International Business Machines Corporation | Wake-and-go mechanism with data exclusivity |
US8316218B2 (en) | 2008-02-01 | 2012-11-20 | International Business Machines Corporation | Look-ahead wake-and-go engine with speculative execution |
US8640141B2 (en) * | 2008-02-01 | 2014-01-28 | International Business Machines Corporation | Wake-and-go mechanism with hardware private array |
US8171476B2 (en) * | 2008-02-01 | 2012-05-01 | International Business Machines Corporation | Wake-and-go mechanism with prioritization of threads |
US8725992B2 (en) | 2008-02-01 | 2014-05-13 | International Business Machines Corporation | Programming language exposing idiom calls to a programming idiom accelerator |
US8341635B2 (en) | 2008-02-01 | 2012-12-25 | International Business Machines Corporation | Hardware wake-and-go mechanism with look-ahead polling |
US8312458B2 (en) * | 2008-02-01 | 2012-11-13 | International Business Machines Corporation | Central repository for wake-and-go mechanism |
US8516484B2 (en) * | 2008-02-01 | 2013-08-20 | International Business Machines Corporation | Wake-and-go mechanism for a data processing system |
US8250396B2 (en) * | 2008-02-01 | 2012-08-21 | International Business Machines Corporation | Hardware wake-and-go mechanism for a data processing system |
US8145849B2 (en) | 2008-02-01 | 2012-03-27 | International Business Machines Corporation | Wake-and-go mechanism with system bus response |
US8422402B2 (en) | 2008-04-01 | 2013-04-16 | International Business Machines Corporation | Broadcasting a message in a parallel computer |
US8281053B2 (en) | 2008-07-21 | 2012-10-02 | International Business Machines Corporation | Performing an all-to-all data exchange on a plurality of data buffers by performing swap operations |
CN101788922B (zh) * | 2009-01-22 | 2013-12-25 | 国际商业机器公司 | 基于辅助线程实现事务存储系统的方法和装置 |
KR101581311B1 (ko) * | 2009-03-11 | 2015-12-31 | 삼성전자주식회사 | 플래시 메모리 장치 및 그 제어 방법 |
US8886919B2 (en) | 2009-04-16 | 2014-11-11 | International Business Machines Corporation | Remote update programming idiom accelerator with allocated processor resources |
US8230201B2 (en) * | 2009-04-16 | 2012-07-24 | International Business Machines Corporation | Migrating sleeping and waking threads between wake-and-go mechanisms in a multiple processor data processing system |
US8145723B2 (en) * | 2009-04-16 | 2012-03-27 | International Business Machines Corporation | Complex remote update programming idiom accelerator |
US8082315B2 (en) * | 2009-04-16 | 2011-12-20 | International Business Machines Corporation | Programming idiom accelerator for remote update |
US8156275B2 (en) | 2009-05-13 | 2012-04-10 | Apple Inc. | Power managed lock optimization |
US8364862B2 (en) * | 2009-06-11 | 2013-01-29 | Intel Corporation | Delegating a poll operation to another device |
WO2010151267A1 (en) * | 2009-06-26 | 2010-12-29 | Intel Corporation | Optimizations for an unbounded transactional memory (utm) system |
EP2284693A1 (en) * | 2009-08-03 | 2011-02-16 | C.R.F. Società Consortile per Azioni | Wait instruction |
US8695002B2 (en) * | 2009-10-20 | 2014-04-08 | Lantiq Deutschland Gmbh | Multi-threaded processors and multi-processor systems comprising shared resources |
US8447960B2 (en) * | 2010-01-08 | 2013-05-21 | International Business Machines Corporation | Pausing and activating thread state upon pin assertion by external logic monitoring polling loop exit time condition |
US20110173420A1 (en) * | 2010-01-08 | 2011-07-14 | International Business Machines Corporation | Processor resume unit |
US8464035B2 (en) | 2009-12-18 | 2013-06-11 | Intel Corporation | Instruction for enabling a processor wait state |
US9424087B2 (en) | 2010-04-29 | 2016-08-23 | International Business Machines Corporation | Optimizing collective operations |
US8949577B2 (en) | 2010-05-28 | 2015-02-03 | International Business Machines Corporation | Performing a deterministic reduction operation in a parallel computer |
CN102483708B (zh) * | 2010-07-07 | 2016-01-20 | 松下电器产业株式会社 | 处理器 |
US8776081B2 (en) | 2010-09-14 | 2014-07-08 | International Business Machines Corporation | Send-side matching of data communications messages |
US8566841B2 (en) | 2010-11-10 | 2013-10-22 | International Business Machines Corporation | Processing communications events in parallel active messaging interface by awakening thread from wait state |
US8713362B2 (en) | 2010-12-01 | 2014-04-29 | International Business Machines Corporation | Obviation of recovery of data store consistency for application I/O errors |
US8694821B2 (en) * | 2010-12-03 | 2014-04-08 | International Business Machines Corporation | Generation of standby images of applications |
CN102736945B (zh) * | 2011-03-31 | 2016-05-18 | 国际商业机器公司 | 一种运行应用程序的多个实例的方法和系统 |
CN102760176B (zh) * | 2011-04-29 | 2015-02-11 | 无锡江南计算技术研究所 | 硬件事务级仿真方法、引擎及系统 |
US8893083B2 (en) | 2011-08-09 | 2014-11-18 | International Business Machines Coporation | Collective operation protocol selection in a parallel computer |
US8910178B2 (en) | 2011-08-10 | 2014-12-09 | International Business Machines Corporation | Performing a global barrier operation in a parallel computer |
US8667501B2 (en) | 2011-08-10 | 2014-03-04 | International Business Machines Corporation | Performing a local barrier operation |
US8868843B2 (en) | 2011-11-30 | 2014-10-21 | Advanced Micro Devices, Inc. | Hardware filter for tracking block presence in large caches |
US9798548B2 (en) * | 2011-12-21 | 2017-10-24 | Nvidia Corporation | Methods and apparatus for scheduling instructions using pre-decode data |
WO2013095570A1 (en) | 2011-12-22 | 2013-06-27 | Intel Corporation | Instruction that specifies an application thread performance state |
JP5819184B2 (ja) | 2011-12-28 | 2015-11-18 | 富士通株式会社 | 情報処理装置及び情報処理装置の制御方法 |
WO2013101188A1 (en) * | 2011-12-30 | 2013-07-04 | Intel Corporation | Memory event notification |
US8706847B2 (en) | 2012-02-09 | 2014-04-22 | International Business Machines Corporation | Initiating a collective operation in a parallel computer |
US9495135B2 (en) | 2012-02-09 | 2016-11-15 | International Business Machines Corporation | Developing collective operations for a parallel computer |
CN104205042B (zh) | 2012-03-30 | 2019-01-08 | 英特尔公司 | 用于具有通用cpu核心和紧密耦合的加速器的处理核心的上下文切换机制 |
US9218288B2 (en) | 2012-06-15 | 2015-12-22 | International Business Machines Corporation | Monitoring a value in storage without repeated storage access |
US9256455B2 (en) * | 2012-11-20 | 2016-02-09 | Red Hat Isreal, Ltd. | Delivery of events from a virtual machine to host CPU using memory monitoring instructions |
US9563425B2 (en) * | 2012-11-28 | 2017-02-07 | Intel Corporation | Instruction and logic to provide pushing buffer copy and store functionality |
US9141454B2 (en) * | 2012-12-27 | 2015-09-22 | Intel Corporation | Signaling software recoverable errors |
US10705961B2 (en) | 2013-09-27 | 2020-07-07 | Intel Corporation | Scalably mechanism to implement an instruction that monitors for writes to an address |
US9250935B2 (en) * | 2013-11-25 | 2016-02-02 | Marvell World Trade Ltd. | Systems and methods for loop suspension in java programming |
US9218185B2 (en) | 2014-03-27 | 2015-12-22 | International Business Machines Corporation | Multithreading capability information retrieval |
US9417876B2 (en) | 2014-03-27 | 2016-08-16 | International Business Machines Corporation | Thread context restoration in a multithreading computer system |
US9804846B2 (en) | 2014-03-27 | 2017-10-31 | International Business Machines Corporation | Thread context preservation in a multithreading computer system |
US10102004B2 (en) | 2014-03-27 | 2018-10-16 | International Business Machines Corporation | Hardware counters to track utilization in a multithreading computer system |
US9921848B2 (en) | 2014-03-27 | 2018-03-20 | International Business Machines Corporation | Address expansion and contraction in a multithreading computer system |
US9594660B2 (en) | 2014-03-27 | 2017-03-14 | International Business Machines Corporation | Multithreading computer system and program product for executing a query instruction for idle time accumulation among cores |
US9354883B2 (en) | 2014-03-27 | 2016-05-31 | International Business Machines Corporation | Dynamic enablement of multithreading |
US9552033B2 (en) * | 2014-04-22 | 2017-01-24 | Qualcomm Incorporated | Latency-based power mode units for controlling power modes of processor cores, and related methods and systems |
US9778949B2 (en) * | 2014-05-05 | 2017-10-03 | Google Inc. | Thread waiting in a multithreaded processor architecture |
US9256477B2 (en) * | 2014-05-29 | 2016-02-09 | Netapp, Inc. | Lockless waterfall thread communication |
US9477521B2 (en) | 2014-05-29 | 2016-10-25 | Netapp, Inc. | Method and system for scheduling repetitive tasks in O(1) |
US9304702B2 (en) | 2014-05-29 | 2016-04-05 | Netapp, Inc. | System and method for parallelized performance data collection in a computing 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 |
JP6227151B2 (ja) * | 2014-10-03 | 2017-11-08 | インテル・コーポレーション | アドレスへの書き込みに対する監視命令を実行するスケーラブル機構 |
US9575802B2 (en) | 2014-10-28 | 2017-02-21 | International Business Machines Corporation | Controlling execution of threads in a multi-threaded processor |
US11080064B2 (en) | 2014-10-28 | 2021-08-03 | International Business Machines Corporation | Instructions controlling access to shared registers of a multi-threaded processor |
CN107111523B (zh) * | 2014-11-11 | 2020-10-20 | 瑞萨电子株式会社 | 命令执行控制系统和命令执行控制方法 |
WO2016088220A1 (ja) * | 2014-12-03 | 2016-06-09 | 株式会社日立製作所 | 計算機及び論理プロセッサの制御方法 |
CN105843592A (zh) * | 2015-01-12 | 2016-08-10 | 芋头科技(杭州)有限公司 | 一种在预设嵌入式系统中实现脚本操作的系统 |
GB2537115B (en) * | 2015-04-02 | 2021-08-25 | Advanced Risc Mach Ltd | Event monitoring in a multi-threaded data processing apparatus |
US10908909B2 (en) | 2015-06-09 | 2021-02-02 | Optimum Semiconductor Technologies Inc. | Processor with mode support |
KR102476357B1 (ko) | 2015-08-06 | 2022-12-09 | 삼성전자주식회사 | 클럭 관리 유닛과 이를 적용하는 집적 회로 및 시스템 온 칩 및 그 동작 방법 |
US9916178B2 (en) * | 2015-09-25 | 2018-03-13 | Intel Corporation | Technologies for integrated thread scheduling |
GB2544994A (en) * | 2015-12-02 | 2017-06-07 | Swarm64 As | Data processing |
CN105677487B (zh) * | 2016-01-12 | 2019-02-15 | 浪潮通用软件有限公司 | 一种控制资源占用的方法及装置 |
US11023233B2 (en) | 2016-02-09 | 2021-06-01 | Intel Corporation | Methods, apparatus, and instructions for user level thread suspension |
US11061730B2 (en) * | 2016-11-18 | 2021-07-13 | Red Hat Israel, Ltd. | Efficient scheduling for hyper-threaded CPUs using memory monitoring |
CN108255587B (zh) * | 2016-12-29 | 2021-08-24 | 展讯通信(上海)有限公司 | 一种同步多线程处理器 |
US10353817B2 (en) * | 2017-03-07 | 2019-07-16 | International Business Machines Corporation | Cache miss thread balancing |
US10275254B2 (en) | 2017-03-08 | 2019-04-30 | International Business Machines Corporation | Spin loop delay instruction |
TWI648620B (zh) * | 2017-08-07 | 2019-01-21 | 慧榮科技股份有限公司 | 記憶體裝置以及操作指令錯誤處理方法 |
KR102043538B1 (ko) * | 2018-01-18 | 2019-11-11 | 주식회사 알티스트 | 파티셔닝을 적용하여 프로세스를 모니터링하는 컴퓨팅 시스템 |
CN109508229A (zh) * | 2018-09-19 | 2019-03-22 | 安徽慧视金瞳科技有限公司 | 一种多点同时绘制的匹配方法 |
US11068407B2 (en) | 2018-10-26 | 2021-07-20 | International Business Machines Corporation | Synchronized access to data in shared memory by protecting the load target address of a load-reserve instruction |
US10884740B2 (en) | 2018-11-08 | 2021-01-05 | International Business Machines Corporation | Synchronized access to data in shared memory by resolving conflicting accesses by co-located hardware threads |
US11119781B2 (en) | 2018-12-11 | 2021-09-14 | International Business Machines Corporation | Synchronized access to data in shared memory by protecting the load target address of a fronting load |
US11086672B2 (en) | 2019-05-07 | 2021-08-10 | International Business Machines Corporation | Low latency management of processor core wait state |
US11231881B2 (en) | 2020-04-02 | 2022-01-25 | Dell Products L.P. | Raid data storage device multi-step command coordination system |
US11106608B1 (en) | 2020-06-22 | 2021-08-31 | International Business Machines Corporation | Synchronizing access to shared memory by extending protection for a target address of a store-conditional request |
CN111857591A (zh) * | 2020-07-20 | 2020-10-30 | 北京百度网讯科技有限公司 | 用于执行指令的方法、装置、设备和计算机可读存储介质 |
CN114489792B (zh) * | 2021-03-25 | 2022-10-11 | 沐曦集成电路(上海)有限公司 | 处理器装置及其指令执行方法 |
US11693776B2 (en) | 2021-06-18 | 2023-07-04 | International Business Machines Corporation | Variable protection window extension for a target address of a store-conditional request |
CN116185891B (zh) * | 2023-04-27 | 2023-07-21 | 珠海妙存科技有限公司 | 描述符管理方法 |
Family Cites Families (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4491910A (en) * | 1982-02-22 | 1985-01-01 | Texas Instruments Incorporated | Microcomputer having data shift within memory |
JPS59111526A (ja) | 1982-12-16 | 1984-06-27 | Fujitsu Ltd | 信号処理方式 |
JPH06105460B2 (ja) | 1988-06-07 | 1994-12-21 | 富士通株式会社 | マルチプロセッサのプロセッサ切換え装置 |
GB8817911D0 (en) | 1988-07-27 | 1988-09-01 | Int Computers Ltd | Data processing apparatus |
US4965718A (en) | 1988-09-29 | 1990-10-23 | International Business Machines Corporation | Data processing system incorporating a memory resident directive for synchronizing multiple tasks among plurality of processing elements by monitoring alternation of semaphore data |
US5357617A (en) | 1991-11-22 | 1994-10-18 | International Business Machines Corporation | Method and apparatus for substantially concurrent multiple instruction thread processing by a single pipeline processor |
JP2866241B2 (ja) | 1992-01-30 | 1999-03-08 | 株式会社東芝 | コンピュータシステムおよびスケジューリング方法 |
US5428757A (en) * | 1992-04-29 | 1995-06-27 | International Business Machines Corporation | Method for reducing translation look aside buffer purges in a multitasking system |
US5546593A (en) | 1992-05-18 | 1996-08-13 | Matsushita Electric Industrial Co., Ltd. | Multistream instruction processor able to reduce interlocks by having a wait state for an instruction stream |
JP3678759B2 (ja) | 1992-07-21 | 2005-08-03 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | 割込を発生するための装置および割込を発生するための方法 |
US5493660A (en) * | 1992-10-06 | 1996-02-20 | Hewlett-Packard Company | Software assisted hardware TLB miss handler |
US5584031A (en) | 1993-11-09 | 1996-12-10 | Motorola Inc. | System and method for executing a low power delay instruction |
US5546037A (en) | 1993-11-15 | 1996-08-13 | Cirrus Logic, Inc. | NAPNOP circuit for conserving power in computer systems |
US5584014A (en) * | 1994-12-20 | 1996-12-10 | Sun Microsystems, Inc. | Apparatus and method to preserve data in a set associative memory device |
JPH08212512A (ja) * | 1995-02-03 | 1996-08-20 | Hitachi Ltd | 磁気記憶装置及びそれに用いる薄膜磁気ヘッドとその製造方法 |
JPH08320797A (ja) | 1995-05-24 | 1996-12-03 | Fuji Xerox Co Ltd | プログラム制御システム |
JPH096633A (ja) | 1995-06-07 | 1997-01-10 | Internatl Business Mach Corp <Ibm> | データ処理システムに於ける高性能多重論理経路の動作用の方法とシステム |
US5933627A (en) | 1996-07-01 | 1999-08-03 | Sun Microsystems | Thread switch on blocked load or store using instruction thread field |
EP1291765B1 (en) | 1996-08-27 | 2009-12-30 | Panasonic Corporation | Multithreaded processor for processing multiple instruction streams independently of each other by flexibly controlling throughput in each instruction stream |
US5961639A (en) | 1996-12-16 | 1999-10-05 | International Business Machines Corporation | Processor and method for dynamically inserting auxiliary instructions within an instruction stream during execution |
US5835705A (en) * | 1997-03-11 | 1998-11-10 | International Business Machines Corporation | Method and system for performance per-thread monitoring in a multithreaded processor |
AU6586898A (en) | 1997-03-21 | 1998-10-20 | University Of Maryland | Spawn-join instruction set architecture for providing explicit multithreading |
UA55489C2 (uk) * | 1997-10-07 | 2003-04-15 | Каналь+ Сосьєте Анонім | Пристрій для багатопотокової обробки даних (варіанти) |
US6076157A (en) | 1997-10-23 | 2000-06-13 | International Business Machines Corporation | Method and apparatus to force a thread switch in a multithreaded processor |
US6016542A (en) * | 1997-12-31 | 2000-01-18 | Intel Corporation | Detecting long latency pipeline stalls for thread switching |
JP2000010910A (ja) * | 1998-06-22 | 2000-01-14 | Nec Corp | データ転送制御装置およびデータ転送制御方法ならびに記録媒体 |
US6920634B1 (en) * | 1998-08-03 | 2005-07-19 | International Business Machines Corporation | Detecting and causing unsafe latent accesses to a resource in multi-threaded programs |
US6505229B1 (en) * | 1998-09-25 | 2003-01-07 | Intelect Communications, Inc. | Method for allowing multiple processing threads and tasks to execute on one or more processor units for embedded real-time processor systems |
US6401155B1 (en) * | 1998-12-22 | 2002-06-04 | Philips Electronics North America Corporation | Interrupt/software-controlled thread processing |
SG65097A1 (en) | 1998-12-28 | 2001-08-21 | Compaq Computer Corp | Break event generation during transitions between modes of operation in a computer system |
US6535905B1 (en) | 1999-04-29 | 2003-03-18 | Intel Corporation | Method and apparatus for thread switching within a multithreaded processor |
US6351808B1 (en) * | 1999-05-11 | 2002-02-26 | Sun Microsystems, Inc. | Vertically and horizontally threaded processor with multidimensional storage for storing thread data |
US6341347B1 (en) * | 1999-05-11 | 2002-01-22 | Sun Microsystems, Inc. | Thread switch logic in a multiple-thread processor |
US6493741B1 (en) | 1999-10-01 | 2002-12-10 | Compaq Information Technologies Group, L.P. | Method and apparatus to quiesce a portion of a simultaneous multithreaded central processing unit |
US6357016B1 (en) | 1999-12-09 | 2002-03-12 | Intel Corporation | Method and apparatus for disabling a clock signal within a multithreaded processor |
US6496925B1 (en) | 1999-12-09 | 2002-12-17 | Intel Corporation | Method and apparatus for processing an event occurrence within a multithreaded processor |
US6671795B1 (en) | 2000-01-21 | 2003-12-30 | Intel Corporation | Method and apparatus for pausing execution in a processor or the like |
US7856633B1 (en) | 2000-03-24 | 2010-12-21 | Intel Corporation | LRU cache replacement for a partitioned set associative cache |
US6931639B1 (en) * | 2000-08-24 | 2005-08-16 | International Business Machines Corporation | Method for implementing a variable-partitioned queue for simultaneous multithreaded processors |
TW461627U (en) * | 2000-12-21 | 2001-10-21 | Hon Hai Prec Ind Co Ltd | Electrical connector |
US6625698B2 (en) * | 2000-12-28 | 2003-09-23 | Unisys Corporation | Method and apparatus for controlling memory storage locks based on cache line ownership |
US6463511B2 (en) * | 2000-12-29 | 2002-10-08 | Intel Corporation | System and method for high performance execution of locked memory instructions in a system with distributed memory and a restrictive memory model |
US7120762B2 (en) * | 2001-10-19 | 2006-10-10 | Wisconsin Alumni Research Foundation | Concurrent execution of critical sections by eliding ownership of locks |
US7127561B2 (en) | 2001-12-31 | 2006-10-24 | Intel Corporation | Coherency techniques for suspending execution of a thread until a specified memory access occurs |
US20030126379A1 (en) | 2001-12-31 | 2003-07-03 | Shiv Kaushik | Instruction sequences for suspending execution of a thread until a specified memory access occurs |
US20030126416A1 (en) | 2001-12-31 | 2003-07-03 | Marr Deborah T. | Suspending execution of a thread in a multi-threaded processor |
-
2001
- 2001-12-31 US US10/039,579 patent/US7363474B2/en active Active
-
2002
- 2002-12-11 CN CNB028265904A patent/CN100383740C/zh not_active Expired - Lifetime
- 2002-12-11 AU AU2002364557A patent/AU2002364557A1/en not_active Abandoned
- 2002-12-11 DE DE10297596.5T patent/DE10297596B4/de not_active Expired - Lifetime
- 2002-12-11 WO PCT/US2002/039786 patent/WO2003058447A2/en active Application Filing
- 2002-12-11 KR KR1020047010389A patent/KR100814993B1/ko active IP Right Grant
- 2002-12-11 JP JP2003558691A patent/JP4601958B2/ja not_active Expired - Lifetime
- 2002-12-11 RU RU2004123622/09A patent/RU2308754C2/ru not_active IP Right Cessation
- 2002-12-11 DE DE10297856.5A patent/DE10297856B4/de not_active Expired - Lifetime
- 2002-12-11 GB GB0412867A patent/GB2400947B/en not_active Expired - Lifetime
- 2002-12-25 TW TW091137282A patent/TWI322959B/zh not_active IP Right Cessation
- 2002-12-25 TW TW097151472A patent/TWI590153B/zh not_active IP Right Cessation
-
2004
- 2004-12-07 HK HK04109671A patent/HK1066883A1/xx not_active IP Right Cessation
-
2007
- 2007-08-08 US US11/891,076 patent/US20080034190A1/en not_active Abandoned
-
2008
- 2008-03-26 JP JP2008081180A patent/JP4990829B2/ja not_active Expired - Lifetime
Non-Patent Citations (1)
Title |
---|
TR1430.pdf |
Also Published As
Publication number | Publication date |
---|---|
JP4990829B2 (ja) | 2012-08-01 |
JP2006500639A (ja) | 2006-01-05 |
US20030126186A1 (en) | 2003-07-03 |
RU2004123622A (ru) | 2005-03-27 |
DE10297856B4 (de) | 2014-07-17 |
US20080034190A1 (en) | 2008-02-07 |
GB2400947A (en) | 2004-10-27 |
WO2003058447A2 (en) | 2003-07-17 |
TW200305820A (en) | 2003-11-01 |
DE10297596B4 (de) | 2017-09-07 |
JP4601958B2 (ja) | 2010-12-22 |
US7363474B2 (en) | 2008-04-22 |
RU2308754C2 (ru) | 2007-10-20 |
TWI322959B (en) | 2010-04-01 |
TWI590153B (zh) | 2017-07-01 |
CN1688974A (zh) | 2005-10-26 |
KR20040068993A (ko) | 2004-08-02 |
CN100383740C (zh) | 2008-04-23 |
DE10297596T5 (de) | 2004-12-02 |
WO2003058447A3 (en) | 2004-12-16 |
AU2002364557A8 (en) | 2003-07-24 |
GB2400947B (en) | 2005-08-24 |
GB0412867D0 (en) | 2004-07-14 |
TW200941340A (en) | 2009-10-01 |
AU2002364557A1 (en) | 2003-07-24 |
HK1066883A1 (en) | 2005-04-01 |
JP2008165834A (ja) | 2008-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100814993B1 (ko) | 특정 메모리 액세스가 발생할 때까지 스레드의 실행을중단하기 위한 방법 및 장치 | |
US7127561B2 (en) | Coherency techniques for suspending execution of a thread until a specified memory access occurs | |
KR100864747B1 (ko) | 모니터-메모리 대기를 사용하여 큐잉된 로크들 | |
US20030126379A1 (en) | Instruction sequences for suspending execution of a thread until a specified memory access occurs | |
KR100617417B1 (ko) | 멀티-스레딩 프로세서에서 스레드의 실행을 정지시키기위한 시스템 및 방법 | |
US6687809B2 (en) | Maintaining processor ordering by checking load addresses of unretired load instructions against snooping store addresses | |
US9733937B2 (en) | Compare and exchange operation using sleep-wakeup mechanism | |
US7631307B2 (en) | User-programmable low-overhead multithreading | |
US7529914B2 (en) | Method and apparatus for speculative execution of uncontended lock instructions | |
US20090132796A1 (en) | Polling using reservation mechanism | |
TW201508635A (zh) | 多核心微處理器動態重新配置 | |
TW201510860A (zh) | 多核心同步機制 | |
US6006325A (en) | Method and apparatus for instruction and data serialization in a computer processor | |
Becker et al. | Measuring software performance on linux | |
KR20210087431A (ko) | 트랜잭션 메모리를 위한 장치 및 데이터 처리 방법 | |
GB2441903A (en) | Resuming control of resources by a processor on exiting a sleep mode and disabling an associated monitor. | |
KR100333580B1 (ko) | 개별 프로세서의 초기 해제에 의한 시스템 직렬화 및 그 멀티프로세서 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
AMND | Amendment | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
J201 | Request for trial against refusal decision | ||
AMND | Amendment | ||
B601 | Maintenance of original decision after re-examination before a trial | ||
E801 | Decision on dismissal of amendment | ||
S901 | Examination by remand of revocation | ||
GRNO | Decision to grant (after opposition) | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130228 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20140303 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20150227 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20160303 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20170302 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20190227 Year of fee payment: 12 |
|
FPAY | Annual fee payment |
Payment date: 20200227 Year of fee payment: 13 |