为什么DRAM受到的最大威胁是SSD

科技   2024-11-10 13:17   江苏  

传统观点认为,固态硬盘SSD总有一天会取代所有硬盘,但实际上,事实证明,固态硬盘对DRAM市场来说比对硬盘市场更具挑战性。


然而,要理解它,你必须像计算机架构师一样看待计算机,或者换句话说,要理解计算机的内存/存储层次结构

对于程序而言没有硬盘和内存的概念,只有内存。虚拟内存系统是操作系统的一部分,通过在需要时将代码和数据移动到DRAM中,并在不再重要时将其移回HDD,从而无需告诉应用程序它正在移动任何东西来隐藏两者之间的差异。


通俗点说,DRAM让HDD看起来更快,HDD让DRAM看起来很大。

如果你认为DRAM是使HDD看起来更快的东西,那么额外的DRAM应该有助于使HDD看起来更快。长期以来,这一直是加速计算机性能的标准方法。

奇怪的是,服务器中使用的固态硬盘比硬盘更能取代DRAM。系统管理员发现,虽然他们添加更多DRAM,他们的软件运行速度会更快,但如果他们不添加DRAM,而是添加与附加DRAM成本相同的SSD,则会运行速度更快。


这是一种多年来一直被服务器社区理解的现象,但它仍然让DRAM/SSD/HDD社区的其他成员感到神秘。我会以一种能够帮助任何人理解的方式解释它。



下图中,黑线表示一个程序,其代码和数据访问主要发生在相对狭窄的范围内,而红色曲线表示访问地址分布更广泛的程序。


所有程序的行为方式都相似——大多数访问发生在一定范围内,而超出该范围的访问较少。这被称为“局部性locality”,这也是计算机可以利用cache内存和虚拟内存层次结构配置的原因。


现在,一台没有SSD的典型计算机会将其中一些访问存储在DRAM中,而其他访问则需要从HDD获取。DRAM由下图中的黄色框表示。框的宽度表示由DRAM服务的访问地址范围,框外的访问强制操作系统进入HDD,这大约需要DRAM访问的100万倍(10^6)。


想要提高计算机速度的系统管理员会添加更多的DRAM来捕获更多访问权限。下图显示添加两倍DRAM的效果。


很明显,黑线比红线从中受益更多。尽管如此,许多访问都出框框,造成了10^6倍的硬盘的内存访问代价。


一个替代方案是在SSD上花费相同金额。今天,SSD NAND是DRAM的二十倍:8GB DRAM模块的价格与160GB SSD差不多。SSD比DRAM慢得多,提供数据的时间大约是DRAM的1000(10^3)倍,但它要大得多,因此它覆盖的访问次数明显更多。这有帮助吗?下图试图提供这方面的视觉表现。

显然,现在很少有访问必须进入缓慢的硬盘HDD。


固态硬盘的速度较慢是由框框的高度更低来表示的,但这不是准确表示这一点的方法,所以让我们做一些计算。

对于黑线,单个DRAM块满足约55%的所有访问,双DRAM系统可以满足约90%的访问。


在双DRAM系统等待HDD时,所有其他访问将需要100万倍的时间。


如果我们添加SSD,它将提供几乎所有剩余访问的数据,因此我们将为单个DRAM提供的55%以外的访问提供44%的“hit率”。也就是说,SSD提供的数据速度是DRAM的10^3倍,访问量是DRAM的44%,而HDD的访问速度是DRAM的10^6倍,只有1%的时间被访问。


使用此,我们可以计算两个成本大致相同的系统的平均延迟,即双DRAM系统(标记为“无SSD”)与包含SSD的单DRAM系统:


基于SSD的系统的平均延迟显然要好一个数量级。这就是为什么固态硬盘已经成为当今几乎每个服务器安装的一部分。这也在一定程度上限制了DRAM市场的增长。

请记住,这只是黑线程序的计算。红线程序从添加的DRAM中受益较少,但几乎所有的访问都由SSD覆盖,因此从双DRAM配置到单DRAM/SSD配置将看到更好的改进。

因此,如果你有固定的预算,固态硬盘可以帮助你充分利用系统,并且是比额外的DRAM更好的选择。


如果你花更多的钱将DRAM翻倍,同时添加SSD会发生什么。在这种情况下,90%的访问将进入DRAM,仍然只有1%进入HDD,另外9%进入SSD。与单DRAM系统相比,性能仅改进3%左右,成本却大幅增加。


其实上面的分析确实也挺片面的,因为对于系统的需求仅限于这个所谓的平均延迟而言的,而且上面的曲线并不代表真正的程序。总之,DRAM/SSD/HDD的配置因系统而异。

数字芯片实验室
前瞻性的眼光,和持之以恒的学习。
 最新文章