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

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

3天内不再提示

在提高内存速度的情况下如何降低传输慢对系统性能带来负面影响

冬至配饺子 来源:天奇工作室 作者:LRC 2022-08-04 17:31 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

程序和数据都是储存在内存上的,CPU要处理程序必须要频繁访问内存。但是内存传回CPU的速度要比CPU处理的速度来得慢。根据木桶效应,整体性能被内存传输的过程拖累了。在没有办法能提高内存速度的情况下如何降低传输慢对系统性能带来负面影响成为重要的研究课题。(感觉像写起了综述论文,咳咳)缓存这一技术应运而生。

我们知道程序运行具有一定规律——顺序和反复性,即顺序执行和循环执行。对于顺序执行,可以采取预读策略。即将后面的程序一并读取至缓存中,减少内存读取次数(注意CPU的读指令并没有减少,只是内存响应次数少了)。缓存行是缓存的基本单位,目前主流缓存行大小是64字节因为内存一次读操作是64字节,而64位CPU对数据的读取是8字节即64bit,因此若CPU要读的八字节落入某一缓存行中,该缓存行的内容将会全部从内存中被读取到缓存中,接下来的程序也被这次读写一并带到了缓存中去。对于循环执行,则正是缓存的强项,之前访问过的程序都存储在缓存中,再次读取时,直接可以从缓存而不是从内存中读取,大大提高了运行效率。

为什么缓存读取速度要比内存快呢?这就和缓存的底层电路原理有关系了。缓存采用的是SRAM存储器内建在CPU上,而内存采用的是DRAM。前者可以达到很高的读取速度但是面积占用比较大因此容量上不去,在几M容量就止步了。后者读取速度慢每次读取后都要刷新(有空再讲),但面积占用小,因此容量可以达到好几个G甚至几百几千个G。至于容量动辄几TB的硬盘那就要另当别论了。

缓存又有分为一级缓存、二级缓存等等。他们的速度也有所不同,从一级缓存以后读取速度依次降低。为什么呢?虽然都是采用的SRAM存储器,但是数据检索需要时间,数据存储量大的三级缓存找的时间就比数据存储量小的一级缓存找的时间久。为什么要找呢?不是直接根据地址选出对应的数据就行了吗?这个过程所需时间与其存储的数据容量有什么关系呢?在内存中、在CPU的寄存器组中这个过程所需时间确实与数据容量没有太大关系。那怎么规则到缓存这里就变了呢?

如果把内存比作图书馆的书架,那么缓存就像是CPU面前的一张桌子。给你地址让你去找CPU想要的数据,如果你是在书架上找,你可以很清楚这个数据放在哪一行哪一列,如果恰好你运动速度是光速的话,那么你总能在一个确定的时间内拿到CPU想要的数据。可是缓存就不一样了,书就在你面前,还乱糟糟的,你需要翻阅查看地址是否对应上了。因此桌子越大,你找得也就越慢。

就没有别的办法了吗?当然有。桌子乱可以整理整理嘛。比如规定一下,第一书架的书只能放在桌子上的A区,第二书架放B区……以此类推。这样一来,找的人便会方便很多,放的人也没有什么困难。后者的办法被称为组关联,组关联还分为一路组关联、双路组关联、四路组关联等等。组关联就没有坏处吗?也有。如果桌子太小了怎么办?划分出来的每个区连一本书都放不下怎么办?

我程序一直在读取某个书架上的书怎么办?别的区域不能放该书架上的书,而该书架的书已经在该区域摞得老高了,这样缓存利用效率就很低下。



审核编辑:刘清

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

    关注

    41

    文章

    2402

    浏览量

    189573
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11331

    浏览量

    225904
  • SRAM存储器
    +关注

    关注

    0

    文章

    89

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何通过高抑制比设计优化射频转换器性能

    本期为大家带来的是《雷达应用中射频转换器的无杂波电源(第 2 部分)》,介绍了本文阐述了电源噪声通过 ADC 内部电路耦合对系统性能负面影响,并重点分析了电源抑制比(PSRR)在其中的关键作用 。
    的头像 发表于 04-14 10:25 1671次阅读
    如何通过高抑制比设计优化射频转换器<b class='flag-5'>性能</b>

    Linux系统性能优化与调试的思路​

    开发过程中,对系统性能的要求越来越高,求职的过程中很多岗位不单单是要求驱动开发或者系统开发,会解决系统性能瓶颈问题,往往是加分项,有些公
    的头像 发表于 01-30 16:58 733次阅读
    Linux<b class='flag-5'>系统性能</b>优化与调试的思路​

    电能质量在线监测装置的数据压缩存储功能对数据传输速度有影响吗?

    ); 次要负面影响: 压缩 / 解压过程会消耗少量时间 (硬件加速可忽略,软件压缩有轻微延迟);最终净效果取决于 压缩比、算法效率、硬件是否支持加速 ,实际应用中绝大多数场景(如 4G/5G、以太网传输)均能实现 “传输
    的头像 发表于 12-11 16:43 1349次阅读
    电能质量在线监测装置的数据压缩存储功能对数据<b class='flag-5'>传输</b><b class='flag-5'>速度</b>有影响吗?

    使用直接寻址方式提高速度

    嵌入式系统,特别是资源受限的环境中,尽量使用直接寻址方式来提高速度是一个有效的优化策略。以下是一些具体方法和示例,帮助你尽可能多地使用直接寻址的变量,从而提高
    发表于 12-04 06:28

    内存与数据处理优化艺术

    内存访问是程序运行的瓶颈之一。减少内存访问次数可以显著提高程序的运行速度C语言中,指针是直接操作
    发表于 11-14 07:46

    提高RISC-VDrystone测试中得分的方法

    。 优化内存系统:优化内存控制器设计,提高内存的读写速度
    发表于 10-21 13:58

    Linux系统性能优化技巧

    经过10年一线运维经验,我发现大多数工程师只掌握了Linux优化的冰山一角。今天分享的这些秘技,能让你的系统性能提升200%以上!
    的头像 发表于 08-27 14:34 1151次阅读

    Linux系统性能调优方案

    关键要点预览:本文将深入解析Linux系统性能瓶颈的根本原因,提供可直接落地的调优方案,让你的系统性能提升30-50%!
    的头像 发表于 08-06 17:49 1078次阅读

    永磁同步电机高性能控制系统研究

    ,而且现场调节容易,为实际应用提供了非常便利的条件。但是常规PID控制系统性能受负载影响较大,负载未知或者变化时系统性能可能会变差,而实际系统
    发表于 07-17 14:31

    请问CYW20835sleep mode的情况下,不进入SDS或HIDOF的情况下,底电流最低是多少?

    请问CYW20835sleep mode的情况下,不进入SDS或HIDOF的情况下,底电流最低是多少?
    发表于 07-07 07:54

    Linux系统性能指南

    Linux服务器运行了很多应用,高负载,服务器可能会出现性能瓶颈,例如CPU利用率过高、内存不足、磁盘I/O瓶颈等,从而导致系统卡顿,服
    的头像 发表于 06-23 14:12 1924次阅读
    Linux<b class='flag-5'>系统性能</b>指南

    升降速曲线对直线电机系统性能影响的研究

    摘要:对一次速度曲线升降速,二次速度曲线升降速,三次速度曲线升降速以及三角函数速度曲线升降速曲线进行了分析,并对后3种升降速曲线对运动控制系统
    发表于 06-17 08:48

    六类网线传输速度是多少

    的设计符合国际标准,其传输频率范围为 1 MHz 至 250 MHz,能够稳定支持 1 Gbps 的网络传输速度。这一速率足以满足大多数家庭和办公场景的需求,例如高清视频流、在线游戏以及大文件
    的头像 发表于 06-09 09:44 1.2w次阅读

    HarmonyOS优化应用内存占用问题性能优化一

    出现崩溃和卡顿的情况。因此,主动减少应用内存的占用对于整个系统至关重要。通过减少应用内存的占用,可以有效提高应用的
    发表于 05-21 11:27

    如何提高弧光保护装置的动作速度

    提高故障判断的速度和准确性。 提升硬件性能:选用响应速度更快的弧光传感器,确保能迅速感知弧光的产生并输出信号;同时,配备高性能的主控单元和
    发表于 05-06 10:09