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

a:=a and b; {Здесь a и b - переменные булевского типа.}

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

Примерно тогда же, в 60-е годы, и возникла идея обратимых вычислений: если в качестве элементарных логических операций допускать только обратимые операции, то в принципе можно проводить вычисления вообще без затраты энергии (или, с поправкой на неидеальность: можно проводить вычисления со сколь угодно малыми затратами энергии). Обратимые логические операции действительно существуют. Например, "не" (a:=not a;), "исключающее или" (a:=a xor b;). Есть даже универсальные обратимые логические операции, например, "гейт Тоффоли":

a:=a xor (b and c);

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

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

 
Продолжение

На главную страницу

Hosted by uCoz