示出)可被包括在任一处理器中,或在两个处理器的外部但经 由P-P互连与运些处理器连接,从而如果处理器被置于低功率模式,则任一个或运两个处 理器的本地高速缓存信息可被存储在该共享的高速缓存中。 阳122] 忍片组1490可W经由接口 1496禪合至第一总线1416。在一个实施例中,第一总 线1416可W是外围组件互连(PCI)总线或诸如PCI高速总线或另一第Ξ代I/O互连总线 之类的总线,但是本发明的范围不限于此。 阳123] 如图14所示,各种I/O设备1414可连同总线桥1418-起禪合到第一总线1416, 总线桥1418将第一总线1416禪合到第二总线1420。在一个实施例中,诸如协处理器、高 吞吐量MIC处理器、GPGPU的处理器、加速器(例如,图形加速器或数字信号处理值S巧单 元)、现场可编程口阵列或任何其他处理器之类的一个或多个附加处理器1415禪合到第一 总线1416。在一个实施例中,第二总线1420可W是低引脚计数(LPC)总线。各种设备可W 被禪合至第二总线1420,在一个实施例中,运些设备包括例如,键盘/鼠标1422、通信设备 1427W及诸如可包括指令/代码和数据1428的盘驱动器或其他大容量存储设备的存储单 元1430。此外,音频I/O1424可W被禪合至第二总线1420。注意,其他架构是可能的。例 如,代替图14的点对点架构,系统可W实现多分支总线或其他此类架构。
[0124] 现在参考图15,所示为根据本发明的实施例的更具体的第二示例性系统1500的 框图。图14和15中的相同部件用相同附图标记表示,并已从图14中省去了图14中的某 些方面,W避免使图15的其他方面变得模糊。
[012引图15示出处理器1470、1480可分别包括集成存储器和I/O控制逻辑("化")1472 和1482。因此,CL1472、1482包括集成存储器控制器单元并包括I/O控制逻辑。图15示出 不仅存储器1432、1434禪合至化1472、1482,而且I/O设备1514也禪合至控制逻辑1472、 1482。传统I/O设备1515被禪合至忍片组1490。 阳126] 现在参照图16,所示出的是根据本发明实施例的SoC1600的框图。图12中的相 似的部件具有同样的附图标记。另外,虚线框是更先进的SoC上的可选特征。在图16中, 互连单元1602被禪合至:应用处理器1610,其包括一个或多个核的集合1202A-NW及共 享高速缓存单元1206 ;系统代理单元1210 ;总线控制器单元1216 ;集成存储器控制器单元 1214 ;-个或多个协处理器的集合1620,其可包括集成图形逻辑、图像处理器、音频处理器 和视频处理器;静态随机存取存储器(SRAM)单元1630 ;直接存储器存取(DMA)单元1632 ; W及用于禪合至一个或多个外部显示器的显示单元1640。在一个实施例中,协处理器1620 包括专用处理器,例如,网络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、或嵌入 式处理器等。
[0127] 本文公开的机制的多个实施例可实现在硬件、软件、固件或此类实现方法的组合 中。本发明的多个实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编 程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、 至少一个输入设备W及至少一个输出设备。 阳12引可将程序代码(例如,图14中示出的代码1430)应用于输入指令,W执行本文描 述的多个功能并生成输出信息。可W按已知方式将输出信息应用于一个或多个输出设备。 为了本申请的目的,处理系统包括具有诸如数字信号处理器值SP)、微控制器、专用集成电 路(ASIC)或微处理器之类的处理器的任何系统。
[0129] 程序代码可W用高级程序化语言或面向对象的编程语言来实现,W便与处理系统 通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本文中描述的机制 不限于任何特定编程语言的范围。在任何情形下,该语言可W是编译语言或解释语言。
[0130] 至少一个实施例的一个或多个方面可W由存储在表示处理器中的各种逻辑的机 器可读介质上的表示性指令来实现,指令在被机器读取时使得该机器制作用于执行本文所 述的技术的逻辑。可将被称为"IP核"的此类表示存储在有形的机器可读介质上,并将其提 供给各种客户或生产设施W加载到实际制造该逻辑或处理器的制造机器中。 阳131] 此类机器可读存储介质可W包括但不限于通过机器或设备制造或形成的制品的 非暂态的有形安排,其包括存储介质,诸如,硬盘;任何其他类型的盘,包括软盘、光盘、紧 致盘只读存储器(CD-ROM)、紧致盘可重写(CD-RW)W及磁光盘;半导体器件,诸如,只读存 储器(ROM)、诸如动态随机存取存储器值RAM)和静态随机存取存储器(SRAM)之类的随机 存取存储器(RAM)、可擦除可编程只读存储器巧PROM)、闪存、电可擦除可编程只读存储器 巧EPROM);相变存储器(PCM);磁卡或光卡;或适于存储电子指令的任何其他类型的介质。
[0132] 因此,本发明的多个实施例还包括非暂态的有形机器可读介质,该介质包含指令 或包含设计数据,诸如硬件描述语言(皿L),它定义本文中描述的结构、电路、装置、处理器 和/或系统特征。此类实施例也被称为程序产品。
[0133] 仿真(包括二进制变换、代码变形等)
[0134] 在一些情况下,指令转换器可用来将指令从源指令集转换至目标指令集。例如,指 令转换器可W变换(例如,使用静态二进制变换、包括动态编译的动态二进制变换)、变形、 仿真或W其他方式将指令转换成将由核来处理的一个或多个其他指令。指令转换器可W用 软件、硬件、固件或其组合实现。指令转换器可W在处理器上、在处理器外、或者部分在处理 器上且部分在处理器外。
[0135]图17是根据本发明的多个实施例的对照使用软件指令转换器将源指令集中的二 进制指令转换成目标指令集中的二进制指令的框图。在所示的实施例中,指令转换器是软 件指令转换器,但作为替代,该指令转换器可在软件、固件、硬件或其各种组合中实现。图17 示出可使用x86编译器1704来编译利用高级语言1702的程序,W生成可由具有至少一个 x86指令集核的处理器1716原生执行的x86二进制代码1706。具有至少一个x86指令集 核的处理器1716表示能通过兼容地执行或W其他方式处理W下内容来执行与具有至少一 个x86指令集核的英特尔处理器基本相同的功能的任何处理器:(1)英特尔x86指令集核 的指令集的本质部分,或(2)目标为在具有至少一个X86指令集核的英特尔处理器上运行 W取得与具有至少一个x86指令集核的英特尔处理器基本相同的结果的应用或其他软件 的目标代码版本。x86编译器1704表示用于生成x86二进制代码1706(例如,目标代码) 的编译器,该二进制代码可通过或不通过附加的链接处理在具有至少一个X86指令集核的 处理器1716上执行。类似地,图17示出可W使用替代的指令集编译器1702来编译利用高 级语言1702的程序,W生成可W由不具有至少一个x86指令集核的处理器1714(例如,具 有执行加利福尼亚州桑尼维尔市的MIPS技术公司的MIPS指令集、和/或执行加利福尼亚 州桑尼维尔市的ARM控股公司的ARM指令集的核的处理器)原生执行的替代的指令集二进 制代码1710。指令转换器1712用于将x86二进制代码1706转换成可W由不具有x86指令 集核的处理器1714原生执行的代码。该转换后的代码不太可能与替代的指令集二进制代 码1710相同,因为能够运样做的指令转换器难W制造;然而,转换后的代码将完成一般操 作并由来自替代指令集的指令构成。因此,指令转换器1712通过仿真、模拟或任何其他过 程来表示允许不具有x86指令集处理器或核的处理器或其他电子设备执行x86二进制代码 1706的软件、固件、硬件或其组合。
[0136] 也可W可选地将针对图3-8中任意一个所描述的组件、特征和细节用于图1-2中 的任意一个中。此外,也可W可选地将针对本文中所描写的装置中的任何一个的、本文中所 述的组件、特征和细节用于和/或应用于本文中所述的多个方法中的任何方法,在多个实 施例中,可由和/或可利用此类装置来执行运些方法。可将本文所述的处理器中的任意一 个包括在本文所公开的计算机系统或其他系统的任意一个中。在一些实施例中,该计算机 系统可包括互连(例如,点对点,或在其中多于两个忍片可禪合至互连的多分支)、与该互 连禪合的处理器W及与该互连禪合的动态随机存取存储器值RAM)。或者,替代DRAM,可使 用不需要被刷新的其他类型的易失性存储器,可使用闪存,等等。在一些实施例中,可将该 处理器包括在包括忍片上存储器控制器的忍片中,或者在其他实施例中,可将存储器控制 器包括在分开的忍片(例如,集线器忍片)中。
[0137]在说明书和权利要求中,可能使用了术语"禪合的"和/或"连接的"及其派生词。 运些术语不旨在互为同义词。相反,在多个实施例中,"连接的"用于指示两个或更多元件彼 此直接物理和/或电接触。"禪合的"可意味着两个或更多个元件彼此直接物理和/或电接 触。然而,"禪合的"也可意味着两个或更多个元件并未彼此直接接触,但是仍然彼此协作或 彼此作用。例如,执行单元可通过一个或多个中间组件与寄存器和/或解码单元禪合。在 多个附图中,箭头用于示出连接和禪合。
[013引在说明书和/或权利要求书中,可能已使用了术语"逻辑"、"单元"、"模块"或"组 件"。可将运些属于中的每一个用于指代硬件、固件、软件或它们的各种组合。在示例实施 例中,运些术语中的每一个可W是指集成电路、专用电路、模拟电路、数字电路、可编程逻辑 器件、包括指令的存储设备等,W及它们的各种组合。在一些实施例中,它们可包括至少某 个硬件(例如,晶体管、Π、其他电路组件等)。 阳139]可能已使用了术语"和/或"。如本文中所使用的那样,术语"和/或"意思是一个 或其他或两者(例如,A和/或B意思是:A或B,或者A和B两者)。
[0140]在W上描述中,为了提供对多个实施例的透彻理解,阐述了具体的细节。然而,在 没有运些具体细节中的一些的情况下,可实施其他实施例。本发明的范围不是由W上所提 供的具体示例来确定的,而仅由所附权利要求确定。在其他实例中,W框图形式和/或没有 细节的形式示出了公知的电路、结构、设备和操作,W避免使对说明书的理解变得模糊。在 认为合适的地方,已经在多个附图间重复了附图标记或附图标记的结尾部分,W指示可W 可选地具有类似或相同特性的对应或类似的元件,除非指出或W其他方式使之显而易见。 阳141]已描述了各种操作和方法。已经W相对基础的形式对运些方法中的一些进行了描 述,但是可W可选地将多个操作添加到运些方法中和/或从运些方法中去除。此外,虽然已 根据多个实施例示出或描述了特定的操作顺序,但是该顺序是示例性的。替代实施例可按 不同的顺序执行运些操作,可组合某些操作,可重叠某些操作,等等。 阳142]某些操作可由硬件组件执行,或者可具体化在机器可执行或电路可执行指令中, 运些操作可用于使得和/或者导致机器、电路或硬件组件(例如,处理器、处理器的部分、电 路等)利用执行操作的指令被编程。也可W可选地由硬件和软件的组合来执行运些操作。 处理器、机器、电路、或硬件可包括可用于执行和/或处理指令且响应于该指令存储结果的 专用或特定电路或者其他逻辑(例如,潜在地与固件和/或软件组合的硬件)。 阳143]-些实施例包括制品(例如,计算机程序产品),该制品包括机器可读介质。该介 质可包括W机器可读的形式提供(例如,存储)信息的机制。机器可读介质可提供指令或 指令序列或者可在该机器可读介质上存储了指令或指令序列,如果和/或当由机器执行该 指令或指令序列,该指令或指令序列用于使该机器执行和/或导致该机器执行本文中所公 开的一种或多种操作、方法、或技术。该机器可读介质可存储或W其他方式提供本文中所公 开的指令的实施例中的一个或多个。
[0144] 在一些实施例中,该机器可读介质可包括有形的和/或非暂态的机器可读存储介 质。例如,有形的和/或非暂态机器可读存储介质可包括:软盘、光存储介质、光盘、光学数 据存储设备、CD-ROM、磁盘、磁光盘、只读存储器(ROM)、可编程ROM(PROM)、可擦除可编程 ROM(EPROM)、电可擦除可编程ROM巧EPROM)、随机存取存储器(RAM)、静态RAM(SRAM)、动态 RAM值RAM)、闪存、相变化存储器、相变化数据存储材料、非易失性存储器、非易失性数据存 储设备、非暂态存储器、或暂态数据存储设备等。非暂态机器可读存储介质不由暂态传播的 信号组成。
[0145] 合适机器的示例包括但不限于,通用处理器、专用处理器、指令处理装置、数字逻 辑电路、集成电路等。合适的机器的另一些示例包括,包含处理器、指令处理装置、数字逻辑 电路或集成电路的计算设备或其他电子设备。此类计算设备和电子设备的示例包括但不限 于,台式计算机、膝上型计算机、笔记本计算机、平板计算机、上网本、智能电话、蜂窝电话、 服务器、网络设备(例如,路由器和交换机)、移动网络设备(MID)、媒体播放器、智能电视、 上网机、机顶盒和视频游戏控制器。 阳146] 例如,贯穿本说明书对"一个实施例"、"实施例"、"一个或多个实施例"、"一些实施 例"的引用指示特定特征可被包括在本发明的实施中,但是不一定需要运样。类似地,在说 明书中,为了使本公开顺杨并且辅助对各个发明性方面的理解,有时在单个实施例、附图及 其描述中将各种特征归集在一起。然而,不应当将该公开方法解释为反映本发明需要比每 项权利要求中所明确记载的更多特征的意图。相反,如所附权利要求反映的那样,发明性方 面在于少于所公开的单个实施例的所有特征。因此,将遵循【具体实施方式】的各项权利要求 明确地结合进该【具体实施方式】,每一项权利独立地作为本发明单独的实施例而存在。 阳147] 示例实施例
[0148] W下示例设及进一步的实施例。运些示例中的细节可用于一个或多个实施例中的 任何地方。
[0149] 示例1是处理器或其他装置,包括用于对来自第一线程的线程暂停指令进行解码 的解码单元和与该解码单元禪合的处理器的后端部。该处理器的后端部用于:响应于该线 程暂停指令,暂停对用于执行的第一线程的后续指令的处理。运些后续的指令按程序顺序 在该线程暂停指令之后发生。该处理器的后端部也用于:响应于该线程暂停指令,保持处理 器的后端部的至少多数排空该第一线程中除线程暂停指令之外的指令长达预定的时间段, 处理器的后端部的至少多数包括多个执行单元和指令队列单元。
[0150] 示例2包括示例1的处理器,进一步包括计时器,其中,该处理器响应于线程暂停 指令在处理器的后端部的至少多数排空第一线程的指令之后,启用该计时器。 阳151] 示例3包括示例2的处理器,其中,解码单元用于将线程暂停指令解码为控制信 号,并且其中处理器的后端部响应于提交该控制信号来启用计时器。 阳152] 示例4包括示例1到3中任意一项所述的处理器,进一步所述处理器的前端部,该 前端部包括解码单元,并且其中,处理器的后端部用于:当处理器的后端部的至少多数空闲 时,响应于线程暂停指令,用信号通知处理器的前端部,处理器的该前端部将不会接收到来 自处理器的后端部的需要关注的事