嵌入式学习——ARM学习(1)

1、存储器

高速缓存(Cache)通常分为三级:L1、L2 和 L3。它们的主要功能和特点如下:

这三级缓存的设计旨在通过层次化存储来优化数据访问速度和处理器性能。

1、L1 缓存:

  • 位置:直接集成在处理器核心内。
  • 大小:通常较小(一般为 16KB 到 128KB)。
  • 速度:速度最快,延迟最低。
  • 功能:存储最常用的数据和指令,以提高处理器的访问速度。

2、L2 缓存:

  • 位置:通常也在处理器内,但可能与核心共享。
  • 大小:比 L1 大(一般为 256KB 到 2MB)。
  • 速度:速度较 L1 慢,但仍然比主内存快。
  • 功能:存储不常用但仍然频繁访问的数据和指令,作为 L1 的补充

3、L3 缓存:

  • 位置:通常是多个核心共享的缓存,位于处理器芯片上。
  • 大小:更大(一般为 2MB 到 64MB 或更多)。
  • 速度:速度比 L2 慢,但仍然比主内存快。
  • 功能:存储较少访问的数据,减少对主内存的访问,提高多核处理器的效率。

 2、指令

2.1机器指令

        机器指令又称机器码,在运算器内部存在各种运算电路,当处理器从内存中获取一条机器指令,就可以按照指令让运算器内部的指定的运算电路进行运算

2.2汇编指令

由于机器指令对人类不友好,每一条汇编指令都可以理解为一条机器指令的标识,当我们编写一条汇编指令时,相当于对应一条机器指令,就可以让运算器进行对应的运算

2.3指令集

指令集就是指令的集合。当设计一个处理器内核是,需要提前设计好内核中需要的运算器的运算电路的种类和数量,每一个运算电路都对应一条指令,所以设计内核之前先将每一条运算电路对应的指令设计出来,组成一个指令集,用于作为内核设计的框架。

2.4一条指令的执行过程分析

1)取指阶段:控制器将要执行的资料地址发送给内存,内存将指令返回给控制器

2)译码阶段:对取到的指令进行译码操作,分析当前指令的意义,通知运算器进行对应的运算 

3)执行阶段:指令译码完成后,运算器进行对应的运算操作,将运算的结果进行保存

3、精简指令集和复杂指令集

3.1复杂指令集

CISC:(Complex Instruction Set Computer)侧重于硬件执行指令的功能性,CISC指令集处理器的硬件结构复杂,但是功能强大。

CISC指令复杂,指令长度、周期都不固定,在处理能力上有优势,一般相对应的,功能、体积成本也会更高

指令长度:一条指令占用的存储空间大小

指令的周期:执行一条指令的时间

3.2精简指令集

RISC:Reduced Instruction Set Computer

RISC结构简单,选择了使用频率高的简单指令,指令长度固定,大小固定,多为单周期指令。

在功耗、体积、价格等方面有很大优势,多用于嵌入式领域

3.3其他架构

ARM架构:当前主流的精简指令集架构

RISC-V架构:开源的精简指令集架构

MIPS架构:被中国龙芯收购

4、ARM内核

ARM1-ARMV6 已经不使用了

ARMV7:    32位处理器架构,支持32位指令集

ARMV8: 64位处理器架构,支持64位指令集,同时向下兼容32位指令集

ARMv9:    64位处理器架构,支持64位指令集

//32位处理器表示一条机器指令最大能进行32位的数据运算

//32位指令集表示指令集中的每一条指令的长度是32位

内核                                    架构

cortex-a7                           ARMV7

cortex-a53                         ARMV8

cortex-a55                         ARMV8

cortex-a77                         ARMV8

cortex-a78                         ARMV8

cortex-a710                       ARMV9

cortex-a720                       ARMV9

4.1SOC

soc(system on chlip):片上系统、若干个内核组成了一个处理器,在处理器外部集成各个外设,通过总线完成连接,组成一个微型计算机系统、

MCU:微控制器

MPU:微处理器

4.2 Cortex-A系列

主要用于高性能应用,如智能手机、平板电脑、智能电视和嵌入式系统。适合需要运行复杂操作系统和应用程序的场景。

4.3 Cortex-R系列

专为实时应用设计,常用于汽车、工业控制、医疗设备和其他需要高可靠性和实时性能的领域。

4.4 Cortex-M系列

主要用于低功耗、低成本的嵌入式系统,如物联网设备、传感器、家电和消费电子产品。

4.5 SecurCore系列

SecurCore系列用于对安全性能要求比较高的场景

4.6 Cortex-X系列

cortex-X系列是ARM在2016年新推出的一种内核系列,这系列的内核在云计算、边缘计算方面性能比较优越

5、ARM数据约定

A7采用的是32位架构

ARM约定:

        Byte 8 bits.

        Halfword 16 bits.

        Word 32 bits.

        Doubleword 64 bits.

大部分ARM core 提供:

        ARM 指令集(32-bit)

        Thumb 指令集(16-bit )        

6.ARM工作模式

cortex-A特有的模式:

1.monitor模式:执行安全监控代码时进入的模式

2.HYP模式:虚拟化支持模式

7.ARM V-7架构寄存器

8.ARM V-7架构下的一些特殊寄存器

8.1 R15寄存器 PC

R15寄存器又被称为(PC:program counter)程序计数器

PC寄存器保存即将被从内存中取出来的指令的地址

当PC保存的指令地址被处理器发送给内存之后PC的值会自动向下加一条指令的大小,

这也是程序可以继续向下顺序执行的原因

实现程序跳转的本质就是修改PC的值

一条指令的执行过程:

        取指:将要执行的指令从内存中取出来

        译码:对取出来的指令进行分析和译码操作

        执行:将译码之后的指令交给运算器进行运算处理

8.2 R14寄存器 LR

R14又被称为(LR:link register)链接寄存器

LR寄存器的作用是当执行指令时进行程序跳转时,LR会保存跳转指令下一条指令的地址,方便程序返回

8.3 R13寄存器 SP

R13寄存器又被称为(SP:stack pointer)栈指针寄存器

SP寄存器保存栈内存栈顶的地址,对一些临时数据进行压栈出栈操作时需要使用SP的值来找到栈区位置

8.4 CPSR/SPSR

8.4.1  CPSR/SPSR概念

CPSR寄存器又叫(current program status register)当前程序状态寄存器

这个寄存器的作用是保存当前程序的工作状态

工作状态中包含程序的工作模式、中断禁止位以及程序的运算结果条件位等信息

SPSR寄存器又叫(saved program status register)被保存的程序状态寄存器

这个寄存器当处理器因为各种异常切换到异常模式工作时会将CPSR值提前保存到SPSR中,处理器处理完异常之后会将SPSR的值

赋值给CPSR,用于恢复处理器的工作状态

8.4.2 CPSR/SPSR 32位 数据含义

1. N[31] : 指令的运行结果为负数时,N位被自动置1,否则为0.

                eg : 100 - 200

2. Z[30] : 指令的运行结果为零时,Z位被自动置1,否则为0.

                eg:100-100

3. C[29] : 加法:加法运算如果产生进位,C位被自动置1,否则为0.

                        32位指令:低32位向高32位进位

         ex:两个32位数运算得到超过32位的结果

         0XFFFFFFFE+0x3

                减法:减法运算如果产生借位,C位被自动清0,否则位1.

                        32位指令:低32位向高32位借位

        1-0XFFFFFFFE

4. V[28] : 符号位发送变化,V位被自动置1,否则清0.

5. I[7] : IRQ中断屏蔽位

         I = 0 : 不屏蔽IRQ中断

         I = 1 : 屏蔽IRQ中断

6. F[6] : FIQ中断屏蔽位

        F = 0 : 不屏蔽FIQ中断

        F = 1 : 屏蔽FIQ中断

7. T[5] : 状态位

        T = 0 : 表示ARM状态,执行的是ARM指令集

        T = 1 : 表示Thumb状态,执行的是Thumb指令集

        ARM指令集 : 一条汇编指令编译生成32位的机器码

        thumb指令集:一条汇编指令编译生成16位的机器码

        ARM指令集的代码的密度低,而thumb指令记得代码密度高。

        ARM指令集的功能性要高于Thumb指令集。

8. M[4:0] : 模式位

        10000 User mode;

        10001 FIQ mode;

        10010 IRQ

        10011 SVC mode;

        10111 Abort mode;

        11011 Undfined mode;

        11111 System mode;

        10110 Monitor mode;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/410564.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ios去水印软件免费版,精选五大高效工具,告别水印烦恼!

随着社交媒体的普及,越来越多的人喜欢在网络上分享自己的生活点滴。在分享视频时,水印往往会影响美观。为了帮助大家解决这个问题,本文为您推荐五大高效免费的iOS去水印软件,让您轻松告别水印烦恼! 软件一&#xff1a…

​拼多多:这一刀 砍向了自己

到处砍一刀,砍赢淘宝、京东,称霸中国电商的—— 拼多多 竟然刀刃向内,砍了自己一刀? 营收增长86%,净利润增长了144%,上半年净利润600亿,半年赚了去年全年的利润。 拼多多交出一份足以傲视全球…

Iptables-快速上手

Iptables firewall 防火墙Iptables简述一、Iptables的四表五链1.filter表2.nat表3.raw表4. mangle表5.数据包的流通过程 二、快速上手1. 查看规则2. 规则详细3. 添加规则4. 自定义链 三、关于iptables和docker1. 背景2. 解决方案 firewall 防火墙 从逻辑上讲,可以分…

【LLM之Data】SKYSCRIPT-100M论文阅读笔记

研究背景 随着短视频和短剧的兴起,自动化的剧本生成和短剧制作在影视行业中的需求逐渐增加。传统的剧本生成过程需要大量的人工干预,限制了其在规模和效率上的扩展性。当前的大型语言模型(LLM)在剧本生成方面展现出一定潜力&…

K8S的持久化存储

文章目录 一、持久化存储emptyDir实际操作 hostPath建立过程 NFS存储NFS 存储的优点NFS 存储的缺点具体操作 pv和pvcPersistent Volume (PV)使用场景 Persistent Volume Claim (PVC)使用场景 使用 PV 和 PVC 的场景实际操作 StorageClassStorageClass 概述应用场景实际应用 一、…

CLIP微调方法总结

文章目录 前言1️⃣ Tip-Adapter论文和源码原理介绍 2️⃣Cross-modal Adaptation(跨模态适应)论文和源码原理介绍 3️⃣ FD-Align(Feature Discrimination Alignment,特征判别对齐)论文和源码原理介绍 总结 前言 本文…

USB3.2 摘录(11)

系列文章目录 USB3.2 摘录(一) USB3.2 摘录(二) USB3.2 摘录(三) USB3.2 摘录(四) USB3.2 摘录(五) USB3.2 摘录(六) USB3.2 摘录&…

IO进程day01(标准IO、缓存区)

目录 【1】标准IO 1》概念: 2》特点 【2】缓存区 1》全缓存:和文件相关 2》行缓存:和终端有关 3》不缓存:也就是没有缓存区,标准错误。 【1】标准IO 1》概念: 标准IO: 是在C库中定义的一…

C++ | Leetcode C++题解之第355题设计推特

题目&#xff1a; 题解&#xff1a; class Twitter {struct Node {// 哈希表存储关注人的 Idunordered_set<int> followee;// 用链表存储 tweetIdlist<int> tweet;};// getNewsFeed 检索的推文的上限以及 tweetId 的时间戳int recentMax, time;// tweetId 对应发送…

香港站群服务器优势

香港站群服务器因其独特的地理位置和网络连接优势&#xff0c;在SEO优化、网站群管理和网络营销等方面受到广泛关注。其优势主要体现在以下几个方面&#xff0c;rak小编为您整理发布。 地理位置优越 连接亚洲国际市场&#xff1a;香港作为亚太地区的重要经济中心&#xff0c;具…

代码随想录 刷题记录-18 动态规划(2)01背包问题、习题

一、01背包理论基础 例题&#xff1a;46. 携带研究材料 01 背包 有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品只能用一次&#xff0c;求解将哪些物品装入背包里物品价值总和最大。 暴力解法&#xff1a…

SpringBoot实现Word转PDF/TXT

背景 研发工作中难免会遇到一些奇奇怪怪的需求&#xff0c;就比如最近&#xff0c;客户提了个新需求&#xff1a;上传一个WORD文档&#xff0c;要求通过系统把该文档转换成PDF和TXT。客户的需求是没得商量的&#xff0c;必须实现&#xff01;承载着客户的期望&#xff0c;我开始…

【计算机网络】应用层HTTP协议

我们已经实现过应用层协议&#xff0c;但也要看一看成熟的应用层协议 目录 1 HTTP协议11 URL12 urlencode 和 urldecode13 HTTP 协议请求与响应格式请求格式响应格式 14 界面的基本处理显示基本主页显示图片页面跳转 15 常见header16 状态码161 404举例162 关于3开头的状态码 1…

yd云手机登录算法分析

yd云手机登录算法分析 yd云手机登录算法分析第一步&#xff1a;抓包-登录第二步&#xff1a;定位加密入口第三步&#xff1a;分析加密算法第四步&#xff1a;算法实现 yd云手机登录算法分析 在这篇文章中&#xff0c;我们将详细解析yd云手机的登录算法&#xff0c;涵盖从抓包到…

96.SAP MII功能详解(09)Workbench-Transaction Debugging

目录 1.About Transaction Debugging Use Features Activities 2.How to Debug Start Debugging Create Breakpoint Watch Variables Debugging logs 1.About Transaction Debugging Use You use this function to monitor and manipulate a transaction while it …

微深节能 堆取料机回转俯仰角度检测系统 格雷母线定位系统

微深节能在堆取料机回转俯仰角度检测系统中引入的格雷母线定位系统&#xff0c;是一项重要的技术创新&#xff0c;显著提升了堆取料作业的自动化水平和精确性。以下是对该系统的详细介绍&#xff1a; 一、系统概述 格雷母线定位系统作为高精度、无磨损的非接触式位置检测系统&a…

07 - procfs

---- 整理自 王利涛老师 课程 实验环境&#xff1a;宅学部落 www.zhaixue.cc 文章目录 1. procfs 快速入门2. procfs 文件创建的回调机制3. 在 proc 目录下创建子目录4. 通过 proc 接口修改内核变量5. 通过 proc 接口访问数组6. 序列文件&#xff1a;seq_file 编程接口7. seq_f…

OpenCV绘图函数(1)绘制带箭头的直线函数arrowedLine()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 绘制一个从第一个点指向第二个点的箭头线段。 cv::arrowedLine 函数在图像中绘制一个从 pt1 到 pt2 的箭头。另见 line 函数。 函数原型 void c…

基于单片机的无线空气质量检测系统设计

本设计以STC89C52单片机为核心&#xff0c;其中包含了温湿度检测模块、光照检测模块、PM2.5检测模块、报警电路、LCD显示屏显示电路、按键输入模块和无线传输模块来完成工作。首先&#xff0c;系统可以通过按键输入模块设置当前的时间和报警值&#xff1b;使用检测模块检测当前…

在Ubuntu 部署 Grafana且监控MySQL数据

一、安装 打开终端按顺序执行以下命令 1.添加 Grafana 的 APT 仓库&#xff1a; sudo apt-get install -y software-properties-common sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main" 2.导入Grafana GPG key&#xff1a; wge…