配色: 字号:
《ARM9嵌入式系统设计基础教程》第1章嵌入式系统基础知识
2023-05-24 | 阅:  转:  |  分享 
  
第1章 嵌入式系统基础知识1.1 嵌入式系统的定义和组成 1.1.1 嵌入式系统的定义根据IEEE(国际电气和电子工程师协会)的定义,
嵌入式系统是“控制、监视或者辅助设备、机器和车间运行的装置”(原文为devices used to control,monitor
,or assist the operation of equipment,machinery or plants)。目前国内一个
普遍被认同的定义是:以应用为中心、以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计
算机系统。北京航空航天大学的何立民教授是这样定义嵌入式系统的:“嵌入到对象体系中的专用计算机系统”。可以这样认为,嵌入式系统是一种
专用的计算机系统,作为装置或设备的一部分。嵌入式系统一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户应用程序4个部分组成
。“嵌入性”、“专用性”与“计算机系统”是嵌入式系统的三个基本要素,对象系统则是指嵌入式系统所嵌入的宿主系统。嵌入式系统无处不在,
在移动电话、数码照相机、MP4、数字电视的机顶盒、微波炉、汽车内部的喷油控制系统、防抱死制动系统等装置或设备都使用了嵌入式系统。1
.1.2 嵌入式系统发展趋势1.嵌入式系统的发展历史从单片机的出现到今天各种嵌入式微处理器、微控制器的广泛应用,嵌入式系统的应用
可以追溯到20世纪60年代中期,例如阿波罗飞船的导航控制系统AGC(Apollo Guidance Computer)。嵌入式系统
的发展历程,大致经历了以下4个阶段。(1)无操作系统阶段单片机是最早应用的嵌入式系统,单片机作为各类工业控制和飞机、导弹等武器装备
中的微控制器,用来执行一些单线程的程序,完成监测、伺服和设备指示等多种功能,一般没有操作系统的支持,程序设计采用汇编语言。由单片机
构成的这种嵌入式系统使用简便、价格低廉,在工业控制领域中得到了非常广泛的应用。(2)简单操作系统阶段20世纪80年代,出现了大量具
有高可靠性、低功耗的嵌入式CPU(如Power PC等),芯片上集成有微处理器、I/O接口、串行接口及RAM、ROM等部件,面向I
/O设计的微控制器在嵌入式系统设计应用。一些简单的嵌入式操作系统开始出现并得到迅速发展,程序设计人员也开始基于一些简单的“操作系统
”开发嵌入式应用软件。此时的嵌入式操作系统虽然还比较简单,但已经初步具有了一定的兼容性和扩展性,内核精巧且效率高,大大缩短了开发周
期,提高了开发效率。(3)实时操作系统阶段20世纪90年代,面对分布控制、柔性制造、数字化通信和信息家电等巨大市场的需求,嵌入式系
统飞速发展。随着硬件实时性要求的提高,嵌入式系统的软件规模也不断扩大,实时多任务操作 系统(Real-time Operation
System,RTOS)逐渐形成,系统能够运行在各种不同类型的微处理器上,具备了文件和目录管理、设备管理、多任务、网络、图形用户
界面Graphic User Interface,GUI)等功能,并提供了大量的应用程序接口Application Program
ming Interface,API),从而使应用软件的开发变得更加简单。(4)面向Internet阶段进入21世纪,Intern
et技术与信息家电、工业控制技术等的结合日益紧密,嵌入式技术与Internet技术的结合正在推动着嵌入式系统的飞速发展。2.嵌入式
系统的发展趋势面对嵌入式技术与Internet技术的结合,嵌入式系统的研究和应用在飞速发展。(1)新的微处理器层出不穷,精简系统内
核,优化关键算法,降低功耗和软硬件成本。提供更加友好的多媒体人机交互界面。(2)Linux、Windows CE、Palm OS等
嵌入式操作系统迅速发展。嵌入式操作系统自身结构的设计更加便于移植,具有源代码开放、系统内核小、执行效率高、网络结构完整等特点,能够
在短时间内支持更多的微处理器。计算机的新技术、新观念开始逐步移植到嵌入式系统中,嵌入式软件平台得到进一步完善。(3)嵌入式系统的开
发成了一项系统工程,开发厂商不仅要提供嵌入式软硬件系统本身,同时还要提供强大的硬件开发工具和软件支持包。3.IP核(Intelle
ctual Property Core,知识产权核)SOC(System On Chip,片上系统)是90年代中期出现的一个概念,
并成为现代集成电路设计的发展方向。SOC是指在单芯片上集成数字信号处理器、微控制器、存储器、数据转换器、接口电路等电路模块,可以直
接实现信号采集、转换、存储、处理等功能。IP核是指具有知识产权的、功能具体、接口规范、可在多个集成电路设计中重复使用的功能模块,是
实现系统芯片(SOC)的基本构件。 IP核分为用硬件描述语言(hardware Description Language,HDL)
文本形式提交给用户,经过RTL级设计优化和功能验证,但其中不含有任何具体的物理信息的软核(Soft IP Core);完成软核所有
的设计外,还完成了门级电路综合和时序仿真等设计环节,一般以门级电路网表的形式提供给用户的固核(Firm IP Core);基于物理
描述,并经过工艺验证,具有可保证的性能,提供给用户的形式是电路物理结构掩模版图和全套工艺文件的硬核(Hard IP Core)。I
P软核以源代码的形式提供的,IP知识产权不易保护。IP硬核易于实现IP保护,缺点是灵活性和可移植性差。目前全球IP核市场处于快速成
长的阶段,EDA联盟、RAPID联盟、VCX联盟与VSIA联盟等都在积极推动IP核的开发、应用及推广。其中,EDA联盟主要是以如何
提供更好的EDA软件工具为主,VSIA联盟主要针对IP核的定义、开发、授权及测试等建立一个公开的共性规范。ARM、Rambus和M
IPS在十大IP供应商排行中居前3位。1.1.3 嵌入式系统的组成嵌入式系统通常由包含有嵌入式处理器、嵌入式操作系统、应用软件和
外围设备接口的嵌入式计算机系统和执行装置(被控对象)组成。嵌入式计算机系统是整个嵌入式系统的核心,可以分为硬件层、中间层、系统软件
层和应用软件层。执行装置接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。1.嵌入式计算机系统的硬件层硬件层中包含嵌入式
微处理器、存储器(SDRAM、ROM、Flash等)、通用设备接口和I/O接口(A/D、D/A、I/O等)。硬件层通常是一个以嵌入
式处理器为中心的,包含有电源电路、时钟电路和存储器电路的电路模块,其中操作系统和应用程序都固化在模块的ROM中。(1)嵌入式微处理
器嵌入式微处理器是嵌入式系统硬件层的核心,嵌入式微处理器将通用CPU中许多由板卡完成的任务集成到芯片内部,从而有利于系统设计趋于小
型化、高效率和高可靠性。嵌入式微处理器大多工作在为特定用户群所专门设计的系统中。嵌入式微处理器的体系结构可以采用冯·诺依曼体系结构
或哈佛体系结构,指令系统可以选用精简指令系统(Reduced Instruction Set Computer,RISC)和复杂指
令集系统CISC(Complex Instruction Set Computer, CISC)。嵌入式微处理器有各种不同的体系,
目前全世界嵌入式微处理器已经超过1000多种,体系结构有30多个系列,其中主流的体系有ARM、MIPS、PowerPC、X86和S
H等。即使在同一体系中,也可以具有不同的时钟频率、数据总线宽度、接口和外设。目前没有一种嵌入式微处理器可以主导市场,嵌入式微处理器
的选择是根据具体的应用而决定的。(2)存储器嵌入式系统的存储器包含Cache、主存储器和辅助存储器,用来存放和执行代码。①Cach
e是一种位于主存储器和嵌入式微处理器内核之间的快速存储器阵列,存放的是最近一段时间微处理器使用最多的程序代码和数据。在需要进行数据
读取操作时,微处理器尽可能的从Cache中读 取数据,而不是从主存中读取,减小存储器(如主存和辅助存储器)给微处理器内核造成的存储
器访问瓶颈,提高微处理器和主存之间的数据传输速率,使处理速度更快,实时性更强。Cache一般集成在嵌入式微处理器内,可分为数据Ca
che、指令Cache或混合Cache,Cache的存储容量大小依不同处理器而定。②主存储器用来存放系统和用户的程序及数据,是嵌入
式微处理器能直接访问的存储器。主存储器包含有ROM和RAM,可以位于微处理器的内部或外部。常用的ROM类存储器有NOR Flash
、EPROM和PROM等,RAM类存储器有SRAM、DRAM和SDRAM等,容量为256KB~1GB。③辅助存储器通常指硬盘、NA
ND Flash、CF卡、MMC和SD卡等,用来存放大数据量的程序代码或信息,一般容量较大,但读取速度与主存相比要慢一些。(3)通
用设备接口和I/O接口嵌入式系统通常具有与外界交互所需要的通用设备接口,如GPIO、A/D(模/数转换接口)、D/A(数/模转换接
口)、RS-232接口(串行通信接口)、Ethernet(以太网接口)、USB(通用串行总线接口)、音频接口、VGA视频输出接口、
I2C(现场总线)、SPI(串行外围设备接口)和IrDA(红外线接口)等。 2.中间层中间层也称为硬件抽象层(Hardware A
bstract Layer,HAL)或板级支持包(Board Support Package,BSP),位于硬件层和软件层之间,将
系统上层软件与底层硬件分离开来。BSP作为上层软件与硬件平台之间的接口,需要为操作系统提供操作和控制具体硬件的方法。不同的操作系统
具有各自的软件层次结构,BSP需要为不同的操作系统提供特定的硬件接口形式。BSP使上层软件开发人员无需关心底层硬件的具体情况,根据
BSP层提供的接口即可进行开发。BSP是一个介于操作系统和底层硬件之间的软件层次,包括了系统中大部分与硬件联系紧密的软件模块。BS
P一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置等功能。(1)嵌入式系统硬件初始化系统初始化过程按照自底向上、
从硬件到软件的次序依次可以分为片级初始化、板级初始化和系统级初始化3个主要环节。①片级初始化是一个纯硬件的初始化过程,包括设置嵌入
式微处理器的核心寄存器和控制寄存器、嵌入式微处理器核心工作模式和嵌入式微处理器的局部总线模式等。片级初始化把嵌入式微处理器从上电时
的默认状态设置成系统所要求的工作状态。②板级初始化是一个同时包含软硬件两部分在内的初始化过程,完成嵌入式微处理器以外的其他硬件设备
的初始化,设置某些软件的数据结构和参数,为随后的系统级初始化和应用程序的运行建立硬件和软件环境。 ③系统级初始化主要进行操作系统的
初始化。BSP将对嵌入式微处理器的控制权转交给嵌入式操作系统,由操作系统完成余下的初始化操作,包含加载和初始化与硬件无关的设备驱动
程序,建立系统内存区,加载并初始化其他系统软件模块,如网络系统、 文件系统等。最后,操作系统创建应用程序环境,并将控制权交给应用程
序的入口。(2)硬件相关的设备驱动程序BSP中包含硬件相关的设备驱动程序,但是这些设备驱动程序通常不直接由BSP使用,而是在系统初
始化过程中由BSP将他们与操作系统中通用的设备驱动程序关联起来,并在随后的应用中由通用的设备驱动程序调用,实现对硬件设备的操作。
3.系统软件层系统软件层通常包含有实时多任务操作系统(Real-time Operation System,RTOS)、文件系统、
图形用户接口(Graphic User Interface,GUI)、网络系统及通用组件模块组成。RTOS是嵌入式应用软件的基础和
开发平台。(1)嵌入式操作系统(Embedded Operating System,EOS)EOS负责嵌入式系统的软件、硬件的资源
分配、任务调度,控制协调。 EOS除具备了一般操作系统最基本的任务调度、同步机制、中断处理、文件处理等功能外,还具有如下特点:强实
时性;支持开放性和可伸缩性的体系结构,具有可裁减性;提供统一的设备驱动接口;提供操作方便、简单、友好的图形GUI和图形界面;支持T
CP/IP协议及其他协议,提供TCP/UDP/IP/PPP协议支持及统一的MAC访问层接口,提供强大的网络功能;嵌入式操作系统的用
户接口通过系统的调用命令向用户程序提供服务;嵌入式系统一旦开始运行就不需要用户过多的干预;嵌入式操作系统和应用软件被固化在嵌入式系
统计算机的ROM中;具有良好的硬件适应性(可移植性)。(2)文件系统嵌入式文件系统与通用操作系统的文件系统不完全相同,主要提供文件
存储、检索和更新等功能,一般不提供保护和加密等安全机制。嵌入式文件系统通常支持FAT32、JFFS2、YAFFS等几种标准的文件系
统,一些嵌入式文件系统还支持自定义的实时文件系 统,可以根据系统的要求选择所需的文件系统,选择所需的存储介质,配置可同时打开的最大
文件数等。同时,嵌入式文件系统可以方便的挂接不同存储设备的驱动程序,支持多种存储设备。嵌入式文件系统以系统调用和命令方式提供文件的
各种操作,如设置、修改对文件和目录的存取权限,提供建立、修改、改变和删除目录等服务,提供创建、打开、读写、关闭和撤销文件等服务。(
3)图形用户接口(GUI)GUI使用户可以通过窗口、菜单、按键等方式来方便地操作计算机或者嵌入式系统。嵌入式GUI与PC机上的GU
I有着明显的不同,嵌入式系统的GUI要求具有轻型、占用资源少、高性能、高可靠性、便于移植、可配置等特点。实现嵌入式系统中的图形界面
一般采用下面的几种方法:针对特定的图形设备输出接口,自行开发相应的功能函数;购买针对特定嵌入式系统的图形中间软件包;采用源码开放的
嵌入式GUI系 统;使用独立软件开发商提供的嵌入式GUI产品。4.应用软件层应用软件层用来实现对被控对象的控制功能,由所开发的应
用程序组成,面向被控对象和用户。为方便用户操作,通常需要提供一个友好的人机界面。1.1.4 实时系统RTOS(Real-time
operating system,实时系统)在航空、航天、工业过程控制、武器防御系统、自动化导航/控制系统、医疗、信息检索、银行
、多媒体系统等领域广泛应用。RTOS与通用计算机系统不同,要求系统中的任务不但执行结果要正确,而且必须在一定的时间约束(Deadl
ine)内完成。在RTOS中,一个逻辑上正确的计算结果,若其产生的时间晚于某个规定的时间,那么也认为系统的行为是不正确的。1.RT
OS定义RTOS是指能够在指定或者确定的时间内完成系统功能和对外部或内部、同步或异步时间做出响应的系统,系统能够处理和存储控制系统
所需要的大量数据。RTOS的正确性不仅依赖于系统计算的逻辑结果,还依赖于产生这个结果的时间。2.RTOS特点(1)约束性RTOS任
务的约束包括时间约束、资源约束、执行顺序约束和性能约束。RTOS的任务具有时间约束性。时间约束是任何RTOS都固有的约束。时间约束
性可分为“硬实时”和“软实时”。硬实时是指在航空航天、军事、核工业等一些关键领域中应用的系统,时间要求必须能够得到完全满足,否则将
造成不可预计的结果。软实时通常是指在监控系统、信息采集系统等某些应用中,有时间约束要求,但偶尔违反不会造成严重影响。资源约束是指多
个实时任务共享有限的资源时,必须按照一定的资源访问控制协议进行同步,以避免死锁和高优先级任务被低优先级任务堵塞的时间(即优先级倒置
时间)不可预测。执行顺序约束是指各任务的启动和执行必须满足一定的时间和顺序约束。例如,在分布式端到端(end-to-end)实时系
统中,同一任务的各子任务之间存在前驱/后继约束关系,需要执行同步协议来管理子任务的启动和控制子任务的执行,使它们满足时间约束和系统
可调度性要求。性能约束是指必须满足如可靠性、可用性、可预测性、服务质量(Quality of Service,QoS)等性能指标。
(2)可预测性可预测性是指RTOS完成实时任务所需要的执行时间应是可知的。可预测性是RTOS的一项重要性能要求。可预测性包括硬件时
延的可预测性和软件系统的可预测性(包括应用程序的响应时间是可预测的,以及操作系统的可预测性)。在多种任务型RTOS中,不但包括周期
任务、偶发任务、非周期任务,还包括非实时任务。 多种类型任务的混合,使系统的可调度性、可预测性分析更加困难。(3)可靠性大多数RT
OS要求有较高的可靠性,要求系统在最坏情况下都能正常工作或避免损失。可靠性是RTOS的重要性能指标。 (4)交互性外部环境是RTO
S不可缺少的一个组成部分,外部环境往往是被控子系统,两者相互作用构成完整的实时系统。嵌入式计算机系统一般作为控制系统,必须在规定的
时间内对被控子系统请求做出反应。被控子系统也必须能够正常工作或准备对任何异常行为采取动作。3.RTOS调度给定一组实时任务和系统资
源,确定每个任务何时何地执行的整个过程就是调度。而RTOS中调度的目的则是要尽可能地保证每个任务满足它们的时间约束,及时对外部请求
做出响应。实时调度技术常用的有以下两种。(1)抢占式调度和非抢占式调度抢占式调度通常是优先级驱动的调度。每个任务都有优先级,任何时
候具有最高优先级且已启动的任务先执行。抢占式调度实时性好、反应快,调度算法相对简单,可优先保证高优先级任务的时间约束,其缺点是上下
文切换多。而非抢占式调度是指不允许任务在执行期间被中断,任务一旦占用微处理器就必须执行完毕或自愿放弃,其优点是上下文切换少,缺点是
微处理器有效资源利用率低,可调度性不好。(2)静态表驱动策略和优先级驱动策略静态表驱动策略是一种离线调度策略,指在系统运行前根据各
任务的时间约束及关联关系,采用某种搜索策略生成一张运行时刻表。在系统运行时,调度器只需根据这张时刻表启动相应的任务即可。优先级驱动
策略指按照任务优先级的高低确定任务的执行顺序。优先级驱动策略又分为静态优先级调度策略和动态优先级调度策略。静态优先级调度是指任务的
优先级分配好之后,在任务的运行过程中,优先级不会发生改变。静态优先级调度又称为固定优先级调度。动态优先级调度是指任务的优先级可以随
着时间或系统状态的变化而发生变化。4.RTOS分类RTOS主要分为强实时(Hard Real-Time)系统和弱实时(Soft R
eal-Time)系统两类。强实时系统应用在航空航天、军事、核工业等领域中,弱实时系统如视频点播系统、信息采集与检索系统等。 5.
实时任务分类实时任务的分类方法有多种,根据任务的周期划分,可以分为周期任务、偶发任务和非周期任务3类。根据是否允许任务超时,以及超
时后对系统造成的影响,任务又分为强实时任务、准实时任务、弱实时任务和弱一强实时任务4类。6.RTOS操作系统和内核RTOS从单用途
专用系统向多用途通用操作系统(如实时Linux等)发展。RTOS从只支持强实时及其应用发展到既支持强实时也支持弱实时及其应用方面,
如开放实时系统的服务质量(QoS)多媒体应用、复杂分布式实时系统等。1.2 嵌入式微处理器体系结构1.2.1 冯·诺依曼结构与
哈佛结构1.冯·诺依曼(Von Neumann)结构冯·诺依曼结构的计算机由CPU和存储器构成,其程序和数据共用一个存储空间,程序
指令存储地址和数据存储地址指向同一个存储器的不同物理位置;采用单一的地址及数据总线,程序指令和数据的宽度相同。程序计数器(PC)是
CPU内部指示指令和数据的存储位置的寄存器。CPU通过程序计数器提供的地址信息,对存储器进行寻址,找到所需要的指令或数据,然后对指
令进行译码,最后执行指令规定的操作。处理器执行指令时,先从储存器中取出指令解码,再取操作数执行运算,即使单条指令也要耗费几个甚至几
十个周期,在高速运算时,在传输通道上会出现瓶颈效应。目前使用冯.诺依曼结构的CPU和微控制器品种有很多,例如Intel公司的808
6系列及其他CPU,ARM公司的ARM7、MIPS公司的MIPS处理器等。2.哈佛(Harvard)结构哈佛结构的主要特点是将程序
和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址、独立访问。系统中具有程序的数据总
线与地址总线,数据的数据总线与地址总线。这种分离的程序总线和数据总线可允许在一个机器周期内同时获取指令字(来自程序存储器)和操作数
(来自数据存储器),从而提高执行速度,提高数据的吞吐率。又由于程序和数据存储器在两个分开的物理空间中,因此取指和执行能完全重叠,具
有较高的执行效率。目前使用哈佛结构的CPU和微控制器品种有很多,除DSP处理器外,还有摩托罗拉公司的MC68系列、Zilog公司的
Z8系列、ATMEL公司的AVR系列和ARM公司的ARM9、ARM10和ARM11等。1.2.2 精简指令集计算机早期的计算机采
用复杂指令集计算机(Complex Instruction Set Computer,CISC)体系,例如Intel公司的X86系
列CPU,从8086到Pentium系列,采用的都是典型的CISC体系结构。采用CISC体系结构的计算机各种指令的使用频率相差悬殊
,统计表明,大概有20%的比较简单的指令被反复使用,使用量约占整个程序的80%;而有80%左右的指令则很少使用,其使用量约占整个程
序的20%,即指令的2/8规律。在CISC中,为了支持目标程序的优化,支持高级语言和编译程序,增加了许多复杂的指令,用一条指令来代
替一串指令。通过增强指令系统的功能,简化软件,确增加了硬件的复杂程度。而这些复杂指令并不等于有利于缩短程序的执行时间。在VLSI制
造工艺中要求CPU控制逻辑具有规整性,而CISC为了实现大量复杂的指令,控制逻辑极不规整,给VLSI工艺造成很大困难。精简指令集计
算机(Reduced Instruction Set Computer,RISC)体系结构是20世纪80年代提出来的。目前IBM、
DEC、Intel和Motorola等公司都在研究和发展RISC技术,RISC已经成为当前计算机发展不可逆转的趋势。RISC是在C
ISC的基础上产生并发展起来的,RISC的着眼点不是简单地放在简化指令系统上,而是通过简化指令系统使计算机的结构更加简单合理,从而
提高运算效率。在RISC中,优先选取使用频率最高的、很有用但不复杂的指令,避免使用复杂指令;固定指令长度,减少指令格式和寻址方式种
类; 指令之间各字段的划分比较一致,各字段的功能也比较规整;采用Load/Store指令访问存储器,其余指令的操作都在寄存器之间进
行;增加CPU中通用寄存器数量,算术逻辑运算指令的操作数都在通用寄存器中存取;大部分指令控制在一个或小于一个机器周期内完成;以硬布
线控制逻辑为主,不用或少用微码控制;采用高级语言编程,重视编译优化工作,以减少程序执行时间。尽管RISC架构与CISC架构相比较有
较多的优点,但RISC架构也不可以取代CISC架构。事实上,RISC和CISC各有优势。现代的CPU往往采用CISC的外围,内部加
入了RISC的特性,如超长指令集CPU就是融合了RISC和CISC的两者的优势,成为未来的CPU发展方向之一。在PC机和服务器领域
, CISC体系结构是市场的主流。在嵌入式系统领域, RISC结构的微处理器将占有重要的位置。1.2.3 流水线技术1.流水线的
基本概念流水线技术应用于计算机系统结构的各个方面,流水线技术的基本思想是将一个重复的时序分解成若干个子过程,而每一个子过程都可有效
地在其专用功能段上与其他子过程同时执行。在流水线技术中,流水线要求可分成若干相互联系的子过程,实现子过程的功能所需时间尽可能相等。
形成流水处理,需要一段准备时间。指令流发生不能顺序执行时,会使流水线过程中断,再形成流水线过程则需要时间。流水线结构的类型众多,并
且分类方法各异,按完成的功能分类可分为单功能流水线和多功能流水线,按同一时间内各段之间的连接方式分类可静态流水线和动态流水线,按数
据表示分类可分为标量流水线处理器和向量流水线处理器。指令流水线就是将一条指令分解成一连串执行的子过程,例如把指令的执行过程细分为取
指令、指令译码、取操作数和执行4个子过程。在CPU中把一条指令的串行执行子过程变为若干条指令的子过程在CPU中重叠执行。如果能做到
每条指令均分解为m个子过程,且每个子过程的执行时间都一样,则利用此条流水线可将一条指令的执行时间T由原来的T缩短为T/m。指令流水
线处理的时空图如图1.2.1所示,其中的1、2、3、4、5表示要处理的5条指令。从图可见采用流水方式可同时执行多条指令。图1.2.
1 指令流水线处理的时空图2.流水线处理机的主要指标(1)吞吐率在单位时间内,流水线处理机流出的结果数称为吞吐率。对指令而言就是
单位时间里执行的指令数。如果流水线的子过程所用时间不一样长,则吞吐率P应为最长子过程的倒数,即:(2)建立时间流水线开始工作,须经
过一定时间才能达到最大吞吐率,这就是建立时间。若m个子过程所用时间一样,均为t0,则建立时间T0=mΔt0。1.2.4 信息存储
的字节顺序1.大端和小端存储法大多数计算机使用8位(bit)的数据块做为最小的可寻址的存储器单位,称为一个字节。存储器的每一个字节
都用一个唯一的地址(address)来标识。所有可能地址的集合称为存储器空间。对于软件而言,它将存储器看作一个大的字节数组,称为虚
拟存储器。在实际应用中,虚拟存储器可以划分成的不同单元,用来存放程序、指令和数据等信息。在微处理器中,使用一个字长(word)表明
整数和指令数据的大小。字长决定了微处理器的寻址能力,即虚拟地址空间的大小。对于一个字长为n位的微处理器,它的虚拟地址范围为0~2n
-l。例如一个32位的微处理器,可访问的虚拟地址空间为232,即4GB。微处理器和编译器使用不同的方式来编码数据,如不同长度的整数
和浮点数,从而支持多种数据格式。以C语言为例,它支持整数和浮点数等多种数据格式。对于一个多字节类型的数据,在存储器中有两种存放方法
。一种是低字节数据存放在内存低地址处,高字节数据存放在内存高地址处,称为小端字节顺序存储法;另一种是高字节数据存放在低地址处,低字
节数据存放在高地址处,称为大端字节顺序存储法。例如,假设一个32位字长的微处理器上定义一个int类型的常量a,其内存地址位于0x6
000处,其值用十六进制表示为0x23456789。如图1.2.2(a)所示,如果按小端法存储,则其最低字节数据0x89存放在内存
低地址0x6000处,最高字节数据0x23存放在内存高地址0x6003处。如图1.2.2(b)所示,如果按大端法存储,则其最高字节
数据0x23存放在内存的低地址0x6000处,而最低字节数据0x89存放在内存的高地址0x6003处。(a)小端存储法(b)大端存
储法图1.2.2 大端和小端存储法示例采用大端存储法还是小端存储法,各处理器厂商的立场和习惯不同,并不存在技术原因。Intel公
司X86系列的微处理器都采用小端存储法,而IBM、Motorola和Sun Microsystems公司的大多数微处理器采用大端存
储法。此外,还有一些微处理器,如ARM、MIPS和Motorola的PowerPC等,可以通过芯片上电启动时确定的字节存储顺序规则
,来选择存储模式。对于大多数程序员来言,机器的字节存储顺序是完全不可见的,无论哪一种存储模式的微处理器编译出的程序都会得到相同的结
果。不过,当不同存储模式的微处理器之间通过网络传送二进制数据时,在有些情况下,字节顺序会成为问题,会出现所谓的“UNIX”问题。字
符“UNIX”在16位字长的微处理器上被表示为两个字节,当被传送到不同存储模式的机器上时,则会变为“ NUXI ”。为了避免这类问
题,网络应用程序代码编写必须遵循已建立好的关于字节顺序的规则,以保证发送方微处理器先在其内部将发送的数据转换成网络标准,而接收方微
处理器再将网络标准转换为它的内部表示。2.可移植性问题当在不同存储顺序的微处理器间进行程序移植时,要特别注意存储模式的影响。把从软
件得到的二进制数据写成一般的数据格式往往会涉及到存储顺序的问题。在多台不同存储顺序的主机之间共享信息可以有两种方式:一种是以单一存
储方式共享数据,一种是允许主机以不同的存储方式共享数据。使用单一存储顺序只要解释一种格式,解码简单。使用多种存储方式不需要对数据的
原顺序进行转化,使得编码容易,同时当编码器和解码器采用同一种存储方式时因为不需要变换字节顺序,也能提高通信效率。3.通信中的存储顺
序问题在网络通信中,Internet协议(即IP协议)定义了标准的网络字节顺序。该字节顺序被用于所有设计使用在IP协议上的数据包、
高级协议和文件格式上。很多网络设备也存在存储顺序问题:即字节中的位采用大端法(最重要的位优先)或小端法(最不重要的位优先)发送。这
取决于OSI模型最底层的数据链路层。4.数据格式的存储顺序一个典型的例子就是日期表示方法,不同的国家采用不同的表示方法,美国和其他
一些国家,日期格式顺序一般是:月一日一年(如:12月24日2007年或12/24/2007),这是中间表示法。在世界大部分国家中,
包括除瑞典、拉脱维亚和匈牙利之外的欧洲,日期格式为:日一月一年(比如24日12月2007或12/24/2007),这是小端表示法。
中国、日本和ISO 8601国际正式标准顺序的日期顺序排列顺序是;年一月一日(比如2007年12月24日或2007-12-24),
这是大端表示法。在ISO 8601中年份必须用4位数字表示,月份和日数分别用两位表示。因此,个位数的日和月必须在前面填补一个零,如
01,02,…,09等。1.3 嵌入式微处理器的结构和类型 应用在嵌入式计算机系统中的微处理器称为嵌入式微处理器。从1971年I
ntel公司推出第一块微处理器芯片4004到今天,嵌入式微处理器已有30多年的发展历史。嵌入式计算机硬件系统一般由嵌入式微处理器、
存储器和输入/输出部分组成,其中嵌入式微处理器是嵌入式硬件系统的核心。嵌入式微处理器的字长宽度可分为4位、8位、16位、32位和6
4位。一般把16位及以下的称为嵌入式微控制器(Embedded Micro Controller ), 32位及以上的称为嵌入式微
处理器。微处理器内部仅包含单纯的中央处理器单元称为一般用途型微处理器。将CPU、 ROM、 RAM及I/O等部件集成到同一个芯片上
,称为单芯片微控制器(Single Chip Microcontroller)。根据用途,可以分为嵌入式微控制器、嵌入式微处理器、
嵌入式DSP处理器、嵌入式片上系统、双核或多核处理器等类型。1.3.1 嵌入式微控制器嵌入式微控制器(Micro Control
ler Unit,MCU)又称为单片机,芯片内部集成ROM、EPROM、RAM、总线、总线逻辑、定时/计数器、看门狗、I/O、串行
口、脉宽调制输出(PWM)、A/D、D/A、Flash、EEPROM等各种必要功能和外设。嵌入式微控制器具有单片化、体积小、功耗和
成本低,可靠性高等特点,约占嵌入式系统市场份额的70%。嵌入式微控制器品种和数量很多,典型产品有8051、MCS-251、MCS-
96/196/296、 C166/167、68K系列,TI公司的MSP430系列和Motorola公司的68H12系列,以及MCU
8XC930/931、C540、C541,并且有支持I2C、CAN-BUS、 LCD及众多专用嵌入式微控制器和兼容系列。 1.3.
2 嵌入式微处理器嵌入式微处理器(Embedded Micro Processing Unit,EMPU)由通用计算机中的CPU
发展而来,嵌入式微处理器只保留和嵌入式应用紧密相关的功能硬件,去除其他的冗余功能部分,以最低的功耗和资源实现嵌入式应用的特殊要求。
通常嵌入式微处理器把CPU、ROM、RAM及I/O等做到同一个芯片上。32位微处理器采用32位的地址和数据总线,其地址空间达到了2
32=4GB。目前主流的32位嵌入式微处理器系列主要有ARM系列、MIPS系列、PowerPC系列等。属于这些系列的嵌入式微处理器
产品很多,有千种以上。1.ARM系列ARM(Advanced RISC Machine)公司的ARM微处理器体系结构目前被公认为是
嵌入式应用领域领先的32位嵌入式RISC微处理器结构。ARM体系结构目前发展并定义了7种不同的版本。从版本1到版本7,ARM体系的
指令集功能不断扩大。ARM处理器系列中的各种处理器,虽然在实现技术、应用场合和性能方面都不相同,但只要支持相同的ARM体系版本,基
于它们的应用软件是兼容的。表1.3.1给出了ARM体系结构各版本的特点。目前,70%的移动电话、大量的游戏机、手持PC和机顶盒等都
已采用了ARM处理器,许多一流的芯片厂商都是ARM的授权用户,如Intel、Samsung、TI、Freescale、ST等公司。
表1.3.1 ARM体系结构版本及特点2.MIPS系列美国斯坦福大学的Hennessy教授领导的研究小组研制的MIPS(Micr
oprocessor without Interlocked Piped Stages,无互锁流水级的微处理器)是世界上很流行的一
种RISC处理器,其机制是尽量利用软件办法避免流水线中的数据相关问题。从20世纪80年代初期MIPS处理器发明到现在的这20多年里
,MIPS处理器以其高性能的处理能力被广泛应用于宽带接入、路由器、调制解调设备、电视、游戏、打印机、办公用品、DVD播放等广泛的领
域。和ARM公司一样,MIPS公司本身并不从事芯片的生产活动(只进行设计),不过其他公司如果要生产该芯片,则必须得到MIPS公司的
许可。MIPS 32位处理器内核系列和特点如表1.3.2所示。表1.3.2 MIPS 32位处理器内核系列和特点3.PowerP
CPowerPC是Freescale(原Motorola)公司的产品。PowerPC RISC处理器采用了超标量处理器设计和调整内
存缓冲器,修改了指令处理设计,它完成一个操作所需的指令数比CISC处理器要多,但完成操作的总时间却减少了。PowerPC内核采用独
特分支处理单元可以让指令预取效率大大提高,即使指令流水线上出现跳转指令,也不会影响到其运算单元的运算效率。PowerPC RISC
处理器设计了多级内存高速缓冲区,以便让那些正在访问(或可能会被访问)的数据和指令总是存储在调整内存中。这种内存分层和内存管理设计,
令系统的内存访问性能非常接近调整内存,但其成本却与低速内存相近。而且PowerPC还引入了独立的分支处理器来进一步解决这个问题,这
个处理单元在读入指令队列后,会找出其中的跳转指令,然后预取跳转指令所指向的新的内存地址的指令,这样就大大提高了指令预取的效率。 P
owerPC内核采用超标量(Superscale)设计。在PowerPC内部,集成了多个处理器,这些处理器可以并行独立工作,这样就
可以在一个时钟周期执行多条指令。一个标准的601处理器中便集成了一个定点处理器、一个浮点处理器和一个分支处理器,这种超标量设计提供
了允许多条指令同时运行的多处理流水线。显然,这种指令的重叠程度取决于指令的顺序和种类。PowerPC具有字节非对齐操作的兼容特性,
可以处理字节非对齐的存储器访问,这种特性可以让它兼容许多从CISC处理器移植过来的指令和数据结构。 PowerPC同时支持大端小端
Big/Little-Indian)数据类型。因此PowerPC可以很方便地与68K系列处理器和数据结构兼容。PowerPC可以通
过一些特殊指令访问小端模式的数据。在这种情况下,PowerPC不能访问非字节对齐的数据。1.3.3 嵌入式DSP处理器嵌入式DS
P处理器(Digital Signal Processor,DSP)是专门用于信号处理方面的处理器,芯片内部采用程序和数据分开存储
和传输的哈佛结构,具有专门硬件乘法器,采用流水线操作,提供特殊的DSP指令,可用来快速地实现各种数字信号处理算法,使其处理速度比最
快的CPU还快10~50倍。在DSP处理器上是乘法与加法运算最基本的运算功能,除此之外,DSP处理器还用于如有限脉冲响应滤波器(F
inite Impulse Responsefilter,FIR)、无限脉冲响应滤波器(Infinite Impulse Resp
onsefilter,IIR)、离散傅利叶(Discrete Fourier Transforms)及离散余弦转换(Discret
e Cosine Transforms)等一些常见算法的实现。从20世纪80年代到现在,缩小DSP芯片尺寸始终是DSP的技术发展方
向。DSP处理器已发展到第5代产品,多数基于精简指令集计算( RISC)结构,并将几个DSP芯核、MPU芯核、专用处理单元、外围电
路单元和存储单元集成在一个芯片上,成为DSP系统级集成电路。其系统集成度极高,并将DSP芯核及外围元件综合集成在单一芯片上。 DS
P运算速度的提高主要依靠新工艺改进芯片结构。目前一般的DSP运算速度为100MIPS(即每秒钟可运算1亿条指令)。TI的TM320
C6X芯片由于采用超长指令字(全称为Very Long Instruction Word,VLIW)结构设计,其处理速度已高达20
00MIPS。按照发展趋势,DSP的运算速度完全可能再提高100倍(达到1600GIPS)。 DSP并行结构可分为片内并行和片间并
行。可编程DSP使生产厂商可在同一个DSP平台上开发出各种不同型号的系列产品,以满足不同用户的需求。同时,可编程DSP也为广大用户
提供了易于升级的良好途径。为缩短软件开发的周期,DSP软件开发通常使用高级语言进行。1.3.4 嵌入式片上系统嵌入式片上系统(S
ystem On Chip,SOC)最大的特点是成功实现了软硬件无缝结合,直接在处理器片内嵌入操作系统的代码模 块,而且具有
极高的综合性,在一个芯片内部运用VHDL等硬件描述语言,即可实现一个复杂的系统。与传统的系统设计不同,用户不需要绘制庞大复杂的电路
板,一点点地连接焊制,只需要使用精确的语言,综合时序设计直接在器件库中调用各种通用处理器的标准,然后通过仿真之后就可以直接交付芯片
厂商进行生产,设计生产效率高。在SOC中,绝大部分系统构件都是在系统内部,系统简洁,系统的体积和功耗小,可靠性高。SOC多是专用的,所以大部分产品都不为用户所知,比较典型的SOC产品如Philips公司的Smart XA,少数通用系列如Siemens公司的TriCore、Motorola公司的M-Core、某些ARM系列器件、Echelon和Motorola联合研制的Neuron芯片等。SOC芯片已在声音、图像、影视、网络及系统逻辑等应用领域中广泛应用。1.3.5 多核处理器双核或多核处理器早已在SOC、多媒体、网络等一些嵌入式处理器中采用。但真正引人注目的是多核技术被引入到最高性能的通用处理器中。将两个或多个CPU核封装在一个芯片内部,可节省大量的晶体管和封装成本,同时还能显著提高处理器的性能。另外,由于多核处理器对外的“界面”是统一的,用户不会在主板、硬件体系方面做大的改变,从兼容性和系统升级成本方面来考虑有诸多的优势。实现两个或多个内核协调工作通常采用对称(Symmetric)多处理技术和非对称多处理(Asymmetric)两种方式。例如IBM Power 4处理器采用对称多处理技术,将两颗完全一样的处理器封装在一个芯片内,达到双倍或接近双倍的处理性能,由于共享了缓存和系统总线,因此这种做法的优点是能节省运算资源。例如TI公司的OMAP5910双核处理器采用一种非对称多处理的工作方式,即两个处理内核彼此不同,各自处理和执行特定的功能,在软件的协调下分担不同的计算任务,比如一个执行加密,而另一个执行TCP/IP协议处理。在2001年,IBM公司推出了世界上第一款基于双核的Power 4处理器的高性能服务器处理器;随后Sun和HP公司都先后推出了基于双核体系结构的UltraSPARC及PA-RISC芯片。当前这些多核处理器主要应用于对提高性能和降低功耗最为迫切的服务器领域。第1章 思考题与习题简述嵌入式系统的定义。举例说明嵌入式系统的“嵌入性”、“专用性”、“计算机系统”的基本特征。简述嵌入式系统的发展各阶段的特点。简述嵌入式系统的发展趋势。简述SOC和 IP核的区别。简述嵌入式计算机系统的硬件层的组成和功能。简述Cache的功能与分类。简述嵌入式计算机系统的中间层的组成和功能。简述嵌入式计算机系统的系统软件层的组成和功能。简述RTOS的定义与特点。常用的RTOS调度技术有哪些?各有什么特点?冯·诺依曼结构与哈佛结构各有什么特点?RISC架构与CISC架构相比有哪些优点?简述流水线技术的基本概念。试说明指令流水线的执行过程。大端存储法还是小端存储法有什么不同?对存储数据有什么要求与影响?嵌入式微控制器、嵌入式微处理器、嵌入式DSP处理器、嵌入式片上系统、双核或多核处理器有哪些相同和不同之处?ARM、MIPS、PowerPC微处理器结构有哪些相同和不同之处?各有什么特点?
献花(0)
+1
(本文系大高老师首藏)