0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CPU流水线的问题

FPGA之家 来源:strongerHuang 作者:strongerHuang 2022-09-22 10:04 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

为什么有些CPU的主频更低,但运算效率却更高呢?

比如:51单片机30M主频,STM32单片机20M主频,执行相同一段代码可能主频更低的STM32所花的时间更短。

这里就牵涉到CPU流水线的问题,本文围绕CPU流水线描述相关内容。

一、早期CPU流水线

1.流水线来源

流水线的概念来源于工业制造领域,以汽车装配为例来解释流水线的工作方式,假设装配一辆汽车需要四个步骤:

1.冲压:制作车身外壳和底盘等部件;

2.焊接:将冲压成形后的各部件焊接成车身;

3.涂装:将车身等主要部件清洗、化学处理、打磨、喷漆和烘干;

4.总装:将各部件(包括发动机和向外采购的零部件)组装成车;

汽车装配需要冲压、焊接、涂装和总装四个工人,最简单的方法是一辆汽车依次经过上述四个步骤装配完成之后,下一辆汽车才开始进行装配,最早期的工业制造就是采用的这种原始的方式,即同一时刻只有一辆汽车在装配。

不久之后人们发现,某个时段中一辆汽车在进行装配时,其它三个工人都处于闲置状态,显然这是对资源的极大浪费,于是思考出能有效利用资源的新方法,即在第一辆汽车经过冲压进入焊接工序的时候,立刻开始进行第二辆汽车的冲压,而不是等到第一辆汽车经过全部四个工序后才开始,这样在后续生产中就能够保证四个工人一直处于运行状态,不会造成人员的闲置。这样的生产方式就好似流水川流不息,因此被称为流水线。

2.CPU流水线

1989 年推出的 i486 处理器引入了五级流水线。这时,在 CPU 中不再仅运行一条指令,每一级流水线在同一时刻都运行着不同的指令。这个设计使得 i486 比同频率的 386 处理器性能提升了不止一倍。

五级流水线中的取指阶段将指令从指令缓存中取出(i486 中的指令缓存为 8KB);

第二级为译码阶段,将取出的指令翻译为具体的功能操作;

第三级为转址阶段,用来将内存地址和偏移进行转换;

第四级为执行阶段,指令在该阶段真正执行运算;

第五级为退出阶段,运算的结果被写回寄存器或者内存。

由于处理器同时运行了多条指令,大大提升了程序运行的性能。

二、CPU流水线技术

CPU流水线技术是一种将指令分解为多步,并让不同指令的各步操作重叠,从而实现几条指令并行处理,以加速程序运行过程的技术。

指令的每步有各自独立的电路来处理,每完成一步,就进到下一步,而前一步则处理后续指令。

a518bba0-3a17-11ed-9e49-dac502259ad0.jpg

采用流水线技术后,并没有加速单条指令的执行,每条指令的操作步骤一个也不能少,只是多条指令的不同操作步骤同时执行,因而从总体上看加快了指令流速度,缩短了程序执行时间。

流水线技术是通过增加计算机硬件来实现的。它要求各功能段能互相独立地工作,这就要增加硬件,相应地也加大了控制的复杂性。如果没有互相独立的操作部件,很可能会发生各种冲突。例如要能预取指令,就需增加指令的硬件电路,并把取来的指令存放到指令队列缓冲器中,使微处理器能同时进行取指令和分析、执行指令的操作。

---来自百度百科

三、流水线与代码执行效果

为什么说同主频的51单片机相比STM32执行效率低呢?

除了大家认为的8位和32位宽度区别之外,还有一个就是51单片机不支持流水线(也可以理解为单流水线),而STM32支持流水线。

Cortex‐M3处理器使用一个 3 级流水线。流水线的 3 级分别是:取指、解码和执行, 如图:

a53c6ba4-3a17-11ed-9e49-dac502259ad0.png

通过下面一张图来对比单流水线和多级流水线,你就更能明白为什么51单片机执行效率低了。

a55d21dc-3a17-11ed-9e49-dac502259ad0.jpg

四、多级流水线优缺点

并非在所有情况下流水线技术都起作用。可能有一些缺点。如果一条指令流水线能够在每一个时脉周期接纳一条新的指令,被称为完整流水线(fully pipelined)。因流水线中的指令需要延迟处理而要等待数个时脉周期,被称为非完整流水线。

当一名程序员(或者组合者/编译者)编写组合代码(或者汇编码)时,他们会假定每个指令是循序运行的。而这个假设会使流水线无效。当此现象发生后程序会表现的不正常,而此现象就是危害。不过当前有提供几种技术来解决这些危害像是转发与延迟等。

1.优点

减少了处理器执行指令所需要的时脉周期,在通常情况下增加了指令的输入频率(issue-rate)。

一些集成电路,例如加法器或者乘法器,通过添加更多的环路使其工作得更快,如果以流水线替代,能相对地减少环路。

2.缺点

流水线处理器设计复杂度更高、生产成本更高;

流水线的处理器必须在数据路径中添加额外触发器。

非流水线处理器有固定指令位宽,流水线处理器的性能更难以预测,并且不同的程序之间的变化可能更大。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11357

    浏览量

    226209
  • 流水线
    +关注

    关注

    0

    文章

    128

    浏览量

    27285
  • 工业制造
    +关注

    关注

    0

    文章

    451

    浏览量

    28848

原文标题:为什么CPU流水线会提高代码执行效率?

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    效率跃升:将Gemini 3.1 Pro镜像站设为主力后,如何搭建自动化文本处理流水线

    国内AI深度用户早已不满足于“用上模型”,而是追求“用顺模型”。将Gemini 3.1 Pro固化为日常文本处理主力后,下一步自然是将重复性任务串成自动化流水线。目前无需特殊网络环境、每日提供免费
    的头像 发表于 05-06 10:16 468次阅读
    效率跃升:将Gemini 3.1 Pro镜像站设为主力后,如何搭建自动化文本处理<b class='flag-5'>流水线</b>

    软通动力ASDM AI优先软件研发流水线助力软件工程发展

    在 AI 深度融入软件工程的当下,软通动力 ASDM(AI 优先的系统化研发方法和平台)打造的AI 优先的软件研发流水线,成为企业研发效能跃升的核心落地载体,彻底打破传统 “人主导、AI 辅助
    的头像 发表于 02-27 11:21 703次阅读
    软通动力ASDM AI优先软件研发<b class='flag-5'>流水线</b>助力软件工程发展

    智造中枢:疆鸿智能DEVICENET转MODBUS RTU网关在食品包装流水线的融合之舞

     智造中枢:疆鸿智能DEVICENET转MODBUS RTU网关在食品包装流水线的融合之舞 在现代化食品加工包装流水线中,自动化系统的神经脉络需要畅通无阻地连接每一个环节。欧姆龙PLC作为核心控制器
    的头像 发表于 01-29 14:16 244次阅读
    智造中枢:疆鸿智能DEVICENET转MODBUS RTU网关在食品包装<b class='flag-5'>流水线</b>的融合之舞

    流水线基本结构

    3级流水线(Cortex-M0) 分为以下三个阶段: 取指(Fetch):从存储器中读取指令。 解码(Decode):解析指令的操作类型和操作数。 执行(Execute):执行指令(如算术运算、内存
    发表于 11-21 07:35

    如何更好地选择工业流水线上用的条码扫码器?

    在工业生产与物流分拣的自动化浪潮中,条码扫码器已成为流水线高效运转的“眼睛”。无论是精密零部件的追溯管理,还是仓储货物的快速核验,一款适配的工业扫码器都能显著降低人工误差、提升生产效率。但面对市场上
    的头像 发表于 11-05 15:49 540次阅读
    如何更好地选择工业<b class='flag-5'>流水线</b>上用的条码扫码器?

    固定式扫码器,用于流水线扫纸盒子上的条码进行分拣

    在电商仓储、食品日化等行业的生产分拣环节中,纸盒子作为最常见的包装载体,其分拣效率直接影响企业的物流周转速度。而固定式扫码器,作为专门适配流水线场景的条码扫描设备,正凭借针对性的功能设计,成为纸盒子
    的头像 发表于 09-03 16:42 1014次阅读
    固定式扫码器,用于<b class='flag-5'>流水线</b>扫纸盒子上的条码进行分拣

    工业读码器在SMT流水线上读一维码或二维码

    在SMT(表面贴装技术)生产流水线中,元器件的追溯与质量管控离不开对条码的精准识别。从PCB板到电阻、电容等小型元器件,每一个产品都贴有专属的一维码或二维码——一维码多为Code128码,用于快速
    的头像 发表于 08-20 15:30 1176次阅读
    工业读码器在SMT<b class='flag-5'>流水线</b>上读一维码或二维码

    二维码扫描读码器在工厂流水线的应用

    在制造业自动化升级的浪潮中,二维码扫描读码器凭借其信息密度高、抗污损能力强的特性,逐渐成为工厂流水线数据采集的核心设备。它通过精准识别产品表面的二维码,实现生产全流程的数字化追踪,为智能化管理提供了
    的头像 发表于 08-07 14:48 1084次阅读
    二维码扫描读码器在工厂<b class='flag-5'>流水线</b>的应用

    流水线输送带数据采集物联网解决方案

    在自动化流水线的输送带中,速度是一个十分重要的变量。速度闭环控制系统是由速度传感器、控制器、驱动器和电机组成。速度传感器检测电机轴实际速度,并转换为电信号传至控制器PLC;随后PLC通常也采用PID
    的头像 发表于 08-07 13:31 649次阅读
    <b class='flag-5'>流水线</b>输送带数据采集物联网解决方案

    激光振镜运动控制器在流水线激光打标上的应用

    正运动流水线激光打标解决方案
    的头像 发表于 08-05 11:26 1188次阅读
    激光振镜运动控制器在<b class='flag-5'>流水线</b>激光打标上的应用

    流水线扫码升级选NVF230!工业二维码读码器方案实测

    在现代流水线生产中,给每件产品贴上独特的“电子身份证”——DPM条码,再用工业二维码读码器实时追踪定位,早已是保障高效运转的关键操作。但轮到饮料行业,给瓶身或瓶盖上的DPM条码“打卡”,却成了让不少
    的头像 发表于 07-17 15:09 714次阅读
    <b class='flag-5'>流水线</b>扫码升级选NVF230!工业二维码读码器方案实测

    自动化开装封码流水线数据采集解决方案

    在智能制造加速推进的时代背景下,自动化开装封码流水线广泛应用于食品、药品、日化、电子等众多行业,承担着产品自动开箱、装填、封箱、贴标及码垛的核心生产任务。随着生产规模扩大和精细化管理需求的提升,对流水线
    的头像 发表于 06-27 15:56 994次阅读
    自动化开装封码<b class='flag-5'>流水线</b>数据采集解决方案

    面包成型流水线数据采集远程监控系统

    该食品加工企业主要从事多种口味的面包生产及销售,拥有一整条完整的面包成型流水线,能够自动进行面块切割、整平折叠、多次擀薄、冷库发酵、包油加馅、排盘等工序,各个变频器和伺服通过PLC进行集中控制,要求
    的头像 发表于 06-16 17:11 973次阅读
    面包成型<b class='flag-5'>流水线</b>数据采集远程监控系统

    远程io模块在汽车流水线的应用

    在汽车制造领域,生产流水线的高效、稳定运行是保障产品质量与生产效率的关键。随着工业 4.0 和智能制造理念的深入,汽车生产企业对流水线自动化控制提出了更高要求,不仅要实现设备间的精准协同作业,还需
    的头像 发表于 06-11 15:26 837次阅读

    工业4.0时代,为什么你的流水线必须配备固定式扫码器?

    在工业4.0时代,制造业正朝着智能化、自动化的方向飞速发展。在这一进程中,流水线作为生产的关键环节,配备固定式扫码器已成为提升生产效率、保证产品质量和实现智能化管理的必然选择。固定式扫码器能极大
    的头像 发表于 06-09 16:12 736次阅读
    工业4.0时代,为什么你的<b class='flag-5'>流水线</b>必须配备固定式扫码器?