用户
 找回密码
 立即注册
搜索

《电脑四大核心硬件知识详解》之《CPU 知识详解》二 级 缓 存 容 量

[复制链接]

4515

主题

3万

帖子

17万

积分

版主

Rank: 7Rank: 7Rank: 7

积分
176769
QQ
发表于 2009-7-9 10:01:29
13、二级缓存容量

  CPU 缓存(Cache Memoney)是位于 CPU 与内存之间的临时存储器。它的容量比内存小,但交换速度更快。缓存中的数据,只是内存数据中的一小部分,但这一小部分是短时间内 CPU 即将访问的,当 CPU 调用大量数据时,就可避开内存直接从缓存中调用,从而加快读取速度。由此可见,在 CPU 中加入缓存,是一种高效的解决方案。这样,整个内存储器(缓存+内存)就变成了既有缓存的高速度,又有内存的大容量的存储系统了。缓存对 CPU 的性能影响很大。主要是因为 CPU 的数据交换顺序和 CPU 与缓存间的带宽引起的。

  缓存的工作原理,是当 CPU 要读取一个数据时,首先从缓存中查找,如果找到,就立即读取并送给 CPU 处理;如果没有找到,就用相对慢的速度从内存中读取并送给 CPU 处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。

  正是这样的读取机制,使 CPU 读取缓存的命中率非常高(大多数 CPU 可达 90% 左右),也就是说,CPU 下一次要读取的数据 90% 都在缓存中,只有大约 10% 需要从内存读取。这就大大节省了 CPU 直接读取内存的时间,也使 CPU 读取数据时基本无需等待。总的来说,CPU 读取数据的顺序,是先缓存,后内存。

  最早先的 CPU 缓存是个整体的,而且容量很低,英特尔公司从 Pentium 时代开始,把缓存进行了分类。当时集成在 CPU 内核中的缓存已不足以满足 CPU 的需求,而制造工艺上的限制,又不能大幅度提高缓存的容量。因此出现了集成在与 CPU 同一块电路板上或主板上的缓存,此时,就把 CPU 内核集成的缓存,称为一级缓存。而外部的称为二级缓存。一级缓存中,还分数据缓存(Data Cache,D-Cache)和指令缓存(Instruction Cache,I-Cache)。二者分别用来存放数据和执行这些数据的指令,而且两者可以同时被 CPU 访问,减少了争用 Cache 所造成的冲突,提高了处理器的效能。英特尔公司在推出 Pentium 4 处理器时,还新增了一种一级追踪缓存,容量为 12KB。

  随着 CPU 制造工艺的发展,二级缓存也能轻易的集成在 CPU 内核中,容量也在逐年提升。现在再用集成在 CPU 内部与否来定义一、二级缓存,已不确切。而且随着二级缓存被集成入 CPU 内核中,以往二级缓存与 CPU 大差距分频的情况也被改变,此时其以相同于主频的速度工作,可以为 CPU 提供更高的传输速度。

  二级缓存是 CPU 性能表现的关键之一。在 CPU 核心不变的情况下,增加二级缓存容量,能使性能大幅度提高。而同一核心的 CPU 高低端之分,往往也是在二级缓存上有差异。由此可见,二级缓存对于 CPU 的重要性。

  CPU 在缓存中找到有用的数据被称为“命中”,当缓存中没有 CPU 所需的数据时(这时称为未命中),CPU 才访问内存。从理论上讲,在一颗拥有二级缓存的 CPU 中,读取一级缓存的命中率为 80%。也就是说,CPU 一级缓存中找到的有用数据,占数据总量的 80%,剩下的 20% 从二级缓存中读取。由于不能准确预测将要执行的数据,读取二级缓存的命中率也在 80% 左右(从二级缓存读到有用的数据占总数据的 16%)。那么,还有的数据就不得不从内存调用,但这已经是一个相当小的比例了。目前的较高端的 CPU 中,还会带有三级缓存,它是为读取二级缓存后未命中的数据设计的—种缓存,在拥有三级缓存的 CPU 中,只有约 5% 的数据需要从内存中调用,这进一步提高了 CPU 的效率。

  为了保证 CPU 访问时有较高的命中率,缓存中的内容应该按一定的算法替换。一种较常用的算法,是“最近最少使用算法”(LRU 算法),它是将最近一段时间内最少被访问过的行淘汰出局。因此,需要为每行设置一个计数器,LRU 算法是把命中行的计数器清零,其他各行计数器加 1。当需要替换时,淘汰行计数器计数值最大的数据行出局。这是一种高效、科学的算法。其计数器清零过程,可以把一些频繁调用后再不需要的数据淘汰出缓存,提高缓存的利用率。

  CPU 产品中,一级缓存的容量基本在 4KB 到 64KB 之间,二级缓存的容量则分为 128KB、256KB、512KB、1MB、2MB 等。一级缓存容量,各产品之间相差不大,而二级缓存容量,则是提高 CPU 性能的关键。二级缓存容量的提升,是由 CPU 制造工艺所决定的,容量增大必然导致 CPU 内部晶体管数的增加,要在有限的 CPU 面积上集成更大的缓存,对制造工艺的要求也就越高。
使用道具 举报 回复
发表于 2009-7-9 10:01:41
14、核心电压

  CPU 的工作电压(Supply Voltage),即 CPU 正常工作所需的电压。任何电器在工作的时候都需要电,自然也有对应额定电压,CPU 也不例外。目前 CPU 的工作电压,有一个非常明显的下降趋势,较低的工作电压,主要有三个优点:

  一是采用低电压的 CPU 的芯片,总功耗降低了。功耗降低,系统的运行成本就相应降低,这对于便携式和移动系统来说非常重要,使其现有的电池可以工作更长时间,从而使电池的使用寿命大大延长;

  二是功耗降低,致使发热量减少,运行温度不过高的 CPU,可以与系统更好的配合;

  三是降低电压,也是 CPU 主频提高的重要因素之一。

  CPU 的工作电压,分为两个方面,CPU 的核心电压与 I/O 电压。核心电压,即驱动 CPU 核心芯片的电压。I/O 电压,则指驱动 I/O 电路的电压。通常 CPU 的核心电压,小于或等于 I/O 电压。

  早期 CPU(286~486 时代)的核心电压与I/O一致,通常为 5V,由于当时的制造工艺相对落后,以致 CPU 的发热量过大,导致其寿命缩短。不过那时的 CPU 集成度很低,而目前的 CPU 集成度相当高,因此显得现在的 CPU 发热量更大。随着 CPU 的制造工艺提高,近年来,各种 CPU 的工作电压有逐步下降的趋势,目前台式机用 CPU 的核心电压,通常为 2V 以内,笔记本专用 CPU 的工作电压,相对更低,从而达到大幅减少功耗的目的,以延长电池的使用寿命,并降低了 CPU 发热量。而且现在的 CPU 会通过特殊的电压 ID(VID)引脚来指示主板中嵌入的电压调节器,自动设置正确的电压级别。

  许多面向新款 CPU 的主板,都会提供特殊的跳线或者软件设置。通过这些跳线或软件,可以根据具体需要手动调节 CPU 的工作电压。很多实验表明,在超频的时候,适度提高核心电压,可以加强 CPU 内部信号,对 CPU 性能的提升,会有很大帮助。但这样也会提高 CPU 的功耗,影响其寿命及发热量,建议一般用户不要进行此方面的操作。
使用道具 举报 回复 支持 反对
发表于 2009-7-9 10:02:00
2# sunweipeng 15、超线程技术

  CPU 生产商为了提高 CPU 的性能,通常做法是提高 CPU 的时钟频率和增加缓存容量。不过,目前 CPU 的频率越来越快,如果再通过提升 CPU 频率和增加缓存的方法来提高性能,往往会受到制造工艺上的限制以及成本过高的制约。

  尽管提高 CPU 的时钟频率和增加缓存容量后,的确可以改善性能,但这样的 CPU 性能提高,在技术上存在较大的难度。实际上在应用中,基于很多原因,CPU 的执行单元都没有被充分使用。如果 CPU 不能正常读取数据(总线/内存的瓶颈),其执行单元利用率会明显下降。另外,就是目前大多数执行线程缺乏 ILP(Instruction-Level Parallelism,多种指令同时执行)支持。这些都造成了目前 CPU 的性能没有得到全部的发挥。因此,Intel 则采用另一个思路去提高 CPU 的性能,让 CPU 可以同时执行多重线程,就能让 CPU 发挥更大效率,即所谓“超线程(Hyper-Threading,简称 HT)”技术。超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和软件,减少了 CPU 的闲置时间,提高了 CPU 的运行效率。

  采用超线程,就是在同一时间里,应用程序可以使用芯片的不同部分。虽然单线程芯片每秒钟能够处理成千上万条指令,但是在任一时刻,只能够对一条指令进行操作。而超线程技术,可以使芯片同时进行多线程处理,使芯片性能得到提升。

  超线程技术是在一颗 CPU 同时执行多个程序而共同分享一颗 CPU 内的资源,理论上要像两颗 CPU 一样,在同一时间执行两个线程,P4 处理器需要多加入一个 Logical CPU Pointer(逻辑处理单元)。因此,新一代的 P4 HT 的 die 的面积比以往的 P4 增大了 5%。而其余部分,如 ALU(整数运算单元)、FPU(浮点运算单元)、L2 Cache(二级缓存)则保持不变,这些部分是被分享的。

  虽然采用超线程技术能同时执行两个线程,但它并不象两个真正的 CPU 那样,每个 CPU 都具有独立的资源。当两个线程都同时需要某一个资源时,其中一个要暂时停止,并让出资源,直到这些资源闲置后才能继续。因此,超线程的性能并不等于两颗 CPU 的性能。

  英特尔 P4 超线程有两个运行模式,Single Task Mode(单任务模式)及 Multi Task Mode(多任务模式)。当程序不支持 Multi-Processing(多处理器作业)时,系统会停止其中一个逻辑 CPU 的运行,把资源集中于单个逻辑 CPU 中,让单线程程序不会因其中一个逻辑 CPU 闲置而减低性能。但由于被停止运行的逻辑 CPU 还是会等待工作,占用一定的资源,因此 Hyper-Threading CPU 运行 Single Task Mode 程序模式时,有可能达不到不带超线程功能的 CPU 性能,但性能差距不会太大。也就是说,当运行单线程应用软件时,超线程技术甚至会降低系统性能,尤其是在多线程操作系统运行单线程软件时,容易出现此问题。

  需要注意的是,含有超线程技术的 CPU,需要芯片组及软件的支持,才能比较理想的发挥该项技术的优势。

  目前,支持超线程技术的芯片组包括:

  英特尔 i845GE、PE 及矽统 iSR658 RDRAM、SiS645DX、SiS651 可直接支持超线程;
  英特尔 i845E、i850E 通过升级 BIOS 后可支持;
  威盛 P4X400、P4X400A 可支持,但未获得正式授权。

  目前,支持超线程技术的操作系统有:

  Microsoft Windows XP
  Microsoft Windows 2003
  Linux kernel 2.4.x 以后的版本,也支持超线程技术。
使用道具 举报 回复 支持 反对
发表于 2009-7-9 10:02:18
16、3D Now

  由 AMD 公司提出的 3DNow! 指令集,应该说出现在 SSE 指令集之前,并被 AMD 广泛应用于其 K6-2、K6-3 以及 Athlon(K7)处理器上。3DNow! 指令集技术,其实就是 21 条机器码的扩展指令集。

  与 Intel 公司的 MMX 技术侧重于整数运算有所不同,3DNow! 指令集主要针对三维建模、坐标变换和效果渲染等三维应用场合,在软件的配合下,可以大幅度提高 3D 处理性能。后来在 Athlon 上开发了 Enhanced 3DNow!。这些 AMD 标准的 SIMD 指令和 Intel 的 SSE 具有相同效能。因为受到 Intel 在商业上以及 Pentium III 成功的影响,软件在支持 SSE 上比起 3DNow! 更为普遍。Enhanced 3DNow! AMD 公司继续增加至 52 个指令,包含了一些 SSE 码,因而在针对 SSE 做最佳化的软件中,能获得更好的效能。
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则