Текст книги "Радость познания"
Автор книги: Ричард Филлипс Фейнман
Жанры:
Прочая научная литература
,сообщить о нарушении
Текущая страница: 4 (всего у книги 18 страниц) [доступный отрывок для чтения: 7 страниц]
Уменьшение размеров
Итак, моя третья тема – размер компьютерных элементов, и здесь мои предложения носят исключительно теоретический характер. Первое, о чем вам следует беспокоиться, когда изделие становится очень маленьким, – это броуновское движение [7]7
Толчкообразное движение частиц, вызванное постоянными случайными столкновениями молекул, впервые описано в печати в 1828 году ботаником Робертом Броуном и объяснено Альбертом Эйнштейном в его статье 1905 года в «Annalen der Physic». – Примеч. ред. иностр. издания.
[Закрыть]– все вокруг движется, вибрирует, и ничто не стоит на месте. Как в таком случае можно контролировать схемы? Более того, если схема действительно работает, разве она не имеет возможности случайно совершить обратный скачок? Если мы возьмем обычно используемое напряжение 2 вольта для энергии такой электрической системы (Рис. 5),что в восемьдесят раз больше тепловой энергии при комнатной температуре (кТ = вольта), то вероятность скачка обратного перехода по отношению к тепловой энергии равно е-80 или 10–43. Что это значит? Если в нашем компьютере миллиард транзисторов (пока мы такого количества не имеем) и все они включаются 1010 раз в секунду (время включения составляет десятые доли наносекунды), включаясь непрерывно и работая 109 секунд, что составляет 30 лет, то полное число операций по переключению в такой машине равно 1028. Вероятность того, что один транзистор перейдет в обратное состояние, равна только 10–43, следовательно, никогда в течение 30 лет не произойдет ошибки, вызванной тепловыми осцилляциями. Если вам это не нравится, используйте напряжение 2,5 вольта, и тогда вероятность будет еще меньше. Задолго до этого случится реальная катастрофа, когда космические лучи случайно пройдут через транзистор – нет ничего хуже.
Однако в действительности возможности гораздо шире – я хотел бы сослаться на недавнюю статью в «Scientific American» С. Беннета и Р. Ландауэра «The Fundamental Physical Limits of Computation» («Фундаментальные физические ограничения вычислений»). Можно сделать компьютер, в котором каждый элемент, каждый транзистор может действовать как в прямом, так дополнительно и в обратном направлении, и все-таки компьютер будет работать. Все операции в компьютере можно проводить в обоих направлениях. Некоторое время вычисления продолжаются одним способом, а затем он сам считает результат недействительным, «развычисляется» и снова движется вперед – и так цикл продолжается. Если его немного переконструировать, можно заставить такой компьютер последовательно анализировать и заканчивать вычисления, чтобы он был более пригоден для расчетов вперед, а не назад.
Известно, что все допустимые вычисления можно выполнять, компилируя несколько простых элементов, например транзисторов; или, если вам нужны логические абстракции, работать с так называемой схемой NAND gate (схема НЕ-И). Такая схема требует два входных «провода» и один выходной (Рис. 6).Забудем на минуту про NOT (НЕ). Что такое схема AND (И)? Схема AND – это устройство с выходом 1, только если оба входных провода представляют 1, в противном случае его выход равен 0. Схема NOT-AND (НЕ-И) означает противоположное, таким образом, выходной провод вчитывается как 1 (то есть имеет уровень напряжения, соответствующий 1), если только оба входа не дают 1. Если же оба входных провода дают 1, то выходной провод читается как 0 (имеет уровень напряжения, соответствующий 0). На рис. 6 показана небольшая таблица входных и выходных данных для схемы NAND. Aw. В —входные данные, а С представляет выход. Если оба, Аи В,равны 1, то выход есть 0, в противном случае 1. Но такое устройство необратимо: информация теряется.
Здесь я знаю только выход и не могу восстановить вход. Нельзя ждать, что устройство двинется рывком вперед, а затем вернется назад и вычислит что-нибудь правильно. Например, если мы знаем, что выход сейчас равен 1, мы не можем восстановить, произошло ли это от А = 0, В = 1, или А= 1, В = 0, или от А = 0, В = 0 – причем нельзя вернуться назад. Такое устройство представляет необратимую схему. Грандиозное открытие Беннета и независимо Фредкина состоит в том, что можно выполнять вычисления с различного рода фундаментальными схемами, например с обратимыми схемами. Проиллюстрирую их идею с помощью устройства, которое можно назвать обратимой схемой NAND. Оно имеет три входа и три выхода (Рис. 7).На выходе два значения А' и В'те же, что и на входе, а третий работает следующим образом. С' имеет то же значение, что и С, если только оба Аи Вне равны 1, в противном случае оно меняется, каким бы ни было С. Например, если С равно 1, С меняется на 0; если же С равно 0, то С меняется на 1 – но эти изменения происходят, если только оба входа Аи Вравны 1. Если вы поставите две эти схемы последовательно, вы увидите, что Аи Впроходят через схему, и если С не меняется, то С' равно С. Если же С меняется, оно меняется дважды, так что оно тоже остается постоянным. Следовательно, эта схема является обратимой, и информация не теряется.
Устройство, построенное целиком на таких схемах, выполняет вычисления при движении вперед. Но если в какой-то период времени происходит движение и вперед, и назад, в итоге оно продвигается вперед и все-таки работает правильно. Если в дальнейшем происходят рывки назад, а затем вперед, работа тем не менее остается скорректированной. Это похоже на то, как частица газа бомбардируется окружающими атомами. Такая частица обычно никуда не уходит, но при малейшем толчке, малейшей флуктуации возникает немного более вероятное движение по одному пути, а не по другому, и частица с медленным дрейфом смещается вперед и проходит от одного до другого конца, несмотря на существование броуновского движения. Так и наш компьютер будет вычислять при условии, что мы приложим дрейфовую силу, чтобы организовать вычисления. Хотя он и не выполняет вычисления плавно, он, во всяком случае, вычисляет и вперед, и назад и в конечном счете закончит работу. Как с частицей в газе, если мы ее слегка подтолкнем, она потеряет очень мало энергии, но зато ее путь от одного конца до другого займет достаточное время. Если мы спешим и подтолкнем частицу сильно – потеряем массу энергии. То же будет с компьютером. Если мы терпеливы и двигаемся медленно, мы можем заставить компьютер работать почти без потери энергии, с потерей, даже меньшей, чем кТна один шаг – со сколь угодно малыми желаемыми потерями, – если располагаем достаточным временем. Но если вы спешите, вам приходится «транжирить» энергию, ясно, что энергия теряется на полное завершение вычислений компьютера в прямом порядке; потери энергии, умноженные на время, затраченное на выполнение вычислений, – величина постоянная.
Имея в виду эти возможности, давайте посмотрим, насколько малым можно сделать компьютер. Насколько велики будут размеры? Нам всем известно, что можно записать числа в двоичном базисе, как цепочки «битов», каждая цифра – единица или ноль. Каждый атом тоже можно занумеровать нулем или единицей, поэтому маленькой цепочки атомов будет достаточно для создания некоторого числа – один атом на каждый бит. (В действительности, так как атом может находиться более чем в двух состояниях, можно было бы использовать даже меньше атомов, но один на бит – вполне достаточно!) Итак, ради интеллектуального развлечения рассмотрим, можно ли построить компьютер, в котором записываются биты атомного размера, а бит, например, означает следующее: если спин атома направлен вверх, то это соответствует единице, а вниз – нулю. И тогда наш «транзистор», в котором в различных местах меняются биты, будет соответствовать некоторому взаимодействию между атомами, которые меняют свои состояния. Простейший пример – если что-то вроде 3-атомного взаимодействия будет фундаментальным элементом или схемой в таком компьютере. Очевидно, прибор не будет работать правильно, если мы сконструируем его в соответствии с законами, свойственными большим объектам. Мы должны использовать новые законы физики, квантово-механические законы, законы, присущие атомному движению (Рис. 8).
Поэтому нам следует задать вопрос, позволяют ли принципы квантовой механики расположить атомы в таком малом количестве, которое соответствует нескольким схемам в компьютере и которые будут работать в качестве компьютера? В принципе эти вопросы изучались, и такое расположение было найдено. Так как законы квантовой механики обратимы, нам нужно воспользоваться изобретением Беннета и Фредкина об обратимых логических схемах. При изучении квантово-механической ситуации было обнаружено, что квантовая механика не накладывает дополнительных ограничений на те условия, которые мистер Беннет получил из термодинамических соображений. Безусловно, существует ограничение, практическое ограничение – биты должны соответствовать размеру атома, а транзистор – 3–4 атомам. Используемая мной квантово-механическая схема содержит 3 атома. (Я не пытался записать биты на ядрах. Прежде чем говорить о чем-то другом, я подожду, пока технологические разработки доберутся до атомов!) Мы накладываем следующие ограничивающие условия: (а) ограничения размеров размерами атома; (b) условия на энергию, зависящие от времени, как получено Беннетом; и (с) особенности, которые я не упоминал, связанные со скоростью света, – нельзя посылать сигналы со скоростью, превышающей скорость света. Вот, собственно, и все физические ограничения на компьютеры, о которых мне известно.
Если мы каким-либо образом ухитримся построить компьютер атомного размера, это будет означать (Рис. 9),что его размер, линейный размер, в тысячу – десять тысяч раз меньше самого тонкого чипа, которым мы сейчас располагаем! Это соответствует тому, что объем компьютера составит одну стомиллиардную (10 -11) от объема нынешних компьютеров, поскольку объем «транзистора» будет меньше в 10 -11раз транзисторов сегодняшнего дня. Энергия, необходимая для одного включения, тоже будет приблизительно на одиннадцать порядков меньше энергии, требуемой для включения транзистора сегодня, а время, затрачиваемое на переходы, будет по крайней мере в десять тысяч раз меньше на каждый шаг вычислений. Таким образом, существует масса возможностей для усовершенствования компьютера, и я полагаюсь здесь на вас, практикующих специалистов, работа которых непосредственно связана с компьютерами.
Я, видимо, недооценил, насколько много времени занял у мистера Езава перевод моего доклада. На сегодняшний день я рассказал все, что заранее подготовил. Большое спасибо! Если у вас есть вопросы, я готов ответить на них.
Вопросы и ответы
Вопрос: Вы упомянули, что один бит информации можно сохранить в атоме. Интересно, можно ли сохранить тот же объем информации в одном кварке?
Ответ: Да. Но мы не можем контролировать кварки, и потому иметь с ними дело совершенно нереально. Вы могли бы подумать, что я рассказывал о вещах, не имеющих практического значения, но я так не думаю. Когда я говорю об атомах, я верю, что когда-нибудь мы будем способны контролировать их индивидуально. Но во взаимодействие кварков вовлечена слишком большая энергия – ими очень опасно манипулировать из-за радиоактивности и прочих вещей. А атомные энергии, о которых я говорил, вполне привычны для нас с точки зрения и химических, и электрических энергий, и их неисчислимое множество в реальной сфере; полагаю, что абсурдным это кажется только в данный момент.
Вопрос: Вы сказали, что чем меньше элементы компьютера, тем лучше. Но я думаю, оборудование должно быть крупнее, потому что…
Ответ: Вы полагаете, что ваш палец слишком велик, чтобы нажать на кнопку?
Вопрос: Да, именно так.
Ответ: Конечно, вы правы. Я говорю о внутренних компьютерах, возможно, для роботов или других приборов. Вход и выход – это то, что я не обсуждал: является ли вход результатом взгляда на картинки, голосовым восприятием или нажатием на кнопки. Я обсуждаю, как вычисления выполняются в принципе, а не какую следует иметь форму выхода. В самом деле верно, что вход и выход нельзя в большинстве случаев эффективно уменьшать до размеров, лежащих за пределами человеческого восприятия. Уже сейчас слишком трудно нажимать на кнопки некоторых компьютеров нашими слишком большими пальцами. Но с детально разработанными проблемами счета, отнимающего часы и часы, счет надо выполнять быстро и на очень маленьких машинах, с низкоэнергетическими затратами. Как раз над машинами такого рода я и размышляю. Это не просто применение дополнительных двух чисел, а принципиальная тщательная разработка вычислений.
Вопрос: Я бы хотел узнать о вашем методе преобразования информации от одного элемента атомного уровня к другому аналогичному элементу. Если вы используете квантовую механику или естественное взаимодействие между двумя элементами, то принцип работы такого прибора приблизится к самой Природе. Например, если вы делаете компьютерное моделирование магнита по методу Монте Карло для изучения критических явлений, ваш компьютер атомного уровня будет очень близок самому магниту. Что вы об этом думаете?
Ответ: Да. Все, что мы делаем, – это Природа. Мы приспосабливаем ее под себя, например для выполнения вычислений. В магните существует некоторый тип соотношений; если хотите, там существует продолжающийся в каком-то смысле вычислительный процесс, весьма похожий на происходящее в Солнечной системе – требующий определенного осмысления. Но это могут быть не те вычисления, которые мы хотим произвести в данный момент. То, что мы хотим сделать, – это устройство, для которого можно менять программы и проводить все необходимые вычисления, а не только для проблемы магнита, которую само устройство с удовольствием готово решать. Я не могу использовать для компьютера Солнечную систему до тех пор, пока у меня не появится задача – отследить движение планет; все, что я должен буду делать в этом случае, – это наблюдать. Была забавная статья, написанная в качестве шутки. В далеком будущем появляется «статья», в которой обсуждается новый метод выполнения аэродинамических вычислений: вместо применения компьютеров сегодняшнего дня автор изобретает простой прибор для продувания воздуха за крылом. (Он заново изобрел аэродинамическую трубу!)
Вопрос: Я недавно прочитал в газете статью о том, что работа нервной системы в человеческом мозге гораздо медленнее компьютеров настоящего времени, а элемент нервной системы гораздо меньше. Не думаете ли вы, что компьютеры, о которых вы рассказывали сегодня, имеют что-то общее с работой нервной системы мозга?
Ответ: Существует аналогия между мозгом и компьютером в том отношении, что, несомненно, существуют элементы, которые можно включить под контролем других. Нервные импульсы контролируют или возбуждают другие нервы; в известном смысле это часто зависит от того, сколько было получено импульсов – что-то вроде AND или его обобщения. Сколько энергии затрачивает клетка мозга на один такой переход? Я не знаю числа. Время, требуемое для включения в мозге, намного больше аналогичного времени даже в современных компьютерах, не говоря уже о воображаемом атомном компьютере будущего, но система внутренних связей в мозге разработана значительно детальнее. Каждый нерв соединен с тысячами других, а транзистор мы соединяем только с двумя-тремя.
Некоторые смотрят на деятельность мозга, как на работу механизма, и видят, что во многих отношениях он превосходит современные компьютеры, а во многих отношениях компьютер превосходит мозг. Эту тему инспирируют конструкторы машин, стремящиеся заложить в них все больше возможностей. Нередко случается, что у инженера возникает мысль, как работает мозг (по его мнению), и он конструирует машину, которая ведет себя подобным образом. Такая новая машина действительно может работать очень хорошо. Но я должен предупредить, что ничего не рассказывал о том, как работает мозг, и так ли важно знать об этом, чтобы создать работоспособный компьютер. Для создания летательного аппарата не обязательно понимать, каким образом птицы машут крыльями и как учесть в конструкции эти особенности. Не нужно понимать устройство двигательной системы лап гепарда – животного, бегающего очень быстро, – чтобы сконструировать автомобиль с колесами, которые вертятся очень быстро. Поэтому для создания устройства, на много порядков превышающего возможности Природы, нет необходимости имитировать ее детальное поведение. Это интересная тема, и я хотел бы поговорить об этом.
Ваш мозг очень слаб по сравнению с компьютером. Я задам серию чисел: один, три, семь… Или, лучше: ichi, san, ni, go, ichi, hachi, ichi, ni, ku, san, go [8]8
Японские цифры: один, три, два, пять, один, восемь, один, два, девять, три, пять.
[Закрыть]. А теперь я хотел бы, чтобы вы повторили их в обратном порядке. Компьютер может вместить десятки тысяч чисел и выдать их мне в обратном порядке или взять их сумму, или выполнить массу других вещей, которые мы сами сделать не можем. С другой стороны, если я рассматриваю лицо, глаза человека, я могу сказать, кто это, если знаю этого человека, или сказать, что не знаю его. Мы пока еще не понимаем, как создать такую компьютерную систему, которая выдавала бы нам подобную информацию при задании черт лица даже при условии, что вы ее учили и она видела множество лиц.
Другой интересный пример – машины, играющие в шахматы. Просто удивительно, что мы можем создавать машины, которые играют в шахматы лучше, чем почти все присутствующие здесь. Но они делают это, перебирая множество вариантов. Компьютер двигает фигуру, я могу передвинуть фигуру, потом опять он и так далее. Компьютеры просматривают каждую альтернативу и выбирают лучший вариант. Они пересматривают миллионы альтернатив, однако человек, владеющий шахматной игрой, делает это иначе. Он распознает рисунок, структуру. Перед тем как сделать ход, он просматривает только тридцать или сорок позиций. Поэтому, хотя правила при игре в Го проще, машины играют в Го довольно плохо, поскольку в каждой позиции существует слишком много возможностей сделать ход и слишком много вещей, которые надо проверить, – машины не могут смотреть так глубоко. Проблема распознавания рисунка, структуры и что делать в данных обстоятельствах – это то, что пока инженерам (они любят называть себя учеными-компьютерщиками) дается с трудом. Это, безусловно, одна из важнейших задач компьютеров будущего – возможно, более важная, чем то, о чем я говорил. Заставим машины эффективно играть в Го!
Вопрос: Думаю, что всякий метод вычислений не будет плодотворным, пока он не начнет сам составлять такие устройства или программы. Я размышлял над статьей Фредкина по консервативной логике, она очень интригующая, но как только я подумал о составлении простой программы, используя такие устройства, я запутался, так как подобная программа значительно сложнее обычной программы. Думаю, мы легко получим некоторую бесконечную регрессию, поскольку процесс создания определенной программы будет более сложным, чем сама программа, и при попытке автоматизировать программу автоматизированная программа будет намного сложнее и так далее, особенно если программа жестко смонтирована, а не отделяется от компьютера, как обычные программы. Полагаю, это основной вопрос – понять методику построения.
Ответ: У нас несколько иной опыт. Нет никакой бесконечной регрессии: она останавливается при некотором уровне сложности. Машина, о которой так ясно говорит Фредкин, и та, о которой рассказывал я в случае квантовой механики, представляют универсальные компьютеры в том смысле, что они могут быть запрограммированы и выполнять различную работу. Это не жестко смонтированная программа. Они являются не более жестко смонтированными, чем обычный компьютер, в который можно заложить информацию – программа представляет часть входных данных, – и машина решает поставленные задачи. Она с жестко смонтированной программой, но она и универсальна, как обычный компьютер. Такие вещи очень неопределенны, но я нашел алгоритм. Если у вас есть программа, написанная для необратимой машины – обычная программа, – тогда я могу преобразовать ее в обратимую машинную программу с помощью схемы прямого преобразования, которая очень неэффективна и использует много больше пошаговых операций. В реальных ситуациях число шагов может оказаться гораздо меньше. Но я по крайней мере знаю, что могу взять программу с 2n шагами, которая необратима, и преобразовать ее в обратимую программу с 3n шагами. Появилось гораздо больше шагов. Я сделал очень неэффективную программу, поскольку не пытался найти минимум – единственный разумный способ для создания более эффективной программы. Я в самом деле не думаю, что вы нашли регрессию, о которой упомянули – может быть, вы правы, но я не уверен.
Вопрос: Разве мы не жертвуем многими достоинствами таких устройств – ведь обратимые машины работают достаточно медленно? Я весьма пессимистически настроен на этот счет.
Ответ: Они работают медленнее, но они значительно меньше. Я не делаю их обратимыми, пока мне это не понадобится. Нет смысла делать эти машины обратимыми, если только вы не пытаетесь снизить энергию грандиозно, почти абсурдно, так как необратимые машины хорошо функционируют только при энергиях, в 80 раз превышающих кТ.Но 80 – это много меньше современных энергий 109 или 1010 кТ,и я по крайней мере произведу улучшение по энергии в 107 раз, причем смогу это сделать еще с необратимыми машинами! И это факт. Для настоящего момента это верный путь продвинуться вперед. Ради интеллектуального развлечения я задал вопрос, насколько далеко мы можем продвинуться принципиально, не практически, – и тогда я открыл, что можно продвигаться по энергии до долей кТ,сделать машины микроскопическими, микроскопическими в смысле атомных размеров. Но для этого я должен использовать обратимые физические законы. Необратимость возникает, если тепло распространяется по большому количеству атомов, и его нельзя собрать обратно. Когда я делаю машину очень маленькой, если только в ней не будет охлаждающего элемента, который будет состоять из множества атомов, – я должен работать обратимо. Практически, возможно, никогда и не наступит время, когда вам захочется привязать маленький компьютер к большому куску свинца, который содержит 1010 атомов (это все еще очень мало), сделав его эффективно необратимым. Поэтому я соглашусь с вами, что на практике в течение долгого времени или, возможно, всегда мы будем пользоваться необратимыми схемами. С другой стороны, почему бы не позволить себе небольшое приключение в науке – попытаться найти ограничения на размеры во всех направлениях – и расширить границы человеческого воображения? Хотя на каждом этапе эта деятельность выглядит абсурдной и бесполезной, часто оказывается, что по меньшей мере она не лишена пользы.
Вопрос: Существуют ли какие-нибудь ограничения, связанные с принципом неопределенности? Есть ли фундаментальные ограничения на энергию и шкалу времени в вашей схеме обратимой машины?
Ответ: Моя точка зрения такова. Нет никаких других квантово-механических ограничений. Надо тщательно различать понятия необратимых потерь или расхода энергии, тепловой энергии, генерируемой при работе машины, и энергии движущихся частей, которые можно извлекать из машины. Существует соотношение между временем и энергией, которую можно извлекать. Но именно эта энергия не имеет значения и не важна для рассмотрения. Лучше задать вопрос, добавляем ли мы тс 2,энергию покоя всех атомов, которые есть в устройстве? Я скажу только о потере энергии, умноженной на время – на эту величину нет ограничений. Однако верно и то, что если вам надо выполнить вычисления с некоторой экстремально высокой скоростью, то вы должны снабдить машину быстро движущимися частями, обладающими энергией, но эта энергия не связана с потерями на каждом этапе вычислений; она проходит через прибор благодаря инерции.
Ответ ( обращаясь ко всем, а не только к автору вопроса):Коль скоро я затронул вопрос о бесполезности идей, мне хотелось бы кое-что добавить. Я ждал, спросите ли вы меня, но вы не задали этот вопрос. И все-таки я отвечу на него. Как построить машину с такими малыми размерами, чтобы нам пришлось разместить атомы на специальных местах? Сегодня у нас нет аппаратуры с движущимися деталями, размеры которых экстремально малы, в масштабах атомов или сотен атомов, но не существует никаких физических ограничений в каждом направлении. Когда мы укладываем кремний даже в сегодняшних условиях, нет причин, почему бы его маленькие кусочки нельзя было разложить в виде маленьких островков, так чтобы они были подвижными. Мы могли бы также разместить маленькие струйки так, чтобы можно было выдавливать различные химикалии в определенных местах. Мы можем сконструировать аппаратуру, которая исключительно мала, такую аппаратуру легко контролировать нашими компьютерными схемами. Разумеется, ради шутки и интеллектуального удовольствия вообразим машины в несколько микрон в поперечнике с колесиками и кабелями, соединенными внутри проводками, кремниевыми соединениями, так что все это вместе – очень большое устройство, движущееся не как неуклюжие тугоподвижные машины, а плавно, как лебединая шея. И вдобавок это устройство представляет целый набор маленьких машин, все клеточки которых взаимно соединены и все мягко контролируются. Почему бы нам самим не сделать этого?