Развитие аппаратных и программных средств ЭВМ
Необходимость дальнейшего совершенствования аппаратных средств ЭВМ обусловлена рядом причин, главной из которых является недостаточная скорость вычислений. Производительность лучших компьютеров составляет до 109 оп./с, что далеко не достаточно для оперативного решения задач, связанных с большим объемом информации и большим объемом вычислений. Необходимая производительность ЭВМ, используемых в
Современные компьютеры способны выполнять трудоемкие операции, далеко превышающие быстродействие человека. Но в то же время они не в состоянии справиться с задачами, которые человек решает без труда, например, мгновенное распознавание множественных образов, расположенных в пространстве. Объясняется это неймановской архитектурой вычислительных машин. Напомним, что неймановская архитектура характеризуется следующими особенностями:
программа и данные хранятся в памяти совместно;
программа выполняется последовательно команда за командой;
в процессе выполнения команды необходимы два обращения к памяти: одно для считывания числа, второе для его записи после обработки.
Отсюда возникает естественное ограничение: скорость прохождения сигнала от процессора до памяти не может быть выше скорости света, равной 300 000 км/с. Поэтому предел быстродействия ЭВМ с неймановской архитектурой равен 109оп./с.
Очевидно, что дальнейший прогресс в повышении быстродействия ЭВМ возможен лишь при отказе от неймановской архитектуры или ее фундаментальной перестройке. Ученые обратили внимание на то, как достигается фантастическая скорость обработки информации в естественных биосистемах (человек,
животные), и в первую очередь на способы обработки информации в нейросетях. Тщательное изучение показало, что огромная скорость у человека достигается за счет параллельной обработки информации, предполагающей одновременное выполнение всех или нескольких шагов задачи.
Идея параллелизма, заимствованная у природы, привела к постепенному отходу от канонов неймановской архитектуры. Следующие известные методы реализации параллельной обработки определяют перспективные направления развития данной идеи.
Параллелизм данных - эффективен при наличии данных, требующих одинаковые программы обработки. Этот механизм распространен в процессорах с конвейерной структурой, для которых характерна возможность получения данных за один такт.
Параллелизм команд - предполагает одновременное выполнение нескольких команд. Такой вид параллелизма используется в векторных процессорах.
Параллелизм потоков команд - позволяет минимизировать задержки вычислений процессора, связанные с ожиданием данных с внешних устройств. При ожидании в процессоре происходит переключение с одного потока команд на другой.
Параллелизм программ - применим в том случае, если возможно разбиение задачи на независимые программные модули. Этот вид параллелизма реализуется в мультипроцессорных системах.
Дальнейшее развитие идеи параллелизма, по-видимому, пойдет по двум направлениям:
1) программирование нужной архитектуры ЭВМ;
2) объединение в одной ЭВМ разных методов организации параллелизма.
Программирование нужной архитектуры должно выполняться в соответствии с особенностями алгоритмов, которыми характеризуется класс предполагаемых задач (научные, экономические, поисковые, инженерные). Объединение разных методов в одной ЭВМ перспективно в том случае, если возможно распределение частей задач между различными подсистемами. Тогда возможны комбинации методов, например параллелизм программ и данных или параллелизм потоков команд и данных и т.д.
Отказ от неймановской архитектуры проявляется не только в параллелизме, но и постепенном переходе к нелинейной памяти.
Стало очевидным, что совместное хранение программ и данных в линейном пространстве памяти усложняет понимание смысла программ. Существует огромная смысловая разница между операциями на языке программирования высокого уровня и операциями, определяемыми архитектурой ЭВМ. Отсюда невозможно выяснить природу возникающих ошибок: ошибка связана с командой или с данными.
Отказ от линейной памяти предполагает использование алгоритма, с помощью которого можно добавлять ко всем данным дополнительную информацию, использующуюся для распознавания данных. Это является серьезным отступлением от неймановских идей, ибо теперь управление вычислительным процессом зависит от потока данных. Развитие программного обеспечения выдвигает более серьезные причины отказа от линейной памяти.
Повышение производительности ЭВМ осуществляется не только за счет параллелизма, но и за счет повышения тактовой частоты. За последние 20 лет тактовая частота микропроцессоров повысилась с 1 до 6 ГГц, их производительность возросла с 0,1 MFLOPS до 1,2 GFLOPS и с 160 MFLOPS до 32 GFLOPS для суперкомпьютеров. Еще больше производительность возросла в вычислительных системах с массовым параллелизмом на основе объединения тысяч микропроцессоров. Так, в системе ТЗЕ фирмы Cray Research, включающей 2048 микропроцессоров, производительность составляет 2,5 TFLOPS. Фирма Hitachi создает мультикомпьютерную систему из 2048 компьютеров.
Параллельно с развитием суперсистем идет быстрое развитие микропроцессорной техники, в котором выделяют два направления:
1) разработка и создание микропроцессорных средств общего применения, являющихся основой для построения персональных ЭВМ;
2) разработка и создание микропроцессорных средств, ориентированных на конкретные области применения (управление оборудованием, транспортом, связью и т.д.)
Особое внимание будет уделяться миниатюризации микропроцессов и их производительности. В перспективе на кристаллах, содержащих 900 млн транзисторов, можно будет достичь производительность 4 GFLOPS при тактовой частоте 14 ГГц. Путем
объединения кристаллов возможна производительность в 1000TFLOPS.
В области программного обеспечения существует две тенденции, постепенно меняющие взгляды на само программное обеспечение:
1. Переход от эпохи алгоритма к эпохе модели.
2. Переход от закрытых программных систем к открытым. Формула известного теоретика программирования Н. Вирта: "алгоритм + структура данных = программа" указывает на два фундаментальных начала:
императивное, т.е. командное;
декларативное, т.е. непроцедурное.
Анализ первой тенденции показывает, что алгоритм, ориентированный на неймановскую архитектуру, утрачивает свою значимость и уходит в тень, ибо он чужд человеческому мышлению. Человек в своей практике не использует алгоритмическую форму. Поэтому первая тенденция есть не что иное, как отражение стремления к удобству использования человеком ЭВМ.
Модель определяет что надо вычислять, а алгоритм - как. Очевидно, что без того и другого не обойтись. Однако модели оттесняют алгоритм, превращаясь из пассивных элементов в активные. Примером тому могут служить технологии обработки знаний, представленные фреймами. Здесь процесс обработки зависит от информации, которая имеется в определенных слотах (демоны). Демоном называется процедура, автоматически запускаемая при выполнении некоторого условия. Обратимся к рис. 1.61, на котором представлена фреймовая структура для выдачи информации о поставщиках с использованием следующих обозначений: слот "категория" принимает два значения: госпредприятие, акционерное общество, а слот " вид поставки" - импорт, экспорт, внутренние поставки. В момент обращения к слоту "вид поставки" фрейма "Кременчугсталь" запускается механизм, с помощью которого осуществляется поиск значения этого слота в соответствующем фрейме верхнего уровня. В слоте "Объем" использован "демон" под названием "Расчет", функция которого состоит в подсчете общего объема поставок за период. Расчет запускается автоматически при обращении к данному слоту.
Вторая тенденция в развитии программного обеспечения для разработки веб-ресурсов заключается в отказе от закрытости систем и переходе к открытым системам. Время создания автономных программных продуктов,
не стыкующихся с другими, прошло. Для того, чтобы программный документ был конкурентоспособным, он должен обладать:
способностью к переносимости прикладных программ на различные платформы ЭВМ;
способностью к унифицированному обмену данными ме жду различными платформами ЭВМ;
возможностью замены одного компьютера на другой без каких-либо затруднений.
Открытость программных систем достигается путем разработки стандартов взаимодействия систем.
В связи с необходимостью отражения в языках программирования новых возможностей ЭВМ сформировались три подхода к их развитию:
Расширение существующих языков.
Создание новых языков для конкретных типов машин.
Создание новых языков, не ориентированных на создание сайтов.
Ярким представителем последнего подхода является язык JAVA. Это простой, объектно-ориентированный, распределенный, переносимый, многопоточный и динамичный язык. Ближайшее будущее несомненно за этим языком.
Совершенствование систем управления базами данных (СУБД) определяется всеобщей ориентацией на объектное программирование. Реляционные СУБД представляли собой значительный прогресс в технологии управления данными. Однако они оказались неудобными из-за необходимости приведения данных к нормальной форме. В результате терялась семантика (смысл) данных. С развитием объектно-ориентированного подхода появилась возможность описывать не только сложные структуры данных, но также поведение объектов реального мира. Главная задача, которая ставится в ближайшем будущем - это перевод реляционных баз данных в объектно-ориентированные.
К основным операционным системам, широко используемым в России, относятся, ОС Netware фирмы Novell, ОС Windows фирмы Microsoft и Unix. Первая из них планирует разработку средств, позволяющих работать с сетью Internet. Фирма Microsoft планирует предоставить своим пользователям кроме мультизадачного режима службу справочников, квотирование дискового пространства и усовершенствованные средства удаленного управления данными. Если в ОС Netware делается ставка на язык JAVA, то в ОС Windows - на язык SQL. В перспективе ОС Windows будет использоваться совместно с Unix.