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毫秒