Czy ktoś wie, dlaczego starsze obudowy dysków USB mają limit rozmiaru 2 TB?

6

Niedawno zaktualizowałem domowy dysk twardy z 1 TB do 3 TB. W ten sposób dowiedziałem się, że jego mostek nie obsługuje napędów większych niż 2 TB. Musiałem zdobyć nowszą skrzynkę, aby obsługiwać ten dysk.

Czy ktoś wie, dlaczego tak powinno być?

Z punktu widzenia interfejsu SATA nie powinno być problemu. System identyfikacji bloków LBA-28 narzucił limit 128GiB (przy założeniu zwykłych bloków 512-bajtowych), ale od ponad 10 lat nie stanowi to poważnego problemu. Wszystko od tamtego czasu (w tym wszystkie urządzenia SATA) obsługuje LBA-48, który osiąga maksimum 128PiB i dlatego powinien z łatwością obsługiwać 3 TB.

Zdaję sobie sprawę z problemu tablicy partycji MBR z jej limitem 2 TB, ale nie powinno to wpływać na mostek SATA-USB, ponieważ jest (lub powinien być) tylko tłumaczeniem bloków dysku między dwoma protokołami.

Myślę, że może to być po prostu przypadek, gdy twórcy układów stają się leniwi, używając 32-bitowych liczb całkowitych dla aplikacji, która naprawdę musi obsługiwać wartości 48-bitowe. Czy to naprawdę takie proste (i IMO, niewybaczalne) czy jest coś, za czym tęsknię?

Ciekawe, ale nie udało mi się uzyskać odpowiedzi z dowolnego miejsca w Google.

David C.
źródło

Odpowiedzi:

8

OK, odpowiadam na moje pytanie 30 minut później. Nie mogłem przestać szukać powodu i myślę, że go znalazłem. To nie jest specyfikacja ATA, która obsługuje 48-bitowe adresy blokowe. To właściwie specyfikacja USB.

Według Wikipedii ( http://en.wikipedia.org/wiki/USB_mass_storage_device_class#Device_access ) klasa pamięci masowej USB implementuje przezroczysty zestaw poleceń SCSI. Patrząc na przykład polecenia SCSI Read ( http://en.wikipedia.org/wiki/SCSI_Read_Commands#Read_.286.29 ) jako przykład, widzę, że istnieją trzy różne wersje polecenia. Oryginał ma 21-bitowy adres bloku (dlatego uzupełnienie ma 1 GB wartości 512 bajtów bloków). W 1987 roku dodali wersję, która używa 32-bitowych adresów blokowych (doładowanie przy 2 TB). Następnie w 2000 roku dodali wersję z 64-bitowymi adresami blokowymi (doładowanie przy 8Zib - 8 giga-terabajtów).

W tym momencie myślę, że odpowiedź jest jasna. Oryginalne układy nie realizowały połączeń z adresami 64-bitowymi, uznając, że nie ma sensu. Następnie, gdy dyski 3 TB stały się dostępne, zostały ulepszone do obsługi 64-bitowych połączeń adresowych.

Nie wiem, czy to jest poprawne, ale jest logiczne.

David C.
źródło
1
Ta sama historia z wieloma wieloma kontrolerami RAID. Strasznie dużo tańszych / starszych może obsługiwać tylko 2 TB woluminów z tego samego ograniczenia.
Mark Henderson