Добрый день!
Скажите, пожалуйста,планируется ли продолжение курсов по нанотехнологиям? Спасибо, Евгений
|
Оценка производительности и живучести МКМД-БИТ-потокового предпроцессора системы астронавигации
8.2. Потоковый алгоритм работы МКМД-бит-потокового субпроцессора слежения за центром масс астроориентира
Все рассмотренные процедуры работы канала обработки видеоизображения необходимо привести к потоковому виду, который учитывает как "непрерывность" потока входных и выходных данных, так и специфику работы МКМД-бит-потоковых субпроцессоров, которая связана с тем, что каждая потоковая слов-инструкция пользователя интерпретируется МКМД-бит-процессорной матрицей. Поэтому ее необходимо сопроводить индивидуальными средствами управления, задающими и реализующими циклы и , где и - соответственно разрядность арифметики и количество операндов в циклически обрабатываемых потоках данных. В результате на ассемблерном уровне организации вычислений выдерживается принцип "одна инструкция - один процессор", который в каждой ассемблерной команде поддерживается своими специфическими входными и выходными интерфейсами, устройствами управления и обработки. С целью повышения отказоустойчивости и отказобезопасности МКМД-бит-потокового субпроцессорного тракта обработки видеоизображений необходимо выбрать и включить в него процедуры генерации избыточных данных и устройств обнаружения отказов темпа реального времени. В результате потоковый алгоритм работы такого многопроцессорного устройства принимает вид:
Шаг 1. Перевести поток 16-битных входных операндов из параллельного кода в последовательный код . Здесь , а перечисление потока входных данных происходит по строкам исходного изображения. Такой перечислительный процесс осуществляется внешними по отношению к субпроцессору аппаратными средствами, реализующими три вложенных цикла: , где индекс кадра обрабатываемого изображения , a ; .
Во входном интерфейсе самого МКМД-бит-потокового субпроцессора реализуется "бесконечно кратный" цикл , который соответствует циклу перехода от параллельного кода к последовательному с использованием 16-разрядной шины данных.
Шаг 2. Заместить две верхние и две нижние строки в каждом кадре исходного изображения тестовыми данными (рис. 8.3) по правилу: "пять единиц - три ноля", "пять единиц - три ноля" и т. д., всего 64 раза. В субпроцессоре тестовой считается та фаза вычислений, в которой в "скользящем окне" медианного фильтра объединяются две нижние строки из предыдущего кадра с двумя верхними строками из текущего кадра обрабатываемого изображения. В результате на выходе медианного фильтра будет выработано по 3 "единицы" на каждые 8 пикселей, то есть эталонная тестовая реакция канала логической обработки на этот фрагмент изображения должна равняться 48.
Чтобы осуществить замещение двух верхних и двух нижних строк исходного изображения тест-данными, необходимо:
- реализовать цикл который определяется размерами обрабатываемого изображения 128*128 однобитных пикселей;
- реализовать цикл , который определяется размерами 4-х тестовых строк;
- реализовать циклическую константу вида , которая подставляется вместо текущих во время одного цикла ;
- задать начальную фазу поступления входных данных таким образом, чтобы цикл совместился с двумя нижними и двумя верхними строками обрабатываемого изображения.
Шаг 3. Обработать полученное изображение медианным фильтром размером 5*5 пикселей: . Здесь:
- - индексы элементов, соответствующие одному положению "скользящего окна";
- индексы соответствуют центральному элементу "скользящего окна" размером 5*5 пикселей, и они связаны с индексами строк и столбцов исходного изображения правилом: , а , где - координаты левого верхнего угла "скользящего окна".
В МКМД-бит-потоковых технологиях процедура "скольжения" окна размером 5*5 пикселей реализуется с помощью FIFO -регистровой линии задержки, имеющей 1 вход и 25 выходов, на которых одновременно появляются все элементы, соответствующие текущему положению "скользящего окна". Фактически такая линия^ задержки реализует 5 вложенных циклов: ,где ; ; ; ; .
Обычно медианная фильтрация выполняется через две логические процедуры:
- упорядочение элементов по возрастанию;
- присвоение , которое соответствует выбору центрального элемента в упорядоченной последовательности .
Но в данном случае мы имеем дело с бинарным изображением, и поэтому медианную фильтрацию можно выполнить через две арифметико-логические процедуры:
В МКМД-бит-потоковых технологиях невозможно непосредственно просуммировать однобитный поток данных, так как "единица переноса" сохраняется внутри бит-процессора (БП) и учитывается на следующем такте суммирования (см. рис. 3.2 раздела 3.1). Поэтому приходится:
- разделять поток входных бит-данных сначала на два потока, в один из которых попадают все четные, а в другой - все нечетные биты из суммируемого потока;
- выравнивать по времени задержки на 1 такт и суммировать четные и нечетные биты одного и того же входного потока;
- разбивать поток 2-битных частных сумм на два потока - четный и нечетный, и, выровняв их по времени задержки на 2 такта, суммировать и т. д. до получения промежуточного операнда, разрядность которого обеспечивает накопление всей суммы;
- сложение частных сумм по классической схеме с накапливающим аккумулятором.
Для суммирования по этой схеме необходимо реализовать (в данном случае) 6 вложенных циклов: , из которых 5 нижних используются для формирования 32-битных операндов, обеспечивающих нулевую погрешность вычислений взвешенных сумм в последующих процедурах, а ; ; ; ; ; .
Шаг 4. Обнулить реакцию медианного фильтра на паразитные взаимодействия элементов "скользящего окна" при его переходе со строки на строку (со столбца на столбец):
где , если , и в противном случае.
Для выполнения этого шага потокового алгоритма необходимо:
- задать цикл обработки строки ;
- сформировать циклическую константу вида: 4 бита - "нули" и остальные 124 бита - "единицы".
Шаг 5. Составить гистограммы по строкам или по столбцам ,
где
аДля реализации этих выражений необходимо:
- задать цикл обработки строки ;
- сформировать циклическую константу вида: 32 "единицы" и 32 "нуля";
- сформировать циклическую константу вида: 32 бита - "единицы" и 16352 бита - "нули", а также ее инверсию для управления циклом накопления.
Шаг 6. Обработать полученные гистограммы 2-элементным "скользящим окном": или .
Данная процедура выполняется "непрерывно" и не налагает каких-либо ограничений на процедуру парного суммирования.
Шаг 7. Сравнить результат обработки первых и последних двух тестовых строк кадра с эталонной реакцией:
Для выполнения этого шага потокового алгоритма необходимы те же управляющие процедуры, что и на шаге 6.
Шаг 8. Обнулить реакцию 2-элементного "скользящего окна" на паразитные взаимодействия элементов при переходе от одного кадра обрабатываемого изображения к другому:
и
где , если , и , если
Для выполнения этого шага потокового алгоритма необходимо выполнить те же управляющие процедуры, что и на шаге 6.
Шаг 9. Выполнить "свертку" вектор-столбца и вектор-строки по правилу:
Здесь - весовые коэффициенты, соответствующие индексу элемента вектор-столбца или элемента вектор-строки - и соответственно.
Для выполнения этого шага потокового алгоритма необходимо выполнить те же управляющие процедуры, что и на шаге 6.
Шаг 10. Вычислить суммарную "яркость" обрабатываемого изображения:
Для выполнения этого шага потокового алгоритма необходимо выполнить те же управляющие процедуры, что и на шаге 6.
Шаг 11. Определить координаты центра масс изображения по отношению к его верхнему левому углу: и .
Шаг 12. Определить координаты центра масс изображения по отношению к его центру: и ; ; .
Шаг 13. Продублировать вычисления на шагах 8-11 с использованием дополнительного комплекта аппаратуры и сравнить результат с основным:
В МКМД-бит-потоковых вычислительных технологиях последние три процедуры выполняются над "бесконечными" потоками данных, из которых только один цикл является информативным, который и выделяется интерфейсом обмена с последующим устройством обработки.
Из приведенных данных видно, что практически в каждой потоковой процедуре необходимо определить параметры циклов , которые необходимо заложить в управляющие конструкции, специфичные для каждой словинструкции. Именно индивидуальные процедуры управления "по счетчику" (циклы ) отличают МКМД-бит-потоковые субпроцессоры от остальных программируемых средств вычислительной техники. Объясняется это тем, что это класс субпроцессоров работает в режиме интерпретации, а не компиляции прикладных программ. В традиционных архитектурах режим интерпретации значительно проигрывает во времени режиму компиляции, так как в этом случае все аппаратные ресурсы процессора последовательно предоставляются каждой инициализированной слов-инструкции, что вынуждает перенастраивать процессор на параметры каждой инициализированной инструкции ассемблера. В случае бит-потоковых субпроцессоров режим интерпретации не сопряжен с большими временными издержками, так как все управляющие и интерфейсные процедуры реализуются аппарат-но и включают в себя параметры циклов управления. Это приводит к росту аппаратных затрат на средства управления вычислительным процессом, но обеспечивает максимальную "мобильность" микропрограммных модулей на бит-матрице в процессе парирования множественных карт отказов.