Путаница с емкостью хранения (полномочия 10 и 2) [дубликат]

23

Я посмотрел на жесткий диск и нашел документ (от Toshiba, ссылка: 2,5-дюймовый жесткий диск SATA mq01abdxxx ), в котором говорится:

«Один гигабайт (1 ГБ) означает 10 ^ 9 = 1 000 000 000 байт с использованием степеней 10. Однако операционная система компьютера сообщает о емкости хранилища с использованием степеней 2 для определения 1 ГБ = 2 ^ 30 = 1 073 741 824 байт и, следовательно, показывает меньше места для хранения». вместимость."

Тогда степени 10 больше, чем степени 2, хорошо.

Пример 10 ^ 2 = 100 и 2 ^ 2 = 4.

Но я не понимаю документ, который говорит для той же емкости хранения:

1 ГБ - 1 000 000 000 байтов (степени 10) и 1 073 741 824 байта (степени 2), затем: он показывает меньший объем памяти (степени 2). Почему это меньше? Если я увижу на 1 ГБ больше емкости в степени 2, чем степени 10.

learnprogramming
источник
13
«Почему это меньше? Если я увижу на 1 ГБ больше емкости хранения в степени 2, чем степени 10». Ваш рост в дюймах дает меньшее число, чем такая же высота в сантиметрах, просто потому, что в дюймах больше «длина», чем в сантиметре. Итак, чтобы выразить фиксированное значение: чем больше единица, тем меньше число.
Камиль Мачоровски
4
Его не меньше, это одно и то же значение, представленное двумя разными основаниями.
Ramhound
2
Вы не можете просто сказать, что 10 ^ 2 - 100 и 2 ^ 2 = 4. Вы должны рассчитать, что 100 будет в базе 2.
Ramhound
4
«Компьютерная операционная система» - Моя не ... Или, на самом деле, она использует MB (base10) в GUI, но MiB (base2) в CLI. Просто чтобы все было интересно.
Марселм
2
Они говорят, что «степени 10» меньше, чем аналогичные значения величин 2. Например, 1000 (10 ^ 3) <1024 (2 ^ 10). И 1000000 (10 ^ 6) <1048576 (2 ^ 20). Таким образом, для производителя накопителей ваш 1 терабайтный жесткий диск имеет (как минимум) 1 000 000 000 байт (и даже немного больше), тогда как утилита операционной системы, сообщающая об объеме 1 терабайт, составляет 1 099 511 627 776 байт. Таким образом, ОС сообщит о вашем 1 ТБ жестком диске как 931 ГБ, или чуть больше. (Или, может быть, нет, см. @Marcelm выше.)
Дэвидбак

Ответы:

58

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

2^10 = 1024 and as it's almost 1000 then call it 1 Kilobyte

2^20 = 1048576 bytes and as it's almost 1000000 then call it 1 Megabyte

Для обычного пользователя это чепуха и обременительно. Кроме того, префиксы «килограмм», «мега» и т. Д. Вступают в конфликт со стандартом Международной системы единиц (СИ), где «1 киловатт» означает 10 ^ 3 или 1000 Вт.

Чтобы решить эту проблему, в 2000 году Международная электротехническая комиссия или МЭК предложили схему обозначений для блоков, основанных на степенях 2, по норме ISO / IEC 80000-13 .

Новые имена были созданы путем замены второго слога в старом имени на «би» (имеется в виду «2»). Килобайт должен быть в настоящее время в kibibyte и так далее. Новые блоки также получили соответствующие символы, поэтому «10 кибибайт» теперь записывается как 10 КиБ вместо 10 КБ . Это таблица соответствия:

Notation      Symbol    Value
1 kilobyte    1 kB      10^3  = 1000 bytes
1 megabyte    1 MB      10^6  = 1000000 bytes
1 gigabyte    1 GB      10^9  = 1000000000 bytes
1 terabyte    1 TB      10^12 = 1000000000000 bytes


1 kibibyte    1 KiB     2^10 = 1024 bytes
1 mebibyte    1 MiB     2^20 = 1048576 bytes
1 gibibyte    1 GiB     2^30 = 1073741824 bytes
1 tebibyte    1 TiB     2^40 = 1099511627776 bytes

Спустя 16 лет многие производители аппаратного и программного обеспечения все еще ссылаются на устройства base-2 со своими именами SI . «Мегабайт» может означать 1000000 байт или 1048576 байт.

Если вы покупаете жесткий диск объемом 100 ГБ, его емкость составляет 100x10 ^ 9 или 10 ^ 11 байт. Но, и это большое но, операционная система будет сообщать только о том, что диск имеет емкость 93 ГБ (10^11)/(2^30). Вы купили диск объемом 100 гигабайт , что эквивалентно дисководу емкостью 93 гигабайта . Операционная система использует неверную запись.

Производители дисков скрывают эту проблему с отказами от ответственности и объяснениями, которые всегда приводят к выводу, что «фактическая емкость может быть меньше».

jcbermu
источник
1
Комментарии не для расширенного обсуждения; этот разговор был перенесен в чат .
Подмастерье Компьютерщик
21

Короче говоря: все дело в маркетинге.

jcbermu объяснил хорошо, но я не согласен с причинами всего этого.

В то время как любая система информатики использует двоичную систему, биты и байты записываются как ^ 2, что является нормальным. Так что это не операционная система или программное обеспечение виноваты в замешательство. Здесь все двоично.

Производители жестких дисков виноваты в том, что они указали емкость жесткого диска в системе ^ 10, что лишает вас практических ГБ. Жесткий диск объемом 20 ГБ будет на самом деле способен хранить 18 ГБ и т. Д. На 1 ТБ диск будет иметь размер ~ 930 ГБ. Издевательство над «бибитом» было изобретено, чтобы попытаться предотвратить некоторую путаницу, но его практически не приняли на практике.

Сверхразум
источник
10
Это потому, что байты на диске "поселились после доставки".
Давидбак
2
Правда. Я никогда не слышал, чтобы кто-нибудь говорил: «Я обновил до 16 гигабайт RAM». Я не думаю, что производители несут ответственность за беспорядок, но они действительно получают прибыль от этого. Еще в 80-х и 90-х годах пользователи компьютеров знали, в чем разница между килограммом и килобайтом и почему. В наше время, кто знает, что компьютеры работают на двоичной арифметике?
Кроули
4
Речь не о маркетинге и никогда не было. Жесткие диски и дискеты всегда продавались с использованием реального префикса SI, потому что никогда не имело смысла использовать другую базу.
труба
1
-1, ужасно. It's the fault of HDD manufacturers to state the HDD capacities in ^10 system, which robs you of quite some practical GB.Нет, ни одна из этих вещей не является правдой. Производители HD - это те, кто все это делал правильно, используя фактическое, правильное определение единиц. Они не виноваты в том, что разработчики, производители памяти и все, кто еще не использовал модули SI, были неточными. И, конечно же, то, в какой единице измеряется пространство для хранения, «не отнимает у вас практических ГБ» и не изменяет емкость каким-либо образом.
HopelessN00b
1
@pipe: 720КБ дискета вмещала ровно 1440 блоков по 512 байт каждый. Аналогично с другими размерами, измеренными в КБ. Насколько я могу судить, наиболее распространенное значение «МБ» на магнитных носителях данных составляло 1 024 000 байт, что делает дискету объемом 1,44 МБ ровно в два раза больше, чем 720 КБ.
суперкат
16

Ответ jcbermu хорош, но я хочу подойти к этому с другой стороны.

1 ГБ - 1 000 000 000 байтов (степени 10) и 1 073 741 824 байта (степени 2), затем: он показывает меньший объем памяти (степени 2). Почему это меньше? Если я увижу на 1 ГБ больше емкости в степени 2, чем степени 10.

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

На жестком диске будет храниться определенное количество битов или байтов, которые по техническим причинам рассматриваются в разрезе секторов. Например, накопитель на 4 ТБ может иметь 7 814 037 168 секторов по 512 байт каждый, что соответствует емкости хранения 4 000 787 030 016 байт. Это то, что вы на самом деле получаете. (На практике вы затем теряете часть этого из бухгалтерской информации компьютера: файловая система, журнал, разбиение на разделы и т. Д. Однако, байты все еще там, вы просто не можете использовать их для хранения файлов, потому что они необходимы для хранения данные, которые позволяют эффективно хранить файлы.)

Конечно, число 4000787,030,016 несколько громоздко. По этой причине мы решили представлять эту информацию другим способом. Но, как показал jcbermu, мы решили сделать это двумя различными способами: в десяти силах или в двух силах.

В степенях десять 4 000 787 030 016 байт - это 4.000787030016 * 10 ^ 12 байт, которые округляются довольно хорошо; с четырьмя значащими цифрами округляется до 4,001 ТБ для определения SI «тера»: 10 ^ 12. Наш жесткий диск может хранить более 4 * 10 ^ 12 байт, поэтому с точки зрения СИ это устройство хранения объемом 4 терабайта.

В степенях два 4 000 787 030 016 байт составляют 3,638694607 * 2 ^ 40 байт, что не очень хорошо округляется. Это также выглядит как меньшее количество, потому что 3.639 меньше, чем 4.001, и это плохо для маркетинга (кто хочет купить диск на 3,6 ТБ, когда производитель по соседству продает диск на 4,0 ТБ по той же цене?). Это двоичный префикс 3.6 "tebibytes", где "bi" указывает на то, что это величина два основания.

В действительности, однако, это точно такое же количество байтов; число выражается только по-разному! Если вы выполните математику снова, вы увидите, что 3.638694607 * 2 ^ 40 = 4.000787030016 * 10 ^ 12, так что в итоге вы получите тот же объем памяти.

CVn
источник
1
Приятно объяснено, но количество секторов (например, 7,8 [...] в вашем примере) выбирается производителями так, чтобы емкость достигла желаемого значения. Они могли бы просто сделать 8 миллиардов секторов, 8589934592 или любое другое число, чтобы в итоге получить истинное значение емкости, но это не хорошо для бизнеса. Так как технически возможная разница, как производитель, я бы сильно ударил по рынку: логотип TrueCapacity (r) или TrueSpace (r), и гарантировано, что продажи увеличатся из-за этого маркетингового маневра, а другие производители будут должны следовать (и не готовы к этому).
Сверхразум
@ Overmind: это одна из возможных маркетинговых технологий. Похож на Aerial Communications, у которой была посекундная тарификация (до того как T-Mobile выкупил их). Если бы вы отвечали за маркетинг для производителя запоминающего устройства, я бы предположил, что стратегия может быть той, которую вы решите использовать.
TOOGAM
Я нашел этот ответ, чтобы обеспечить мне наибольшую ясность (возможно). Таким образом, нет никакой необходимости в том, чтобы быть степенью 2? Нет ничего особенного в том, что большинство размеров носителей данных имеют степень 2?
Абдул
1
@Abdul Большинство (потребительских) устройств хранения данных имеют емкость, доступную для пользователя, которая не выражается в байтах (или, как следствие, в битах) степенью двойки. Как и в случае с Overmind, указанным выше, точные емкости жестких дисков могут выбираться случайным образом, если они соответствуют требованиям маркировки. Твердотельные накопители, как правило, ближе к 2 ^ n, потому что микросхемы флэш-памяти изготавливаются с размерами, которые часто имеют целые степени двух (потому что они имеют адресные линии и такие вещи, которые делают это преимуществом), но из-за чрезмерного выделения не всей флэш-емкости будет доступен из программного обеспечения, внешнего по отношению к встроенному контроллеру вспышки.
CVn
5

Другие ответы касались исторической причины разницы, но мне кажется, что вы спрашиваете о разнице в соответствии с математикой.

Вы правы в том, что одна степень 10 больше, чем одна степень 2, и что один гигабайт (10 ^ 9 байт) меньше одного гибибайта (2 30 байт).

Изменение размеров объясняется тем фактом, что в одном гибибайте больше возможностей (30 степеней), чем в одном гигабайте (9 степеней). Оказывается, что количество сил оказывает большее влияние на окончательный размер, чем размер каждой отдельной силы.

Что касается того, почему указанный размер диска меньше при измерении в гигабайтах (2 ^ 30), чем при измерении в гигабайтах (10 ^ 9), естественно, что при измерении фиксированной величины большая единица измерения дает меньшее число , Например, рассмотрим высоту в дюймах против высоты в сантиметрах. Поскольку один дюйм больше, чем один сантиметр, такая же высота будет измерять меньше дюймов (например, 72 дюйма), чем сантиметры (например, 183 сантиметра). Высота является одинаковым физическим расстоянием в обоих случаях, но каждое измерение просто дает различное число в соответствии с единицей измерения.

Эдвард Пик
источник