Код. Тайный язык информатики — страница 52 из 71

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

В таких 8-разрядных микропроцессорах, как 8080 и 6800, используются 16-разрядные адреса, с помощью которых можно адресовать 64 килобайта памяти. Когда вы подключаете плату памяти емкостью четыре килобайта, содержащую четыре банка микросхем, 16 адресных сигналов платы памяти выполняют следующие функции.

Десять адресных сигналов, с A0 по A9, напрямую подключены к микросхемам RAM. Адресные сигналы A10 и A11 позволяют выбрать, к какому из четырех банков осуществляется обращение. Адресные сигналы с A12 по A15 определяют, какие адреса относятся к конкретной плате, то есть на какие адреса эта плата реагирует. Наша плата памяти емкостью четыре килобайта может занимать один из шестнадцати 4-килобайтных диапазонов во всем адресном пространстве процессора емкостью 64 килобайта:

от 0000h до 0FFFh;

от 1000h до 1FFFh;

от 2000h до 2FFFh;

от F000h до FFFFh.

Предположим, мы решили, что к этой плате памяти емкостью четыре килобайта будут относиться адреса в диапазоне от A000h до AFFFh. Значит, адреса с A000h по A3FFh будут заняты первым банком однокилобайтных микросхем, с A400h по A7FFh — вторым, с A800h по ABFFh — третьим, с AC00h по AFFFh — четвертым.

Обычно 4-килобайтная плата памяти предусматривает возможность изменения диапазона адресов, на которые она реагирует. Для этого используется так называемый DIP-переключатель (Dual Inline Package), представляющий собой набор крошечных переключателей (от двух до двенадцати) в корпусе с двухрядным расположением выводов, который вставляется в обычное гнездо для интегральной микросхемы.

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

Как вы помните, выход вентиля Искл-ИЛИ равен 1 только тогда, когда на его входы подаются разные значения. Выход вентиля Искл-ИЛИ — 0, если оба входных значения одинаковы.

Например, замыкание переключателей, соответствующих линиям A13 и A15, приведет к тому, что плата памяти будет реагировать на адреса с A000h по AFFFh. Когда значения адресных сигналов шины A12, A13, A14 и A15 равны значениям, установленным с помощью переключателей, выходы всех четырех вентилей Искл-ИЛИ равны 0, значит, выход вентиля ИЛИ-НЕ равен 1.

Затем вы можете объединить этот сигнал «Равно» с дешифратором «2 на 4», чтобы генерировать сигналыдля каждого из четырех банков памяти.

Если сигнал A10 равен 0, а A11 — 1, значит, выбран третий банк.

Если вы еще помните сложный процесс сборки массивов RAM из главы 16, можете предположить, что нам нужно использовать восемь селекторов «4 на 1» для выбора правильных выходных сигналов от четырех банков памяти. Однако в данном случае они не потребуются, и вот почему.

Как правило, выходные сигналы интегральных схем, совместимых с ТТЛ-чипами, принимают значения либо более 2,2 вольта (логическая единица), либо менее 0,4 вольта (логический ноль). Что произойдет, если вы попытаетесь соединить эти выходные сигналы? Например, к чему приведет соединение выходного сигнала, равного 1, одной схемы и выходного сигнала, равного 0, другой? Определенно ответить на этот вопрос нельзя, поэтому выходы интегральных схем обычно не соединяются друг с другом.

Выходной сигнал микросхемы 2102 известен как сигнал с тремя состояниями. Помимо логических 0 и 1, для этого выходного сигнала предусмотрено третье состояние, соответствующее отсутствию какого-либо сигнала, будто этот вывод микросхемы вообще ни к чему не подключен. Выходной сигнал микросхемы 2102 переходит в это третье состояние, когда вход CS равен 1. Это означает, что мы можем соединить соответствующие выходные сигналы всех четырех банков и использовать эти восемь комбинированных выходов в качестве восьми линий шины для ввода данных.

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

Микросхема 2102 — это статическая память с произвольным доступом, или SRAM (Static Random Access Memory), которая отличается от динамической памяти с произвольным доступом, или DRAM (Dynamic Random Access Memory). Памяти SRAM обычно требуется четыре транзистора для хранения одного бита (это не так много, как в триггерах из главы 16). Памяти DRAM для этого нужен только один транзистор. Однако недостаток памяти DRAM — необходимость использования более сложных вспомогательных схем.

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

Несмотря на сложности, связанные с использованием памяти DRAM, постоянно увеличивающаяся емкость этих микросхем сделала их стандартом. В 1975 году компания Intel представила микросхему DRAM емкостью 16 384 бит. В соответствии с законом Мура емкость микросхем DRAM увеличивается в четыре раза каждые три года. Современные компьютеры обычно предусматривают гнезда для памяти прямо на системной плате, куда вставляются небольшие платы, называемые модулями памяти SIMM (Single Inline Memory Module) или DIMM (Dual Inline Memory Module), с несколькими микросхемами DRAM.

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

Электронно-лучевая трубка (ЭЛТ) была наиболее распространенным устройством вывода для компьютеров. ЭЛТ, подключенная к компьютеру, обычно называется дисплеем, или монитором; электронный компонент, подающий дисплею сигнал, именуется видеоадаптером. Часто видеоадаптер занимает в компьютере отдельную видеокарту.

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

Телевизор устроен сложнее из-за использования чересстрочной развертки. Один кадр — отдельное неподвижное изображение — разбивается на два поля из четных строк (первое) и нечетных (второе). Частота строчной развертки, или частота следования строк, составляет 15 750 герц. Если разделить это число на 60 герц, получим 262,5 строки в одном поле кадра. Целый кадр содержит в два раза больше, то есть 525 строк развертки[26].

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

В случае черно-белого телевидения этот видеосигнал достаточно прост и понятен. (Цвет все усложняет.) Шестьдесят раз в секунду в этот сигнал записывается импульс вертикальной синхронизации, который указывает на начало поля. Этот импульс — подача нулевого напряжения (земля) на протяжении 400 микросекунд. Импульс горизонтальной синхронизации указывает на начало каждой строки развертки: 15 750 раз в секунду в течение пяти микросекунд подается нулевое напряжение. Между импульсами горизонтальной синхронизации значение сигнала варьируется от 0,5 вольта (черный) до двух вольт (белый), оттенки серого соответствуют значениям от 0,5 до 2 вольт[27].

Таким образом, изображение телевизора является отчасти цифровым, отчасти аналоговым. Это изображение разделено по вертикали на 525 строк, однако внутри каждой из строк развертки напряжение непрерывно меняется, что обусловливает вариации яркости. Однако напряжение не может изменяться произвольно. Существует предельная скорость, с которой телеэкран может реагировать на изменение сигнала. Этот показатель называется «пропускная способность».

Пропускная способность — чрезвычайно важная концепция в сфере связи, поскольку определяет, какой объем информации можно передать по конкретному каналу. В случае телевизора пропускная способность — предельная скорость, с которой видеосигнал может измениться от уровня черного до уровня белого, а затем снова до уровня черного. По американским стандартам телевизионного вещания полоса пропускания примерно равна 4,2 мегагерца[28].

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