首页 > 专题
 

第1页:K8核心分析——缓存的改进

2003-11-13 1:30 电脑动力 LSW

    本文转载自PCPOP.COM

    我们都知道:虽然AMD在K8系统架构方面,大胆创新,采取了许多新技术。然而,K8系统架构的变革,归根到底,还是为处理器内核服务,如果这一部分不作出改进,性能上的提升,也只能是一纸空文。

    首先,我们来看一张K8核心的Athlon64(FX)与K7核心处理器的内部架构对比图:

  

Athlon64(FX)与K7内部架构对比(点击放大

    图中可见,表面上看,新的核心和K7相比总体上变化并不大,同样的3个负责整数运算的ALU、AGU单元,同样的3个负责浮点、3DNOW等多媒体指令运算的浮点单元。如果不考虑新的64位指令执行状况,基本上两者处理数据的流程将非常相似。

    但是较为仔细地了解了新核心的内部结构后,你会发现即使对于32位指令的执行来说,虽然他和K7相比外貌相似,实际上还是存在几处较为明显的区别的。

    我们首先从前端的缓存部分入手吧:

缓存部分的改进:

    一级缓存、二级缓存部分,Athlon64(FX)同K7核心相比,除了将二级缓存容量统一提升到1MB,二级缓存位宽相比K7核心的64bit倍增为128+12bit之外,并没有在结构上作出太大的变动。

    然而,CPU中另一类重要缓存---主管内存地址翻译的TLB的相关参数,却在Athlon64(FX)中相对K7处理器做出了较大的变动。

    为了使大家更透彻地理解TLB的参数变化对CPU性能的影响,关于TLB的原理,我们作出如下的简要介绍:

    TLB的英文全名为:Translation Lookaside Buffer,我们可以翻译为旁路转换缓冲,也可以把它理解成页表缓冲,因为它里面其实存放的是一些页表文件(虚拟地址到物理地址的转换表)。

    首先我们需要知道的是:TLB和我们熟悉的一级、二级缓存并没有本质的区别,二者都属于缓存一类,他们的区别在于所缓存的内容不同。我们知道,同CPU在内存中存取数据时先查找一级、二级缓存中是否存在所需的数据相同;当处理器要在内存中寻址数据时,它也不是直接到内存的物理地址里查找的,而是通过一组虚拟地址转换到主内存的物理地址,这样,就需要有一组将虚拟地址和物理地址对应起来的地址对应表格;通常,这个表格存放在内存中,TLB则负责缓存这个表格中的数据,而CPU需要寻址数据时,同样会优先在TLB中查找是否有需要的表格数据。这样,同一级、二级缓存尺寸和联合路数对处理器性能的影响相同,处理器的性能和寻址的命中率,进而同TLB的尺寸、联合路数有很大的关系了。对于寻址空间更大的K8,增加TLB条目数,改变TLB联合方式显然具有更重要的意义。

    回到正题,我们整理了AthlonXP 与Athlon64(FX)相关的TLB参数的不同之处,列出以下的表格,供大家参考:

    以下则是我们使用Wcpuid3.1a所测出的Athlon64FX51以及Athlon64 3200+的缓存相关信息:

    同时,在TLB控制机构方面,为了提高在程序间切换时的处理器性能,Athlon64(FX)也相应K7核心作出了一些变化。具体变化大家可以参考如下的Athlon64(FX)TLB机构图:

新的TLB控制机构(点击察看大图

 
发表评论 进入论坛 推荐好友 关闭窗口

相关内容

 
 
关于我们 - 联系方式 - 客户服务 - 招聘信息 - 相关法律 - 广告服务