`
sogotobj
  • 浏览: 658528 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

编译器优化奠基人:John Cocke

阅读更多
编译器优化奠基人:John Cocke

“IBM小子”,是RISC(Reduced Instruction Set Computer,精简指令系统计算机)架构设计师——John Cocke,在1972年得到的IBM公司颁赠给内部员工的最高荣誉称号。同年,John Cocke还获得了美国国家技术勋章和图灵奖。1991年,当时的老布什总统亲自授予他国家科学奖(国家技术勋章和国家科学奖是美国最具荣耀的两项政府大奖)。在作为科学家的一生中,他在高性能系统设计中取得的革命性进步,Cocke为信息技术的发展做出了独一无二的创造性贡献。在系统架构和编译器优化研究领域取得了大量进步,他当之无愧地成为编译器优化的奠基人和革新带头人。不幸的是,在与病魔长期搏斗后,John Cocke于2002年7月16日与世长辞。
John Cocke,1925年出生于北卡罗莱那州(North Carolina)的夏洛特(Charlotte)。在杜克大学(Duke University),Cocke先后取得了机械工程学士学位和硕士证书,1956年他获得数学博士学位。第二年,Cocke加盟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处理器已经成为高性能计算机的代名词。
“从1957到1992年,John Cocke在工作中把自己近40年的精力毫无保留地奉献给了IBM,他取得了了不起(amazing)的成绩”,Cocke的同事兼密友Peter Capek这样评价他:“他的经历非同一般。他因为计算机架构而闻名,但他对很多领域同样充满浓厚兴趣。包括逻辑模拟(logic simulation)、编码理论(coding theory)和编译器优化(compiler optimization),他都可以把这些技术当成艺术来研究。”

分享到:
评论

相关推荐

    The Case for the Reduced Instruction Set Computer

    1. **内存速度与CPU速度的不匹配**:John Cocke 指出,复杂性始于从 IBM 701 向 709 的过渡。在 701 上,CPU 的速度大约是核心内存的十倍,这导致任何通过子程序实现的基本操作远慢于作为指令执行的操作。因此,为了...

    cyk-parser:Cocke–Younger–Kasami算法解析器

    Cocke–Younger–Kasami算法解析器 该项目展示了CYK算法在Java中的实现。 它是一种使用O(n ^ 3。| G |)时间复杂度的动态编程范例的自底向上解析算法,其中n是字符串的长度, G是Chomsky范式(CNF)语法的大小。 ...

    编译原理图优化

    在编译原理中,图优化是一个重要的概念,尤其是在编译器后端,涉及到诸多算法,其中主要是图论的算法。图优化的目的在于提高程序的执行效率,减少资源消耗。图优化算法可以在多个层面进行应用,包括但不限于程序的...

    hdtTurborecent.rar_系统编程_C/C++_

    6. **编译器优化**:为了最大化程序性能,了解如何利用编译器选项进行代码优化也是必要的,比如开启-O2或-O3优化级别。 7. **测试和验证**:在实际应用中,需要通过仿真和实际测试来验证Turbo码的性能。这可能涉及...

    CKY算法c++实现

    它由John Cocke、Joseph E. Kasami和John Younger分别独立提出,主要用于解决自底向上语法分析的问题。在编译器设计和自然语言处理等领域,CKY算法被用来将输入字符串转换成语法树,从而理解其结构和含义。 在C++中...

    计算机 体系结构 指令系统的变化及发展

    1975年,IBM公司的John Cocke首次提出RISC概念;随后,加州大学伯克利分校和斯坦福大学分别开发了RISC-I和MIPS处理器,推动了RISC设计风格的发展。 #### 2.2 RISC的主要特点 RISC的核心理念在于设计能够高效执行...

    满足LTE的turbo码C模型

    译码是Turbo码工作流程中的关键步骤,常见的译码算法有BCJR(Bahl-Cocke-Jelinek-Raviv)算法和 iterative软输入软输出(SISO, Soft Input Soft Output)算法,如BCJR的变种——Max-Log-MAP和Sum-Product算法。...

    turbo_C.rar_turbo

    7. **优化**:可能需要针对特定硬件平台或实时性要求对代码进行优化,例如减少计算复杂度或内存占用。 通过深入学习和实践这个"turbo_C"压缩包中的代码,不仅可以掌握turbo码的工作原理,还能提升C语言编程和通信...

    基于fpga的turbo码译码器的题目

    SISO解码器通常采用BCJR算法(Bahl-Cocke-Jelinek-Raviv算法),该算法能够根据接收信号的似然比信息进行解码。迭代过程则是在两个SISO解码器之间进行,信息通过“信息交换”进行多次迭代,直到达到预定的迭代次数...

    历届图灵奖获得者分类

    Wilkes、John Cocke、Alan J. Perlis、Edsger Wybe Dijkstra、John W. Backus、Kenneth Eugene Iverson、Niklaus Wirth 等人,他们都是计算机科学领域的开创者和先驱。 图灵奖获得者的研究成果 图灵奖获得者的...

    语法:C#中的CYK

    CYK算法主要应用于解析二分的、左线性的上下文无关文法,它的全称是Cocke-Younger-Kasami算法,由John Cocke、Joseph Younger和Takeo Kasami分别独立提出。该算法适用于表格解析,它通过填充一个二维表格来确定一个...

    计算机组成与性能设计4.16

    以及IBM RS/6000系列的设计师John Cocke等人的培训基地。 #### CDC 6600:超级计算机的诞生 Control Data Corporation (CDC)于1964年推出了被普遍认为是第一台超级计算机的CDC 6600(图4.16.2)。这台计算机的核心...

    语法分析器.rar

    语法分析器是编译器设计中的关键组成部分,它负责...通过深入研究这个压缩包中的内容,你可以更好地理解语法分析器的工作原理,学习如何构建和优化自己的语法分析工具,从而提升在编译器设计和软件开发领域的专业技能。

    编译原理语法分析器 编译原理语法分析器

    它可以帮助开发者更好地理解编译器的工作原理,进而优化编译器性能,提高程序的编译速度和生成代码的质量。在学习和实践过程中,掌握如何处理上下文无关文法、解决冲突问题以及优化分析表是至关重要的。 总之,编译...

    JAVA 编译原理 SLR(1)算法模拟器

    其中,SLR(1)算法是一种用于解析程序源代码的确定性有限自动机(DFA)构造方法,广泛应用于编译器的词法分析和语法分析阶段。这个JAVA编译原理SLR(1)算法模拟器旨在帮助学生和开发者深入理解这一复杂的编译过程,并...

    语音识别源码 基于c++

    6. **解码算法**:Viterbi算法常用于HMM的最优路径搜索,而CKY(Cocke-Kasami-Younger)算法或WFST(有限状态转换器)可用于更复杂的语言模型。 7. **训练与优化**:训练过程包括参数估计和模型选择。开发者需要对...

    IBM System p5产品与技术介绍.ppt

    System p5服务器基于IBM的Power处理器架构,这一架构自1970年代由John Cocke博士发明的RISC(精简指令集计算)理念发展而来,经历了多次技术创新,例如在1990年代应用于火星探路者任务的Power1处理器,以及1997年...

    希尔排序java.zip

    经典的增量序列是Hibbard序列、Sedgewick序列或Cocke-Hoare序列等。通常,初始增量设为序列长度的一半,然后每次减半,直到增量为1,即所有元素都在同一个子序列中。 2. **分组插入排序**: 对于每个子序列,使用...

    CYK分析算法1

    CYK分析算法,全称Cocke-Younger-Kasami算法,是由John C. Cocke、Joseph J. Younger和Ohzora Kasami在1960年代提出的一种用于解析上下文无关语言的动态规划算法。这个算法主要用于确定一个给定的单词序列是否能够由...

Global site tag (gtag.js) - Google Analytics