На самом деле вычисления, выполняемые на современных вычислительных машинах, проводятся при помощи многих операций, уничтожающих информацию” - из статьи Ч. Беннета и Р. Ландауэра.

К вопросу о реализации обратимого компьютера

«Физические пределы вычислений»

.

Выше был получен важный результат : при вычислении можно обойтись как без необратимых логических элементов, так и без стирания информации. . Рассмотрим пример обратимого логического устройства , известного под названием - вентиль Фредкина по имени Эдуарда Фредкина из Массачусетсского технологического института. У вентиля три входные и три выходные линии. Сигнал на одной входной линии, называемой “управляющим каналом”, не изменяется при прохождении через вентиль. Если сигнал на управляющем канале установлен равным 0, то входные сигналы на двух других линиях также проходят без изменения. Но если на управляющей линии 1, то на двух других выходных линиях происходит переключение: входной сигнал одной линии становится выходным другой, и наоборот. Вентиль Фредкина не теряет информации, поскольку состояние входов можно всегда определить по состоянию выходов.

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

 

 

Обратимый логический вентиль Фредкина может и не рассеивать энергию — состояние на его входах можно определить по состоянию выходов. У вентиля имеется “управляющая” линия, состояние которой не меняется вентилем. Если на управляющей линии 0, то значения сигнала на двух других линиях также не меняются, если же на управляющей линии 1, то вход линии А становится выходом линии S, и наоборот. С помощью обратимых вентилей, соединенных соответствующим образом, можно реализовать любую функцию, выполняемую обычным необратимым устройством. Чтобы реализовать операцию И (справа), один вход устанавливается равным 0 и два выходных бита, называемых “мусорными”, временно игнорируются. Когда вычисление завершено, эти биты используются при работе вентиля в обратном направлении, чтобы вернуть компьютер к исходному состоянию.

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

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

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

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

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

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

 

 

 

Идеализированная физическая модель вентиля Фредкина: трубки играют роль проводников, а присутствие или отсутствие шарика интерпретируется как 1 или 0. Узкий расщепленный участок трубки — это управляющий канал. Когда в него попадает шарик, стенки трубки расходятся в стороны, приводя в действие переключающий механизм. Последний, в свою очередь, переводит любой прибывший шарик из линии А в линию В и наоборот. Две пружинки поддерживают управляющий канал выключенным, когда в нем нет шарика. Такой вентиль не требует статического трения для выполнения операций. Его можно погрузить в вязкую жидкость, и тогда силы трения будут зависеть лишь от скорости шариков. В этом случае рассеиваемая энергия может быть произвольно малой: чтобы уменьшить количество рассеиваемой энергии, нужно лишь уменьшить скорость прохождения шариков через вентиль.

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

Они продемонстрировали это на модели вычислительного устройства, в котором вычисления проводятся путем выстреливания навстречу друг другу идеальных бильярдных шаров в отсутствие сил трения. В бильярдной модели идеально отражающие “зеркала” — поверхности, меняющие направление движения шаров, расположены таким образом, что движение шаров по столу моделирует прохождение битов информации через логические вентили (см. рисунок). Как и раньше, присутствие шара в определенной части “компьютера” интерпретируется как 1, а отсутствие — как 0. Если два шара одновременно достигают логического вентиля, то они сталкиваются, и траектории их движения изменяются; новые траектории представляют при этом выходные данные вентиля. Фредкин, Тоффоли и другие разработали схемы расположения зеркал, соответствующие различным типам логических вентилей, и доказали, что можно построить бильярдную модель любого логического элемента, необходимого для вычислений.

 

 

Бильярдная модель компьютера: движение бильярдных шаров по поверхности стола моделирует прохождение битов информации через логический вентиль. В бильярдных логических вентилях (слева) траектории шаров изменяются при их столкновениях друг с другом или с “зеркалами”. Кроме функций, выполняемых ими в вентилях, зеркала могут менять угол траектории шара (а), сдвигать ее в сторону (b), задерживать шар, не меняя его конечного направления или скорости (с), или заставлять траектории пересекаться (d). Зеркала можно расставить таким образом, чтобы получившийся в результате “компьютер” выполнял функции любого логического устройства. Например, можно построить бильярдный компьютер для распознавания простых чисел. Такой компьютер (справа) на входе принимает произвольное пятизначное двоичное число (в данном случае 01101, или 13) и фиксированную входную последовательность 01. Как и вентиль Фредкина, бильярдный компьютер возвращает больше битов на выходе, чем нужно пользователю. В рассматриваемом случае он возвращает само исходное число (представляющее собой “лишний” выход) и “ответ”: последовательность 10, если число на входе простое, и 01, если оно составное.

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

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

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

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

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

 

Хотя до сих пор наши рассуждения основывались главным образом на классической динамике, несколько исследователей предложили другие модели обратимых вычислительных машин, основанных на принципах квантовой механики. Такие машины, впервые предложенные П.Бениоффом из Национальной лаборатории в Аргонне (Франция) и усовершенствованные другими, в особенности Р.Фейнманом из Калифорнийского технологического института, до сих пор были описаны лишь в самых общих выражениях. По существу, частицы в этих моделях компьютеров должны быть расположены таким образом, чтобы правила квантовой механики, управляющие их взаимодействием, были в точности аналогичны правилам, предсказывающим значения сигналов на выходах обратимых логических вентилей. Предположим, например, что спин частицы может иметь только два возможных значения: направление вверх (соответствующее двоичной 1) и вниз (соответствующее 0). Взаимодействие между значениями спинов частиц должно проходить таким образом, чтобы значение спина данной частицы изменялось в зависимости от спина частиц, находящихся поблизости. При этом спин частицы будет соответствовать одному из выходов логического вентиля.

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

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

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

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

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

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