2023.6.9小记——ARM的工作模式与状态

news2024/11/25 23:04:14

今天打算学一点就写一点,不然全部堆积到晚上压力太大了,有些东西写不完就要睡觉了💤


1. 什么是numpy?

1.1 numpy简介

是Python中的用于科学计算的库,提供高性能的多维数组对象和对应的操作函数,用于处理大型数据集和执行数值计算任务。

numpy的主要功能包含:

  • 多维数组对象:NumPy引入了一种称为ndarray(N-dimensional array,多维数组)的对象,可以表示具有相同数据类型的多维数组。它提供了对数组进行快速操作和高效存储的功能
  • 数组操作:NumPy提供了丰富的数组操作函数,包括数学运算、统计分析、线性代数、傅里叶变换、随机数生成等。这些操作函数能够高效地处理大规模数据集,并提供了广播(broadcasting)功能,使得数组之间的运算更加方便
  • 数组索引和切片:NumPy支持灵活的数组索引和切片操作,可以通过指定索引或切片范围来获取数组的子集。这使得对数组的数据进行选择、修改和处理变得更加方便。
  • 数组的存储和读取:NumPy提供了各种方法用于将数组保存到磁盘或从磁盘读取数组数据。支持的文件格式包括文本文件、二进制文件和压缩文件等。

值得注意的是,numpy的底层是c语言编写的,这表明其具备高度优化的运算性能。numpy同时还是许多数据分析和机器学习库的基础,如SciPy、Pandas和Scikit-learn等。

1.2 广播机制

这里解释一下上述第二点提到的numpy提供的广播机制:

NumPy的广播(Broadcasting)机制是一种灵活的规则,它允许在不同形状的数组之间进行算术运算。当进行操作的数组具有不同的形状时,广播机制会自动调整数组的维度,使它们具有兼容的形状,以便进行元素级的运算。
广播机制的主要目的是为了避免显式地进行数组形状的重复和复制操作。它可以在不增加数组的存储开销的情况下,实现对不同形状数组的元素级操作,提高了代码的简洁性和效率。

广播机制遵循以下规则:

  1. 数组的维度会自动调整为最大维度的数组的维度数
  2. 在任何维度上,如果一个数组的大小为1,而另一个数组的大小大于1,那么在该维度上,具有大小为1的数组会被扩展为与具有较大大小的数组具有相同的大小。
  3. 如果两个数组在某个维度上的大小不相等,且都不为1,那么在该维度上,两个数组都不能进行广播,将会引发错误。

那为什么要提出广播机制呢?好处如下:

  1. 简化代码:广播机制允许在不同形状的数组之间进行元素级的运算,避免了手动进行形状重复和复制的操作,简化了代码的编写和维护
  2. 减少内存开销:广播机制不会创建新的数组副本,而是通过重复使用已有数组的数据进行计算,减少了内存的占用和开销。
  3. 提高性能:通过避免显式的形状调整和复制操作,广播机制能够提高计算的效率,尤其在处理大规模数据集时具有明显的优势

2. 如何跑通李沐老师在d2l上的代码?

2.1 第一步

如果事先没有运行conda,那就先cd到conda安装的路径下,执行conda init命令:

~/miniconda3/bin/conda init

注意这里前面的miniconda3/bin只是示例,具体要以自己电脑上的安装路径为准。

2.2 第二步

如果没有报错,控制台会提示关闭当前shell,就直接关掉即可,第二次打开即可生效。

第二次打开后,输入命令:

conda create --name d2l python=3.9 -y

这表示创建一个名为d2l的环境,使用的是3.9Python版本。

然后就会出现下面的情况:

请添加图片描述

等待安装完成即可。

2.3 第三步

现在只需要输入:

conda activate d2l

即可完成环境激活

2.4 第四步

输入:

jupyter notebook

找到d2l-zh对应的路径,即可跑通李沐老师的代码。

请添加图片描述

在jupyter里面修改代码,点击运行可以实时查看到结果,对于动手写代码、初学者是非常友好的。

请添加图片描述

3. ARM处理器的7种工作模式

ARM微处理器主要支持7种运行模式

  1. 用户模式usr
  2. 系统模式sys
  3. 快中断模式fiq
  4. 外部中断模式irq
  5. 管理模式svc
  6. 数据访问终止模式abt
  7. 未定义指令终止模式und

详细解释如下图所示:

请添加图片描述

有下面几点需要注意:

  • 上述7种状态,除了用户模式之外,都是特权模式
  • 快中断、中断、管理、终止、未定义这五种都是异常模式。每种异常模式都有一些独立的寄存器,以避免异常退出时用户模式的状态不可靠。

4. ARM的两种工作状态

上述7种是ARM的工作模式,而ARM同时也有两种工作状态:thumb和arm状态。

  • thumb:处理器执行16位的thumb指令,要求半字对齐
  • arm:处理器执行32位的arm指令,要求字对齐。一个字4个字节,32位

那为什么要设置这两个工作状态呢?

因为不同的指令具有不同的特点,arm指令更长,适合计算能力需求较高的场景;而thumb的指令较短,可以减少存储空间,降低功耗提高性能。

在程序执行的过程中,两种状态可以随时切换,通过BX指令,根据操作数寄存器的最低位是0还是1来判断进入arm还是thumb。

BX R0

  • R0的最低位[0]为1时,从arm切换到thumb
  • R0的最低位[0]为0时,从thumb切换到arm

注意,异常情况下,只能处在arm状态。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信小程序——实现蓝牙设备搜索及连接功能

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

NewBing神器,让你在Chrome轻松使用ChatGPT4智能AI

ChatGPT4 相对于 3.5 优势 相较于 ChatGPT3.5,ChatGPT4 有以下优势: 更大的模型规模:ChatGPT4 有超过 16 亿个参数,是 ChatGPT3.5 的 4 倍之多,这意味着它可以处理更复杂的对话场景和更长的对话历史。更好的对话质量…

通过xfsdump和xfsrestore命令实现RHEL7 xfs文件系统误删除文件的恢复

在linux系统中,我们有时会“不小心”误删除一些文件,如果是自己是测试环境服务器可能“无所谓”。但是一旦发生在客户的生产环境,那就是“重大安全事故”。 我们能不能提前对一些重要的文件系统进行备份,以便当我们真的误删除一些…

2023最新最全面Java复习路线(含P5-P8),已收录 GitHub

小编整理出一篇 Java 进阶架构师之路的核心知识,同时也是面试时面试官必问的知识点,篇章也是包括了很多知识点,其中包括了有基础知识、Java 集合、JVM、多线程并发、spring 原理、微服务、Netty 与 RPC 、Kafka、日记、设计模式、Java 算法、…

SQLServer2022安装(Windows),已验证

一、SQLServer2022下载 1、官网下载地址 SQL Server 下载 | Microsoft 2、下载安装包 2.1、选择Developer版本,立即下载。 2.2、打开下载文件夹,双击运行SQL2022-SSEI-Dev.exe 尝试运行SQL2022-SSEI-Dev.exe,会收到以下信息:“…

3.Hive系列之docker-compose部署升级总结

1. 版本号修改 对于升级而言,我们最先考虑的是docker hub中有的较新的版本,然后我们需要简单了解下hadoop2与hadoop3的区别,首先明确的是端口号有所改变,如下图所示 2. Hive镜像构建 刚刚我们修改了Hive为bde2020/hive:3.1.2-po…

ESPG(European Petroleum Survey Group)

数据转换器(栅格) ,数据转换器(矢量)转换数据时经常会看到EPSG的坐标系标识。那么什么是EPSG呢? ESPG(European Petroleum Survey Group)坐标系是一种用于地球表面测量和地理信息处…

Xubuntu之将rm删除内容移至回收站(一百七十七)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

【小沐学Unity3d】Unity3d导入3D模型

文章目录 1、简介1.1 标准文件格式1.2 专有文件格式1.3 从 Autodesk 3ds Max 导入对象1.4 从 Blender 导入对象 2、测试2.1 新建项目2.2 导入fbx2.2 手动调整相机2.3 脚本控制相机 结语 1、简介 Unity 支持多种标准和专有模型文件格式。 Unity 内部使用 .fbx 文件格式作为其导…

【前端 - CSS】第 9 课 - CSS 初体验

欢迎来到博主 Apeiron 的博客,祝您旅程愉快 ! 时止则止,时行则行。动静不失其时,其道光明。 目录 1、CSS 定义 2、基础选择器 3、文字控制属性 4、示例代码 5、总结 1、CSS 定义 层叠样式表(Cascading Style …

IP组播6_PIM-SM(SSM)详解

目录 1.PIM-SM(SSM)简介 2.PIM-SM(ASM)工作原理 3.PIM-SM(SSM)实验 3.1 PIM-SM(SSM)常用配置命令 3.2 PIM-SM(ASM)实验配置步骤 3.3 PIM-SM&#xff08…

HTMLCSS Day01 功能元素与HTTP请求协议详解

文章目录 1.功能元素1.1.列表标签- HTML中列表标签的分类 1.1.1.无序列表:- 无序列表格式:- 无序列表样式- 注意点:- 无序列表应用场景: 1.1.2.有序列表- 有序列表格式:- 有序列表样式 1.1.3.定义列表- 定义列表的格式:- 定义列表的应用场景- 定义列表的注意点 1.2.表格标签- 什…

【算法】手写题

文章目录 画一个三角形实现三栏布局通过position和margin通过float和margin通过flex实现 变量提升题实现边框0.5px深拷贝快速排序手写发布订阅/事件总线 画一个三角形 .box1 {width: 0;height: 0;border: 10px solid;border-color: red transparent transparent transparent;}实…

window编写redis服务启动脚本

日常工作中,每次启动项目总会忘记开启redis服务,并收货一天中的第一个项目报错,然后经历繁琐的文件查找redis所在目录,并点击redis-server.exe,启动服务,于是笔者在想,如果在桌面写个脚本一键启…

新项目,不妨采用这种架构分层,很优雅

在专栏开篇提到过DDD(Domain-Driven Design,领域驱动设计)学习起来较为复杂,一方面因为其自身涉及的概念颇多,另一方面,我们往往缺乏实战经验和明确的代码模型指导。今天,我们将专注于DDD的分层…

机器学习笔记 - EANet 外部注意论文简读及代码实现

一、论文简述 论文作者提出了一种新的轻量级注意力机制,称之为外部注意力。如图所示,计算自注意力需要首先通过计算自查询向量和自关键字向量之间的仿射关系来计算注意力图,然后通过用该注意力图加权自值向量来生成新的特征图。外部关注的作用…

条款29:假定移动操作不存在、成本高、未使用

移动语义可以说在C11的所有语言特性中占据着首要中的首要地位。“移动容器现在和复制指针一样成本低廉了!”这是你很可能听说过的,类似说法还有“复制临时对象现在已经如此高效,如果刻意在撰写代码总避免它,就无异于犯了过早优化的…

java SSM 程序在线评判系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM 程序在线评判系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,springspringMVCmybatis),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采…

PDCA循环

PDCA循环 由美国质量管理专家沃特阿曼德休哈特(Walter A. Shewhart)首先提出的,由戴明采纳、宣传,获得普及,所以又称戴明环。 模型介绍 戴明是一位美国的质量管理大师,却成名于日本。在他的帮助下&#xf…

JQuery 操作Class实现前段交互方案(推荐)

一、JQuery基础控制图片宽度实现动画交互 1.html页面声明周期 //页面生命周期 //页面的数据html,加载完成, 图片ajax视频 在异步加载中 //document.ready---DOMContentLoaded ----小程序onload ---Vue created() //页面加载完成 //window.onload…