百科问答小站 logo
百科问答小站 font logo



不同闪存容量大小的 iPhone 7 的写入速度的差异是什么原因造成的? 第1页

  

user avatar    网友的相关建议: 
      

我现在工作就是做SSD(flash)控制芯片。不过是企业级的,但应该和终端级的在原理上差别不会太大。

首先通道数对写性能影响很大,一般有4/8/16 channels,如果是相同的flash颗粒和相同的控制芯片,通道数就决定了写性能的上限,写性能上限与通道数基本成正比。但是,这仅仅是理想情况。

另外,假如两者所用flash颗粒不同,如SLC,MLC,TLC,读写性能当然会有差异,价格也差异明显。

即使是同一块flash和同一颗控制芯片,在不同使用情况下,写性能差异也很大。这是因为flash是需要擦除的,即写过数据的地方想要二次写,是需要先进行擦除才能二次写;并且,写和擦的最小单位是不同的。以服务器所用的SSD为例,写是以page单位写的,page的大小一般在0.5~16 kbytes;而擦是以block来擦,block的大小一般在1024~8192个page之间。实际设计中,控制芯片一般更是将大概16~512个block捆绑为raid block,作为一组,一起拿来用于写和擦。

在使用过程中,随着用户的不同操作,没写过的raid block依次被逐渐写入数据;而已经写过的raid block里面,有的数据变为无效。最后,没写过的raid block越来越少,写过的raid block里有效的数据也越来越少,假如继续写下去而不进行其他操作,所有的raid block将被写完,假设没有一个写过的raid block中的数据全变无效,那么盘就被写死了,因为擦任意一个raid block 都会擦到有效数据造成数据丢失。这就需要gc(garbage collection)。

gc一般将会在剩余未写的raid block不多时启动,它会将所剩有效数据最少得raid block中的所有有效数据读出来重新写,这样一来该raid block就可以拿去被擦了,擦完之后就重新变成未写的raid block作为备用。通过gc,就可以保持整个盘可以一直被往复写。但问题是,gc的读写会占用flash的读写带宽,并且为了防止gc太慢赶不上用户写数据的速度而导致盘被写死,控制芯片在进入gc阶段时会限制用户的写入速度,并且剩余raid block越少,将用户写入速度限制得越低,gc则被允许更大速率的读写以产生足够多新的未写的raid block。所以,SSD使用时不要写太满,并不是因为上面

@北极

所提到的平衡磨损,而是因为gc。

因此在不清楚题主所提到的写入速度测试的flash的存储情况的条件下,不能断定32g比256g写速率慢这么多。当然,256g很可能通道数要比32g的多,写性能的上限本来就比32g的高。

所以,要比较两者真实写性能的差异,最好在两者都空盘的情况下测试,并且测试所用的写入数据也不能大到使32g盘进gc。


user avatar   bei-ji-85 网友的相关建议: 
      

1. 麻烦仔细看视频42MB/s和341MB/s都是写速度,不是读速度,读速度一个是600+另一个是800+,差距没那么大:

2. iPhone7的32G和其它版本用的Flash不一样,好像一个是MLC一个是TLC,主控的设计不同可能会影响测试结果。

3. 因为不知道他的测试参数,目测可能是持续写128M数据,对于256G的iPhone7来说,这点数据可能还没填满缓存,而另一个很有可能已经满了,做设备performance测试的一个原则就是要填满缓存,否则测试没意义。换句话说,如果256G版本的iPhone写的数据足够大,可能看着也没那么好看。

4. 注意视频开头有提到两个设备剩余空间不一样,一个剩余200多G,另一个只有一半的样子。闪存类的存储设备,剩余空间比较少的时候,可能会触发回收机制,性能有可能急剧下降。从视频中看,手机都是装了一些东西了,肯定用了一段时间,所以不好说过去写了多少数据。

5. 不同容量的存储器,通道数是不同的,通道越多,并发效果越好,自然速度就快一些,已知的是256G的通道数肯定大于32G。


我的结论是:肯定有差别,但不代表差别就一定是实情(注:同样的设备,不同的测试方案能得到很多不同的结果),设备本身强大与否,与所在的整个系统的方案有很大关联。

要说这个视频有没有意义,我觉得也有意义,至少说明在实际使用中32G的确实不尽人意,至于是不是苹果故意阉割,那还不好说。


至于后面那个复制4.2G数据的东西,可能是因为lightning线接到USB2.0口上的原因,没有参考价值。


还有,如果拿这个跟华为P10去比就比错地方了,flash持续写性能,不管是什么设备都好不到哪去,P10的问题是在读上面的巨大差异。截图就可以看出来苹果不同设备的读性能差距没那么大,还有,华为洗地的水平太差,不说别的,就性能测试这块,我手头同样的一个华为手机、同样的一个软件,就能跑出好几种结果,真要洗地麻烦提高点知识水平好不?




  

相关话题

  苹果为什么认定《原神》是 3A 大作? 
  20000 元如何配置一套苹果生态? 
  如何评价 iPhone 13 系列的续航表现? 
  谷歌、微软和苹果在改变世界这一点上,哪个更加牛逼一点? 
  iPad Pro 会杀死 Surface 和 Windows 吗? 
  如何评价苹果A11处理器? 
  如何评价 Apple 推出售价 749 元人民币的 MagSafe 磁吸外接电池? 
  现在最强的手机处理器是哪一个? 
  如何看待 iPhone12 大面积出现低亮度情况下绿屏这一情况?可能的原因是什么? 
  是否 Jony Ive 喜欢 iPhone 5c 多过喜欢 iPhone 5s? 

前一个讨论
为什么大型路由器交换机再另开发 CPU 而不用 Intel 至强系列的呢?
下一个讨论
小米手机6运行内存为什么是6GB而不是8GB?





© 2025-02-25 - tinynew.org. All Rights Reserved.
© 2025-02-25 - tinynew.org. 保留所有权利