齐河一家 发表于 2014-8-14 05:15:07

从物流看 Intel与AMD的区别

本帖最后由 齐河一家 于 2014-8-14 05:19 编辑

    自从Core2出来后,Intel并未像AMD K8 for King的时代那些,天天叫嚣对手来对决!那个鲁智毅在2004、2005、2006直到Core2出来以前,天天叫嚣Intel来和他对干,不让Intel低下高贵的头颅势不为人的气焰,让目前的AMD-Fans还余音绕梁三日未绝似的兴奋后遗症!

    慢慢的搜索下关于2005、2006年AMD的FX-57、FX-60、3000+、X2~6000+和Intel Pentium IV670、D~965、IV 530、630、D945的性能测试方面的报道吧!特别是国际网站,还有ZOL、POPO、Mydrivers等国内网站及其Intel Fans和AMD Fans的对骂的帖子吧!现在看了,让我觉得很是好笑!

    其实,我到了最近才发现,为什么Intel会支持Netburst架构长达六年之久的核心级别的原因之所在!我也看到了我在2004、2005、2006、2007年是多么的幼稚加可笑!

    其实X86架构就是所谓的CISC复杂指令架构,而目前的Conroe、Penryn、Nehalem其实就是一杂种架构——RISC[简单指令架构]和CISC和合体!而Netburst架构恰恰就是人类电子芯片科技中最符合CISC的架构!而IBM的Cell就是RISC!

    就目前而言,AMD K8是每周期三指令[两复杂一精简]、AMD K10是每周期三指令[两复杂一精简],Intel Core2、Nehalem是每周期四指令[一复杂三精简];AMD的执行效率之所以低的原因就是每周期三指令[两复杂一精简],因为这样在预测分支和解码编译前端就需要花费更多的时间,但是AMD K8、K10的预测分支性能效能连Netburst都不如,这更是失败;而Core2、Nehalem的预测分支很是强大而且在解码编译的前端性能也很不错,这样就把一系列指令都从开始都精简了,而复杂的就只有涉及浮点方面了!

    可以这样说,理论上AMD K8、K10的浮点游戏性能更强大,但是那两个复杂的指令执行单元没有被喂饱且效率低下;但是Intel的Core2、Nehalem的一个复杂三个精简就已经通过强大的预测分支执行了被解码或编译过而送来的指令系列了,而且运行频率比较高,这样Intel的浮点游戏性能反而超越了AMD!

    很形象的比喻:AMD和Intel去拿相同重量的货物:AMD是一辆K8、K10的卡车,有三个车厢,A、B两个车厢去装比较难装的需要拆卸后的货物,C车厢去装一些简单的货物,并且每小时跑180--320公里;Intel是一辆Core2、Nehalem的卡车,有四个车厢,A车厢去装那些比较难装的需要拆卸的货物,B、C、D三个车厢去装那些已经完全被拆卸的转化为简单的货物,并且每小时跑160--320公里!而MMX、SSE、SSE2、SSE3、Super-SSE3、SSE4.1、SSE4.2和以后的NES-NI、AVX等指令集就是怎么样能够把这些货物拆卸和组装得更快更捷更高效的方案集册!

    AMD运送这些货物繁重的需要17个关节[浮点流水线级],轻便的需要12个关节[整点流水线级];Intel的话无论繁重还是轻便只有14个关节[整、浮点流水线级]!而Intel Netburst的高达37繁重关节和32轻便关节,效率极其之低,但是核心内部的执行精确度却相当之高!当然Intel的Core2、Nehalem采用了内部并发技术——纵向更改为横向,把流水线级过低造成的执行精确度降低的弊给修正了!

    引用我以前的聊天记录摘要:[其实,这个频率和效率这个问题,是和流水线架构和级数是息息相关的!目前的AMD K8、K10都是每周期三指令,而Intel Core 2系列[包括Conroe和Penryn]是每周期四指令的!这也就说明了为什么目前AMD的频率要比Intel高的原因之一!但是在2005年的Intel失衡时代,AMD K8和Intel Netburst都是每周期三指令,由于AMD 在K8的流水线的重组方面领先于Intel,其实Intel不是不知道的,那个时候Intel技术高层在做一件既有趣有危险的架构试验——“每指令包每流水线”,而不是AMD K8和以后自己的Core2的“多指令包每流水线”,这样导致频率老高,而总体效率低下,但是Intel 在4.0GHz核心频率失败后,就回归了其Pentium-M的低能耗高性能的正道上了!

    而L1、L2、L3就是这么样初次堆栈货物和拿取货物的地方和方式[架构]
而所谓的预测分支就是把从L1、L2、L3里堆栈好的初次拿取过来的货物来进行第二次的来加工的分派方式[架构]!这个就是拿取货物的精确度和货物在L1、L2、L3里停留时间怎么平衡的问题了!货物拿取越是精确那么L1、L2、L3的货架[集联路]就越多,从而导致L1、L2、L3的货物停留[滞留]的时间越多!K8、K10的L1、L2、L3都是要滞留的、而Core2、的L1不滞留、Nehalem的L1、L2不滞留,这个就牵扯到高速缓存架构方面的问题了!

    现在细化货物吧!有A、B、C、D……Z等26组货物,每组有0、1、2、3……9箱货物。AMD就把这个这些货物只按照A、B、C、D……Z的组为单位事先存放在L2或L3里(由于AMD的L3其实就是L2的简单补充,所以我只谈论K8-X2,而不谈论K10-X3、X4,因为原理相同只是步骤增加而已。),在每256K为1路集联的L2的这26组货物就处于等待过程中,在每32K为1路集联的‘L1-指令’就读取在L2的货物,识别了组号后,发送给每32K为1路集联的‘L1-数据’,这样‘L1-数据’就把这些分组的货物运送到了核心里,再在核心细化A0、A1……Z8、Z9这260箱货物,然后再处理!而Intel的Core2、Nehalem就已经在北桥里细化了从A0、A1……Z8、Z9这260箱货物,所以导致了Intel的E8000、Q9000系列的L2有了256K*24、48路集联的庞大体积容积!每4K为1路集联的‘L1-追踪’就把已经细化在L2里的数据通知性的告诉了L2,在L2里的识别后,直接发送到每4K为1路集联的‘L1-数据’,然后发送到核心里去处理。为什么Intel的L1、L2的集联数那么多且L1集联路数多又且L2容积比较大,其实就是为了有更加精确的存放货物的货架还有更加精确的货物运送目的地导向!但是Intel的L1、L2、L3控制分派器效率足够的高,所以停留[延迟]也远远低于了AMD!而Nehalem的L1、L2只是个货物验证和运送的通道,实际的货物和地址[货物堆栈在这260个位置里的精确地址]都在512K/每路*16路集联=8M的L3里面;但是K10的L3、L2、L1都要存放实际的货物,导致滞留[延迟]增高效率减缓!这样的设置设计也就导致了为什么Intel的核心间效率远远比AMD的核心间效率高,特别是Core2是K8的二倍及其K10的一点五倍Nehalem是K10的三到四倍,其实就是这个道理!因为只要有了数据导向的精确和L1、L1、L2的低延迟高效率的保障才能有核心间效率的精确和高效!另外,为什么高分辨率高特效的游戏需要大容积的L2来作为保障?其实就是因为更大容积的L2就装载更多且处理最快捷的游戏三维指令和寻址及其数据导向与PCI-E 16X@2.0显卡插槽!

页: [1]
查看完整版本: 从物流看 Intel与AMD的区别