硬盘容量为什么是按1KB=1000字节而不是按照1KB=1024字节制造呢?

您所在的位置:网站首页 容量k是什么单位 硬盘容量为什么是按1KB=1000字节而不是按照1KB=1024字节制造呢?

硬盘容量为什么是按1KB=1000字节而不是按照1KB=1024字节制造呢?

2024-05-23 21:28| 来源: 网络整理| 查看: 265

问题被知乎要求改了,原问题截图如下:

其实可能题主的本意是硬盘为什么按照1KB=1000字节而不按1024字节标称容量吧。不过题目问题的是制作,我就从硬盘生产的角度来回答了。

下面是原答案:

知乎惯例,先问是不是,再问为什么。

没有硬盘是按照1KB=1000字节制作的,不太严格的说,和1024有点关系。当然,硬盘的生产用制作这个词本身似乎有点不符合习惯,下面用制造代替。另外,参照国际标准,下面用1000 Byte=1 kB,1024 Byte=1 KiB进行区分。(前缀表示千用小写k,谢评论区几位指正。)

从硬盘制造过程中,跟容量有关的几个参数是每扇区大小、每磁道扇区数量、磁头数、磁道数/柱面数

扇区大小,早期的硬盘物理扇区大小是512字节,两个扇区就是1024Byte=1KiB;现代硬盘物理扇区大小是4096字节,也就是4KiB,并没有使用kB。所以这里跟kB无关,跟KiB似乎是有点关系的。

每磁道扇区数量,就是单圈磁道可以划分成多少扇区。老式硬盘的这个值最大是63,并且所有磁道的扇区数量是一致的。现代硬盘的这个值只取决于单圈磁道可以容纳的扇区数量,内圈磁道和外圈磁道的这个值是不同的。与1000或者1024都没有关系。

磁头数是一个物理量,使用了多少个盘面(一个盘片有正反两个盘面),就需要多少个磁头。与1000或者1024都没有关系。

磁道数是单个盘面上磁道的数量,这个数量主要取决于盘面直径和磁道宽度。与1000或者1024都没有关系。

老式硬盘容量=扇区大小*每磁道扇区数*柱面数*磁头数=0.5/4KiB*扇区数量

现代硬盘容量=扇区大小*((各磁道扇区数量和)*磁头数-坏扇区数量-备用扇区数量)=0.5/4KiB*扇区数量

不管哪个公式,都和1000这个数无关,和1024看上去有点关系对吧?然而事实上是我前面漏掉了一个东西:ECC,Error Correct Code,纠错码。每个扇区后面都有若干字节的纠错位,512Byte/扇区的后面是40*10bit=50字节,4KiB/扇区的后面是100字节。所以上面的公式应该是:

老式硬盘容量=562 Byte*扇区数量,新式硬盘容量=4196 Byte*扇区数量。当然,你说校验位的容量我又用不上,只用上面的公式,那的确是和1024是有点关系的。

以上是机械硬盘。如果是基于闪存的U盘/固态硬盘的话,闪存颗粒上的存储单元数量生产出来本身是2进制的,可以理解为按照1024制造。但因为主控和FTL的存在,以及SSD通常都会预留OP空间,最终的容量通常都不正好是2的某次方。基于NAND Flash的SSD最小读写单位是Page,最小擦除单位是Block,不同厂家的颗粒,一个Page大小可能是2/4/8 KiB,一个Block有多个Page,单颗粒有多个Block,按照维基的说法,常见的配置有:

32 pages/Block,512+16 bytes/Page,16 KiB/Block(+16是校验位,容量不算)64 pages/Block,2048+64 bytes/Page,128 KiB/Block64 pages/Block,4096+128 bytes/Page,256 KiB/Block128 pages/Block,4096+128 bytes/Page,512 KiB/Block

所以固态硬盘的容量也可以说和1024有点关系。

最后,硬盘厂家对外标称硬盘容量的时候,用的是kB/MB/GB/TB,操作系统报告文件大小/分区容量/磁盘容量的时候,包括Windows、Linux在内的绝大部分操作系统用的是KiB/MiB/GiB/TiB(Mac的OS X最近的版本已经改为用kB/MB/GB/TB报告容量了),因此而导致容量上的差异,例如1TB硬盘格式化之后,通常只有931GiB左右。

反对下匿名用户的回答(本来是想评论说一句的,但是评论被知乎吃掉了)

IEC制定二进制前缀标准的原因是因为一直以来使用混乱,但影响不大就算了,但现在这个影响可能会很大。

举两个很经典的使用混乱例子:

1.44M的3.5寸软盘,规格是双面80轨18扇区,每扇区512字节,不管用1000进制还是用1024进制,都算不出来1.44这个数出来。除了存储容量外,另一个经常混淆使用1000和1024的地方是网络带宽。宽带供应商说给你装百兆宽带,通常是100Mbps=100*1000*1000 bit/s。但网络工程师看下载速度的时候,说带宽有12.5 MB/s,通常是12.5*1024*1024=13,107,200 Byte/s=104,857,600 bit/s

使用混乱的话,1024和1000相比,差异不过2.4%,大部分时候这个误差影响不大。但是现在硬盘动则上T,假设你找厂家搞个1 PB的存储系统,实际只有909.49 TiB,误差已经达到9.05%,不能完全忽略了。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3