几个关于嵌入式芯片的硬件系统

  ARM 体系结构的共同特点以外,每一个系列的 ARM 微处理器都有各自的特点和应用领域。 
- ARM7 系列 
- ARM9 系列 
- ARM9E 系列 
- ARM10E 系列 
- ARM11系列
- Cortex 系列
- SecurCore 系列
- OptimoDE Data Engines
- Xcale
其中,ARM7、ARM9、ARM9E 和 ARM10 为4 个通用处理器系列,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。SecurCore 系列专门为安全要求较高的应用而设计。

  目前ARM的内核:

ARM7系列 
ARM7 系列微处理器为低功耗的 32位 RISC 处理器, 最适合用于对价位和功耗要求较高的消费
类应用。ARM7 微处理器系列具有如下特点: 
-  具有嵌入式 ICE-RT 逻辑,调试开发方便。 
-  极低的功耗,适合对功耗要求较高的应用,如便携式产品。 
-  能够提供 0.9MIPS/MHz 的三级流水线结构。 
  -  代码密度高并兼容 16 位的 Thumb 指令集。 
  -  对操作系统的支持广泛,包括 Windows CE、Linux、Palm OS 等。 
-  指令系统与 ARM9 系列、ARM9E 系列和 ARM10E 系列兼容,便于用户的产品升级换代。  
  -  主频最高可达 130MIPS,高速的运算处理能力能胜任绝大多数的复杂应用。 
ARM7 系列微处理器的主要应用领域为:工业控制、Internet 设备、网络和调制解调器设备、移
动电话等多种多媒体和嵌入式应用。 
ARM7 系列微处理器包括如下几种类型的核:ARM7TDMI、ARM7TDMI-S、 
ARM720T、ARM7EJ。其中,ARM7TMDI是目前使用最广泛的 32 位嵌入式 RISC 处理器,属低端
ARM 处理器核。TDMI的基本含义为: 
T: 支持 16 为压缩指令集 Thumb; 
D: 支持片上 Debug; ARM应用系统开发详解──基于S3C4510B的系统设计  3
M:内嵌硬件乘法器(Multiplier) 
I:  嵌入式 ICE,支持片上断点和调试点; 
Samsung公司的 S3C4510B 即属于该系列的处理器。

  CORTEX-M0+、CORTEX-M0内核芯片,主频低,主要面向代替8位单片机编程的低端产品,比如家电、小家电等 CORTEX-M3内核芯片,主频约50-120MHz左右,性价比高,适合不需要大型操作系统的产品设计,比如电机控制、音频处理、工业控制等。 CORTEX-M4内核的芯片,主频约80-180MHz左右,比M3内核多了DSP浮点处理能力,Cortex-M4内核芯片的DSP性能比16位DSP芯片要好,但不及32位DSP芯片。Cortex-M4微控制器的目标应用包括复杂的电机控制、汽车电子、嵌入式音频以及工业自动化。

  ARM9内核的芯片,主频约140-500MHz,支持运行linux、wince操作系统,支持一定的图形界面处理,适合网络传输、视频处理、工业控制等产品的设计

ARM9E系列 
ARM9E 系列微处理器为可综合处理器,使用单一的处理器内核提供了微控制器、DSP、Java
应用系统的解决方案,极大的减少了芯片的面积和系统的复杂程度。ARM9E 系列微处理器提供了
增强的 DSP 处理能力,很适合于那些需要同时使用 DSP 和微控制器的应用场合。 
ARM9E 系列微处理器的主要特点如下: 
-  支持 DSP 指令集,适合于需要高速数字信号处理的场合。 
- 5 级整数流水线,指令执行效率更高。 
-  支持 32 位 ARM 指令集和 16 位 Thumb 指令集。 
-  支持 32 位的高速 AMBA总线接口。 
-  支持 VFP9 浮点处理协处理器。 
-  全性能的 MMU,支持 Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。 
- MPU支持实时操作系统。 
-  支持数据 Cache 和指令Cache,具有更高的指令和数据处理能力。 
-  主频最高可达 300MIPS。

ARM9 系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网络设备等领域。 
ARM9E 系列微处理器包含 ARM926EJ-S、ARM946E-S 和 ARM966E-S 三种类型,以适用于不同的应用场合。

Cortex系列
新的ARM Cortex处理器系列包括了ARMv7架构的所有系列,含有面向复杂操作系统、实时的和微控制器应用的多种处理器。ARM Cortex-A系列是针对日益增长的,运行包括Linux、Windows CE和Symbian在内的操作系统的消费者娱乐和无线产品设计的;ARM Cortex-R系列针对的是需要运行实时操作系统来进行控制应用的系统,包括有汽车电子、网络和影像系统;ARM Cortex-M系列则是为那些对开发费用非常敏感同时对性能要求不断增加的嵌入式应用所设计的
ARM Cortex-M系列支持Thumb-2指令集,它是Thumb指令集的扩展集,可以执行所有已存的为早期的处理器编写的代码。通过一个前向的转换方式,为ARM Cortex-M系列处理器所写的用户代码可以与ARM Cortex-R系列微处理器完全兼容。ARM Cortex-M系列系统代码(例如实时操作系统)可以很容易地移植到基于ARM Cortex-R系列的系统。ARM Cortex-A和-R系列处理器还支持ARM 32位指令集,向后完全兼容早期的ARM处理器,包括从1995年发布的ARM7TDMI处理器到最近的ARM11处理器系列。
在命名方式上,基于ARMv7架构的ARM处理器已经不再延用过去的数字命名方式,而是冠以Cortex的代号。基于v7A的称为"Cortex-A系列",基于v7R的称为"Cortex-R系列",基于v7M的称为"Cortex-M3"。
Cortex-M系列处理器主要包含ARM Cortex-M1, ARM Cortex-M3两款处理器。 Cortex-R系列处理器目前包括ARM Cortex-R4和ARM Cortex-R4F两个型号,主要适用于实时系统的嵌入式处理器。
Cortex-A系列处理器目前包括ARM Cortex-A8, ARM Cortex-A9-MPCore, ARM Cortex-A9-Single Core Processor。

CORTEX-A5内核的芯片,主频约500MHz-800MHz,8级整数流水线,低功耗,可以运行linux、android、wince嵌入式操作系统。CORTEX-A5双核的性能相当于CORTEX-A7单核的性能,主要面向入门级智能手机、低成本智能移动终端、工业设备等。

CORTEX-A7内核的芯片,支持多核,支持图形处理,主频约800MHzHz-1.2GHz ,13级整数流水线,可以运行linux、android、wince嵌入式操作系统,低功耗,主要面向智能手机等对功耗要求苛刻的产品

CORTEX-A8内核的芯片,单核,主频约600MHzHz-1GHz ,13级整数流水线,可以运行linux、android、wince嵌入式操作系统,主要面向电力系统、数控行业、汽车电子、机器人视觉、媒体处理无线应用、数字家电、车载设备、通信设备、网络终端等产品

CORTEX-A9内核的芯片,有单核、双核、四核,支持图形处理,主频约1GHz-2GHz ,8级整数流水线,可以运行linux、android、wince嵌入式操作系统,CORTEX-A9双核的性能相当于CORTEX-A7四核的性能,主要面向智能手机、上网本、电子阅读器,数字电视、高清播放机等产品

CORTEX-A15内核的芯片,支持多核,支持图形处理,主频约1.5GHz-2.5GHz ,可以运行linux、android、wince嵌入式操作系统,主要面向智能手机、平板电脑、移动计算、高端数字家电、服务器等产品

  MMU是Memory Management Unit的缩写,中文名是内存管理单元,它是*处理器(CPU)中用来管理虚拟存储器、物理存储器的控制线路,同时也负责虚拟地址映射为物理地址,以及提供硬件机制的内存访问授权,多用户多进程操作系统。

  多年以来,微处理器一直带有片上存储器管理单元(MMU),MMU能使单个软件线程工作于硬件保护地址空间。但是在许多商用实时操作系统中,即使系统中含有这些硬件也没采用MMU。

  当应用程序的所有线程共享同一存储器空间时,任何一个线程将有意或无意地破坏其它线程的代码、数据或堆栈。异常线程甚至可能破坏内核代码或内部数据结构。例如线程中的指针错误就能轻易使整个系统崩溃,或至少导致系统工作异常。

  就安全性和可靠性而言,基于进程的实时操作系统(RTOS)的性能更为优越。为生成具有单独地址空间的进程,RTOS只需要生成一些基于RAM的数据结构并使MMU加强对这些数据结构的保护。基本思路是在每个关联转换中“接入”一组新的逻辑地址。MMU利用当前映射,将在指令调用或数据读写过程中使用的逻辑地址映射为存储器物理地址。MMU还标记对非法逻辑地址进行的访问,这些非法逻辑地址并没有映射到任何物理地址。

  这些进程虽然增加了利用查询表访问存储器所固有的系统开销,但其实现的效益很高。在进程边界处,疏忽或错误操作将不会出现,用户接口线程中的缺陷并不会导致其它更关键线程的代码或数据遭到破坏。目前在可靠性和安全性要求很高的复杂嵌入式系统中,仍然存在采无存储器保护的操作系统的情况,这实在有些不可思议。

  采用MMU还有利于选择性地将页面映射或解映射到逻辑地址空间。物理存储器页面映射至逻辑空间,以保持当前进程的代码,其余页面则用于数据映射。类似地,物理存储器页面通过映射可保持进程的线程堆栈。RTOS可以在每个线程堆栈解映射之后,很容易地保留逻辑地址所对应的页面内容。这样,如果任何线程分配的堆栈发生溢出,将产生硬件存储器保护故障,内核将挂起该线程,而不使其破坏位于该地址空间中的其它重要存储器区,如另一线程堆栈。这不仅在线程之间,还在同一地址空间之间增加了存储器保护。

  存储器保护(包括这类堆栈溢出检测)在应用程序开发中通常非常有效。采用了存储器保护,程序错误将产生异常并能被立即检测,它由源代码进行跟踪。如果没有存储器保护,程序错误将导致一些细微的难以跟踪的故障。实际上,由于在扁平存储器模型中,RAM通常位于物理地址的零页面,因此甚至NULL指针引用的解除都无法检测到。