Чому жорсткі диски ніколи не настільки великі, як рекламовані?


18

З усіх придбаних вами жорстких дисків вони ніколи не будуть такими великими, як розмір рекламованих; з 320 ГБ до 290 ГБ, з 500 ГБ до 450 Гб тощо. Чи є технічна причина для цього?


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

5
Ваші диски є такими ж великими, як і рекламовані. Операційна система просто вимірює їх неправильно.
ендоліт

2
Не забувайте, що привід завжди визначається як неформатований розмір, і при їх форматуванні буде менше місця для таблиць формату, таблиць заміни сторінок тощо.
Даніель Р Хікс

(Але палиця 16G, яку я зараз підключив, має 16000,761,856 байт, згідно з даними властивостей .)
Daniel R Hicks,

@DanielRHicks Вітаємо! У вас більше, ніж ви торгувались! ;-)
Самір

Відповіді:


29

Технічна причина полягає в тому, що виробники жорстких дисків продають вам ємності в метричних одиницях. Отже, ГБ = 1 000 000 000 байт за метричною системою. Однак комп'ютери вимірюють розмір накопичувача потужністю 2. Отже, 1GiB = 1,024MiB, 1MiB = 1,024KiB тощо. Це означає, що 1GiB = 1,073,741,824 байт, різниця 73,741,824.

Отже, коли ви встановлюєте свій накопичувач 1 Гб (заради прикладу), ОС бачить лише 0,93 Гбіт, і це є причиною розбіжності.

(Якщо ви ніколи раніше не бачили абревіатури GiB, це нове позначення, прийняте для позначення потужностей 1024, а не 1000. Однак більшість операційних систем повідомлять про GiB як GB, що ще більше плутає цю проблему)


6
Gi => Gibi, а не G => Giga
ChrisF

@ChrisF: Так, я додав доповнення до свого допису, пояснюючи це
Кайл Кронін

11
І не запускайте мене на старі дискети "1,44 Мбіт". Вони були фактично складені з 1440 * 1024 байтів, використовуючи одночасно вимірювання 1000 та 1024. Це не було ні МіБ, ні МБ
Р. Мартіно Фернандес

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 та дозволяють зрозуміти 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. Це насправді показує вам розмір диска в гібі байтах, а не гігабайтах . Отже, він повинен читати:

Capacity:          300,082,855,936     279 Gi

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


4

Дивіться цю статтю для пояснення.

В основному, є два визначення "гігабайт". Одне визначення - 1 ГБ = 1024 3 байти. Це визначення, яке повідомляє комп’ютер (з технічних причин).

Інше визначення (з одиниць SI) - 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 макстор

Виділення одиниці

Блок розподілу за принципом схожий на розмір сектора , але він демонструє певний рівень гнучкості, завдяки чому ви можете змінювати його розмір, не змінюючи розмір фізичного сектора. Якщо ви придбали та встановили, а потім відформатували більше одного жорсткого диска у своєму житті, то ви, безперечно, натрапили на цей термін. Найпоширенішими розмірами одиниць розподілу для жорсткого диска, відформатованого NTFS, сьогодні є 4K, 8K та 16K. Я кажу "сьогодні" через розміри дисків, які накопичують жорсткі диски в ці дні.

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

Ось чому Microsoft змінила термінологію, від розміру сектору, до одиниці розподілу. Це сталося кілька версій Windows назад. Якщо я пригадую правильно, саме з одним із 9x сімейств Windows вони почали використовувати цей термін.

Потім блок розподілу перекладається і відображається внутрішньо в один або кілька фізичних секторів на диску. Це завдання виконує контролер приводу. Контролер - це плата друкованої плати на задній панелі жорсткого диска. На ранніх накопичувачах жорсткого диска ATA (тепер відомих як Parallel ATA або PATA) плата контролера була відома як IDE (Integrated Drive Electronics). Історично склалося, що на жорстких дисках не завжди був вбудований контролер. Натомість це був окремий інтерфейс.

Найбільш поширений розмір фізичного сектору на жорсткому диску, адресованому LBA, - 512 байт. Але приблизно з 2010 року багато нових накопичувачів жорсткого диска тепер мають розширений формат . Це просто означає, що він використовує розміри сектору, які перевищують 512 байт. В даний час найбільший розмір сектора становить 4 Кб, або 4096 байт.

Основний момент: розмір фізичного сектора на сучасному жорсткому диску не має ніякого значення для користувача. Розміри фізичного сектора впорядковані в логічні сектори та одиниці розподілу та віддаляються від користувача. Існує ще один шар абстракції з дисками розширеного формату, оскільки ці диски можуть імітувати 512 байтові сектори, але використовувати 4096 фізичних секторів. З цієї причини розмір сектору, як правило, не друкується на етикетці жорсткого диска, адресованого LBA, і тим більше для дисків розширеного формату. Але вони мають розміри фізичного сектору. Ви знайдете цю деталь на сторінці даних для кожної моделі або за допомогою утилітного програмного забезпечення в операційній системі.

CHS диск

Цей тип дисків заздалегідь датує дискові диски, адресовані LBA. Вони використовують метод під назвою CHS (Cylinder Head Sector) адреси для читання та запису. Користувач має прямий доступ до фізичних секторів. На відміну від 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

Саме з цієї причини IEC, орган міжнародних стандартів, ввів поняття бінарних префіксів. Назви кіло, мега, гіга тощо, в цій системі були дещо змінені, щоб відобразити, що вони повинні використовуватися для двійкових вимірювань.

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 х 2 ^ 30, а 8 х 10 ^ 9 = 8 000 000 000 байт. Однак Windows використовує обчислення двійкових розмірів (потужність 2) з типом десяткових префіксів (тобто "ГБ"). Отже, у Windows ці 8 000 000 000 байт діляться на 2 ^ 30 (або 1024 ^ 3), щоб отримати 7.450580597 "ГБ" (насправді ГіБ). Це округлюється до найближчого сотого місця, тому він відображатиметься як 7,45 "ГБ" у Windows. Я продовжую цитувати "GB", оскільки Microsoft повинен використовувати GiB для цього значення, а не GB. Це лише рекламує вже заплутану тему.

Робочі приклади

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

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

Отже, це 466 GiB, або 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

І нарешті, ось один із дискових шахт. Основна ідея дуже схожа. Розмір сектора передбачається 512 байт, якщо це не вказано інше. Я погляну на диск Quantum. Ви можете зробити 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

За старих часів комп'ютерів кожен розрахунок був дорогим (у сенсі продуктивності). Програмісти використовували всі види ярликів, щоб зробити якомога менше обчислень. Одним із таких хитрощів було зберігання частини року в даті лише двох цифр, що в кінцевому рахунку призвело до проблеми y2k. Ще одна хитрість полягала в тому, що вони визначали 1 кг (кілограм) не означає 1000, як всі інші цивілізованого світу, а означають 1024. Це дозволило їм вирізати кілька кутів, роблячи розрахунки розмірів. Ця звичка дотримується і досі використовується, хоча комп'ютерні розрахунки стали набагато дешевшими.

Виробник обладнання надає вам належного розміру, де K = 1000, M = 1000000 і G = 1000000000. Саме програмне забезпечення дає хибні значення.

В даний час виробники програмного забезпечення змінюють свої звички. Наприклад, OSX показує належний розмір.


Приємно знати, що вони починають змінюватися.
09степхенб

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

1
Я думаю, у вас неправильний кінець палички ... Використання одиниць величини SI дозволяє виробникам досягти того, що вони називають "2 ГБ" дешевше, з меншим обладнанням ...
Основні


2
Жорсткий диск та мережа мають тенденцію використовувати десяткові одиниці, а значення, пов'язані з пам'яттю, використовують двійкові.
парадироїд

-1

Це має прояснити інші коментарі, які вважають, що існує стандартний та метричний еквівалент, коли йдеться про розмір жорсткого диска.

Ні, ми не використовуємо метричну систему саме для даних. Я б вважав це "метаметричним" - одиницями, які знаходяться "поруч із" фактичними метричними одиницями.

Метричні префікси БИЛИ запозичені для вираження розмірів даних - kilo =, mega =, giga-, tera-, peta- тощо.

Однак у SI немає одиниці для "біт" або "байт".

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

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