Проект FAIM-1

Целью проекта FAIM-1 является создание символьного процессора высокого класса, который более чем в 100 раз превосходил бы по скорости существующие (например, DEC VAX-11/780) и был бы пригоден для будущих приложений исследований в области искусственного интеллекта.

FAIM-1 — многопроцессорная система, представляющая собой набор одинаковых элементов — гектагонов, которые объединены в сеть. Каждый гектагон может, подобно отдельному компьютеру, выполнять в последовательном режиме оттранслированную программу, хранящуюся в его памяти. Гектагоны взаимодействуют друг с другом посредством сообщений, которые они передают и принимают через порты ввода-вывода. Каждый гектагон имеет шесть таких портов, способных работать одновременно.

Архитектура системы FAIM-1 позволяет объединять любое количество гектагонов, при этом каждый из них оказывается связанным с шестью соседними. Сеть гектагонов способна обеспечить параллелизм очень высокого уровня и поэтому является прекрасным инструментом для реализации параллельных вычислений в будущих системах искусственного интеллекта. Более того, каждый гектагон сам представляет собой шесть работающих параллельно подсистем, каждая из которых осуществляет определенную процедуру обработки символьной информации.

Гектагон состоит из шести независимых подсистем: FRISC, SRAM, ISM, СхАМ, SPUN и Почта. Три из них (ISM, СхАМ и SRAM) являются специальными системами, организующими «разумную» работу памяти; остальные осуществляют связь между гектагонами (Почта), выполнение программ (FRISC) и унификацию (SPON). Опишем вкратце каждую из этих подсистем.

FRISC. Процессор с очень сильно ограниченной системой команд соответствует центральному процессору в обычных компьютерах. Это машина со стековой организацией, которая использует 20-разрядные слова, состоящие из 16-разрядного поля данных и 4-разрядного поля меток. Биты меток и поддерживаемые аппаратно операции над ними обеспечивают выполнение «универсальных- процедур.

SRAM. Процессор FRISC рассматривает большинство структур данных как объекты; обычная память, объединенная с небольшим конечным автоматом (все это и называется SRAM), представляет собой объектно-ориентированную память для системы FR1SC. Например, используя биты меток, SRAM может организовать цепь указателей с целью найти объект, запрошенный процессором FRISC.

ISM. Устройство, хранящее команды и с высокой скоростью передающее их процессору. Оно берет на себя функции вычисления адреса очередной команды, что обычно делается процессором.

СхАМ. Подсистема контекстно-адресуемой памяти представляет собой аппаратную реализацию важных функций сопоставления, которые часто встречаются в программах, осуществляющих обработку символов. Данные и запросы, обрабатываемые системой СхАМ, имеют вид S-выражений. Каждый слот, следовательно, может быть либо структурой, либо атомом. К атомам относятся символы, числа, переменные и «все что угодно». Система СхАМ выполняет четыре команды: найти соответствие, установить соответствие, добавить структуру и удалить структуру. Система сама следит за заполнением своей памяти и автоматически удаляет «мусор», т. е. уже использованные фрагменты.

SPUN. Конвейерный унификатор, обеспечивающий аппаратную реализацию логического программирования. СхАМ выдает очередное правило, которое следует проверить, но не проводит полной унификации, поскольку не исследует значения переменных. Устройство SPUN исследует запрос и поток сопоставляемых струкзур, находит переменные, которые следует сопоставить, получает их текущие значения из памяти SRAM и заканчивает унификацию. При этом может произойти означивание переменных — в этом случае SPUN посылает их значения обратно в SRAM. В более сложных случаях SPUN прерывает FRISC, обращаясь к нему за помощью.

Почта. Гектагоны осуществляют связь между собой, посылая Друг Другу сообщения. Задача Почты — следить за этим процессом. Ксли принятое каким-либо гектагоном сообщение адресовано не ему, а другому гектагону, не являющемуся его непосредственным соседом, то Почта пересылает сообщение по адресу — как правило, тому соседу, который находится со стороны пункта назначения адресата.

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