I860回顾与IA-64分析
(注,本文出自2000年台湾某知名网站)
*我的代号是N10你也可以称我为I860
11年前Intel在ISSCC旧金山发表第一个1百万颗晶体管微处理器震惊全世界,微处理器的全名为80860,是一种32位RISC处理器,也就是所知的i860,开发使用的是x86为基础的计算机,代号为N10,Intel很明显的是要对抗RISC处理器为主的工作站和服务器技术市场,
Intel的i860是值得重视而且传统的RISC处理器,他有32个32位一般用途整数缓存器R0到R31以及32个32位浮点缓存器F0到F31,能够使用一对偶数/奇数储存64位浮点数值,I860的指令很稀少但是能聚集整数,逻辑,分枝,和内存运算,它在1.0um2层金属CMOS程序上占用155mm2 die制程,i860包含4kbytes指令快取,和8kbytes数据快取,每个2路组合成64位宽数据总线,
但是i860有3个稀有的特征,第一种是小组的指令来支持3D画面着色,绘图单元是小型附加在I860的健全浮点硬件上,它的工具指令给图像强烈的修改,Z深度修改和Z buffer检查,第2个是i860双指令输出方式在小指令的控制之下的登录和退出能力,在双指令模式i860能在每周期输出一个整数和一个浮点指令,可惜这些在登录和退出双指令模式是2周期lantency,所以这很难去使用,除非小心的用手写汇编语言计算和绘图核心,如下图所示:
*最后结果: 1M浮点
第三个稀有的特点是I860最复杂的结构也是最难使用的部份-浮点管线和装载储存指令,i860的FPU支持浮点指令和特殊管线指令这两种传统类型,它直接暴露出I860里面浮点硬件到指令清单管线的latency,例如管线浮点复合指令pfmul.p src1,src2,dest将在浮点缓存器计算2个运算域结果代表src1和src2,但是结果数值储存在浮点缓存器代表dest,依靠精确度将会提早执行pfmul.p指令输出,而目前src1和src2值同时相乘的结果将放置在dest缓存器,指定以后,第2或第3次pfmul.p指令执行,这种管线系统展示在图解2,浮点管线相加指令有每3周期1个latency,注意7个浮点管线相加指令是使用4次加法执行.
浮点管线指令常数要小心编码来隐藏浮点管线的latency,以实现较高的性能,让传统的指令纳入RISC处理器,然而支持的管线指令并非存在于I860编辑器中,一年之后处理器只有使用手写汇编语言例行程序,非常的耗时而且容易出错,Intel i860最后结果是得到较大的浮点,i860新提高效能的特色像是双指令型式和浮点管线指令,这证明了它难以编辑,具有百万晶体管的i860以40Mhz速度等级,其Linpack MFLOP/s和SPEC98效能大约相同于有10万颗晶体管的33Mhz MIPS R3000A处理器,由于I860市场接受度差,以I860为主的工作站市场也相继退出.
微软公司最早也有使用I860作为NT操作系统,实际上有些人声称NT字母是解释成"New Technology",其真正是来自i860的代号发展而来的(NT又名N Ten),传闻微软程序员不喜欢i860是因为i860程序不但难写而且臭虫也多,因此i860 NT被终止加上MIPS处理器被采用取代x86 CISC平台架构. I860在高阶绘图卡和浮点数字信号处理有很好的成就,Intel本身就把i860大量组合成Paragon系列平行超级计算机,虽然最后还是退出市场,Intel也有发展出第二代i860,有2千5百50万颗晶体管,0.8um 3层金属CMOS制程,可以跑50Mhz,第二版i860又名为i860XP.
*跟以前一样自夸
在1989年推出的i860和今年将登场的Itanium,他们之间有很多类似的地方,这些共同点都是Intel强大市场的动力来影响驱使计算机发展,现在大多数的市场都响应Intel的主张,他们的新超级芯片的出现使得现有RISC工作站和服务器市场难以生存,甚么样的打击使得11年前i860做成现在的IA-64处理器,甚至一些宣传处理器的方式与过去10年差不多,在1989年Intel有足够的能力声称i860是RISC-like处理器,但是在1990年Intel的市场销售部门面临Intel本身64位RISC-like处理器回归x86的问题,他们花了10年时间向客户说明他们不需要将x86放回RISC-based计算机,为解决这个窘境他们想出EPIC(Explicity Parallel Instruction Computing)来解释EPIC不只是IA-64架构而是全新的类型.
在讽刺的观点I860和IA-64是一样的,大多推测其特殊的IA-64只不过是扩充10年前I860一些新特色罢了,对于提升效能的承诺已经失败,因为编辑器在那个时代难以被有效利用,EPIC和IA-64一个重要的特色是明确的平行,毕竟它是EPIC首字母缩写,在IA-64的明确平行是以5小段区域128位长束混合3个指令,指令里面并非全然是聚集在一起,指令集表明样式的数值,它聚集一个或多个指令全体服从一套规则互相依靠来确保所有指令在群组中都能同时被执行,IA-64一串指令能包含两个指令集但指令集能扩展至多串集,这个系统可由图表3做说明.
但是这系统在概念上没有与明确编码的登入,退出有所不同,双指令方式(DIM)使用专用一小段指令命令也被Intel i860 RISC微处理器所使用,IA-64另外一个特色是轮换缓存器系统来协助软件流水线程序循环,含有128个一般用途缓存器R0到R127最上层96能在一般缓存器重新命名基数区域数值转换,同时最上层96的128个浮点缓存器F0到F127也能经由改变浮点缓存器数值数值基数转换,IA-64包含一些分枝指令来减少两者重新命名基数区域所产生的副作用,原因是出在软件先前的R32数值在R33,R33的旧数值在R34诸如此类到R127的旧数值在R32为止,如图表4,IA-64程序代码段利用缓存器的循环如同I860程序代码使用浮点管线指令回旋是一样的.
Intel从i860瓦解中学到甚么?
比较重要的是记住IA-64的编码器必须要在指令组之间明确的安排指令以及分明附属关系,以及利用复杂的装置像是编辑器的循环来达到高性能表现,补偿IA-64死板的in-order清单执行模式,所以编码器使得IA-64比I860处理器更具有竞争力,如果I860的编辑器不用难处理的架构也许I860的效能水准仍可以与RISC处理器相抗衡,但是IA-64编辑器无法从明确指令集中独立指令,断定和缓存器循环压榨出更多足够的优势,那么IA-64处理器无法与超纯量RISC处理器技术相竞争.
结论
在很多方面来说Intel即将推出的IA-64是属于64位RISC-like处理器,它将成为工作站和商用服务器市场产品,回忆11年前i860发表的悲惨教训,如同今日Intel他们强大销售部门大肆宣传他们的产品,很明显的业界正压迫着他们而且不幸的是在Intel的第二线逐一反映出来,大多观察家在想新的处理器将会很快的分食RISC处理器家族,如同早先x86 CISC处理器战胜Motorola的680x0市场地位一样,但是惊讶的是专门计算机市场忽视i860使它快速消失,Intel显然已改正许多原先的错误来发表IA-64家族,可是IA-64设计上比I860缺乏编辑器的弱点还更严重,所以技术上的成功是难以保证的,不过考虑到投资金额和Intel公司承诺IA-64将保证x86兼容性,看来IA-64也不太可能在业界中失败.
[此贴子已经被作者于2005-2-27 10:24:44编辑过] |