约翰·科克是从机械到数学、又从数学转到计算机方向上来的学者,出生于1925年。

中文名

约翰·科克

外文名

John Cocke

别名

约翰·科克

出生日期

1925年

籍贯

美国

国籍

美国

出生地

美国

毕业院校

杜克大学

职业

科学,IBM沃特森研究中心老资格的研究员,科学,987年度的图灵奖

主要成就

RISC架构之父 ACM 图灵奖(1987)IEEE 约翰·冯诺依曼奖(1994)美国国家科学奖章(1994)

代表作品

《各种变换的优化方法》 (《A Catalog of Optimizing Transformations》

学术生涯

约翰·科克生于1925年,1946年在杜克大学(Duke University)获得机械工程学士学位,干了几年实际工作以后,又回到母校读研究生,于1956年取得数学博士学位。之后,他进入IBM,从此开始了他的计算机生涯并为IBM计算机市场的开拓和计算机科学技术的发展做出了巨大的贡献。由于学过机械和数学,基础扎实、知识面广,加上科克兴趣广泛,善于动脑,他在IBM许多产品的设计开发和技术问题的解决中都起过至关重要的作用,有众多的发明创造。在沃特森研究中心,在很长一段时间里,每当人们有疑难问题需要解决的时候,自然就会说:“找约翰讨论去”。事实上,科克也总能提出有益的建议,因而受到其同事的普遍敬仰和尊重。

模型

Cocke在IBM公司从事的第一个项目是研究Stretch计算机(世界上第一个“超级计算机”型号),他很快成为大型机专家。1974年,Cocke和他领导的研究小组开始尝试研发每秒能够处理300线呼叫的电话交换网络。为了实现这个目标,他不得不寻找一种办法来提高交换系统已有架构的交换率。1975年,John Cocke研究了IBM370 CISC(Complex Instruction Set Computing,复杂指令集计算)系统,发现占总指令数20%的简单指令发出了80%程序调用,而占总指令数80%的复杂指令却只有20%的机会被用到。由此,他提出了RISC的概念,其中心思想就是简化硬件设计,硬件只执行一部分很有限的最常用的指令,大部分复杂的操作则使用成熟的编译技术,由简单指令合成。RISC的最大特点是指令长度固定,指令格式种类少,寻址方式种类少,大多数是简单指令且都能在一个时钟周期内完成,易于设计超标量与流水线,寄存器数量多,大量操作在寄存器之间进行。 1980年,Cocke在IBM位于约克城(Yorktown)的华生研究中心(Watson Research Center)里开始研制IBM801(PowerPC的前身),第一台RISC机器也就作为801微电脑项目的一部分最终开发成功。

自RISC技术推出以来,由于其优化指令系统带来运算速度提高的优势,使得RISC技术在1980年代后期,逐渐在高端服务器和工作站领域中取代了CISC 成为主流微处理器设计架构之一。各个具备一定技术实力的厂家开始在这个架构上研发出自己的处理器,经过近二十年的发展,各大型计算机和超级服务器都采用 RISC架构的处理器。现在,RISC处理器已经成为高性能计算机的代名词。

贡献成就

模型

科克的贡献和成就首先是在高性能计算机的体系结构方面。科克是IBM60年代推出的晶体管大型计算机,也是世界上第一个“超级计算机”(Supercomputer)型号STRETCH的技术负责人。Stretch包含15万只晶体管,其速度比IBM上一个主流计算机型号IBM704快75倍。STRETCH首创的灵活的寻址技术、指令提前执行(即流水线技术)、差错校正码ECC(Error Correcting Code)等至今仍被广泛使用着。Stretch共生产了8台,被洛斯阿拉莫斯(Los Alamos)国家实验室(这是研制出了世界上第一颗原子弹的著名的原子能研究中心)等机构所采用。

70年代中期,科克又主持了一个801计算机项目(或叫“80号大楼”项目,这是IBM的传统,按研制小组所在建筑物命名项目)。801计算机原是为每小时能处理100万次呼叫的全数字电话交换机设计的专用机,但实现中被发展为一种具有小指令集、每个指令都是单地址、有固定格式、以流水线方式重叠执行、指令高速缓存和数据高速缓存则分开并互相独立的一种超级通用小型机。IBM推出的这种体系结构引起加州大学伯克利分校的D.Patterson和斯坦福大学的J.Hennessy的极大兴趣和重视,经过进一步研究、改进和发展,最后形成为一种崭新的计算机体系结构,即大家熟知的“精简指令集计算机”RISC (Reduced Instruction Set Computer)。因此,RISC这个名词虽然是1980年由Patterson提出的,但学术界公认科克是RISC概念的首创者。

除了计算机体系结构以外,科克在编译器的优化方面,也有很多重要贡献。在高级语言编译器发展的初期,技术上不够成熟,生成的目标代码大,执行效率低,影响了高级语言的推广应用。科克对编译器的代码生成技术进行了深入研究,提出了一系列优化方法,如过程(Procedure)的集成、循环(loop)的变换、公共子表达式(common subexpression)的消除、代码移动(code motion)、寄存器定位、存储单元重用等等,编译器的质量大大提高,使编译技术发展到一个新阶段。科克在其主编的《各种变换的优化方法》 (《A Catalog of Optimizing Transformations》,Prentice Hall,1972)中详细介绍了这些方法。

此外,科克在磁记录技术、机器翻译的统计方法等方面也都有过创造和发明。

在获得图灵奖以前,科克于1985年获得过ACM的另一个奖项:Eckert Mauchly奖。这个奖是1979年纪念世界上第一台电子计算机ENIAC的两位设计者而设立的,主要用来奖励在计算机体系结构方面作出杰出贡献的科学家。1991年,科克又荣获美国全国性的技术创新奖章“National Medal of Technology”。

不知什么原因,科克没有出席图灵奖颁奖仪式,而由他的同事A.Peled代为领奖并致词。但科克发表了书面的图灵奖演说,题为“对科学处理器性能的探索”(“The search for Performance in Scientific Processors”)。科克在书面演说中回顾了他一生追求高性能计算机的历程,认为对计算机性能影响最大的三个因素是算法、编译器和机器组织。虽然他本人从事的是有关机器组织和编译器方面研究工作的,但他认为,这三者中,算法的改进是最重要的。

Peled的致词和科克的书面演说全文刊载于1988年3月号的《Communications of ACM》 。

荣誉

约翰·科克

“IBM小子”,是RISC(Reduced Instruction Set Computer,精简指令系统计算机)架构设计师——John Cocke,在1972年得到的IBM公司颁赠给内部员工的最高荣誉称号。

在IBM以外,他也受到广泛的认可,获得无数奖项,其中代表性的有:

ACM 图灵奖(1987)

IEEE 计算机先驱奖(1989)

美国国家技术奖章(1991)

美国国家科学奖章(1994)

IEEE 约翰·冯诺依曼奖(1994)

国家技术勋章和国家科学奖是美国最具荣耀的两项政府大奖,在作为科学家的一生中,他在高性能系统设计中取得的革命性进步,Cocke为信息技术的发展做出了独一无二的创造性贡献。在系统架构和编译器优化研究领域取得了大量进步,他当之无愧地成为编译器优化的奠基人和革新带头人。

评价

从1957到1992年,John Cocke在工作中把自己近40年的精力毫无保留地奉献给了IBM,他取得了了不起(amazing)的成绩”,Cocke的同事兼密友Peter Capek这样评价他:“他的经历非同一般。他因为计算机架构而闻名,但他对很多领域同样充满浓厚兴趣。包括逻辑模拟(logic simulation)、编码理论(coding theory)和编译器优化(compiler optimization),他都可以把这些技术当成艺术来研究。”

关于RISC

简介

RISC(reduced instruction set computer,精简指令集计算机)是一种执行较少类型计算机指令的微处理器,起源于80年代的MIPS主机(即RISC机),RISC机中采用的微处理器统称RISC处理器。这样一来,它能够以更快的速度执行操作(每秒执行更多百万条指令,即MIPS)。因为计算机执行每个指令类型都需要额外的晶体管和电路元件,计算机指令集越大就会使微处理器更复杂,执行操作也会更慢。

纽约约克镇IBM研究中心的JohnCocke证明,计算机中约20%的指令承担了80%的工作,于1974年,他提出RISC的概念。第一台得益于这个发现的电脑是1980年IBM的PC/XT。再后来,IBM的RISCSystem/6000也使用了这个思想。RISC这个词本身属于伯克利加利福尼亚大学的一个教师David Patterson。RISC这个概念还被用在Sun公司的SPARC微处理器中,并促成了现在所谓的MIPS技术的建立,它是Silicon Graphics的一部分。许多当前的微芯片现在都使用RISC概念。

RISC概念已经引领了微处理器设计的一个更深层次的思索。设计中必须考虑到:指令应该如何较好的映射到微处理器的时钟速度上(理想情况下,一条指令应在一个时钟周期内执行完);体系结构需要多“简单”;以及在不诉诸于软件的帮助下,微芯片本身能做多少工作等等。

除了性能的改进,RISC的一些优点以及相关的设计改进还有:

@如果一个新的微处理器其目标之一是不那么复杂,那么其开发与测试将会更快。

@使用微处理器指令的操作系统及应用程序的程序员将会发现,使用更小的指令集使得代码开发变得更加容易。

@RISC的简单使得在选择如何使用微处理器上的空间时拥有更多的自由。

@比起从前,高级语言编译器能产生更有效的代码,因为编译器使用RISC机器上的更小的指令集。

除了RISC,任何全指令集计算机都使用的是复杂指令集计算(CISC)。 RISC典型范例如:MIPSR3000、 HP—PA8000系列,MotorolaM88000等均属于RISC微处理器。

主要特点

RISC微处理器不仅精简了指令系统,采用超标量和超流水线结构;它们的指令数目只有几十条,却大大增强了并行处理能力。如:1987年SunMicrosystem公司推出的SPARC芯片就是一种超标量结构的RISC处理器。而SGI公司推出的MIPS处理器则采用超流水线结构,这些RISC处理器在构建并行精简指令系统多处理机中起着核心的作用。

RISC处理器是当今UNIX领域64位多处理机的主流芯片

性能特点一:由于指令集简化后,流水线以及常用指令均可用硬件执行;

性能特点二:采用大量的寄存器,使大部分指令操作都在寄存器之间进行,提高了处理速度;

性能特点三:采用缓存—主机—外存三级存储结构,使取数与存数指令分开执行,使处理器可以完成尽可能多的工作,且不因从存储器存取信息而放慢处理速度。

1、应用特点;由于RISC处理器指令简单、采用硬布线控制逻辑、处理能力强、速度快,世界上绝大部分UNIX工作站和服务器厂商均采用RISC芯片作CPU用。如原DEC的Alpha21364、IBM的PowerPCG4、HP的PA—8900、SGI的R12000A和SUNMicrosystem公司的UltraSPARC║。

2、运行特点:RISC芯片的工作频率一般在400MHZ数量级。时钟频率低,功率消耗少,温升也少,机器不易发生故障和老化,提高了系统的可靠性。单一指令周期容纳多部并行操作。在RISC微处理器发展过程中。曾产生了超长指令字(VLIW)微处理器,它使用非常长的指令组合,把许多条指令连在一起,以能并行执行。VLIW处理器的基本模型是标量代码的执行模型,使每个机器周期内有多个操作。有些RISC处理器中也采用少数VLIW指令来提高处理速度。

RISC和CISC区别

RISC和CISC是目前设计制造微处理器的两种典型技术,虽然它们都是试图在体系结构、操作运行、软件硬件、编译时间和运行时间等诸多因素中做出某种平衡,以求达到高效的目的,但采用的方法不同,因此,在很多方面差异很大,它们主要有:

(1)指令系统:RISC设计者把主要精力放在那些经常使用的指令上,尽量使它们具有简单高效的特色。对不常用的功能,常通过组合指令来完成。因此,在RISC机器上实现特殊功能时,效率可能较低。但可以利用流水技术和超标量技术加以改进和弥补。而CISC计算机的指令系统比较丰富,有专用指令来完成特定的功能。因此,处理特殊任务效率较高。

(2)存储器操作:RISC对存储器操作有限制,使控制简单化;而CISC机器的存储器操作指令多,操作直接。

(3)程序:RISC汇编语言程序一般需要较大的内存空间,实现特殊功能时程序复杂,不易设计;而CISC汇编语言程序编程相对简单,科学计算及复杂操作的程序社设计相对容易,效率较高。

(4)中断:RISC机器在一条指令执行的适当地方可以响应中断;而CISC机器是在一条指令执行结束后响应中断。

(5)CPU:RISCCPU包含有较少的单元电路,因而面积小、功耗低;而CISCCPU包含有丰富的电路单元,因而功能强、面积大、功耗大。

(6)设计周期:RISC微处理器结构简单,布局紧凑,设计周期短,且易于采用最新技术;CISC微处理器结构复杂,设计周期长。

(7)用户使用:RISC微处理器结构简单,指令规整,性能容易把握,易学易用;CISC微处理器结构复杂,功能强大,实现特殊功能容易。

(8)应用范围:由于RISC指令系统的确定与特定的应用领域有关,故RISC机器更适合于专用机;而CISC机器则更适合于通用机。