学习无忧
硬件频道 首页 | 入门 | 硬件 | 软件 | 设计 | 开发 | 网络 | 营销 | 社区 | 加油站
首页=>硬件=>CPU=>Intel系列 CPU 缓存的发展  
Intel系列 CPU 缓存的发展
www.51study.net  2004-9-19 00:17
【字体:  】【评论打印】 【关闭
  CPU频率的提高,必然要求系统中存储器的存取速度要提高,还要求其容量要增大。主存储器DRAM容量的提高还是比较快的,但是DRAM读取时间的提高却很慢。从而在速度上与CPU主频的提高产生了极不相配的情况,这样会影响整个系统的性能。 二十年来,CPU设计的问题之一就是解决高速CPU和低速DRAM之间的平衡或匹配问题,以求系统性能的整体提高。在它们之间加入高速缓冲存储器Cache,就是这个问题的解决方案之一。 高速缓冲存储器位于CPU和存储器之间,它的容量比存储器小但存取速度高,其内容为存储器的部分拷贝。 在程序运行过程中,当需要取指令或取数时,先检查Cache中是否有此内容,若有就从Cache中取出,若没有再从存储器取出。
  
  由于CPU主频很低(8088CPU的系统主频为4.77MHz),早期的PC机不需要Cache。在那时DRAM的存取时间(200ns)甚至快于CPU存取时间(840ns),因此无需Cache。但是在PC/AT机采用80286CPU后,系统主频增加到10MHz,1个基本总线周期为2拍,即200ns。此时必须用读取时间为100ns的DRAM。在采用25MHz的80386DX时,一个基本总线周期为2拍,即80ns,当时已没有速度相匹配的DRAM可用。于是就产生了2种解决方案:一种是在基本总线周期中插入等待,降低CPU的处理能力;另一种是采用内部和外部Cache,使用SRAM芯片以提高存储器的读取速度。
  
  后来到了80386时代主频虽然显著提高(80386初期主频为20MHz)尽管意识到CPU主频的增加与内存DRAM存取时间过慢的矛盾已愈加突出,但由于Intel公司考虑成本问题,80386内部没有L1 Cache,只有外部的Cache。直到80486时代,由于CPU的时钟频率继续增加时,外部Cache的SRAM芯片速度也要相应提高,这样会增加系统成本,为此在设计80486时采用了内部8kB的Cache。但是在设计上,80486芯片内由8kB的Cache来存放指令和数据。同时,80486也可以使用处理器外部的第二级Cache,用以改善系统性能并降低80486要求的总线带宽。
  
  到Peutium分离了L1 Cache和L2 Cache后来Intel推出的Pentium MMX将L1 Cache容量增加到32kB, L2 Cache容量增加到512kB。PentiumⅡ同样有2级Cache,L1为32kB,L2为512kB。PentiumⅢ具有32kB非锁定L1 Cache和512kB非锁定L2 Cache。L2可扩充到1~2MB, 从以上的历史事实中我们可以看出:Cache的出现是对CPU的高速度与主存的相对低速度的一种折衷,而这种折衷对提高计算机系统的性能起了至关重要的作用。下面就具体的Intel系列CPU的Cache组织做些说明。
  
  80486
  
  80486的内部Cache是一个4路组相联Cache,在主存储器中给定单元的数据能够存储在Cache内4个单元中的任何一个。这种4路相联方式是高命中率的全相联Cache和快速的直接映像Cache的一种折衷, 因而能进行快速查找并获得高的命中率。 80486的外部Cache可以工作在80486所有的操作模式:实地址模式、保护模式和X86模式。对Cache的操作是由系统自动进行的,对程序员透明。而在多处理器系统中,可能要求系统软件的干预。对于一般的计算机,在系统CMOS设置中均有Cache使用模式的设置。
  
  Peutium
  
  为提高计算机操作的并行度及简化设计,PeutiumCPU将存放指令的Cache和存放数据的Cache分开, 分别称为指令Cache(I Cache)和数据Cache(D Cache)。 这两个Cache可以同时被访问。这种双路高速缓存结构减少了争用Cache所造成的冲突,提高了处理器效能。 Pentium的Cache还采用了回写写入方式, 这同486的贯穿写入方式相比,可以增加Cache的命中率。此外,还采用了一种称为MESI高速缓存一致性协议,为确保多处理器环境下的数据一致性提供了保证。
  
  Pentium MMX
  
  Pentium MMX的片内L1数据和指令的Cache,每个增到16kB,4路相联。较大的独立内部Cache,减少平均内存存取时间, 同时提供对近期所用指令和数据的快速存取,性能因此得到提高。数据Cache支持采用回写方式更新内存。
  
  PentiumⅡ
  
  Pentium Ⅱ的L2 Cache已不在内嵌芯片上,而是与CPU通过专用64位高速缓存总线相联,与其它元器件共同被组装在同一基板上,即“单边接触盒”上。双独立总线结构就是:L2高速缓存总线和处理器至主内存(Processor-to-main-memory)的系统总线。 PentiumⅡ处理器可以同时使用这两条总线,与单一总线结构的处理器相比,该处理器可以进出两倍多的数据,可允许 PentiumⅡ处理器的L2高速缓存比Pentium处理器的L2高速缓存要快1倍。随着 PentiumⅡ处理器主频的提高,L2高速缓存的速度也将加快。最后,流水线型系统总线可允许同时并行传输,而不是单个顺序型传输。改进型的双重独立总线结构,可以产生超过与单总线结构三倍带宽的性能。另外,在PentiumⅡ中,采用了ECC技术,此技术应用到二级高速缓存中,大大提高了数据的完整性和可靠性。
  
  PentiumⅢ
  
  PentiumⅢ具有32kB非锁定L1 Cache和512kB非锁定L2 Cache。L2可扩充到1~2MB,具有更合理的内存管理,可以有效地对大于L2缓存的数据块进行处理,使CPU、Cache和主存存取更趋合理,提高了系统整体性能。在执行视频回放和访问大型数据库时,高效率的高速缓存管理使PⅢ避免了对L2 Cache的不必要的存取。由于消除了缓冲失败,多媒体和其它对时间敏感的操作性能更高了。对于可缓存的内容,PⅢ通过预先读取期望的数据到高速缓存里来提高速度,这一特色提高了高速缓存的命中率,减少了存取时间。
  
  Pentium 4
  
  Pentium 4配备了8KB的L1 Cache,使用的是低于1.42ns的高速缓存,拥有极低的寻道时间,能迅速地找到并且命中目标指令,大大的提高了CPU的工作效率。Pentium 4使用了动态跟踪缓存和数据缓存相结合的技术,更进一步的提升处理器的效率。这是一种先进的一级指令高速缓存,用来保存最多12KB个已经经过译码的指令。借助于执行跟踪高速缓存可以从主执行回路中消除译码器的译码延迟。 另外,Pentium 4的256KB二级高速缓存可以48GB/s的速度向处理器传输指令和数据,并且还将随着处理器主频的提高而提高。需要说明的是动态跟踪缓存与传统的L1、L2缓存的不同,它直接和执行单元和动态跟踪引擎相联,通过动态跟踪引擎可以很快的找到所执行的指令,并且将指令的顺序存储在追踪缓存里,减少了主执行循环的解码周期,确提高了处理器的运算效率,据称可以提高33%的运算效率。动态跟踪缓存的大小约为4KB。Pentium 4拥有着更先进256KB二级缓存,在处理器核心和L2 Cache之间有着更大的数据传输通道,配合1.4G的P4处理器,数据传输率可以达到惊人的44.8GB/sec,几乎是PIII 1G的3倍之多。
  
  与Cache相配合的缓存控制指令
  
  为进一步发挥Cache的作用,改进内存性能并使之与CPU发展同步来维护系统平衡,Intel公司增加了控制缓存的指令。Intel在PentiumⅢ处理器中新增加了70条3D及多媒体的SSE指令集。其中有很重要的一组指令是缓存控制指令。PentiumⅢ处理器的缓存控制指令,用于优化内存连续数据流。针对数据流的应用需要对以前的Cache运作方式进行了改进,减少了一些不必要的中间环节,节省了时间,增加了CPU数据总线的实际可用带宽,也提高了Cache的效率。 采用了PentiumⅢ处理器的内存流优化处理指令后,应用程序就能让数据搭乘“直达快车”,直接到达主存。当数据流直接到达主存时,处理器负责维护缓存的一致性。因为这种方式避免了为数据流留出空间清空缓存的当前内容,从而也提高了缓存的利用率。缓存控制指令也改进了进出处理器的数据据流,使处理器保持其高速率运作。通过这些指令(同时还需要一些专为其设计以使其发挥优势的软件),商业用户可以在操作系统和图形设备驱动程序中感受其性能优势。
  
  这里有两类缓存控制指令。一类是数据据预存取(Prefetch)指令,能够增加从主存到缓存的数据流;另一类是内存流优化处理(Memory Streaming)指令,能够增加从处理器到主存的数据流。这两类指令都赋予了应用开发人员对缓存内容更大控制能力,使他们能够控制缓存操作以满足其应用的需求。
  
  数据预存取指令允许应用识别出所需的信息,并预先将其从主存中取出存入缓存。这样一来,处理器可以更快地获取信息, 从而改进应用性能。为了进一步削减内存延迟,内存访问还可以与计算机周期保持流水操作。 内存流优化处理指令允许应用越过缓存直接访问主存。通常情况下,处理器写出的数据都将暂时存储在缓存中以备处理器稍后使用。如果处理器不再使用它,数据最终将被移至主存。然而,对于多媒体应用来说,通常不再需要使用这些数据。因此,这时将数据尽快地移到主存中则显得至关重要。PentiumⅢ芯片有数个Prefetch指令,不只是从L1 Cache中取得缓存数据,还可以从所有Cache中选择缓存数据,所以速度很快。
【字体:  】【评论打印】 【关闭
发表评论 共有2条评论   >> 查看详细评论
用户名: 密 码: 匿名评论
请发表评论时遵纪守法并注意语言文明!
 
用户名 评论内容
学习无忧网友 不太懂……
学习无忧网友 不太懂……
 
文章搜索
关键字:
精彩文章回顾
 CPU的里里外外
 CPU家谱(二)
 CPU家谱(一)
 频率与时序 论高端内存的
 你被谁欺骗了?PCI-E
 打假手记!寻觅Intel
 从硬盘知识谈硬盘的选购和
 从硬盘知识谈硬盘的选购和
 笔记本的CPU知识
 纯人文化的内存感性回忆录
 教你如何清洗主板
 防止静电对电脑造成的危害
 PC主板故障维修技巧
 你了解电脑主板吗?(主板
 主板的典型故障剖析
广而告之
关于我们 | 广告服务 | 诚邀加盟 | 友情链接 | 网站地图 | 联系方式
Copyright ©1998-2005, All Rights Reserved.
版权所有 学习无忧网 51study.net
广告或空间合作,请QQ:70046085联系我