第3章 嵌入式系统的基础知识_第1页
第3章 嵌入式系统的基础知识_第2页
第3章 嵌入式系统的基础知识_第3页
第3章 嵌入式系统的基础知识_第4页
第3章 嵌入式系统的基础知识_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式系统原理与设计,主讲蔡启先,第3章嵌入式系统的基础知识,本章要点,嵌入式系统的基本知识嵌入式系统开发的相关知识,3.1基本概念,3.2开发相关知识,第3章嵌入式系统的基础知识,3.1基本概念,3.1.1存储器结构3.1.2流水线技术3.1.3CISCR1=(R1)OP(A2)k+1:OPR1,R2;R1=(R1)OP(R2)第k+1条指令和第k条指令存在R1数据相关。,3.流水线相关问题的解决,解决办法:一是采用推后处理法,即规定同时读写同一个寄存器时,写操作优先,使发生读写冲突时,读数推后一个周期或推后一个节拍。有时间浪费,实现简单,析指k,执指k,析指k+1,执指k+1,析指k+1(推后),结果写R1,需要读R1,读R1推后一个周期,执指k+1,运算器,二是设置专用数据通路:需增加硬件,通用寄存器堆,锁存器,锁存器,相关专用通路,(2)控制相关及其处理,控制相关是指由转移、条件分支、转子、中断等引起的相关。比如,如果指令K是转移指令,则顺序取来的指令k+1势必无效,重叠运行就会被打断。克服控制相关主要采用先行缓冲技术和转移预测技术。,(2)控制相关及其处理,先行缓冲技术在处理器内设置了一定深度的指令缓冲栈,进行指令预取。如果转移的目标指令就在指令缓冲栈中,则无须重新取指令而直接分析执行,大大减少了控制相关带来的流水线延时。转移预测技术一般有软件猜测法和硬件猜测法。软件猜测法修改编译器,由编译器分析程序,预先调整指令顺序,尽量降低转移成功的概率,使指令尽量顺序执行。硬件猜测法利用专门的硬件电路预先对指令进行分析,跟踪程序转移的历史并预测程序可能的转移目标。现代微处理器的硬件预测准确度达到90%以上。,(3)结构相关及其处理,结构相关是指流水线中出现资源冲突问题,即出现流水线的各段在同一个时钟周期内使用相同的操作部件。例如,如果只有一个整数加法运算单元,就不能有两条连续执行加法运算的指令重叠操作。要解决结构相关,必须重复设置一些功能单元,以保证指令的所有组合都能够进行流水作业。,流水线技术的进一步发展,产生了多种高性能的指令级并行处理器,如超标量处理器(SuperscalarProcessor)、超流水线处理器(SuperpipeliningProcessor)和超标量超流水线处理器(SuperpipeliningSuperscalarProcessor)。所谓超标量处理机是指具有多条能同时工作的流水线。流水线级数在8级及以上的流水线处理器称为超流水线处理器,具有多条8级及以上的流水线处理器就是超标量超流水线处理器了。例如Intel公司在2006年3月发布的Core2Duo(酷睿2)双核处理器可在1个时钟周期内,同时执行128位乘法、128位加法、128位数据加载与128位数据回存,或者是4个32位单倍浮点精确度乘法与4个32位浮点单精确度加法运算。各条流水线深度达到14级。,4.超标量流水线和超级流水线,3.1.3CISC&RISC,优化指令系统的两种不同的途径和方法复杂指令系统(CISC)精简指令系统(RISC),1复杂指令系统(CISC),复杂指令系统(ComplexInstructionSetComputer,CISC)增强指令功能,用新的复杂指令替代原由软件子程序完成的功能,实现软件功能硬化的计算机系统它可从面向目标程序、面向高级语言和面向操作系统这三方面的优化来考虑。,1.目标程序的优化,思路:从时间上和空间上优化目标程序,将使用频度高的指令进行硬件加速,用新指令替代使用频度高的指令串主要途径:(1)增强数据转送指令的功能(2)增强运算型指令的功能(3)增强程序控制指令的功能,如8088指令系统中的串操作指令和带重复前缀的串操作指令。指令REPMOVSW其功能相当于一个指令串:MVSW:MOVAX,SIMOVES:DI,AXINCSIINCSIINCDIINCDIDECCXJNZMVSW,如函数运算指令。三角函数SIN(X)的计算是展开成级数进行一系列四则运算的结果,如8088指令系统中的循环控制指令LOOPNZLBL其功能相当于执行下述一系列操作:CX-1CX若CX0且ZF1则程序转向标号LBL,否则执行下一条指令,2.对高级语言和编译程序的支持,思路:缩小高级语言和机器语言的差距,使目标程序提高时空效率主要途径:(1)增强对高级语言和编译程序支持的指令,从而达到减少目标程序长度,减少目标程序执行时间的目的。例:赋值语句、IF.Then.语句等的机器支持。(2)高级语言计算机如Lisp计算机,prolog计算机。,3.操作系统的优化,针对操作系统的功能进行直接支持(1)优化支持操作系统的指令处理机工作状态和访问方式的转换进程的管理和切换存储管理和信息保护进程的同步和互斥,信号灯的管理等(2)增加专用于操作系统的指令如某些不公开的特权指令(3)把操作系统中使用频繁,对速度影响大的机构型软件子程序硬化或固化;(4)由专门的处理机来执行操作系统,形成功能分布处理系统结构。,(1)指令格式不固定,指令可长可短,操作数可多可少;(2)寻址方式复杂多样,操作数可来自寄存器,也可来自存储器;(3)采用微程序控制,执行每条指令均需完成一个微指令序列;(4)一般CPI,指令越复杂,CPI越大。,4.CISC的特点,2精简指令系统(RISC),精简指令系统(ReducedInstructionSetComputer,RISC)减少指令数目,简化指令功能,降低硬件复杂度,提高指令执行速度(1个节拍内完成)的计算机系统,RISC是80年代提出的一种新的设计思想。目前许多处理机都采用了RISC指令系统。例:Sun、ultrasparc、SGI、PowerPC、Intel80486、Pentium1-4等。,1.CISC的问题,(1)20%与80%规律庞大的指令系统中大部分指令利用率低大约20%的指令占据了80%的执行时间.事实上,频度最高的是三类指令MOV、ALU、Jump。(如对8088指令系统的统计分析),Intel8088处理机指令系统使用频度和执行时间统计(部分),(2)VLSI技术的发展引起的问题CISC控制十分复杂,不规整,不符合VLSI发展的方向,而RISC则控制简单,而且比较规整。在CISC处理机中,大量使用微程序技术以实现CISC。(3)软硬件功能分配问题在CISC中,虽然增加了硬件指令,但并不能保证整个程序执行时间的缩短。因为这些复杂指令要消耗较多的CPU周期数,但又不常用。此外,CISC系统各种指令执行周期的复杂不一,很不适应流水线技术的发展。,精简指令集:保留最基本的,去掉复杂、使用频度不高的指令大大减少指令系统可采用寻址方式的种类,一般不超过两种。由于指令简单,可以让所有指令都在一个机器周期内完成。采用Load/Store结构,尽量减少访存,有助于大大简化指令格式,统一了存储器访问方式大量设置寄存器堆采用硬接线控制代替微程序控制注重编译的优化,2.RISC的基本设计思想,RISC结构的优势,(1)简化指令系统设计,指令格式规整同一,非常适合VLSI电路实现。(2)提高机器的执行速度和效率。(3)降低设计成本,提高了系统的可靠性。(4)可以提供直接支持高级语言的能力,简化编译程序的设计。,Load/Store结构提出:CDC6600(1963)CRAY1(1976)RISC思想最早在IBM公式提出,但不叫RISC,IBM801处理器是公认体现RISC思想的机器。D.Paterson提出RISC名词,并研制了RISC-,实验样机。J.Hemnessy研制MIPS芯片(1982)。85年后推出商品化RISC:MIPS1(1986)和SPARCV1(1987)。,RISC的提出与发展,1981年,32位的RISCI微处理器问世特点:(1)指令简单、规整31种指令(以数据传送、算逻运算、程序控制指令为主)、两种寻址方式、多为三地址指令、指令字长统一为32位、所有指令都在一个周期内完成。(2)大量采用寄存器78个通用寄存器(3)只有LOAD/STORE指令访存效果:研制周期短、性能高,现代RISC结构更注重面向寄存器结构,注重RISC对流水线高效率的支持,重视优化编译技术。,3指令系统的优化发展方向,RISC的不足(1)加重汇编语言程序设计的负担(2)目标程序所占的存储空间可能加大(3)对浮点运算和虚拟存储器的支持还不够强(4)对编译程序的质量要求较高,难度较大,为了克服这些缺点,RISC结构也在改进。例如增多微程序控制,而不是采用单纯硬联逻辑,便于支持编译和高级语言实现,增加在片主存(在CPU上集成部分主存单元)而不是增多寄存器。如何减少指令系统的指令条数、提高编码效率优化算法、提高主频、增大结构内部的操作并行性,减少指令平均执行周期,更好地支持超流水线运行,是RISC结构进一步研究和改进的方向。今后计算机发展改进的总趋势是让RISC和CISC互相结合,取长补短。,3.1.4大端存储和小端存储,字节(Byte):8位,基本单位半字(Half-Word):16位,2字节字(Word):32位,4字节,编址方式,1、对象:Register、Memory、I/ODevices;通过编址使之唯一可被访问到;2、编址单位:字、字节、位三种。(1)字编址方式:每个编址单位与设备存储器访问单位相一致,实现最简单。但不支持非数值计算,如string,char等的运算。(2)字节编址方式:Normalmode,因为编址单位=信息的基本单位。出现的问题:存放单位和访问单位不一致的问题,因此将产生如何存放数据的问题。(3)位编址方式:存储器单元的每一位都有一个地址,常用于需要位控制的场合,字节编址方式下,产生的存贮和访问问题可以从任意地址位置开始存贮和访问。无论是双字、单字、半字或字节,顺序存放,可从任一位置开始访问。优点:不浪费存贮空间;缺点:a.双字、单字或半字都可能出现跨存储单元存放情况。致使访问一个变量或存贮单位必须花费两个存储周期的时间。b.RAM的R/W控制比较复杂,Read时,要用and屏蔽取出有效的部分;Write时,要屏蔽2次完成。,解决的方法:a.无论是双字、单字、半字或字节,都必须从一个存储单元的起始地址开始存放,而这个存储单元的其它部分不用。这样,无论访问双字、单字、半字或字节,都可以在一个存储周期内完成,且读写控制简单。此法缺点是空间浪费很大。b.按整数边界存储,即从地址的整倍数位置开始访问:双字地址最末3个二进制位必须是000,单字地址最末2个二进制位必须为00,半字地址最末1个二进制位必须为0。此法能够保证无论访问双字、单字、半字或字节,都可以在一个存储周期内完成。尽管有存储空间浪费和存储器读写控制较复杂的问题,但比a方式要好得多。,字节编址的存储器中,还要考虑一个存储字中的多个字节如何编码问题。存在两种排序方法:(1)小端存储(LittleEndian):字节或半字的最低位字节(LowestSignificantBit,LSB)存放于内存最低位字节地址上。即:最低地址存放最低位字节PowerPC、IntelX86系列等采用(2)大端存储(BigEndian):字节或半字的最高位字节(MostSignificantBit,MSB)存放于内存最低位字节地址上。即:最低地址存放最高位字节M68000系列、ColdFire系列等采用,另外,字节编址的计算机中,需要指令地址计数器根据访问内容的长短进行计数,如指令字长为32位,则取该指令后,指令地址计数器应加4;若是64位字长指令,则需加8。,3.1.5存储器管理单元MMU,存储器管理单元MMU(MemoryManagementUnit)的功能:将虚拟地址转换为物理地址和对存储器访问权限的控制,虚拟存储器的工作原理,虚拟存储器的地址空间有三种:虚地址空间,它是应用程序员编程的地址空间,这个地址空间非常大;主存地址空间,又称实存地址空间;辅存地址空间,即磁盘地址空间。,以页式虚存为例页(Page):固定大小的块(116KB)主存分页:实页虚存分页:虚页主存地址A虚地址Av,内部地址变换U、Pp,外部地址变换(查外页表)U、P外存实地址,联机外存地址,主存页面表,页面替换算法,I/O通道,启动脱机外存,命中访问主存,选主存页,页内地址,主存,未命中,未命中,访联机外存,主存页面失效,查内页表,命中,主存未满,有空页号,主存满,主存页号,调入页,被替换页,选页,页式虚存的工作过程,虚地址Av内部地址变换未命中外部地址变换查外页表命中得到P对应的实地址无实页号p、d查内页表启动脱机外存访问主存有空页号无空页号调入主存替换调入,地址映象及地址变换,地址映像:程序装入时,建立用户虚地址与主存实地址的对应关系,便于取指令。地址变换:程序运行时,用户虚地址变换为主存实地址(内部地址变换)或辅存地址(外部地址变换),便于数据存取。三种类型的虚存:(1)段式虚拟存储器(2)页式虚拟存储器(3)段页式虚拟存储器,嵌入式操作系统MMU对虚存的管理,通过TLB(TranslationLookasideBuffers)实现虚存地址物理地址的转换机制程序的逻辑地址是虚地址进程都有各自的虚拟地址空间,映射于不同的物理页面上(便于保护共享的物理内存资源),虚存地址空间分为两部分:用户空间和系统空间系统空间的保护核心模式下可访问用户空间和系统空间用户模式下只能访问用户空间进程要共享内核,必须通过系统调用接口,通过一组特殊的指令使系统进入内核态。调用完成后,由内核将系统返回用户态。用户空间的保护每个用户的空间通过地址转换映射到不同的物理存储页面上,进程只能访问自己的地址空间。,嵌入式操作系统MMU对虚存的管理,内核中维护全局数据结构和每个进程的一些对象信息,使得内核可以访问任何进程的地址空间。进程只能通过特殊的方法访问到其他进程的地址空间。进程在用户态不能访问系统空间进程访问内核,必须执行某些特殊指令,通过系统调用接口,使系统进入内核态,并将控制权交给内核,由内核代替进程完成操作。系统调用完成后,内核执行特征指令返回用户态,将控制权交给进程。,3.1.6BSP,板级开发包BSP(BoardSupportPacked):针对具体的开发板提供的开发软件,不同的开发板具有不同的BSP。BSP内容:(1)C/C+语言的交叉编译器(2)BootLoader程序(3)嵌入式操作系统,如WindowsCE、Linux等(4)调试、下载工具,如JTAG等(5)开发板上设备的驱动程序(6)开发板相关的技术文档,3.1.7BootLoader和OSLoader,BootLoader(启动加载器):完成系统启动和系统软件加载工作的程序,是BSP中的重要系统软件。主要功能:(1)完成处理器和周边电路正常运行所需的初始化工作(2)屏蔽底层硬件的差异,便于上层应用软件的编写和移植(3)具有类似BIOS的功能,以及一定的调试、下载、网络更新等功能BootLoader程序与操作系统、CPU、内存及系统硬件相关,依赖于具体的Boader。BootLoader的开发和移植是嵌入式系统开发的重要内容之一。,OSLoader(操作系统加载器):完成操作系统载入工作的程序,在PC系统中常用,还能对多操作系统进行载入管理。PC机上的BIOS+OSLoader相当于嵌入式系统中的BootLoader,3.1.8进程和线程,进程:正在运行的应用程序的一个实例。由两部分组成:(1)操作系统用来管理该进程的内核对象(2)该进程拥有的地址空间(应用程序的代码段、静态数据段、堆栈,非片内执行的DLL)一个进程由一个或多个线程组成。一个线程是一个执行单元,它控制CPU执行进程中某一段代码段。一个线程可以访问这个进程中所有的地址空间和资源。一个进程最少包含一个线程来执行代码,这个线程又叫做主线程。,进程间通信与进程、任务和线程的同步,进程进程定义了一个顺序执行的程序及其状态。进程在运行期间的状态是通过其状态(运行、阻塞或者完成)、进程控制块PCB或者进程结构(他的数据、对象及资源)等来表示。进程由操作系统内核调度,进程通过执行指令来运行,其状态的连续改变由PCB的程序计数器来监控。应用程序可定义为由进程和不同状态下的进程行为所组成的程序,任务应用程序也可定义为由任务和不同状态下的任务行为所组成的程序。任务是在操作系统调度内核控制下,在CPU上运行的运算或者行为的集合。它在存储器上有一种进程结构:任务控制块。它具有惟一的ID号。在系统中,任务具有如下状态:空闲、就绪、运行、阻塞和完成。如果任务有无限等待循环,则可能再次进入到就绪状态。多任务操作系统是通过不同任务之间的上下文切换实现的,(1)任务是独立的,相互之间不能调用。(2)每个任务都有一个ID号。(3)在某一时刻,任务有自己的程序计数器、虚拟堆栈指针,即所谓任务的上下文。(4)每个任务都有自己的TCB标识,保存了当前时刻的程序计数器信息、存储器映射、信号(消息)发送表、信号屏蔽、任务ID、CPU状态(寄存器、程序计数器和CPU栈指针)和内核栈的存储器块。(5)每个任务都有自己的优先级参数。(6)每个任务都有自己的上下文记录,反映OS阻塞某个任务,并将另一个任务初始化为运行状态之前的CPU状态。每个任务都还有自己的初始上下文参数context_init。,(7)每个任务可编写成无限的事件等待循环。(8)在任意时刻,每个任务都处于下列某一状态:空闲:任务初始化之前的事件等待循环状态。就绪:退出事件等待循环,准备执行的状态所需事件已经发生。运行阻塞(等待):保存上下文,暂时挂起。如等待键盘输入或文件输入。(9)任务完成后返回空闲状态或就绪状态。(10)每个任务要么必须是一个可载入例程,要么必须能共享数据。,线程多任务操作系统运行多个进程。一个进程包括一个或多个线程。线程定义了调度程序调度CPU和其他系统资源的最小单位。线程具有自己的程序计数器、堆栈指针与堆栈、用于线程调度的优先级参数,以及进行上下文切换时,装入处理器寄存器中的变量。在内核中,线程具有自己的信号屏蔽。未被屏蔽时,激活线程并使之运行;被屏蔽时,线程被放入处于挂起状态的线程队列中。一个进程的不同线程可以共享该进程的通用结构。多线程可以共享该进程的数据。在应用程序中,线程是一个轻量级的子进程或者进程,受操作系统内核控制。在存储器中,线程具有一个进程结构,称为线程堆栈。线程有唯一的ID号。在系统中,线程具有启动、运行、阻塞和完成。,3.2开发相关知识,3.2.1ICE和ICD3.2.2其它硬件调试工具3.2.3JTAG3.2.4编译器和交叉编译器3.2.5模拟器和仿真器,3.2.1ICE和ICD,ICE(In-CircuitEmulator):在线仿真器。ICD(In-CircuitDebugger):在线调试器。,ICE:仿真处理器芯片的行为,提供丰富的调试功能。如单步、断点执行;实现实时运行;跟踪功能。ICE包括软件部分和硬件部分特点:实时仿真调试,应用广泛,但价格昂贵。常见的ICE有:单片机仿真器、ARM的JTAG在线处理器,ICD:ICE的简化调试工具软件,较多利用模拟方式取得与ICE类似的效果。特点:成本低,但实时调试较难实现。使用ICD的前提:被调试的处理器内部必须有调试功能和相应接口。,3.2.2其它硬件调试工具,ROMMonitor(ROM监视器)ROMEmulator(ROM仿真器),3.2.3JTAG,JTAG标准:JTAG(JointTestActionGroup,联合测试行动组)起草了边界扫描测试(BoundaryScanTesting,BST)规范,1990年成为IEEE1149.1规定,简称JTAG标准。边界扫描(BoundaryScan):对芯片调试时,应用边界扫描寄存器将芯片和外围的输入输出隔离,通过边界扫描寄存器的状态测试,实现对芯片输入输出信号的观察和控制。,TAP(TestAccessPort),通用的测试端

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论