Добрый день!
Скажите, пожалуйста,планируется ли продолжение курсов по нанотехнологиям? Спасибо, Евгений
|
Инструментальные платформы МКМД-бит-потоковых вычислительных технологий
Есть еще один альтернативный способ изменения положения свойств и размещения объектов. Этот способ основан на использовании контекстных меню (рис. 6.40).
Выбрав пункт " Установить цвет ", в появившемся диалоге пользователь имеет возможность изменить цвет отображения выбранного процессорного устройства.
Чтобы посмотреть "внутреннее наполнение" процессорного устройства (отображение ведется в нотации, принятой в Designer ), контекстное меню содержит пункт " Детализировать …". Детализированное устройство показано на рис. 6.36.
С помощью " Сохранить в PGM *" можно сохранить выбранное пользователем устройство в файл PGM (который поддерживается программой Designer ) расширенной структуры (с сохранением свойств прибора, то есть его входов, выходов, цвета и т. д.). Из файла такой структуры может производиться импорт нестандартных устройств в проект способом, описанным выше.
В MatrixDesigner разработчику предоставлен инструмент гибкой настройки программного средства. Это можно сделать, нажав на кнопку " Настройка " на панели инструментов. Диалог настроек программы содержит две вкладки (рис. 6.41).
Назначение каждого пункта настроек соответствует своему названию. Для изменения цвета какого-либо элемента надо нажать на кнопку, находящуюся слева от надписи. После изменения настроек их нужно
сохранить, для этого необходимо нажать кнопку " Принять ". Чтобы отменить сделанные изменения, нажмите кнопку " Отмена ". Все настройки можно вернуть к начальным, нажав кнопки " По умолчанию ".
Технология реализации инструментальной платформы MatrixDesigner теснейшим образом переплетена с технологией ее использования, где проектируемые объекты находятся в отношении строгой иерархии, которая предопределяет эффективность использования объектно-ориентированного подхода при создании сложного программного продукта открытого типа. Сложность программного обеспечения обусловлена четырьмя основными причинами:
- сложностью реальной предметной области;
- трудностью управления процессом разработки;
- необходимостью обеспечить достаточную гибкость программы;
- неудовлетворительными способами описания поведения больших дискретных систем.
Поэтому при проектировании сложной программной системы необходимо декомпозировать ее на все меньшие и меньшие подсистемы, каждую из которых можно совершенствовать независимо. В МКМД-бит-потоковой технологии естественной единицей проекта является бит-процессор. Имеется не менее трех уровней вложенности иерархии - поток-операторный, слов-командный и микрокомандный, а сам проект необходимо декомпозировать начиная с аналитической модели предметной области (рис. 6.42).
Рис. 6.42. Схема преобразования задач пользователя МКМД-бит-потокового (суб)процессора в исполняемый формат
В связи с этим, начальным "кирпичиком" создаваемой инструментальной среды проектирования МКМД-бит-потоковых вычислителей стал класс Processor (рис. 6.43), который представляет собой один бит-процессор со всеми присущими ему свойствами и методами. Среди методов наиболее важными являются 3 конструктора с разными параметрами и методы аффинных преобразований (вращение, отображение относительно диагоналей и осей), среди свойств - направления получения операндов ( InA1, InA2 ) и направление отправки результата ( OutA ), а также
код операции ( OperationCode ) и направление канала транзита ( InTr, OutTr, OutTrD ). Кроме того, для каждого бит-процессора можно получить и установить значение его регистра ( Register ).
Одним из базовых принципов объектно-ориентированного подхода является создание иерархической структуры программного средства путем декомпозиции. Здесь это реализуется следующим образом: группа бит-процессоров, объединяясь, образует некоторое законченное процессорное устройство, выполняющее заданную разработчиком функцию. Таких устройств можно разработать очень много, и они будут совершенно разными. Поэтому был создан класс ProcessorDevice.
В этом классе определены основные действия (методы), которые можно применять к процессорному устройству. К ним относятся:
- аффинные преобразования: повороты ( Rotate90 ), отражения относительно осей ( RotateOnX, RotateOnY ) и диагоналей ( RotateOnDiagonal );
- загрузка микропрограмм устройств из файла и потоков данных;
- сохранение микропрограмм устройств в файл или потоков данных.
Каждое устройство обладает следующими основными свойствами:
- разрядность ( N ),
- описание ( Description ),
- цвет отображения в пользовательском интерфейсе ( DeviceColor ),
- размеры по горизонтали и вертикали ( SizeX, SizeY ), которые задаются параметрами описывающего прямоугольника ;
- положение на проектируемой схеме ( XPos, YPos ).
Каждое новое процессорное устройство является потомком класса ProcessorDevice (рис. 6.44).
Очень важным методом класса ProcessorDevice является метод GenerateDeivce, который создает выбранное процессорное устройство в зависимости от разрядности. У каждого класса процессорных устройств этот метод свой. Кроме того, каждое устройство при создании инициализирует свое описание, цвет, размер и т. д. В программе реализовано более 20 различных процессорных устройств. Среди них умножитель, сумматор, делитель, последовательно-параллельный и параллельно-последовательный интерфейсы, коммутационные и другие устройства. Каждое из них пользователь может автоматически сгенерировать, указав требуемую разрядность. Каждое процессорное устройство кроме всего прочего имеет входы операндов и констант и выходы результатов и промежуточных данных. Для хранения информации такого рода существует класс DevicePort, который описывает вход и выход устройства (далее порт устройства). Каждый порт является или входом, или выходом по отношению к процессорному устройству ( Enter ). Кроме того, порт имеет описание ( Description ), положение на устройстве ( X, Y ) и направление ( Direction ).
Все устройства размещаются на имеющейся в распоряжении пользователя бит-процессорной матрице. В программе она представлена классом ProcessorMatrix. Главными ее свойствами являются размер (по вертикали ( YSize ) и горизонтали ( XSize )) и положение курсора вставки ( CursorXPos и CursorYPos ). Объект этого класса содержит в себе список процессорных устройств, находящихся на бит-матрице. Основные методы ProcessorMatrix - это AddDevice (добавление устройства на бит-матрицу), DeleteDevice (удаление устройства), ReadFromStream (считать содержимое процессорной матрицы из потока), SaveToStream (сохранить процессорную матрицу со всеми устройствами в поток), GetDevice (получить устройство), GetDeviceCount (получить количество процессорных устройств, находящихся на бит-матрице).
Приведенных функций и уровней вложенности достаточно для проектирования сверхпараллельных (порядка 10000 бит-процессоров) МКМД-бит-потоковых операторов. Более высокий уровень организации вычислений связан с последовательной активизацией и загрузкой поток-операторов в бит-матрицу.