具有集成目录高速缓存的优化的高速缓存代理的制作方法

文档序号:14911054发布日期:2018-07-10 23:25阅读:136来源:国知局

在对用于解决在当前以及未来的服务器/计算机使用模型中的日益增长的处理需求的新的和改进的解决方案的开发中存在许多挑战。这些挑战中的一个是感知的“存储器墙”,其中存储器带宽不能跟上增加的计算带宽。对于高度并行应用,通过增加使用的核的数量和/或将某些任务卸载到高度专用核来增加计算带宽和效率是相对简单的。然而,当谈到增加存储器带宽时,这些方法不能良好地调整,因为设计能够跟上日益增加的计算带宽的一致性互连和存储器层次结构提出若干挑战。

首先,增加计算核对总管芯尺寸施加压力。许多目前的高性能计算(HPC)和集成图形中央处理单元(CPU)设计要么已经在标线限制,要么由于成本约束而不能增加管芯尺寸。这为用于实现支持存储器带宽的增加所需的一致性互连缓冲器和队列留下非常小的可用的管芯上物理空间。其次,许多目前的CPU设计本身已经是功率非常受挑战的。将上述挑战与对将更多功率分配给计算元件而不是结构的强烈要求结合,很明显增加存储器带宽的关键在于更智能和更高效地使用当前架构设计中的现有的存储器资源,而不是试图创建更多的存储器资源。

附图说明

随着通过在结合所附附图时参考以下具体实施方式使本发明的前述多个方面和许多伴随的优点变得更好地被理解,本发明的前述多个方面和许多伴随的优点将更容易领会,其中,遍及各个视图,除非另外指定,否则相同的附图标记指相同的部件:

图1是示出用于实现本发明的实施例的示例性平台硬件或系统的高级视图的框图;

图2A是示出根据实施例的插槽的框图;

图2B是示出插槽的替代实施例的框图;

图3示出根据本发明的实施例的远程监听滤波器(“RSF”)的示例性实现方式;

图4是示出根据一个实施例的高速缓存和本地代理(“CHA”)实现方式的抽象高级视图的框图;

图5是示出根据实施例的用于实现CHA以执行对跟踪器条目的早的解除分配的操作和逻辑的流程图;

图6是基于现有技术的示出其中需要监听远程插槽的本地核的高速缓存行访问的消息流程图;

图7示出与其中不需要监听远程插槽的源自本地核的高速缓存行访问请求对应的消息流程图;

图8示出根据本发明的实施例的与请求表(“TOR”)中的跟踪器条目被早地解除分配的源自本地核的高速缓存行访问请求对应的消息流程图;

图9示出根据本发明的实施例的与TOR中的跟踪器条目未被早地解除分配的源自本地核的高速缓存行访问请求对应的消息流程图;

图10A是示出根据本发明的实施例的示例性有序流水线和示例性的寄存器重命名的乱序发布/执行流水线的框图;

图10B是示出根据本发明的实施例的要包括在处理器中的有序架构核的示例性实施例和示例性的寄存器重命名的乱序发布/执行架构核的框图;

图11是根据本发明的实施例的具有集成存储器控制器和图形器件的单核处理器和多核处理器的框图;

图12示出根据本发明的一个实施例的系统的框图;

图13示出根据本发明的实施例的第二系统的框图;

图14示出根据本发明的实施例的第三系统的框图;

图15示出根据本发明的实施例的芯片上系统(SoC)的框图;以及

图16示出根据本发明的实施例的、对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。

具体实施方式

本文描述了实现远程监听滤波器以启用对用于跟踪存储器访问的请求表(TOR)中的跟踪器条目的早的解除分配的系统、方法和处理器的实施例。在以下描述中,阐述了许多具体细节以提供对本发明的实施例的透彻理解。然而,本领域技术人员将认识到,可不利用特定的细节中的一个或多个或利用其他方法、部件、材料等来实践本发明。在其他实例中,未详细地示出或描述公知的结构、材料或操作以避免使本发明的多个方面模糊。

贯穿本说明书,对“一个实施例”或“一实施例”的引用意味着结合该实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,在整个说明书的多个位置出现短语“在一个实施例中”或“在实施例中”不一定全部是指同一实施例。此外,在一个或多个实施例中,能以任何合适的方式来组合特定的特征、结构或特性。为了清晰起见,可以附图中部件的标签而不是以特定的附图标记来引用本文中附图中的各个部件。

将一致性结构调整为与存储器带宽增加相匹配的关键挑战之一是高速缓存代理(CHA)跟踪器条目。这些CHA跟踪器条目被分配给任何高速缓存代理作出的每一个未决请求以跟踪每个请求的进展。增加存储器带宽意味着更多请求被处理并且因此需要更多跟踪器条目。通常,增加跟踪器条目的数量以支持附加的存储器带宽要求增加高速缓存代理的数量或增加每个高速缓存代理的跟踪器条目的数量。然而,由于相关联的面积、功率和时序收敛的挑战,任一解决方案都不是理想的。例如,增加高速缓存代理的数量意味着扩大总管芯尺寸并且消耗更多功率。相同情况连同涉及条目的频率和时序的其他问题适用于增加每个高速缓存代理的跟踪器条目的数量。因此,任一解决方案对于高存储器带宽应用都不是理想的。

为了在实质上不增加跟踪器条目的数量的情况下支持更高的存储器带宽,本文描述了用于减少跟踪器条目寿命的机制。一般而言,当接收存储器访问请求(例如,读取高速缓存行存储器)时分配一致性跟踪器条目,并且这些条目需要保持未决的,直到相关联的访问请求完成。这样做的原因是,来自存储器的响应通常包括用于确定是否需要交叉插槽监听的目录状态信息。例如,如果从存储器读取的高速缓存行也在一个或多个远程插槽中高速缓存,则应当监听那些远程插槽以确保存储器一致性,使得该高速缓存行的最当前副本被返回。这表示,现在的许多应用专门设计有朝向本地存储器的偏向,并且由此通常不跨插槽共享所存储和使用的数据。由此,这些应用通常不需要交叉插槽监听来确保存储器一致性。然而,当前没有用于使高速缓存代理在存储器读取之前预测或确定被请求的高速缓存行是否跨插槽共享的机制。因此,对于至少存储器读取的持续时间,必须使用和维持跟踪器条目。这通常比所需的更长,尤其在涉及设计有朝向本地存储器的特定偏向的应用的情形下。本发明的一个方面使得高速缓存代理能在提前知晓被请求的高速缓存行是否跨插槽共享的情况下减少跟踪器条目的寿命。该提前知晓将允许一些跟踪器条目被早地解除分配或终止而不必等待来自存储器的响应,从而释放这些跟踪器条目以用于其他请求。总而言之,对跟踪器条目的早的检测和终止提供对存储器资源的更高效的使用并且允许对更高的存储器带宽的支持,而没有面积和功率开销的显著增加。

图1是示出用于实现本发明的实施例的示例性平台硬件或系统的高级视图的框图。平台硬件100包括插槽1到M 102、存储器104、盘和/或固态驱动器(SSD)控制器106和网络接口卡(NIC)108。插槽(102-1到102-M)、存储器104、盘/SSD控制器105和NIC 108通过高速互连110耦合。互连110可以是总线或点对点互连以及其他合适的连接结构或技术,诸如加利福尼亚州圣克拉拉市的公司开发的快速通路互连(QPI)。盘/SSD控制器106连接至诸如盘驱动器、SSD、CD/DVD-Rom等的存储盘。NIC 108连接至网络114。根据本发明的实施例,插槽1到M 102可包含或包括诸如中央处理单元(CPU)、图形处理单元(GPU)、现场可编程门阵列(FPGA)等的芯片上系统(SoC)。SoC可进一步包括一个或多个处理器核。取决于硬件配置选择,插槽可以全部实现在相同的封装上,或者替代地,插槽可以实现在不同的封装上。平台硬件100还可以包括未示出以避免使本发明的基本方面模糊和/或复杂的其他组件。

图2A是示出根据实施例的插槽的框图。该插槽可以是来自图1的插槽1到M中的一个。根据一个实施例,插槽200包括诸如芯片上系统(SoC)202的处理单元。在图2中,SoC 202是包括处理器核1-N 204-1–204-N的多核处理器。处理器核中的每一个包括一个或多个相应的核高速缓存(例如,206)以用于根据指定的高速缓存管理策略来高速缓存指令和数据。每个核(例如,204-1)通过对应的高速缓存代理(例如,208-1)与其核高速缓存(例如,206-1)对接。SoC 202进一步包括本地代理210、输入/输出(I/O)接口212、存储器控制器214和第3级或末级高速缓存(LLC)220。处理器核1到N 204-1–204-N、LLC 220、存储器控制器214和I/O接口212通过互连209耦合。根据实施例,核和高速缓存通过其相应的代理连接至互连。存储器控制器214通过本地代理210与互连对接。存储器控制器214提供SoC 202与诸如图1的存储器104的系统存储器或主存储器之间的连接。与插槽相关联的系统或主存储器也可以被称为插槽的本地存储器。I/O接口212通过相应的控制器将SoC 202连接到其他插槽(例如,102)、盘(例如,112)和/或网络(例如,114)。

在一个实施例中,远程监听滤波器(RSF)216和监听滤波器(SF)218由本地代理210实现和维持。RSF 216存储高速缓存行的地址和状态,高速缓存行的地址和状态被高速缓存在存储器104和另一插槽(例如,102-2)的高速缓存中。RSF 110可以实现为完全关联的数组或任何其他合适的数据结构。

尽管图2A为处理器核1到N中的每一个示出仅一个核高速缓存,但是每个处理器核可包括任何数量的核高速缓存。在一些实施例中,核高速缓存的数量可以在多个处理器核之间不同,从而一个核可以比另一个核具有更多核高速缓存。根据实施例,每个处理器核包括单个第1级(L1)高速缓存。在另一实施例中,处理器核包括L1高速缓存以及第2级(L2)高速缓存。核高速缓存(例如,206)中的每一个与对应的高速缓存代理(例如,208)相关联。高速缓存代理管理核(例如,204)、核高速缓存(例如,206)与LLC 220之间的对接。所有访问LLC的核事务被从核引导至高速缓存代理。高速缓存代理负责管理从LLC到请求核的数据传递。高速缓存代理还负责维持插槽200内的共享LLC的核之间的一致性,以及生成监听并且收集来自本地核的监听响应。相比之下,本地代理210负责与存储器控制器对接、确保存储器/高速缓存一致性、将监听广播到其他插槽中的对等高速缓存代理、以及维持存储器目录。高速缓存代理和本地代理由管芯上高速互连连接。高速缓存代理和本地代理有时可以统称为高速缓存/本地代理(“CHA”)。根据实施例,高速缓存代理、本地代理和/或CHA实现为包括用于从高速缓存存储器读取和写入高速缓存存储器的电路的硬件。

图2B是示出与图2A的插槽类似的插槽的替代实施例的框图。区别在于图2A的高速缓存代理208-1到208-N和本地代理210在图2B中组合为高速缓存/本地代理(CHA)222。

图3示出根据本发明的实施例的RSF的示例性实现方式。RSF用于跟踪在本地存储器中存在以及在至少一个远程插槽中被高速缓存的所有高速缓存行的地址和状态。根据实施例,RSF实现为诸如包括多个条目、每个条目具有多个字段的物理存储器结构的硬件。在至少一些实施例中,RSF的尺寸是基于本地存储器和/或远程插槽的高速缓存的尺寸。在图3中,RSF300包括M个条目(即,TOR ID 1-M)。对于在本地存储器以及至少一个远程插槽的高速缓存中存在的每个高速缓存行,无论状态如何,在RSF中都存在与高速缓存行对应的条目。每个RSF条目包括物理地址字段、保留位和一个或多个有效位。物理地址字段存储条目跟踪的高速缓存行的物理地址。保留位用于控制对条目的访问。例如,根据实施例,如果该条目当前正在被待决请求访问或修改,则将条目的RESEVRVED位设置为真,这锁定该条目,以阻止冲突。有效位用于指示哪些远程插槽具有条目所跟踪的高速缓存行的副本。每个有效位与远程插槽对应,并且因此在条目中使用的有效位的数量与系统中存在的远程插槽的数量相等。在图3中,每个RSF条目包括N个有效位(即,有效1到有效N),其指示在系统中存在N个远程插槽。在本地存储器中存在并且在至少一个远程插槽的高速缓存中高速缓存的高速缓存行,无论状态如何,都被RSF中的对应的条目跟踪。在RSF中未找到的高速缓存行被假定为不在系统中的任一远程插槽中。CHA使用来自RSF查找的结果(即,命中或未命中)以确定是否应当监听远程插槽。与取决于存储器的状态可以具有不确定性的响应时间的存储器读取不同,RSF查找的响应时间是确定性的并且通常比来自存储器读取的响应时间更短。因此,对RSF的使用提供用于跟踪远程插槽中的高速缓存行的更高效的方法。此外,RSF是独立的结构并且不与任何本地一致性流程交互,使得其在模块化的SoC设计中是可分的。

图4是示出根据一个实施例的CHA实现方式的抽象高级视图的框图。这仅旨在示出高级工作流。以下在图5中将进一步解释CHA和RSF的详细操作和逻辑。参考图4,互连(输入)402和互连(输出)416将CHA连接到本地核、远程插槽(例如,CPU、GPU、FPGA等)和系统存储器。互连可以是任何合适的高速管芯上连接,诸如环、网格、交叉、点对点等。进入机制或逻辑404接收和处理通过互连(输入)402进入的用于访问目标高速缓存行的高速缓存行请求。在RSF 406中查找高速缓存行请求以确定目标高速缓存行是否在系统中的任一远程插槽中高速缓存。将来自RSF查找的命中/未命中的结果发送至HA流水线412。HA流水线412处理需要被发送至存储器的读和写请求。HA流水线412还使用存储器目录状态和/或来自RSF查找的结果来确定系统中的附加插槽是否需要被监听。如果高速缓存行请求需要通过驱逐RSF中的现有条目来被分配到RSF,则来自RSF的命中/未命中的结果还可以触发受害/更新机制。受害/更新机制处理被驱逐的条目并且使适当的请求进入TOR(请求表)/高速缓存流水线410。

并行于查找RSF中的高速缓存行请求,还在监听滤波器和末级高速缓存408中执行查找。监听滤波器和末级高速缓存408是用于指示在诸如L1高速缓存、L2高速缓存和LLC的本地高速缓存中什么正在被高速缓存的目录。其用于维持本地高速缓存一致性。将该查找的命中/未命中的结果馈送到TOR/高速缓存流水线410中并且对其进行处理以生成适当响应。响应可以包括利用高速缓存行对请求核作出响应或者将本地未命中通知给HA流水线。从TOR/高速缓存流水线410和HA流水线生成的响应在输出至互连416之前是代理缓冲器414中的队列。

根据本发明的实施例,如果从RSF查找确定没有远程插槽需要被监听(即,RSF未命中),则TOR/高速缓存流水线410中的跟踪器条目可以被早地终止或解除分配,并且因此释放TOR/高速缓存流水线410中的资源。因为存储器读取将始终满足试图访问未在远程插槽中高速缓存的高速缓存行的高速缓存行请求,所以维持用于跟踪请求的状态的TOR中的跟踪器条目将是不必要的。此外,如上所述,来自RSF查找的响应通常比来自存储器读取的响应更快地出现,由此可以基于RSF查找来终止跟踪器条目而不必等待来自存储器读取的响应。这缩短不必要的跟踪器条目的寿命的持续时间。对于确实需要监听一个或多个远程插槽的高速缓存行请求,如RSF查找的结果(即,RSF命中)所指示的,CHA维持对应的跟踪器条目,直到接收到远程监听响应并且满足高速缓存行请求。这与在不实现RSF的情况下CHA将正常地维持的跟踪器条目的持续时间相同。

图5是示出根据实施例的用于实现CHA以执行对跟踪器条目的早的解除分配的操作和逻辑的流程图。在502处,CHA(例如,图2B的222)接收访问目标高速缓存行的请求。例如,作为本地高速缓存未命中的结果,该请求可以来自本地核(例如,图2A/B的204)。接下来,在504处,CHA分配跟踪器条目。在一个实施例中,在TOR中创建与请求对应的跟踪器条目以用于跟踪请求的状态。在506处,CHA在CHA维持的RSF中执行查找以搜索与目标高速缓存行对应的条目。可以与对目标高速缓存行的其他查找(诸如在本地监听滤波器(例如,218)和LLC(例如,220)中的查找)并行地执行RSF查找,其他查找在图5中未示出。在508处,CHA确定目标高速缓存行是否匹配RSF中的任一条目。RSF中的未命中指示所请求的目标高速缓存行未在系统中的任一远程插槽中高速缓存。如果是这种情况,则TOR中的与请求对应的跟踪器条目在510处被解除分配。可以在此处对跟踪器解除分配,因为对远程插槽的监听是不必要的,请求将经由从本地存储器读取的目标高速缓存行被满足,使跟踪器条目保持跟踪请求的状态将是不必要的。在一个实施例中,对跟踪器条目解除分配意味着删除与来自TOR的请求对应的跟踪器条目。另一方面,如果在508处在RSF中找到了匹配或命中,指示所请求的目标高速缓存行在系统中的至少一个远程插槽中存在,则不对TOR中的跟踪器条目解除分配。

无论来自RSF查找的结果(即,命中或未命中)如何,在512处执行对本地存储器的读取以读取目标高速缓存行。尽管图5示出在RSF查找之后执行对本地存储器的读取,但是在一些实施例中,可以并行地或在彼此的短时间内执行RSF查找和存储器读取,因为这两者之间没有依赖关系。RSF查找和存储器读取的时序和顺序对于作为基础的本发明不是至关重要的。在514处,经由远程监听请求确定是否应当监听远程插槽。可以通过若干方法作出该确定。例如,如果回到508处对目标高速缓存行的RSF查找产生了未命中,其指示目标高速缓存行未在任一远程插槽中被高速缓存,则不应当监听远程插槽。另一方面,如果对目标高速缓存行的RSF查找产生了命中,指示目标高速缓存行在远程插槽中的至少一个中被高速缓存,则应当基于RSF提供的信息(例如,基于有效位)监听一个或多个远程插槽。此外,还可以检查来自存储器读取的高速缓存行的目录状态以确定是否应当监听远程插槽。如果不需要监听远程插槽,则在520处CHA使用从本地存储器读取的目标高速缓存行来满足请求或对请求作出响应。如果一个或多个远程插槽需要被监听,则在516处发出远程监听。在518处,从远程插槽接收对远程监听的响应。在520处,基于来自远程监听的响应满足请求。在满足请求之后,在522处对跟踪器条目解除分配。在522处对跟踪器条目解除分配是可选的,因为如果跟踪器条目先前在510处基于来自RSF查找的结果(即,RSF未命中)已经被解除分配,则跟踪器条目将不需要被再次解除分配。

图6是基于现有技术的示出需要监听远程插槽的本地核的高速缓存行访问的消息流程图。实现在硬件平台或系统上的消息流程图600包括本地核602、CHA 604、本地存储器606和远程核608。本地核602和远程核608驻留在系统中的不同插槽中。例如,本地核602可以驻留在图1的插槽1102-1中,而远程核608驻留在插槽M 1002-2中。最初,本地核602将诸如读请求610的请求发送至CHA 604以访问目标高速缓存行。响应于该请求,CHA 604经由TOR分配消息612分配TOR中的跟踪器条目以跟踪请求的状态。接下来,CHA 604发起到本地存储器606的存储器读取614以访问存储在其中的目标高速缓存行。响应于读取,本地存储器606经由存储器响应616将目标高速缓存行返回至CHA 604。在接收存储器响应616中的目标高速缓存行之后,CHA 604检查目标高速缓存行的目录状态以确定远程插槽上的核是否需要被监听以维持存储器一致性。在这种情形下,目录状态(即,DIR=A)617指示需要远程监听。由此,CHA 604将远程监听618分派到远程插槽上的远程核608以用于目标高速缓存行。注意,可以监听多于一个远程核。被监听的远程核608然后将其目标高速缓存行的副本在远程监听响应消息620中返回至CHA 604。在接收远程监听响应中的目标高速缓存行之后,CHA 604通过将所接收的目标高速缓存行在消息622中发送回本地核602而对初始请求610作出响应。同时或不久之后,CHA 604经由TOR解除分配消息624对TOR中的跟踪器条目解除分配。

图7示出与不需要监听远程插槽的源自本地核602的类似的高速缓存行访问请求对应的消息流程图700。最初,本地核602将诸如读请求702的请求发送至CHA 604以访问目标高速缓存行。响应于该请求,CHA 604通过TOR分配消息704分配TOR中的跟踪器条目以跟踪该请求的状态。接下来,CHA 604发起到本地存储器606的存储器读取706以访问存储在其中的目标高速缓存行。响应于读取,本地存储器606经由存储器响应708将目标高速缓存行返回至CHA 604。在接收存储器响应708中的目标高速缓存行之后,CHA 604检查目标高速缓存行的目录状态以确定任一远程插槽上的核是否需要被监听以维持存储器一致性。在这种情形下,目录状态(即,DIR=I)709指示不需要远程监听。由此,CHA 604通过将在存储器响应708中接收的目标高速缓存行经由消息710发送至本地核602而利用所接收的目标高速缓存行对初始请求作出响应。同时或不久之后,CHA604利用TOR解除分配消息712对TOR中的跟踪器条目解除分配。

图8示出根据本发明的实施例的与其中TOR中的跟踪器条目被早地解除分配的源自本地核602的高速缓存行访问请求对应的消息流程图800。最初,本地核602将诸如读请求802的请求发送至CHA 604以访问目标高速缓存行。响应于接收该请求,CHA 604利用TOR分配消息804分配TOR中的跟踪器条目以跟踪请求的状态。接下来,CHA 604执行RSF查找806以搜索匹配目标高速缓存行的条目。在这种情形下,RSF查找产生RSF未命中809,其指示目标高速缓存行未在远程插槽608中高速缓存。响应于RSF未命中,CHA 604经由TOR解除分配消息810对TOR中的跟踪器条目解除分配。接下来,CHA 604将存储器读取消息808分派至本地存储器606以访问存储在其中的目标高速缓存行。在一个实施例中,存储器读取在RSF查找之后出现。在其他实施例中,并行地执行存储器读取与RSF查找。如上所述,RSF查找和存储器读取之间的时序和顺序对于作为基础的本发明不是至关重要的。

响应于存储器读取,本地存储器606经由存储器响应812将目标高速缓存行返回至CHA 604。在接收存储器响应812中的目标高速缓存行之后,CHA 604通过将在存储器响应812中接收的目标高速缓存行在消息814中发送回本地核602而利用所接收的目标高速缓存行对初始请求作出响应。根据一个实施例,CHA 604不必检查在存储器响应812中接收的目标高速缓存行的目录状态以确定是否应当监听远程插槽上的核。这是因为来自RSF查找的结果(即,RSF未命中809)已经指示了不需要远程监听。

通常,根据现有技术,在CHA 604经由消息814满足初始读请求802之后,将经由TOR解除分配消息816对TOR中的跟踪器条目解除分配。然而,因为跟踪器条目先前基于来自RSF查找的RSF未命中809已经被解除分配,所以将不存在CHA 604要解除分配的与读请求802对应的跟踪器条目。通过本发明的方面而实现的对跟踪器条目的早的解除分配释放TOR资源以用于执行其他任务。818指示早的跟踪器条目解除分配与晚的跟踪器条目解除分配之间节约的时间。

图9示出根据本发明的实施例的与TOR中的跟踪器条目未被早地解除分配的源自本地核602的高速缓存行访问请求对应的消息流程图800。最初,本地核602将诸如读请求902的请求发送至CHA 604以访问目标高速缓存行。响应于接收该请求,CHA 604利用TOR分配消息904分配TOR中的跟踪器条目以跟踪请求的状态。接下来,CHA 604执行RSF查找906以搜索匹配目标高速缓存行的条目。在这种情形下,RSF查找产生RSF命中807,指示目标高速缓存行在至少一个远程插槽的核(例如,远程核608)中被高速缓存。响应于RSF命中,CHA 604不对TOR中的跟踪器条目解除分配。相反,CHA 604将存储器读取消息908分派至本地存储器606以访问存储在其中的目标高速缓存行。在一个实施例中,存储器读取在RSF查找之后出现。在其他实施例中,并行地执行存储器读取与RSF查找。如上所述,RSF查找和存储器读取之间的时序和顺序对于作为基础的本发明不是至关重要的。除了存储器读取908之外,CHA 604还将远程监听消息912发送至如与目标高速缓存行对应的RSF条目所指示的具有存储在其相应的高速缓存中的目标高速缓存行的副本的远程插槽(例如,远程核608)。根据实施例,可以并行地执行远程监听与存储器查找908。在分别接收来自本地存储器606的存储器响应910和来自远程核608的远程监听响应914之后,CHA 604通过将适当的(例如,最当前的)目标高速缓存行在消息914中发送回本地核602而对初始请求902作出响应。在对初始请求902作出响应之后,CHA 604经由TOR解除分配消息918对TOR中的跟踪器条目解除分配。

本发明的实施例包括系统,该系统具有多个处理单元,多个处理单元中的每一个进一步包括一个或多个处理核。该系统还包括存储器,其耦合至多个处理单元并由多个处理单元共享,以及高速缓存/本地代理(“CHA”),其属于第一处理单元。CHA用于维持与第一处理单元对应的远程监听滤波器(“RSF”)以跟踪多个高速缓存行,从而仅当一个高速缓存行存储在存储器和一个或多个其他处理单元中时该高速缓存行被RSF跟踪。CHA还用于接收来自第一处理单元的处理核的访问目标高速缓存行的请求,分配与请求对应的跟踪器条目以跟踪请求的状态;在RSF中执行对目标高速缓存行的查找;以及响应于目标高速缓存行未被RSF跟踪的检测而对跟踪器条目解除分配。访问目标高速缓存行的请求可以是读请求。跟踪器条目可以存储在请求表(“TOR”)中。RSF通过在RSF中存储与第一高速缓存行对应的条目来跟踪第一高速缓存行。RSF中的每一个条目可以包括用于存储被跟踪的高速缓存行的物理地址的物理地址字段、用于控制对条目的访问的保留位、以及用于指示多个处理单元中的哪一个具有被跟踪的高速缓存行的副本的一个或多个有效位。CHA可以请求来自存储器的目标高速缓存行。此外,CHA可以响应于目标高速缓存行被RSF跟踪的检测而监听来自一个或多个其他处理单元的目标高速缓存行。此外,CHA可以通过将目标高速缓存行的副本提供给处理核而对请求作出响应,从而从存储器或一个或多个其他处理单元读取目标高速缓存行的副本。最后,响应于CHA对请求作出响应,CHA还可以对跟踪器条目解除分配。对跟踪器条目解除分配可以包括从TOR删除跟踪器条目。

本发明的另一实施例是一种方法,该方法包括:维持与多个处理单元中的第一处理单元对应的远程监听滤波器(“RSF”)以跟踪多个高速缓存行,接收来自第一处理单元的处理核的访问目标高速缓存行的请求,分配与请求对应的跟踪器条目以跟踪请求的状态,在RSF中执行对目标高速缓存行的查找,以及响应于目标高速缓存行未被RSF跟踪的检测而对跟踪器条目解除分配。根据实施例,仅当高速缓存行存储在存储器和不同于第一处理单元的一个或多个处理单元中时该高速缓存行被RSF跟踪,存储器耦合至多个处理单元并由多个处理单元共享。根据实施例,访问目标高速缓存行的请求可以是读请求,并且跟踪器条目可以存储在请求表(“TOR”)中。此外,RSF通过在RSF中存储与高速缓存行对应的条目来跟踪该高速缓存行。RSF中的每个条目可以包括用于存储被跟踪的高速缓存行的物理地址的物理地址字段、用于控制对条目的访问的保留位、以及用于指示多个处理单元中的哪一个具有被跟踪的高速缓存行的副本的一个或多个有效位。该方法可以进一步包括请求来自存储器的目标高速缓存行,以及响应于目标高速缓存行被RSF跟踪的检测而监听来自不同于第一处理单元的一个或多个处理单元的目标高速缓存行。此外,该方法可以进一步包括通过将目标高速缓存行的副本提供给处理核而对请求作出响应,并且然后在对请求作出响应之后对跟踪器条目解除分配。可以从存储器或一个或多个其他处理单元读取目标高速缓存行的副本。对跟踪器条目解除分配可以包括从TOR删除跟踪器条目。

本发明的又一实施例包括处理器,该处理器耦合至存储器并且包括一个或多个处理器核和高速缓存/本地代理(“CHA”)。该处理器的CHA用于维持远程监听滤波器(“RSF”)以跟踪多个高速缓存行,其中仅当一个高速缓存行存储在存储器和一个或多个其他处理器中时该高速缓存行被RSF跟踪。此外,CHA用于接收来自一个或多个处理器核中的一个的访问目标高速缓存行的请求,分配与请求对应的跟踪器条目以跟踪请求的状态,在RSF中执行对目标高速缓存行的查找,并且然后响应于目标高速缓存行未被RSF跟踪的检测而对跟踪器条目解除分配。根据实施例,访问目标高速缓存行的请求可以是读请求,并且跟踪器条目可以存储在请求表(“TOR”)中。RSF可以通过在RSF中存储与第一高速缓存行对应的条目来跟踪第一高速缓存行。RSF中的每个条目包括用于存储被跟踪的高速缓存行的物理地址的物理地址字段、用于控制对条目的访问的保留位、以及用于指示一个或多个其他处理器中的哪一个具有被跟踪的高速缓存行的副本的一个或多个有效位。该处理器的CHA可以进一步请求来自存储器的目标高速缓存行,以及响应于目标高速缓存行被RSF跟踪的检测而监听来自一个或多个其他处理器的目标高速缓存行。CHA还可以通过将目标高速缓存行的副本提供给处理核而对请求作出响应。可以从存储器或一个或多个其他处理器读取目标高速缓存行的副本。在CHA对请求作出响应之后,CHA可以对跟踪器条目解除分配,在一些情形下其包括从TOR删除跟踪器条目。

图10A是示出根据本发明的各实施例的示例性有序流水线和示例性的寄存器重命名的乱序发布/执行流水线的框图。图10B是示出根据本发明的各实施例的要包括在处理器中的有序架构核的示例性实施例和示例性的寄存器重命名的乱序发布/执行架构核的框图。图10A-B中的实线框示出了有序流水线和有序核,而可选增加的虚线框示出了寄存器重命名的、乱序发布/执行流水线和核。给定有序方面是乱序方面的子集的情况下,将描述乱序方面。

在图10A中,处理器流水线1000包括取出级1002、长度解码级1004、解码级1006、分配级1008、重命名级1010、调度(也被称为分派或发布)级1012、寄存器读取/存储器读取级1014、执行级1016、写回/存储器写入级1018、异常处理级1022和提交级1024。

图10B示出处理器核1090,其包括耦合至执行引擎硬件1050的前端硬件1030,该前端硬件和执行引擎硬件两者均耦合至存储器硬件1070。核1090可以是精简指令集计算(RISC)核、复杂指令集计算(CISC)核、超长指令字(VLIW)核或混合或其他核类型。作为又一选项,核1090可以是专用核,诸如例如网络或通信核、压缩引擎、协处理器核、通用计算图形处理单元(GPGPU)核、或图形核等等。

前端硬件1030包括耦合到指令高速缓存硬件1034的分支预测硬件1032,该指令高速缓存硬件1034耦合到指令转换后备缓冲器(TLB)1036,该指令转换后备缓冲器1036耦合到指令取出硬件1038,指令取出硬件1038耦合到解码硬件1040。解码硬件1040(或解码器)可解码指令,并生成从原始指令解码出的、或以其他方式反映原始指令的、或从原始指令导出的一个或多个微操作、微代码进入点、微指令、其他指令、或其他控制信号作为输出。解码硬件1040可使用各种不同的机制来实现。合适机构的示例包括但不限于,查找表、硬件实现、可编程逻辑阵列(PLA)、微代码只读存储器(ROM)等。在一个实施例中,核1090包括存储用于某些宏指令的微代码的微代码ROM或其他介质(例如,在解码硬件1040中,或以其他方式在前端硬件1030内)。解码硬件1040耦合至执行引擎硬件1050中的重命名/分配器硬件1052。

执行引擎硬件1050包括重命名/分配器硬件1052,该重命名/分配器硬件1052耦合到引退硬件1054和一个或多个调度器硬件的集合1056。调度器硬件1056表示任意数量的不同调度器,包括预留站、中央指令窗口等。调度器硬件1056耦合到物理寄存器堆硬件1058。每个物理寄存器堆硬件1058表示一个或多个物理寄存器堆,其中不同的物理寄存器堆存储一种或多种不同的数据类型,诸如标量整数、标量浮点、紧缩整数、紧缩浮点、向量整数、向量浮点、状态(例如,作为要执行的下一指令的地址的指令指针)等。在一个实施例中,物理寄存器堆硬件1058包括向量寄存器硬件、写掩码寄存器硬件和标量寄存器硬件。这些寄存器硬件可以提供架构向量寄存器、向量掩码寄存器、和通用寄存器。物理寄存器堆硬件1058被引退硬件1054所覆盖,以示出可实现寄存器重命名和乱序执行的多种方式(诸如,使用重排序缓冲器和引退寄存器堆、使用未来文件(future file)、历史缓冲器、引退寄存器堆、使用寄存器映射和寄存器池等等)。引退硬件1054和物理寄存器堆硬件1058耦合到执行群集1060。执行群集1060包括一个或多个执行硬件1062的集合和一个或多个存储器访问硬件1064的集合。执行硬件1062可执行各种操作(例如,移位、加法、减法、乘法)并可对各种数据类型(例如,标量浮点、紧缩整数、紧缩浮点、向量整数、向量浮点)执行。尽管一些实施例可以包括专用于特定功能或功能集合的多个执行硬件,但其他实施例可包括仅一个执行硬件或全部执行所有功能的多个执行硬件。调度器硬件1056、物理寄存器堆硬件1058和执行群集1060被示出为可能是复数个,因为某些实施例为某些数据/操作类型创建了多个单独流水线(例如,均具有各自调度器硬件、物理寄存器堆硬件和/或执行群集的标量整数流水线、标量浮点/紧缩整数/紧缩浮点/向量整数/向量浮点流水线和/或存储器访问流水线;以及在单独的存储器访问流水线的情况下,某些实施例被实现为仅仅该流水线的执行群集具有存储器访问硬件1064)。还应当理解,在使用分开的流水线的情况下,这些流水线中的一个或多个可以为乱序发布/执行,并且其余流水线可以为有序发布/执行。

存储器访问硬件的集合1064耦合至存储器硬件1070,该存储器硬件包括数据TLB硬件1072,该数据TLB硬件耦合至数据高速缓存硬件1074,该数据高速缓存硬件耦合至第二级(L2)高速缓存硬件1076。在一个示例性实施例中,存储器访问硬件1064可包括加载硬件、存储地址硬件和存储数据硬件,其中的每一个均耦合至存储器硬件1070中的数据TLB硬件1072。指令高速缓存硬件1034还耦合到存储器硬件1070中的第二级(L2)高速缓存硬件1076。L2高速缓存硬件1076耦合至一个或多个其他级别的高速缓存,并最终耦合至主存储器。

作为示例,示例性的寄存器重命名乱序发布/执行核架构可以如下所述地实现流水线1000:1)指令取出1038执行取出和长度解码级1002和1004;2)解码硬件1040执行解码级1006;3)重命名/分配器硬件1052执行分配级1008和重命名级1010;4)调度器硬件1056执行调度级1012;5)物理寄存器堆硬件1058和存储器硬件1070执行寄存器读取/存储器读取级1014;执行群集1060执行执行级1016;6)存储器硬件1070和物理寄存器堆硬件1058执行写回/存储器写入级1018;7)各硬件可牵涉到异常处理级1022;以及8)引退硬件1054和物理寄存器堆硬件1058执行提交级1024。

核1090可支持一个或多个指令集(例如,x86指令集(具有与较新版本一起添加的一些扩展);加利福尼亚州桑尼维尔市的MIPS技术公司的MIPS指令集;加利福尼州桑尼维尔市的ARM控股的ARM指令集(具有诸如NEON等可选附加扩展)),其中包括本文中描述的各指令。在一个实施例中,核1090包括用于支持紧缩数据指令集扩展(例如,AVX1、AVX2和/或下文描述的一些形式的通用向量友好指令格式(U=0和/或U=1))的逻辑,从而使用紧缩数据来执行由许多多媒体应用使用的操作。

应当理解,核可支持多线程化(执行两个或更多个并行的操作或线程的集合),并且可以按各种方式来完成该多线程化,此各种方式包括时分多线程化、同步多线程化(其中单个物理核为物理核正在同步多线程化的各线程中的每一个线程提供逻辑核)、或其组合(例如,时分取出和解码以及此后诸如用超线程化技术来同步多线程化)。

尽管在乱序执行的上下文中描述了寄存器重命名,但应当理解,可以在有序架构中使用寄存器重命名。尽管所示出的处理器的实施例还包括分开的指令和数据高速缓存硬件1034/1074以及共享L2高速缓存硬件1076,但替代实施例可以具有用于指令和数据两者的单个内部高速缓存,诸如例如一级(L1)内部高速缓存或多个级别的内部高速缓存。在一些实施例中,该系统可包括内部高速缓存和在核和/或处理器外部的外部高速缓存的组合。或者,所有高速缓存都可以在核和/或处理器的外部。

图11是根据本发明的实施例的可具有多于一个的核、可具有集成存储器控制器、以及可具有集成图形器件的处理器1100的框图。图11中的实线框示出具有单个核1102A、系统代理1110、一个或多个总线控制器硬件1116的集合的处理器1100,而虚线框的可选附加示出具有多个核1102A-N、系统代理硬件1110中的一个或多个集成存储器控制器硬件1114的集合以及专用逻辑1108的替代处理器1100。

因此,处理器1100的不同实现可包括:1)CPU,其中专用逻辑1108是集成图形和/或科学(吞吐量)逻辑(其可包括一个或多个核),并且核1102A-N是一个或多个通用核(例如,通用的有序核、通用的乱序核、这两者的组合);2)协处理器,其中核1102A-N是旨在主要用于图形和/或科学(吞吐量)的多个专用核;以及3)协处理器,其中核1102A-N是多个通用有序核。因此,处理器1100可以是通用处理器、协处理器或专用处理器,诸如例如网络或通信处理器、压缩引擎、图形处理器、GPGPU(通用图形处理单元)、高吞吐量的集成众核(MIC)协处理器(包括30个或更多核)、或嵌入式处理器等。该处理器可以被实现在一个或多个芯片上。处理器1100可以是一个或多个基板的一部分,和/或使用多种工艺技术(诸如,BiCMOS、CMOS、或NMOS)中的任意技术被实现在一个或多个基板上。

存储器层次结构包括核内的一个或多个层级的高速缓存、一组或一个或多个共享高速缓存硬件1106以及耦合到集成存储器控制器硬件1114的集合的外部存储器(未示出)。共享高速缓存硬件1106的集合可包括一个或多个中级高速缓存,诸如,第二级(L2)、第三级(L3)、第四级(L4)或其他级别的高速缓存、末级高速缓存(LLC)和/或以上各项的组合。尽管在一个实施例中,基于环的互连硬件1112将集成图形逻辑1108、共享高速缓存硬件1106的集合以及系统代理硬件1110/集成存储器控制器硬件1114互连,但替代实施例可使用任何数量的公知技术来将这些硬件互连。在一个实施例中,在一个或多个高速缓存硬件1106与核1102A-N之间维持一致性。

在一些实施例中,一个或多个核1102A-N能够实现多线程。系统代理1110包括协调并操作核1102A-N的那些组件。系统代理硬件1110可包括例如功率控制单元(PCU)和显示硬件。PCU可以是对核1102A-N以及集成图形逻辑1108的功率状态进行调节所需的逻辑和组件,或可包括这些逻辑和组件。显示硬件用于驱动一个或多个外部连接的显示器。

核1102A-N在架构指令集方面可以是同构的或异构的;即,这些核1102A-N中的两个或更多个核可能能够执行相同的指令集,而其他核可能能够执行该指令集的仅仅子集或不同的指令集。在一个实施例中,核1102A-N是异构的,并且包括下文所述的“小型”核和“大型”核两者。

图12-15是示例性计算机架构的框图。本领域已知的对膝上型设备、台式机、手持PC、个人数字助理、工程工作站、服务器、网络设备、网络集线器、交换机、嵌入式处理器、数字信号处理器(DSP)、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝电话、便携式媒体播放器、手持设备以及各种其他电子设备的其他系统设计和配置也是合适的。一般地,能够包含本文中所公开的处理器和/或其他执行逻辑的多个系统和电子设备一般都是合适的。

现在参考图12,所示出的是根据本发明一个实施例的系统1200的框图。系统1200可以包括一个或多个处理器1210、1215,这些处理器耦合到控制器中枢1220。在一个实施例中,控制器中枢1220包括图形存储器控制器中枢(GMCH)1290和输入/输出中枢(IOH)1250(其可以在分开的芯片上);GMCH 1290包括存储器和图形控制器,存储器1240和协处理器1245耦合到该存储器和图形控制器;IOH 1250将输入/输出(I/O)设备1260耦合到GMCH 1290。替代地,存储器和图形控制器中的一个或两个在处理器(如本文中所描述的)内集成,存储器1240和协处理器1245直接耦合到处理器1210、以及在单一芯片中具有IOH 1250的控制器中枢1220。

附加的处理器1215的可选性在图12中通过虚线来表示。每一处理器1210、1215可包括本文中描述的处理核中的一个或多个,并且可以是处理器1100的某一版本。

存储器1240可以是例如动态随机存取存储器(DRAM)、相变存储器(PCM)或这两者的组合。对于至少一个实施例,控制器中枢1220经由诸如前端总线(FSB)之类的多分支总线、点对点接口、或者类似的连接1295与处理器1210、1215进行通信。

在一个实施例中,协处理器1245是专用处理器,诸如例如高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、或嵌入式处理器等等。在一个实施例中,控制器中枢1220可以包括集成图形加速器。

在物理资源1210、1215之间会存在包括架构、微架构、热、功耗特性等的一系列品质度量方面的各种差异。

在一个实施例中,处理器1210执行控制一般类型的数据处理操作的指令。协处理器指令可嵌入在这些指令中。处理器1210将这些协处理器指令识别为应当由附连的协处理器1245执行的类型。因此,处理器1210在协处理器总线或者其他互连上将这些协处理器指令(或者表示协处理器指令的控制信号)发布到协处理器1245。协处理器1245接受并执行所接收的协处理器指令。

现在参考图13,所示为根据本发明的实施例的更具体的第一示例性系统1300的框图。如图13所示,多处理器系统1300是点对点互连系统,且包括经由点对点互连1350耦合的第一处理器1370和第二处理器1380。处理器1370和1380中的每一个都可以是处理器1100的某一版本。在本发明的一个实施例中,处理器1370和1380分别是处理器1210和1215,而协处理器1338是协处理器1245。在另一实施例中,处理器1370和1380分别是处理器1210和协处理器1245。

处理器1370和1380被示为分别包括集成存储器控制器(IMC)硬件1372和1382。处理器1370还包括作为其总线控制器硬件的一部分的点对点(P-P)接口1376和1378;类似地,第二处理器1380包括P-P接口1386和1388。处理器1370、1380可以经由使用点对点(P-P)接口电路1378、1388的P-P接口1350来交换信息。如图13所示,IMC 1372和1382将处理器耦合到相应的存储器,即存储器1332和存储器1334,这些存储器可以是本地附连到相应处理器的主存储器的部分。

处理器1370、1380可各自经由使用点对点接口电路1376、1394、1386、1398的各个P-P接口1352、1354与芯片组1390交换信息。芯片组1390可以可选地经由高性能接口1339与协处理器1338交换信息。在一个实施例中,协处理器1338是专用处理器,诸如例如高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、或嵌入式处理器等等。

共享高速缓存(未示出)可被包括在任一处理器中,或在两个处理器的外部但经由P-P互连与这些处理器连接,从而如果处理器被置于低功率模式,则任一个或这两个处理器的本地高速缓存信息可被存储在该共享的高速缓存中。

芯片组1390可以经由接口1396耦合至第一总线1316。在一个实施例中,第一总线1316可以是外围组件互连(PCI)总线或诸如PCI高速总线或另一第三代I/O互连总线之类的总线,但是本发明的范围不限于此。

如图13所示,各种I/O设备1314可连同总线桥1318一起耦合到第一总线1316,总线桥1318将第一总线1316耦合到第二总线1320。在一个实施例中,诸如协处理器、高吞吐量MIC处理器、GPGPU的处理器、加速器(诸如例如图形加速器或数字信号处理(DSP)硬件)、现场可编程门阵列或任何其他处理器的一个或多个附加处理器1315耦合到第一总线1316。在一个实施例中,第二总线1320可以是低引脚数(LPC)总线。各种设备可耦合到第二总线1320,包括例如键盘和/或鼠标1322、通信设备1327以及存储硬件1328,诸如在一个实施例中可包括指令/代码和数据1330的盘驱动器或者其他大容量存储设备。此外,音频I/O 1324可以被耦合至第二总线1320。注意,其他架构是可能的。例如,代替图13的点对点架构,系统可以实现多分支总线或其他这类架构。

现在参考图14,所示为根据本发明的实施例的更具体的第二示例性系统1400的框图。图13和14中的相同部件用相同附图标记表示,并已从图14中省去了图13中的某些方面,以避免使图14的其他方面变得模糊。

图14示出处理器1370、1380可分别包括集成存储器和I/O控制逻辑(“CL”)1372和1382。因此,CL 1372、1382包括集成存储器控制器硬件并包括I/O控制逻辑。图14示出不仅存储器1332、1334耦合至CL 1372、1382,而且I/O设备1414也耦合至控制逻辑1372、1382。传统I/O设备1415被耦合至芯片组1390。

现在参照图15,所示出的是根据本发明的实施例的SoC 1500的框图。在图11中,相似的部件具有同样的附图标记。另外,虚线框是更先进的SoC的可选特征。在图15中,互连硬件1502被耦合至:应用处理器1510,其包括一个或多个核的集合1102A-N以及共享高速缓存硬件1106;系统代理硬件1110;总线控制器硬件1116;集成存储器控制器硬件1114;一个或多个协处理器的集合1520,其可包括集成图形逻辑、图像处理器、音频处理器和视频处理器;静态随机存取存储器(SRAM)硬件1530;直接存储器存取(DMA)硬件1532;以及用于耦合至一个或多个外部显示器的显示硬件1540。在一个实施例中,协处理器1520包括专用处理器,诸如例如网络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、或嵌入式处理器等等。

本文公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本发明的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。

可将程序代码(诸如图13中示出的代码1330)应用于输入指令,以执行本文描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器之类的处理器的任何系统。

程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本文中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。

至少一个实施例的一个或多个方面可以由存储在机器可读介质上的表示性指令来实现,指令表示处理器中的各种逻辑,指令在被机器读取时使得该机器制作用于执行本文所述的技术的逻辑。被称为“IP核”的这些表示可以被存储在有形的机器可读介质上,并被提供给多个客户或生产设施以加载到实际制造该逻辑或处理器的制造机器中。

这样的机器可读存储介质可以包括但不限于通过机器或设备制造或形成的物品的非瞬态的有形安排,其包括存储介质,诸如:硬盘;任何其他类型的盘,包括软盘、光盘、紧致盘只读存储器(CD-ROM)、紧致盘可重写(CD-RW)以及磁光盘;半导体器件,例如只读存储器(ROM)、诸如动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)之类的随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、闪存、电可擦除可编程只读存储器(EEPROM);相变存储器(PCM);磁卡或光卡;或适于存储电子指令的任何其他类型的介质。

因此,本发明的各实施例还包括非瞬态的有形机器可读介质,该介质包含指令或包含设计数据,诸如硬件描述语言(HDL),它定义本文中描述的结构、电路、装置、处理器和/或系统特征。这些实施例也被称为程序产品。

在一些情况下,指令转换器可用来将指令从源指令集转换至目标指令集。例如,指令转换器可以变换(例如使用静态二进制变换、包括动态编译的动态二进制变换)、变形、仿真或以其他方式将指令转换成将由核来处理的一个或多个其他指令。指令转换器可以用软件、硬件、固件、或其组合实现。指令转换器可以在处理器上、在处理器外、或者部分在处理器上且部分在处理器外。

图16是根据本发明的实施例的对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。在所示的实施例中,指令转换器是软件指令转换器,但作为替代,该指令转换器可以用软件、固件、硬件或其各种组合来实现。图16示出可使用x86编译器1604来编译利用高级语言1602的程序,以生成可由具有至少一个x86指令集核的处理器1616原生执行的x86二进制代码1606。具有至少一个x86指令集核的处理器1616表示任何处理器,这些处理器能通过兼容地执行或以其他方式处理以下内容来执行与具有至少一个x86指令集核的英特尔处理器基本相同的功能:1)英特尔x86指令集核的指令集的本质部分,或2)目标为在具有至少一个x86指令集核的英特尔处理器上运行的应用或其他软件的目标代码版本,以便取得与具有至少一个x86指令集核的英特尔处理器基本相同的结果。x86编译器1604表示用于生成x86二进制代码1606(例如,目标代码)的编译器,该二进制代码可通过或不通过附加的链接处理在具有至少一个x86指令集核的处理器1616上执行。类似地,图16示出可以使用替代的指令集编译器1608来编译利用高级语言1602的程序,以生成可以由不具有至少一个x86指令集核的处理器1614(例如具有执行加利福尼亚州桑尼维尔市的MIPS技术公司的MIPS指令集、和/或执行加利福尼亚州桑尼维尔市的ARM控股公司的ARM指令集的核的处理器)原生执行的替代指令集二进制代码1610。指令转换器1612被用来将x86二进制代码1606转换成可以由不具有x86指令集核的处理器1614原生执行的代码。该转换后的代码不大可能与替代性指令集二进制代码1610相同,因为能够这样做的指令转换器难以制造;然而,转换后的代码将完成一般操作并由来自替代指令集的指令构成。因此,指令转换器1612通过仿真、模拟或任何其他过程来表示允许不具有x86指令集处理器或核的处理器或其他电子设备执行x86二进制代码1606的软件、固件、硬件或其组合。

虽然参考特定实现方式描述了一些实施例,但是根据一些实施例,其他实现方式也是可能的。另外,附图中所示的和/或本文中描述的元件或其他特征的布置和/或顺序不必以所示和所描述的特定方式来布置。根据一些实施例,许多其他布置是可能的。

在附图中示出的每一个系统中,在一些情况下的每个元件可具有相同或不同的附图标记以表明所表示的元件可能不同和/或类似。但是,元件可以足够灵活以具有不同的实现方式,并与本文所示或所述的一些或所有系统一起操作。附图中示出的各种元件可以是相同或不同的。将哪个称为第一元件以及将哪个称为第二元件是任意的。

在说明书和权利要求书中,可使用术语“耦合的”和“连接的”及其衍生词。应当理解,这些术语并不旨在作为彼此的同义词。相反,在特定实施例中,可以使用“连接的”来指示两个或更多个元件彼此直接物理和/或电接触。“耦合的”可表示两个或更多个元件直接物理或电接触。然而,“耦合的”也可意味着两个或更多个元件彼此并不直接接触,但是仍然彼此协作或相互作用。

实施例是本发明的实现方式或示例。说明书中对“实施例”、“一个实施例”、“一些实施例”或“其他实施例”的引用表示结合这些实施例描述的特定的特征、结构或特性被包括在本发明的至少一些实施例中,而不一定在所有的实施例中。各处出现的“实施例”、“一个实施例”或“一些实施例”不一定都指相同的实施例。

并非本文中描述和示出的所有部件、特征、结构、特性等都需要被包括在特定的一个或多个实施例中。例如,如果说明书陈述“可”、“可能”、“能”或“能够”包括部件、特征、结构或特性,则不一定包括该特定的部件、特征、结构或特性。如果说明书或权利要求书提到“一”或“一个”元件,则这并不意味着仅有一个该元件。如果说明书或权利要求书引用“附加的”元件,则不排除有多于一个的该附加的元件。

上文对本发明的所示出的本发明的各实施例的描述(包括在摘要中描述的内容)不旨在是详尽的,也不旨在将本发明限于所公开的精确形式。尽管为了说明,本文中描述了本发明的具体实施例以及示例,但是,如相关领域技术人员所理解,在本发明的范围内,各种等效的修改是可能的。

可以根据上面的具体实施方式对本发明进行这些修改。所附权利要求书中所使用的术语不应该被理解为将本发明限制于说明书和附图中所公开的特定实施例。相反,本发明的范围完全由所附权利要求书来确定,权利要求书根据权利要求解释的既定原则来解释。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1