【软考】流水线

news2024/11/15 7:05:48

目录

        • 一、指令控制方式
          • 1.1 说明
          • 1.2 顺序方式
          • 1.3 重叠方式
          • 1.4 流水方式
        • 二、流水线的种类
        • 三、流水的相关处理
          • 3.1 说明
          • 3.2 RISC 中采用的流水技术
            • 3.2.1 超流水线(Super Pipe Line)技术
            • 3.2.2 超标量(Super Scalar)技术
            • 3.2.3 超长指令字(Very Long Instruction Word,VLIW)技术
        • 四、吞吐率和流水建立时间
        • 五、例题
          • 5.1 例题1

一、指令控制方式
1.1 说明
  • 1.指令控制方式有顺序方式重叠方式流水方式3种。
1.2 顺序方式
  • 1.各机器指令之间顺序串行执行,执行完一条指令才能取下一条指令
  • 2.这种方式控制简单,但利用率低
1.3 重叠方式
  • 1.执行第1条指令的时候,可以开始执行第2条指令
  • 2.复杂性不高、处理速度较快
  • 3.容易发生冲突
  • 4.例如假设某计算机指令分为分析指令和执行指令两个小步骤,可以在某个时候,第一条指令中的执行指令和第二条指令中的分析指令同时在执行
  • 5.如图,指令1的执行指令和指令2的分析指令在同时执行
    在这里插入图片描述
1.4 流水方式
  • 1.流水方式是模仿工业生产过程的流水线(如汽车装配线)而提供的一种指令控制方式。
  • 2.流水技术(Pipelining)是把并行性或并发性嵌入到计算机系统里的一种形式,它把重复的顺序处理过程分解为若干子过程,每个子过程能在专用的独立模块上有效地并发工作。
  • 3.在概念上,流水可以看成是重叠的延伸。差别仅在于一次重叠是把指令解释分解为两个子过程,流水是分解为更多的子过程。
二、流水线的种类
  • 1.从流水的级别上,可分为部件级、处理机级以及系统级的流水。
  • 2.从流水的功能上,可分为单功能流水线和多功能流水线。
  • 3.从流水的连接上,可分为静态流水线和动态流水线。
  • 4.从流水是否有反馈回路,可分为线性流水线和非线性流水线。
  • 5.从流水的流动顺序上,可分为同步流水线和异步流水线。
  • 6.从流水线的数据表示上,可分为标量流水线和向量流水线。
三、流水的相关处理
3.1 说明
  • 1.由于流水时机器同时解释多条指令,这些指令可能有对同一主存单元或同一寄存器的“先写后读”的要求,这时就出现了相关。
  • 2.这种相关包括指令相关、访存操作数相关以及通用寄存器组相关等,它只影响相关的两条或几条指令,而且最多影响流水线的某些段推后工作,并不会改动指令缓冲器中预取到的指令内容,影响是局部的,所以称为局部性相关。
  • 3.解决局部性相关有两种方法:推后法通路法
  • 4.推后法是推后对相关单元的读,直至写入完成。
  • 5.通路法设置相关专用通路,使得不必先把运算结果写入相关存储单元,再从这里读出后才能使用,而是经过相关专用通路直接使用运算结果,以加快速度。
  • 6.转移指令(尤其是条件转移指令)与它后面的指令之间存在关联,使之不能同时解释。
  • 7.执行转移指令时,可能会改动指令缓冲器中预取到的指令内容,从而会造成流水线吞吐率和效率下降,比局部性相关的影响要严重得多,所以称为全局性相关。
  • 8.解决全局性相关有3种方法:猜测转移分支、加快和提前形成条件码、加快短循环程序的处理。
  • 9.条件转移指令有两个分支,一个分支是按原来的顺序继续执行下去,称为转移不成功分支;另一个分支是按转移后的新指令序列执行,称为转移成功分支。
  • 10.许多流水机器都猜选转移不成功分支,若猜对的几率很大,流水线的吞吐率和效率就会比不采用猜测法时高得多。
  • 11.尽早获得条件码以便对流水线简化条件转移的处理。
  • 12.例如,一个乘法运算所需的时间较长,但在运算之前就能知道其结果为正或为负,或者是否为0,因此,加快单条指令内部条件码的形成,或者在一段程序内提前形成条件码,对转移问题的顺利解决是很有好处的。
  • 13.由于程序中广泛采用循环结构,因此流水线大多采用特殊措施以加快循环程序的处理。
  • 14.例如,使整个循环程序都放入指令缓冲存储器中,对提高流水效率和吞吐率均有明显效果。
  • 15.中断和转移一样,也会引起流水线断流。好在中断出现的概率要比条件转移出现的概率低得多,因此只要处理好断点现场保护及中断后的恢复,尽量缩短断流时间即可。
3.2 RISC 中采用的流水技术
3.2.1 超流水线(Super Pipe Line)技术
  • 1.它通过细化流水、增加级数和提高主频,使得在每个机器周期内能完成一个甚至两个浮点操作。
  • 2.其实质是以时间换取空间。
  • 3.超流水机器的特征是在所有的功能单元都采用流水,并有更高的时钟频率和更深的流水深度。
  • 4.由于它只限于指令级的并行,所以超流水机器的 CPI(Clock Cycles Per Instruction,每个指令需要的机器周期数)值稍高。
3.2.2 超标量(Super Scalar)技术
  • 1.它通过内装多条流水线来同时执行多个处理,其时钟频率虽然与一般流水接近,却有更小的CPI。
  • 2.其实质是以空间换取时间。
3.2.3 超长指令字(Very Long Instruction Word,VLIW)技术
  • 1.VLIW 和超标量都是 20 世纪80年代出现的概念,其共同点是要同时执行多条指令,其不同在于超标量依靠硬件来实现并行处理的调度,VLIW 则充分发挥软件的作用,而使硬件简化,性能提高。
  • 2.VLIW 有更小的 CPI值,但需要有足够高的时钟频率。
四、吞吐率和流水建立时间
  • 1.吞吐率是指单位时间内流水线处理机流出的结果数。
  • 2.对指令而言,就是单位时间内执行的指令数。
  • 3.如果流水线的子过程所用时间不一样,则吞吐率p应为最长子过程的倒数。
  • 4.流水线开始工作,需经过一定时间才能达到最大吞吐率,这就是建立时间。
  • 5.若m个子过程所用时间一样,均为△t,则建立时间T=m△t。
五、例题
5.1 例题1
  • 1.题目
1.执行指令时,将每一节指令都分解为取指、分析和执行三步。已知取指时间为5△t,分析时间为2△t,
执行时间为3△t,如果按照[取指]k,[分析]k+1,[执行]k+2重叠的流水线方式执行指令,
从头到尾执行完500条指令需(B)△t。
A.2500
B.2505
C.2510
D.2515
  • 2.解析
1.流水线执行时间=流水线建立时间+(n-1)x流水线周期。
2.流水建立时间=5△t+2△t+3△t10△t。
3.流水线周期为时间最长的指令执行时间,即5△t。
4.流水线建立好时,已经执行了一次,所以剩下时间为(n-1)x5△t。

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

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

相关文章

阿一网络安全之log4j2漏洞CVE-2021-44228复现

漏洞简介 Apache Log4j 2 是对 Log4j 的升级,它⽐其前身 Log4j 1.x 提供了显 着改进,并提供了 Logback 中可⽤的许多改进,同时修复了 Logback 架构中的⼀些固有问题。 2021 年 12 ⽉,在 Apache Log4j2 中发现了⼀个 0-day 漏洞。 …

倒计时7天!MoonBit 游戏挑战赛即将开启!

基于 Wasm4 框架的 MoonBit 游戏开发指南 MoonBit 即将面向全国举办“编程创新挑战赛”,并包含游戏赛道。本教程将介绍本次比赛中使用的框架 Wasm4,以及如何使用 MoonBit 在 Wasm4 框架中编写游戏。相关赛事详情见文末。 如果你曾访问过 mooncakes 或我们…

这本大模型书太香了!全方位解析LLM-Agent 第一本给程序员看的AI Agent图书!

AI Agent火爆到什么程度? OpenAI创始人奥特曼预测,未来各行各业,每一个人都可以拥有一个AI Agent;比尔盖茨在2023年层预言:AI Agent将彻底改变人机交互方式,并颠覆整个软件行业;吴恩达教授在AI…

从0-1开发一个Vue3前端系统页面-10.博客页面优化及子菜单设计

注意: 本项目已将前端源码同步上传至Gitee,项目已开源, 仅供参考,不涉及商用,不得用其牟利,著作权归本人所有。 本系列后期只会对重要部分代码进行注释,难点会同步更新至专栏 开发遇到的问题_不…

linux df -h时没有查到root盘,root文件夹带着锁或者叉号的解决办法

文章目录 一、前言二、来龙去脉1、2、给root文件赋予权限3 、这个时候df -h 查看就可以看到root文件了 总结 一、前言 当时装的双系统,自认为会学习很多linux相关课程,买了个1T的固态,ubuntu上分了很多,结果显而易见,…

UE5学习笔记16-游戏模式中的一些事件,如何改变网格体和摄像头的碰撞

一、OnPostLogIn:此事件在玩家成功登录游戏后被调用 二、HandleStartingNuwplayer:在OnPostLogIn事件后被调用,可以用来定义新进入的玩家会发生什么 三、Spawn Default PawnAtTransform:这个事件触发游戏中实际的Pawn生成 四、…

bash: /home/xxx/anaconda3/bin/conda: No such file or directory

一背景 最近把conda 移动后,出现了一堆bug,目前pip不能使用,在此记录一下解决方案。 二报错信息 bash: /home/xxx/anaconda3/envs/yolov10/bin/pip3 /home/xxx/.conda/envs/yolov10/bin/python: bad interpreter: No such file or directo…

Leetcode 100.101.110.199 二叉树相同/对称/平衡 C++实现

Leetcode 100. 相同的树 问题:给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 /*** Definition for a binary tree node.* struct T…

多媒体技术(1.1)之图像分辨率

「分辨率」这个概念还有「解析度」等说法,所以能从字面上看出来,它描述的其实就是图像包含多少细节、有多「清晰」。但具体到怎么用数字来描述一个图像有多少细节,就有很多个描述的角度,于是「分辨率」有很多种意思。 相机的分辨…

代码随想录算法训练营day29 | 贪心算法 | 134.加油站、135.分发糖果、860.柠檬水找零、406.根据身高重建队列

文章目录 134.加油站思路小结 135.分发糖果思路拓展——环形分糖小结 860.柠檬水找零思路 406.根据身高重建队列思路小结 今天是贪心算法专题第三天,直接上题目 134.加油站 建议:本题有点难度,不太好想,推荐大家熟悉一下方法二 …

STM32基础篇:定时器 × 输入捕获

通道的概念 如下图右半部分,为定时器的总体结构框图: 可以看出,在时基单元下方,有四个长条形的结构,我们将其称之为:通道1~通道4;每一个通道都会连接一个IO引脚(对应左半部分IO引脚…

OZON什么产品好卖丨OZON婴儿用具产品

Top1 摇铃 Деревянная стойка тренажер Монтессори для мобилей и игрушек для новорожденных / развивающая дуга 商品id:1557614414 月销量:707 OZON婴儿用具…

MSSQL 手工注入(第一关)

简介 SQL注入是一种安全漏洞,通过它可以执行意外的SQL命令或访问数据库中的信息。MSSQL注入通常发生在应用程序将用户输入作为SQL查询的一部分执行时,而没有对输入进行适当的验证或清理。 以下是MSSQL手工注入的流程: 一、打开靶场选择第一关…

进阶岛 多模态模型部署微调实践

一、任务介绍 follow 教学文档和视频使用QLoRA进行微调模型,复现微调效果,并能成功讲出梗图.尝试使用LoRA,或调整xtuner的config,如LoRA rank,学习率。看模型Loss会如何变化,并记录调整后效果(选做&#x…

【Electron】桌面应用开发启动直接打开一个网址或者浏览器打开一个网址

【Electron】桌面应用开发启动时直接打开一个网址或者跳转浏览器打开一个网址 前一篇有写过 Electron 桌面应用开发快速入门到打包Windows应用程序 但是现在需要程序打开的时候直接打开一个链接,在程序的窗口打开或者直接跳转浏览器打开 一、启动时直接打开一个网…

后端完成api顺序

contoroller层 Service层 点击getById,如果没有getById函数就先声明一个 然后完成函数体 db层 数据访问对象.数据库方法 //作用是提供对数据库中特定表的操作方法

【Hot100】LeetCode—437. 路径总和 III

目录 1- 思路前缀和哈希表dfs 2- 实现⭐437. 路径总和 III——题解思路 3- ACM 实现 题目连接:437. 路径总和 III 1- 思路 前缀和哈希表dfs ① 前缀和 求二叉树的前缀和,每求一次用一个 sum 传参记录更新 ② 哈希表 key 为前缀和 ,value…

k8s集群部署(sealos)

目录 部署Ubuntu22和k8s环境 环境准备 虚拟机安装ubantu 配置hosts 配置静态ip地址 配置国内阿里云的源 Master节点安装sealos软件 启用root和允许ssh远程连接 禁用firewalld和iptables 关闭交换分区 配置ipvs功能 配置时间同步 使用sealos部署k8s集群 增加K8s的ma…

[Linux#46][线程->网络] 单例模式 | 饿汉与懒汉 | 自旋锁 |读写锁 | 网络基础 | 书单

目录 1.线程安全 1.1 线程安全的单例模式 1.2 饿汉与懒汉实现方式: 实操 2.锁 3.读者写者问题 实操 4.网络基础 4.1 初始协议 书单: 1.线程安全 STL中的容器和智能指针的线程安全性整理如下:STL容器线程安全性: 状态&…

zdppy+vue3+onlyoffice文档管理系统实战 20240823上课笔记 Python缓存框架的进一步封装

上节课遗留问题 封装一些简单的方法,比如: set:设置缓存,带默认超时时间get:获取缓存delete:删除缓存delete_all:清空缓存 封装set方法 基本方法 from zdppy_cache import Cache# 创建缓存…