Hardware 版 (精华区)

发信人: rainy (段誉), 信区: Hardware
标  题: 微处理器千年之战:野马 VS IA-32 
发信站: 紫 丁 香 (Fri Feb 25 07:49:03 2000), 转信



在下一个世纪中,AMD会用Spitfire和Thunderbird对付P3 EB,那么它又用什么武
器来挑战第一颗P7芯片--Willamette呢?要知道,英特尔对P7的研究已经开展了三
年之久,此番出击是志在必得,势要彻底抛离Athlon。为了应战,AMD不得不改良
K7内核,并称之为Mustang(野马),以前,第七代处理器的Athlon能轻易打败奔腾
III,但它将要面对的可不是普通的对手,而是大名鼎鼎的IA-32体系,接下来是好
戏连场,各位绝对不容错过哦! 

一、AMD的武器----Mustang 

与前二代K7一样,Mustang也用两种版本:一种是用于高端服务器,包括Socket A
和Slot A接口;另一种是用于低端桌面市场的,仅有Socket A接口。

Mustang高级版拥有2MB片内二级缓存,会少批量发行。以前我曾经说过,大容量缓
存会给CPU的生产带来不少困难,今天这句话同样应验在Mustang身上。首先,这需
要使用大量的晶体管,如:K6-III,它有12M个晶体管作为二级缓存,占用了37平
方毫米的芯片,而真正的内核只使用了9百万个晶体管,占用了81mm平方毫米,在
这个例子中L2 Cache占了处理器面积的一半,是不是很夸张。制造SRAM还需要十分
清洁的环境,这可不是普通的干净,而是要使用真正的无尘空间,因此生产会受到
很大限制。AMD在Austin的一级清洁工厂负责完成此项任务,Dresden工厂负责处理
密封的晶圆片,尽管它们都可以生产大于256KB的缓存,但2MB缓存确实是一个惊人
的数目,不是这么容易能做到的。

要提高处理器的速度,仅靠增加缓存是不够的,AMD还加入了更先进的分支预测设
计。Mustang在整数指令排序缓冲区中加多了3个分支入口,下面我将用一个分支预
测检查软件来进行比较。测试采用的是泡沫排序算法,即排序数据库的效率十分低
,但可以借此来检测最坏情况时CPU排列一大堆整数的性能,具体程序如下:
for( outer=0;outer<9;outer++ ) 

didSwap=0; 
for( inner=outer;inner<20000;inner++ ) 
if( numbers[inner] 

temp=numbers[inner]; 
numbers[inner]=numbers[outer]; 
numbers[outer]=temp; 
didSwap=1; 

if( didSwap==0 ) 
break; 
}
下面是各CPU的得分比较表,分数越高表明排序性能越好
--------------------------------
CPU 排序得分
PIII EB 733 898 
Athlon 700 870 
PIII-600 868 
PIII-550 851 
Athlon 600 850 
PIII-450 829 
K6-III 450 793 
K6-2 450 783 
K6-III 400 769 
K6-2 400 763 
--------------------------------

由于Athlon的管道线太长,一旦分支预测出现错误,就用耗费10个时钟周期(K6只
须4个时钟周期)来重新操作。K7的2048入口BHT(branch prediction table,分支
预测表)比K6的8192入口要少,2位智能预测算法也比二级GA预测算法差些,尽管
K7采用4K计数器8位通用记录来代替了K6的8K计数器9位通用记录,但在泡沫排序算
法中它所表现的浮点性能仍然不高。
虽然从内核算法上,我们看不到Mustang有多大提高,但它可以运行在133MHz外频
上,并能使用266MHz的DDR SDRAM(Double Date Rate,双数据率SDRAM),未来还允
许升级到200MHz外频和400MHz DDR。另外,Mustang的二级缓存宽度也从64位提高
到256,这些改进都能使它获得更好的性能。

二、第一代P7----Willamette

讲了这么久第七代处理器,都是局限于Athlon之中,明年英特尔将会发布P7,它将
是真正可以和K7一较高下的产品。由于英特尔的保密措施得当,我们拿到的资料非
常少,具体有以下几点:

1、因为P3内核设计技术所限,Coppermine应该不能达到1000MHz,也就是说2000年
,英特尔一定会推出1000MHz的Willamette处理器。

2、Willamette可能不采用EPIC内核,毕竟EPIC是为64位程序而设计的,EPIC to 
X86的指令译码异常复杂,在当今32位程序流行的情况下,英特尔还不会贸然用64
位芯片来进军市场。不止64到32位的指令转换很困难,即使是一个小小的判断也需
要特别的分支预测指令,那么芯片巨人更不敢冒这个险了。尽管如此,高数据流量
的EPIC芯片还是有一些好处的,比如:追踪式缓存,为了明白追踪式缓存的作用,
我先讲一下CPU是怎样获取指令的。

CPU处理指令的过程是在译码之前从指令缓存(Instructions Cache)指令,然后
把指令放到缓冲区,再等待执行。对了EPIC和Athlon这种拥有几个执行单元的超标
量处理器来说,很难同时取得所需的指令,因而极易造成系统瓶颈。产生此类问题
的主要原因是:市面上20%的X86程序包含了分支指令,每个分支有4-5条指令。众
所周知,Athlon每时钟周期最多可以取得16 bytes数据量的指令(传说
Willamette可以取得32 bytes),即是说Athlon和P3在每个时钟周期最多能处理3
条指令,即使是Willamette的峰值能力也不过每个时钟周期处理4条指令,这都比
平均的IPC(Instructions Per Clock Cycle,指令/时钟周期)数值要低,不能满
足执行单元的需要。

获取指令的数目与缓存命中率、分支预测准确度、分支数量都有一定关系。为了处
理分支,CPU必须从指令缓存中取得相应指令,如果这些指令的存储是连续的,一
个时钟周期内就能完成。若是分散的,在单个时钟周期内工作量过大,等同于降低
了CPU的时钟速度。换而言之,取出指令的时间超过一个时钟周期,每个时钟周期
可取出的指令数量会下降。

虽然x86芯片的IPC比平均数要低,但它拥有大容量的缓存,只要缓冲区中的指令数
够多,就能应付执行单元的请求。同时突发地读出大量指令就会使CPU进入峰值处
理状态,发挥出全部的性能。如果缓冲区没有充满指令,突发性峰值状态就不会出
现。因此,我们需要一个强大的译码器、大容量缓存和指令获取单元,以保证指令
带宽的数据量,避免空载缓冲区的情况。

了解CPU获取指令的原理后,让我们再回到追踪缓存技术。追踪缓存附加在一般指
令缓存中,其作用是找出程序如何分支。首先,它按顺序存储的方法把指令排列好
,假设分支从位于200的指令X跳到位于300的指令Y,第二次再执行到指令X的时候
,追踪缓存就会自动把指令Y加到指令X的后面,此做法能增加每时钟周期获取的指
令数目,实际上是一种代替旧式无序指令缓存的动态排序算法。一般来说,追踪缓
存能增加约10-20%的性能,具体情况由追踪缓存的容量和程序类型决定。

3、Willamette的一级缓存为64KB,二级缓存为256或512KB(不是传说中的1MB)。


4、Willamette将集成大量的晶体管,拥有非常巨大的内核(可能会比Athlon还要
大),由于内核过大,将影响其性能增益。

5、Willamette是第一个四路x86处理器,它能在1个时钟周期内执行译码、发送、
执行、返回4条指令。

6、Tehama是第一个支持Willamette的芯片组,它兼容双通道RAMBUS和外频为
133MHz的DDR内存(实际运行速度266MHz)。

三、Mustang VS Willamette

Mustang是目前最强的K7内核,但从技术方面来说,假如Willamette真的能实现以
上功能,那么它完全有可能击败Mustang。毕竟4路指令执行真是太恐怖了,还记得
当年K6(2路)对P2(3路)时的情况吗,最终可是奔腾II取胜了哦。不过,更快的代价
就是更贵,在性能/价格比上取得平衡的才是一款优秀的产品。究竟历史会否重演
,还是让时间来作答吧。 


--

是大树,就要顶起一屋大梁    天下英雄出我辈    是森林,就要撑起一片蓝天  
                           一入江湖岁月催
                           王图霸业谈笑间        
                           不胜人生一场醉

※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: sunny.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.410毫秒