[Перевод] Современный вариант развития старых аналоговых компьютеров
Учёные и инженеры могут с выгодой использовать давно заброшенный подход к вычислениям
Этот аналоговый механический компьютер использовался для прогноза приливов. Он был известен, как «старый латунный мозг», или, более официально, «Машина предсказания приливов №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 второго порядка, и так далее. Это может оказаться полезным для симуляции динамики большого массива молекул. Время решения всё равно будет исчисляться миллисекундами, а рассеивание энергии — десятками ватт.
Только эксперименты могут подтвердить, что компьютеры такого типа будут реально полезными, и что накопление аналоговых ошибок не помешает им работать. Но если они заработают, результаты превзойдут всё, на что способны современные цифровые компьютеры. Для них некоторые из сложных задач такого порядка требуют огромные количества энергии или времени на решение, способного растянуться на дни или даже недели.
Конечно, для того, чтобы найти ответы на эти и другие вопросы, потребуется провести ещё много исследований: как распределять задачи между аналоговой и цифровой частью, как разбивать большие задачи на мелкие, как комбинировать итоговые решения.
В поисках этих ответов мы и другие исследователи, занявшиеся аналоговыми компьютерами, можем получить большое преимущество, воспользовавшись работой очень умных инженеров и математиков, проведённой полстолетия назад. Нам не нужно пытаться заново изобрести колесо. Мы должны использовать полученные ранее результаты как трамплин, и продвигаться гораздо дальше. По крайней мере, мы надеемся на это, и если не попробуем, то никогда не узнаем ответ.
Янис Цивидис — профессор электротехники в Колумбийском университете