bdm第二章 嵌入式处理器文档格式.docx
《bdm第二章 嵌入式处理器文档格式.docx》由会员分享,可在线阅读,更多相关《bdm第二章 嵌入式处理器文档格式.docx(50页珍藏版)》请在冰点文库上搜索。
嵌入式处理器是嵌入式系统的硬件核心,内部含有嵌入式CPU、存储器以及不同用途的I/O控制器电路。
其体系结构的不同直接影响着嵌入式系统开发工具的选择、应用程序的编写。
了解嵌入式处理器内部体系结构对于开发、设计嵌入式系统是必要的。
2.1.1嵌入式处理器体系结构
目前嵌入式处理器的系统结构有CISC复杂指令集计算机(ComplexInstructionSetComputer)与RISC精简指令集计算机(ReducedInstructionSetComputer)。
1、CISC
早期处理器的体系结构基本上是与当时的“小型机”一脉相承的。
所谓“体系结构”是指程序员在为特定处理器编制程序时所看到的从而可以在程序中使用的资源及其相互间的关系,其中最重要的就是所提供的指令系统与寄存器组。
早期计算机的CPU,包括早期处理器指令系统都是CISC的。
CISC体系结构的处理器特点:
是指其指令系统复杂,指令种类繁多,寻址方式灵活,指令功能强大。
能够为典型的高级语言成分提供相应的指令,便于编写程序且程序的阅读性好,更重要的是,高级语言的编译过程也随之简化。
随着技术的发展,CISC的缺陷逐步凸现出来了。
为了提高运算速度,在处理器中采用了“预取指令”等“流水线操作”技术。
由于CISC的复杂指令的存在使得各种指令的执行时间长短不一致,指令本身长度也不一致,从而导致流水线(特别是较长的流水线)常常不能被有效地充满,影响了运算速度。
处理器的集成规模是受到半导体技术以及生产成本的限制,减小芯片的尺寸和降低功耗又是市场需要,也是电子设计追求的目标,这对于嵌入式系统更有着特殊的意义。
由于CISC体系结构的处理器多数采用微程序技术设计指令系统,微程序ROM又是微处理器内部“占地”最大的部分,复杂指令又是其中“大户”。
给芯片的微型化和低功耗的实现带了困难。
随着计算机技术的发展而不断引入新的复杂的指令集,为支持这些新增的指令,计算机的体系结构越来越复杂,然而,在CISC指令集的各种指令中,复杂指令集使用频率却相差悬殊,大约有20%的指令会反复使用,而其余80%的指令不经常使用,显然,这种体系结构有它的不合理之处。
2、RISC
基于CISC上述的缺陷,“简约(精简)指令计算机”,即RISC(ReducedInstructionSetComputer)的概念与技术便应运而生。
这方面的研究最初由IBM公司开始,后来加州大学伯克利分校(1979年)以及斯坦福大学的研究人员也基本上各自独立进行了研究(其中IBM的JohnCocke因为在这方面的贡献而荣获1987年的图灵奖)并各自取得了丰硕的成果。
这些成果后来发展成为PowerPC、SPARC、以及MIPS等几种最主要的RISC体系结构。
与RISC相对应的、传统的体系结构便成了“复杂指令集计算机”即CISC(ComplexInstructionSetComputer)。
RISC系统结构具有的特点:
●采用固定长度的指令格式,指令规整、简单基本寻址方式有2~3种,指令系统小。
●使用单周期指令,便于流水线操作执行。
●大量使用寄存器(一般≥32个寄存器),数据处理指令只对寄存器进行操作,只有加载(LOAD)/存储(STORE)指令可以访问存储器,以提高指令执行效率。
●RISC系统结构的处理器都采用流水线,都带有高速缓存(cache)。
3、CISC与RISC的比较
与CISC系统结构相比,RISC系统结构确实有不少优点,特别是RISC处理器的电路简单、速度快、芯片面积小、开发周期短。
但是也有缺点,那就是代码的密度不高,使得可执行程序的体积较大,其汇编代码的可读性较差。
还有,在Intel的X86系列已经在CPU市场占统治地位的今天,不能与X86指令系统兼容,也给RISC的普及应用带来了不利的影响。
由于RISC的优点,用于嵌入式系统的处理器大都是RISC系统结构的。
但是并不是说CISC没有市场,Intel的X86系列证明了在CISC系统结构也可以成功地采用流水线,Motorola的68K系列也是成功的,因此,RISC和CISC各有优势。
2.1.2嵌入式处理器存储体系结构
嵌入式处理器的存储体系结构有冯·
诺依曼(普林斯顿)和哈佛体系结构。
1、冯·
诺依曼体系结构
在计算机科学与技术的发展史上,冯·
诺依曼(VonNeuman)是作出重大贡献的科学家。
计算机的的工作原理是“存储程序(数据),程序控制”,即冯.诺依曼原理。
计算机的基本功能是数据计算,冯.诺依曼提出:
程序只是一种(特殊的)数据,对于程序也可以像对数据一样加以处理,并且因而程序可以与数据存储在同一个存储器中,即冯.诺依曼存储体系结构。
现代计算机,特别是通用计算机,基本上都采用冯.诺依曼结构,都只有一个统一的内存。
冯·
诺依曼存储体系结构模型如图2.1所示。
图2.1冯·
诺依曼存储体系结构模型
其指令的执行周期T
1)取指令(InstructionFetch):
TF
2)指令译码(InstructionDecode):
TD
3)执行指令(InstructionExecute):
TE
4)存储(Storage):
TS
每条指令的执行周期:
T=TF+TD+TE+TS
诺依曼体系结构的特点:
●数据与指令都存储在存储器中
●存储器采用统一编址
●被大多数计算机所采用
●ARM7——冯诺依曼体系结构
2、哈佛体系结构
在一些输入/输出特别繁忙。
而且输入/输出数据量特别大的系统中,冯·
诺依曼体系结构却成了问题,虽然DMA是一种提高输入/输出效率的有效方法,但是,对于一个统一的存储器,采用了流水线技术,使得CPU和DMA对内存的访问互相排斥,所以CPU在整个DMA期间既不能访问内存中的数据,也不能从内存中取指令。
这种导致CPU停下来问题称之为“冯·
诺依曼体系结构瓶颈”。
于是,在嵌入式系统中,采用了将程序和数据分别存放在两个独立存储器、两套总线的体系结构,称之为哈佛体系结构(HarvardArchitecture)。
在哈佛结构中,即使数据总线(数据内存)被占用,CPU也能继续从程序存储器中取指令并加以执行,这样就在CPU的操作与外设的DMA操作之间引入了某种并行度,从而可以提高系统的效率。
图2.2哈佛体系结构存储体系结构模型
哈佛体系结构的特点:
●程序存储器与数据存储器分开
●提供了较大的数据存储器带宽
●适合于数字信号处理
●大多数DSP都是哈佛结构
●ARM9是哈佛结构
实际上是内部数据总线分为数据总线和指令总线
2.2ARM系列处理器
市场主流嵌入式处理器上有ARM系列,Powerpc系列,MIPS(无内部互锁流水级的微处理器,Microprocessorwithoutinterlockedpipedstages)系列等。
下面主要介绍ARM系列处理器及其特点。
内容主要包括:
ARM技术的应用领域及特点,ARM微处理器系列,ARM微处理器的工作状态,ARM处理器模式,ARM微处理器的存储器格式,ARM处理器寄存器组织,异常(Exceptions)。
2.2.1ARM技术的应用领域及特点
1、ARM-AdvancedRISCMachines
ARM是英国先进RISC机器公司(AdvancedRISCMachinesARM)的缩写。
ARM(AdvancedRISCMachines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。
1991年ARM公司成立于英国剑桥,主要出售芯片设计技术(IP核)的授权。
世界各大半导体生产商从ARM公司购买其设计的ARM微处理器IP核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。
(如三星3C44B0X,3C4510,3C2410;
台湾Cirrus_EP73XX和EP93XX系列等)。
基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面。
我国的中兴集成电路、大唐电讯、中芯国际和上海华虹,以及国外的一些公司如德州仪器、意法半导体、Philips、Intel、Samsung、ATMEL等都推出了自己设计的基于ARM核的处理器。
2、ARM微处理器的应用领域
到目前为止,ARM微处理器及技术的应用已经广泛深入到国民经济的各个领域以及工业控制领域:
作为32位的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展,ARM微控制器的低功耗、高性价比,向传统的8位/16位微控制器提出了挑战。
网络应用:
随着宽带技术的推广,采用ARM技术的ADSL(AsymmetricalDigitalSubscriberLine)即非对称数字用户线路芯片正逐步获得竞争优势。
此外,ARM在语音及视频处理上进行了优化,并获得广泛支持,也对DSP的应用领域提出了挑战。
消费类电子产品:
ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛采用。
成像和安全产品:
现在流行的数码相机和打印机中绝大部分采用ARM技术。
手机中的32位SIM(SubscriberIdentityModule)智能卡也采用了ARM技术。
3、ARM微处理器的特点
●低功耗、低成本、高性能
ARM7:
在74MHz时典型功耗90mW
在90MHz时典型功耗108mW
在待机状态时功耗小于0.3mW
●采用RISC体系结构
采用RISC架构的ARM处理器一般具有如下特点:
固定长度的指令格式,指令归整、简单、基本寻址方式有2~3种;
使用单周期指令,便于流水线操作执行;
大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率。
ARM处理器共有37个寄存器,被分为若干个组,这些寄存器包括:
31个通用寄存器,包括程序计数器(PC指针),均为32位的寄存器;
6个状态寄存器,用以保存CPU的工作状态及程序的运行状态,均为32位。
●高效的指令系统
ARM微处理器支持两种指令集:
ARM指令集和Thumb指令集。
ARM指令为32位的长度,Thumb指令为16位长度。
Thumb指令集为ARM指令集的功能子集,但与等价的ARM代码相比较,可节省30%~40%以上的存储空间,同时具备32位代码的所有优点。
可用加载/存储指令批量传输数据,以提高数据的传输效率。
可在一条数据处理指令中同时完成逻辑处理和移位处理。
在循环处理中使用地址的自动增减来提高运行效率。
●其他技术
三/五/六级流水线
除此以外,ARM体系结构还采用了一些特别的技术,在保证高性能的前提下尽量缩小芯片的面积,并降低功耗:
所有的指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率。
2.2.2ARM微处理器系列
ARM处理器体系结构的版本:
有V1、V2、V3、V4、V5、V6、V7版本,其中V1、V2、V3、V4已被淘汰,目前常用的体系结构版本V5、V6和V7。
版本的基本特点:
……
系列内核命名规则:
补充
ARM微处理器系列有ARM7、ARM9、ARM10、ARM11、ARM_Cortex、SecurCore、
Intel的Xscale等系列。
其中,ARM7、ARM9、ARM9E和ARM10为4个通用处理器系列,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。
SecurCore系列专门为安全要求较高的应用而设计。
1、ARM7系列微处理器
ARM7系列是为低功耗的32位RISC处理器,最适合用于对价位和功耗要求较高的消费类应用。
(1)ARM7系列有如下特点:
具有嵌入式ICE-RT(In-CircuitEmulator-RealTime)逻辑,方便于开发调试;
极低的功耗,适合对功耗要求较高的应用,如便携式产品;
能够提供0.9MIPS/MHz的三级流水线结构;
代码密度高,并兼容16位的Thumb指令集;
对操作系统的支持广泛,如WindowsCE、Linux、PalmOS等;
指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容,便于用户的产品升级换代;
主频最高可达130M,高速的运算处理能力能胜任绝大多数的复杂应用。
(2)主要应用领域:
工业控制、Internet设备、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用。
ARM7系列微处理器包括如下几种类型的核:
ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。
其中,ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器,属低端ARM处理器核。
TDMI的基本含义为:
T:
支持16位压缩指令集Thumb;
D:
含有JTAG调试器,支持片上Debug(ICD);
M:
内嵌硬件乘法器(Multiplier),提供长乘法指令,产生64位结果
I:
内嵌在线仿真ICE(InCircuitEmulation),支持片上断点和调试点;
2、ARM9系列微处理器(V4T)
ARM9系列微处理器在高性能和低功耗特性方面提供最佳的表现。
具有以下特点:
5级整数流水线,指令执行效率更高。
提供1.1MIPS/MHz的哈佛结构。
支持32位ARM指令集和16位Thumb指令集。
支持32位的高速AMBA(AdvancedMicrocontrollerBusArchitecture)总线接口。
全性能的MMU,支持WindowsCE、Linux、PalmOS等多种主流嵌入式操作系统。
MPU支持实时操作系统。
支持数据Cache和指令Cache,具有更高的指令和数据处理能力。
ARM9系列微处理器主要应用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数字照相机和数字摄像机等。
ARM9系列微处理器包含ARM920T、ARM922T和ARM940T三种类型,以适用于不同的应用场合。
3、ARM9E微处理器系列(V5TE)
ARM9E系列微处理器的主要特点如下:
支持DSP指令集,适合于需要高速数字信号处理的场合。
支持32位的高速AMBA总线接口。
支持VFP9浮点处理协处理器。
全性能的MMU,支持众多主流嵌入式操作系统。
支持数据Cache和指令Cache,具有更高的处理能力。
主频最高可达300M。
ARM9E系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网络设备等领域。
ARM9E系列微处理器包含ARM926EJ-S、ARM946E-S和ARM966E-S三种类型,以适用于不同的应用场合。
4、ARM10E系列微处理器(V5TE)
ARM10E系列微处理器的主要特点如下:
6级整数流水线,指令执行效率更高。
支持VFP10浮点处理协处理器。
支持数据Cache和指令Cache,具有更高的处理能力
主频最高可达400M。
内嵌并行读/写操作部件。
ARM10E系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、通信和信息系统等领域。
ARM10E系列微处理器包含ARM1020E、ARM1022E和ARM1026EJ-S三种类型,以适用于不同的应用场合。
5、SecurCore微处理器系列
SecurCore系列微处理器除了具有ARM体系结构各种主要特点外,还在系统安全方面具有如下的特点:
带有灵活的保护单元,确保操作系统和应用数据的安全。
采用软内核技术,防止外部对其进行扫描探测。
可集成用户自己的安全特性和其他协处理器。
SecurCore系列微处理器主要应用于一些对安全性要求较高的应用产品及应用系统,如电子商务、电子政务、电子银行业务、网络和认证系统等领域。
SecurCore系列微处理器包含SecurCoreSC100、SecurCoreSC110、SecurCoreSC200和SecurCoreSC210四种类型,以适用于不同的应用场合。
6、StrongARM系列微处理器(V4)
IntelStrongARM系列处理器是采用ARM体系结构高度集成的32位RISC微处理器。
它融合了Intel公司的设计和处理技术以及ARM体系结构的电源效率,采用在软件上兼容ARMv4体系结构、同时采用具有Intel技术优点的体系结构。
IntelStrongARM处理器是便携式通讯产品和消费类电子产品的理想选择,已成功应用于多家公司的掌上电脑系列产品。
SA-1100、SA-1110、SA-1111、SA-1112处理器,主频达到206MHz。
7、Xscale处理器
IntelXscale系列处理器是基于ARMv5TE体系结构的解决方案,是一款全性能、高性价比、低功耗的处理器。
它支持16位的Thumb指令和DSP指令集,已使用在数字移动电话、个人数字助理和网络产品等场合。
XscalePXA250、XscalePXA260、XscalePXA270处理器是Intel目前主要推广的ARM微处理器,主频达600MHz。
8、ARM11系列微处理器(V6)
9、ARM_Cortex处理器(V7)
2.3ARM微处理器编程模型
编程模型是指ARM处理器使用者从编制引导程序、系统初始化及配置程序的角度所看到的处理器的内部结构。
2.3.1ARM微处理器的工作状态
从编程的角度看,ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:
ARM状态,此时处理器执行32位的字对齐的ARM指令;
Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。
1、ARM与Thumb指令
Thumb是ARM体系结构的扩展,Thumb指令是ARM指令的子集,其代码密度高
Thumb指令与ARM指令可以相互调用,只要遵循一定的调用规则(ATPCS)。
Thumb指令与ARM指令的时间效率和空间效率比较如下:
Thumb代码占用存储空间约为ARM代码的60%~70%
Thumb代码指令数比ARM代码多约30%~40%
在存储器为32位时,ARM代码比Thumb代码快约40%
在存储器为16位时,Thumb比ARM代码快约40~50%
使用Thumb代码,存储器的功耗会降低约30%
2、工作状态切换方法
ARM指令集和Thumb指令集中均有切换处理器工作状态的指令(BX),并可在两种工作状态之间相互切换。
ARM处理器在初始化(开始)执行代码时,应该处于ARM状态。
(1)进入Thumb状态
对于“BXRm”指令,当操作数寄存器的状态位即Rm[0]为1时,可以采用执行“BXRm”指令的方法,使微处理器从ARM状态切换到Thumb状态(执行该指令能够将Rm[0]位传送给CPSR[T]位)。
例如:
BXRm指令的Rm[0]值为1,执行其实现ARM处理器从ARM状态切换到Thumb状态(即使得CPSR[T]位置1)。
当处理器处于Thumb状态时发生异常(如IRQ、FIQ、Undef、Abort、SWI等),则异常处理返回时,自动切换到Thumb状态。
(2)切换到ARM状态
对于“BXRm”指令,当操作数寄存器的状态位即Rm[0]为0时,执行“BXRm”指令时可以使ARM微处理器从Thumb状态切换到ARM状态。
BXRm指令的Rm的位[0]值为0,执行其实现ARM处理器从Thumb状态切换到ARM状态(即使得CPSR[T]位置0)。
在处理器进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。
2.3.2ARM处理器运行模式
ARM微处理器支持7种运行模式,由ARM处理器中的CPSR(当前程序状态寄存器)的低5位CPSR[4:
0]定义的,7种运行模式分别为:
用户模式User(usr):
ARM处理器正常的程序执行模式
系统模式System(sys):
运行具有特权的操作系统任务
快速中断模式(fiq):
用于高速数据传输或通道处理
管理模式Supervisor(svc):
操作系统使用的保护模式,处理软件中断(SWI)
外部中断模式(irq):
用于通用的中断处理
数据访问中止模式Abort(abt):
用于虚拟存储及存储保护
未定义指令中止模式Undfined(und):
当出现未定义指令执行(中止)时进入该模式,可用于支持硬件协处理器的软件仿真。
ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。
1、用户模式(usr)和特权模式
用户模式:
大多数的用户程序运行在用户模式下,此时,应用程序不能够访问一些受操作系统保护的系统资源,应用程序也不能直接进行处理器模式的切换。
用户模式下,当需要进行处理器模式切换时,应用程序可以产生异常,在异常处理过程中进行处理器模式的切换。
特权模式:
除了用户模式之外的其他6种处理器模式称为特权模式。
特权模式下,程序可以访问所有的系统资源,也可以任意地进行处理器模式的切换。
改变处理器工作模式的方法是用指令将特定的位序列写入到CPSR的M[4:
0]字段。
特权模式中,除系统模式(sys)外,其他5种模式又称为异常模式。
2、运行模式切换
ARM处理器运行模式可以通过软件进行切换,也可以通过外部中断或者异常处理过程进行切换。
用户模式下模式切换是当应用程序发生异常中断时,处理器进入相应的异常模式。
此时,处理器自动改变CPSR的工作模式标志字段M[4:
0]的值。
在每一种异常模式下都有一组寄存器,供相应的异常处理程序使用,这样就可以保证在进入异常模式时,用户模式下的寄存器内容不被破坏。
系统模式(sys)并不是通过异常进入的,它和用户模式具有完全一样的寄存器。
但是系统模式属于特权模式,可以访问所有的系统资源,也可以直接进行处理器模式切换。
它主要供操作系统任务使用。
通常操作系统的任务需要访问所有的系统资