购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 ARM微处理器体系结构概述

ARM有 3 种含义:它是一家公司的名称,也是一类微处理器的通称,是一种技术的名称。ARM是微处理器行业的一家知名企业,是知识产权供应商,设计基于ARM体系的采用RISC指令集的微处理器,ARM公司并不生产芯片,也不出售芯片,而是设计ARM的IP核,提供半导体厂商生产所需的技术服务并销售。

ARM的版本主要分为两类:一类是处理器版本;另一类是内核版本。内核版本为ARM架构,如ARMv1,ARMv2,ARMv3,ARMv4,ARMv5,ARMv6,ARMv7,ARMv8 等。处理器版本即ARM处理器,如ARM1,ARM7,ARM11,Cortex-A8,Cortex-A53,Cortex-A57,Cortex-M3/M4,Cortex-R。

ARM公司把ARM11 之后的ARM处理器以ARM Cortex为特征命名,主要包括ARM Cortex-M,ARM Cortex-R,ARM Cortex-A系列。

①ARM Cortex-M系列主要面向通用低端、工业、消费电子领域,偏向于控制方面。ARM Cortex-M微处理器通常设计成面积很小,能效比很高。另外,这些处理器的流水线很短,最高时钟频率很低(市场上有此类的处理器可以运行在 200 MHz之上)。ARM Cortex-M处理器家族设计得非常容易使用。

②ARM Cortex-A系列,主要面向应用的高端主控制器,在人机互动要求较高的场合,如智能手机、平板电脑等。ARM Cortex-A系列诸如S5PV210 和ARM11 等都是可以运行嵌入式操作系统,如Android,Linux等。

③ARM Cortex-R系列,实时高性能处理器,主要应用在对实时性要求较高的场合,如硬盘控制器、监控产品、车载控制产品等。表2.2 列出了ARM微处理器各个系列内核的结构版本。

表2.2 ARM微处理器版本以及体系结构

从表2.2 可以看出,ARM Cortex-M系列属于ARMv7 架构,ARMv7 架构是在ARMv6 架构的基础上诞生的。ARMv7 架构采用了Thumb-2 技术,Thumb-2 技术是在ARM的Thumb代码压缩技术的基础上发展起来的,并且保持了对现存ARM解决方案的完整的代码兼容性。Thumb-2 技术比纯 32 位代码少使用 31%的内存,减少了系统的开销。

本章接下来的内容,主要以Cortex-M4 为例,介绍ARM微处理器的结构,为了提供一种存储器访问的保护机制,使得普通的用户程序代码不能意外地,甚至是恶意地执行涉及要害的操作,Cortex-M4 定义了两种操作模式:线程模式和处理器模式。有两种操作权限:特权模式和用户模式。其中处理器模式必须在特权模式下执行,主要用于异常处理。当系统复位时,系统从线程模式执行;当系统遇到异常时,系统进入异常处理模式,执行异常相关的代码;当执行完以后,处理器返回到线程模式。

Cortex-M4 的操作模式和运行方式见表2.3。

表2.3 操作模式和运行方式

当运行main函数或main函数所调用的子函数时,处理器工作在线程模式之下。当发生中断时,处理器去响应中断服务程序,此时处理器工作在处理器模式下。当处理器处在线程状态下时,既可以使用特权级,也可以使用用户级。处理器模式总是特权级的。在复位后,处理器进入线程模式+特权级。

在特权级下的代码可以通过置位控制寄存器的第 0 位(CONTROL[0])来进入用户级。用户级下的代码不能再试图修改控制寄存器的第 0 位(CONTROL[0])来回到特权级。但在处理器产生异常时,处理器都将以特权级来运行其异常服务例程,异常程序返回后将回到产生异常之前的级别。

Cortex-M4 内核体系结构如图2.3 所示,可以看出,Cortex-M4 内核采用了哈佛结构,系统由内核提供 3 条总线,分别为I-CODE、D-CODE、系统总线,其中I-CODE总线用于取指令;D-CODE用于数据操作;系统总线用于访问系统空间。

图2.3 Cortex-M4 内核体系结构

Cortex-M4 内核存取 32-bit数据,其寄存器为 32 位寄存器组,总线也为 32 位。同时,基于Cortex-M4 内核的微处理器支持三级流水线技术:取址、译码、执行。Cortex-M4 中一个可选的存储器保护单元允许对特权访问和用户程序访问制订访问规则。由于Cortex-M4 采用Thumb-2 指令集,因此允许 32 位指令和 16 位指令被同时使用。 4R5xdcpMtOgA6qnTXcp07vh5HDlFWhPon1CCOJLHC25ZcgEbQO+XUDchy5hn+ROB

点击中间区域
呼出菜单
上一章
目录
下一章
×