信庭嵌入式工作室-ARM应用技术之体系结构应用(上)

来源:互联网 发布:papi酱视频 软件 编辑:程序博客网 时间:2024/04/30 08:20

    ARM应用技术是抛去操作系统,面向ARM自身的应用技术,总的来讲可以分为三部分:ARM体系结构应用、ARM最小系统应用和ARM外设(外围接口)应用。ARM体系结构应用包含比较多的模块,下面逐个解析。

    ARM体系结构-CPU核应用,CPU核主要用来执行程序,换句话说所有程序的指令都是在CPU核运行,CPU核最重要的指标是MIPS数,MIPS数和CPU核主频、流水线和MAC等有关系。CPU核主频越高的CPU核并不意味着它的MIPS数越高。有些CPU核跑220MHz并不比另外的跑200MHz的CPU核执行程序快,可能是后者采用的流水线比前者多;如果是执行的复杂数学运算的速度快,也有可能后者使用的MAC单元比前者多。所以专业来将用于衡量程序执行效率用CPU核MIPS数替代CPU核主频衡量模式会比较精确。同样在选者ARM时CPU核MIPS数是一项重要的指标。

    ARM体系结构-AMBA总线应用,CPU核对DDR(SDRAM)、FLASH和其它外围接口的操作是通过AMBA总线来实现的,可以说ARM地址空间的操作都需要通过AMBA总线来进行,包括ARM自身的寄存器,AMBA总线就像桥梁,连接着“天南地北”。除了最重要的桥接功能,AMBA总线对程序执行效率也有影响,曾经我做过一个实验,把总线的速度由54MHz提升到108MHz,程序的执行效率提升20%;把CPU核的频率由108MHz提高到216MHz(保持54MHz的总线速率),程序的执行效率只提升了10%。所以总线对程序执行效率有影响。通常CPU核主频的和总线的良好匹配是重要的总线选择指标。一个低主频(如108Hz)CPU核和一个高速(500MHz)的总线,或者一个主频(如500MHz)CPU核和一个低速(108MHz)的总线都不是良好的匹配。如果你对PC比较熟,你可以这样理解,若显卡(GPU)使用系统内存(DDR),显卡图形图象处理速度相对就较慢,若显卡(GPU)使用自有扩展的内存(GDDR),显卡图形图象处理速度相对就较快。

    ARM体系结构-高速缓存(Cache)应用,高速缓存是ARM内部的存储单元,是高速的SRAM。可分为D-Cache和I-Cache两种,D-Cache是数据高速缓存,就是把CPU常用到的数据或者最近常用到的数据存放到D-Cache中,当需要的时候从D-Cache取数而不是从内存(DDR)SDRAM取数,从而加快了数据操作的速度;I-Cache是指令高速缓存,就是CPU常执行的程序块或者最近常执行的程序块存放到I-Cache中,当执行到本程序块时,从I-Cache中获取程序指令,而不是从内存(DDR)SDRAM或者FLASH中获取程序指令,通过Cache可以提高程序执行的效率,但有时候也有负作用,如内存(DDR)SDRAM中视频缓冲区的数据有更改,而通过Framebuffer刷到LCD显示频上的部分数据却从D-Cache获取的旧数据,这是LCD显示的图象看起来有杂点,这就需要做Flush Cache处理

    ARM体系结构-中断应用,中断是ARM内部体系的结构的重要部分,中断分为快速中断(FIQ)和通用中断(IRQ),FIQ原理上是一有中断触发就执行中断程序,IRQ有优先级,就是说如过一个中断触发了,有更高优先级的中断也触发了,那么这个中断就需要等待高优先级的中断处理过后才能处理。所以为了避免中断等待时间过长,编写的中断处理程序尽量简单(不要有复杂处理),这种要求是由IRQ中断的优先级属性决定的。中断是打断CPU‘常规执行程序’跳转到‘中断执行程序’的处理过程,所以中断程序和常规执行程序比较而言有更高的优先级,这种属性可以用于慢速接口(读写)和快速接口处理(读写)匹配,如串口收数据时,应用程序启动接收的最长等待(最坏)时间比较长,而这个时间间隔串口又接收到了大量的数据,以至于串口数据缓冲区(FIFO)已满,这时就可能有数据丢失,如何解决,就需要使用中断,在中断中接收数据到大的软件缓冲区中。IRQ中断主要为解决接口数据丢失的问题而发明的。

        (作者 冯青华 信庭嵌入式工作室-主管 Blog:http://blog.csdn.net/fqheda )

                                <转载请注名来路>

1 0
原创粉丝点击