我一直在阅读,从内存层次结构中较低层的组件访问数据较慢,但成本较低。例如,从寄存器获取数据是快速但昂贵的。有人可以在这里解释“昂贵”的意思吗?从字面上看,这是零件的美元成本吗?如果是这样,我不明白为什么更快的组件会更昂贵。我读了这个答案(Memory Hierarchy - Why are registers expensive?),它讨论了如何访问寄存器中的数据需要较低的内存组件不需要的其他数据路径,但是我从任何示例中都无法理解为什么这些数据路径会从寄存器而不是从主存储器中获取数据时需要使用
。总而言之,我的两个问题是:
1)在这种情况下,“昂贵”是什么意思?
2)为什么更快的存储区(如寄存器)更昂贵?
谢谢!
答案 0 :(得分:2)
1)在这种情况下,“昂贵”是什么意思?
昂贵的通常含义($)。对于集成电路,价格取决于电路尺寸,并且直接与晶体管的数量和尺寸有关。碰巧,“昂贵”的存储器在集成电路上需要更多的面积。
实际上,有多种用于实现存储设备的技术。
处理器中使用的寄存器。它们是通过某种称为锁存器的逻辑设备实现的,其主要质量是快速的,以便每个周期允许两次读取/一次写入。为此,晶体管的尺寸可以改善驱动。这取决于实际的设计,但通常一个内存中的一个寄存器中需要约10个晶体管。
静态存储器(SRAM)被设计为简化触发器的矩阵,每个单元具有2个反相器,每个存储位仅需要6个晶体管。此外,静态存储器是一种存储器,为了提高单位面积的位数,晶体管被设计为小于寄存器。 SRAM用于高速缓存中。
动态内存(DRAM)仅使用唯一的晶体管作为存储电容。晶体管被充电或放电以表示1或0。尽管非常经济,但是该技术不能很快实现,特别是当涉及到如当前DRAM芯片中的大量单元时。为了提高容量(给定区域上的位数),晶体管要变得尽可能小,并且使用复杂的模拟电路来检测微小的电压变化以加快单元内容的读取速度。更多读取会破坏单元格内容,并需要写入。最后,电容中有泄漏,必须定期重写数据以确保数据完整性。总而言之,它使DRAM成为慢速设备,访问时间为100-200个处理器周期,但它们可以提供极其便宜的物理内存。
2)为什么更快的存储区(如寄存器)更昂贵?
处理器依赖于内存层次结构,并且层次结构的不同级别具有特定的约束。为了制造便宜的存储器,您需要小的晶体管来减小存储一点所需的大小。但是出于电气原因,小的晶体管是不良的发生器,无法提供足够的电流来快速驱动其输出。因此,尽管底层技术相似,但是在内存层次结构的不同部分中,设计选择是不同的。
答案 1 :(得分:1)
在这种情况下,“昂贵”是什么意思?
越来越多的晶体管(每位硅更多),运行这些晶体管的功率更多
为什么像寄存器这样的更快的内存区域更昂贵?
所有内存的制造都尽可能便宜以达到所需的速度-如果没有必要的话,没有理由使其变得更昂贵,如果不需要的话,则没有理由使其变得更慢。因此,这是一种折衷,可以在设计空间中找到“最佳点”,以使特定类型的电路尽可能快且便宜,而另一个电路也要调整得尽可能快和便宜。如果一种设计既慢又昂贵,那么就没有理由使用它。只有当一种设计更快,而另一种便宜时,才有必要在系统的不同部分中同时使用这两种设计。