ARM 指令流水线

news2024/11/24 19:59:23

CPU要执行某一个指令,第一步,PC给内存发送地址,IR接收内存返回的指令;第二步,指令译码器解析IR中的指令;第三步,寄存器执行译码结果对应的运算单元。 

实际上,译码器在译码的时候,PC就啥都不干吗,很显然不是,这个时候PC就会自增4来准备取下一条指令。下面我们先通过工厂流水线运作的例子,来初步理解流水线的运作过程。


目录

一、工厂多级流水线理解

1、一级流水线

2、 三级流水线

二、指令流水线

1、三级指令流水线的运作流程 

2、指令流水线的发展以及存在的局限性


一、工厂多级流水线理解

每一个货物的处理包含了三个步骤:组装、包装、装箱

1、一级流水线

一级流水线其实就是只有一个工人,那就说明一个工人要干三个工作,这个时候只能按照组装、包装、装箱的步骤来进行。

第1s,工人组装第一个货物;

第2s,工人包装第一个货物;

第3s,工人装箱第一个货物;

第4s,工人开始组装第二个货物;

... ...

无论哪个时刻,每1s都只能干一件事。

2、 三级流水线

三级流水线其实就是每一步都分配了一个工人,工人A负责组装,工人B负责包装,工人C负责装箱

第1s,工人A先组装第一个货物;

第2s,工人B接着包装第一个货物,这时工人A开始组装第二个货物;

第3s,工人C装箱第一个货物,工人B开始包装第二个货物,工人A开始组装第三个货物;

第4s,工人C装箱第二个货物,工人B开始包装第三个货物,工人A开始组装第四个货物;

... ...

大概2s以后,每1s的时间里都有三件事在同时处理,这就是流水线的基本理念。

 

二、指令流水线

类比上面的工厂流水线,CPU处理指令也可以大致分成三步,指令获取、指令译码、指令执行。下面我们直接介绍指令三级流水线。

1、三级指令流水线的运作流程 

第1s,PC发送0x00地址,获取到的地址保存到IR。

第2s,指令译码器解析第一条指令,此时PC开始获取第二条指令。

第3s,运算器执行第一条指令,译码器解析第二条指令,PC获取第三条指令。

第4s,运算器执行第二条指令,译码器解析第三条指令,PC获取第四条指令。

2、指令流水线的发展以及存在的局限性

(1) 流水线的发展

ARM7采用 3 级流水线

ARM9采用 5 级流水线

Cortex-A9采用 8 级流水线

注意:虽然流水线的级数越来越多,本质还是三级流水线,只不过是在三级流水线的基础上进行了细分。

(2) 流水线的局限性

指令流水线机制的引入确实可以大大提升指令执行的速度,但是在实际执行程序的过程中,很多情况下流水线是无法形成的。比如异常发生时,处理器要切换模式,保存上下文内容,然后跳转异常处理程序,在开始执行处理程序之前,流水线都无法正常运作。

因此,流水线的引入只能是优化了原本的流程,流水线的级数也不能太多,流水线级数越多,芯片设计的复杂程度也越高,芯片的功耗也越高。

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

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

相关文章

flutter 基于百度地图的地图选址,包括移动选址,地区搜索 ,仿微信地图选址

flutter 最近有在地图上选择地址的需求,要求如下 1.移动地图获取根据地图中心点获取周边的poi信息 2.搜索,根据搜索内容提示相关地点信息,点击移动到相关位置,显示出该位置周边的poi信息 废话少说,先上视频 flutter…

菜鸟Linux(2):进程优先级与进程状态

"才一年,看着世界变迁,有种沧海桑田" 一、进程调度 与 进程优先级 (1)何为优先级 双击.exe(可执行程序)文件 会发生什么? 但是,当我们使用电脑的时候,不仅仅只会 启动一个程序! 系统中一定会有多个 进程同时存在! 然而,需求是无…

什么是云手机?云手机的原理是什么?

什么是云手机? 云手机(Cloud Phone)是在云上运行APP的仿真手机。云手机服务根据不同场景提供多种规格的云手机,稳定24小时不间断,全面兼容Android原生APP,流畅运行大型手游,是移动办公好助手。云手机服务为您提供高性能、安全、…

微服务Spring Boot 整合 Redis 实现好友关注 – Feed流实现推送到粉丝收件箱

文章目录⛄引言一、Redis 实现好友关注 -- Feed流实现推送到粉丝收件箱⛅Feed 流实现方案⚡推送到粉丝收件箱三、Redis 实现好友关注 -- 实现分页滚动查询 实时获取信息⛵小结⛄引言 本博文参考 黑马 程序员B站 Redis课程系列 在点评项目中,有这样的需求&#xff…

【正点原子I.MX6U-MINI】删除开机内核Logo和进度条界面Logo

一、编译内核 内核源码1、例程源码-》3、正点原子 Uboot 和 Linux 出厂源码-》linux-imx-4.1.15-2.1.0-g8a006db.tar.bz2。 在 Ubuntu 中新建名为“alientek_linux”的文件夹,然后将 linux-imx-4.1.15-2.1.0-g8a006db.tar.bz2 这个压缩包拷贝到前面新建的 aliente…

Revit中用楼板编辑创建坡道的两种方法

在绘制坡道的时候,有一种两侧带坡度的坡道,一般我们采用楼板编辑的方式来创建。 方法有两种: 第一种是听过添加子图元的点来创建,方法如下, 首先绘制设计所需的楼板尺寸,完成之后点击楼板,形状编…

【Flutter 组件】004-基础组件:图片及 ICON

【Flutter 组件】004-基础组件:图片及 ICON 文章目录【Flutter 组件】004-基础组件:图片及 ICON一、图片1、Image概述Image 的几个构造方法常用属性ImageProvider2、从 asset 中加载图片第一步:准备图片第二步:使用图片第三步&…

9.高性能计算 期末复习

文章目录1.提纲2.第二章 并行硬件&程序设计2.1 SIMD&MIMD2.2 可扩展性2.7 串行程序并行化(poster四步:划分、通信、聚合、分配)3.mpi2.1 点对点gemm2.2集合通信gemmsend/recv实现reducesend/recv 实现ring AllReduce2.3 加速比2.4 奇…

数据预处理的方法有哪些?

数据处理的工作时间占据了整个数据分析项目的70%以上。因此,数据的质量直接决定了分析模型的准确性。那么,数据预处理的方法有哪些呢?比如数据清洗、数据集成、数据规约、数据变换等,其中最常用到的是数据清洗与数据集成&#xff…

医学影像篇

影像组学研究的基本流程知识点 01 准备工作 研究前我们先要做好准备工作:(这个准备工作呢就好像小白做菜) 最开始,我们往往主动提出或者被提出了一个临床问题(临床问题可能是老板直接安排的,也可能是在临…

【网管日记】Nginx基本介绍、安装与使用

Nginx基本使用 基本介绍 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是 占用内存少,并发能力强 ,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用ngin…

AntV-G6:图表自动居中显示/画布自适应/fitView

需求描述 图表节点较多时,可能分布到屏幕可视范围之外,期望图表自动居中显示 调研分析 阅读官网文档:G6.Graph配置项,一下就看到了这个配置项: 看起来只要在初始化图表的配置里加上“fitView: true”就能万事大吉了…

解决PyCharm中opencv不自动补全的问题

解决PyCharm中opencv不自动补全的问题前言解决办法前言 今天下载opencv后,发现用pycharm打开并没有出现代码补全的情况,对于我这种新手极其不友好,故我去网上寻找方法。 opencv版本:4.6.0 寻找半天 有的说,要移动cv…

数据结构——二叉树的顺序存储(堆)

二叉树的顺序存储 顺序结构存储就是使用数组来存储,一般使用数组只适合表示完全二叉树,因为不是完全二叉树会有空间的浪费。而现实中使用中只有堆才会使用数组来存储,关于堆我们后面的章节会专门讲解。二叉树顺序存储在物理上是一个数组&…

玩转MySQL:如何在高并发大流量情况下正确分库分表海量数据

引言 本篇数据库专栏内容,主要会讲解不同高并发场景下的MySQL架构设计方案,也包括对于各类大流量/大数据该如何优雅的处理,也包括架构调整后带来的后患又该如何解决?其中内容会涵盖库内分表、主从复制、读写分离、双主热备、垂直分…

极简而高效的沟通管理法(有点长,但都是干货)

我想说的意思不是说为了体现工作的价值,要故意提高工作的沟通成本,相反,我们的确需要通过归纳总结梳理标准话的流程、甚至是工具化的手段来降低一个领域的沟通,但我们同时工作在找更复杂、更需要去沟通的场景中,去创造…

【PTA-训练day16】L2-028 秀恩爱分得快 + L1-064 估值一亿的AI核心代码

!L2-028 秀恩爱分得快 - 分块大模拟 PTA | 程序设计类实验辅助教学平台 这个题还是挺考验 函数合理运用 和 数据模拟处理能力 的 思路: 因为可能出现-0这种输入 所以不能是int型 stoi() 将字符串转化为整数先把每张照片的人 按照片编号储存因为题目只要…

手慢无!阿里云神作被《Spring Boot进阶原理实战》成功扒下,限时

小编又来给大家分享好书了:郑天民老师的 《Spring Boot进阶:原理、实战与面试题分析》,别问网上有没有开源版本!问就是我也不知道,哈哈!小编会在文末附电子版下载方式。 郑天民是谁? 资深架构师和技术专家…

非程序员,到底该不该学Python

前言 最近被各种Python的小广告轰炸。也有很多非程序员的朋友咨询Python相关的事儿。(前两年是前端) 所以今天不讲技术,纯BB。 进入正题吧: Python是啥: 编程语言。和大多数编程语言一样。它只能帮助人类完成一些…

3000字带你读懂:BI能解决报表解决不了的什么问题?

一、BI不等于报表 工作原因,老李经常跟不同行业的人打交道。不聊不知道,在大肆谈论“数字化转型”、“信创”、“业务对象数字化”、“BI”这类大而广的词语之下,隐藏着的却是国人的无知。搞业务的朋友不太懂这类工具和概念,我也…