Новый УММ, или Универсальная Мем-Машина

(Март 2015)

0-memcomputer

В февральском номере журнала Scientific American опубликована примечательная статья – о новых, поразительно эффективных в энергопотреблении и очень быстрых в вычислениях «мемкомпьютерах», работающих на основе таких электронных компонентов, которые по своей функциональности ближе к нейронам мозга, нежели к транзисторам («Just Add Memory» by Massimiliano Di Ventra and Yuriy V. Pershin, SciAm, February 2015).

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

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

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

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

Мемпроцессоры и биология

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

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

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

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

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

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

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

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

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

УМТ, УММ и Мозг

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

Turing_ Universal_Machine

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

Фактически все нынешние компьютеры построены на схемах, концептуально реализующих УМТ. Если же говорить о более конкретных аспектах реализации, то в основу вычислений заложена так называемая архитектура фон Неймана, впервые воплощенная «в железе» еще на рубеже 1940-50-х годов, однако по сути сохраняющаяся и поныне в самых современных чипах микросхем.

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

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

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

При тех же темпах роста, к 2030 году глобальное потребление электричества лишь одной только бытовой компьютерной электроникой сравняется с нынешним совокупным энергопотреблением в США и Японии вместе взятых. Стоимость таких энергозатрат составляет 200 миллиардов долларов ежегодно.

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

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

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

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

Два П и наложение информации

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

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

Подробнее объяснить каждую из этих уникальных особенностей удобно на конкретных примерах.

3-maze

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

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

Суть второй особенности, полиморфизма УММ, удобно пояснить на другом примере. В 2013 году исследователи предложили концепцию новой оперативной памяти типа «динамическая вычисляющая RAM» или DCRAM. В стандартной нынешней DRAM каждый бит информации, отвечающий за код программы, представлен зарядом, хранимым отдельным конденсатором. Понятно, что для хранения программы требуется весьма большое количество конденсаторов. Если же в чипе при его изготовлении заменить конденсаторы на мем-конденсаторы (технически это уже возможно), то количество нужных элементов памяти радикально сокращается.

Мем-конденсаторы способны переключаться с одной логической операции на другую практически мгновенно, как только на них подают другое напряжение. Всего лишь двух мем-конденсаторов достаточно, чтобы реализовать базовые инструкции типа AND, OR или «ELSE do …» – в то время как традиционные схемы требуют для этого большого количества обычных конденсаторов и транзисторов.

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

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

Наконец, третье, особо тонкое и важное свойство систем УММ, требующее специального программирования, получило от авторов название «информационное наложение» (information overhead). Эта самостоятельная особенность напрямую зависит от способа физических связей, которыми мемпроцессоры соединены друг с другом. Можно сказать, что эффект наложения информации – это способность взаимодействующей сети мемпроцессоров хранить и сжимать такие информационные объемы, которые ощутимо превосходят то, что возможно для тех же самых, но не взаимодействующих мемпроцессоров.

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

Если, к примеру, дать компьютеру 100 произвольных целых чисел и поставить задачу отыскания такого подмножества, где сумма слагаемых дает нуль, то машине придется работать очень и очень долго. Компьютеру придется довольно тупо брать все возможные подмножества, а затем суммировать в них все числа. Время обработки для такого перебора вариантов нарастает чудовищно быстро или экспоненциально, как выражаются в математике. Если, скажем, на проверку массива из 10 чисел требуется лишь 1 секунда, то для проверки 100 чисел это уже будет 1027 секунд – миллионы триллионов лет работы…

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

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

Фактически, ныне в деталях продемонстрировано, каким образом линейно увеличиваемое число взаимосвязанных мемпроцессоров в УММ-системе оказывается способным обработать (хранить и сжимать) количество данных, которое возрастает несравнимо быстрее – в экспоненциальном масштабе.

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

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

3-brain-six

* * *

Ссылки на ключевые научные публикации по мемкомпьютерам

Про мемэлементы и мемкомпьютеры на их основе: M. Di Ventra, Y. Pershin, and L. Chua, “Circuit elements with memory: Memristors, memcapacitors, and meminductors,” Proceedings of the IEEE, vol. 97, pp. 1717–1724, Oct 2009, ArXiv:0901.3682 ; M. Di Ventra and Y. V. Pershin, “The parallel approach,” Nature Physics, vol. 9, pp. 200–202, 2013, ArXiv:1211.4487

Параллелизм и решение лабиринта: Y. V. Pershin and M. Di Ventra, “Solving mazes with memristors: A massively parallel approach,” Physical Reviews E, Vol. 84, No. 4, Article No. 046703; October 14, 2011,  ArXiv:1103.0021

Электронный полиморфизм: Yuriy V. Pershin, Fabio Lorenzo Traversa, and Massimiliano Di Ventra, «Memcomputing with membrane memcapacitive systems», ArXiv:1410.3541 [cs.ET]

Теория УММ и наложение информации: Fabio L. Traversa, Massimiliano Di Ventra, “Universal Memcomputing Machines,” ArXiv:1405.0931v2 [cs.NE]

Дополнительные материалы в тему, популярно на русском языке

Подробности об открытии недостающего элемента электросхем: «Мемристоры: пора ли переписывать учебники».

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

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