那一天的我 那一天的我
签名是一种态度,我想我可以更酷...
关注数: 115 粉丝数: 178 发帖数: 23,373 关注贴吧数: 35
【转帖】关于推土机架构,12级都不知道的姿势~ 其实我们去认识一颗cpu,应该去了解它是如何去工作的,便可以看出这颗u的好坏,许多人说推土机架构怎样的低效高能,真正感受过他低效高能的有几个人?最先传出的,无非是商家为了甩出积压的囤货,然后随便贴出一个跑分 再来一个对比,看起来真的是那么低效高能! 写这篇帖子 是为了大家去客观的去看现在cpu。(部分内容从泡泡网搬运) 一开始,intel 靠 smt (同步多线程)与amd 拉开差距,它工作的原理是为CPU赋予两套架构寄存器和重命名寄存器,一个核心可以运行多个进程,当第一个线程暂停时,将第二个资源准备充分的线程安排给核心处理,这样动态切换的结果就是,CPU的运算能力得到了最大的利用。达至这个核心工作“饱和”,资源的充分利用。 然而Intel的同步多线程技术实际上并不能提升CPU的理论运算性能,只是消除了CPU等待指令时的瓶颈,在部分应用中提升了效能。于是AMD有了一个新的想法:Intel是把一颗物理核心虚拟成两颗来用,而AMD是把两颗物理核心组合成一颗大核心来用——这颗大核心的官方名称叫做“推土机模块”。AMD认为,随着CPU的物理内核数目越来越多(4/6/8核甚至更多),CPU的核心面积也会越来越大,功耗成倍增加。传统CMP暴力复制核心的方式会造成大量重复性的电路。而减少冗余电路的最好方法就是整合,把两颗核心整合在一起,共用一套指令发射器和解码器还有缓存。 但是!!!AMD并不是简单的把两颗核心放在了一起,而是有所精简——两颗核心的整数运算单元都被完整的保留了下来。 这样的好处是推土机模块的两个核心支持执行两个线程,会共享对延迟要求较高的功能、平缓突发和低效应用、线程间动态分配资源,好处是比两个线程共享一个核心更高的伸缩性和可预测性、多线程负载的吞吐优势、单线程时所有共享资源均可访问、以少得多的面积和功耗提供物理核心80%的性能。 推土机模块的浮点运算单元是两个128位的FMAC(乘加运算器),这两个运算器可以被两个整数核心共享,如果其中一个整数核心获得的线程支持纯粹的整数操作,那么另外一个核心就可以获得全部的浮点执行资源。 这就是说当有一个进程执行时,两个核心可以共同运算,智能分配,达到1+1>2的目的,许多人说,推土机架构单核很差,拿什么955 或者I3什么的来和推土机里面的单核相比,然后再来一个跑分测试图,实际这样对比毫无意义,它只用了推土机半个模块,实际上若使用推土机两个核心对比其他架构的两个核心,充分发挥了推土机的整个模块的的资源。 相对于羿龙2来说,推土机模块的指令解码宽度将从K7/K8/K10的每时钟周期三条微指令提升为四条。我们把一个推土机的模块看作是一颗核心的话,里面有两个独立的整数核心,每一个都拥有自己的指令、数据缓存。虽然两个整数运算核心要比K10的三个少,但实际上其中任何一个核心的运算能力都要强于Phenom II。 现在说说它的缺点,现在系统软件是为普通多核cpu优化的,只要有进程需要资源就会给每个核心分配线程任务,但是推土机是以模块为单位设计,一个模块内共享L2缓存,如果按照核心分配任务 ,导致L2缓存取址命中率下降一半 ,变成瓶颈。 这就好比假如有2个进程,分配给2个模块两个核心,这样每个进程只用到了半个模块,而非分配到了一个模块的2个核心,这样效能直接减半。这也造成现在很多评分软件分数低下。 所以若想发挥推土机模块的完整效能,必须重新编译,对推土机做完全优化。这就对软件编译造成大量困难。
首页 1 2 3 4 下一页