Sandy-Bridge核外架构的进化.docx_第1页
Sandy-Bridge核外架构的进化.docx_第2页
Sandy-Bridge核外架构的进化.docx_第3页
Sandy-Bridge核外架构的进化.docx_第4页
Sandy-Bridge核外架构的进化.docx_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档Sandy Bridge核外架构的进化Nehalem 的遗憾英特尔Sandy Bridge 处理器分析测试之一计算机世界实验室 盘骏英特尔的“Tick-Tock” 战略已经为人熟知,根据这个策略,英特尔每年都会交替在处理器的制程和微架构上进行更新。上一年,英特尔将处理器工艺从45nm 提升到了32nm,今年,英特尔将处理器架构从Nehalem 升级到最新一代的Sandy Bridge,这个早期被叫做Gesher(希伯来文:桥梁)的处理器微架构担任着特别的桥梁角色。Bridge 和Gesher 都含有桥梁的意思。而Sandy Bridge 微架构将这个含义发挥到了极致,它是一个集NetBurst 微架构与Nehalem 微架构大成的产品,也是一个首先将CPU和GPU 进行真正融合的产品,更是一个首先将浮点运算密度从128 位引向256 位的X86 处理器产品,它确实像是一个桥梁,引导着芯片设计上和计算模式上的转变。Sandy Bridge 微架构为什么会是现在这个样子呢? Sandy Bridge 在上一代Nehalem 微架构的基础上进行改进,如果不了解Nehalem 微架构,就无法真正理解Sandy Bridge的进化。Nehalem 无疑是一个很成功的架构,QPI、IMC 带来的直联架构,再加上超线程的回归,其性能比起上一代提升了一到两倍以上,在企业级市场、主流乃至高端桌面市场以及移动市场的压倒性的占有率充分地说明了Nehalem 的强大。当然,Nehalem 微架构也不是完美的,以笔者的眼光看来,至少有几点Nehalem 微架构是有待改进的:指令拾取和预解码Nehalem 微架构在Pentium M微架构的基础上进行改进,整个流水线上几乎所有的组件都得到了增强,变化最少的就是在指令拾取和预解码阶段了。这个阶段的作用是将要执行的指令从L1 I-Cache 中提取到CPU 核心里面来,并随后对其进行预解码。预解码的主要作用就是在一块代码块中辨认每条x86 指令的长度。和Penryn 一样,Nehalem 以及其改良版Westmere 都仍然采用了16Bytes 的指令拾取宽度,而竞争对手早已经采用了32Bytes 的拾取宽度。由于x86 指令的长度可以从1到15Bytes,因此在很糟糕的情况下,某个时钟周期拾取到的代码块里只包含一个x86 指令,和后端动辄6个、4 个uop(微指令)的能力不相符合。Nehalem 微架构的指令拾取/预解码单元无法跟上后端处理的速度,因此在运行计算密集型的代码中,它很容易成为瓶颈。寄存器读停顿这个情形发生在uop 经过RAT(Register Alias Table,寄存器别名表)进行寄存器重命名并发往ROB(ReOrder Buffer,重排序缓冲)之后,在这个被称为ROB-read 的流水线阶段中,uop 们需要读取相关的操作数,也就是读取对应的寄存器,如果这些内容在ROB 当中不存在的话。Nehalem 微架构的RAT 每时钟周期可以输出4 个uop,每个uop可以具有最多两个输入寄存器。这样它最多需要同时读取8 个寄存器。不幸的是,Nehalem 微架构用于保存寄存器的RRF(Retirement Register File,回退寄存器文件)仅具有3 个读取端口,无法充分满足寄存器读取的需求,这很容易导致ROB-read 以及前方流水线的停顿。访存能力Nehalem 微架构具有6 个执行端口,其中的3 个运算端口具有充足的计算能力,基本不会是瓶颈。然而,访存能力却不一定足够。Nehalem 微架构只有一个Load 载入端口和一个Store 保存端口。由于Load 操作是如此常见,可以达到uop 总数的1/3,因此相对于3 个运算端口,这个Load 端口是个潜在的瓶颈,特别是对于内存密集型计算来说。最后, 早期的Nehalem 架构上还存在大页面TLB 数量较少的问题,TLB:Translation Lookaside Buffer,旁路转换缓冲,或称为页表缓冲,里面存放的是虚拟地址到物理地址的转换表。Nehalem 具有较多的标准4KB 页面TLB 项,但是更大容量页面的TLB 很少,因此,相对来说不适合大规模内存下的应用(如大型数据库和大型虚拟化环境,后来的Westmere 通过增加了对1GB 页面的支持缓解了这个问题)。除了Nehalem 微架构的一些问题之外,英特尔或者说CPU 本身还面临着挑战,来自GPU 的挑战。目前,主要的GPU 厂商包括NVIDIA和AMD ATI 都提供了超越CPU 的强劲浮点处理能力,很多超级计算机通过采用了附加GPU 的方式获得了很强的计算指标。CPU 能力的增强导致了如硬件解压卡、独立声卡被融合进CPU,而GPU 强大的处理能力则被认为是CPU 的有力挑战者。如果运算能力足够强大,CPU 被GPU 取代也不无可能,英特尔怎么应对这个局面? Sandy Bridge 进行了什么样的改进、能不能解决这些问题呢?原文发布于计算机世界2011年第4期Sandy Bridge微架构的革新英特尔Sandy Bridge 处理器分析测试之二计算机世界实验室 盘骏上文中笔者介绍了Nehalem微架构中存在的一些问题, 到了Sandy Bridge 这一代,这些问题还存在吗? 下面我们就来详细解析Sandy Bridge 的微架构,并介绍相对于Nehalem 微架构的改进。前端:分支预测和微指令缓存分支预测、指令拾取、预解码以及解码这几个部件组成了处理器微架构的Front-End 前端部分。在Nehalem 微架构中,指令拾取和预解码存在问题,在一些情况下会导致指令吞吐量过低,因此其前端是整个流水线当中最容易成为瓶颈的阶段。Sandy Bridge没有直接在指令拾取和预解码阶段进行改动,而是对整个前端部分进行了重新设计,通过革新的分支预测单元以及在解码阶段加入一个新的部件来增强整个前端部分的输出能力,同样达到了消除瓶颈的目的。处理器的前端从L1 I-Cache拾取指令,在指令拾取单元没有什么变化的情况下,Sandy Bridge 的L1 I-Cache 也有了些改进,提升了大型应用程序下的性能。首先,它从Nehalem 的4 路组关联提升到了8 路组关联,从而降低了CacheLine 碰撞的几率, 降低了页面冲突; 其次,L1 I-Cache 对应的L1 ITLB 也略微扩大,2M/4MB 对应的TLB 表项从Nehalem 的7+7 提升到了8+8(对每一个硬件线程提供8 个表项),可以覆盖更大的代码地址空间。分支预测是一个既能提升性能又能降低能耗的做法,成功的分支预测可以避免无谓分支代码执行的性能、功耗损失。Sandy Bridge的分支预测单元在Nehalem的基础上进行了完全的重造。通过对分支表结构的压缩定义,BTB(Branch Target Buffer,分支目标缓存)在同样容量下将保存的分支目标翻番,同样,GBH(Global Branch History,全局分支历史表)也能保存更多、更深的项目,总的来说,分支预测准确率将会进一步提升。前端变化中作用更明显的解码器旁边加入的uop cache(微指令缓存),这个部件和NetBurst 微架构的Trace Cache 作用非常相似,不过却是经过了更多的调整和优化, 并且更加简洁。uop cache 保存了已经解码的微指令,并且更加接近处理器的后端,因此也可以被称为L0 I-Cache。根据英特尔的说法,通常的应用当中其命中率可以达到80%, 在命中这个缓存之后,包括复杂的解码器在内的其它前端部件可以关闭以节约能源,而由uop cache 本身输出指令。这个设计可以很明显地降指令拾取低延迟乃至分支惩罚,让前端可以在更多的时间内处于持续输出4 uop/cycle 的状态,这很大程度消除了Nehalem 前端的瓶颈。后端:物理寄存器文件架构Front-End 前端紧接着的是Back-End 后端部分,Sandy Bridge在后端部分也有了很大的变化,其中一个变化来自于寄存器文件的变迁。在之前,我们介绍了Nehalem微架构采用的RRF(Retirement Register File,回退寄存器文件)存在的会导致寄存器读停顿的问题,Sandy Bridge 通过采用了PRF(Physical Register File,物理寄存器文件)结构来消除了这个问题,和前面的uop cache 一样,PRF 的设计也是从NetBurst 架构借鉴而来。几乎所有的高性能处理器都采用了PRF 的方式。在Nehalem 微架构当中,ROB(ReOrder Buffer, 重排序缓存)顺序保存了所有uop 及其所有的重命名寄存器的数据和状态,架构寄存器则保存在RRF 当中。在SandyBridge 的PRF 上,ROB 不再保存重命名寄存器的数据,取而代之的是保存多个指向PRF 的指针,架构寄存器包含在RRF 当中,通过状态位来标识。物理寄存器文件有什么好处?首先,它消除了旧有的寄存器读停顿造成的瓶颈,现在它不再受限于RRF 三个读取端口的限制,所有不同寄存器的内容都可以同时进行读取, 不会再引起流水线停顿。其次,物理寄存器文件消除了寄存器间数据的复制和移动,而只需要更改指针的指向即可,这节约了大量的数据移动能耗, 特别是在Sandy Bridge 的AVX 指令集支持更多的操作数以及支持的最大寄存器宽度翻倍的情况下。最后,ROB 从保存数据变成保存指针导致了结构上的简化, 从而增大了ROB 的容量,进一步提升了处理器乱序执行的性能。Sandy Bridge 的ROB 从Nehalem 的128 项提升到了168项,PRF 物理寄存器文件包含了两个部分:每项64bit 、一共160项目的整数寄存器文件和每项256bit 、一共144 项目的浮点寄存器文件,并且PRF 是每个硬件线程各自一份。在Sandy Bridge架构当中,还增加了一个硬件监测机构,在使用SAVE/RESTORE指令进行线程切换或者虚拟机切换的时候,可以仅仅恢复/ 保存线程所使用到的寄存器,而不是恢复/ 保存所有的架构寄存器,从而节约了上下文切换的时间,这可以提升处理器运行大量线程和多个虚拟机的能力。后端:存取单元微指令经过重命名阶段和读取PRF 数据之后进入Reservation Station 保留站, 通过统一的调度器安排发射到6 个不同的执行单元之中。Sandy Bridge 的Reservation Station 容量从Nehalem 的36 项目提升到了54 项目,增加了50%,乱序执行窗口的扩大可以提升处理器的乱序执行能力。Sandy Bridge 的执行单元也有了很大的改进。执行单元包括计算单元以及存取单元,这两个都变化甚大,不过这里我们先介绍存取单元的变化,因为之前介绍过Nehalem微架构在这方面是个潜在的瓶颈。计算单元的改进留到下一篇文章中再介绍。Sandy Bridge 架构和Nehalem一样具有3 个存取端口,Store 端口维持不变而Load 端口的数量提升到了两个,并且这两个Load 端口的AGU 地址生成单元均能生成Store 操作使用的地址。Load 端口翻番在某种程度上是为了适应Sandy Bridge 处理器新增的AVX指令集带来的256 位计算能力,因为每个Load 端口的宽度是128 位。然而,现有的各种应用也可以立即从中获益, 因为Nehalem 微架构的Load 端口仅占所有执行单口的1/6, 而Load 操作通常可以占据uop 当中的约1/3。Sandy Bridge的双Load 端口可以每个时钟周期进行两个128 位Load 操作,消除了上一代的瓶颈,工作起来也更为灵活。和Load/Store 单元连接的MOB(Memory Ordering Buffer, 内存排序缓存) 也得到了增强,MOB和前面的ROB 一起属于将乱序执行和顺序回退连接起来的重要部件。在MOB 当中,Load 缓存从Nehalem 的48 项目提升到了64 项目, 提升幅度为33%,Store 缓存从32 项目略微提升到了36 项目。Sandy Bridge 的MOB 一共可以容纳100 个访存操作,这些数据操作均为256 位宽度。和Load 能力翻倍配对的是L1 D-Cache 的增强,它的带宽提升到了48 字节, 也就是384 位, 比以往的32 字节提升了50%,以同时支持两个128 位的Load 和一个128位的Store 操作。搭配的L1 DTLB据说也有所改进, 增加了4 个支持1GB 页面的项目,以进一部消除Nehalem 微架构在面对海量内存应用下的性能问题,这4 个大页面DTLB 项目应该是全关联的,其它的L1 DTLB 则应该维持4 路关联不变。在L2 Cache 方面,Sandy Bridge 相对Nehalem 没有太大的变化。可以看到, 通过将Nehalem微架构和NetBurst 微架构进行融合, 引入NetBurst 上的微指令缓存和物理寄存器文件架构,并改进Load/Store 单元和L1 D-Cache带宽设计,Sandy Bridge 消除了上一代Nehalem 微架构存在的比较明显的三个瓶颈,还顺带获得了更多的附加增益。Sandy Bridge在整个流水线的方方面面都得到了改进,然而还有一个很重要的部分没有被提及: 运算单元, 这个部分的变化和Sandy Bridge 引入的AVX 指令集紧密联系AVX高级矢量扩展指令集英特尔Sandy Bridge 处理器分析测试之三计算机世界实验室 盘骏在上一篇连载中,笔者介绍了Sandy Bridge微架构中对性能有很大影响的几处改进,然而最重要的执行单元的变化没有涉及到,这部分的变化还跟Sandy Bridge新加入的AVX指令集相关。AVX(Advanced Vector Extensions,高级矢量扩展)是X86上重要的指令集改进,不仅仅在于其对性能的明显提升,还在于其对现有X86指令集的多种革新。强大的性能:256位向量计算向量就是多个标量的组合,通常意味着SIMD(单指令多数据),就是一个指令同时对多个数据进行处理,达到很大的吞吐量。早期的超级计算机大多都是向量机,而通过随着图形图像、视频、音频等多媒体的流行,PC处理器也开始向量化。X86上最早出现的是1996年的MMX(多媒体扩展)指令集,乃至1999年的SSE(流式SIMD扩展)指令集,分别是64位向量和128位向量,比超级计算机用的要短得多,所以叫做“短向量”。Sandy Bridge的AVX将向量化宽度扩展到了256位,原有的16个128位XMM寄存器扩充为256位的YMM寄存器,可以同时处理8个单精度浮点数和4个双精度浮点数,在理想情况下,Sandy Bridge的浮点吞吐能力可以达到前代的两倍。目前AVX的256位向量仅支持浮点,不像128位的SSE那样,也能支持整数运算。Sandy Bridge微架构的所有执行单元都经过了修改以执行256位AVX指令,特别是对于3个运算端口而言。Sandy Bridge微架构并没有直接将所有浮点执行单元扩充到256位宽度,而是采用了一种较为节约晶体管乃至能耗的方法:重用128位的SIMD整数和SIMD浮点路径。从Nehalem开始的微架构包含了3个运算端口:0、1和5,每个运算端口分为三个功能区域:ALU整数、SIMD INT、SIMD FP,分别执行整数和逻辑运算、SIMD整数和SIMD浮点运算,操作的是32/64位GPR通用寄存器和128位的XMM寄存器。在每一个时钟周期,每个运算端口可以分发一个uop,这个uop可以是三种运算中任意的一种。不同的运算区域可以同时运作,例如在浮点运算进行长耗时计算的时候,仍然使用ALU单元进行通常的整数和逻辑运算。基于执行单元的流水化设计,尽管一些运算耗时比较长,然而每个时钟周期都可以流入新的指令,因此吞吐量也能够得到保证。例外的是除法单元,线路复杂、长耗时并且目前仍未能全流水化。不同运算区域之间的数据传递需要12个时钟周期。除了AVX带来的性能增强之外,Sandy Bridge还继续增强了AES指令集的性能,提升其吞吐量,此外,SHLD(移位)指令、ADC(进位加)指令和Multiply(64位乘数128位积)运算的性能也都得到了提升,SHLD指令性能提升增强了SHA-1计算能力,ADC吞吐量翻倍提升了大数值运算能力,而最后者提升了现有RSA程序25%的性能。精简X86指令集除了明显提升浮点运算性能之外,AVX指令集还是对X86指令集的一个精简。我们知道由于是不定长的CISC指令集,X86指令集可以很容易地进行扩展,每一代处理器都像不要钱似的增加扩展指令集,然而目前的这种通过增加各种Prefix前缀来扩展指令集的方式已经达到了其极限,并且这种方式导致的指令集复杂化和长度增加,导致了执行文件的臃肿和解码器单元的复杂化和低效化。如笔者说过的那样,解码器一直是X86处理器的一个瓶颈所在。AVX指令集带来了新的操作码编码方式,这种编码方式叫做VEX(Vector Extension),其动机就是压缩各式各样的Prefix前缀,集中到一个比较固定的字段中,缩短指令长度,降低无谓的代码冗余,并且也降低了对解码器的压力,实乃一举多得。VEX编码方式使用了两种VEX Prefix,除了一个字节的字头之外,分别具有1到2个字节的Payload(负载),在这个Payload里面就包括了所有的Prefix的内容,达到了精简指令集的目的。这两种VEX前缀分别是以C5h开头的2字节Prefix和C4h开头的3字节Prefix,前者主要用于包含传统的128位SIMD整数、SIMD浮点运算,后者则主要用来进行新的256位AVX运算以及未来可使用的更多指令集扩展。VEX前缀包含了X86-64指令使用的REX前缀以及原SSE指令使用的前缀,还融合了普通操作码带有的Escape字段,从某种意义上来说,VEX让CISC的X86指令集往RISC精简指令集靠近了一点,当然,CISC易于扩充、支持复杂灵活的寻址方式的特性依然无损。如图所示,VEX前缀的RXBW字段包含了原REX前缀的所有功能,pp字段包含了原SIMD指令的所有前缀,在三字节C4h格式的VEX前缀中,mmmmm字段包含了原Escape字段并提供了极大的扩展空间。X86指令总长度不大于15个字节的规定仍然维持不变。强化X86指令集基于历史上X86处理器缺乏存储单元的原因,X86指令集属于双操作数的破坏性指令集,例如,指令add ax, bx包含了ax和bx两个操作数,作用是将寄存器ax和bx的数值相加,并保存到寄存器ax当中去,计算结束后,源操作数ax的内容就被计算结果“摧毁”了。如果源操作数的内容在其他运算中还需要用到的话,那么你通常需要保存到堆栈中去,或者保存到主内存中去。实际上X86指令集采用的就是时间换空间的方法。在传统的仅具有8个通用寄存器的X86处理器上,这种编码方式的使用实属没有办法,同时期具有更多通用寄存器的RISC处理器都采用的是多操作数的非破坏性句法。在应用了Register Renaming寄存器重命名技术之后,X86处理器事实上也具有了很多的寄存器可供使用,如Sandy Bridge内部每个线程具有160个64位整数寄存器,和144个256位浮点寄存器,因此Intel就动起了新的念头,SandyBridge带来的AVX指令集提供了新的34操作数的非破坏性句法,在某种程度上,这弥补了X86指令集的体系缺陷。例如,要实现xmm10 = xmm9 + xmm1,传统X86处理器需要两条指令:movapps xmm10, xmm9addpd xmm10, xmm1在应用AVX指令集新的3操作数格式之后,只需要一条指令就能完成这个功能:vaddpd xmm10, xmm9, xmm1而使用4操作数指令的话,下面三条指令可以直接简化为一条:movaps xmm0, xmm4movaps xmm1, xmm2blendvps xmm1, m128变为:vblendvps xmm1, xmm2, m128, xmm4显然,新的指令操作数明显降低了指令的数量,处理器吞吐量得到了提升,代码运行更快速,同时能耗也降低了。除了对指令集体系的增强之外,AVX指令集还强化了访存不对齐时的性能。传统的指令集当进行不对齐内存访问(unaligned memoryaccess)的时候会需要较长的时钟周期,甚至会有惩罚性延时,极大地降低速度。而在AVX指令集中,各种运算和访存指令现在降低了访存不对齐的延迟损失,在某些情况下甚至能达到和对齐访问一致的性能,显得更加灵活。X86指令集:不断进化CISC指令集的思想就是用复杂的硬件来完成尽可能多的工作,RISC则是使用尽量少的指令并通过复杂的程序来完成同样的功能。每一代的X86指令集,都会对不同的应用增加新的指令集,这些指令集能高效地处理对应的应用,例如,上一代Westmere处理器的AES-NI就对加密运算具有非凡的加速比。同样,在AVX指令中也增加了不少浮点运算指令,提升了多种运算的性能。Sandy Bridge新加入的AVX指令集让X86从128位提升到256位向量运算,大幅度提升了性能,此外,AVX精简了X86指令集的设计,并弥补了破坏性句法的体系缺陷,可以说是一个非常重要的改进。需要注意的是,AVX指令集带来了新的处理器状态和更宽的寄存器宽度,因此需要操作系统的支持才能正常运作,如,Linux Kernel 2.6.30以及Windows 7/Server 2008 R2 SP1版本才能支持。关于Sandy Bridge的微架构就介绍到这里,下回笔者将介绍Sandy Bridge的架构,这部分的变化也非常大英特尔Sandy Bridge 处理器分析测试之四计算机世界实验室 盘骏和微架构方面一样,Sandy Bridge的架构方面也具有了很大的变化。这个变化来自两个方面的考虑:性能和可扩展性,其中后者包括了要面对越来越多的处理器核心的问题,还有要面对来自GPU挑战的问题。针对GPU的压力,英特尔一方面采取了更宽的256位AVX向量运算提升CPU处理能力,一方面采取了在CPU内直接融合GPU的方法。关于GPU的部分可以写出多个长篇,因此这里主要谈及Sandy Bridge其它方面的架构变化。这个变化就是Sandy Bridge采用了新的Ring Bus环形总线来连接各个CPU核心、LLC缓存(就是L3缓存)、融合进去的GPU以及System Agent(就是系统北桥)部分。自从Nehalem开始使用融合核心策略后,不同产品线的处理器都基于同一种核心,只是具有不同的核外架构(称为Uncore架构),这个核外架构在不同的产品线上必须进行不同的设计,对应地芯片组也要进行变化。在核心数量比较少的时候,这很容易办到,然而在高端服务器上,核心数量很高,这种方式就难以具有匹配的性能,并且开始变得难以实现。实际上,高端8核心的Nehalem-EX处理器就采取了和桌面/移动端完全不同的Uncore架构:使用了一个环形总线,而在后来加入GPU的Westmere,新加入的GPU迫使内存控制器和CPU核心分立,并和GPU一起集成到一个相对落后的45nm制程的芯片上,影响到了性能和功耗。现在,这个环形总线技术被应用到了Sandy Bridge全线产品线上来。革命性的环形总线通常的处理器使用Crossbar交叉开关来连接多个组件,在部件较少时性能表现良好,然而其复杂度随着连接件数量的提升呈几何级数增长。采用环形总线的话,则是呈线性增长,简单并且布线也更方便,可以很容易地扩展到更大数量的连接部件,并且可以很方便地加入如GPU等独立构造。在Sandy Bridge上,这个总线实际上是直接放置在LLC缓存上的,比交叉开关占地面积更小,布线更加方便。这个环形总线其实由四条独立的环组成,分别是数据环(Data Ring)、请求环(Request Ring)、响应环(Acknowledge Ring)、侦听环(Snoop Ring)。其中用来传输数据的数据环的宽度是32B(256bit),刚好是L3缓存线的一半。和Nehalem-EX的一样,这个数据环应该还是双向的,这样通过自动选择最近的线路,对目标的存取延迟可以降低到平均只有一个环的一半。Sandy Bridge环形总线上分布着多个Ring Stop,叫做“站台”,这个“站台”和Nehalem-EX的并不太一样,其实仔细看的话,Sandy Bridge的环形总线和Nehalem-EX的也不太一样。Nehalem-EX的环显得更大一些,每个CPU/LLC块上只有一个连接点,而Sandy Bridge的显得很纤细,每个CPU/LLC块上具有两个连接点,这种差异的具体细节尚不清楚。环形总线是全流水线化的,并且运行在核心频率/电压上,因此其带宽会根据不同的型号/工作状态而变化,并且可以根据加入站台的数量而扩展。当然,站台数量的增加会增长总线的宽度,并会对应地增加延迟,每个站台之间的传输时间是一个时钟周期。理论上,3.4GHz的Sandy Bridge每个站台可以具有108.8GB/s的带宽,4个核心就具有435.2GB/s的理论带宽,由于数据经过不同的站台的时候,该站台需要等待而无法传输数据,因此实际的带宽无法达到理论值。LLC:L3缓存的变化环最主要的作用是将CPU核心与L3缓存联结起来,L3缓存是处理器的最低一级缓存,因此也叫Last Layer Cache(LLC)。每一个CPU/LLC块上具有一个称为Interface Block(接口块)的部件来负责和Ring通信,每个接口块上包含了一个独立的缓存控制器,负责回应缓存请求、维持一致性和排序,并在L3缓存未命中、侦听以及遇到不可缓存请求时和System Agent通信。实际上,Sandy Bridge实现了一个分区化的分布式仲裁缓存架构。除去使用环形总线的EX系列,Nehalem/Westmere的L3是一个单块的大缓存,具有统一的32B(256bit)带宽,到了环形总线架构之后,就不再是这样了。和Nehalem-EX/Westmere-EX一样,Sandy Bridge将LLC分成多

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论