PCEVA,PC绝对领域,探寻真正的电脑知识
  • 内容展现
  • 最新评论
全方位认识推土机:AMD FX-8120最全面解析与评测
2011-11-2 14:44| 发布者: royalk| 查看: 86708| 评论: 0
摘要:
模块化设计与线程调配问题

下面从细节上来看看推土机的模块化设计形式:


模块/核心
这是取自推土机Die shot中单个模块的细节,每一个这样的模块包含了2.13亿个晶体管。推土机没有确切的核心概念,从传统的核心意义上说它是四模块、八线程,或者从资源共享的角度说它是八核心、八线程都没有错。推土机每个模块包含了两个“核心”——整数运算单元,其中每个“核心”各自拥有两个ALU、两个AGU、16KB的L1数据缓存、整数调度单元,并共享浮点单元、64KB的L1指令缓存以及前端(指令提取、解码单元)、2MB的L2缓存。由于每个整数运算单元将被识别为一个核心,且每个运算单元比K10少了一个ALU和一个AGU,因此推土机的每个“核心”的理论整数运算能力只有K10的2/3,这就是推土机单核心性能下降的主要原因。

前端
指令预判部分采用队列模式存储于64KB的一级指令缓存中,而Phenom II是直接将预判结果传递给译码单元,改善了指令出错时导致的运算停滞现象;译码部分增强为4指令模式,可以同时对4条指令进行译码,而同一时间Phenom II只能处理3指令;前端部分由2核心共享。

L1缓存
推土机每个整数运算单元只有16KB的L1数据缓存,并且每个模块两个“核心”共享64KB的L1指令缓存,而K10则是一个核心独享64KB的L1数据缓存与64KB的L1指令缓存,因而L1缓存的命中率比起K10而言必然有所下降。

L2缓存
L2缓存由Deneb的每个核心512KB增大到每个模块共享2MB,且同样与核心同速,会对命中率提升有一定帮助,不过从模块整体来看,推土机的单核性能下降与缓存结构变化也有一定关系,从K10 Regor核心的L2缓存增大的作用来看,并没有给单核性能带来太多提升。推土机此次把L2增大到2MB,似乎作用也比较有限。

L3缓存
L3缓存为所有模块共享,由K10的6MB增大到8MB,从48路增加到64路,也可以稍微提高一点命中率,L3依然是与CPU-NB同速,但是从测试情况来看,速度比K10已经有不小的提升。但即使如此,从K10的情况来看,L3带来的性能提升更像是有L3跟没有区别很大,有大和有小区别很小,例如Athlon II X4 620、Phenom II X4 810以及Phenom II X4 910的差别,前两者还是有些差距的,但后两者差距很小。所以推土机此次把L3增大到8MB,是浪费晶体管还是真的有用,我更倾向于前者。

资源共享与线程调配上可能存在的问题
由于推土机整数单元独立,浮点运算单元与前端部分共享,那么在软件层上单线程是否能充分利用共享部分,一个模块的两个线程都在使用时,如何合理分配资源,以及是否应该由两个整数单元共同参与一个单线程运算,都成为AMD与软件开发商之间需要沟通解决的问题。目前WIN7系统线程调配是同步模式(Simultaneous Multi-Threading,也就是Intel的超线程的模式),每个线程之间指令负载可以自由调节,趋于平衡。而推土机则是在一个模块内进行双线程工作,模块内共享部分如果被一个线程独享,另外个线程空载是它的理想状态。因此WIN7目前的线程分配机制对推土机对模块内整数单元的调用以及共享部分的资源分配情况,其实是不利的。

假设我们现在分别拿一个单核心带SMT的CPU与推土机的一个模块来跑一个单线程程序:
负载为两个核心各50%,核心资源利用率最高,对SMT最有利;
负载为核心0:100%,核心1:0%,模块共享部分变为独享,对推土机最有利。

收藏 邀请
0
本文版权归 PCEVA,PC绝对领域,探寻真正的电脑知识 原作者所有 转载请注明出处

最新评论

热门评论
    热门评论
      返回顶部