CN101884029B - 具有锁定指示器的多线程处理器 - Google Patents
具有锁定指示器的多线程处理器 Download PDFInfo
- Publication number
- CN101884029B CN101884029B CN200880119089.6A CN200880119089A CN101884029B CN 101884029 B CN101884029 B CN 101884029B CN 200880119089 A CN200880119089 A CN 200880119089A CN 101884029 B CN101884029 B CN 101884029B
- Authority
- CN
- China
- Prior art keywords
- tlb
- lock
- thread
- dormancy
- response
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- 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
-
- 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
-
- 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/30083—Power or thermal 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/52—Indexing scheme relating to G06F9/52
- G06F2209/522—Manager
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
Abstract
本发明揭示包含具有锁定指示器的多线程处理器的系统和方法。在实施例中,一种系统包含用于指示多线程处理器中的共享资源的锁定状态的装置。所述系统包含用于在处理与所述共享资源相关联的异常处置指令之前自动锁定所述共享资源的装置。所述系统进一步包含用于解锁所述共享资源的装置。
Description
技术领域
本发明大体上涉及具有锁定指示器的多线程处理器。
背景技术
技术的进步已产生体积较小且功能较强大的个人计算装置。举例来说,当前存在多种便携式个人计算装置,包含无线计算装置,例如便携式无线电话、个人数字助理(PDA)和寻呼装置,其体积小、重量轻,且容易被用户携带。更具体地说,便携式无线电话(例如蜂窝式电话和因特网协议(IP)电话)可经由无线网络传送语音和数据包。另外,许多此类无线电话包含并入其中的其它类型的装置。举例来说,无线电话还可包含数字静物照相机、数字摄像机、数字记录器和音频文件播放器。而且,此类无线电话可处理可执行指令,包含软件应用程序,例如网络浏览器应用程序,其可用于接入因特网。由此,这些无线电话可包含相当大的计算能力。
额外的计算能力由可在电子装置处并行处理多个线程的多线程处理器来实现。为了降低功率消耗和制造成本,多线程处理器通常经设计以使得一些处理资源(例如高速缓冲存储器、总线或其它资源)由多个线程共享。然而,某些操作只可由单个线程以共享资源可靠地执行。举例来说,当存储器地址被两个不同线程并行地写入时,可能出现不可预测的结果。可使用软件锁定,通过提供存储器中的值(例如信标)来管理共享资源,所述值指示共享资源是否未被锁定且可供特定进程使用,或锁定且不可供使用。
软件锁定通常由软件指令设定和释放,且可能是不可靠的,例如在软件锁定由不良写入或恶意软件存取时。另外,虽然共享资源保持锁定,但处理器在继续程序执行之前,通常重复地执行指令以检查所述锁定的值。类似地,使用软件锁定的每一操作因存取、比较和/或将值写入到存储器的存储所述软件锁定的部分而引入处理延迟。
发明内容
如上所述,软件锁定通常由软件指令设定和释放,且可能是不可靠的,例如在软件锁定由不良写入或恶意软件存取时。另外,虽然共享资源保持锁定,但处理器在继续程序执行之前,通常重复地执行指令以检查所述锁定的值。类似地,使用软件锁定的每一操作因存取、比较和/或将值写入到存储器的存储所述软件锁定的部分而引入处理延迟。
因此,在一个实施例中,本申请提供了一种使用锁定指示器管理多线程处理器的共享资源的方法,其包括:接收与所述多线程处理器的第一线程相关联的翻译旁视缓冲器TLB未中事件;检查TLB锁定指示器,其中所述TLB锁定指示器包含存储在全局控制寄存器处的位;响应于所述TLB锁定指示器指示未锁定状态而允许所述第一线程存取与TLB相关联的异常处置器;以及响应于所述TLB锁定指示器指示锁定状态而:使所述第一线程休眠,其中由休眠模式电路响应于接收到来自控制电路的休眠指令而使所述第一线程休眠;使所述TLB锁定指示器从所述锁定状态转变为所述未锁定状态,其中所述TLB锁定指示器不从所述锁定状态转变为所述未锁定状态直到指示异常已被处置;以及响应于所述TLB锁定指示器从所述锁定状态转变为所述未锁定状态而重放导致所述TLB未中事件的包的执行。
在另一个实施例中,本申请提供了一种使用锁定指示器管理多线程处理器的共享资源的方法,其包括:接收与所述多线程处理器的线程相关联的翻译旁视缓冲器TLB未中事件,所述线程具有对共享翻译旁视缓冲器TLB的存取权;读取TLB锁定指示器,且响应于所述TLB锁定指示器指示锁定状态而使所述线程休眠,其中所述TLB锁定指示器包含存储在全局控制寄存器处的位,且其中由休眠模式电路响应于接收到来自控制电路的休眠指令而使所述线程休眠;响应于接收到指令而唤醒所述线程;以及响应于所述TLB锁定指示器从所述锁定状态转变为未锁定状态而重放导致所述TLB未中事件的指令包的执行,其中所述TLB锁定指示器不从所述锁定状态转变为所述未锁定状态直到指示异常已被处置。
在另一个实施例中,本申请提供了一种使用锁定指示器管理多线程处理器的共享资源的系统,其包括:翻译旁视缓冲器TLB,其由所述多线程处理器的多个处理线程共享;所述多线程处理器的全局控制寄存器中的TLB锁定位;以及控制逻辑电路,其经配置以:响应于所述TLB锁定位具有锁定配置而:响应于检测到与所述多个处理线程中的第一线程相关联的第一TLB未中事件而向休眠模式电路发送休眠指令以使所述第一线程休眠,使所述TLB锁定位从所述锁定配置转变为未锁定配置,其中所述TLB锁定位不从所述锁定配置转变为所述未锁定配置直到指示异常已被处置;以及响应于所述TLB锁定位从所述锁定配置转变为所述未锁定配置而重放导致所述第一TLB未中事件的执行包。
在另一个实施例中,本申请提供了一种使用锁定指示器管理多线程处理器的共享资源的方法,其包括:处置与由所述多线程处理器的多个线程共享的资源相关联的异常;在所述异常已被处置之前,将与所述资源相关联的硬件锁定设定为锁定状态;以及响应于所述硬件锁定指示所述锁定状态而:响应于由所述多个线程中的第一线程导致的与所述资源相关联的异常而使所述第一线程休眠,其中由休眠模式电路响应于接收到来自控制逻辑电路的休眠指令而使所述第一线程休眠;使所述硬件锁定从所述锁定状态转变为未锁定状态,其中所述硬件锁定不从所述锁定状态转变为所述未锁定状态直到指示异常已被处置;以及响应于所述硬件锁定从所述锁定状态转变为所述未锁定状态而由所述第一线程重放导致与所述资源相关联的所述异常的指令包的执行。
在另一个实施例中,本申请提供了一种使用锁定指示器管理多线程处理器的共享资源的系统,其包括:用于存储指示所述多线程处理器中的共享资源的锁定状态的位的装置;用于在处理异常处置指令之前自动将所述共享资源设定为已锁定状态以处置与所述共享资源相关联的处理异常的装置;用于保存线程的状态的装置;用于响应于在所述共享资源的所述锁定状态指示所述已锁定状态时接收到来自控制电路的休眠指令而在所述线程的所述状态已被保存之后使所述线程休眠的装置;用于将所述共享资源的所述锁定状态设定为未锁定状态的装置,其中所述共享资源的所述锁定状态不设定为未锁定状态直到指示异常已被处置;以及用于响应于所述共享资源的所述锁定状态从所述已锁定状态转变为所述未锁定状态而重放导致与所述共享资源相关联的所述处理异常的指令包的执行的装置。
在特定实施例中,揭示一种系统,其包含由多线程处理器的多个处理线程共享的翻译旁视缓冲器(TLB)。所述系统包含位于多线程处理器的寄存器中的TLB锁定位。所述系统还包含控制逻辑电路,其经配置以响应于当检测到与多个处理线程中的特定线程相关联的TLB未中事件时TLB锁定位具有锁定配置而使所述特定线程休眠。
在另一实施例中,揭示一种系统,其包含用于指示多线程处理器中的共享资源的锁定状态的装置。所述系统包含用于在处理与所述共享资源相关联的异常处置指令之前自动锁定所述共享资源的装置。所述系统进一步包含用于解锁共享资源的装置。
在另一实施例中,揭示一种方法,其包含接收与多线程处理器的线程相关联的翻译旁视缓冲器(TLB)未中事件。所述方法还包含检查TLB锁定指示器。当TLB锁定指示器未被锁定时,所述方法使用控制逻辑电路允许所述线程存取与TLB相关联的异常处置器。当TLB锁定指示器被锁定时,所述方法使用控制逻辑电路使所述线程休眠。
在另一实施例中,揭示一种方法,其包含接收与多线程处理器的线程相关联的翻译旁视缓冲器(TLB)未中事件。所述线程具有对共享翻译旁视缓冲器(TLB)的存取权。所述方法包含读取TLB锁定指示器,且当TLB锁定指示器被锁定时,使用控制逻辑电路使所述线程休眠。所述方法还包含在接收到指令后即刻唤醒所述线程。
在另一实施例中,揭示一种具有处理器可执行指令的计算机可读媒体。所述处理器可执行指令致使处理器处置与由多线程处理器的多个线程共享的资源相关联的异常。所述处理器可执行指令还致使处理器在异常已被处置之后解锁针对所述资源的硬件锁定。
所揭示的实施例所提供的一个特定优点是因使用逻辑电路设定寄存器位以锁定共享资源而带来的对共享资源的较快锁定和解锁操作。所揭示的实施例所提供的另一特定优点是通过在共享资源变为可用之前使线程休眠而降低的线程等待存取共享资源的动态功率消耗。
在审阅整个申请案之后,将明白本发明的其它方面、优点和特征,本申请案包含以下部分:附图说明、具体实施方式和权利要求书。
附图说明
图1是包含具有锁定指示器的多线程处理器的系统的实施例的框图;
图2是包含对共享资源的硬件锁定的处理系统的实施例的框图的实例;
图3是在多线程处理器处使用锁定指示器的方法的实施例的流程图;
图4是描绘具有锁定指示器的多线程处理器处的操作的实施例的总图;以及
图5是包含具有针对共享资源的锁定指示器的多线程处理器的说明性通信装置的框图。
具体实施方式
参看图1,描绘包含具有锁定指示器的多线程处理器的系统的特定说明性实施例,且将其概括表示为100。系统100包含多线程处理器核心102,其耦合到非核心存储器104。多线程处理器核心102包含控制逻辑电路106,其耦合到翻译旁视缓冲器(TLB)108且耦合到TLB锁定指示器110。第一线程112操作地耦合到TLB108,且耦合到控制逻辑电路106。第二线程114也操作地耦合到TLB108,且耦合到控制逻辑电路106。尽管系统100中描绘两个代表性线程112和114,但将理解,多线程处理器核心102可包含任何数目或线程。
在特定实施例中,TLB108为多线程处理器核心的共享存储器资源,其经配置以接收来自多个线程(例如线程112和114)的请求,以将虚拟地址翻译为物理地址。TLB108经配置以返回对应于存储在TLB108处的虚拟地址的物理地址。TLB108经配置以在所请求的虚拟地址未在TLB108处找到时,用信号向控制逻辑电路106通知TLB未中事件。
在特定实施例中,控制逻辑电路106经配置以从TLB108接收一个或一个以上TLB未中事件信号,且确定TLB锁定指示器110的状态。当TLB锁定指示器110处于锁定配置时,控制逻辑电路106可经配置以指令请求的线程112或114保存当前处理状态,且使所述线程休眠。否则,当TLB锁定指示器110具有未锁定配置时,控制逻辑电路106可经配置以锁定TLB锁定指示器110,且同时指令请求的线程112或114启动异常处置器以处理TLB未中事件。通过锁定TLB锁定指示器110,防止其它线程修改TLB108,使得请求的线程可安全地修改TLB108处的内容,而无因多个线程对TLB108的一条目的同时数据写入操作而导致的不可预测行为的可能性。
在特定实施例中,TLB锁定指示器110可包含多线程处理器核心102的全局状态寄存器的一个或一个以上位。TLB锁定指示器110可响应来自控制逻辑电路106的控制信号。TLB锁定指示器110具有锁定配置以指示至少一个线程112或114正在TLB108处执行写入操作,且其它线程对TLB的存取被限制。举例来说,当TLB锁定指示器110处于锁定配置时,其它线程可被限于对TLB108的只读存取、禁止存取或降低级别的存取。另外,TLB锁定指示器110具有未锁定配置,从而启用线程112和114对TLB108的正常存取。
在特定实施例中,第一线程112包含休眠模式逻辑电路120和异常处置器122。休眠模式逻辑电路120可经配置以响应于从控制逻辑电路106接收到的休眠指令而保存第一线程112的当前状态(例如通过保存程序计数器(PC)(未图示)的值)。另外,休眠模式逻辑电路120可经配置以将一个或一个以上值存储在状态寄存器(未图示)中,例如用户模式状态位、异常状态位以及与最后执行的导致TLB未中事件的指令包有关的数据。
一般来说,第一线程112的异常处置器122可提取和执行指令,以处置与由线程112和114共享的资源相关联的异常,且在异常已被处置之后解锁对所述资源的硬件锁定。在特定实施例中,异常处置器122包含用以响应TLB未中事件的逻辑和处理器可执行指令。举例来说,在第一线程112从控制逻辑电路106接收到启动异常处置器122的指令之后,异常处置器122可设定第一线程112的一个或一个以上状态位,且可致使第一线程112进入管理者模式并加载TLB未中异常处置指令,例如来自非核心存储器104的指令。异常处置器122可操作以提取和执行启用从TLB未中事件的恢复的指令。举例来说,异常处置器122可处理使触发TLB未中事件的所请求的虚拟地址置于非核心存储器资源(例如页表)处的指令。异常处置器122可将虚拟地址的翻译写入或编程到TLB108中。异常处置器122还可经配置以执行返回指令以退出异常处置模式。返回指令可操作以使线程112返回到非异常状态,且可请求控制逻辑电路106解锁TLB锁定指示器110。或者,返回指令可在从异常状态返回后即刻解锁TLB锁定指示器110,而不向控制逻辑电路106发送解锁请求。
同样地,在特定实施例中,第二线程114包含休眠模式逻辑电路130和异常处置器132。在说明性实施例中,第二线程114(包含休眠模式逻辑电路130和异常处置器132)以大体上类似于第一线程112(相应地包含第一线程112的休眠模式逻辑电路120和异常处置器122)的方式操作。
在操作期间,多个处理线程(例如代表性线程112和114)可向TLB108发送虚拟地址翻译请求。当产生TLB未中事件时,控制逻辑电路106可使用TLB锁定指示器110来锁定TLB108,以在异常处置指令响应TLB未中事件时,拒绝其它线程修改TLB108处的数据。举例来说,TLB锁定指示器110可包含全局控制寄存器中的一个或一个以上位,其可由控制逻辑电路106设定,以指示TLB108被锁定而不被其它线程存取。
在说明性实施例中,控制逻辑电路106经配置以经由内建硬件进程而不是通过执行软件进程的指令来设定TLB锁定指示器110,从而实现对TLB未中事件的较快响应、改进的处理器性能以及对恶意或不良行为软件应用程序的减小的易损性。通过使用多线程处理器核心102中的全局寄存器位作为TLB锁定指示器110来实现额外的性能益处。举例来说,控制逻辑电路106可经配置以直接设定、清除和确定TLB锁定指示器110的状态,使得对TLB未中事件的响应可显著快于在非处理器核心存储器104处存储或检索锁定指示器值(例如信标)。
当TLB108因TLB未中事件而锁定时,控制逻辑电路106可指令产生TLB未中事件的线程112或114启动异常处置器122或132以响应TLB未中事件。当控制逻辑电路106接收到来自异常处置器122或132的指示TLB未中事件已被处置的返回指令或其它信号时,控制逻辑电路106可解锁TLB锁定指示器110。
在特定实施例中,在TLB108因第一线程112的异常处置而被锁定时,第二线程114也可请求导致TLB未中事件的虚拟地址翻译。在被告知与第二线程114相关联的TLB未中事件后,控制逻辑电路106可确定TLB锁定指示器110处于锁定配置,且可指令第二线程114转向休眠。举例来说,控制逻辑电路106可指令第二线程114保存当前状态、记录最后执行的导致TLB未中事件的包的地址,且进入等待状态,在此期间,第二线程114不处理指令。额外线程可能在TLB锁定指示器110保持锁定时遭遇TLB未中事件,且也可由控制逻辑电路106来使其休眠。
当控制逻辑电路106被告知与第一线程112相关联的TLB未中事件已被处置(例如经由异常处置器122所执行的返回指令)时,控制逻辑电路106解锁TLB锁定指示器110,且确定一个或一个以上处理线程是否因TLB108被锁定而处于休眠状态。如果是,那么控制逻辑电路106唤醒所述休眠线程中的一者或一者以上(例如第二线程114)以恢复处理。
举例来说,第二线程114可被唤醒,且可重放刚好在第二线程114被置于休眠之前执行且导致TLB未中事件的指令包。重放的指令包可重复对翻译TLB108处的虚拟地址的请求。由于第一线程112所执行的异常处置,第二线程所请求的虚拟地址翻译可潜在地存储在TLB108中。如果不是,那么发生第二TLB未中事件,且作为响应,控制逻辑电路106使TLB锁定指示器110复位到锁定配置,且指令第二线程114的异常处置器132开始处理处置第二TLB未中事件的指令。
参看图2,描绘包含针对共享资源的硬件锁定的处理系统的特定说明性实施例,且将其概括表示为200。处理系统200包含存储器202,其经由总线接口208耦合到指令高速缓冲存储器210。处理系统200还包含数据高速缓冲存储器212,其经由总线接口208耦合到存储器202。指令高速缓冲存储器210经由总线211耦合到定序器214。在特定实例中,定序器214还可接收一般中断216,其可从中断寄存器(未图示)检索。在特定实施例中,指令高速缓冲存储器210经由多个当前指令寄存器耦合到定序器214,所述当前指令寄存器可耦合到总线211且与处理系统200的特定线程相关联。在特定实施例中,处理系统200为包含六个线程的交错式多线程处理器。
在特定实施例中,总线211为六十四(64)位总线,且定序器214经配置以经由指令包从存储器202检索指令,所述指令包包含多个各自具有三十二(32)个位的长度的指令。总线211耦合到第一指令执行单元218、第二指令执行单元220、第三指令执行单元222以及第四指令执行单元224。每一指令执行单元218、220、222、224可经由第二总线228耦合到通用寄存器堆226。通用寄存器堆226还可经由第三总线230耦合到定序器214且耦合到数据高速缓冲存储器212。
定序器214包含控制逻辑电路270或以其它方式耦合到控制逻辑电路270,控制逻辑电路270具有对线程特定管理者控制寄存器232和对全局控制寄存器234的存取权。控制逻辑电路270进一步耦合到翻译旁视缓冲器(TLB)272。TLB272可供执行单元218、220、222和224中的一者或一者以上存取,以提供虚拟到物理地址翻译,且当所请求的地址不存储在TLB272处时,用信号向控制逻辑电路270通知TLB未中事件。
在特定实施例中,每一线程特定管理者控制寄存器232包含多个位字段,例如休眠字段280、异常字段282以及恢复地址字段284。休眠字段280可存储指示相关联线程是否将在活动状态与休眠状态之间转变的一个或一个以上值或位设定值。异常字段282可存储用以指示一般异常或特定类型的异常(例如TLB未中异常)的值。恢复地址字段284可存储用以定位指令或执行包的地址或指针,以在线程苏醒时恢复执行。举例来说,当响应于TLB272被锁定时发生的TLB未中事件而使线程休眠时,线程可将导致TLB未中事件的指令的地址存储到恢复地址字段284。在特定实施例中,当休眠字段280的值从休眠指示符转变为苏醒指示符时,相关联的线程可重新加载由存储在恢复地址字段284处的值指示的指令或执行包,且开始执行。
在特定实施例中,全局控制寄存器234包含用以指示唤醒休眠线程的次序的一个或一个以上字段,例如线程唤醒先入先出缓冲器(FIFO)290。线程唤醒FIFO290可包含一个或一个以上指示符以识别系统200的处理线程中的已响应于TLB锁292处于锁定配置时发生的TLB未中事件而被置于休眠的一个或一个以上处理线程。线程唤醒FIFO290可经配置以便以使线程休眠的次序来存储线程指示符,使得控制逻辑电路270可操作以便以匹配的次序使休眠线程复苏。TLB锁292可包含单个位,所述位的值指示TLB272是处于锁定状态还是未锁定状态。
在特定实施例中,控制逻辑电路270经配置以接收TLB272处的一个或一个以上TLB未中事件的指示。控制逻辑电路270可经配置以通过首先检查TLB锁292的状态来响应TLB未中事件。当TLB锁292指示TLB272未锁定时,控制逻辑电路270可使TLB锁定值292转变为锁定状态,且将一值写入到对应的线程特定管理者控制寄存器232的异常字段282以指示TLB未中事件已发生且指令线程启动异常处置器。
控制逻辑电路270可进一步经配置以在TLB未中事件已被处置时(例如在导致TLB未中事件的虚拟地址翻译已被编程到TLB272时)接收来自异常处置器的指令或信号。作为响应,控制逻辑电路270可经配置以解锁TLB锁292,且检查线程唤醒FIFO290,以确定是否应唤醒一个或一个以上线程。如果是,那么控制逻辑电路270经配置以唤醒所述线程中的一者或一者以上,以便以在处理系统200处的处理次序、或以通过其它机构经由一个或一个以上算法(例如基于线程优先权)确定的次序或其任意组合在线程唤醒FIFO290处进行存储。
控制逻辑电路270可经配置以响应TLB锁292具有锁定状态时(例如在另一线程的异常处置(包含修改TLB272处的至少一个条目)期间)发生的TLB未中事件。控制逻辑电路270可经配置以向线程特定管理者控制寄存器232写入,以指令与最近TLB未中事件相关联的线程将最近指令或执行包的地址存储到恢复地址字段284且转到休眠,而不起始与最近TLB未中事件相关联的异常处置器。控制逻辑270还可经配置以在当前线程被置于休眠时不递增与当前线程相关联的程序计数器。控制逻辑电路270可进一步经配置以将当前线程的识别符存储在线程唤醒FIFO290处。
参看图3,描绘在多线程处理器处使用锁定指示器的方法的特定说明性实施例,且将其概括表示为300。在图3的说明性实施例中,锁定指示器为与在多个处理线程之间共享的翻译旁视缓冲器(TLB)相关联的硬件锁定,例如寄存器位。在说明性实施例中,方法300可由多线程处理器的控制逻辑电路(例如图1的控制逻辑电路106或图2的控制逻辑电路270)执行。
在302处,接收与多线程处理器的线程相关联的TLB未中事件。在特定实施例中,TLB未中事件发生在软件管理的TLB处。继续到304,检查TLB锁定指示器。TLB锁定指示器可包含全局控制寄存器的一个或一个以上寄存器位,例如图2的TLB锁292。进行到306,作出TLB锁定指示器是锁定还是未锁定的确定。
当确定TLB锁定指示器被锁定时,处理前进到308,其中使用控制逻辑电路使线程休眠。进行到310,在特定实施例中,确定导致TLB锁定的异常处置器的状态。移到312,当确定异常尚未被处置时,例如当异常处置器尚未完成操作时,处理可返回到310。当确定异常被处置时,在特定实施例中,处理在314处继续,其中TLB锁定指示器从锁定状态转变为未锁定状态。进行到316,在TLB锁定指示器从锁定状态转变为未锁定状态时,可重放导致TLB未中事件的包的执行。
返回到306,当确定TLB锁定指示器未被锁定时,处理前进到318,其中使用控制逻辑电路来允许线程存取与TLB相关联的异常处置器。进行到320,当允许存取时,使用控制逻辑电路来锁定TLB锁定指示器。在说明性实施例中,异常处置器将TLB锁定指示器设定为锁定状态。
移到322,可计算与TLB未中事件有关的结果。举例来说,可通过存取页表来确定不位于TLB处的地址的虚拟地址翻译。继续到324,在特定实施例中,将来自页表的结果编程到TLB中。
前进到326,将TLB锁定指示器设定为未锁定。与解锁TLB锁定指示器同时,在328处,处理从异常处置器返回。在特定实施例中,在从异常处置器返回后即刻自动解锁TLB锁定指示器。
参看图4,描绘具有针对共享资源的锁定指示器的多线程处理器的操作的特定说明性实施例,且将其概括表示为400。图400说明与多个线程相关联的操作,所述线程例如是代表性线程:线程0、线程1、线程2和线程3。还说明与控制单元和与TLB锁定指示器相关联的操作。操作之间的临时关系由六个代表性循序时间周期(标记为时间0到时间5)识别。在特定实施例中,控制单元可包含控制逻辑电路,例如图1的控制逻辑电路108或图2的控制逻辑电路270。
在时间0处,TLB存取为线程0保留,且线程0遭遇TLB未中事件402。响应于TLB未中事件402,将信号403发送到控制单元。在接收到信号403后,控制单元处理检查锁定操作404。检查锁定操作404确定TLB锁定指示器是处于锁定配置还是未锁定配置。在图4的说明性实施例中,检查锁定操作404确定TLB锁定指示器处于未锁定状态406。
响应于确定TLB锁定指示器处于未锁定状态406,控制单元执行设定锁定操作408,以使TLB锁定指示器转变为锁定状态410。另外,控制单元将信号409发送到线程0。响应于信号409,线程0启动TLB未中异常处置器412。
在时间1期间,TLB存取为线程1保留。在线程0正执行TLB未中异常处置器412同时,线程1执行TLB存取尝试,其也导致TLB未中事件414。TLB未中事件414经由信号415传送到控制单元。控制单元执行检查锁定操作416,其确定TLB锁定指示器处于锁定状态418。因为TLB锁定指示器处于锁定状态418,所以控制单元发送指令线程1在420处休眠的信号419。响应于信号419,线程1保存线程的当前状态,例如通过存储程序计数器值、线程上下文值、其它状态信息或其任意组合,且进入活动性减小的状态。
在时间2期间,TLB存取为线程2保留。在线程0继续执行TLB未中异常处置器412同时,且在线程1处于休眠同时,线程2可执行TLB存取操作422。同样地,在时间3期间,TLB存取为线程3保留,线程3可执行TLB存取操作424。
在时间4期间,线程0的TLB未中异常处置器412结束处理。举例来说,TLB未中异常处置器412可能已存取页表、确定导致TLB未中事件402的虚拟地址翻译、将所述翻译编程到TLB且执行返回指令。信号425告知控制单元TLB未中异常处置器412已完成。响应于TLB未中异常处置器412完成,控制单元执行设定锁定操作426,以使TLB锁定指示器转变为未锁定配置428。
控制逻辑电路可执行检查锁定操作,以确定何时TLB锁定指示器不再处于锁定状态418。举例来说,检查锁定操作可响应于由控制单元确定的指定事件以指定间隔,或响应于指示异常处置器的完成的信号(例如信号425)自动地由控制单元周期性地来做。响应于设定锁定操作426,或响应于检查锁定操作430或其任意组合,TLB锁定指示器确定为处于未锁定状态428。
在432处,控制单元确定下一个要唤醒的线程。如图4中所说明,线程1是在TLB锁定指示器处于锁定状态418时响应于TLB未中而被置于休眠的第一线程。因此,在时间5处,控制单元发送信号433以唤醒线程1,响应于此,在434处,线程1执行唤醒操作,且重放指令包执行操作。
在特定实施例中,唤醒和重放包执行操作434重新加载线程1的在线程1在420处被置于休眠之前保存的先前状态,且重放产生TLB未中事件414的包的执行。在特定实施例中,所请求的虚拟地址可能已被TLB未中异常处置器412加载到TLB中。否则,另一TLB未中事件可因434处重放指令包的执行而产生,控制单元可以大体上与针对TLB未中402的方式类似的方式对此作出响应。
图5是包含具有针对共享资源的锁定指示器的多线程处理器的代表性无线通信装置500的框图。无线通信装置500包含多线程数字信号处理器(DSP)510,其包含共享资源(例如TLB564);以及控制逻辑电路566,其耦合到TLB564且进一步耦合到TLB锁定指示器568。控制逻辑电路566经配置以根据如相对于图1到图4所描述的系统和方法来操作。
图5还展示显示器控制器526,其耦合到数字信号处理器510且耦合到显示器528。此外,输入装置530耦合到数字信号处理器510。另外,存储器532耦合到数字信号处理器510。编码器/解码器(CODEC)534也可耦合到数字信号处理器510。扬声器536和麦克风538可耦合到CODEC534。
图5还指示无线控制器540可耦合到数字信号处理器510且耦合到无线天线542。在特定实施例中,电源544耦合到芯片上系统522。此外,在特定实施例中,如图5中所说明,显示器528、输入装置530、扬声器536、麦克风538、无线天线542和电源544在芯片上系统522外部。然而,每一者均耦合到芯片上系统522的组件。
应理解,控制逻辑电路566无需被限于结合TLB锁定指示器568来控制存取TLB564的请求。代替地,控制逻辑电路566可操作以控制对一个或一个以上其它共享资源存取,例如显示器控制器526、CODEC534、无线控制器540、DSP510的或耦合到DSP510的任何其它组件,或其任意组合。
结合所揭示的系统和方法,提供用于指示多线程处理器中的共享资源的锁定状态的机制的说明性实例,例如图1的TLB锁定指示器110和图2的TLB锁292。共享资源可在处理与共享资源相关联的异常处置指令之前由控制电路(例如图1的控制逻辑电路106和图2的控制逻辑电路270)的操作自动锁定。共享资源也可由控制电路(例如图1的控制逻辑电路106和图2的控制逻辑电路270)的操作,或由可执行指令(例如异常处置器的用以解锁共享资源的一个或一个以上指令)的操作来解锁。
所属领域的技术人员将进一步了解,结合本文所揭示的实施例而描述的各种说明性逻辑块、配置、模块、电路和算法步骤可实施为电子硬件、计算机软件或上述两者的组合。为了清楚地说明硬件与软件的这种可互换性,上文大体上根据各种说明性组件、块、配置、模块、电路和步骤的功能性来描述各种说明性组件、块、配置、模块、电路和步骤。将此类功能性实施为硬件还是软件取决于特定应用和强加于整个系统的设计约束。熟练的技术人员可针对每个特定应用以不同的方式来实施所描述的功能性,但此类实施决策不应被解释为导致与本发明范围的偏离。
结合本文所揭示的实施例而描述的方法或算法的步骤可直接以硬件、以由处理器执行的软件模块或以上述两者的组合的形式体现。软件模块可驻存在RAM存储器、快闪存储器、ROM存储器、PROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可装卸盘、CD-ROM或此项技术中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息和将信息写入到存储媒体。在替代方案中,存储媒体可与处理器成一体式。处理器和存储媒体可驻存在ASIC中。ASIC可驻存在计算装置或用户终端中。在替代方案中,处理器和存储媒体可作为离散组件驻存在计算装置或用户终端中。
提供对所揭示实施例的先前描述,以使所属领域的技术人员能够制作或使用所揭示的实施例。所属领域的技术人员将容易明白对这些实施例的各种修改,且本文所界定的一般原理可在不脱离本发明的精神或范围的情况下应用于其它实施例。因此,本发明无意限于本文所示的实施例,而是应被赋予与如由所附权利要求书界定的原理和新颖特征一致的最宽可能范围。
Claims (22)
1.一种使用锁定指示器管理多线程处理器的共享资源的方法,其包括:
接收与所述多线程处理器的第一线程相关联的翻译旁视缓冲器TLB未中事件;
检查TLB锁定指示器,其中所述TLB锁定指示器包含存储在全局控制寄存器处的位;
响应于所述TLB锁定指示器指示未锁定状态而允许所述第一线程存取与TLB相关联的异常处置器;以及
响应于所述TLB锁定指示器指示锁定状态而:
使所述第一线程休眠,其中由休眠模式电路响应于接收到来自控制电路的休眠指令而使所述第一线程休眠;
使所述TLB锁定指示器从所述锁定状态转变为所述未锁定状态,其中所述TLB锁定指示器不从所述锁定状态转变为所述未锁定状态直到指示异常已被处置;以及
响应于所述TLB锁定指示器从所述锁定状态转变为所述未锁定状态而重放导致所述TLB未中事件的包的执行。
2.根据权利要求1所述的方法,其进一步包括当允许存取时将所述TLB锁定指示器设定为所述锁定状态。
3.根据权利要求1所述的方法,其中所述TLB包括软件管理的TLB。
4.根据权利要求1所述的方法,其进一步包括:
计算与所述TLB未中事件有关的结果;
将所述结果编程到所述TLB中;以及
将所述TLB锁定指示器设定为所述未锁定状态。
5.根据权利要求4所述的方法,其进一步包括在从所述异常处置器返回后即刻自动将所述TLB锁定指示器设定为所述未锁定状态。
6.根据权利要求1所述的方法,其中所述异常处置器将所述TLB锁定指示器设定为所述锁定状态。
7.一种使用锁定指示器管理多线程处理器的共享资源的方法,其包括:
接收与所述多线程处理器的线程相关联的翻译旁视缓冲器TLB未中事件,所述线程具有对共享翻译旁视缓冲器TLB的存取权;
读取TLB锁定指示器,且响应于所述TLB锁定指示器指示锁定状态而使所述线程休眠,其中所述TLB锁定指示器包含存储在全局控制寄存器处的位,且其中由休眠模式电路响应于接收到来自控制电路的休眠指令而使所述线程休眠;
响应于接收到指令而唤醒所述线程;以及
响应于所述TLB锁定指示器从所述锁定状态转变为未锁定状态而重放导致所述TLB未中事件的指令包的执行,其中所述TLB锁定指示器不从所述锁定状态转变为所述未锁定状态直到指示异常已被处置。
8.根据权利要求7所述的方法,其中在第一时间周期期间为第一线程保留所述TLB,且其中在第二时间周期期间为第二线程保留所述TLB,且其中在所述第一时间周期和所述第二时间周期期间将第三线程置于休眠。
9.根据权利要求8所述的方法,其中在第三时间周期期间唤醒所述第三线程。
10.根据权利要求8所述的方法,其进一步包括,在唤醒所述第三线程之后,重放在所述第三线程被置于休眠之前所述第三线程所执行的指令包的执行。
11.一种使用锁定指示器管理多线程处理器的共享资源的系统,其包括:
翻译旁视缓冲器TLB,其由所述多线程处理器的多个处理线程共享;
所述多线程处理器的全局控制寄存器中的TLB锁定位;以及
控制逻辑电路,其经配置以:
响应于所述TLB锁定位具有锁定配置而:
响应于检测到与所述多个处理线程中的第一线程相关联的第一TLB未中事件而向休眠模式电路发送休眠指令以使所述第一线程休眠,
使所述TLB锁定位从所述锁定配置转变为未锁定配置,其中所述TLB锁定位不从所述锁定配置转变为所述未锁定配置直到指示异常已被处置;以及
响应于所述TLB锁定位从所述锁定配置转变为所述未锁定配置而重放导致所述第一TLB未中事件的执行包。
12.根据权利要求11所述的系统,其中所述第一TLB未中事件与所述第一线程的所述执行包相关联,且其中所述控制逻辑电路进一步经配置以存储所述执行包,且在所述第一线程被置于休眠时不递增与所述第一线程相关联的程序计数器。
13.根据权利要求11所述的系统,其中响应于所述第一TLB未中事件而在不启动异常处置器的情况下使所述第一线程休眠。
14.根据权利要求11所述的系统,其中所述控制逻辑电路进一步经配置以将所述TLB锁定位设定为所述锁定配置,且同时响应于所述TLB锁定位具有所述未锁定配置而起始与所述第一TLB未中事件相关联的异常处置器。
15.根据权利要求14所述的系统,其中所述TLB锁定位经配置以由所述控制逻辑电路设定为所述锁定配置。
16.根据权利要求11所述的系统,其中所述控制逻辑电路经配置以在所述多个处理线程中的第二线程响应于第二TLB未中事件也被置于休眠时,存储指示用以唤醒所述第一线程的次序的数据。
17.根据权利要求16所述的系统,其中所述指示用以唤醒所述第一线程的所述次序的数据存储在先入先出(FIFO)缓冲器中。
18.一种使用锁定指示器管理多线程处理器的共享资源的方法,其包括:
处置与由所述多线程处理器的多个线程共享的资源相关联的异常;
在所述异常已被处置之前,将与所述资源相关联的硬件锁定设定为锁定状态;以及
响应于所述硬件锁定指示所述锁定状态而:
响应于由所述多个线程中的第一线程导致的与所述资源相关联的异常而使所述第一线程休眠,其中由休眠模式电路响应于接收到来自控制逻辑电路的休眠指令而使所述第一线程休眠;
使所述硬件锁定从所述锁定状态转变为未锁定状态,其中所述硬件锁定不从所述锁定状态转变为所述未锁定状态直到指示异常已被处置;以及
响应于所述硬件锁定从所述锁定状态转变为所述未锁定状态而由所述第一线程重放导致与所述资源相关联的所述异常的指令包的执行。
19.根据权利要求18所述的方法,其中由所述多线程处理器的所述多个线程共享的所述资源是所述多线程处理器的核心存储器资源。
20.根据权利要求19所述的方法,其中所述核心存储器资源是翻译旁视缓冲器TLB,且其中所述异常由TLB未中导致。
21.根据权利要求18所述的方法,其中所述硬件锁定包含全局控制寄存器的至少一个位。
22.一种使用锁定指示器管理多线程处理器的共享资源的系统,其包括:
用于存储指示所述多线程处理器中的共享资源的锁定状态的位的装置;
用于在处理异常处置指令之前自动将所述共享资源设定为已锁定状态以处置与所述共享资源相关联的处理异常的装置;
用于保存线程的状态的装置;
用于响应于在所述共享资源的所述锁定状态指示所述已锁定状态时接收到来自控制电路的休眠指令而在所述线程的所述状态已被保存之后使所述线程休眠的装置;
用于将所述共享资源的所述锁定状态设定为未锁定状态的装置,其中所述共享资源的所述锁定状态不设定为未锁定状态直到指示异常已被处置;以及
用于响应于所述共享资源的所述锁定状态从所述已锁定状态转变为所述未锁定状态而重放导致与所述共享资源相关联的所述处理异常的指令包的执行的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/949,284 US8140823B2 (en) | 2007-12-03 | 2007-12-03 | Multithreaded processor with lock indicator |
US11/949,284 | 2007-12-03 | ||
PCT/US2008/085402 WO2009073722A1 (en) | 2007-12-03 | 2008-12-03 | Multithreaded processor with lock indicator |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101884029A CN101884029A (zh) | 2010-11-10 |
CN101884029B true CN101884029B (zh) | 2014-09-03 |
Family
ID=40427128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880119089.6A Active CN101884029B (zh) | 2007-12-03 | 2008-12-03 | 具有锁定指示器的多线程处理器 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8140823B2 (zh) |
EP (1) | EP2232370B1 (zh) |
JP (3) | JP2011505647A (zh) |
KR (1) | KR101146359B1 (zh) |
CN (1) | CN101884029B (zh) |
WO (1) | WO2009073722A1 (zh) |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US8250396B2 (en) * | 2008-02-01 | 2012-08-21 | International Business Machines Corporation | Hardware wake-and-go mechanism for a data processing system |
US8316218B2 (en) | 2008-02-01 | 2012-11-20 | International Business Machines Corporation | Look-ahead wake-and-go engine with speculative execution |
US8788795B2 (en) | 2008-02-01 | 2014-07-22 | International Business Machines Corporation | Programming idiom accelerator to examine pre-fetched instruction streams for multiple processors |
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 |
US8145849B2 (en) * | 2008-02-01 | 2012-03-27 | International Business Machines Corporation | Wake-and-go mechanism with system bus response |
US8312458B2 (en) | 2008-02-01 | 2012-11-13 | International Business Machines Corporation | Central repository for wake-and-go mechanism |
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 |
US8341635B2 (en) | 2008-02-01 | 2012-12-25 | International Business Machines Corporation | Hardware wake-and-go mechanism with look-ahead polling |
US8725992B2 (en) | 2008-02-01 | 2014-05-13 | International Business Machines Corporation | Programming language exposing idiom calls to a programming idiom accelerator |
US8732683B2 (en) * | 2008-02-01 | 2014-05-20 | International Business Machines Corporation | Compiler providing idiom to idiom accelerator |
US8386822B2 (en) * | 2008-02-01 | 2013-02-26 | International Business Machines Corporation | Wake-and-go mechanism with data monitoring |
US8516484B2 (en) | 2008-02-01 | 2013-08-20 | International Business Machines Corporation | Wake-and-go mechanism for a data processing system |
US8171476B2 (en) | 2008-02-01 | 2012-05-01 | International Business Machines Corporation | Wake-and-go mechanism with prioritization of threads |
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 |
US8479166B2 (en) * | 2008-08-25 | 2013-07-02 | International Business Machines Corporation | Detecting locking discipline violations on shared 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 |
US8886919B2 (en) * | 2009-04-16 | 2014-11-11 | International Business Machines Corporation | Remote update programming idiom accelerator with allocated processor resources |
JP5428617B2 (ja) * | 2009-07-28 | 2014-02-26 | 富士通株式会社 | プロセッサ及び演算処理方法 |
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 |
US9417873B2 (en) | 2012-12-28 | 2016-08-16 | Intel Corporation | Apparatus and method for a hybrid latency-throughput processor |
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 |
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 (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1577282A (zh) * | 2003-06-27 | 2005-02-09 | 英特尔公司 | 使用监视-存储器等待的被排序的锁定 |
CN1630852A (zh) * | 2001-09-28 | 2005-06-22 | 英特尔公司 | 多处理器计算机上的java线程同步的灵活加速 |
Family Cites Families (10)
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 |
US20010052053A1 (en) * | 2000-02-08 | 2001-12-13 | Mario Nemirovsky | Stream processing unit for a multi-streaming processor |
US6742103B2 (en) * | 2000-08-21 | 2004-05-25 | Texas Instruments Incorporated | Processing system with shared translation lookaside buffer |
US7234143B2 (en) * | 2002-06-20 | 2007-06-19 | Hewlett-Packard Development Company, L.P. | Spin-yielding in multi-threaded systems |
AU2003250575A1 (en) * | 2002-08-07 | 2004-02-25 | Mmagix Technology Limited | Apparatus, method and system for a synchronicity independent, resource delegating, power and instruction optimizing processor |
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 | 富士通株式会社 | 演算処理装置,情報処理装置及び演算処理装置の制御方法 |
US7398371B2 (en) * | 2005-06-23 | 2008-07-08 | Qualcomm Incorporated | Shared translation look-aside buffer and method |
US7617380B2 (en) * | 2005-08-25 | 2009-11-10 | Broadcom Corporation | System and method for synchronizing translation lookaside buffer access in a multithread processor |
US20070136725A1 (en) * | 2005-12-12 | 2007-06-14 | International Business Machines Corporation | System and method for optimized preemption and reservation of software locks |
-
2007
- 2007-12-03 US US11/949,284 patent/US8140823B2/en active Active
-
2008
- 2008-12-03 CN CN200880119089.6A patent/CN101884029B/zh active Active
- 2008-12-03 WO PCT/US2008/085402 patent/WO2009073722A1/en active Application Filing
- 2008-12-03 JP JP2010537031A patent/JP2011505647A/ja active Pending
- 2008-12-03 EP EP08856823.3A patent/EP2232370B1/en active Active
- 2008-12-03 KR KR1020107014736A patent/KR101146359B1/ko not_active IP Right Cessation
-
2013
- 2013-02-25 JP JP2013034561A patent/JP2013145568A/ja active Pending
-
2014
- 2014-06-04 JP JP2014116111A patent/JP2014197408A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1630852A (zh) * | 2001-09-28 | 2005-06-22 | 英特尔公司 | 多处理器计算机上的java线程同步的灵活加速 |
CN1577282A (zh) * | 2003-06-27 | 2005-02-09 | 英特尔公司 | 使用监视-存储器等待的被排序的锁定 |
Non-Patent Citations (1)
Title |
---|
说明书附图4,说明书摘要. |
Also Published As
Publication number | Publication date |
---|---|
JP2011505647A (ja) | 2011-02-24 |
US20090144519A1 (en) | 2009-06-04 |
CN101884029A (zh) | 2010-11-10 |
KR20100101629A (ko) | 2010-09-17 |
JP2014197408A (ja) | 2014-10-16 |
EP2232370A1 (en) | 2010-09-29 |
EP2232370B1 (en) | 2015-11-04 |
US8140823B2 (en) | 2012-03-20 |
WO2009073722A1 (en) | 2009-06-11 |
JP2013145568A (ja) | 2013-07-25 |
KR101146359B1 (ko) | 2012-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101884029B (zh) | 具有锁定指示器的多线程处理器 | |
US7577823B2 (en) | Wake-up and sleep conditions of processors in a multi-processor system | |
US8161247B2 (en) | Wait loss synchronization | |
CN101529383B (zh) | 任务处理装置 | |
CN104583900B (zh) | 在处理器的异质核之间动态切换工作载荷 | |
JP6009529B2 (ja) | マルチスレッドシステムの中でイベントを設定するための技術 | |
CN109885343A (zh) | 一种控制器低功耗启动方法、装置、计算机设备及存储介质 | |
JP2010510581A (ja) | マルチスレッド化デジタル信号プロセッサに関する非侵入型、スレッド選択式デバッギング方法及びシステム | |
CN103765409A (zh) | 有功率效率的处理器体系结构 | |
CN112199170B (zh) | 实时操作系统的定时处理方法、装置、设备及存储介质 | |
WO2008101386A1 (fr) | Procédé de récupération d'une exception à noyau unique dans un système à plusieurs noyaux | |
KR20140069245A (ko) | 트랜잭셔널 메모리 동작들을 수행하도록 구성된 프로세서 | |
CN102436393B (zh) | 任务处理装置 | |
US20040250147A1 (en) | Uninterrupted system operation | |
CN101739368A (zh) | 一种中断加速装置和中断处理系统 | |
WO2012087533A1 (en) | Minimizing resource latency between processor application states in a portable computing device by using a next-active state set | |
CN112147931A (zh) | 一种信号处理器的控制方法、装置、设备以及存储介质 | |
CN117369888A (zh) | 电子设备的唤醒方法、装置、电子设备和可读存储介质 | |
EP1387258A2 (en) | Processor-processor synchronization | |
WO2012066621A1 (ja) | 情報処理システム | |
GB2506169A (en) | Limiting task context restore if a flag indicates task processing is disabled | |
CN116991605A (zh) | 进程处理方法、装置、电子设备和可读存储介质 | |
CN103677202B (zh) | 休眠管理方法及相关装置 | |
CN111767153A (zh) | 资源访问方法、装置及电子设备 | |
CN116627622A (zh) | 一种数据处理方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |