4- для умножения и деления целых чисел;
4- арифметических действий над числами с плавающей точкой;
4- вызова и прекращения действия процедур;
4- ускорения циклов;
4- работы с символьными строками.
Как только производители поняли, что добавлять новые команды очень легко, они начали думать, какими дополнительными техническими возможностями можно наделить микропрограмму. Приведем несколько примеров:
4- ускорение работы с массивами (индексная и косвенная адресация);
4- перемещение программы из одного раздела памяти в другой после запуска программы (настройка);
4- системы прерывания, которые дают сигнал процессору, как только закончена операция ввода или вывода;
4- способность приостановить одну программу и начать другую, используя небольшое число команд (переключение процесса);
4- специальные команды для обработки изображений, звуковых и мультимедийных данных.
В дальнейшем дополнительные команды и технические возможности вводились также для ускорения работы компьютеров.
Конец микропрограммирования
В 60-70-х годах количество микропрограмм значительно увеличилось. Однако они работали все медленнее и медленнее, поскольку требовали большого объема памяти. В конце концов исследователи осознали, что отказ от микропрограмм резко сократит количество команд, и компьютеры станут работать быстрее. Таким образом, компьютеры вернулись к тому состоянию, в котором они находились до изобретения микропрограммирования.
Впрочем, не все так однозначно. Механизм выполнения программ Java, например, предусматривает их компиляцию на промежуточном языке («байт-коде» Java) с его последующей интерпретацией.
Мы рассмотрели развитие компьютеров, чтобы показать, что граница между аппаратным и программным обеспечением постоянно смещается. Сегодняшнее программное обеспечение может быть завтрашним аппаратным обеспечением и наоборот. Также обстоит дело и с уровнями — между ними нет четких границ. Для программиста не важно, как на самом деле выполняется команда (за исключением, может быть, скорости выполнения). Программист, работающий на уровне архитектуры системы, может использовать команду умножения, как будто это команда аппаратного обеспечения, и даже не задумываться об этом. То, что для одного человека — программное обеспечение, для другого — аппаратное. Позже мы еще вернемся к этим вопросам.
Развитие компьютерной архитектуры
В ходе эволюции компьютерных технологий были разработаны сотни разных компьютеров. Многие из них давно забыты, в то время как влияние других на современные идеи оказалось весьма значительным. В этом разделе мы дадим краткий обзор некоторых ключевых исторических моментов, чтобы лучше понять, каким образом разработчики дошли до концепции современных компьютеров. Мы рассмотрим только основные моменты развития, оставив многие
подробности за скобками. Компьютеры, которые мы будем рассматривать, представлены в табл. 1.1. Хорошую подборку исторического материала по «отцам-основателям» компьютерной эры дает Слейтер [189].
Таблица 1 |
1.1. Основные этапы развития компьютеров |
||
Год выпуска |
Название компьютера |
Создатель |
Примечания |
1834 |
Аналитическая машина |
Бэббидж |
Первая попытка построить цифровой компьютер |
1936 |
Z1 |
Зус |
Первая релейная вычислительная машина |
1943 |
COLOSSUS |
Британское правительство |
Первый электронный компьютер |
1944 |
Mark I |
Айкен |
Первый американский многоцелевой компьютер |
1946 |
EN I AC I |
Экерт/Моушли |
С этой машины начинается история современных компьютеров |
1949 |
EDSAC |
Уилкс |
Первый компьютер с программами, хранящимися в памяти |
1951 |
Whirlwind I |
МТИ |
Первый компьютер реального времени |
1952 |
IAS |
Фон Нейман |
Этот проект используется в большинстве современных компьютеров |
1960 |
PDP-1 |
DEC |
Первый мини-компьютер (продано 50 экземпляров) |
1961 |
1401 |
IBM |
Очень популярный маленький компьютер |
1962 |
7094 |
IBM |
Очень популярная небольшая вычислительная машина |
1963 |
B5000 |
Burroughs |
Первая машина, разработанная для языка высокого уровня |
1964 |
IBM |
Первое семейство компьютеров |
|
1964 |
6600 |
CDC |
Первый суперкомпьютер для научных расчетов |
1965 |
PDP-8 |
DEC |
Первый мини-компьютер массового потребления (продано 50 000 экземпляров) |
1970 |
PDP-11 |
DEC |
Эти мини-компьютеры доминировали на компьютерном рынке в 70-е годы |
1974 |
8080 |
Intel |
Первый универсальный 8-разрядный компьютер на микросхеме |
1974 |
CRAY-1 |
Cray |
Первый векторный суперкомпьютер |
1978 |
VAX |
DEC |
Первый 32-разрядный суперминикомпьютер |
1981 |
IBM PC |
IBM |
Началась эра современных персональных компьютеров |
1981 |
Osborne-1 |
Osborne |
Первый портативный компьютер |
1983 |
Lisa |
Apple |
Первый ПК с графическим пользовательским интерфейсом |
Продолжение &