【问题标题】:What is "expensive" vs "inexpensive" memory?什么是“昂贵”与“便宜”的内存?
【发布时间】:2019-01-26 23:25:19
【问题描述】:

我一直在读到,从内存层次结构中的较低组件访问数据速度较慢但成本较低。例如,从寄存器中获取数据速度快但成本高。有人能解释一下这里的“昂贵”是什么意思吗?它真的是组件的美元成本吗?如果是这样,我不明白为什么更快的组件会更贵。我读了这个答案 (Memory Hierarchy - Why are registers expensive?),它谈到了访问寄存器中的数据如何需要较低内存组件不需要的额外数据路径,但我从任何示例中都不明白为什么需要这些数据路径从寄存器中获取时,而不是从主内存之类的地方获取时。

总结一下,我的两个问题是:

1) 在这种情况下,“昂贵”是什么意思?

2) 为什么像寄存器这样更快的内存区域更昂贵?

谢谢!

【问题讨论】:

    标签: memory


    【解决方案1】:

    1) 在这种情况下,“昂贵”是什么意思?

    Expensive 具有通常的含义 ($)。对于集成电路,价格取决于电路尺寸,并与晶体管的数量和尺寸直接相关。碰巧的是,“昂贵”的内存在集成电路上需要更多的面积。

    实际上,有几种技术可以用来实现记忆设备。

    寄存器在处理器中使用。它们是通过某种称为锁存器的逻辑设备实现的,它们的主要质量是快速,以便每个周期允许两次读取/一次写入。为此目的,晶体管的尺寸被设计为改善驱动。这取决于实际设计,但通常一点内存需要一个寄存器中的约 10 个晶体管。

    静态存储器 (SRAM) 设计为简化的触发器矩阵,每个单元有 2 个反相器,每个存储位只需要 6 个晶体管。此外,静态存储器是一种存储器,为了提高每单位面积的位数,晶体管被设计为比寄存器更小。 SRAM用于高速缓存。

    动态存储器 (DRAM) 仅使用一个独特的晶体管作为存储电容。晶体管被充电或放电以表示 1 或 0。虽然非常经济,但这种技术不能非常快,尤其是当涉及大量单元时,如目前的 DRAM 芯片。为了提高容量(给定区域上的位数),晶体管尽可能小,并使用复杂的模拟电路来检测小的电压变化以加快单元内容读取。更多读取会破坏单元格内容并需要写入。最后,电容中存在泄漏,必须定期重写数据以确保数据完整性。总而言之,它使 DRAM 成为一种速度较慢的设备,访问时间为 100-200 个处理器周期,但它们可以提供极其便宜的物理内存。

    2) 为什么像寄存器这样更快的内存区域更昂贵?

    处理器依赖于内存层次结构,并且层次结构的不同级别具有特定的约束。为了制造便宜的存储器,您需要小型晶体管来减少记忆所需的尺寸。但由于电气原因,小型晶体管是一种性能不佳的发电机,无法提供足够的电流来快速驱动其输出。因此,虽然底层技术相似,但内存层次结构不同部分的设计选择不同。

    【讨论】:

      【解决方案2】:

      在这种情况下,“昂贵”是什么意思?

      更多更大的晶体管(每比特更多的硅),运行这些晶体管的功率更大

      为什么像寄存器这样更快的内存区域更昂贵?

      所有内存都尽可能便宜地满足所需的速度 - 如果不需要,没有理由让它变得更昂贵,或者如果不需要,就让它变慢。因此,它成为一种权衡,并在设计空间中寻找“最佳位置”——使特定类型的电路尽可能快且便宜,而不同的电路也被调整为尽可能快且便宜。如果一种设计既慢又贵,那么就没有理由使用它。只有当一种设计更快而另一种更便宜时,在系统的不同部分同时使用这两种设计才有意义。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-07-29
        • 2015-04-22
        • 2010-10-28
        • 2016-02-02
        • 1970-01-01
        • 2012-09-20
        • 2022-11-01
        相关资源
        最近更新 更多