au, 12.01.2004 17:28:32 :
Проблема в другом. Я подразумеваю ЦИФРОВОЙ ПРОГРАММИРУЕМЫЙ комп на оптических компонентах, в общем случае универсальный, а вы предлагаете АНАЛОГОВЫЙ оптический вычитель, или точнее сказать схему, которая сможет выполнять одну функцию, или несколько близких. Такое можно куда-то в ниши приткнуть, но это будет экзотика из экзотики. Есть уже сетевые маршрутизаторы (или что-то такое) полностью оптические, но это не комп.
Насчёт обработки изображений. Вот я занимаюсь этим, и прицел в основном на FPGA (ASIC слишком круто, да и ограничивает), и как опция возможность работы на обычном процессоре с потерей скорости это для очень маленьких изображений и скоростей. При этом система планируется (с самого начала!) так, чтобы с одной стороны заходил сигнал от камеры (под гигабит/с), а с другой выходили сигналы в килобиты/с интересующие характеристики изображения. Никаких внешних памятей под сигнал, винтов, шин и прочих подобных вещей там не будет, отчего и возможно линейное увеличение скорости обработки (ограниченное возможностями камеры) с ростом тактовой, и линейное увеличение сложности анализа изображений (ограниченное ресурсами чипа). Тактовая чипа ожидается в районе пары сотен МГц (тактовая сигнала от камеры 66МГц), а сколько он там операций в секунду будет делать я понятия не имею, можно только сказать сколько видеоданных он будет обрабатывать в секунду. Кстати, с самого начала было посчитано что с учётом всех ожидаемых прогрессов, что реализовывать мою задачу обработки изображений на последовательных процессорах бессмысленно они просто непригодны. Либо при нужной скорости будет неприемлемое потребление энергии, либо цена.
Вот такой у меня "оптический комп" вырисовывается.
Я Вас понимаю.
Цифровой. Программируемый. Да.
Я привел пример подхода к процессингу, к самому оптическому компу оно имеет отношение примерно такое же, как электромагнитный пускатель с двумя парами контактов - к пентиуму4.
Я просто не знаю, как нагляднее, не залезая во всякости показать разницу подхода.
Представьте себе кристалл в 1 кубический сантиметр. Представьте себе, что в кристалле построена сверхрешетка из оптических сумматоров (на каких-нить редких землях) в комплексе с глубокими ловушками (например, на КПЗ - комплексах с переносом заряда). Засвечивая кристалл определенным образом с разных граней разными длинами волн мы формируем там объемную картинку из зон с "неправильными" коэфициентами преломления для какой-то третей длины волны.
Теперь если пропустить через кристалл "слово" (картинку- поток света) с этой третьей длиной волны, на выходе мы получим ее преобразованной по тому интерфереционному закону, что мы сформировали.
Математически это будет выглядеть примерно так: преобразование матрицы с помощью заданного тензора третьего ранга в матрицу. Исходная-конечная матрица, допустим, 30000х30000 элементов, это значит, что одной операцией (а их может быть сотни миллиардов в секунду) мы с помощью 30-ти терабитного массива обрабатываем слово в гигабит. Если мы захотим, то можем сделать так, что какие-то ячейки в момент прохождения слова будут изменяться, сами подготавливая базу для следующей операции - улавливаете мощь местного "автоинкримента"? Впрочем, если захотим, можем использовать кристалл как тупой перемножитель двух гигабитных слов с последующей сверткой... как сумматор. Можем как хранилище инфы для обработки: конечно, терабайт - это немного, но ведь и у обычного компа память регистров небольшая. А для хранения объемных данных есть другие блоки, за счет игры с фазами, вполне можно добиться бита на 10х10х10 нм (пока никто не заметил - поправил
). Это примерно 10Е18бит на кубический сантиметр - стоит того, чтобы подумать над этим, не так ли?
Оцените мощь по сравнению с любым перспективным линейным электронным компом.
Да, тут есть та же линейность. Но разрядность операций - это дает другой уровень. Например, задачу распознавания образов легко свести к векторному перемножению матрицы на тензор третьего ранга с поледующей сверткой... да, у нас не перемножение... а если подумать?
Один раз создав и записав образ в процессор-память можно распознавать образы с почти терагерцовой частотой - плохо ли?
Кстати, "элемент" матрицы-слова не обязан быть однобитным. Оцените и это.
Управляющие слова, команды разрядностью в терабайты - это непривычно, да. Ассемблер специфический. Ну дык, всегда есть посредники-помошники из потомков машинки Тьюринга.
Вычисления синусов-косинусов, свертки и прочие обратные фурье на этом фоне выглядят неинтересно. Если потребуется, их можно выдавать на-гора в таком количестве, что задохнется любая электроника интерфейса. Да, кстати, все это практически без потерь энергии по дороге - только преобразование. Потребляемая мощность - все те же милливатты.
Короче, смысл есть. Путь извилист, но перспективы, в общем, довольно светлые.
...
А насчет ПЛИС... да, я давно жалею, что в состав типичного компа (или его процессора) не входит хорошая ПЛИС-матрица. И, к сожалению, из-за многозадачности опсистем и косности программеров это уже вряд ли будет реализовано. Чудес понаворотить можно было бы много.
Был шанс с видеопроцессорами. Упустили. Опять все вылилось в линейное программирование, увы.