WO2009073722A1 - Multithreaded processor with lock indicator - Google Patents

Multithreaded processor with lock indicator Download PDF

Info

Publication number
WO2009073722A1
WO2009073722A1 PCT/US2008/085402 US2008085402W WO2009073722A1 WO 2009073722 A1 WO2009073722 A1 WO 2009073722A1 US 2008085402 W US2008085402 W US 2008085402W WO 2009073722 A1 WO2009073722 A1 WO 2009073722A1
Authority
WO
WIPO (PCT)
Prior art keywords
tlb
thread
lock
logic circuit
lock indicator
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.)
Ceased
Application number
PCT/US2008/085402
Other languages
English (en)
French (fr)
Inventor
Lucian Codrescu
Erich J. Plondke
Suresh K Venkumahanti
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Priority to JP2010537031A priority Critical patent/JP2011505647A/ja
Priority to KR1020107014736A priority patent/KR101146359B1/ko
Priority to EP08856823.3A priority patent/EP2232370B1/en
Priority to CN200880119089.6A priority patent/CN101884029B/zh
Publication of WO2009073722A1 publication Critical patent/WO2009073722A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30083Power or thermal control instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/52Indexing scheme relating to G06F9/52
    • G06F2209/522Manager
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • multithreaded processors that can process multiple threads concurrently at an electronic device.
  • multithreaded processors typically are designed so that some processing resources, such as caches, buses, or other resources, are shared by multiple threads.
  • processing resources such as caches, buses, or other resources
  • certain operations may only be reliably performed at a shared resource by a single thread. For example, unpredictable results can arise when a memory address is written to by two different threads concurrently.
  • Software locks can be used to manage shared resources by providing a value in memory, such as a semaphore, that indicates whether the shared resource is unlocked and available for use by a particular process, or locked and unavailable for use.
  • Software locks are typically set and released by software instructions and may be unreliable, such as when the software lock is accessed by poorly written or malicious software.
  • a processor typically repeatedly executes instructions to check a value of the lock before continuing with program execution.
  • each operation using the software lock introduces a processing delay due to accessing, comparing, and/or writing a value to the portion of memory storing the software lock.
  • a system in a particular embodiment, includes a translation lookaside buffer (TLB) shared by multiple processing threads of a multithreaded processor.
  • the system includes a TLB lock bit in a register of the multithreaded processor.
  • the system also includes a control logic circuit configured to put a particular thread of the multiple processing threads to sleep in response to the TLB lock bit having a locked configuration when a TLB miss event associated with the particular thread is detected.
  • a system in another particular embodiment, includes means for indicating a lock status of a shared resource in a multithreaded processor.
  • the system includes means for automatically locking the shared resource before processing exception handling instructions associated with the shared resource.
  • the system further includes means for unlocking the shared resource.
  • a computer readable medium having processor executable instructions having processor executable instructions.
  • the processor executable instructions cause a processor to handle an exception associated with a resource that is shared by multiple threads of a multi-threaded processor.
  • the processor executable instructions also cause a processor to unlock a hardware lock for the resource after the exception has been handled.
  • FIG. 1 is a block diagram of an embodiment of a system that includes a multithreaded processor with a lock indicator
  • the TLB lock indicator 110 may include one or more bits of a global status register of the multithreaded processor core 102.
  • the TLB lock indicator 110 may be responsive to control signals from the control logic circuit 106.
  • the TLB lock indicator 110 has a locked configuration to indicate that at least one thread 112 or 114 is performing a write operation at the TLB 108 and that access to the TLB by other threads is restricted.
  • TLB lock indicator 110 has an unlocked configuration, enabling normal access to the TLB 108 by the threads 112 and 114.
  • the exception handler 122 may be operable to fetch and execute instructions that enable recovery from the TLB miss event. For example, the exception handler 122 may process instructions causing the requested virtual address that triggered the TLB miss event to be located at a non-core memory resource, such as a page table. The exception handler 122 may write or program a translation of the virtual address into the TLB 108. The exception handler 122 may also be configured to execute a return instruction to exit an exception handling mode. The return instruction may be operable to return the thread 112 to a non- exception state and may request the control logic circuit 106 to unlock the TLB lock indicator 110. Alternatively, the return instruction may unlock the TLB lock indicator 110 upon return from the exception state without sending an unlock request to the control logic circuit 106.
  • the control logic circuit 106 may lock the TLB 108 using the TLB lock indicator 110 to exclude other threads from modifying data at the TLB 108 while exception handling instructions respond to the TLB miss event.
  • the TLB lock indicator 110 may include one or more bits in a global control register that may be set by the control logic circuit 106 to indicate that the TLB 108 is locked from access by the other threads.
  • the control logic circuit 106 is configured to set the TLB lock indicator 110 via a built-in hardware process and not by executing instructions of a software process, enabling a faster response to the TLB miss event, improved processor performance, and reduced vulnerability to malicious or poorly- behaved software applications. Additional performance benefits are enabled by using a global register bit in the multithreaded processor core 102 as the TLB lock indicator 110.
  • the control logic circuit 106 may be configured to directly set, clear, and determine a status of the TLB lock indicator 110, so that a response to a TLB miss event may be significantly faster than storing or retrieving a lock indicator value such as a semaphore at the non-processor core memory 104.
  • control logic circuit 106 may instruct the thread 112 or 114 that generated the TLB miss event to launch the exception handler 122 or 132 to respond to the TLB miss event.
  • the control logic circuit 106 may unlock the TLB lock indicator 110.
  • the second thread 114 may also request a virtual address translation that results in a TLB miss event.
  • the control logic circuit 106 may determine that the TLB lock indicator 110 is in a locked configuration, and may instruct the second thread 114 to go to sleep. For example, the control logic circuit 106 may instruct the second thread 114 to save a current state, to record an address of a last executed packet that caused the TLB miss event, and to enter a wait state during which the second thread 114 does not process instructions. Additional threads may encounter TLB miss events while the TLB lock indicator 110 remains locked and may also be put to sleep by the control logic circuit 106.
  • the control logic circuit 106 When the control logic circuit 106 is informed that the TLB miss event associated with the first thread 112 has been handled, such as via a return instruction executed by the exception handler 122, the control logic circuit 106 unlocks the TLB lock indicator 110 and determines whether one or more processing threads are asleep due to the TLB 108 being locked. If so, the control logic circuit 106 awakens one or more of the sleeping threads, such as the second thread 114, to resume processing.
  • the second thread 114 may be awakened and may replay the instruction packet that was executed immediately prior to the second thread 114 being put to sleep and that resulted in the TLB miss event.
  • the replayed instruction packet may repeat a request for translation of a virtual address at the TLB 108.
  • the virtual address translation requested by the second thread may potentially be stored in the TLB 108. If not, a second TLB miss event occurs, and in response the control logic circuit 106 resets the TLB lock indicator 110 to the locked configuration and instructs the exception handler 132 of the second thread 114 to begin processing instructions to handle the second TLB miss event.
  • FIG. 2 a particular illustrative embodiment of a processing system that includes a hardware lock for a shared resource is depicted and generally designated 200.
  • the processing system 200 includes a memory 202 that is coupled to an instruction cache 210 via a bus interface 208.
  • the processing system 200 also includes a data cache 212 that is coupled to the memory 202 via the bus interface 208.
  • the instruction cache 210 is coupled to a sequencer 214 via a bus 211.
  • the sequencer 214 can also receive general interrupts 216, which may be retrieved from an interrupt register (not shown).
  • the instruction cache 210 is coupled to the sequencer 214 via a plurality of current instruction registers, which may be coupled to the bus 211 and associated with particular threads of the processing system 200.
  • the processing system 200 is an interleaved multi-threaded processor including six threads.
  • the bus 211 is a sixty-four (64)-bit bus and the sequencer 214 is configured to retrieve instructions from the memory 202 via instruction packets that include multiple instructions having a length of thirty-two (32) bits each.
  • the bus 211 is coupled to a first instruction execution unit 218, a second instruction execution unit 220, a third instruction execution unit 222, and a fourth instruction execution unit 224.
  • Each instruction execution unit 218, 220, 222, 224 can be coupled to a general register file 226 via a second bus 228.
  • the general register file 226 can also be coupled to the sequencer 214 and to the data cache 212 via a third bus 230.
  • the sequencer 214 includes or is otherwise coupled to a control logic circuit 270 that has access to thread-specific supervisor control registers 232 and to global control registers 234.
  • the control logic circuit 270 is further coupled to a translation lookaside buffer (TLB) 272.
  • TLB 272 is accessible to one or more of the execution units 218, 220, 222, and 224 to provide virtual-to-physical address translations and to signal a TLB miss event to the control logic circuit 270 when a requested address is not stored at the TLB 272.
  • each thread-specific supervisor control register 232 includes multiple bit fields, such as a sleep field 280, an exception field 282, and a resume address field 284.
  • the sleep field 280 may store one or more values or bit settings that indicate whether the associated thread is to transition between an active state and a sleep state.
  • the exception field 282 may store one or more values to indicate a general exception or a particular type of exception, such as a TLB miss exception.
  • the resume address field 284 may store an address or pointer to locate an instruction or execution packet to resume execution when the thread awakens. For example, when a thread is put to sleep in response to a TLB miss event that occurs while the TLB 272 is locked, the thread may store the address of the instruction that caused the TLB miss event to the resume address field 284. In a particular embodiment, when a value of the sleep field 280 transitions from a sleep indicator to an awake indicator, the associated thread may reload the instruction or execution packet indicated by the value stored at the resume address field 284 and begin execution.
  • the control logic circuit 270 may further be configured to receive an instruction or signal from the exception handler when the TLB miss event has been handled, such as when the virtual address translation which caused the TLB miss event has been programmed to the TLB 272. In response, the control logic circuit 270 may be configured to unlock the TLB lock 292, and to check the thread wake FIFO 290 to determine whether one or more threads should be awakened. If so, the control logic circuit 270 is configured to awaken one or more of the threads, in order of storage at the thread wake FIFO 290, in an order of processing at the processing system 200, or in an order determined via one or more algorithms, such as based on a thread priority, by other mechanisms, or any combination thereof.
  • the control logic circuit 270 may be configured to respond to a TLB miss event that occurs while the TLB lock 292 has a locked status, such as during exception handling by another thread that includes modifying at least one entry at the TLB 272.
  • the control logic circuit 270 may be configured to write to the thread-specific supervisor control registers 232 to instruct the thread associated with the recent TLB miss event to store an address of a recent instruction or execution packet to the resume address field 284 and to go to sleep without initiating an exception handler associated with the recent TLB miss event.
  • the control logic 270 may also be configured to not increment a program counter associated with the current thread when the current thread is put to sleep.
  • the control logic circuit 270 may further be configured to store an identifier of the current thread at the thread wake FIFO 290.
  • a TLB miss event associated with a thread of a multi-threaded processor is received.
  • the TLB miss event occurs at a software managed TLB.
  • a TLB lock indicator is checked.
  • the TLB lock indicator may include one or more register bits of a global control register, such as the TLB lock 292 of FIG. 2. Proceeding to 306, a determination is made whether the TLB lock indicator is locked or unlocked.
  • the TLB lock indicator is set to unlocked. Concurrently with unlocking the TLB lock indicator, processing returns from the exception handler, at 328. In a particular embodiment, the TLB lock indicator is automatically unlocked upon returning from the exception handler.
  • TLB access is reserved for thread 0, and thread 0 encounters a TLB miss event 402.
  • a signal 403 is sent to the control unit.
  • the control unit processes a check lock operation 404.
  • the check lock operation 404 determines whether the TLB lock indicator is in a locked or unlocked configuration. In the illustrative embodiment of FIG. 4, the check lock operation 404 determines that the TLB lock indicator is in an unlocked state 406.
  • FIG. 5 also shows a display controller 526 that is coupled to the digital signal processor 510 and to a display 528. Moreover, an input device 530 is coupled to the digital signal processor 510. Additionally, a memory 532 is coupled to the digital signal processor 510. A coder/decoder (CODEC) 534 can also be coupled to the digital signal processor 510. A speaker 536 and a microphone 538 can be coupled to the CODEC 534.
  • CODEC coder/decoder
  • FIG. 5 also indicates that a wireless controller 540 can be coupled to the digital signal processor 510 and to a wireless antenna 542.
  • a power supply 544 is coupled to the on-chip system 522.
  • the display 528, the input device 530, the speaker 536, the microphone 538, the wireless antenna 542, and the power supply 544 are external to the on-chip system 522. However, each is coupled to a component of the on- chip system 522.
  • control logic circuit 566 need not be limited to controlling requests to access the TLB 564 in conjunction with the TLB lock indicator 568. Instead, the control logic circuit 566 may be operable to control access to one or more other shared resources, such as the display controller 526, the CODEC 534, the wireless controller 540, any other component of the DSP 510 or coupled to the DSP 510, or any combination thereof.
  • a software module may reside in RAM memory, flash memory, ROM memory, PROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art.
  • An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium.
  • the storage medium may be integral to the processor.
  • the processor and the storage medium may reside in an ASIC.
  • the ASIC may reside in a computing device or a user terminal.
  • the processor and the storage medium may reside as discrete components in a computing device or user terminal.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
PCT/US2008/085402 2007-12-03 2008-12-03 Multithreaded processor with lock indicator Ceased WO2009073722A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2010537031A JP2011505647A (ja) 2007-12-03 2008-12-03 ロックインジケータを有するマルチスレッドプロセッサ
KR1020107014736A KR101146359B1 (ko) 2007-12-03 2008-12-03 로크 표시기를 갖는 멀티스레드 프로세서
EP08856823.3A EP2232370B1 (en) 2007-12-03 2008-12-03 Multithreaded processor with lock indicator
CN200880119089.6A CN101884029B (zh) 2007-12-03 2008-12-03 具有锁定指示器的多线程处理器

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/949,284 2007-12-03
US11/949,284 US8140823B2 (en) 2007-12-03 2007-12-03 Multithreaded processor with lock indicator

Publications (1)

Publication Number Publication Date
WO2009073722A1 true WO2009073722A1 (en) 2009-06-11

Family

ID=40427128

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2008/085402 Ceased WO2009073722A1 (en) 2007-12-03 2008-12-03 Multithreaded processor with lock indicator

Country Status (6)

Country Link
US (1) US8140823B2 (enExample)
EP (1) EP2232370B1 (enExample)
JP (3) JP2011505647A (enExample)
KR (1) KR101146359B1 (enExample)
CN (1) CN101884029B (enExample)
WO (1) WO2009073722A1 (enExample)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011028610A (ja) * 2009-07-28 2011-02-10 Fujitsu Ltd プロセッサ及び演算処理方法
JP2019525376A (ja) * 2016-08-17 2019-09-05 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated マルチスレッドモードにおける電力低減のための方法及び装置

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8725992B2 (en) 2008-02-01 2014-05-13 International Business Machines Corporation Programming language exposing idiom calls to a programming idiom accelerator
US8312458B2 (en) 2008-02-01 2012-11-13 International Business Machines Corporation Central repository for wake-and-go mechanism
US8640141B2 (en) 2008-02-01 2014-01-28 International Business Machines Corporation Wake-and-go mechanism with hardware private array
US8225120B2 (en) * 2008-02-01 2012-07-17 International Business Machines Corporation Wake-and-go mechanism with data exclusivity
US8341635B2 (en) 2008-02-01 2012-12-25 International Business Machines Corporation Hardware wake-and-go mechanism with look-ahead polling
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
US8788795B2 (en) 2008-02-01 2014-07-22 International Business Machines Corporation Programming idiom accelerator to examine pre-fetched instruction streams for multiple processors
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
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
US8386822B2 (en) * 2008-02-01 2013-02-26 International Business Machines Corporation Wake-and-go mechanism with data monitoring
US8015379B2 (en) * 2008-02-01 2011-09-06 International Business Machines Corporation Wake-and-go mechanism with exclusive system bus response
US8127080B2 (en) * 2008-02-01 2012-02-28 International Business Machines Corporation Wake-and-go mechanism with system address bus transaction master
US8516484B2 (en) 2008-02-01 2013-08-20 International Business Machines Corporation Wake-and-go mechanism for a data processing system
US8612977B2 (en) 2008-02-01 2013-12-17 International Business Machines Corporation Wake-and-go mechanism with software save of thread state
US8171476B2 (en) 2008-02-01 2012-05-01 International Business Machines Corporation Wake-and-go mechanism with prioritization of threads
US8732683B2 (en) * 2008-02-01 2014-05-20 International Business Machines Corporation Compiler providing idiom to idiom accelerator
US8316218B2 (en) 2008-02-01 2012-11-20 International Business Machines Corporation Look-ahead wake-and-go engine with speculative execution
US8479166B2 (en) * 2008-08-25 2013-07-02 International Business Machines Corporation Detecting locking discipline violations on shared resources
US8886919B2 (en) * 2009-04-16 2014-11-11 International Business Machines Corporation Remote update programming idiom accelerator with allocated processor resources
US8082315B2 (en) * 2009-04-16 2011-12-20 International Business Machines Corporation Programming idiom accelerator for remote update
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
CN102486753B (zh) 2009-11-30 2015-09-16 国际商业机器公司 构建及允许访问高速缓存的方法、设备及存储系统
US8775836B2 (en) * 2010-12-23 2014-07-08 Intel Corporation Method, apparatus and system to save processor state for efficient transition between processor power states
US9633407B2 (en) * 2011-07-29 2017-04-25 Intel Corporation CPU/GPU synchronization mechanism
US9009410B2 (en) * 2011-08-23 2015-04-14 Ceva D.S.P. Ltd. System and method for locking data in a cache memory
TWI454905B (zh) 2011-09-30 2014-10-01 Intel Corp 在多核心平台中之受限制的啓動技術
CN102426540B (zh) * 2011-11-14 2013-06-05 苏州阔地网络科技有限公司 一种分布式即时通信软件中全局会话备份切换方法及装置
CN103377086A (zh) * 2012-04-27 2013-10-30 华为技术有限公司 用于异步多核系统操作共享资源的方法、装置及系统
GB2499277B (en) 2012-08-30 2014-04-02 Imagination Tech Ltd Global register protection in a multi-threaded processor
US9501332B2 (en) * 2012-12-20 2016-11-22 Qualcomm Incorporated System and method to reset a lock indication
US10007323B2 (en) 2012-12-26 2018-06-26 Intel Corporation Platform power consumption reduction via power state switching
US9361116B2 (en) 2012-12-28 2016-06-07 Intel Corporation Apparatus and method for low-latency invocation of accelerators
US10140129B2 (en) 2012-12-28 2018-11-27 Intel Corporation Processing core having shared front end unit
US20140189333A1 (en) * 2012-12-28 2014-07-03 Oren Ben-Kiki Apparatus and method for task-switchable synchronous hardware accelerators
US9417873B2 (en) 2012-12-28 2016-08-16 Intel Corporation Apparatus and method for a hybrid latency-throughput processor
US10346195B2 (en) 2012-12-29 2019-07-09 Intel Corporation Apparatus and method for invocation of a multi threaded accelerator
US10114752B2 (en) * 2014-06-27 2018-10-30 International Business Machines Corporation Detecting cache conflicts by utilizing logical address comparisons in a transactional memory
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
US9665376B2 (en) * 2014-12-15 2017-05-30 International Business Machines Corporation Sharing program interrupt logic in a multithreaded processor
KR101638136B1 (ko) * 2015-05-14 2016-07-08 주식회사 티맥스 소프트 멀티 스레드 구조에서 작업 분배 시 스레드 간 락 경쟁을 최소화하는 방법 및 이를 사용한 장치
GB2539958B (en) * 2015-07-03 2019-09-25 Advanced Risc Mach Ltd Data processing systems
JP2018041204A (ja) 2016-09-06 2018-03-15 東芝メモリ株式会社 メモリ装置及び情報処理システム
KR101823129B1 (ko) * 2016-11-24 2018-03-09 주식회사 실크로드소프트 컴퓨팅 장치의 리소스를 분배하는 컴퓨터 프로그램, 방법 및 장치
KR102468506B1 (ko) * 2016-11-24 2022-11-21 주식회사 실크로드소프트 컴퓨팅 장치의 리소스를 분배하는 컴퓨터 프로그램, 방법 및 장치
CN107451257A (zh) * 2017-07-31 2017-12-08 郑州云海信息技术有限公司 一种基于分布式文件系统的可维护性系统和方法
US11361400B1 (en) 2021-05-06 2022-06-14 Arm Limited Full tile primitives in tile-based graphics processing
US12013791B2 (en) 2021-06-01 2024-06-18 International Business Machines Corporation Reset dynamic address translation protection instruction
US11593275B2 (en) 2021-06-01 2023-02-28 International Business Machines Corporation Operating system deactivation of storage block write protection absent quiescing of processors
US11983538B2 (en) * 2022-04-18 2024-05-14 Cadence Design Systems, Inc. Load-store unit dual tags and replays

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010052053A1 (en) * 2000-02-08 2001-12-13 Mario Nemirovsky Stream processing unit for a multi-streaming processor
US20020062434A1 (en) * 2000-08-21 2002-05-23 Gerard Chauvel Processing system with shared translation lookaside buffer
US20040267996A1 (en) * 2003-06-27 2004-12-30 Per Hammarlund Queued locks using monitor-memory wait
US20050235134A1 (en) * 2002-08-07 2005-10-20 Mmagix Technology Limited Apparatus, method and system for a synchronicity independent, resource delegating, power and instruction optimizing processor
US20060294341A1 (en) * 2005-06-23 2006-12-28 Erich Plondke Shared translation look-aside buffer and method
US20070136725A1 (en) * 2005-12-12 2007-06-14 International Business Machines Corporation System and method for optimized preemption and reservation of software locks

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6754784B1 (en) * 2000-02-01 2004-06-22 Cirrus Logic, Inc. Methods and circuits for securing encached information
US7159220B2 (en) * 2001-09-28 2007-01-02 Intel Corporation Flexible acceleration of java thread synchronization on multiprocessor computers
US7234143B2 (en) * 2002-06-20 2007-06-19 Hewlett-Packard Development Company, L.P. Spin-yielding in multi-threaded systems
US7188229B2 (en) * 2004-01-17 2007-03-06 Sun Microsystems, Inc. Method and apparatus for memory management in a multi-processor computer system
JP4576172B2 (ja) * 2004-07-29 2010-11-04 富士通株式会社 演算処理装置,情報処理装置及び演算処理装置の制御方法
US7617380B2 (en) * 2005-08-25 2009-11-10 Broadcom Corporation System and method for synchronizing translation lookaside buffer access in a multithread processor

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010052053A1 (en) * 2000-02-08 2001-12-13 Mario Nemirovsky Stream processing unit for a multi-streaming processor
US20020062434A1 (en) * 2000-08-21 2002-05-23 Gerard Chauvel Processing system with shared translation lookaside buffer
US20050235134A1 (en) * 2002-08-07 2005-10-20 Mmagix Technology Limited Apparatus, method and system for a synchronicity independent, resource delegating, power and instruction optimizing processor
US20040267996A1 (en) * 2003-06-27 2004-12-30 Per Hammarlund Queued locks using monitor-memory wait
US20060294341A1 (en) * 2005-06-23 2006-12-28 Erich Plondke Shared translation look-aside buffer and method
US20070136725A1 (en) * 2005-12-12 2007-06-14 International Business Machines Corporation System and method for optimized preemption and reservation of software locks

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011028610A (ja) * 2009-07-28 2011-02-10 Fujitsu Ltd プロセッサ及び演算処理方法
JP2019525376A (ja) * 2016-08-17 2019-09-05 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated マルチスレッドモードにおける電力低減のための方法及び装置

Also Published As

Publication number Publication date
CN101884029A (zh) 2010-11-10
JP2013145568A (ja) 2013-07-25
CN101884029B (zh) 2014-09-03
KR20100101629A (ko) 2010-09-17
KR101146359B1 (ko) 2012-05-17
JP2011505647A (ja) 2011-02-24
EP2232370A1 (en) 2010-09-29
JP2014197408A (ja) 2014-10-16
US8140823B2 (en) 2012-03-20
EP2232370B1 (en) 2015-11-04
US20090144519A1 (en) 2009-06-04

Similar Documents

Publication Publication Date Title
US8140823B2 (en) Multithreaded processor with lock indicator
JP4759273B2 (ja) データ処理装置及び共用資源へのアクセス制御方法
CN103814342B (zh) 多核心计算装置的动态睡眠
JP5329563B2 (ja) マルチスレッド・プロセッサのための共有割込みコントローラ
EP1653331B1 (en) An apparatus and method for entering and exiting low power mode
JP5538442B2 (ja) リアルタイムマルチスレッドスケジューラおよびスケジューリング方法
US7328293B2 (en) Queued locks using monitor-memory wait
JP5054665B2 (ja) スリープ‐起動機構を用いた比較および交換動作
US8578138B2 (en) Enabling storage of active state in internal storage of processor rather than in SMRAM upon entry to system management mode
JP2005502120A (ja) キャッシュミスに応答してタスクを切り替えることによってキャッシュベース埋め込みプロセッサのスループットを改善する方法および装置
US20120226865A1 (en) Network-on-chip system including active memory processor
JP5254342B2 (ja) n−ウェイキャッシュを用いるシステムおよび方法
KR101671846B1 (ko) 트랜잭셔널 메모리 동작들을 수행하도록 구성된 프로세서
JP2011504274A (ja) バスアクセス要求の選択的除外
WO2014100629A1 (en) System and method to reset a lock indication
US8438569B2 (en) Broadcasting a condition to threads executing on a plurality of on-chip processors
CN111767153A (zh) 资源访问方法、装置及电子设备
JPH06337839A (ja) Cpu装置

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200880119089.6

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08856823

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 1155/MUMNP/2010

Country of ref document: IN

WWE Wipo information: entry into national phase

Ref document number: 2010537031

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 20107014736

Country of ref document: KR

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2008856823

Country of ref document: EP