首页 > 其他分享 >04_ARM硬件基础

04_ARM硬件基础

时间:2023-12-14 15:26:45浏览次数:30  
标签:04 中断 Cache 硬件 地址 指令 异常 ARM

04_ARM硬件基础

  • 课程目标:了解我们常用硬件接口,并且编程控制
  • 重点难点:对各个接口原理的掌握
  • 考核目标:各个接口的作用,实现原理及特性

1. 硬件基础概述

1.1. 为什么我们要去研究硬件

因为要去使用他,驱动它

1.2. 我们要研究什么

  • 硬件原理及构造
  • 地址
  • 寄存器
  • 协议
  • 时长/频率

1.3. 我们怎么研究

  • ARM手册
  • 芯片手册
  • 外设芯片手册

1.4. ARM Cortex-A8 - S5PV210的硬件

  • 分类
    • CPU核心
      • 中断
      • NEON/SIMD
      • Cache
    • 系统外围
      • RTC:实时时钟
      • PLL:锁相环
      • PWM Timer:脉冲宽度调制
      • WatchDig Timer:看门狗
      • DMA:直接存储访问
      • keyboard
      • ADC
    • 连接
      • USB Host/OTG
      • UART
      • IIC
      • SPI
      • Modem IF:通信调制
      • GPIO
      • Audio IF:音频
      • Storage IF:存储
    • 多媒体
      • Camera IF/MIPI CSI
      • Coder/Decoder
      • 2D/3D Graphics Engine
      • TV out/HDMI
      • JPEG Codec
      • LCD Controller
    • 存储接口
      • SRAM/SROM
      • OneNand
      • SLC/MLC Nand
      • DDR
    • 电源管理
      • Clock Gating
      • Power Gating
      • Frequency Scaling

2. SIMD & NEON

SlMD:(Single Instruction Multiple Data,单指令多数据流)
NEON技术可加速多媒体和信号处理算法(如视频编码/解码、2D/3D图形、游戏、音频和语音处理、
图像处理技术、电话和声音合成),其性能至少为ARMv5性能的3倍,为ARMv6SMD性能的2倍

3. Cache (具体参考 《计算机组成原理》)

3.1. 为什么需要Cache

我们现在采用的存储器结构多为体交叉存储器体系

  • I/O 向主存请求的级别高于CPU访存

  • 主存速度跟不上CPU发展

  • 主存一般都是片外,频繁进出速度慢,能耗高

  • Cache 工作原理
    程序访问的局部性原理,采用了SRAM命中率
    大小比例:4:1000,128K 32M

3.2. Sample:AMBA高速缓存控制器

3.3. 内存层级

制作成本高,不可能做太大

  • L0:寄存器
  • L1:一级高速缓存(SRAM),一般64KB
  • L2:二级高速缓存(SRAM),一般1M
  • L3:三级高速缓存(SRAM)
  • L4:主存(DRAM)
  • L5:本地二级存储(本地磁盘)
  • L6:远程二级存储(分布式文件系统,web服务器)

3.4. 缓存控制器 Cache Controller

  • 搬运规则
    • 直接映射缓存
    • 联合缓存

https://www.bilibili.com/video/BV1px411E7ma?p=48&time=2m44s

3.5. 直接映射缓存 Direct Mapped Cache

3.6. 联合缓存 Set-associative Cache

3.7. 缓存结构总结

4. MMU (具体参考 《操作系统》)

MMU:memory manage unit 存储管理单元

4.1. 计算机在访问主存的时候出问题了

  • PM物理内存不够用
  • 进程隔绝
  • 虚拟内存:将硬盘里一部分空间虚拟成内存,来达到扩展内存的目的

4.2. 虚拟存储器

4.2.1. 作用

  • 1、允许多道程序之间有效而安全的共享存储器
  • 2、消除一个小而受限的主存容量对程序设计造成的影响

4.2.2. 虚拟地址、物理地址、页、缺页

  • 要解决两个问题

    • 保护、锁
    • 分割 -> 完成内存地址映射 转移
  • 虚拟地址:进程当中的虚拟地址

  • 物理地址:真实的内存地址

  • 页:

4.2.3. 页保护及锁定机制

4.2.4. 地址转换过程

4.2.5. 分段

4.3. 页的存放和查找

4.3.1. 页表

4.3.2. 页表寄存器

4.4. 缺页

1、如果不缺页直接读物理地址
2、如果缺页,则把控制权交给 操作系统,操作系统一般是从磁盘地址去

4.5. 加快地址转换TLB

  • 处理TLB缺失

4.6. 集成虚拟存储器

  • SRAM -> Cache
  • DDRAM -> 内存
  • ROM -> Nand Flash

5. 中断体系结构

5.1. ARM异常及中断基本概念

5.1.1. 什么是异常?什么是中断?

中断是特殊的异常

5.1.2. ARM异常种类对应的处理器模式

ARM体系结构中存在7种异常处理。异常发生时,处理器会把PC指向一个特殊地址,这个地址放在存储器种一个特定表中,成为向量表。

地址 异常 进入模式 模式
0x00000000 复位 管理模式 复位电平有效时,产生复位异常,程序跳转到复位处理程序处执行
0x00000004 未定义指令 未定义模式 碰到不能处理的指令时,产生未定义指令异常
0x00000008 软件中断 管理模式 执行SWI指令产生,用于用户模式下的程序调用特权操作指令
0x0000000c 预存指令 中止模式 处理器预取指令的地址不存在,或该地址不允许当前指令访问,产生指令预取中止异常
0x00000010 数据操作 中止模式 处理器数据访问指令的地址不存在,或该地址不允许当前指令访问时,产生数据中止异常
0x00000014 未使用 未使用 未使用
0x00000018 IRQ IRQ 外部中断请求有效,且CPSR中的I位为0时,产生IRQ异常
0x0000001c FIQ FIQ 快速中断请求引脚有效,且CPSR中的F位为0时,产生FIQ异常

5.1.3. 异常发生时候CPU处理步骤

1、保存当前执行位置
2、保存当前执行状态
3、寻找中断入口,即向量表地址
4、执行中断处理程序
5、中断返回,继续执行

  • 几种异常
    • 复位异常
    • 未定义指令异常
    • 软中断异常
    • 预取异常
    • 数据异常
    • 外部中断异常
    • 快速中断异常

5.1.4. ARM异常优先级

Highest 1 Reset
2 Data Abort
3 FIQ
4 IRQ
5 Prefetch Abort
Lowest 6 SW
Undefined instruction

5.1.5. 总结表

5.2. S5PV210中断控制器分析

标签:04,中断,Cache,硬件,地址,指令,异常,ARM
From: https://www.cnblogs.com/staraire/p/17901227.html

相关文章

  • 04_uboot全面讲解
    04_uboot全面讲解本课程希望达到目标理解底层代码的编写方式u-boot版本选择uboot官方源码地址https://ftp.denx.de/pub/u-boot/Uboot版本一直在迭代,加入的东西也越来越多,所以我们学习,只要选择适合的版本就可以了这里我们先选择下载2010.12版本的解压下来之后,进入\arch\a......
  • 01_ARM学习准备工作
    01_ARM学习准备工作熟悉Tiny210开发ARM9-2410ARM11-6410CortexA8-Tiny210CortexA15...1.开始进入到真正的嵌入式阶段1.1.理解一下我们要学的内容启动过程1、上电2、从BIOS里读引导信息3、bootloader:准备运行环境,引导操作系统3、操作系统kernerlinit4......
  • 02_ARM世界概要
    02_ARM世界概要1.ARM公司介绍成立于1990年11月,前身为Acorn计算机公司主要设计ARM系列RISC处理器内核授权ARM内核给生产和销售半导体的合作伙伴(ARM公司本身不生产芯片)提供ARM架构的开发设计技术(软件工具,评估板,测试工具,应用软件,总线架构,外围设备单元)2.主流芯片(高性能)......
  • HarmonyOS 实战小项目开发(二)
    HarmonyOS实战小项目开发(二)日常逼逼叨在上期实战项目一中,已经对于练手项目的背景,后端搭建等做了一定的简述,那么本期将结合HarmonyOS页面搭建个人性格测试的移动端。如有一些错误,希望观众老爷们批评指正......
  • HarmonyOS:使用MindSpore Lite引擎进行模型推理
     场景介绍MindSpore Lite是一款AI引擎,它提供了面向不同硬件设备AI模型推理的功能,目前已经在图像分类、目标识别、人脸识别、文字识别等应用中广泛使用。本文介绍使用MindSpore Lite推理引擎进行模型推理的通用开发流程。基本概念在进行开发前,请先了解以下概念。张量:它......
  • OpenHarmony应用编译 - 如何在源码中编译复杂应用(3.2-Release)
    概述文档环境开发环境:Windows11编译环境:Ubuntu22.04开发板型号:DAYU200(RK3568)系统版本:OpenHarmony-3.2-Release涉及仓库:applications_launcher功能简介在OpenHarmony系统中预安装应用的hap包会随系统编译打包到镜像中,目前有两种编译预安装应用hap包的方式,一种为随系统......
  • 华擎全球首发AMD锐龙8040产品:迷你机、迷你小板齐上阵
    AMD日前官宣了代号HawkPoint的新一代锐龙8040系列移动处理器,是现有锐龙7040系列的升级版,工艺、架构不变,重点提升NPUAI性能,并调整了功耗设定。现在,华擎全球第一家发布了基于锐龙8040系列的产品,确切地说是低功耗的锐龙8040U系列,包括迷你机、迷你主板。迷你机有两款,型号分别为4X......
  • HarmonyOS 实战小项目开发(一)
    HarmonyOS实战小项目开发(一)日常逼逼叨在经过一周多的Harmonyos开发基础知识的学习后,自己通过对于Harmonyos基础知识的学习之后,结合自己的一些想法,独自完成了利用Arkts布局的Harmonyos项目,在此将整个过程与各位共享出来,如有一些错误,希望观众老爷们批评指正......
  • springboot004旅游路线规划系统(Java毕业设计,附数据库和源码)
    第一章绪论1.1选题背景与研究意义随着社会的不断进步,在居民生活水平提高的同时,人们当前在生活的方方面面也越来越注重服务所带来的体验,随着近几年国家政策大力发展旅游业,旅游景点的建设越来也完善,旅游业的发展速度得到了显著的提升。各大旅行社、旅游景点都不断的推出新的活动计......
  • P1004 [NOIP2000 提高组] 方格取数 题解
    P1004[NOIP2000提高组]方格取数题解题目链接P1004[NOIP2000提高组]方格取数简要思路注意一下输入可以简化为while(std::cin>>x>>y>>val&&x){ //***}运用DP的思想。用一个四维的\(DP\)数组\(dp[i][j][k][l]\)来同时记录两条路径分别走到\((i,j)\)和\((k,......