无聊水一下,关于 U 盘的容量进制问题(长篇水文警告)

2020-10-26 21:17:36 +08:00
 goodboy95

今天上网瞎逛的时候,看见某顾客买个 64GU 盘发现只有 59G 在那里喷商家,然后更多人在喷某顾客没常识,不知道持久存储领域的进制为 1000 。我就突然想水一下了。

实际上我小时候就知道机械硬盘是 1000 进制的,也没感觉有太大问题,反正小时候就 4.3 个 G 的硬盘,不管是 1000 还是 1024 进制,对我来说都是不够用的,装个软件就要删安装包。

后来见到商场里卖 64M,128M 的 U 盘,我也懒得管他是 1000 还是 1024 进制,反正我也买不起……再后来我哥在我家留了个 64M 的宝贝"U 盘"(miniSD 卡加读卡器),一阵狂喜,插上电脑发现容量不到 60M,也感觉很正常,毕竟要 1000 换 1024 嘛。

很久之后,手里的小 U 盘从 64M 变成了 8 个 G,插上之后发现只有 7 个多 G,这时我突然反应过来哪里有点不对劲了。U 盘每次增大容量不都是 2 的倍数吗,如果容量是 1000 进制的话,那么 512MB 再扩大一倍应该怎么标注? 1GB ? 1024MB ?看起来明显用的是前者。但如果是前者的话,那 24MB 跑哪去了?难道 U 盘厂商专门等着 MB 升 GB 的当口,一升上去就阉割掉多出来的 24M 容量?感觉自己仿佛发现了一个惊天大阴毛……虽然那时能上网,但忙着搞大学开学的各种手续就没去搜这个问题,后来也就渐渐忘掉了。

直到最近,随手刷到一个视频,讲述固态硬盘的 256G 为什么只有不到 240G,里面讲固态会划出一部分空间做 OP 加速存取,不然速度极慢。然后我感觉豁然开朗,原来少掉的空间是拿来做优化了……

等等,固态拿 OP 做优化我信,但 U 盘这个存取速度,确认是做了优化?感觉还不如机械硬盘快啊。难道说 U 盘主控真是足够辣鸡,即使有 OP 也能差到这种程度?谷歌搜"U 盘 OP 空间",结果搜了一堆固态硬盘的资料,不过有人讨论 OP 时把 U 盘和固态并列提及。(话说 U 盘比固态流行时间要早的多,为什么很多人单独讨论固态的 OP,却几乎没见谁单独提及 U 盘的 OP ?)还有人说 U 盘为了防坏块会减掉一部分空间,但真的会减掉那么多吗?哎,到现在了还是有点迷惑。

2770 次点击
所在节点    随想
16 条回复
ysc3839
2020-10-26 21:36:26 +08:00
有的主控可以用量产工具查看闪存芯片参数,可以用这个方法看到是不是留有 OP 空间。
tuwulin365
2020-10-26 21:47:30 +08:00
KB 和 KiB 的区别
wanguorui123
2020-10-26 21:52:36 +08:00
1000 进制与 1024 进制的,B 站《硬件茶谈》讲的很清楚
mercury233
2020-10-26 22:25:33 +08:00
广告法没有把这块规范了是个遗憾
whatric
2020-10-26 22:58:21 +08:00
说实话看了几遍没太看懂,举个例子吧:

标称 64 GB 的存储转换为字节( Byte )为 64 000 000 000 B (大部分商家和 Apple 使用的 1 KB = 1000 B ),但是当买回家插在 Windows 电脑上的时候,由于 Windows 使用的是 1 KB = 1024 B 的算法,所以显示出来应该是 64 000 000 000 / (1024 * 1024 * 1024) = 59.6046 GB 。同样的,标称 256 GB 的固态硬盘用同样的方法计算出来就应该是不到 240 GB (238.4186 GB)。

友善交流 ◉‿◉
yihaomizhijia
2020-10-26 23:01:46 +08:00
可能有些厂商也觉得过意不去,128G 的固态写的是 120G,虽然也不会足额 120,但是看上去“老实”一点吧。

480G 应该是同理吧,比 256 大又不好写成 512G 。
jim9606
2020-10-26 23:02:48 +08:00
@wanguorui123 提到的 [视频传送门]( https://b23.tv/BV1UZ4y1M7TB)
要我说就是:错的是操作系统,操作系统应该用 IEC 定义的 1024 进制二进制乘数词头也就是 GiB 、MiB 、KiB,可能考虑到大众接受能力就没改。
内存的标签也是不恰当的,8GB 内存条应该标 8GiB,这样做的原因估计如上。
还有一点是,如果硬盘标签换用 GiB 标示,消费者看到数字变小了可能会误认为缩水了,所以谁也不想带头换。
OP 空间那个问题只是解释为什么 SSD 通常不会给 256 或者 512 这样整齐的数字,但这种给整齐数字的产品的有的,比如我手头标称 512G 的 SN730,可用容量 488370MiB 。
goodboy95
2020-10-26 23:59:04 +08:00
@whatric 实际上我主要说的就是,u 盘如果是 1000 进制容量,那么为什么 256M 之后是 512M,但 512M 之后却是 1G(1000M),而不是 1024M,以前我一直想不通这个问题。当然,现在猜测的话也只能往 OP 空间这种方向去猜了,虽然还是有点不确信。
goodboy95
2020-10-27 00:11:21 +08:00
@whatric 如果 U 盘像机械硬盘一样,一直标注自己是 250M,500M,1G(1000M),2G(2000M),那我小时候就不会有任何疑问,因为每次都是正好翻一倍。或者里面插一些 4.3G ,160G 的怪异容量也无所谓,大不了就认为机械硬盘容量没有规律。
但偏偏它是标注 256M,512M,1G(1000M),2G(2000M),这下疑问就来了,前面还在好好的翻倍,后面也在好好的翻倍,偏偏在 512M 到 1G(1000M)的时候不严格按照翻倍规则了。而且市面上的 U 盘容量 99.9%都是 2 的幂,剩下 0.1%我也没找到,所以也不能用 U 盘容量无规律来解释。
geelaw
2020-10-27 00:18:28 +08:00
很多闪盘是比机械硬盘快的,否则 Windows Vista 不可能推出 ReadyBoost 。
anguiao
2020-10-27 00:22:57 +08:00
@yihaomizhijia
标 120G 一般是把剩下的部分当成 SLC 缓存用了,现在是 TLC 时代了,基本上都是这么标的。
其实不存在过意不去的说法,你得到的容量,依旧还是那个比例。
goodboy95
2020-10-27 00:24:15 +08:00
哎,为什么都在跟我解释有没有 i 的区别……好歹我也是用了这么久电脑的人了,不至于拎不清这玩意吧……sigh……
我单纯就是想让你们看个好玩的事情,明明 u 盘容量光看数字的话都是 2 的幂次方,128M,256M,512M,但为什么 512M 下面就是 1G(1000M),而不是 1Gi(1024M)了呢?明明 512*2 应该是 1024 啊。不知道有没有人闲的没事的时候想过这个事情,感觉应该不止我一个人吧。
goodboy95
2020-10-27 00:27:23 +08:00
@geelaw 好吧,实际上我第一次看 readyboost 的时候也想了半天微软想干啥,明明手里的 u 盘连 60MB/s 的接口速度都跑不满(大文件拷贝有个 20M 都感觉很快了),只不过当时家里没上网,只能瞎猜。
goodboy95
2020-10-27 00:43:01 +08:00
插句题外话,谁知道怎么恢复被隐藏的回复吗?现在我是手机看网页版 v2,本来想给 1#发个感谢来着,结果不小心点了隐藏,弹框也没仔细看就确认了……
goodboy95
2020-10-27 01:06:39 +08:00
如果非要给我这篇水文概括中心思想的话,我姑且是想说,有些看起来像是常识的东西,仔细想想说不定能挖出个漏洞来。遇见别人不知道某个带漏洞的“常识”的时候,好像也没必要过分嘲笑他。
就比如说,机械硬盘标称容量换算单位 1000 是常识,但 U 盘换算单位 1000 就是有点漏洞的常识了。毕竟换算单位 1000 会出现“前面的 128M,256M,512M 都是 2 的幂,偏偏 512M 的下一代就变成了 1G(1000M),不再是 2 的幂,这不科学啊”这种问题。
shenlanAZ
2020-10-27 15:31:35 +08:00
@goodboy95 #15

可能网络方面 你会比较喜欢吧

ISP: 100M, 1000M, 2000M

网卡速率: 100Mb, 1Gb (1000Mb), 10Gb

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/718823

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX