百科问答小站 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的问题是在读上面的巨大差异。截图就可以看出来苹果不同设备的读性能差距没那么大,还有,华为洗地的水平太差,不说别的,就性能测试这块,我手头同样的一个华为手机、同样的一个软件,就能跑出好几种结果,真要洗地麻烦提高点知识水平好不?




  

相关话题

  为何三星s10系列网上热度这么高,销量却没有起色? 
  MRAM,CBRAM,PCRAM,RRAM这些新型存储器能用作内存吗? 
  同事总是嘲讽我用苹果手机该怎么回应? 
  哪些 iOS 应用让你用了很满意并能提高生活质量? 
  OS X Mavericks 什么时候可以升级? 
  为什么用 iPhone 访问优酷看视频时就会略过前面的广告? 
  苹果手表名字的正确写法应该是什么? 
  如何看待 Scott Forstall 接受在线采访, 谈及Steve Jobs 和NeXT的关系? 
  苹果手机为什么越来越便宜国产手机越来越贵? 
  你最不能忍受苹果手机的哪一点? 

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





© 2024-05-14 - tinynew.org. All Rights Reserved.
© 2024-05-14 - tinynew.org. 保留所有权利