Моделирование трехмерной памяти
Поскольку компьютер, реализующий "живую" модель, несомненно, должен обладать рядом свойств, обнаруживаемых в процессе дальнейшего изложения, справедливо назвать его видеонейрокомпьютером (ВНК). Это тем более справедливо, что обработка большого числа ячеек памяти предъявляет те же требования к распараллеливанию, что и обработка большого числа нейронов сети.
Отметим, что современные персональные компьютеры (РС) и рабочие станции, реализующие системы мультимедиа, вполне способны выполнять функции такого нейрокомпьютера. Однако потребность интеграции памяти нескольких компьютеров может потребовать применения локальной вычислительной сети, удовлетворяющей требованиям работы в реальном времени. И уж без сомнения, параллельная вычислительная система SPMD-архитектуры [9] c большой оперативной памятью в наибольшей степени адекватна рассматриваемой задаче.
Назовем ячейку, занятую элементом объекта, клеткой этого объекта. Как видно далее, клетка минимально должна содержать информацию о цвете (пиксель), коэффициенте освещенности, указателе вершины стека.
Пусть адресное пространство ВНК при сквозной линейной адресации ячеек определяется N разрядами. Адрес разбивается на четыре части (рис. 15.1).
Рис. 15.1. Преобразование линейного адреса в трехмерный
Здесь x, y, z — координаты клетки в трехмерной памяти; s разрядов отводятся для адресации стека, сопровождающего каждую клетку. Стек необходим для сохранения информации в случае сжатия объекта — для более точного его восстановления. Таким образом, адресное пространство хранения клеток объекта или целой сцены составляет 2N-s
, что говорит о необходимом весьма большом значении N. Значение s практически может быть не более трех.
Трехмерная память — это перспективная разработка. Она предполагает непосредственный (невиртуальный) доступ пользователя на этапе программирования как к памяти, так и к адресам данных при указанной структуре адреса.
При моделировании трехмерная память в виртуальной памяти современного компьютера задается трехмерным массивом S[0:P; 0:P; 0:P] переменных S[i, j, k], где значения индексов являются координатами соответственно x, y, z. Тогда задача деформации или перемещения объектов преобразуется в задачу нахождения новых значений этих индексов для каждой переменной, являющейся клеткой объекта — для выполнения соответствующего переноса.
При этом линейный адрес переноса или текущего нахождения клетки объекта находится так:
<S[i, j, k]> = C + i + jP + kP2.
Здесь С — базовый адрес массива.
Стек моделировать нецелесообразно. Информация, потерянная при сжатии объекта, может быть восстановлена с помощью интерполяции.