当前位置:首页 > 科技 > 正文

SD卡和固态硬盘,到底有什么区别

这是小狮子在后台看到的一个比较有意思的留言。这位读者由于买到了一个闲鱼杂牌SATA SSD,掉盘后拆开发现里面是四张SD组装的。因此他问,两者有什么区别?为什么SD卡可以用来仿冒固态硬盘呢?

一个由两张大容量SD卡组成的假冒固态移动硬盘

都是基于NAND原理存储

几乎所有存储在计算机RAM以外的 非磁性芯片上的存储器,都使用一种称为NAND FLASH(非易失性存储闪存)的技术。

FLASH(闪存)这种存储方式,都是将信息存储在由浮栅晶体管制成的存储单元中。在NAND闪存中,几个存储器单元(通常是8个单元)串联连接。这些单元读取和写入信息的速度,几乎完全取决于它们的排列方式,接受和发送数据的控制器如何协调该过程。关于具体的NAND FLASH芯片如何通过施加电荷的方式进行写入、移动、擦除的具体原理,可以查阅我们“钛师父”公众号硬件学堂栏目以前的文章。

此外,虽然有不同类型的NAND闪存,每种闪存都有其自己的缺点和优点,但你理论上可以将NAND晶体管从SSD移动到SD卡中。只要SD格式能够与读取它的设备通信,它就可以工作:NAND闪存的差异几乎完全取决于它们如何分组到单元中。

然后这又回答大家更为熟悉的SLC、MLC、TLC了。

单层单元(SLC):每个单元存储一个位(bit)。这是迄今为止最昂贵的单位方案。在普通消费级产品中,它仅用于SSD的缓存和一些高端SD卡。这样每个块可写入10万次,使其成为最耐用的产品。

多层单元(MLC):每个单元存储两个或更多位,但通常只存储两位。这种存储分组方式不常见,但比SLC技术便宜得多。平均每个块可以写入4万次。在消费级产品中几乎也销声匿迹了,如今比较容易买到的仅有三星的970PRO。

三层单元(TLC):存储三位的单元。实际上,这是目前SSD上最常见的单元类型。虽然块的耐久性明显低于上述其他单元(只有平均3000次写入周期),但对于典型消费级使用而言已经足够了——因为现在固态硬盘的主控芯片都觉有非常好的写入平衡分配策略,可以保障每个块不至于一直执行写入而提前到寿命。

四层单元(QLC):存储四位的单位。一些高容量固态硬盘和存储卡选择这种单元,因为它提供了更便宜的存储空间,但1000次写入周期的块耐久性确实比较低。

SD卡可以做到和SSD一样快,但没必要

那么,SD卡与固态硬盘为什么差距这么大呢?这是因为SD卡(包括类似的如CF等存储卡)有如下的劣势:

体积小而薄,无法放置如同SSD一样的主控芯片。大部分的“存储卡”确实也有“主控”,不过都是一个非常小的“米粒“芯片,主要是控制写入读取动作,而像SSD一样的写入均衡、模拟SLC缓存、发热控制等策略,大部分消费级卡是没有的。

没有真正的硬件写入缓存。

几乎没有专门的散热性设计可言,一旦碰到大写入负载发热掉速非常正常。

当然,理论上,由于SD卡和SSD都是基于NAND FLASH原理,所以确实可以造一张SD卡,其读写速度与固态硬盘一样快。

例如,对于尺寸较大的CF卡,就已经有了CF EXPRESS卡,通过植入主控,读写速度都达到了固态硬盘的千兆级别速度。而一些厂商正在推出一种名为SD Express的新技术,其中包括一个缩小版的NVMe SSD控制器,可以超越传统SATA SSD的速度!

但是,无论是CF EXPRESS还是SD EXPRESS卡,又面临一个尴尬的境地,就是终端设备(相机、摄像机、读卡器)支持这种高速读写标准卡的反而非常少。

而且,目前存储卡提供的空间还是太小,不能让制造商创建大容量、快速的高速缓存。即使这是可能的,也必须应对这样一个高速缓存产生的热量,对于大容量存储卡上NAND FLASH元件的晶体管密度来说,这在目前几乎是无解的。

而对于存储卡本来的用途来说,作为一个极高清晰度视频和音频记录的记录平台,根据相机、摄像机等设备的特点,只需要尽可能多的顺序读写性能,所以目前1000MB/s的读写性能已经可以满足8k级别的素材拍摄了。

而如果性能真要和SSD对标,那么非顺序读写操作仍然会因为受限的缓存空间而速度缓慢,解决吧,又需要解决散热和主控问题。拿到桌面系统使用,还需要用户升级读卡设备。用户已经有了性能出色且使用方便的M.2接口的NVME接口的固态硬盘,为什么非用SD卡呢?

当然,这一切的前提是建立在,SD卡只用于正常的顺序读写的影像存储为主的用途中,而不是用来仿冒固态硬盘。

回到假货SSD:为何SD卡组装货性能略好于SD卡?

网上很多网友也反映,刚买回来的时候,SD卡组装的“固态硬盘“往往性能凑合(以SATA接口算的话),只是读写负荷大了以后才现出原形。这是为什么呢?难道是假货真的装上了固态硬盘的主控芯片吗?

这个倒不是,假货SD卡固态硬盘确实是加了控制器,不过一般来说,都是磁盘阵列控制器,用来把不同卡槽中的SD卡组成一个RAID磁盘阵列,实现读写分配和容量组合。

其中大部分的控制器都是默认将2/4张SD卡组成一个RAID0,这样由于采用了分段(卡)写入,相当于变相“并行“写入,所以在读写性能上反而比单张存储卡的确有提升。

但是,由于RAID0没有数据冗余设计,一旦写入负荷超过了SD卡能承受的极限,那么发生写入错误后,基本上数据是没办法恢复的。