Учёные и инженеры могут с выгодой использовать давно заброшенный подход к вычислениям



Этот аналоговый механический компьютер использовался для прогноза приливов. Он был известен, как «старый латунный мозг», или, более официально, «Машина предсказания приливов №2». Она служила Прибрежной и геологической службе США для подсчёта таблиц приливов начиная с 1912 года, и не уходила на пенсию вплоть до 1965, когда её заменили электронным компьютером.

Когда Нил Армстронг и Базз Олдрин опустились на Луну в 1969 году в рамках миссии Аполло-11, это, вероятно, было величайшим достижением в инженерной истории человечества [не считая, конечно, запуска первого спутника и первого человека в космос, первого выхода человека в открытый космос, а также создания автоматического космического корабля многоразового использования / прим. перев.]. Многие люди не отдают себе отчёта в том, что важным ингредиентом в успехе миссий Аполло и их предшественников были аналоговые и гибридные (аналогово-цифровые) компьютеры, которые НАСА использовала для симуляций, а в некоторых случаях, даже для управления полётами. Многие из живущих сегодня людей даже не слышали об аналоговых компьютерах, считая, что компьютеры, по определению, являются цифровыми устройствами.

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

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

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

Возьмём до нелепости простой пример: шланг с водой и ведро можно расценить, как аналоговый компьютер, производящий интегральные вычисления. Отрегулируйте объём текущей в шланге воды, чтобы соответствовать интегрируемой вами функции. Направьте поток в ведро. Решением задачи будет количество воды в ведре.

И хотя некоторые из аналоговых компьютеров реально использовали текущие жидкости, самые ранние из них были механическими устройствами, содержащими вращающиеся колёса и шестерёнки. В их число входит и дифференциальный анализатор Ванневара Буша 1931 года, созданный на принципах, рождённых ещё в XIX веке, в основном на базе работ Уильяма Томсона (ставшего впоследствии лордом Кельвином) и его брата Джеймса, разрабатывавшего механические аналоговые компьютеры для расчёта приливов. Аналоговые компьютеры этого типа ещё долго использовались для таких задач, как управление пушками на линкорах. К 1940-м для этого начали применяться и электронные аналоговые компьютеры, хотя параллельно механические компьютеры продолжали оставаться в строю. И не кто иной, как Клод Шеннон, отец формальной информационной теории, опубликовал в 1941 году плодотворное теоретическое исследование аналоговых вычислений.

Примерно с тех времён началась обширная разработка аналоговых компьютеров в США, СССР, Германии, Британии, Японии и т.д. Их выпускали многие производители, например, Electronic Associates Inc., Applied Dynamics, RCA, Solartron, Telefunken и Boeing. Изначально они использовались в разработке снарядов и самолётов, а также в полётных симуляторах. Естественно, основным клиентом была НАСА. Но их применение вскоре распространилось и на другие области, включая управление ядерным реактором.


Этот электронный аналоговый компьютер PACE 16-31R, изготовленный Electronic Associates Inc., был установлен в лаборатории реактивного полёта Льюиса в НАСА (сейчас это Исследовательский центр им. Гленна) в Кливленде в середине 1950-х. Такие аналоговые компьютеры использовались, кроме прочего, для таких комических программ НАСА, как Меркурий, Джемини, Аполло.

Изначально в электронных аналоговых компьютерах были сотни или тысячи электронных ламп, которые позднее заменили транзисторами. Сначала их программировали путём ручной установки контактов между различными компонентами на специальной панели. Это были сложные и причудливые машины, для запуска им требовался специально обученный персонал — всё это сыграло роль в их кончине.

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

Изготовители аналоговых компьютеров вскоре включили цифровые схемы в свои системы, что породило гибридные компьютеры. Но было уже поздно: аналоговую часть этих машин нельзя было интегрировать на крупных масштабах, используя технологии разработки и производства того времени. Последний крупный гибридный компьютер сделали в 1970-х. Мир перешёл на цифровые компьютеры и больше не оглядывался.

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

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

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

Около 15 лет назад я задумался: сможет ли аналоговый компьютер, разработанный при помощи современных технологий, предложить что-то ценное? Чтобы ответить на этот вопрос, Гленн Кован [Glenn Cowan] — тогда аспирант, которым я руководил в Британской Колумбии, а сейчас — профессор в Университете Конкордии в Монреале — разработал и создал аналоговый компьютер на одном чипе. Он содержал аналоговые интеграторы, умножители, генераторы функций и другие блоки, скомпонованные в стиле программируемой пользователем вентильной матрицы. Различные блоки были соединены морем проводов, которые можно было настраивать так, чтобы они создавали контакты после изготовления чипа.


Многие научные задачи требует решения систем из связанных дифференциальных уравнений. Для простоты рассмотрим два уравнения с двумя переменными x1 и x2. Аналоговый компьютер находит x1 и x2, используя схему, в которой ток, идущий по двум проводам, подчиняется тем же самым уравнениям. При использовании подходящего контура токи в двух проводах будут представлять решение изначальных уравнений.


Для этого нужны аналоговые интеграторы, блоки разветвлений, источники постоянного тока (суммирование токов требует простого объединения проводов). Для решения нелинейных дифференциальных уравнений аналоговый компьютер на чипе использует схемы непрерывного времени для формирования блоков, способных создавать произвольные функции (розовый)


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

Цифровое программирование позволило объединить вход заданного аналогового блока с выходом другого, и создать систему, управляемую уравнением, которое нужно решить. Таймер не использовался: напряжение и токи развивались непрерывно, а не дискретными шагами. Такой компьютер мог решать сложные дифференциальные уравнения с одним независимым переменным с точностью порядка нескольких процентов.

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

Недавно в Британской Колумбии двое студентов, Нинг Гуо [Ning Guo] и Йипен Хуанг [Yipeng Huang], Мингу Сеок [Mingoo Seok], Симха Сетумадхаван [Simha Sethumadhavan] и я создали аналоговый компьютер на одном чипе второго поколения. Как и в случае с ранними аналоговыми компьютерами, все блоки нашего устройства работали одновременно, и обрабатывали сигналы таким образом, который потребовал бы от цифрового компьютера параллельной архитектуры. Теперь у нас есть более крупные чипы, состоящие из нескольких копий нашего дизайна второго поколения, способные решать более крупные задачи.

Новая схема нашего аналогового компьютера боле эффективна в потреблении энергии и легче спаривается с цифровыми компьютерами. Такому гибриду доступны преимущества обоих миров: аналогового для примерных вычислений с высокой скоростью и малым энергопотреблением, и цифрового для программирования, хранения и высокоточных вычислений.

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

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

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

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


Автор с коллегами использовали современные технологии производства для упаковки мощного аналогового компьютера в небольшой корпус

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

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

Конечно, у нашего подхода к вычислениям есть недостатки. Одна из проблем состоит в том, что особенно сложные задачи требуют множества аналоговых вычислительных блоков, из-за чего чип получается крупным и дорогим.

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

Другая проблема состоит в том, что сложно настроить произвольные соединения между удалёнными блоками схемы на большом аналоговом чипе. Сеть контактов может приобрести непомерно большой размер и сложность. Однако некоторые научные задачи потребуют такого рода соединений, чтобы их можно было решать на аналоговом компьютере.

Это ограничение могут помочь обойти трёхмерные технологии производства. Но пока аналоговое ядро нашего гибридного дизайна лучше всего подходит для тех случаев, где требуется локальная связность — к примеру, для симуляции набора молекул, взаимодействующих только с молекулами, находящимися недалеко от них.

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

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

Я упомянул, что аналоговые вычисления могут ускорять подсчёты и экономить энергию, и хочу добавить подробностей. Аналоговая обработка на компьютере того типа, что сделали мы с коллегами, обычно занимает одну миллисекунду. Решение дифференциальных уравнений с одной производной требуют меньше 0,1 мкДж энергии. Такой чип при обычной технологии производства (65 нм CMOS) займёт область размером в квадратный миллиметр. Уравнения с двумя производными отнимают в два раза больше энергии и площади чипа, и так далее; время же на их решение остаётся неизменным.

Для некоторых критических областей применения с неограниченным бюджетом можно даже рассмотреть интеграцию масштаба подложки — всю кремниевую подложку целиком можно использовать, как один гигантский чип. Подложка в 300 мм позволит разместить на чипе более 100 000 интеграторов, что позволит симулировать систему из 100 000 спаренных нелинейных динамических уравнений первого порядка, или 50 000 второго порядка, и так далее. Это может оказаться полезным для симуляции динамики большого массива молекул. Время решения всё равно будет исчисляться миллисекундами, а рассеивание энергии — десятками ватт.

Только эксперименты могут подтвердить, что компьютеры такого типа будут реально полезными, и что накопление аналоговых ошибок не помешает им работать. Но если они заработают, результаты превзойдут всё, на что способны современные цифровые компьютеры. Для них некоторые из сложных задач такого порядка требуют огромные количества энергии или времени на решение, способного растянуться на дни или даже недели.

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

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

Янис Цивидис — профессор электротехники в Колумбийском университете

Комментарии (26)


  1. Gryphon88
    14.12.2017 16:07

    Аналоговые вычисления по-прежнему хороши и живы, пример из оптики


    1. vassabi
      14.12.2017 16:43

      угу, а аэродинамическая труба умеет не только рассчитывать аналоговым способом траектории частиц, но и показывать их.


      1. Gryphon88
        14.12.2017 17:38

        Вы хотя бы схему на первой картинке глянули? Впрочем, я статью перепутал, хотел дать ссылку на адаптивную микроскопию для коррекции гетерогенности показателей лучепреломления с аналоговой деконволюцией. Найду — приведу ссылку.


  1. Neuromantix
    14.12.2017 17:06

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


    1. vasimv
      14.12.2017 18:15

      Ну, во многих случаях — никакой стабильностью там и не пахнет, только сложности с настройкой — подстроечным резистором точно подбирать точку срабатывания компаратора сложно бывает, плавание параметров полупроводников из-за температуры. Если захочется приделать какую-нибудь фильтрацию, усреднение значений там — всю схему переделывать, логику тоже не поменять потом. С микроконтроллером обычно проще получается.


      1. Neuromantix
        14.12.2017 18:36

        Это просто нынешнее поколение «электронщиков» в основном дальше модулей с алиэкспресса не видит (это не в ваш адрес, а вообще). А потом чудеса получаются вроде попытки впихнуть наносекундную схему в контролер за 100р и искренне удивляться: «А чего оно не работает???» Я уж промолчу про код в вперемешку с травой и костылями, который падает от чиха мыши в подвале. Если схема делается под конкретное ТЗ, то потом переделывать ничего не нужно, если оно правильно сделано.


        1. vasimv
          14.12.2017 18:46
          +1

          Да-да, молодежь нынче не та.


          1. Neuromantix
            14.12.2017 20:58

            Вот задача, например: есть импульс с шириной на полувысоте от 4 до 8нс, фронт крутой примерно 1нс, спад — экспонента, нужно сделать точную временную привязку к 80% высоты фронта импульса. Точность — лучше 1нс. В аналоге решается на комплектующих 70-х годов. Какой МК будем юзать? Забыл еще — бюджет макс 250руб на активные компоненты.


            1. arheops
              14.12.2017 23:43

              Вот задача. Из последних 1000000 показаний датчика выбрать 40000 которые отличаются от медианы максимально.
              Естественно, медиана известна только в конце.
              Какие аналоговые схемы будете использовать? ну там для запоминания этих значений? или для вывода 40к разных значений из аналогового компьютера?
              Это я к тому, что всегда можно придумать пример, который неудобно сделать на конкретном железе. Что вы и сделали выше.


            1. vasimv
              14.12.2017 23:55

              Вы какую-то весьма специфичную задачу описываете, наносекунды с 250 рублей бюджетом очень редко встречаются, тем более в практике самодельщиков и кустарщиков. Да, микроконтроллеры имеют ограничения серьезные и много, но реальность такова, что 90% задач в электронике они могут решить. А есть еще FPGA и DSP, которые легко решают еще несколько процентов оставшегося. На долю аналоговой техники разве что мощные выходные каскады и предусилители остаются.

              Цена материалов, конечно, иногда получается выше, чем если проектировать аналоговую схему под конкретную задачу. Но зато уменьшаются затраты на собственно проектирование, разводку и изготовление устройств, упрощается разработка готового изделия целиком и поддержка. Плюс всегда можно сгладить какие-то недочеты и отклонения от идеальных условий техзадания в готовом изделии простой перепрошивкой, не говоря уже о массе новых возможностей с применением адаптивных алгоритмов и прочего. Универсальнее все выходит.


              1. vassabi
                15.12.2017 00:49

                дело еще в том, что ладно, для отлова именно такого хитрого «фронта в 1нс» будет спаяна схема из комплектующих.
                Но выход-то из неё — все-равно пойдет дальше в МК.


  1. Arxitektor
    14.12.2017 20:22

    А можно ли в деле аналоговых пк использовать MEMS (Микроэлектромеханические системы)?


    1. vasimv
      15.12.2017 00:02

      Почему нет, MEMS с аналоговым выходом выпускаются.

      Поглядел на спецификации таких чипов и идея возникла — сделать чисто аналоговый коптер, с теплыми ламповыми выходными каскадами регуляторов моторов. :) Бессмысленно, но забавно должно быть.


      1. dragonnur
        15.12.2017 09:27

        Тёплые не ламповые, тёплые — бензиновые :-)


  1. CHE__BURASHKA
    15.12.2017 08:36

    Да сколько можно то!!!
    Да не было их на луне, не быыллооо!!!
    Это все брехня…


    1. famiak
      15.12.2017 13:46

      Луна — это вообще диск в небе, который крутится вокруг плоской Земли. Не понимаю, как столько людей могут верить, что туда вообще принципиально можно прилететь.


      1. Norno
        15.12.2017 14:37

        А какие проблемы с полетом на один диск с другого диска?


        1. Ugrum
          15.12.2017 17:18

          Ну как же, ведь всем известно, что Луна-это диск, прикреплённый к небесному своду/тверди. Допустим вы смогли долететь до него, это не есть проблема, а вот как вы на него высадитесь? Ведь это же всё равно, что пытаться спать на потолке.


          1. Norno
            15.12.2017 18:43

            Решение давно есть, не очень удобно, но люди за это готовы платить свои

            Заголовок спойлера
            image


            1. Ugrum
              15.12.2017 19:37

              1. Это стена, а не потолок.
              2. А где вы припаркуете ваше транспортное средство? Оно же упадёт обратно на диск, с которого вы стартовали и причинит кучу добра жителям оного.
              3. Проистекает из пункта 2, как вы вернётесь назад? В свободном падении+wingsuit?
                Не, ну если вы Супермен, которого покусал Спайдермен, то "Вижу цель, не замечаю препятствий".


    1. Color
      15.12.2017 14:58

      тоньше нужно, тоньше


  1. stanislavskijvlad
    15.12.2017 08:51

    — Выбирайте тему.
    — Наносекунда за 250


  1. WinPooh73
    15.12.2017 13:16

    Не "информационной теории", а "теории информации". Аналогично "теории вероятностей" или "теории относительности".


  1. sergehog
    15.12.2017 15:42

    Если бы совместить такие гибридные компьютеры с мемристорами (не знаю научились ли их делать на кремнии или еще нет), то такая бы бомба была!!! Все эти модные Deep Neural Networks можно будет запускать в аналоге, а не в цифре. Это вапще будет вынос мозга, супер-скоростной вынос. Прощай Nvidea со своими печками, да здраствует цифровой коммунизм! Долой органические мозги! Вся власть роботам и киборгам!


  1. uu_69
    15.12.2017 17:55

    Недавно упоминавшийся здесьhttps://geektimes.ru/post/296383/ «нанопузырь», видимо, тоже некий метод аналоговых «вычислений»? Интересно, определение этой штукой раковых поражений на маммограмме не то же самое, что наложение друг на друга нескольких фотографий и вывод «среднего арифметического»? Ибо похожие снимки = примерно одинаковое прохождение тока через массив электродов = итоговое усредненное расположение сети нанотрубок.


  1. saag
    15.12.2017 17:55
    -1

    а где фотонный компьютер, в котором операция сложение это слияние двух спектров, а вычитание их разложение на составляющие?:-)