ARM嵌入式学习--第二天

news2024/10/26 11:13:31

-指令流水线

    -基础知识

    1.流水线技术通过多个功能部件并行工作来缩短程序执行时间,提高处理器的效率和吞吐率

    2.增加流水线级数可以简化流水线的各级逻辑,进一步提高了处理器的性能

    3.以三级流水线分析:

        pc代表程序计数器,流水线使用三个阶段,因此指令分为三个阶段执行:

            1>取指(从存储器装载一条指令)

            2>译码(识别将要执行的指令)

            3>执行(处理指令并将结果写入寄存器)

        (**注:pc值=当前程序执行位置+8)

-流水线的几种情况总结

-单周期指令--一步到位

描述:

    1.上图仅为处理简单的寄存器操作指令(不包括存储器访问指令跳转指令

存在存储器访问指令,跳转指令的情况下会出现流水线阻断情况,导致流水线的性能下降,上图给出的是流水线的最佳运行情况)

    2.上图中的MOV,ADD,SUB...等指令为单周期指令,并且都是简单的寄存器指令

    3.上图从T1开始,用3个时钟周期执行了3条命令,指令平均周期数(CPI)等于1个时钟周期

分步指令--有先有后

流水线阻断的原因和过程:仅有一个线作为数据和地址传输,所以执行LDR/STR指令,线被占用,等待LDR指令执行结束,数据/地址总线才会被释放 

 描述:

    对存储器的访问指令LDR就是非单周期指令,这类指令在执行阶段,首先要进行存储器的地址计算,占用控制信号线,而译码的过程同样需要占据控制信号线,所以下一条指令的译码被阻断,并且由于LDR访问存储器和回写寄存器的过程中需要继续占用执行单元,所以下一条的执行也被阻断;由于采用冯.诺依曼体系结构,不能同时访问数据存储器和指令存储器,当LDR处于访存周期的过程中时,EOR指令的取指被切断,因此处理器用8个时钟周期执行了6条指令,指令的平均周期(CPI)=1.35个时钟周期

-分支流水线--跳转指令

(BL执行过程中包括俩个附加操作--写链接寄存器和调整程序指针,这俩个操作仍然占用执行单元,这时处于译码(D)和取指(F)的流水线被阻断) 

    BL指令:

        1.找地址(link)---  连接相关地址 ---  冯诺依曼一根线被占用

        2.跳转(B)---  跳转到相关位置  ---  冯诺依曼一根线被占用

        3.执行完上面俩个步骤后,BL指令才执行结束,此时跳到被连接的指令SUB和ORR指令被抛弃

-中断(进入异常模式)-- 随时来

中断发生后,不打断当前正在执行的指令,即等待当前指令执行结束;执行完当前指令再去处理中断

发生异常后,CPU进入异常模式,硬件执行以下六步:

    1.当前指令执行阶段:当有中断发生时,当前指令在执行

    2.中断处理入口:当前指令执行结束后,处理中断

    3.解码阶段:DI—中断使能,设置相应标志位—进入ARM态—异常向量表的跳转start.S

    4.中断处理:EI—中断处理—void  do—irq

    5.连接(LR寄存器)地址—跳转会ARM指令程序中—LR

    6.修正返回地址—pc = lr  -4

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

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

相关文章

Graph Contrastive Learning 图对比学习GCL

Preamble GCL主要任务:学习一个编码器,可以编码出结构和结点特征信息,得到一个低维的表达 早期大部分GNN模型都是有监督的训练 自监督学习主要分成两种:生成式(用已有信息去预测自己的其他信息) and 对…

C++学习笔记----9、发现继承的技巧(一)---- 使用继承构建类(1)

在前面的章节中,你学到了继承关系是一种真实世界对象以层次存在的模式。在编程世界中,当需要写一个类基于其构建,或进行细微的修改的另一个类时,那种模式就有了关系。完成这个目标的一个方式是拷贝一个类的代码粘贴到另一个类中。…

一个月学会Java 第14天 内部类

Day14 内部类 类有外边的public class,然后还有一个文件多个的class,但是有没有想过,class可以作为成员也就是类内部的类,甚至作为方法内部的属性也就是类内部的方法的内部出现。除了这两个, 还有直接对着上节课讲的抽…

GeoScene Pro教程(008):GeoScenePro数据查询和检索

文章目录 1、工具分类2、数据常用工具2.1 加载数据2.2 查询需求2.2.1 按照属性查询查询1:人口大于300万的城市有哪些查询2:自治州有哪些查询3:城市名字中带有“荆”的有哪些补充2.2.2 按照位置查询需求2:导出湖北省境内的铁路数据需求3:武汉市共有多少条铁路2.2.3 空间连接…

48 Redis

48 Redis 前言 Redis(Remote Dictionary Server ),即远程字典服务。是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 redis会周期性的把更新的数据写入磁盘或者把修改操…

RTSP与ONVIF协议的区别及其在EasyCVR视频汇聚平台中的应用

在视频监控和物联网设备领域,RTSP(Real Time Streaming Protocol)和ONVIF(Open Network Video Interface Forum)是两个重要的协议,它们各自在视频流的传输和控制上发挥着不同的作用,并在实际应用…

网络安全之XXE攻击

0x01 什么是 XXE 个人认为,XXE 可以归结为一句话:构造恶意 DTD 介绍 XXE 之前,我先来说一下普通的 XML 注入,这个的利用面比较狭窄,如果有的话应该也是逻辑漏洞。 既然能插入 XML 代码,那我们肯定不能善罢…

基于Nodemcu的手机控制小车

基于Nodemcu的手机控制小车 一、项目说明二、项目材料三、代码与电路设计四、轮子和车体五、电路连接六、使用方法 一、项目说明 嗨,机器人项目制造者们!在这个项目中,我制作了这辆简单但快速的遥控车,它可以通过智能手机控制&am…

gaussdb 主备版本8 SQL参考 学习

SQL参考 1 数据类型 1.1 货币类型 1.1.1 货币类型存储带有固定小数精度的货币金额。 1.2 布尔类型 1.2.1 true:真 1.2.2 false:假 1.2.3 null:未知(unknown) 1.3 日期/时间类型 1.3.1 DATE 输出格式:仅支…

MySQL-06.DDL-表结构操作-创建

一.DDL(表操作) create database db01;use db01;create table tb_user(id int comment ID,唯一标识,username varchar(20) comment 用户名,name varchar(10) comment 姓名,age int comment 年龄,gender char(1) comment 性别 ) comment 用户表; 此时并没有限制ID为…

圈子系统APP小程序H5该如何设置IM?

搭建圈子系统的常见问题,以及圈子论坛系统的功能特点 社交圈子论坛系统的概念 圈子小程序源码 多客圈子系统 圈子是什么软件 跟进圈一个系统的软件 为圈子系统APP小程序H5设置IM(即时通讯),需要遵循一系列步骤来确保通讯功能的稳定、安全和高…

企业架构之从理论指南到实践指导企业数字化转型

理论与实践结合的数字化转型之道 在当今的全球化经济中,企业面临着前所未有的数字化转型压力。数字化转型不仅是技术的更新换代,更是业务、组织、文化和战略的系统性重塑。对于企业来说,如何将理论转换为有效的实践路径,是推动数…

STM32 通用同步/异步收发器

目录 串行通信基础 串行异步通信数据格式 USART介绍 USART的主要特性 USART的功能 USART的通信时序 USART的中断 串行通信基础 在串行通信中,参与通信的两台或多台设备通常共享一条物理通路。发送者依次逐位发送一串数据信号,按一定的约定规则被接…

乐鑫ESP32-S3无线方案,AI大模型中控屏智能升级,提升智能家居用户体验

在这个由数据驱动的时代,人工智能正以其前所未有的速度和规模改变着我们的世界。随着技术的不断进步,AI已经从科幻小说中的概念,转变为我们日常生活中不可或缺的一部分。 特别是在智能家居领域,AI的应用已成为提升生活质量、增强…

linux下编译鸿蒙版curl、openssl

一.环境准备 1.参考说明 NDK开发介绍:https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/napi/ndk-development-overview.md 2.NDK下载 点击介绍页面中的链接可以跳转到相应下载页面: 下载相应版本: 下载完毕后解压到指定目…

Matlab详细学习教程 MATLAB使用教程与知识点总结

Matlab语言教程 章节目录 一、Matlab简介与基础操作 二、变量与数据类型 三、矩阵与数组操作 四、基本数学运算与函数 五、图形绘制与数据可视化 六、控制流与逻辑运算 七、脚本与函数编写 八、数据导入与导出 九、Matlab应用实例分析 一、Matlab简介与基础操作 重点内容知识…

第2章 STM32最小系统介绍

第2章 STM32最小系统介绍 1. STM32最小系统组成 2. STM32启动模式 1.STM32最小系统组成 (1)电源电路 (2)复位电路 (3) 晶振电路 (4)下载电路 可打开开发板原理图查看 2.STM32启动模式 在STM…

Postman最新V11版本关键更新一览

Postman作为接口测试中,被广泛应用的一款主流工具,以其丰富的功能,灵活方便的使用方式,广受欢迎。最新发布的V11版本则在向协作平台转型的过程中一路狂奔,增加大量全新的协作支持。下面我们就一起来看看都有哪些变化吧…

基于Arduino的泡茶机器人

打造你的完美泡茶助手 引言 你是否曾遇到过泡出的茶太淡或太苦?通过这个项目,你可以创建一个设备,为你的茶包提供完美的浸泡时间。只需附上一个茶包并放置你的杯子,设备就会开始工作!它将完美地按照你的喜好浸泡你的…

数通--3

一、动态路由 内部 路由器之间要互联互通,必须遵循相同的协议 企业内部用 IGP,企业之间用BGP RIP(已淘汰,不考) 距离就是长短,矢量就是方向,即路由的出接口 一台路由器 A 配好RIP,…