
Информатика
.pdfряде регистра состояния.
Все порты являются 16-разрядными, но реальная информация всегда располагается в их младшем байте. Содержимое битов с 8-го по 15-й в выходные порты формально заносится, но никакого влияния на устройство вывода не оказывает.
Каждому порту соответствует свой номер (адрес). В «Е97» из шестнадцати возможных используются следующие порты:
0- порт состояния клавиатуры (только чтение);
1- порт данных клавиатуры (только чтение);
2- порт состояния дисплея (только чтение);
3- порт данных дисплея (только запись).
Стандартный алгоритм обмена с использованием портов ввода-вывода выглядит следующим образом. Считывается порт состояния и проверяется значение знакового бита его младшего банта. Эта операция повторяется до тех пор, пока бит готовности не будет установлен внешним устройством в единицу, что является сигналом процессору к началу обмена. Только после него процессор может записать информацию в порт данных, если речь идет об устройстве вывода, или считать их из порта, если это порт ввода.
Вот как может выглядеть правильная программа вывода одиночного символа из R0 на дисплей (именно так она реализована в ПЗУ «Е97»):
0А21 порт2=>R1
Е401 сравнить с 0 R1b
2DFA если ≥ 0, PC - 6 (к повторению проверки) 0В03 R0 => порт 3
Первые три команды считывают и проверяют бит готовности в порту 2, а последняя команда обеспечивает собственно вывод требуемого символа на дисплей.
Обратите внимание на команду с «короткой константой» 0, которая обязательно должна проверять знаковый разряд младшего байта, а не всего слова в целом.
Мы подробно рассмотрели программирование процедуры вывода символа; ввод осуществляется совершенно аналогично.
4.5. ПРИМЕРЫ ПРОГРАММ
Пример 1. Вычислить полную поверхность параллелепипеда со сторонами А, В и С. Считать, что исходные значения находятся в ячейках ОЗУ. Результат также поместить в ячейку памяти.
Решение. Полная поверхность параллелепипеда вычисляется по формуле
S=2*(A*B+A*C+B*C)
Для упрощения программы выражение удобно представить в виде S = 2 * [А * (В + С) + В *
С]
Программа 134
0000 |
01ЕО |
(22) => R0 |
В => R0 |
||
0002 |
0022 |
|
|
|
|
0004 |
0101 |
R0 |
=> Rl |
В => Rl |
|
0006 |
02Е0 |
R0 |
+ (24) => R0 |
В + С |
|
0008 |
0024 |
|
|
|
|
000А |
05Е0 |
R0 |
* (20) => R0 |
A * (В + С) |
|
000С |
0020 |
|
|
|
|
000Е |
05Е1 |
Rl * (24) => Rl |
В * С |
||
0010 |
0024 |
|
|
|
|
431
0012 |
0210 |
R0 + Rl => R0 |
A * (В + С) + В * С |
0014 |
0200 |
R0 + R0 => R0 |
2 * [A * (В + С) + В * С] |
0016 |
010Е |
R0 => (26) результат => S |
|
0018 |
0026 |
|
|
001A |
0F00 |
останов |
|
………. |
|
|
|
0020 |
0002 |
А |
|
0022 |
0003 |
В |
|
0024 |
0004 |
С |
|
0026 |
0034 |
S |
|
Примечание. Не забывайте, что ответ 34 в памяти ЭВМ представлен в шестнадцатеричной системе. В десятичной, как и положено, получится 52.
Пример 2. Организовать ввод латинских букв таким образом: программа принимает латинскую букву и обрабатывает ее так, чтобы она всегда была заглавной.
Решение. Главная «хитрость» решения состоит в том, чтобы понять, чем отличаются заглавные буквы от строчных. Для этого из таблицы ASCII, приведенной в главе 1, выберем наугад одну из букв и выпишем в двоичном виде коды заглавного и строчного символов. Например, для буквы R получим
R 0101 0010 r 0111 0010
Повторив аналогичные действия еще для нескольких букв, сделаем вывод, что коды за-
главных ч строчных букв отличаются единственным битом - пятым, если считать младший бит за нулевой. Запомним этот факт, поскольку он справедлив для любого современного компьютера.
Итак, для нашей задачи требуется сохранить все биты, кроме пятого, значит потребуется выполнить логическую операцию И с константой
1101 1111 =DF,
после чего любой код «потеряет» ненужный нам бит, сохраняя все остальные.
Еще одной особенностью решения является активное использование подпрограмм из ПЗУ. Поскольку при вызове подпрограмм обязательно используется стековая память, то должен быть корректно определен указатель стека SP; программа начинает работу с установки указателя стека.
Программа 135
0000 |
0E6D |
26 => SP |
установка указателя стека |
|
0002 |
0026 |
|
|
|
0004 |
9C0D |
вызов п/п 40FE |
ввод символа (без эхо-печати!) |
|
0006 |
40FE |
|
|
|
0008 |
0101 |
R0 => Rl |
сохранить введенный символ |
|
000A |
07D0 |
DF and R0 => R0 |
сделать букву заглавной |
|
000C |
00DF |
|
|
|
000E |
9C0D |
вызов п/п 4088 |
вывести результат |
|
0010 |
4088 |
|
|
|
0012 |
0F00 |
останов |
|
|
Пример 3. Найти максимум из трех чисел, находящихся в регистрах Rl, R2 и R3. Переписать наибольшее из них в R0.
Решение. Сначала максимальное из чисел в Rl и R2 занесем в R0. После этого, если R3 окажется больше R0, «исправим положение», переписав в качестве ответа R3.
|
Программа 136 |
|
|
0000 |
0412 |
сравнить R2 с Rl |
|
0002 |
3D04 |
если < 0, то РС=РС+4 |
к записи Rl (к 0008) |
0004 |
0120 |
R2 => R0 |
запомнить R2 |
432
0006 |
1D02 |
РС=РС+2 |
обход второй ветви (к 000A) |
0008 |
0110 |
Rl => R0 |
запомнить Rl |
000A |
0403 |
сравнить R3 с R0 |
|
000C |
3D02 |
если < 0, то РC=РС+2 |
к выходу (к 0010) |
000E |
0130 |
R3 => R0 |
запомнить R3 |
0010 |
0F00 |
останов |
|
Пример 4. Найти сумму первых 100 натуральных чисел.
Говорят, такую задачу некогда решил в уме юный Гаусс, когда учился в школе. Мы будем решать задачу «в лоб», т.е. честно суммировть с помощью компьютера. Решение. Поместим в R3 обрабатываемое в данный момент число N (меняется от 1 до 100), а в R0 - результирующую сумму S. Зададим им начальные значения и будем циклически добавлять к S текущее значение N. Признаком окончания цикла будет ситуация, когда N > 100.
Программа 137
0000 |
2113 |
1 => R3 |
1 |
=> N |
|
0002 |
2100 |
0 => R0 |
0 |
=> S |
|
0С04 |
0230 |
R0 |
+ R3 => R0 |
|
S = S + N |
0006 |
2213 |
R3 |
+ 1 => R3 |
N=N+1 |
|
0008 |
04D3 |
сравнить R3 с 100 |
|
сравнить N и 100 |
|
000A |
0064 |
|
|
|
|
000C |
6DF6 |
если ≤0, то PC=PC+F6 |
если N≤100, |
||
|
|
к повторению (000E + FFF6 = 0004) |
|||
000E |
0F00 |
останов |
|
|
Пример 5. Вывести на экран весь латинский алфавит от А до Z. Решение. Разместим в RO выводимый латинский символ, первоначальное значение которого будет «А» (код 65 = 41h). Вывод будем осуществлять обращением к соответствующей подпрограмме ПЗУ. Для перехода к следующему символу алфавита достаточно прибавить 1 к коду текущего символа (очень похоже на переход к следующему числу в предыдущем примере). Остается только проверить, не выходит ли вновь полученный символ за латинский алфавит, т.е. не превышает ли его код 5Ah («Z»), и, если ответ будет «да» (превышает), то закончить процедуру.
Программа 138 |
|
|
|
0000 |
0E6D |
26 => SP |
установка указателя стека |
0002 |
0026 |
|
|
0004 |
01D0 |
41 => R0 |
код первого символа |
0006 |
0041 |
(«А») |
|
0008 |
9C0D |
вызов п/п 4088 |
вывод символа |
000А |
4088 |
|
|
000С |
2210 |
R0 + 1 => R0 |
следующий символ |
000Е |
04D0 |
сравнить R0 с 5А его код ≤ «Z»? |
|
0010 |
005А |
(«Z») |
|
0012 |
6DF4 |
если ≤0, то PC=PC+F4 |
к повторению (0008) |
0014 |
0F00 |
останов |
|
Пример 6. В памяти, начиная с адреса 001А, хранится некоторый текст, длина которого равна 15 (Fh) байтам Определить номер первого, совпадающего с образцом, символа в тексте. При отсутствии требуемого символа результат равен 0 (это практически полный аналог функции POS в Паскале).
Решение Поместим в R1 счетчик символов, в R2 - адрес текущего символа. Затем будем сравнивать каждый символ текста с образцом в R0 и в случае совпадения прервем выполнение цикла. При несовпадении будем продолжать цикл до теx пор, пока счетчик не превысит Fh, т.е. не
433

станет равным 10h Если цикл завершится по выполнении этого условия, то символ-образец найти не удалось и в качестве ответа в R1 следует занести 0.
Программа 139
0000 |
|
2111 |
1 => R1 |
|
номер символа |
|||||
0002 |
|
01D2 |
1А => R2 |
|
адрес начала текста |
|||||
0004 |
|
001А |
|
|
|
|
|
|
|
|
0006 |
|
С460 |
сравнить R0b с (R2)b |
сравнить символ с образцом |
||||||
0008 |
|
5D0C |
если = 0, то РC=РС+2 |
выход при совпадении (к 0016) |
||||||
000А |
2211 |
R1 + 1 => R1 |
|
увеличить номер символа |
||||||
000С |
2212 |
R2 + 1 => R2 |
|
вычислить следующий адрес |
||||||
000Е |
04D1 |
сравнить R1 с 10 |
текст не закончился? |
|||||||
0010 |
|
0010 |
|
|
|
|
|
|
|
|
0012 |
|
4DF2 |
если ≠ 0, то PC=PC+F4 |
нет - к повторению (к 0006) |
||||||
0014 |
|
2101 |
0 => R1 |
|
при отсутствии символа - 0 |
|||||
0016 |
|
0F00 |
останов |
|
|
|
|
|
||
0018 |
|
0000 |
|
|
|
|
|
|
|
|
001А |
4854 |
«ТН» |
текст |
|
|
|
|
|||
001С |
5349 |
«IS» |
«THIS IS MY TEXT» |
|||||||
001E |
4920 |
«I» |
|
|
|
|
|
|||
0020 |
|
2053 |
«S » |
|
|
|
|
|
||
0022 |
|
594D |
«MY» |
|
|
|
|
|
||
0024 |
|
5420 |
«Т» |
|
|
|
|
|
||
0026 |
|
5845 |
«EX» |
|
|
|
|
|
||
0028 |
|
0054 |
«Т» |
|
|
|
|
|
||
|
|
4.6. НЕКОТОРЫЕ СПРАВОЧНЫЕ ДАННЫЕ ПО Е-97 |
||||||||
|
|
|
А. Система команд процессора |
|||||||
|
|
|
|
|
|
|
|
|
|
|
МОД |
КОП |
ОП1 |
|
|
ОП 2 |
|
Пояснения |
|
||
|
|
|
|
|
|
|
|
|
|
|
Х |
0 |
X |
|
|
X |
Нет операции |
|
|||
Х |
1 |
X |
|
|
X |
оп l => oп 2 |
|
|||
Х |
2 |
X |
|
|
X |
oп 2 + oп 1 => oп 2 |
|
|||
Х |
3 |
X |
|
|
X |
oп 2 – oп l =>oп 2 |
|
|||
Х |
4 |
X |
|
|
X |
oп 2 + oп 1 (сравнить) |
|
|||
Х |
5 |
X |
|
|
X |
oп 2 * oп l => oп 2 |
|
|||
Х |
6 |
X |
|
|
X |
oп 2/oп l => oп 2 |
|
|||
X |
7 |
Х |
|
|
Х |
оп 2 AND oп 1 => oп 2 |
|
|||
X |
8 |
Х |
|
|
Х |
oп 2 OR oп l => оп 2 |
|
|||
X |
9 |
Х |
|
|
Х |
oп 2 XOR oп l => oп 2 |
|
|||
X |
А |
Х |
|
|
Х |
порт! => oп 2 |
|
|||
X |
В |
Х |
|
|
Х |
oп 1 => порт 2 |
|
|||
X |
С |
Х |
|
|
Х |
Переход по адресу |
|
|||
X |
D |
X |
|
|
Х |
Переход по смещению |
|
|||
X |
Е |
* |
|
|
Х |
(Одноадресные операции) |
|
|||
X |
F |
X |
|
|
Х |
Останов |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
МОД |
КОП |
|
ОП1 |
|
Пояснения |
|
||
|
|
|
|
|
|
|
|
|
||
|
|
Х |
Е1 |
|
Х |
|
NOT oп l |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
434

|
|
|
Х |
|
|
|
Е2 |
|
|
|
Х |
|
оп 1 => стек |
|
|
|
|
|
Х |
|
|
|
ЕЗ |
|
|
|
Х |
|
стек => oп l |
|
|
|
|
|
Х |
|
|
|
Е4 |
|
|
|
Х |
|
SP + oп l => SP |
|
|
|
|
|
Х |
|
|
|
Е5 |
|
|
|
Х |
|
SP – oп 1 => SP |
|
|
|
|
|
Х |
|
|
|
Е6 |
|
|
|
Х |
|
Oп 1 => SP |
|
|
|
|
|
Х |
|
|
|
Е7 |
|
|
|
Х |
|
SP => oп l |
|
|
|
|
|
Х |
|
|
|
Е8 |
|
|
0 |
|
PS => стек |
|
||
|
|
|
Х |
|
|
|
Е9 |
|
|
0 |
|
стек => РS |
|
||
|
|
|
Х |
|
|
|
ЕА |
|
|
|
X |
|
Сдвиг влево oп l |
|
|
|
|
|
Х |
|
|
|
ЕВ |
|
|
|
X |
|
Сдвиг вправо oп l |
|
|
|
|
|
Х |
|
|
|
ЕС |
|
|
|
X |
|
Арифметический сдвиг |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
вправо oп l |
|
|
|
|
|
Б. Двоичные коды модификатора МОД для переходов |
||||||||||||
0000 |
- |
возврат из подпрограммы |
|
|
|
|
|
|
|
|
|||||
0001 |
- |
безусловный переход |
|
|
|
|
|
|
|
|
|||||
0010 |
- |
N=0 (>=0) |
|
|
|
|
|
|
|
|
|
|
|
|
|
0011 |
- |
N=l (<0) |
|
|
|
|
|
|
|
|
|
|
|
|
|
0100 |
- |
Z=0 (<>0) |
|
|
|
|
|
|
|
|
|
|
|
|
|
0101 |
- |
Z=l (=0) |
|
|
|
|
|
|
|
|
|
|
|
|
|
0110 |
- |
N=1 or Z=l (<=0) |
|
|
|
|
|
|
|
|
|
||||
0111 |
- |
N=0 and Z=0 (>0) |
|
|
|
|
|
|
|
|
|
||||
1001 |
- |
вызов подпрограммы. |
|
|
|
|
|
|
|
|
|||||
|
|
|
|
В. Важные кочанды с «короткой константой» |
|||||||||||
|
XX 10 0001 0000 ХХХХ |
- |
очистить oп l |
|
|
|
|||||||||
|
ХХ 10 0010 0001 ХХХХ |
- |
+1 в оп 1 |
|
|
|
|||||||||
или |
XX 11 0010 0001 ХХХХ |
- |
**** |
|
|
|
|
|
|
||||||
ХХ 10 0011 0001 ХХХХ |
- |
-1 из oп l |
|
|
|
||||||||||
|
|
|
|
||||||||||||
|
XX 10 0100 0000 ХХХХ |
- |
сравнить 0 с oп 1 |
|
|
|
|||||||||
|
XX 11 0101 0001 ХХХХ |
- |
*(-1) оп1 |
|
|
|
|||||||||
|
ХХ 10 0111 0001 ХХХХ |
- |
oп l MOD 2 = => oп l |
|
|
|
|||||||||
|
|
|
|
|
|
|
Г. Кодирование операндов |
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
0 |
0000 |
|
R0 |
|
|
|
1000 |
|
|
резерв |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
1 |
01 |
|
|
R1 |
|
|
|
01 |
|
|
резерв |
|||
|
2 |
10 |
|
|
R2 |
|
|
|
10 |
|
|
резерв |
|||
|
3 |
11 |
|
|
R3 |
|
|
|
11 |
|
|
резерв |
|||
|
4 |
0100 |
|
(R0) |
|
|
|
|
1100 |
|
|
резерв |
|||
|
5 |
01 |
|
|
(R1) |
|
|
|
|
01 |
|
|
константа |
||
|
6 |
10 |
|
|
(R2) |
|
|
|
|
10 |
|
|
адрес ОЗУ |
||
|
7 |
11 |
|
|
(R3) |
|
|
|
|
11 |
|
|
резерв |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Контрольные вопросы и задания
1.Назовите основные функциональные устройства учебного компьютера «Е97» и охарактеризуйте их назначение.
2.Какие виды памяти существуют в «Е97» и как они адресуются?
435
3.Сопоставьте адресацию к байтам и к словам. Какие вам удалось заметить различия?
4.В ОЗУ, начиная с адреса 300, хранятся следующие байты: 00, 01, 02, 03. Какое слово будет прочитано по адресу 302?
5.В ОЗУ начиная с адреса 300 хранятся слова 0102 и 5301. Совпадают ли находящиеся в адресах 301 и 302 байты?
6.Что такое BIOS и какова его роль в современном компьютере? Знаете ли вы название фирмы, написавшей BIOS для вашего компьютера?
7.Какие значения получат управляющие признаки, если результат операции получится равным 1?0?
8.Какие внутренние регистры содержит учебный процессор «Е97» и каково их назначе-
ние?
9.Из каких частей состоит полная команда «Е97»?
10.Какие форматы может иметь команда «Е97»? Приведите примеры команд на каждый из
форматов.
11.Напишите программы вычисления нескольких арифметических выражений.
12.Чем различаются переходы с кодами С и D и как они работают?
13.Если рассмотренную в одном из примеров команду 1D06 поместить в ячейку с адресом не 42, а 4Е, то какая команда будет выполняться следующей?
14.Каково должно быть смещение в команде перехода к адресу 56, если сама команда имеет адрес 4Е? 5Е?
15.Какие значения может принимать модификатор в командах перехода и что они обозна-
чают?
16.Напишите программу, которая переписывает в R3 наименьшее из чисел, хранящихся в регистрах R1 и R2.
17.Придумайте задачи, при программировании которых может быть полезно использование процедур или функций.
18.Как процессор обращается к подпрограмме и выходит из нее обратно?
19.Какие операции можно делать с указателем стека?
20.Чем отличаются сдвиги с кодами операций ЕВ и ЕС? Приведите пример, когда эти различия незаметны.
21.Какие методы адресации реализованы в «Е97»? Приведите по два-три примера на каждый из них.
22.Как кодируются следующие операнды: R2? (R3)? константа 345? ячейка 66?
23.Объясните, как будет выполняться команда 0572 и какие значения требуется знать, чтобы предсказать ее результат.
24.Чем различается выполнение команд 0301 и 0345?
25.Изменится ли значение регистра R0 при выполнении команды 0Е14?
26.Сколько слов занимает команда (40) - (50) Ю (40) и как она кодируется?
27.Как записывается команда, умножающая на 3 содержимое ячейки 50?
28.Какой командой можно присвоить регистру R2 некоторое значение?-
29.Что такое «короткая константа» и когда она бывает полезна?
30.Для команд 25АЗ и 3653 напишите эквивалентные, используя метод адресации констант по счетчику команд.
31.Почему среди списка полезных команд с «короткой константой» нет умножения на 2?
32.Подробно объясните с точностью до бита кодировку команды С470. ,,
33.Что такое порт ввода-вывода?
34.Как называются порты, имеющиеся у каждого из внешних устройств «Е97»?
35.Перечислите все известные вам порты ввода-вывода, реализованные в учебном компьютере «Е97». и их номера.
36.Каков стандартный алгоритм обмена процессора с внешним устройством? Какую роль играет в нем бит готовности?
37.По аналогии с приведенной в тексте программой вывода символа на дисплей, напишите самостоятельно программу ввода символа с клавиатуры. Не забудьте организовать при этом «эхопечать», т.е. вывести принятый с клавиатуры символ.
436
§ 5. ВНЕШНИЕ УСТРОЙСТВА ЭВМ: ФИЗИЧЕСКИЕ ПРИНЦИПЫ И ХАРАКТЕРИСТИКИ
Внешние (или, по другому, периферийные) устройства ЭВМ прошли огромный путь в своем развитии. Существуй машина времени, инженеры-конструкторы и пользователи ЭВМ 50-х годов, увидев принтер, вряд ли поверили бы, что этот миниатюрный настольный аппарат может делать гораздо больше, чем его предок ростом с человека - АЦПУ (авгоматическое цифровое печатающее устройство), и вообще не поняли бы, чем занимается сканер или «мышь». Возможности компьютера в значительной степени определяются номенклатурой и производительностью внешних устройств.
5.1. ВНЕШНИЕ ЗАПОМИНАЮЩИЕ УСТРОЙСТВА
Внешние запоминающие устройства (ВЗУ) обеспечивают долговременное хранение программ и данных. Наиболее распространены следующие типы ВЗУ: накопители на магнитных дисках (НМД); их разновидности - накопители на гибких магнитных дисках (НГМД) и накопители на жестких магнитных дисках (НЖМД); накопители на магнитных лентах (НМЛ); накопители на оптических дисках (НОД).
Соответственно, физическими носителями информации, с которыми работают эти устройства, являются магнитные диски (МД), магнитные ленты (МЛ) и оптические диски (ОД).
Принцип записи информации на магнитных носителях основан на изменении намагниченности отдельных участков магнитного слоя носителя (диска, ленты). Запись осуществляется с помощью магнитной головки: электрические сигналы, возникающие под управлением электронного блока, возбуждают в ней магнитное поле, воздействующее на носитель и оставляющее намагниченные участки на заранее размеченных дорожках. При считывании информации эти намагниченные участки индуцируют в магнитной головке слабые токи, которые превращаются в двоичный код, соответствующий ранее записанному.
Накопители на магнитных дисках включают в себя ряд систем:
•электромеханический привод, обеспечивающий вращение диска;
•блок магнитных головок для чтения-записи;
•системы установки (позиционирования) магнитных головок в нужное для записи или чтения положение;
•электронный блок управления и кодирования сигналов.
НГМД - устройство со сменными дисками (их часто называют «дискетами»). Несмотря на относительно невысокую информационную емкость дискеты, НГМД продолжают играть важную роль в качестве ВЗУ, поскольку поддерживают ряд функций, которые не обеспечивают другие накопители. Среди них отметим
•возможность транспортировки информации на любые расстояния;
•обеспечение конфиденциальности информации (дискету можно положить в карман сразу после окончания сеанса работы).
Дискета - гибкий тонкий пластиковый диск с нанесенным (чаще всего на обе стороны) магнитным покрытием, заключенный в достаточно/тверды и - картонный или пластиковый - конверт для предохранения от механических повреждений. Информация на диск наносится вдоль концентрических окружностей - дорожек. Каждая дорожка разбита на несколько секторов (обычно 9 или 18) - минимально возможных адресуемых участков. Стандартная емкость сектора - 512 байт. На двухсторонней дискете две одинаковые дорожки по обе стороны диска образуют цилиндр. Процедура разметки нового диска - нанесение секторов и дорожек -называется форматированием. Иногда приходится прибегать к переформатированию диска, на котором уже есть информация; последняя в таком случае практически обречена на уничтожение.
Тип дискеты обычно указывается на ее конверте: DS (double side) - двухсторонняя;
DD (double density) - двойной плотности;
HD (high density) - высокой плотности.
Возможны сочетания типа DS/DD, DS/HD и др.
Стандартные размеры (диаметры) дискет 133 мм (5,25 дюйма; постепенно выходят из экс-
437
плуатации) и 89 мм (3,5 дюйма). Появились, но пока не получили широкого распространения, дискеты диаметром 51 мм.
Важнейшая, с точки зрения пользователя, характеристика дискеты - информационная емкость. Чаще всего она находится в диапазоне от одного до полутора мегабайт, хотя созданы дискеты с емкостью до 10 Мбайт. Специальные дискеты для резервного копирования (так называемые Zip-диски, для работы с которыми нужны особые дисководы) имеют емкость 100 Мбайт и более. Другие важнейшие характеристики - скорость доступа к определенному участку информации и скорость записи или считывания информации - определяются не столько самой дискетой, сколько возможностями НГМД. Доступ к информации осуществляется за время в диапазоне от 0,1 с до 1 с (что очень велико по сравнению с другими типами дисководов), скорость чтения/записи порядка 50 кбайт/с, что по современным представлениям весьма немного.
Жесткий диск сделан из сплава на основе алюминия и также покрыт магнитным слоем. Он помещен в неразборный корпус, встроенный в системный блок компьютера. По
всем профессиональным характеристикам жесткие диски (и соответствующие накопители) значительно превосходят гибкие: емкость от 20 Мбайт до 10 Гбайт (реально диски с емкостью меньшей, чем 1 Гбайт, давно не выпускаются), время доступа к конкретной записи в диапазоне от 1 до 100 миллисекунд (мс), скорость чтения/записи порядка 1 Мбайта/с. Скорость вращения дисков велика, обычно 3600 об/мин, что и обеспечивает относительно короткое время доступа. Однако, жесткий диск не предназначен для транспортировки информации, и это не позволило накопителям на жестких дисках вытеснить НГМД.
Первые накопители на оптических дисках появились в начале 70-х годов, но широкое распространение получили значительно позже. Существует несколько разновидностей оптических дисков, предназначенных для устройств, допускающих только чтение (CD-ROM, т.е. Compact Disk Reed Only Memory - компакт-диск только для чтения), для устройств, допускающих хотя бы однократную запись информации на рабочем месте пользователя и для устройств, позволяющих, подобно накопителям на магнитных дисках, многократную перезапись информации. CD-ROM диск, запись на который производится один раз при его создании и не может быть изменена, представляет собой прозрачную поликарбонатную (вид стекла) пластинку, одна сторона которой покрыта тончайшей алюминиевой пленкой, играющей роль зеркального отражателя, поверх которой нанесен защитный слой лака. Информация на ней представляется подобно тому, как на старых граммофонных пластинках - чередованием углублений и пиков, однако не в аналоговом, а в цифровом (двоичном) коде. Этот рельеф создается при производстве механическим путем (контактом с твердой пластинкой - матрицей). Информация наносится вдоль тончайших дорожек (радиальная плотность записи более 6000 дорожек/см, что в несколько десятков раз больше, чем для гибкого диска). Считывание информации осуществляется путем сканирования дорожек лазерным лучом, который по-разному отражается от углублений и пиков (по этому отражению восстанавливается записанный двоичный код). Вдоль дорожек оптического диска со скоростью 200 - 500 раз в минуту пробегает лазерный луч. При создании дисков, позволяющих вести многократную перезапись, доминирует магнито-оптический принцип (CD-МО диски). В основу положен следующий физический принцип: коэффициент отражения лазерного луча от по-разному намагниченных участков диска с особым образом нанесенным магнитным покрытием различен. Таким образом запись на МО-диски магнитная, а считывание - оптическое (лазерным лучом).
Профессиональные характеристики оптических дисков, в общих чертах таковы: емкость записи и скорость доступа к информации того же порядка, что у жестких дисков. По надежности хранения информации оптические диски в настоящее время не имеют себе равных.
Все вместе взятое и определяет место НОД в современном мире информационных технологий: от очень важных, но все-таки факультативных, устройств они становятся обязательной принадлежностью компьютеров. По мере снижения стоимости оборудования CD-МО диски могут вытеснить гибкие магнитные диски, так как, обладая значительно превосходящими профессиональными характеристиками, обеспечивают все функции ГМД. Заметим, что ситуация в .этой области меняется чрезвычайно быстро.
Накопители на магнитных лентах имели огромное значение для ЭВМ первых поколений. Собственно, поначалу кроме них надежных накопителей информации большой емкости вообще не было. По мере развития ЭВМ НМЛ оттеснялись на периферию в списке ВЗУ, но свое устойчивое место занимают по сей день (хотя пользователям персональных компьютеров это не
438
очень заметно). Ясно, что по скорости доступа к информации НМЛ всегда будут многократно проигрывать дисковым накопителям - ведь для того, чтобы считать информацию на некотором месте ленты, необходимо отмотать предшествующий ее кусок с начала. Однако по-прежнему на лентах хранят большие объемы информации, которая не является оперативной, но требует очень надежного хранения, а также конфиденциальности.
На персональных компьютерах иногда используют специальный кассетный накопитель, размеры которого совпадают с размерами НГМД и который можно вставить на место последнего - так называемый стриммер. Он удобен, например, для переноса информации с жесткого диска одного компьютера на другой, долговременного хранения особо ценных системных и личных программ и данных.
5.2. УСТРОЙСТВА ВВОДА ИНФОРМАЦИИ
Разумеется, для ввода (и вывода) информации используются все виды ВЗУ. Заметим, что информация в ВЗУ хранится в виде, недоступном для непосредственного восприятия человеком, ибо ВЗУ предназначены для промежуточного хранения данных.
Многие другие устройства ввода/вывода, напротив, предназначены для обмена информацией с человеком.
Важнейшим из устройств ввода, несомненно, является клавиатура. Подавляющее большинство современных клавиатур являются полноходовыми контактными, т.е. клавиша утапливается при нажатии и замыкает контакт между двумя металлическими пластинками, покрытыми, во избежание окисления, пленкой благородного металла. Хорошая клавиатура рассчитана на несколько десятков миллионов нажатий каждой клавиши. При нажатии клавиши генерируется связанный с ней код, заносимый в соответствующий буфер памяти, а при ее отпускании - другой код, что позволяет перепрограммировать назначение клавиш, вводя новую таблицу соответствия этих кодов.
Ряд клавиш при совместном нажатии пары из них генерируют специальный код, отличный от того, который генерируется при нажатии каждой клавиши в отдельности. Это позволяет значительно увеличить возможности клавиатуры. Вспомним, что для передачи всех возможностей при байтовой системе кодирования могло бы понадобиться 256 клавиш, чего нет ни на одной клавиатуре благодаря указанным совмещениям.
Большинство клавиатур имеют стандартные группы клавиш:
•клавиши пишущей машинки - для ввода букв, цифр и других знаков;
•служебные клавиши, перенацеливающие действия остальных (переключатели регистров, переходы с латинского шрифта на русский и другие);
•функциональные клавиши Ft - F12 (иногда их меньше), назначение которых задает разработчик прикладной программы;
•дополнительные цифровые клавиши для большего удобства в работе.
Важным свойством клавиатуры, благодаря которому пользователь может работать не один час подряд, является эргономичность. Этим термином задается совокупность характеристик, определяющих удобство (в широком смысле слова) устройства. По отношению к клавиатуре это дизайн, отсутствие бликов, удобное взаиморасположение и размеры клавиш и многое другое.
В состав стандартного оснащения современного персонального компьютера входит мышь - устройство ввода и управления. Конструктивно это коробочка с выступающим внизу шариком, который, поворачиваясь, вращает взаимно перпендикулярные колесики. Благодаря наличию в них специальных прорезей оптическая система мыши способна отслеживать и преобразовывать движение шарика в перемещение курсора на экране компьютера. Две или три клавиши на верхней стороне мыши позволяют отдавать многочисленные команды, определяемые текущей программой. То же делает «перевернутая мышь» - шар (trackball), который монтируется в корпус компьютера или клавиатуры.
Есть еще ряд манипуляторов, служащих для ввода информации: световое перо, джойстик и т.д. Они второстепенны, решают некоторые ограниченные задачи.
Все чаще рядом с компьютером оказывается сканер - устройство для ввода с листа бумаги документов (текстов, чертежей и т.д.). Лучик света с огромной скоростью пробегает по листу, светочувствительными датчиками воспринимается яркость (а иногда и цветность) отраженного света
439
и трансформируется в двоичный код. Сканеры бывают цветными и монохромными, с разной разрешающей способностью, разным размером обрабатываемых изображений, настольными и ручными. Наиболее совершенные из них весьма дороги.
Несколько слов о вводе текстов с помощью сканера. Всякую информацию сканер воспринимает как графическую. Если это текст, то чтобы компьютер осознал его в таком качестве и позволил далее обрабатывать как текст (например, программами типа «редактор текстов»), нужна специальная программа распознавания, позволяющая выделить в считанном изображении отдельные символы и сопоставить им соответствующие коды символов. Это - достаточно сложная задача, но она успешно решается.
Не так давно появились средства речевого ввода, которые позволяют пользователю вместо клавиатуры, мыши и других устройств использовать речевые команды (или проговаривать текст, который должен быть занесен в память в виде текстового файла). Возможности таких устройств достаточно ограничены, хотя они постоянно совершенствуются. Проблема не в том, чтобы записать речь, подвергнуть ее дискретизации и ввести коды в компьютер (при современном уровне техники это несложно), а чтобы распознать смысл речи и представить ее, например, в текстовой форме, допускающей последующую компьютерную обработку. Например, программа «Kurzweil Voice 1.0 for Windows» обеспечивает распознавание (на английском языке) всех речевых команд для навигации в среде «Windows», а в режиме диктовки текста способна распознать до 40 тысяч слов, произносимых в среднем для человека темпе речи (требуя, однако, не менее 16 Мбайт ОЗУ и не менее 50 Мбайт на винчестере лишь для самой себя). Многие специалисты связывают с прогрессом устройств речевого ввода будущее компьютерной техники, считая такие устройства ведущими элементами ее интеллектуализации.
5.3. УСТРОЙСТВА ВЫВОДА ИНФОРМАЦИИ
Самым популярным из устройств вывода информации является дисплей - устройство визуального отображения текстовой и графической информации. Дисплей относится к числу неотъемлемых принадлежностей компьютера. Есть и параллельные термины, обозначающие почти то же самое: «видеотерминал», «видеомонитор» (хотя есть и смысловые оттенки: «монитор» - устройство управления чем-то, «терминал» - удаленное устройство доступа).
Дисплеи классифицируются по нескольким разным параметрам, отражающим их назначение в конкретной компьютерной системе и возможности. Бывают дисплеи монохромные и цветные. Монохромный дисплей производит отображение в двух цветах - черном и белом, либо зеленом и черном и т.д. Высококачественный цветной дисплей может воспроизводить десятки основных цветов и сотни оттенков.
Бывают дисплеи графические и алфавитно-цифровые (впрочем, последние, способные отображать лишь ограниченный набор основных символов используемого алфавита, почти исчезли из обычного обихода). Графический дисплей может отображать как символы, так и любое изображение, которое можно построить из отдельных точек в пределах разрешающей способности.
По физическим принципам, лежащим в основе конструкций дисплеев, подавляющее большинство их относится к дисплеям на базе электронно-лучевых трубок и к жидкокристаллическим дисплеям (последние особенно часто встречаются у портативных компьютеров). У первых формирование изображения производится на внутренней поверхности экрана, покрытого слоем люминофора - вещества, светящегося под воздействием электронного луча, генерируемого специальной «электронной пушкой» и управляемого системами горизонтальной и вертикальной развертки. Жидкокристаллический экран состоит из крошечных сегментов, заполненных специальным веществом, способным менять отражательную способность под воздействием очень слабого электрического поля, создаваемого электродами, подходящими к каждому сегменту.
При выводе на экран любого изображения, независимо от того, в растровом или векторном форматах оно зафиксировано в графических файлах, в видеопамяти формируется информация растрового типа, содержащая сведения о цвете каждого пиксела, задающего наиболее мелкую деталь изображения. Каждый пиксел однозначно связан с долей видеопамяти - несколькими битами, в которых программным путем задается яркость (и, при цветном экране, цветность) свечения этого пиксела. Специальная системная программа десятки раз в секунду считывает содержимое видеопамяти и обновляет содержимое каждого пиксела, тем самым создавая и поддерживая на экране
440