E X P
正努力加载中…
  • 编辑
  • 评论
  • 标题
  • 链接
  • 查错
  • 图文
  • 拼 命 加 载 中 ...

    简而言之,因为内存太慢了,实际上内存之所以诞生也是基于类似的原因。理论上来说,一台计算机只需要外部存储器就能运行,但是这样速度太慢,尤其是早期使用的纸带、磁带,完全跟不上处理器的运算速度。因此人们发明了内存作为CPU和外部存储器之间的缓冲区域,CPU可以把读取到的数据和指令暂时存放在内存中,以便后续立即使用。内存作为随机存储器,免去了寻道等操作,存取延迟比外部存储器可以快上数个数量级,这样大大提升了系统的运行速度。

    随机存储器主要有两种,静态随机存储器SRAM和动态随机存储器DRAM。SRAM无需刷新,速度快,但密度小,造价高昂。DRAM需要不断通电刷新,速度比较慢,但制造成本更低,容量更大。内存最开始有过SRAM的时期,随后就被更廉价的DRAM取代。一开始DRAM的速度还能跟得上CPU,比如CPU的频率在2MHz时内存的频率可以达到4MHz。而从上世纪80年代开始,CPU的速度很快就远远甩开的内存,差距逐渐达到数个数量级。


    CPU与DRAM的速度差距越来越大。图片来自新泽西理工学院

    这时候SRAM来救场了,它的速度仍能跟得上CPU,因此人们开始将其内置到CPU中,CPU缓存也因此诞生。最早有记录使用缓存的系统是通用电气的645和IBM360/67,它们配备了TLB转换检测缓冲区,用于加快内存寻址,而最早有记录搭载了数据缓存的系统是IBM System/360 Model 85。我们比较熟悉的摩托罗拉68k系列处理器中,发布于1984年的68020是第一款真正搭载了缓存的68k CPU,拥有256字节的指令缓存。

    现在的CPU大都有一套多层缓存系统,将缓存分为L1、L2、L3等,有的还有L4。当L1发生缓存命中失败后,CPU会尝试去L2中读取,如果又失败,则继续向下一层缓存寻找。数字越小,缓存的速度越快,但成本也越高,因此容量一般更小。缓存并不是越大越好,虽然更大的缓存虽然能存储更多的数据和指令,但每一次寻址需要花费更多的周期,可能最终得不偿失。缓存的设计需要平衡时间、空间和制造成本,是CPU架构设计中的一个重要环节。


    图为英特尔CPU结构示意图。图片来自AnandTech

    ×
    热门文章
    1余承东称华为麒麟高端芯片将成绝版,并肯定抖音海外版业务
    2微信支付推出“摇一摇免单”:1000万份,最高免单200元
    3骁龙芯片被发现有严重漏洞,攻击者可以用来提升特权或发起DoS攻击
    4吟寻事儿:Raspberry Pi 4 8GB上手初体验
    5Intel泄漏的移动平台路线图解读:Tiger Lake独力支撑全局
    6东芝完全退出笔记本电脑市场
    7小米将推出MIUI印度特别版:不再安装被禁App,包括小米浏览器等
    8华为Mate X2折叠屏手机曝光:采用三星和京东方柔性屏,转用内折叠方案
    9Surface Duo的App Groups是怎样的?我们可以从新的渲染图当中看一眼图标
    已有 6 条评论,每一条合规评论都是对我们的褒奖。
    • 雁过~彼岸博士 2019-08-07 14:59  加入黑名单

      游客

      该评论因举报过多,自动进入审核状态。

      一篇普通的科普短文,也能让你看出“洗地”,我也是服气了。

      支持(6)  |   反对(0)  |   举报  |   回复

      6#

    • fl23fei博士 2019-08-07 08:40  加入黑名单

      希望有更多的科普文章

      支持(0)  |   反对(0)  |   举报  |   回复

      5#

    • 游客 2019-08-06 20:33

      该评论因举报过多,自动进入审核状态。

      4#

    • 游客 2019-08-06 20:31

      支持科普

      支持(1)  |   反对(0)  |   举报  |   回复

      3#

    • 游客 2019-08-06 15:13

      以后可以考虑内存当硬盘用了

      支持(0)  |   反对(0)  |   举报  |   回复

      2#

    • 游客 2019-08-06 13:47

      挽尊,消灭0回复

      已有1次举报

      支持(1)  |   反对(0)  |   举报  |   回复

      1#

    我来评论
    为你推荐