Главная страница
Навигация по странице:

  • Шестнадцате- ричный код Символ EBCDIC Шестнадцате- ричный код Символ EBCDIC Шестнадцате- ричный код

  • кр гаряев. Чарльз Петцольд - Код_ тайный язык информатики-Манн, Иванов и Фе. Книга принадлежит Контакты владельца Культовая книга талантливого преподавателя стала для многих первым уверенным шагом в программировании


    Скачать 6.11 Mb.
    НазваниеКнига принадлежит Контакты владельца Культовая книга талантливого преподавателя стала для многих первым уверенным шагом в программировании
    Анкоркр гаряев
    Дата19.10.2022
    Размер6.11 Mb.
    Формат файлаpdf
    Имя файлаЧарльз Петцольд - Код_ тайный язык информатики-Манн, Иванов и Фе.pdf
    ТипКнига
    #743064
    страница23 из 28
    1   ...   20   21   22   23   24   25   26   27   28
    Шестнадцате-
    ричный код
    Символ
    EBCDIC
    Шестнадцате-
    ричный код
    Символ
    EBCDIC
    Шестнадцате-
    ричный код
    Символ
    EBCDIC
    C1
    A
    D1
    J
    C2
    B
    D2
    K
    E2
    S
    C3
    C
    D3
    L
    E3
    T
    C4
    D
    D4
    M
    E4
    U
    C5
    E
    D5
    N
    E5
    V
    C6
    F
    D6
    O
    E6
    W
    C7
    G
    D7
    P
    E7
    X
    C8
    H
    D8
    Q
    E8
    Y
    C9
    I
    D9
    R
    E9
    Z
    Обратите внимание на зазоры в нумерации этих кодов. Если вы исполь- зуете текст EBCDIC при написании программ, эти зазоры могут мешать.
    Строчные буквы соответствуют той же цифровой пробивке, что и про- писные, но другой зонной пробивке. Для строчных букв от a до i пробивают- ся двенадцатая и нулевая строки, что соответствует коду 1000, для букв от j до r — двенадцатая и одиннадцатая строки, что соответствует коду 1001, для букв от s до z — одиннадцатая и нулевая строки, что соответствует коду 1010.
    Коды EBCDIC для строчных букв следующие.
    Шестнадцате-
    ричный код
    Символ
    EBCDIC
    Шестнадцате-
    ричный код
    Символ
    EBCDIC
    Шестнадцате-
    ричный код
    Символ
    EBCDIC
    81
    a
    91
    j
    82
    b
    92
    k
    A2
    s
    83
    c
    93
    l
    A3
    t
    84
    d
    94
    m
    A4
    u
    85
    e
    95
    n
    A5
    v
    86
    f
    96
    o
    A6
    w
    87
    g
    97
    p
    A7
    x
    88
    h
    98
    q
    A8
    y
    89
    i
    99
    r
    A9
    z
    Разумеется, существуют и другие коды EBCDIC — для знаков препинания и управляющих символов, однако мы едва ли нуждаемся в проведении полно- масштабного исследования этой системы.
    На первый взгляд может показаться, что одного столбца перфокарты IBM достаточно для кодирования 12 бит информации. Каждое отверстие соответ- ствует одному биту, не так ли? По идее, для кодирования символа ASCII долж- но быть достаточно семи из 12 позиций в каждом столбце. Однако на практике

    Глава 20. Набор символов ASCII
    341
    это не очень хорошо работает, поскольку при этом пробивается слишком мно- го отверстий, из-за чего карта становится хрупкой.
    Многие из 8-битных кодов EBCDIC не определены. Это говорит о том, что использование 7-битной кодировки ASCII имеет больше смысла. Во вре- мена разработки системы ASCII память была дорогостоящей. Некоторые люди полагали, что кодировка ASCII должна быть 6-битной и предусматри- вать символ переключения между строчными и прописными буквами для экономии.
    Как только эта идея была отвергнута, другие стали полагать, что коди- ровка ASCII должна быть 8-битной, поскольку даже в то время считалось, что в компьютерах будет применяться скорее 8-битная архитектура, чем 7-битная.
    Конечно, современным стандартом являются 8-битные байты. Несмотря на то что технически ASCII — это 7-битная кодировка, почти всегда ее коды хранят- ся как 8-битные значения.
    Эквивалентность байтов и символов, безусловно, удобна, поскольку мы можем приблизительно представить, какой объем компьютерной памяти за- нимает конкретный текстовый документ, просто подсчитав количество сим- волов. Некоторым людям гораздо легче понять, что такое килобайт и мегабайт памяти, когда этот объем ставится в соответствие объему текста.
    Например, обычная машинописная страница формата А4 с полями
    2,5 сантиметра и двойным междустрочным интервалом содержит пример- но 27 строк текста. На каждой строке шириной 16 сантиметров содержит- ся 65 символов. Содержимое такой страницы занимает в общей сложности около 1750 байт. Текст, содержащийся на машинописной странице с оди- нарным междустрочным интервалом, занимает примерно вдвое больше —
    3,5 килобайта.
    Страница в журнале New Yorker включает три столбца текста, в каждом из которых содержатся 60 строк по 40 символов. Это 7200 символов (байтов) на страницу.
    Страница газеты New York Times содержит шесть столбцов текста. Если бы вся она была занята текстом без заголовков или изображений (что было бы необычно), то каждый столбец состоял бы из 155 строк по 35 символов. Тогда на всей странице было бы 32 550 символов, или 32 килобайта.
    На странице обычной книги насчитывается около 500 слов. В среднем сло- во состоит примерно из семи букв, хотя скорее из восьми, если учитывать про- бел. Таким образом, на странице книги около 3000 символов. Предположим, что средняя книга состоит из 333 страниц. Это значение, каким бы странным оно ни казалось, позволяет сказать, что объем текста средней книги составля- ет около одного миллиона байт, или один мегабайт.

    342
    Код
    Разумеется, объем текста книг варьируется в большом диапазоне:
    ȣ «Великий Гэтсби» Фрэнсиса Скотта Фицджеральда — около 300 килобайт;
    ȣ «Над пропастью во ржи» Джерома Сэлинджера — около 400 килобайт;
    ȣ «Приключения Гекльберри Финна» Марка Твена — около 540 килобайт;
    ȣ «Гроздья гнева» Джона Стейнбека — около одного мегабайта;
    ȣ «Моби Дик, или Белый кит» Германа Мелвилла — 1,3 мегабайта;
    ȣ «История Тома Джонса, найденыша» Генри Филдинга — 2,25 мегабайта;
    ȣ «Унесенные ветром» Маргарет Митчелл — 2,5 мегабайта;
    ȣ «Противостояние» Стивена Кинга — 2,7 мегабайта;
    ȣ «Война и мир» Льва Толстого — 3,9 мегабайта;
    ȣ «В поисках утраченного времени» Марселя Пруста — 7,7 мегабайта.
    В Библиотеке Конгресса Соединенных Штатов насчитывается около
    20 миллионов книг, в которых содержится в общей сложности 20 триллионов символов, что соответствует 20 терабайтам текстовых данных. (Кроме текста, там находится множество фотографий и аудиозаписей.)
    Несмотря на то что ASCII, безусловно, является основным стандартом в компьютерной индустрии, он не идеален. Проблема в том, что этот стандарт слишком американский! Действительно, ASCII не вполне подходит даже для тех стран, в которых основным языком является английский. Кодировка ASCII включает символ доллара, но где же символ британского фунта? А как насчет букв с диакритическими значками, используемыми во многих западноевропей- ских языках? Я уже не говорю о нелатинских алфавитах, таких как греческий, арабский, иврит и кириллица. А что насчет символов слогового письма брахми, применяемого в Индии и Юго-Восточной Азии, на котором основаны такие виды письменности, как деванагари, бенгали, тайская и тибетская? Как с по- мощью 7-битного кода в принципе можно представить десятки тысяч идео- грамм китайского, японского и корейского языков, а также десять с лишним тысяч хангыльских слогов?
    В период разработки системы ASCII потребностям некоторых других стран уделяли внимание, хотя нелатинские алфавиты при этом особо не учитывались.
    Согласно опубликованному стандарту ASCII, десять его кодов (40h, 5Bh, 5Ch, 5Dh,
    5Eh, 60h, 7Bh, 7Ch, 7Dh и 7Eh) можно переопределить в соответствии с нацио- нальными потребностями. Кроме того, при необходимости символ решетки (#) можно заменить символом британского фунта (£), а символ доллара ($) — обоб- щенным для валюты символом (¤). Очевидно, что замена символов имеет смысл только тогда, когда все пользователи конкретного текстового документа, содер- жащего эти переопределенные коды, знают об этом изменении.

    Глава 20. Набор символов ASCII
    343
    Поскольку многие компьютерные системы хранят символы в виде 8-бит- ных значений, можно расширить их набор со 128 до 256. В таком наборе коды с 00h по 7Fh определяются так же, как и в обычной системе ASCII, а коды с 80h по FFh могут представлять что-то совершенно иное. Этот метод использовался для определения дополнительных кодов для букв с диакритическими значками и нелатинских алфавитов. В качестве примера приведу набор кодов для букв кириллицы. В представленной таблице старшая тетрада шестнадцатеричного кода символа указана в верхней строке, а младшая — в левом столбце.
    8-
    9-
    A-
    E-
    -0
    А
    Р
    а р
    -1
    Б
    С
    б с
    -2
    В
    Т
    в т
    -3
    Г
    У
    г у
    -4
    Д
    Ф
    д ф
    -5
    Е
    Х
    е х
    -6
    Ж
    Ц
    ж ц
    -7
    З
    Ч
    з ч
    -8
    И
    Ш
    и ш
    -9
    Й
    Щ
    й щ
    -A
    К
    Ъ
    к ъ
    -B
    Л
    Ы
    л ы
    -C
    М
    Ь
    м ь
    -D
    Н
    Э
    н э
    -E
    О
    Ю
    о ю
    -F
    П
    Я
    п я
    Символом кода A0h назначен неразрывный пробел. Обычно когда ком- пьютерная программа форматирует текст в строки и абзацы, то разрыв стро- ки равен пробелу, код ASCII которого 20h. Код A0h должен отображаться как пробел, но не может использоваться для разрыва строк. Неразрывный пробел может понадобиться, например, в фразе «WW II». Символ кода ADh — мяг- кий перенос. Его используют для разделения гласных в середине слова. На пе- чатаемой странице он появляется, только когда необходимо перенести слово с одной строки на другую.

    Код
    К сожалению, за минувшие десятилетия было создано много разных рас- ширений кодировки ASCII, что привело к большой путанице и негативно от- разилось на совместимости. Набор ASCII был расширен более радикальным образом для кодирования идеограмм китайского, японского и корейского язы- ков. В одной популярной кодировке под названием Shift-JIS (Japan Industrial
    Standard — японский промышленный стандарт) коды с 81h по 9Fh фактичес- ки представляют первый байт двухбайтового кода символа. Таким образом, с - истема Shift-JIS позволяет кодировать около 6000 дополнительных символов.
    К сожалению, Shift-JIS — не единственная система, которая использует такой подход. В Азии широко распространены еще три стандартных набора двух- байтовых символов (Double-byte character sets, DBCS).
    Существование нескольких несовместимых наборов двухбайтовых сим- волов — лишь одна из проблем. Печально, что некоторые символы, в частно- сти обычные символы ASCII, представлены однобайтовыми кодами, а тысячи идеограмм — 2-байтовыми. Это затрудняет работу с такими наборами.
    Считая предпочтительным наличие единой однозначной системы коди- рования символов, подходящей для всех языков мира, в 1988 году несколько крупных компьютерных компаний объединились для разработки альтернати- вы ASCII, получившей название Unicode. В отличие от 7-битного кода ASCII,
    Unicode — 16-битный. Для каждого символа в кодировке Unicode требуется два байта. Значит, Unicode предусматривает коды символов от 0000h до FFFFh, то есть может представлять 65 536 различных символов. Этого достаточно для охвата всех языков мира, которые с большой долей вероятности будут исполь- зоваться в компьютерной индустрии, даже с возможностью расширения.
    Кодировка Unicode создавалась не с нуля. Первые 128 символов Unicode, коды которых находятся в диапазоне от 0000h до 007Fh, соответствуют тем же символам в системе ASCII. Кроме того, коды Unicode с 00A0h по 00FFh — это коды описанного выше расширения ASCII для латинского алфавита Latin Alphabet
    No 1. В Unicode также включены другие мировые стандарты.
    Несмотря на то что Unicode — очевидное улучшение систем кодировки, это не гарантирует его мгновенного принятия. Система ASCII и множество несовершенных расширений настолько укоренились в мире компьютерных технологий, что вытеснить их будет сложно.
    Единственная настоящая проблема системы Unicode в том, что она де- лает недействительным прежнее соответствие между одним текстовым сим- волом и одним байтом памяти. Закодированный с помощью стандарта ASCII роман «Гроздья гнева» занимает один мегабайт, а в кодировке Unicode — два мегабайта. Однако это небольшая плата за универсальную и однозначную сис- тему кодирования.

    345
    Глава 21
    Шины
    Несмотря на основополагающую роль процессора, им устройство компьюте- ра не ограничивается. Помимо него компьютеру требуется оперативная па- мять (RAM) для хранения машинного кода, который будет выполнять процес- сор. Кроме того, компьютер должен предусматривать способ записи этого кода в память (устройство ввода) и отображения результатов работы программы
    (устройство вывода). Как вы помните, память RAM является энергозависимой: ее содержимое теряется при отключении питания. Так что еще один полезный компонент компьютера — долговременное запоминающее устройство, в кото- ром код и данные могут храниться после его выключения.
    Все интегральные схемы (ИС), из которых состоит компьютер, монтиру- ются на печатных платах. В некоторых небольших компьютерах все ИС мо- гут поместиться на одной плате. Однако гораздо чаще различные компоненты размещаются на двух или более платах, которые обмениваются данными с по- мощью шины. Шина — это просто набор цифровых сигналов, передаваемых по различным средам, которые подаются на каждую из плат компьютера. Эти сигналы делятся на четыре категории:
    ȣ адресные сигналы — сигналы, генерируемые микропроцессором и ис- пользуемые в основном для адресации оперативной памяти; они так- же применяются для обращения к другим подключенным к компьютеру устройствам;
    ȣ сигналы вывода данных — эти сигналы тоже генерируются микропро- цессором и используются для записи данных в оперативную память или их передачи в другие устройства; будьте осторожны с терминами «ввод» и «вывод»: сигнал вывода данных микропроцессора — сигнал ввода дан- ных для оперативной памяти и других устройств;
    ȣ сигналы ввода данных — сигналы, которые генерируются другими ком- понентами компьютера и считываются микропроцессором; сигналы ввода данных чаще всего возникают на выходах RAM, благодаря чему

    346
    Код микропроцессор считывает содержимое памяти, однако и другие компо- ненты также генерируют сигналы ввода данных для микропроцессора;
    ȣ управляющие сигналы — разнообразные сигналы, которые обычно соот- ветствуют управляющим сигналам конкретного микропроцессора, на базе которого построен компьютер; управляющие сигналы могут генериро- ваться в микропроцессоре или в других устройствах, которым требуется передать данные в микропроцессор; пример управляющего сигнала — сиг- нал, с помощью которого микропроцессор указывает на необходимость записи некоторых данных в конкретную ячейку памяти.
    В дополнение к этому шина подает питание на различные платы, входя- щие в состав компьютера.
    Одной из первых популярных шин для ПК была модель S-100, представ- ленная в 1975 году в качестве компонента первого персонального компьютера
    «Альтаир» компании MITS. Несмотря на то что эта шина разрабатывалась для микропроцессора 8080, позднее она была адаптирована под другие процессо- ры, такие как 6800. Размер платы S-100 составляет 13,4 × 25,4 санти метра. Одна из сторон печатной платы вставляется в разъем, который имеет 100 контактов
    (отсюда и название).
    Компьютер с шиной S-100 включает в себя большую плату, называемую
    материнской, которая содержит несколько (около двенадцати) связанных друг с другом гнезд для плат S-100. Эти гнезда иногда называются слотами
    расширения, в них вставляются платы S-100, или платы расширения. Одну плату S-100 занимает микропроцессор 8080 и вспомогательные чипы (о не- которых я упомянул в главе 19). Оперативная память занимает одну или не- сколько других плат.
    Поскольку шина S-100 разрабатывалась для микросхемы 8080, она име- ет 16 адресных линий, восемь линий для ввода и восемь линий для вывода данных. Как вы помните, в самом процессоре 8080 линии для ввода и вывода данных объединены. Сигналы разделяются на входные и выходные с помо- щью других микросхем, установленных на той же плате, что и процессор 8080.
    Шина также предусматривает восемь линий для прерываний сигналов, генери- руемых другими устройствами, когда им требуется привлечь внимание цен- трального процессора. Как мы увидим далее, клавиатура может генерировать сигнал прерывания при нажатии клавиши. В ответ на это процессор 8080 вы- полняет короткую программу, чтобы определить, какая клавиша была нажата, и предпринять соответствующее действие. Для обработки прерываний к пла- те с процессором 8080 обычно также подключается чип Intel 8214 (устройство для управления приоритетными прерываниями). Когда возникает прерывание,

    Глава 21. Шины
    347
    этот чип генерирует для процессора 8080 должный сигнал. Когда последний подтверждает получение запроса на прерывание, чип посылает команду RST
    (Restart — перезапуск), которая заставляет микропроцессор сохранить текущее значение счетчика команд и в зависимости от полученного прерывания перейти к команде в ячейке 0000h, 0008h, 0010h, 0018h, 0020h, 0028h, 0030h или 0038h.
    Если бы вы разработали новую компьютерную систему с шиной нового типа, нужно было бы решить, опубликовать ли технические характеристики шины или сохранить их в тайне.
    Если их опубликовать, то другие, так называемые сторонние, произво- дители смогут проектировать и продавать платы расширения, совместимые с этой шиной. Доступность дополнительных плат расширения делает компью- тер более функциональным, следовательно, на него растет спрос. Рост продаж компьютеров ведет к увеличению рынка для плат расширения. Это побуждает разработчиков большинства небольших компьютерных систем придерживать- ся принципа открытой архитектуры, что позволяет другим производителям создавать периферийные устройства. Со временем шина может превратиться в отраслевой стандарт, а стандарты имеют большое значение для индустрии персональных компьютеров.
    Самым известным ПК с открытой архитектурой был первый IBM PC, вы- пущенный осенью 1981 года. Компания IBM опубликовала технический спра- вочник, содержащий полные электрические схемы этого компьютера и всех плат расширения. Этот справочник стал важным инструментом, позволив- шим многим производителям создать не только свои платы расширения для
    IBM PC, но и клоны, которые были практически идентичны этому компьюте- ру и использовали то же программное обеспечение.
    На долю многочисленных потомков первого компьютера IBM PC в на- стоящее время приходится 90% рынка *. Несмотря на то что IBM принадлежит лишь небольшая доля этого рынка
    ,
    она могла бы быть еще меньше, если бы архитектура ее первого компьютера была закрытой. Архитектура компьютера
    Apple Macintosh изначально была закрытой. Несмотря на редкие эксперимен- ты с открытой архитектурой, это принятое в самом начале решение, вероятно, объясняет, почему на долю Macintosh приходится менее 10% рынка настоль- ных ПК. При этом закрытая архитектура компьютерной системы не меша- ет сторонним компаниям писать для нее программное обеспечение. Только
    * Ситуация остается таковой и поныне: по данным на январь 2018 года из открытых источников в 2017 году Apple была четвертым по величине производителем компьютеров в мире с долей рынка в районе 7,5–8% (но нужно также учитывать, что «потомка IBM PC» можно не только купить у крупного производителя, но и собрать «на коленке»). Прим. науч. ред.

    348
    Код производители некоторых видеоигровых консолей запрещают другим компа- ниям создавать программы для своих систем.
    В первом компьютере IBM PC использовался микропроцессор Intel 8088, позволявший адресовать один мегабайт памяти. Несмотря на то что микро- процессор 8088 — 16-разрядный, обмен данными с памятью он осуществля- ет фрагментами по восемь бит. Шина, которую компания IBM разработала для своего первого компьютера, теперь носит название ISA (Industry Standard
    Architecture — архитектура промышленного стандарта). Такая шина преду- сматривает 62 линии, из которых 20 адресных, восемь используются для вво- да и вывода данных, шесть — для запросов на прерывания, три — для запро- сов на прямой доступ к памяти (Direct Memory Access, DMA). Режим DMA позволяет ускорить работу устройств для хранения данных. Обычно чтение и запись данных в память осуществляет микропроцессор. Благодаря режиму
    DMA другое устройство может перехватить управление шиной и произвести обмен данными непосредственно с памятью, минуя микропроцессор.
    В системе S-100 все компоненты размещены на платах расширения. В ком- пьютере IBM PC микропроцессор, некоторые вспомогательные чипы и часть оперативной памяти содержались на плате, которую компания назвала систем-
    ной, хотя эта плата также часто именуется материнской, или главной.
    В 1984 году IBM представила персональный компьютер PC/AT, в котором использовался 16-разрядный микропроцессор Intel 80286, позволявший адре- совать 16 мегабайт памяти. IBM установила ту же шину, но добавила еще один
    36-контактный разъем, который включал семь адресных линий (хотя требова- лось всего четыре), восемь линий для ввода и вывода данных, пять линий для за- просов на прерывания и четыре линии для запросов на прямой доступ к памяти.
    Шины необходимо модернизировать или заменять по мере того, как микро- процессоры перерастают их по разрядности данных (например, при увеличении с 8 до 32 бит), по количеству адресных линий или по быстродействию. Пер- вые шины создавались для микропроцессоров, работавших с тактовой часто- той в несколько мегагерц, но точно не в несколько сотен. Когда шина работа- ет на скоростях, для которых не предназначена, она может стать источником высокочастотных помех, вызывающих статический или другой шум в рабо- тающих поблизости радиоприемниках и телевизорах.
    В 1987 году IBM выпустила шину MCA (Micro Channel Architecture — микро канальная архитектура). Некоторые аспекты этой шины были запа- тентованы, что позволило компании получать лицензионные платежи. Веро- ятно, именно по этой причине шина MCA не стала отраслевым стандартом.
    А в 1988 году консорциум из девяти компаний (в который IBM не вошла) из- готовил альтернативную 32-разрядную шину EISA (Extended Industry Standard

    Глава 21. Шины
    349
    Architecture — расширенная архитектура промышленного стандарта). В конце
    1990-х годов в IBM-совместимых компьютерах широко использовалась раз- работанная компанией Intel шина PCI (Peripheral Component Interconnect — взаимо связь периферийных компонентов).
    Чтобы понять, как работают различные компоненты компьютера, снова следует вернуться в середину 1970-х, когда все было очень просто. Предста- вим разработку плат для компьютера «Альтаир» или для нашего собственного компьютера на базе процессора 8080 либо 6800. Для него нам, вероятно, по- требуется собрать массив RAM, клавиатуру для ввода данных, экран для их вывода, а также некое устройство, позволяющее хранить информацию после выключения. Рассмотрим различные интерфейсы, которые можем создать для подключения перечисленных компонентов к нашему компьютеру.
    Как вы помните из главы 16, массив RAM предусматривает адресные входы, входы для ввода и вывода данных, а также сигнал, используемый для записи данных в память. От количества адресных входов зависит количество отдельных значений, которые можно сохранить в массиве RAM:
    Количество значений в массиве RAM = 2
    количество адресных входов
    Количество входов для ввода и вывода данных определяет разрядность сохраняемых значений.
    В середине 1970-х годов в домашних компьютерах часто применялась микросхема памяти 2102.
    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 5V
    Микросхема 2102 была создана по технологии МОП (металл — оксид — полупроводник), или MOS (metal-oxide-semiconductor), как и сами микропроцес- соры 8080 и 6800. Микросхемы МОП можно легко подключить к микросхемам
    ТТЛ; от последних они отличаются более высокой плотностью транзисторов.
    К тому же они работают не так быстро.

    350
    Код
    Если подсчитать количество адресных входов (A
    0
    –A
    9
    ) и обратить внима- ние, что здесь только один вход для ввода (DI) и один вход для вывода (DO) данных, вы поймете, что емкость этой микросхемы ограничена 1024 бит. В за- висимости от типа используемой микросхемы 2102 время доступа, то есть вре- мя, прошедшее между подачей адреса на адресные входы и выводом соответ- ствующих данных на выход DO, составляет от 350 до 1000 наносекунд. При считывании информации из памяти сигнал R/W (чтение/запись) обычно ра- вен 1. Когда вам требуется записать данные в микросхему, этот сигнал должен быть равен 0 на протяжении от 170 до 550 наносекунд, опять же в зависимо- сти от типа используемой микросхемы 2102.
    Особый интерес представляет сигнал CS (Chip Select — выбор микросхе- мы). Когда этот сигнал равен 1, микросхема не выбрана, значит, она не реа- гирует на сигнал R/W. Сигнал CS оказывает на микросхему и другое важное влияние, о котором расскажу чуть позже.
    Разумеется, если вы собираете массив памяти для 8-разрядного микро- процессора, необходимо организовать эту память так, чтобы в ней хранились
    8-битные, а не однобитные значения. Для сохранения целых байтов придется объединить по крайней мере восемь таких микросхем, подключив их адрес- ные входы, сигналы R/W и CS друг к другу. Результат можно изобразить сле- дующим образом.
    Адрес
    Ввод данных
    Вывод данных
    Addr
    DO
    DI
    CS
    R/W
    RAM
    1024 Кбайт × 8
    Это массив RAM 1024 × 8 емкостью один килобайт.
    С практической точки зрения эти микросхемы памяти нужно монтиро- вать на печатную плату. Сколько их может поместиться на одной плате? Если размещать их максимально близко, то на одну плату S-100 можно установить
    64 такие микросхемы, которые обеспечат восемь килобайт памяти.
    Попробуем обойтись памятью в четыре килобайта, используя только 32 чипа.
    Каждый набор микросхем, соединенных между собой для хранения целого байта
    (как показано выше), называется банком. Плата памяти емкостью четыре кило- байта содержит четыре банка, каждый из которых состоит из восьми микросхем.
    В таких 8-разрядных микропроцессорах, как 8080 и 6800, используют- ся 16-разрядные адреса, с помощью которых можно адресовать 64 килобай- та памяти. Когда вы подключаете плату памяти емкостью четыре килобайта,

    Глава 21. Шины
    351
    содержащую четыре банка микросхем, 16 адресных сигналов платы памяти выполняют следующие функции.
    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
    , напрямую подключены к микросхе- мам RAM. Адресные сигналы A
    10
    и A
    11
    позволяют выбрать, к какому из четы- рех банков осуществляется обращение. Адресные сигналы с A
    12
    по A
    15
    опре- деляют, какие адреса относятся к конкретной плате, то есть на какие адреса эта плата реагирует. Наша плата памяти емкостью четыре килобайта может занимать один из шестнадцати 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), представляющий собой набор крошечных переключателей (от двух до двенадцати) в корпусе с двухрядным расположением выводов, который вставляется в обычное гнез- до для интегральной микросхемы.
    Можно подключить его к четырем старшимадресным разрядам шины, используя схему компаратор.

    352
    Код
    A
    12
    A
    13
    A
    14
    A
    15
    Равно
    V
    Как вы помните, выход вентиля Искл-ИЛИ равен 1 только тогда, когда на его входы подаются разные значения. Выход вентиля Искл-ИЛИ — 0, если оба входных значения одинаковы.
    Например, замыкание переключателей, соответствующих линиям A
    13
    и A
    15
    , приведет к тому, что плата памяти будет реагировать на адреса с A000h по AFFFh. Когда значения адресных сигналов шины A
    12
    , A
    13
    , A
    14
    и A
    15
    равны значениям, установленным с помощью переключателей, выходы всех четырех вентилей Искл-ИЛИ равны 0, значит, выход вентиля ИЛИ-НЕ равен 1.
    Равно
    V
    A
    12
    A
    13
    A
    14
    A
    15

    Глава 21. Шины
    353
    Затем вы можете объединить этот сигнал «Равно» с дешифратором «2 на 4», чтобы генерировать сигналы CS для каждого из четырех банков памяти.
    CS для первого банка
    CS для четвертого банка
    CS для третьего банка
    CS для второго банка
    A
    10
    A
    11
    Равно
    Если сигнал A
    10
    равен 0, а A
    11
    — 1, значит, выбран третий банк.
    Если вы еще помните сложный процесс сборки массивов RAM из гла- вы 16, можете предположить, что нам нужно использовать восемь селекторов
    «4 на 1» для выбора правильных выходных сигналов от четырех банков памя- ти. Однако в данном случае они не потребуются, и вот почему.
    Как правило, выходные сигналы интегральных схем, совместимых с ТТЛ- чипами, принимают значения либо более 2,2 вольта (логическая единица), либо менее 0,4 вольта (логический ноль). Что произойдет, если вы попытаетесь со- единить эти выходные сигналы? Например, к чему приведет соединение выход- ного сигнала, равного 1, одной схемы и выходного сигнала, равного 0, другой?
    Определенно ответить на этот вопрос нельзя, поэтому выходы интегральных схем обычно не соединяются друг с другом.
    Выходной сигнал микросхемы 2102 известен как сигнал с тремя состоя-
    ниями. Помимо логических 0 и 1, для этого выходного сигнала предусмотре- но третье состояние, соответствующее отсутствию какого-либо сигнала, буд- то этот вывод микросхемы вообще ни к чему не подключен. Выходной сигнал микросхемы 2102 переходит в это третье состояние, когда вход CS равен 1. Это означает, что мы можем соединить соответствующие выходные сигналы всех четырех банков и использовать эти восемь комбинированных выходов в ка- честве восьми линий шины для ввода данных.
    Заостряю ваше внимание на выходном сигнале с тремя состояниями, по- тому что он играет важную роль в работе шины. Практически все платы, под- ключенные к шине, используют ее линии ввода данных. В любой момент толь- ко одна подключенная к шине плата может задействовать эти линии. При этом выходные сигналы остальных плат должны находиться в третьем состоянии.

    354
    Код
    Микросхема 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.
    Теперь вы знаете, как создавать платы памяти, однако не стоит заполнять памятью все адресное пространство микропроцессора. Нужно выделить неко- торую его часть для устройства вывода.
    Электронно-лучевая трубка (ЭЛТ) была наиболее распространенным устройством вывода для компьютеров. ЭЛТ, подключенная к компьютеру, обыч- но называется дисплеем, или монитором; электронный компонент, подающий дисплею сигнал, именуется видеоадаптером. Часто видеоадаптер занимает в компьютере отдельную видеокарту.
    Несмотря на то что двумерное изображение дисплея или телевизора мо- жет показаться сложным, на самом деле оно создается одним непрерывным лучом света, который быстро пробегает по экрану. Луч начинает свое движе- ние в верхнем левом углу и перемещается по экрану вправо, после чего воз- вращается к левому краю, чтобы начать следующую горизонтальную линию, известную как строка развертки. Перемещение луча справа налево к нача- лу очередной строки — обратный ход по горизонтали. Когда луч заканчива- ет последнюю строку, он возвращается из нижнего правого в верхний левый угол экрана (обратный ход по вертикали), и весь процесс начинается снова.

    Глава 21. Шины
    355
    По американским стандартам телевизионного вещания это должно происхо- дить 60 раз в секунду. Такая частота развертки достаточно высока, чтобы изображение не мерцало.
    Телевизор устроен сложнее из-за использования чересстрочной развертки.
    Один кадр — отдельное неподвижное изображение — разбивается на два поля из четных строк (первое) и нечетных (второе). Частота строчной развертки, или частота следования строк, составляет 15 750 герц. Если разделить это чис- ло на 60 герц, получим 262,5 строки в одном поле кадра. Целый кадр содержит в два раза больше, то есть 525 строк развертки *.
    Вне зависимости от вида развертки дисплея непрерывный луч света, по- рождающий видеоизображение, управляется одним непрерывным сигналом.
    Хотя аудио- и видеосигналы телевизионной программы объединяются при трансляции или передаче через систему кабельного телевидения, в итоге они разделяются. Видеосигнал, который я опишу, идентичен сигналу, подающему- ся на соответствующие входы и выходы видеомагнитофонов, камер и некото- рых телевизоров.
    В случае черно-белого телевидения этот видеосигнал достаточно прост и понятен. (Цвет все усложняет.) Шестьдесят раз в секунду в этот сигнал за- писывается импульс вертикальной синхронизации, который указывает на нача- ло поля.
    Этот импульс — подача нулевого напряжения (земля) на протяжении
    400 микросекунд. Импульс горизонтальной синхронизации указывает на начало каждой строки развертки: 15 750 раз в секунду в течение пяти микросекунд подается нулевое напряжение. Между импульсами горизонтальной синхрони- зации значение сигнала варьируется от 0,5 вольта (черный) до двух вольт (бе- лый), оттенки серого соответствуют значениям от 0,5 до 2 вольт **.
    Таким образом, изображение телевизора является отчасти цифровым, отчасти аналоговым. Это изображение разделено по вертикали на 525 строк, однако внутри каждой из строк развертки напряжение непрерывно меняется, что обусловливает вариации яркости. Однако напряжение не может изменять- ся произвольно. Существует предельная скорость, с которой телеэкран может реагировать на изменение сигнала. Этот показатель называется «пропускная способность».
    * Для американского стандарта NTSC. В стандарте SECAM, применяемом в России, используются
    625 строк, в стандарте PAL — 405. К слову, американский стандарт NTSC оказался весьма чувствительным к амплитудно-частотным искажениям сигнала, приводящим к искажениям цвета, за что получил шуточную расшифровку Never The Same Color («каждый раз другого цвета»). Прим. науч. ред.
    ** Кроме того, существует уровень «чернее черного» (ноль вольт), на котором передаются импульсы синхронизации. Прим. науч. ред.

    356
    Код
    Пропускная способность — чрезвычайно важная концепция в сфере свя- зи, поскольку определяет, какой объем информации можно передать по кон- кретному каналу. В случае телевизора пропускная способность — предельная скорость, с которой видеосигнал может измениться от уровня черного до уров- ня белого, а затем снова до уровня черного. По американским стандартам те- левизионного вещания полоса пропускания примерно равна 4,2 мегагерца *.
    Когда дисплей необходимо подключить к компьютеру, его неудобно пред- ставлять в виде гибрида аналогового и цифрового устройства. Его легче рас- сматривать как полностью цифровое устройство. С точки зрения компьютера видеоизображение удобнее отобразить как прямоугольную сетку с дискретны- ми точками, называемыми пикселами (pixel от picture element — «элемент изо- бражений»).
    Полоса пропускания видеодисплея ограничивает количество пикселов в горизонтальной строке развертки. Я определил полосу пропускания как ско- рость, с которой видеосигнал может измениться от уровня черного до уров- ня белого, а затем снова до уровня черного. Полоса пропускания телевизоров, равная 4,2 мегагерца, допускает создание двух пикселов 4,2 миллиона раз в се- кунду. Если разделить произведение 2 × 4 200 000 на 15 750 (частота строчной развертки), получим 533 пиксела в каждой строке. Однако примерно треть этих пикселов оказывается невидимой из-за их нахождения на дальних концах изображения или из-за обратного хода луча по горизонтали. Таким образом, каждая строка — это примерно 320 пикселов.
    Точно так же по вертикали не насчитывается 525 пикселов. Некоторые из них теряются в верхней и нижней части экрана и во время обратного хода луча по вертикали. Кроме того, не следует полагаться на чересстрочную раз- вертку при использовании телевизора в качестве дисплея. Таким образом, реальное количество пикселов по вертикали равно приблизительно двумстам.
    Итак, можно сказать, что разрешение примитивного видеоадаптера, под- ключенного к обычному телевизору, составляет 320 пикселов по горизонтали на 200 пикселов по вертикали, или 320 × 200.
    * Полоса пропускания и пропускная способность — это разные вещи. Первое — это полоса частот (ширина частотного спектра), в которой осуществляется передача сигнала, второе — это максимальная скорость передачи сигнала в битах в секунду. В России полоса пропускания аналогового телевидения составляет порядка шести мегагерц. Прим. науч. ред.

    Глава 21. Шины
    357
    Чтобы определить общее количество пикселов в этой сетке, можете подсчи- тать их или просто перемножить числа 320 и 200, получив 64 тысячи пикселов.
    В зависимости от того, как вы сконфигурировали видеоадаптер (о чем расска- жу чуть позже), каждый пиксел может быть либо черным, либо белым (черно- белое изображение), либо обладать определенным цветом (цветное изображение).
    Предположим, нам нужно отобразить на этом дисплее некоторый текст.
    Сколько текста может на нем уместиться?
    Очевидно, все зависит от того, сколько пикселов используется для отобра- жения каждого текстового символа. Далее представлен один из возможных под- ходов, при котором для каждого символа используется сетка 8 × 8 (64 пиксела).

    358
    Код
    Эти символы соответствуют кодам ASCII с 20h по 7Fh. Коды ASCII с 00h до 1Fh отведены под неотображаемые символы.
    В приведенном примере каждый символ соответствует не только 7-битно- му ASCII-коду, но и 64 битам на экране, определяющим его внешний вид. Эти
    64 бита тоже можно рассматривать в качестве своеобразного кода.
    При таком способе представления символов вы можете уместить на видео- дисплее с разрешением 320 × 200 пикселов 25 строк по 40 символов. Этого до- статочно, например, для короткого стихотворения Эми Лоуэлл.
    Видеоадаптер потребляет некоторое количество оперативной памяти для хранения содержимого дисплея, а микропроцессор должен иметь возможность записывать данные в эту память для изменения изображения на этом дисплее.
    Удобнее всего, когда память RAM является частью общего адресного простран- ства процессора. Сколько же оперативной памяти потребуется видеоадаптеру, который я описываю?
    Это непростой вопрос! Значение может варьироваться от 1 до 192 килобайт!
    Сначала оценим нижний предел. Один из способов уменьшения требо- ваний к памяти заключается в том, чтобы ограничить возможности адапте- ра только отображением текста. Мы уже выяснили, что можем отобразить
    25 строк по 40 символов, или 1000 символов. В памяти RAM на видеоплате должны храниться только 7-битные ASCII-коды соответствующих символов.
    Тысяча 7-битных значений — приблизительно 1024 байт, или один килобайт.
    Такая плата видеоадаптера также должна оснащаться генератором сим-
    волов, содержащим точечные шаблоны всех символов ASCII — вроде тех, ко- торые были показаны на одном из предыдущих изображений. Как правило,

    Глава 21. Шины
    359
    генератор символов — это постоянное запоминающее устройство, или ПЗУ
    (Read-Only Memory, ROM), интегральная схема, изготовленная таким обра- зом, что в ответ на обращение к конкретному адресу всегда выдаются одни и те же данные. В отличие от памяти RAM, ПЗУ не предусматривает никаких сигналов для ввода данных.
    Память ПЗУ можно считать схемой, преобразующей один код в другой.
    ПЗУ, в котором хранятся точечные шаблоны (8 × 8 пикселов) для 128 симво- лов ASCII, может предусматривать семь адресных входов (для ASCII-кодов) и 64 выхода для данных. Таким образом, ПЗУ преобразует 7-битный ASCII-код в 64-битный, определяющий внешний вид символа. Однако наличие 64 выхо- дов сделали бы чип слишком громоздким! Гораздо удобнее использовать де- сять адресных входов и восемь выходов. Семь адресных сигналов указывают на конкретный ASCII-символ. (Эти семь битов адреса подаются с выходов RAM на видеоплате.) Другие три адресных сигнала определяют строку. Например, биты адреса 000 соответствуют верхней строке точечного шаблона, а биты 111 — нижней строке, восемь выходных битов — восьми пикселам каждой строки.
    Предположим, что ASCII-код равен 41h. Этот код сопоставим с заглавной буквой A. Ее точечный шаблон состоит из восьми строк по восемь бит. В следую- щей таблице приведены 10-битные адреса (пробел отделяет ASCII-код от кода строки) и сигналы на выходах для данных, соответствующие заглавной букве A.
    1   ...   20   21   22   23   24   25   26   27   28


    написать администратору сайта