首页 百科知识 微处理器的应用选型

微处理器的应用选型

时间:2023-10-27 百科知识 版权反馈
【摘要】:鉴于ARM微处理器的众多优点,随着国内外嵌入式应用领域的逐步发展,ARM微处理器必然会获得广泛的重视和应用.但是,由于ARM微处理器有多达十几种的内核结构,几十个芯片生产厂家,以及千变万化的内部功能配置组合,给开发人员在选择方案时带来了一定的困难,所以,对ARM芯片做一些对比研究是十分必要的.以下从应用的角度出发,对在选择ARM微处理器时所应考虑的主要问题做一些简要的探讨.从前面所介绍的内容可知,

2.5 ARM微处理器的应用选型

2.5.1 ARM选型原则

鉴于ARM微处理器的众多优点,随着国内外嵌入式应用领域的逐步发展,ARM微处理器必然会获得广泛的重视和应用.但是,由于ARM微处理器有多达十几种的内核结构,几十个芯片生产厂家,以及千变万化的内部功能配置组合,给开发人员在选择方案时带来了一定的困难,所以,对ARM芯片做一些对比研究是十分必要的.以下从应用的角度出发,对在选择ARM微处理器时所应考虑的主要问题做一些简要的探讨.

(1)ARM微处理器内核的选择.

从前面所介绍的内容可知,ARM微处理器包含一系列的内核结构,以适应不同的应用领域,用户如果希望使用Windows CE或标准Linux等操作系统以减少软件开发时间,就需要选择ARM720T以上带有MMU(Memory Management Unit)功能的ARM芯片,ARM720T、ARM920T、ARM922T、ARM946T、Strong-ARM都带有MMU功能.

本书所讨论的S3C2410基于ARM920T内核,它带有MMU,因此支持Windows CE和标准Linux,并且在稳定性和其他方面也都有上佳表现.

(2)系统的工作频率.

系统的工作频率在很大程度上决定了ARM微处理器的处理能力.ARM7系列微处理器的典型处理速度为0.9MIPS/MHz,ARM9系列微处理器的典型处理速度为1.1MIPS/MHz,常见的ARM9的系统主时钟频率为100MHz-233MHz,ARM10最高可以达到700 MHz.不同芯片对时钟的处理不同,有的芯片只需要一个主时钟频率,有的芯片内部时钟控制器可以分别为ARM核和USB、UART、DSP、音频等功能部件提供不同频率的时钟.

本书所讨论的S3C2410时钟频率为200MHz以上,若更换成S3C2440时钟频率最高可达到500MHz.

(3)芯片内存储器的容量.

大多数的ARM微处理器片内存储器的容量都不太大,需要用户在设计系统时外扩存储器,但也有部分芯片具有相对较大的片内存储空间,如ATMEL的AT91F40162就具有高达2MB的片内程序存储空间,用户在设计时可考虑选用这种类型,以简化系统的设计.

(4)芯片内外围电路的选择.

除ARM微处理器核以外,几乎所有的ARM芯片均根据各自不同的应用领域,扩展了相关功能模块,并集成在芯片之中,我们称之为片内外围电路,如USB接口、IIS接口、LCD控制器、键盘接口、RTC、ADC和DAC、DSP协处理器等,设计者应分析系统的需求,尽可能采用片内外围电路完成所需的功能,这样既可简化系统的设计,又能提高系统的可靠性.

2.5.2 ARM920T

Samsung公司推出的16/32位RISC处理器S3C2410A,为手持设备和一般类型应用提供了低价格、低功耗、高性能小型微控制器的解决方案.为了降低整个系统的成本,S3C2410A提供了以下丰富的内部设备:分开的16KB的指令Cache和16KB数据Cache,MMU虚拟存储器管理,LCD控制器(支持STN&TFT),支持NAND Flash系统引导,系统管理器(片选逻辑和SDRAM控制器),3通道UART,4通道DMA,4通道PWM定时器,I/O端口,RTC,8通道10位ADC和触摸屏接口,IIC-BUS接口,IIC-BUS接口,USB主机,USB设备,SD主卡&MMC卡接口,2通道的SPI以及内部PLL时钟倍频器.S3C2410A采用了ARM920T内核,0.18μm工艺的CMOS标准宏单元和存储器单元.它的低功耗、精简和出色的全静态设计特别适用于对成本和功耗敏感的应用.同样它还采用了一种叫做Advanced Microcontroller Bus Architecture(AMBA)新型总线结构.S3C2410A的显著特性是它的CPU核心,是一个由Advanced RISC Machines(ARM)有限公司设计的16/32位ARM920TRISC处理器.ARM920T实现了MMU,AMBA BUS和Harvard高速缓冲体系结构.这一结构具有独立的16KB指令Cache和16KB数据Cache,每个都是由8字长的行(line)构成.通过提供一系列完整的系统外围设备,S3C2410A大大减少了整个系统的成本,消除了为系统配置额外器件的需要.

ARM920T是基于ARM9TDMI内核的处理器宏核,其内部结构图如图2-4所示.它的核心是ARM9TDMI,此外包括存储器管理部件MMU、双重分离的Cache(指令Cache+数据Cache)、写回RAM、AMBA总线接口、外部协处理器接口以及跟踪调试接口等.

img28

图2-4 ARM9TDMI内部结构图

与ARM7TDMI不同的是,ARM9TDMI采用的是哈佛结构(指令存储和数据存储分开的存储器结构,可以使指令和数据有不同的数据宽度,如Microchip公司的PIC16芯片的程序指令是14位宽度,而数据是8位宽度),指令执行过程为五级流水线方式(取址、译码、执行、数据存储器/数据cache访问和寄存器回写),而ARM7TDMI则是采用冯·诺伊曼结构(指令存储器和数据存储器合并在一起的存储器结构,其指令和数据的宽度相同,如Intel的8086中央处理器的程序指令和数据都是16位宽),指令执行过程为三级流水线方式(取指、译码和执行).两种内核的指令执行流水线对照图如图2-5所示.其中ARM9TDMI的第四步,数据存储器访问操作主要作用是更新数据cache中的数据,实际上是对数据cache的访问.

可以看到ARM9从ARM7的3级流水线增加到了5级,ARM9的流水线中容纳了更多的逻辑操作,但是每一级的逻辑操作却变得更为简单.比如原来ARM7的第三级流水,需要先内部读取寄存器、然后进行相关的逻辑和算术运算,接着处理结果回写,完成的动作非常复杂;而在ARM9的5级流水线中,寄存器读取、逻辑运算、结果回写分散在不同的流水当中,使得每一级流水处理的动作非常简洁,这就使得处理器的主频可以大幅度地提高.因为每一级流水都对应CPU的一个时钟周期,如果一级流水中的逻辑过于复杂,使得执行时间居高不下,必然导致所需的时钟周期变长,造成CPU的主频不能提升.所以流水线的拉长,有利于CPU主频的提高.在常用的芯片生产工艺下,ARM7一般运行在100MHz左右,而ARM9则至少在200MHz以上.同时,由于采用哈佛结构,指令和数据存储器是分开的,冲突的发生也减少了.图2-6是ARM9五级流水线的运行情况.由于MOV指令不需要访问数据存储器,所以其流水线中访存步骤为空.

img29

图2-5 ARM7TDMI与ARM9TDMI流水线比较

img30

图2-6 ARM9五级流水线

注:程序计数器(PC)指向被取指的指令,而不是指向正在执行的指令.在正常操作过程中,在将上上条指令的执行结果写入寄存器的同时,需要对上条指令中指定的数据存储器地址进行访问(如果该条指令需要访问数据存储器),同时执行一条已译码的指令,并对下一条指令进行译码,同时将第三条指令从存储器中取出.

五级流水线存在一种互锁的情况,即寄存器冲突.读寄存器是在译码阶段,写寄存器是在回写阶段.如果当前指令(A)的目的操作数寄存器和下一条指令(B)的源操作数寄存器一致,B指令就需要等A回写之后才能译码.这就是五级流水线中的寄存器冲突.如图2-7所示,LDR指令写R9是在回写阶段,而MOV中需要用到的R9正是LDR在回写阶段将会重新写入的寄存器值,MOV译码需要等待,直到LDR指令的寄存器回写操作完成.(注:现在处理器设计中,可以通过寄存器旁路技术对流水线进行优化,解决流水线的寄存器冲突问题.)

img31

图2-7 ARM9五级流水线互锁

虽然流水线互锁会增加代码执行时间,但是为初期的设计者提供了巨大的方便,可以不必考虑使用的寄存器会不会造成冲突;而且编译器以及汇编程序员可以通过重新设计代码的顺序或者其他方法来减少互锁的数量.

思考与练习

1.基础知识

(1)ARM微处理器采用什么架构?具有什么特点?

(2)ARM微处理器目前包括哪几个系列?各有什么特点?

(3)ARM体系结构共定义了几个版本?各有什么功能?

(4)RISC体系结构的特点是什么?

(5)ARM体系结构包含几个CPSR和SPSR?并指出各自的功能.

(6)ARM体系结构所支持的异常类型有哪些?并指出其具体含义.

(7)描述出ARM体系结构中对异常的响应过程?

2.比较题

试比较ARM7和ARM9的区别.重点阐述ARM7与ARM9的指令流水线的不同之处.

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈