ARM处理器核心概述

一、基于ARM处理器的嵌入式系统

  1. ARM核深度嵌入SOC中,通过JTAG口进行外部调试。
  2. 计通常既有外部内存又有内部内存,从而支持不通的内存宽度、速度和大小。
  3. 一般会包含一个中断控制器。
  4. 可能包含一些Primece外设,需要从ARM公司取得授权。
  5. 总线使用ARM的标准如AMBA总线。
    ARM处理器核心概述_第1张图片

二、ARM处理器存储器子系统相关术语

  1. MPU(内存保护单元)
  2. 面向实时控制领域
  3. 控制内存访问权限
  4. 控制器内存区域的属性(Cacheable,bufferable)
  5. ARM的IO空间和主存空间是统一编址。
  6. IO空间不能设置缓存,主存可以设置缓存

MMU(内存管理单元)
面向复杂的APP的processor,如移动终端
具有MPU的所有特性
提供虚拟地址到物理地址的转换,提供操作系统的续存管理
嵌入式LINUX是支持MMU的

Cache(高速缓存)
快速本地内存
存放最近被访问过的内存副本

TCM(紧耦合内存)
快速本地内存
特定地址范围

Write buffer(写缓存区)
减少写数据到外部内存的次数

ARM Processor Core
ARM处理器核心概述_第2张图片

三、ARM处理器体系结构的发展

ARM处理器核心概述_第3张图片
注意:相同体系可能有完全不同的实现
ARM7TDMI-arch v4T.冯诺伊曼结构,3级流水线
ARM920T-arch v4T.哈佛结构,5级流水线,具有MMU

ARM内核系列
ARM处理器核心概述_第4张图片

四、典型ARM CPU核

4.1 ARM7TDMI

T:Thumb架构扩展,从而提供两个独立指令集:
ARM指令,均为32位
Thumb指令,均为16位
根据运行状态选择指令集
D: 内核具有Debug扩展结构
M:增强乘法器(32 x 8)支持64位结果
I:EmbeddedCE逻辑

  1. 3级流水线,属于V4T体系
  2. 冯.诺伊曼架构
  3. CPI(Cycle Per Instruction)=1.9
  4. 曾经最流行的低端ARM核
    ARM处理器核心概述_第5张图片
    ARM7TDMI的内核结构图

3级流水线:取值解码执行,从而允许 一些操作同时运行。Pipeline
需要注意的是,PC指向的是将要被预取的指令,而不是执行的指令。一般调试工具会隐藏这个细节。
ARM处理器核心概述_第6张图片
理想的3级流水线
ARM处理器核心概述_第7张图片

  1. 所有的操作都是在寄存器进行(单独一个周期执行)
  2. 6个时钟周期执行了6条指令
  3. Clock cycles per instruction (CPI) = 1

存在LDR内存操作的流水线
ARM处理器核心概述_第8张图片

  1. 存在一个LDR的内存读取操作指令
  2. 6个时钟周期执行了4条指令
  3. Clock cycles per instruction (CPI) = 1.5

存在分支指令的流水线
ARM处理器核心概述_第9张图片
分支指令的存在可能打断流水线的运行

4.2 ARM9TDMI

  1. V4T架构,5级流水线,CPI约为1.5
  2. 时钟频率得到最大提高
  3. 哈佛体系,增加了可访问内存的带宽,可同时对指令内存和数据内存进行访问。
  4. 一般支持内置Cache.
    ARM处理器核心概述_第10张图片
    ARM9TDMI的流水线技术
    ARM处理器核心概述_第11张图片
    ARM9TDMI的理想流水线
    ARM处理器核心概述_第12张图片
    LDR指令不会引起流水线互锁
    6个时钟周期执行了6条指令
    Clock cycles per instruction (CPI) = 1

ARM处理器核心概述_第13张图片
紧接着LDR指令后用相同寄存器的数据操作会引起互锁,原因使用相同的寄存器,后面的指令执行依赖相同寄存器。
7个时钟周期执行了6条指令,CPI=1.2

4.3 ARM11

ARM V6架构,8级流水线,支持静态和动态的分支预测以及返回堆栈
低延迟的中断模式
内部可配置的TCM
支持64位内存接口
集成的VFP处理器(可选)
ARM处理器核心概述_第14张图片

4.4 Cortex系列

ARM处理器核心概述_第15张图片

你可能感兴趣的:(嵌入式系统笔记,嵌入式系统)