首页 > 知识&问答
威廉·卡亨——浮点计算的先驱
发布时间:2024-11-06 15:55:06 / 浏览量:
1989年的图灵奖又一次选择了一位加拿大计算机科学家,这一次是威廉·卡亨,他是因为在浮点运算部件的设计和浮点运算标准的制定上的突出贡献而获此殊荣的。
卡亨1933年6月5日生于多伦多。完成中学学业以后,卡亨进入著名的多伦多大学。在那里,他实现了“三级跳”——继1954年获得数学学士学位以后,1956年和1958年又先后获得硕士学位和博士学位。学成以后,卡亨既在大学从事过教学和科研,又在一些著名的计算机整机厂和元器件厂从事过重要的技术工作和产品开发工作。其中包括:1960—1968年在多伦多大学任教,1972—1973年在IBM公司工作,1974--1982年任HP公司顾问,1976—1983年在Intel公司工作,1983—1986年重返IBM,1986年以后在加州大学伯克利分校任教,同时在美国国家半导体公司***。这些经历使他积累了丰富的工程实践经验,并为计算机科学技术,尤其是在计算机运算技术的发展方面作出了重要贡献。
众所周知,计算机中的“数字”具有“定点”和“浮点”的区别。“定点”计算组件的设计和实现相对容易,而“浮点”计算组件的设计和实现则很复杂。更多,更困难。因此,许多较旧的计算机没有配备浮点运算组件。那么,当您需要浮点运算时该怎么办?历史上有两种解决方案。靠前种是使用浮点算术子例程在定点算术组件上实现浮点运算。最早的浮点算术子例程由1970年图灵奖获得者Wilkinson在图灵设计的ACE计算机上实现。冯·诺伊曼(vonNeumann)提出了第二种方法,该方法在定点数上添加了“比例因子”,使其成为实用的浮点数。这种方法很巧妙,但是比例因子的设置已成为程序员的头疼问题,因为有时操作的中间结果和最终结果难以准确估算,因此比例因子选择得太小,导致计算上溢;比例因子选择过多,会影响操作的准确性。后来,巴克斯和他的同事赫里克(Herrick)开发了一个名为Speedcoding的软件,该软件根据问题自动解决并修复了缩放系数。这两种方法都通过软件实现浮点运算。尽管可行,但这是一个``权宜之计'',因为前者大大降低了浮点运算的速度,而后者既具有数值范围,又具有精度。非常有限,很难满足某些应用程序的需求。
正是Cahen在英特尔任职期间设计和开发了8087芯片,并成功实现了高速、高效浮点运算单元。当前,如果具有80x86CPU的计算机需要完成科学和工程计算,则必须配备8087的数学协处理器。某些著名的数学软件包,例如Mathematica,也必须在装有8087数学协处理器的机器上运行。此外,Kachen还为HP计算机的体系结构设计做出了贡献。作为数学家,Kachen在教学和研究工作中有着严格的作风。、严格已知、。但是为此,他也付出了代价。卡亨(Kachen)获得图灵奖(TuringAward)之后的一集很好地说明了这个问题。事情是这样的:ACM在1990年1月宣布,Kachen因其对浮点算术标准的发展做出的贡献而在1989年被授予图灵奖,并于1990年2月在华盛顿特区的90CSC大会上正式颁发给该卡。亨利奖。此后,ACM收到了反对该奖项的读者的来信。读者是斯坦福大学的学生,后来考入了加州大学伯克利分校攻读研究生学位。他在入学考试时遇到了Kahang教授的问题,后来在旧金山的一家软件公司工作。按照“言论自由”的原则,ACM于7月在《ACM新闻通讯》的“ACM论坛”专栏中发布了这封信,未作评论。