Чи матиме 4 стани на “біт”, а не 2, значить удвічі більше місця для зберігання?


35

Досить просте фундаментальне, хоч і наївне, питання:

Чи матиме 4 стани на "біт", а не 2, значить удвічі більше місця для зберігання? У випадку, якщо це не зрозуміло, я маю на увазі, як якщо б кожна "структура зберігання", а не лише 2 значення (база 2: 0, 1), могла представляти 4 значення (база 4: 0, 1, 2, 3 ).


4
Я не знаю, що це означає двічі місця для зберігання, оскільки є певні витрати на зберігання декількох рівнів.
Ерік Еддт

13
Див. Розділ " Багаторівнева комірка" , як це використовується у багато флеш-пам'яті. Тепер вони переходять до трирівневої комірки або трьох біт даних на фізичну комірку.
Хтось десь

52
"Біт" визначається як два стану, тому комірка зберігання з чотирма станами зберігає два біти на визначення.
ЖакБ

24
@JacquesB, але технічно правильний (найкращий вид), це явно не те, що мав на увазі запитувач.
MetaFight

11
Якщо один "біт" з 4 станами настільки ж жир, як два "біти" з двома станами кожен, простір зберігання однаковий.
mouviciel

Відповіді:


105

Слово, яке ви шукаєте, не "біт", а "символ". "Символ" - це слово, яке використовується для опису процесу відображення апаратних сигналів (таких як напруги або магнітні візерунки) в логічні біти. Якщо символ може мати 4 стани, він може кодувати 2 біти, варті інформації.

Звичайно, ми нічого не говоримо про використання ресурсу символу в цьому аргументі. Якщо ви надсилаєте символи по дроту як напруги, різні символи виглядають все більш схожими зі збільшенням кількості станів на символ. Якщо у мене є провід 0-5В та 2 стану на символ (1 біт), два мої стани - 0V та 5V, між 5 символами - 5V. Якщо у мене однаковий провід, але кодую 4 стану на символ (2 біти), мої стани - 0 В, 1,66 В, 3,33 В і 5 В. Це 1,66 В між кожним символом. Тепер шуму простіше зіпсувати мій сигнал.

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

Ми використовуємо цю техніку в реальному житті. Цифрове телебачення використовує QAM-64 з 64 станами (і, таким чином, 6 біт на символ). Ethernet використовує 4 рівні напруги, тому 2 біта на символ.

Редагувати: Я використовував бітові швидкості передачі, а не сховище, тому що частіше бачити символи з більшою кількістю станів при передачі, щоб я міг зробити історію більш зрозумілою. Якщо ви хочете спеціально подивитися на зберігання та зберігання, можна подивитися на багаторівневі комірки у флеш-пам'яті, як хтось десь згадував у коментарях. Така пам'ять використовує точно такий же підхід, зберігаючи 3 біти як 16 різних рівнів заряду конденсатора. (або більш!)


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

ця відповідь є абсолютно невірною за рахунок Ethernet. Дивіться тут - звичайний 100Base-T має MLT3 з 3 рівнями, а 1000Base-T має PAM5 з 5 рівнями, 10GBase-T має PAM16 з 16 рівнями. Немає жодної версії Ethernet, яка б мала 4 рівні, про які я знаю, або які я могла б знайти де завгодно. @CortAmmon, де у Вікіпедії ви виявили, що Ethernet має 4 рівні напруги? Я був би більш ніж радий зануритися в нього і перевірити, звідки це походить.
vaxquis

21

Одна четвертинна комірка пам'яті може зберігати рівно стільки інформації, скільки 2 двійкові комірки пам’яті:

Quaternary Binary
0          00
1          01
2          10
3          11

Отже, якщо у вас однакова кількість комірок пам’яті, але вони четвертинні, то у вас є вдвічі більше пам’яті. Але якщо ця квадратична комірка займає вдвічі більше місця на мікросхемі, то користі немає.

Або іншим способом, якби у вас був 1 гігаквадр дещо щоквартального сховища, він міг би зберігати стільки інформації, скільки 2 гігабіти нормальної бінарної пам'яті, тому що кожен квадратик може бути виражений двома бітами.


Зрештою, ця ця лінія є лише науковим інтересом. Ви вже можете подумати, що мікросхеми пам'яті зберігають, наприклад, 2 ^ 32 комірки стану, тому що ви не можете отримати з них 1 біт, ви завжди отримуєте повне слово. І якщо в майбутньому хтось придумав спосіб зберігати це слово у фізичних осередках 4-х станів ефективніше, ніж у 2-державних клітинках, то це було б використано, але воно не було б видно за межами мікросхеми пам'яті, воно все одно обробляло б тільки повна пам'ять слова, яка може мати, наприклад, 2 ^ 32 різних станів.


1
"Одна четвертинна комірка пам'яті може зберігати рівно стільки інформації, скільки 2 двійкові комірки пам'яті", але 2 числа базових-4 можуть містити в чотири рази більше, ніж два базових значення.
JimmyJames

1
@JimmyJames У чотири рази більше можливих станів - це не те саме, що в чотири рази більше пам’яті. Дивіться розмову під відповіддю Річарда Данна.
Шон Бертон

2
Для мене очевидним наступним запитанням до цієї відповіді є: "Ну ... чи квадратичні клітини займають вдвічі більше місця на мікросхемі?".
Даніель Вагнер

5
Тоді я перефразую: чотири рази більше можливих станів - це не те саме, що в чотири рази більше інформації.
Шон Бертон

1
@JimmyJames Це суперечність. 2 квадратичні клітини дорівнюють 4 двійкових целів. Отже, ви говорите, що 4 двійкові комірки зберігають у 4 рази більше інформації, ніж 2 бінарні комірки, хоча це лише в 2 рази більше клітин. IOW, ви помиляєтесь, принаймні, якщо обчислюєте інформацію як "біти" (або байти, або терабайти).
Гайд

9

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

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

Отже, основна (спрощена) модель - зберігати трохи як пару магнітних полів. Перший завжди був би перемикачем з попереднього сегмента, а другий - це фліп, який представляє 1, або ні один фліп, щоб представляти 0. Отже, 0 - FN (flip-null), а 1 - FF (flip-flip). Час приводу досить точний, щоб визначити різницю між одним шипом потоку та двома шипами потоку в сегменті. Цей формат називається частотна модуляція. Таким чином, це дає чіткі сигнали, Але це означає, що на кожен біт пам'яті потрібно два місця на диску - це дуже неефективно. Отже, жоден жорсткий диск насправді не мав цієї самої основної форми кодування; він використовував прості прийоми стиснення замість цього. Найпростіша - Модифікована частотна модуляція, яка змінює схему, так що додаткове магнітне перевертання використовується лише в тому випадку, якщо 0 передує іншому 0. Це дозволяє інженерам накопичувати майже вдвічі більше даних в одному просторі, і, таким чином, використовувалося на перших жорстких дисках, і це формат на дискетах. Після цього була розроблена більш просунута система під назвою Run Length Limited з подібною загальною ідеєю, в яку я не буду вникати, оскільки вона стає набагато складнішою і існує кілька реалізацій.

Але сьогодні ми не використовуємо такої системи. Натомість ми використовуємо систему під назвою Часткова реакція, Максимальна ймовірність (PRML). PRML вимагає, щоб голова зчитувала довжину і збирала магнітний зразок, а потім порівнювала його з еталонним набором збережених зразків, щоб визначити, який із них найкраще відповідає. Він відмовляється від усієї концепції шипів потоку, а натомість використовує відповідність шаблонів (я спрощую, але надмірне спрощення того варте), і шаблон відповідає набору бітів. Для усунення потенційних помилок використовуються шумові фільтри та інші технології. Найкраще думати про це як про складну форму хвилі, а жорсткий диск знає, як перевести кожну форму хвилі в набір біт. У цьому сенсі дані фактично зберігаються більше в аналоговому форматі, ніж цифровий,

Найкращий посібник з цього питання знаходиться на веб- сайті http://www.pcguide.com/ref/hdd/geom/data.htm (натисніть кнопку Далі кілька разів, щоб прочитати все це), і є кілька інших джерел - переважно з люди, які створили масивні сховища комп'ютерних знань, про які ніхто не має підстав знати. Достойне додаткове джерело (яке добре, але не зовсім на 100% досконале, наскільки я можу сказати) знаходиться на веб- сайті http://www.tomshardware.com/reviews/hard-drive-magnetic-storage-hdd,3005-6.html

TL; DR: диски жорсткого диска не зберігають дані у форматі, подібному до 1 та 0; натомість вони використовують складну обробку сигналів, щоб набити сигнали в найменший можливий простір і декодувати його під час читання. Отже, вони справді базові агностики.

Я би не здивувався, коли в SSD-накопичувачі або оперативної пам’яті в якийсь момент робилася спроба зберігання даних на базі-4. Все залежить від фізики та хімії матеріалів. Інженери та вчені підштовхнуть ці матеріали, наскільки вони можуть, і дотримуватимуться будь-якого маршруту, який дасть найкращі результати.


Хочете обговорити концепцію зберігання? Якби ми зберігали символи на основі координатної площини, а не послідовно, мені здається, ми могли би зберігати додаткові біти на основі положення координати та положення відносно інших біт. chat.stackexchange.com/rooms/66911/vizs-discussion-2
Viziionary

Manchester Coding був розроблений для магнітної стрічки, а Phase Shift Keying - для радіо. Подібні ідеї, що ви говорите.

Не знав про це, але теж не переживав.
Вальфрат

Зберігання бази-4 на SSD називається MLC.
користувач253751

6

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

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

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

Все, що було сказано, є ситуації, коли зайва складність НЕ має сенсу. Зараз багато SSD використовують більше двох рівнів на флеш-комірці (відомий як MLC або TLC), сучасні високошвидкісні протоколи зв'язку також майже завжди використовують багаторівневі кодування.


Тернар не надто важкий. Комп'ютери були побудовані з цим.

1
Так, потрійний легше, ніж четвертинний, тому що вам потрібно лише розрізняти "постіве", "негативне" та "відключене", а не розрізняти кілька рівнів одного знака. Все-таки важче, ніж бінарне.
Пітер Грін

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

1
Штрих-коди? Штрих і пробіл розділяють цифри, а ширина визначає значення.
Сопулі

@Sopuli нормально, тому в цьому випадку темна частина штрих-коду не відбиває світло, тому це буде стан "вимкнено" або "немає сигналу". Думаю, моя думка полягала в тому, що кодування не завжди є просто двома станами сигналу, але може бути сигналом проти жодного сигналу, що здається дивним, за винятком реальних випадків, таких як код Морзе, штрих-коди, мова тощо. Комп'ютерні представлення зазвичай не витрачають місця на зберігання областей "без сигналу" вони ефективніші, ніж фізичні сигнальні системи. У фізичному випадку ми не маємо свободи "перемотати вперед" через прогалини в змісті, ми повинні їх почекати.

2

Можливо, вам буде цікаво знати, що росіяни розробили чіп, який був потрійним , а не бінарним. Це означає , що кожен символ може мати значення -1, 0чи 1. Таким чином, кожен фізичний затвор міг зберігати "три" значення, а не "два".

Потенційні програми в майбутньому

З появою масово виготовлених бінарних компонентів для комп'ютерів потрійні комп’ютери зменшилися в значущості. Однак Дональд Кнут стверджує, що в майбутньому вони будуть повернуті назад у розвиток, щоб скористатися вишуканістю та ефективністю потрійної логіки.

Як ви починаєте підозрювати, може бути більш ефективний спосіб впровадити базову систему нумерації. (Хоча ця здатність виражати це більш ефективно залежить від нашої здатності фізично виготовляти матеріал.) Виходить, що константа e, основа природного журналу (~ 2.71828), має найкращу економіку радіації, а потім 3, 2 то 4.

Економія Radix - це кількість, яку ви можете представити, а скільки символів потрібно взяти, щоб це зробити.

Наприклад, математичне число три представлено як 3у базі 10, але як 11у базі 2 (двійкові). База 10 може виражати більші числа з меншими символами, ніж двійкові, але таблиця символів бази 10 на 5 разів більша (0 ... 9), ніж таблиця символів бази 2 (0, 1). Порівнюючи виражальну потужність з розміром набору символів, називають "економною радіацією" (радикс - це число основи, наприклад, 2 у двійковій чи "базовій 2"). Природне питання, що випливає, - де я хочу опинитися у зв'язку з цією компромісією? Яке число слід прийняти за радіус? Чи можна оптимізувати компроміс між виразною силою та розміром набору символів?

Якщо ви подивитеся на графік у статті про економіку радіації у вікіпедії, ви можете порівняти економію різних підстав. У нашому прикладі база 2 має економічну ефективність 1,0615, тоді як база 10 має економію 1,5597. Чим менше число, тим краще, тим основа 2 є ефективнішою, ніж база 10.

Ваше запитання про базу 4 має ефективність 1,0615, що є тим же розміром, що і базову 2 (або двійкову), тому прийняття її над базою 2 отримує в середньому лише той самий розмір пам’яті на номер.

Якщо вам цікаво, то чи є ідеальне число, яке слід прийняти за базу, ця діаграма показує вам, що це не ціле число, а математична константа e(~ 2.71828), яка найкраща, економія 1,0. Це означає, що це максимально ефективно. Для будь-якого набору чисел база в середньому eдасть вам найкращий розмір представлення, враховуючи таблицю символів. Це найкращий "удар на ваш долар".

Тож, хоча ви вважаєте, що ваше питання, мабуть, просте та основне, воно насправді тонко складне і дуже варте питання, який слід враховувати при проектуванні комп'ютерів. Якщо ви могли б створити ідеальний дискретний комп'ютер, використання бази 4 пропонує ту саму угоду - той самий простір за вартістю, як і двійковий (база 2); використання бази 3 або трійки пропонує кращу угоду над бінарними (а росіяни створили фізичний робочий комп'ютер з представленням бази 3 в транзисторах); але в ідеалі ви б використали базу е. Я не знаю, чи хтось побудував робочий фізичний комп’ютер із базою e, але математично він би запропонував кращу кількість місця над бінарними та потрійними - насправді найкраща угода з усіх реальних чисел.


це, мабуть, навіть не намагається вирішити поставлене питання, чи матиме 4 стани на "біт", а не 2, що означають вдвічі більше місця для зберігання? Дивіться, як відповісти
gnat

@gnat Я думаю, що концепція економіки радікса безпосередньо стосується того, скільки даних ви отримуєте за символ. Він не тільки відповідає на випадок 4, він відповідає на випад будь-якого числа. Це загальне рішення.
користувач1936

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

2
@gnat Я оновив відповідь. Сподіваємось, в цей момент ви бачите, як воно хоча б намагається відповісти на питання.
користувач1936

2

Чи повірите ви, що я можу кодувати загальну кількість людських знань за один матч?

Якщо я кодую трохи в одній відповідності, символи можуть виглядати приблизно так:

введіть тут опис зображення введіть тут опис зображення

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

введіть тут опис зображення введіть тут опис зображення

Вдвічі більше інформації за один і той самий матч! Ну чому б і ні? Ну навіщо зупинятися? Обертаємо кожен символ на 45 градусів, і ми знову подвоюємося. 30, 15, і далі. Незабаром у мене вистачить символів, що я можу сказати все і все лише одним матчем! Як тільки я це зробив, у нас є проблема. Що говорить ця відповідність?

введіть тут опис зображення

Як ви можете бути впевнені, який саме символ є зараз? Скільки часу потрібно, щоб бути впевненим? Ось і є руб. Чим більше символів я додаю, тим більше зусиль потрібно, щоб розказати їх.

Чи матиме 4 стани на “біт”, а не 2, значить удвічі більше місця для зберігання?

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


По суті, так працюють схеми радіомодуляції, такі як квадратура AM та фазова модуляція. Якщо ви хочете по-справжньому розважитися, вивчіть, як обертові фазові вектори представляють два одночасні тони в Single Sideband або FM.

2

Якби біт мав 4 стану замість двох у символі (біті), то так, ви б мали вдвічі більше пам'яті. Це може зайняти або не зайняти вдвічі більше місця, залежно від використовуваної технології.

Є приклад із реального життя, який у вас є щодня перед очима: Ethernet (який не є пам’яттю, але він схожий, наскільки він передає дані), у вас є, серед інших, звичайний «швидкий Ethernet» на 100 Мбіт 100BASE -TX, і у вас є 1GbE Ethernet.

Зрозуміло, що 1GbE вимагає в 10 разів більшу частоту, ніж 100 Мбіт (як 100 Мбіт вимагає в 10 разів більшу частоту, ніж 10 Мбіт), тому вам потрібні і більш дорогі кабелі. Очевидно.

На жаль ... це зовсім не так .

100 Мбіт Ethernet передає по дві кабельні пари на 100 МГц, тоді як GbE передає на 125 МГц більше 4 кабельних пар.

Зачекайте, значить, GbE дійсно лише в 2 1/2 рази швидший, ніж 100 Мбіт Ethernet? Я виймаю лише 250 Мбіт / с?

Ні, воно також використовує 5-PAM-кодування, яке може кодувати 2,32 біта на імпульс на кабельну пару, з яких 2 біти використовуються як фактична інформація, а решта робить сигнал більш стійким до шуму. Завдяки цим дробовим бітам 1000BASE-T також може скинути кодування 8B10B.

Таким чином, ви подвоїли кількість проводів і трохи збільшили частоту, але отримуєте в 10 разів більше пропускної здатності!

Тепер , якщо ви думали , що це чиста магія, подивимося, як цифрового кабельного телебачення робіт , і якщо ви все ще не впевнені, подивіться в ADSL, який використовує 32768-QAM для кодування 15 біт в одному символі.
Той самий старий мідний дріт, той самий діапазон частот, що в 15 разів більше продуктів.

EDIT:
Ще один дуже очевидний приклад із реального життя, про який я повністю забув (оскільки, очевидно, це занадто очевидно!), Який у вас є щодня перед очима, це: USB мандрівники.
Вони зазвичай використовують флеш-пам’ять MLC . Що це? Це тип комірки пам'яті, який зберігає один з чотирьох різних рівнів заряду. Це найменший пристрій, до якого можна отримати доступ на апаратному рівні. Таким чином, ви можете сказати, що ваші "біти" дійсно мають 4 стани (вони не мають , ви дійсно просто виймаєте два біти замість одного, і ви в будь-якому разі можете читати лише цілі сектори з пристрою ... але ви можете, безперечно, подивитися на це цей шлях).
Однакова кількість комірок, але вдвічі більше пам’яті. Дешевші, менші, дещо менш надійні, але ... в першу чергу, дешевші .


Йдеться про повне використання наявної пропускної здатності.

100BASE-TX використовує лише одну пару в напрямку, тоді як 1000BASE-T використовує 4 пари на напрямок (з відміною відлуння).
користувач253751

-5

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

Будь-які n цифр у базі 2 можуть кодувати 2 ^ n станів, тоді як база 4 може кодувати 4 ^ n.


6
ваше твердження: "4 символи / біт." Це свідчить про відсутність розуміння. Це 4 стану / символ, і за допомогою цих 4 станів / символ він би кодував 2 біти.
Пітер Б

4
@Kapep це неправильно. Він використовує "кількість інформації" та "може кодувати N станів" взаємозамінно, що абсолютно невірно. Інформація вимірюється в бітах, а не в кількості станів. Подвоєння бітів на символ додає стільки ж інформації, скільки і подвоєння кількості символів.
користувач5226582

3
Ви повинні відредагувати це, щоб уточнити, що, говорячи "4 символи на цифру", ви маєте на увазі, що кожне розрядне місце має 4 можливі значення (або стани або "символи"). Коли я бачу фразу "4 символи на цифру", перше, що я думаю, - це те, що запис однієї цифри тягне за собою записування 4 символів. Поки ви перебуваєте в цьому, ваша відповідь містить 9 неправильно написаних з великої літери слів, які ви можете виправити ...
Tanner Swett

2
@TannerSwett Оскільки ми знаходимося в педантичній землі, "цифра" має на увазі 10 значень, і тому дивно, що ми зазвичай називаємо технології, що використовують двійкові "цифрові".
JimmyJames

2
(4^n) / (2^n) = 2^nщо означає, що ви можете представляти експоненціально (в 2^nрази) більше станів, але це лише два рази ( log2(4^n) / log2(2^n) = 2n / n = 2) більше місця для зберігання. Пам'ятайте про цеstorage capacity in bits = log2(number of states)
zakinster
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.