Опубликован: 01.10.2013 | Уровень: для всех | Доступ: платный
Лекция 7:

Инструментальные платформы МКМД-бит-потоковых вычислительных технологий

Есть еще один альтернативный способ изменения положения свойств и размещения объектов. Этот способ основан на использовании контекстных меню (рис. 6.40).

Контекстное меню

Рис. 6.40. Контекстное меню

Выбрав пункт " Установить цвет ", в появившемся диалоге пользователь имеет возможность изменить цвет отображения выбранного процессорного устройства.

Чтобы посмотреть "внутреннее наполнение" процессорного устройства (отображение ведется в нотации, принятой в Designer ), контекстное меню содержит пункт " Детализировать …". Детализированное устройство показано на рис. 6.36.

С помощью " Сохранить в PGM *" можно сохранить выбранное пользователем устройство в файл PGM (который поддерживается программой Designer ) расширенной структуры (с сохранением свойств прибора, то есть его входов, выходов, цвета и т. д.). Из файла такой структуры может производиться импорт нестандартных устройств в проект способом, описанным выше.

В MatrixDesigner разработчику предоставлен инструмент гибкой настройки программного средства. Это можно сделать, нажав на кнопку " Настройка " на панели инструментов. Диалог настроек программы содержит две вкладки (рис. 6.41).

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

Вкладки "окна" "Настройки"

увеличить изображение
Рис. 6.41. Вкладки "окна" "Настройки"

сохранить, для этого необходимо нажать кнопку " Принять ". Чтобы отменить сделанные изменения, нажмите кнопку " Отмена ". Все настройки можно вернуть к начальным, нажав кнопки " По умолчанию ".

Технология реализации инструментальной платформы MatrixDesigner теснейшим образом переплетена с технологией ее использования, где проектируемые объекты находятся в отношении строгой иерархии, которая предопределяет эффективность использования объектно-ориентированного подхода при создании сложного программного продукта открытого типа. Сложность программного обеспечения обусловлена четырьмя основными причинами:

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

Поэтому при проектировании сложной программной системы необходимо декомпозировать ее на все меньшие и меньшие подсистемы, каждую из которых можно совершенствовать независимо. В МКМД-бит-потоковой технологии естественной единицей проекта является бит-процессор. Имеется не менее трех уровней вложенности иерархии - поток-операторный, слов-командный и микрокомандный, а сам проект необходимо декомпозировать начиная с аналитической модели предметной области (рис. 6.42).

Схема преобразования задач пользователя МКМД-бит-потокового (суб)процессора в исполняемый формат

Рис. 6.42. Схема преобразования задач пользователя МКМД-бит-потокового (суб)процессора в исполняемый формат

В связи с этим, начальным "кирпичиком" создаваемой инструментальной среды проектирования МКМД-бит-потоковых вычислителей стал класс Processor (рис. 6.43), который представляет собой один бит-процессор со всеми присущими ему свойствами и методами. Среди методов наиболее важными являются 3 конструктора с разными параметрами и методы аффинных преобразований (вращение, отображение относительно диагоналей и осей), среди свойств - направления получения операндов ( InA1, InA2 ) и направление отправки результата ( OutA ), а также

Основные классы реализации инструментальной среды

увеличить изображение
Рис. 6.43. Основные классы реализации инструментальной среды

код операции ( OperationCode ) и направление канала транзита ( InTr, OutTr, OutTrD ). Кроме того, для каждого бит-процессора можно получить и установить значение его регистра ( Register ).

Одним из базовых принципов объектно-ориентированного подхода является создание иерархической структуры программного средства путем декомпозиции. Здесь это реализуется следующим образом: группа бит-процессоров, объединяясь, образует некоторое законченное процессорное устройство, выполняющее заданную разработчиком функцию. Таких устройств можно разработать очень много, и они будут совершенно разными. Поэтому был создан класс ProcessorDevice.

В этом классе определены основные действия (методы), которые можно применять к процессорному устройству. К ним относятся:

  • аффинные преобразования: повороты ( Rotate90 ), отражения относительно осей ( RotateOnX, RotateOnY ) и диагоналей ( RotateOnDiagonal );
  • загрузка микропрограмм устройств из файла и потоков данных;
  • сохранение микропрограмм устройств в файл или потоков данных.

Каждое устройство обладает следующими основными свойствами:

  • разрядность ( N ),
  • описание ( Description ),
  • цвет отображения в пользовательском интерфейсе ( DeviceColor ),
  • размеры по горизонтали и вертикали ( SizeX, SizeY ), которые задаются параметрами описывающего прямоугольника ;
  • положение на проектируемой схеме ( XPos, YPos ).

Каждое новое процессорное устройство является потомком класса ProcessorDevice (рис. 6.44).

Основные процессорные устройства, производные от ProcessorDevice

увеличить изображение
Рис. 6.44. Основные процессорные устройства, производные от ProcessorDevice

Очень важным методом класса ProcessorDevice является метод GenerateDeivce, который создает выбранное процессорное устройство в зависимости от разрядности. У каждого класса процессорных устройств этот метод свой. Кроме того, каждое устройство при создании инициализирует свое описание, цвет, размер и т. д. В программе реализовано более 20 различных процессорных устройств. Среди них умножитель, сумматор, делитель, последовательно-параллельный и параллельно-последовательный интерфейсы, коммутационные и другие устройства. Каждое из них пользователь может автоматически сгенерировать, указав требуемую разрядность. Каждое процессорное устройство кроме всего прочего имеет входы операндов и констант и выходы результатов и промежуточных данных. Для хранения информации такого рода существует класс DevicePort, который описывает вход и выход устройства (далее порт устройства). Каждый порт является или входом, или выходом по отношению к процессорному устройству ( Enter ). Кроме того, порт имеет описание ( Description ), положение на устройстве ( X, Y ) и направление ( Direction ).

Все устройства размещаются на имеющейся в распоряжении пользователя бит-процессорной матрице. В программе она представлена классом ProcessorMatrix. Главными ее свойствами являются размер (по вертикали ( YSize ) и горизонтали ( XSize )) и положение курсора вставки ( CursorXPos и CursorYPos ). Объект этого класса содержит в себе список процессорных устройств, находящихся на бит-матрице. Основные методы ProcessorMatrix - это AddDevice (добавление устройства на бит-матрицу), DeleteDevice (удаление устройства), ReadFromStream (считать содержимое процессорной матрицы из потока), SaveToStream (сохранить процессорную матрицу со всеми устройствами в поток), GetDevice (получить устройство), GetDeviceCount (получить количество процессорных устройств, находящихся на бит-матрице).

Приведенных функций и уровней вложенности достаточно для проектирования сверхпараллельных (порядка 10000 бит-процессоров) МКМД-бит-потоковых операторов. Более высокий уровень организации вычислений связан с последовательной активизацией и загрузкой поток-операторов в бит-матрицу.

Евгений Акимов
Евгений Акимов

Добрый день!

 

Скажите, пожалуйста,планируется ли продолжение курсов по нанотехнологиям?

Спасибо,

Евгений

 

Nozimjon Fayziev
Nozimjon Fayziev
Таджикистан, Душанбе
Анна Волкова
Анна Волкова
Россия, г. Новосибирск