嵌入式系统设计教程(第2版)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-05-12 08:19:56

点击下载

作者:马洪连

出版社:电子工业出版社

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

嵌入式系统设计教程(第2版)

嵌入式系统设计教程(第2版)试读:

嵌入式技术与应用丛书

嵌入式系统设计教程(第2版)

CIP号:第162648号

ISBN:978-7-121-09517-7

中图分类:TP360.21

关键词:微型计算机-系统设计-教材

北京,2009/09,电子工业出版社

版次:2

印次:1

价格:29.00

印数:4 000册

印张:16.25

字数:410

开本:787×1092 1/16

语种:中文摘要

本书主要以目前国内外流行的三种基于ARM架构的嵌入式微处理器及主流的嵌入式操作系统为例,详细介绍嵌入式微处理器的内部结构、工作原理、接口设计等硬件平台设计的相关理论及开发流程,以及主流嵌入式操作系统的移植裁减、应用程序开发等开发软件平台的相关知识和技术。针对于从事嵌入式系统研发工作的读者,不仅需要掌握基于某些常用的嵌入式操作系统和嵌入式微处理器平台的技术研发,也要培养系统方案设计和软、硬件综合调试能力。为此,本书增添了部分相关的知识。

全书共9章,内容主要包括嵌入式系统概论、嵌入式系统的基础知识、基于ARM架构的嵌入式微处理器、嵌入式系统设计、嵌入式系统开发环境与相关开发技术、嵌入式操作系统μC/OS-Ⅱ及应用、嵌入式Linux操作系统的应用与开发、Windows CE操作系统及应用,最后介绍了作者完成的开发应用实例——物流盘点机的设计。

本书适用于高等院校相关专业的本科生和研究生作为专业课教材,也可以作为从事嵌入式系统开发和设计人员的技术培训或者开发参考用书。马洪连 主编丁男 编张益嘉 编马艳华 编宋嘉琳 编高买花 责任编辑田宏峰 责任编辑牛雪峰 其他贡献者窦昊 其他贡献者王春宁 其他贡献者再版前言

嵌入式系统是以应用为中心,以计算机技术为基础,并且软/硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。以信息通信、家电为代表的互联网时代嵌入式产品,为嵌入式市场展现了美好前景。目前,嵌入式系统已经广泛地渗入到科学研究、工程建设、军事、工业监控、商业、文化及人们日常生活的方方面面。

由于诸多原因,我国计算机行业错过了世界范围技术发展的前几次机遇,当我们意识到应组织发展本国计算机产业时,微软已在PC软件上处于世界垄断地位。21世纪已进入了后PC时代,在这个时代中,无所不在的嵌入式技术无疑是最具代表性的技术。由于其应用广、领域特色突出,谁也无力独霸这一市场。因此我国信息产业的专家、学者及制造商应该牢牢抓住这一大好机遇,找准发展点,使我国IT技术迈上一个台阶。总之,目前嵌入式技术是中国IT发展最难得的机遇。

嵌入式系统开发与应用的内容繁杂,涉及计算机、电子、自动控制等诸多专业知识,综合性强。由于嵌入式系统课程知识点多,想让学生在短短的有限课时内完全掌握嵌入式系统设计全部知识是不现实的。因此通过嵌入式系统课程的学习,目的是使其能够掌握嵌入式系统设计的基础知识和开发方法。实践是学习嵌入式系统设计的重要环节,通过动手实践才能让学生掌握嵌入式系统设计开发方法和开发经验。

随着嵌入式系统应用的普及,对嵌入式系统设计的技术人才需求越来越大,同时也迫切需要一些较好的适用于不同层次人员使用的教材和参考书。本书定位于从事嵌入式系统开发和设计的初学人员。从实用的角度出发,分别以目前国内外流行的 S3C44BOX、S3C2410和XScale架构处理器为例,详细介绍了嵌入式系统的内部结构、工作原理、设计步骤、设计方法、接口电路原理图,以及嵌入式系统的开发环境和开发工具。在软件方面介绍了μC/OS-Ⅱ、Linux和Windows CE操作系统相关知识,最后介绍了编者的一项实例设计供读者参考和借鉴。

本书第1版于2006年4月出版,目前被国内近20多所院校采用作为教材。由于嵌入式系统技术发展迅速,新技术层出不穷,为了适应时代发展故提出对本书进行重新修正和再版发行。其中,主要是对书中各章节重新进行了规划、整理和内容充实。例如,增加了第5章嵌入式系统开发环境与相关开发技术的内容介绍。另外,分别在第2章和第4章中增加了2.1.2节嵌入式系统中采用的先进技术、4.3.4节数字音频设备接口。扩充和修改了4.3.2节串口的设计、4.6节嵌入式系统中常用的无线通信技术、7.3节嵌入式Linux操作系统的内核编译及驱动程序的开发、8.4节基于Windows CE操作系统的应用开发内容。调整充实了2.1.3节存储器系统的基础知识,5.5节嵌入式系统的Bootloader技术的内容。同时对全书各章的内容都进行了精细化、逐页逐句地进行了仔细斟酌,将一些繁琐的话进行了精简和完善、一些不通俗的句子进行了修改。教材的习题部分对于复习和巩固所学内容是非常重要的,每章精心挑选了适量并增加了课后的习题。

编者从事计算机教学工作多年,多次完成基于ARM微处理器系列的科研项目的开发和设计工作。所以在编写本教材的过程中,精选内容、力求符合从事嵌入式系统开发和设计的初学者的特点,做到概念清晰、理论联系实际。在叙述方法上,则力求由浅入深、通俗易懂、便于学习,以便使读者能在较短的时间内迅速掌握相关知识,起到事半功倍的效果。

本书适用于高等院校相关专业的大学高年级学生和研究生作为专业课教材,也可以作为从事嵌入式系统开发和设计人员的参考用书。本课程课时数为56学时(授课课时32,实验课时24)。在课堂主要讲授1~5章和第9章内容,选取第6~8章操作系统的内容,与实验同步进行。为了便于本课程的教学需要,本书另配有多媒体教学课件,需要者可通过E-mail:gmholife@hotmail.com和mhl@dlut.edu.cn联系。

本书配有电子教学课件,读者可以从电子工业出版社华信教育资源网(www.huaxin.com.cn)免费注册后下载。

另外由于时间匆忙,且作者水平有限,书中难免有错误、疏漏和不妥之处,敬请读者提出宝贵意见。

编 者

2009年8月第1章 嵌入式系统概论

本章要点

嵌入式系统是将计算机直接嵌入应用系统之中,它融合了计算机软/硬件技术、通信技术和半导体微电子技术,是信息技术的最终产品。本章将主要介绍嵌入式系统的定义、重要特征,以及应用领域和发展趋势。1.1 嵌入式系统概述

随着现代计算机技术的飞速发展,逐渐形成了计算机系统的两大分支:通用计算机系统(如PC)和嵌入式计算机系统。通用计算机系统的硬件以标准化形态出现,通过安装不同的软件满足各种不同的要求。嵌入式计算机系统则是根据具体应用对象,采用量体裁衣的方式对其软/硬件进行定制的专用计算机系统。1.1.1 嵌入式系统的定义

嵌入式系统是将计算机硬件和软件结合起来构成的一个专门的装置,这个装置可以完成一些特定的功能和任务。由于它可能会工作在一个与外界发生交互并受到时间约束的环境中,所以要求其能够在没有人工干预的情况下独立的进行实时监测和控制。另外由于被嵌入对象的体系结构、应用环境要求的不同,所以各个嵌入式系统也可以由各种不同的结构组成。

到目前为止,嵌入式系统已经有40多年的发展历史,并且是以硬件和软件交替双螺旋式发展的。第一款嵌入式微处理器是Intel的4004,它出现在1971年,然后是在20世纪80年代初,Intel公司开发出MCS8051系列8位单片机。1981年开发世界上第一个商业嵌入式实时内核(VTRX32),内核中包含了许多传统操作系统的特征,如任务管理、任务间通信、同步与相互排斥、中断支持、内存管理等功能。随后,出现了各种成型的嵌入式操作系统,目前嵌入式(实时操作系统)已经在全球形成了一个产业。

关于嵌入式系统的定义很多。例如,较通俗的定义是嵌入对象体系中的专用计算机系统。IEEE(国际电气和电子工程师协会)关于嵌入式系统的定义是“用于控制、监视或者辅助操作机器和设备的装置(devices used to control,monitor,or assist the operation of equipment,machinery or plants)”。可以看出此定义是从应用上考虑的,嵌入式系统是软件和硬件的综合体,还可以涵盖机电等附属装置。国内较权威机构对嵌入式系统的定义是:“以应用为中心,以计算机技术为基础,软件、硬件可裁剪,功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。”

嵌入式系统本身是一个相对模糊的定义,例如手机、MP3、数码相机、机顶盒、媒体播放器以及PC104的微型工业控制计算机都可以认为是嵌入式系统。总之,嵌入式系统采用“量体裁衣”的方式把所需的功能嵌入各种应用系统中。1.1.2 嵌入式系统的特征

嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。嵌入式系统的重要特征主要包括以下几方面。(1)功耗低、体积小、具有专用性

嵌入式微处理器与通用型微处理器的最大不同就是嵌入式微处理器通常工作在为特定用户群设计的系统中,它通常都具有低功耗、体积小、集成度高等特点。能够把通用计算机中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋于小型化,移动能力也大大增强,与计算机网络和通信系统的结合也越来越紧密。

嵌入式系统的个性化很强,其中的软件系统和硬件的结合是非常紧密的,一般要针对不同的硬件情况来进行软件系统的设计。即使在同一品牌、同一系列的产品中也需要根据系统硬件的变化和增减来不断地进行修改。一个嵌入式系统通常只能重复执行一个特定的功能,例如一台数码相机永远是数码相机。而通用的台式微机系统可以执行各种程序,如电子表、多媒体播放器和游戏,还经常加入其他新程序。当然也有例外,一种情况是嵌入式系统中的程序版本更新,例如,有些手机(移动电话)就是这样更新的。另一种情况是由于系统大小的限制,使得几个程序只能轮流输入系统中。例如,有些导弹在巡航模式下执行一个程序,在锁定目标时又执行另一个程序。尽管如此,这些嵌入式系统仍只具有特定的功能。(2)实时性强、系统内核小

有些嵌入式系统的系统软件和应用软件没有明显的区分,不要求其功能设计及实现上过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安全。这是嵌入式软件的基本要求,而且软件要求固态存储,以提高速度。软件代码要求高质量和高可靠性、实时性。很多嵌入式系统都需要不断地对所处环境的变化作出反应,而且要实时地得到计算结果,不能延迟。由于嵌入式系统一般是应用于小型电子装置,并且系统资源相对有限的场合,所以内核较之传统的操作系统要小得多,比如μC/OS操作系统,核心内核只有8.3 KB,而Windows的内核则要比其大得多。(3)创新性和高可靠性

嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,应具有较长的生命周期。为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或处理器本身中,而不是存储于磁盘等磁性载体中。(4)高效率地设计

由于对成本、体积和功耗有严格的要求,使得嵌入式系统的资源(如内存、I/O接口等)有限,因此对嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在有限的资源上实现更高的性能。(5)需要开发环境和调试工具

由于嵌入式系统本身不具备自主开发能力,即使设计完成以后,用户通常也是不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行开发。这些工具和环境一般是基于通用计算机上的软/硬件设备以及各种逻辑分析仪、混合信号示波器等。开发时往往有主机(或称为宿主机)和目标机的概念,主机用于程序的开发,目标机作为最后的执行机,开发时需要交替结合进行。1.2 嵌入式系统的应用领域及发展趋势

在20世纪80年代,IT行业迅猛发展,像Intel、摩托罗拉、TI等上游厂商和公司都有着各自不同的数字体系架构,这使得它们生产的CPU等器件也各有不同。此时,全球工业价值链基本就是大包大揽的大公司的天下。比如像摩托罗拉等这样的大公司,它们在测试、制造、系统封装,甚至CPU设计等领域都是独立设计并生产的。这样由于使用的器件不同,编写的软件也就不一样,而越来越多不同的指令集、工具和语言,对整个数字技术的发展就显得非常不利。直到80年代末,产业链开始出现新的划分和分工。这样一个更有效的办法就是需要出现一个更上游的开发商来制定标准,而这个标准的统一,一定是从数字技术的核心CPU开始。于是一些公司开始了这方面的工作,其中之一的ARM公司在诞生时就选择了CPU体系结构设计这个上游厂商的模式。

1991年ARM(Advanced RISC Machines)公司于英国剑桥成立,其主要业务是设计32位的嵌入式微处理器,但它本身并不直接从事芯片生产,而是采用技术授权、转让设计许可的方式,由合作的半导体生产商从ARM公司购买其设计的ARM微处理内核,根据各自需求,加入适当的外围电路接口和先进技术,从而形成带有自己特色的微处理器进入市场。由于ARM技术获得了更多的第三方在工具、制造和软件方面的支持,又使整个系统的成本降低,使产品更容易进入市场被消费者所接受,具有了更大的市场竞争力。因此可以说ARM公司是一个纯粹的知识产权的贩卖者,公司的业务没有硬件,没有软件,只有图纸上的知识产权。目前,采用ARM技术知识产权(IP)核由各公司生产的微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,并占据了32位RISC微处理器大部分的市场份额。随着信息化、智能化、网络化的发展,嵌入式系统技术也将获得广阔的发展空间。

目前在硬件方面,不仅有各大公司的微处理器芯片,还有用于学习和进行研发的各种配套的软件开发包。底层系统和硬件平台已经相对比较成熟,实现各种功能的芯片也比较齐全。而且巨大的市场需求给嵌入式系统开发人员提供了学习嵌入式系统的机遇。

在软件方面,也有相当多的成熟软件系统。国外的嵌入式实时操作系统有VxWorks、μC/OS等产品。我国自主开发的嵌入式系统软件产品,如科银京城(CoreTek)公司的开发平台 DeltaSystem、中科院推出的 Hopen 嵌入式操作系统。读者可以在网上找到各种各样的免费资源及各种驱动程序源代码。1.2.1 嵌入式系统的应用领域

嵌入式系统可应用在工业控制、交通管理、信息家电、家庭智能管理系统、网络及电子商务、环境监测和机器人等方面。ARM技术的IP(知识产权)在下列领域已经取得了很大的成功。比如目前,在绝大部分的无线设备中(如手机等)都采用了嵌入式技术。在PDA一类的无线设备中,嵌入式微处理器针对视频流进行了优化,并获得了广泛的支持。在数字音频播放器、数字机顶盒和游戏机等中得到了更广泛的应用。在汽车领域中,包括驾驶、安全和车载娱乐等各种功能在内的设备,可用多个嵌入式微处理器就可将其功能统一实现。人们不仅拥有那种放在桌上处理文档、进行工作管理和生产控制的计算机“机器”,而且一个普通人也可能拥有从大到小的各种使用嵌入式技术的电子产品,如MP3、PDA、手机、智能玩具、电子病历、智能血压仪、无线收费、超市物流、网络家电、智能车载电子设备、安全监控、GPS、倒车雷达等。

在工业和服务领域中,大量嵌入式技术也已经应用于工业控制、数控机床、智能工具、工业机器人、服务机器人等各个行业,正在逐渐改变着传统的工业生产和服务方式。例如,飞机的电子设备、城市地铁购票系统等都可应用嵌入式系统来实现。嵌入式系统的应用领域如图1-1所示。一些典型的嵌入式系统应用实例如图1-2所示。例如在数字家庭方面有数字电视、信息家电、智能玩具、手持通信、存储设备的核心,如图1-3所示。社区智能管理系统方面有社区建筑的水、电、煤气表的远程自动抄表,安全防火、防盗系统,远程点菜器等,如图1-4所示。在社会发展方面有嵌入式Internet应用,如图1-5所示。在CAN总线网络汽车电子产品(18个嵌入式控制模块)的应用如图1-6所示。在军事侦察方面如图1-7所示。在PDA产品方面有掌上电脑,如图1-8所示。仿真机器人如图1-9所示,工程机械智能监控系统如图1-10所示,基于VxWorks的火星探路者如图1-11所示。图1-1 嵌入式系统的应用领域图1-2 典型的嵌入式系统应用实例图1-3 嵌入式系统在家用、智能玩具方面的应用图1-4 家庭智能管理系统图1-5 嵌入式系统在社会发展方面的应用图1-6 VOLVO S80汽车的CAN总线网络图1-7 嵌入式系统在军事侦察中的应用图1-8 掌上电脑图1-9 基于RTLinux的仿人机器人图1-10 工程机械智能监控系统图1-11 基于VxWorks的火星探路者1.2.2 嵌入式技术的发展趋势

人们对嵌入式系统的要求是在经济性上系统价位要很便宜,使更多的人能够买得起;要小型化,使人们携带方便;要可靠性强,能够在一般环境条件下或者是苛刻的环境条件下运行;要能够迅速地完成数据计算或数据传输;要智能性高(知识推理、模糊查询、识别、感知运动),使人们用起来更习惯,对人们更有使用价值。下面介绍一下未来嵌入式系统的发展趋势。

1.嵌入式应用的开发需要强大的开发工具和操作系统的支持

嵌入式开发是一项系统工程,因此要求厂商不仅提供嵌入式软硬件系统本身,同时还需要提供强大的硬件开发工具和软件包支持。随着因特网技术的成熟、通信速度和带宽的提高,各种嵌入式电子设备的功能不再单一,电气结构也更为复杂。为了满足应用功能的升级,设计师们一方面采用更强大的嵌入式处理器如32位、64位RISC芯片或DSP增强处理能力,同时还采用实时多任务编程技术和交叉开发工具技术来控制功能复杂性,简化应用程序设计、保障软件质量和缩短开发周期。

2.连网成为必然趋势

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

为适应嵌入式分布处理结构和应用上网的需求,面向21世纪的嵌入式系统要求配备标准的一种或多种网络通信接口。针对外部连网要求,嵌入设备必须配有通信接口,需要TCP/IP协议簇软件支持。由于家用电器相互关联(如防盗报警、灯光能源控制、影视设备和信息终端交换信息)及实验现场仪器的协调工作等要求,新一代嵌入式设备还需具备IEEE1394、USB、CAN、Bluetooth或IrDA通信接口,同时也需要提供相应的通信组网协议软件和物理层驱动软件。为了支持应用软件的特定编程模式,如Web或无线Web编程模式,还需要相应的浏览器,如HTML、WML等。

3.精简系统内核、算法,设备实现小尺寸、微功耗和低成本

为满足这种特性,要求嵌入式产品设计者相应降低处理器的性能,限制内存容量和复用接口芯片,这样就相应提高了对嵌入式软件设计技术的要求,例如选用最佳的编程模型、不断改进算法和优化编译器性能等。因此不仅需要软件人员有丰富的经验,更需要采用先进嵌入式软件技术,如Java、Web和WAP等。

4.提供精巧的多媒体人机界面

嵌入式设备之所以为亿万用户乐于接受,重要因素之一是自然的人机交互界面。人与信息终端交互多采用以屏幕为中心的多媒体界面表达,如手写文字输入、语音拨号上网、收发电子邮件以及彩色的图形、图像。目前,一些先进的PDA在显示屏幕上已实现汉字写入、短消息语音发布。

5.嵌入式软件开发走向标准化

嵌入式系统的应用程序也可以在没有操作系统的情况下直接在芯片上运行。为了合理地调度多任务、利用系统资源、系统函数以及和专家库函数接口,用户必须自行选配嵌入式操作系统开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。

随着信息技术的发展,数字化产品空前繁荣。嵌入式软件已经成为数字化产品设计创新和软件增值的关键因素,是未来市场竞争力的重要体现。由于数字化产品具备硬件平台多样性和应用个性化的特点,因此嵌入式软件呈现出一种高度细分的市场格局。国外产品即使进入也很难垄断整个市场,这为我国的软件产业提供了一个难得的发展机遇。嵌入式支撑软件是嵌入式系统的基础,而与嵌入式操作系统密切联系的开发调试工具是嵌入式支撑软件的核心,它的集成度和可用性将直接关系到嵌入式系统的开发效率。目前,嵌入式系统工程师队伍迅速扩大,与他们紧密相伴的嵌入式系统开发工具的发展潜力十分巨大。人们应用的数字化产品都要求具有较强的网络和多媒体处理能力、易用的界面和丰富的应用功能。无线网络通信技术的迅速发展,使更多的信息设备运用无线通信技术。同时,Java技术的发展,对开发相关无线通信软件起到了推动作用,嵌入式浏览器、嵌入式多媒体套件、嵌入式GUI、嵌入式中文、嵌入式应用套件、嵌入式Java和嵌入式无线通信软件成为嵌入式软件的基本要素,能够组合应用或作为产品单独销售,市场巨大。另外,嵌入式支撑软件的发展也将带来一个繁荣的服务培训市场。1.3 嵌入式系统基本组成1.3.1 嵌入式系统的组织架构

嵌入式系统的组织架构是由嵌入式处理器、存储器等硬件、嵌入式系统软件和嵌入式应用软件所组成的,如图1-12所示。图1-12 嵌入式系统架构图

嵌入式系统一般由硬件系统和软件系统两大部分组成,其中,硬件系统包括嵌入式处理器、存储器、I/O系统和配置必要的外围接口部件;软件系统包括操作系统和应用软件,嵌入式系统的软/硬件框架如图1-13所示。图1-13 嵌入式系统的软/硬件框架

目前嵌入式系统一般是专用系统,其功能专一,成本较低。而PC是通用计算平台,嵌入式系统的资源比PC少,软件故障带来的后果要比PC大。嵌入式系统一般采用实时操作系统,嵌入式系统大都有成本、功耗的要求,例外嵌入式系统需要多种微处理体系的支持和需要专用的开发工具。

嵌入式系统的开发环境可分为硬件开发工具和软件开发工具,硬件开发工具有宿主机、在线实时仿真器和其他检测工具(示波器等)。软件开发工具包括编辑、交叉编译、连接、定位软件和调试软件等,详见第5章。1.3.2 嵌入式系统的硬件组成

1.嵌入式系统基本硬件架构

嵌入式系统基本硬件架构主要包括有微处理器、外围电路及外部设备三大部分。其中外围电路一般包括由时钟、复位电路、程序存储器、数据存储器和电源模块等部件组成。外部设备一般应配有USB、显示器、键盘或触摸屏等设备及接口电路。核心部件是微处理器,在一片嵌入式微处理器基础上增加电源电路、时钟电路和存储器电路(如ROM和RAM等),就构成了一个嵌入式核心控制模块。其中操作系统和应用程序都可以固化在ROM中,如图1-14所示,嵌入式工业监控系统的组成原理如图1-15所示。图1-14 典型嵌入式系统的硬件组成图1-15 嵌入式工业监控系统的组成原理图

2.嵌入式微处理器的分类

嵌入式系统的核心是嵌入式处理器,嵌入式微处理器一般对实时多任务具有很强的支持能力,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时内核的执行时间减少到最低限度,具有功能很强的存储区保护功能,这是由于嵌入式系统的软件结构已模块化。为了避免在软件模块之间出现错误的交叉作用,所以需要设计强大的存储区保护功能,同时也有利于软件诊断。另外还具有可扩展的处理器结构,以能最迅速地开发出满足应用的最高性能的嵌入式微处理器。嵌入式微处理器必须功耗很低,尤其是用于便携式的无线及移动的计算和通信设备上。靠电池供电的嵌入式系统更是如此,需要功耗越小越好,甚至可以在mW或μW数量级。嵌入式处理器的一般分为以下四种类型,如图1-16所示。图1-16 嵌入式微处理器的分类(1)嵌入式微控制器

微控制器(Microprogrammed Control Unit,MCU)的典型代表是单片机,这种8位或16位的电子器件在嵌入式设备中仍然有着极其广泛的应用。目前使用的单片机芯片内部一般都集成有FlashROM、RAM、总线、定时器/计数器、看门狗、I/O、串口、脉宽调制输出等一些必要功能。

由于MCU具有低廉的价格和优良的功能,所以拥有的品种和数2量众多,并且还有些单片机内部集成有IC、CAN-Bus、LCD、A/D和D/A功能以及众多专用MCU的兼容系列。比较有代表性的8位通用系列单片机是MCS-51系列,16位的通用单片机有MSP430系列等。

微控制器的最大特点是单片化,体积小,功耗和成本低。因此,微控制器仍然有广泛的应用领域。另外微控制器的外设资源一般比较丰富,适合用于进行控制,因此被称为微控制器(MCU)。(2)嵌入式数字信号处理器

数字信号处理器(Digital Signal Processor,DSP)是专门用于信号处理方面的处理器,其在系统结构和指令算法方面进行了特殊设计,比如在需要进行数字滤波、FFT、频谱分析等运算的各种仪器上,DSP中就获得了大规模的应用。

DSP的理论算法在20世纪70年代就已经出现,在1982年世界上诞生了首枚DSP芯片。DSP一般可以被用于射频、音频和视频的处理。某些对实时性、计算强度要求较高的场合也使用DSP。随着DSP的运算速度进一步提高,应用领域也从上述范围扩大到了通信和计算机领域。目前DSP处理器已得到了快速的发展和应用,特别是在运算量较大的智能化系统中。例如,各种带有智能逻辑的消费产品、生物信息识别终端、带加密算法的键盘、实时语音压缩和解压系统、虚拟现实显示等。

DSP处理器对系统结构和指令进行了特殊设计,使其适合于执行DSP算法,编译效率较高,指令执行速度也很快。DSP应用正从在通用单片机中以普通指令实现DSP功能,过渡到采用嵌入式DSP处理器。DSP处理器经过单片化、EMC改造、增加片上外设成为嵌入式DSP处理器,例如TI公司的TMS320C2000/C5000/6000等都属于此范畴。(3)嵌入式微处理器

嵌入式微处理器(Embedded Micro Processor Unit,EMPU)是由通用计算机中的CPU演变而来的。与计算机处理器不同的是,在实际嵌入式应用中,只保留和嵌入式应用紧密相关的功能硬件,去除了其他冗余的功能部分,这样就以最低的功耗和资源实现嵌入式应用的特殊要求。功能与标准和微处理器基本类似,在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强。与工业控制计算机相比,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点。主流的芯片有ARM、Am186/88、Power PC、68000、MIPS系列等。

基于ARM9系列以韩国三星公司生产的嵌入式微处理器S3C2410为例,该最小系统稳定工作在203 MHz主频上,其核心模块上包括64 MB SDRAM、16~128 MB Flash ROM。32位的数据总线,保留充分扩展空间,为嵌入式技术爱好者提供了一个廉价的中高端平台,也是科研人员高效的开发工具。(4)嵌入式片上系统

嵌入式片上系统(System On Chip,SOC)嵌入式系统微处理器就是一种电路系统。SOC内部结合了许多功能模块,将功能做在一个芯片上。如将微处理器核心电路再加上一些通信接口单元,如通用串行端口(USB)、TCP/IP通信单元、GPRS通信接口、GSM通信接口、IEEE1394、蓝牙模块接口等集成在一起,做在一个片上构成片上系统。

SOC是追求产品系统最大包容的集成器件,最大的特点是成功实现了软/硬件的无缝结合,可以直接在处理器片内嵌入操作系统的代码模块。SOC可以运用VHDL等硬件描述语言进行系统设计,不像传统的硬件系统设计要绘制庞大、复杂的电路板,再对元器件进行逐一焊接。只需要使用精确的编程语言,综合时序设计可直接在器件库中调用各种通用处理器的标准,然后通过仿真之后就可以直接交付芯片厂商进行生产。SOC的结构如图1-17所示。

目前,SOC在声音、图像、影视、网络及系统逻辑等应用领域中发挥了重要作用。采用SOC所具有的其他好处还有很多,比如可以利用改变内部工作电压,来降低芯片功耗;由于减少了芯片对外的引脚数,简化制造过程;减少了外围驱动接口单元及电路板之间的信号传递,可以加快微处理器数据处理的速度;内嵌的线路可以避免外部电路板在信号传递时所造成系统杂乱信息;减小了体积和功耗,而且提高了系统的可靠性和设计生产效率等。图1-17 片上系统(SOC)的结构图1.3.3 嵌入式系统的软件组成

嵌入式系统的软件部分包括操作系统软件和应用程序,但有时设计人员也会把这两种软件组合在一起进行应用。应用程序控制着系统的运行和行为,而操作系统控制着应用程序编程与硬件的交互作用。

嵌入式操作系统通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。具有编码体积小、面向应用、可裁剪和移植、实时性强、可靠性高、专用性强等特点。嵌入式系统的开发工具,一般包含有程序编辑器、编译器、链接定位器、调试器等。嵌入式系统的硬件和软件位于嵌入式系统产品本身,而开发工具和开发系统则独立于嵌入式系统产品之外。嵌入式操作系统的主要有以下三种 类型。

1.按实时性分类

实时表示一个非常短的时间间隔,具有“立即”的含义。当计算机进行实时处理时,要求在接收到数据的同时执行输出操作并输出计算结果,不能超出计算机系统所能容忍的时限。嵌入式系统的软件主要有实时系统和分时系统(非实时系统)两大类。其中实时系统又分为硬(强)实时和软(弱)实时系统。实时嵌入式系统是为执行特定功能而设计的,可以严格地按时序执行功能。其最大的特征就是程序的执行具有确定性。具体可分为以下三种形式。

① 具有强实时特点的嵌入式操作系统。在实时系统中,如果系统在指定的时间内未能实现某个确定的任务,会导致系统的全面失败,这样的系统被称为强实时系统或硬实时系统。强实时系统响应时间一般在毫秒或微秒级,如核反应堆处理装置、飞机控制器和数控机床控制器等。一个强实时系统往往在硬件上需要添加专门用于时间和优先级管理的控制芯片,例如μC/OS和VxWorks就是典型的强实时操作系统。

② 具有弱实时特点的嵌入式操作系统。在弱实时系统中,虽然响应时间同样重要,但是超时却不会发生致命的错误。设计软实时系统时,也需要考虑系统可接受的超时限的次数和延迟。目前大多数实时操作系统都是弱实时系统,它则主要是在软件方面通过编程实现现实的管理。比如Windows CE、Linux是一个多任务分时系统,其系统响应时间在毫秒至秒的数量级上,其实时性的要求比强实时系统要差一些,具体应用如对饭店电子菜谱的查询等。

③ 没有实时特点的嵌入式操作系统。

2.按开发成本分类

大体上可分为商用型和免费型。商用型的实时操作系统功能稳定、可靠,有完善的技术支持和售后服务,但价格昂贵,如VxWorks、Windows CE、Psos、Palm、OS-9、LynxOS和QNX等;免费型的操作系统在价格方面具有优势,目前主要有Linux和μC/OS操作系统,但与商用型OS相比具有不可靠、无技术支持等缺点。

3.按软件结构分类

按软件结构分类有两种形式。最简单的软件结构是循环轮询系统(Polling Loop),程序依次检查系统的每一个输入条件,一旦条件成立就进行相应的处理。事件驱动系统是能对外部事件直接响应的系统,它包括前后台、实时多任务、多处理器等,是嵌入式实时系统的主要形式。

应用程序是一个无限的循环,循环中调用相应的函数完成相应的操作,这部分可以看成后台行为。中断服务程序处理异步事件,这部分可以看成前台行为。后台也可以叫做任务级,前台也叫做中断级。很多基于微处理器的产品都采用前后台系统设计的方法,如微波炉、电话机、智能玩具等。从省电的角度出发,平时微处理器处在停机状态,所有的事都靠中断服务程序来完成。习题与思考题

1.1 嵌入式系统的定义是什么?

1.2 简述嵌入式系统的主要特点。

1.3 嵌入式系统一般可以应用到哪些领域?

1.4 简述嵌入式系统的发展趋势。

1.5 嵌入式系统基本架构主要包括哪几部分?

1.6 举例说明嵌入式系统与通用PC的主要差异体现在哪些方面。

1.7 嵌入式微处理器一般分为有哪几种类型,各自有什么特点?

1.8 嵌入式操作系统按实时性分为几种类型,各自特点是什么?

1.9 根据你的了解,谈一谈嵌入式系统应用的现状及发展趋势。第2章 嵌入式系统的基础知识

本章要点

本章首先介绍在嵌入式系统硬件方面所需的基础知识,包括硬件系统体系结构原理,嵌入式系统中采用的先进技术,以及存储器系统基础知识。在嵌入式系统软件基础知识方面,介绍了嵌入式系统软件结构和嵌入式软件系统设计与运行流程,嵌入式操作系统及常用的四种嵌入式操作系统,最后简单介绍了基于ARM体系微处理器的指令系统和程序设计。2.1 嵌入式系统的硬件基础知识2.1.1 硬件系统体系结构原理

在目前应用的嵌入式微处理器体系结构中,通常采用冯·诺依曼结构和哈佛体系结构两种形式。冯·诺依曼体系结构一般应用在低端的嵌入式系统,哈佛体系结构多应用在中高端嵌入式系统中。

1.冯·诺依曼体系结构简介

冯·诺依曼体系结构计算机系统一般由一个中央处理单元(CPU)、一个主存储器(或内部存储器)和输入/输出设备组成。主存储器存储全部的数据和指令,并且可以根据所给的地址对其进行读、写操作。主存储器只有在取指令周期才能取出机器指令,CPU通过数据总线与存储器交换数据。

CPU内部有较多的通用寄存器和专用寄存器,其中典型的寄存器是程序计数器PC。处理器根据PC中的内容从存储器取出指令,然后对指令译码,最后执行。只要改变指令,就能改变CPU所做的事情,冯·诺依曼体系结构模型图如图2-1所示。

冯·诺依曼体系结构的特点之一是系统内部的数据与指令都存储在同一存储器中;其二是典型指令的执行周期包含取指令(Instruction Fetch)T、指令译码(Instruction Decode)T、执行指FD令(Instruction Execute)T、存储(Storage)T四部分,即T=TESF+T+T+T。目前应用的低端嵌入式处理器,例如基于ARM7的微处DES理器一般均采用冯·诺依曼体系结构。

2.哈佛体系结构简介

哈佛体系结构计算机是将机器内部存储器分为两个部分:一部分存放指令,另一部分存放数据。它们各自拥有独立的地址空间和访存指令,其中程序计数器PC只指向程序存储器而不指向数据存储器。即使数据总线被占用,CPU也可以继续从程序内存中取指令执行,直到遇到访问内存的指令才不得不停下来等待DMA结束为止。这样就在CPU的操作和外设的DMA的操作之间引入了某种并行度,从而可以提高系统的效率。独立的程序存储器和数据存储器为数字处理提供了较高的性能,让两个存储器有不同的端口可提供较大的存储器带宽。由于数据和程序不必再竞争同一个端口,使得数据适时地移动更容易,加快了机器的执行速度。但是,相对带来的问题是很难在哈佛机上编写出一个自修改的程序(写入数据值然后使用这些值作为指令的程序),哈佛体系结构如图2-2所示。图2-1 冯·诺依曼体系结构模型图图2-2 哈佛体系结构图

哈佛体系结构的特点是程序存储器与数据存储器分开,提供了较大的数据存储器带宽,适用于数字信号处理及高速数据处理的计算机。哈佛体系结构一般应用在ARM9及以上的嵌入式微处理器和数字信号处理器DSP中。

哈佛结构在嵌入式处理器中的另一种应用形式涉及高速缓存区Cache。在目前应用的嵌入式微处理器中,片内Cache分为两类:一是数据同指令都放在同一个Cache中,称为普林斯顿结构Cache或者统一化结构Cache;二是数据和指令分别放在两个独立的Cache中,称为哈佛结构Cache,也称为分离型Cache。2.1.2 嵌入式系统中采用的先进技术

嵌入式微处理器采用RISC结构中的先进技术来提高CPU性能,如流水线技术、超标量等新技术。

1.流水线技术

计算机中一条指令的执行可分为若干个阶段,由于每个阶段的操作相对来说都是独立的,因此可以采用流水线的重叠技术来提高系统的性能。在流水线装满以后,几条指令可以并行执行。这样既可充分利用了现有的硬件资源,又提高了CPU的运行效率。例如,基于ARM7微处理器中采用了取指令、指令译码和执行指令三个阶段,即存在三级流水线,如图2-3所示。图2-3 三级流水线技术

基于ARM9架构的微处理器一般采用五级流水线,同时将高速缓存区又分成了指令I-Cache和数据D-Cache。这样把存储器的取指令与数据存取分开,加快了CPU的执行速度。指令的执行过程分别是取指令阶段、指令译码阶段、执行阶段、数据缓存阶段和结果写回阶段五个阶段。

此外,新近设计的微处理器中还有更多级的流水线。不同架构的微处理器,其流水线的级数也可能会有不同,例如基于ARM10的微处理器就采用了六级流水线,如图2-4所示。图2-4 六级流水线的示意图

使用流水线可以增快总体程序的执行时间,若指令中具有N个阶段,当每个阶段的执行时间相同时,那么在流水线装满的时间内,在每一个周期就可同时执行N条指令,这样其性能就可改善N倍。但是上述的过程只是一种理想的过程,有时流水线中的数据也会存在有许多相关的问题。在实际中,如果当执行某一条指令的过程中需要前一条指令的执行结果,而这些指令又均在流水线中重叠执行时,就可能会涉及流水线的数据相关,这样就不得不产生停顿。为了避免这类数据相关问题的出现,ARM架构的微处理器采用了资源重复的方法,即采用分离式指令Cache和数据Cache结构。该方法使取指令和存储器的数据访问不再发生冲突,同时也解决了指令、数据同一通道的问题。ALU中采用单独加法器来完成地址计算,这样在执行周期的运算不再产生资源冲突。

当流水线遇到分支指令和其他会改变程序计数器PC值的指令时,就会发生控制相关。当检测到流水线中某条指令是分支指令时,那就暂停分支指令之后的所有指令,直到分支指令确定了新的PC值为止。对于控制相关,ARM采用了指令预测的方法。这样能尽早判断分支转移是否成功,从而采取相应预测转移和延迟转移,以降低分支转移所造成的时间上的损失。另外为了能够尽早计算出分支转移成功时的PC值(即分支的目标地址),在有些ARM架构的微处理器流水线中的译码阶段增加了一个专用加法器来计算分支的目的地址。

2.超标量执行

通过重复设置多套指令执行部件,同时处理并完成多条指令的并行操作,来达到提高处理速度的目的。所有ARM内核,包括流行的ARM7、ARM9和ARM10等,都采用的是单周期指令机。ARM公司下一代处理器将是每周期能处理多重指令的超标量机。但是,超标量处理器在执行的过程中必须动态地检查指令的相关性。超标量CPU采用多条流水线结构形式,如图2-5所示。图2-5 超标量执行

3.总线和总线桥

总线是CPU与存储器和设备通信的机制,是计算机各部件之间传送数据、地址和控制信息的公共通道。按相对于CPU的位置来分,有片内总线或内部总线(连接CPU内部各主要功能部件)和片外总线(CPU与存储器和I/O接口之间进行信息交换的通道)。

总线的主要参数有总线宽度、总线频率和总线带宽。其中,总线宽度又称为总线位宽,指的是总线能同时传送数据的位数。例如,32位总线就是具有32位数据传送能力。总线频率是总线工作速度的一个重要参数,工作频率越高、速度越快,通常用MHz表示。总线带宽(单位为MB/s)=(总线宽度位/8位)×总线频率,如总线宽度32位,频率66 MHz,则总线带宽=(32位/8位)×66 MHz=264 MB/s。

ARM总线与微机中的PCI总线类似,使用同步数据传输结构实现信息传送,具有支持32位数据传输和32位寻址的能力。但是,ARM总线的传输速度在规范中没有明确规定,而是取决于特定应用中所使用的微处理器的时钟频率。

由于嵌入式处理器是由许多不同制造商制造的,提供的总线传输速度要随使用的不同芯片变化而变化。ARM公司已经为单芯片系统创建了一个独立的总线规格说明。其中,通过先进微控制器总线架构(Advanced Microcontroller Bus Architecture,AMBA)支持将CPU、存储器和外围设备都制作在同一个系统板中。AMBA规格说明具体包含有两条总线。一是高性能总线(Advanced High-performance Bus,AHB)是为高速传输而经过优化的,它直接连接到CPU上。AHB适用于高性能、高时钟的系统模块,它构成了高性能的系统骨干总线,其主要技术特性有支持流水线技术、突发传输、数据分割传输和多总线主控器等。二是连接外设的外围设备总线(Advanced Peripheral Bus,APB),属于本地二级总线,通过桥连接器(简称为桥)与AHB相连,它主要用于不需要高性能流水线接口或不需要高带宽接口的设备互连。如图2-6所示,图中的桥可用来将APB连到AHB上,这种总线方式在实际中比较容易实现。图2-6 总线和总线桥

目前,常用的AMBA的总线有1999年推出的2.0版和2004年推出的3.0版。AMBA 3.0版也称为先进可扩展接口(Advanced eXtensibe Interface,AXI),它是高性能片上总线,数据线宽度选择余地更大,支持8位、16位、32位、64位、128位、256位、512位和1 024位8种方式。采用单项通道体系结构,减少芯片资源。具有独立的地址和数据通道,支持多项数据交换等。一个典型的AHB总线工作过程包括以下两个阶段,一是地址传送阶段,它将只持续一个时钟周期。在HCLK的上升沿数据有效。所有的从单元都在这个上升沿来采样地址信息。二是数据传送阶段,它需要一个或几个时钟周期。可以通过HREADY信号来延长数据传输时间,当HREADY信号为低电平时,就在数据传输中加入等待周期,直到HREADY信号为高电平才表示这次传输阶段结束。

APB桥将系统总线AHB和APB连接起来,并执行下列功能:

● 锁存地址并保持其有效,直到数据传送完成;

● 译码地址并产生一个外部片选信号,在每次传送时只有一个片选信号有效;

● 写传送时驱动数据到APB;

● 读传送时驱动数据到系统总线AHB;

● 传送时产生定时触发信号PENABLE。2.1.3 存储器系统的基础知识

嵌入式存储系统一般是由高速缓存区Cache、内部存储器和外部存储器组成,如图2-7所示。其中高速缓存区是采用一种小型、快速的静态随机存储器(SRAM)组成的,它保存部分主存储器内容的复制,用来减少微处理器访问内存储器所花的访问时间。内存储器一般采用存储密度较大的同步动态存储器(SDRAM),用来存放即将要被微处理器执行的程序和数据。嵌入式系统中的程序存储器一般使用闪速存储器Flash ROM,用来存放为不同的嵌入式系统编写的程序和常数数据。外存可根据实际需要配置,如采用CF卡、SD卡和移动硬盘等。图2-7 嵌入式存储系统

1.Cache的工作原理

Cache存储器介于CPU和内存之间,其工作速度数倍于内存储器的存储速度,其全部功能由硬件来实现。由于其存储速度快,软件人员基本上不会感到Cache的存在,这种特性称为Cache的透明性。

在Cache存储系统中,Cache和内存储器都被划分成相同大小的存储块(或页)。因此内存地址可用存储块号m和块内地址b两部分来组成,Cache的地址也可用存储块号c和块内地址b两部分来组成。Cache的工作原理如图2-8所示。

当CPU要访问Cache时,首先由CPU送来主存地址,放到内存地址寄存器中。再经过地址映像与地址变换过程。如果变换成功(称为命中),则通过地址变换部件把内存地址中的存储块号m变换成Cache的存储块号c,并放到Cache地址寄存器中,同时将内存地址中的块内地址b直接作为Cache的块内地址b装入Cache地址寄存器中。然后再用得到的Cache地址去访问Cache,并从Cache中取出内容(数据或指令)送到CPU中。如果变换不成功,则产生Cache失效信息,并且用内存地址访问内存储器。从内存储器中读出一个字送往CPU,同时把包含被访问字在内的整个存储块都从内存储器读出来,装入Cache中。这时,如果Cache已经没有空闲存储空间,则要采用某种替换策略把Cache中的某个存储块的内容删掉用来存放新调入的块。由于程序具有局部性特点,每次块失效时都把一整个的存储块调入Cache中,故能够提高Cache的命中率。图2-8 高速缓存的工作原理

通常,内存储器的容量要比Cache的容量大得多,所以内部含有的存储块(或页)的数目多于Cache内的存储块的数量。下面简单地介绍在它们之间是按照什么样的规则来建立这种对应关系的,以及在这种对应关系下,内存地址又是如何变换成Cache地址的。

在Cache中,地址映像是指把某个内存地址空间的内容映像到Cache的某个地址空间中去。具体执行时,需要在Cache中的每个存储块外都要加有若干位标记位,用来指明它所存放的是内存储器的哪一存储块的副本,该标记位的内容相当于内存中存储块的编号。为了要把信息放到Cache存储器中,必须应用一定的方法把存放在内存中某个存储块中的信息按照某种规则装入Cache的存储块中,同时要建立内存地址到Cache地址之间的对应关系,这个过程被称做地址映像。而地址变换是指当信息按照这种映像关系装入Cache以后,在实际程序运行过程中,把内存地址具体的变换成Cache地址来执行。地址的映像和变换是密切相关的。在进行地址映像和变换时,都是以存储块为单位进行调度的。(1)Cache的地址映像方式

在Cache中,通常使用的方法有全相联映像、直接映像或组相联映像方式。下面分别予以介绍。

全相联映像方式是最灵活、利用率最高,但也是成本最高的一种方式,它允许内存中的每一个存储块都可以映像到Cache存储器的任何一个存储块位置上,也允许从确实已被占满的Cache存储器中替换出任何一个旧存储块。这种方式下每个存储块使用的标记位数要多一些(即主存存储地址的总位数减去块内地址的位数),这样做会使Cache每个存储块的标记容量加大。所带来的主要问题是在访问Cache时,需要对Cache每个存储块的全部标记进行比较,通过比较后才能判断出所访内存地址的内容是否已在 Cache中,故需要时间较长。由于Cache速度要求高,所以全部比较操作都要用硬件实现,通常由按内容寻址的相连存储器完成。

在直接映像方式中,内存中的存储块与Cache中存储块有固定的mb对应关系。假设,在内存中共有2 个存储块,存储块大小为2 字节。c在Cache中有与内存存储块同样大小的2 个存储块,存储块大小同样b为2 字节。c也代表了Cache高位地址位数,b同样是Cache块内地址位数即低位地址数。具体的实现方法是先将内存分成与Cache同样大小的若干个区(组),每个区(组)中包含有同Cache相同的存储块数。要求每个区(组)中的某个存储块只能固定调入Cache中的对应编号的存储块中。在这种映像方式中,相应存储块的对应关系是固定的,并有一定限制。采用这种直接映像方式所需判断查询的内容比全相联映像方式少。直接映像方式的优点是实现简单、速度快,其缺点是不够灵活。这使得Cache存储空间得不到充分利用,并降低了Cache的命中率。

组相连映像方式是直接映像和全相连映像方式的一种折中方案,其性能与复杂性介于直接映像与全相连映像两种方式之间。首先对rCache先分成组,然后在组内分成2个存储块。内存结构只是按照Cache组的大小进行划分,分成若干的组。由于Cache中每组内包含r2个存储字块数,这样当r=0时,内存的组与Cache的组之间就成为了r直接映像方式。当2等于Cache的地址空间时,它们也就变成了工作在全相连映像方式。通常,Cache中的各个组与内存内的各个组之间是工作在直接映像方式,而Cache每组内的存储字块与内存的各个组内相同存储字块位置之间则工作在全相连映像方式。ARM7微处理器采用的是4路(r=2)组相连的8 KB Cache。

Cache的命中率除了与地址映像的方式有关外,还与Cache的容量有关。Cache容量大,则命中率就高,但达到一定容量后,命中率的提高也就不明显了。(2)Cache的替换算法

当微处理器需要的那一部分程序或数据没有存放在Cache中时,就必须要及时进行地址映像和地址变换,并被及时地替换,或者将新的存储块存入Cache中。常用的替换算法有近期最少使用(LRU)算法、先进先出算法(FIFO)和随机替换算法等。

LRU算法是把一组中近期最少使用的字块替换出去。这种替换算法需随时记录Cache存储器中各个字块的使用情况,即字块表为在物理存储器中的每一字块保留了一个时间年龄域,以便确定哪个字块是近期最少使用的字块。其设计思想是把组中各块的使用情况记录在一张表上,如图2-9所示。并把最近使用过的字块号放在表的最上面,最近没有使用字块号放在下边。在需要替换时,则将底部的字号块替换掉。这种算法利用率高,但实现较为麻烦,经常采用修改型LRU算法。ARM7中采用的就是修改型LRU的替换算法。

FIFO算法是在地址变换表中设置一个历史位,当替换时,总是把一组中最先调入Cache存储器的字块替换出去,它不需要随时记录各个字块的使用情况,所以实现容易且开销小。

另外还有一种随机替换法(RAND),这种算法不考虑使用时的具体情况,在Cache组内随机的选择一存储块来进行替换,其Cache的利用效率比较差,但其方法实现简单。(3)Cache的写入方法

Cache和内存的写策略有如下两种方式:

① 写直达法。当要写Cache时,数据同时写回到内存储器。

② 写回法。当处理器更新Cache的某一页后,相应数据并不立刻写回内存储单元,而当该页被从Cache替换时,才把数据写回主存储器中。在ARM微处理器中多采用这种方式。

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

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载