Глава 21
Под шорох шин
Процессор, конечно, — основной компонент компьютера, но
далеко не единственный. Компьютеру нужна память для хра-
нения кодов команд, которые процессор будет исполнять. Ком-
пьютеру нужно устройство ввода, чтобы эти коды попадали в
память, а еще устройство вывода, позволяющее просматривать
результаты работы программы. Вы, конечно, помните, что па-
мять RAM энергозависима — при отключении питания ее со-
держимое стирается. Поэтому компьютер нужно снабдить дол-
говременным запоминающим устройством, в котором можно
хранить данные и программы, когда компьютер выключен.
Интегральные схемы, из которых состоит компьютер, мон-
тируются на платах. Если компьютер невелик, все схемы мож-
но разместить на одной плате. Но чаще его компоненты рас-
пределяют на две или несколько плат. Эти платы обменива-
ются информацией через шину (bus), т. е. набор цифровых
сигналов, подаваемых на все платы компьютера. Эти сигналы
разделяются на 4 категории.
•
Адресные — генерируются процессором и обычно исполь-
зуются для адресации оперативной памяти. Могут также
применяться для обращения к другим устройствам ком-
пьютера.
•
Вывода данных — также генерируются микропроцессором.
Используются для передачи данных в память и на другие
378
Глава двадцать первая
устройства. Не запутайтесь в понятиях «ввод» и «вывод»:
сигнал вывода микропроцессора становится сигналом вво-
да для памяти или внешнего устройства.
•
Ввода данных — генерируются различными устройствами
компьютера и поступают в микропроцессор. Чаще всего в
роли источника данных для процессора выступает память.
•
Управляющие — генерируются как микропроцессором, так
и другими устройствами, которым нужно что-то сообщить
процессору. Пример сигнала такого рода — сигнал, кото-
рым процессор указывает на необходимость записи дан-
ных в определенную ячейку памяти.
Кроме того, шина отвечает за подачу питания на различ-
ные компоненты компьютера.
Одной из первых широко распространенных шин для до-
машних компьютеров была S-100, вышедшая в 1975 г. в соста-
ве первого же домашнего компьютера «Альтаир». Первона-
чально она была ориентирована на микропроцессор 8080, но
позже ее приспособили и под другие процессоры, например,
6800. Плата S-100 представляет собой прямоугольную пласти-
ну размером 5,3
´ 10 дюймов (13,5 ´ 25,4 см), одна из сторон
которой представляет собой разъем со 100 контактами (отсю-
да и обозначение — S-100).
Основой компьютера с шиной S-100 является материнс-
кая плата (motherboard). На ней размещено несколько (до 12)
гнезд для вставки разъемов плат S-100. Иногда эти гнезда на-
зывают слотами расширения (expansion slots), а вставляемые в
них платы — платами расширения (expansion cards). Одну пла-
ту S-100 занимает сам процессор с вспомогательными микро-
схемами (некоторые из них я упоминал в главе 19), еще один
или несколько разъемов отданы под оперативную память.
Поскольку шина S-100 разрабатывалась под процессор 8080,
в ее состав входят 16 адресных линий, 8 линий для ввода и 8 —
для вывода данных. Как вы помните, в процессоре 8080 линии
ввода и вывода данных объединены. Перед попаданием в шину
они разделяются в специальной микросхеме, установленной на
той же плате, что и процессор. Кроме того, в шине есть 8 линий
прерываний, генерируемых устройствами компьютера, кото-
рым нужно привлечь внимание процессора. Так, клавиатура
генерирует сигнал прерывания при нажатии клавиши (об этом
379
Под шорох шин
ниже). Процессор в ответ запускает короткую программу, ко-
торая определяет, какая клавиша нажата, и выполняет ответное
действие. Для работы с прерываниями на плату с процессором
8080 обычно устанавливается микросхема Intel 8214 — устрой-
ство управления приоритетными прерываниями. Когда одно из
устройств запрашивает прерывание, микросхема направляет в
процессор соответствующий сигнал. В процессоре выполняет-
ся команда RST (перезапуск), в результате которой процессор
сохраняет текущее содержимое программного счетчика и пере-
ходит к команде по адресу 0000h, 0008h, 0010h, 0018h, 0020h,
0028h, 0030h и 0038h в зависимости от номера прерывания.
Разработав шину нового типа, вы должны решить один
важный вопрос: опубликовать параметры шины или сохра-
нить их в тайне.
Если технические характеристики шины стали достояни-
ем общественности, производить платы расширения для нее
могут не только изготовители шины, но и другие компании.
Доступность множества разнообразных плат расширения де-
лает компьютер гибче, а значит, и привлекательнее. С ростом
числа продаваемых компьютеров расширяется и рынок для
плат расширения. Эта закономерность побуждает разработчи-
ков большинства небольших компьютерных систем придер-
живаться принципов открытой архитектуры (open archi-
tecture), т. е. разрешать сторонним производителям создавать
оборудование для своих компьютеров. Шина, отданная во все-
общее пользование, со временем может стать промышленным
стандартом. Такие стандарты сыграли в развитии персональ-
ных компьютеров важную роль.
Самый знаменитый персональный компьютер (ПК) с от-
крытой архитектурой — первый IBM PC — появился на рын-
ке осенью 1981 г. IBM опубликовала технический справочник
с полными электрическими схемами самого компьютера и всех
плат расширения для него, производимых IBM. Наличие это-
го справочника позволило многим компаниям производить
не только собственные платы расширения, но и целые клоны
ПК, которые практически не отличались от компьютеров IBM
и работали с тем же программным обеспечением (ПО).
В наши дни на долю разнообразных наследников IBM PC
приходится 90% рынка ПК. Сама IBM в этих процентах зани-
мает довольно скромное место, но ее доля вполне могла ока-
380
Глава двадцать первая
заться еще скромнее, если бы архитектура первого IBM PC ос-
талась закрытой. Доказательство тому — «Apple Macintosh».
Архитектура этого компьютера никогда не становилась досто-
янием общественности, и это, вероятно, объясняет, почему на
долю «Macintosh» сейчас приходится менее 10% продаж ПК.
Не забывайте, что закрытость архитектуры компьютера не
мешает другим компаниям создавать для него ПО. Лишь не-
которые производители видеоигр запрещают сторонним ком-
паниям писать программы для своих систем.
В первом IBM PC использовался процессор Intel 8088 с ад-
ресным пространством в 1Мб. Сам по себе это 16-разрядный
процессор, но обмен данным с памятью происходит 8-бито-
выми фрагментами, т. е. байтами. Шина с 62 контактами, раз-
работанная в IBM для этого компьютера, теперь называется
шиной ISA (Industry Standard Architecture, архитектура про-
мышленного стандарта). В ней 20 адресных линий, 8 линий
для ввода и вывода данных, 6 — для запросов на прерывания
и 3 — для запросов на прямой доступ к памяти (Direct Memory
Access, DMA). Линии DMA позволяют внешним устройствам
перехватывать управление шиной и производить обмен дан-
ными с памятью в обход микропроцессора, хотя обычно чте-
ние и запись осуществляет только он.
В компьютере S-100 на платах расширения размещены все
компоненты без исключения. В IBM PC микропроцессор, не-
которые вспомогательные микросхемы и часть оперативной
памяти помещались на системной плате (в терминологии
IBM), которую часто также называют материнской.
В 1984 г. IBM выпустила компьютер PC AT с 16-разрядным
процессором Intel 80286, адресное пространство которого со-
ставляло 16 Мб. Шина ISA в новом компьютере осталась, но к
ней было добавлено еще 36 выводов, в том числе 7 дополни-
тельных адресных линий (хотя нужно их было всего 4), 8 до-
полнительных линий для ввода и вывода данных, 5 линий за-
просов на прерывания и 4 канала DMA.
Шины приходится модернизировать или заменять, когда
микропроцессоры перерастают их либо по разрядности дан-
ных, либо по объему адресуемой памяти, либо по быстродей-
ствию. Первые шины предназначались для микропроцессоров
с тактовыми частотами порядка нескольких, но никак не со-
381
Под шорох шин
тен мегагерц. Шина, работающая на частоте, которая превы-
шает допустимое значение, становится источником электро-
магнитных помех, способных сказаться на работе близких ра-
диоприемников и телевизоров.
В 1987 г. в IBM была создана шина MCA (Micro Channel
Architecture, микроканальная архитектура). Она была частич-
но запатентована, что давало IBM возможность получать день-
ги с других компаний, применявших эту шину. Вероятно, по-
этому шина MCA не стала промышленным стандартом. Бо-
лее того, в 1988 г. консорциум из 9 компаний (IBM в их число
не входила) создал альтернативную 32-разрядную шину EISA
(Extended Industry Standard Architecture, усовершенствованная
архитектура промышленного стандарта). В последние годы в
IBM-совместимых компьютерах повсеместно используется
шина PCI (Peripheral Component Interconnect, соединение пе-
риферийных компонентов).
Понять, как работают компоненты компьютера, нам опять
поможет обращение к давней и незамысловатой эпохе — се-
редине 1970-х. Представим, что мы занялись разработкой плат
расширения для «Альтаира» или для компьютера собственной
конструкции с процессором 8080 или 6800. Нам понадобится
оперативная память, клавиатура, монитор и, вероятно, некое
устройство для хранения информации, когда компьютер вык-
лючен.
Как вы помните из главы 16, массиву RAM нужны адрес-
ные входы, входы для ввода и вывода данных и сигнал, кото-
рый управляет записью данных в память. Количеством адрес-
ных входов определяется объем информации, которую мож-
но записать в массив RAM:
Объем массива RAM = 2
Количество адресных входов
Количеством входов для чтения и записи данных задана на раз-
рядность сохраняемых значений.
В середине 1970-х в оперативной памяти домашних ком-
пьютеров часто использовалась микросхема 2102:
382
Глава двадцать первая
1
2
3
4
5
6
7
8
CS
2102
16
15
14
13
12
11
10
9
A
6
A
5
R/W
A
1
A
2
A
3
A
4
A
0
A
7
A
8
A
9
DO
DI
5 B
Микросхема 2102 относится к семейству МОП (металл-оки-
сел-полупроводник), или MOS (metal-oxide semiconductor),
т. е. к тому же семейству, что и сами микропроцессоры 8080 и
6800. Микросхемы МОП легко соединяются со схемами из се-
мейства ТТЛ; плотность транзисторов в них обычно выше, чем
в ТТЛ-схемах, но работают они медленнее.
Подсчитав адресные входы (с A
0
по A
9
) и заметив, что вхо-
дов для ввода (DI) и вывода (DO) данных всего по одному, вы
сообразите, что в эту микросхему можно записать 1 024 бита.
У различных модификаций микросхемы 2102 время доступа,
т. е. время между поступлением адреса на адресные входы и
подачей нужного бита на выход DO, составляет от 350 до 1 000
нс. При чтении данных из памяти сигнал R/W
—
равен 1. Чтобы
записать входной сигнал в память, сигнал R/W
—
должен обра-
титься в 0 на время не меньше 170–550 нс, опять же в зависи-
мости от вида микросхемы 2102.
Особенно интересен сигнал CS
—
(Chip Select, выбор чипа).
Когда он равен 1, микросхема не выбрана, т. е. не реагирует на
сигнал R/W
—
. Этот сигнал играет в работе микросхемы еще одну
немаловажную роль, но о ней чуть позже.
Конечно, если вы собираете память для 8-разрядного про-
цессора, вам хочется организовать ее так, чтобы в нее можно
было записывать 8-битовые, а не 1-битовые значения. Для со-
хранения целых байтов вам понадобится не менее 8 таких мик-
росхем с соединенными адресными входами, сигналами R/W
—
и CS
—
. Результат схематически можно изобразить так:
383
Под шорох шин
Адрес
10
A
Ввод данных
8
DI
RAM 1024
×
8
DO
8
Вывод данных
R/W
CS
Это массив RAM 1024
´ 8. Его объем равен 1 кб.
С практической точки зрения микросхемы памяти нужно
разместить на плате. Если постараться, то на одной плате S-
100 их уместится 64, т. е. 8 кб. Но мы удовлетворимся скром-
ными 4 кб, т. е. 32 микросхемами. Набор микросхем, соеди-
ненных друг с другом для хранения целого байта, называется
банком (bank). На плате с памятью объемом 4 кб размещаются
4 банка по 8 микросхем в каждом.
Адресное пространство процессоров 8080 и 6800 равно 64 кб,
так как у них по 16 адресных входов. 16 адресных сигналов
платы объемом 4 кб, содержащей 4 банка микросхем, выпол-
няют такие функции:
A
15
A
14
A
13
A
12
A
11
A
10
A
9
A
8
A
7
A
6
A
5
A
4
A
3
A
2
A
1
A
0
Адрес в памяти
Выбор платы Выбор банка
Адресные сигналы с A
0
по A
9
подключены к микросхемам.
Сигналы A
10
и A
11
задают банк, к которому происходит обра-
щение. Наконец, адресные сигналы с A
12
по A
15
определяют
диапазон адресов, относящихся к данной плате. Наша плата
емкостью 4 кб во всем адресном пространстве процессора
(64 кб) может занимать один из шестнадцати 4-килобайтовых
интервалов:
От 0000h до 0FFFh
От 1000h до 1FFFh
От 2000h до 2FFFh
…
От F000h до FFFFh
Допустим, мы решили отвести нашей плате диапазон адресов
от A000h до AFFFh. Это значит, что первый банк занимает ад-
384
Глава двадцать первая
реса с A000h по A3FFh, второй — с A400h по A7FFh, третий —
с A800h по ABFFh, четвертый — с AC00h по AFFFh.
В платах памяти емкостью 4 кб часто предусматривают
возможность оперативного изменения соответствующего ди-
апазона адресов. Делается это с помощью DIP-переключателя
— набора из нескольких (от 2 до 12) крохотных переключате-
лей, собранных в одном корпусе с двухрядным расположени-
ем выводов (Dual Inline Package, DIP).
Его можно подключить к 4 старшим адресным линиям шины
с помощью специальной схемы — компаратора (comparator):
A
12
A
13
A
14
A
15
Равно
V
Как вы помните, выход вентиля «Исключающее ИЛИ» равен
1, только если сигналы на двух его входах не совпадают.
385
Под шорох шин
Чтобы плата соответствовала адресам от A000h до AFFFh,
нужно замкнуть переключатели, соответствующие линиям A
13
и A
15
. Если значения адресных сигналов шины A
12
, A
13
, A
14
и A
15
совпадают со значениями, заданными с помощью переключа-
телей, выходы всех четырех вентилей «Исключающее ИЛИ»
равны 0. Это значит, что выход вентиля ИЛИ-НЕ равен 1:
Равно
V
A
12
A
13
A
14
A
15
Объединив сигнал Равно с дешифратором 2 линии на 4, вы
сможете генерировать сигналы CS
—
для всех четырех банков
памяти:
CS для первого банка
CS для четвертого банка
CS для третьего банка
CS для второго банка
A
10
A
11
Равно
386
Глава двадцать первая
Например, если A
10
равен 0, а A
11
— 1, выбран третий банк.
Если вы еще не забыли нашу возню со сборкой памяти в
главе 16, то можете решить, что нам также понадобится 8 се-
лекторов 4 линии на 1, чтобы выбирать правильные выход-
ные сигналы от четырех банков памяти. Но на самом деле это
не так, и вот почему.
Обычно выходной сигнал микросхемы, совместимой с се-
мейством ТТЛ, либо выше 2,2 В (логическая 1), либо ниже 0,4
В (логический 0). А что будет, если соединить выходные сиг-
налы, один из которых равен 1, а второй — 0? Сказать опреде-
ленно нельзя, и потому выходы интегральных микросхем
обычно между собой не соединяют.
Выходной сигнал микросхемы 2102 называется сигналом с
тремя состояниями (3-state или tristate). Его третье состояние
отличается как от логического 0, так и от логической 1 и соот-
ветствует, как ни странно, полному отсутствию сигнала, как
будто к данному выводу микросхемы вообще ничего не под-
ключено. Выходной сигнал микросхемы 2102 переходит в тре-
тье состояние, если сигнал CS
—
обращается в 1. Это значит, что
выходы для вывода данных всех четырех банков можно со-
единить и использовать эти 8 объединенных выводов как 8
линий ввода данных в шине.
Я решил рассказать о сигналах с тремя состояниями, по-
скольку для работы шины они очень важны. Практически все
устройства, подключенные к шине, используют линии ввода
данных. В данный момент времени передавать данные по шине
может только одно из них. Выходы всех остальных устройств
должны находиться в третьем состоянии.
Микросхема 2102 является статической (static) памятью
RAM, или SRAM. Другой тип памяти называется динамичес-
ким (dynamic) и обозначается сокращением DRAM. В памяти
SRAM для хранения 1 бита обычно нужны 4 транзистора (это
меньше, чем их требовалось в триггерах, из которых мы соби-
рали память в главе 16). В DRAM на 1 бит приходится всего 1
транзистор, зато память этого типа требует более сложной
вспомогательной электроники.
SRAM (например, микросхема 2102) сохраняет данные
только при наличии питания. Если питание отключается, со-
держимое памяти пропадает. DRAM обладает таким же свой-
ством. Кроме того, содержимое памяти DRAM нужно перио-
387
Под шорох шин
дически считывать, даже если оно не нужно. Такая регенера-
ция (refresh) должна производиться несколько сотен раз в се-
кунду.
Хотя применение DRAM связано с дополнительными хло-
потами, благодаря непрерывно возрастающей емкости мик-
росхемы этого типа стали фактически стандартом. В 1975 г.
Intel выпустила микросхему DRAM емкостью 16 384 бита. Со-
гласно закону Мура емкость таких чипов каждые 3 года возра-
стает вчетверо. В современных компьютерах гнезда для памя-
ти размещаются прямо на материнской плате. В эти гнезда
вставляются небольшие платы — модули памяти SIMM (Single
Inline Memory Module) или DIMM (Dual Inline Memory Module)
с несколькими микросхемами DRAM.
Теперь, когда вы узнали, как делать платы памяти, не увле-
кайтесь — не будем заполнять памятью все адресное простран-
ство процессора, оставив часть его для устройства вывода.
Самым распространенным устройством вывода в совре-
менных компьютерах стала катодно-лучевая трубка (Cathode-
Ray Tube, CRT) — в облике телевизора непременный атрибут
человеческого жилища второй половины XX в. Кинескоп, под-
ключенный к компьютеру, называют обычно дисплеем или
монитором. Аппаратный компонент, управляющий работой
монитора, называется видеоадаптером (video display adapter)
или видеоплатой, поскольку в компьютере он чаще всего за-
нимает отдельную плату.
Хотя изображение на экране монитора или телевизора ка-
жется двумерным, в действительности оно состоит из одной
линии, которую очень быстро прочерчивает по экрану элект-
ронный луч. Луч начинает свое путешествие в верхнем левом
углу. Пройдя вправо до конца экрана, он возвращается назад
и начинает рисовать следующую строку развертки (scan line).
Возвратное движение к началу следующей строки называется
обратным ходом по горизонтали (horizontal retrace). Закончив
последнюю строку, луч возвращается из нижнего правого в
верхний левый угол экрана (совершая обратный ход по вер-
тикали), и процесс начинается снова. По стандартам телеви-
зионных сигналов в США это происходит 60 раз в секунду.
Именно такая частота развертки (field rate) обеспечивает нор-
мальное восприятие изображения.
388
Глава двадцать первая
В телевизорах на самом деле все происходит немного слож-
нее из-за чересстрочной развертки (interlacing): один кадр изоб-
ражения рисуется в два приема — сначала четные строки, по-
том нечетные. Частота строчной развертки (horizontal scan
rate), т. е. скорость прорисовки одной строки, равна 15 750 Гц,
Разделив этой число на 60 Гц, получим, что одно поле кадра
состоит из 262,5 строк. Целый кадр состоит из 2 полей, т. е. из
525 строк.
Как при чересстрочной, так и при обычной развертке элек-
тронный луч, формирующий изображение, управляется еди-
ным непрерывным сигналом. В эфире изображение и звук
странствуют совместно, но в телевизоре им суждено разделить-
ся. Далее я буду говорить о видеосигнале — том, что подается
на видеовходы и видеовыходы видеомагнитофонов, камер и
некоторых телевизоров.
Видеосигнал черно-белого телевизора прост и понятен (на-
личие цвета, конечно, все несколько запутывает). 60 раз в се-
кунду в этот сигнал вставляется вертикальный синхроимпульс
(vertical sync pulse), указывающий на начало очередного поля.
Этот импульс состоит в установке на 400 микросекунд нуле-
вого напряжения (земли). Начало строки обозначается гори-
зонтальным синхроимпульсом — нулевым напряжением, ус-
танавливаемым на 5 микросекунд 15 750 раз в секунду. В про-
межутках между горизонтальными синхроимпульсами сигнал
варьируется от 0,5 В (черный) до 2 В (белый). Промежуточные
напряжения соответствуют оттенкам серого.
Таким образом, телевизионное изображение является частич-
но цифровым и частично аналоговым. По вертикали оно разде-
лено на 525 отдельных строк, но внутри каждой напряжение не-
прерывно меняется, хотя и не с произвольной скоростью. Суще-
ствует предельная скорость реакции телеэкрана на изменившее-
ся напряжение, определяемая полосой пропускания (bandwidth).
Понятие полосы пропускания чрезвычайно важно. Имен-
но она определяет объем информации, который можно пере-
дать по данному каналу. В случае телевизора полоса пропус-
кания есть предельная скорость, с которой черный цвет может
сменяться белым, а потом вновь становиться черным. В аме-
риканском телевещании она равна 4,2 Мгц.
Мы хотим подключить дисплей к компьютеру, поэтому
нам неудобно представлять его в виде гибрида цифрового и
389
Под шорох шин
аналогового устройства. Легче считать дисплей исключитель-
но цифровым. С компьютерной точки зрения, удобнее всего
представлять изображение на мониторе как прямоугольную
сетку, отдельные элементы которой называются пикселами
(pixel). Термин этот — сокращение словосочетания «picture
element» (элемент изображения).
Полоса пропускания видеосистемы накладывает ограниче-
ние на число пикселов в одной строке развертки. Я определил
полосу пропускания как предельную скорость, с которой чер-
ный цвет может сменяться белым, а потом вновь становиться
черным. Полоса в 4,2 МГц означает, что пары пикселов могут
создаваться 4,2 млн. раз в секунду. Разделив удвоенную (за счет
двух пикселов) полосу пропускания на частоту строчной раз-
вертки, получим, что одна строка состоит из 533 пикселов. Ре-
ально же их всего около 320, так как часть времени тратится на
обратный ход, кроме того, строка видна на экране не целиком.
Да и по вертикали 525 пикселов тоже не набирается. Они
теряются в верхних и нижних невидимых участках экрана, а
также за счет обратного хода по вертикали. А если учесть, что
при работе с компьютером чересстрочной разверткой лучше
себе жизнь не осложнять, разумно предположить, что число
пикселов по вертикали примерно равно 200.
Итак, разрешение (resolution) простейшего видеоадаптера,
подсоединенного к обычному телевизору, — 320 пикселов по
горизонтали и 200 по вертикали, или сокращенно 320
´ 200:
390
Глава двадцать первая
Полное число пикселов на экране 320
´ 200 = 64 000. В зависи-
мости от того, как вы сконфигурировали свой адаптер, пиксел
может быть черно-белым или обладать определенным цветом.
Допустим, монитор нужен нам для отображения текста.
Сколько его там уместится?
Это, конечно, зависит от того, сколько пикселов занимают
отдельные буквы. Можно, не мудрствуя лукаво, выделить под
все символы одинаковые квадратики размером 8 на 8 пикселов:
Этим символами соответствуют ASCII-коды от 20h до 7Fh (на-
помню, что символы с кодами от 00h до 1Fh являются неотоб-
ражаемыми).
Теперь каждому символу соответствует не только 7-бито-
вый код ASCII, но и 64 бита на экране, которые определяют
его внешний вид. Эти 64 бита тоже можно считать своеобраз-
ным кодом.
На экране дисплея с разрешением 320
´ 200 можно размес-
тить 25 строк по 40 символов размером 8
´ 8. Этого хватит,
например, для небольшого стихотворения.
391
Под шорох шин
Для хранения изображения видеоадаптеру требуется неко-
торое количество памяти RAM, а микропроцессору — возмож-
ность записи в эту память, чтобы выводить информацию на
экран. Удобнее всего выделять место для этой памяти в об-
щем адресном пространстве процессора. Сколько же памяти
выделить простому адаптеру, о котором я рассказываю?
Ответ не так уж очевиден! От 1 до 192 кб!
Начнем с минимальных требований. Самое малое, что нуж-
но от нашего адаптера, — это отображение текста. Мы уже под-
считали, что на экране умещается 25 строк по 40 символов в
каждой, т. е. всего 1 000 символов. В памяти RAM на видеопла-
те достаточно хранить 7-битовые ASCII-коды этих символов.
Тысяча 7-битовых значений как раз и составляют нижний пре-
дел памяти — приблизительно 1 килобайт.
Такому видеоадаптеру нужен также генератор символов
(character gerenator), в котором хранились бы изображения
символов, показанные ранее. Генератор символов обычно яв-
ляется постоянным запоминающим устройством (ПЗУ; Read-
Only Memory; ROM) — интегральной микросхемой, сконст-
руированной так, что в ней по определенному адресу всегда
находятся одни и те же данные. В отличие от RAM в ПЗУ сиг-
налы для ввода данных не предусмотрены.
392
Глава двадцать первая
Можно считать ПЗУ устройством для преобразования од-
ного кода в другой. Генератор символов как бы переводит 7-
битовый код ASCII в 64-битовый код, определяющий внешний
вид символа. Микросхеме ПЗУ, в которой записаны изобра-
жения 128 символов ASCII размером 8
´ 8, нужно 7 адресных
входов (для кодов ASCII) и 64 выхода для данных. Но из-за
этих многочисленных выходов физический размер микросхе-
мы может оказаться чересчур большим! На деле можно обой-
тись 8 выходами для данных, увеличив на 3 количество адрес-
ных сигналов. 7 адресных сигналов по-прежнему используются
для передачи в микросхему кода символа (они поступают в
генератор с выходов памяти на видеоплате). 3 дополнитель-
ных адресных сигнала обозначают номер строки в квадрате
8
´ 8: биты адреса 000 соответствуют самой верхней строке,
биты 111 — самой нижней. На выходы подаются биты, состав-
ляющие строку, номер которой задан дополнительными ад-
ресными входами.
Рассмотрим в качестве примера символ ASCII с кодом 41h
— прописную А. Его внешний вид, как и вид остальных сим-
волов, зашифрован 8 строками по 8 битов в каждой. В табли-
це показаны 10-битовые адреса (код символа отделен от кода
строки пробелом) и соответствующие выходные сигналы для
прописной А.
Адрес
Сигнал на выходе
1000001 000
00110000
1000001 001
01111000
1000001 010
11001100
1000001 011
11001100
1000001 100
11111100
1000001 101
11001100
1000001 110
11001100
1000001 111
00000000
Присмотритесь: во втором столбце единичками на фоне ну-
лей нарисована буква А.
Кроме символов, видеоадаптер должен уметь отображать
на экране курсор, или указатель ввода — черточку, указываю-
393
Под шорох шин
щую, где на экране окажется следующий символ, введенный
вами с клавиатуры. Координаты курсора в виде номера стро-
ки и номера столбца, в которых он находится, обычно хранят-
ся в двух 8-битовых регистрах на видеоплате. В эти регистры
микропроцессор также может записывать данные.
Видеоадаптер, способный отображать не только текст, на-
зывается графическим (graphics). Записывая данные в память
графического адаптера, процессор рисует на экране произволь-
ные изображения, в том числе текст различного размера и раз-
личных шрифтов. У графического адаптера требования к па-
мяти выше, чем у текстового. Если разрешение монитора —
320
´ 200, в видеопамяти адаптера нужно хранить сведения о
64 000 пикселов. Если каждому пикселу отведен 1 бит, объем
видеопамяти равен 64 000 битам, т. е. 8 000 байт, но это, конеч-
но, абсолютный минимум. Пиксел, которому соответствует
единственный бит, может передавать лишь два цвета, напри-
мер, черный (бит равен 0) и белый (бит равен 1).
Даже на черно-белом экране цветов, конечно, отображается
гораздо больше, точнее, не цветов, а оттенков серого. Чтобы
отображение оттенков серого поддерживал и видеоадаптер, каж-
дому пикселу в соответствие приходится ставить не бит, а байт.
Его значение 00h соответствует черному цвету, а FFh — белому.
Промежуточные значения соответствуют полутонам. Видеопла-
те, способной отображать 256 оттенков серого на мониторе с
разрешением 320
´ 200, нужна память в 64 000 байт. Адресное
пространство тех простых 8-битовых процессоров, о которых
я рассказывал, она займет почти полностью!
Чтобы увидеть на экране буйство красок, накиньте на каж-
дый пиксел еще по 2 байта. Посмотрев на экран телевизора
или монитор компьютера через увеличительное стекло, вы
обнаружите, что вся гамма цветов представлена на них соче-
таниями красного, зеленого и синего. Поэтому-то на каждый
пиксел и должно приходиться по 3 байта — для указания ин-
тенсивности трех основных цветов (подробнее о них в главе 25).
Это увеличивает объем видеопамяти до 192 000 байт.
Число цветов, которые способен воспроизвести данный
адаптер, зависит от количества битов на пиксел. Здесь, как и
во многих других соотношениях в этой книге, не обошлось
без степени двойки
394
Глава двадцать первая
Количество цветов = 2
Количество битов на пиксел
Разрешение 320
´ 200 — лучшее, чего можно ожидать от
обычного телевизора. Полоса пропускания компьютерных мо-
ниторов гораздо шире. На первых мониторах, продававших-
ся с IBM PC, отображалось 25 строк по 80 символов в каждой.
Именно таким разрешением обладали текстовые мониторы на
мэйнфреймах IBM. Вообще число 80 для IBM обладает осо-
бым смыслом. И почему? Да потому, что именно столько сим-
волов умещается на одной перфокарте! Мониторы мэйнфрей-
мов часто использовались именно для просмотра содержимо-
го перфокарт. Даже в наши дни отдельные консерваторы про-
должают называть строки текстового экрана карточками.
С годами разрешение адаптеров и число воспроизводимых
ими цветов неуклонно росли. Важной вехой стало появление
в 1987 г. адаптеров с разрешением 640
´ 480 для компьютеров
PS/2 фирмы IBM и «Macintosh II» фирмы Apple. С тех пор это
разрешение считается необходимым минимумом для компь-
ютерных видеосистем.
Вы не поверите, но важность разрешения 640
´ 480 восхо-
дит к Томасу Эдисону. Году в 1889 Эдисон и его инженер Ви-
льям Диксон (William Dickson) работали над аппаратом «Kine-
tograph» для создания «движущейся фотографии» и над про-
ектором «Kinetoscope». Они решили, что ширина «движущей-
ся фотографии» должна на треть превосходить ее высоту. От-
ношение ширины кадра к его высоте называется характе-
ристическим отношением (aspect ratio). В аппаратах Эдисона
и Диксона оно равнялось 1,33:1, или 4:3. В течение 60 лет эта
величина использовалась в большинстве фильмов и в конст-
рукции телевизоров. Лишь в начале 1950-х годов некоторые
голливудские студии, преодолев барьер 4:3, начали снимать
широкоэкранные фильмы, составившие конкуренцию телеви-
зионным программам.
Характеристическое отношение большинства мониторов,
как и у телевизоров, равно 4:3, в чем легко убедиться с помо-
щью линейки. В таком же отношении находятся и числа пик-
селов по горизонтали (640) и вертикали (480). Это значит, что
физическая длина горизонтальной полоски, скажем, из 100
395
Под шорох шин
пикселов равна физической длине вертикальной полоски из
100 пикселов. Иначе говоря, компьютерные пикселы — квад-
ратные, что довольно удобно.
Практически все современные адаптеры и мониторы рабо-
тают с разрешением 640
´ 480, кроме того, поддерживая видео-
режимы с более высоким разрешением — 800
´ 600, 1024 ´ 768,
1280
´ 960 и 1600 ´ 1200.
Часто возникает впечатление, что монитор и клавиатура
как-то связаны между собой: то, что вы набираете на клавиа-
туре, сразу отображается на экране. Однако в действительнос-
ти это совершенно не зависящие друг от друга устройства.
Клавиши на клавиатуре — простые переключатели, кото-
рые замыкаются при нажатии. На первых клавиатурах было
по 48 клавиш, на современных — больше сотни.
В конструкции клавиатуры, подключенной к компьютеру,
должно иметься некое устройство, которое сопоставляло бы
каждой нажатой клавише уникальный код. Кажется, что эти
коды удобно увязать с кодировкой ASCII, но это только ка-
жется: так делать не стоит. Например, клавиша А должна была
бы вырабатывать код 41h при нажатой клавише Shift или код
61h, если клавиша Shift не нажата. Кроме того, на современ-
ных клавиатурах есть клавиши, которым ни один код ASCII
не соответствует. Код, вырабатываемый клавиатурой, называ-
ется скан-кодом (scan code). Проверить, связан ли скан-код на-
жатой клавиши с каким-либо кодом ASCII, поможет неболь-
шая программа.
Мне бы не хотелось, чтобы схема клавиатуры была совер-
шенно нечитаемой, поэтому я буду считать, что на ней всего
16 клавиш. Когда одна из них нажата, клавиатура генерирует
соответствующий 4-битовый код, принимающий двоичные
значения от 0000 до 1111.
Все компоненты на схеме клавиатуры нам знакомы:
396
Глава двадцать первая
V
4-битовый
счетчик
Вибратор
Дешифратор «2 на 4»
O
0
DI
O
1
O
2
O
3
I
0
I
1
I
2
I
3
S
1
S
1
S
0
S
0
Q
0
Q
1
Q
2
Q
3
Clk
DO
Селектор
«4 на 1»
Клавиши на этой схеме показаны как переключатели в ниж-
нем левом углу. 4-битовый счетчик циклически с большой
скоростью перебирает 16 допустимых кодов клавиш. Проис-
ходить это должно очень быстро, быстрее, чем человек успе-
вает нажимать на клавиши.
Выходные сигналы 4-битового счетчика подаются как на
дешифратор «2 на 4», так и на селектор «4 на 1». Если ни одна
клавиша не нажата, ни один из входов селектора не равен 1.
Поэтому и выход самого селектора не равен 1. Но если клави-
ша нажата, по достижению счетчиком ее скан-кода выход се-
лектора будет равен 1. Скажем, если нажата вторая сверху и
справа клавиша, то выход селектора будет установлен в 1 при
значении счетчика 0110.
397
Под шорох шин
V
Вибратор
Прерывание
Дешифратор «2 на 4»
DI
4-битовый
счетчик
Clk
Селектор
«4 на 1»
DO
O
0
O
1
O
2
O
3
I
0
I
1
I
2
I
3
S
1
S
1
S
0
S
0
Q
0
Q
1
Q
2
Q
3
Никакой другой сигнал счетчика не приведет к тому, что вы-
ход селектора станет равен 1. Каждой клавише соответствует
собственный код, единственный и неповторимый.
Для 64 клавиш вам потребуется 6-битовый скан-код и 6-
битовый счетчик. Используя дешифратор «3 на 8» и селектор
«1 из 8», клавиши можно расположить в виде таблицы 8 на 8.
Для клавиатуры, на которой от 65 до 128 клавиш, скан-код дол-
жен быть 7-битовым. Эти клавиши можно расположить в виде
таблицы 8 на 16, применив дешифратор «4 на 16» и селектор
«1 из 8» (или дешифратор «3 на 8» и селектор «1 из 16»).
Происходящее в этой схеме далее зависит от уровня слож-
ности интерфейса клавиатуры. Например, в клавиатуре мо-
398
Глава двадцать первая
жет присутствовать память RAM, по 1 биту на клавишу. Адре-
сацию к ней будет осуществлять счетчик, а значения кодиро-
ваться так: 1, если клавиша нажата, и 0, если нет. Для опреде-
ления состояния клавиши к этой памяти может обращаться
процессор.
Полезнейшая часть интерфейса клавиатуры — сигнал пре-
рывания. Как вы помните, у процессора 8080 есть входной сиг-
нал, позволяющий внешнему устройству прервать работу про-
цессора. Процессор реагирует на прерывание, считывая из па-
мяти команду — обычно команду RST, которая вызывает пе-
реход в определенную область памяти, где находится програм-
ма обработки прерывания.
Последнее периферийное устройство, которое я здесь опи-
шу, — внешний накопитель. Вы, конечно, помните, что опе-
ративная память теряет содержимое при выключении пита-
ния, из чего бы она ни была собрана: из реле, вакуумных ламп
или транзисторов. Но компьютеру необходимо и долговремен-
ное запоминающее устройство. В старые добрые времена роль
такого устройства играли перфокарты и перфоленты. При каж-
дом компьютере хранились рулоны лент или стопки карт с
сохраненными на них программами и данными.
Однако и у перфолент, и у перфокарт есть общий недоста-
ток — их нельзя использовать повторно. Заклеить пробитую
в бумаге дырку не так-то просто. Кроме того, физический
объем, занимаемый данными, слишком велик. В наши дни,
если вы видите сохраненный бит, смело можете считать, что
он занимает чересчур много места!
Поэтому сейчас гораздо шире распространены магнитные
накопители, родословная которых идет с 1878 г. Принципы их
работы описаны американским инженером Оберлином Сми-
том (Oberlin Smith) (1840–1926), а первое работающее устрой-
ство собрал в 1898 г. датский изобретатель Вальдемар Пауль-
сен (Valdemar Poulsen) (1869–1942). «Телеграфон» Паульсена
должен был записывать сообщения, оставленные по телефо-
ну, если некому было ответить на звонок. Для записи звука на
стальной проволоке в этом первом автоответчике использо-
вался электромагнит — вездесущее устройство, с которым мы
уже встречались. Он намагничивал проволоку пропорциональ-
но звуковым колебаниям. Затем проволока протягивалась
вдоль обмоток электромагнита и индуцировала в них ток, ко-
399
Под шорох шин
торый воспроизводил исходный звук. Кстати, независимо от
типа магнитного накопителя электромагнит, используемый в
нем для записи и считывания информации, называется голов-
кой (head).
В 1928 г. австриец Фриц Пфлоймер (Fritz Pfleumer) запа-
тентовал магнитное записывающее устройство, в котором в
качестве носителя использовалась бумажная лента, покрытая
железными частичками (технология покрытия изначально
была разработана для нанесения металлизированных полосок
на сигареты). Бумагу вскоре заменила более прочная целлуло-
идная основа. Так родился популярнейший способ записи ин-
формации. Магнитная лента — теперь удобно упакованная в
пластмассовые кассеты — и в наши дни повсеместно исполь-
зуется для записи и воспроизведения музыки и кино.
Первая коммерческая система для записи на магнитную лен-
ту компьютерных данных была выпущена в 1950 г. фирмой
Remington Rand. На одной катушке ленты шириной в полдюй-
ма (1,27 см) умещалось несколько мегабайт информации. А в
первых домашних компьютерах для записи информации при-
спосабливали обычные магнитофонные кассеты. Специальные
программы позволяли записать на кассету участок памяти, а
затем считать его обратно. У первого IBM PC был специальный
разъем для кассетного накопителя. Теперь ленты используются
в основном для архивирования данных. Для повседневного хра-
нения информации они не столь удобны: чтобы добраться до
нужного фрагмента записи, ленту приходится перематывать, а
на это иногда уходит немало времени.
С точки зрения ускорения доступа записывать данные удоб-
нее на диск. В современных накопителях диск крутится под
неподвижной штангой, по которой перемещаются одна или
несколько головок. Доступ к любому участку диска осуществ-
ляется практически мгновенно.
Для записи звуков магнитные диски в действительности
использовались еще до магнитной ленты. А вот первый дис-
ковый накопитель для компьютерных данных был изобретен
в 1956 г. в IBM. Устройство RAMAC (Random Access Method
for Accounting and Control) состояло из 50 металлических дис-
ков диаметром 60 см и могло хранить 5 Мб данных.
С тех пор физические размеры дисков существенно умень-
шились, а их объем неимоверно вырос. Дисковые накопители
400
Глава двадцать первая
обычно разделяют на гибкие (floppy), или попросту дискеты,
и жесткие (hard). Гибкий диск состоит из пластикового диска
с магнитным покрытием и пластмассового корпуса. В совре-
менных дискетах пластмассовый корпус защищает диск от
изгиба, поэтому называть его гибким можно лишь условно.
Для записи и чтения информации с гибкого диска его нужно
вставить в специальное компьютерное устройство — диско-
вод. Самые первые гибкие диски были по 8 дюймов в диамет-
ре. В IBM PC использовались гибкие диски диаметром 5 1/4
дюйма. Сейчас самый популярный их размер — 3,5 дюйма.
Особенность гибких дисков в том, что с их помощью инфор-
мацию легко можно переносить с компьютера на компьютер.
В частности, их до сих пор часто используют как дистрибу-
тивный носитель коммерческого ПО.
Жесткий диск обычно состоит из нескольких металличес-
ких дисков, «намертво» вмонтированных в дисковод. Работа-
ют жесткие диски быстрее гибких, и информации на них уме-
щается больше. С другой стороны, их уже не так легко перене-
сти с компьютера на компьютер.
Поверхность диска разделена на концентрические кольца
— дорожки (tracks), причем каждая разделена на несколько дуг
— секторов (sectors). Каждый сектор хранит определенный
объем информации, как правило, 512 байт. В первом IBM PC
использовалась лишь одна сторона 5 1/4-дюймовой дискеты,
разделенная на 40 дорожек по 8 секторов каждая. Поскольку
объем сектора был равен 512 байт, полная емкость дискеты
составляла 163 840 байт, или 160 кб. В современных 3,5-дюй-
мовых дискетах для IBM-совместимых компьютеров исполь-
зуются обе стороны, разделенные на 80 дорожек каждая (по 18
секторов на дорожке). Полный объем дискеты равен 1 474 560
байт, или 1 440 кб.
Из ПК первым жестким диском был укомплектован ком-
пьютер IBM PC XT (1983 г.). Емкость его составляла 10 Мб.
В наши дни никого уже не удивишь 20-гигабайтником.
Для работы как с гибкими, так и жесткими дисками нужен
специальный электронный интерфейс, обеспечивающий об-
мен данными с процессором. В наши дни применяются жест-
кие диски с несколькими типами интерфейсов, в том числе
SCSI (Small Computer System Interface), ESDI (Enhanced Small
Device Interface) и IDE (Integrated Device Electronics). В всех этих
401
Под шорох шин
интерфейсах для обмена данными между накопителем и опе-
ративной памятью в обход микропроцессора используется
прямой доступ к памяти.
Новички в компьютерных делах обычно легко путаются в
гигабайтах и мегабайтах, в оперативной памяти и жестких дис-
ках. Чтобы всегда отличать одно от другого, помните, что па-
мятью называют только оперативную память, оставив терми-
ны «накопитель» или «запоминающее устройство» для всего
остального — дискет, жестких дисков, магнитных лент… Я
старался всегда следовать этому правилу.
Наиболее очевидное отличие оперативной памяти от на-
копителя в том, что память энергозависима: ее содержимое
уничтожается при выключении питания. Накопители облада-
ют большей стойкостью: содержимое дискеты или жесткого
диска остается неизменным, пока вы не сотрете его или не за-
пишете поверх новые данные. Другое важное отличие поймет
лишь человек, знакомый с работой процессора: адресные вы-
ходы процессора используются только для обращения к па-
мяти и никогда к накопителю.
Чтобы с данными мог работать микропроцессор, их нужно
перенести из накопителя в оперативную память. Для доступа
к диску микропроцессор должен запустить специальную не-
большую программу.
Если угодно, используйте для понимания различий между
оперативной памятью и диском такую аналогию. Оператив-
ная память — это ваш рабочий стол. Со всем, что на нем ле-
жит, вы можете работать сразу. Дисковый накопитель — это
шкаф с папками. Чтобы воспользоваться информацией из
шкафа, нужно встать, подойти к нему, вытащить папку и вер-
нуться с ней к столу. Если на столе нет места, можно поста-
вить некоторые папки обратно в шкаф.
Конечно, делается это все не руками. Сохранение инфор-
мации и ее считывание относятся к компетенции очень важ-
ной программы — операционной системы (ОС).
|