Введение
В октябре 1981 года японское Министерство международной торговли и промышленности объявило о началах работы над поистине грандиозным проектом, первым этапом которого стало учреждение новой исследовательской организации - Института по разработке технологии создания компьютеров нового поколения (Institute for New Generation Computer Technology Research Center, dev.intuit.ru/department/pl/plprolog/1/1.html). Стартовавшая в стране восходящего солнца программа была нацелена на построение принципиально новых ЭВМ, которые могли бы при работе оперировать знаниями. По замыслу ученых, эти системы должны были иметь возможность голосового ввода команд и данных, уметь самостоятельно обучаться и использовать накопленные знания для решения самых разнообразных задач. Вслед за Японией в исследования были вовлечены США и некоторые страны Европы. Появление подобных систем и их внедрение во многие сферы жизни человека могло повлечь за собой широкое использование экспертных и других интеллектуальных систем, основанных на знаниях, что привело бы к коренным изменениям в обществе, управлении, бизнесе и т.д. Но дальнейшее развитие событий пошло по совершенно другому сценарию.
Компьютеры, которыми мы пользуемся
Подавляющее большинство вычислительных машин, построенных во второй половине XX и в начале XXI вв., имеют схожую структуру и принципы работы. Трудно представить, что ламповый гигант Ferranti Mark 1 (1951 год, Англия) или UNIVAC 1 (1951 год, США), по своей сути, немногим отличается от нашего настольного кремниевого друга или КПК. Однако идеи, заложенные в организацию вычислительного процесса на заре компьютеростроения, не претерпели существенных изменений.
В 1945 году американский ученый Джон фон Нейман опубликовал "Предварительный доклад о машине EDVAC", где описал структуру ЭВМ и ее логические свойства. Сформулированные им принципы стали своего рода заповедями, которых придерживалось и продолжает придерживаться мировое сообщество при разработке новых моделей компьютеров. Разберемся, каким критериям должна соответствовать ЭВМ, чтобы называться фон-неймановской.
Каждая фон-неймановская вычислительная машина состоит из следующих основных частей (блоков): блока управления (Control Unit), арифметико-логического устройства (Arithmetic & Logic Unit), запоминающего устройства и одного или нескольких устройств ввода-вывода. Блок управления (БУ) предназначен для управления процессом выполнения программ, арифметико-логическое устройство (АЛУ) выполняет арифметические и логические операции, в памяти хранятся программы и данные, а что представляют собой устройства ввода-вывода, я думаю, объяснять не стоит:). БУ и АЛУ вместе образуют центральный процессор. Таким образом, выходит, что нынешние компьютеры и "динозавры" отличаются друг от друга не больше, чем современный человек от кроманьонца.
Кроме описания архитектуры ЭВМ EDVAC, известный американский ученый в своей работе сформулировал несколько положений, которые также легли в основу работы большинства компьютеров. Это двоичное кодирование, концепция хранимой программы, принцип адресности и управление от потока команд. Двоичное кодирование предполагает представление всей информации, содержащейся в компьютере, в двоичных разрядах - битах. Концепция хранимой программы (принцип однородности памяти) означает, что одно и то же запоминающее устройство используется для хранения программ и данных. Таким образом, ЭВМ не делает различий между областями памяти, содержащими текст (графику и др.) и команды. На этом свойстве основано выполнение циклов и подпрограмм, а также методы трансляции. Принцип адресности позволяет обращаться к поименованным ячейкам памяти. Управление от потока команд (принцип программного управления) означает, что команды, содержащиеся в оперативной памяти, выполняются процессором автоматически, в определенной последовательности, и под управлением этих команд обрабатываются данные. Все выше перечисленное справедливо почти для каждой существующей сегодня вычислительной машины.
Утопия или наше будущее?
Но существуют компьютеры, работающие совсем по другим принципам. Они относятся к так называемому пятому поколению ЭВМ, которое, к сожалению, не получило широкого распространения. Для таких машин характерно использование мощных сверхбольших интегральных схем (СБИС), управление от потока данных (Data Flow), а не от потока команд, оригинальные архитектурные решения и применение достижений искусственного интеллекта. Такие компьютеры называются не фон-неймановскими. Их единицы, но они есть, и об этом не следует забывать.
Существующие сегодня потоковые (Data Flow) и редукционные (Reduction) машины хоть и относятся к пятому поколению ЭВМ, но полностью не удовлетворяют предъявляемым к суперкомпьютерам требованиям. Посмотрим, какие цели определили перед собой японские ученые в начале 80-х годов, приступая к работе над ЭВМ нового поколения:
- максимально приблизить машину к человеку путем реализации систем голосового ввода-вывода информации, диалоговой обработки данных с использованием естественных языков, самостоятельного обучения, ассоциативных построений и логических выводов;
- упростить процесс создания программных средств путем их синтеза в реальном времени по описанию пользователя, составленного на естественном языке;
- обеспечить максимальное быстродействие, оптимальное соотношение затрат и полученных результатов, надежность в эксплуатации и т.д.
Ни один из существующих сегодня суперкомпьютеров полностью не удовлетворяет этим требованиям. Для построения таких машин человечеству еще очень далеко. Однако некоторое продвижение в решении первой задачи (распознавание речи, экспертные системы и т.д.) на ЭВМ нашего четвертого поколения позволяет смотреть в будущее машин пятого поколения с оптимизмом.
И что же в результате?
За десять лет работы Комитета планируемых результатов так и не удалось добиться. Представленные в начале 90-х годов первые опытные образцы компьютеров пятого поколения ненамного опережали своих старших братьев по вычислительной мощи. Вскоре японское правительство прекратило финансировать данный проект. Но интерес к компьютерам пятого поколения не угас. Напротив, ученые продолжают трудиться над построением интеллектуальных компьютеров, правда, перед собой они уже ставят немного другие цели: разработка квантового компьютера, нейрокомпьютера, оптического компьютера, вероятностного компьютера и других. Проведенные исследования и накопленный опыт по методам представления знаний и организации параллелизма вычислений оказали огромное влияние на ИИ в целом и повлекли за собой бум логического программирования.
Способы организации параллелизма
Посмотрим, как же функционируют немногочисленные компьютеры нового поколения и для чего сегодня ведутся исследования в области построения машин не фон-неймановского типа. Для ответа на этот вопрос разберемся, чем управление от потока команд, характерное для ЭВМ фон-неймановской архитектуры, отличается от управления от потоков данных, реализованного в машинах нового поколения - потоковых и редукционных. Для этого рассмотрим различные способы организации параллелизма вычислений.
Одной из наиболее популярных классификаций структуры компьютеров является таксономия Майкла Флинна (Michael J. Flynn), профессора Стэнфордского университета с 1975 года (www.wl.unn.ru/~ragozin/plan/f_par.htm). В зависимости от количества потоков команд и потоков данных он выделяет четыре класса архитектур ЭВМ:
- SISD (Single Instruction Stream - Single Data Stream) - один поток команд и один поток данных;
- SIMD (Single Instruction Stream - Multiple Data Stream) - один поток команд и множество потоков данных;
- MISD (Multiple Instruction Stream - Single Data Stream) - множество потоков команд и один поток данных;
- MIMD (Multiple Instruction Stream - Multiple Data Stream) - множество потоков команд и множество потоков данных.
Не будем подробно рассматривать первые три вида компьютеров, остановимся на последнем. В классе машин MIMD (МКМД) может быть реализовано управление от потока команд (IF - Instruction Flow) и от потока данных (DF - Data Flow). Посмотрим, как будет вычисляться простейшее математическое выражение в случае IF и DF. Пусть нужно посчитать Y=(a+b)*c-d/f при заданных значения переменных. Последовательность выполнения действий представлена в таблице 1.
Таблица 1 | ||
Такты | Управление от потока команд | Управление от потока данных |
1 | Сложение | Сложение и деление (одновременно!) |
2 | Умножение | Умножение |
3 | Деление | Вычитание |
4 | Вычитание |
Управление от потока данных предполагает обработку данных по мере их готовности, в отличие от управления от потока команд, когда каждая команда выполняется последовательно, в соответствии со счетчиком команд процессора. Т.к. в нашем примере операции сложения и деления не зависят от результатов, получаемых при выполнении каждой, на вычисление значения Y в случае DF тратится на один такт меньше. Считается, что это свойство обеспечивает наибольший потенциальный параллелизм вычислений, что и позволяет создавать супер-быстродействующие интеллектуальные вычислительные системы, о которых мечтали японцы в начале 80-х годов. Поэтому редукционные и потоковые ЭВМ, которые являются классическим примером машин не фон-неймановской структуры и которые предоставляют возможность обеспечения высокой степени параллелизма расчетов, представляют интерес для ученых.
А как же программировать?
Это совершенно уместный вопрос. Большинство существующих сегодня языков программирования являются процедурными. А это весьма ограничивает параллелизм вычислений. При построении ЭВМ пятого поколения был выбран специальный язык логического программирования Prolog (PROgramming in LOGic), который был создан в 1974 году и который остается очень популярным языком искусственного интеллекта в Японии и Европе (в США наиболее распространен язык LISP). В основу "Пролога" положена процедура доказательства теорем методом резолюции для хорновских дизъюнктов, относящейся к такому разделу математической логики, как исчисление предикатов. Логическое программирование, широко применяющееся в наше время в ИИ, своей популярностью обязано именно японцам, взявшимся за построение "умных" ЭВМ в далеких восьмидесятых.
Подведем итоги
Самые удачные суперкомпьютеры нового поколения пока построены только на бумаге, а их создателями являются писатели-фантасты (вычислительная машина HAL9000 из "Космической Одиссеи" Артура Кларка). Пятое и последнее, на сегодняшний день, поколение компьютеров, основным направлением использования которых является искусственный интеллект, все еще находится на стадии разработки. Основная задача новых вычислительных машин - общение с пользователем на естественном языке, самообучение и самоорганизация. При проектировании подобных систем огромное внимание уделяется обработке знаний, организации максимально возможного параллелизма расчетов и использованию сверхпроводниковых материалов.
Многие исследователи утверждают, что создание подобных ЭВМ равносильно построению вечного двигателя или поиску философского камня. Однако история не раз преподносила нам сюрпризы, когда "все знают, что это невозможно, но вот приходит невежда, которому это неизвестно - он-то и делает открытие" (Альберт Эйнштейн).
Виталий
КРАСИЛЬНИКОВ,
narthex@inbox.ru