элементов, которые обычно называют вентилями НЕ, И и ИЛИ. Объединяя большие количества этих простых вентилей, выполняющих основные логические операции, можно создать практически неограниченно сложный компьютер.
Логические элементы совершают действия над числами, или, точнее, их представлениями. Любое число можно записать или представить в двоичной форме — в виде последовательности единиц и нулей:
10101010100001101010….
Число сто, к примеру, можно записать как
1100100
Первой проблемой при создании компьютера на основе черных дыр является необходимость представления двоичных чисел с помощью этих самых черных дыр. Быть может, самый простой способ достичь этой цели — использовать последовательность черных дыр, движущихся в космическом пространстве, в качестве строки знаков. Представьте линию, состоящую из пробелов, разделенных постоянными интервалами. Каждый пробел в этой линии может заполнить или не заполнить черная дыра. Если в каком-то конкретном сегменте присутствует черная дыра, то создаваемое нами число имеет в данной позиции единицу (1). С другой стороны, если этот пробел пуст, значит, в данной позиции наше число имеет нуль (0). Чтобы представить число сто, нам понадобится строка из семи пробелов с черными дырами в третьей, шестой и седьмой позициях (считая от первого знака справа). Для представления больших чисел необходимы более длинные строки черных дыр и пробелов.
Теперь, когда мы разобрались с представлениями чисел, мы можем создать логические вентили, которые совершают над этими числами различные операции. В качестве первого примера построим вентиль ИЛИ, который берет в качестве входных данных два числа и создает единый выходной поток. Два входящих числа представлены в двоичной форме и могут быть расположены так, чтобы первые знаки каждого числа оказались рядом. Если хоть одна из входящих цифровых строк имеет в данном месте 1, то выходящий поток тоже имеет в этой позиции 1. Например, допустим, что входящими потоками являются
101000101110
и
010101010101
После прохождения этих чисел через логический вентиль ИЛИ выходной поток — новое число — имеет вид
111101111111
Чтобы осуществить эту операцию с помощью строк черных дыр, представляющих числа, мы должны создать гравитационную потенциальную яму (или силовое поле), направляющую два потока черных дыр рядом. По мере сближения двух строк черных дыр между ними возникает гравитационное притяжение. Как только расстояние между двумя потоками становится намного меньше расстояния между двумя последовательными пробелами в каждом из потоков, черные дыры (если таковые в данном сегменте присутствуют) сливаются друг с другом, образуя новые черные дыры. Таким образом, мы создали логический вентиль ИЛИ. Если хотя бы у одного из входящих потоков в данной позиции имеется черная дыра, выходящий поток тоже имеет в этой позиции черную дыру (см. рис. 20).
Рис 20 На данной диаграмме приводится принцип работы компьютера на основе черных дыр В верхней части диаграммы изображен гравитационный вентиль ИЛИ. Два потока черных дыр (два «числа») входят в логический элемент, и только один поток выходит из него (одно выходное «число») Данная позиция выходного потока содержит черную дыру в том случае, если соответствующая позиция была занята хотя бы в одном из входящих потоков В средней части диаграммы показан гравитационный вентиль И. Выходное число, вновь представленное строкой черных дыр, имеет в данной позиции черную дыру тогда и только тогда, когда черную дыру в этой позиции имеют оба входящих потока знаков В нижней части диаграммы изображен гравитационный вентиль НЕ. Всего одно число, строка черных дыр, входит в этот логический вентиль, который преобразует черные дыры в пробелы, а пробелы — в черные дыры
Построим теперь логический вентиль НЕ. В этом логическом элементе используется только один входящий поток знаков. Логический элемент НЕ изменяет все знаки входящего потока. Все единицы превращаются в нули, а все нули — в единицы. Например, под действием логического элемента НЕ входящий поток
11010001
превращается в выходящий поток
00101110
Чтобы создать логический вентиль НЕ для строк черных дыр, мы выполняем довольно дорогостоящую процедуру. Вентиль НЕ сам по себе является непрерывным потоком черных дыр — контрольной строкой, в каждом пробеле которой имеется черная дыра. Этот контрольный поток направляется перпендикулярно входящему потоку, входящему числу. Выходящий поток является частью контрольного потока (но не входящего), остающейся после пересечения двух потоков Если в данной позиции входящего потока присутствует черная дыра, происходит столкновение Полный импульс продукта этого столкновения удаляет его из потока, и в выходящем потоке образуется пробел (нуль) Таким образом, если в логический вентиль НЕ входит черная дыра, то из него выходит пробел Если в данной позиции входящего потока черной дыры нет, то черная дыра из контрольного потока переходит в выходной поток без изменений Таким образом, если в логический вентиль НЕ входит пробел, то из него выходит черная дыра. Как и требовалось, наш логический вентиль НЕ превращает черные дыры в пробелы, а пробелы — в черные дыры (см. рисунок 20).
Третий и последний логический элемент, называемый вентилем И, преобразует два входящих числа в одно выходящее. Выходящая строка знаков содержит в некоторой позиции единицу тогда и только тогда, когда обе входящие строки имеют в данной позиции единицы. В противном случае, если в данной позиции одного из входящих потоков содержится нуль, выходящий поток в этой позиции имеет нуль. Взяв те же две входящие строки, что и ранее,
101000101110
и
010101010101
логический вентиль И создает выходящий поток (число)
000000000100
Чтобы сделать логический вентиль И с помощью черных дыр, мы начинаем с концепции логического вентиля НЕ, сконструированного ранее. Первый входящий поток черных дыр пропускается через логический вентиль НЕ так, что выходящим потоком этого взаимодействия является «противоположность» исходного входящего потока. Затем этот обработанный поток помещается на траекторию столкновения со вторым входящим потоком. Оставшаяся часть обработанного потока, после столкновения со вторым входящим потоком, становится выходящим потоком всего логического вентиля И (см. рисунок 20).
Посмотрим, как работает этот логический элемент. Рассмотрим некоторую позицию в потоке. Если входящий поток номер один имеет в этой позиции черную дыру, то его обработанная противоположность имеет в данной позиции пробел. Затем этот пробел взаимодействует со вторым входным потоком. Если второй входной поток тоже содержит черную дыру, черная дыра появится и в выходном потоке. Таким образом, чтобы выходящий поток имел черную дыру, оба входящих потока должны иметь черную дыру в данной позиции.
Несмотря на всю простоту этих операций, имея достаточное количество логических вентилей, можно построить вычислительную машину огромной сложности. В принципе. На практике же компьютер, построенный из этих логических элементов, будет отягощен тремя важными факторами: неустойчивостью, рассеянием и испарением самих его составляющих. Неустойчивость приводит к разрушению всей системы из-за внутренних взаимодействий ее составляющих. Рассеяние приводит к потере энергии и искривлению орбит черных дыр. Наконец, сами черные дыры имеют хотя и долгое, но конечное, время жизни. Ясно, что,