Из всех купленных мной жестких дисков они никогда не бывают такими большими, как рекламируемый размер; с 320 ГБ до 290 ГБ, с 500 ГБ до 450 ГБ и т. д. Есть ли техническая причина для этого?
7 ответов
Техническая причина в том, что производители жестких дисков продают вам емкости в метрических единицах. Таким образом, ГБ = 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 как ГБ, что еще больше запутывает эту проблему)
Первоначально это был ответ на этот вопрос (объединенный) о 4 ГБ стилусе.
Давайте начнем с утверждения:« Человеческая система основана на степени 10, бинарная на степени 2 »
То, что следует, может дать первый ответ на ваш вопрос.
Метрические префиксы имеют степень 10, 1000 или 10 ^ 3, k, 10 ^ 6, M, 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).
Проблема в том, что законы существуют, но не во всех нациях одинаковы.
Международная система, или СИ, является наиболее широко используемой в мире для торговли и науки (она была опубликована в 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
.
Почему еще должно быть а не есть? Потому что это зависит от того, как законодатель нации, в которой производится предмет, и законодатель нации, в которую ввозится предмет, принимают и преобразуют в законе директиву международных комиссий.
Так что держи свои глаза хорошо открытыми.
(Даже потому, что в некоторых странах предписано писать информацию для выполнения обязанностей закона на клейкой этикетке. Обычно это так мало, что вам действительно нужно держать глаза открытыми, чтобы прочитать это)
Дополнительные ссылки
- Международная система единиц (СИ) (8-е изд.), ISBN 92-822-2213-6
- Специальные единицы МЭК 60027-2 А.2 и ИСО / МЭК 80000
- NIST SP 330 для некоторого устройства СИ в Соединенных Штатах
- Директива Совета 71/354 / EEC от 18 октября 1971 года о сближении законов государств-членов, касающихся единиц измерения
- Директива Совета 80/181 / EEC от 20 декабря 1979 года о сближении законов государств-членов, касающихся единиц измерения, и об отмене Директивы 71/354 / EEC и последующих изменениях
Когда производитель диска создает диск емкостью 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, но, по-видимому, нет определенного стандарта для значений префикса емкости хранилища. В этой статье Википедии есть много полезной информации, в том числе раздел "Путаница с потребителем".
Смотрите эту статью для объяснения.
В основном, есть два определения "гигабайта". Одним из определений является то, что 1 ГБ = 1024 3 байта. Это определение, которое сообщает компьютер (по техническим причинам).
Другое определение (из единиц СИ) состоит в том, что 1GB = 1000 3 байта. Это то же самое, что и любая другая метрическая единица (1 гигаметр = 1000 3 метра).
Поскольку определение метрики гигабайта меньше, чем то, что компьютер считает гигабайтом, производители жестких дисков используют определение метрики, потому что они могут печатать на коробке большую емкость.
Небольшое количество места также используется самой файловой системой, но большая часть недостающей емкости - из определения гигабайта.
Если вы хотите быть уверены в том, насколько он велик, выясните, какой размер сектора он использует, и общее количество секторов. Затем умножьте эти два числа, чтобы получить общий размер в байтах. Это истинный размер! В любой операционной системе! Это также упоминается как емкость диска.
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) с единицей выделения, которая больше, чем размер физического сектора.
Распределительная единица
Единица выделения в принципе аналогична размеру сектора, но обеспечивает некоторую степень гибкости, поскольку вы можете изменить ее размер, не меняя размер физического сектора. Если вы приобрели и установили, а затем отформатировали более одного жесткого диска в своей жизни, то вы, несомненно, сталкивались с этим термином. Наиболее распространенные размеры блоков выделения для отформатированного жесткого диска 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 байт. Но это может быть изменено пользователем.
Вы когда-нибудь слышали о "низкоуровневом форматировании"? Отсюда и этот термин. В результате прямого доступа к физическим секторам возможно изменение размера сектора. Это позволяет пользователю "низкоуровневое" форматирование диска, что означает физическую перезапись секторов на диске. Иногда это было полезно, когда возникла проблема с диском. Это было средство обновления диска. Настоящее низкоуровневое форматирование больше невозможно с современными жесткими дисками. Это не следует путать с форматированием файловой системы.
На дисках 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 по-прежнему остается основной операционной системой на ПК.
На самом деле они обычно такие же большие, как рекламируются, но:
- Они всегда (насколько я знаю) используют 1000 вместо 1024 при выполнении от B до КБ и так далее.
- Некоторое небольшое пространство используется файловой системой для отслеживания всего.
Могут быть и другие причины, но это главные, о которых я знаю
В старые времена компьютеров каждый расчет был дорогим (в смысле производительности). Программисты использовали все виды ярлыков, чтобы делать как можно меньше вычислений. Одним из таких приемов было сохранение части года в виде двухзначных цифр, что в конечном итоге привело к проблеме 2000 года. Еще одна хитрость заключалась в том, что они определили, что 1к (килограмм) означает не 1000, как все остальные в цивилизованном мире, а 1024. Это позволило им срезать несколько углов при расчете размера. Эта привычка осталась и используется до сих пор, хотя компьютерные вычисления стали намного дешевле.
Производитель оборудования дает вам правильный размер, где K = 1000, M = 1000000 и G = 1000000000. Это программное обеспечение, которое дает вам ложные значения.
Производители программного обеспечения меняют свои привычки в наши дни. OSX, например, показывает правильный размер.