Радость познания - Ричард Фейнман
Шрифт:
Интервал:
Закладка:
Еще один способ — наполнить резервуар с помощью источника напряжения, который устанавливается лишь не намного выше уровня воды. Источник своевременно поднимается, когда мы заполняем резервуар (Рис. 3),так что перепад уровня воды всегда мал на протяжении всего опыта. Таким же образом мы могли бы воспользоваться выпускным отверстием для понижения уровня в резервуаре, но сбрасывать воду вблизи верха и низа трубки так, чтобы тепловые потери в месте расположения транзистора не возникали или были небольшими. Реальный объем потерь будет зависеть от того, насколько велико расстояние между источником напряжения и поверхностью воды, когда мы наполняем резервуар. Этот метод соответствует изменению со временем подачи напряжения на источник. Итак, если пользоваться источником с меняющимся со временем напряжением, то можно применять этот метод. Безусловно, существуют потери энергии в самом источнике, но все они локализованы в одном месте, где несложно создать одну большую индуктивность. Эта схема называется «горячие часы», так как источник напряжения работает одновременно и как часы, которые фиксируют продолжительность чего-либо. Кроме того, нам не требуется дополнительного сигнала часов, чтобы измерять циклы, как это делается в обычных конструкциях.
Оба последних устройства используют тем меньше энергии, чем медленнее они движутся. Действительно, схема U-образной трубки не будет работать, пока ее центральный кран не сможет открываться и закрываться медленнее, чем вода в трубке будет успевать перетекать туда и обратно. Следовательно, мои устройства должны быть медленными, я сохранил энергетические потери, но сделал устройства медленными. Фактически энергетические потери, умноженные на время, необходимое для рабочего цикла, остаются постоянными. И все-таки это оказывается очень удобным, поскольку время, показываемое часами, много больше времени цикла для транзисторов, и мы можем этим воспользоваться, чтобы понизить энергию. Кроме того, если, к примеру, мы выполняем вычисления в три раза медленнее, мы могли бы использовать одну треть энергии три раза за время, которое содержит в девять раз меньшую мощность, чем должна растрачиваться. Может быть, это стоящая мысль. Может быть, при конструировании с применением параллельного соединения компьютеров или при других способах работы мы затратим немного больше времени, чем при максимальной скорости цикла, сделаем машины больше, чем обычно, но при этом еще снизим энергетические потери.
Для транзистора энергетические потери, умноженные на время, затрачиваемое на работу, являются результатом умножения нескольких факторов (Рис. 4):
1. Тепловой энергии, пропорциональной температуре, кТ,
2. Длины транзистора между источником и выводом тока, деленной на скорость внутренних электронов (тепловая скорость √3kT/m);
3. Длины транзистора в единицах среднего свободного пробега электронов до соударения в транзисторе;
4. Полного числа электронов, находящихся внутри транзистора во время его работы.
Подставляя соответствующие значения всех этих величин, получим, что энергия, используемая в транзисторах, в настоящее время приблизительно в миллиард — десять миллиардов или еще больше раз тепловой энергии кТ. Когда транзистор включен, он использует эту огромную энергию. Это очень большая величина. Безусловно, хорошая мысль — уменьшить размеры транзистора. Мы уменьшаем длину между источником и выводом тока и можем уменьшить число электронов, тем самым существенно понизив энергию. Оказывается, что чем меньше транзистор, тем быстрее он работает, так как электроны могут проходить через него быстрее и быстрее его включать. Исходя из любых соображений, хорошо бы сделать транзистор поменьше, и все пытаются это сделать.
А теперь представьте себе, что нам удалось сделать размер транзистора меньше средней длины свободного пробега. Тогда транзистор уже не будет работать должным образом. Он не будет вести себя так, как мы предполагаем. Это напоминает мне, как еще несколько лет назад считался непреодолимым звуковой барьер. Считалось, что самолеты не могут летать со скоростью, превышающей скорость звука, поскольку, если вы их сконструируете обычным образом и затем попытаетесь вставить скорость звука в уравнения, пропеллер не сможет работать, а крылья не будут обладать подъемной силой, и вообще все будет работать неправильно. Тем не менее самолеты летают со скоростью, превышающей скорость звука. Необходимо понимать, что правильные законы подчиняются правильным условиям, и конструировать приборы необходимо согласно этим законам. Нельзя ждать, что старые разработки будут работать в новых обстоятельствах. В новых обстоятельствах могут работать только новые проекты. И я утверждаю, что абсолютно допустимо делать транзисторные системы, или, более правильно, системы коммутации и компьютерные устройства, размеры которых меньше средней длины свободного пробега. Я говорю, конечно, «принципиально возможно», здесь речь не идет о реальном производстве таких устройств. Давайте обсудим, что произойдет, если мы попытаемся максимально уменьшить размер приборов.
Уменьшение размеров
Итак, моя третья тема — размер компьютерных элементов, и здесь мои предложения носят исключительно теоретический характер. Первое, о чем вам следует беспокоиться, когда изделие становится очень маленьким, — это броуновское движение[7] — все вокруг движется, вибрирует, и ничто не стоит на месте. Как в таком случае можно контролировать схемы? Более того, если схема действительно работает, разве она не имеет возможности случайно совершить обратный скачок? Если мы возьмем обычно используемое напряжение 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. Если вы поставите две эти схемы последовательно, вы увидите, что А и В проходят через схему, и если С не меняется, то С' равно С. Если же С меняется, оно меняется дважды, так что оно тоже остается постоянным. Следовательно, эта схема является обратимой, и информация не теряется.