Почему компьютерная память имеет только два состояния?

Почему компьютерная память имеет только два состояния?

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

Рассмотрим систему с 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 В для шума?

решение1

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

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

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

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

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

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

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

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

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

решение2

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

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

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

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

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

решение3

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

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

Связанный контент