Плутанина з ємністю пам’яті (потужність 10 та 2) [дублікат]


23

Я дивився на жорсткий диск і знайшов документ (від Toshiba, посилання: 2,5-дюймовий HDD 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.


13
"Чому це менше? Якщо я бачу на 1 Гб більше ємності пам'яті потужністю 2, ніж потужністю 10." Ваша висота в дюймах дає меншу кількість, ніж однакова висота в сантиметрах, тільки тому, що в дюймі більше "ємності довжини", ніж у сантиметрі. Отже, для фіксованого значення виразити: чим більше одиниця, тим менше число.
Каміль Маціоровський

4
Його не менше, його однакове значення, представлене двома різними базами.
Рамхаунд

2
Ви не можете просто сказати, що 10 ^ 2 - 100 і 2 ^ 2 = 4. Ви повинні обчислити, що 100 буде в базі 2.
Рамхаунд

4
"Операційна система комп'ютера" - Моя не ... Або, власне, вона використовує MB (base10) в графічному інтерфейсі, але MiB (base2) в CLI. Просто, щоб все було цікавим.
marcelm

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 вище.)
davidbak

Відповіді:


58

Історична причина використання повноважень 2 полягає в тому, що CPU має доступ до пам'яті та жорсткого диска, використовуючи адресний простір, що складається з рядків у двійковому коді. Виробники обладнання вирішили назви таким чином:

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 .

Нові імена були створені заміною другого складу в старому імені на "bi" (посилаючись на "2"). Кілобайт повинен бути в даний час в kibibyte і так далі. Нові блоки також отримали відповідні символи, тому "10 кібібайт" тепер пишеться як 10 KiB замість 10 kB . Це таблиця листування:

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 років багато постачальників обладнання та програмного забезпечення все ще посилаються на базові 2 блоки зі своїми назвами SI . "Мегабайт" може означати 1000000 байт або 1048576 байт.

Якщо ви купуєте жорсткий диск об'ємом 100 Гб, ємність становить 100х10 ^ 9 або 10 ^ 11 байт. Але, і це велике, але операційна система повідомить про накопичувач лише як ємністю 93 ГБ (10^11)/(2^30). Ви купили накопичувач на 100 гігабайт , що еквівалентно накопичувачу на 93 гібібайта . Операційна система - це та, яка використовує неправильні позначення.

Виробники приводів приховують цю проблему за допомогою відмови та пояснень, які завжди призводять до висновку, що "фактична форматированная ємність може бути меншою".


1
Коментарі не для розширеного обговорення; ця розмова переміщена до чату .
Подорожник Geek

21

Коротше кажучи: мова йшла про маркетинг.

jcbermu добре пояснив, але я не погоджуюся з причинами цього.

Хоча будь-яка система інформатики використовує двійкову систему, біти і байти записуються як ^ 2, що є нормальним явищем. Тож не винна в замішанні операційна система чи програмне забезпечення. Тут все бінарне.

Це вина виробників жорстких дисків, щоб заявити про потужність жорсткого диска в системі ^ 10, яка позбавляє вас досить практичних ГБ. Жорсткий диск 20 Гб насправді зможе зберігати 18 Гб і так далі ... накопичувач на 1 ТБ буде фактично ~ 930 ГБ. «Бібітний» глузування був винайдений, щоб спробувати запобігти деякій плутанині, але його цілком не вдалося практично прийняти.


10
Це тому, що байти на диску "осіли після доставки".
davidbak

2
Правда. Я ніколи не чув, щоб хтось говорив "Я модернізував до 16 гібі оперативної пам'яті". Я не думаю, що виробники відповідають за безлад, але вони на цьому точно отримують прибуток. Ще в 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 байтів кожна. Аналогічно з іншими розмірами, виміряними в КБ. Наскільки я можу сказати, найпоширенішим значенням "MB" з магнітними носіями зберігання було 1,024,000 байт, що зробило дискету 1,44MB рівно вдвічі більше, ніж 720KB.
supercat

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 777 030 066 байт. Це те, що ви насправді отримуєте. (На практиці ви частково втрачаєте інформацію про бухгалтерський облік на комп'ютері: файлова система, журнал, розділення тощо. Проте, байти все ще є, ви просто не можете використовувати їх для зберігання файлів, оскільки вони потрібні для зберігання дані, які ефективно дозволяють зберігати файли.)

Звичайно, число 4000787,030,016 дещо громіздке. З цієї причини ми обираємо представляти цю інформацію іншим чином. Але, як показав jcbermu, ми вирішили зробити це двома різними способами: з потужністю десять або двома силами.

Потужністю в десять, 4 000 777 0,030,016 байт - 4 000787030016 * 10 ^ 12 байт, що округляє досить непогано; з чотирма значущими цифрами, він округляє до 4,001 ТБ, для визначення SI "тера": 10 ^ 12. Наш жорсткий диск може зберігати більше 4 * 10 ^ 12 байт, тому, з точки зору SI, це 4-терабайтний запам'ятовуючий пристрій.

Потужність двох, 4 000 777, 3030, 16 байт - 3,638694607 * 2 ^ 40 байт, що кругло не так добре. Це також виглядає як менша кількість, тому що 3.639 менше 4.001, і це погано для маркетингу (хто хоче придбати накопичувач 3,6 ТБ, коли виробник поруч продає накопичувач 4,0 ТБ за ту ж ціну?). Це двійковий префікс 3.6 "тебібайт", де "bi" вказує на те, що це величина-дві величини.

Насправді, однак, це точно така ж кількість байтів; число виражається лише інакше! Якщо ви знову зробите математику, ви побачите, що 3.638694607 * 2 ^ 40 = 4.000787030016 * 10 ^ 12, тож ви отримаєте однакову ємність для зберігання.


1
Чудово пояснено, але кількість секторів (наприклад, 7,8 [...] у вашому прикладі) виробники вибирають таким чином, що ємність закінчується до потрібного значення. Вони могли просто заробити 8 мільярдів секторів, 8589934592 або будь-яке інше число, щоб отримати справжнє значення потенціалу, але це не добре для бізнесу. Оскільки різниця технічно можлива, я як виробник зробив би великий ринок: логотип TrueCapacity (r) або TrueSpace (r), і гарантовано, що продажі збільшаться завдяки цьому маркетинговому маневру, і інші виробники (-и) повинні слідувати (і було б не готовим до цього).
Перекрити

@Overmind: Це одна з можливих методик маркетингу. Подібно до повітряних комунікацій, які мали рахунки за секунду (до того, як T-Mobile викупив їх). Якби ви відповідали за маркетинг виробника пристрою зберігання даних, я б здогадався, що ця стратегія може бути тією, яку ви вирішите розглянути.
TOOGAM

Я знайшов цю відповідь, щоб забезпечити мені найбільшу ясність (можливо). Отже, немає фактичної необхідності, щоб це була потужність 2? Немає нічого особливого в тому, що більшість середніх розмірів сховища мають потужність 2?
Абдул

1
@Abdul Більшість (споживчих) пристроїв зберігання даних мають доступні користувачу ємності, які не мають , з точки зору байтів (або за наслідками також біт), потужністю два. Як і вищезазначений Overmind, точну ємність жорстких дисків можна значною мірою вибирати випадковим чином, якщо вони відповідають вимогам маркування. SSD-диски, як правило, ближче до 2 ^ n, тому що мікросхеми флеш-пам’яті виготовляються у розмірах, які часто мають два потужності (тому що вони мають адресні лінії та такі речі, що робить це перевагою), але через надмірну забезпеченість не всієї потужності спалаху буде доступний із програмного забезпечення, яке знаходиться зовні, до вбудованого флеш-контролера.
CVn

5

Інші відповіді стосуються історичної причини різниці, але мені здається, ви запитуєте про різницю відповідно до математики.

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

Зміна розмірів пояснюється тим, що в одному гібібайті (30 потужностей) більше потужностей, ніж в одному гігабайте (9 потужностей). Виявляється, кількість повноважень має більший вплив на остаточний розмір, ніж на розмір кожної окремої сили.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.