是什么让闪存能够用于平板电脑等计算机的操作系统?

是什么让闪存能够用于平板电脑等计算机的操作系统?

自从闪存盘(USB 棒)发明以来,人们就想知道是否可以在其上运行操​​作系统。答案是“不”因为操作系统所需的写入次数会很快磨损闪存驱动器。

随着 SSD 变得越来越流行,磨损均衡技术也得到了改进,以便操作系统能够在其上运行。

各种平板电脑、上网本和其他超薄型计算机都使用闪存代替硬盘或 SSD,操作系统存储在闪存上。这怎么突然变得实用了?例如,它们通常会实施耗损均衡技术吗?

答案1

“答案是否定的,因为操作系统所需的写入次数会很快磨损闪存驱动器。”

TLDR:它们最终变得具有成本效益,可供主流使用。

唯一担心的是磨损,这只是一个假设。相当长一段时间以来,系统都是使用固态内存运行的——许多制造车载电脑的人都是从 CF 卡启动的(与 PATA 电气兼容——安装起来很简单,而不是 PATA 硬盘),工业 PC 也有小巧、坚固的闪存存储。话虽如此,但对于平均的人。您可以为笔记本电脑购买昂贵的 CF 卡和适配器,或者为台式机找到一个微型、非常昂贵的工业磁盘模块单元。与当代硬盘相比,它们并不大(我认为现代 IDE DOM 的最大容量为 8gb 或 16gb)。可以肯定的是,在“标准”SSD 普及之前,您就已经可以设置固态系统驱动器

据我所知,磨损均衡方面并没有真正出现任何普遍/神奇的改进。增加的改进(虽然我们已经从昂贵的 SLC 转向 MLC、TLC 甚至 QLC,以及更小的工艺尺寸,所有这些都降低了成本,但磨损风险更高)。闪存已经得到了很多更便宜。

还有一些没有磨损问题的替代方案 - 例如通过 ROM 运行整个系统(可以说固态存储(SSD),电池供电的 RAM,许多早期的 SSD 和掌上电脑等便携式设备都使用这种 RAM。这些现在都不常见了。硬盘震撼与电池供电的 RAM(太贵)、早期的固态设备(有点贵)或举着旗帜的农民(从未流行过,糟糕的数据密度)。 甚至现代闪存是快速擦除 eeprom 的后代),eeprom 早已用于电子设备中存储固件等内容。

硬盘恰好处于高容量(这很重要!)、低成本和相对较低的成本的完美结合点。充足的贮存。

你发现的原因嵌入式微控制器现代低端 PC 的组件相对便宜,足够大(用于桌面操作系统),并且与手机组件具有通用性,因此可以批量生产,具有标准接口。它们还可以提供很好的密度存储空间。考虑到这些机器中有许多都微不足道32 或 64GB 的驱动器,与十年前的大部分硬盘相当,它们是这个角色的明智选择。

我们终于达到了可以存储合理数量内存的程度负担得起合理的速度在 emmcs 和 flash 上,这就是人们选择它们的原因。

答案2

所有闪存设备(从平板电脑到手机到智能手表、SSD 甚至相机和 USB 拇指驱动器中的 SD 卡)都使用 NVRAM 技术。不同之处在于 NVRAM 的架构,以及操作系统如何在任何存储介质上安装文件系统。

对于 Android 平板电脑和手机,NVRAM 技术基于 eMMC。我能找到的有关该技术的数据表明写入次数在 3k 到 10k 之间。不幸的是,到目前为止,我找到的所有信息都不是确定的,因为 Wikipedia 上没有关于该技术的写入次数的说明。我查看过的所有其他地方恰好都是各种论坛,因此我很难称之为可靠的来源。

为了进行比较,其他 NVRAM 技术(例如使用 NAND 或 NOR 技术的 SSD)的写入周期在 10k 到 30k 之间。

现在,关于操作系统如何安装文件系统的选择……我不能代表苹果公司的做法,但对于安卓公司来说,芯片的分区就像硬盘一样。你有一个操作系统分区和一个数据分区,以及几个其他专有分区,具体取决于设备制造商。真正的根分区位于引导加载程序中,它与内核一起捆绑为压缩文件(jffs2、cramfs 等),这样当设备的第 1 阶段启动完成时(通常是制造商的徽标屏幕),内核就会启动,根分区也会同时作为 RAM 磁盘安装。

当操作系统启动时,它会将主分区的文件系统(/system,在 Android 4.0 之前的设备上为 jffs2,在 Android 4.0 之后的设备上为 ext2/3/4,在最新的设备上为 xfs)挂载为只读,这样就无法向其中写入任何数据。当然,这可以通过所谓的“rooting”设备来解决,这样您就可以以超级用户的身份访问,并允许您将分区重新挂载为读/写。您的“用户”数据将写入芯片上的另一个分区(/data,根据 Android 版本,它遵循与上述相同的约定)。

随着越来越多的手机放弃 SD 卡插槽,您可能会认为写入速度会更快达到上限,因为现在您的所有数据都保存在 eMMC 存储中,而不是 SD 卡中。幸运的是,大多数文件系统都会检测到对存储特定区域的写入失败。如果写入失败,则数据会默默保存到存储的新区域,坏区(称为坏块)会被文件系统驱动程序封锁,以便将来不再将数据写入那里。如果读取失败,则数据会被标记为损坏,并会告知用户运行文件系统检查或检查磁盘,或者设备会在下次启动时自动检查文件系统。

事实上,谷歌拥有自动检测和处理坏块的专利。

https://www.google.com/patents/US7690031

更确切地说,你的问题是“这怎么突然变得实用了?”这不是正确的问题。相反,它从一开始就不实用。强烈建议不要在 SSD 上安装操作系统 (Windows)(大概),因为操作系统对磁盘的写入次数较多。

例如,注册表每秒接收数百次读取和写入,这可以通过 Microsoft/SysInternals 工具 Regmon 查看(https://technet.microsoft.com/en-us/sysinternals/regmon.aspx

建议不要在第一代 SSD 驱动器上安装 (Windows) 操作系统,因为由于缺乏磨损均衡,每秒写入注册表的数据可能最终会赶上早期采用者,并因注册表损坏而导致系统无法启动。

对于平板电脑和手机以及几乎任何其他嵌入式设备,都没有注册表(当然,Windows Embedded 设备是例外),因此不必担心数据会不断写入闪存介质的相同部分。

对于 Windows Embedded 设备,例如许多公共场所的自助服务终端(包括沃尔玛和 Kroger 自助结账终端)——您知道,您可能不时看到随机 BSOD 的设备——没有太多可进行的配置,因为它们是预先设计的,配置永远不会改变。在大多数情况下,只有在写入芯片之前才会发生变化。任何需要保存的信息(例如您向杂货店付款)都通过网络保存到服务器上的商店数据库中。

答案3

您的问题基于这样一个假设:闪存的写入限制,如果没有广泛的磨损均衡,就不适合用作任何计算设备的主存储。有一系列计算设备(包括平板电脑、上网本、智能手机等)都使用闪存来达到这一目的,而没有 SSD 中的磨损均衡。

记忆生活

我找不到证据表明这些设备中使用的内存通常比闪存驱动器或 SD 卡的寿命更长。

虽然使用了闪存,但与 U 盘或 SD 卡中的闪存还是有一些区别。这些计算机通常使用 eMMC,其控制器和闪存位于一个芯片上,其架构与 SD 卡或闪存驱动器不同。eMMC 控制器的一个区别是它模拟硬盘驱动器,因此计算机将其视为可启动设备。这是一种设计便利。

一些制造商声称,他们的 eMMC 控制器比典型的 SD 卡或闪存驱动器具有更好的磨损均衡功能和更强大的纠错功能。改进的 ECC 意味着它可以承受更多的性能下降并且仍然有效,因此它的有效寿命更长。

由于所有这些都是专有的,因此很难找到确凿的数据来支持它。即使有使用寿命更长的高端 eMMC,但这些设备中的大多数也不一定使用这种材料。我能找到的有关 eMMC 写入限制的杂项信息似乎将其置于与 SD 卡和 U 盘大致相同的范围内。

看起来,一般来说,更长寿命的内存并不是在这些设备中使用闪存作为主存储的基础。每个人对写入限制的看法都没有错;使用情况可以用需求不同的事实来解释。

平台差异

PC 和笔记本电脑是人们希望长期使用的通用计算机。考虑到闪存驱动器和存储卡的设计写入量和预期使用寿命,它们并不适合作为主要存储设备。这反映在您在问题中描述的指导中,并且这一点没有改变(至少对于当前一代闪存而言)。

平板电脑、上网本、智能手机等情况则有所不同。使用闪存作为主要存储的设备是用途有限的设备。它们设计用于处理的任务、可用于支持其他用途的最低硬件资源、基本设计以及操作系统和软件,导致写入量与 PC 相比较少。鉴于这些设备依赖于闪存(不可替换的格式),写入限制是决定在其上运行哪些设备时需要考虑的问题。

它们的预期寿命也较短。使用闪存作为主要存储的设备价格低廉,专为人们经常升级的市场而设计。这些设备在小巧的外形中提供了某些功能和能力,它们的使用寿命取决于它们所用的组件。电池可能会先于闪存失效,或者零件可能会损坏。而且市场营销人员不断说服你,你的设备已经过时了,需要更换为最新型号。

有这样一个故事:亨利·福特曾经派他的工程师去废品场寻找报废汽车中仍然完好的零部件。当时的想法是,这些零部件可以更便宜地制造,因为它们不需要使用那么长时间。这种逻辑也适用于这些设备中的闪存。它只需要使用足够长的时间,而不需要比设备寿命更长。

结论

市场上有便宜、微型的计算设备,它们对主存储器的写入次数不如 PC 设计时那么多,使用寿命预期也不一样。eMMC 形式的内存便宜、微型、可启动,对这类应用来说已经足够好了。

相关内容