共享公共高速缓存的异构处理器的制作方法

文档序号:6468766阅读:158来源:国知局
专利名称:共享公共高速缓存的异构处理器的制作方法
技术领域
本发明涉及一种处理器,特别是涉及一种共享公共高速緩存的异构处 理器。
背景技术
现代的通用处理器通常通过一个或多个高速緩存(例如,L1和L2高速 緩存)的分层结构来访问主存储器(典型地作为动态随机存取存储器,或
"DRAM"执行)。相对于主存储器,高速緩存(典型地基于静态随机存取 存储器,或"SRAM")可以更快地返回数据,但是使用更多的区域和功率。 通过通用处理器访问的存储器通常显示较高的时间和空间局部性。高速緩 存以比所需要的更大的块从主存储器中获取数据(空间局部性),并且即 使在处理器已经使用了该数据之后还保持该数据一段时间(时间局部性), 如此来利用该局部性。这种行为通常允许要求高速緩存快速地服务,而不 是DRAM较慢的服务。高速緩存通常比主存储器能够满足更高的读/写负载
(用于较高的吞吐量),以至于上述的访问不太可能排队以及减緩当前的 访问。
像网络和图形那样的计算工作量通常能更好地在专门为给定工作量 而设计的专用处理器上执行。专用处理器的例子包括网络处理器和图形加 速器。通常这些专用处理器位于通用处理器的高速缓存层次结构的外面, 通常在外围部件互连(PCI)或加速图形端口 (AGP)上。
由专用处理器访问的存储器因此只包括主存储器,而不包括通用处理器的高速緩存。在通用处理器和专用处理器之间移动数据通常需要主存储
器写入以及主存储器读取,因此该传送可以仅仅以DRAM的速度进行。

发明内容
按照本发明实施例的第一方面,提供一种处理器,包括包含异构处 理器内核的处理器内核;以及连接到所述处理器内核并由所述处理器内核 共享的高速緩存;其中处理器内核以及高速緩存集成在单个集成片上。
其中异构处理器内核包括专用处理器内核。
其中专用处理器内核包括具有指令集的网络处理器单元内核,该指令 集不包括用于浮点运算的指令。
其中专用处理器内核包括图形引擎内核。
其中异构处理器内核包括中央处理单元内核。
其中异构处理器内核包括中央处理单元内核和图形引擎内核。 其中高速緩存包括多端口高速緩存。
其中处理器内核包括一个或多个第一类型的处理器内核以及一个或 多个第二类型的处理器内核,而多端口高速緩存包括至少一个支持由一个
或多个第一类型的处理器内核生成的事务的端口 ,以及至少一个支持由一 个或多个第二类型的处理器内核生成的事务的端口。
其中所述端口被配置为根据端口所支持的各个处理器内核类型而操作。
其中所述端口包括根据各个处理器内核类型的命令类型、大小和对准 中的一个或多个来配置的端口 。
其中异构处理器内核包括不同类型的处理器内核,并且多端口高速緩 存为每个不同类型的处理器内核提供不同的端口类型。
按照本发明实施例第一方面的处理器,进一步包括将处理器内核耦合 到高速緩存的互连,所述互连包括互连总线。
其中处理器内核包括翻译逻辑,用于将每个处理器内核的专用事务翻 译为与内核无关的事务。
其中异构处理器内核包括不同类型的处理器内核,并且高速緩存包括
5处理由不同类型的处理器内核所生成的事务的逻辑。
其中异构处理器内核使用允许不同最大传送容量的命令,其中不同最 大传送容量的其中之一允许跨越多个高速緩存线的传送。
其中至少 一个异构处理器内核是可操作的,以便为扩展的专用修改锁 定一部分高速緩存。
其中每个处理器内核能够使用共享高速緩存,以便将数据传递到另一 个处理器内核。


图1A-1C示出了具有基于总线的共享高速緩存结构的示例异构多内核 处理器。
图2示出了具有多个端口的共享高速緩存结构的示例异构多内核处理器。
图3示出了具有基于开关的共享高速緩存结构的示例异构多内核处理器。
图4示出了通过桥连接到多内核通用处理器的主存储器上的示例异构 多内核处理器(具有一个共享高速緩存)。
图5示出了应用了诸如图l-4中所说明的那些异构多内核处理系统的 示例网络应用。
具体实施例方式
图U-1C示出了多处理器系统IO,其包括通过存储器总线16耦合到主 存储器14的多处理器12。该多处理器12包括高速緩存("共享高速緩存") 18和多个处理器"内核"(全体的,处理器内核20),这些处理器内核连 接到高速緩存18并且共享该高速缓存18。该图中的共享高速緩存18旨在表 示包括高速缓存存储器和相关的控制逻辑的单元。高速緩存控制逻辑包括 用于映射存储器地址("超高速緩存标记")的逻辑,所述存储器地址当 前是用与它们相关的超高速緩存线来緩存的。
处理器内核20包括异构内核,也就是说,结构不同的处理器内核(或 者处理器内核的类型)。例如,处理器内核20可以包括一个或多个专用处理器内核和/或至少一个中央处理单元(CPU)内核。
专用处理器内核可以包括,例如,至少一个网络处理器单元(NPU) 内核和/或图形引擎内核。在图解的实施例中,处理器内核20包括多个NPU
内核,如所示的NPU内核22a、 22b..... 22k,以及CPU内核24。 NPU内核22
可以被编程为精简指令集计算(RISC)内核,该内核的特征是硬件支持多 线程操作。NPU内核22可能没有通常能在其它处理器中发现的指令,诸如 整数乘法或除法,或浮点运算,由于这些操作在处理网络分组中发生相对 丰交少。CPU内核24可以基于通用处理器的任何类型的结构,例如,Intel Architecture处理器("IA处理器"),比如Intel⑧XeonTM处理器,或Intel Pentium⑧4处理器或XscaleTM处理器。
虽然没有示出,可以理解的是,CPU内核24也可以使用专用高速緩存 (例如,该专用高速緩存可以是L1高速緩存,而共享高速緩存可以是L2高 速緩存)。
如图所示,处理器内核20通过某类型的互连机制,例如,共享总线26, 连接到共享高速緩存18。高速緩存18 (如果数据在那里)可以快速地为访 问CPU内核24和NPU内核22而提供服务。该访问被称为高速緩存命中,意味 着数据返回快很多。高速緩存命中也减少对主存储器14访问的次数,提高 了其它访问(高速緩存未命中或从I/0代理程序访问)被服务的速率。由 两种类型处理器内核22、 24使用的数据可以从共享高速緩存18快速地访 问,而不需要DRAM或甚至高速緩存到高速緩存的传递。数据可以通过高速 緩存的读取和写入从一个处理器内核(上述的NPU内核22)传送到另一个 处理器内核(上述的CPU内核24),使该处理器内核能够以更快的速率进 行而不需要加载主存储器14。
速緩存完成。具有数据的处理器内核将数据写入到高速緩存。同一个处理 器内核通知另一个处理器内核数据已经准备好(例如,通过中断或标志更 新)。然后第二个处理器内核读取数据,直接从共享高速緩存18中取得数 据。在处理器内核之间传送的数据不需要写入到主存储器14中或者从主存 储器14中读出。因此,两种类型的处理器内核可以用这种方式以共享高速 緩存的数据速率传送数据,该速率通常比主存储器允许的速率高,并且不加载主存储器以避免DRAM的读取和写入, NPIT内拔9 9PPII内松74的蒼麥扭》
对具体的网络算法(例如,入侵检测、防火墙、安全插口层(SSL)加速
度)进行合作。共享高速緩存允许相关的工作(和状态)从一个内核迁移
到另一个而不使用DRAM。
虽然没有示出,将被理解的是, 一个或多个NPU内核22可以耦合到其 它资源,特别是,到外部网络设备的接口 (或多个接口)。该外部i某体设 备可以是能够发送和/或接收网络通信量数据的任何媒体接口 ,诸如组帧/ 々某体访问控制(MAC)设备,例如,用于连接到10/100BaseT以太网、千兆 位以太网、异步传输模式(ATM)或其它类型的网络,或者用于连接到开 关结构的接口。例如,在一种方案中, 一个网络设备可以是将数据发送到 处理器12或者从处理器12接收数据的以太网MAC设备(连接到以太网), 而第二个网络设备可以是支持与开关结构通信的开关结构接口 。其它NPU 资源可以包括,例如,控制状态寄存器(CSR),到其它外部存储器的接 口,诸如分組緩冲器和控制存储器,以及暂时存储器。
与传统的系统相反,其中专用处理器在单独的硅片上,并且位于通用 处理器(例如,主机)系统的I/0连接器上,多处理器12的内核集成在与 CPU内核24相同的片上,以及可能与高速緩存18相同的片上。这样的集成 允许异构内核能够更有机会有效地共享数据,正如它们位于公共高速緩存 之后一样。因此,在一个实施例中,如图中所说明的,处理器内核、高速 緩存以及互连位于单个芯片上。可替换地,处理器内核20、高速緩存18以 及互连26可以5f皮实现为多芯片包装中分离的芯片。在另一个可选的实施例 中,处理器内核20、高速緩存18以及互连26可以被实现为芯片与板子设计 的组合。
根据示例实施例,图1B-1C示出了更加详细的基于总线的高速緩存结 构。图1B中,每个NPU内核22包括NPU内核翻译逻辑(NPU-TL),而CPU内 核24包括CPU内核翻译逻辑(CPU-TL) 32。翻译逻辑30、 32将专用内核存 储器事务(诸如读和写)翻译成与内核无关的存储器事务,与内核无关的 存储器事务将在总线26上出现并且由共享高速緩存18所理解,而不用考虑 它们开始时的内核类型。图1C中,将大量或全部处理专用内核事务的特征的负担转移给共享高速緩存18。因此,共享高速緩存18包括共享高速緩存 翻译逻辑(SC-TL) 40,用于以适当的方式支持对来自不同处理器内核类 型的请求(并且,更特别地,命令集特征)的处理。共享高速緩存翻译逻 辑40是支持每个处理器内核类型所需的逻辑超集。共享高速缓存翻译逻辑 40可以进一步包括总线仲裁逻辑,用于优先化处理器内核类型的总线访 问。即使在后面的例子中(图1C中所示),可能存在一些问题需要与内核 本身更紧密得一致。例如,在CPU应用中,高速緩存典型地使用地址来确 定存储器类型,但是在NPU应用中,高速緩存可以通过NPU命令来指示有关 存储器的类型。同样,处理器内核可以请求用内核识别器支持编码事务。
如上所述,也可能是其它的内核到高速緩存的互连机制。例如,如图 2中所示,高速緩存18可以是多端口高速緩存,每个内核具有一个端口, 或者每种处理器内核类型具有单个端口。因此,在NPU22和CPU24内核的情
况下,如图所示,NPU内核22a、 22b..... 22k连接到第一端口类型的端口
50(如所示的"类型A"),而CPU内核24使用第二端口类型的端口52 (如 所示的"类型B")。虽然端口50示为共享端口 ,应当理解的是,每个NPU 内核能够通过单独的信道连接到各自的端口50。以这种方法,生成访问请 求的内核类型可以通过接收请求的端口而得知。在诸如这种多端口结构 中,每种类型的端口 (也就是说,支持不同处理器内核类型的端口 )可以 针对通信量模式和那些不同处理器内核类型的其它特性或特征(诸如命 令、大小、对准等等)来进行"调整"。例如,NPU内核是带宽敏感的, 而CPU内核是等待时间敏感的。对NPU请求由高速緩存返回的数据在返回时 被批处理,以便对于固定的开销优化吞吐量。该调整可以考虑由专用内核 类型执行的事务类型。某些类型的内核可以主要执行读取(例如,图形引 擎),而其它内核类型执行更加均衡混合的读取和写入。
图3示出了另一种互连方法。用这种方法,每个内核通过开关60(例 如,所示的纵横开关)连接到共享高速緩存18。可以用上述的与基于总线 的方法相关的任何一种方法执行翻译逻辑。
虽然没有示出,各个内核可以包括用于支持中断或标志的逻辑,用于 内核到内核的发信号。当一个内核(诸如NPU内核22)已经将工作(例如, 以分组数据、指针、状态等等的形式)传送到共享高速緩存18并且需要向
9第二内核发信号(诸如CPU内核24)时,可以使用内核间的发信号,其中 所述工作可以由第二内核操作。
如图4中所示,处理器12可以作为高速緩存中的单元参与利用一个或 多个其它处理器/高速緩存组合来一致访问主存储器。转向图4,系统70包 括现在通过桥74连接到主存储器72的处理器12。主存储器72由通用处理器 (GPP)76共享,该主存储器72也连接到桥74。 GPP76包括位于公共(或共 享)高速緩存80之后的一个或多个CPU内核78。高速緩存和桥结构以一种 方式操作,该方式确保所有的高速緩存保持相干。
桥74可以^皮实施为允许处理器12的内核以及GPP76的内核通过用它们 自己本地的存取协议,来引用主存储器以及其它处理器的共享高速緩存。 共享高速緩存机构使处理器12的异构处理器内核能够以它们本地的操作 模式访问共享高速緩存18,但不存在利用不同的协议访问共享高速緩存18 的其它处理器类型(诸如GPP76的CPU内核78)所产生的影响。在根据基于 IXA的NPU内核22和基于IA的CPU内核78的一个实施例中,NPU内核22可以通 过IXA协议(诸如命令推/拉总线协议)访问共享高速緩存18,并且将该共 享高速緩存视为另一个存储器资源,而一个CPU内核78通过桥74对共享高 速緩存18从外部的访问可以利用IA高速緩存访问以及相干机制而进行。如 上所述,处理器12的异构内核能够使用它们本地的(并且不同的)访问协 议来完全访问共享高速缓存18。可以采用高速緩存到高速緩存的传递将数 据从一个处理器的内核传送到另 一个处理器的内核。这可以用比可选方案 更少的等待时间和更高的带宽来完成,并且不加载主存储器,在可选方案 中由一个处理器写主存储器而由其它处理器读主存储器。
传输的例子如下所述。CPU内核78将读取请求发送到共享高速緩存80, 该CPU内核78检测高速緩存未命中,并且将读取请求传送到桥74。桥74将 读取请求发送到共享高速緩存18,其包含所请求数据的副本。共享高速緩 存18通过桥74将所请求的数据返回到共享高速缓存80。在一个替代方案 中,桥74可以将读取请求发送到共享高速緩存18和主存储器72,并且根据 来自共享高速緩存18的应答来确定使用哪个数据副本。
共享高速緩存机制可以支持不同的高速緩存策略和特征,诸如高速緩 存线对准、可緩存性以及高速緩存线锁定。高速緩存线对准将对多于一个高速緩存线有影响的存储器事务转换成多存储器访问,其每一个都适合单 个高速緩存线。可以根据指令类型(例如,指定非高速緩存事务的指令)
和/或根据存储器的类型,例如,存储器类型范围寄存器(MTTR)中规定 的类型,来确定存储器传输中所涉及的数据可緩存性。以这种特征,至少 一个异构处理器内核(例如NPU内核)能够生成对主存储器14的读取和写 入,以便在高速緩存未命中时旁路共享高速緩存16。高速緩存线锁定是指 由内核锁定个别高速緩存线。利用高速緩存线锁定的特征,至少一个异构 处理器内核可以锁定作为专用存储器的一部分共享高速緩存线(例如,单 个高速緩存线、多个高速緩存线,或者所有高速緩存线),以便可能扩展 已经对内核可用的局部资源(诸如暂时存储器),或者用于扩展的专用修 改。通过锁定一个、 一些或所有高速緩存线,内核可以利用锁定的存储器 空间作为扩展的局部存储器,而内核继续对共享高速緩存的任意剩余部分 进行相干操作。当只有一个异构处理器内核主动使用共享高速緩存时,该 处理器内核通过有效地使用芯片区域而收到整个共享高速緩存的所有权 益,从而最大化性能。可以使用与原子操作锁定相同的方式,例如使用高 速緩存线锁定状态域,来实施该高速緩存的锁定。
一个或多个这些(或者其它的)技术的应用至少部分由内核类型的选 择来驱动。例如, 一些专用处理器,诸如网络处理器,包括从存储器读取 和向存储器写入,程序员知道该存储器具有较差的时间和空间局部性。对 于由通用处理器访问的那些也同样如此。所以,为了提高这些访问的效率, 希望提供不会导致高速緩存活动的存储器读和写命令。换句话说,数据没 有位于高速緩存中,并且不清除高速緩存中已有的其它数据。程序员知道 不会命中高速緩存的访问可以绕过该高速緩存,从而增加其它访问的高速
緩存命中率。并且,不同的内核类型可以支持不同的数据取出/传送容量, 其中一些可能不是高速缓存线对准的。CPU内核(诸如IA内核)典型地生 成适合单个高速緩存线的请求,而NPU (诸如IXA网络处理器)有能力生成 任意大小的请求,该请求可能跨越多个高速緩存线。
这里描述的共享高速緩存结构允许在同一个高速緩存之后设置两种 不同类型的处理器。因为设计趋向于多内核处理器,该结构可供性能要求 较高的负载使用,比如图形、流媒体和网络的工作。在网络应用中,例如,可以使分组处理和通用处理相互靠近,用于最佳化网络处理器的分组处理 元件与通用处理器的控制和/或内容处理之间的高吞吐量通信。例如,如
图5中所示,分布式处理平台100包括通过底板106而互连的刀片(blade) 102a-102m和线卡104a-104n的集合,底板例如是开关结构(如图所示)。 开关结构例如可以遵守公共开关接口 (CSIX)或其它结构的技术,诸如超 级传送(HyperTranport ),无限波段(Infiniband),外围部件互连(PCI ), Packet-Over-SONET, RapidIO,和/或用于ATM的通用测试和操作PHY接口 (UTOPIA)。
线卡是线路结束和I/0处理出现的地方。它可以包括数据层面中的处 理(分组处理),以及控制层面处理,用于为数据层面中的执行对策略管 理进行操作。刀片102a-102m可以包括用于操作控制层面功能不分布到 线卡的控制刀片;用于执行系统管理功能的控制刀片,所述系统管理功能 诸如驱动器计数、路由表管理、全局表管理、网络地址翻译以及向控制刀 片发送消息;应用和服务刀片;以及内容处理。在网络基础结构中,内容 处理可以用于处理标准线卡应用能力之外密集的基于内容的处理,包括声 音处理、要求高性能的加密卸栽和入侵检测。
至少一个线卡是专用线卡,例如线卡104a,该线卡基于异构多内核系 统IO (或系统70)的结构而实施,以便将CPU内核的处理信息更加紧密地 耦合到NPU内核更专用的性能。线卡104a包括处理网络连接上通信的媒体 接口 (MI)108。每个媒体接口108连接到系统10 (或70)。在该实施例中, 一个系统用作入口处理器而其它系统用作出口处理器,虽然也可以使用单 个系统。每个系统IO (或70)通过开关结构接口 (SFI) IIO耦合到开关结 构106。可替换地或附加地,基于多处理器系统IO、 70的其它应用程序可 以通过分布式处理平台100而工作。根据刀片和线卡的配置,分布式处理 平台100可以实现开关设备(例如,开关或路由器)、服务器、数据中心 或其它类型的装备。
其它的实施例在下述权利要求的范围中。
权利要求
1、一种处理器,包括包含异构处理器内核的处理器内核;以及连接到所述处理器内核并由所述处理器内核共享的高速缓存;其中处理器内核以及高速缓存集成在单个集成片上。
2、 权利要求l的处理器,其中异构处理器内核包括专用处理器内核。
3、 权利要求2的处理器,其中专用处理器内核包括具有指令集的 网络处理器单元内核,该指令集不包括用于浮点运算的指令。
4 、权利要求2的处理器,其中专用处理器内核包括图形引擎内核。
5、 权利要求l的处理器,其中异构处理器内核包括中央处理单元 内核。
6、 权利要求l的处理器,其中异构处理器内核包括网络处理器单 元内核和中央处理单元内核。
7、 权利要求l的处理器,其中异构处理器内核包括中央处理单元 内核和图形引擎内核。
8、 权利要求l的处理器,其中高速緩存包括多端口高速緩存。
9、 权利要求8的处理器,其中处理器内核包括一个或多个第一类 型的处理器内核以及一个或多个第二类型的处理器内核,而多端口高 速緩存包括至少一个支持由一个或多个第一类型的处理器内核生成 的事务的端口,以及至少一个支持由一个或多个第二类型的处理器内 核生成的事务的端口。
10、 权利要求9的处理器,其中所述端口被配置为根据端口所支 持的各个处理器内核类型而操作。
11、 权利要求10的处理器,其中所述端口包括根据各个处理器内 核类型的命令类型、大小和对准中的一个或多个来配置的端口 。
12、 权利要求10的处理器,其中异构处理器内核包括不同类型的 处理器内核,并且多端口高速緩存为每个不同类型的处理器内核提供不同的端口类型。
13、 权利要求l的处理器,进一步包括将处理器内核耦合到高速 乡爰存的互连,所述互连包括互连总线。
14、 权利要求l的处理器,其中处理器内核包括翻译逻辑,用于 将每个处理器内核的专用事务翻译为与内核无关的事务。
15、 权利要求l的处理器,其中异构处理器内核包括不同类型的 处理器内核,并且高速緩存包括处理由不同类型的处理器内核所生成 的事务的逻辑。
16、 权利要求l的处理器,其中异构处理器内核使用允许不同最 大传送容量的命令,其中不同最大传送容量的其中之一允许跨越多个 高速緩存线的传送。
17、 权利要求l的处理器,其中至少一个异构处理器内核是可操 作的,以便为扩展的专用修改锁定一部分高速緩存。
18、 权利要求l的处理器,其中每个处理器内核能够使用共享高 速緩存,以便将数据传递到另一个处理器内核。
全文摘要
公开了一种提供异构处理器内核和共享高速缓存的多内核处理器,所述处理器包括包含异构处理器内核的处理器内核;以及连接到所述处理器内核并由所述处理器内核共享的高速缓存;其中处理器内核以及高速缓存集成在单个集成片上。
文档编号G06F15/78GK101470691SQ20081018636
公开日2009年7月1日 申请日期2005年11月18日 优先权日2004年11月19日
发明者F·哈迪, J·贝克, M·卡波特, M·罗森布卢特 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1