从我购买的所有硬盘驱动器来看,它们似乎从未达到广告尺寸那样大。从320 GB降到290 GB,从500 GB降到450 GB,等等。这是否有技术原因?
从我购买的所有硬盘驱动器来看,它们似乎从未达到广告尺寸那样大。从320 GB降到290 GB,从500 GB降到450 GB,等等。这是否有技术原因?
Answers:
技术原因是硬盘驱动器制造商向您出售公制容量。因此,按公制计算,GB = 1,000,000,000字节。但是,计算机以2的幂为单位测量驱动器大小。因此1GiB = 1,024MiB,1MiB = 1,024KiB,依此类推。这意味着1GiB = 1,073,741,824字节,相差73,741,824。
因此,当您安装1GB(出于示例目的)驱动器时,操作系统只会看到0.93GiB,这就是造成差异的原因。
(如果您以前从未见过缩写GiB,则它是一种新的表示法,用于表示1024的幂,而不是1000的幂。但是,大多数操作系统会将GiB报告为GB,这使这个问题更加困惑了)
让我们从以下语句开始:“ 人类系统基于10的幂,二进制基于2的幂 ”
随之而来的可以为您的问题提供第一个答案。
的度量前缀10,1000或10 ^ 3功率ķ,10 ^ 6是中号,10 ^ 9 ģ ...
的二进制前缀是2的幂(2 ^ 10 = 1024不那么远从1000但不同,2.4%)。
4000000000/1024/1024/1024 Your 4GB are 4 000 000 000 Bytes
3.72529029846191406250 That becames around 3.73 GiB
供应商和法律:当法律没有强迫他们遵守市场规则时,供应商的行为应遵循市场规则。4则卖出更好的3.78。出于相同的原因,互联网提供商经常谈论bps并让您了解Bps。有一个因数8:一个Byte(B)是8位(b)。
问题在于法律存在,但并非所有国家都一样。
在国际体系,或SI,是使用最广泛的世界贸易和科学使用(这是发表于1960年,目前是部分出仅在美国被采用,缅甸和利比里亚)。
它不仅建立度量单位,还建立前缀。
由于在计算机世界中自然而然地使用2的幂的数字基(而不是在人类世界中为10 ),因此在1998年引入了二进制前缀系统。在这里直接表。如今,我们发现这种情况
the International Electrotechnical Commission (IEC) and several other standards
(NIST...) and trade organizations approved standards and recommendations
for a new set of binary prefixes that refer unambiguously to powers of 1024
当你读1GB
它应该是1 000 000 Bytes
,
而不是当你读1GiB
它应该是1 073 741 824 Bytes
。
为什么仍然应该是不为?因为这取决于生产该物品的国家的立法者和该物品进口的国家的立法者如何采用和转换国际委员会的指令。
因此,请睁大眼睛。
(即使是因为在一些国家是规定写入信息,以满足胶粘标签法律的职责。通常它是如此之少比你真的需要保留好打开你的眼睛阅读阅读)
其他参考
当驱动器制造商创建500 GB容量的驱动器时,它确实具有500,000,000,000字节的容量,并且他们一定会以此做广告。作为二进制设备的计算机更喜欢使用2的幂和不同的前缀集,因此它们用于存储空间测量:
1吉字节= 2 ^ 10、1兆字节= 2 ^ 20、1吉字节= 2 ^ 30等
例如,我有300 GB的驱动器连接到此计算机,Windows会显示以下容量信息:
Capacity: 300,082,855,936 279 GB
300,082,855,936 / 2 ^ 30 =〜279。它实际上向您显示的是驱动器的大小(以gibi字节为单位,而不是千兆字节)。因此,它应显示为:
Capacity: 300,082,855,936 279 Gi
也许有人会说这是Windows中的一个缺陷,但是显然没有确定存储容量前缀含义的明确标准。这篇Wikipedia文章中提供了许多更好的信息,包括有关“消费者困惑”的部分。
如果要确定其实际大小,请找出其使用的扇区大小以及扇区总数。然后将这两个数字相乘,得出总大小(以字节为单位)。这是真实尺寸!在任何操作系统上!也称为磁盘容量。
T = b x S
Where T is the total disk size in bytes,
b is the sector size in bytes,
and S is the total number of sectors.
您通常会在设备本身的标签上找到打印的扇区数。如果不是,请查看您的模型的数据表。这是一份文档,其中指定了有关模型的各种技术细节。在互联网连接的世界中,您可以在制造商的网站上找到该文件,可以在网页上的某种表格中找到,也可以作为文件下载(通常为PDF)供研究和参考。在较晚的时期(在没有网络之前),购买硬盘驱动器时可能会收到打印副本。
有两种类型的扇区:物理扇区和逻辑扇区。最常见的是,标准磁盘上的物理扇区大小为512字节。扇区大小未在现代硬盘驱动器的标签上列出。要了解为什么会这样,您需要了解逻辑扇区和物理扇区之间的区别。我将尝试简要地解释一下。
现代硬盘驱动器使用逻辑扇区。您会看到这称为LBA(逻辑块寻址)。实际上,在标签上查找扇区总数时,您会看到称为LBA的扇区数,因此它会显示类似的字样LBA: 123456789
。这是您的扇区总数。这些是磁盘上的逻辑扇区,它们使用LBA寻址方法进行写入和读取。此方法允许操作系统使用文件系统格式(例如NTFS,FAT32),其分配单位大于物理扇区的大小。
该分配单元在概念上类似的扇区大小,但它的一些广告中,你可以改变它的大小,而不改变物理扇区的大小灵活性水平。如果您已经购买并安装并在生活中格式化了多个硬盘驱动器,那么您无疑会遇到这个术语。今天,最常见的NTFS格式硬盘驱动器分配单元大小是4K,8K和16K。我之所以说“今天”,是因为这些天硬盘驱动器可用的磁盘大小。
即,适合于一个硬盘驱动器的分配单元大小可能不适用于另一个。这取决于它的大小。较小的分配单元尺寸越小越好,较大的分配单元尺寸越大越好。但是,这不会阻止您在较小的硬盘驱动器上使用较大的分配单元大小。反之!由于分配单元的逻辑性质,它可以在格式化过程中进行设置,并且可以设置为大于物理扇区。在较小的硬盘驱动器上,较大的分配单元往往会稍微提高性能,但会占用磁盘空间。
这就是Microsoft将术语从扇区大小更改为分配单位的原因。这发生在几个Windows版本之后。如果我没记错的话,正是他们开始使用此术语的9x Windows系列之一。
然后,分配单元在内部转换并映射到磁盘上的一个或几个物理扇区。该任务由驱动器控制器执行。控制器是硬盘驱动器背面的PCB板。在早期的ATA硬盘驱动器(现在称为并行ATA或PATA)上,控制板被称为IDE(集成驱动器电子产品)。从历史上看,硬盘驱动器并不总是内置有控制器。相反,这是一个单独的接口。
LBA寻址的硬盘驱动器上最常见的物理扇区大小为512字节。但是自2010年左右以来,许多新的硬盘驱动器现在都属于Advanced Format类型。这仅表示它使用的扇区大小大于512字节。当前,最大的扇区大小是4K,即4096字节。
要点是:现代硬盘驱动器上的物理扇区大小与用户几乎没有关系。物理扇区大小被组织成逻辑扇区和分配单元,并从用户那里抽象出来。Advanced Format磁盘甚至还有一层抽象层,因为这些磁盘可以模拟512字节的扇区,但使用4096个物理扇区。因此,扇区大小通常不打印在LBA寻址硬盘驱动器的标签上,而高级格式磁盘则更是如此。但是,它们确实具有物理扇区大小。您可以在每种型号的数据表中找到详细信息,也可以在运行的系统上使用实用程序软件找到该详细信息。
这种类型的磁盘早于LBA寻址的磁盘驱动器。他们使用称为CHS(汽缸盖扇区)寻址的方法进行读写。用户可以直接访问物理扇区。与LBA不同,没有扇区抽象层。这些磁盘上的扇区大小几乎可以保证为512字节。但是它可以由用户更改。
您听说过“低级格式化”吗?这是该术语的来源。由于直接访问物理扇区,因此可以更改扇区的大小。这使用户可以“低级”格式化磁盘,这意味着以物理方式重写磁盘上的扇区。当磁盘出现问题时,这有时很有用。这是刷新磁盘的一种方法。现代硬盘驱动器不再可能进行真正的低级格式化。请勿将其与文件系统格式混淆。
CHS磁盘始终在标签上印有“每磁道扇区数(SPT)”,以及其他详细信息。如果未提及扇区大小,则假定为512字节。其他细节是气缸数和缸盖数。这些是主要的三个。因此,名称为气缸盖扇区。这也是有充分的理由的。因为在使用CHS寻址的真正早期的硬盘驱动器上,所有这些参数都必须在系统的BIOS设置程序中手动设置。这是安装过程的一部分!因此,这是正确安装它的关键信息。随着PC平台的发展(包括BIOS增强功能,磁盘驱动器和接口创新),有可能仅插入硬盘驱动器,系统就会对其进行检测并自动进行配置。
您可能已经注意到,我以过去时态写过这些磁盘。这是因为它们已过时,并且(几乎)无处可寻。也许除了技术博物馆。
有关测量的一些基础知识:
这些是基本的度量标准,但是除非您是程序员,否则您不会遇到困难。磁盘大小,分区和文件使用字节。字节是最实际的测量方法。磁盘上的一个扇区是一个字节块。按照惯例,这通常是512字节,是2的倍数。
2^0 = 1 byte
2^1 = 2 byte
2^2 = 4 byte
2^3 = 8 byte
2^4 = 16 byte
2^5 = 32 byte
2^6 = 64 byte
2^7 = 128 byte
2^8 = 256 byte
2^9 = 512 byte
这些最小的字节大小只能用数字轻松表示。但是2的20的倍数是1048576,而30的倍数是1073741824。如果这表示字节,我们可以使用前缀来更简单地表示相同的值。这就是为什么我们有前缀kg,mega和giga之类的原因。但是问题在于,这些是公制十进制测量系统中使用的SI(SystèmeInternational)前缀。该系统中的每个前缀代表一个10的倍数的值。而二进制计算机使用2的底数来度量信息。
unit 10^0 = 1
kilo 10^3 = 1000
mega 10^6 = 1000000
giga 10^9 = 1000000000
因此,国际标准组织IEC引入了二进制前缀的概念。在此系统中,公斤,兆,千兆等名称已稍作更改,以反映它们将用于二进制测量。
kibi 2^10 = 1024 = 1024^1
mebi 2^20 = 1048576 = 1024^2
gibi 2^30 = 1073741824 = 1024^3
名称是它们在SI系统中各自名称和二进制一词的串联。例如,吉备,从形成き卤味和双向进制。
如果我说一个物体的重量为5000克,那么我可以用5 kG(千克)作为前缀来表示该值。我将其除以一千以删除尾随零。因为前缀的值是已知的,所以第二个人不需要问我第一次测量的克数。通过采用我的5 kG表示法并将其乘以一千以将其转换为克,他只是颠倒了这一过程。Kilo表示千,所以5 x 1000 = 5000。
如果每个扇区为512字节,则磁盘上的前30个扇区为15360字节。为了更简单地表达这一点,我可以将其除以1000。结果为15.36 KB,即15.36 kB。如果我将其舍入到最接近的整数,则为15 kB。如果另一个人查看此数字,他会假定15 kB是精确的度量,然后将其乘以1000即可将其转换为字节。因此这将是15000字节,这是不正确的,因为原始度量是15360字节。另一方面,如果将15360字节除以1024,则将得到15 KiB!那是千字节。无小数点扩展!由于它说的是“ KiB”而不是“ KB”,因此另一个人会知道要乘以1024,而不是1000,以获得原始值。
同样,当制造商在设备上打印8 GB时,他们使用的是十进制前缀。尾随零值的那些!因此8 GB不是8 GiB(gibibyte)或8 x 2 ^ 30,而是8 x 10 ^ 9 = 8 000 000 000字节。但是,Windows使用的二进制大小计算(2的幂)看起来像十进制前缀(即“ GB”)。因此,在Windows中,这8 000 000 000字节除以2 ^ 30(或1024 ^ 3)得到7.450580597“ GB”(实际上是GiB)。这四舍五入到最接近的百分之一,因此在Windows中将显示为7.45“ GB”。我一直引用“ GB”,因为Microsoft应该使用GiB来表示这个意思,而不是GB。这只会使一个已经令人困惑的话题成为广告。
现在,我将使用图片中硬盘驱动器上的标签信息来介绍一些示例。首先让我们看一下500 GB磁盘。
Capacity: 500 GB
LBA: 976773168
976773168 x 512 = 500107862016 bytes
500107862016 / 1024^3 = 465.761741638 ≈ 466 GiB
因此,这是466 GiB,或Microsoft术语(和JEDEC)的466 GB。请注意,该数字甚至不除。我相信这是因为存储数据的扇区数超出了用户可使用的扇区数。有些扇区受到保护,有些则用于重新映射。随着时间的流逝,某些扇区会变坏,因此此时将其他扇区用作备用。硬盘驱动器会标记并跟踪坏扇区并停止使用它们。
如果仅使用容量编号并将其转换为GiB,它将看起来像这样。
500 GB = 500 x 10^9 = 500000000000 byte
500000000000 byte = 500000000000 / 1024^3 = 465.661287308 ≈ GiB
您会看到它的数量要小一些,但仍舍入到466 GiB。但是,以确切的字节为单位,这更接近实际使用的数量。这样,您无需知道扇区大小。实际容量仍使用LBA编号和扇区大小来计算。这就是我将在其余示例中使用的内容。
Capacity: 320 GB
LBA: 632672208
632672208 x 512 = 323928170496 bytes
323928170496 / 1024^3 ≈ 302 GiB
最后,这是CHS磁盘之一。基本思想非常相似。如果没有其他说明,则假定扇区大小为512字节。我将看一看昆腾磁盘。您可以自己做IBM。量子盘没有透露任何有关其容量的信息。
C: 2484
H: 16
S: 63
2048 x 16 x 63 x 512 = 1056964608 bytes
1056964608 bytes = 1056964608 / 1024^2 = 1008 MiB
1056964608 bytes = 1056964608 / 1024^3 = 0.984375 ≈ 0.98 GiB
你去!高达0.98 GB!对不起!我的意思是0.98 GiB!;-)
有一种叫做“担保部门”的东西。您会在某些硬盘驱动器的标签上或它们的数据表中找到此标签。这是用户/消费者与存储设备供应商之间不断发生争议的结果。如今,在云计算时代和固态磁盘已成为主流技术并逐渐取代旧硬盘驱动器的世界中,这种困惑仍然存在。
我想说,营销与此几乎没有关系。这纯粹是一个数学问题,不是数学本身的问题,而是人的问题。这只是一个很大的混乱而已。至少,Microsoft应该将二进制前缀表示为KiB,MiB和GiB。Windows仍然是当今PC上的主要操作系统。
在过去的计算机中,每次计算都是昂贵的(从性能的角度而言)。程序员使用各种快捷方式来进行尽可能少的计算。这些技巧之一是将日期的年部分存储为仅两位数,这最终导致了y2k问题。另一个技巧是,他们将1k(千)定义为不等于文明世界中其他所有人的1000,而是改为1024。这样一来,他们在进行尺寸计算时就可以偷工减料。尽管计算机计算变得便宜得多,但这个习惯仍然存在,并且一直沿用至今。
硬件制造商会为您提供适当的大小,其中K = 1000,M = 1000000和G = 1000000000。它是为您提供错误值的软件。
如今,软件制造商正在改变他们的习惯。例如,OSX显示适当的大小。