为什么SSD的大小约为240 GB或120 GB,而不是正常的256 GB或512 GB?这些数字比240或120有意义得多。
为什么SSD的大小约为240 GB或120 GB,而不是正常的256 GB或512 GB?这些数字比240或120有意义得多。
Answers:
尽管许多现代固态硬盘(如840 EVO系列)确实提供了您喜欢的大小(提到的256GB),但制造商过去常常保留一些存储空间,以应对性能下降和缺陷的机制。
例如,如果您购买了120GB的驱动器,则可以肯定地确定其内部确实是128GB。保留的空间只是为控制器/固件空间提供了诸如TRIM,垃圾回收和磨损均衡等功能。当SSD首次投放市场时,通常的做法是在控制器已经变得不可见的空间之上留出一些未分配的空间,但是算法已经变得更好,因此您不必做到这一点了。
编辑:关于这一现象的一些评论,必须用广告空间(以千兆字节(例如128x 10 ^ 9字节)表示)与操作系统显示的GibiByte值之间的差异来解释,这一事实是-大多数时间-2的幂,在本示例中为119.2 Gibibyte。
据我所知,这是上面已经解释过的事情的基础。虽然我当然不能说出确切的算法需要多少额外的空间,但计算结果保持不变。制造商组装的SSD确实使用了两个闪存单元(或其组合)的电源,尽管该控制器并未使所有空间对操作系统可见。剩下的空间被广告为GB,在此示例中为111 GB。
机械和固态硬盘驱动器的原始容量均大于其额定容量。保留了“额外”容量来替换坏扇区,因此驱动器不必在下线时就完美无缺,因此可以在使用过程中将坏扇区重新映射到备用扇区。在工厂进行初始测试期间,所有坏扇区都将映射到备用扇区。使用驱动器时,它将监视扇区(使用纠错例程检测位级错误),并且当扇区开始变坏时,它将扇区复制到备用磁盘,然后重新映射。每当请求该扇区时,驱动器就会转到新扇区,而不是原始扇区。
在机械驱动器上,由于它们控制伺服,磁头和盘片编码,因此它们可以添加任意数量的备用存储,因此它们的额定存储容量为1 TB,另外还有1 GB的备用空间用于扇区映射。
但是,SSD使用闪存,闪存通常以2的幂进行制造。对于访问200字节的8位地址和访问256字节的8位地址,解码地址所需的硅片相同。由于硅的那部分大小没有变化,因此最有效地利用硅资源的方法是在实际闪存容量中使用2的幂。
因此,驱动器制造商的总原始容量为2的幂数,但是他们仍然需要留出一部分原始容量用于扇区映射。例如,这导致256GB的原始容量仅提供240GB的可用容量。
简而言之,所有SSD根本都不是它们宣传的内容。他们公布的是“可用”磁盘空间。对于大多数具有120个“可用” GB存储空间的驱动器,基本驱动器实际上是128 GB驱动器。如前所述,为某些特定的后台管理任务保留了8 GB的空间。
现在,从技术上讲,他们可以在一块芯片上再贴一块芯片,以为您提供128 GB的“可用”空间,但这会花费更多的钱。驱动器制造公司已经意识到,人们比驱动器的可用空间实际上是2的倍数更关心驱动器的大小。
旁注-实际上,有几种方法可以编写所需的系统代码,这就是为什么您会看到来自不同制造商的120、124和128 GB驱动器的原因。它们都具有128 GB的“原始”空间,但是它们以不同的方式处理所需的背景材料。在大多数情况下,没有一个驱动器编码版本比其他任何版本都好。您可能会注意到性能基准上的细微差别,但是除非您的计算机执行了一些繁重的工作并且您知道要查找的内容,否则您不太可能注意到它。
由2的幂次幂增长是一个严格的数学概念,可以轻松地在基于两种状态的计算机中采用数学快捷方式。也就是说,计算机可以像将数字乘以10或除以整数一样轻松地执行整数乘法或除以2的操作。您只需简单地向左或向右移动数字,而不必实际执行计算。
每一个编程语言对这些简单操作的运营商,在C的语言,他们n >> m
又名shift n right m bits
又名divide n by 2^m
,并n << m
又名shift left
又名multiply n by 2^m
。在处理器内部,此操作通常需要一个周期,并就地发生数据。任何其他算术运算(例如乘以3)都需要调用ALU(算术逻辑单元)来花费一个额外的周期或两个编组位,然后将结果复制回某个寄存器。如果您需要小数点精度,并且FPU [Floating Point Unit]参与其中,Heaven将为您提供帮助。
无论如何,这就是为什么您的计算机喜欢在内部将所有内容都引用为2的幂。如果机器每次要执行一些简单的数学运算来计算内存指针偏移量时都必须执行ALU操作,则计算机的运行速度将降低一个数量级。
另一方面,物理存储的增长受原始二进制数学的控制较少,而不受物理,工程和“ 行销”一词的制约。对于主轴盘,容量取决于:盘的数量,盘的大小,“圆柱”的大小以及可装入圆柱体的扇区数。通常,这些因素更多地取决于硬件的物理功能和读/写头的精度。
我不太熟悉SSD的内部特性,但我想扩展的依据是:我们可以构建N x M个NAND扇区阵列,将它们在芯片的K层分层,然后将J片装入2.5英寸硬盘盒。保留其中的H%用于性能优化,将数字四舍五入到最接近的5/10/20倍数,这就是我们要在盒子上打印的驱动器的容量。
将这些计算中的任何一个计算为2的整数倍,将是一次a幸,对任何人都没有什么好处。
var = var / 256
与var >> 8
你这些天。