首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

用于存储器回写的装置和方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:英特尔公司

摘要:本申请公开了用于改善主机到设备通信以获得最优功率和性能的高效型基于范围的存储器回写。本文中描述了用于高效型基于范围的存储器回写的方法和装置。装置的一个实施例包括:系统存储器;多个硬件处理器核,所述多个硬件处理器核各自包括第一高速缓存;解码器电路,用于对具有针对第一存储器地址和范围指示符的字段的指令进行解码;以及执行电路,用于执行所述经解码指令。所述第一存储器地址和所述范围指示符一起定义所述系统存储器中包括一个或多个高速缓存行的连续区域。执行所述经解码指令使所述第一高速缓存中的所述一个或多个高速缓存行的任何实例无效。另外,所述一个或多个高速缓存行的任何脏的无效实例将存储到系统存储器中。

主权项:1.一种用于计算的装置,包括:系统存储器;多个硬件处理器核,所述硬件处理器核中的每一个用于包括:第一高速缓存;解码器电路,用于对具有用于第一存储器地址和范围指示符的字段的指令进行解码,所述第一存储器地址和所述范围指示符用于定义所述系统存储器中的连续区域,所述连续区域包括一个或多个高速缓存行;以及执行电路,用于通过在所述第一高速缓存中使所述一个或多个高速缓存行的任何实例无效来执行经解码指令,其中,所述指令进一步包括操作码,所述操作码用于指示所述第一高速缓存中的所述一个或多个高速缓存行的脏的实例是否将被存储到由所述多个硬件处理器核共享的第二高速缓存中而非存储到所述系统存储器中。

全文数据:用于改善主机到设备通信以获得最优功率和性能的高效型基于范围的存储器回写背景技术技术领域[0001]本发明总体上涉及计算机处理器领域。更具体地,本发明涉及一种用于基于范围的存储器回写的方法和装置。相关技术的说明[0002]指令集或指令集架构(ISA是与编程有关的计算机架构的一部分,包括本机数据类型、指令、寄存器架构、寻址模式、存储器架构、中断和异常处置、以及外部输入和输出(10。应当注意的是,在本文中术语“指令”一般指的是宏指令,即提供给处理器以供执行的指令,与作为处理器解码器对宏指令解码的结果的微指令或微操作完全不同。微指令或微操作可以被配置成命令处理器上的执行单元执行操作以实现与宏指令相关联的逻辑。[0003]ISA与微架构不同,所述微架构是用于实现指令集的一组处理器设计技术。具有不同微架构的处理器可以共享共同的指令集。例如,来自丨ntel®萍腾4Pentium4处理器、丨ntel®Core™处理器、以及来自加利福尼亚州桑尼威尔(Sunnyvale的超微半导体有限公司AdvancedMicroDevices,Inc.的处理器实施几乎相同版本的x86指令集在更新的版本中已加入了一些扩展),但具有不同的内部设计。例如,可以使用公知的技术在不同微架构中以不同方式实现ISA的相同的寄存器架构,包括专用物理寄存器、使用寄存器重新命名机构例如,使用寄存器别名表RAT、重排序缓冲器ROB和引退寄存器堆)的一个或多个动态地分配的物理寄存器。除非另有指定,否则短语寄存器架构、寄存器堆和寄存器在本文中用于指代软件编程器可见的寄存器以及指令指定寄存器的方式。当需要区别时,将使用形容词“逻辑的”、“架构的”或“软件可见的”来指示寄存器架构中的寄存器堆,同时不同的形容词将用于给定微架构中的指定寄存器例如,物理寄存器、重排序缓冲器、引退寄存器、寄存器池)。指令集包括一种或多种指令格式。给定指令格式定义各个字段位数、位的位置)以指定除了其它方面要执行的操作以及要在其上执行操作的(多个操作数。通过定义指令模板或子格式进一步分解一些指令格式。例如,给定指令格式的指令模板可以被定义为具有指令格式的字段的不同子集所包含的字段通常是按相同的次序,但是至少有一些具有不同的位位置,因为包含较少的字段和或被定义为具有不同解释的给定字段。给定的指令利用给定的指令格式并且如果被定义,则采用所述指令格式的指令模板的给定的一种)来表达,并且指定操作和操作数。指令流是指令的特定序列,其中序列中的每条指令是采用指令格式并且如果被定义,则采用所述指令格式的指令模板的给定的一种)的指令的发生。附图说明[0004]将更容易明白本发明的前述各方面和许多附带优点,这是由于当结合附图时,通过参考下列详细描述,将更好地理解本发明的前述各方面和许多附带优点,在附图中,贯穿各视图,除非以另外方式指定,否则相同的参考号指代相同的部件:[0005]图1A-1B展示了当使用DM机制时主机与设备之间的潜在一致性问题;[0006]图2是流程图,展示了对具有主机与设备之间的同步机制的共享缓冲器的使用;[0007]图3展示了可以实现本发明实施例的示例性平台;[0008]图4A展示了根据实施例的在存储器地址和范围操作数都是存储器地址时由存储器地址和范围操作数在系统存储器中定义的连续区域;[0009]图4B展示了根据实施例的在范围是整数值时由存储器地址和范围操作数在系统存储器中定义的连续区域;[0010]图5展示了可以用于实现本发明实施例的设备调试和测试的示例性大数据阵列测试LDAT引擎;[0011]图6是流程图,展示了根据实施例的用于执行基于范围的存储器回写指令的操作和逻辑;[0012]图7是流程图,展示了根据实施例的用于刷新高速缓存行的操作和逻辑;[0013]图8A是框图,展示了根据本发明的实施例的示例性有序流水线和示例性寄存器重命名无序发出执行流水线两者;[0014]图8B是框图,展示了根据本发明的实施例的将包括在处理器中的有序架构核的示例性实施例和示例性寄存器重命名无序发出执行架构核两者;[0015]图9是根据本发明的实施例的具有集成存储器控制器和图形的单核处理器和多核处理器的框图;[0016]图10展示了根据本发明的一个实施例的系统的框图;[0017]图11展示了根据本发明的实施例的第二系统的框图;[0018]图12展示了根据本发明的实施例的第三系统的框图;[0019]图13展示了根据本发明的实施例的片上系统SoC的框图;并且[0020]图14展示了对照根据本发明的实施例的用于将源指令集中的二进制指令转换为目标指令集中的二进制指令的软件指令转换器的使用的框图。具体实施方式[0021]本文描述了高效型基于范围的存储器回写的方法和装置的实施例。在以下描述中,阐述了许多具体细节以提供对本发明的实施例的透彻理解。然而,相关领域的技术人员将意识到,本发明可以无需这些具体细节中的一个或多个来实践,或者可以使用其他方法、部件、材料等来实践。在其他实例中,并未详细示出或描述众所周知的结构、材料或操作,以避免模糊本发明的方面。[0022]贯穿本说明书对“一个实施例”或“实施例”的提及是指结合实施例所描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,贯穿本说明书,短语“在一个实施例中”或“在实施例中”在各处的出现未必都是指代相同的实施例。此外,在一个或多个实施例中,可以以任何适当的方式来组合特定特征、结构或特性。为清楚起见,可以通过本文的附图中的各个部件的标记而不是通过特定的参考编号来指代附图中的各个部件。[0023]对现代计算机的许多使用需要通过直接存储器访问(DMA的主机到设备通信,所述直接存储器访问是允许计算机系统中的外围组件将其IO数据直接传输到系统存储器并从系统存储器传输而不需要涉及系统处理器的机制。例如,网络接口卡NIC和图形处理单元GPU可以直接从主机存储器中检索数据分组和块以便执行其对应功能,由此绕过系统处理器并且加速存储器操作。因此,DM机制可以大大增加来往于设备的吞吐量。然而,如果控制DM过程的DMA控制器不参与主机处理器的高速缓存一致性情况常常如此),则操作系统OS和或在OS上运行的软件将需要确保在传出DM传输开始(S卩,从系统存储器中读取)之前当前存储在处理器高速缓存中的高速缓存行被刷新(即,被存储到系统存储器中。类似地,在受传入DMA传输影响的存储器范围被访问(S卩,写入系统存储器之前,需要使处理器高速缓存中的高速缓存行无效。另外,OS或软件还必须确保受影响的存储器范围不被任何运行的线程访问以便防止存储器一致性冲突。[0024]图1A-1B展示了当使用DM机制时主机与设备之间的潜在一致性问题。设备发起异步DMA读取或写入操作以直接来往于系统存储器而不通过主机高速缓存来访问数据。然而,对于DMA写入操作,除非刚好在DMA写入之前主机高速缓存已经被刷新,否则可以使用由主机在主机高速缓存中高速缓存的过期数据来覆写通过DMA操作传输到系统存储器中的数据。例如,在图IA中,设备(S卩,图形处理单元GPU108通过DMA控制器110直接访问系统存储器102中的数据,而不需要通过主机(S卩,中央处理单元CPU104。为了简单起见,主机、设备、DMA控制器和系统存储器被示出为通过总线112互连。在DMA写入114期间,CPU108通过DMA控制器110将数据写入系统存储器102中的高速缓存行120a。在DMA写入114之后,主机104通过驱逐或回写操作将高速缓存行120b写入系统存储器102中从而覆写高速缓存行120a。这产生了一致性问题,因为高速缓存行120b可能不是高速缓存行120的最新副本并且高速缓存行120a中的数据丢失。[0025]类似地,除非刚好在DMA读取操作之前已经将主机高速缓存刷新到系统存储器中,否则主机高速缓存中的数据可能比系统存储器中的副本更加为最新的。例如,在图IB中,主机104的主机高速缓存106包含高速缓存行120c的已经存储到系统存储器中的经修改副本。如果设备发起针对系统存储器中的所述高速缓存行的DMA读取,则设备将接收经修改的高速缓存行120a而不是经修改的版本120c。[0026]为了促进主机与设备之间的通信,通常使用具有同步机制的共享缓冲器。利用此握手特征,主机预先定义共享数据缓冲器和标记。在主机已经准备好将分派给设备的数据之后,主机将其高速缓存刷新到系统存储器中并且发出“准备ready”标记以指示数据已经准备好供设备访问。轮询“准备”标记的设备将在其注意到标记已经被发出时访问数据。然后,在设备完成处理数据之后,设备将发出“设备准备deviceready”标记以向主机指示其可以继续到下一轮数据。如图2中所展示的,在主机主线程准备好数据之后,所述主机主线程通知设备输入数据已准备好(即,202。这可以通过主机主线程设置准备标记来完成。设备通过轮询准备标记来接收通知。在设备访问数据之后,其通知主机读取线程输出数据准备好供主机访问(即,204。在主机读取线程访问输出数据之后,主机读取线程然后可以通知主机主线程所述共享缓冲器已准备好被再次使用(即,206。[0027]为了计算在主机例如,中央处理单元CPU与设备(例如,图形处理单元GPU之间划分的工作负荷,工作负荷通常被分成多个阶段,其中,一些阶段由主机执行并且一些阶段由设备执行。当在主机与设备处理阶段之间转变时,需要显式高速缓存刷新。然而,高速缓存刷新需要大量的主机处理周期,因此,降低性能并且消耗能量。成本与高速缓存框架的大小成比例。[0028]现有解决方案(比如,高速缓存行刷新(例如,CLFLUSH、高速缓存行回写(例如,CLWB和回写无效例如,WBINV指令具有其缺点并且不足以解决与刷新高速缓存相关联的开销成本。对于高速缓存行刷新和高速缓存行回写指令,将数据回写到系统存储器需要每高速缓存行一个指令。对于〜3MB的数据块,这可能占用Ims处理器时间并且需要数以万计的指令。这引起显著开销,特别是在大数据块的情况下。关于使整个高速缓存无效并且将任何脏的高速缓存行回写到系统存储器的回写无效指令,其需要切换到内核代码,因为这种指令经常被实施为特权指令。内核使用空间切换自身与显著的开销相关联,所述显著的开销可以摧毁通过不使用单一高速缓存行指令比如,CLFLUSH和CLWB而节省的任何时间和或资源。另外,使用回写无效指令,整个处理器高速缓存被无效。这意味着当前或将很快被处理器使用的有用代码和数据也将无效并且需要被带回到高速缓存中。这进而会降低性能。为了解决与现有解决方案相关联的缺点,本文中描述了新的一组基于范围的存储器回写指令。所述新的一组指令允许处理器仅发出一条指令或者几条指令,取决于存储器区域的数量来刷新共享系统存储器,而不需要执行任何上下文切换。使用新方法,大量的主机处理周期可以被节省并重定向至其他任务,由此改善了整体性能和用户体验。更不用说降低功耗和提高能量效率,这在现代计算中是重要的,特别是当涉及到移动设备时。[0029]图3展示了可以实现本发明实施例的示例性处理器355。处理器355包括一组通用寄存器GPR305、一组向量寄存器306和一组掩码寄存器307。为简单起见,图3中展示了单个处理器核(“核0”)的细节。然而,将理解的是,图3中示出的每个核可以具有与核0相同的逻辑集合。例如,每个核可以包括用于根据指定的高速缓存管理策略来高速缓存指令和数据的专用1级LI高速缓存312和2级L2高速缓存31ULl高速缓存312包括用于存储指令的分开的指令高速缓存320ILl和用于存储数据的分开的数据高速缓存321DLl。以高速缓存行的粒度来管理存储在各种处理器高速缓存内的指令和数据,所述粒度可以是固定大小例如,长度为64、128、512字节)。此示例性实施例的每个核具有:用于从主存储器300和或共享3级L3高速缓存316取出指令的指令取出单元310;用于解码指令例如,将程序指令解码到微操作或“uops”中)的解码单元330。用于执行所述指令的执行单元340;以及用于引退所述指令并回写结果的回写单元350。[0030]指令取出单元310包括各种众所周知的组件,包括:下一个指令指针303,用于存储待从存储器300或所述高速缓存中之一)中取出的下一条指令的地址;指令转换后备缓冲器ITLB304,用于存储最近使用的虚拟到物理指令地址的映射以提高地址转换速度;分支预测单元302,用于推测性预测指令分支地址;以及分支目标缓冲器BTB301,用于存储分支地址和目标地址。一旦取出,指令就被流传输到包括解码单元330、执行单元340以及回写单元350的指令流水线的剩余阶段。这些单元中的每个单元的结构和功能被本领域普通技术人员很好地理解,并且将不在此详细描述以避免模糊本发明不同实施例的相关方面。[0031]在一个实施例中,解码单元330包括用于解码本文中所描述的基于范围的存储器回写指令例如,在一个实施例中,解码成微操作序列)的基于范围的指令解码器331,并且执行单元340包括用于执行所述经解码的基于范围的存储器回写指令的基于范围的指令执行单元341。[0032]对于基于范围的刷新处理器高速缓存,以下描述了指令ARFLUSH。根据实施例,ARFLUSH指令采用以下格式:ARFLUSH{S}mem_addr,range其中,mem_addr操作数是存储器地址,range操作数是范围指示符,并且S是可选操作码。mem_addr操作数和range操作数一起定义了系统存储器中的连续区域。例如,在一个实施例中,mem_addr操作数是用于指示系统存储器中的连续区域的起始点的第一存储器地址,并且range操作数是用于指示连续区域的结束点的第二存储器地址。根据实施例,存储器地址是指定系统存储器中的位置的线性存储器地址。在其他实施例中,存储器地址可以是有效存储器地址、虚拟存储器地址或物理存储器地址包括客户物理存储器地址)。图4A展示了根据实施例的在存储器地址和范围操作数都是存储器地址时由存储器地址和范围操作数在系统存储器中定义的连续区域。ARFLUSH指令使包含存储器地址的处理器高速缓存中的所有高速缓存行无效,所述存储器地址包括在连续区域中。在此所提及的处理器高速缓存可以是IL1、DL1、L2或其组合。在一些实施例中,无效在整个高速缓存一致性域中广播并且可以包括多个其他核上的(多个高速缓存。在一个实施例中,处理器高速缓存中脏的(例如,经修改的任何无效高速缓存行被回写到系统存储器中。在一个实施例中,这经由回写操作或驱逐机制来完成。[0033]在另一个实施例中,range操作数不是存储器地址而是指示将无效的高速缓存行的数量的整数值(即,“r”)。根据实施例,系统存储器中的连续区域开始于由mem_addr操作数指示的存储器地址,并且连续有由range操作数指示的多个(S卩,“r”个高速缓存行。换言之,包括在连续区域中的“r”个高速缓存行的存储器地址全部都等于或递增地大于或者小于,取决于实施方式mem_addr操作数。可替代地,代替高速缓存行,range操作数可以指示将包括在连续区域中的字节数。连续区域开始于由mem_addr操作数指示的存储器地址,并且连续有由range操作数指示的字节数。[0034]图4B展示了根据实施例的在范围是整数值时由存储器地址和范围操作数在系统存储器中定义的连续区域。在一个实施例中,ARFLUSH使处理器高速缓存中包含某个存储器地址的所有高速缓存行无效,所述存储器地址等于或递增地大于针对如由range操作数中的整数值指示的高速缓存行数量的mem_addr操作数。[0035]根据实施例,可选操作码{S}指示共享高速缓存。在一个实施例中,ARFLUSHS指令与ARFLUSH指令表现得完全一样,但是将连续区域中的高速缓存行刷新出至共享高速缓存而不是总是刷新到系统存储器中。根据实施例,共享高速缓存是由主机处理器中的两个或更多个处理器核共享的高速缓存。[0036]根据实施例,ARFLUSH指令通过栅栏Fence操作(比如,MFENCE、SFENCE、锁定-前缀(lock-prefixed指令或架构上序列化指令进行排序。在另一个实施方式中,ARFLUSH指令可以是那些指令的子集例如,仅将指令序列化)。在另一个实施例中,ARFLUSH指令可以自然地被更强壮地排序例如,作为TSO—致性模型的一部分)。操作系统和或在操作系统上运行的软件可以使用这些排序指令来确保指令的期望排序。在一个实施例中,ARFLUSH指令可以在所有特权级别使用并且经受所有许可检查以及与字节负载相关联的故障。[0037]对于处理器高速缓存中的高速缓存行的基于范围的回写,以下描述了指令ARWB。根据实施例,ARWB指令采用以下格式:ARffB{S}mem_addr,range其中,mem_addr操作数是存储器地址,range操作数是范围指示符,并且S是可选操作码。类似于上述ARFLUSH指令,mem_addr操作数和range操作数一起定义了系统存储器中的连续区域。例如,在一个实施例中,mem_addr操作数是指示系统存储器中的连续区域的起始点的存储器地址,并且range操作数是指示所述连续区域的结束点的另一个存储器地址。根据实施例,存储器地址是指定系统存储器中的位置的线性存储器地址。在其他实施例中,存储器地址可以是有效存储器地址、虚拟存储器地址或物理存储器地址包括客户物理存储器地址)。根据实施例,ARWB指令将具有落入由mem_addr和range操作数定义的连续区域内的存储器地址的所有脏的(即,经修改的)高速缓存行从处理器高速缓存回写至系统存储器。在此所提及的处理器高速缓存可以是IL1、DL1、L2或其组合。在一些实施例中,回写在整个高速缓存一致性域中广播并且可以包括多个其他核上的(多个高速缓存。对于连续区域中非脏的(即,未经修改的高速缓存行,其可以保留在高速缓存层级中。[0038]ARWB指令呈现使脏的高速缓存行和清洁高速缓存行两者无效的指令之上的性能提高。通过不使未经修改的高速缓存行无效,ARWB指令减少了随后高速缓存访问中的高速缓存缺失。在一个实施例中,硬件可以选择将未经修改的高速缓存行保留在任何级别的高速缓存层级中或仅使其无效。[0039]在另一个实施例中,range操作数不是存储器地址而是指示将无效的高速缓存行的数量的整数值(即,“r”)。根据实施例,系统存储器中的连续区域开始于由mem_addr操作数指示的存储器地址,并且连续有由range操作数指示的多个(S卩,“r”个高速缓存行。换言之,包括在连续区域中的“r”个高速缓存行的存储器地址全部都等于或递增地大于或者小于,取决于实施方式mem_addr操作数。在一个实施例中,ARWB回写处理器高速缓存中具有某个存储器地址的所有脏的高速缓存行,所述存储器地址等于或递增地大于或小于针对由range操作数的整数值指示的高速缓存行数量的mem_addr操作数。可替代地,代替高速缓存行,range操作数可以指示将包括在连续区域中的字节数。连续区域开始于由mem_addr操作数指示的存储器地址,并且连续有由range操作数指示的字节数。[0040]根据实施例,可选操作码{S}指示共享高速缓存。在一个实施例中,ARWBS指令表现得与ARWB指令完全相同。唯一差别是ARWBS指令将连续区域中的脏的高速缓存行回写至共享高速缓存而不是系统存储器中。根据实施例,共享高速缓存是由主机处理器中的两个或更多个处理器核共享的高速缓存。[0041]根据实施例,ARWB仅根据存储排序。如此,操作系统和或在操作系统上运行的软件可以使用SFENCE、MFENCE或锁定-前缀指令来实现期望的排序。在一个实施例中,本文中所描述的ARWB指令可以在所有特权级别使用并且经受所有许可检查以及与字节负载相关联的故障。对于不需要完整数据刷新的使用并且期望对数据的随后访问,ARWB指令相比其他指令可以是优选的。[0042]根据实施例,用于执行本文中所描述的指令的硬件实施方式极大地依赖于处理器架构。具体地,具有不同级别的高速缓存层级的处理器将指示不同的实施方式要求。这同样适用于高速缓存包含策略。例如,在具有L1L2包含型高速缓存的处理器中,单独刷新L2高速缓存可能是足够的,因为L2中的任何无效高速缓存行将在Ll中被往回探测。根据实施例,可以基于可以关于操作系统和或在操作系统上运行的软件作出的某些假设来简化硬件实施方式。例如,如以上提及的,操作系统和或软件将确保任何受影响的存储器范围不被另一个运行线程访问。[0043]在一个实施例中,基于范围的存储器回写指令利用现有的硬件来降低实施成本。例如,针对现有指令比如,WBINV的高速缓存收缩或刷新引擎可以通过多种特定方式扫描处理器高速缓存并驱逐脏的行。而且,用于设备调试和测试的现有阵列测试寄存器可以提供可以主要由本文中所描述的基于范围的存储器回写指令共享的数据路径例如,具有标准功能路径的阵列读取写入MUXing和控制逻辑例如,地址扫描有限状态机FSM。[0044]图5展示了用于可用于实现本发明实施例的设备调试和测试的示例性大数据阵列测试LDAT引擎。数据路径502和控制逻辑504可以重新用于实施本文中所描述的ARFLUSH指令和ARWB指令。在某些实施例中,如果现有内部控制寄存器(例如,机器指定寄存器MSR,比如PDATSDAT上的过载不是优选的,则可以定义单独的一组内部控制寄存器。[0045]根据实施例,一组内部控制寄存器用于跟踪高速缓存行,所述高速缓存行的地址在系统存储器的由本文中描述的基于范围的存储器回写指令定义的连续区域中。然后,高速缓存行中的每一个被刷新或被回写至系统存储器中。在一个实施例中,这通过调用上述对应CLFLUSHCLWB指令来执行。[0046]然而,在一些实例中,可能不期望微代码针对每一行发出请求。在这种实例中,根据实施例,一组内部控制寄存器被配置,并且然后FSM被触发用于通过跟随下述操作和逻辑的指定地址范围进行扫描。在完成整个流程后设置状态位,所述状态位然后出于序列化目的将通过排序指令例如,MFENCE被检查。[0047]图6是流程图,展示了根据实施例的基于范围的存储器回写指令的逻辑和操作。在框602处,基于指令的mem_addr操作数(S卩,起始存储器地址)确定当前高速缓存行(当前CL。在框604处,针对当前高速缓存行执行高速缓存行刷新或高速缓存行回写指令。在框608处,将下一个高速缓存行设置为当前高速缓存行。在一个实施例中,下一个高速缓存行的存储器地址等于或递增地大于当前高速缓存行的存储器地址。在框610处,作出关于当前高速缓存行是否在范围内的判定,从而使得当前高速缓存行的地址落入由起始存储器地址和指令的范围指示符操作数在系统存储器中定义的连续区域内。如果当前高速缓存行在范围内,则在框604处针对当前高速缓存行执行高速缓存行刷新或回写指令。然而,如果当前高速缓存行不在范围内,代表系统存储器中的连续区域的结束,则过程结束。[0048]图7是流程图,展示了根据实施例的用于刷新高速缓存行的逻辑和操作。在框702处,接收用于将高速缓存行CL刷新或回写至系统存储器的请求。在一个实施例中,高速缓存行是图6中描述的在范围内当前高速缓存行。在框704处,读取高速缓存行标签。在实施例中,微代码触发标签读取以读取高速缓存行的状态。然后,在框706处,作出关于高速缓存行是否被高速缓存到处理器高速缓存中的判定。如果在处理器高速缓存中没有发现高速缓存行,则不需要任何动作并且操作结束。另一方面,如果在处理器高速缓存中发现高速缓存行,则在框708处作出关于高速缓存行是否是脏的另一判定。在一个实施例中,脏的高速缓存行是已经被修改但是未被回写至系统存储器的高速缓存行。如果发现高速缓存行是脏的,则在框710处驱逐所述脏的高速缓存行。根据实施例,通过标准或现有驱逐机制对高速缓存行进行驱逐。一旦高速缓存行已经被驱逐,由此经由高速缓存行回写存储到系统存储器中,则可以在处理器高速缓存中更新高速缓存行的状态。例如,这可以通过将高速缓存行的状态标签改变为“Γ无效或“E”(排他来执行。然而,返回到框708处,如果发现高速缓存行不是脏的(即,未经修改的),则在框712处作出关于高速缓存行是否被刷新或被无效的判定。根据实施例,这基于请求是用于刷新高速缓存行使高速缓存行无效还是仅回写至存储器。如上所述,ARFLUSH指令刷新处理器高速缓存中的高速缓存行使所述高速缓存行无效,无论高速缓存行是否为脏的。另一方面,ARWB指令不刷新非脏的(S卩,未经修改的)高速缓存行使所述高速缓存行无效。如果高速缓存行被刷新,则在框714中在处理器高速缓存中更新高速缓存行的状态。如以上所讨论的,这可以通过将高速缓存行的状态标签改变为“Γ无效或“E”(排他来完成。可替代地,高速缓存行的状态标签可以根据期望的实施方式改变为其他状态。然而,如果高速缓存行未被刷新,则不对高速缓存行标签作出任何改变,并且过程结束。[0049]本发明的一个实施例是一种装置,所述装置包括:系统存储器;多个硬件处理器核,所述多个硬件处理器核各自包括第一高速缓存;解码器电路,用于对具有针对第一存储器地址和范围指示符的字段的指令进行解码,所述第一存储器地址和所述范围指示符一起定义所述系统存储器中具有一个或多个高速缓存行的连续区域;以及执行电路,用于通过在所述第一高速缓存中使所述一个或多个高速缓存行的任何实例无效来执行所述经解码指令。在一个实施例中,将所述第一高速缓存中的所述一个或多个高速缓存行的任何脏的无效实例存储到所述系统存储器中。在一些实施例中,所述指令可以包括用于指示所述第一高速缓存中的所述一个或多个高速缓存行的所述脏的无效实例是否将被存储到由所述多个硬件处理器核共享的第二高速缓存而不是所述系统存储器中的操作码。关于范围指示符,在一些实施例中,其包括第二存储器地址,从而使得连续区域从第一存储器地址跨越到第二存储器地址。在其他实施例中,所述范围指示符包括对包括在所述连续区域中的高速缓存行的数量的指示,从而使得所包括的高速缓存行中的每一个的地址等于或递增地大于所述第一存储器地址。在一个实施例中,所述第一存储器地址是线性存储器地址。[0050]本发明的另一个实施例是一种装置,所述装置包括包含以下各项的装置:系统存储器;多个硬件处理器核,所述多个硬件处理器核各自包括第一高速缓存;解码器电路,用于对具有针对第一存储器地址和范围指示符的字段的指令进行解码,所述第一存储器地址和所述范围指示符一起定义所述系统存储器中具有一个或多个高速缓存行的连续区域;以及执行电路,用于通过使所述第一高速缓存中的所述一个或多个高速缓存行的任何脏的实例存储到所述系统存储器中来执行所述经解码指令。在一些实施例中,所述指令可以包括用于指示所述第一高速缓存中的所述一个或多个高速缓存行的所述脏的实例是否将被存储到由所述多个硬件处理器核共享的第二高速缓存中而不是存储到所述系统存储器中的操作码。关于范围指示符,在一些实施例中,其包括第二存储器地址,从而使得连续区域从第一存储器地址跨越到第二存储器地址。在其他实施例中,所述范围指示符包括对包括在所述连续区域中的高速缓存行的数量的指示,从而使得所包括的高速缓存行中的每一个的地址等于或递增地大于所述第一存储器地址。在一个实施例中,所述第一存储器地址是线性存储器地址。[0051]本发明的另一个实施例是一种方法,所述方法包括:对具有针对第一存储器地址和范围指示符的字段的指令进行解码,所述第一存储器地址和所述范围指示符一起定义系统存储器中具有一个或多个高速缓存行的连续区域;以及通过在第一处理器高速缓存中使所述一个或多个高速缓存行的任何实例无效来执行所述经解码指令。在一些实施例中,执行经解码指令包括将所述第一处理器高速缓存中的所述一个或多个高速缓存行的任何脏的无效实例存储到所述系统存储器中。在其他实施例中,执行所述经解码指令包括将来自所述第一处理器高速缓存的所述一个或多个高速缓存行的任何脏的无效实例存储到由多个硬件处理器核共享的第二高速缓存中。关于范围指示符,在一些实施例中,其包括第二存储器地址,从而使得连续区域从第一存储器地址跨越到第二存储器地址。在其他实施例中,所述范围指示符包括对包括在所述连续区域中的高速缓存行的数量的指示,从而使得所包括的高速缓存行中的每一个的地址等于或递增地大于所述第一存储器地址。在一个实施例中,所述第一存储器地址是线性存储器地址。[0052]本发明的又另一个实施例是一种方法,所述方法包括:对具有针对第一存储器地址和范围指示符的字段的指令进行解码,所述第一存储器地址和所述范围指示符一起定义系统存储器中具有一个或多个高速缓存行的连续区域;以及通过使第一处理器高速缓存中的所述一个或多个高速缓存行的任何脏的实例存储到所述系统存储器中来执行所述经解码指令。在一些实施例中,所述指令可以包括用于指示所述第一处理器高速缓存中的所述一个或多个高速缓存行的脏的实例是否将被存储到由多个硬件处理器核共享的第二高速缓存中而不是存储到所述系统存储器中的操作码。关于范围指示符,在一些实施例中,其包括第二存储器地址,从而使得连续区域从第一存储器地址跨越到第二存储器地址。在其他实施例中,所述范围指示符包括对包括在所述连续区域中的高速缓存行的数量的指示,从而使得所包括的高速缓存行中的每一个的地址等于或递增地大于所述第一存储器地址。在一个实施例中,所述第一存储器地址是线性存储器地址。[0053]图8A是框图,展示了根据本发明实施例的示例性有序流水线和示例性寄存器重命名无序发出执行流水线两者。图8B是框图,展示了根据本发明实施例的将包括在处理器中的有序架构核的示例性实施例和示例性寄存器重命名无序发出执行架构核两者。图8A-B中的实线框展示了有序流水线和有序核,而虚线框的可选添加展示了寄存器重命名无序发出执行流水线和核。假定有序方面是无序方面的子集,将描述无序方面。[0054]在图8A中,处理器流水线800包括取出阶段802、长度解码阶段804、解码阶段806、分配阶段808、重命名阶段810、调度也称为分派或发出)阶段812、寄存器读取存储器读取阶段814、执行阶段816、回写存储器写入阶段818、异常处理阶段822以及提交阶段824。[0055]图8B示出了处理器核890,所述处理器核包括耦合至执行引擎硬件850的前端硬件830,并且所述执行引擎硬件和前端硬件两者都耦合至存储器硬件870。核890可以是精简指令集计算RISC核、复杂指令集计算CISC核、超长指令字VLIW核或混合或可替代核类型。作为又另一个选项,核890可以是专用核,如例如,网络或通信核、压缩引擎、协处理器核、通用计算图形处理单元GPGPU核、图形核等。[0056]前端硬件830包括耦合至指令高速缓存硬件834的分支预测硬件832,所述指令高速缓存硬件耦合至指令转换后备缓冲器TLB836,所述指令转换后备缓冲器耦合至指令取出硬件838,所述指令取出硬件耦合至解码硬件840。解码硬件840或解码器可以对指令进行解码并且生成从原始指令中解码出的、或以其他方式反映原始指令或从原始指令衍生出的一个或多个微运算、微代码入口点、微指令、其他指令或其他控制信号作为输出。解码硬件840可以使用各种不同的机制来实现。合适机制的示例包括但不限于:查找表、硬件实施方式、可编程逻辑阵列PLA、微代码只读存储器ROM等。在一个实施例中,核890包括微代码ROM或存储用于某些宏指令的微代码的其他介质(例如,在解码硬件840中或者在前端硬件830内)。解码硬件840耦合至执行引擎硬件850中的重命名分配器硬件852。[0057]执行引擎硬件850包括耦合至引退硬件854的重命名分配器硬件852和一组一个或多个调度器硬件856。调度器硬件856表示任何数量的不同调度器,包括保留站、中央指令窗口等。调度器硬件856耦合至多个物理寄存器堆硬件858。(多个物理寄存器堆硬件858各自表示一个或多个物理寄存器堆,其中不同的物理寄存器堆存储一个或多个不同的数据类型,比如,标量整数、标量浮点、紧缩整数、紧缩浮点、向量整数、向量浮点、状态例如,作为有待执行的下一指令的地址的指令指针等。在一个实施例中,(多个物理寄存器堆硬件858包括向量寄存器硬件、写入掩码寄存器硬件、以及标量寄存器硬件。此寄存器硬件可以提供架构向量寄存器、向量掩码寄存器、以及通用寄存器。(多个物理寄存器堆硬件858与引退硬件854重叠以说明可实施寄存器重命名和无序执行的各种方式例如,使用(多个重排序缓冲器和(多个)引退寄存器堆;使用(多个将来堆、(多个历史缓冲器和(多个)引退寄存器堆;使用寄存器映射和寄存器池;等等)。引退硬件854和(多个物理寄存器堆硬件858耦合至(多个执行群集860。(多个执行群集860包括一组一个或多个执行硬件862和一组一个或多个存储器访问硬件864。执行硬件862可以执行各种运算(例如,移位、加法、减法、乘法)以及对各种类型的数据例如,标量浮点、紧缩整数、紧缩浮点、向量整数、向量浮点执行。尽管一些实施例可以包括专用于特定功能或功能集合的多个执行硬件,但是其他实施例可以只包括一个执行硬件或包括全都执行全部功能的多个执行硬件。调度器硬件856、(多个物理寄存器堆硬件858、以及(多个执行集群860被示出为可能是复数的,因为某些实施例为某些类型的数据操作创建分开的流水线例如,标量整数流水线、标量浮点紧缩整数紧缩浮点向量整数向量浮点流水线、和或存储器访问流水线,所述流水线各自具有其本身的调度器硬件、(多个物理寄存器堆硬件、和或执行集群,并且在分开的存储器访问流水线的情况下,实现了其中只有所述流水线的执行集群具有存储器访问硬件864的某些实施例)。还应当理解,在使用分开的流水线的情况下,这些流水线中的一者或多者可以是无序发出执行流水线,并且其余的是有序流水线。[0058]所述一组存储器访问硬件864耦合至存储器硬件870,所述存储器硬件包括耦合至数据高速缓存硬件874的数据TLB硬件872,所述数据高速缓存硬件耦合至2级L2高速缓存硬件876。在一个示例性实施例中,存储器访问硬件864可以包括各自耦合至存储器硬件870中的数据TLB硬件872的加载硬件、存储地址硬件、以及存储数据硬件。指令高速缓存硬件834进一步耦合至存储器硬件870中的2级L2高速缓存硬件876。L2高速缓存硬件876耦合至一个或多个其他级的高速缓存并且最终耦合至主存储器。[0059]通过示例的方式,示例性寄存器重命名无序发出执行核架构可以实施流水线800如下:1指令取出838执行取出和长度解码阶段802和804;2解码硬件840执行解码阶段806;3重命名分配器硬件852执行分配阶段808和重命名阶段810;4调度器硬件856执行调度阶段812;5多个物理寄存器堆硬件858和存储器硬件870执行寄存器读取存储器读取阶段814;执行集群860实施执行阶段816;6存储器硬件870和(多个物理寄存器堆硬件858执行回写存储器写入阶段818;7各种硬件可以涉及异常处理阶段822;以及8引退硬件854和多个物理寄存器堆硬件858执行提交阶段824。[0060]核890可以支持一条或多条指令集例如,x86指令集具有已经添加了较新版本的一些扩展);加利福尼亚州桑尼维尔的MIPS技术公司的MIPS指令集;加利福尼亚州桑尼维尔的ARM控股公司的ARM指令集具有可选的附加扩展,比如NEON,包括本文所描述的(多个)指令。在一个实施例中,核890包括支持紧缩数据指令集扩展例如,AVXl、AVX2、和或某种形式的通用向量友好指令格式U=O和或U=I,如下所述)的逻辑,从而允许使用紧缩数据来执行许多多媒体应用所使用的操作。[0061]应当理解,核可以支持多线程化执行两个或更多个并行的操作或线程集),并且可以以各种方式来完成所述多线程化,所述各种方式包括时分多线程化、同步多线程化其中,单个物理核为物理核正同步多线程化的线程中的每一个线程提供逻辑核)、或其组合例如,时分取出和解码以及此后比如丨ntel®超线程化技术中的同步多线程化)。[0062]虽然在无序执行的上下文中描述了寄存器重命名,但应当理解的是,可以在有序架构中使用寄存器重命名。虽然处理器的所示实施例还包括分开的指令和数据高速缓存硬件834874和共享的L2高速缓存硬件876,但替代实施例可以具有用于指令和数据两者的单个内部高速缓存,如例如,1级LI内部高速缓存、或多级内部高速缓存。在一些实施例中,所述系统可以包括内部高速缓存和在核和或处理器外部的外部高速缓存的组合。可替代地,所有高速缓存都可以在核和或处理器的外部。[0063]图9是根据本发明的实施例的可以具有多于一个核、可以具有集成存储器控制器并且可以具有集成图形的处理器900的框图。图9中的实线框展示了具有单个核902A、系统代理910、一组一个或多个总线控制器硬件916的处理器900,而虚线框的可选添加展示了具有多个核902A-N、系统代理硬件910中的一组一个或多个集成存储器控制器硬件914以及专用逻辑908的替代处理器900。[0064]因此,处理器900的不同实施方式可以包括:1具有作为集成图形和或科学吞吐量逻辑其可包括一个或多个核)的专用逻辑908和作为一个或多个通用核例如,通用有序核、通用无序核、两者的组合)的核902A-N的0?1];2协处理器,其中核90244是旨在主要用于图形和或科学(吞吐量)的大量专用核;以及3协处理器,其中,核902A-N是大量通用有序核。因此,处理器900可以是通用处理器、协处理器或专用处理器,如例如,网络或通信处理器、压缩引擎、图形处理器、GPGPU通用图形处理单元)、高吞吐量集成众核MIC协处理器包括30个或更多个核)、嵌入式处理器等。处理器可以在一个或多个芯片上实施。处理器900可以是一个或多个衬底的一部分和或可以使用如例如BiCMOSXMOS或NMOS的多种加工技术中的任何一种技术在一个或多个衬底上实施。[0065]存储器层级包括核内的一个或多个级别的高速缓存,一组一个或多个共享高速缓存硬件906、以及外部存储器未示出),所述外部存储器耦合至所述一组集成存储器控制器硬件914。所述一组共享高速缓存硬件906可以包括一个或多个中级高速缓存,比如,2级L2、3级L3、4级L4、或其他级别的高速缓存、终极高速缓存LLC和或其组合。虽然在一个实施例中,基于环形的互连硬件912将集成图形逻辑908、所述一组共享高速缓存硬件906、以及系统代理硬件910集成存储器控制器硬件914互连,但替代实施例可以使用任何数量的用于互连这种硬件的已知技术。在一个实施例中,在一个或多个高速缓存硬件906与核902A-N之间保持相干性。[0066]在一些实施例中,核902A-N中的一个或多个核能够进行多线程化。系统代理910包括协调和操作核902A-N的那些组件。系统代理硬件910可以包括例如功率控制单元PCU和显示硬件。P⑶可以是或包括调节核902A-N和集成图形逻辑908的功率状态所需的逻辑和组件。显示硬件用于驱动一个或多个外部连接的显示器。[0067]就架构指令集而言,核902A-N可以是同质的或异构的;也就是说,核902A-N中的两个或更多个核能够执行相同的指令集,而其他的核能够仅执行所述指令集的子集或执行不同的指令集。在一个实施例中,核902A-N是异构的,并且包括下面描述的“小”核和“大”核两者。[0068]图10-13是示例性计算机架构的框图。本领域中已知的用于膝上型计算机、台式计算机、手持式PC、个人数字助理、工程工作站、服务器、网络设备、网络集线器、交换机、嵌入式处理器、数字信号处理器DSP、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝电话、便携式媒体播放器、手持式设备和各种其他电子设备的其他系统设计和配置也是合适的。一般,能够结合本文所公开的处理器和或其他执行逻辑的各种各样的系统或电子设备通常是合适的。[0069]现在参照图10,示出了根据本发明的一个实施例的系统1000的框图。系统1000可以包括耦合至控制器中枢1020的一个或多个处理器1010、1015。在一个实施例中,控制器中枢1020包括图形存储器控制器中枢GMCH1090和输入输出中枢IOH1050其可以在分开的芯片上);GMCH1090包括存储器和图形控制器,存储器1040和协处理器1045被耦合到所述图形控制器;IOH1050将输入输出(IO设备1060耦合到GMCH1090。可替代地,存储器和图形控制器中的一者或两者被集成在处理器(如本文所述)内,存储器1040和协处理器1045直接耦合至处理器1010以及单个芯片中具有IOH1050的控制器中枢1020。[0070]图10中用虚线表示附加处理器1015的可选性质。每个处理器1010、1015可以包括本文中所描述的处理核中的一个或多个并且可以是处理器900的某个版本。[0071]存储器1040可以是例如动态随机存取存储器DRAM、相变存储器PCM或两者的组合。对于至少一个实施例,控制器中枢1020经由多点总线(比如,前端总线FSB、点对点接口或类似连接件1095与(多个处理器1010、1015通信。[0072]在一个实施例中,协处理器1045是专用处理器,如例如高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、嵌入式处理器等。在一个实施例中,控制器中枢1020可以包括集成图形加速器。[0073]就一系列指标量度包括体系结构、微体系结构、热、功耗特性等而言,物理资源1010、1015之间可能存在多种差异。[0074]在一个实施例中,处理器1010执行控制一般类型的数据处理运算的指令。协处理器指令可以被嵌入在指令中。处理器1010将这些协处理器指令识别为属于应由附接的协处理器1045执行的类型。相应地,处理器1010将协处理器总线或其他互连上的这些协处理器指令或表示协处理器指令的控制信号发出到协处理器1045。(多个协处理器1045接受并执行接收到的协处理器指令。[0075]现在参照图11,示出了根据本发明的实施例的第一更具体示例性系统1100的框图。如图11所示,多处理器系统1100是点对点互连系统,并且包括经由点对点互连1150耦合的第一处理器1170和第二处理器1180。处理器1170和1180各自可以是处理器900的某个版本。在本发明的一个实施例中,处理器1170和1180分别是处理器1010和1015,而协处理器1138是协处理器1045。在另一个实施例中,处理器1170和1180分别是处理器1010、协处理器1045〇[0076]处理器1170和1180被示出为分别包括集成存储器控制器(IMC硬件1172和1182。处理器1170还包括作为其总线控制器硬件的一部分的点对点(P-P接口1176和1178;类似地,第二处理器1180包括P-P接口1186和1188。处理器1170、1180可以使用P-P接口电路1178、1188经由点对点P-P接口1150交换信息。如图11所示,頂C1172和1182将处理器耦合至对应存储器,即存储器1132和存储器1134,所述存储器可以是主存储器的本地附接到对应处理器的部分。[0077]处理器1170、1180可以各自使用点对点接口电路1176、1194、1186、1198经由单独的P-P接口1152、1154来与芯片组1190交换信息。可选地,芯片组1190可以经由高性能接口1139与协处理器1138交换信息。在一个实施例中,协处理器1138是专用处理器,如例如高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、嵌入式处理器等。[0078]共享高速缓存(未示出)可以包括在任一处理器中或者在两个处理器外部但经由P-P互连与所述处理器相连接,使得如果处理器被置于低功耗模式下,则任一或两个处理器的本地高速缓存信息可以被存储在所述共享高速缓存中。[0079]芯片组1190可以经由接口1196耦合至第一总线1116。在一个实施例中,第一总线1116可以是外围组件互连PCI总线,或如PCIExpress总线或另一种第三代IO互连总线等总线,尽管本发明的范围不限于此。[0080]如图11所示,不同IO设备1114可以连同总线桥接器1118耦合到第一总线1116,所述总线桥接器可以将第一总线1116耦合到第二总线1120。在一个实施例中,一个或多个附加处理器1115比如,协处理器、高吞吐量MIC处理器、GPGPU、加速器比如,图形加速器或数字信号处理DSP硬件)、现场可编程门阵列、或任何其他处理器被耦合至第一总线1116。在一个实施例中,第二总线1120可以是低引脚数LPC总线。在一个实施例中,各个设备可以耦合至第二总线1120,所述设备包括例如键盘和或鼠标1122、通信设备1127、以及可以包括指令代码数据1130的存储硬件1128比如磁盘驱动器或者其他大容量存储设备)。进一步地,音频IO1124可以耦合至第二总线1120。注意,其他架构是可能的。例如,替代图11的点对点架构,系统可以实现多点总线或其他这样的架构。[0081]现在参考图12,示出了根据本发明的实施例的更具体的第二示例性系统1200的框图。图11和图12中的相同元件具有相同的参考号,并且已经从图12中省略了图11的某些方面以避免使图12的其他方面模糊。[0082]图12展示了处理器1170、1180可以分别包括集成存储器和IO控制逻辑(“CL”)1172和1182。因此,CL1172、1182包括集成存储器控制器硬件并且包括IO控制逻辑。图12展示了不仅存储器1132、1134耦合至CL1172、1182,而且IO设备1214也耦合至控制逻辑1172、1182。传统IO设备1215耦合至芯片组1190。[0083]现在参考图13,示出了根据本发明的实施例的SoC1300的框图。图9中的相似元件具有相同的参考号。而且,虚线框是关于更先进的SoC的可选特征。在图13中,互连硬件1302耦合至:应用处理器1310,所述应用处理器包括一组一个或多个核902A-N和共享高速缓存硬件906;系统代理硬件910;总线控制器硬件916;集成存储控制器硬件914;一组一个或多个协处理器1320,所述协处理器可以包括集成图形逻辑、图像处理器、音频处理器、以及视频处理器;静态随机存取存储器SRAM硬件1330;直接存储器访问(DMA硬件1332;以及显示硬件1340,用于耦合至一个或多个外部显示器。在一个实施例中,(多个协处理器1320是专用处理器,如例如,网络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、嵌入式处理器等。[0084]本文公开的机制的实施例可以以硬件、软件、固件或这些实现途径的组合来实现。本发明的实施例可以被实现为在可编程系统上执行的计算机程序或程序代码,所述可编程系统包括至少一个处理器、存储系统包括易失性和非易失性存储器和或存储元件)、至少一个输入设备、以及至少一个输出设备。[0085]如图11所展示的代码1130的程序代码可以被应用于输入指令以执行本文所述的功能并且生成输出信息。输出信息可以以已知的方式应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有处理器的任何系统,如例如:数字信号处理器DSP、微控制器、专用集成电路ASIC、或微处理器。[0086]程序代码可以以高级程序或面向对象的编程语言来实现,以与处理系统通信。如果需要,程序代码还可以以汇编或机器语言实现。事实上,本文描述的机制的范围不限于任何特定的编程语言。在任何情况下,所述语言可以是编译或解释语言。[0087]可以由机器可读介质上所存储的表示性指令实现至少一个实施例的一个或多个方面,所述指令代表处理器内的各种逻辑,当被机器读取时所述指令使该所述机器制作用于执行本文中所描述的技术的逻辑。这种表示称为“IP核”)可以被存储在有形的机器可读介质上并提供给各顾客或制造设施以加载至实际制作所述逻辑或处理器的制作机器中。[0088]这种机器可读存储介质可以包括但不限于:由机器或设备制造或形成的物品的非暂态有形安排,包括如硬盘的存储介质;任何其他类型的盘,包括软盘、光盘、致密盘只读存储器CD-ROM、可重写致密盘CD-RW和磁光盘;半导体设备,比如,只读存储器ROM;随机存取存储器RAM,比如,动态随机存取存储器DRAM、静态随机存取存储器SRAM;可擦除可编程只读存储器EPROM;闪存存储器;电可擦除可编程只读存储器EEPROM;相变存储器PCM;磁卡或光卡;或者适合于存储电子指令的任何其他类型的介质。[0089]因此,本发明的实施例还包括包含指令或包含设计数据(比如硬件描述语言HDL的非暂态有形机器可读介质,所述非暂态有形机器可读介质定义本文中描述的结构、电路、装置、处理器和或系统特征。这种实施例也可以被称为程序产品。[0090]在一些情况下,可以使用指令转换器将指令从源指令集转换为目标指令集。例如,指令转换器可以将指令转换(例如,使用静态二进制转换、包括动态编译的动态二进制转换)、变形、仿真、或以其他方式转换为有待由核处理的一个或多个其他指令。可以在软件、硬件、固件或其组合中实施指令转换器。指令转换器可以处于处理器上、处理器外、或者部分地处于处理器上并且部分地处于处理器外。[0091]图14是框图,对照了根据本发明的实施例的对用于将源指令集中的二进制指令转换为目标指令集中的二进制指令的软件指令转换器的使用。在所展示的实施例中,指令转换器是软件指令转换器,然而可替代地,可以在软件、固件、硬件或其各种组合中实施指令转换器。图14示出了可以使用x86编译器1404来编译以生成x86二进制代码1406的高级语言1402的程序,所述x86二进制代码可以由具有至少一个x86指令集核1416的处理器本机执行。具有至少一个x86指令集核1416的处理器表示可以通过兼容地执行或以其他方式处理以下各项来执行与具有至少一个x86指令集核的因特尔处理器基本相同功能的任何处理器:(1因特尔x86指令集核的指令集的实质部分、或2应用的目标代码版本或目标是在具有至少一个x86指令集核的因特尔处理器上运行的其他软件,以便实现与具有至少一个x86指令集核的因特尔处理器基本相同的结果。x86编译器1404表示可操作以生成x86二进制代码1406例如,目标代码)的编译器,所述x86二进制代码可以在具有或不具有附加链接处理的情况下在具有至少一个x86指令集核1416的处理器上执行。类似地,图14示出了可以使用替代性指令集编译器1408来编译以生成替代性指令集二进制代码1410的高级语言1402的程序,可以由不具有至少一个x86指令集核的处理器1414例如,具有执行加利福尼亚州桑尼维尔的MIPS技术公司的MIPS指令集和或执行加利福尼亚州桑尼维尔的ARM控股公司的ARM指令集的核的处理器本机执行所述替代性指令集二进制代码。指令转换器1412用于将x86二进制代码1406转换为可由不具有x86指令集核1414的处理器本机执行的代码。此经转换的代码不太可能与替代指令集二进制代码1410相同,因为很难制作能够实现这一点的指令转换器;然而,经转换的代码将完成一般操作,并且由来自替代指令集的指令构成。因此,指令转换器1412表示通过仿真、模拟或任何其他进程允许不具有x86指令集处理器或核的处理器或其他电子设备执行x86二进制代码1406的软件、固件、硬件或其组合。[0092]尽管已经参考特定实施方式对一些实施例进行了描述,但根据一些实施例其他实施方式是可能的。另外,在附图中展示和或本文中描述的元素或其他特征的安排和或顺序无需以所展示和描述的特定方式安排。根据一些实施例,很多其他安排是可能的。[0093]在附图中示出的每个系统中,一些情况中的元素可以各自都具有相同的参考号或不同的参考号以表明所表示的元素可以是不同和或类似的。然而,元素可以足够灵活到具有不同的实施方式并与在本文中示出或描述的系统的一些或全部一起工作。附图中示出的各种元素可以是相同的或不同的。哪个称为第一元素和哪个称为第二元素是任意的。[0094]在说明书和权利要求书中,可以使用术语“耦合”和“连接”及其衍生词。应当理解,这些术语并非旨在作为彼此的同义词。相反,在特定实施例中,“连接”可以用于指示两个或更多元件彼此进行直接物理或电气接触。“耦合”可以意指两个或更多个元件进行直接物理或电气接触。然而,“耦合”还可以意指两个或更多个元件并非彼此直接接触,但仍彼此合作或交互。[0095]实施例是本发明的实施方式或示例。说明书中对“实施例”、“一个实施例”、“一些实施例”或“其他实施例”的引用意指结合实施例描述的特定特征、结构或特性包括在本发明的至少一些实施例中,但不必是全部实施例。“实施例”、“一个实施例”或“一些实施例”的多处出现不必全部指代相同的实施例。[0096]并非本文中描述和展示的所有组件、特征、结构、特性等都需要包括在一个或多个特定实施例中。例如,如果说明书陈述组件、特征、结构或特性“可以”、“可能”、“可”或“能够”被包括,则所述特定组件、特征、结构或特性不要求被包括。如果说明书或权利要求书提及“一个a”或“一个an”要素,则那并非意味着仅存在一个要素。如果说明书或权利要求书提及“附加”要素,则那并不排除存在多于一个的附加要素。[0097]包括在摘要中描述的内容的本发明的所示出实施例的以上描述不旨在是排他性的或者将本发明限制为所公开的精确形式。尽管在此为了示意性的目的描述了本发明的特定实施例和示例,但是在本发明的范围内,各种等效修改是可能的,正如本领域技术人员将认识到的那样。可鉴于以上详细描述对本发明做出这些修改。在以下权利要求书中所使用的术语不应被解释为将本发明限制为在说明书和附图中公开的特定实施例。而是,本发明的范围全部由以下权利要求书确定,应当根据权利要求解释的确定条文对其进行解释。

权利要求:1.一种装置,包括:系统存储器;多个硬件处理器核,所述硬件处理器核中的至少一个用于包括:第一高速缓存;解码器电路,用于对具有用于第一存储器地址和范围指示符的字段的指令进行解码,所述第一存储器地址和所述范围指示符用于定义所述系统存储器中的连续区域,所述连续区域包括一个或多个高速缓存行;以及执行电路,用于通过在所述第一高速缓存中使所述一个或多个高速缓存行的任何实例无效来执行所述经解码指令。2.如权利要求1所述的装置,其特征在于,如果所述第一高速缓存中的所述一个或多个高速缓存行的无效实例是脏的,则所述无效实例将被存储到所述系统存储器中。3.如权利要求2所述的装置,其特征在于,所述指令进一步包括用于指示所述第一高速缓存中的所述一个或多个高速缓存行的所述脏的无效实例是否将被存储到由所述多个硬件处理器核共享的第二高速缓存中而非存储到所述系统存储器中的操作码。4.如权利要求1至3中任一项所述的装置,其特征在于,所述范围指示符包括第二存储器地址,所述连续区域用于从所述第一存储器地址跨越到所述第二存储器地址。5.如权利要求1至3中任一项所述的装置,其特征在于,所述范围指示符包括对将包括在所述连续区域中的字节或高速缓存行的数量的指示,所包括的高速缓存行具有等于或递增地大于所述第一存储器地址的地址。6.如权利要求1至5中任一项所述的装置,其特征在于,所述第一存储器地址是线性存储器地址。7.—种装置,包括:系统存储器;多个硬件处理器核,所述硬件处理器核中的至少一个用于包括:第一高速缓存;解码器电路,用于对具有用于第一存储器地址和范围指示符的字段的指令进行解码,所述第一存储器地址和所述范围指示符用于定义所述系统存储器中的连续区域,所述连续区域包括一个或多个高速缓存行;以及执行电路,用于通过使所述第一高速缓存中的所述一个或多个高速缓存行的任何脏的实例存储到所述系统存储器中来执行所述经解码指令。8.如权利要求7所述的装置,其特征在于,所述指令进一步包括用于指示所述第一高速缓存中的所述一个或多个高速缓存行的脏的实例是否将被存储到由所述多个硬件处理器核共享的第二高速缓存中而非存储到所述系统存储器中的操作码。9.如权利要求7至8中任一项所述的装置,其特征在于,所述范围指示符包括第二存储器地址,所述连续区域用于从所述第一存储器地址跨越到所述第二存储器地址。10.如权利要求7至8中任一项所述的装置,其特征在于,所述范围指示符包括对将包括在所述连续区域中的字节或高速缓存行的数量的指示,所包括的高速缓存行具有等于或递增地大于所述第一存储器地址的地址。11.如权利要求7至10中任一项所述的装置,其特征在于,所述第一存储器地址是线性存储器地址。12.一种方法,包括:对具有用于第一存储器地址和范围指示符的字段的指令进行解码,所述第一存储器地址和所述范围指示符用于定义系统存储器中的连续区域,所述连续区域包括一个或多个高速缓存行;以及通过在第一处理器高速缓存中使所述一个或多个高速缓存行的任何实例无效来执行所述经解码指令。13.如权利要求12所述的方法,其特征在于,执行所述经解码指令的步骤进一步包括:如果所述第一处理器高速缓存中的所述一个或多个高速缓存行的无效实例是脏的,则将所述无效实例存储到所述系统存储器中。14.如权利要求12所述的方法,其特征在于,执行所述经解码指令的步骤进一步包括:如果来自所述第一处理器高速缓存的所述一个或多个高速缓存行的无效实例是脏的,则将所述无效实例存储到第二高速缓存中,所述第二高速缓存由多个硬件处理器核共享。15.如权利要求12至14中任一项所述的方法,其特征在于,所述范围指示符包括第二存储器地址,所述连续区域用于从所述第一存储器地址跨越到所述第二存储器地址。16.如权利要求12至14中任一项所述的方法,其特征在于,所述范围指示符包括对将包括在所述连续区域中的字节或高速缓存行的数量的指示,所包括的高速缓存行具有等于或递增地大于所述第一存储器地址的地址。17.如权利要求12至16中任一项所述的方法,其特征在于,所述第一存储器地址是线性存储器地址。18.一种方法,包括:对具有用于第一存储器地址和范围指示符的字段的指令进行解码,所述第一存储器地址和所述范围指示符用于定义系统存储器中的连续区域,所述连续区域包括一个或多个高速缓存行;以及通过使第一处理器高速缓存中的所述一个或多个高速缓存行的任何脏的实例存储到所述系统存储器中来执行所述经解码指令。19.如权利要求18所述的方法,其特征在于,所述指令进一步包括用于指示所述第一处理器高速缓存中的所述一个或多个高速缓存行的脏的实例是否将被存储到由多个硬件处理器核共享的第二高速缓存中而非存储到所述系统存储器中的操作码。20.如权利要求18至19中任一项所述的方法,其特征在于,所述范围指示符包括第二存储器地址,所述连续区域用于从所述第一存储器地址跨越到所述第二存储器地址。21.如权利要求18至19中任一项所述的方法,其特征在于,所述范围指示符包括对将包括在所述连续区域中的字节或高速缓存行的数量的指示,所包括的高速缓存行具有等于或递增地大于所述第一存储器地址的地址。22.如权利要求18至21中任一项所述的方法,其特征在于,所述第一存储器地址是线性存储器地址。

百度查询: 英特尔公司 用于存储器回写的装置和方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。