网络工程师考试考点分析与真题详解(第4版)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-15 02:25:42

点击下载

作者:希赛教育软考学院,桂阳,等

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

网络工程师考试考点分析与真题详解(第4版)

网络工程师考试考点分析与真题详解(第4版)试读:

前言

计算机技术与软件专业技术资格(水平)考试已走过了十多年的历程,我们深感该考试对于推进国家信息化建设和软件产业化发展起着重要的作用。计算机技术与软件专业技术资格(水平)考试广泛调动了专业技术人员工作和学习的积极性,为选拔高素质的专业技术人员起到了积极的促进和推动作用,并且为广大的专业技术人员的专业技术水平和职称的评定提供了一个客观、公正的机会,使得优秀、年轻的专业技术人才能够脱颖而出。

然而,计算机技术与软件专业技术资格(水平)考试是一个难度很大的考试,十多年来,考生平均通过率较低。主要原因是考试范围十分广泛,牵涉到计算机专业的每门课程,还要加上外语、系统工程、信息化和知识产权等知识,且注重考查新技术和新方法的应用。考试不但注重广度,而且还有一定的深度。

内容超值,覆盖所有考点

正是因为考试范围广,如果单凭考试指定教材进行复习,是难以满足学习和考试要求的。本书是为全国计算机技术与软件专业技术资格(水平)中的网络工程师级别考试编写的辅导用书,内容涵盖了最新的网络工程师考试大纲的所有知识点。书中选取了2008年—2011年网络工程师试题的重点和难点部分,并进行了详细的分析和解答。

本书在参考和分析历年考试试题的基础上,着重对新版的考试大纲的内容有重点地进行了细化和深化。准备考试的人员可通过阅读本书掌握考试大纲规定的知识,熟悉考试方法、试题形式、试题的深度和广度,以及内容的分布、解答问题的方法和技巧等。

本书第1版自2005年2月发行,第2版自2007年9月发行,第3版于2009年3月发行,多次重印,深受广大读者朋友的厚爱。本次修订是根据最新的考试大纲和网络工程师考试的发展趋势,以及书籍出版后读者的反馈意见,对本书进行了一定程度的修订,改正了原书中的一些印刷错误,增加了2011年上半年的试题及其详解,从总体上缩减了书籍内容。

作者权威,阵容强大

希赛教育(www.educity.cn)专业从事人才培养、教育产品开发、教育图书出版,在职业教育方面具有极高的权威性。特别是在在线教育方面,在国内名列前茅,希赛教育的远程教育模式得到了国家教育部门的认可和推广。

希赛教育软考学院(www.csairk.com)是全国计算机技术与软件专业技术资格(水平)考试的顶级培训机构,拥有近20名资深软考辅导专家,负责高级资的考试的大纲制订工作,以及软考辅导教材的编写工作,共组织编写和出版了60多本软考教材,内容涵盖了初级、中级和高级的各个专业,包括教程系列、辅导系列、考点分析系列、冲刺系列、串讲系列、试题精解系列、疑难解答系列、全程指导系列、案例分析系列、指定参考用书系列、一本通等共11个系列的书籍。希赛教育软考学院的专家录制了软考培训视频教程、串讲视频教程、试题讲解视频教程、专题讲解视频教程4个系列的软考视频,希赛教育软考学院的软考教材、软考视频、软考辅导为考生助考、提高通过率做出了不可磨灭的贡献,在软考领域有口皆碑。特别是在高级资格领域,无论是考试教材,还是在线辅导和面授,希赛教育软考学院都独占鳌头。

本书主要由希赛教育软考学院桂阳和胡钊源编写,参加编写工作的人员还有张友生、王勇、谢顺、施游、胡光超、左水林、李雄、陈勇军和何玉云。

在线测试,心中有数

上学吧(www.shangxueba.com)在线测试平台为考生准备了在线测试,其中有数十套全真模拟试题和考前密卷,考生可选择任何一套进行测试。测试完毕,系统自动判卷,立即给出分数。

对于考生做错的地方,系统会自动记忆,待考生第二次参加测试时,可选择“试题复习”。这样,系统就会自动把考生原来做错的试题显示出来,供考生重新测试,以加强记忆。

如此,读者可利用上学吧在线测试平台的在线测试系统检查自己的实际水平,加强考前训练,做到心中有数,考试不慌。

诸多帮助,诚挚致谢

在本书出版之际,要特别感谢全国软考办的命题专家们,编者在本书中引用了部分考试原题,使本书能够尽量方便读者的阅读。在本书的编写过程中,参考了许多相关的文献和书籍,编者在此对这些参考文献的作者表示感谢。

感谢电子工业出版社孙学瑛老师,她在本书的策划、选题的申报、写作大纲的确定,以及编辑、出版等方面,付出了辛勤的劳动和智慧,给予了我们很多支持和帮助。

感谢参加希赛教育软考学院辅导和培训的学员,正是他们的想法汇成了本书的原动力,他们的意见使本书更加贴近读者。

由于编者水平有限,且本书涉及的内容很广,书中难免存在错漏和不妥之处,编者诚恳地期望各位专家和读者不吝指正和帮助,对此,我们将十分感激。

互动讨论,专家答疑

希赛教育软考学院(www.csairk.com)是中国知名的软考在线教育网站,该网站论坛是国内人气很旺的软考社区,在这里,读者可以和数十万考生进行在线交流,讨论有关学习和考试的问题。希赛教育软考学院拥有强大的师资队伍,为读者提供全程的答疑服务,在线回答读者的提问。

有关本书的意见反馈和咨询,读者可在希赛教育软考学院论坛“软考教材”板块中的“希赛教育软考学院”栏目上与作者进行交流。

希赛教育软考学院

2011年7月

上篇 计算机与网络知识篇

第1章 计算机组成与结构

根据考试大纲,本章要求考生掌握以下知识点。

● CPU(Central Processing Unit,中央处理器)和存储器的组成、性能和基本工作原理;

● 常用I/O(Input/Output,输入/输出)设备、通信设备的性能,以及基本工作原理;

● I/O接口的功能、类型和特点;

● 复杂指令集计算机/精简指令集计算机、流水线操作、多处理机、并行处理。

1.1 计算机组成

中央处理器是计算机的控制、运算中心,它主要通过总线和其他设备进行联系。另外,在嵌入式系统设计中,外部设备也常常直接接到中央处理器的外部I/O脚的中断脚上。

中央处理器的类型和品种异常丰富,各种中央处理器的性能也差别很大,有不同的内部结构、不同的指令系统,但由于都基于冯·诺依曼结构,基本组成部分相似。1.1.1 运算器

运算器的主要功能是在控制器的控制下完成各种算术运算、逻辑运算和其他操作。一个计算过程需要用到加法器/累加器、数据寄存器或其他寄存器,以及状态寄存器等。

加法是运算器的基本功能,在大多数的中央处理器中,其他计算是经过变换后进行的。一个位加法的逻辑图如图1-1所示。图1-1 位加法逻辑图

其中,Ⅹi、Yi是加数和被加数,Ci+1是低位进位,Ci是进位,Zi是和。

为完成多位数据加法,可以通过增加电路和部件,使简单的加法器变为串行、并行加法器或超前进位加法器等。运算器的位数,即运算器一次能对多少位的数据做加法,它是衡量中央处理器的一个重要指标。1.1.2 控制器

控制器是中央处理器的核心,它控制和协调整个计算机的动作,其组成如图1-2所示。控制通常需要程序计数器、指令寄存器、指令译码器、定时与控制电路,以及脉冲源、中断(在图中未表示)等共同完成。图1-2 控制器的组成

有关控制器的各组件的简介如下。

1)指令寄存器(Instruction Register)

显然,中央处理器即将执行的操作码记录在这里。

2)指令译码器(Instruction Decoder)

将操作码解码,告诉中央处理器该做什么。

3)定时与控制电路(Programmable Logic Array)

用来产生各种微操作控制信号。

4)程序计数器(Program Counter)

程序计数器中存放的是下一条指令的地址。由于在多数情况下程序是按顺序执行的,所以程序计数器被设计成能自动加1。当出现转移指令、中断等情况时,就必须重填程序计数器。

程序计数器可能是下一条指令的绝对地址,也可能是相对地址,即地址偏移量。

5)标志寄存器(Flags Register)

这个寄存器通常记录运算器的重要状态或特征,典型的有是否溢出、结果为0、被0除等。标志寄存器的典型应用是作为跳转指令的判断条件。

6)堆栈和堆栈指针(Stack Pointer)

堆栈可以是一组寄存器或在存储器内的特定区域。由于寄存器的数量总是有限,所以大多数系统采用了使用存储器的软件堆栈。指向堆栈顶部的指针称为堆栈指针。

7)寄存器组

上面提及的程序计数器和标志寄存器等为专用寄存器,它们有特定的功能和用途。

通用寄存器的功能由程序指令决定,最常见的应用是放置计算的中间结果,减少对存储器的访问次数。通常,寄存器的宽度是和运算器的位数相一致的。1.1.3 存储器系统

这里的存储器是指中央处理器通过总线访问或直接能访问的存储器,通常称为内存。硬盘等需通过I/O接口访问的存储器常称为外存或辅存。

存储器的作用显然是存储数据,如指令、指令带的数据(这正是冯·诺依曼结构的特点之一)和中央处理器处理后的结果,包括中间结果。

中央处理器对存储器的访问必须通过控制地址、数据总线进行。存储器的数据组织是线性的,所存储的数据都有整齐的“编号”,即访问地址。存储器一般每个存储单元中有 8 位数据,其容量是其存储单元的总和。

存储器的性能指标如下。

● 存取时间:指的是从中央处理器发出指令到操作完成的时间。

● 传输率:或称为数据传输带宽,指单位时间内写入或读取的数据的多少。显然,存取时间越短,则传输率越高。

● 存储密度:在单位面积中的存储容量,人们在不断改进这个值。

有关存储器系统的详详内容,请阅读本书第2章。1.1.4 时序产生器和控制方式

为了使得计算机各部件同步工作,计算机中都有一个脉冲源,通常是晶振。这个脉冲源产生主振脉冲,主振脉冲的时间间隔为主振周期,即时钟周期。中央处理器执行指令的时间(包括取址)为指令周期,由于指令可能有不同的复杂度,所以,每种指令的指令周期可能不同。CPU周期也称机器周期,一般是指从内存中读一个指令的最短时间。CPU周期又由若干个时钟周期组成。指令周期与时钟周期的关系如图1-3所示。图1-3 指令周期与时钟周期的关系

通常把 CPU 执行指令的各个微操作遵循的时间顺序叫做时序。时序图是形象地表示信号线上信息变化的时间序列的图形。

组合逻辑控制和微程序控制是两种基本的控制方式。

1.组合逻辑控制

使用专门的逻辑电路的控制方式。它的实现有硬件接线控制和可编程逻辑阵列两种。硬件连线法最直接,可以用较少的元件实现最快的速度,但是如果要更改,只有重新设计。可编程逻辑阵列采用低成本大规模集成电路的方式。组合逻辑控制灵活性很差,在复杂指令系统计算机中难以处理不断增加的复杂指令,但是它使用电子原件少,在精简指令计算机中发挥了很大作用。

2.微程序控制

为提高控制的灵活性,许多中央处理器采用微程序控制的控制方法。下面介绍几个基本概念。

● 微程序:微程序对应一条机器指令,若干条微指令序列形成一段微程序。而微指令又可细分为若干微操作,控制内存是存放微程序的地方。

● 微操作:是最基本的操作,可分为相容性微操作和不相容性微操作,这两种微操作的区别在于该微操作是否能在一个CPU周期内并行执行。

3.微指令格式

微指令格式如图1-4所示。图1-4 微指令的格式

在前半部分存放对各种控制门进行激活或关闭的控制信息,后半部分是后续微指令的地址。操作控制字段的格式有两种。

● 水平型微指令:操作控制字段的每一位控制不同的控制门,可以在一个微指令中定义,执行多个并行的微操作的优点是效率高、灵活、执行时间短。

● 垂直型微指令:和水平型相比,其格式要短,一条微指令中包括的微操作少,只有 1~2 个,由于其指令字短,所以比较容易掌握。

在实践中也常常使用混合型微指令,即是水平型微指令和垂直型微指令的混合。1.1.5 指令流、数据流和计算机的分类

首先介绍指令流和数据流的定义。

● 指令流:机器执行的指令序列。

● 数据流:由指令流调用的数据序列,包括输入数据和中间结果。

1.计算机根据多倍性分类

按照计算机在一个执行阶段能执行的指令或能处理数据的最大可能个数,人们把计算机分成四种,如表1-1所示。

● SISD(Single Instruction stream and Single Data stream,单指令流单数据流):这是最简单的方式,计算机每次处理一条指令,并只对一个操作部件分配数据。表1-1 多倍性分类

● SIMD(Single Instruction stream and Multiple Data stream,单指令流多数据流):具备SIMD特点的常常是并行处理机,这种处理机具备多个处理单元,每次都执行同样的指令,对不同的数据单元进行处理。这种计算机非常适合处理矩阵计算等。阵列处理机、超级向量处理机也属于SIMD。

● MISD(Multiple Instruction stream and Single Data stream,多指令流单数据流):这种处理方式比较难以想象,有多个处理单元,同时执行不同的指令,针对的是单一数据。但有资料认为流水线处理机是由不同操作部件对每个数据进行处理。

● MIMD(Multiple Instruction stream and Multiple Data stream,多指令流多数据流):这是一种全面的并行处理,典型的是多处理机。这种计算机的设计和控制都很复杂。

2.计算机按照程序流程机制分类

1)控制流计算机

这是通常见到的计算机,使用程序计数器来确定下一条指令的地址。指令程序流由程序员直接控制,其主存是共享的,存储区可以被多指令修改,后面将会提到,这容易产生数据相关性,对并行性不利。

2)数据流计算机

在冯·诺依曼体系中,计算机是由指令流驱动的,而数据流则是处于被动地位的,这看起来合理,但在某些时候也不尽然。相对比的是数据流驱动,即一旦数据准备好,则立即开始执行相关的指令。非冯·诺依曼体系仍然在探索中,但对冯·诺依曼体系的改良有了相当的成果,即流水线技术和并行计算机。

在数据流计算机中,数据不在共享的存储器中,而是在指令间传送,成为令牌。当需要使用该数据的指令收到令牌,开始执行之后,该令牌即消失,执行的指令将执行的结果数据当做新的令牌发送,这种方式不再需要程序计数器和共享的存储器,但是需要检测数据可用性的专门部件,建立、识别、处理数据令牌标记需要时间和空间开销。

在其他一些方面,数据流计算机还有一些困难需要克服,例如,在数据流计算机中由于没有程序计数器,使得程序的调试和诊断变得困难,没有共享的存储器,也就无法控制其分配,无法支持数组、递归等操作。

3)归约机(Reductions Machine)

又称为需求驱动,是由对一个操作结果的需求而起动的。归约机采用一种“惰性计算”的方式,操作只有在另一条指令需要这个操作的结果时才执行。比如在计算5+(6×2-10)时,归约机并非先去计算6×2,而是先计算整个算式,碰到(6×2-10)再启动一个过程去计算它,最后碰到需要计算6×2,计算后一层层退回,得到整个算术的值。由于需求驱动可减少那些不必要的求值操作,可以提高系统效率。

归约机是一种面向函数式语言或以函数式语言为机器语言的机器,要有函数定义存储器和表达式存储以及操作和数据合并存储,需要大容量物理存储器并采用大虚存容量的虚拟存储器,来满足对动态存储分配和所需存储空间大的需求。1.1.6 处理器性能

计算机系统是一个极其复杂的系统,不同的指令系统、不同的体系实现方式、不同数量的硬件、不同的部件组合都对计算机的性能造成这样或那样的影响,而且不同的应用对处理器的性能有不同的要求。这使得对处理器性能的评价需要综合考虑各个方面,才能全面衡量处理器的性能。

1.影响处理器性能的因素

1)基本字长

运算器进行计算的位数称为基本字长,这在运算器中已经提到过。字长越长,处理器能够计算的精度就越高,当然,处理器的复杂度就越高。基本字长增加不但要增加运算器的复杂度,而且需要同时增加寄存器和总线的宽度。

2)数据通路宽度

数据通路宽度指的是数据总线一次所能并行传送的位数,它体现了信息的传送能力,从而影响计算机的有效处理速度。在处理器内部,数据通路的宽度一般是基本字长,而外部总线的数据通路宽度则不一定。显然,如果外部数据通路宽度小于基本字长,那么运算器需要的数据则要多次通过总线从主存传递到处理器内部。

3)指令系统

不同的指令系统对处理器的性能也有非常大的影响,我们已经讨论过精简指令系统和复杂指令系统之间的不同,另外,一些处理器对一些专门的应用增加了专门的指令,使得这些处理器在处理这些专门的任务时能够“得心应手”。

4)时钟频率

通常来说,提高处理器的时钟频率能够提高系统的性能,因为在同时间内,提高时钟频率,使得时钟周期减少,则指令的执行时间减少。

5)流水线技术

处理器使用流水线技术能够使不同指令的不同执行部分使用不同的处理单元同时执行,比如,将一个指令的取指、移码、取操作数、执行、写结果分别由不同的处理单元处理,这样能够有效地提高处理器性能。还有处理器把这些不同的处理单元在硬件上重复,形成多条流水线,以期提高性能。无疑,流水线增加了处理器的复杂度,不但处理单元要分开,而且需要增加流水线的管理部分电路。

6)内部数据/指令缓存

使用存储器内部的数据或指令缓存,能够减少处理器访问较慢的内存,从而提高处理器的性能,缓存当然越大越好。在缓存指令失败时,就需要从主存提取数据,这个判断需要增加控制电路。如果缓存太小或管理不当,有可能对性能造成负面影响。

2.对处理器性能的评价

评价处理器的性能可以直接给出处理器每条指令的执行时间,或者是指令系统中的指令执行时间的某种加权评价,也可以计算处理器6每秒能执行多少个加法指令。1MIPS指的是处理器每秒能完成1×10条指令。

这样的简单评价方法随着计算机应用的不断发展显得过于简单,局限性也日益暴露,但很快出现了改进的方法。

1)等效指令速度法

等效指令把指令分成若干种不同的类型,分别统计出各种类型指令在整个程序中的比例和执行时间来计算等效指令速度。

采用固定比率的方法来计算处理器的执行时间,不能灵活地适应不同的程序应用存在的指令频率不同的问题,不能反映出不同处理器之间数据长度和指令功能强弱对处理器性能的影响,同时也不能反映出处理器内部数据缓存、流水线等对性能的影响。

2)数据处理速度法

这个方法试图给出处理器的“数据处理速度”,这个值考虑了不同指令及不同操作数的平均长度对处理器性能的影响。这种方法主要对处理器和主存储器的速度进行度量,没有涉及缓存和多功能部件等技术对性能的影响。

3)核心程序法

核心程序法是归纳总结应用程序中使用最频繁的那部分程序,将它们作为核心程序在不同的处理器上运行,运行时间作为不同处理器的性能评价依据。使用精挑细选的核心程序,能够比较全面地评价处理器运行某种应用程序的性能。与实际的应用程序相比,核心程序由于比较小,所以缓存利用率很高。

1.2 指令系统

指令系统是中央处理器所有指令的合集,也是高级语言编程的基础。指令系统的选择和确定涉及很多方面,是一个复杂的问题。

通常,一个指令可分解为操作码和地址码两个部分。操作码确定指令的类型,地址码确定指令所要处理的数据,根据地址码的个数可以有四址指令、三址指令,甚至0址指令。

根据指令的长度特点,一个指令系统可能是定长指令字结构,即指令系统中所有指令的长度都相同,特点是控制简单。如果指令的长度不固定,复杂的指令长度较长,就是变长指令字结构,这个结构的指令很容易扩展,但是增加了解码系统的复杂度。1.2.1 寻址方式

根据地址码代表的地址类型,指令系统可以分为以下几种。

1.立即寻址

地址码就是操作数,这种寻址方式不必再次访问内存去取操作数,当然,也无法修改操作数。

2.直接寻址

地址码就是主存内数据的绝对地址,不必做任何换算。不足之处在于寻址范围有限,地址码的位数限制了寻址空间,而计算机的发展趋势是计算机拥有越来越大的内存。使用变长指令结构可以突破限制,但是该指令会变得臃肿。

3.寄存器寻址

地址码的地址是寄存器的地址。和内存寻址比较而言,访问寄存器的速度是非常快的,所以使用寄存器寻址有非常快的速度。不足之处在于寄存器的数量和数据宽度有限。

4.间接寻址

地址码指向主存中的数据,这个数据仍然是一个地址。这种方式提高了寻址的灵活性,扩大了寻址的范围。但由于要多次读主存,速度大为降低。

5.寄存器间接寻址

地址码保存的是寄存器地址,相对应的寄存器中保存的是数据的地址,这样既速度快,又有灵活性,是一种广泛使用的寻址方式。

6.变址寻址

变址寻址是将地址码和变址寄存器内容相加后形成数据的地址,由于变址寄存器能自动修改,这种方式对数组运算、字符串操作等批量数据的处理非常有效。

7.基址寻址

和变址寻址类似,是将变址寄存器改成基址寄存器,不同之处在于基址寄存器的内容是基本不变的,改变的是指令中地址码部分的内容,主要作用是扩大寻址空间和再定位。

8.页面寻址

页面寻址是将主存分成若干个区,寻址时使用区码加区内偏移的方式确定位置。

9.相对寻址

相对寻址也和变址寻址类似,这里变址寄存器换成了程序计数器。1.2.2 指令类型

从功能而言,常用的指令有以下几种。

1.数据传送指令

这些指令负责数据在寄存器和主存之间的传递,其中数据交换指令使数据双向移动,而堆栈操作指令是专门对堆栈进行PUSH和POP操作的。

2.运算类指令

包括算术运算、逻辑运算、移位运算方面的指令,这类指令一般会改变标志寄存器的状态。

移位运算是一种特殊的运算,分算术移位、逻辑移位和循环移位三类。算术移位中左移则在空位补0,右移补符号位。逻辑移位无论是左移还是右移,都补0。循环移位是把移动空位由移出的位来填补的移位,又分带符号位移动的大循环和不带符号位移动的小循环。

其中算术左移等于是对操作数做乘2的操作,而算术右移等于对操作数做除2的操作。

3.程序控制指令

控制程序流程改变的指令也非常多,包括条件转移指令、无条件转移指令、循环控制指令、程序调用和返回指令、中断指令等。

4.输入/输出类指令

这类指令只有输入/输出独立编码才需要,对于统一编码的部分而言是不需要的。

5.数据处理类指令

数据处理指令包括一些比较复杂的指令,如数据转换指令、字符串操作指令、压缩和扩展指令等。1.2.3 CISC和RISC

随着硬件成本的下降,人们倾向于向中央处理器加入越来越多、越来越复杂的指令,同时,为了兼容老产品,原来的指令也要保留,这样,整个指令系统就向着越来越大、越来越复杂的趋势发展。在计算机处理能力越来越强的同时,中央处理器的设计也越来越复杂,这无疑大大增加了设计周期,更增加了设计失误的可能性。

事物的另外一个方面在于,加大指令的复杂性和中央处理器功能的增加似乎不一定是成正比的,人们发现在许多方面存在一个被称为20%~80%的定律,即系统中20%的部分发挥了80%的作用,通过对复杂指令集计算机(Complex Instruction Set Computer,CISC)指令系统的研究,发现系统在80%的时间里执行的是20%的指令。

于是出现了精简指令的设计思想。这种计算机的指令结构不追求全面和复杂,而是只实现那些经常被执行的指令,由于指令的复杂性指令结构计算机使用少得多,所以称为精简指令集计算机(Reduced Instruction Set Computer,RISC)。

先看著名的公式P=I×CPI×T

● P:计算机执行程序所需要的时间

● I:机器指令数

● CPI:平均每条指令所需要的机器周期数

● T:每个机器周期的时间

CISC在指令数上占优,而RISC在CPI上则快得多,这是两种结构的两个方向。从这个公式可以发现,两者在理论上都有优势,不能认为精简指令计算机就好,复杂指令计算机就不好,事实上,这两种设计方法很难找到完全的界线,而且在实际的芯片中,这两种设计方法也有相互渗透的地方。

CISC和RISC的对比如表1-2所示。表1-2 CISC和RISC的简单对比1.2.4 RISC结构特点

1.精简指令系统采用硬件布线逻辑控制

不是说硬件方式不够灵活吗?对于复杂指令系统来说,这是它的致命缺点,但对于指令少、格式简单的精简指令系统而言,采用微程序控制就显得多余,而硬件方式占用元件少的优点就体现出来了,腾出的地方可以在中央处理器中放置更多的通用寄存器。同时硬件方式的译码速度也要快得多。

2.大量的通用寄存器

RISC大量减少了对内存的访问指令,许多精简指令计算机只有两条指令和内存交换数据:LOAD和STORE。计算的中间结果放在寄存器中,由于访问寄存器的速度远远高于访问主存的速度,这种减少存储器访问次数的做法提高了精简指令计算机的效率。

同时,大量的通用寄存器使得可以使用寄存器完成程序调用的参数传递,这样在程序调用时,减少了对主存的访问,而在结构化的程序中大量使用了程序调用,这无疑也提高了精简指令计算机的效率。

精简指令计算机采用所谓的“重叠寄存器窗口技术”来组织寄存器,假设有3个过程,如图1-5所示。

在图1-5中,Ⅹ的输出是Y的输入,通过这种方式传递参数,不需要保护现场,减少了堆栈的操作。当然这样的调用对层数是有限制的,当层数过多甚至是递归函数时,就一定要借助主存的堆栈了。图1-5 寄存器的组织

3.RISC普遍采用流水线技术

由于RISC指令结构简单,除了访问主存的指令速度慢外,其他指令运行时间大多相同,这有利于发挥流水线的优势。同时,大量的寄存器使得编译优化成为可能,可以尽量减少数据相关的问题,减少流水线闲置时间。

4.RISC大多采用缓存技术

为了加快主存存取,大多数精简指令计算机采用了缓存技术,有的更是把指令和数据缓存分开设置,这样取指和读数可以同时进行。当指令或数据在缓存中时,就不需要去主存中提取,如果频繁地修改某个地址的数据,数据缓存也能减少写主存的次数。显然,缓存越大,越能减少主存存取次数。

如果缓存命中失败,就必须访问主存,这就增加了控制电路的复杂性。

5.对编译器的影响

精简指令系统对编译系统的影响有两个方面。一方面,由于指令简单,选择有限,寻址方式也少,这样编译系统不需要在众多的指令中选择最佳指令和指令组合,这降低了对编译系统的要求;另外一个方面,由于存在大量的通用寄存器,如何充分利用这些寄存器,以及如何优化编译,使得编译后的指令代码更能适应流水线的要求,这又对精简指令计算机的编译器提出了更高的要求。如果没有编译器的支持,精简指令计算机的多寄存器、流水线技术、移动寄存器窗口等都难以发挥最佳的作用。

1.3 并行处理和并行处理机

单个的处理器总是有限,但是可以把许多处理器通过特定的方式联合起来,以得到很高的处理能力,解决单个处理器无法完成的任务。战胜国际象棋冠军的最新型号的“深蓝”是一种32结点的IBM(SP)计算机。每个结点的SP使用装有8个专用的ⅤLSI国际象棋处理器的单一微通道卡,总共有256个处理器并行运行。“深蓝”的程序代码是用C语言编写的并在AIⅩ操作系统下运行的。这种网络是可扩充的并行系统,它能在标准国际象棋比赛中为选手每步所分配的3分钟内计算出500亿至1000亿步。1.3.1 并行性概念

并行即是在两个工作进行过程中,存在时间上的重叠。

有关并行的严格定义涉及以下概念。

1.同时性

多个事件同时发生。

2.并发性

多个事件在同一个时间间隔内发生。

绝对同时是不存在的,只是事件的间隙太小,以至于不能被机器识别。

3.控制并行

控制并行使多个操作同时进行,如流水线,它的并行性受到流水线长度、功能单元等限制,对程序员而言,这种并行是透明的。

4.数据并行

数据并行是多个相同的处理单元对多个不同的数据同时进行相同的处理,这种方式开发潜力最大,与控制并行相比,代码容易编写和调试。

5.粒度

粒度是指进程中所含计算量的尺寸大小,通常使用其中的指令数作为计量方式。

6.时延

时延是各子系统之间通信开销的时间量度。

7.并 行 度

在并行计算机中,单位时间内执行程序的处理单元的数量。

并行性是一个广泛的概念,从硬件到软件各个层次都在利用并行性以提高计算机性能。1.3.2 并行性的等级

从低到高级别的并行性如下。

1.指令或语句级

典型粒度是(指令数)小于20,一条指令的各微指令同时运行。优点是可借助于优化的编译器,自动将源码编译成并行指令。

2.循环级

如果循环中的指令不相关,可使之向量化,让这些指令同时执行。粒度大约不到500条,是在并行或向量计算机上运行的最优程序结构。

以上两种均被认为是细粒度计算。

3.过 程 级 和 子 程 序 级

典型粒度一般有几千条。这种并行性比以上两种细粒度级要困难,需要分析过程之间的相关性。目前,还没有好的编译器能编译出好的中粒度或粗粒度程序。

4.作业程序级

对应的是独立的程序,粒度有数万条。一般由加载程序和操作系统来处理这种级别的并行。时间轮片法、非占先式、占先式等方法是操作系统常用的程序并行调动法。详细的讨论请参考操作系统部分。

一般粒度越细,并行潜力越大,同时通信和调度的开销也增加。另外,最初硬件只处理指令内部的并行性,而由操作系统等软件负责程序的并行,现在的发展趋势是硬件越来越多地充当中粒度和粗粒度的并行实现者,多处理机就是这样的例子。

上面讨论的是指令执行方面的并行性,在数据并行性方面也有不同的级别,从低到高分别是:一次只对一个字的一位进行处理的位串字串方式,一次对一个字的全部位进行处理的位并字串方式,一次对许多字的同一位进行处理的位串字并方式和对许多字的全部或部分位进行处理的位并字并方式。1.3.3 提高计算机并行性的措施

分时也可以看做是一种并行,它从宏观上看各任务是并行的,而实际上是把时间切片,各工作占一定时间片,虽然实际上没有在时间上的重叠,但是在各任务不需要真正完全占用资源的情况下特别有效,且具有低成本的优势。这样的例子有很多,DMA(Direct Memory Access,直接存储器存取)控制器和中央处理器实现对总线控制转移的方式之一就是分时,当操作系统在单个中央处理器的硬件系统上实现各任务的并行时,其实也是采用分时的方法。

分时可能是各部分平均占有时间片,也可能占有的时间片资源各不相同,占有时间片多的优先级高,分时处理也称为资源共享。

更多的并行是以空间换时间,使用多个功能单元同时工作。多个功能单元可能是同类型的,如阵列机,这种方式也称为资源重复。资源重复也经常用于提高系统的可靠性方面,随着硬件价格的不断降低,资源重复越来越多地用在了提高计算机并行处理能力上。

多个功能单元也可能是不同类型的,如流水线技术将取址、译码、执行等工作分开,形成流水线。这种方式也称为时间重叠,在同一个时间内完成任务的不同功能。

并行性仍然在不停地发展之中,在输入/输出处理中的中断技术、DMA技术、通道技术都在不断提高计算机和外设处理的并行性,在指令处理方面的流水线技术、并行计算机、多处理机、大规模并行处理机(Massive Parallel Processing,MPP)、对称多处理机(Symmetrical Multi-Processing,SMP)的不断发展也在各个方面提高计算机的并行处理能力。其中,MPP和SMP集中几千个中央处理器进行协作计算。在软件方面,编译系统对指令的优化、操作系统对任务的调度都可提高系统的并行性。

在提高计算机并行性的各方面,硬件的发展最迅速,而主要的问题集中在软件和应用方面。编译器对粗粒度的并行性还没有好的解决方法,操作系统对多处理器的支持还有限,特别是对并行计算的编程仍然十分困难和费力。1.3.4 并行处理机

并行处理机是基于SIMD结构的,即在增加硬件资源的同时对多个数据进行类似的处理,提高速度的方法可以是简单地增加处理单元的个数,所以潜力大。

并行处理机只有一个控制单元,但有多个处理单元。在控制单元的控制下,所有处理单元进行同样的运算,不同的是进行运算的数据不同。如果是非并行计算的程序部分,则由控制器完成。从这里我们可以看出,并行处理机特别适用于矩阵计算,所以,并行处理机也被称为矩阵计算机。

1.并行处理机性能参数

● 处理单元个数。

● 控制器的指令系统。控制器处理串行处理指令和标量类指令。

● 运算器的指令系统。包括算术、逻辑运算、数据寻位、屏蔽等数据操作指令。这些指令是由控制器传播到处于“活跃”状态的运算器上,并由运算器执行。这些指令是向量类指令。

● 屏蔽方案集。控制器如何允许或禁止某个运算器。

● 数据寻位功能集。它是运算器之间通信的设置模式的集合。

2.并行处理机的分类

按照存储器的分布,并行处理机分为共享式并行处理机和分布式存储并行处理机,集中和分布是计算机系统永恒的两个方面。集中意味着紧耦合,而分布意味着松耦合。

1)分布式存储并行处理机

分布式存储并行处理机的结构如图1-6所示。

在分布式存储并行处理机中,主要是要使得每个处理单元需要使用的数据尽量在本地存储单元中,如果需要其他处理单元的数据,就必须借助于互联网络或者是控制器的转发了。图1-6 分布式存储并行处理机结构

2)共享式分布处理机

共享式分布处理机的结构如图1-7所示。

和分布式存储并行处理机不同的是增加了共享的存储器,共享的存储器难免在不同的处理单元访问时发生冲突,这就需要设计一些算法来计算数据在存储器中的分配,所有共享存储器并行计算机的互联网络结构也更加复杂。图1-7 共享式分布处理机结构

3.并行处理机的特点

1)强大的向量运算能力

并行计算机通常是专用计算机,它在有限差分、矩阵、信号处理等向量计算和矩阵计算方面有特殊的优势,人们能够通过数学理论和算法把这些计算转换成对数组或者向量的处理,然后利用并行处理计算机的多个处理单元对数组或向量的不同数据部分进行相同的操作过程,这样能够获得很高的运算速度。所以,并行计算机特别适用于进行大量这样的运算的情况。

2)使用资源重复的并行方式

并行计算机的各个运算器的运算是在控制器的操作下“同时”进行的,提高对大型计算的运算速度在于增加运算器的数量,而不是并行计算机的复杂程度,所以对于并行计算机适合的特定的领域,并行计算机能够处理非常庞大的运算。

3)标量运算的作用

在并行处理计算机中,不可避免地仍然存在普通的标量运算和程序控制,这些是由控制器来完成的,所以控制器的性能对并行处理机的性能也有很大的影响。

4)编译系统

具备识别高级语言中的向量计算的编译系统,对提高程序的通用性很有帮助。1.3.5 双机系统

双机系统是用两个主机来代替一个主机的工作。双机系统主要可以提高系统并行性,也可以一台计算机作为工作机,另外一台作为热备份,当工作机器出现故障时,再以备份机器作为工作机器,在应用中,以后一种方式居多。从外部访问的客户端而言,双机系统是透明的,客户端认为只有一台机器在服务。

要实现双机系统,需要一系列的软硬件支持。

从硬件来说,双机系统至少要有共享的外存储器,这样,其中一台机器所做的工作结果才能被另外一台访问。双机系统还需要两个机器之间的联络线,通过联络线双方得到对方的状态。不使用网络作为联络线是因为网络可能中断。

从软件来说,双机系统需要一个支持共享外存储器的底层软件,这个软件仲裁决定哪一台机器使用共享外存储器。还需要一个对外的接受连接软件,这个软件仲裁哪一台机器处理外部的连接请求。状态管理软件监视双方的状态,及时进行处理。

1.4 多处理机系统

并行处理机只有一个控制器,由这个控制器控制所有的运算器,而多处理机则有多个控制器,分别控制对应的运算器。

多处理机属于MIMD,即有多个处理单元,同时对不同的数据进行不同的处理,指令流和数据流都存在并行,这决定了多处理机就是为解决复杂问题而设计的。这些复杂问题包括我们熟悉的天气预报,由于影响天气变化的因素太多,所以想做预报就必须给计算机系统加入大量的运算过程,而尴尬的情况是当计算的时间比要预报的时间还要长时,就变成了验证而不是预报了。我们发现天气预报已经比原来准确多了,国家已经能够开始提前发布“黄金周”的天气预报了,这也是计算机发展的一个佐证吧。

从各处理器之间的关系而言,多处理机又分为对称的多处理机和非对称的多处理机。如果所有的处理机都能同样访问所存外围设备,就是对称的多处理机,相反,只有部分处理机(称主处理机)能执行操作系统,而附属处理机在主处理机的监督和控制之下,就是非对称的多处理机。并行处理机不需要这样的分类,它的控制单元只有一个,而属于被控制的处理单元有很多,所有的处理单元的地位是一样的。1.4.1 访问存储器方式

多处理机有多个处理单元,就产生了这些处理单元如何访问内存的问题。这就有两种方式:共享存储方式和分布式存储方式。共享存储访问方式又称为紧耦合系统,分布式存储方式又称为松耦合系统。

共享存储方式的多处理机有公共的共享存储器。多个处理机能够访问共享的存储器,并使用共享的存储器传递共享公共信息和参数等。其特点是容易管理和利用资源,常常适用于多用户的一般应用和分时应用,也能加快大程序的运行速度,但处理机数目有限,不易扩充。

各个处理机对共享存储器的访问方式有:均匀存储器存取、非均匀存储器存取和只有高速缓存的多处理机。

1.均匀存储器存取(Uniform-Memory Access,UMA)

采用这种方式访问共享存储器的多处理机,所有处理机对所有存储单元有相同的存取时间,所以称为“均匀”。其结构如图1-8所示。图1-8 均匀存储器存取的多处理机

2.非均匀存储器存取

和均匀存储器存取不同,这种多处理机中不同处理机访问不同存储单元的存取时间是不同的。

这也有多种实现的方式,典型的有共享本地存储式,其结构如图1-9所示。显然,多个处理机访问本地存储器很快,而访问其他处理机的存储器则需要经过互联网络。图1-9 共享本地存储式

还有层次机群,层次机群扩展了上面的结构,增加了全局共享存储器,其结构如图1-10所示。非均匀存储多处理机的特点是:容易扩充,但复杂的数据结构难以在处理机之间传递。图1-10 层次机群

3.只有高速缓存的多处理机

这是非均匀存储访问处理机的一个特例,处理机内没有本地或共享的存储器,只有高速缓存,数据从哪里来是由目录模块决定的。其结构如图1-11所示。图1-11 只有高速缓存的多处理机

4.分布式存储多处理机

和共享存储器访问方式不同,这种方式是每个处理机独占本地存储器,各处理机通过信息网络相连。这更像计算机网络的结构,如图1-12所示。图1-12 分布式存储多处理机1.4.2 互联方式

以上讲述的图中的“互联网络”只是一个方框,其实多处理机和共享存储器、输入/输出设备等之间的通信性能是多处理机性能的重要一环,主要的互联方式有以下4种。

1.总线

总线方式是最简单的方法。总线按照层次可分为:处理机板上的本地总线、为所有插入板提供信息通路的底板总线、同输入/输出外设交换信息的输入/输出总线。总线方式适用于多处理机个数少于 100的系统,这主要是受到了组装技术的限制,而数据的传输速率受到总线带宽和速度的限制。

2.开关网络和交叉开关

开关网络为处理机和共享存储器之间提供了一个动态互联通路,如图1-13所示。图1-13 开关网络

如果中间的开关网同时连接到达一定的数量后,不能再容纳新的连接,这种网络是阻塞网络。

交叉开关提供了非阻塞网络的连接,它使用一组开关阵列将处理机和共享存储器连接,如图 1-14所示。图1-14 交叉开关

每个交叉的结点都是开关,可以连接或断开,这样以空间矩阵来换时间的方式需要使用大量的连线和交叉点开关,所以只有处理机和共享存储器数目较少时才可能使用这种方式,而且一旦建成,很难扩充。

3.开关枢纽

和交叉开关不同的是,开关枢纽不使用交叉矩阵这样庞大的硬件结构。它由仲裁单元和开关单元组成,仲裁单元完成冲突处理,开关单元完成连接。其方式和通信中的交换机有些相似。

4.多端口存储器

事实上这是将交叉点仲裁逻辑移动到存储器去控制的方法,如图1-15所示。图1-15 多端口存储器

每个存储器模块有多个存取端口,由存储器负责分解多个处理机的冲突请求。这增加了存储器模式的成本,和交叉开关类似,多端口存储器也需要大量的连线。而且存储器端口数目是固定的,一旦开始生产之后就无法增加。

1.5 输入/输出及其控制

曾经在科幻作品中有大胆的设想:玻璃瓶中的大脑,如果科技发达到能给玻璃瓶中的大脑施加视觉、听觉、触觉等信号,这个大脑能够意识到自己是在玻璃瓶中而不是在现实中吗?

借助输入/输出设备,我们才能“操纵计算机”和“知道它在工作”。1.5.1 主要输入/输出设备

计算机的输入/输出设备品种繁多,主要有以下几种。

1.纸带机、卡片机

这都是“古代”大型计算机的输入设备,机器指令以打孔等方式存于纸带、卡片上,由纸带机和卡片机输入计算机。以后人们可能只能在博物馆中见到这些设备。

2.键盘、鼠标

鼠标和键盘在本质功能上多年来并没有变化,键盘负责输入字符,鼠标负责指示位置、进行选择或选取等操作。在嵌入式系统中键盘往往简化成少数的几个键,手写笔是鼠标的扩展。

3.显示器

显示器是人们最熟悉的电脑输出设备,现在越来越多的职业从业人员在工作时的大部分时间是盯着显示器度过的。显示器正向着越来越大、越来越清晰的方面进步,主要分为CRT(Cathode Ray Tube,阴极射线管)显示器和液晶显示器。在嵌入式系统中显示器往往简化为小屏幕液晶或数码管。触摸屏实际上是显示器和鼠标的结合体。

4.外存

外存是主存的辅助和延伸。有硬盘、光存储器、磁带机、闪存等。

5.打印机

将人们需要的结果输出到纸面上。打印机有针打、喷墨、激光打印机。绘图仪是一种特殊的打印机,专门用于大幅图形的精确输出。

6.图形图像摄影输入设备

这些是新兴的输入设备,包括扫描仪、数码相机、数字摄像机等。这些设备能够把图像摄影等信息输入计算机,极大地丰富了个人计算机在普通家庭的作用。图形图像已经形成了TWAINS标准接口,这样软件通过这个标准接口,能同各种不同的图像输入设备进行交互。数字摄像机是通过USB(Universal Serial Bus,通用串行总线)、1394或者专用的视频捕捉设备和个人计算机交互的。1.5.2 输入/输出控制器

由于外设的复杂多样性(控制方式、数据传输速率、数据格式各不相同),同时,不断有新的类型的外设出现,这使得很难使用中央处理器来和它们直接打交道。同时这些外设的数据传送速度往往远远低于系统总线的速度,不适合把它们直接挂在系统总线上。

输入/输出控制器被用来协调和控制数据的输入/输出,具体功能有:缓冲外存数据、地址译码、传递命令、码制转换、电平转换等。其结构如图1-16所示。图1-16 输入/输出控制器

● 数据寄存器:CPU或外设数据的缓冲。

● 状态寄存器:向中央处理器指示控制器和外设的状态。

● 控制寄存器:由中央处理器写入该输入/输出控制器识别的指令,指示输入/输出控制器和外设交互,将数据寄存器的内容写入外设,或者将外设的数据写入数据寄存器,并将此过程的状态写入状态寄存器。

控制电路是输入/输出控制的核心,负责输入/输出控制器的行为。1.5.3 外设的识别

计算机程序要访问外设,从输入/输出控制器组成图可以看出,中央处理器必须要访问输入/输出控制器的各种寄存器,这个识别是通过地址总线和接口电路的地址译码器来实现的,可以采用以下不同的外设编址方式。

1.独立编址方式

在这种方式下,输入/输出地址和主存地址是分开的,从电路上说,有分离的输入/输出读写控制线,从指令上说,有专门的输入/输出控制指令。这些指令常常以汇编指令的方式提供,往往是和具体的中央处理器密切相关的,这对程序的可移植性造成了影响。

例如:个人计算机部分输入/输出地址表如表1-3所示。表1-3 个人计算机部分输入/输出地址表

2.统一编址方式

和独立编址不同,统一编址方式中输入/输出地址是主存地址中的一部分,访问输入/输出寄存器和访问主存的方法是一样的,不需要单独的指令。这种方式能有效地降低软件编程的复杂度,在许多计算机,特别是嵌入式系统中得到了广泛的认可和应用,也称为地址映射。

在采用统一编址方式编程的过程中,需要注意的是程序优化带来的负面影响。对外设的操作往往需要一个过程,可能会对同一个地址多次写不同的值,在编译器看来,这种多次对一个变量的赋值是属于优化范围的,编译器通常会忽略掉前面的赋值语句,只保留它认为“有效的”赋值语句。这时候需要选择合适的方式告诉编译器停止对某些变量进行这样的优化。

统一编址方式不但会将内存地址和I/O地址统一编址,也会将RAM(Random Access Memory,随机存取存储器)、ROM(Read Only Memory,只读存储器)、Flash等统一编址。1.5.4 外设的访问

1.程序查询方式

这是最简单的方式,也是简单系统中(外设种类和数目有限,数据传输速度较慢的系统)常用的方式。这种方式是中央处理器定时查询外设的状态,如果发现某个外设就绪,就开始和这个外设进行输入/输出操作和处理。

程序查询方式的过程如图1-17左图所示。

当存在多个外设时,中央处理器有串行和并行两种方式查询,串行查询是每次查询一个外设,并行则是将多个外设的状态位集中成一个专用端口,这样中央处理器一次查询即可得到多个外设的状态。

这种方式的缺点是:在输入/输出控制器和外设交换数据的过程中,中央处理器必须等待。这种等待对于许多系统而言是无法容忍的。

2.中断方式

使用中断方式,可以克服查询方式的低效问题。

当中央处理器执行到I/O请求指令时,向输入/输出控制器发出相应指令后,中央处理器并不等待输入/输出控制器返回的结果,而是继续执行其他操作。此时,输入/输出控制器负责和外设进行通信,当数据从其数据寄存器写到外设后或者外设的数据写入其数据寄存器后,输入/输出控制器向中央处理器发出中断请求,中央处理器响应中断,并进行相应的处理。注意,由于输入/输出控制器的数据寄存器大小有限,一次输入/输出请求往往要经过多次的中断过程才能够完成。由于中央处理器无须等待输入/输出控制器和外设的数据交换,提高了整个系统的效率。中断方式的过程如图1-17右图所示。

1)中断的一些基本概念

中断不是只用于输入/输出系统中,中断系统是计算机的基本结构,中断系统的出现是现代计算机功能强大的标志。顾名思义,中断就是打断中央处理器正在执行的工作,让中央处理器去处理其他更加重要或者更为紧迫的任务。发起中断的事务称为中断源,中断源包括I/O设备、实时时钟、故障源、软件中断等。中断系统使得中央处理器摆脱了只能按照指令顺序执行的束缚,让计算在并行性、分时操作、故障处理等方面更加强大。

按照中断源来区分中断,可以分为内部中断和外部中断。内部中断是中央处理器内部产生的中断,在个人计算机中,内部中断又分为溢出中断、除法错中断、断点中断、软件中断及单步中断,其中可以使用软件中断实现DOS功能调用和基本BIOS调用,也可以使用单步中断实现程序的调试。与之相对应的外部中断,中断源来自于中央处理器之外。而外部中断按照中央处理器的响应可以分为可屏蔽中断和非屏蔽中断。非屏蔽中断是中央处理器一定要响应的中断,通常是计算机发生了紧急情况,如掉电等。可屏蔽中断大多数是外设和时钟中断,在计算机处理一些不应该打断的任务时,可以通过屏蔽位来响应这些中断。图1-17 外设访问方式

2)中断处理过程

中央处理器收到中断请求后,如果是当前允许的中断,那么要停止正在执行的代码,并把内部寄存器入栈,这个过程不能被再次打断,所以在保护现场的开始要先关中断,保护完后再开中断。这个过程应该尽量短,以避免错过了其他中断。这个过程消耗的时间称为中断响应时间。然后开始执行中断处理程序,中断处理程序常常比较简单,通常是设置一些标志位,做一些简单的数据处理,而让其他更耗时的处理在非中断程序完成。中断处理程序完成后,需要将刚才保存的现场恢复,把入栈的寄存器出栈,继续执行被中断的程序。整个过程消耗的时间称为中断处理时间,当然对于这个时间,不同的中断、不同的应用差别比较大,而且也不是一味求短,实际编写时要考虑中断处理的重要程度。现在大多数中央处理器都支持多级中断,即在进行中断处理程序时,还可以响应其他中断,形成中断嵌套。

3)中断的判断

当有多个中断源时,如图1-18所示,常用的处理方式如下。图1-18 中断的判断

● 每个中断源使用自己的中断请求信号线和中央处理器相连,这种方式适用于中断源不是很多,而中央处理器的外部中断引脚有限的

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载