"Журнал «Компьютерра» №25-26 от 12 июля 2005 года" - читать интересную книгу автора (Компьютерра Журнал 597)

Меж нулем и единицей


54 года - и все тот же «принцип арифмометра»…

Впрочем, грех жаловаться - этот принцип оказался столь гибким в приложениях, что даже принципиально новые идеи вычислительных устройств (например, нейроподобные сети или системы с нечеткой логикой) вначале реализуются в виде программ для «обычных» компьютеров. Зачастую они в этом виде так и остаются навсегда… Все это наводит на мысль, что, возможно, «компьютеры послезавтрашнего дня» с точки зрения «железа» не будут чем-то особенным отличаться от нынешних, но вот процессы, протекающие в их недрах, скорее всего, будут совсем другими.

Вот об этих «других процессах» мы и поговорим.


Цифра или не цифра?

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

Кроме измеряемых величин, физические процессы характеризуются также вычисляемыми параметрами, которые недоступны непосредственному измерению прибором и в то же время не всегда сводимы к простым процедурам арифметических манипуляций с измеряемыми величинами. Вычисляемые параметры тоже являются аналоговыми величинами, так как могут непрерывно приобретать любые, сколь угодно мало отличающиеся друг от друга значения. Принципиально важно, что эти величины тоже могут быть носителями информации, подлежащей обработке или запоминанию.

Обратим внимание на одну из богатейших по своим информационным возможностям аналоговую вычисляемую величину - вероятность. Именно то, что вероятность всегда вычисляется и предстает перед нами в виде цифры, маскирует ее аналоговую «сущность».

Отметим также, что вероятность наступления какого-то события (например, переключения триггера) как величина или параметр, характеризующий какой-либо физический процесс, объективно существует даже тогда, когда мы ее не знаем или не можем вычислить. Это очень важное замечание! Постепенное осознание этого обстоятельства позволило в течение тридцатилетней истории работ над вероятностными вычислителями прийти к принципиально новым идеям в этой области; впрочем, об этом поговорим чуть позже.

В 1970-х годах начались активные теоретические исследования и разработки так называемых стохастических вычислительных машин, основанных на вероятностном представлении информации. Переменные и константы в этих аналоговых машинах представлялись вероятностями переключения цифровых логических элементов. Другими словами, информация кодировалась вероятностью, которая в силу своих фундаментальных свойств может принимать непрерывный ряд значений в интервале от 0 до 1.

Архитектура стохастических вычислителей в общем-то повторяла решения, разработанные для аналоговых вычислительных машин: программирование сводилось к набору структурной схемы из решающих блоков, которые в отличие от АВМ были построены не на операционных усилителях, а на логических элементах. Подкупала простота технической реализации вычислителя: замена операций над числами операциями над вероятностями позволила воспользоваться глубокими аналогиями, существующими между аппаратом событийной теории вероятности и принципами математической логики; так, например, операция умножения вероятностей независимых событий формально полностью совпадает с логической операцией конъюнкции, а суммированию вероятностей соответствует операция дизъюнкции. Эти аналогии позволяют считать логические переменные некоторыми случайными событиями, имеющими определенные вероятности появления. С инженерной точки зрения это означает, например, что один логический элемент ИЛИ (дизъюнкция) становится сумматором, а единственный элемент И (конъюнкция) превращается в умножитель!

Этот подход оказался особенно хорош для создания специализированных процессоров, рассчитанных на непрерывное вычисление, предположим, управляющего воздействия в системах управления. Будучи «по природе» аналоговым, такой вычислитель мог решать задачи в реальном времени независимо от объемов вычислений; а будучи цифровым (по элементной базе), он был лишен таких принципиальных недостатков обычных АВМ, как дрейф нуля и шумы операционных усилителей, а также наводок в сигнальных цепях.

Появление широко доступных БИС ПЛИС(Программируемая Логическая Интегральная Схема, еще называется ПЛМ - Программируемая Логическая Матрица) и БМК(Базовый Матричный Кристалл. Обычно отличается от ПЛИС (ПЛМ) наличием на кристалле большого набора базовых элементов ввода-вывода, аналого-цифровых и цифро-аналоговых преобразователей, контроллеров стандартных интерфейсов и т. д.) позволило реализовать на одном кристалле довольно сложные схемы стохастических вычислителей, однако широкого распространения они не получили - сказался главный недостаток этой технологии (как и вообще всех аналоговых технологий): неудобство перепрограммирования и слишком сильная «привязка» исполняемого алгоритма к аппаратной части.

«Принцип арифмометра» победил - наступила эпоха универсальных цифровых вычислителей.


Принцип матрешки

Пытаясь представить облик процессора будущего, я постоянно боролся с соблазном начать фантазировать. Еще бы: тут тебе и квантовые вычисления, и ДНК-вычислители, и белковая логика… Квантовые процессоры я бы выделил в отдельную категорию - по единственной причине: им присущи принципиально отличные от других механизмы обработки информации. Все остальное - те же «арифмометры»…

Короче говоря, если в качестве «послезавтрашнего компьютера» вообразить некий «черный ящик», то становится ясно, что дело не в том, на какой элементной базе он построен, а в том, что построено. Какая обрабатывающая среда находится внутри «ящика»?

Вообще, понятие «обрабатывающая среда» довольно абстрактно. Практически это может быть физическая среда, свойства которой дают ей возможность производить вычисления. Кусок стекла, которому придана форма линзы, - уже вычислитель! Он «умеет» вычислять Фурье-преобразование оптических сигналов… Но вот беда: существует так называемый критерий физической реализуемости. В частности, он означает, что не для всякого вычисления можно подобрать (или создать) соответствующую физическую среду. Но даже если критерий физической реализуемости удовлетворяется, практически создать необходимую среду невероятно трудно!

Гораздо продуктивнее моделировать обрабатывающие среды в цифровом виде. Чтобы сделать это, мы должны взять цифровой процессор (любой! хоть арифмометр) и написать для него программу, эмулирующую информационные процессы и структуру нужной нам обрабатывающей среды. Тем самым мы как бы создаем «виртуальную оболочку» вокруг обрабатывающей среды физического уровня, в качестве которой выступает процессор. Что при этом происходит? А вот что: мы преодолеваем критерий физической реализуемости.

Следующий важный вопрос, мимо которого не пройти: что мы хотим получить? Если под «процессором будущего» понимать просто «ну очень быстрый процессор», то, думается, за этим дело не станет. Но, видимо, мы хотим чего-то большего… Чего?

Честный ответ: хотелось бы создать модель себя. По крайней мере, в части восприятия и обработки приходящей извне информации.

А что это значит, если говорить языком технического задания?

Во-первых, быстродействие. Производительность цифровых процессоров зависит от частоты, разрядности и распараллеливания вычислительных процессов. У аналоговых вычислителей таких ограничений нет, но есть много своих специфических «минусов» и существует упоминавшийся выше критерий реализуемости (поскольку аналоговый процессор - это, собственно, физическая обрабатывающая среда «в чистом виде»). А что, если окружить цифровой процессор виртуальной аналоговой «оболочкой»? Из чего ее сделать? Вариант ответа: эта «оболочка» может представлять собой стохастический вычислительный процесс, оперирующий вероятностями, и тогда отпадают ограничения по быстродействию!

Во-вторых, отсутствие необходимости в программировании. Раз нет программирования, следовательно - самообучение? Да. Нейроподобные сетевые структуры. Об их свойствах написаны горы книг, однако сейчас имеет смысл отметить следующее: нейросети - аналоговые обрабатывающие среды, которые мы давным-давно научились реализовывать в качестве «оболочек» над цифровыми процессорами, но… Но при этом нейросети, реализованные в форме программ, оперирующих цифровыми входными сигналами, сами становятся цифровыми, теряя в быстродействии и в качественных показателях. Один из перспективных вариантов разрешения этого противоречия заключается в создании стохастических нейроалгоритмов, позволяющих сохранять аналоговые принципы функционирования нейросетей при цифровом моделировании(Большая работа в этом направлении проводилась в Киевском институте кибернетики им. В. М. Глушкова под руководством академика Н. М. Амосова, в частности, Э. М. Куссулем, А. М. Касаткиным, Л. М. Касаткиной, Т. В. Федосеевой).

В-третьих, отсутствие жестких алгоритмов функционирования - свойство, открывающее возможности адаптивного поведения и динамического целеполагания. Исследования в этом направлении, проводившиеся у нас и за рубежом, показали, что глубинная суть этих процессов с достаточной степенью адекватности описывается лишь аппаратом теории динамического хаоса. Иными словами, чтобы воссоздать «на практике» обрабатывающую среду, обладающую требуемым «поведением», необходимо либо каким-то образом синтезировать ее «в железе», либо смоделировать нужный тип нелинейной динамики. Во втором случае для этого легче всего использовать все те же стохастические нейросети или матрицы вероятностных клеточных автоматов.

По существу, создавая нейросетевую модель нелинейной динамической системы с нужным нам поведением (не детерминированным, а в среднем!), мы тем самым создаем еще одну «оболочку» - уже вторую! - над исходной физической обрабатывающей средой - цифровым процессором.


Портрет героя

Впечатляющей футуристической картины под названием «Процессор будущего» не получилось. Жаль, если я кого-то разочаровал. Но мне действительно представляется маловероятным резкий (с чего бы вдруг?! И у кого?) рост интереса к созданию каких-то принципиально новых обрабатывающих сред физического уровня - электронных, биологических и даже квантовых.

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

Впрочем, всегда есть ненулевая вероятность «туннельного просачивания» сквозь стенки любых потенциальных ям. И для этого, как известно, не нужно много той самой «энергии»!


Практичная теория: день открытых дверей в творческой лаборатории изобретателя

«Физические эффекты и явления - костяк той самой физики, которую современный изобретатель годами изучает в школе и в институте. К сожалению, изобретательскому применению физики там не учат… Изобретателям надо присматриваться к давно знакомым эффектам и явлениям, приучаясь видеть в них рабочие инструменты для творческого решения изобретательских задач».

Генрих Альтшуллер, «Алгоритм изобретения»

Начну с главного тезиса. Все технические системы, устройства и приборы были кем-то изобретены.

Поэтому, когда мне было предложено рассказать о «технологии изобретания» компьютерных устройств послезавтрашнего дня, да еще основанных на новых физических принципах, я понял, что меня провоцируют. По существу, мне предлагалось поиграть в деловую игру «Назвался груздем…»[Автор является руководителем семинара по ТРИЗ]. В первый момент, каюсь, «взыграло»… Короче говоря, я отбросил тщеславные попытки практически изобрести невиданный процессор, а попытался рассказать о возможных подходах к решению этой задачи, основанных на ТРИЗ - Теории Решения Изобретательских Задач, созданной нашим талантливым соотечественником Генрихом Сауловичем Альтшуллером.

Надо сказать, что изобретательские задачи часто путают с задачами научными, техническими, инженерными или конструкторскими. Если мы, имея комплект чертежей топологии, расчеты технологических параметров и таблицы контрольных значений тестовых сигналов, собираемся изготовить микросхему, то это будет технической задачей. Расчет электронной схемы или теплового режима, предположим, полупроводникового лазера по готовым формулам и методикам - задача инженерная. Поиск этих формул и получение методик - типично научная задача. Поиск компромиссов между функциональностью чипа и его площадью на кристалле - суть задача конструкторская. Решение всех этих задач не связано с преодолением каких-то противоречий. Задача становится изобретательской только тогда, когда возникает необходимость одолеть несовместимость[Альтшуллер Г.С., Творчество как точная наука, М., «Советское радио», 1979 г. См. также: Альтшуллер Г.С., Алгоритм изобретения, М., «Московский рабочий», 1973 г.].

Итак. Какие же действительно несовместимые технические характеристики мы ожидаем встретить в процессоре будущего?

Функциональность и простота в использовании. Преодолением этого противоречия постоянно заняты разработчики программного обеспечения[По Г.С. Альтшуллеру, это конструкторская задача]. И, надо сказать, им это неплохо удается, но… В окружающей природе полно примеров очень функциональных и очень простых в использовании «вычислительных устройств»[Мяукающих, гавкающих, чирикающих и т. п. И говорящих, в том числе. Увы], которые вообще не нужно программировать! Их нужно дрессировать, то есть передавать им представления о том, как им себя вести. А программы такого поведения они создают для себя сами. Это мы возьмем на заметку.

Функциональность и размеры… Сразу вспоминаются квантовые процессоры. Новые физические принципы - налицо, экстремально малые размеры собственно «вычислителя» и - в «нагрузку» - кубометры холодильной техники, лазеров и соленоидов. А почему, собственно, нас так интересуют размеры? Мы что, материал экономим? А если поступим так: выведем в околоземный космос несколько тысяч могучих серверов на спутниках, объединим их в сеть, а на локальные машины возложим лишь отправку «наверх» запросов да исполнение команд. Функциональность - выше некуда, а размеры «клиентов» будут под стать их назначению - думаю, не больше мобильного телефона…

Вы чувствуете, как над нами довлеет инерция мышления?

Это она не позволяет нам представить себе вычислитель, который не вычисляет… Большую систему, которая не занимает места… Сложную и одновременно очень простую… Вот они! Действительные противоречия, составляющие предмет изобретательской деятельности!

Калиновский [[email protected]]