3

Почему компьютеры используют двоичные файлы, в том смысле, почему они используют биты, которые могут представлять только состояние высокого и низкого уровня? Я читал «Основы логики и компьютерного дизайна» (М. Моррис Мано, Чарльз Р. Кайм (автор) и Том Мартин) и не понимаю их причину:

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

Итак, если бы можно было точно определить изменение на 0,05 В и защитить от шума, мы бы использовали компьютеры с 10 состояниями? Если да, то это просто вопрос изобретения такого оборудования, которое может обнаружить изменение на 0,05 В? Почему бы просто не увеличить масштаб; например, установить диапазон от 0 до 50 вольт и иметь состояние, кратное 5 (например, 0,5, 10, 15, ..., 50), и учесть +/- 2 В для шума?

3 ответа3

12

Основная причина заключается в следующем: проще построить логику с двумя состояниями, и в 99% случаев все более сложное не дает практического преимущества.

На самом деле, гораздо проще (то есть меньше, дешевле и надежнее) построить четыре блока памяти, каждый из которых имеет два состояния (которые можно использовать для хранения десятичной цифры в двоичной записи BCD), чем создать один блок памяти который может хранить и считывать 10 состояний.

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

Использование более высоких напряжений не является началом работы. Вы увеличите потребление энергии; и чем выше напряжение в ваших сигнальных линиях, тем больше шума они излучают (поэтому они с большей вероятностью повредят другие сигналы). Фактически, в настоящее время мы проводим трассировки сигналов настолько близко друг к другу, что при 50 вольтах вам придется беспокоиться о дуге, а не только о емкостной связи! Тенденция в современных процессорах - использовать более низкое и низкое напряжение, а не более высокое.

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

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

Стоит отметить, что было несколько очень ранних компьютеров, которые хранили цифры в виде десятичных цифр. Но они не делали этого с переменным уровнем напряжения. Вместо этого они использовали схемы, называемые "кольцевыми счетчиками", которые, по сути, были настроены на десять битов памяти, так что только один из десяти мог быть равен "1" за один раз. (Посмотрите "Декатрон".)

Позднее появились "десятичные" компьютеры, такие как IBM 1401 и IBM 1620, но, опять же, все они в основном использовали двоичное хранилище. Биты были просто использованы для представления десятичных цифр различными способами. например, 1401 использовал "двоичное кодированное десятичное число", в котором набор из четырех битов использовался для кодирования каждой десятичной цифры. Компьютеры, подобные этому, были очень успешными в свое время, и большинство калькуляторов все еще работают таким образом.

Короче говоря, хотя десятичное представление, кажется, имеет больше смысла, на самом деле это только потому, что к этому мы, цивилизация, привыкли. Двоичное представление имеет больше смысла для компьютерных схем по всем параметрам техники. (И в любом случае, если бы мы были немного умнее, мы бы росли, используя пальцы для двоичного счета, и мы могли бы считать не только до 10, но и до 1023! :))

6

Статья, которую вы цитировали, очень хорошо отвечает на ваш вопрос, вам просто нужно немного подумать.

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

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

Что касается последней части вашего вопроса, я должен напомнить вам, что по мере развития индустрии электронных компонентов мы движемся к более низким напряжениям, а не к более высоким. Наличие 50 Вольт на выводе ввода / вывода основной памяти вашего компьютера было бы очень непрактичным, опасным и дорогостоящим. Современная компьютерная память обычно использует что-то около 1,5 В.

Я рекомендую следующее чтение:

1

Память основана на транзисторах, которые, хотя и являются аналоговыми по своей природе, используются в двоичном виде и связаны с тактовым сигналом (МГц). Простейшая память - это триггер J/K (Q/Q '). Такое расположение 4-х простых шлюзов NAND является основным битом цифрового хранилища - это то, что хранит 1 или 0. Триггер не имеет возможности хранить не цифровые или множественные значения.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .