任何人都知道为什么旧的USB驱动器盒有2TB的大小限制?


6

我最近将家用外置硬盘从1TB升级到3TB。在这样做的过程中,我了解到它的桥接板不支持大于2TB的驱动器。我必须得到一个更新的案例才能支持这个驱动器。

有谁知道为什么这应该是真的?

从SATA接口的角度来看,应该没有问题。识别块的LBA-28系统强加了128GiB限制(假设通常是512字节块),但这已经不是十多年来一直存在的严重问题。从那以后的一切(包括所有SATA设备)都支持LBA-48,最高可达128PiB,因此应该可以轻松支持3TB。

我知道MBR分区表有2TB限制的问题,但这不应该影响SATA-USB桥接芯片,因为它(或应该)只是在两个协议之间转换磁盘块。

我认为这可能仅仅是芯片制造商变得懒惰的情况,使用32位整数来实现真正需要支持48位值的应用程序。它真的那么简单(和IMO,不可原谅)还是还有其他我想念的东西?

只是很好奇,但我还没有能够从任何地方谷歌回答。

Answers:


8

好的,我在30分钟后回答了我自己的问题。我无法停止寻找原因,我想我找到了它。这不是支持48位块地址的ATA规范。这实际上是USB规范。

根据Wikipedia(http://en.wikipedia.org/wiki/USB_mass_storage_device_class#Device_access),USB海量存储类实现了SCSI透明命令集。以SCSI Read命令(http://en.wikipedia.org/wiki/SCSI_Read_Commands#Read_.286.29)为例,我看到该命令有三个不同的版本。原始的有一个21位的块地址(因此在1GB的512字节块中最多)。1987年,他们添加了一个使用32位块地址的版本(最高为2TB)。然后在2000年,他们添加了一个64位块地址的版本(在8Zib - 8千兆兆兆字节的顶部)。

在这一点上,我认为答案很明确。原始芯片没有实现64位地址的调用,认为没有意义。然后当3TB驱动器可用时,它们被增强以支持64位地址调用。

我不知道这是否正确,但这是合乎逻辑的。


1
与许多RAID控制器相同的故事。由于相同的限制,大量便宜/较旧的只能支持2TB卷。
马克·亨德森
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.