1、第3章 计算机体系结构 第3章 计算机体系结构 3.1 计算机的产生、发展演变、分类及应用计算机的产生、发展演变、分类及应用 3.2 图灵机的基本思想和冯图灵机的基本思想和冯诺依曼体系结构诺依曼体系结构 3.3 计算机系统概述计算机系统概述 3.4 高性能计算机高性能计算机 3.5 新一代计算机新一代计算机 第3章 计算机体系结构 3.1 计算机的产生、发展演变、分类及应用计算机的产生、发展演变、分类及应用3.1.1 计算机的产生计算机的产生在人类社会的整个发展历程中,人们一直都在寻找快速有效的计算工具。从远古时期先民们结绳记事的绳结到战国争雄时谋士们运筹帷幄的筹,从公元六百多年前中国人的算盘
2、到17世纪欧洲人的计算尺,经历了由简单到复杂、从低级到高级的漫长的历史发展过程。随着机械工业的出现,英国数学家巴贝奇在1832年首先提出通用数字计算机的设计思想,并且设计出第一台由外部指令驱动的计算机,可是由于缺乏资金和受当时技术水平的限制,他未能制造出这样的机器。第3章 计算机体系结构 1889年,美国科学家赫尔曼何乐礼研制出以电力为基础的电动制表机,用以储存计算资料。1930年,美国科学家范内瓦布什造出世界上首台模拟电子计算机。1946年2月14日,由美国军方定制的世界上第一台电子计算机“电子数字积分计算机”(Electronic Numerical And Calculator,ENIA
3、C)在美国宾夕法尼亚大学问世了。ENIAC(埃尼阿克)是美国奥伯丁武器试验场为了满足计算弹道需要而研制成的,这台计算机使用了17840个电子管,大小为80英尺8英尺,重达28吨,功耗为170 kW,其运算速度为5000次每秒的加法运算,造价约为487 000美元(见图3.1)。第3章 计算机体系结构 ENIAC的问世具有划时代的意义,表明电子计算机时代的到来。图3.1 第一台电子计算机ENIAC第3章 计算机体系结构 3.1.2 计算机的发展演变计算机的发展演变第一代:电子管计算机(19461958年)。硬件方面:逻辑元件采用的是真空电子管,主存储器采用汞延迟线、阴极射线示波管静电存储器、磁鼓
4、、磁芯;外存储器采用的是磁带。软件方面:采用的是机器语言、汇编语言。特点:体积大、功耗高、可靠性差、速度慢(一般为数千次至数万次每秒)、价格昂贵,但为以后的计算机发展奠定了基础。应用:主要用于科学计算和军事方面。第3章 计算机体系结构 第二代:晶体管计算机(19581964年)。硬件方面:以晶体管为逻辑元件,用磁芯作为主存储器,开始使用磁盘机、磁带机等外存储设备。软件方面:汇编语言得到了实际应用,高级语言如FORTRAN、BASIC、COBOL相继问世。特点:计算机的体积缩小、能耗降低、可靠性提高、运算速度提高(一般为数10万次每秒,可高达300万次每秒),性能比第一代计算机有很大的提高。应用
5、:以科学计算和事务处理为主,并开始进入工业控制领域。第3章 计算机体系结构 第三代:集成电路计算机(19641970年)。硬件方面:逻辑元件采用中、小规模集成电路(MSI、SSI),主存储器仍采用磁芯。软件方面:出现了分时操作系统以及结构化、规模化程序设计方法。特点:速度更快(一般为每秒数百万次至数千万次),而且可靠性有了显著提高,价格进一步下降,产品走向了通用化、系列化和标准化等。应用:开始进入工业控制、文字处理和图形图像处理领域。第3章 计算机体系结构 第四代:大规模集成电路和超大规模集成电路计算机(1970年至今)。硬件方面:将CPU、存储器及各I/O接口集成在大规模集成电路和超大规模集
6、成电路芯片上。由于集成技术的发展,半导体芯片的集成度更高,每块芯片可容纳数万乃至数百万个晶体管,并且可以把运算器和控制器都集中在一个芯片上,从而出现了微处理器,并且可以用微处理器和大规模、超大规模集成电路组装成微型计算机,就是我们常说的微电脑或PC。微型计算机体积小,价格便宜,使用方便,但它的功能和运算速度已经达到甚至超过了过去的大型计算机。另一方面,利用大规模、超大规模集成电路制造的各种逻辑第3章 计算机体系结构 芯片,已经制成了体积并不很大,但运算速度可达一亿甚至几十亿次的巨型计算机。软件方面:发展了分布式操作系统、数据库和知识库系统、网络管理系统和面向对象语言等,开发了诸多可靠的高级语言
7、,软件工程逐步标准化,并形成了软件产业。特点:计算机在存储容量、运算速度、可靠性、精度及性价比方面均比上一代计算机有了较大突破。应用领域:从科学计算、事务管理、过程控制逐步扩展到所有行业或部门,并逐渐走向家庭。第3章 计算机体系结构 3.1.3 计算机的分类计算机的分类1按信息的表示和处理方式划分按信息的表示和处理方式划分按信息的表示和处理方式划分,可将计算机分为数字计算机、模拟计算机及数字模拟混合计算机。数字计算机是通过电信号的有无来表示数,也就是用离散的二进制形式的代码串(0和1组成的代码串)来表示信息,并利用算术和逻辑运算法则进行计算的。它具有运算速度快、精度高、灵活性强和便于存储等优点
8、,因此适合于科学计算、信息处理、实时控制和人工智能等应用。我们通常所用的计算机一般都指的是数字计算机。第3章 计算机体系结构 模拟计算机是通过电压的大小来表示数,即通过电的物理变化过程来进行数值计算的,是专用于处理连续的电压、温度、速度等模拟数据的计算机。其运算速度快,但精度不高,应用范围较窄。模拟计算机目前已很少生产。数字模拟混合计算机是指数字计算与模拟技术灵活结合的电子计算机,输入和输出既可以是数字数据,也可以是模拟数据。但这种计算机设计困难,造价昂贵。第3章 计算机体系结构 2按计算机的用途划分按计算机的用途划分按计算机的用途划分,可将计算机分为专用计算机和通用计算机。专用计算机是用于解
9、决某一特定应用领域,为解决某些特定问题而设计的,应用于如自动化控制、工业仪表、军事等领域。其特点是结构简单,成本低,可靠性高,但功能单一,较难用于其他领域。通用计算机是针对多种应用领域或者面向多种处理过程而研制的。它有较复杂的系统结构,有较丰富的通用软件,适用于解决一般问题,其适应性强,应用面广,如科学计算、数据处理和过程控制等。目前生产的计算机多数是通用计算机。第3章 计算机体系结构 3按计算机的规模与性能划分按计算机的规模与性能划分计算机的规模由计算机的一些主要技术指标来衡量,如字长、运算速度、存储容量、外部设备、输入和输出能力、配置软件丰富与否、价格高低等。按计算机的规模大小与性能高低划
10、分,可将计算机分为巨型机、大型机、中型机、小型机和微型机。巨型机又称超级计算机,是计算机中性能最好、功能最强的。其运算速度已达几十万亿次每秒(并且这个记录还在不断刷新),字长为64位甚至更长,主存储容量达到KG字节数量级;一般是多CPU或者多机系统,按照并行处理方式工作,用于国防尖端技术和现代科学计算等领域。巨型机是计算机发展的一个重要方向,研制巨型机也是衡量一个国家经济实力和科学水平的重要标志。第3章 计算机体系结构 微型机以使用微处理器、结构紧凑为特征,是计算机中价格最低、应用最广、发展最快、使用最普及、产量最大的一类计算机,其体积小、功耗低、成本少、灵活性大,性能价格比明显优于其他类。现
11、在的微型机已经发展到以酷睿(Core)系列微处理器为标志的第六代,字长已经达到64位,主存储器容量可达到32 GB,时钟频率3 GHz以上。常见的微型机有IBM-PC(及其兼容机)系列和苹果(Apple)公司的Macintosh系列。第3章 计算机体系结构 微型机又可分为台式机、笔记本电脑和掌上电脑三种。从大型机派生出来的一个分支称为工作站。工作站是具备强大的数据运算与图形、图像处理能力的高性能计算机,与大型机相比,其体积较小,价格比较便宜,适用于工程设计、图形处理、科学研究、模拟仿真等专业领域。第3章 计算机体系结构 3.1.4 计算机的应用计算机的应用按照应用领域,可以将计算机能做的事情概
12、括如下:1.科学计算科学计算科学计算主要以获得数值计算的结果为目的。计算机是科学技术领域中进行分析、计算的理想工具。例如,人造卫星、导弹、宇宙飞船飞行轨迹的计算,大型水利枢纽、桥梁、高层建筑的结构分析计算与仿真,天气预报的数据分析与计算,石油勘探、地震信号的分析,人造蛋白质、人工胰岛素合成等生物化学的过程分析与实现方法探寻,等等。第3章 计算机体系结构 2.实时控制实时控制计算机除了能实现常规仪表的过程控制功能外,还可实现系统的最优控制、自适应控制,乃至智能控制等高水平控制和全企业的一体化控制。计算机控制也是现代武器系统实现搜索、定位、瞄准、射击、机动所必不可少的技术。例如,人造卫星和导弹的发
13、射就必须使用计算机实时控制系统和技术。第3章 计算机体系结构 3.数据处理数据处理数据处理是指用计算机处理生产活动、科学研究中获得的大量数据,对这些数据进行搜集、转换、分类、存储、传送、生成报表,以满足查询、统计、排序等的需要。比如人事管理、工资管理、财务账目计算、生产和库存管理、报表统计分析、情报检索等。数据处理的特点是涉及的数据量大,以管理为主要目的。计算的方法比较简单,要求的精确度较低。数据处理依托数据库技术和数据库管理系统,是目前计算机应用和研究的一个热点。第3章 计算机体系结构 4.计算机辅助计算机辅助用计算机对船舶、飞机、汽车、建筑、机械、集成电路、服装等产品进行辅助设计,如提供模
14、型、计算、绘图等,称为计算机辅助设计(Computer Aided Design,CAD)。它可以提高设计工作的自动化程度,提高设计的质量和效率,节省成本。计算机辅助制造(Computer Aided Manufacturing,CAM)是使用计算机控制生产设备的操作代替人的部分劳动,提高产品质量,降低成本,缩短生产周期。如数控机床、柔性制造系统等都是计算机辅助制造的例子。第3章 计算机体系结构 计算机应用教学和训练称为计算机辅助教学(Computer Assisted Instruction,CAI)。CAI是一种新兴的教育技术,可以有效地提高教学的质量和效率,节省训练经费,在教学和训练中取
15、得了很大的成功。计算机辅助测试(Computer Aided Test,CAT)是指利用计算机协助进行测试的一种方法。计算机辅助测试可以用在不同的领域。在教学领域,可以使用计算机对学生的学习效果进行测试和学习能力估量;在软件测试领域,可以使用计算机来进行软件的测试,提高测试效率。第3章 计算机体系结构 计算机辅助工程(Computer Aided Engineering,CAE)是指用计算机对工程和产品进行性能与安全可靠性分析,对其未来的工作状态和运行行为进行模拟,及早发现设计缺陷,并证实未来工程、产品功能和性能的可用性与可靠性。5.文字处理和办公自动化文字处理和办公自动化文字处理是计算机应用
16、的一个重要方面。可以说凡是用到语言文字的地方,都可以用上计算机。例如毕业论文、学术论文和著作的撰写,学术报告的演示,普通公文和信件的处理,文献摘录、书刊、报纸的排版,以及办公室数据资料的查询、统计、分析,编排和打印文件,发布行政公务通告等。第3章 计算机体系结构 6.人工智能人工智能智能化是计算机技术发展的一个重要方向。人工智能是研究如何构造智能系统(包括智能机器),以便模拟、延伸、扩展人类智能的一门科学。例如,研究并模拟人的感知(视觉、听觉、嗅觉、触觉)、学习、推理,甚至模拟人的联想、感悟、发现等思维过程。人工智能的研究与应用领域有模式识别、定理自动证明、专家系统与知识工程、机器翻译、自然语
17、言理解、语音合成和语音识别、智能机器人等。其中智能机器人的研究和应用是人工智能研究成果的集中体现,对于科学研究和生产技术的发展有重要意义。第3章 计算机体系结构 7.计算机网络应用计算机网络应用计算机网络是计算机技术和通信技术相结合的产物。计算机网络综合了计算机系统资源丰富和通信系统迅速及时的优势,具有很强的生命力。在Internet的推动下,我国的银行、海关、税务、高校、民航、铁路、政府部门相继建立了自己的计算机网络系统。基于计算机网络的信息服务行业也得到了长足的发展。在国内外众多的网站上可以方便地获取和传递信息,查阅文献,做到资源共享,大大提高了工作、学习的效率。第3章 计算机体系结构 3
18、.2 图灵机的基本思想和冯图灵机的基本思想和冯诺依曼体系结构诺依曼体系结构3.2.1 图灵机的基本思想图灵机的基本思想图灵机又称图灵计算、图灵计算机,是由数学家阿兰麦席森图灵(19121954)提出的一种抽象计算模型,即将人们使用纸笔进行数学运算的过程进行抽象,由一个虚拟的机器替代人们进行数学运算。第3章 计算机体系结构 概括地说,图灵机就是指一个抽象的机器,它有一条无限长的纸带,纸带分成了一个一个的小方格,每个方格有不同的颜色。有一个机器头在纸带上移来移去。机器头有一组内部状态,还有一些固定的程序。在每个时刻,机器头都要从当前纸带上读入一个方格信息,然后结合自己的内部状态查找程序表,根据程序
19、输出信息到纸带方格上,并转换自己的内部状态,然后进行移动,如图3.2所示。第3章 计算机体系结构 图3.2 图灵机第3章 计算机体系结构 图灵的基本思想是用机器来模拟人们用纸笔进行数学运算的过程,他把这样的过程看做下列两种简单的动作:(1)在纸上写上或擦除某个符号;(2)把注意力从纸的一个位置移动到另一个位置。而在每个阶段,人要决定下一步的动作,依赖于如下两点:(1)此人当前所关注的纸上某个位置的符号;(2)此人当前思维的状态。第3章 计算机体系结构 为了模拟人的这种运算过程,图灵构造出一台假想的机器,该机器由以下几个部分组成:(1)一条无限长的纸带Tape。纸带被划分为一个接一个的小格子,每
20、个格子上包含一个来自有限字母表的符号,字母表中有一个特殊的符号表示空白。纸带上的格子从左到右依此被编号为0,1,2,纸带的右端可以无限伸展。(2)一个读写头Head。该读写头可以在纸带上左右移动,它能读出当前所指的格子上的符号,并能改变当前格子上的符号。(3)一套控制规则Table。它根据当前机器所处的状态以及当前读写头所指的格子上的符号来确定读写头下一步的动作,并改变状态寄存器的值,令机器进入一个新的状态。第3章 计算机体系结构(4)一个状态寄存器。它用来保存图灵机当前所处的状态。图灵机的所有可能状态的数目是有限的,并且有一个特殊的状态,称为停机状态。注意这个机器的每一部分都是有限的,但它有
21、一个潜在的无限长的纸带,因此这种机器只是一个理想的设备。图灵认为这样的一台机器就能模拟人类所能进行的任何计算过程。具体地说,数据被制成一串0和1的纸带,送入机器中作为输入,例如:00010000100011机器可对输入纸带执行一些基本动作,如“翻0为1”、“翻1为0”、“前移一位”、“停止”。第3章 计算机体系结构 机器对基本动作的执行是由指令来控制的,机器是按照指令的控制选择执行哪一个动作,指令也可以用0和1来表示,如01表示“翻0为1”(当输入为1时不变),10表示“翻1为0”(当输入为0时不变),11表示“前移一位”,00表示“停止”。输入如何变为输入的控制,可以用指令编写一个程序来完成
22、,例如:01,11,10,11,01,11,01,11,00第3章 计算机体系结构 注意,为了便于阅读,程序的指令中间加了逗号以示区分。上述程序的内容为“01翻转0为1,11前移一位,10翻转1为0,11前移一位,01翻转0为1,11前移一位,01翻转0为1,11前移一位,00停止,不管纸带上是什么,其都将输出1011”。机器能够读取程序,按程序中的指令顺序读取指令,读一条指令执行一条指令,由此实现自动计算。因此可以说,图灵机就是一个最简单的计算机模型,图灵机将控制处理的规则用0和1表达,将待处理的数据及处理结果也用0和1表达,处理即是对0和1的变换(可以用机械或电子系统实现)。第3章 计算机
23、体系结构 图灵机给我们一个启示,即如何实现一个复杂系统。系统可被认为是由基本动作(注:基本动作是容易实现的)以及基本动作的各种组合所构成的(注:多变的、复杂的动作可由基本动作的各种组合来实现)。因此,实现一个系统仅需实现这些基本动作以及实现一个控制基本动作组合与执行次序的机构。对基本动作的控制就是指令;而指令的各种组合及其次序就是程序。系统可以按照“程序”控制“基本动作”的执行以实现复杂的功能。图灵又把程序看做是将输入数据转换为输出数据的一种变换函数,这种变换函数可以一步一步地来实现。进一步,数据、指令和程序都可以用0和1表达,因此也就都能被计算。第3章 计算机体系结构 3.2.2 冯冯诺依曼
24、体系结构诺依曼体系结构从20世纪初,物理学和电子学科学家们就在争论制造可以进行数值计算的机器应该采用什么样的结构。人们被十进制这个人类习惯的计数方法所困扰。所以,那时以研制模拟计算机的呼声更为响亮和有力。1945年6月,冯诺依曼与戈德斯坦、勃克斯等人联名发表了一篇长达101页纸的报告First Draft of a Report on the EDVAC,即计算机史上著名的“101页报告”。在报告中冯诺伊曼明确提出了计算机的体系架构。他提出采用二进制作为数字计算机的数制基础,将数据和程序用二进制形式的“0”、“1”代码串来表示,并把它们存放到计算机的一个称第3章 计算机体系结构 为存储器的记忆
25、装置中。需要时可以把它们读出来,由程序控制计算机的操作。计算机按照一定的顺序逐条执行程序的指令,期间不必人工干预,因而可以实现自动高速运算。这就是所谓的“程序控制工作方式”,也是计算机与其他信息处理机(如计算器、电报机、电话机、电视机等)的区别。冯诺依曼第3章 计算机体系结构 根据冯诺依曼体系结构构成的计算机,必须具有如下功能:(1)把需要的程序和数据送至计算机中;(2)必须具有长期记忆程序、数据、中间结果及最终运算结果的能力;(3)能够完成各种算术、逻辑运算和数据传送等数据加工处理的能力;(4)能够按照要求将处理结果输出给用户。第3章 计算机体系结构 为了完成上述功能,计算机必须具备五大基本
26、组成部件,包括:(1)用于输入数据和程序的输入设备;(2)用于记忆程序和数据的存储器;(3)用于完成数据加工处理的运算器;(4)用于控制程序执行的控制器;(5)用于输出处理结果的输出设备。从第一台电子计算机开始,计算机经历了多次的更新换代,不管是最原始的还是最先进的计算机,使用的仍然是冯诺依曼最初设计的计算机体系结构。因此,冯诺依曼被世界公认为“计算机之父”,他设计的计算机系统结构被称为“冯诺依曼体系结构”。图3.3所示为冯诺依曼结构图。第3章 计算机体系结构 图3.3 冯诺依曼结构图第3章 计算机体系结构 3.3 计算机系统概述计算机系统概述3.3.1 软件系统软件系统1指令与指令系统指令与
27、指令系统指令是指示计算机进行某种操作的命令。一条指令就是机器语言的一条语句,它是一组有意义的二进制代码。一台计算机能实现的操作都是由计算机的几十条到上百条基本指令决定的。指令系统是指计算机所能执行的全部指令的集合,它描述了计算机内全部的控制信息和“逻辑判断”能力。第3章 计算机体系结构 1)指令格式计算机的指令格式与机器的字长、存储器的容量及指令的功能都有很大的关系。从便于程序设计、增加基本操作并行性、提高指令功能的角度来看,指令中应包含多种信息。但在有些指令中,由于部分信息可能无用,这将浪费指令所占的存储空间,并增加了访存次数,也许反而会影响速度。因此,如何合理、科学地设计指令格式,使指令既
28、能给出足够的信息,又使其长度尽可能地与机器的字长相匹配,以节省存储空间,缩短取指时间,提高机器的性能,这是指令格式设计中的一个重要问题。第3章 计算机体系结构 计算机是通过执行指令来处理各种数据的。为了指出数据的来源、操作结果的去向及所执行的操作,一条指令必须包含下列信息:(1)操作码。它具体说明了操作的性质及功能。一台计算机可能有几十条至几百条指令,每一条指令都有一个相应的操作码,计算机通过识别该操作码来完成不同的操作。(2)操作数的地址。CPU通过该地址就可以取得所需的操作数。(3)操作结果的存储地址。把对操作数的处理所产生的结果保存在该地址中,以便再次使用。第3章 计算机体系结构(4)下
29、条指令的地址。执行程序时,大多数指令按顺序依次从主存中取出执行,只有在遇到转移指令时,程序的执行顺序才会改变。为了压缩指令的长度,可以用一个程序计数器(Program Counter,PC)存放指令地址。每执行一条指令,PC的指令地址就自动加1(设该指令只占一个主存单元),指出将要执行的下一条指令的地址。当遇到执行转移指令时,则用转移地址修改PC的内容。由于使用了PC,指令中就不必明显地给出下一条将要执行指令的地址。第3章 计算机体系结构 一条指令实际上包括两种信息,即操作码和操作数地址码。操作码(Operation Code)用来表示该指令所要完成的操作(如加、减、乘、除、数据传送等),其长
30、度取决于指令系统中的指令条数。操作数地址码用来描述该指令的操作对象,它或者直接给出操作数,或者指出操作数的存储器地址或寄存器地址(即寄存器名)。各计算机公司设计生产的计算机,其指令的数量与功能、指令格式、寻址方式、数据格式都有差别,即使是一些常用的基本指令,如算术逻辑运算指令、转移指令等也是各不相同的。第3章 计算机体系结构 2)寻址方式根据指令内容确定操作数地址的过程称为寻址。完善的寻址方式可为用户组织和使用数据提供方便。(1)直接寻址:指令地址域中表示的是操作数地址。(2)间接寻址:指令地址域中表示的是操作数地址的地址,即指令地址码对应的存储单元所给出的是地址A,操作数据存放在地址A指示的
31、主存单元内。有的计算机的指令可以多次间接寻址,如A指示的主存单元内存放的是另一地址B,而操作数据存放在B指示的主存单元内,称为多重间接寻址。(3)立即寻址:指令地址域中表示的是操作数本身。第3章 计算机体系结构(4)变址寻址:指令地址域中表示的是变址寄存器号i和位移值D。将指定的变址寄存器内容E与位移值D相加,其和(即E+D)为操作数地址。许多计算机具有双变址功能,即将两个变址寄存器内容与位移值相加,得操作数地址。变址寻址有利于数组操作和程序共用。同时,位移值长度可短于地址长度,因而指令长度可以缩短。(5)相对寻址:指令地址域中表示的是位移值D。程序计数器内容(即本条指令的地址)K与位移值D相
32、加,得操作数地址(即K+D)。当程序在主存储器中浮动时,相对寻址能保持原有程序功能。此外,还有自增寻址、自减寻址、组合寻址等寻址方式。寻址方式可由操作码确定,也可在地址域中设标志,指明寻址方式。第3章 计算机体系结构 3)指令的执行步骤一条指令的执行过程按时间顺序可分为以下几个步骤。(1)CPU发出指令地址。将指令指针寄存器(IP)的内容即指令地址经地址总线送入存储器的地址寄存器中。(2)从地址寄存器中读取指令。将读出的指令暂存于存储器的数据寄存器中。(3)将指令送往指令寄存器。将指令从数据寄存器中取出,经数据总线送入控制器的指令寄存器中。(4)指令译码。指令寄存器中的操作码部分送至指令译码器
33、,经译码器分析产生相应的操作控制信号,送往各个执行部件。第3章 计算机体系结构(5)按指令操作码执行。(6)修改程序计数器的值,形成下一条要取指令的地址。若执行的是非转移指令,即顺序执行,则指令指针寄存器(也称为程序计数器)的内容加1,形成下一条要取指令的地址。第3章 计算机体系结构 4)指令的分类计算机的指令按功能可划分为:(1)数据处理指令:包括算术运算指令、逻辑运算指令、移位指令、比较指令等。(2)数据传送指令:包括寄存器之间、寄存器与主存储器之间的传送指令等。(3)程序控制指令:包括条件转移指令、无条件转移指令、转子程序指令等。(4)输入/输出指令:包括各种外围设备的读、写指令等。有的
34、计算机将输入/输出指令包含在数据传送指令类中。(5)状态管理指令:包括诸如实现中断处理等功能的管理指令。第3章 计算机体系结构 2.程序与程序设计程序与程序设计概括地说,程序是机器语言的指令或汇编语言、高级语言的语句的有序集合。程序可以用机器语言、汇编语言或高级语言编写。用机器语言编写的程序称为“目标程序”,可以由计算机直接执行。用汇编语言或高级语言编写的程序称为“源程序”。源程序不能直接被机器执行,必须经过翻译,转换为目标程序才能被机器执行。分析要求解的问题,得出解决问题的算法,并且用计算机的指令或语句编写程序,就称为程序设计。第3章 计算机体系结构 3.程序设计语言程序设计语言程序设计语言
35、是人工语言,它是编写程序、表达算法的一种约定,是进行程序设计的工具,是人与计算机进行对话(交换信息)的一种手段。相对于自然语言来说,程序设计语言比较简单,但是很严格,没有二义性。程序设计语言可分为三大类:机器语言、汇编语言和高级语言。1)机器语言机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。机器语言具有灵活、直接执行和速度快等特点。第3章 计算机体系结构 不同型号的计算机,其机器语言是不相通的,按照一种计算机的机器指令编制的程序,不能在另一种计算机上执行。用机器语言编写程序,编程人员要首先熟记所用计算机的全部
36、指令代码和代码的涵义。编写程序时,程序员需自己处理每条指令和每一数据的存储分配及输入/输出,还需记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作。编写程序花费的时间往往是实际运行时间的几十倍或几百倍。而且,编出的程序全是0和1的指令代码,直观性差,还容易出错。除了计算机生产厂家的专业人员外,绝大多数程序员已经不再去学习机器语言了。第3章 计算机体系结构 2)汇编语言汇编语言是一种符号语言。它由基本字符集、指令助记符、标号以及一些规则构成。汇编语言的语句与机器语言的指令基本对应,但是比机器语言更容易阅读和理解,编程速度大大提高。汇编语言仍为面向机器的语言,不具有通用性。汇编
37、语言编写的程序要“翻译”成机器语言程序才能被计算机执行。这种转换可以由一种称为“汇编程序”的软件来实现。第3章 计算机体系结构 3)高级语言高级语言是一种接近于人类自然语言的程序设计语言。程序中所用的运算符号与运算式都接近于数学采用的符号和模式。高级语言比汇编语言更容易阅读和理解,语句的功能更强,编写程序的效率更高。它不再局限于计算机的具体结构与指令系统,而是面向问题处理过程、通用性很强的语言,但是执行的效率则不如机器语言。高级语言编写的程序也要由编译程序或解释程序“翻译”成机器语言程序才能被计算机执行。高级语言有很多种,而且随着操作系统的不断更新而升级。Windows平台常用的高级语言有Fo
38、rtran、Pascal、Cobol、C、C+、Basic、Java、C#等。第3章 计算机体系结构 4.计算机的系统软件计算机的系统软件系统软件是指控制和协调计算机及外部设备,支持应用软件开发和运行的系统,是无需用户干预的各种程序的集合,主要功能是调度、监控和维护计算机系统,负责管理计算机系统中各种独立的硬件,使得它们可以协调工作。系统软件使得计算机使用者和其他软件将计算机当作一个整体而不需要顾及底层每个硬件是如何工作的。系统软件主要包括操作系统、语言处理程序、数据库管理系统和实用程序。第3章 计算机体系结构 1)操作系统操作系统是管理计算机硬件与软件资源的程序,同时也是计算机系统的内核与基
39、石。操作系统管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作接口。常见的操作系统如Windows、Unix和Linux等。第3章 计算机体系结构 2)语言处理程序除了机器语言外,其他用任何编程语言书写的程序都不能直接在计算机上执行,都需要对它们进行适当的处理。语言处理程序的作用是把用软件语言书写的各种程序处理成可在计算机上执行的程序,或最终的计算结果,或其他中间形式。常见的语言处理程序可分为以下三种类型:(1)汇编程序:将汇编语言编写的程序翻译为目标程序的翻译程序。(2)解释程序(解释器):解释程序将高级
40、语言书写的源程序按动态执行的顺序逐句翻译处理,翻译一句,执行一句,直到程序执行完毕。这种处理方式称为“解释方式”。第3章 计算机体系结构(3)编译程序(编译器):编译程序将高级语言书写的源程序整个翻译为目标程序。编译程序检查各程序模块无语法错误后,经过编译、连接、装配,生成用机器语言表示的目标程序,再将整个模块交给机器执行。这种处理方式称为“编译方式”。3)数据库管理系统数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。常见的数据管理系统
41、如ACCESS、MySQL、DB2、Sybase、Oracle等。第3章 计算机体系结构 4)实用程序实用程序也称为支撑软件,是机器维护、软件开发所必需的软件工具,它主要包括以下程序:(1)编辑程序:利用编辑程序生成程序文件和文本文件,并对计算机中已有的同类文件进行增加、删除、修改等处理。(2)连接装配程序:在进行软件开发时,常常将程序按其功能分成若干个相对独立的模块,对每个模块分别开发。开发完成后需要将这些模块连接起来,形成一个完整的程序。(3)调试程序:帮助开发者对所开发的程序进行调试并排除程序中错误的程序。第3章 计算机体系结构(4)诊断程序:用以检测机器故障并确定故障位置的程序。(5)
42、程序库:一些经常使用并经过测试的规范化程序或子程序的集合。5.计算机的应用软件计算机的应用软件与系统软件不同,应用软件是针对各类应用的专门问题或为了某种特定的用途而开发的软件,大体可分为以下两类:(1)用户程序。(2)应用软件包:为了实现某种功能或专门计算而精心设计的结构严密的独立程序的集合,它们是为具有同类应用的许多用户提供的软件,如计算机辅助设计软件包、科学计算软件包、辅助教学软件包、财会管理软件包等。第3章 计算机体系结构 3.3.2 中央处理器中央处理器(CPU)中央处理器(Central ProcessingUnit,CPU)是一块超大规模的集成电路(见图3.4),是一台计算机的运算
43、核心和控制核心。它由运算器、控制器和寄存器以及实现它们之间联系的数据、控制和状态的总线构成,它的功能主要是解释计算机指令以及处理计算机软件中的数据。图3.4 CPU第3章 计算机体系结构 1.物理结构物理结构CPU包括运算逻辑部件、寄存器部件和控制部件等。(1)运算逻辑部件:可以执行定点或浮点算术运算操作、移位操作以及逻辑操作,也可执行地址运算和转换。(2)寄存器组:包括通用寄存器、专用寄存器和控制寄存器。通用寄存器又可分为定点数和浮点数两类,它们用来保存指令执行过程中临时存放的寄存器操作数和中间(或最终)的操作结果。通用寄存器是中央处理器的重要部件之一。(3)控制部件:主要负责对指令译码,并
44、且发出为完成每条指令所要执行的各个操作的控制信号。其结构有两种:一种是以微存储为核心的微程序控制方式;另一种是以逻辑硬布线结构为主的控制方式。第3章 计算机体系结构 2.主要功能主要功能(1)处理指令:指控制程序中指令的执行顺序。程序中的各指令之间是有严格顺序的,必须严格按程序规定的顺序执行,才能保证计算机系统工作的正确性。(2)执行操作:一条指令的功能往往是由计算机中的部件执行一系列的操作来实现的,CPU要根据指令的功能,产生相应的操作控制信号,发给相应的部件,从而控制这些部件按指令的要求进行动作。(3)控制时间:指对各种操作实施时间上的定时。在一条指令的执行过程中,在什么时间做什么操作均应
45、受到严格的控制。只有这样,计算机才能有条不紊地工作。第3章 计算机体系结构(4)处理数据:对数据进行算术运算和逻辑运算,或进行其他的信息处理。3.工作原理工作原理CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码。它把指令分解成一系列的微操作,然后发出各种控制命令,执行微操作系列,从而完成一条指令的执行。(1)提取。从存储器或高速缓冲存储器中检索指令(为数值或一系列数值)。由程序计数器(Program Counter)指定存储器的位置。(程序计数器保存供识别程序位置的数值。换言之,程序计数器记录了CPU在程序里的踪迹。)第3章 计算机体系结构(2)解码。CPU根据存储器提取
46、到的指令来决定其执行行为。在解码阶段,指令被拆解为有意义的片段。根据CPU的指令集架构(ISA)定义将数值解译为指令。一部分的指令数值为运算码(Opcode),其指示要进行哪些运算。其他的数值通常供给指令必要的信息,例如一个加法(Addition)运算的运算目标。第3章 计算机体系结构(3)执行。在提取和解码阶段之后,紧接着进入执行阶段。例如,要求一个加法运算,算术逻辑单元(Arithmetic Logic Unit,ALU)将会连接到一组输入和一组输出。输入提供了要相加的数值,而输出将含有总和的结果。ALU内含电路系统,易于输出端完成简单的普通运算和逻辑运算(比如加法和位元运算)。如果加法运
47、算产生一个对该CPU处理而言过大的结果,在标志暂存器里可能会设置运算溢出(Arithmetic Overflow)标志。(4)写回。写回为最终阶段,即以一定格式将执行阶段的结果简单地写回。运算结果经常被写进CPU内部的暂存器,以供随后指令快速存取。第3章 计算机体系结构 4.性能指标性能指标计算机的性能在很大程度上是由CPU的性能决定的,而CPU的性能主要体现在其运行程序的速度上。影响运行速度的性能指标包括CPU的工作频率、Cache容量、指令系统和逻辑结构等参数。1)主频主频也叫时钟频率,单位是兆赫兹(MHz)或千兆赫兹(GHz),用来表示CPU的运算、处理数据的速度。通常,主频越高,CPU
48、处理数据的速度就越快。第3章 计算机体系结构 CPU的主频等于外频与倍频系数的积(即外频倍频系数)。主频和实际的运算速度存在一定的关系,但并不是一个简单的线性关系。所以,CPU的主频与CPU实际的运算能力是没有直接关系的,主频表示在CPU内数字脉冲信号振荡的速度。CPU的运算速度还要看CPU的流水线、总线等各方面的性能指标。2)外频外频是CPU的基准频率,单位是兆赫兹(MHz)。CPU的外频决定着整块主板的运行速度。通常所说的超频,都是指超CPU的外频(一般情况下,CPU的倍频都是被锁住的)。绝大部分电脑系统中外频与主板前端总线(FSB)不是同步速度的,而外频与前端总线频率又很容易被混为一谈。
49、第3章 计算机体系结构 3)前端总线频率前端总线频率(即总线频率)直接影响CPU与内存直接数据交换的速度。可通过以下公式进行计算:数据传输最大带宽取决于所有同时传输的数据的宽度和传输频率。例如,数据位宽是64位,前端总线频率是800 MHz,则按照以上公式,它的数据传输最大带宽是6.4 GB/s。外频与前端总线频率的区别为:前端总线的速度指的是数据传输的速度,外频是CPU与主板之间同步运行的速度。也就是说,100 MHz外频特指数字脉冲信号在每秒振荡一亿次;而100 MHz前端总线指的是每秒CPU可接受的数据传输量是100 MHz64 bit8 bit/Byte=800 MB/s。第3章 计算
50、机体系结构 4)倍频系数倍频系数是指CPU主频与外频之间的相对比例关系。在相同的外频下,倍频越高CPU的频率也越高。但实际上,在相同外频的前提下,高倍频的CPU本身意义并不大。这是因为CPU与系统之间数据传输速度是有限的,一味追求高主频而得到高倍频的CPU就会出现明显的“瓶颈”效应CPU从系统中得到数据的极限速度不能够满足CPU运算的速度。第3章 计算机体系结构 5)缓存缓存(Cache)大小也是CPU的重要指标之一,而且缓存的结构和大小对CPU速度的影响非常大。CPU内缓存的运行频率极高,一般是和处理器同频运作,工作效率远远大于系统内存和硬盘。实际工作时,CPU往往需要重复读取同样的数据块,