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


发布时间:2020-07-03 05:43:47

点击下载

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

出版社:电子工业出版社

格式: 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和存储器的组成、性能、基本工作原理。

● 常用I/O设备、通信设备的性能,以及基本工作原理。● I/O接口的功能、类型和特点。

● CISC/RISC、流水线操作、多处理机及并行处理。

1.1 计算机组成

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

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

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

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

其中X、Y是加数和被加数,C+1是低位进位,C是进位,Z是iiiii和。

为完成多位数据加法,可以通过增加电路和部件,使简单的加法器能够变为串行、并行加法器,超前进位加法器等。

运算器的位数,即运算器一次能对多少位的数据做加法。这是衡量中央处理器的一个重要指标。1.1.2 控制器

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

控制器各组件的说明如下。

● 指令寄存器(IR):中央处理器,执行的操作码存放在这里。

● 指令译码器(ID):将操作码解码,告诉中央处理器该做什么。

● 定时和控制电路(Timing/Control Circuit):用来产生各种微操作控制信号。

● 程序计数器(PC):存放下一条指令的地址。由于多数情况下程序是顺序执行,所以程序计算数器设计成能自动加1。当出现转移指令、中断等情况时,就需要重填程序计数器。程序计数器可能是下一条指令的绝对地址,也可能是相对地址,即地址偏移量。

● 标志寄存器(Flags Register,FR):通常记录运算器的重要状态或特征,包括是否溢出、结果为0、被0除等。这个寄存器的每一位表示一个特征。标志寄存器的典型应用是作为跳转指令的判断条件。

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

● 寄存器组:上面提及的程序计数器、标志寄存器等为专用寄存器,都有特定的功能和用途。

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

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

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

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

存储器的性能指标如下。

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

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

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

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

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

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

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

1.组合逻辑控制

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

2.微程序控制

为提高控制的灵活性,许多中央处理器采用了微程序控制的控制方法,先看如下的几个概念。

● 微程序:对应一组机器指令,若干个微指令序列形成一段微程序。而微指令又可细分为若干个微操作。微程序存在控制内存中。

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

3.微指令格式

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

在如图1-4所示的前半部分,存放着对各种控制门进行激活或关闭的控制信息;后半部分是后续微指令的地址。微指令格式实现了数据结构中的单向列表。

操作控制字段的格式有如下两种。

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

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

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

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

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

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

1.根据多倍性的分类

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

● SISD(Single Instruction Single Data,单指令流单数据流):最简单的方式,计算机每次处理一条指令,并只对一个操作部件分配数据。

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

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

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

2.按照程序流程机制的分类

1)控制流计算机

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

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.处理器性能的评价

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

这样的简单评价方法随着计算机应用的不断发展显得过于简单,局限性也日益暴露,由此很快便出现了改进的方法,主要有以下3种。

1)等效指令速度法

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

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

2)数据处理速度法

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

3)核心程序法

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

有关性能评价方面的详细内容,请阅读本书第3章。

1.2 指令系统

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

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

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

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

1.立即寻址

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

2.直接寻址

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

3.寄存器寻址

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

4.间接寻址

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

5.寄存器间接寻址

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

6.变址寻址

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

7.基址寻址

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

8.页面寻址

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

9.相对寻址

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

从功能来言,常用的指令有如下几种。

1.数据传送指令

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

2.运算类指令

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

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

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

3.程序控制指令

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

4.输入/输出类指令

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

5.数据处理类指令

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

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

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

在这种情况下,便出现了精简指令设计思想。这种计算机的指令结构不追求全面和复杂,而是只实现那些经常被执行的指令——由于指令比复杂指令结构的计算机少得多,所以称为精简指令计算机。

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

式中,P:计算机执行程序所需要的时间。

I:机器指令数。

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

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

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

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

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

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

2.大量通用寄存器

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

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

精简指令计算机采用“重叠寄存器窗口技术”进行寄存器的组织,如图1-5所示。

图1-5中有3个过程(过程X、Y和Z),X的输出是Y的输入,通过这种方式传递参数,不需要保护现场,从而减少了堆栈的操作。当然,这样的调用,其层数是有限制的,层数过多甚至要递归函数时,就一定要借助于主存的堆栈。图1-5 寄存器的组织

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

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

4.RISC的存储系统

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

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

5.对编译器的影响

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

1.3 并行处理和并行处理机

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

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

有关并行严格的定义有如下几种。

● 同时性:多个事件同时发生。

● 并发性:多个事件在同一个时间间隔内发生。绝对是不会同时存在的,只是事件的间隙太小,以至于不能被机器识别。

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

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

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

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

● 并行度:指在并行计算机中,单位时间内执行程序的处理单元的数量。并行性是个广泛的概念,从硬件到软件各个层次都在利用并行性,以提高计算机性能。1.3.2 并行性等级

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

1.指令或语句级

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

2.循环级

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

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

3.过程级和子程序级

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

4.作业程序级

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

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

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

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

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

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

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

并行性仍然在不停的发展之中,在输入/输出处理中的中断技术、DMA技术、通道技术都在不断提高计算机和外设处理并行性,在指令处理方面的流水线技术、并行计算机、多处理机、大规模并行处理(Massively 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.4.3 同步

如果多机系统存在共享主存,当不同的处理器需要处理相同存储单元的数据时,就会引起冲突,这时需要使用同步技术来保证操作的正常执行。

1.测试与设置

使用测试与设置的方法,可对多个处理器访问的主存单元设置一个“信号灯”,当某个处理器需要写该单元时,先查看信号灯,如果允许写,则这个处理器设置信号灯为不能操作的状态,然后开始写操作。当写操作完成时,则放开信号灯。如果发现信号灯是不允许写的状态,则这个处理器过程必须以某种方式等待信号灯的释放。

当存在多个处理器需要同时访问主存单元时,这些处理器只能以串行的方式来处理。处理器进行串行处理的能力称为:MSYPS,即处理器1s内能执行的串行程序数,它的速度是MIPS 1/5~1/10。

当某个处理器发现需要操作的主存单元不能操作时,它有两种方式,一种是重复测试,另外一种是该任务进入待操作的队列。当该主存单元可以操作时,按照队列的次序,选择下一个操作的处理器任务。重复测试基本上是在浪费处理器的时间,而且,不断地重复测试会加剧对信号灯操作的频率,甚至使得释放信号灯的程序等待。而队列处理让处理器在等待时间能处理一些其他工作。另外一方面是,任务的入队和出队都非常消耗资源,而且出队和入队的操作也要涉及对共享主存单元的访问,这个访问同样会出现同步的问题。

2.加1和减1指令

测试和设置方法适合于对长度为1的主存单元进行访问控制。对于一片区域的主存单元的控制可以使用加1减1指令的同步技术。使用这个方法,处理器对主存加1减1的指令必须具备不可中断的特性。这里的信号灯不是一个可以操作与否的开关,而是返回一个存储单元的全部内容。先把信号灯设置一个非负数,当一个处理器需要访问长度为X的共享区域中的某个单元时,先对信号灯进行减1操作,如果减1后,信号灯是一个非负数,则认为可以访问。当访问结束后进行加1操作。如果发现减1后信号灯为负数,则说明不能再容纳更多的处理器进行操作了,则立即进行加1操作,并进入等待,这与测试和设置中的方法是一样的。

3.比较交换指令

与上面的两种使用信号灯的方法不同,使用比较交换指令的同步方法不需要对共享数据设置信号灯,也就不必加锁。当一个处理器处理完数据,需要将数据写入共享主存时,先比较该主存单元的数据和处理前读到的数据是否相同,如果相同则直接将结果写入,如果不同则按照新的值重新计算处理。

这种方式最大的好处在于不需要加锁,能够明显提升MSYPS值。但是它不能判断原值在经过了其他处理器一系列修改后,又恢复到原来的值的情况。

4.取和加指令

这种方法试图给出一种不需要加锁,也可以并行处理的方式。它是把增量值加到共享主存单元上。从理论上来说,这种方式适合于许多处理器同时处理同一个共享内存单元时,它比需要不断重复测试的其他方法更加有效。同样,这种支持并行的指令也使得需要考虑的各种情况大为增加,更加难以实现。1.4.4 多处理机特点

多处理机的特点就是“复杂”,体现在以下5个方面。

1.结构复杂性

书中提及的多处理机结构只是有代表性的几种,为了适应复杂和各种各样需要解决的问题,多处理机之间的互联网络、数据传递的种类相当多。由于这种复杂性,所以多处理机的数量还无法大量增加。

2.程序并行性识别

与流水线及并行处理机不同,多处理机的并行性不再是细粒度并行,而是中、粗粒度并行,是在过程和子程序级别以上的并行。如何识别程序并行性是非常困难的。

3.需要专门的并行指令

在程序中需要专门的一种控制并发指令。这种指令用来表示可以并发执行的多个程序段之间的并发关系,并且可以控制它们并发执行。这样,在一个任务执行的时候,可以产生一些其他任务和这个任务并发执行,这称为并行任务的派生。这种派生同样复杂,随程序的性质及程序的流程不同而有不同的变化。

4.同步措施

在并发的各个处理机执行不同的程序或程序段中,经常会存在数据往来或者控制依赖,这种相互关系需要专门的同步措施来调节不同的处理机执行过程和执行内容。当然,最好是能尽量减少不同处理机运行程序的依赖性,做到人们经常提的“高内聚,低耦合”。

5.资源分配和任务调度

多处理机的各个处理机执行的并发任务之间需要的资源变化很复杂,各个处理机执行的情况也各不相同,资源分配和任务调度非常困难。

1.5 输入/输出及其控制

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

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

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

1.纸带机、卡片机

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

2.键盘、鼠标

键盘负责输入字符,鼠标负责指示位置,进行选择或点取等操作。在嵌入式系统中,键盘往往简化成少数的几个键。手写笔是鼠标的扩展。

3.显示器

显示器是人们最熟悉的电脑输出设备,现在越来越多的从业人员工作时的大部分时间是盯着显示器度过的。显示器正向着越来越大、越来越清晰的方向发展,其类型分为CRT显示器和液晶显示器两类。在嵌入式系统中显示器往往简化为小屏幕CD或数码管。触摸屏实际上是显示器和鼠标的结合体。

4.外存

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

5.打印机

打印机有针打、喷墨、激光打印机。绘图仪是一种特殊的打印机,专门用于大幅面的图形精确输出。

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

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

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

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

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

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

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

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

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

1.独立编址方式

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

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

2.统一编址方式

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

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

统一编址方式不但会将内存地址和I/O地址统一编址,也会将RAM、ROM、Flash等统一编址。1.5.4 外设的访问

1.程序查询方式

这是最简单的方式,也是简单系统中(外设种类和数目有限,数

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

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载