Будет ли 4 состояния на «бит», а не 2, в два раза больше места для хранения?

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

Имеет ли 4 состояния на «бит», а не 2, в два раза больше места для хранения? В случае, если это не ясно, я имею в виду, как если бы каждая «структура хранения», а не только представление 2 значений (база 2: 0, 1), могла представлять 4 значения (основание 4: 0, 1, 2, 3 ).

36 голосов | спросил Viziionary 10 +03002017-10-10T05:34:30+03:00312017bEurope/MoscowTue, 10 Oct 2017 05:34:30 +0300 2017, 05:34:30

8 ответов


106

Слово, которое вы ищете, не «бит», а «символ». «Символ» - это слово, используемое для описания процесса отображения аппаратных сигналов (таких как напряжения или магнитные шаблоны) в логические биты. Если символ может иметь 4 состояния, он может кодировать информацию на 2 бита.

Конечно, мы ничего не говорим об использовании ресурса символа в этом аргументе. Если вы посылаете символы вдоль провода в качестве напряжений, разные символы выглядят все более похожими, так как вы увеличиваете количество состояний на символ. Если у меня есть провод 0-5 В и 2 состояния на символ (1 бит), мои два состояния равны 0 В и 5 В, а между ними - 5 В. Если у меня есть тот же провод, но кодируйте 4 состояния на символ (2 бита), мои состояния равны 0 В, 1,66 В, 3,33 В и 5 В. Это 1,66 В между каждым символом. Теперь шум от шумов может привести к повреждению сигнала.

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

Мы используем эту технику в реальной жизни. Цифровое телевидение использует QAM-64, с 64 состояниями (и, следовательно, 6 бит на символ). Ethernet использует 4 уровня напряжения, поэтому 2 бит на символ.

Изменить: я использовал скорость передачи бит, а не память, потому что чаще встречаются символы с большим количеством состояний в передаче, поэтому я могу сделать историю более понятной. Если вы хотите отдельно посмотреть на хранение и хранение, можно посмотреть многоуровневые ячейки в флэш-памяти, как Кто-то в другом месте , упомянутый в комментариях. Такая память использует тот же подход, сохраняя 3 бита как 16 различных уровней заряда конденсатора. (или больше!)

ответил Cort Ammon 10 +03002017-10-10T06:02:00+03:00312017bEurope/MoscowTue, 10 Oct 2017 06:02:00 +0300 2017, 06:02:00
21

Одна ячейка четвертой памяти может хранить ровно столько же информации, сколько две ячейки памяти:

Quaternary Binary
0          00
1          01
2          10
3          11

Итак, если у вас одинаковое количество ячеек памяти, но они квартерные, тогда у вас вдвое больше памяти. Но если эта четырехкамерная ячейка занимает в два раза больше места на чипе, тогда нет никакой пользы.

Или иначе, если бы у вас было 1 гигаквад некоторого четвертого хранилища, он мог хранить как можно больше информации, как 2 гигабита нормальной двоичной памяти, потому что каждый квад мог быть выражен двумя битами.


В некотором роде вся эта линия, хотя и представляет собой академический интерес. Вы уже можете думать, что чипы памяти хранят, например, 2 ^ 32 состояния, потому что вы не можете извлечь из них 1 бит, вы всегда получите полное слово. И если в будущем кто-то придумает способ сохранить это слово в физических клетках 4-го состояния более эффективно, чем в ячейках с 2 состояниями, то это будет использоваться, но оно не будет видно за пределами чипа памяти, оно все равно будет обрабатывать только слова с полной памятью, которые могут иметь, например, 2 ^ 32 разных состояния.

ответил hyde 10 +03002017-10-10T14:09:48+03:00312017bEurope/MoscowTue, 10 Oct 2017 14:09:48 +0300 2017, 14:09:48
9

В базовой теории да. В действительности нет, потому что мы фактически не храним данные в битах (на жестких дисках). Cort Ammon очень хорошо справляется с проблемами передачи данных. ОЗУ, кеш и SSD хранят данные как биты, но жесткие диски различаются по характеру их физического материала и нашим усилиям по упаковыванию на них большего количества данных. Большинство данных все еще хранятся на жестких дисках, поэтому я сосредоточусь на них. Я пойду далеко за рамки объяснений, которые вы найдете в большинстве источников, но попытайтесь привести источники, где я могу. Эти источники должны быть выкопаны из древних глубин Интернета, потому что это - в значительной степени - поистине забытое знание.

Во-первых, жесткие диски хранят информацию с магнитными полями на поверхности дисков. Головка привода считывает их, измеряя поток от change в этом поле - это намного легче измерить, чем фактическое направление и силу магнитного поля. но если поле 50 из тех же сегментов в строке, он не может считать, что их было 50 - он читал всплеск потока при чтении первого сегмента, после чего после этого не возникал поток, и он не мог отслеживать время достаточно точно, чтобы убедиться, что поле не изменилось на 50 сегментов.

Итак, основная (упрощенная) модель состоит в том, чтобы сохранить бит как пару магнитных полей. Первым всегда будет переход от предыдущего сегмента, а второй - флип для представления 1 или без флип для представления 0. Таким образом, 0 - это FN (flip-null), а 1 - FF (флип-флип). Время привода достаточно точное, чтобы распознать разницу между одним всплеском потока и двумя всплесками потока в сегменте. Этот формат называется частотной модуляцией. Таким образом, это дает четкие сигналы, НО это означает, что для каждого бит памяти требуется два пробела на диске - это очень неэффективно. Таким образом, ни один жесткий диск не имел эту самую основную форму кодирования; вместо этого он использовал простые трюки сжатия. Самая простая - Модифицированная частотная модуляция, которая изменяет шаблон так, что дополнительный магнитный флип используется только в том случае, если 0 предшествует другое 0. Это позволяет инженерам копировать почти вдвое больше данных в одно и то же пространство и, таким образом, использоваться на первых жестких дисков, и является форматом на гибких дисках. После этого была разработана более совершенная система под названием Run Length Limited с аналогичной общей идеей, в которую я не буду входить, потому что она становится намного сложнее и существует множество реализаций.

Но мы не используем такую ​​систему сегодня. Вместо этого мы используем систему Partial Response, Maximum Lijelihood (PRML). PRML требует, чтобы голова читала длину и собирала магнитную пробу, затем сравнивает ее с эталонным набором хранимых выборок, чтобы определить, какой из них лучше всего подходит. Он отказывается от всей концепции всплесков потока, а вместо этого использует сопоставление с образцом (я упрощаю, но упрощение это стоит), а шаблон соответствует набору бит. Он использует фильтры шума и другие технологии для устранения возможных ошибок. Лучше думать об этом как о сложном сигнале, и HDD знает, как перевести каждую форму волны в набор бит. В этом смысле данные фактически хранятся больше в аналоговом формате, чем цифровое, поскольку физический материал может поддерживать постепенные изменения аналогового сигнала лучше, чем внезапные скачки цифрового сигнала.

Лучшее руководство для этого - 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-накопителях или в RAM было поставлено хранилище базы-4. Все зависит от физики и химии материалов. Инженеры и ученые будут подталкивать эти материалы, насколько это возможно, и будут добиваться того, какой маршрут дает наилучшие результаты.

ответил user3685427 10 +03002017-10-10T22:21:02+03:00312017bEurope/MoscowTue, 10 Oct 2017 22:21:02 +0300 2017, 22:21:02
6

Да с большим количеством состояний позволит каждой «ячейке» хранения или каждому символу на линии передачи данных передавать больше информации.

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

И тогда возникает проблема ослабленных сигналов. На двухуровневой системе вы можете просто создать свой порог так, чтобы он работал с наихудшим аттенютацией, в четырех системах состояния, где ожидается значительное ослабление, вам нужно адаптировать свои пороговые значения к конкретному ослаблению вашей системы, а не только к худшему -фазовое затухание. На практике это означает, что вам нужно добавить систему измерения ослабления в вашу систему связи.

Все, что говорит, что есть ситуации, когда сложность DOES имеет смысл. Многие SSD теперь используют более двух уровней на флэш-ячейку (известную как MLC или TLC), современные высокоскоростные протоколы связи почти всегда используют многоуровневые кодировки.

ответил Peter Green 10 +03002017-10-10T17:24:10+03:00312017bEurope/MoscowTue, 10 Oct 2017 17:24:10 +0300 2017, 17:24:10
2

Вам может быть интересно узнать, что россияне разработали чип, который был троянский , вместо этого бинарных. Это означает, что каждый символ может иметь значения -1, 0, или 1. Таким образом, каждый физический вентиль может хранить «три» значения вместо «двух».

  

Потенциальные будущие приложения

     

С появлением серийных двоичных компонентов для компьютеров тройные компьютеры уменьшились по значимости. Тем не менее, Дональд Кнут утверждает, что они будут возвращены в развитие в будущем, чтобы использовать элегантность и эффективность тернарной логики.

Как вы начинаете подозревать, может быть более эффективный способ внедрения базовой системы нумерации. (Хотя эта способность выражать это более эффективно зависит от нашей способности физически обрабатывать материал.) включает out , что константа e , база естественного журнала (~ 2.71828), имеет лучшую экономию радикса, затем 3, затем 2, затем 4.

Экономия Radix - это количество, которое вы можете представить в сравнении с количеством символов, которое вам нужно предпринять, чтобы сделать это.

Например, математическое число три представлено как 3 в базе 10, но как 11 в базе 2 (двоичный). База 10 может выражать большие числа с меньшим количеством символов, чем двоичная, но таблица символов базы 10 в 5 раз больше (0 ... 9), чем таблица символов базы 2 (0, 1). Сравнение выразительной мощности с размером набора символов называется «экономикой радикса» (радик - это номер базы, например, 2 в двоичном формате или «база 2»). Естественный вопрос, который следует ниже, где я хочу быть с точки зрения этого компромисса? Какое число я должен принять в качестве основы? Могу ли я оптимизировать компромисс между выразительной мощностью и размером набора символов?

Если вы посмотрите на диаграмму в статье radix economy в Википедии, вы может сравнить экономику различных баз. В нашем примере база 2 имеет экономию радикса 1.0615, а базовая 10 имеет экономию 1.5977. Чем меньше число, тем лучше, поэтому база 2 более эффективна, чем база 10.

Ваш вопрос о базе 4 имеет эффективность 1.0615, который имеет тот же размер, что и базовый 2 (или двоичный), поэтому использование его на основе 2 позволяет получить только тот же размер для хранения в число, в среднем.

Если вам интересно, тогда есть идеальное число, чтобы принять в качестве базы, эта диаграмма показывает вам, что это не целое число, а математическая константа e (~ 2.71828), который является лучшим, имея экономию 1,0. Это означает, что он эффективен, насколько это возможно. Для любого набора чисел в среднем базовый e даст вам лучший размер представления, учитывая его таблицу символов. Это лучший «взрыв для вашего доллара».

Итак, хотя вы считаете, что ваш вопрос, пожалуй, простой и простой, он на самом деле тонко сложный и очень полезный вопрос, который следует учитывать при разработке компьютеров. Если вы можете спроектировать идеальный дискретный компьютер, использование базы 4 предлагает ту же самую сделку - то же место для стоимости - как двоичное (основание 2); используя базу 3 или тройную, предлагает более выгодную сделку по двоичным (и россияне построили физический, рабочий компьютер с представлением базы 3 в транзисторах); но в идеале вы использовали бы базу e. Я не знаю, построил ли кто-нибудь рабочий физический компьютер с базой e, но математически он предложил бы более выгодное пространство над двоичным и тройным - на самом деле, лучшее решение из всех реальных чисел.

ответил user1936 11 +03002017-10-11T17:32:20+03:00312017bEurope/MoscowWed, 11 Oct 2017 17:32:20 +0300 2017, 17:32:20
2

Считаете ли вы, что я могу кодировать совокупность человеческих знаний в одном матче?

Если я закодирую бит в одном совпадении, символы могут выглядеть так:

 введите описание изображения здесь>> </a>
<a href=введите описание изображения здесь

С достаточным количеством совпадений я могу сказать что угодно. Но я могу сказать в два раза больше с тем же самым совпадением, если добавлю еще два символа. Что может выглядеть так:

 введите описание изображения здесь>> </a>
<a href=введите описание изображения здесь

В два раза больше информации с тем же совпадением! А почему бы не? Ну зачем останавливаться? Поверните каждый символ на 45 градусов, и мы снова удвоимся. 30, 15, дальше и дальше. Вскоре у меня достаточно символов, и я могу сказать что угодно и всего лишь с одним матчем! Однако, когда я это делаю, у нас есть проблема. Что говорит этот матч?

 введите описание изображения здесь>> </a> </p>

<p> Как вы можете точно знать, какой именно символ теперь? Сколько времени вам нужно, чтобы быть уверенным? Это тряска. Чем больше символов я добавляю, тем больше усилий вам потребуется, чтобы рассказать им обособленно. </p>

<blockquote>
  <p> Имеет ли 4 состояния на «бит», а не 2, в два раза больше места для хранения? </p>
</blockquote>

<p> Если мы говорим о каждом матче, то обязательно. Но даже если это не замедлит скорость чтения нашего матча, теперь мы занимаем больше места в моей кухне. Это всегда что-то. </p></body></html>

ответил candied_orange 12 +03002017-10-12T04:16:19+03:00312017bEurope/MoscowThu, 12 Oct 2017 04:16:19 +0300 2017, 04:16:19
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 состояния (они не , вы действительно просто получаете два бита вместо одного, и вы можете читать только полные сектора с устройства в любом случае ... но вы могли бы, возможно, смотреть на него таким образом).
Такое же количество ячеек, но удваивает память. Дешевле, меньше, несколько менее надежным, но ... в первую очередь, дешевле .

ответил Damon 11 +03002017-10-11T14:46:27+03:00312017bEurope/MoscowWed, 11 Oct 2017 14:46:27 +0300 2017, 14:46:27
-5

Имея 4 символа на цифру вместо двух, вы можете хранить в два раза больше информации в одной цифре. Однако, увеличивая количество цифр, вы можете хранить экспоненциально дополнительную информацию:

Любые n цифр в базе 2 могут кодировать 2 ^ n состояния, тогда как база 4 может кодировать 4 ^ n.

ответил marstato 10 +03002017-10-10T11:36:53+03:00312017bEurope/MoscowTue, 10 Oct 2017 11:36:53 +0300 2017, 11:36:53

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132