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


18

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


3
Нетехническая причина, конечно же, заключается в том, что производители будут указывать на упаковке столько, сколько они могут оправдать, чтобы стимулировать продажи. Это похоже на рекламу с мелким шрифтом "до" по возможностям и "начиная с" по ценам.
Дэвид Торнли

5
Ваши диски такие же большие, как рекламируемые. Операционная система просто неправильно их измеряет.
эндолит

2
Не забывайте, что диск всегда указывается как неотформатированный размер, и при форматировании будет меньше свободного места из-за таблиц форматирования, таблиц подстановки страниц и тому подобного.
Даниэль Р Хикс

(Но карта памяти 16G, которую я подключил прямо сейчас, имеет в общей сложности 16 000 761 856 байт, в соответствии со свойствами .)
Даниэль Р Хикс

@DanielRHicks Поздравляем! Вы получили больше, чем рассчитывали! ;-)
Самир

Ответы:


29

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

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

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


6
Gi => Гиби, а не G => Гига
ChrisF

@ChrisF: да, я добавил в свой пост дополнение, объясняющее это
Кайл Кронин

11
И не заводите меня на старые "1.44Mb" дискеты. Они были фактически сделаны из 1440 * 1024 байтов, используя одновременно 1000 и 1024 меру. Это не было ни MiB, ни MB
R. Martinho Fernandes

1
В Википедии есть описание и диаграмма, показывающая различия en.wikipedia.org/wiki/Hard_disk_drive#Capacity_measurements
Крис Нава

1
Apple недавно изменила отображение размеров дисков в MacOSX, чтобы использовать метрические значения.
Крис Нава

9

Первоначально это был ответ на этот вопрос (объединенный) о 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. По тем же причинам , интернет - провайдеры часто говорят о базисных пунктов и позволяют понять Bps . Существует коэффициент 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

Когда производитель диска создает диск емкостью 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, но, по-видимому, нет определенного стандарта для значений префикса емкости хранилища. В этой статье Википедии есть много полезной информации, в том числе раздел «Путаница с потребителем» .


4

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

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

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

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

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


4

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

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 года многие новые жесткие диски имеют тип Advanced Format . Это просто означает, что он использует размеры сектора, которые больше, чем 512 байт. В настоящее время самый большой размер сектора составляет 4K или 4096 байт.

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

Диск CHS

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

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

квант 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 по-прежнему остается основной операционной системой на ПК.


3

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

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

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


3

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

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

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


Приятно знать, что они начинают меняться.
09stephenb

6
Я не думаю, что правильно приписывать силу двух привычек срезанию углов. Например, ограничение размера HD MBR в 2,2 ТБ (2 ТиБ) не в 2,2 ТБ, потому что кто-то сегодня (или в прошлом) срезал углы, а потому что все еще в настоящее время имеет смысл использовать двоичный формат для адресов, и 2 ^ 32 Блоки по 512 байт означают 2,2 * 10 ^ 12 байт. (Это также означает, что продавать флеш-накопители с размерами, кратными степени двойки - 4 ГБ, 512 ГБ - совершенно бессмысленно, потому что фактическое число байтов не так близко к степени двойки.)
arne.b

1
Я думаю, что у вас неправильный конец ... Использование единиц измерения СИ позволяет производителям достичь того, что они называют "2 ГБ", дешевле с меньшим количеством оборудования ...
Basic

Соответствующий - superuser.com/q/287375/8972
paradroid

2
Жесткий диск и сеть обычно используют десятичные единицы, а значения, связанные с памятью, используют двоичные.
Парадроид

-1

Это должно прояснить другие комментарии, которые думают, что есть стандартный и метрический эквивалент применительно к размеру жесткого диска.

Нет, мы не используем метрическую систему для данных, точно. Я думаю о нем как о «мета-метрике» - единицах, которые «рядом» с фактическими метрическими единицами.

Метрические префиксы были заимствованы для выражения размеров данных - килограмм, мега, гига, тера, пета и т. Д.

Однако SI не имеет единицы измерения для «бита» или «байта».

И меньшие единицы, милли-, микро- и нано- также были заимствованы, хотя и не для данных, а для «процессоров». («Миникомпьютеры» были небольшими компьютерами по сравнению с основными корпусами. «Микропроцессоры» и «микрокомпьютеры» были намного меньше миникомпьютеров. Ни в одном случае не подразумевалось соотношение 1000: 1.)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.