ARM 架构、cpu
一、ARM的架构
ARM是一种基于精简指令集(RISC
)的处理器架构.
1、ARM芯片特点
ARM芯片的主要特点有以下几点:
精简指令集:ARM芯片使用精简指令集,即每条指令只完成一项简单的操作,从而提高指令的执行效率和处理器的性能。相比之下,复杂指令集(CISC)的指令可以完成多项复杂的操作,但是需要更多的硬件资源和执行时间。
负载/存储架构:ARM芯片使用负载/存储架构,即只有专门的负载和存储指令可以访问内存,其他指令只能在寄存器之间进行操作。这样可以减少内存访问的次数和延迟,提高数据处理的速度。相比之下,寄存器/内存架构的处理器可以直接在内存和寄存器之间进行操作,但是会增加内存访问的开销。
统一寄存器文件:ARM芯片使用统一寄存器文件,即所有的通用寄存器都可以用于任何目的,没有专门的数据寄存器或地址寄存器。这样可以提高寄存器的利用率和灵活性,减少数据移动的开销。相比之下,分段寄存器文件的处理器需要区分不同类型的寄存器,并进行相应的转换。
条件执行:ARM芯片支持条件执行,即每条指令都可以根据一个条件码来决定是否执行。这样可以减少分支指令的使用,提高代码密度和流水线效率。相比之下,非条件执行的处理器需要使用专门的分支指令来实现条件跳转。
多种工作模式:ARM芯片支持多种工作模式,例如用户模式、系统模式、管理模式、中断模式、异常模式等。不同的工作模式有不同的权限和功能,可以实现不同级别的任务切换和异常处理。相比之下,单一工作模式的处理器需要使用软件来模拟多任务和异常处理。
2、按核心类型分类
ARM核心 是指实现了某个版本ARM架构的具体处理器设计,它由ARM公司设计并授权给其他厂商生产。不同类型的ARM核心有不同的性能、功耗、面积等。例如,Cortex-A系列是针对高性能应用的核心,Cortex-R系列是针对实时应用的核心,Cortex-M系列是针对微控制器应用的核心等。
一、Cortex-A系列
- 特点:面向高性能应用,支持虚拟内存和复杂的操作系统,具有较高的处理能力和较大的缓存容量。
- 适用领域:智能手机、平板电脑、服务器和嵌入式系统等需要高性能的领域。
- 典型内核:Cortex-A76、Cortex-A75、Cortex-A73、Cortex-A72、Cortex-A9以及最新的Cortex-X2、Cortex-A710和Cortex-A510等。
二、Cortex-R系列
- 特点:针对实时系统,具有较低的延迟和较高的可靠性,专门设计用于实时应用。
- 适用领域:汽车电子、工业控制、医疗设备等需要实时控制和嵌入式系统的领域。
- 典型内核:Cortex-R4、Cortex-R5、Cortex-R7以及最新的Cortex-R8等。
三、Cortex-M系列
- 特点:面向低功耗嵌入式应用,具有较低的功耗和较小的尺寸,易于编程。
- 适用领域:物联网设备、传感器、智能家居、可穿戴设备和嵌入式控制器等低功耗、实时和成本敏感的应用。
- 典型内核:Cortex-M0、Cortex-M0+、Cortex-M3、Cortex-M4和Cortex-M7等。其中,Cortex-M4在Cortex-M3的基础上增加了DSP指令集,具有更强的计算能力和信号处理能力;而Cortex-M7则是Cortex-M4的升级版本,提供更高的性能和计算能力。
二、计算机的组成
闪存(Flash)则结合了RAM和ROM的优点,它既可以在断电后保留数据,又具有较快的读写速度。
三、cpu的内部架构
MMU(Memory Manager Unit),是内存管理单元,负责将虚拟地址转换成物理地址。除此之外,MMU 实现了内存保护,进程无法直接访问物理内存,防止内存数据被随意篡改。
PC指针的工作原理
1、取指(Fetch):
在取指阶段,处理器从 PC 指向的地址读取指令。 PC 指向当前要执行的指令的内存地址,并将这一指令从内存中读取到指令寄存器中。
由于 ARM 指令是固定大小的(大多数情况下为 4 字节),所以每次取指时 PC 的值会加上 4(在某些特殊情况下如 Thumb 模式可能会有所不同)。
2、解码(Decode):
在解码阶段,处理器解析刚刚取出的指令,确定需要执行的操作和参与的寄存器等信息。
解码阶段虽然不直接改变 PC 的值,但它为处理器后续的执行阶段提供了必要的信息。
3、执行(Execute):
在执行阶段,处理器根据解码结果进行相应的计算或操作,如寄存器间的加法、逻辑运算等。
执行完成后,若为跳转指令(例如条件跳转、无条件跳转等),则会修改 PC 的值以指向跳转后的地址。
PC 与 流水线的关系
在现代 ARM 处理器中,流水线技术得到了广泛应用,通常分为几个阶段,例如取指、解码、执行、访存和写回。流水线的设计允许多个指令并行处理,从而提高处理器的整体性能。
流水线结构:
在流水线结构中,多个指令可以在不同阶段同时进行。例如,第一条指令在取指阶段,第二条指令在解码阶段,第三条指令在执行阶段,依此类推。例如:
Cycle 1: 取指指令1
Cycle 2: 取指指令2,解码指令1
Cycle 3: 取指指令3,解码指令2,执行指令1
…
PC 的实时更新:PC 通常会在取指阶段被更新。因为它在每次取指时会自动加上指令的宽度(如 4 字节),顺序执行。
但是在跳转指令出现时,PC 的更新会变得复杂,可能需要在解码或执行阶段更新,这会涉及到分支预测等技术,以减少因跳转带来的流水线冒险(Stall)。
流水线冒险
流水线中的“冒险”问题指的是指令在不同阶段之间的依赖关系,主要有:结构冒险:由于硬件资源不足而导致的冲突。
数据冒险:指令之间依赖导致的数据读取/写入冲突。
控制冒险:因分支指令导致的流水线需要多清空和重新加载指令的问题。
为了减少控制冒险,现代处理器使用分支预测技术和延迟槽等技术来优化 PC 的调整和指令的顺序执行。
总结
PC 在 ARM 处理器中起到了指向当前执行指令地址的作用。
PC 的取指、解码、执行等过程是紧密联系在一起的,形成了处理器指令执行的基本循环。
流水线设计允许指令在多个阶段并行处理,提高了处理器的效率,但也引入了冒险问题,需要通过结构设计和控制策略来解决。
流水线:
ARM寄存器
ARM 寄存器是 ARM 处理器内部用于存储数据、地址和处理器状态等信息的存储单元。ARM 寄存器主要分为通用寄存器和特殊寄存器两类:
通用寄存器:
未分组寄存器 R0-R7:在所有的运行模式下,这 8 个寄存器都指向同一个物理寄存器,它们没有被系统用作特殊用途。但是在中断或异常处理进行运行模式转换时,由于不同的处理器运行模式均使用相同的物理寄存器,可能会造成这些寄存器中数据的破坏。
分组寄存器 R8-R12:对于这 5 个寄存器,每个寄存器对应 2 个不同的物理寄存器。当使用快速中断模式(FIQ)时,访问的是R8_fiq - R12_fiq;当使用除 FIQ 模式以外的其他模式时,访问的是R8_usr - R12_usr。这些寄存器可用于数据的暂存和运算,在不同的模式下可以根据需要切换使用不同的物理寄存器。
程序计数器 PC(R15):用于存放当前指令的下一条指令的地址。由于 ARM 体系结构采用了多级流水线技术,对于 ARM 指令集而言,PC 总是指向当前指令的下两条指令的地址,即 PC 的值为当前指令的地址值加 8 个字节(在 Thumb 指令集中,PC 的值为当前指令的地址值加 4 个字节)3。
特殊寄存器:
栈指针 SP(R13):实际上 R13 在不同的处理器模式下有不同的物理寄存器,每个异常模式都有自己独立的 R13。在 ARM 指令中,R13 常用作堆栈指针,用于存储函数调用时的局部变量、参数、返回地址等信息。通过PUSH(入栈)和POP(出栈)操作可以实现对栈的访问23。
链接寄存器 LR(R14):用于保存函数或子程序调用时的返回地址。当执行子程序调用指令(如BL)时,会自动将返回地址放入 LR 中,当子程序执行结束后,将 LR 中的值加载至 PC 中,就可以返回到调用处继续执行。在发生异常时,异常模式的 LR 也可以用来保存异常返回地址23。
程序状态寄存器3:
当前程序状态寄存器 CPSR:可以在任何运行模式下被访问,它包含条件标志位(如 N、Z、C、V)、中断禁止位、当前处理器模式标志位以及其他一些相关的控制和状态位。这些标志位可以被算术或逻辑运算的结果所改变,并且可以决定某条指令是否被执行。
备份的程序状态寄存器 SPSR:每种异常模式下都有一个专用的 SPSR,当异常发生时,SPSR 用于保存 CPSR 的当前值,以便从异常退出时可以由 SPSR 来恢复 CPSR。用户模式和系统模式不属于异常模式,它们没有 SPSR。
四、处理器内部架构
Cache:
高速缓存。
五、工作模式
处理器(CPU)的7种工作模式主要包括:
-
用户模式(User Mode):
- 非特权模式,是大多数用户程序正常执行的模式。
- 在此模式下,程序无法直接访问硬件资源或改变处理器的工作模式,除非通过软中断或异常。
-
快速中断模式(FIQ Mode):
- 也称为快速中断响应模式,用于处理高优先级的中断请求。
- 这种模式支持高速数据传输和通道处理,适用于需要快速响应的中断场景。
-
普通中断模式(IRQ Mode):
- 也称为一般中断模式,用于处理普通的中断请求。
- 在硬件产生中断信号后,处理器会自动进入此模式,并允许程序访问系统硬件资源。
-
管理模式(SVC Mode):
- 也称为操作系统保护模式,是操作系统内核代码运行的模式。
- 当CPU上电复位或应用程序执行SVC指令调用系统服务时,会进入此模式。
-
中止模式(Abort Mode):
- 当数据或指令预取终止时进入此模式。
- 此模式用于处理存储器故障、实现虚拟存储或存储保护。
- 当用户程序访问非法地址或没有权限读取的内存地址时,会触发此模式。
-
未定义指令异常模式(Undefined Instruction Mode):
- 当处理器执行未定义的指令时进入此模式。
- 此模式主要用于处理未定义的指令陷阱,并支持硬件协处理器的软件仿真。
-
系统模式(System Mode):
- 特权模式之一,使用与管理模式相同的寄存器组。
- 用于运行特权级的操作和系统任务。
在这7种工作模式中,除了用户模式以外,其他6种模式可以称为特权模式。在特权模式下,程序可以访问所有的系统资源,也可以任意地进行处理器模式的切换。其中,除了系统模式外的其他5种特权模式又称为异常模式。
相关文章:
ARM 架构、cpu
一、ARM的架构 ARM是一种基于精简指令集(RISC)的处理器架构. 1、ARM芯片特点 ARM芯片的主要特点有以下几点: 精简指令集:ARM芯片使用精简指令集,即每条指令只完成一项简单的操作,从而提高指令的执行效率…...
【React】入门Day03 —— Redux 与 React Router 核心概念及应用实例详解
1. Redux 介绍 // 创建一个简单的Redux store const { createStore } Redux;// reducer函数 function counterReducer(state { count: 0 }, action) {switch (action.type) {case INCREMENT:return { count: state.count 1 };case DECREMENT:return { count: state.count -…...
u2net网络模型训练自己数据集
单分类 下载项目源码 项目源码 准备数据集 将json转为mask json_to_dataset.py import cv2 import json import numpy as np import os import sys import globdef func(file):with open(file, moder, encoding"utf-8") as f:configs json.load(f)shapes configs…...
登录功能开发 P167重点
会话技术: cookie jwt令牌会话技术: jwt生成: Claims:jwt中的第二部分 过滤器: 拦截器: 前端无法识别controller方法,因此存在Dispa什么的...
数据架构图:从数据源到数据消费的全面展示
在这篇文章中,我们将探讨如何通过架构图来展示数据的整个生命周期,从数据源到数据消费。下面是一个使用Mermaid格式的示例数据架构图,展示了数据从源到消费的流动、处理和存储过程。 数据架构图示例 说明 数据源:分为内部数据源&…...
useEffect 与 useLayoutEffect 的区别
useEffect 与 useLayoutEffect 的区别 useEffect和useLayoutEffect是处理副作用的React钩子函数,有以下区别1. 执行时机不同2. 对性能影响不同3. 对渲染的影响不同:4. 使用场景不同 使用建议 useEffect和useLayoutEffect是处理副作用的React钩子函数&…...
OPENCV判断图像中目标物位置及多目标物聚类
文章目录 在最近的项目中,又碰到一个有意思的问题需要通过图像算法来解决。就是显微拍摄的到的医疗图像中,有时候目标物比较偏,也就是在图像的比较偏的位置,需要通过移动样本,将目标物置于视野正中央,然后再…...
分布式理论:拜占庭将军问题
分布式理论:拜占庭将军问题 介绍拜占庭将军的故事将军的难题 解决方案口信消息型拜占庭问题之解流程总结 签名消息型拜占庭问题之解 总结 介绍 拜占庭将军问题是对分布式共识问题的一种情景化描述,由兰伯特于1082首次发表《The Byzantine Generals Prob…...
从零开始Ubuntu24.04上Docker构建自动化部署(三)Docker安装Nginx
安装nginx sudo docker pull nginx 启动nginx 宿主机创建目录 sudo mkdir -p /home/nginx/{conf,conf.d,html,logs} 先启动nginx sudo docker run -d --name mynginx -p 80:80 nginx 宿主机上拷贝docker上nginx服务上文件到本地目录 sudo docker cp mynginx:/etc/nginx/ngin…...
阿里云 SAE Web:百毫秒高弹性的实时事件中心的架构和挑战
作者:胡志广(独鳌) 背景 Serverless 应用引擎 SAE 事件中心主要面向早期的 SAE 控制台只有针对于应用维度的事件,这个事件是 K8s 原生的事件,其实绝大多数的用户并不会关心,同时也可能看不懂。而事件中心,是希望能够…...
人口普查管理系统基于VUE+SpringBoot+Spring+SpringMVC+MyBatis开发设计与实现
目录 1. 系统概述 2. 系统架构设计 3. 技术实现细节 3.1 前端实现 3.2 后端实现 3.3 数据库设计 4. 安全性设计 5. 效果展示 编辑编辑 6. 测试与部署 7. 示例代码 8. 结论与展望 一个基于 Vue Spring Boot Spring Spring MVC MyBatis 的人口普查管理…...
使用VBA快速将文本转换为Word表格
Word提供了一个强大的文本转表格的功能,结合VBA可以实现文本快速转换表格。 示例文档如下所示。 现在需要将上述文档内容转换为如下格式的表格,表格内容的起始标志为。 示例代码如下。 Sub SearchTab()Application.DefaultTableSeparator "*&quo…...
力扣题解1870
这道题是一个典型的算法题,涉及计算在限制的时间内列车速度的最小值。这是一个优化问题,通常需要使用二分查找来求解。 题目描述(中等) 准时到达的列车最小时速 给你一个浮点数 hour ,表示你到达办公室可用的总通勤时…...
D3.js数据可视化基础——基于Notepad++、IDEA前端开发
实验:D3.js数据可视化基础 1、实验名称 D3数据可视化基础 2、实验目的 熟悉D3数据可视化的使用方法。 3、实验原理 D3 的全称是(Data-Driven Documents),是一个被数据驱动的文档,其实就是一个 JavaScript 的函数库,使用它主要是用来做数据可视化的。本次实…...
在Robot Framework中Run Keyword If的用法
基本用法使用 ELSE使用 ELSE IF使用内置变量使用Python表达式本文永久更新地址: 在Robot Framework中,Run Keyword If 是一个条件执行的关键字,它允许根据某个条件来决定是否执行某个关键字。下面是 Run Keyword If 的基本用法: Run Keyword…...
虚拟机ip突然看不了了
打印大致如下: 解决办法 如果您发现虚拟机的IP地址与主机不在同一网段,可以采取的措施之一是调整网络设置。将虚拟机的网络模式更改为桥接模式,这样它就会获得与主机相同的IP地址,从而处于同一网段。或者,您可以使用…...
LeetCode[中等] 763. 划分字母区间
给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。 注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是 s 。 返回一个表示每个字符串片段的长度的列表。 思路 贪心…...
Java LeetCode每日一题
997. 找到小镇的法官 package JavaExercise20241002;public class JavaExercise {public static void main(String[] args) {int[][] array {{1,3},{2,3},{3,1}};Solution solution new Solution();System.out.println(solution.findJudge(3, array));} }class Solution {pu…...
数据结构--集合框架
目录 1. 什么是集合框架 2. 背后所涉及的数据结构以及算法 2.1 什么是数据结构 2.2 容器背后对应的数据结构 1. 什么是集合框架 Java 集合框架 Java Collection Framework ,又被称为容器 container ,是定义在 java.util 包下的一组接口 int…...
Win10鼠标总是频繁自动失去焦点-非常有效-重启之后立竿见影
针对Win10鼠标频繁自动失去焦点的问题,可以尝试以下解决方案: 一、修改注册表(最有效的方法-重启之后立竿见影) 打开注册表编辑器: 按下WindowsR组合键,打开运行窗口。在运行窗口中输入“regedit”&#x…...
智能涌现|迎接智能时代,算力产业重构未来
前言 OpenAI首席执行官山姆奥特曼在《智能时代》中描绘了一个令人振奋的未来图景,其中算力产业将扮演至关重要的角色。奥特曼预测,我们可能在“几千天内”迎来超级智能,这一进程将极大加速社会结构的智能化转型。 这一预测与算力产业的未来…...
关于HTML 案例_个人简历展示01
案例效果展示 代码 <!DOCTYPE html> <lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>个人简历信息</title> </he…...
【前端开发入门】css快速入门
目录 引言一、css盒模型1. 盒模型概念2. 盒模型案例 二、css编写1. html文件内部编写1.1 标签style属性编写1.2 css选择器关联1.2.1 id选择器1.2.2 class选择器1.2.3 标签选择器1.2.4 css选择器作用域1.2.5 其他选择器1.2.6 各css选择器优先级 2. 单独维护css文件2.1 创建css文…...
java中创建不可变集合
一.应用场景 二.创建不可变集合的书写格式(List,Set,Map) List集合 package com.njau.d9_immutable;import java.util.Iterator; import java.util.List;/*** 创建不可变集合:List.of()方法* "张三","李四","王五…...
D25【 python 接口自动化学习】- python 基础之判断与循环
day25 for 循环 学习日期:20241002 学习目标:判断与循环﹣-35 for 循环:如何遍历一个对象里的所有元素? 学习笔记: for 循环与while循环的区别 for循环的定义 使用for循环遍历序列 使用for循环遍历字典…...
HTTP1.0和HTTP1.1有什么区别
HTTP/1.0 和 HTTP/1.1 是两个不同版本的 HTTP 协议。虽然它们的核心功能都是提供网页数据传输,但 HTTP/1.1 对 HTTP/1.0 做了很多改进,提升了性能和灵活性。以下是它们的主要区别: 1. 持久连接(Persistent Connection)…...
卡夫卡的理解
一、架构理解 在这个单聊新架构中,涉及多个服务器组件共同协作来实现单聊功能。 ChatAccessServer:可能负责处理单聊相关的访问请求,比如用户登录单聊以及发送单消息的请求接入。ChatHttpPushServer:推测其用于通过 HTTP 协议推…...
基础算法之滑动窗口--Java实现(上)--LeetCode题解:长度最小的子数组-无重复字符的子串-最大连续1的个数III-将x减到0的最小操作数
这里是Thembefue 今天讲解算法中较为经典的一个算法 > 滑动窗口 本讲解主要通过题目来讲解以理解算法 讲解分为三部分:题目解析 > 算法讲解 > 编写代码 滑动窗口 在正式进入题目的讲解之前,得先了解一下什么是滑动窗口,以及应该在什…...
Linux -- 文件系统(文件在磁盘中的存储)
目录 前言: 了解机械磁盘 初始盘片与磁头 盘片是怎么存数据的呢? 详解盘片 如何访问磁盘中的一个扇区呢? -- CHS 定位法 磁盘的逻辑存储 LBA(Logical Block Addressing --- 逻辑块寻址) 如何将 LBA 地址转换为…...
微服务(Microservices),服务网格(Service Mesh)以及无服务器运算Serverless简单介绍
文章目录 什么是微服务?一、定义与特点二、优势三、组件与架构四、应用场景五、挑战与解决方案什么是服务网格?一、定义与特点二、核心组件三、主要功能四、实现工具五、应用场景六、优势与挑战什么是Serverless?一、定义与特点二、主要领域三、优势四、应用场景五、挑战三者…...
西安网站建设案例/本地推广最有效的方法
废话不多说了,直接给大家贴代码了,具体代码如下所示:import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.ArrayList;import java.util.Arrays;import …...
网站栏目收录/青岛seo霸屏
OSPF路由优先级缺省:OSPF内部:10静态:60OSPF外部(O_ASE):150BGP:255OSPF基本概念与特点Open Shortest Path First,基于SPF算法的链路状态的内部网关协议适应范围广:支持各种规模的网络ÿ…...
相亲网站上做it的骗术/网络广告推广方法
select name from syscolumns where idobject_id(表名)...
海南做网站找谁/百度推广客户端app
此题相当恶心,多次超时 暴力是O(N^3),明显不会过,不用考虑。 比较好一点的思路是,ab -c,我们可以考虑用hash表存下来每个数字是否出现以及出现的次数,枚举a与b,然后看看此时-(ab)是否存在。O(N^3),但是,仍…...
wordpress主题开发出/2023百度秒收录技术
亚马逊的领导力准则是亚马逊文化的核心,它如同亚马逊的 DNA 融入贯穿每一个重要决策,深深影响着每一位亚麻人、影响着每一位亚马逊的客户、合作伙伴以及每一位亚马逊云科技的构建者。同时,亚马逊的领导力准则对亚马逊与开源的互动方式也产生着…...
2022企业所得税优惠政策/seo搜索引擎优化试题及答案
分2种情况: 1、如果Javascript在JSP中,则是可以用el表达式的,用引号包住即可。 2、如果Javsscript在js文件中,则是不行的。因为js文件是在客户端执行的。 http://blog.csdn.net/lirui0822/article/details/8169225 refurl:http://…...