导航:首页 > 源码编译 > 现代体系结构下编译优化

现代体系结构下编译优化

发布时间:2022-04-26 07:23:18

‘壹’ 下面关于计算机系统性能的评估中不妥的是什么

大部分服务器厂商都会提供基本的Benchmark数据,如SPECint95, SPECfp95, SPECWeb96, tpmC等,但是这些数据都是厂商用最好的系统、最佳配置,由专家精心优化得到的,常常和用户实际应用的性能大相径庭。作为一个普通用户,如何进行计算机系统的性能评价呢?下面介绍一些评价服务器性能的基本方法。

三阶段评价一般,系统完整的性能评价应分成三个阶段,即基本性能参数、核心Benchmark、实际应用。

基本性能参数测试是获取计算机系统的硬件和系统软件的重要性能指标,通过这些指标结合应用的特征可以大致评价出系统的总体性能。核心Benchmark测试是针对具体的应用类以最常用的模式操作计算机系统,评价系统在这类应用下的性能,能较准确地评价出用户可以得到的具体性能。实际应用测试是在较真实的硬件配置和软件环境下,用实际应用或简化的、规模缩小的实际应用评价系统的真实性能。三类测评是相辅相成的,性能评价不仅要获取系统的性能指标,更重要的是对性能表现能够进行解释,从而优化系统以使实际应用获得较好性能。

基本性能参数测试包括CPU、内存、I/O、网络、操作系统、文件系统、编译器、数据库的性能指标。CPU性能指标除主频、运算部件数、流水线长度、定点性能、浮点性能外,要重视一、二级缓存的大小和带宽。现代体系结构和编译器都是针对应用的数据局部性,努力提高cache命中率,二级cache性能尤其重要。标准Benchmark可以测出缓存操作(包括TLB)的延迟。在评测浮点性能时,尤其是RISC结构和向量结构,要关注应用程序能否利用编译器和优化数学库将浮点部件充满。

‘贰’ 未来计算机体系结构将是什么样的发展趋势

计算机体系结构的现状及发展趋势

1.
计算机体系结构现状概述

计算机体系结构是选择并相互连接硬件组件的一门科学和艺术,
在人们不断
探索研究的过程中,
一直在追求计算机的功能、
性能、
功率以及花费的高度协调,
以期达到各方面的最佳状态,在花费、能量、可用性的抑制下,实现计算机的多
功能、高性能、低功率、少花费的一个新时代。根据当前体系结构的发展现状,
要实现以上全部要求的一台计算机,
还存在着诸多的限制条件,
包括逻辑上的以
及硬件上的。
计算机的体系结构范围很广,
定义也很宽泛,
它包含了指令集的设
计、组织、硬件与软件的边界问题等等,同时涉及了应用程序、技术、并行性、
编程语言、接口、编译、操作系统等很多方面。作为各项技术发展的中心,体系
结构一直在不断地朝前发展。

纵观计算机体系结构一路发展的历史,从
60
年代中期以前,最早的体系结
构发展的早期时代,
计算机系统的硬件发展很快,
通用硬件已经很普遍,
但是软
件的发展却很滞后,刚刚起步,还没有通用软件的概念。从
60
年代中期到
70
年代中期,
体系结构有了很大进步。
多道程序、
多用户系统引入了人机交互的新
概念,
开创了计算机应用的新境界,
使硬件和软件的配合上了一个新的层次,

是此时的软件由于个体化特性很难维护,出现了“软件危机”。从
20
世纪
70
年代中期开始,
分布式系统开始出现并流行,
极大地增加了系统的复杂性,
出现
了微处理器并获得了广泛应用。如今计算机的体系结构发展已经进入了第四代,
硬件和软件得到了极大的综合利用,
迅速地从集中的主机环境转变成分布的客户
机/服务器
(
或浏览器/服务器
)
环境,新的技术不断涌现出来。尽管如此,计算
机在总体上、功能上需要解决的问题仍然存在。随着
RISC
技术、
Cache
等创
新技术的发展,不仅仅在专业领域,越来越多的
PC
机也在向此靠拢。在每一次
进步与创新的同时使组件的成本降到最低成为最需要考虑的问题。

本文主要介绍高性能计算机的体系结构中应用的关键技术以及高性能计算
机体系结构技术的发展趋势。

2
高性能计算机体系结构

高性能计算
(high performance compute

HPC)
是一个计算机集群系统,它
通过各种互联技术将多个计算机系统连接在一起,
利用所有被连接系统的综合计
算能力来处理大型计算问题。
高性能计算方法的基本原理就是将问题分为若干部
分,
而相连的每台计算机
(
称为节点
)
均可同时参与问题的解决,
从而显着缩短了
解决整个问题所需的计算时间。解决大型计算问题需要功能强大的计算机系统,
随着高性能计算的出现,
使这一类应用从昂贵的大型外部计算机系统演变为采用
商用服务器产品和软件的高性能计算机集群。
因此,
高性能计算系统已经成为解
决大型问题计算机系统的发展方向。

对于服务器而言,
单纯地提高单个处理器的运算能力和处理能力正在变得越
来越难,虽然制造商从材料、工艺和设计等方面进行了不懈的努力,近期内
CPU
保持着高速的增长势态,
但高频之下的高功耗所引起的电池容量问题和散热问题
等负面效应,
以及这些负面效应对整机系统产生的电磁兼容性问题,
又反过来将
CPU
运算能力的提升推到了暮年。显然,提高单个处理器速度和性能已是强弩之
末。而研发多个
CPU
的并行处理技术,才是真正提高现代服务器处理能力和运算
速度的有效途径。目前,由图
SIMD
技术、
Single
Proc
技术、
Const
技术已经不再
使用,并行处理技术主要有
SMP
技术、
NUMA
技术、集群技术和网格技术等。根据
2006
年对排行前
500
名的机器作
TOP500
统计,
TOP500
中的
Cluster
约占
70

8
%,
MPP(

CC

NUMA)
约占
22
%,而
SMP
约占
7

2
%。

‘叁’ C语言文件的编译与执行的四个阶段并分别描述

开发C程序有四个步骤:编辑、编译、连接和运行。

任何一个体系结构处理器上都可以使用C语言程序,只要该体系结构处理器有相应的C语言编译器和库,那么C源代码就可以编译并连接到目标二进制文件上运行。

1、预处理:导入源程序并保存(C文件)。

2、编译:将源程序转换为目标文件(Obj文件)。

3、链接:将目标文件生成为可执行文件(EXE文件)。

4、运行:执行,获取运行结果的EXE文件。

(3)现代体系结构下编译优化扩展阅读:

将C语言代码分为程序的几个阶段:

1、首先,源代码文件测试。以及相关的头文件,比如stdio。H、由预处理器CPP预处理为.I文件。预编译的。文件不包含任何宏定义,因为所有宏都已展开,并且包含的文件已插入。我归档。

2、编译过程是对预处理文件进行词法分析、语法分析、语义分析和优化,生成相应的汇编代码文件。这个过程往往是整个程序的核心部分,也是最复杂的部分之一。

3、汇编程序不直接输出可执行文件,而是输出目标文件。汇编程序可以调用LD来生成可以运行的可执行程序。也就是说,您需要链接大量的文件才能获得“a.out”,即最终的可执行文件。

4、在链接过程中,需要重新调整其他目标文件中定义的函数调用指令,而其他目标文件中定义的变量也存在同样的问题。

‘肆’ 计算机体系结构的技术革新

计算机体系结构以图灵机理论为基础,属于冯·诺依曼体系结构。本质上,图灵机理论和冯·诺依曼体系结构是一维串行的,而多核处理器则属于分布式离散的并行结构,需要解决二者的不匹配问题。
首先,串行的图灵机模型和物理上分布实现的多核处理器的匹配问题。图灵机模型意味着串行的编程模型。串行程序很难利用物理上分布实现的多个处理器核获得性能加速.与此同时,并行编程模型并没有获得很好的推广,仅仅局限在科学计算等有限的领域.研究者应该寻求合适的机制来实现串行的图灵机模型和物理上分布实现的多核处理器的匹配问题或缩小二者之间的差距,解决“并行程序编程困难,串行程序加速小”的问题。
在支持多线程并行应用方面,未来多核处理器应该从如下两个方向加以考虑。第一是引入新的能够更好的能够表示并行性的编程模型。由于新的编程模型支持编程者明确表示程序的并行性,因此可以极大的提升性能。比如Cell处理器提供不同的编程模型用于支持不同的应用。其难点在于如何有效推广该编程模型以及如何解决兼容性的问题。第二类方向是提供更好的硬件支持以减少并行编程的复杂性。并行程序往往需要利用锁机制实现对临界资源的同步、互斥操作,编程者必须慎重确定加锁的位置,因为保守的加锁策略限制了程序的性能,而精确的加锁策略大大增加了编程的复杂度。一些研究在此方面做了有效的探索。比如,SpeculativeLockElision机制允许在没有冲突的情况下忽略程序执行的锁操作,因而在降低编程复杂度的同时兼顾了并行程序执行的性能。这样的机制使得编程者集中精力考虑程序的正确性问题,而无须过多地考虑程序的执行性能。更激进的,(TCC)机制以多个访存操作(Transaction)为单位考虑数据一致性问题,进一步简化了并行编程的复杂度。
主流的商业多核处理器主要针对并行应用,如何利用多核加速串行程序仍然是一个值得关注的问题。其关键技术在于利用软件或硬件自动地从串新程序中派生出能够在多核处理器上并行执行的代码或线程。多核加速串行程序主要有三种方法,包括并行编译器、推测多线程以及基于线程的预取机制等。在传统并行编译中,编译器需要花费很大的精力来保证拟划分线程之间不存在数据依赖关系。编译时存在大量模糊依赖,尤其是在允许使用指针(如C程序)的情况下,编译器不得不采用保守策略来保证程序执行的正确性。这大大限制了串行程序可以挖掘的并发程度,也决定了并行编译器只能在狭窄范围使用。为解决这些问题,人们提出推测多线程以及基于线程的预取机制等。然而,从这种概念提出到现在为止,这个方向的研究大部分局限于学术界,仅有个别商业化处理器应用了这种技术,并且仅仅局限于特殊的应用领域。我们认为动态优化技术和推测多线程(包括基于线程的预取机制)的结合是未来的可能发展趋势。
冯·诺依曼体系结构的一维地址空间和多核处理器的多维访存层次的匹配问题。本质上,冯·诺依曼体系结构采用了一维地址空间。由于不均匀的数据访问延迟和同一数据在多个处理器核上的不同拷贝导致了数据一致性问题。该领域的研究分为两大类:一类研究主要是引入新的访存层次。新的访存层次可能采用一维分布式实现方式。典型的例子是增加分布式统一编址的寄存器网络。全局统一编址的特性避免了数据一致性地考虑。同时,相比于传统的大容量cache访问,寄存器又能提供更快的访问速度。TRIPS和RAW都有实现了类似得寄存器网络。另外,新的访存层次也可以是私有的形式。比如每个处理器和都有自己私有的访存空间。其好处是更好的划分了数据存储空间,已洗局部私有数据没有必要考虑数据一致性问题。比如Cell处理器为每个SPE核设置了私有的数据缓冲区。另一类研究主要涉及研制新的cache一致性协议。其重要趋势是放松正确性和性能的关系。比如推测Cache协议在数据一致性未得到确认之前就推测执行相关指令,从而减少了长迟访存操作对流水线的影响。此外,TokenCoherence和TCC也采用了类似的思想。程序的多样性和单一的体系结构的匹配问题。未来的应用展现出多样性的特点。一方面,处理器的评估不仅仅局限于性能,也包括可靠性,安全性等其他指标。另一方面,即便考虑仅仅追求性能的提高,不同的应用程序也蕴含了不同层次的并行性。应用的多样性驱使未来的处理器具有可配置、灵活的体系结构。TRIPS在这方面作了富有成效的探索,比如其处理器核和片上存储系统均有可配置的能力,从而使得TRIPS能够同时挖掘指令级并行性、数据级并行性及指令级并行性。
多核和Cell等新型处理结构的出现不仅是处理器架构历史上具有里程碑式的事件,对传统以来的计算模式和计算机体系架构也是一种颠覆
2005年,一系列具有深远影响的计算机体系结构被曝光,有可能为未来十年的计算机体系结构奠定根本性的基础,至少为处理器乃至整个计算机体系结构做出了象征性指引。随着计算密度的提高,处理器和计算机性能的衡量标准和方式在发生变化,从应用的角度讲,讲究移动和偏向性能两者已经找到了最令人满意的结合点,并且有可能引爆手持设备的急剧膨胀。尽管现在手持设备也相对普及,在计算能力、可扩展性以及能耗上,完全起到了一台手持设备应该具备的作用;另一方面,讲究性能的服务器端和桌面端,开始考虑减少电力消耗赶上节约型社会的大潮流。
Cell本身适应这种变化,同样也是它自己创造了这种变化。因而从它开始就强调了不一样的设计风格,除了能够很好地进行多倍扩展外,处理器内部的SPU(SynergisticProcessorUnit协同处理单元)具有很好的扩展性,因而可以同时面对通用和专用的处理,实现处理资源的灵活重构。也就意味着,通过适当的软件控制,Cell能应付多种类型的处理任务,同时还能够精简设计的复杂。

‘伍’ 计算机组成原理结构

一、计算机的组成及学习大纲
1. 计算机的组成
计算机的三大件 :CPU、内存、主板
(1)CPU,中央处理器,计算机最核心的配件,负责所有的计算。
(2)内存,你编写的程序、运行的游戏、打开的浏览器都要加载到内存中才能运行,程序读取的数据、计算的结果也都在内存中,内存的大小决定了你能加载的东西的多少。
(3)主板,存放在内存中数据需要被CPU读取,CPU计算完成后,还要把数据写入到内存中,然而CPU不能直接插在内存上,这就需要主板出马了,主板上很多个插槽,CPU和内存都是插在主板上,主板的芯片组和总线解决了CPU和内存之间的通讯问题,芯片组控制数据传输的流转,决定数据从哪里流向哪里,总线是实际数据传输的告诉公里,总线速度决定了数据的传输速度。
(4)输入/输出设备,其实有了以上三大件之后,计算机就可以跑起来了。我们日常使用的话还需要键盘、鼠标、显示器等输入/输出设备,而很多云服务器通过SSH远程登录就可以访问,就不需要配显示器、鼠标、键盘这些东西,节省成本且方便维护。
(5)硬盘,有了硬盘数据才能长久的保存下来,大部分还会给自己的机器配上机箱和风扇,解决灰尘和散热问题,不过这些也不是必须的,用纸板和电风扇替代也一样可以用。
(6)显卡,显卡里有GPU图形处理器,主要负责图形渲染,使用图形界面操作系统的计算机,显卡是必不可少的。现在的主板都带了内置的显卡,如果想玩游戏、做图形渲染,一般需要一张单独的显卡,插在主板上。
2. 冯·诺依曼体系
现代计算机的硬件基础架构都是依赖于冯诺依曼提出的冯诺依曼体系结构,现代计算机的核心架构可以抽象为五个基础组件:运算器、控制器、存储器、输入设备和输出设备。
具体到现代计算机,运算器和控制器组成了现代计算机的CPU,存储器对应着内存和硬盘,主板控制着CPU、内存、硬盘、输出/输出设备之间的通讯。
冯诺依曼体系结构也叫做存储程序计算机,即可编程、可存储的计算机。
任何一台计算机的任何一个部件都可以归到运算器、控制器、存储器、输入设备和输出设备中,而所有的现代计算机也都是基于这个基础架构来设计开发的。
冯诺依曼体系结构确立了我们现代计算机的硬件基础架构,学习计算机组成原理,就是学习和拆解冯诺依曼体系。

‘陆’ 哪本"编译原理"的书比较好

我们学校用的是《编译原理》与《编译原理与实践》这两本书,这两本书都是国外的教材。我觉得《编译原理与实践》这本书不错,自学应该能看懂,而且代码比较多,书最后还有整个小型编译器的源代码。
编译不好学,你就慢慢学吧。

下面的资料请作参考:

当代编译技术三大圣经级别的教材

1.龙书(Dragon book)
书名是Compilers: Principles,Techniques,and Tools
作者是:Alfred V.Aho,Ravi Sethi,Jeffrey D.Ullman

内容简介
《编译原理》作者Alfred V.Aho、Ravi Sethi和Jeffrey D.Ullman是世界着名的计算机 科学家,他们在计算机科学理论、数据库等很多领域都做出了杰出贡献。《编译原理》 是编译领域无可替代的经典着作,被广大计算机专业人士誉为“龙书”。《编译原理》一 直被世界各地的着名高等院校和科研机构(如贝尔实验室、哥伦比亚大学、普 林斯顿大学和斯坦福大学等)广泛用作本科生和研究生编译原理与技术课程的 教材,《编译原理》对我国计算机教育界也具有重大影响。 书中深入讨论了编译器设计的重要主题,包括词法分析、语法分析、语法制 导分析、类型检查、运行环境、中间代码生成、代码生成、代码优化等,并在 最后两章中讨论了实现编译器的一些编程问题和几个编译器实例,而且每章都 提供了大量的练习和参考文献。

与上一版相比,《编译原理》第二版进行了全面的修订,涵盖了编译器开发方面的最新进展。每章中都提供了大量的系统及参考文献。《编译原理》是编译原理课程方面的经典教材,内容丰富,适合作为高等院校计算机及相关专业本科生及研究生的编译原理课程的教材,也是广大技术人员的极佳参考读物。

作者简介
Alfred V.Aho,美国歌伦比亚大学教授,美国国家工程院院士,ACM和IEEE会士,曾获得IEEE的冯·诺伊曼奖。着有多部算法、数据结构、编译器、数据库系统及计算机科学基础方面的着作。
Monica S.Lam,斯坦福大学计算机科学系教授,曾任Tensilica的首席科学家,也是Moka5的首任CEO。曾经主持SUIF项目,该项目产生了最流行的研究用编译器之一。
Ravi Sethi,Avaya实验室总裁,曾任贝尔实验室高级副总裁TLucent Technologies通信软件的CTO。他曾在宾夕法尼亚州立大学、亚利桑那州立大学和普林斯顿大学任教,是ACM会士。
Jeffrey D.Ullman斯坦福大学计算机科学系教授和Gradiance CEO,他的研究兴趣包括数据库理论、数据库集成、数据挖掘和利用信息基础设施教学等。他是美国国家工程院院士、IEEE会士,获得过ACM的KarIstrom杰出教育家奖和Knuth奖。
第一版中文版
第二版中文版

2.鲸书(Whale book)
书名是:Advanced Compiler Design and Implementation
作者是:Steven S.Muchnick

内容简介
本书迎接现代语言和体系结构的挑战,帮助读者作好准备,去应对将来要遇到的编译器设计的问题。
本书涵盖现代微处理器编译器的设计和实现方面的所有高级主题。本书从编译设计基础领域中的高级问题开始,广泛而深入地阐述各种重要的代码优化技术,分析各种优化之间的相对重要关系,以及实现这些优化的最有效方法。
本书特点
●为理解高级编译器设计的主要问题奠定了基础
●深入阐述优化问题
●用Sun的SPARC、IBM的POWER和PowerPC、DEC的Alpha以及Intel的Pentium和相关商业编译 器作为案例,说明编译器结构、中间代码设计和各种优化方法
●给出大量定义清晰的关于代码生成、优化和其他问题的算法
●介绍由作者设计的以清晰、简洁的方式描述算法的语言ICAN (非形式编译算法表示)。

本书是经典的编译器着作,与“龙书”齐名,称为鲸书。书中针对现代语言和体系结构全面介绍了编译器设计与实现的高级论题,从编译器的基础领域中的高级问题开始,然后深入讨论了各种重要的代码优化。本书专为编译器专业人士和计算机专业本科生,研究生编写,在设计和实现高度优化的编译器以及确定优化的重要性和实现优化的最有效的方法等方面,为读者提供了非常有价值的指导。

作者简介
Steven S.Muchnick,曾是计算机科学教授,后作为惠普的PA-RISC和SUN的SPARC两种计算机体系结构的核心开发成员,将自己的知识和经验应用于编译器设计,并担任这些系统的高级编译器设计与实现小组的领导人。他在研究和开发方面的双重经验,对于指导读者作出编译器设计决策极具价值。

3.虎书(Tiger book)
书名是:Modern Compiler Implementation in C /Java /ML,Second Edition
作者是:Andrew W.Appel,with Jens Palsberg

内容简介
《现代编译原理——C语言描述(英文版)/图灵原版计算机科学系列》全面讲述了现代编译器的各个组成部分,包括:词法分析、语法分析、抽象语法、语义检查、中间代码表示、指令选择、数据流分析、寄存器分配以及运行时系统等。与大多数编译原理的教材不同,《现代编译原理——C语言描述(英文版)/图灵原版计算机科学系列》采用了函数语言和面向对象语言来描述代码生成和寄存器分配,对于编译器中各个模块之间的接口都给出了实际的 C 语言头文件。 全书分成两部分,第一部分是编译的基础知识,适用于第一门编译原理课程(一个学期);第二部分是高级主题,包括面向对象语言和函数语言、垃圾收集、循环优化、 SSA(静态单赋值)形式、循环调度、存储结构优化等。
本书是一本着名的编译原理课程的教材。国际上众多名校均采用本书作为编译原理课程的教材,包括美国麻省理工学院、加州大学伯克利分校、普林斯顿大学和英国剑桥大学等。本书在国外享有“虎书”的称号,与有“龙书”之称的《编译原理》(Alfred Aho 等编着)齐名。与编译原理方面的其他名着相比,本书出版时间晚,内容新。 书中专门为学生提供了一个用 C 语言编写的实习项目,包括前端和后端设计,学生可以在一学期内创建一个功能完整的编译器。

作者简介
Andrew W.Appel,美国普林斯顿大学计算机科学系教授,第26届ACM SIGPLAN-SIGACT程序设计原理年会大会执行主席,1998-1999年在贝尔实验室做研究工作。主要研究方向是计算机安全、编译器设计、程序设计语言等。

‘柒’ 现在主流计算机体系结构下,数据库在程序编译与链接过程中是否有作用是怎样的(大

完全没有,程序在编译和链接的过程中与数据库毫无关系,只有运行过程中有关系

‘捌’ 求计算机体系结构的一些技术描述英语文章

Computer architecture with a focus on the development direction of
I. INTRODUCTION
Computer architecture mainly refers to the systematic computer design and construction,
With the computer architecture apply to different needs and applications. Modern computer
The two main system architecture is CISC and RISC system. One RISC
In the last 20 of the mainstream. With the popularity of computer application, RISC Guitar
Structure and many have appeared to handle multimedia and mobile personal computer as the main
Application of the trend of capacity uncoordinated. In order to eliminate these non-conforming, the next computer
Architecture will develop in the direction of what to do »this paper illustrates these issues
Shu and annotations.

Second, the two main types of computer architecture that

Today's computer architecture, from the traditional command-based interface of
This is divided into two categories: one category is CISC architecture, such as the X86 INTEL
Chips, and the other is a RISC architecture, such as SPARC, MIPS, POWERPC, and so on. Whether or CISC architecture RISC architecture, people
In computer architecture design are pursuing two objectives:

1. Oriented applications (software) described in
The computer system design-oriented applications (software) makes self-described aspects
The directive has a relatively high level of semantics, this CISC more obvious, because of its
Many can command the support of high-level language semantics. The RISC is more implicit
Bi, it is relying on streamlining the command of the compiler optimization (that is, through a number of directives have streamlined
- Portfolio) to support the high-level language semantics.

2. Application-oriented processing
The computer system in the design of application-oriented processing, making their own means
The processing speed has increased, thereby accelerating the speed of processing applications. This RISC
Performance of the more obvious, because it's instructions and hardware decoding to achieve a direct flow
Waterline technology greatly improved its processing speed, and in the CISC in the first place
Increase the hardware resources to support complex high-level semantics to the directive itself Italy
Improve the taste of processing speed.

In the past 20 years, RISC technology development, and graally replace C1SC
Into the mainstream workstation and server technology. RISC computer to superscalar, flow
Waterline, the implementation of arbitrary sequence, prefetch instruction / data, branch prediction and cancelled orders and other hardware
Were based on technology and the corresponding compiler optimization technology as the core, the use of command-level
Parallel, in the field of high-end workstations and servers occupy a position of absolute rule.

Third, the current structure of the computer system problems
More than 60 years, Von Neumann architecture for the world's many fine scientists
Carefully constructed so as to create today's computer world. Von Neumann's Wei
Great inventions, its core are three points: 1) binary 2) storage model, 3)
There is only one moment of a serial operation mechanism.

Although the computer sector, the large number of national experts in research on value theory, but
So far almost no breakthrough in the binary system. People use a lot of storage management
The software technology and methods, trying to one-dimensional model of storage to two-dimensional, but
Has not escaped Feng storage model and register the storage structure, makes the string
Trip mechanism on new breakthroughs will be very difficult. The main problems:
中文意思:计算机体系结构的研究重点与发展方向分析
一、引言
计算机体系结构主要指计算机的系统化设计和构造,不
同的计算机体系结构适用于不同的需求或应用。现代计算机
的两种主要体系结构是 CISC体系和 RISC体系。其中 RISC
是近 20年的研究主流。而随着计算机应用的普及,RISC结
构也出现了许多与以多媒体处理和个人移动计算机为主要内
容的应用趋势的不协调。为了消除这些不协调,未来计算机
体系结构将会向什么方向发展呢?本文将对这些问题进行阐
述和说明。

二、两种主要的计算机体系结构说明

当今的计算机体系结构,从传统意义指令界面上来看基
本划分成两大类:一类是 CISC体系结构,如 INTEL的 X86
芯片,另一类是 RISC体系结构,如SPARC、MIPS、 POWERPC、等。不管是 CISC体系结构还是 RISC体系结构,人们
在计算机体系结构的设计上均追求两方面的目标:

1.面向应用(软件)描述方面
设计的计算机体系在面向应用(软件)描述方面使得自
己的指令语义层次比较高,这点 CISC较为明显,因为它有
许多指令可以直接支持高级语言的语义。而 RISC则比较隐
蔽,它是靠精简指令的优化编译(即通过若干条精简指令有
机组合)来支持高级语言的语义。

2.面向应用处理方面
设计的计算机体系在面向应用处理方面,使得自己的指
令处理速度明显提高,进而加速应用处理的速度。这点 RISC
表现的比较明显,因为它的指令硬件译码直接实现和采用流
水线技术等大大提高了它的处理速度,而在 CISC中,当初
增加硬件的资源支持复杂的高层次的语义的指令,本身就意
味着提高应用的处理速度。

在过去的 20年里,RISC技术不断发展,逐渐取代 C1SC
成为工作站和服务器的主流技术。RISC计算机以超标量、流
水线、乱序执行、预取指令/数据、分支预测和指令取消等硬
件技术和相应的基于编译器的优化技术为核心,利用指令级
并行,在高端工作站和服务器领域占据了绝对的统治地位。

三、当前计算机体系结构存在的问题
60多年来,冯 ·诺伊曼体系结构为世界众多的科学家精
心地构造,从而创造了今天的计算机世界。冯 ·诺伊曼的伟
大发明,其核心有三点:1)二进制;2)存储模型;3)一
个时刻只有一个操作的串行机制。

虽然在计算机界,众多的国家专家在研究多值理论,但
至今几乎没有突破二进制的体系。人们利用了很多存储管理
的软件技术和方法,力图将一维的存储模型改为二维的,但
仍然没有逃出冯氏存储模型和寄存器存储的结构,使得在串
行机制上进行新的突破将十分困难。主要表现在:

‘玖’ 在不考虑编译器优化等因素下,下面那个运算比较快

下面是在编译器不优化的情况下的代码反汇编后的结果
14: if (a > b)//我们看到,只有3条指令,
0040104D mov edx,dword ptr [ebp-4] //将a放入寄存器EDX
00401050 cmp edx,dword ptr [ebp-8] //比较EDX和b的大小
00401053 jle main+3Ch (0040105c) //如果a<b跳转到0040105c
15: {
16: return 1;
00401055 mov eax,1
0040105A jmp main+4Fh (0040106f)
17: }
18: if (a - b > 0)//我们看到有4条指令
0040105C mov eax,dword ptr [ebp-4]//将a放入EAX
0040105F sub eax,dword ptr [ebp-8]//a-b的差放入EAX
00401062 test eax,eax//比较EAX是否为0
00401064 jle main+4Dh (0040106d)//条件跳转
19: {
20: return 2;
00401066 mov eax,2
0040106B jmp main+4Fh (0040106f)
21: }
所以我认为if (a > b) {....}
效率更高

阅读全文

与现代体系结构下编译优化相关的资料

热点内容
javaoa开发 浏览:875
单片机的用途和使用方法 浏览:944
程序员在新公司上班 浏览:430
发信如何设置服务器 浏览:77
源代码查询加密数字 浏览:605
附带编译 浏览:108
海康萤石云app怎么回放 浏览:404
写一个编译器怎么写 浏览:285
单片机蜂鸣器发声原理 浏览:137
程序员那么可爱陆离跳水是哪集 浏览:17
如何制作cdn服务器 浏览:111
写java加密程序 浏览:659
菜鸟数据分析pdf 浏览:291
单片机做实用东西 浏览:651
我的世界最强斗罗服务器怎么觉醒武魂 浏览:931
密友圈app怎么切换用户登录 浏览:217
我把程序员当爱豆追 浏览:978
android判断电话接通 浏览:646
大孔文件夹 浏览:785
反诈骗app在哪里下载 浏览:527