В кремниевой компиляции формальные методы и средства размещения блоков и устройств процессора достаточно эффективны, и поэтому
Программное обеспечение инструментальной платформы интерактивного микропрограммного конструирования должно удовлетворять двум главным требованиям, одно из которых относится к операционному ядру, а другое - к пользовательскому интерфейсу:
Сама инструментальная платформа является системой открытого типа, как по средствам синтеза, так и по накапливаемым результатам.
Поэтому сохранить дееспособность на каждом этапе своего развития она сможет, если будет совместимой с системными программными средствами, которые непрерывно развиваются.
Для создателей МКМД-бит-потокового субпроцессора неделимой единицей проекта является структурно-функциональная схема бит-матричной СБИС и система бит-инструкций (рис. 6.1), которые определяются на этапе схемо- и системотехнического проектирования самой проблемно-ориентированной СБИС. На этом же этапе определяются физические модели поражающих факторов и их "схемотехнические последствия", которые модифицируют систему бит-инструкций. Именно изменения и дополнения системы бит-инструкций, вызванные (множественными) отказами аппаратуры, являются "ахиллесовой пятой" вычислительной техники, так как подавляющее число отказов приводит не к автоматическому прекращению работы устройств вычислительной техники, а к "
(рис 6.1) Структура инструментальной платформымощность всего
В МКМД-бит-потоковой технологии сохраняется свойственное кремниевой компиляции отношение иерархии между субъединицами проекта: бит-инструкции $$\to$$ термы $$\to$$ слов-инструкции $$\to$$ поток-операторы, причем топология библиотечных слов- и поток-инструкций не учитывает ограничений геометрических размеров бит-матрицы, которые вступают в силу только на этапе формирования загрузочного модуля (см. рис. 6.1).
При создании инструментальной программной платформы МКМД-бит-потоковых технологий использование объектно-ориентированного подхода предопределяется двумя факторами:
В операционное ядро инструментальной платформы интерактивного микропрограммного конструирования ( Designer ) входят:
(рис 6.2) Структура инструментальных платформ ЦПОСВ МКМД-бит-потоковых технологиях аппаратный доступ можно обеспечить только к периферийным бит-процессорам матрицы, что резко снижает отладочные возможности полностью аппаратных инструментальных платформ. Поэтому наличие программного имитатора IMOS является атрибутом для такой технологии, так как данное средство поддерживает прямой доступ микропрограммного "конструктора" к произвольной совокупности входов-выходов бит-процессоров матрицы на каждом такте ее работы.
Компоновка микропрограмм осуществляется с помощью аффинных преобразований микропрограмм библиотечных операционных модулей и с использованием редактора связей, который призван обеспечить требуемые фазовые соотношения между входами-выходами операционных модулей на ортогональной FIFO -регистровой коммутационной решетке, где каждое перемещение операционного модуля приводит к изменению времени поступления операндов на его входы (см. раздел 4.1).
Использование аффинных преобразований микропрограмм операционных модулей предопределено необходимостью сохранения внутренних пространственно-временных связей между бит-инструкциями, входящими в преобразуемый операционный модуль. Благодаря этому при компоновке можно ограничиться только контролем фаз поступления потоков данных на входы операционных модулей. Такой контроль формализуем, и его можно свести к
Компоновку микропрограммных модулей можно выполнить в интерактивном и автоматическом режиме по заданному "клише", отражающему граф связности операционных модулей в поток-инструкции. Автоматический режим компоновки предполагает использование специализированных инструментальных платформ, ориентированных на термальный синтез алгоритмически ориентированных субпроцессоров обработки сигналов, изображений баз данных и знаний и т. п. Такие алгоритмические платформы термального синтеза выступают в качестве надстроек над операционным ядром, поддерживающем типовые процедуры синтеза.
Главная задача диагностической плоскости проекта - это найти компромисс между полнотой и временем обнаружения и локализации отказа. Такой компромисс, как правило, находится с помощью декомпозиции диагностируемых объектов, что кардинальным образом снижает размерность задачи диагностики и позволяет "покрыть" объект диагностики минимальным количеством тестов минимальной длины.
Первая специфическая особенность МКМД-бит-потоковых технологий состоит в естественной структурно-функциональной декомпозиции программно-аппаратной части проекта, которая позволяет достаточно достоверно распространить результаты диагностики "объекта" более низкого уровня иерархии на "объект" более высокого уровня иерархии (см. рис. 6.1). При этом методы и средства, используемые в процессе эксплуатации МКМД-бит-потоковых субпроцессоров, удается построить ни базе методов и средств промышленной диагностики, с помощью которых и определяются последствия отказов отдельных вентилей на правила функционирования бит-процессоров. Благодаря этому в МКМД-бит-потоковых технологиях сочетается достаточно высокая полнота и "глубина" диагностики бит-процессора с относительно простой логической схемой из 800-1000 вентилей и ультрабольшая степень функциональной интеграции бит-матрицы размером 10000-10000 бит-процессоров, расходуемой на п оддержку микропрограммы алгоритмически ориентированного субпроцессора.
Вторая специфическая особенность МКМД-бит-потоковых технологий состоит в наличии индифферентных отказов, не нарушающих условия правильной реализации единственной закрепленной за бит-процессором бит-инструкции. Наличие таких отказов обусловлено естественной структурно-функциональной избыточностью микропрограмм, которые в принципе не могут задействовать весь коммутационный и операционный ресурс каждого бит-процессора (см. табл. 4.2 раздела 4.1). Такие отказы, с одной стороны, снижают длину тестовых последовательностей, а с другой стороны - расширяют возможности системы парирования отказов за счет толерантного переразмещения микропрограмм на бит-матрице, которое можно осуществить с использованием аффинных преобразований и в темпе близком к реальному времени.
Уникальность МКМД-бит-потоковых технологий как раз и состоит в том, что в их рамках можно эффективно парировать целые карты отказов, для чего достаточно иметь некратный аппаратный резерв, который может составлять от 10 до 30 % "рабочего поля" бит-матрицы.
Пользовательский интерфейс приложения играет решающую роль в эффективности использования платформы, особенно в различных текстовых и графических редакторах, где удобный и простой интерфейс позволяет пользователю сконцентрировать внимание на решаемой задаче, а не на инструментарии. Поэтому в основу построения интерфейса
Designer положены общепризнанные принципы построения "дружественных интерфейсов":
меню и панель основных команд, рабочее пространство, переключатели режимов, панель докеров, шкала трассировки.
(рис 6.3) Общий вид инструментальной платформы DesignerЭлементы меню (табл. 6.1) имеют в основном традиционное назначение, за исключением аффинных преобразований и навигации. При этом считается, что итогом любого проекта являются файлы с расширением *.PGM и *., первый из которых представляет собой микропрограмму, задающую в шестнадцатеричном виде содержимое всех регистров бит-процессоров используемой бит-матрицы, а второй - бит-потоки отладочных данных, привязанные к каждому входу с точностью до требуемого такта начальной задержки.
Designer может работать в пяти режимах: " Редактирование кода ", " Работа с выделением ", " Входы-выходы ", " Такты " и " Отладка ". Каждому режиму соответствует свое "окно", которое становится видимым при выборе соответствующего режима. "Окна" (докеры) реализованы с использованием технологии Drag Dock. Любое "окно" либо строго вложено в определенную форму (рис. 6.4), либо допускает свободное перемещение в пределах экрана (рис. 6.5).
(рис 6.4) "Окно" в форме
(рис 6.5) Открепленное "окно"| Файл | Работа с файлами |
|---|---|
| Новый проект - создать PGM | Создать новый проект |
| Новый проект - открыть PGM | Создать новый проект на основе существующего PGM-файла |
| Открыть проект | Открыть существующий проект |
| Сохранить проект | Сохранить проект с текущим именем |
| Сохранить проект как... | Сохранить проект, указав имя |
| Импорт - PGM файл... | Вставить в проект микропрограмму |
| Импорт - РIO файл... | Добавить входные последовательности |
| Экспорт - PGM файл... | Сохранить микропрограмму в формате PGM |
| Печать... | Распечатать микропрограмму |
| Выход | Закрыть Designer |
| Правка | Внесение изменений |
| Вырезать | Стандартные операции с буфером |
| Копировать | |
| Вставить | |
| Атрибуты | Изменение размера матрицы |
| Повернуть | Выполнение аффинных преобразований |
| Отобразить | |
| Вставить из библиотеки | Вставить библиотечный терм |
| Параметры | Настройка среды |
| Вид | Изменение цветовой схемы редактора |
| Отображать все | Отображение незадействованных связей |
| Окно | Настройка панелей |
| Навигатор | Отображать навигацию |
Если открепить все "окна", рабочее пространство заметно увеличится, что особо актуально при разрешениях экранов размером 800х600 пикселей и меньше.
"Окно" навигации (рис. 6.6) доступно во всех режимах. Перемещая прямоугольник по белой области, можно перемещаться по всей схеме микропрограммы. Бегунок справа регулирует масштаб отображения схемы.
(рис 6.6) "Окно" "Навигация"Режим " Редактирование кода " (рис. 6.7) поддерживается соответствующим "окном" (рис. 6.8), с помощью которого выполняются все операции интерактивного формирования бит-инструкции выделенного бит-процессора.
(рис 6.7) Режим "Редактирование кода""Объектом" интерактивного графического редактирования является содержимое регистра бит-инструкции (см. рис. 3.2), которое включает: код операции (поле COP ), признак дополнительной задержки (поле FD ), направления приема двух входных операндов АЛУ (поля А1 и А2) и одного входного операнда транзита (поле А3), а также направления передачи выходных операндов АЛУ, транзита и транзита с задержкой (поля А4-А6). При выборе текущего входа/выхода в окне появляется его направление. Нажатием на нужную стрелку выбранный вход изменяет свое направление. Операция АЛУ выбирается из выпадающего списка. Флаг задержки определяется галочкой " Задержка ".
(рис 6.8) "Окно" "Редактирование кода"Режим " Входы/выходы " (рис. 6.9) поддерживает "окно" назначения входов/выходов (рис. 6.10), через которое можно работать только с выделенным бит-процессором. В этом режиме задаются все контрольные точки для работы программы имитационного моделирования IMOS. Нажатие на выбранной стрелке "окна" открывает диалог для ввода (рис. 6.11) цвета отображения входа на шкале трассировки, начальной задержки по данному входу и входной последовательности. Нажатие на прямоугольник, отображающий цвет входа, вызывает стандартный диалог выбора цвета. По умолчанию цвета назначаются случайным образом. По кнопке " Удалить " данный вход удаляется из списка. После назначения входа он отображается на шкале трассировки.
(рис 6.9) Режим "Входы-выходы"
(рис 6.10) "Окно" "Назначения входов/выходов" (первый шаг диалога)
(рис 6.11) "Окно" "Назначение входов/выходов" (второй шаг диалога) Входные операнды представляют собой последовательность бит-данных, которую можно задать в ручном и циклическом режимах. В ручном режиме входная последовательность бит-данных задается как с помощью "окна" рис. 6.11, где в выделенном номере такта "ноль" заменяется "единицей", так и непосредственно на шкале трассировки с помощью клика в соответствующем квадрате.
Для задания циклической входной бит-последовательности (рис. 6.12) "окно" рис. 6.11 необходимо перевести в режим " Вставка ", в результате чего появится "окно" рис. 6.13. В этом режиме непосредственно определяется содержимое операнда (в данном случае 1001110110) и задается количество циклов его повторения (в данном случае 3), которое после выхода из "окна" отображается на шкале трассировки (рис. 6.14).
(рис 6.12) Режим "Входы-выходы" при задании циклического входного воздействия
(рис 6.13) "Окно" назначения входов/выходов (третий шаг диалога)
(рис 6.14) Циклическая последовательность на шкале трассировкиШкала трассировки присутствует во всех режимах, и на ней отображены в цвет все выделенные входы-выходы бит-процессоров микропрограммы и битное представление каждого входа-выхода на каждом такте работы бит-матрицы. "Единичные" значения операндов представлены красным цветом, а "нулевые" - белым. Значения выходов рассчитываются в режиме программной эмуляции работы бит-матрицы. Для компактности отображения количество десятков номера такта вынесено выше.
Режим " Такты " (рис. 6.15) используется в процессе компоновки бит-инструкций в термы, термов в слов-инструкции и слов-инструкций в поток-операторы. В МКМД-бит-потоковых вычислительных технологиях обмен данными на бит-матрице осуществляется только через FIFO -регистровые каналы. В результате любое перемещение операционного модуля на бит-матрице в процессе компоновки слов- или поток-инструкции всегда сопровождается временным сдвигом, что может привести к нарушению правил фазировки во всем субпроцессоре. Поэтому контроль временных соотношений по всем входам компонуемых операционных модулей является одной из центральных проблем микропрограммного конструирования.
Designer имеет встроенное средство интерактивного расчета фазы продвижения вычислительной волны по бит-матрице. Выбор интерактивного режима предопределен неоднозначностью правил распространения
вычислительной волны. Например, требуется вычислить время задержки в бит-процессоре рис. 6.16, на один из вводов которого подается содержимое 01000010 из бит-инструкции "
(рис 6.15) Режим "Такты"
(рис 6.16) разработчиком микропрограммы либо высокоразвитой системой искусственного интеллекта, предлагающей (микро)программисту возможные варианты устранения возникающих неоднозначностей и точек их локализации. Поэтому в Designer использован смешанный режим определения времени задержки в каждом бит-процессоре, в котором автоматически вычисляется задержка по отношению к входному операнду с минимальной входной задержкой, которую (микро)программист может изменить по своему усмотрению в любой "контрольной" точке микропрограммы, после чего цикл автоматического вычисления должен быть повторен.
Для этих целей "окно" " Расчет тактов " (рис. 6.17) используется в режиме принудительной коррекции такта на выходе выделенного бит-процессора. Для коррекции такта достаточно нажать на соответствующий выход в "окне" рис. 6.17. В результате появится "окно" рис. 6.18, в соответствующее поле которого вводится откорректированный такт,
(рис 6.17) "Окно" "Расчет тактов"
(рис 6.18) "Окно" "Коррекция такта"
(рис 6.19) "Окно" "Коррекция такта"который выделяется красным цветом (рис. 6.19) и сохраняется в файле с расширением *.
Для компоновки объектов проектирования МКМД-бит-потоковых технологий Designer переводится в режим " Работа с выделением " (рис. 6.21), который поддерживается "окном" " Аффинный преобразователь " (рис. 6.22).
Аффинные преобразования выполняются только над выделенным фрагментом микропрограмм (см. рис. 6.21), причем переносы по двум координатам выделенного фрагмента осуществляются его захватом мышью и размещением в требуемом месте бит-матрицы. Чтобы повернуть выделенный фрагмент вокруг соответствующей оси, достаточно нажать соответствующую позицию в докере рис. 6.22.
(рис 6.20) Режим "Такты" с принудительной коррекцией
(рис 6.21) Режим "Работа с выделением"В режиме " Отладка " прежде всего необходимо задать количество тактов работы IMOS, для чего используется поле " Настройка " меню основных команд (рис. 6.23).
При отладке IMOS может работать в двух режимах - пошаговом и автоматическом, то есть на всю "глубину" моделирования: по всем контрольным точкам, заданным на шкале трассировки, и на всех тактах, заданных в окне " Настройка ". Результаты моделирования отражаются в виде двоичных последовательностей на выходах, определенных на шкале трассировки (рис. 6.24-a), с той разницей, что в режиме пошаговой отладки распространение фронта вычислительной волны по бит-матрице фиксируется распространением "желтых шариков", отвечающих "единичным" значениям распространяемых данных (рис. 6.24-б).
(рис 6.22) "Окно" "Аффинный преобразователь"
(рис 6.23) Режим "Отладка" (задание количества тактов)
(рис 6.24) б) Режим "Пошаговой отладки"Проблемно-ориентированная инструментальная платформа MatrixDesigner является надстройкой над платформой Designer, предназначена для термального синтеза МКМД-бит-потоковых субпроцессоров векторно-матричной обработки потоков данных и включает:
В операционном ядре реализуются следующие функции:
Пользовательский интерфейс реализует:
MatrixDesigner позволяет пользователю получить доступ ко всем функциям, выполнение которых обеспечивает среда проектирования. Главное окно программы выглядит как показано на рис. 6.25.
"Окно" приложения включает: меню, панели инструментов, "окно" редактирования и "окно" отображения свойств выбранного объекта.
(рис 6.25) Пользовательский интерфейс инструментальной среды MatrixDesignerМеню MatrixDesigner содержит пункты: " Файл ", " Правка ", " Специальное ", " О программе ".
Меню " Файл " содержит функции управления проектом (рис. 6.26).
(рис 6.26) Меню "Файл"Пункт " Новый …" меню " Файл " позволяет создать новый проект. При этом пользователю предлагается ввести размер новой матрицы (рис. 6.27).
(рис 6.27) Меню "Новый…"Через пункт меню " Открыть проект " можно загрузить ранее созданный проект, указав его имя.
Файлы проекта инструментальной платформы MatrixDesigner имеют расширение *.dpj. В таком файле содержатся данные всей созданной пользователем схемы. Для сохранения на диск нового созданного проекта и для сохранения изменений, сделанных в уже существующем проекте, существуют пункты меню " Сохранить " и " Сохранить как ". Если проект является вновь созданным, то при нажатии на кнопку " Сохранить " пользователю предлагается ввести имя нового файла проекта; если же проект уже имеет имя, то при нажатии на эту кнопку происходит сохранение проекта под старым именем.
Пункт меню " Закрыть проект " позволяет закончить работу над текущим проектом, а пункт " Выход " завершает работу программы. Справа от названия некоторых пунктов меню находятся обозначения комбинации "горячих" клавиш, которые позволяют быстро вызывать соответствующий пункт меню. Например, чтобы открыть существующий проект, достаточно нажать одновременно " Ctrl " и " O ".
Пункт " Правка " позволяет выполнять основные операции редактирования (рис. 6.28).
(рис 6.28) Меню "Правка"В этом меню пункты " Вырезать ", " Копировать ", " Вставить ", " Удалить " выполняют стандартные действия. При этом объекты, попавшие в системный буфер обмена (по команде " Копировать " или " Вырезать "), можно разместить в другие копии программы MatrixDesigner, где работа ведется над другим проектом.
Для расширения функциональных возможностей и комплексиро-вания данной инструментальной среды с уже созданными средствами проектирования предусмотрена возможность обращения к подключаемым программным модулям через пункт " Открыть в Designer " в меню " Специальное " (рис. 6.29). Пункт " Настройки " открывает диалог настроек программы.
(рис 6.29) Меню "Специальное"Нажатие на пункт меню " О программе " позволяет увидеть информацию о версии программного продукта.
Каждая кнопка на панели инструментов имеет семантически понятное изображение, а также всплывающую подсказку на русском языке.
Кнопки на панелях управления проектом повторяют функциональность аналогичных пунктов главного меню программы. Исключение составляет команда " Экспортировать " (рис. 6.30). Она позволяет сохранить текущий проект в формате файла *.PGM, который поддерживается ранее созданной низкоуровневой средой разработки Designer.
(рис 6.30) Меню "Экспортировать"В каждом программном средстве проектирования создается и поддерживается какая-либо нотация, то есть соглашение по созданию некоторой абстракции в рассматриваемой предметной области. В этой инструментальной среде пользователь оперирует объектами, которые называются устройствами. В процессе компоновки МКМД-бит-потоковых операционных устройств МКМД-бит-потоковых субпроцессоров составляющие микропрограммные модули представляются описывающими прямоугольниками с условными обозначениями входов и выходов. Каждое устройство представляет собой некоторую совокупность бит-процессоров на процессорной матрице, выполняющих определенную функцию. В общем случае процессорное устройство получает на вход данные (хотя может и не получать, а генерировать данные для своей работы самостоятельно), обрабатывает их и отправляет результат вычислений (преобразований) куда-либо. Здесь термины "отправляет результат" и "получает данные" применяются по отношению к битовым потокам данных. Таким образом, начальные да нные для нового проекта - это процессорная матрица выбранного размера, причем регистр каждого бит-процессора "пустой" матрицы содержит значение ноль. В процессе проектирования пользователь создает процессорные устройства и размещает их на матрице таким образом, чтобы получить оптимальную топологическую схему разрабатываемого субпроцессора. Вся работа ведется в области редактирования. Процессорная матрица отображается как показано на рис. 6.31.
Каждая клетка на этом поле - отдельный бит-процессор. Здесь есть две координатные линейки - сверху и слева. Отсчет координат ведется с нуля. Места, где устройство получает данные и отправляет их (входы и выходы), отображаются в виде треугольников. Вход обозначается треугольником, направленным внутрь соответствующего бит-процессора, а выход - треугольником, направленным во внешнюю сторону. Цвет каждого устройства, а также цвет отображения входов, выходов, цвета линеек и процессорной матрицы задаются пользователем.
(рис 6.31) Область редактирования проектаОсновная панель инструментов - это панель генерации устройств. Она обеспечивает базовую функциональность по созданию операционных модулей. При нажатии на любую из кнопок генерации устройств, например " ADD " (сумматор-накопитель), среда запрашивает у разработчика требуемую разрядность нового устройства, как показано на рис. 6.32.
(рис 6.32) Содержимое окна параметров слов-инструкции ADDПосле нажатия на кнопку " OK " на бит-матрице появляется новое устройство с заданными параметрами (в данном случае это сумматор - рис. 6.33).
(рис 6.33) Отображение сгенерированной слов-инструкции ADD в рабочем полеНажав правую кнопку мыши на устройстве и выбрав в появившемся контекстном меню пункт " Детализировать ", получим графическое представление топологии выбранной микропрограммы (рис. 6.34).
(рис 6.34) Детализация сгенерированной слов-инструкции ADDОписание некоторых элементов графического отображения топологии микропрограммы представлено в табл. 6.2.
Описанным способом можно сгенерировать любое операционное, интерфейсное, адресное или управляющее устройство, поддерживающее систему команд МКМД-бит-потокового субпроцессора векторно-матричной обработки данных (табл. 6.3).
| Условное изображение | Комментарий |
|---|---|
![]() |
В канале АЛУ бит-процессора выполняется операция ADD над операндами, поступающими на первом такте слева и снизу. Результирующий операнд выдается на 3 такте вправо. В канале транзита входной операнд поступает снизу на 1 такте и подается с задержкой на один такт вверх, а с задержкой на 3 такта - вниз |
![]() |
В канале АЛУ выполняется операция "расширенный транзит"(WTR), в которой по каналам "слева-вниз" и "снизу-вправо" операнды распространяются с задержкой на 1 такт, а по каналу "справа-налево" - с задержкой на 2 такта |
![]() |
В канале АЛУ выполняется операция "запоминание единицей", в которой информационный операнд подается на 0 такте слева, а управляющий операнд - на 2 такте справа и, если он имеет вид циклической константы 00…01, то на выходе с дополнительной задержкой на 2 такта по отношению к управляющему входу запоминается содержимое $$(n-3)$$ -го бита информационного операнда. Канал транзита не используется |
![]() |
В каналах АЛУ и транзита выполняется слияние потоков по "ИЛИ" по правилу: $$x(t+1)\lor x(t+2)\lor x(t+3)$$, где $$\lor$$ - операция "ИЛИ", а результирующий операнд поступает на правый выход бит-процессора с задержкой на 1, 2 и 3 такта |
![]() |
В канале АЛУ реализуется операция NOP, то есть он не используется, а в канале транзита входной операнд поступает слева и передается вправо с дополнительной задержкой на 2 такта, а вниз - с дополнительной задержкой на 1 такт |
| Команда | Описание |
|---|---|
| $$MLT$$ | Умножитель |
| $$ADD$$ | Сумматор |
| $$DCC$$ | Трансформатор кода |
| $$DIV$$ | Делитель |
| $$С[1,m]$$ | |
| $$С[n,m\$$ | |
| $$С+1$$ | Счетчик +1 (инкремент) |
| $$С-1$$ | Счетчик -1 (декремент) |
| $$С+1S$$ | Счетчик +1 с предустановкой |
| $$С -1S$$ | Счетчик -1с предустановкой |
| $$In$$ | Параллельно-последовательный интерфейс |
| $$Out$$ | Последовательно-параллельный интерфейс |
Команда " Импортировать " (рис. 6.35) позволяет разместить нестандартное устройство на матрице, которое должно быть предварительно создано в файле специального формата ( *.PGM ) или вручную, или с помощью среды Designer.
(рис 6.35) Меню "Нестандартное устройство"
(рис 6.36) Коммутатор выходных портов ОЗУВ частности, "нестандартным" устройством является коммутатор, который обеспечивает перераспределение 8 выходов ОЗУ между 2 входами операционного устройства субпроцессора векторно-матричной обработки данных (рис. 6.36). "Нестандартность" такого коммутатора обусловлена пространственным совмещением FIFO -регистровых шин передачи входных данных и адресов, управляющих обменом с ОЗУ.
Чтобы добавить в проект это нестандартное устройство, достаточно в файл *.PGM этого устройства добавить строки с описанием, например:
0088 CE87 7E87 0083 0083 0083 0083 0083 0083 0083 0083 6531 6734 64F1 0088 C98D 4A47 C9B8 C9B8 C9B8 C9B8 C9B8 C9B8 C9B8 C9B4 66F1 6E58 66F9 0088 C60F 0041 4D20 4D28 4D28 4D28 4D28 4D28 4D28 4D28 6632 6D1E 6639 62E1 6261 6261 6221 62E1 62E1 62E1 62E1 62E1 62E1 62F1 7631 62F1 7847 6263 6261 6261 6261 6221 62E1 62E1 62E1 62E1 62F1 66F1 6631 62F1 7847 62E1 6261 6261 6261 6261 6221 62E1 62E1 62F1 66F1 66F1 6631 62F1 7847 6263 6261 6261 6261 6261 6261 6221 62F1 66F1 66F1 66F1 6631 62F1 7B4B 62E1 6261 6261 6261 6261 6263 6232 6631 66F1 66F1 66F1 6631 62F1 6263 6263 6261 6261 6261 6263 6223 6263 6263 6631 66F1 66F1 6631 62F1 6253 62E1 6261 6261 6263 6223 6263 6263 6263 6263 6631 66F1 6631 62F1 6253 6263 6263 6263 6223 6263 6263 6263 6263 6263 6263 6631 6631 62F1 6253 0088 CE05 00C3 4720 4728 4728 4728 4728 4728 4728 4728 6263 6E39 6043 0088 CB87 4ACD CB98 CB98 CB98 CB98 CB98 CB98 CB98 CB9C 6263 6594 0054 0088 C68D 768D 0081 0081 0081 0081 0081 0081 0081 0081 0044 0000 0000 C $INPORT(0,3,0,<Порт 1>) C $INPORT(0,4,0,<Порт 2>) C $INPORT(0,5,0,<Порт 3>) C $INPORT(0,6,0,<Порт 4>) C $INPORT(0,7,0,<Порт 5>) C $INPORT(0,8,0,<Порт 6>) C $INPORT(0,9,0,<Порт 7>) C $INPORT(0,10,0,<Порт 8>) C $INPORT(11,0,1,<Управление 1: Циклическая константа>) C $INPORT(12,0,1,<Управление 2: Адрес порта по входу 1 ОУ>) C $INPORT(13,0,1,<Управление 3: Адрес порта по входу 2 ОУ>) C $INPORT(13,3,2,<Вход адреса ОЗУ порта 1>) C $INPORT(13,4,2,<Вход адреса ОЗУ порта 2>) C $INPORT(13,5,2,<Вход адреса ОЗУ порта 3>) C $INPORT(13,6,2,<Вход адреса ОЗУ порта 4>) C $INPORT(13,7,2,<Вход адреса ОЗУ порта 5>) C $INPORT(13,8,2,<Вход адреса ОЗУ порта 6>) C $INPORT(13,9,2,<Вход адреса ОЗУ порта 7>) C $INPORT(13,10,2,<Вход адреса ОЗУ порта 8>) C $OUTPORT(0,3,0,<Адрес порта ОЗУ 1>) C $OUTPORT(0,4,0,<Адрес порта ОЗУ 2>) C $OUTPORT(0,5,0,<Адрес порта ОЗУ 3>) C $OUTPORT(0,6,0,<Адрес порта ОЗУ 4>) C $OUTPORT(0,7,0,<Адрес порта ОЗУ 5>) C $OUTPORT(0,8,0,<Адрес порта ОЗУ 6>) C $OUTPORT(0,9,0,<Адрес порта ОЗУ 7>) C $OUTPORT(0,10,0,<Адрес порта ОЗУ 8>) C $OUTPORT(12,0,1,<Информационный выход первого входа 2 ОУ>) C $OUTPORT(13,0,1,<Информационный выход первого входа 1 ОУ>),
где первые 14 строк - шестнадцатеричное представление бит-инструкций файла *.PGM.
Команда " Импорт " позволяет добавить это устройство в проект (рис. 6.37).
(рис 6.37) Отображение "нестандартного" интерфейса в рабочем полеПользователь может по своему усмотрению изменить положение устройства или группы устройств на матрице. Чтобы это сделать, сначала необходимо указать набор объектов (или один объект), которые будут перемещены (выделить объекты). Сделать это можно несколькими способами:
цвет которой задается пользователем.
Чтобы изменить положение объекта на матрице, нужно нажать на нем левую кнопку мыши, и, не отпуская ее, перемещать мышь. Чтобы объект зафиксировался в новом положении, отпустите кнопку. Чтобы переместить несколько объектов, необходимо удерживать в нажатом положении
клавишу " Shift ". Если в выбранном новом положении устройство выходит за границы матрицы, то перемещение не будет выполнено. Разрешается наложение объектов. Эта возможность предусмотрена для удобства компоновки устройств в случае очень "плотной" схемы. Построение оптимальной топологической схемы проектируемого сопроцессора невозможно без аффинных преобразований. Для этого предусмотрена панель, показанная на рис. 6.38.
(рис 6.38) "Окно" "Аффинные преобразования"Кнопки (слева направо) выполняют следующие действия:
После каждого из аффинных преобразований бит-процессоры, составляющие устройство, меняют свое положение, и над их кодами выполняются соответствующие преобразования.
У пользователя есть возможность в любой момент поменять линейные размеры процессорной матрицы, над которой он работает, а для удобства редактирования больших схем предусмотрена возможность изменения масштаба отображения (рис. 6.39).
(рис 6.39) "Окно" "Масштаб"Верхняя из двух показанных на рисунке панелей - панель управления масштабом. Текущий масштаб показан в текстовом окне ниспадающего списка. Увеличивать и уменьшать масштаб отображения можно кнопками, расположенными справа от текстового окна. На нижней панели устанавливается размер матрицы. Чтобы установить новый размер, необходимо изменить числа в текстовых полях и щелкнуть левой кнопкой мыши на каком-либо другом элементе управления.
Есть еще один альтернативный способ изменения положения свойств и размещения объектов. Этот способ основан на использовании контекстных меню (рис. 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 ) и направление канала транзита ( ). Кроме того, для каждого бит-процессора можно получить и установить значение его регистра ( Register ).
Одним из базовых принципов объектно-ориентированного подхода является создание иерархической структуры программного средства путем декомпозиции. Здесь это реализуется следующим образом: группа бит-процессоров, объединяясь, образует некоторое законченное процессорное устройство, выполняющее заданную разработчиком функцию. Таких устройств можно разработать очень много, и они будут совершенно разными. Поэтому был создан класс ProcessorDevice.
В этом классе определены основные действия (методы), которые можно применять к процессорному устройству. К ним относятся:
Rotate90 ), отражения относительно осей ( RotateOnX, RotateOnY ) и диагоналей ( RotateOnDiagonal );Каждое устройство обладает следующими основными свойствами:
N ),Description ),DeviceColor ),SizeX, SizeY ), которые задаются параметрами описывающего прямоугольника ;XPos, YPos ).Каждое новое процессорное устройство является потомком класса ProcessorDevice (рис. 6.44).
(рис 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 бит-процессоров) МКМД-бит-потоковых операторов. Более высокий уровень организации вычислений связан с последовательной активизацией и загрузкой поток-операторов в бит-матрицу.
Инструментальное средство MatrixDesigner реализовано в среде Microsoft Visual Studio 2005 и написано на языке C#.
На выбор типа преобразований, обеспечивающих в квазиреальном масштабе времени парирование действующей в бит-матрице карты отказов, решающее влияние оказывают два фактора:
В технике подобного рода задачи обычно решаются адаптивными методами, по максимуму сохраняющими критичные характеристики исходной "сложной" системы, затрагиваемые используемыми в процессе адаптации преобразованиями.
Описанным условиям и динамическим требованиям в достаточной мере удовлетворяют локальные и глобальные аффинные преобразования "рабочего тела" тестовых или пользовательских микропрограмм. В этом случае:
Рассмотрим преобразования координат размещения бит-команд в поток-операторе пользователя (бит-процессорном устройстве). Здесь $$i$$ и $$j$$ - координаты бит-процессора. В общем случае его координаты после проведения аффинных преобразований изменятся на $$\tilde{i}$$ и $$\tilde{j}$$, $$i = \overline{1,i_m}$$, $$j = \overline{1,j_m}$$. Алгоритмы вычисления нового положения каждого бит-процессора:
В каждом из рассмотренных выше случаев аффинных преобразований есть необходимость изменения содержимого регистра каждого бит-процессора. Преобразование кодов бит-команд производится следующим образом ( $$R$$ - регистр бит-процессора, $$\tilde{R}$$ - значение регистра бит-процессора после преобразования):
где $$B_{1} = 1111.0011.0011.0011;\\ B_{2} = 0000.0001.0001.0001; \\ B_{3}(T) = B_{2} (T+2) = 0000.0100.0100.0100$$.
Входы и выходы устройства в нотации MatrixDesigner изображаются в виде треугольников. Порт устройства является объектом, свойство которого пользователь может увидеть в таблице свойств выбранного объекта. Чтобы обеспечить эту возможность, необходим алгоритм определения принадлежности точки треугольнику. На вход такого алгоритма подаются координаты вершин треугольника в прямоугольной системе координат и координаты точки, а true, если точка принадлежит треугольнику, и false, если точка лежит за пределами треугольника. Эту проверку осуществляет метод . Алгоритм следующий:
true, иначе перейти к пункту 2.false, иначе перейти к пункту 5.false.true ), иначе вернуть false.Одной из наиболее сложных задач в плане программной реализации является создание пользовательского интерфейса, особенно той его части, которая отвечает за визуальное отображение данных проекта (бит-матрица и находящиеся на ней операционные устройства) и работу с ним. Чтобы отделить реализацию этого элемента пользовательского интерфейса от создания других частей программы, модуль рисования и работы над бит-матрицей оформлен в виде пользовательского элемента управления ( UserControl ) и реализован в классе MatrixDirectDrawView. Именно в нем реализованы методы копирования и вставки объектов, методы рисования данных проекта на экране, а также методы взаимодействия программы с пользователем посредством клавиатуры и мыши. Особого внимания заслуживает алгоритм перерисовки проекта. Входными данными здесь являются процессорная матрица, ее размер, находящиеся на ней операционные устройства, текущий масштаб, положение полос прокрутки. Алгоритм рисования проекта в любой момент времени:
Важным является алгоритм определения номера устройства, на которое щелкнула мышь. Чтобы реализовать эту задачу наиболее просто
и быстро, применен следующий подход. Создается таблица размещения устройств ( Location Table ), которая представляет собой двумерный массив целых чисел, размер которого равен размеру бит-матрицы в бит-процессорах. Значение каждого элемента массива с координатами [i, j] равно номеру процессорного устройства в списке процессорных устройств матрицы, которое "перекрывает" позицию [i, j]. Если несколько устройств перекрывают позицию [i, j] (то есть устройства накладываются друг на друга), то значение элемента таблицы размещения устройств равно большему номеру устройства. Если ни одно устройство не находится в указанной позиции, то Location Table[i, j] равно минус один. Таким образом, когда пользователь щелкает мышью, программа определяет позицию бит-процессора, на который указал пользователь, и по значению элемента из таблицы размещения устройств находит номер выбранного устройства (или определяет факт того, что щелчок пришелся по
"незанятой" части бит-матрицы).
Успешное решение задач локализации, идентификации и парирования в темпе реального времени множественных карт отказов требует создания единых программно-аппаратных инструментальных средств промышленной и эксплуатационной диагностики МКМД-бит-процессорных матриц.
Качество принимаемых решений на этапе проектирования (связанных с организацией соединений, синтезом тест-программ и тест-данных, анализом результатов тестирования и в дальнейшем
Проектирование алгоритмически ориентированных отказоустойчивых матричных СБИС разделяется на последовательность этапов, состоящих из операционного, логического и конструкторско-топологического проектирования (рис. 6.45).
(рис 6.45) Анализ задач проектирования отказоустойчивых матричных СБИСЦель
Процесс проектирования логических схем - это последовательность этапов синтеза и анализа (см. рис. 6.45) [296]. На этапе синтеза осуществляется проектирование схемы, реализующей заданный закон функционирования.
Формальные методы синтеза применимы только при известной
Физико-математические модели применимы только к классам схем небольшой схемотехнической сложности типа вентиль (логический элемент) и узел, и на их основе невозможно оценить последствие отказов на всех уровнях организации вычислений. В результате (полу)натурное физико-техническое моделирование используется только на самом нижнем, вентильном уровне оценки последействий отказов на реализуемые вентилями функции (рис. 6.46).
(рис 6.46) Особенности разработки отказоустойчивых схемПоэтому оценку влияния отказов на функционирование программируемых вычислительных средств можно провести только на основе многоуровневой системы, в которой поэтапно определяются изменения реализуемых функций под воздействием отказов на следующих уровнях: транзистор, вентиль, узел, блок, устройство (рис. 6.47).
Описание неисправностей на транзисторном уровне и ниже позволяет точно представить физическое явление, вызывающее отказ схемы, но такая модель становится громоздкой и неуправляемой на вентильном уровне описания схемы. Трудно даже оценить размерность системы
(рис 6.47) Отношение иерархии между микроэлектронными компонентамиуравнений Шредингера, которая полностью описывает процессы, протекающие в кристалле размером 6*6 см2. Поэтому на вентильном уровне от систем уравнений с непрерывными переменными и параметрами переходят к классам функций, которые может реализовать вентиль при полной вариации внешних и внутренних условий. В итоге вентиль рассматривается как некоторый многофункциональный модуль, в котором физические процессы представлены только косвенно вероятностями реализации той или иной функции из множества возможных.
Анализ влияния неисправностей транзисторного уровня на работу элементарного логического вентиля показал, что возможные неисправности вызывают ошибки на выходе вентиля, которые можно ограничить четырьмя типами функциональных изменений: "константный ноль", "константная единица", "инверсия выхода", "временное хранение единицы". При таком подходе модель ошибок для узлов, блоков и устройств оказывается недостаточно детализированной для построения корректного проверяющего теста. Это говорит о том, что в природе не существует полностью подконтрольных человеку вычислительных средств. Поэтому в вычислительной технике можно говорить только о качестве моделей логических схем, которое определяется качеством описания
Таким образом, элементарным логическим вентилем с отказами считается схема, реализующая
Сложность МКМД-бит-потоковых субпроцессоров как объектов диагностики определяется размерами $$(I, J)$$ бит-матрицы, израсходованной на микропрограмму. Полностью исправная бит-матрица однородна по предоставляемому аппаратному ресурсу, и пространство ее состояний оценивается соотношением $$Q(МКМД) = 2^{Rp*I*J}$$, где $$R_{p}$$ - разрядность регистра бит-инструкции, которая в случае СБИС Н1841 ВФ1 равна 16 битам. В результате уже при $$I*J = 10^{3}$$ МКМД-бит-потоковый субпроцессор оказывается непроверяемым за время жизни, сопоставимое со временем жизни Вселенной (порядка 14 миллиардов лет). Поэтому диагностику таких объектов можно провести только с использованием декомпозиции самого объекта диагностики.
Использованная декомпозиция базируется на естественном структурно-функциональном разбиении объекта диагностики (субпроцессора), в котором выделены 5 уровней (рис. 6.49):
(рис 6.48) Уровни моделирования неисправностей
(рис 6.49) Структурно-функциональная декомпозиция МКМД-субпроцессораТакая декомпозиция естественным образом дополняет структурно-функциональную декомпозицию субпроцессора. В результате оказываются согласованными "единицы" проекта в структурно-функциональной и диагностической плоскостях, а базовая "единица" диагностики (бит-процессор) оказывается равномощной. При этом три нижних уровня используются только на этапе проектирования бит-процессоров, субпроцессоров и средств их диагностики. Непосредственно в эксплуатации диагностика проводится с точностью до координаты отказавшего бит-процессора и (не)реализуемой бит-инструкции.
Методика многоуровневого имитационного моделирования отказоустойчивых МКМД-бит-потоковых субпроцессорных трактов (рис. 6.50) исходит из того, что на каждом уровне иерархии определяется влияние отказов на работоспособность модулей этого уровня, исходя из оценки последствий отказов, полученных не предыдущем уровне анализа. И так, постепенно поднимаясь с уровня на уровень, оценивается общая отказоустойчивость МКМД-бит-потокового субпроцессорного тракта.
(рис 6.50) Методика многоуровневого имитационного моделирования МКМД-бит-потокового субпроцессорного трактаМетодика базируется на
окончательное моделирование и анализ должны завершаться физическим моделированием ВС.
При создании инструментальных средств использована технология проблемно-ориентированного программирования, которая отвечает требованиям прототипирования проектов в области вычислительной техники. Поэтому базовым модулем всего комплекса является инструментальная библиотека классов
В библиотеку включены только логические вентили, имеющие несколько входов и один выход, а отказами считаются состояния единственного выхода вентиля следующего типа: "константный ноль", "константная единица", "инверсия значения выхода", "однотактное хранение единицы на выходе" (см. рис. 6.48).
Логическая схема, построенная пользователем с помощью инструментального средства FailSys.exe, хранится в оперативной памяти как отдельный объект класса CSheme и сохраняется на диске (сериализуется, по терминологии [297]) в файл с расширением *.log. Схема представляет собой массив указателей на абстрактный класс COperateLog, а фактически на объекты классов вентилей и схем. Указатель на этот массив хранится в родительском классе CShemeBase переменной m_ppOperate. В этом же классе определен набор чисто виртуальных функций, с помощью которых и происходит управление объектами массива m_ppOperate. Очередность расположения элементов в этом массиве определяет порядок срабатывания объектов (логических схем).
Элементами этого массива могут быть как сложные схемы (объекты класса CSheme ), так и элементарные логические вентили (объекты классов CElem1No (инверсия), CElem2Or (2-или), CElem2OrNo (2-или-не) и другие потомки класса CLogicSimple ). Класс CLogicOt (родитель класса CLogicSimple ) имеет набор методов, позволяющих устанавливать или убирать отказ в логическом вентиле. Класс CLogic предназначен для управления работой входами и выходами как сложных схем, так и простых вентилей. Объекты класса CLink связывают выход с входами логических элементов (один выход может быть соединен с множеством входов) и хранят текущие значения выходов
Инструментальное средство Otkazmodulate проводит полный *.in, а полученные выходные данные запоминаются в файле с расширением *.out в форме таблицы для каждого выхода.
(рис 6.51) Инструментальная библиотека классов логических вентилейЭти таблицы состоят из двух столбцов: в первом столбце записана бинарная последовательность значения контролируемого выхода, а во втором - число-счетчик, увеличивающееся каждый раз на единицу при получении на этом выходе именно этой последовательности при переборе карт отказов.
Инструментальное средство BPBrowse позволяет:
Данный инструментарий можно использовать как для синтеза логических схем бит-процессора по критерию максимальной отказоустойчивости, так и для синтеза проверяющих тестов по известной логической схеме бит-процессора.
Различают контролирующий и диагностирующий тесты. Первый устанавливает факт наличия или отсутствия отказов в схеме, а второй обеспечивает локализацию типа и места отказа в схеме.
(рис 6.52) Структурная схема инструментальных средств моделированияСинтез тестов осуществляется в интерактивном режиме и в предположении, что отказы вентилей равновероятны.
Для уровня блоков и узлов бит-процессора исходными данными для синтеза являются:
Для каждой схемы $$s_{m}$$ заданы:
Используя BPBrowse, необходимо определить наиболее устойчивую к $$n_{ot}$$
одновременным отказам вентилей схему $$s^{*}\in S$$ и контролирующий $$тест T ^{*}$$, где $$T ^{*}$$ - бинарная матрица размерности $$Kxl_{t}, l_{t}$$ -
*.log.Тест $$T_{m}$$ порождает эталонную бинарную матрицу выходных последовательностей $$O_{тэт}$$, которая отвечает реакциям полностью исправной схемы бит-процессора. При подаче подбираемого проверяющего теста $$T_{m}$$ на схему $$s_{m}$$, но уже с отказами в ней, с ее выходов снимается матрица $$O_{m}$$, которая представляет собой бинарную матрицу выходных последовательностей размерности $$L\times l_t$$.
Вероятность обнаружения отказов вентилей схемы $$s_m$$ синтезируемым тестом $$T_{m}$$ можно оценить соотношением:
$$P_{обн}^{m}=\cfrac{r_{om}^{m}}{C_{N_m}^{n_{ot}}*4^{n_{ot}}}$$где:
Главная особенность МКМД-бит-потоковых технологий состоит в том, что объектом диагностики на схемотехническом уровне является относительно простая схема бит-процессора (порядка 800-1000 вентилей), которая к тому же достаточно просто разбивается на блоки с разным последействием отказов: регистр команды, операционный канал, канал транзита, средства коммутации и т. п. (см. рис. 6.49). Поэтому при оценке отказоустойчивости реализуемых бит-процессором инструкций разработчик бит-процессора может синтезировать диагностический тест для всего бит-процессора, осуществив конкатенацию контролирующих тестов для узлов бит-процессора.
Вместе с тем функциональные возможности программно-аппаратной плоскости проекта, как правило, отвечают ультравысокой степени интеграции (порядка 8-20 миллионов вентилей и выше) за счет наращивания "площади" бит-матрицы (от 1000 до 10000 бит-процессоров).
Благодаря этой особенности инструментальное средство OtkazModulate позволяет перебрать все пространство отказов схемы бит-процессора $$s_m$$ и вычислить для нее $$P_{обн}^{m}$$ для подбираемого проверяющего теста $$T_m$$.
Если принять гипотезу о равномерном законе распределения входных воздействий в тесте $$T_{m} $$, то его обнаруживающая способность $$P_{обн}^{m}$$ определяется длиной контролирующего теста $$l_{t}$$ как показано на рис. 6.53.
Из рис. 6.53 видно, что с ростом до бесконечности длины теста вероятность обнаружения отказов растет до определенного значения $$P_{обн}^{предел}$$ которое можно считать предельным значением вероятности обнаружения отказов в схеме. Это обусловлено наличием в схеме бит-процессора индифферентных отказов, которые не влияют на правильность реализации заданной бит-инструкции. Таким образом, $$P_{раб}^{m}(n_{ot})$$ можно принять за вероятность сохранения работоспособности схемы $$s_m$$ при $$n_{ot}$$ одновременных отказов ее
Длина контролирующего теста $$T_m$$ для схемы $$s_m$$ не может быть бесконечной. Поэтому разработчику схемы бит-процессора приходиться ее ограничивать $$l_{t}^{min} $$, руководствуясь критерием минимума разности $$P_{обн}^{предел} - P_{обн}^{m}(l_t^{min}) \le \varepsilon \to \min$$ причем при этом он больше опирается на интуицию, чем на аналитические выводы.
(рис 6.53) Определение предельной вероятности обнаружения отказов схемыТаким образом, для каждой схемы $$s_m$$ разработчик определяет полный контролирующий тест $$T_{m}$$ ограниченной длины и его характеристики $$P_{обн}^{m}(l_t^{min})$$ и $$P_{раб}^{m}(n_{ot})$$. Очевидно, что наиболее устойчивая к $$n_{ot}$$ отказам схема та, у которой $$P_{раб}^{m}(n_{ot})$$ максимальна.
В кремниевой компиляции формальные методы и средства размещения блоков и устройств процессора достаточно эффективны, и поэтому
Программное обеспечение инструментальной платформы интерактивного микропрограммного конструирования должно удовлетворять двум главным требованиям, одно из которых относится к операционному ядру, а другое - к пользовательскому интерфейсу:
Сама инструментальная платформа является системой открытого типа, как по средствам синтеза, так и по накапливаемым результатам.
Поэтому сохранить дееспособность на каждом этапе своего развития она сможет, если будет совместимой с системными программными средствами, которые непрерывно развиваются.
Для создателей МКМД-бит-потокового субпроцессора неделимой единицей проекта является структурно-функциональная схема бит-матричной СБИС и система бит-инструкций (рис. 6.1), которые определяются на этапе схемо- и системотехнического проектирования самой проблемно-ориентированной СБИС. На этом же этапе определяются физические модели поражающих факторов и их "схемотехнические последствия", которые модифицируют систему бит-инструкций. Именно изменения и дополнения системы бит-инструкций, вызванные (множественными) отказами аппаратуры, являются "ахиллесовой пятой" вычислительной техники, так как подавляющее число отказов приводит не к автоматическому прекращению работы устройств вычислительной техники, а к "
(рис 6.1) Структура инструментальной платформымощность всего
В МКМД-бит-потоковой технологии сохраняется свойственное кремниевой компиляции отношение иерархии между субъединицами проекта: бит-инструкции $$\to$$ термы $$\to$$ слов-инструкции $$\to$$ поток-операторы, причем топология библиотечных слов- и поток-инструкций не учитывает ограничений геометрических размеров бит-матрицы, которые вступают в силу только на этапе формирования загрузочного модуля (см. рис. 6.1).
При создании инструментальной программной платформы МКМД-бит-потоковых технологий использование объектно-ориентированного подхода предопределяется двумя факторами:
В операционное ядро инструментальной платформы интерактивного микропрограммного конструирования ( Designer ) входят:
(рис 6.2) Структура инструментальных платформ ЦПОСВ МКМД-бит-потоковых технологиях аппаратный доступ можно обеспечить только к периферийным бит-процессорам матрицы, что резко снижает отладочные возможности полностью аппаратных инструментальных платформ. Поэтому наличие программного имитатора IMOS является атрибутом для такой технологии, так как данное средство поддерживает прямой доступ микропрограммного "конструктора" к произвольной совокупности входов-выходов бит-процессоров матрицы на каждом такте ее работы.
Компоновка микропрограмм осуществляется с помощью аффинных преобразований микропрограмм библиотечных операционных модулей и с использованием редактора связей, который призван обеспечить требуемые фазовые соотношения между входами-выходами операционных модулей на ортогональной FIFO -регистровой коммутационной решетке, где каждое перемещение операционного модуля приводит к изменению времени поступления операндов на его входы (см. раздел 4.1).
Использование аффинных преобразований микропрограмм операционных модулей предопределено необходимостью сохранения внутренних пространственно-временных связей между бит-инструкциями, входящими в преобразуемый операционный модуль. Благодаря этому при компоновке можно ограничиться только контролем фаз поступления потоков данных на входы операционных модулей. Такой контроль формализуем, и его можно свести к
Компоновку микропрограммных модулей можно выполнить в интерактивном и автоматическом режиме по заданному "клише", отражающему граф связности операционных модулей в поток-инструкции. Автоматический режим компоновки предполагает использование специализированных инструментальных платформ, ориентированных на термальный синтез алгоритмически ориентированных субпроцессоров обработки сигналов, изображений баз данных и знаний и т. п. Такие алгоритмические платформы термального синтеза выступают в качестве надстроек над операционным ядром, поддерживающем типовые процедуры синтеза.
Главная задача диагностической плоскости проекта - это найти компромисс между полнотой и временем обнаружения и локализации отказа. Такой компромисс, как правило, находится с помощью декомпозиции диагностируемых объектов, что кардинальным образом снижает размерность задачи диагностики и позволяет "покрыть" объект диагностики минимальным количеством тестов минимальной длины.
Первая специфическая особенность МКМД-бит-потоковых технологий состоит в естественной структурно-функциональной декомпозиции программно-аппаратной части проекта, которая позволяет достаточно достоверно распространить результаты диагностики "объекта" более низкого уровня иерархии на "объект" более высокого уровня иерархии (см. рис. 6.1). При этом методы и средства, используемые в процессе эксплуатации МКМД-бит-потоковых субпроцессоров, удается построить ни базе методов и средств промышленной диагностики, с помощью которых и определяются последствия отказов отдельных вентилей на правила функционирования бит-процессоров. Благодаря этому в МКМД-бит-потоковых технологиях сочетается достаточно высокая полнота и "глубина" диагностики бит-процессора с относительно простой логической схемой из 800-1000 вентилей и ультрабольшая степень функциональной интеграции бит-матрицы размером 10000-10000 бит-процессоров, расходуемой на п оддержку микропрограммы алгоритмически ориентированного субпроцессора.
Вторая специфическая особенность МКМД-бит-потоковых технологий состоит в наличии индифферентных отказов, не нарушающих условия правильной реализации единственной закрепленной за бит-процессором бит-инструкции. Наличие таких отказов обусловлено естественной структурно-функциональной избыточностью микропрограмм, которые в принципе не могут задействовать весь коммутационный и операционный ресурс каждого бит-процессора (см. табл. 4.2 раздела 4.1). Такие отказы, с одной стороны, снижают длину тестовых последовательностей, а с другой стороны - расширяют возможности системы парирования отказов за счет толерантного переразмещения микропрограмм на бит-матрице, которое можно осуществить с использованием аффинных преобразований и в темпе близком к реальному времени.
Уникальность МКМД-бит-потоковых технологий как раз и состоит в том, что в их рамках можно эффективно парировать целые карты отказов, для чего достаточно иметь некратный аппаратный резерв, который может составлять от 10 до 30 % "рабочего поля" бит-матрицы.
Пользовательский интерфейс приложения играет решающую роль в эффективности использования платформы, особенно в различных текстовых и графических редакторах, где удобный и простой интерфейс позволяет пользователю сконцентрировать внимание на решаемой задаче, а не на инструментарии. Поэтому в основу построения интерфейса
Designer положены общепризнанные принципы построения "дружественных интерфейсов":
меню и панель основных команд, рабочее пространство, переключатели режимов, панель докеров, шкала трассировки.
(рис 6.3) Общий вид инструментальной платформы DesignerЭлементы меню (табл. 6.1) имеют в основном традиционное назначение, за исключением аффинных преобразований и навигации. При этом считается, что итогом любого проекта являются файлы с расширением *.PGM и *., первый из которых представляет собой микропрограмму, задающую в шестнадцатеричном виде содержимое всех регистров бит-процессоров используемой бит-матрицы, а второй - бит-потоки отладочных данных, привязанные к каждому входу с точностью до требуемого такта начальной задержки.
Designer может работать в пяти режимах: " Редактирование кода ", " Работа с выделением ", " Входы-выходы ", " Такты " и " Отладка ". Каждому режиму соответствует свое "окно", которое становится видимым при выборе соответствующего режима. "Окна" (докеры) реализованы с использованием технологии Drag Dock. Любое "окно" либо строго вложено в определенную форму (рис. 6.4), либо допускает свободное перемещение в пределах экрана (рис. 6.5).
(рис 6.4) "Окно" в форме
(рис 6.5) Открепленное "окно"| Файл | Работа с файлами |
|---|---|
| Новый проект - создать PGM | Создать новый проект |
| Новый проект - открыть PGM | Создать новый проект на основе существующего PGM-файла |
| Открыть проект | Открыть существующий проект |
| Сохранить проект | Сохранить проект с текущим именем |
| Сохранить проект как... | Сохранить проект, указав имя |
| Импорт - PGM файл... | Вставить в проект микропрограмму |
| Импорт - РIO файл... | Добавить входные последовательности |
| Экспорт - PGM файл... | Сохранить микропрограмму в формате PGM |
| Печать... | Распечатать микропрограмму |
| Выход | Закрыть Designer |
| Правка | Внесение изменений |
| Вырезать | Стандартные операции с буфером |
| Копировать | |
| Вставить | |
| Атрибуты | Изменение размера матрицы |
| Повернуть | Выполнение аффинных преобразований |
| Отобразить | |
| Вставить из библиотеки | Вставить библиотечный терм |
| Параметры | Настройка среды |
| Вид | Изменение цветовой схемы редактора |
| Отображать все | Отображение незадействованных связей |
| Окно | Настройка панелей |
| Навигатор | Отображать навигацию |
Если открепить все "окна", рабочее пространство заметно увеличится, что особо актуально при разрешениях экранов размером 800х600 пикселей и меньше.
"Окно" навигации (рис. 6.6) доступно во всех режимах. Перемещая прямоугольник по белой области, можно перемещаться по всей схеме микропрограммы. Бегунок справа регулирует масштаб отображения схемы.
(рис 6.6) "Окно" "Навигация"Режим " Редактирование кода " (рис. 6.7) поддерживается соответствующим "окном" (рис. 6.8), с помощью которого выполняются все операции интерактивного формирования бит-инструкции выделенного бит-процессора.
(рис 6.7) Режим "Редактирование кода""Объектом" интерактивного графического редактирования является содержимое регистра бит-инструкции (см. рис. 3.2), которое включает: код операции (поле COP ), признак дополнительной задержки (поле FD ), направления приема двух входных операндов АЛУ (поля А1 и А2) и одного входного операнда транзита (поле А3), а также направления передачи выходных операндов АЛУ, транзита и транзита с задержкой (поля А4-А6). При выборе текущего входа/выхода в окне появляется его направление. Нажатием на нужную стрелку выбранный вход изменяет свое направление. Операция АЛУ выбирается из выпадающего списка. Флаг задержки определяется галочкой " Задержка ".
(рис 6.8) "Окно" "Редактирование кода"Режим " Входы/выходы " (рис. 6.9) поддерживает "окно" назначения входов/выходов (рис. 6.10), через которое можно работать только с выделенным бит-процессором. В этом режиме задаются все контрольные точки для работы программы имитационного моделирования IMOS. Нажатие на выбранной стрелке "окна" открывает диалог для ввода (рис. 6.11) цвета отображения входа на шкале трассировки, начальной задержки по данному входу и входной последовательности. Нажатие на прямоугольник, отображающий цвет входа, вызывает стандартный диалог выбора цвета. По умолчанию цвета назначаются случайным образом. По кнопке " Удалить " данный вход удаляется из списка. После назначения входа он отображается на шкале трассировки.
(рис 6.9) Режим "Входы-выходы"
(рис 6.10) "Окно" "Назначения входов/выходов" (первый шаг диалога)
(рис 6.11) "Окно" "Назначение входов/выходов" (второй шаг диалога)Входные операнды представляют собой последовательность бит-данных, которую можно задать в ручном и циклическом режимах. В ручном режиме входная последовательность бит-данных задается как с помощью "окна" рис. 6.11, где в выделенном номере такта "ноль" заменяется "единицей", так и непосредственно на шкале трассировки с помощью клика в соответствующем квадрате.
Для задания циклической входной бит-последовательности (рис. 6.12) "окно" рис. 6.11 необходимо перевести в режим " Вставка ", в результате чего появится "окно" рис. 6.13. В этом режиме непосредственно определяется содержимое операнда (в данном случае 1001110110) и задается количество циклов его повторения (в данном случае 3), которое после выхода из "окна" отображается на шкале трассировки (рис. 6.14).
(рис 6.12) Режим "Входы-выходы" при задании циклического входного воздействия
(рис 6.13) "Окно" назначения входов/выходов (третий шаг диалога)
(рис 6.14) Циклическая последовательность на шкале трассировкиШкала трассировки присутствует во всех режимах, и на ней отображены в цвет все выделенные входы-выходы бит-процессоров микропрограммы и битное представление каждого входа-выхода на каждом такте работы бит-матрицы. "Единичные" значения операндов представлены красным цветом, а "нулевые" - белым. Значения выходов рассчитываются в режиме программной эмуляции работы бит-матрицы. Для компактности отображения количество десятков номера такта вынесено выше.
Режим " Такты " (рис. 6.15) используется в процессе компоновки бит-инструкций в термы, термов в слов-инструкции и слов-инструкций в поток-операторы. В МКМД-бит-потоковых вычислительных технологиях обмен данными на бит-матрице осуществляется только через FIFO -регистровые каналы. В результате любое перемещение операционного модуля на бит-матрице в процессе компоновки слов- или поток-инструкции всегда сопровождается временным сдвигом, что может привести к нарушению правил фазировки во всем субпроцессоре. Поэтому контроль временных соотношений по всем входам компонуемых операционных модулей является одной из центральных проблем микропрограммного конструирования.
Designer имеет встроенное средство интерактивного расчета фазы продвижения вычислительной волны по бит-матрице. Выбор интерактивного режима предопределен неоднозначностью правил распространения
вычислительной волны. Например, требуется вычислить время задержки в бит-процессоре рис. 6.16, на один из вводов которого подается содержимое 01000010 из бит-инструкции "
(рис 6.15) Режим "Такты"
(рис 6.16) разработчиком микропрограммы либо высокоразвитой системой искусственного интеллекта, предлагающей (микро)программисту возможные варианты устранения возникающих неоднозначностей и точек их локализации. Поэтому в Designer использован смешанный режим определения времени задержки в каждом бит-процессоре, в котором автоматически вычисляется задержка по отношению к входному операнду с минимальной входной задержкой, которую (микро)программист может изменить по своему усмотрению в любой "контрольной" точке микропрограммы, после чего цикл автоматического вычисления должен быть повторен.
Для этих целей "окно" " Расчет тактов " (рис. 6.17) используется в режиме принудительной коррекции такта на выходе выделенного бит-процессора. Для коррекции такта достаточно нажать на соответствующий выход в "окне" рис. 6.17. В результате появится "окно" рис. 6.18, в соответствующее поле которого вводится откорректированный такт,
(рис 6.17) "Окно" "Расчет тактов"
(рис 6.18) "Окно" "Коррекция такта"
(рис 6.19) "Окно" "Коррекция такта"который выделяется красным цветом (рис. 6.19) и сохраняется в файле с расширением *.
Для компоновки объектов проектирования МКМД-бит-потоковых технологий Designer переводится в режим " Работа с выделением " (рис. 6.21), который поддерживается "окном" " Аффинный преобразователь " (рис. 6.22).
Аффинные преобразования выполняются только над выделенным фрагментом микропрограмм (см. рис. 6.21), причем переносы по двум координатам выделенного фрагмента осуществляются его захватом мышью и размещением в требуемом месте бит-матрицы. Чтобы повернуть выделенный фрагмент вокруг соответствующей оси, достаточно нажать соответствующую позицию в докере рис. 6.22.
(рис 6.20) Режим "Такты" с принудительной коррекцией
(рис 6.21) Режим "Работа с выделением"В режиме " Отладка " прежде всего необходимо задать количество тактов работы IMOS, для чего используется поле " Настройка " меню основных команд (рис. 6.23).
При отладке IMOS может работать в двух режимах - пошаговом и автоматическом, то есть на всю "глубину" моделирования: по всем контрольным точкам, заданным на шкале трассировки, и на всех тактах, заданных в окне " Настройка ". Результаты моделирования отражаются в виде двоичных последовательностей на выходах, определенных на шкале трассировки (рис. 6.24-a), с той разницей, что в режиме пошаговой отладки распространение фронта вычислительной волны по бит-матрице фиксируется распространением "желтых шариков", отвечающих "единичным" значениям распространяемых данных (рис. 6.24-б).
(рис 6.22) "Окно" "Аффинный преобразователь"
(рис 6.23) Режим "Отладка" (задание количества тактов)
(рис 6.24) б) Режим "Пошаговой отладки"Проблемно-ориентированная инструментальная платформа MatrixDesigner является надстройкой над платформой Designer, предназначена для термального синтеза МКМД-бит-потоковых субпроцессоров векторно-матричной обработки потоков данных и включает:
В операционном ядре реализуются следующие функции:
Пользовательский интерфейс реализует:
MatrixDesigner позволяет пользователю получить доступ ко всем функциям, выполнение которых обеспечивает среда проектирования. Главное окно программы выглядит как показано на рис. 6.25.
"Окно" приложения включает: меню, панели инструментов, "окно" редактирования и "окно" отображения свойств выбранного объекта.
(рис 6.25) Пользовательский интерфейс инструментальной среды MatrixDesignerМеню MatrixDesigner содержит пункты: " Файл ", " Правка ", " Специальное ", " О программе ".
Меню " Файл " содержит функции управления проектом (рис. 6.26).
(рис 6.26) Меню "Файл"Пункт " Новый …" меню " Файл " позволяет создать новый проект. При этом пользователю предлагается ввести размер новой матрицы (рис. 6.27).
(рис 6.27) Меню "Новый…"Через пункт меню " Открыть проект " можно загрузить ранее созданный проект, указав его имя.
Файлы проекта инструментальной платформы MatrixDesigner имеют расширение *.dpj. В таком файле содержатся данные всей созданной пользователем схемы. Для сохранения на диск нового созданного проекта и для сохранения изменений, сделанных в уже существующем проекте, существуют пункты меню " Сохранить " и " Сохранить как ". Если проект является вновь созданным, то при нажатии на кнопку " Сохранить " пользователю предлагается ввести имя нового файла проекта; если же проект уже имеет имя, то при нажатии на эту кнопку происходит сохранение проекта под старым именем.
Пункт меню " Закрыть проект " позволяет закончить работу над текущим проектом, а пункт " Выход " завершает работу программы. Справа от названия некоторых пунктов меню находятся обозначения комбинации "горячих" клавиш, которые позволяют быстро вызывать соответствующий пункт меню. Например, чтобы открыть существующий проект, достаточно нажать одновременно " Ctrl " и " O ".
Пункт " Правка " позволяет выполнять основные операции редактирования (рис. 6.28).
(рис 6.28) Меню "Правка"В этом меню пункты " Вырезать ", " Копировать ", " Вставить ", " Удалить " выполняют стандартные действия. При этом объекты, попавшие в системный буфер обмена (по команде " Копировать " или " Вырезать "), можно разместить в другие копии программы MatrixDesigner, где работа ведется над другим проектом.
Для расширения функциональных возможностей и комплексиро-вания данной инструментальной среды с уже созданными средствами проектирования предусмотрена возможность обращения к подключаемым программным модулям через пункт " Открыть в Designer " в меню " Специальное " (рис. 6.29). Пункт " Настройки " открывает диалог настроек программы.
(рис 6.29) Меню "Специальное"Нажатие на пункт меню " О программе " позволяет увидеть информацию о версии программного продукта.
Каждая кнопка на панели инструментов имеет семантически понятное изображение, а также всплывающую подсказку на русском языке.
Кнопки на панелях управления проектом повторяют функциональность аналогичных пунктов главного меню программы. Исключение составляет команда " Экспортировать " (рис. 6.30). Она позволяет сохранить текущий проект в формате файла *.PGM, который поддерживается ранее созданной низкоуровневой средой разработки Designer.
(рис 6.30) Меню "Экспортировать"В каждом программном средстве проектирования создается и поддерживается какая-либо нотация, то есть соглашение по созданию некоторой абстракции в рассматриваемой предметной области. В этой инструментальной среде пользователь оперирует объектами, которые называются устройствами. В процессе компоновки МКМД-бит-потоковых операционных устройств МКМД-бит-потоковых субпроцессоров составляющие микропрограммные модули представляются описывающими прямоугольниками с условными обозначениями входов и выходов. Каждое устройство представляет собой некоторую совокупность бит-процессоров на процессорной матрице, выполняющих определенную функцию. В общем случае процессорное устройство получает на вход данные (хотя может и не получать, а генерировать данные для своей работы самостоятельно), обрабатывает их и отправляет результат вычислений (преобразований) куда-либо. Здесь термины "отправляет результат" и "получает данные" применяются по отношению к битовым потокам данных. Таким образом, начальные да нные для нового проекта - это процессорная матрица выбранного размера, причем регистр каждого бит-процессора "пустой" матрицы содержит значение ноль. В процессе проектирования пользователь создает процессорные устройства и размещает их на матрице таким образом, чтобы получить оптимальную топологическую схему разрабатываемого субпроцессора. Вся работа ведется в области редактирования. Процессорная матрица отображается как показано на рис. 6.31.
Каждая клетка на этом поле - отдельный бит-процессор. Здесь есть две координатные линейки - сверху и слева. Отсчет координат ведется с нуля. Места, где устройство получает данные и отправляет их (входы и выходы), отображаются в виде треугольников. Вход обозначается треугольником, направленным внутрь соответствующего бит-процессора, а выход - треугольником, направленным во внешнюю сторону. Цвет каждого устройства, а также цвет отображения входов, выходов, цвета линеек и процессорной матрицы задаются пользователем.
(рис 6.31) Область редактирования проектаОсновная панель инструментов - это панель генерации устройств. Она обеспечивает базовую функциональность по созданию операционных модулей. При нажатии на любую из кнопок генерации устройств, например " ADD " (сумматор-накопитель), среда запрашивает у разработчика требуемую разрядность нового устройства, как показано на рис. 6.32.
(рис 6.32) Содержимое окна параметров слов-инструкции ADDПосле нажатия на кнопку " OK " на бит-матрице появляется новое устройство с заданными параметрами (в данном случае это сумматор - рис. 6.33).
(рис 6.33) Отображение сгенерированной слов-инструкции ADD в рабочем полеНажав правую кнопку мыши на устройстве и выбрав в появившемся контекстном меню пункт " Детализировать ", получим графическое представление топологии выбранной микропрограммы (рис. 6.34).
(рис 6.34) Детализация сгенерированной слов-инструкции ADDОписание некоторых элементов графического отображения топологии микропрограммы представлено в табл. 6.2.
Описанным способом можно сгенерировать любое операционное, интерфейсное, адресное или управляющее устройство, поддерживающее систему команд МКМД-бит-потокового субпроцессора векторно-матричной обработки данных (табл. 6.3).
| Условное изображение | Комментарий |
|---|---|
![]() |
В канале АЛУ бит-процессора выполняется операция ADD над операндами, поступающими на первом такте слева и снизу. Результирующий операнд выдается на 3 такте вправо. В канале транзита входной операнд поступает снизу на 1 такте и подается с задержкой на один такт вверх, а с задержкой на 3 такта - вниз |
![]() |
В канале АЛУ выполняется операция "расширенный транзит"(WTR), в которой по каналам "слева-вниз" и "снизу-вправо" операнды распространяются с задержкой на 1 такт, а по каналу "справа-налево" - с задержкой на 2 такта |
![]() |
В канале АЛУ выполняется операция "запоминание единицей", в которой информационный операнд подается на 0 такте слева, а управляющий операнд - на 2 такте справа и, если он имеет вид циклической константы 00…01, то на выходе с дополнительной задержкой на 2 такта по отношению к управляющему входу запоминается содержимое $$(n-3)$$ -го бита информационного операнда. Канал транзита не используется |
![]() |
В каналах АЛУ и транзита выполняется слияние потоков по "ИЛИ" по правилу: $$x(t+1)\lor x(t+2)\lor x(t+3)$$, где $$\lor$$ - операция "ИЛИ", а результирующий операнд поступает на правый выход бит-процессора с задержкой на 1, 2 и 3 такта |
![]() |
В канале АЛУ реализуется операция NOP, то есть он не используется, а в канале транзита входной операнд поступает слева и передается вправо с дополнительной задержкой на 2 такта, а вниз - с дополнительной задержкой на 1 такт |
| Команда | Описание |
|---|---|
| $$MLT$$ | Умножитель |
| $$ADD$$ | Сумматор |
| $$DCC$$ | Трансформатор кода |
| $$DIV$$ | Делитель |
| $$С[1,m]$$ | |
| $$С[n,m\$$ | |
| $$С+1$$ | Счетчик +1 (инкремент) |
| $$С-1$$ | Счетчик -1 (декремент) |
| $$С+1S$$ | Счетчик +1 с предустановкой |
| $$С -1S$$ | Счетчик -1с предустановкой |
| $$In$$ | Параллельно-последовательный интерфейс |
| $$Out$$ | Последовательно-параллельный интерфейс |
Команда " Импортировать " (рис. 6.35) позволяет разместить нестандартное устройство на матрице, которое должно быть предварительно создано в файле специального формата ( *.PGM ) или вручную, или с помощью среды Designer.
(рис 6.35) Меню "Нестандартное устройство"
(рис 6.36) Коммутатор выходных портов ОЗУВ частности, "нестандартным" устройством является коммутатор, который обеспечивает перераспределение 8 выходов ОЗУ между 2 входами операционного устройства субпроцессора векторно-матричной обработки данных (рис. 6.36). "Нестандартность" такого коммутатора обусловлена пространственным совмещением FIFO -регистровых шин передачи входных данных и адресов, управляющих обменом с ОЗУ.
Чтобы добавить в проект это нестандартное устройство, достаточно в файл *.PGM этого устройства добавить строки с описанием, например:
0088 CE87 7E87 0083 0083 0083 0083 0083 0083 0083 0083 6531 6734 64F1 0088 C98D 4A47 C9B8 C9B8 C9B8 C9B8 C9B8 C9B8 C9B8 C9B4 66F1 6E58 66F9 0088 C60F 0041 4D20 4D28 4D28 4D28 4D28 4D28 4D28 4D28 6632 6D1E 6639 62E1 6261 6261 6221 62E1 62E1 62E1 62E1 62E1 62E1 62F1 7631 62F1 7847 6263 6261 6261 6261 6221 62E1 62E1 62E1 62E1 62F1 66F1 6631 62F1 7847 62E1 6261 6261 6261 6261 6221 62E1 62E1 62F1 66F1 66F1 6631 62F1 7847 6263 6261 6261 6261 6261 6261 6221 62F1 66F1 66F1 66F1 6631 62F1 7B4B 62E1 6261 6261 6261 6261 6263 6232 6631 66F1 66F1 66F1 6631 62F1 6263 6263 6261 6261 6261 6263 6223 6263 6263 6631 66F1 66F1 6631 62F1 6253 62E1 6261 6261 6263 6223 6263 6263 6263 6263 6631 66F1 6631 62F1 6253 6263 6263 6263 6223 6263 6263 6263 6263 6263 6263 6631 6631 62F1 6253 0088 CE05 00C3 4720 4728 4728 4728 4728 4728 4728 4728 6263 6E39 6043 0088 CB87 4ACD CB98 CB98 CB98 CB98 CB98 CB98 CB98 CB9C 6263 6594 0054 0088 C68D 768D 0081 0081 0081 0081 0081 0081 0081 0081 0044 0000 0000 C $INPORT(0,3,0,<Порт 1>) C $INPORT(0,4,0,<Порт 2>) C $INPORT(0,5,0,<Порт 3>) C $INPORT(0,6,0,<Порт 4>) C $INPORT(0,7,0,<Порт 5>) C $INPORT(0,8,0,<Порт 6>) C $INPORT(0,9,0,<Порт 7>) C $INPORT(0,10,0,<Порт 8>) C $INPORT(11,0,1,<Управление 1: Циклическая константа>) C $INPORT(12,0,1,<Управление 2: Адрес порта по входу 1 ОУ>) C $INPORT(13,0,1,<Управление 3: Адрес порта по входу 2 ОУ>) C $INPORT(13,3,2,<Вход адреса ОЗУ порта 1>) C $INPORT(13,4,2,<Вход адреса ОЗУ порта 2>) C $INPORT(13,5,2,<Вход адреса ОЗУ порта 3>) C $INPORT(13,6,2,<Вход адреса ОЗУ порта 4>) C $INPORT(13,7,2,<Вход адреса ОЗУ порта 5>) C $INPORT(13,8,2,<Вход адреса ОЗУ порта 6>) C $INPORT(13,9,2,<Вход адреса ОЗУ порта 7>) C $INPORT(13,10,2,<Вход адреса ОЗУ порта 8>) C $OUTPORT(0,3,0,<Адрес порта ОЗУ 1>) C $OUTPORT(0,4,0,<Адрес порта ОЗУ 2>) C $OUTPORT(0,5,0,<Адрес порта ОЗУ 3>) C $OUTPORT(0,6,0,<Адрес порта ОЗУ 4>) C $OUTPORT(0,7,0,<Адрес порта ОЗУ 5>) C $OUTPORT(0,8,0,<Адрес порта ОЗУ 6>) C $OUTPORT(0,9,0,<Адрес порта ОЗУ 7>) C $OUTPORT(0,10,0,<Адрес порта ОЗУ 8>) C $OUTPORT(12,0,1,<Информационный выход первого входа 2 ОУ>) C $OUTPORT(13,0,1,<Информационный выход первого входа 1 ОУ>),
где первые 14 строк - шестнадцатеричное представление бит-инструкций файла *.PGM.
Команда " Импорт " позволяет добавить это устройство в проект (рис. 6.37).
(рис 6.37) Отображение "нестандартного" интерфейса в рабочем полеПользователь может по своему усмотрению изменить положение устройства или группы устройств на матрице. Чтобы это сделать, сначала необходимо указать набор объектов (или один объект), которые будут перемещены (выделить объекты). Сделать это можно несколькими способами:
цвет которой задается пользователем.
Чтобы изменить положение объекта на матрице, нужно нажать на нем левую кнопку мыши, и, не отпуская ее, перемещать мышь. Чтобы объект зафиксировался в новом положении, отпустите кнопку. Чтобы переместить несколько объектов, необходимо удерживать в нажатом положении
клавишу " Shift ". Если в выбранном новом положении устройство выходит за границы матрицы, то перемещение не будет выполнено. Разрешается наложение объектов. Эта возможность предусмотрена для удобства компоновки устройств в случае очень "плотной" схемы. Построение оптимальной топологической схемы проектируемого сопроцессора невозможно без аффинных преобразований. Для этого предусмотрена панель, показанная на рис. 6.38.
(рис 6.38) "Окно" "Аффинные преобразования"Кнопки (слева направо) выполняют следующие действия:
После каждого из аффинных преобразований бит-процессоры, составляющие устройство, меняют свое положение, и над их кодами выполняются соответствующие преобразования.
У пользователя есть возможность в любой момент поменять линейные размеры процессорной матрицы, над которой он работает, а для удобства редактирования больших схем предусмотрена возможность изменения масштаба отображения (рис. 6.39).
(рис 6.39) "Окно" "Масштаб"Верхняя из двух показанных на рисунке панелей - панель управления масштабом. Текущий масштаб показан в текстовом окне ниспадающего списка. Увеличивать и уменьшать масштаб отображения можно кнопками, расположенными справа от текстового окна. На нижней панели устанавливается размер матрицы. Чтобы установить новый размер, необходимо изменить числа в текстовых полях и щелкнуть левой кнопкой мыши на каком-либо другом элементе управления.
Есть еще один альтернативный способ изменения положения свойств и размещения объектов. Этот способ основан на использовании контекстных меню (рис. 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 ) и направление канала транзита ( ). Кроме того, для каждого бит-процессора можно получить и установить значение его регистра ( Register ).
Одним из базовых принципов объектно-ориентированного подхода является создание иерархической структуры программного средства путем декомпозиции. Здесь это реализуется следующим образом: группа бит-процессоров, объединяясь, образует некоторое законченное процессорное устройство, выполняющее заданную разработчиком функцию. Таких устройств можно разработать очень много, и они будут совершенно разными. Поэтому был создан класс ProcessorDevice.
В этом классе определены основные действия (методы), которые можно применять к процессорному устройству. К ним относятся:
Rotate90 ), отражения относительно осей ( RotateOnX, RotateOnY ) и диагоналей ( RotateOnDiagonal );Каждое устройство обладает следующими основными свойствами:
N ),Description ),DeviceColor ),SizeX, SizeY ), которые задаются параметрами описывающего прямоугольника ;XPos, YPos ).Каждое новое процессорное устройство является потомком класса ProcessorDevice (рис. 6.44).
(рис 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 бит-процессоров) МКМД-бит-потоковых операторов. Более высокий уровень организации вычислений связан с последовательной активизацией и загрузкой поток-операторов в бит-матрицу.
Инструментальное средство MatrixDesigner реализовано в среде Microsoft Visual Studio 2005 и написано на языке C#.
На выбор типа преобразований, обеспечивающих в квазиреальном масштабе времени парирование действующей в бит-матрице карты отказов, решающее влияние оказывают два фактора:
В технике подобного рода задачи обычно решаются адаптивными методами, по максимуму сохраняющими критичные характеристики исходной "сложной" системы, затрагиваемые используемыми в процессе адаптации преобразованиями.
Описанным условиям и динамическим требованиям в достаточной мере удовлетворяют локальные и глобальные аффинные преобразования "рабочего тела" тестовых или пользовательских микропрограмм. В этом случае:
Рассмотрим преобразования координат размещения бит-команд в поток-операторе пользователя (бит-процессорном устройстве). Здесь $$i$$ и $$j$$ - координаты бит-процессора. В общем случае его координаты после проведения аффинных преобразований изменятся на $$\tilde{i}$$ и $$\tilde{j}$$, $$i = \overline{1,i_m}$$, $$j = \overline{1,j_m}$$. Алгоритмы вычисления нового положения каждого бит-процессора:
В каждом из рассмотренных выше случаев аффинных преобразований есть необходимость изменения содержимого регистра каждого бит-процессора. Преобразование кодов бит-команд производится следующим образом ( $$R$$ - регистр бит-процессора, $$\tilde{R}$$ - значение регистра бит-процессора после преобразования):
где $$B_{1} = 1111.0011.0011.0011;\\ B_{2} = 0000.0001.0001.0001; \\ B_{3}(T) = B_{2} (T+2) = 0000.0100.0100.0100$$.
Входы и выходы устройства в нотации MatrixDesigner изображаются в виде треугольников. Порт устройства является объектом, свойство которого пользователь может увидеть в таблице свойств выбранного объекта. Чтобы обеспечить эту возможность, необходим алгоритм определения принадлежности точки треугольнику. На вход такого алгоритма подаются координаты вершин треугольника в прямоугольной системе координат и координаты точки, а true, если точка принадлежит треугольнику, и false, если точка лежит за пределами треугольника. Эту проверку осуществляет метод . Алгоритм следующий:
true, иначе перейти к пункту 2.false, иначе перейти к пункту 5.false.true ), иначе вернуть false.Одной из наиболее сложных задач в плане программной реализации является создание пользовательского интерфейса, особенно той его части, которая отвечает за визуальное отображение данных проекта (бит-матрица и находящиеся на ней операционные устройства) и работу с ним. Чтобы отделить реализацию этого элемента пользовательского интерфейса от создания других частей программы, модуль рисования и работы над бит-матрицей оформлен в виде пользовательского элемента управления ( UserControl ) и реализован в классе MatrixDirectDrawView. Именно в нем реализованы методы копирования и вставки объектов, методы рисования данных проекта на экране, а также методы взаимодействия программы с пользователем посредством клавиатуры и мыши. Особого внимания заслуживает алгоритм перерисовки проекта. Входными данными здесь являются процессорная матрица, ее размер, находящиеся на ней операционные устройства, текущий масштаб, положение полос прокрутки. Алгоритм рисования проекта в любой момент времени:
Важным является алгоритм определения номера устройства, на которое щелкнула мышь. Чтобы реализовать эту задачу наиболее просто
и быстро, применен следующий подход. Создается таблица размещения устройств ( Location Table ), которая представляет собой двумерный массив целых чисел, размер которого равен размеру бит-матрицы в бит-процессорах. Значение каждого элемента массива с координатами [i, j] равно номеру процессорного устройства в списке процессорных устройств матрицы, которое "перекрывает" позицию [i, j]. Если несколько устройств перекрывают позицию [i, j] (то есть устройства накладываются друг на друга), то значение элемента таблицы размещения устройств равно большему номеру устройства. Если ни одно устройство не находится в указанной позиции, то Location Table[i, j] равно минус один. Таким образом, когда пользователь щелкает мышью, программа определяет позицию бит-процессора, на который указал пользователь, и по значению элемента из таблицы размещения устройств находит номер выбранного устройства (или определяет факт того, что щелчок пришелся по
"незанятой" части бит-матрицы).
Успешное решение задач локализации, идентификации и парирования в темпе реального времени множественных карт отказов требует создания единых программно-аппаратных инструментальных средств промышленной и эксплуатационной диагностики МКМД-бит-процессорных матриц.
Качество принимаемых решений на этапе проектирования (связанных с организацией соединений, синтезом тест-программ и тест-данных, анализом результатов тестирования и в дальнейшем
Проектирование алгоритмически ориентированных отказоустойчивых матричных СБИС разделяется на последовательность этапов, состоящих из операционного, логического и конструкторско-топологического проектирования (рис. 6.45).
(рис 6.45) Анализ задач проектирования отказоустойчивых матричных СБИСЦель
Процесс проектирования логических схем - это последовательность этапов синтеза и анализа (см. рис. 6.45) [296]. На этапе синтеза осуществляется проектирование схемы, реализующей заданный закон функционирования.
Формальные методы синтеза применимы только при известной
Физико-математические модели применимы только к классам схем небольшой схемотехнической сложности типа вентиль (логический элемент) и узел, и на их основе невозможно оценить последствие отказов на всех уровнях организации вычислений. В результате (полу)натурное физико-техническое моделирование используется только на самом нижнем, вентильном уровне оценки последействий отказов на реализуемые вентилями функции (рис. 6.46).
(рис 6.46) Особенности разработки отказоустойчивых схемПоэтому оценку влияния отказов на функционирование программируемых вычислительных средств можно провести только на основе многоуровневой системы, в которой поэтапно определяются изменения реализуемых функций под воздействием отказов на следующих уровнях: транзистор, вентиль, узел, блок, устройство (рис. 6.47).
Описание неисправностей на транзисторном уровне и ниже позволяет точно представить физическое явление, вызывающее отказ схемы, но такая модель становится громоздкой и неуправляемой на вентильном уровне описания схемы. Трудно даже оценить размерность системы
(рис 6.47) Отношение иерархии между микроэлектронными компонентамиуравнений Шредингера, которая полностью описывает процессы, протекающие в кристалле размером 6*6 см2. Поэтому на вентильном уровне от систем уравнений с непрерывными переменными и параметрами переходят к классам функций, которые может реализовать вентиль при полной вариации внешних и внутренних условий. В итоге вентиль рассматривается как некоторый многофункциональный модуль, в котором физические процессы представлены только косвенно вероятностями реализации той или иной функции из множества возможных.
Анализ влияния неисправностей транзисторного уровня на работу элементарного логического вентиля показал, что возможные неисправности вызывают ошибки на выходе вентиля, которые можно ограничить четырьмя типами функциональных изменений: "константный ноль", "константная единица", "инверсия выхода", "временное хранение единицы". При таком подходе модель ошибок для узлов, блоков и устройств оказывается недостаточно детализированной для построения корректного проверяющего теста. Это говорит о том, что в природе не существует полностью подконтрольных человеку вычислительных средств. Поэтому в вычислительной технике можно говорить только о качестве моделей логических схем, которое определяется качеством описания
Таким образом, элементарным логическим вентилем с отказами считается схема, реализующая
Сложность МКМД-бит-потоковых субпроцессоров как объектов диагностики определяется размерами $$(I, J)$$ бит-матрицы, израсходованной на микропрограмму. Полностью исправная бит-матрица однородна по предоставляемому аппаратному ресурсу, и пространство ее состояний оценивается соотношением $$Q(МКМД) = 2^{Rp*I*J}$$, где $$R_{p}$$ - разрядность регистра бит-инструкции, которая в случае СБИС Н1841 ВФ1 равна 16 битам. В результате уже при $$I*J = 10^{3}$$ МКМД-бит-потоковый субпроцессор оказывается непроверяемым за время жизни, сопоставимое со временем жизни Вселенной (порядка 14 миллиардов лет). Поэтому диагностику таких объектов можно провести только с использованием декомпозиции самого объекта диагностики.
Использованная декомпозиция базируется на естественном структурно-функциональном разбиении объекта диагностики (субпроцессора), в котором выделены 5 уровней (рис. 6.49):
(рис 6.48) Уровни моделирования неисправностей
(рис 6.49) Структурно-функциональная декомпозиция МКМД-субпроцессораТакая декомпозиция естественным образом дополняет структурно-функциональную декомпозицию субпроцессора. В результате оказываются согласованными "единицы" проекта в структурно-функциональной и диагностической плоскостях, а базовая "единица" диагностики (бит-процессор) оказывается равномощной. При этом три нижних уровня используются только на этапе проектирования бит-процессоров, субпроцессоров и средств их диагностики. Непосредственно в эксплуатации диагностика проводится с точностью до координаты отказавшего бит-процессора и (не)реализуемой бит-инструкции.
Методика многоуровневого имитационного моделирования отказоустойчивых МКМД-бит-потоковых субпроцессорных трактов (рис. 6.50) исходит из того, что на каждом уровне иерархии определяется влияние отказов на работоспособность модулей этого уровня, исходя из оценки последствий отказов, полученных не предыдущем уровне анализа. И так, постепенно поднимаясь с уровня на уровень, оценивается общая отказоустойчивость МКМД-бит-потокового субпроцессорного тракта.
(рис 6.50) Методика многоуровневого имитационного моделирования МКМД-бит-потокового субпроцессорного трактаМетодика базируется на
окончательное моделирование и анализ должны завершаться физическим моделированием ВС.
При создании инструментальных средств использована технология проблемно-ориентированного программирования, которая отвечает требованиям прототипирования проектов в области вычислительной техники. Поэтому базовым модулем всего комплекса является инструментальная библиотека классов
В библиотеку включены только логические вентили, имеющие несколько входов и один выход, а отказами считаются состояния единственного выхода вентиля следующего типа: "константный ноль", "константная единица", "инверсия значения выхода", "однотактное хранение единицы на выходе" (см. рис. 6.48).
Логическая схема, построенная пользователем с помощью инструментального средства FailSys.exe, хранится в оперативной памяти как отдельный объект класса CSheme и сохраняется на диске (сериализуется, по терминологии [297]) в файл с расширением *.log. Схема представляет собой массив указателей на абстрактный класс COperateLog, а фактически на объекты классов вентилей и схем. Указатель на этот массив хранится в родительском классе CShemeBase переменной m_ppOperate. В этом же классе определен набор чисто виртуальных функций, с помощью которых и происходит управление объектами массива m_ppOperate. Очередность расположения элементов в этом массиве определяет порядок срабатывания объектов (логических схем).
Элементами этого массива могут быть как сложные схемы (объекты класса CSheme ), так и элементарные логические вентили (объекты классов CElem1No (инверсия), CElem2Or (2-или), CElem2OrNo (2-или-не) и другие потомки класса CLogicSimple ). Класс CLogicOt (родитель класса CLogicSimple ) имеет набор методов, позволяющих устанавливать или убирать отказ в логическом вентиле. Класс CLogic предназначен для управления работой входами и выходами как сложных схем, так и простых вентилей. Объекты класса CLink связывают выход с входами логических элементов (один выход может быть соединен с множеством входов) и хранят текущие значения выходов
Инструментальное средство Otkazmodulate проводит полный *.in, а полученные выходные данные запоминаются в файле с расширением *.out в форме таблицы для каждого выхода.
(рис 6.51) Инструментальная библиотека классов логических вентилейЭти таблицы состоят из двух столбцов: в первом столбце записана бинарная последовательность значения контролируемого выхода, а во втором - число-счетчик, увеличивающееся каждый раз на единицу при получении на этом выходе именно этой последовательности при переборе карт отказов.
Инструментальное средство BPBrowse позволяет:
Данный инструментарий можно использовать как для синтеза логических схем бит-процессора по критерию максимальной отказоустойчивости, так и для синтеза проверяющих тестов по известной логической схеме бит-процессора.
Различают контролирующий и диагностирующий тесты. Первый устанавливает факт наличия или отсутствия отказов в схеме, а второй обеспечивает локализацию типа и места отказа в схеме.
(рис 6.52) Структурная схема инструментальных средств моделированияСинтез тестов осуществляется в интерактивном режиме и в предположении, что отказы вентилей равновероятны.
Для уровня блоков и узлов бит-процессора исходными данными для синтеза являются:
Для каждой схемы $$s_{m}$$ заданы:
Используя BPBrowse, необходимо определить наиболее устойчивую к $$n_{ot}$$
одновременным отказам вентилей схему $$s^{*}\in S$$ и контролирующий $$тест T ^{*}$$, где $$T ^{*}$$ - бинарная матрица размерности $$Kxl_{t}, l_{t}$$ -
*.log.Тест $$T_{m}$$ порождает эталонную бинарную матрицу выходных последовательностей $$O_{тэт}$$, которая отвечает реакциям полностью исправной схемы бит-процессора. При подаче подбираемого проверяющего теста $$T_{m}$$ на схему $$s_{m}$$, но уже с отказами в ней, с ее выходов снимается матрица $$O_{m}$$, которая представляет собой бинарную матрицу выходных последовательностей размерности $$L\times l_t$$.
Вероятность обнаружения отказов вентилей схемы $$s_m$$ синтезируемым тестом $$T_{m}$$ можно оценить соотношением:
$$P_{обн}^{m}=\cfrac{r_{om}^{m}}{C_{N_m}^{n_{ot}}*4^{n_{ot}}}$$где:
Главная особенность МКМД-бит-потоковых технологий состоит в том, что объектом диагностики на схемотехническом уровне является относительно простая схема бит-процессора (порядка 800-1000 вентилей), которая к тому же достаточно просто разбивается на блоки с разным последействием отказов: регистр команды, операционный канал, канал транзита, средства коммутации и т. п. (см. рис. 6.49). Поэтому при оценке отказоустойчивости реализуемых бит-процессором инструкций разработчик бит-процессора может синтезировать диагностический тест для всего бит-процессора, осуществив конкатенацию контролирующих тестов для узлов бит-процессора.
Вместе с тем функциональные возможности программно-аппаратной плоскости проекта, как правило, отвечают ультравысокой степени интеграции (порядка 8-20 миллионов вентилей и выше) за счет наращивания "площади" бит-матрицы (от 1000 до 10000 бит-процессоров).
Благодаря этой особенности инструментальное средство OtkazModulate позволяет перебрать все пространство отказов схемы бит-процессора $$s_m$$ и вычислить для нее $$P_{обн}^{m}$$ для подбираемого проверяющего теста $$T_m$$.
Если принять гипотезу о равномерном законе распределения входных воздействий в тесте $$T_{m} $$, то его обнаруживающая способность $$P_{обн}^{m}$$ определяется длиной контролирующего теста $$l_{t}$$ как показано на рис. 6.53.
Из рис. 6.53 видно, что с ростом до бесконечности длины теста вероятность обнаружения отказов растет до определенного значения $$P_{обн}^{предел}$$ которое можно считать предельным значением вероятности обнаружения отказов в схеме. Это обусловлено наличием в схеме бит-процессора индифферентных отказов, которые не влияют на правильность реализации заданной бит-инструкции. Таким образом, $$P_{раб}^{m}(n_{ot})$$ можно принять за вероятность сохранения работоспособности схемы $$s_m$$ при $$n_{ot}$$ одновременных отказов ее
Длина контролирующего теста $$T_m$$ для схемы $$s_m$$ не может быть бесконечной. Поэтому разработчику схемы бит-процессора приходиться ее ограничивать $$l_{t}^{min} $$, руководствуясь критерием минимума разности $$P_{обн}^{предел} - P_{обн}^{m}(l_t^{min}) \le \varepsilon \to \min$$ причем при этом он больше опирается на интуицию, чем на аналитические выводы.
(рис 6.53) Определение предельной вероятности обнаружения отказов схемыТаким образом, для каждой схемы $$s_m$$ разработчик определяет полный контролирующий тест $$T_{m}$$ ограниченной длины и его характеристики $$P_{обн}^{m}(l_t^{min})$$ и $$P_{раб}^{m}(n_{ot})$$. Очевидно, что наиболее устойчивая к $$n_{ot}$$ отказам схема та, у которой $$P_{раб}^{m}(n_{ot})$$ максимальна.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.