Почему жесткие диски никогда не бывают такими большими, как рекламируются?

5683
Sam152

Из всех купленных мной жестких дисков они никогда не бывают такими большими, как рекламируемый размер; с 320 ГБ до 290 ГБ, с 500 ГБ до 450 ГБ и т. д. Есть ли техническая причина для этого?

17
Нетехническая причина, конечно, заключается в том, что производители будут указывать на коробке столько, сколько они могут оправдать, чтобы стимулировать продажи. Это похоже на рекламу мелким шрифтом «до» по возможностям и «по цене». David Thornley 15 лет назад 3
Ваши диски * такие же большие, как рекламируемые. Операционная система просто неправильно их измеряет. endolith 14 лет назад 5
Не забывайте, что диск всегда указывается как * неформатированный * размер, и при форматировании будет меньше свободного места из-за таблиц форматирования, таблиц подстановки страниц и тому подобного. Daniel R Hicks 10 лет назад 2
(Но карта памяти 16G, которую я подключил прямо сейчас, имеет в общей сложности 16 000 761 856 байт, согласно * Properties *.) Daniel R Hicks 10 лет назад 0
@DanielRHicks Поздравляю! Вы получили больше, чем рассчитывали! ;-) Samir 9 лет назад 0

7 ответов на вопрос

26
Kyle Cronin

Техническая причина в том, что производители жестких дисков продают вам емкости в метрических единицах. Таким образом, ГБ = 1 000 000 000 байтов по метрической системе. Тем не менее, компьютеры измеряют размер диска в степени 2. Таким образом, 1 ГБ = 1 024 МБ, 1 МБ = 1 024 КБ и т. Д. Это означает, что 1 ГБ = 1 073 741 824 байта, разница составляет 73 741 824.

Поэтому, когда вы устанавливаете диск объемом 1 ГБ (для примера), ОС видит только 0,93 ГБ, и это является причиной расхождения.

(Если вы никогда раньше не видели аббревиатуру GiB, это новая запись, принятая для обозначения степеней 1024, а не 1000. Однако большинство операционных систем сообщают о GiB как ГБ, что еще больше запутывает эту проблему)

Gi => Гиби, а не G => Гига ChrisF 15 лет назад 5
@ChrisF: да, я добавил в свой пост дополнение, объясняющее, что Kyle Cronin 15 лет назад 0
И не заводите меня на старые "1.44Mb" дискеты. Они были фактически сделаны из 1440 * 1024 байтов, используя одновременно 1000 и 1024 такта. Это не было ни MiB, ни MB R. Martinho Fernandes 15 лет назад 11
В Википедии есть описание и диаграмма, показывающая различия http://en.wikipedia.org/wiki/Hard_disk_drive#Capacity_measurements Chris Nava 15 лет назад 1
Apple недавно изменила отображение размеров дисков в MacOSX, чтобы использовать метрические значения. Chris Nava 15 лет назад 1
8
Hastur

Первоначально это был ответ на этот вопрос (объединенный) о 4 ГБ стилусе.

Давайте начнем с утверждения: « Человеческая система основана на степени 10, двоичная - на степени 2 ».
То, что следует, может дать первый ответ на ваш вопрос.

В метрических префиксы мощность 10, 1000 или 10 ^ 3 к, 10 ^ 6 М, 10 ^ 9 G ...
В бинарных префиксы сила 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. По тем же причинам интернет-провайдеры часто говорят о битах в секунду и позволяют понять биты в секунду . Существует коэффициент 8: байт ( 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.

Почему еще должно быть а не есть ? Потому что это зависит от того, как законодатель нации, в которой производится предмет, и законодатель нации, в которую ввозится предмет, принимают и преобразуют в законе директиву международных комиссий.

Так что держи свои глаза хорошо открытыми.

(Даже потому, что в некоторых странах предписано записывать информацию для выполнения обязанностей закона на клейкой этикетке. Обычно это так мало, что вам действительно нужно держать глаза открытыми, чтобы прочитать это)


Дополнительные ссылки

7
raven

Когда производитель диска создает диск емкостью 500 ГБ, он имеет емкость 500 000 000 000 байт, и они наверняка будут рекламировать его как таковой. Компьютеры, будучи бинарными устройствами, предпочитают степени двух, с другим набором префиксов, поэтому они используют их для измерения пространства хранения:

1 кибибайт = 2 ^ 10, 1 мегибайт = 2 ^ 20, 1 гибибайт = 2 ^ 30 и т. Д.

Например, у меня есть диск на 300 ГБ, подключенный к этой машине, и Windows отображает следующее для емкости:

Capacity: 300,082,855,936 279 GB 

300,082,855,936 / 2 ^ 30 = ~ 279. Что это на самом деле показывает вам, размер накопителя в GİBİ байт, а не гига байт. Итак, следует читать:

Capacity: 300,082,855,936 279 Gi 

Кто-то может сказать, что это недостаток в Windows, но, по-видимому, нет определенного стандарта для значений префикса емкости хранилища. В этой статье Википедии есть много полезной информации, в том числе раздел «Путаница с потребителем» .

3
Stephen Jennings

Смотрите эту статью для объяснения.

В основном, есть два определения «гигабайта». Одним из определений является то, что 1 ГБ = 1024 3 байта. Это определение, которое сообщает компьютер (по техническим причинам).

Другое определение (из единиц СИ) состоит в том, что 1 ГБ = 1000 3 байта. Это то же самое, что и любая другая метрическая единица (1 гигаметр = 1000 3 метра).

Поскольку определение метрики гигабайта меньше, чем то, что компьютер считает гигабайтом, производители жестких дисков используют определение метрики, потому что они могут напечатать на коробке большую емкость.

Небольшое количество места также используется самой файловой системой, но большая часть недостающей емкости - из определения гигабайта.

3
Samir

Если вы хотите быть уверены в том, насколько он велик, выясните, какой размер сектора он использует, и общее количество секторов. Затем умножьте эти два числа, чтобы получить общий размер в байтах. Это истинный размер! В любой операционной системе! Это также упоминается как емкость диска .

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, поэтому оно будет выглядеть примерно так LBA: 123456789. Это ваше общее количество секторов. Это логические сектора на диске, и они записываются и считываются с использованием метода адресации LBA. Этот метод позволяет операционной системе использовать форматирование файловой системы (например, NTFS, FAT32) с единицей выделения, которая больше, чем размер физического сектора.

wd maxtor

Распределительная единица

Блок распределения аналогичен концепция к размеру сектора, но это реклама какой - то уровень гибкости в том, что вы можете изменить его размер, без изменения размера физического сектора. Если вы приобрели и установили, а затем отформатировали более одного жесткого диска в своей жизни, то вы, несомненно, сталкивались с этим термином. Наиболее распространенные размеры блоков выделения для отформатированного жесткого диска NTFS - 4 КБ, 8 КБ и 16 КБ. Я говорю «сегодня» из-за размеров дисков, которые доступны в наши дни.

А именно, какой размер единицы выделения подходит для одного жесткого диска, может не подходить для другого. Это зависит от того, насколько он большой. Меньшие из них лучше с меньшими размерами единиц размещения, а большие - с большими размерами единиц распределения. Однако это не мешает вам использовать большой размер блока выделения на маленьком жестком диске. Напротив! Благодаря логической природе единицы выделения она может быть установлена ​​во время процесса форматирования и может быть больше физического сектора. На маленьком жестком диске большой блок распределения имеет тенденцию давать небольшое увеличение производительности, но за счет дискового пространства.

Вот почему Microsoft изменила терминологию с размера сектора на единицу распределения. Это случилось несколько версий Windows назад. Если я правильно помню, именно с одним из семейств Windows 9 они начали использовать этот термин.

Затем блок выделения преобразуется и отображается внутри одного или нескольких физических секторов на диске. Эта задача выполняется контроллером привода. Контроллер представляет собой печатную плату на задней панели жесткого диска. На ранних жестких дисках ATA (теперь называемых Parallel ATA или PATA) плата контроллера называлась IDE (Integrated Drive Electronics). Исторически на жестких дисках не всегда был встроен контроллер. Вместо этого это был отдельный интерфейс.

Наиболее распространенный размер физического сектора на жестком диске с адресацией LBA составляет 512 байт. Но примерно с 2010 года многие новые жесткие диски теперь относятся к расширенному формату . Это просто означает, что он использует размеры сектора, которые больше, чем 512 байт. В настоящее время самый большой размер сектора составляет 4K или 4096 байт.

Суть в том, что размер физического сектора на современном жестком диске практически не имеет значения для пользователя. Размеры физических секторов организованы в логические секторы и единицы распределения и абстрагированы от пользователя. Существует даже еще один уровень абстракции с дисками расширенного формата, поскольку эти диски могут эмулировать 512-байтовые сектора, но использовать 4096 физических секторов. По этой причине размер сектора обычно не печатается на этикетке жесткого диска с адресом LBA, и особенно это касается дисков расширенного формата. Но у них есть размеры физического сектора, тем не менее. Вы найдете эту информацию в техническом описании каждой модели или с помощью служебного программного обеспечения в работающей системе.

Диск CHS

Этот тип дисков предшествует адресным дискам LBA. Они используют метод, называемый CHS (Сектор головки цилиндров), для чтения и записи. Пользователь имеет прямой доступ к физическим секторам. В отличие от LBA, нет слоя абстракции сектора. Размер сектора на этих дисках почти гарантированно составляет 512 байт. Но это может быть изменено пользователем.

Вы когда-нибудь слышали о «низкоуровневом форматировании»? Отсюда и этот термин. В результате прямого доступа к физическим секторам возможно изменение размера сектора. Это позволяет пользователю «низкоуровневое» форматирование диска, что означает физическую перезапись секторов на диске. Иногда это было полезно, когда возникла проблема с диском. Это было средство обновления диска. Настоящее низкоуровневое форматирование больше невозможно с современными жесткими дисками. Это не следует путать с форматированием файловой системы.

quantum ibm

На дисках CHS всегда было указано количество секторов на дорожку (SPT), напечатанное на этикетке, а также другие детали. Если не было никакого упоминания о размере сектора, предполагалось, что это будет 512 байт. Другие детали: количество цилиндров и количество головок. Это были главные три. Отсюда и название: главный цилиндр. Для этого тоже была веская причина. Поскольку на действительно ранних жестких дисках, которые использовали адресацию CHS, все эти параметры должны были быть установлены вручную в программе настройки BIOS системы. Это было частью процесса установки! Так что это была ключевая информация для правильной установки. По мере развития платформы ПК, включая усовершенствования BIOS, инновации дисков и интерфейсов, стало возможным просто подключить жесткий диск, и система обнаружит его и настроит автоматически.

Возможно, вы заметили, что я пишу об этих дисках в прошедшем времени. Это потому, что они устарели, и их (почти) нигде не найти. За исключением технических музеев, возможно.

Префиксирование байтовых размеров

Некоторые основы сначала по измерениям:

  • Двоичная цифра (бит) - это самая маленькая единица измерения в двоичном компьютере. Это либо 1, либо 0 (или оба в квантовом компьютере.)
  • Бит сокращен до строчной буквы b или прописан как бит .
  • Следующий блок - это байт.
  • Байт сокращается заглавными буквами B или записывается как байт или байт .
  • Байт ровно 8 бит.
  • Следующая единица - это слово, и оно обычно пишется как слово .
  • Длина слова зависит от архитектуры процессора. Обычно это 8-битный, 16-битный, или 32-битный, или 64-битный.
  • Следующая единица после этого кратна слову, такому как двойное слово или четверное слово.
  • Двойное слово сокращается как Dword или Dw, а четырехугольное слово сокращается как Qword или Qw.

Это основные измерения, но вы не встретите слов, если не будете программистом. Размеры дисков, разделы и файлы используют байты. Байт является наиболее практичным измерением для работы. Сектор на диске - это блок байтов. По соглашению это обычно 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 

Эти наименьшие размеры байтов могут быть легко выражены только числами. Но 20-е кратное 2 равно 1048576, а 30-е кратное 1073741824. Если это представляет байты, мы можем использовать префикс для более простого выражения того же значения. Вот почему у нас есть префиксы, такие как кило, мега и гига. Но проблема в том, что это префиксы SI (Système International), которые используются в метрической десятичной системе измерения. Каждый префикс в этой системе представляет собой значение, кратное 10. В то время как двоичный компьютер использует базу 2 для измерения информации.

unit 10^0 = 1 kilo 10^3 = 1000 mega 10^6 = 1000000 giga 10^9 = 1000000000 

Именно по этой причине МЭК, международный орган по стандартизации, ввел концепцию двоичных префиксов. Названия «кило», «мега», «гига» и т. Д. В этой системе немного изменены, чтобы отразить, что они должны использоваться с бинарными измерениями.

kibi 2^10 = 1024 = 1024^1 mebi 2^20 = 1048576 = 1024^2 gibi 2^30 = 1073741824 = 1024^3 

Имена представляют собой конкатенации их соответствующих имен в системе СИ и слова бинарные. Например, КИБИ, формируется из ки ло и би ни капли.

Если я скажу, что масса объекта составляет 5000 граммов, я могу выразить это значение с префиксом 5 кг (килограмм). Я делю это на тысячу, чтобы убрать конечные нули. Поскольку значение префикса известно, второму человеку не нужно спрашивать меня, сколько граммов я измерил в первый раз. Он просто переворачивает процесс, взяв мою запись в 5 кг и умножив ее на тысячу, чтобы перевести в граммы. Кило означает тысячу, поэтому 5 х 1000 = 5000.

Первые 30 секторов на диске составляют 15360 байт, если каждый сектор составляет 512 байт. Чтобы выразить это более просто, я мог бы разделить это на 1000. Результат - 15,36 килобайта, или 15,36 кБ. Если бы я округлил его до ближайшего целого числа, это было бы 15 кБ. Если бы другой человек посмотрел на это число, он предположил бы, что 15 кБ - это точная мера, и умножил бы его на 1000, чтобы преобразовать в байты. Так что это будет 15000 байт, что не правильно, потому что исходное измерение было 15360 байт. С другой стороны, если бы я разделил 15360 байт на 1024, я бы получил ровно 15 КиБ! Это кибибайт . Нет десятичного расширения! Поскольку он говорит «КиБ», а не «КБ», другой человек знает, что нужно умножить на 1024, а не на 1000, чтобы получить исходное значение.

Аналогичным образом, когда производитель печатает 8 ГБ на устройстве, они используют десятичные префиксы. Те, с конечными нулевыми значениями! Таким образом, 8 ГБ - это не 8 ГиБ (гибибайт) или 8 x 2 ^ 30, а 8 x 10 ^ 9 = 8 000 000 000 байтов. Тем не менее, Windows использует вычисления двоичного размера (степени 2) с тем, что похоже на десятичные префиксы (то есть «ГБ»). Таким образом, в Windows эти 8 000 000 000 байт делятся на 2 ^ 30 (или 1024 ^ 3), чтобы получить 7,450580597 "ГБ" (в действительности GiB). Это округляется до ближайшего сотого места, поэтому в Windows оно будет отображаться как 7,45 "ГБ". Я продолжаю цитировать «ГБ», потому что Microsoft должна использовать GiB для этого значения, а не ГБ. Это только реклама в уже запутанной теме.

Рабочие примеры

Теперь я рассмотрю некоторые примеры, используя информацию меток с жестких дисков на рисунках. Давайте сначала посмотрим на диск объемом 500 ГБ.

Capacity: 500 GB LBA: 976773168 976773168 x 512 = 500107862016 bytes 500107862016 / 1024^3 = 465.761741638 ≈ 466 GiB 

Так что это 466 ГиБ, или 466 ГБ в терминах Microsoft (и JEDEC). Обратите внимание, что число не было даже после деления. Я считаю, что это потому, что есть больше секторов, чем пользователь может использовать для хранения данных. Некоторые сектора защищены, а некоторые используются для повторного отображения. Некоторые сектора становятся плохими с течением времени, так что это когда другие сектора используются в качестве резерва. Жесткий диск отмечает и отслеживает поврежденные сектора и прекращает их использование.

Если вы возьмете только номер емкости и конвертируете его в GiB, это будет выглядеть примерно так.

500 GB = 500 x 10^9 = 500000000000 byte 500000000000 byte = 500000000000 / 1024^3 = 465.661287308 ≈ GiB 

Вы можете видеть, что это несколько меньшее число, но оно все еще округляется до 466 ГиБ. Но в точных байтах это ближе к тому, сколько вы на самом деле можете использовать. Таким образом, вам не нужно знать размер сектора. Точная емкость по-прежнему рассчитывается с использованием номера 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 ГБ! Простите! Я имел в виду 0,98 ГиБ! ;-)

маркетинг

Есть то, что называется «гарантированные сектора». Вы найдете это напечатанным на этикетке некоторых жестких дисков или в их листе данных. Это является результатом продолжающегося спора между пользователями / потребителями и поставщиками устройств хранения. Эта путаница сохраняется и сегодня, в эпоху облачных вычислений и в мире, где твердотельные диски стали основной технологией и постепенно заменяют старые жесткие диски.

Я бы сказал, что маркетинг имеет мало общего с этим. Это чисто математическая проблема, и проблема не в самой математике, а в людях. Это все просто большая путаница, которая была допущена. По крайней мере, Microsoft должна обозначать двоичные префиксы как KiB, MiB и GiB. Windows по-прежнему остается основной операционной системой на ПК.

2
Svish

На самом деле они обычно такие же большие, как рекламируются, но:

  1. Они всегда (насколько я знаю) используют 1000 вместо 1024, когда делают B в КБ и так далее.
  2. Некоторое небольшое пространство используется файловой системой для отслеживания всего.

Могут быть и другие причины, но это главные, о которых я знаю

2
Dennis Janssen

В старые времена компьютеров каждый расчет был дорогим (в смысле производительности). Программисты использовали все виды ярлыков, чтобы делать как можно меньше вычислений. Одним из таких приемов было сохранение части года в виде двухзначных цифр, что в конечном итоге привело к проблеме 2000 года. Еще одна хитрость заключалась в том, что они определили, что 1к (килограмм) означает не 1000, как все остальные в цивилизованном мире, а 1024. Это позволило им срезать несколько углов при расчете размера. Эта привычка осталась и используется до сих пор, хотя компьютерные вычисления стали намного дешевле.

Производитель оборудования дает вам правильный размер, где K = 1000, M = 1000000 и G = 1000000000. Это программное обеспечение, которое дает вам ложные значения.

Производители программного обеспечения меняют свои привычки в наши дни. OSX, например, показывает правильный размер.

Приятно знать, что они начинают меняться. 09stephenb 10 лет назад 0
Я не думаю, что правильно приписывать силу двусмысленности срезанию углов. Например, ограничение размера HD MBR в 2,2 ТБ (2 ТиБ) не в 2,2 ТБ, потому что кто-то сегодня (или в прошлом) срезал углы, а потому что все еще в настоящее время имеет смысл использовать двоичный формат для адресов, и 2 ^ 32 Блоки по 512 байт означают 2,2 * 10 ^ 12 байт. (Это также означает, что продавать флеш-накопители с размерами, кратными степени двойки - 4 ГБ и 512 ГБ - совершенно бессмысленно, потому что фактическое количество байтов на самом деле не близко к степени двойки.) arne.b 10 лет назад 6
Я думаю, что у вас неправильный конец ... Использование единиц измерения СИ позволяет производителям достичь того, что они называют "2 ГБ", дешевле с меньшим количеством оборудования ... Basic 10 лет назад 1
Соответствующий - http://superuser.com/q/287375/8972 paradroid 10 лет назад 0
Жесткий диск и сеть имеют тенденцию использовать десятичные единицы, а связанные с памятью значения используют двоичные. paradroid 10 лет назад 2
@ arne.b: флэш-накопитель «4 ГБ» обычно содержит чип с объемом памяти 4 429 185 024 байта, то есть 4,125 ГБ. Поскольку производительность флеш-накопителей сильно коррелирует с количеством свободного места, диск, который пытался сделать доступным пользователю 3,999 ГБ или больше, вероятно, работал бы намного хуже, чем тот, который пытался сделать доступным 3,73 ГБ, supercat 8 лет назад 0