流水线、超流水线、超标量技术对比

第1章 超标量处理器概览 摘录 1.1 为什么需要超标量? 如何才能让程序执行得更快?在计算机领域有这样一个经典的公式来计算一个程序的执行时间: 影响程序执行时间的因素: Total Instructions:程序总共需要执行指令的个数; Cycles/Instructions:执行每天指令所需要的周期数; Seconds/Cycle:每周期需要的时间; 从上面三个因素可以看出,要加快执行程序的速度,可以采取的策略有如下方式: (1) 减少程序中指令的数量,这个主要取决... 阅读详情

流水线

     流水线技术是一种将每条指令分解为多步,并让各步操作重叠,从而实现几条指令并行处理的技术。程序中的指令仍是一条条顺序执行,但可以预先取若干条指令,并在当前指令尚未执行完时,提前启动后续指令的另一些操作步骤。这样显然可加速一段程序的运行过程。 
市场上推出的各种不同的1 6位/ 3 2位微处理器基本上都采用了流水线技术。如8 0 4 8 6和P e n t i u m均使用了6步流水线结构,流水线的6步为: 
( 1 ) 
取指令。C P U从高速缓存或内存中取一条指令。 
( 2 ) 
指令译码。分析指令性质。 
( 3 ) 
地址生成。很多指令要访问存储器中的操作数,操作数的地址也许在指令字中,也许要经过某些运算得到。 
( 4 ) 
取操作数。当指令需要操作数时,就需再访问存储器,对操作数寻址并读出。 
( 5 ) 
执行指令。由A L U执行指令规定的操作。 
( 6 ) 
存储或"写回"结果。最后运算结果存放至某一内存单元或写回累加器A。 
       
在理想情况下,每步需要一个时钟周期。当流水线完全装满时,每个时钟周期平均有一条指令从流水线上执行完毕,输出结果,就像轿车从组装线上开出来一样。P e n t i u m、Pentium Pro和Pentium II处理器的超标量设计更是分别结合了两条和三条独立的指令流水线,每条流水线平均在一个时钟周期内执行一条指令,所以它们平均一个时钟周期分别可执行2条和3条指令。 
     
流水线技术是通过增加计算机硬件来实现的。例如要能预取指令,就需要增加取指令的硬件电路,并把取来的指令存放到指令队列缓存器中,使M P U能同时进行取指令和分析、执行指令的操作。因此,在1 6位/3 2位微处理器中一般含有两个算术逻辑单元A L U,一个主A L U用于执行指令,另一个A L U专用于地址生成,这样才可使地址计算与其它操作重叠进行。

 

超流水线

      超级流水线以增加流水线级数的方法来缩短机器周期,相同的时间内超级流水线执行了更多的机器指令。采用简单指令以加快执行速度是所有流水线的共同特点,但超级流水线配置了多个功能部件和指令译码电路,采用多条流水线并行处理,还有多个寄存器端口和总线,可以同时执行多个操作,因此比普通流水线执行的更快,在一个机器周期内可以流出多条指令。

 

      一般而言,CPU执行一条指令需要经过以下阶段:取指->译码->地址生成->取操作数->执行->写回,每个阶段都要消耗一个时钟周期,同时每个阶段的计算结果在周期结束以前都要发送到阶段之间的锁存器上,以供下一个阶段使用。所以,每个时钟周期所消耗的时间就是由以上几个阶段中的耗时最长的那个决定的。假设耗时最长的阶段耗时为s秒,那么时钟频率就只能设计到1/s赫兹(这里不考虑阶段间信号传递的时间和锁存器的反应时间)。

      那么,要提高时钟频率,一种可能的方法就是减小每个阶段的时间消耗。其中一种最简单的办法,就是将每个阶段再进行细分成更小的步骤,同样是细分后的每个阶 段,单个阶段的运算量小了,单位耗时s也就减少,这样实际上就是提高了时钟频率。这种将标准流水线细分的技术,就是超级流水线技术。当然,流水线和超级流 水线之间并没有很明显的区别。这样的技术,虽然提高了CPU的主频,但是也带来了很大的副作用:

      首先,细分后的每一个阶段都要在其后使用锁存器锁存,因此将一个阶段细分为N的子阶段并不能让单位时间减少到s/N, 而是s/N + d, 其中d为锁存器的反应时间。这实际上就是增加了多余的时间消耗。

      其次,随着流水线级数的加深,一旦分支预测出现错误,会导致CPU中大量的指令作废,这样的消耗是十分巨大的。

      以上原因,也就是什么Pentium IV具有31级的流水线,指令的执行效率却赶不上只有14级流水线的Pentium M

 

超标量
  超标量(superscalar)是指在CPU中有一条以上的流水线,并且每时钟周期内可以完成一条以上的指令,这种设计就叫超标量技术。 其实质是以空间换取时间。而超流水线是通过细化流水、提高主频,使得在一个机器周期内完成一个甚至多个操作,其实质是以时间换取空间。

一文解析超标量处理器 如上图所示,当处理器没有使用流水线的时候,它的时间周期是D,在使用了n级流水线之后,一条指令的平均执行周期变成了D/n+S,其中s表示为流水线中间的延迟。在处理器执行过程中,指令之间存在一定的相关性,所谓的相关性是指一条指令的执行依赖于另一条指令的执行结果,指令之间的执行顺序不能够改变,这制约了指令发射阶段的选择范围。然而,应用程序(APP)的不断发展对处理器性能有了更高的要求,要使得APP运行的稳定、流畅,软件工作者要深入理解处理器的微架构,理解指令的执行过程,做出一些更精细化的改善和优化。 阅读详情

相关推荐

超标量VS超流水线:3种多发技术性能对比与编译器优化技巧

本文深度解析了现代处理器实现指令级并行的三种核心技术:超标量、超流水线和超长指令字。通过对比其设计哲学、性能指标(如CPI与吞吐率)及硬件复杂度,揭示了各自的优势与挑战。文章重点探讨了编译器如何通过指令调度和寄存器重命名等优化技巧,有效化解数据相关等流水线冲突,从而充分挖掘硬件并行潜力,提升程序执行效率。

weixin_29260291的博客 74

计算机组成原理:超标量,让CPU的吞吐率超过1

问题 一个公式: 程序的CPU执行时间=指令数∗CPI∗ClockCycleTime程序的CPU执行时间 = 指令数 * CPI * Clock Cycle Time程序的CPU执行时间=指令数∗CPI∗ClockCycleTime 这个公式里,有一个叫做CPI的指标,CPI的倒数,又叫作 IPC(Instruction Per Clock),也就是一个时钟周期里面能够执行的指令树,代表了CPU的吞吐率。那么,在反复优化流水线架构的CPU里面,能够达到多少呢? 答案是:最佳情况下,IPC也只能到1。

OceanStar的博客 7040

Flutter蓝牙开发实战:flutter_blue_plus核心功能与实现原理剖析

本文深入剖析了Flutter蓝牙开发插件flutter_blue_plus的核心功能与实现原理。文章从源码解析入手,详细讲解了蓝牙状态管理、设备扫描、GATT连接、服务发现以及数据读写等关键流程的实现机制,并分享了实战中的性能调优与常见问题解决方案,帮助开发者高效构建跨平台蓝牙应用。

weixin_29014237的博客 443

流水线、超流水线、超标量

对在阅读Infineon手册时遇到的术语超流水线,超标量及流水线等概念的简单了解

安娜贝尔的博客 5782

ThinkBook 16 2024 Ubuntu驱动全攻略:从无线网卡到触控板

本文详细介绍了ThinkBook 16 2024在Ubuntu系统下的驱动问题解决方案,涵盖无线网卡、蓝牙、显卡和触控板等关键硬件的驱动修复步骤。通过具体命令和配置指南,帮助用户快速解决兼容性问题,提升Ubuntu在ThinkBook上的使用体验。

weixin_29200741的博客 826

电子工程师日记:用STM32F4的DCMI接口驱动OV2640时,那些数据同步的坑我都踩过了

本文分享了使用STM32F4的DCMI接口驱动OV2640摄像头时,在数据同步方面遇到的典型问题与解决方案。作者通过示波器分析PCLK相位、纠正DCMI_CR寄存器中同步信号极性的配置误区,并排查DMA传输瓶颈与FIFO溢出,最终实现了稳定的图像采集。文章为嵌入式工程师提供了宝贵的硬件调试经验与配置清单。

weixin_29189377的博客 156

计算机基本概念--超标量,多发射

多发射: 概念:是指存在多条流水线进行指令的译码, 取指令后,可以同时发射多条指令到不同的流水线进行译码。(和执行?) 超标量: 超标量是一条流水线中,存在多个执行部件,可以在上一条指令没有执行完成时,执行下一条指令。 即乱序执行。可以针对没有前后顺序关系的指令进行并行执行; 超标量是对程序员透明的,是指令级别的并行; 超标量是否意味着需要多条流水线?(好像不需要,如果有,好像最好?) 超线程: 概念:处理器可以同时执行多个指令,来自不同的线程; 超线程是线程级别的并行,需要程序员显示的编写超.

weixin_38812277的博客 4156

富芮坤FR801xH蓝牙协议栈启动流程和notify实现温度数据主动上传

文章目录一、蓝牙协议栈启动流程1.1 初始化代码1.2 初始化流程1.3 回调函数里的初始化二、notify实现2.1 notify介绍2.2 notify实现2.3.1 定义数据2.3.2 获取连接号conidx2.3.3 gatt_notification函数的使用三、notify温度上传测试3.1 蓝牙调试工具3.2 蓝牙调试器设置3.3 测试结果四、参考链接   基于sdk开发的好处是方便项目的快速落地,现在用的是SDK里面的源文件,目前只是学习FR801xH芯片的特性,裁剪这个SDK需要点时间,

weixin_43810563的博客 4318

流水线、超流水线、超标量(superscalar)技术对比

本文转载自:https://blog.youkuaiyun.com/qq_32092885/article/details/83349275 流水线 流水线技术是一种将每条指令分解为多步,并让各步操作重叠,从而实现几条指令并行处理的技术。程序中的指令仍是一条条顺序执行,但可以预先取若干条指令,并在当前指令尚未执行完时,提前启动后续指令的另一些操作步骤。这样显然可加速一段程序的运行过程。 市场上推出的各种不同的1 6位/ 3 2位微处理器基本上都采用了流水线技术。如8 0 4 8 6和P e n t i ...

zy010101博客 9637

YOLOv9实战:刀具磨损实时监控从摄像头到预测性维护(附车间落地代码)

摘要: 本文针对制造业刀具磨损监控痛点,提出基于YOLOv9的实时视觉检测方案。通过工业相机采集刀具图像,结合图像预处理(去油污、增强对比度)和深度学习模型,实现磨损等级分类与寿命预测。系统集成硬件选型(抗油污相机、红色环形光源)、数据增强(旋转、噪声模拟)及预测性维护(PLC联动),实测刀具利用率提升30%,工件报废率降至0.5%以下。详解车间部署、模型训练到系统落地的全流程,附代码与避坑指南,为工业视觉项目提供实战参考。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 541

swl安装无法与服务器建立链接,如何解决?

🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 备注:部分问题/疑难杂症搜集于互联网。

**My Coding Family** 2074

流水线、超流水线、超标量(superscalar)技术对比(转)

流水线      流水线技术是一种将每条指令分解为多步,并让各步操作重叠,从而实现几条指令并行处理的技术。程序中的指令仍是一条条顺序执行,但可以预先取若干条指令,并在当前指令尚未执行完时,提前启动后续指令的另一些操作步骤。这样显然可加速一段程序的运行过程。  市场上推出的各种不同的1 6位/ 3 2位微处理器基本上都采用了流水线技术。如8 0 4 8 6和P e n t i u m均使用了6步流...

沉迷科研刘昊然 1万+

uv pip install时出现error: Request failed after 3 retries 解决方案

本文主要介绍了uv pip install时出现error: Request failed after 3 retries解决方案,希望能对使用Python的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案 2.1 方法一 2.2 方法二

weixin_43178406的博客 12万+

【计算机组成原理】指令流水线常见问题解答:什么是超标量流水线?

本文深入探讨超标量流水线技术,这是现代CPU提升性能的核心方法。超标量通过多指令并行执行实现IPC>1,相比普通流水线增加了空间并行性。文章以问答形式解析超标量关键技术:动态调度、乱序执行、寄存器重命名机制;分析其性能瓶颈(数据依赖、缓存未命中等);比较超标量与超流水线、VLIW的区别;阐述其在ARM和RISC-V架构中的应用现状。文章指出,虽然单核IPC提升面临瓶颈,但通过与多核、超线程等技术协同,超标量仍是现代处理器设计的基石。

小李独爱秋的博客 1791

go实现MQTT broker(附完整源码)

go实现MQTT broker(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 571

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

一看就明白的超标量&超流水线&超线程简介

在RISC之后,出现了一些提高指令级并行性的技术,使得计算机在每个时钟周期里可以解释多条指令,这就是超标量技术和超流水线技术。 常规的标量流水线,每个时钟周期平均执行的指令的条数小于等于1,即它的指令级并行度小于等于1。 超标量 超标量技术是通过重复设置多个功能部件,并让这些功能部件同时工作来提高指令的执行速度,实际上是以增加硬件资源为代价来换取处理器性能的。使用超标量技术的处理器在一个时钟周期内可发射多条指令。 典型的标量流水线处理机把一条执行的执行过程分解为取指令、译码、执行、访存、写会等5级流

qq_39965097的博客 1万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

4.4 多指令流出技术

基于静态调度的多流出技术通过在每个时钟周期内流出多条指令来提高处理器性能。虽然这种方法能够有效减少或消除数据和控制冲突,但它也要求处理器具备复杂的冲突检测和处理能力。通过优化指令流出过程和采用先进的编译技术,可以进一步提高超标量处理机的性能。

tang7mj的博客 1937

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

计算机体系结构期末复习

计算机体系结构期末复习 文章目录计算机体系结构期末复习5 流水线技术5.1 知识点5.2 大题(完) 5 流水线技术 5.1 知识点 计算机体系结构在向着多核并行的趋势发展,包括数据级并行(DLP),指令级并行(ILP),线程级并行(TLP),请求级并行(RLP)。本章主要讲解ILP。ILP实现有三种方式,第一种是superpipelining,流水线或超流水线处理机;第二种是super-scal...

a634238158的博客 4121

计算机系统结构第二版第七章课后答案,计算机组织和系统结构第七章习题答案.doc...

习题给出以下概念的解释说明。指令流水线(Instruction pipelining)流水线深度(Pipeline Depth)指令吞吐量(Instruction throughput)流水线冒险(Hazard)结构冒险(Structural hazard)控制冒险(Control hazard)数据冒险(Data hazard)流水线阻塞(Pipeline stall)气泡(Bubble)空操作...

weixin_39727976的博客 1800

计算机体系结构_计算机体系结构知识笔记

计算机体系结构结构:计算机的概念结构、功能和性能特性,它从一个更高的层次对计算机的结构特征等宏观特征进行研究。1、计算机体系结构分类 2、CISC和RISC指令体系结构(ISA):一个处理器支持的指令和指令的字节级编码,不同的处理器族支持不同的指令体系结构。所以程序员编写的程序可以在一种机器上运行,就有可能在另一种机器上无法运行。2.1 CISC 复杂指令计算...

weixin_39940344的博客 174

计算机体系结构小总结

    最近,我阅读了一篇介绍计算机体系结构的文章,感觉比较简洁而且全面的介绍了计算机体系结构的内容。文章的链接是Modern Microprocessors A 90-Minute Guide!。因此,我谨以此文来做下总结,好让以后来回忆。     首先,我先说下对计算机体系结构(computer architecture)的理解。我觉得计算机体系结构就是计算机组成原理,而且与IC设计密切相关...

zzd的博客 1075

计算机组成原理第五章(中央处理器)

计组考研重点!王道考研计算机组成原理第五章--中央处理器

weixin_51376346的博客 4272
上一篇: MCS-51单片机的指令时序
下一篇: Thumb mode 与 ARM mode比较
csshuke
博客等级 码龄16年 1517粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值