当前位置: 首页 > news >正文

ARM处理器核心概述

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

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

二、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处理器体系结构的发展

在这里插入图片描述
注意:相同体系可能有完全不同的实现
ARM7TDMI-arch v4T.冯诺伊曼结构,3级流水线
ARM920T-arch v4T.哈佛结构,5级流水线,具有MMU

ARM内核系列
在这里插入图片描述

四、典型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核
    在这里插入图片描述
    ARM7TDMI的内核结构图

3级流水线:取值解码执行,从而允许 一些操作同时运行。Pipeline
需要注意的是,PC指向的是将要被预取的指令,而不是执行的指令。一般调试工具会隐藏这个细节。
在这里插入图片描述
理想的3级流水线
在这里插入图片描述

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

存在LDR内存操作的流水线
在这里插入图片描述

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

存在分支指令的流水线
在这里插入图片描述
分支指令的存在可能打断流水线的运行

4.2 ARM9TDMI

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

在这里插入图片描述
紧接着LDR指令后用相同寄存器的数据操作会引起互锁,原因使用相同的寄存器,后面的指令执行依赖相同寄存器。
7个时钟周期执行了6条指令,CPI=1.2

4.3 ARM11

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

4.4 Cortex系列

在这里插入图片描述

http://www.lryc.cn/news/145348.html

相关文章:

  • 万户协同办公平台 ezoffice存在未授权访问漏洞 附POC
  • 使用ctcloss训练矩阵生成目标字符串
  • 驱动 - 20230829
  • 数组(个人学习笔记黑马学习)
  • layui表格事件分析实例
  • Android NDK JNI与Java的相互调用
  • 装备制造企业如何执行精益管理?
  • PHP8中自定义函数-PHP8知识详解
  • 虚拟化技术:云计算发展的核心驱动力
  • 光伏+旅游景区
  • 手搓文本向量数据库(自然语言搜索生成模型)
  • EVO大赛是什么
  • linux中使用clash代理
  • Kafka3.0.0版本——Follower故障处理细节原理
  • 13.redis集群、主从复制、哨兵
  • linux字符串处理
  • Nginx入门——Nginx的docker版本和windows版本安装和使用 代理的概念 负载分配策略
  • Zebec Protocol:模块化 L3 链 Nautilus Chain,深度拓展流支付体系
  • Oracle-rolling upgrade升级19c
  • Spring IOC详解
  • Unity——DOTween插件使用方法简介
  • 数据库——Redis 单线程模型详解
  • leetcode 567. 字符串的排列(滑动窗口-java)
  • Git —— 分支重命名操作
  • JavaIO流
  • FlinkSql 如何实现数据去重?
  • 机器学习概念
  • 【数据结构】排序(插入、选择、交换、归并) -- 详解
  • 游戏中的图片打包流程,免费的png打包plist工具,一款把若干资源图片拼接为一张大图的免费工具
  • Springboot实现ENC加密