嵌入式硬件技术基础(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-29 08:28:38

点击下载

作者:王晓薇,周传生,等

出版社:电子工业出版社

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

嵌入式硬件技术基础

嵌入式硬件技术基础试读:

序言

编者在总结多年教学、科研工作实践的基础上,结合目前高校计算机专业硬件技术教学的实际情况,充分考虑计算机应用技术的发展与创新,编写了《嵌入式硬件技术基础》这本书。本书将“计算机组成原理”、“汇编语言程序设计”、“微型计算机原理及接口技术”等课程的内容进行有机的融合,有效地解决知识联系分散,知识结构松散,理论与实际联系不紧密等诸多问题,达到内容精炼、重点突出、知识连贯、侧重应用的目标,为学生建立专业核心课程的系统化结构,同时占用较少的学时,使学生掌握嵌入式应用系统开发所需要的硬件基础知识,培养学生对嵌入式系统的分析、开发与设计的能力。

本书的特色

1.具有结构优化、内容精炼、重点突出的优点,强调建立微处理器级和硬件系统级的整机概念,体现了课程结构的合理性。

2.本书各章有较多的应用举例和习题,着眼于提高学生分析实际问题和解决实际问题的能力,较好地体现了实用性。

3.本书配有电子教案和习题解答,读者可从华信资源教育网www.huaxin.edu.cn上下载,以方便学生课后的学习和复习。随着计算机技术迅速发展而不断出现的新器件、新部件及新技术、新知识也可在该网站上下载。

4.本书有配套的《嵌入式硬件技术基础实验与习题解答》,它不仅有软件实验、硬件实验、软硬件相结合的实验项目,还有有关实验内容的设计思想、方法、原则及实践经验总结,并且包括典型问题分析解答和本书全部习题的详解。

使用指南

本书共有14章,可分为3个部分。第1~4章是第1部分,主要介绍组成嵌入式应用系统功能部件的原理、结构,包括运算器、存储器和微处理器。第5章是第2部分,主要介绍硬件编程语言——汇编语言及其与C语言的混合编程。第6~14章是第3部分,主要介绍嵌入式应用系统的典型接口芯片、接口技术,以及嵌入式应用系统软、硬件设计的基本方法。

学习计算机组成及微机原理的读者可阅读1~12章,这12章精炼地讲述了计算机硬件的基础知识,给出了汇编语言的基本编程思想,以及与C语言的混合编程。可以将书中带*的章节作为选读章节。

本书作为教材,全部内容讲授大约需要100学时,实验需要40学时,共需140学时左右。与上述三门独立的课程相比,大约节约60学时,也就是减少了一个学期的学习周期。并且在介绍计算机硬件基础理论的同时,介绍了嵌入式应用系统开发所需要的硬件基础理论和思想。

参加本书编写的有王晓薇、姜岩、周传生、李冶、孙笑薇、穆宝良、孙静、张勇、于涧、邓力国。在本书的编写和使用过程中,得到了许多教师的帮助,在此表示感谢。作者还要感谢电子工业出版社的编辑,是他们的大力支持,才使本书能够很快与读者见面。本书还参考和引用有关方面书籍,其来源都在参考文献中列出,在此对有关作者表示感谢。

限于编者的学识水平,本书难免有疏忽和不当之处,敬请广大同行及读者指正。同时也欢迎读者,尤其是采用本书的教师和学生,共同探讨相关教学内容、教学方法等问题。敬请广大师生和读者通过电子信箱(wangxwvv@gmail.com)与编者联系。

第1章 概论

计算机的知识体系非常广泛,但不论哪方面的研究与应用都离不开计算机的硬件技术,学习和掌握计算机的硬件基础知识和它的工作原理是非常重要和必要的。本章将概括性地介绍计算机及嵌入式系统的基本概念、原理和应用。

本章学习要点:

● 计算机硬件的概念及组成

● 计算机软件的概念及分类

● 计算机体系结构

● 嵌入式系统的概念及应用

在不到100年的时间里,计算机已经深入到人类生产、生活的各个方面,为人类进步作出了巨大的贡献。广义地讲,计算机的贡献就是帮助人们进行信息处理,这对人类社会太重要了。20世纪头两次产业革命中,信息处理能力的不足曾经成为社会发展的巨大障碍,故它已经上升到一个国家的战略高度。权威人士指出,现在评价一个国家的综合实力,不是看经济实力或军事实力,而是看这个国家信息处理能力的大小。人类社会的信息种类太多了,各自的作用场合千差万别,复杂程度越来越高,处理方法各式各样,然而,在绝大多数情况下,尤其是人力不能及时,都有计算机在其中起着重大作用,这也直接促使计算机领域发展出各种庞大和复杂的分支。

嵌入式计算机系统作为计算机应用的一个重要领域,在消费电子、医用电子、智能控制、通信电子、仪器仪表、交通运输等各种领域都有核心应用。大家耳熟能详的掌上电脑、机顶盒、IP电话等都是嵌入式计算机系统应用的产物。

嵌入式计算机系统不同于普通的计算机系统,它是以应用为中心,以计算机技术为基础,并且软、硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统,以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。嵌入式计算机系统的工作原理与普通的计算机系统本质上是一致的,它们均由硬件和软件组成。硬件构成躯体,软件构造灵魂。

1.1 计算机硬件

计算机的功能从根本上说就是能够接收信息,根据事先编好的程序对信息进行处理,并给出处理的结果。信息是复杂的,带来计算机科学的复杂性。但不论多么复杂,都是靠计算机的基本部件协作完成的,这些部件有运算器、控制器、存储器、输入设备和输出设备。

计算机的基本结构如图1-1所示。运算器与控制器合称为中央处理器(Central Processing Unit,CPU),它是计算机硬件系统的控制核心。在由超大规模集成电路构成的微型计算机中,CPU被集成在一块芯片上,称为微处理器。中央处理器和主存储器合称为主机。辅助存储器和输入、输出设备统称为外部设备或外围设备。各部件间流动着信息流和控制流,图中实箭头表示信息流,虚箭头表示控制流。图1-1 计算机的基本结构框图

计算机的主机中流动着两类信息流:指令流和数据流。由主存储器流向控制器的信息流称为指令流;由主存储器流向运算器或由运算器流向主存储器的信息流称为数据流。控制器依据指令发出控制信号,控制整机工作来处理信息。

1.运算器

运算器(Arithmetic Unit)是一种执行部件,主要任务是完成信息的加工处理,实际上就是执行算术运算和逻辑运算。它主要由算术逻辑单元(Arithmetic Logical Unit,ALU)和一系列寄存器组成。

ALU是完成算术逻辑运算的部件。它的核心是加法器。算术运算是按照算术规则进行的运算,如加、减、乘、除等;逻辑运算一般指非算术性质的运算,如比较、移位、与、或、非和异或等。在计算机中,一些复杂的运算往往被分解成一系列算术运算和逻辑运算来完成。

运算器中的寄存器用于存放参加运算的操作数、运算的中间结果和最终结果。寄存器的存取速度比存储器的存取速度快得多。

2.控制器

控制器(Control Unit)是对输入的指令进行分析,并统一控制计算机的各个部件完成一定任务的部件。

控制器一般由指令寄存器、状态寄存器、指令译码器、时序电路和控制电路组成。计算机的工作方式是执行程序,程序就是为完成某一任务所编制的特定指令序列,各种指令操作按一定的时间关系有序安排,控制器产生各种最基本的不可再分的微操作的命令信号,即微命令,以指挥整个计算机有条不紊地工作。当计算机执行程序时,控制器首先从指令指针寄存器中取得指令的地址,并将下一条指令的地址存入指令寄存器中,然后从存储器中取出指令,由指令译码器对指令进行译码后产生控制信号,实际上就是若干表示“1”和“0”的高低电位的组合,用以驱动相应的硬件完成指令操作。简言之,控制器就是指挥计算机各部件工作的元件,其基本任务就是根据输入指令的需要,综合有关的逻辑条件与时间条件,产生相应的微命令。

3.存储器

存储器(Memory/Storage)是用来存放程序和数据的部件,它是计算机中各种信息的存储和交流中心。程序是计算机操作的依据,数据是计算机操作的对象。计算机的存储器体系通常包括高速缓冲存储器、主存储器(内存储器,简称主存或内存)和辅助存储器(外存储器,简称辅存或外存)三级。当前在计算机上运行的程序和数据存放在主存储器中;辅助存储器作为主存储器的后援,存放暂不运行的程序和数据。主存储器的速度比CPU慢,因此存储器和CPU之间通常加入一级小容量的高速缓冲存储器(Cache)。CPU能直接访问主存储器。高速缓冲存储器解决了CPU与主存储器之间速度不匹配的矛盾。辅助存储器弥补了主存容量的不足,扩大了用户的编程空间。

主存储器由若干个存储单元组成,每个单元存放若干位二进制信息。为了区分不同的存储单元,通常把全部单元进行统一编号,此编号称为存储单元的地址。不同的存储单元有不同的地址,单元与单元地址是一一对应的。存入信息至存储单元或从存储单元取出信息,称为访问存储器,即对存储器进行写入或读出操作。通常,读出时,被读出的存储单元的内容不变;写入时,被写入的存储单元原有内容被破坏而代之以新写入的内容。

4.输入设备

输入设备(Input Equipment)是用户给主机提供信息(原始数据和处理这些数据的程序)的装置。现在的计算机能够接收各种各样的数据,既可以是数值型的数据,也可以是各种非数值型的数据,如图形、图像、声音等,这些数据都可以通过不同类型的输入设备输入到计算机中,即输入设备具有信息转换和数据传送功能,也就是将它们转换为计算机所能识别的二进制代码,并传送给计算机的能力。

常用的输入设备有键盘、语音识别器、鼠标器、轨迹球、游戏杆、扫描仪等。

5.输出设备

输出设备(Out Equipment)是接收计算机处理结果的装置。该装置能将二进制代码转换为用户所能识别的信息形式,如图形、图像、声音等。

常用的输出设备有显示器、打印机、绘图仪和语音输出装置等。

特殊的输入/输出设备还有很多,如辅助存储器,用于存储程序和数据,从功能上看是存储系统的一部分,可是从与主机的连接方式和信息交换方式来看,辅助存储器可视为输入/输出设备。另外,随着计算机网络的迅速发展,数据通信设备和终端已成为计算机输入/输出设备重要而特殊的一类,如传真机、调制解调器等。计算机应用系统中连接的一些专用装置,也广义地归类于输入/输出设备,如自动控制、检测系统中使用的与计算机相关的仪器、装置等。

输入/输出设备多是电子和机电混合的装置,与运算器、存储器等电子部件相比,速度较慢。输入/输出设备与主机连接需要通过接口电路。

6.总线

图1-1中,各部件之间的联系纽带就是总线。系统总线是一组传递信息的公共导线,它可以是电缆,也可以是印制电路板上的连线,用来连接多个部件,并为之提供信息交换通路。

总线的特点是具有共享性和分时性。所谓共享性是指连接在总线上的部件都可通过总线传递信息,多个部件可以同时从总线接收相同的信息,这可以视为广播式。所谓分时性是指任意时刻只能有一个设备向总线发送信息,这当然也成为了系统瓶颈。

根据传送信息的内容与作用不同,系统总线分为地址总线AB、数据总线DB、控制总线CB三类。地址总线用于传送地址信息,地址线的根数决定了寻址存储器的范围;数据总线用来传送数据信息,数据线的根数决定了一次能够传送数据的位数;控制总线用来传送控制信号、时序信号和状态信息等。

CPU发出的控制信号经CB送到存储器和I/O设备,控制各部件完成指令的操作。与此同时,CPU经AB向存储器或I/O设备发送地址,只有经地址信息译码选中的存储器或I/O设备,才能驱动CB和DB。另外,存储器和I/O设备有时也向CPU送回一些信号,如准备好信号READY,CPU可根据这些信号来调整本身发出的控制信号。I/O设备也可以直接向存储器提出读/写要求,由设备接口控制器控制数据传送。各部件通过三态门挂接在总线上。三态门是具有逻辑“0”、逻辑“1”和浮空三种逻辑状态的门电路,浮空状态就是三态门输出呈现开路的高阻状态。当三态门控制信号无效时,输出就呈现高阻状态。通过对三态门的控制,就可以选择部件和控制传输线上的信号传送方向。

1.2 计算机软件

1.2.1 软件的组成与分类

计算机中的程序、数据和文档称为计算机软件。计算机软件一般分为系统软件和应用软件两类。如图1-2所示。图1-2 软件组成

系统软件是方便用户使用计算机,发挥计算机效率、功能的基础软件。它负责计算机系统的调度管理,提供程序的运行环境和开发环境,并且向用户提供各种服务。

应用软件是用各种程序设计语言编写出来的具有特定功能的程序。1.2.2 计算机语言

计算机的功能是强大的,但它又是“没有智慧的”,说它强大,是因为计算机能够帮助人们完成人类完不成的事务,说它是“没有智慧的”,则是因为计算机是没有“主观能动性”的,计算机所进行的各种行为都是人根据具体问题,用计算机能够“明白”的语言,把按照一定的方法组织和处理表示不同信息的不同数据的完整描述输入计算机,而计算机任何时刻都能够“忠诚”地执行这样的描述,这个过程实际上就是编程。这里计算机能够“明白”的语言就是计算机语言。计算机语言包括机器语言、汇编语言和高级语言。

1.机器语言

机器语言是计算机硬件能够直接识别和执行的以二进制代码表示的机器指令。在早期的计算机中,人们用机器语言来编写程序。用机器语言编写程序时,必须知道所使用计算机的指令格式,编排好存放每条指令的地址,以区分执行程序的先后次序及各指令之间的跳转关系。所以机器语言是面向机器的,每一种机器语言编写的程序只适用于某种特定类型的计算机。由于计算机能直接识别和执行机器语言程序,故机器语言程序又称为目标程序,显然机器语言程序执行起来是最快的。

用机器语言编写程序既烦琐,又容易出错,还要求程序编写者深入理解计算机硬件结构。因此,在计算机发展过程中,逐步出现了汇编语言和各种高级的程序设计语言,以帮助人们更有效、更方便地编写程序。

2.汇编语言

汇编语言是一种与计算机机器语言相当接近的符号语言。它采用助记符来表示机器指令的操作码。采用符号地址指示程序存放在存储器中的位置及跳转关系,并增加一些控制程序执行和便于表示数据及其存放的命令,以方便人们编写程序。汇编语言与机器语言一样,也是一种面向机器的语言。

用汇编语言编写的程序称为汇编语言源程序。计算机不能直接识别和执行汇编语言源程序,需要通过称为汇编程序的一种语言处理程序加以处理。得到机器指令形式的目标程序,计算机才能识别和执行。将汇编语言源程序处理为机器语言的目标程序的过程,称为“汇编”;反之,将机器语言的目标程序转换为汇编语言源程序的过程,称为“反汇编”。也可将一种计算机的汇编语言源程序汇编成另一种计算机的机器语言的目标程序,这个过程称为“交叉汇编”。

汇编语言与硬件关系密切,用它编写的程序紧凑,占主存小,速度快,适合于编写直接访问系统硬件的系统程序或设备控制软件。

3.高级语言

高级语言克服了机器语言和汇编语言依赖于具体计算机的缺陷,使计算机语言成为描述各种问题求解过程的算法语言。并从过程化语言发展为现代广泛应用的面向对象的语言。用某种高级语言编写的程序称为高级语言源程序,如C++语言源程序、PASCAL语言源程序等。

计算机不能直接执行高级语言源程序,源程序在输入计算机后,通过“翻译程序”翻译成机器语言形式,计算机才能识别和执行。这种“翻译”通常有两种方式,即编译方式和解释方式。编译方式是指利用事先编好的一个称为编译程序的机器语言程序,作为系统软件存放在计算机内,当用户将高级语言编写的源程序输入计算机后,编译程序便把源程序翻译成用机器语言表示的与之等价的目标程序,然后计算机再执行该目标程序,以完成源程序要处理的运算,并取得结果。解释方式是指源程序进入计算机后,由一个叫解释程序的处理程序边扫描边解释,逐句输入逐句翻译,计算机再逐句执行,并不产生目标程序。如PASCAL,FORTRAN,COBOL等高级语言按编译方式执行;BASIC语言则以解释方式执行为主。

高级语言不涉及机器的硬件结构,表达方式比较接近自然语言,描述问题的能力强,通用性强,编写程序容易,适合于编写与硬件没有直接关系的应用软件。

在现代程序设计中,采用在高级语言中提供与汇编语言之间的调用接口的方法,很好地利用了高级语言和汇编语言各自的优点,摒弃了两者的不足。用汇编语言编写的程序作为高级语言的一个外部过程或函数,汇编源程序和高级语言源程序分别通过汇编、编译成目标文件后,利用连接程序把它们连接成可执行文件即可执行。

1.3 计算机系统的层次结构

计算机系统以硬件为基础,通过配置各种软件,形成一个有机组合的系统。使用计算机帮助我们解决问题的方法从控制流程的角度看可分为三种:

① 全硬件的方法,即使用组合、时序逻辑设计方法,设计硬件逻辑电路,实现控制流程;

② 软、硬件相结合的方法,即部分流程由硬件逻辑实现,另一部分由微程序实现;

③ 全软件的方法,即采用某种计算机语言,按流程算法编制程序,实现控制流程。

究竟采用什么方法,取决于人员知识、开发成本、速度、可靠性、存储容量等多种因素。

计算机能提供给我们这么多解决问题的方法,与计算机自身不同层面上的功能是分不开的。我们采用一种层次结构的观点分析计算机,便于我们选择某一层次分析计算机的组成、性能和工作原理。计算机系统按功能划分的层次结构如图1-3所示。图1-3 计算机系统按功能划分的层次结构图

一台实际的计算机在没有加载任何软件之前就是一台最基本的物理机,物理机按照功能实现划分成不可再分的三个实际机器层次,M是由电子线路组成的机器实体,这里称其为硬联逻辑层,M是支01持和执行微指令的微程序层,M是机器语言层。计算机设计者关心2实际机器层的组成。面向实际机器层,用户只有编制二进制代码程序,才能使之工作。在这三个层次上解决实际问题都属于硬件层面。

M~M为虚拟机器层。虚拟机只对“观察者”存在,它的功能36体现在广义的计算机语言上(即把计算机上安装的所有不同层面上的软件都看成是计算机语言),虚拟机除应用自身层次上的语言外,还对紧邻的较低层次提供自身语言的翻译手段。从某一层次的观察者看来,他只能是通过该层次的语言来了解和使用计算机,至于对实际问题在较低层次上的具体解决和实现是不必关心的。即虚拟机是提供了软件支持的计算机。为使用户能够高效、方便地使用计算机,通常面向用户的是一台虚拟机器。

M是操作系统层。操作系统是计算机软件中的核心程序,用来3管理和控制计算机系统中的硬件和软件资源,并为用户和其他软件提供服务。操作系统控制应用程序执行,并作为计算机用户与计算机硬件间的接口。操作系统与计算机硬件有着固有的联系:在设计操作系统时,必须充分考虑硬件的特性;在设计硬件时,也必须认识到硬件必须为操作系统提供足够的支持。

操作系统的主要功能有:

① 处理器管理功能,即为一个或多个用户合理、有效地分配CPU;

② 存储管理功能,即合理组织和分配存储空间(包括主存和辅存);

③ 数据管理功能,即合理组织信息在辅助存储器上的存储和检索;

④ 设备管理功能,即合理组织和使用I/O设备;

⑤ 作业管理功能,即合理组织和调度作业的运行;

⑥ 系统的安全和保护功能,即为保护系统正常运行,减少和避免由各种操作错误及设备故障引起的问题所采取的防范措施。

操作系统的工作方式是:计算机在开机的瞬间,固化在ROM BIOS(在计算机主板上)中的引导程序将操作系统内核装入主存,然后操作系统运行它的第一个初始化进程,初始化整个系统,随后准备处理用户的各种请求和系统中的事件。现代操作系统是事件(中断、用户请求等)驱动的,如果没有进程执行、用户响应和I/O设备需要服务,操作系统将静止地等待。当中断发生时,硬件将CPU的控制权交给操作系统,操作系统进行中断处理,完成后又静止等待下一个事件。中断是激活操作系统的手段,提供完善的中断机制是现代计算机必备的。

M是中间语言或汇编语言层。面向用户的是提供了汇编支持的4虚拟机器,用户可以使用汇编语言编写程序。

M是高级语言层。面向用户的是提供了编译或解释支持的虚拟5机器,用户可以使用高级语言编写程序。

M是应用语言层。这一层是为使计算机满足某种用途而专门设6计的,是各种面向问题的应用语言。可以设计专门用于人工智能、教育、行政管理和计算机设计等方面的虚拟机器,这些虚拟机器也是当代计算机应用领域的重要研究课题。

我们利用计算机解决问题,使其展开复杂的任务处理,实际上就是在计算机系统的层次结构上按照从较高层次到较低层次的层层“翻译”来完成的,如常见的:用户→建模→应用程序→高级语言→汇编、编译或解释语言→操作系统→机器语言→微程序→硬联逻辑。

计算机系统的层次结构的概念是在计算机发展过程中逐渐形成的,分层方式不是唯一的。不同计算机系统之间的层次结构的划分与实现方法是有差别的,一般来说,相邻层的语法结构的差别不大,这有利于编译或解释,但最终必须处理为能在实际机器上直接执行的机器语言程序。在以上所述的分层方式中,计算机系统的软、硬件界面定在M与M之间。但是,随着大规模集成电路技术的发展,计算机23软、硬件界面已经变得模糊。任何操作可以用软件完成,也可以用硬件完成;任何指令的执行可以用硬件完成,也可以用软件完成。

计算机系统构成多层次结构,使得各层次面向不同的人员。作为学习计算机组成与结构的人员,面向我们的是汇编语言层M、机器4语言层M和微程序层M。21

1.4 计算机的基本工作原理

1.4.1 存储程序工作原理

存储程序工作原理是冯·诺依曼(von Neumann)在1945年领导设计EDVAC计算机的过程中提出的。实际上就是计算机执行程序的方式,采用这种方式,要事先编制程序,并将程序(包含指令和数据)存入主存储器中,计算机在运行程序时,要能自动、连续地从主存储器中依次取出指令并执行。存储程序是计算机能高速自动运行的基础。

存储程序工作方式,可称为指令流驱动方式。即按照指令的执行序列,依次读取指令;根据指令所含的控制信息,调用数据进行处理。为了控制指令序列的执行顺序,设置一个程序计数器(Program Counter,PC),让它存放当前指令所在的存储单元的地址。如果程序是顺序执行的,那么每取出一条指令后,PC内容自动增1(在大多数情况下,程序的执行都是顺序的,即按照指令的先后顺序执行),指示下一条指令该从何处取得。如果程序实施转移,则将转移目标地址送入PC,以便按新地址读取后继指令。PC就像一个指针,一直指示着程序的执行进程,也就是指示指令流的形成。

存储程序工作原理奠定了现代计算机的基本结构思想,到目前为止,绝大多数计算机仍沿用这一结构,称为冯·诺依曼机结构。

冯·诺依曼机结构从本质有什么缺点,如何改进?

冯·诺依曼机结构从本质上讲是采取串行顺序处理的工作机制,即使有关数据已经准备好,也必须逐条执行指令序列。提高计算机性能的根本方向之一是并行处理,因此,人们一直在谋求突破冯·诺依曼机结构的束缚,这主要表现在以下两个方面。

① 在冯·诺依曼机结构范畴内,对传统冯·诺依曼机进行改造。例如,采用多个处理部件,形成流水处理,依靠时间上的重叠提高处理效率;组成阵列机结构,形成单指令流多数据流,提高处理速度。这些改造已比较成熟,成为标准的计算机结构。比较活跃的研究是用多个冯·诺依曼机组成多机系统,支持并行算法结构。

② 从根本上改变冯·诺依曼机的控制流驱动方式。例如,采用数据流驱动工作方式的数据流计算机,只要数据已经准备好,有关指令就可并行执行。这是真正非冯·诺依曼的计算机,它为并行处理开辟了新的前景。但由于控制的复杂性,仍处于实验探索之中。1.4.2 计算机的工作过程

计算机的工作过程是执行程序的过程。程序是为求解特定问题而设计的指令序列,所以计算机的工作过程就是按照给定次序执行一系列指令的过程。按照存储程序工作原理,执行一条指令可以分为两个阶段进行:取指令和执行指令。于是计算机的工作过程也就是反复取指和执指的过程。

例如,求两个正整数a,b的较大值,即f=max(a,b),下面以虚拟机M层,C语言为例来编写程序。先看解题步骤如下:5

① 输入a和b这两个数;

② 执行a赋值给f;

③ 判断,如果b>a,则执行b赋值给f;

④ 输出f;

⑤ 结束。

上述步骤用指令表达出来就是程序。在编写程序时,需要考虑给程序、数据分配存储单元。C语言的处理方式是以函数名对应程序段的首地址(注意冯·诺依曼机的工作特点之一就是程序存储在存储器中,而程序是包括指令和数据),函数对应的程序段就存放在以该地址开始的连续区域中。用C语言编写的程序如下:

可以看出,冯·诺依曼体系的计算机执行程序的过程。这一过程结合汇编语言程序的执行就更加清楚了。

数据a存放在主存300AH单元,数据b存放在主存300BH单元,运算结果f存放在主存300CH单元。用汇编语言编写的程序如下(这里没有考虑输入/输出):

上述汇编语言源程序汇编为二进制代码形式的目标程序后,顺序存放到主存储器中。数据也以二进制代码形式存放在主存储器中。将程序首地址2000H送程序计数器PC,便启动了该程序的执行。

设数据b

① 取指令——PC的内容(2000H)送地址总线,主存2000H单元内容读入控制器。PC的内容自动增1。

执行指令——控制器译码所读取的指令(MOV AL,[300AH]),发出控制信号,完成取300AH单元中的内容a送寄存器AL的操作。

② 取指令——PC的内容(2001H)送地址总线,主存2001H单元内容读入控制器,PC的内容自动增1。

执行指令——控制器译码所取指令(MOV BL,[300BH]),发出控制信号,完成取300BH单元中的内容b送寄存器BL的操作。

③ 取指令——PC的内容(2002H)送地址总线,主存2002H单元内容读入控制器,PC的内容自动增1。

执行指令——控制器译码所取指令(MOV [300CH],AL),发出控制信号,完成将寄存器AL的内容传送至300CH单元中的操作。

④ 取指令——PC的内容(2003H)送地址总线,主存2003H单元内容读入控制器,PC的内容自动增1。

执行指令——控制器译码所取指令(CMP BL,AL),发出控制信号,完成操作:S=0,Z=0(b>a)。

⑤ 取指令——PC的内容(2004H)送地址总线,主存2004H单元内容读入控制器,PC的内容自动增1。

执行指令——控制器译码所取指令(JG 2005H),发出控制信号,完成操作:S=0,Z=0 (b>a),条件满足,转移,地址2006H送PC。注意,如果条件不满足,就不会执行“转移,地址2006H送PC”的操作了。

⑥ 取指令——PC的内容(2006H)送地址总线,主存2006H单元内容读入控制器,PC的内容自动增1。

执行指令——控制器译码所取指令(MOV [300CH],BL),发出控制信号,完成将寄存器BL的内容传送至300CH单元中的操作。

⑦ 取指令——PC的内容(2007H)送地址总线,主存2007H单元内容读入控制器,PC的内容自动增1。

执行指令——控制器译码所取指令(HLT),发出控制信号,停机,程序执行结束。

1.5 计算机的性能

对于不同用途的计算机,其对不同部件的性能指标要求有所不同。例如:仅从速度上看,对于用做科学计算为主的计算机,其对主机的运算速度要求很高;对于用做大型数据库处理为主的计算机,其对主机的内存容量、存取速度和外存储器的读/写速度要求较高;对于用做网络传输的计算机,则要求有很高的I/O速度,因此应当有高速的I/O总线和相应的I/O接口。

1.运算速度

计算机的运算速度是指计算机每秒钟执行的指令数。通常以MIPS和MFLOPS为计量单位来衡量运算速度。

MIPS表示每秒百万次指令。对于给定的程序,MIPS可定义为

式中,IN表示指令条数,TE表示程序的执行时间(s)。

MFLOPS表示每秒百万次浮点运算。对于给定的程序,MFLOPS可定义为

式中,IFN表示浮点运算指令的条数。

MIPS只适用于衡量标量计算机的性能,MFLOPS则比较适用于衡量向量计算机的性能。影响运算速度的有如下几个主要因素。

① 主频,也就是CPU的时钟频率或工作频率,例如,我们常说的P4 1.8GHz,这个1.8GHz(1800MHz) 就是CPU的主频。一般说来,一条指令执行所占用的时钟周期数不会因为主频不同而不同,所以主频越高,单位时间所执行的指令数量就会越多,计算机的运算速度自然就越高了。

② 外频是CPU与外界(存储器、I/O设备)交换数据的频率(系统时钟)。这个因素对计算机的速度影响还是容易理解的,它就像是一个瓶颈,瓶子的“肚子”再大(主频再高),瓶颈小(外频低),整个系统的速度也提不起来。内频与外频具有倍频关系,即

③ 存储器存取速度。内存储器完成一次读(取)或写(存)操作所需的时间称为存储器的存取时间或者访问时间。而连续两次读(或写)所需的最短时间称为存储周期。对于半导体存储器来说,存-9取周期为几十到几百ns(10s)。由于访存操作在计算机的工作过程中是必不可少的,因此,存储器存取速度这个因素对计算机速度的影响就非常显著了。

④ I/O的速度。主机I/O的速度取决于I/O总线的设计。这对于慢速设备(如键盘、打印机)关系不大,但对于高速设备则效果十分明显。例如,目前硬盘的外部传输速率可达100MB/s以上。

影响计算机的运算速度的因素还有很多,比如,硬盘存储数据块的分散程度、存储器的容量、计算机组成器件的兼容性等。了解到这些因素,就可以采取多种办法来提高计算机的运算速度。

2.字长

一般说来,计算机CPU在同一时刻处理的一组二进制数称为一个计算机的“字”,而这组二进制数的位数就是“字长”。能处理字长为8位数据的CPU通常就叫8位的CPU。同理,32位的CPU就能在单位时间内处理字长为32位的二进制数。

字节和字长的区别:由于常用的英文字符用8位二进制数就可以表示,所以通常将8位称为一个字节。字长的长度是不固定的,对于不同的CPU,字长也不一样。8位的CPU一次只能处理一个字节,而32位的CPU一次就能处理4个字节,字长为64位的CPU一次可以处理8个字节。当前的计算机都已达到64位字长了。

很明显,字长意味着计算精度和速度。当然字长位数越多,硬件成本也越高,因为它决定着寄存器、运算部件、数据总线等的位数(它们的位数相同,都是字长)。

3.数据通路宽度

数据通路宽度是指数据总线一次所能并行传送的位数。它影响信息的传送能力,从而影响计算机的有效处理速度。CPU内部的数据通路宽度一般等于基本字长,而外部的数据通路宽度取决于系统总线的宽度。有些CPU的内、外数据通路宽度相等,如Intel 80386DX,内、外都是32位,称为32位机;有些CPU的外部数据通路宽度小于内部,如Intel 80386SX,内部32位,外部16位,称为准32位机;也有些CPU的外部数据通路宽度大于内部,如Pentium,内部32位,外部64位,仍称为32位机。

4.主存容量

主存容量是一个主存储器所能存储的全部信息量。按字节编址的计算机,通常以字节数表示主存容量。例如,1GB(B指字节Byte,1KB=1024B,1MB=1024KB,1GB=1024MB)的内存容量就是从0到1GB-1编址的1GB个字节。

计算机处理能力的大小在很大程度上取决于主存容量的大小。主存容量大就可以运行比较复杂的程序,并可存入大量信息,可以利用更完善的软件支撑环境。

1.6 计算机系统的分类

计算机系统的分类方法一般有如下几种。

1.按用途(应用特点)分类

计算机系统按其用途可分为通用计算机和专用计算机。

① 通用计算机可以应用于各种领域。它通常配备一定的外设及多种系统软件,如操作系统、数据库管理系统及各种工具软件。通用机的特点是通用性强,功能全。

② 专用计算机是针对某一特定应用领域或者面向某种算法的计算机,如工业过程控制计算机、用于处理卫星图像的大型并行处理机等。专用机的结构较简单,可靠性较高。

2.按规模(性能)分类

计算机系统按规模可分为巨型机、大型机、中型机、小型机、微型机等几种类型。事实上,由于计算机科学技术的飞速发展,规模的概念是在不断变化的,昔日的大型机,其性能往往已经赶不上现代的微型机了。

① 巨型机也称为超级计算机,它是一个国家计算机技术水平的重要标志。巨型机采用大规模的并行处理结构,CPU 由上百个、上千个甚至上万个处理器组成,运算速度极快,存储容量极大,具有很强的数值计算和信息处理能力,主要应用于尖端科学和军事技术等领域。表1-1 列出了近几年国际上一些先进的巨型机。表1-1 近几年国际上一些先进的巨型机

巨型机IBM“Roadrunner”如图1-4所示,它是全球首台突破每秒1000万亿次浮点运算的超级计算机。2008年6月完成部署,占地6000平方英尺,相当于3/4个足球场大小,总重超过500000 磅,布线总长达到57km,功率为3.9MW,成本是1.33亿美元。如果全世界60亿人每天24小时、每周7天,各用一台手持计算器执行浮点运算,那么需要46年时间才能完成“Roadrunner”一天的工作量。“Roadrunner”将主要用于分析美国军方的机密数据,如核武器及其他军事战略数据等,并模仿核战争对人类生存环境的破坏情况,得出相应分析结论。

我国在巨型机发展方面起步较晚,但进步很快,即将落户上海的曙光5000是目前国产品牌中运算速度最快的超级计算机产品,其最高的浮点运算处理能力达230万亿次每秒,其计算速度在世界的通用计算机领域排名第六,具有节能和低成本的优势。

这里要说明一点,有数据称在全球500 强的超级计算机中,运行着 Linux的超级计算机已超过七成,而且这个数字还会继续增加。大量的超级计算机选用 Linux作为操作系统,这和Linux优秀的资源管理等能力是密不可分的。图1-4 IBM超级计算机“Roadrunner”

② 大型机是所在时代计算机科技水平的一个衡量尺度。大型机通常由4个、8个、16个、32个或更多处理器组成,运算速度快,存储容量大,且通用性强。主要应用于集中存储、管理和处理大量的信息,为企业或政府服务。集中式信息处理是以主机系统加终端为代表,采用分时处理,几百个甚至上千个用户在终端上操作,就像自己拥有一台计算机一样。随着计算机网络的发展,大型机作为网络服务器为企业或政府提供了一个安全、有效的平台,它的高可靠性、安全性、高吞吐能力、高可扩展性、防病毒及防黑客能力体现了绝对优势。大型机一般每秒执行数百万到数亿条指令,主存容量几十万到几百万字,有较多的外设和通信接口,有很强的I/O 处理能力和丰富的系统软件及应用软件。

③ 中型机一般为通用计算机。其性能和价格介于小型机和大型机之间。

④ 小型机是性能较好、价格便宜、应用领域十分广泛的计算机。一般速度每秒几十万到几百万次,主存容量几万到几十万字,配有一定数量的外设与通信接口。支持多种高级语言和汇编语言,有功能较强的操作系统。

⑤ 微型机属于第四代电子计算机产品,即大规模及超大规模集成电路计算机,是集成电路技术不断发展、芯片集成度不断提高的产物。从工作原理上来说,微型机与巨型机、大型机、中型机、小型机并没有本质上的区别。所不同的是采用了集成度较高的器件,使得其在结构上具有独特的特点,即将组成计算机硬件系统的两大核心部件——运算器和控制器集成在一块芯片上,组成一个不可分割的部件——微处理器CPU,因此带来微型机体积小,重量轻,价格低,可靠性高,结构灵活,应用面广,功能强,性能优越等一系列特点。

自20世纪70年代初出现第一片微处理器芯片以来,微处理器以惊人的速度发展,几乎每两年集成度提高1倍,每3~5年更新换代一次。从4位微处理器的MCS-41到现在的64位高性能处理器构成的微型机,其性能水平早已超过昔日的高档小型机甚至大型机。

3.按使用的方式分类

计算机系统按使用的方式分为工作站和服务器。

① 工作站以个人计算环境和分布式网络计算环境为基础,具有良好的性能价格比。所谓个人计算环境是指,为个人使用计算机创造一个尽可能易学易用的工作环境,为面向特定应用领域的人员提供一个具有友好人机界面的高效率工作平台。分布式网络计算环境是指,工作站在进行信息处理时,可以通过网络与服务器或其他计算机互通信息,共享资源。工作站具有高速运算功能,适应多媒体的应用功能和知识处理功能。工作站按其用途可分为通用工作站和专用工作站。工作站的典型产品有SUN公司的SPARC系列、DEC公司的Alpha系列,以及HP公司和SGI公司的工作站系列等。

② 服务器是网络环境或具有客户-服务器结构的分布式计算环境中,为客户机的请求提供服务的结点计算机。客户-服务器是实现资源共享的一种结构。客户机是服务器的对象。在网络和分布式计算环境中,服务器提供大量公用的服务,如数据库服务、WWW服务、文件服务、打印服务等。在设计上,服务器具有更好的数据交换性能,极高的可用度,良好的安全性,很强的扩展能力,网络和分布式计算环境中的工作站多充当信息中心。客户机直接面向用户,通过网络与服务器共同合作完成信息处理任务。服务器可以是专门生产的产品,也可用巨型机、大型机、中型机、小型机作为服务器。

1.7 嵌入式技术及应用

1.7.1 嵌入式系统的概念

嵌入式系统通俗地说是内嵌处理器的智能化电子系统。现代社会中的移动电话、手表、电视机、热水器、电子游戏机、医疗设备等电子和通信产品,乃至电动交通工具的控制核心无不与嵌入式系统息息相关。而即将到来的智能型房屋、机器人等大多数跟电相关的设施设备,更是缺少不了嵌入式系统这个核心技术。

根据IEEE(Institute of Electrical and Electronics Engineers,即美国电气与电子工程师学会)的定义,嵌入式系统是“控制、监视或者辅助装置、机器和设备运行的装置”。这主要是从嵌入式产品的应用上加以定义的,从中可以看出,嵌入式系统是软件和硬件的综合体。不过上述定义并不能充分体现出嵌入式系统的精髓,目前国内普遍认同的定义是:以应用为中心,以计算机技术为基础,软件和硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。简单地说,嵌入式系统集系统的应用软件与硬件于一体,类似于普通PC中BIOS的工作方式,具有软件代码小,高度自动化,响应速度快等特点,特别适合于要求实时和多任务的体系。嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件系统等组成,它是独立工作的“器件”。

在明确了嵌入式系统定义的基础上,我们可从以下几个方面来理解嵌入式系统:

① 嵌入式系统是面向用户、面向产品、面向应用的。它具有很强的专用性,必须结合实际系统需求,进行合理的裁剪。嵌入式系统和具体应用有机地结合在一起,它的升级换代也和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。

② 嵌入式系统是将先进的计算机技术、半导体技术、电子技术与各个行业的具体应用相结合后的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。

③ 嵌入式系统必须根据其应用需求对软、硬件进行裁剪,满足应用系统的功能性、可靠性、成本、体积等要求。为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机中,而不是存储于磁盘等载体中。

④ 嵌入式系统本身不具备自主开发能力,设计完成以后,用户通常是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发。

实际上,凡是与产品结合在一起的具有“嵌入式”特点的控制系统都可以称为嵌入式系统。现在人们讲嵌入式系统时,某种程度上指近些年比较成熟的具有操作系统的嵌入式产品。1.7.2 嵌入式系统的特点

嵌入式计算机系统同通用型计算机系统相比具有以下特点:嵌入式系统一般专用于特定的任务,而普通PC是通用计算机;嵌入式系统使用多种类型的处理器和处理器体系结构,而通用PC的处理器比较单一;嵌入式系统的设计更关注成本;嵌入式系统有实时约束;嵌入式系统使用实时多任务操作系统;嵌入式系统软件故障造成的后果比普通PC系统更严重;嵌入式系统大多有功耗约束;嵌入式系统经常在极端的环境下运行;嵌入式系统资源比PC少得多;嵌入式系统所有的目标代码通常存放在ROM中;嵌入式系统需要专用工具和方法进行开发设计;嵌入式系统的数量远远超过PC。1.7.3 嵌入式系统的应用领域

在嵌入式软件及系统应用诞生的那一天,几乎没有人意识到它会像今天这样改变着我们的生活、工作和娱乐,更无法预测今后还将会怎样颠覆我们目前对它的理解和认识。而如今,在手机、MP3、PDA、数码相机、电视机,甚至电饭锅、手表里都有嵌入式系统的身影,工业自动化控制、仪器仪表、汽车、航空航天等领域更是嵌入式系统的天下。现有嵌入式系统的数量之大、种类之多,使人不可能不卷入嵌入式系统的发展潮流。嵌入式系统技术具有非常广阔的应用前景,其应用领域包括以下几个方面。

1.工业控制

基于嵌入式芯片的工业自动化设备将获得长足的发展,目前已经有大量的8,16,32 位嵌入式微控制器在应用中,网络化是提高生产效率和产品质量、减少人力资源成本的主要途径,如工业过程控制、数字机床、电力系统、电网安全、电网设备监测、石油化工系统。就传统的工业控制产品而言,低端型采用的往往是8位单片机。但是随着技术的发展,32位、64位的处理器逐渐成为工业控制设备的核心,在未来几年内必将获得长足的发展。

2.交通管理

在车辆导航、流量控制、信息监测与汽车服务方面,嵌入式系统技术已经获得了广泛的应用,内嵌GPS模块、GSM模块的移动定位终端已经在运输行业获得了成功应用。目前,GPS设备已经从尖端产品进入普通百姓的家庭,只需要几千元,就可以购买车载GPS,随时随地找到你的位置。

3.信息家电

这将成为嵌入式系统最大的应用领域,冰箱、空调等的网络化、智能化将引领人们的生活步入一个崭新的空间。即使你不在家里,也可以通过电话线、网络进行远程控制。在这些设备中,嵌入式系统将大有用武之地。

4.家庭智能管理系统

水、电、煤气表的远程自动抄表、安全防火、防盗系统,其中的专用控制芯片将代替传统的人工检查,实现更高、更准确和更安全的性能。目前在服务领域,如远程点菜器等已经体现了嵌入式系统的优势。

5.POS网络及电子商务

公共交通无接触智能卡(Contactless Smartcard,CSC)发行系统、公共电话卡发行系统、自动售货机、各种智能ATM终端将全面走入人们的生活,到时手持一卡就可以行遍天下。

6.环境工程与自然

水文资料实时监测,防洪体系、水土质量监测和堤坝安全,地震监测网,实时气象信息网,水源和空气污染监测等。在很多环境恶劣、地况复杂的地区,嵌入式系统将实现无人监测。

7.机器人

嵌入式芯片的发展将使机器人在微型化、智能化方面的优势更加明显,价格也会大幅度下降,智能机器人将在工业领域和服务领域获得更广泛的应用。

嵌入式系统的应用遍及人类社会的生产、生活的各个方面,每个领域需要研究和解决的问题甚至是关键问题也不少。就远程家电控制而言,除了开发出支持TCP/IP的嵌入式系统之外,家电产品控制协议也需要制订和统一。同样的道理,所有基于网络的远程控制器件都需要与嵌入式系统之间实现接口,然后由嵌入式系统通过网络实现控制。所以,开发和探讨嵌入式系统有着十分重要的意义。1.7.4 嵌入式技术的发展趋势

数字时代使得嵌入式产品获得了巨大的发展契机,为嵌入式市场展现了美好的前景,也对嵌入式生产厂商提出了新的挑战,从中我们可以看出未来嵌入式系统的几大发展趋势。

① 嵌入式开发是一项系统工程,因此要求嵌入式系统厂商不仅要提供嵌入式软、硬件系统本身,还需要提供强大的硬件开发工具和软件包支持。

目前很多厂商已经充分考虑到这一点,在主推系统的同时,将开发环境也作为重点推广。比如,三星在推广ARM7,ARM9芯片的同时还提供开发板和支持包(BSP),而Windows CE在主推系统时,也提供Embedded VC++作为开发工具,还有Vxworks的Tonado开发环境,DeltaOS的Limda编译环境等,都是这一趋势的典型体现。当然,这也是市场竞争的结果。

② 网络化、信息化的要求随着因特网技术的成熟日益提高,使得以往单一功能的设备,如电话、手机、冰箱、微波炉等,功能不再单一,结构更加复杂。

这就要求芯片设计厂商在芯片上集成更多的功能,为了满足应用功能的升级,设计师们一方面采用更强大的嵌入式处理器如32位、64位RISC芯片或数字信号处理器DSP增强处理能力,同时增加功能接口,如USB,扩展总线类型,如CAN BUS,加强对多媒体、图形等的处理,逐步实施片上系统(SOC)的概念。软件方面采用实时多任务编程技术和交叉开发工具技术来控制功能复杂性,简化应用程序设计,保障软件质量和缩短开发周期。

③ 网络互联成为必然趋势。未来的嵌入式设备为了适应网络发展的要求,必然要求硬件上提供各种网络通信接口。传统的单片机对于网络支持不足,而新一代的嵌入式处理器已经开始内嵌网络接口,除了支持TCP/IP协议,有的还支持IEEE 1394、USB、CAN、Bluetooth或IrDA通信接口中的一种或者几种,同时也需要提供相应的通信组网协议软件和物理层驱动软件。软件方面,系统内核支持网络模块,甚至可以在设备上嵌入Web浏览器,真正实现随时随地用各种设备上网。

④ 精简系统内核、算法,降低功耗和软、硬件成本。为了减低功耗和成本,需要设计者尽量精简系统内核,只保留和系统功能紧密相关的软、硬件,利用最低的资源实现最适当的功能,这就要求设计者选用最佳的编程模型,并不断改进算法,优化编译器性能。因此,既要软件人员有丰富的硬件知识,又要发展先进嵌入式软件技术,如Java,Web和WAP等。

⑤ 提供友好的多媒体人机界面。嵌入式设备能与用户亲密接触,最重要的因素就是它能提供非常友好的用户界面。图像界面,灵活的控制方式,使人们感觉嵌入式设备就像是一个熟悉的老朋友。这要求嵌入式软件设计者在图形界面、多媒体技术上痛下苦功。手写文字输入、语音拨号上网、收发电子邮件,以及彩色图形、图像都会使使用者获得自由的感受。

本章小结

本章概括性的对计算机系统加以介绍,对计算机的硬件、软件、体系结构、工作方式进行了详细的阐述,介绍了当今较前沿的计算机技术的应用与分类,对嵌入式系统的概念、特点、应用及发展趋势都做出了具体的说明。本章讲述的相关概念、术语以及原理为后续内容的学习具有很大的作用。

习题1

1.填空题(1) 计算机的主机中流动着两类信息流:______和______。由主存储器流向控制器的信息流称为______;由主存储器流向运算器或由运算器流向主存储器的信息流称为______。控制器依据指令发出控制信号,控制整机工作来处理信息。(2) 计算机硬件由5个基本部分组成,包括______、______、______、______和______。(3) 信息存入存储器的操作称为______操作,从存储器中取出信息的操作称为______操作,这两种操作统称为______。(4) 嵌入式系统主要由______、______、______及______等组成,它是独立工作的“器件”。

2.选择题(1) 计算机系统中的存储器是指______。

A) RAM B) ROMC) 主存储器D) 主存储器和辅助存储器(2) 汇编程序是______。

A) 将指令的符号化表示转换成二进制代码的程序

B) 将高级语言程序转换成可执行代码的程序

C) 程序运行时的存储位置,包括它们所需的数据

D) 将可执行代码转换成高级语言的程序(3) 计算机元器件的发展过程经历了______。

A) 集成电路、电子管、晶体管 B) 电子管、晶体管、集成电路

C) 晶体管、集成电路、电子管 D) 电子管、集成电路、晶体管

3.简答题(1) 计算机系统总线可分为哪几类?它们的作用分别是什么?(2) 指令和数据以什么方式存储在内存中?计算机如何区分它们是指令还是数据?(3) 什么是嵌入式系统?适用于何种体系?

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

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载