Книга Код. Тайный язык информатики, страница 83. Автор книги Чарльз Петцольд

Разделитель для чтения книг в онлайн библиотеке

Онлайн книга «Код. Тайный язык информатики»

Cтраница 83

В период разработки системы ASCII потребностям некоторых других стран уделяли внимание, хотя нелатинские алфавиты при этом особо не учитывались. Согласно опубликованному стандарту ASCII, десять его кодов (40h, 5Bh, 5Ch, 5Dh, 5Eh, 60h, 7Bh, 7Ch, 7Dh и 7Eh) можно переопределить в соответствии с национальными потребностями. Кроме того, при необходимости символ решетки (#) можно заменить символом британского фунта (£), а символ доллара ($) — обобщенным для валюты символом (¤). Очевидно, что замена символов имеет смысл только тогда, когда все пользователи конкретного текстового документа, содержащего эти переопределенные коды, знают об этом изменении.

Поскольку многие компьютерные системы хранят символы в виде 8-битных значений, можно расширить их набор со 128 до 256. В таком наборе коды с 00h по 7Fh определяются так же, как и в обычной системе ASCII, а коды с 80h по FFh могут представлять что-то совершенно иное. Этот метод использовался для определения дополнительных кодов для букв с диакритическими значками и нелатинских алфавитов. В качестве примера приведу набор кодов для букв кириллицы. В представленной таблице старшая тетрада шестнадцатеричного кода символа указана в верхней строке, а младшая — в левом столбце.

Код. Тайный язык информатики

Символом кода 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 — два мегабайта. Однако это небольшая плата за универсальную и однозначную систему кодирования.

Глава 21
Шины

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

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

адресные сигналы — сигналы, генерируемые микропроцессором и используемые в основном для адресации оперативной памяти; они также применяются для обращения к другим подключенным к компьютеру устройствам;

сигналы вывода данных — эти сигналы тоже генерируются микропроцессором и используются для записи данных в оперативную память или их передачи в другие устройства; будьте осторожны с терминами «ввод» и «вывод»: сигнал вывода данных микропроцессора — сигнал ввода данных для оперативной памяти и других устройств;

сигналы ввода данных — сигналы, которые генерируются другими компонентами компьютера и считываются микропроцессором; сигналы ввода данных чаще всего возникают на выходах RAM, благодаря чему микропроцессор считывает содержимое памяти, однако и другие компоненты также генерируют сигналы ввода данных для микропроцессора;

управляющие сигналы — разнообразные сигналы, которые обычно соответствуют управляющим сигналам конкретного микропроцессора, на базе которого построен компьютер; управляющие сигналы могут генерироваться в микропроцессоре или в других устройствах, которым требуется передать данные в микропроцессор; пример управляющего сигнала — сигнал, с помощью которого микропроцессор указывает на необходимость записи некоторых данных в конкретную ячейку памяти.

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

Одной из первых популярных шин для ПК была модель S-100, представленная в 1975 году в качестве компонента первого персонального компьютера «Альтаир» компании MITS. Несмотря на то что эта шина разрабатывалась для микропроцессора 8080, позднее она была адаптирована под другие процессоры, такие как 6800. Размер платы S-100 составляет 13,4 × 25,4 сантиметра. Одна из сторон печатной платы вставляется в разъем, который имеет 100 контактов (отсюда и название).

Вход
Поиск по сайту
Ищем:
Календарь
Навигация