迅维网

查看: 2589|回复: 20
打印 上一主题 下一主题

请问内存条和固态硬盘为什么速度不能一样?

[复制链接]
跳转到指定楼层
1#
发表于 2018-1-26 10:44:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 来自: LAN 来自 LAN

马上注册,获取阅读精华内容及下载权限

您需要 登录 才可以下载或查看,没有帐号?注册

x
都是用的颗粒,这是为什么呢?最快的固态也才32Gbit 每秒(nvme over pcie 3.0 x4)! 在一个用什么软件可以测试内存的读取速度?

2#
发表于 2018-1-26 10:44:49 | 只看该作者 来自: LAN 来自 LAN
这是容量和性能之间无法完全满足时出现的矛盾
实际上对于计算机来说,除了内存、硬盘外,还有CPU的缓存,包括L1、L2和L3(部分CPU还有L4,是eDRAM)

缓存测试截图(P870TM/8700K默频)



SM961性能测试截图上面2张图可以大致反应缓存、内存以及固态硬盘的性能差距,按照高低依次为:
L1>>L2>>L3>>L4(eDRAM)>内存>>SSD
CPU发展很快,计算能力不断提高,但是外围设备却无法运行的更快,于是产生了这一系列的硬件。最接近CPU的就是L1,它提供了足够高的速度来满足CPU运行的需求,但是它的发热很大,无法做的更大,于是L1周围又有了L2,降速提高容量。L3其实和内存的地位接近,有时候数据可以不经过L3,不过如果数据在L3中则可以提高性能。硬盘这类硬件在计算机组成中其实叫“外存”,CPU需要先把外存的数据放到内存中,才可以调用。
这一级级的变化,就是性能的降低,容量的增大。每个硬件有其本质的属性,莫要强求固态硬盘达到内存的水平,我们首先需要的是它能够提供足够的容量,其次才是性能。


回复 支持 反对

使用道具 举报

3#
发表于 2018-1-26 10:44:49 | 只看该作者 来自: LAN 来自 LAN
都是用的颗粒??这也能成为它们两个速度应该一样的理由吗??我喝的果粒橙里面还有颗粒呢,三块五一大瓶。

    一个是内存颗粒,一个是闪存颗粒,前者高性能但属于易失性存储器,后者是非易失性存储器,根本上就不是一个东西。只是说制造的原材料、工艺和技术相互有联系所以经常可以看到半导体厂商一般两个领域均有涉猎。

至于为什么内存颗粒更快,因为其存储机制是利用寄生电容保存电位,需要不断供电才能实现数据存储,断电后信息丢失,好处是速度快;而闪存颗粒是通过对MOS中浮置栅极充电/放电实现存储和擦除,好处显而易见:保存数据不需要持续供电,缺点也明显:速度更慢。

    你把U盘和固态比比倒是可以,毕竟固态可以理解为闪存阵列,而U盘一般是单闪存芯片,这才是用的同种颗粒。

回复 支持 反对

使用道具 举报

4#
发表于 2018-1-26 10:44:49 | 只看该作者 来自: LAN 来自 LAN
不是速度不能一样,但内存之所以是内存,并不是因为他的速度一定快很多,更重要的是其拥有远比硬盘更低的延迟,CPU目前拥有计算机系统中最高的时钟频率,其同时处理的数据量由于存在多个流水线和向量指令集,其高频高数据位宽的情况下,迫使存储设备为了控制成本采用大容量低速,小容量高速的方式进行分级,以适应CPU快速增长的数据处理能力和成本容量之间的矛盾
好了,这次说的是内存和固态,首先最快的固态速度当然不是32Gbps,32Gbps是M.2 PCIE X4的带宽速度,但存在直接插在PCIE X16的接口上的固态,这种固态速度就远超32Gbps了

所以不是颗粒阻碍了速度,实际上你的接口带宽也可能阻碍了你认为的固态能达到的速度
那DRAM的速度有多快呢,有一套频率X位宽(与通道数相关)/8的理论带宽算法,DDR4 2400双通道就有38.4GB/S的理论带宽了,这个速度就是PCIE 4.0 X16的接口速度都不及,AIDA64的测试也接近这个数值,但是,我们过于理想化了一个问题,如果只是内存自己自嗨来回测试自己的理论速度,那这个理论值是有意义的,但实际吞吐量因为各种原因都无法达到理论值
下图是CSAPP一书中Haswell i7 2.1Ghz下利用时间和空间局部性测试的一个程序从不同的存储介质中读取数据的吞吐速率,根据读取的不同数据块大小和步长大小,绘制了一个山脊一般的图,也叫存储器山


从图中得出两个简单结论,步长越长,吞吐量越低,即使是L1,读吞吐速率也在10GB/S的量级上,内存读取速率更是低于2G/S


以步长为8的时候来看,当数据块大小接近L2大小(256KB)L3大小(8M)的时候,吞吐量会再次有一个下滑,这是因为当数据大小接近缓存大小的时候,L2/L3都是数据与指令共用空间,这时实际上已经出现了数据块与指令冲突的情况,不得不使用更低级存储来救急,也难以利用局部性的优势了,所以进一步拉开了差距,而数据与指令分开存储的L1就没有这个问题
那好了,这里可以知道内存的速度其实没有那么的快,可能有的人认为haswell太老了,为此我将代码在某公司服务器上进行了运行,处理器为Xeon Gold 5118 2.3Ghz,内存256GB DDR4 2400
实测结果来看,内存在步长为1时高达17GB/S,L1能稳定再32GB/S左右,L2的大小有1MB,所以L2和L3的分界在1024KB,也证明缓存与缓存,缓存与内存间吞吐也更为接近
Gold 5118的存储器山图表


以步长为8绘制Xeon Gold 5118存储山图


换用stream在同样设备测试


内存吞吐依旧不过10GB/S,读吞吐接近存储器山测试步长为2时的表现,这样可基本证明,速度不是内存与SSD的最大鸿沟,那什么才是?一个关键的性能参数是延迟
如今处理器的架构不断完善,CPU在访问存储设备时,尤其是访问缓存的时间是越来越可控的,以Intel带ring LLC的CPU为例,CPU直接操作寄存器,寄存器访问相当于同步,访问L1为4个时钟周期,使用pipeline的方式通过分支预测做到等效1个时钟周期访问,访问L2大约需要10-12个时钟周期,访问L3需要30-70个时钟周期(L3为多核心共享,所以访问时间不定),Mesh总线下的SKL-SP/X L2被加大,但一方面在提高了命中率的同时,也导致了一定程度的访问时间增加(在更大的容量内想找到相应的数据和指令会难一些)大约提高到了20个时钟周期,而SKL-X/SP的L3有一定牺牲,在步长增加的情况下,速率下降,但延迟基本与之前Ring总线的类似


而内存访问需要150-200个时钟周期,换成时间,以3Ghz来说,延迟在50-70ns之间,即使到300个时钟周期,也在90ns,这符合如AIDA64测试得出的内存延迟,但是,SSD的延迟是多少呢?


至少是以千计的时钟周期,而AS SSD的测试来说,即使是NVMe固态这访问时间就真的很长了


过高的访问延迟的结果是,如果CPU缓存未命中,CPU需要等待过长的时间,也就导致CPU过多的时间用于等待而非处理数据,显得CPU好像很不行一样
过高的延迟来自过远的通信距离,过多的控制器连接,以及过大的容量,换句话说,你在一张桌子上找一个东西的寻找时间要小于你在一个大箱子里面找一个东西的时间,而过远的通信距离导致你在路途中花费过多时间,而为此加入的各种控制器,也无疑提高了中转开支,而NVMe协议,直接挂CPU PCIE等方式,都是降低延时的方法
但有没有对速度要求很高的时候啊,当然是有的,基于高位宽向量指令集的密集计算,对数据传输速率就有非常高的要求,如7820X在3.5Ghz频率下运行支持AVX512的圆周率测试时,双通道DDR4 2666只能13秒 2.5亿位,换成四通道就提升到9.6秒,显示高密集数值计算下对内存速率的需求,这也和显卡类似,显卡显存之所以高速率,也是因为GPU的主要工作是数值计算


那内存有没有可能和SSD合为一体,当然是有的,傲腾内存DIMM版即将出炉,甚至在2018年Q4推出的cascade Lake-SP服务器处理器上,就将支持傲腾DIMM内存,目前来看延迟在500ns左右,未来内存与固态比翼齐飞的时代并不遥远,只是需要一点钱


回复 支持 反对

使用道具 举报

5#
发表于 2018-1-26 10:44:49 | 只看该作者 来自: LAN 来自 LAN
谁说不可以的?但你要用同样的颗粒。

如果你是去年问的这个问题,还真不好说;然而今年有optane,既可以做ssd,也可以做成非易失性内存。

回复 支持 反对

使用道具 举报

6#
发表于 2018-1-26 10:44:49 | 只看该作者 来自: LAN 来自 LAN
这是个易失性和成本的问题。
Nand颗粒读写的时候是要做到永久存储数据的,需要记录电位信息,这个要浪费更多的时间吧?先天的架构就导致Nand不可能和Dram一样快。
第二,就算技术突破了,像Intel的900P这种产品做到接近内存的性能,成本呢?要比同容量的Nand和Dram都更贵吧,256G的内存现在多少钱?比256G内存更贵的这种颗粒要多少钱?你确定就算真的有,你买的起?
最后,企业级上确实有类似的产品的,Intel的P4700,那玩意的价格...

回复 支持 反对

使用道具 举报

7#
发表于 2018-1-26 10:44:49 | 只看该作者 来自: LAN 来自 LAN
内存是电容充放电,时间常数在为RC(R为mos switch on resistance),这个量级在ps左右。
nand  flash这类floating gate transistors 延迟基本都在us级别(网上找的资料,自己没做过flash cell),加上protocol和controller overhead,随机读写性能(1bit)基本是dram的1/10^6

回复 支持 反对

使用道具 举报

8#
发表于 2018-1-26 10:44:49 | 只看该作者 来自: LAN 来自 LAN
题主想要的东西我大概知道是什么了。既想要固态硬盘的空间,又想要DRAM的速度,这种两手抓的思想早就有大佬在搞了,就是NVM(非易失存储器),而且与以往的ssd和hdd不同,这个是按字节寻址的,读写速度更是不可同日而语,目前关于这方面的研究挺火热的,例如牙膏厂以前放的卫星3D XPoint - Wikipedia
题主如果注意养生的话,还是有机会在有生之年看到NVM替代DRAM的商品机出来的。下面附一张对比图,其中中间三列是三种不同的NVM元件,都没有商品化,仍处于实验室阶段。

最后说,如果这个新架构真的搞出来了,CS系搞硬件的,搞数据结构和算法的也能享受一把类似深度学习这种浪潮

回复 支持 反对

使用道具 举报

9#
发表于 2018-1-26 10:44:49 | 只看该作者 来自: LAN 来自 LAN
举个例子好了,眼睛能看到很多东西,但是记忆需要脑子,而且记住的还很少。

回复 支持 反对

使用道具 举报

10#
发表于 2018-1-26 10:44:49 | 只看该作者 来自: LAN 来自 LAN
知乎怎么快变成了百度知道……搜一下内存外存再问啊兄dei

回复 支持 反对

使用道具 举报

11#
发表于 2018-1-26 10:44:49 | 只看该作者 来自: LAN 来自 LAN
可以的,前提是

你有钱,现在可以定制一块能插64根内存条的主板,每个插16Gddr4。组成1t内存的主机。
然后用软件把内存虚拟为硬盘。
使用通信发电方式让机器不断电。
就好了。

回复 支持 反对

使用道具 举报

12#
发表于 2018-1-26 10:44:49 | 只看该作者 来自: LAN 来自 LAN
半导体有多种器件,不同的器件组成不同的产品。从制造上来讲,dram和ssd是完全不同的器件类型和工艺。大致说来dram是在衬底上挖坑行成电容,然后周期性充电以保持或更改电位,ssd现在主流是nand单元,通过电位更改电路结构来保存数据,这个是破坏性的,所以ssd有寿命问题。存储器有很多种,每种的工艺差别很大,比如cpu cache一般是sram,这个工艺和dram与ssd又不一样,即使sram还分好几种。颗粒这种概念太笼统,不具说明性,芯片核心还都是电路呢

回复 支持 反对

使用道具 举报

13#
发表于 2018-1-26 10:44:49 | 只看该作者 来自: LAN 来自 LAN
或许真的可以,但是如果真的实现了你用的起吗?以内存的价格来算的话,一块硬盘得需要多少钱呢?就算造出来也只适合土豪用,对于巨大的市场来说是没有意义的

回复 支持 反对

使用道具 举报

14#
发表于 2018-1-26 10:44:49 | 只看该作者 来自: LAN 来自 LAN
原理不同,性能自然不同,正如乌龟没有鸟儿飞得快一样

回复 支持 反对

使用道具 举报

15#
发表于 2018-1-26 10:44:49 | 只看该作者 来自: LAN 来自 LAN
内存颗粒和固态硬盘颗粒是不一样的,内存颗粒比固态硬盘颗粒贵很多。
如果内存芯片便宜,完全可以改造成固态内存盘,简单一点就是在固态内存盘里加装电池组。


还有一个就是接口速度。内存是内部设备直通CPU,硬盘是外部设备。所有数据的流转都要经过内存,速度要求肯定比硬盘高。
如果频率很低的CPU,假如只有几百几万HZ,硬盘速度可以和内存差不多。但这么做可能不经济,

回复 支持 反对

使用道具 举报

16#
发表于 2018-1-26 10:44:49 | 只看该作者 来自: LAN 来自 LAN
我讲点儿通俗的语言设计目的不同

内存条快就好了
固态还要担心永久保存



PS:CPU内1、2、3级缓存:“你们对力量一无所知!”

回复 支持 反对

使用道具 举报

17#
发表于 2018-1-26 10:44:49 | 只看该作者 来自: LAN 来自 LAN
可以的可以的,在淘宝首页上看到了用独立电源供电的内存条组成的硬盘!

回复 支持 反对

使用道具 举报

18#
发表于 2018-1-26 10:44:49 | 只看该作者 来自: LAN 来自 LAN
虽然内存条和固态硬盘同样是用颗粒,但是里面的性质不一样。
区别:
内存条用的是(DRAM,Dynamic Random Access Memory)内存颗粒(其实是港台地区对内存芯片的一种称呼),而内存条的DRAM是指动态随机存取存储器,它只能保存短时间的数据,电脑已关机,里面的数据也就没了。
固态硬盘使用的是闪存(NAND FLASH),这是一种电子式可清除程序化只读存储器,允许在操作中被多次擦或写的存储器。即便你电脑关机,也会把数据保存下来。


然后就是成本的问题就不说了, @AcFun电脑九课 说的差不多。
再来就是速度,你是做什么事情才会觉得32Gbit 每秒的速度很慢?换算一下也是有4G/s的速度,几部小姐姐一秒的时间就完成了。


测试内存的速度
如果你真的想要很直观的知道内存的速度,你可以直接安装虚拟机,然后让把系统安装到内存条上,再来测试它的速度,那个速度你根本无法想象。具体步骤参看这里:系统装在内存条里是什么体验?吊打固态硬盘!

回复 支持 反对

使用道具 举报

19#
发表于 2018-1-26 10:44:49 | 只看该作者 来自: LAN 来自 LAN
可以一样的
只是在目前的技术条件,控制成本的前提下,才要分内存和硬盘这种妥协的逻辑
以后技术发达后,内存和硬盘合并是可以预见的趋势
另外题主的描述我不是很清楚:
“都是用的颗粒”是什么意思。。目前内存颗粒和闪存颗粒完全是两样东西

回复 支持 反对

使用道具 举报

20#
发表于 2018-1-26 10:44:49 | 只看该作者 来自: LAN 来自 LAN
嗯,都是颗粒但是颗粒不同啊,直观上就是易失性的差别,内存颗粒是一断电就没了的,emmm.想到了大内存不关机的爽快(误),偏题了,溜了溜了

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表
附近
店铺
微信扫码查看附近店铺
维修
报价
扫码查看手机版报价
信号元
件查询
点位图 AI维修
助手



芯片搜索

快速回复