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


35

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

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


4
Я не знаю, что это означает двукратное пространство для хранения, поскольку при хранении нескольких уровней существуют определенные затраты.
Эрик Эйдт

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

52
«Бит» определяется как имеющий два состояния, поэтому ячейка памяти с четырьмя состояниями будет хранить два бита на определение.
JacquesB

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

11
Если один «бит» с 4 состояниями такой же толстый, как два «бита» с двумя состояниями в каждом, пространство для хранения идентично.
Mouviciel

Ответы:


105

Слово, которое вы ищете, это не «бит», а «символ». «Символ» - это слово, используемое для описания процесса отображения аппаратных сигналов (таких как напряжения или магнитные структуры) в логические биты. Если символ может иметь 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 различных уровней заряда конденсатора. (или больше!)


1
Комментарии не для расширенного обсуждения; этот разговор был перенесен в чат .
maple_shaft

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

21

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

Quaternary Binary
0          00
1          01
2          10
3          11

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

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


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


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

1
@JimmyJames В четыре раза больше возможных состояний - это не то же самое, что в четыре раза больше памяти. Смотрите разговор под ответом Ричарда Данна.
Шон Бертон,

2
Для меня очевидно , последующего вопроса этого ответа, «Ну ... у четырехъядерной клетка принимает в два раза больше места на чипе?».
Даниэль Вагнер

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

1
@JimmyJames Это противоречие. 2 четверных ячейки равны 4 двоичным клеткам. Итак, вы говорите, что 4 двоичных ячейки хранят в 4 раза больше информации, чем 2 двоичных ячейки, хотя это всего в 2 раза больше ячеек. IOW, вы ошибаетесь, по крайней мере, если вы рассчитываете информацию как «биты» (или байты, или терабайты).
Hyde

9

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

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

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

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

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

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

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


Хотите обсудить концепцию хранения? Если бы мы должны были хранить символы на основе координатной плоскости, а не последовательно, мне кажется, что мы могли бы хранить дополнительные биты на основе координатной позиции и положения относительно других битов. chat.stackexchange.com/rooms/66911/vizs-discussion-2
Viziionary

Манчестерское кодирование было разработано для магнитной ленты, а Phase Shift Keying для радио. Схожие идеи с тем, что вы говорите.

Не знал об этом, но не очень удивился.
Вальфрат

хранилище base-4 на твердотельных накопителях называется MLC.
user253751

6

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

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

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

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


Тройной не слишком сложен. Компьютеры были построены с использованием этого.

1
Да, троичный легче, чем четвертичный, потому что вам нужно различать только «положительный», «отрицательный» и «выключенный», вместо того, чтобы различать несколько уровней одного и того же знака. Все же сложнее, чем двоичный, хотя.
Питер Грин

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

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

@ Сопули в порядке, поэтому в этом случае темная часть штрих-кода не отражает свет, поэтому это будет состояние «выключен» или «нет сигнала». Я предполагаю, что моя точка зрения заключалась в том, что кодирование не всегда является просто двумя состояниями сигнала, но может быть сигналом, а не сигналом, что кажется странным, за исключением реальных случаев, таких как азбука Морзе, штрих-коды, речь и т. Д. Компьютерные представления обычно не занимают много места. при хранении областей «без сигнала» они более эффективны, чем физические сигнальные системы. В физическом случае мы не можем «перемотать вперед» по пробелам в содержании, мы должны их переждать.

2

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

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

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

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

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

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

Если вы посмотрите на диаграмму в статье по основам экономики в Википедии, вы можете сравнить экономику различных баз. В нашем примере экономия радиуса базы 2 равна 1,0615, а экономия базы 10 - 1,5977. Чем меньше число, тем лучше, поэтому база 2 более эффективна, чем база 10.

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

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

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


это, кажется, даже не пытается ответить на заданный вопрос, будет ли иметь 4 состояния на «бит», а не 2, в два раза больше места для хранения? См Как ответить
комар

@gnat Я думаю, что концепция экономики основывается на том, сколько данных вы получаете за символ. Мало того, что он отвечает на случай 4, он отвечает на случай любого числа. Это общее решение.
user1936

1
Я дважды проверил ссылку Wikipedia спрятанный под «получается» , и честно говоря , я до сих пор не понимаю , как это связано с пространством для хранения
комар

2
@gnat Я обновил ответ. Надеемся, что в этот момент вы увидите, как он по крайней мере пытается ответить на вопрос.
user1936

2

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

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

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

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

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

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

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

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

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

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


По сути, именно так работают схемы радиомодуляции, такие как Quadrature AM и Phase Modulation. Если вы хотите по-настоящему повеселиться, изучите, как вращающиеся фазовые векторы представляют два одновременных тона в одной боковой полосе или 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 раз больше материалов.

РЕДАКТИРОВАТЬ:
Еще один очень очевидный пример из реальной жизни, о котором я полностью забыл (поскольку он, очевидно, слишком очевиден!), Который у вас перед глазами каждый день, - это USB-разъемы.
Те, которые обычно используют флэш-память MLC . Что это такое? Это тип ячейки памяти, в которой хранится один из четырех разных уровней заряда. Это самая маленькая единица, к которой вы можете получить доступ на аппаратном уровне. Таким образом, вы могли бы сказать, что ваши «биты» действительно имеют 4 состояния (они не имеют , вы действительно просто получаете два бита вместо одного, и вы все равно можете читать только целые сектора с устройства ... но вы можете поспорить с этим сюда).
То же количество клеток, но вдвое больше памяти. Дешевле, меньше, несколько менее надежно, но ... в первую очередь, дешевле .


Речь идет о полном использовании доступной пропускной способности.

100BASE-TX использует только одну пару в каждом направлении, тогда как 1000BASE-T использует 4 пары в каждом направлении (с эхоподавлением).
user253751

-5

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

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


6
Ваше утверждение: «4 символа / бит». Это показывает отсутствие понимания. Это 4 состояния / символа и с этими 4 состояниями / символом он будет кодировать 2 бита.
Питер Б

4
@ Капеп, это неправильно. Он использует «количество информации» и «может кодировать N состояний» взаимозаменяемо, что абсолютно неверно. Информация измеряется в битах, а не в количестве состояний. Удвоение битов на символ добавляет столько информации, сколько удвоение количества символов.
user5226582

3
Вы должны отредактировать это, чтобы уточнить, что когда вы говорите «4 символа на цифру», вы имеете в виду, что у каждого знака цифры есть 4 возможных значения (или состояния или «символы»). Когда я вижу фразу «4 символа на цифру», первое, что я думаю, это то, что запись одной цифры влечет за собой запись 4 символов. Пока вы говорите, ваш ответ содержит 9 неправильно прописных слов, которые вы можете исправить ...
Таннер Светт

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)
Закинстер
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.