Смекни!
smekni.com

Компьютер Фибоначчи (стр. 2 из 3)

Заказчиком, в качестве которого выступала головная компьютерная организация МОМ, было сформулировано три основных направления научных и опытно-конструкторских разработок:

проектирование самоконтролирующегося процессора Фибоначчи для специальных применений;

проектирование самокорректирующихся "фибоначчиевых" аналого-цифровых и цифро-аналоговых преобразователей высокой точности и метрологической стабильности;

проектирование самосинхронизирующихся систем цифровой магнитной записи и волоконно-оптических систем передачи информации.

К этим разработкам в СКТБ было подключено около 200 сотрудников.

Первая микросхема

Одним из важнейших направлений инженерных разработок СКТБ "Модуль" стало создание элементной базы компьютеров Фибоначчи, на чем особенно настаивал "заказчик". В перспективе планировалось, что такая элементная база станет основой для проектирования бортового высоконадежного компьютера Фибоначчи (Ф-компьютера) для специальных применений.

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

Устройство приведения кода Фибоначчи к минимальной форме

Один из возможных вариантов такого устройства показан на рисунке. Устройство состоит из пяти R-S-триггеров и логических элементов AND, OR (И, ИЛИ), которые предназначены для реализации "свертки". Операция "свертки" выполняется, начиная с младшего триггера T1 к старшему триггеру T5, с помощью логических элементов AND1 - AND5 и соответствующих логических элементов OR (ИЛИ), расположенных перед R- и С-входами соответствующих триггеров. Логический элемент AND1 реализует "свертку" 1-го разряда во 2-й разряд регистра. Два его входа связаны с прямым выходом триггера T1 и "инверсным" выходом триггера T2. Третий вход связан с сигналом синхронизации C. Логический элемент AND1 анализирует состояния Q1 и Q2 триггеров T1 и T2. Если Q1 = 1 и Q2 = 0, это означает, что условие "свертки" для 1-го и 2-го разрядов выполняется. Синхросигнал C = 1 является причиной появления логической 1 на выходе элемента AND1. Эта логическая 1 вызывает переключение триггеров T1 и T2 в противоположное состояние, что приводит к выполнению операции "свертки" над первыми двумя разрядами регистра. Логический элемент ANDk k-го разряда (k = 2, 3, 4, 5) реализует операцию "свертки" (k - 1)-го и k-го разрядов в (k + 1)-й разряд. Три его входа связаны с "прямыми" выходами триггеров Tk - 1 и Tk и "инверсным" выходом триггера Tk + 1. Четвертый вход связан с синхросигналом C. Логический элемент ANDk анализирует состояния Qk - 1, Qk и Qk + 1 триггеров Tk - 1, Tk и Tk + 1. Если Qk - 1 = 1, Qk = 1 и Qk + 1 = 0, это означает, что условие "свертки" выполняется. Синхросигнал C = 1 приводит к переключению триггеров Tk - 1, Tk, и Tk + 1. При этом выполняется операция "свертки" над соответствующими разрядами (011 → 100). Заметим, что все элементы AND1 - AND5 связаны через общий логический элемент ORC с контрольным выходом регистра "свертки". Устройство, изображенное на рисунке, работает следующим образом. Входная кодовая информация поступает на входы 1-5 устройства и далее - на S-входы триггеров через соответствующие логические элементы OR.

Пусть исходное состояние регистра, составляющего основу устройства, следующее:

5 4 3 2 1

0 1 0 1 1

Ясно, что условие "свертки" выполняется только для 1-го, 2-го и 3-го разрядов. Синхросигнал C = 1 приводит к переходу регистра в следующее состояние:

5 4 3 2 1

0 1 1 0 0

Здесь условие "свертки" выполняется только для 3-го, 4-го и 5-го разрядов. Очередной синхросигнал C = 1 приводит к переходу регистра в следующее состояние:

5 4 3 2 1

1 0 0 0 0

Приведение исходной кодовой комбинации 0 1 0 1 1 к "минимальной форме" закончилось.

Компьютер Фибоначчи и ВОЛС

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

Какой вид неисправной работы наиболее характерен для электронных элементов? Установлено, что сбои в этих элементах, в частности в триггерах, возникают чаще, чем постоянные отказы. Существует два режима работы электронных элементов: 1) режим, когда элемент находится в стабильном (устойчивом) состоянии, и 2) режим переключения, когда элемент переключается из одного устойчивого состояния в другое. Экспериментально доказано, что интенсивность сбоев триггеров во втором режиме на 2-3 порядка больше, чем в первом. Отсюда вытекает, что сбои триггеров в режиме переключения являются наиболее вероятной причиной ненадежного функционирования процессоров. Вот почему проектирование самоконтролирующихся цифровых автоматов, гарантирующих эффективный контроль сбоев триггеров, - одна из важнейших проблем проектирования высоконадежных процессоров.

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

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

Напомним, что свертка и развертка представляют собой следующие кодовые преобразования, выполняемые в рамках одного и того же "фибоначчиевого" или "золотого" представления:

свертка:

0 1 1 → 1 0 0

развертка:

1 0 0 → 0 1 1

Микрооперация перемещение является двуместной микрооперацией и реализуется над одним и тем же разрядом двух регистров: верхнего регистра A и нижнего регистра B. Если регистр A имеет двоичную цифру 1 в k-м разряде, а регистр B - двоичную цифру 0 в том же самом разряде, мы можем реализовать микрооперацию перемещения. Это означает, что мы передвигаем цифру 1 из верхнего регистра A в нижний регистр B:

1 0

↓ =

1 0

Микрооперация поглощение также является двуместной операцией и состоит в том, что две двоичные цифры 1 одного и того же разряда регистров A и B взаимно уничтожаются, то есть заменяются двоичными цифрами 0:

1 0

=

1 0

(О том, как из перечисленных микроопераций строятся операции сложения и вычитания, а также доказывается их помехозащищенность, можно узнать из полной версии статьи на сайте компьютерного музея http://www.computer-museum.ru/ - Прим. ред.)

Мы доказали, что базовые микрооперации обладают функциональной полнотой, т. е. к ним могут быть сведены все возможные логические и арифметические операции. Следовательно, мы можем проектировать полностью помехозащищенный Ф-процессор и компьютер на основе базовых микроопераций.

К сожалению, СКТБ "Модуль" не имело специальных САПР и поэтому проектирование велось сотрудниками СКТБ с использованием САПР НПО "Научный центр" (г. Зеленоград). Там же изготовили 100 опытных образцов такой микросхемы на основе БИС КР 1801 ВП1-124.

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

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