В основе решения задач автоматической астронавигации лежит определение пространственного положения линии визирования от космического летательного аппарата (КЛА) до центра некоторой "неподвижной" яркой звезды, используемой в качестве астроориентира. В идеале с помощью обработки бинарного видеоизображения звездного пространства можно достаточно четко "провести" линию визирования до центра астроориентира (рис. 8.1-а). Однако в звездном пространстве существуют не только астроориентиры, но и мириады звезд (рис. 8.1-б), которые для алгоритма обработки бинарного изображения представляют собой "точечную" помеху, способную сместить вычисленный "центр масс" даже очень крупного астроориентира. Такого рода помехи наиболее эффективно фильтруются медианным фильтром (см. раздел 4.5 [290]), апертура которого должна более чем в два раза превышать площадь каждой яркой звезды, бли зко примыкающей в пространстве к астроориентиру.
Для решения такого рода задач на борту КЛА необходимо иметь видеокамеры (желательно по одной на астроориентир, чтобы жестко связать их положение с осями КЛА), которые формируют бинарные (черно-белые) изображения требуемого участка звездного пространства. Апертура таких видеокамер не должна быть очень большой (не более 128*128 пикселей), чтобы за счет малого "угла зрения" снизить паразитные влияния остальных звезд.
Частота определения собственного положения в пространстве КЛА невелика, как невелика и сложность задачи обработки такого изображения. Поэтому современные ЦПОС способны справиться с решением в реальном времени подобного рода задач. Однако высочайшая ответственность за успех космической экспедиции и достаточно продолжительное негативное влияние на (Б)ВС жестких космических излучений и других внешних воздействующих факторов выдвигают на первый план требование к (сверх)высокой живучести вычислительных комплексов, отвечающих за решение задач астронавигации, а значит, и за эффективность автономного управления полетом КЛА.
(рис 8.1) Влияние звездного пространства на точность визирования "центра масс" астроориентираАналогичные задачи решаются при посадке ЛА в плохих погодных условиях на подвижное основание, при дозаправке в воздухе группы самолетов и т. д. Но здесь уже требуются как (сверх)высокая (109-1012 оп/ сек) производительность, так и (сверх)высокая отказоустойчивость при выполнении особо сложных маневров, сопряженных с опасностью потери ЛА или гибелью экипажей.
Задачи, решаемые такими пассивными системами микро- и астронавигации, содержат достаточно полный набор функций (слов-инструкций), который можно рассматривать как представительную смесь, объективно
характеризующую возможности работы системы обеспечения живучести практически всех МКМД-бит-потоковых субпроцессоров. Поэтому полученные для такого проблемно-ориентированного субпроцессора характеристики системы обеспечения живучести с высокой степенью достоверности можно распространить на весь МКМД-бит-потоковый субпроцессорный тракт (см. рис. 4.5 раздела 4.2).
Таким образом, в субпроцессором тракте (Б)ВС КЛА требуется решить в реальном времени следующие задачи:
Ориентированный на решение перечисленных задач субпроцессорный тракт (Б)ВС КЛА должен иметь пред- и сопроцессор, на первый из которых возлагаются первые две задачи, а на второй - последние. Покажем, что основное достоинство такой схемы построения отечественных (Б)ВС состоит в том, что при этом повышается не только производительность, но и вычислительная устойчивость,
При разработке МКМД-бит-потокового предпроцессора слежения за "центром масс" астроориентира будем считать, что исходное видеоизображение имеет размеры 128x128 черно-белых пикселей $$x_{ij}\in\{0,1\} (i, j = \overline{1,128})$$.
Такие размеры обрабатываемого видеоизображения обеспечивают приемлемую угловую избирательность порядка 10о-15о, которая, с одной стороны, снижает влияние естественных и искусственных видеопомех, а с другой стороны - обеспечивает достаточно высокую точность определения угловых координат "центра масс" астроориентира порядка 0,08о-0,12о. Вычисленные линейные координаты "центра масс" фигуры, идентифицированной как астроориентир, по отношению к центру плоского (двумерного) черно-белого изображения, должны быть
Структурно-функциональная схема канала обработки астронавигационной информации приведена на рис. 8.2, а укрупненный алгоритм его работы имеет вид:
(рис 8.2) Структурно-функциональная схема видеоканалаДля вычисления координаты $$y^{0}_p$$ матрица $$\{x_{ij}\}$$ транспонируется и полученная матрица $$\{x_{ji}\}^{\tau}$$ обрабатывается аналогичным образом, где после первого этапа вычислений формируется матрица $$\{y_{cr}\}$$, после четвертого этапа - вектор-столбец $$\{a_{c}\}$$, а на восьмом этапе - $$у_{p}^0 =a_{c}^8/a^{\sim}_{c}$$
Бит-матрица используется с разделением времени как при определении каждой координаты "центра масс" астроориентира $$(x_p^0)$$ и $$(y^{0}_p)$$, так и при обработке изображений от каждого из пяти фотоприемников.
Все рассмотренные процедуры работы канала обработки видеоизображения необходимо привести к потоковому виду, который учитывает как "непрерывность" потока входных и выходных данных, так и специфику работы МКМД-бит-потоковых субпроцессоров, которая связана с тем, что каждая потоковая слов-
Шаг 1. Перевести поток 16-битных входных операндов из параллельного кода $$\{\hat{x}_{ij}\}$$ в последовательный код $$\{х_{ij}^*\}$$. Здесь $$\hat{x}_{ij}, х_{ij}^* \in\{0,1\}$$, а перечисление потока входных данных происходит по строкам исходного изображения. Такой перечислительный процесс осуществляется внешними по отношению к субпроцессору аппаратными средствами, реализующими три вложенных цикла: $$For(k, For(j, For(i)))$$, где индекс кадра обрабатываемого изображения $$k = \overline{1,\infty}$$, a $$j = \overline{1,128}$$ ; $$i = \overline{1,128}$$.
Во входном интерфейсе самого МКМД-бит-потокового субпроцессора реализуется "бесконечно кратный" цикл $$For(i) = \overline{1,16}$$, который соответствует циклу перехода от параллельного кода к последовательному с использованием 16-разрядной шины данных.
Шаг 2. Заместить две верхние и две нижние строки в каждом кадре исходного изображения $$\{ х_{ij}^*\}$$ тестовыми данными (рис. 8.3) по правилу: "пять единиц - три ноля", "пять единиц - три ноля" и т. д., всего 64 раза. В субпроцессоре тестовой считается та фаза вычислений, в которой в "скользящем окне" медианного фильтра объединяются две нижние строки из предыдущего кадра с двумя верхними строками из текущего кадра обрабатываемого изображения. В результате на выходе медианного фильтра будет выработано по 3 "единицы" на каждые 8 пикселей, то есть эталонная тестовая реакция канала логической обработки на этот фрагмент изображения должна равняться 48.
(рис 8.3) Расположение тест-данных на исходном изображенииЧтобы осуществить замещение двух верхних и двух нижних строк исходного изображения тест-данными, необходимо:
Шаг 3. Обработать полученное изображение медианным фильтром размером 5*5 пикселей: $$\tilde{x}_{rc} := med_{5\times 5}\{x_{\hat{i},\hat{j}}\}^{гс}$$. Здесь:
В МКМД-бит-потоковых технологиях процедура "скольжения" окна размером 5*5 пикселей реализуется с помощью FIFO -регистровой линии задержки, имеющей 1 вход и 25 выходов, на которых одновременно появляются все элементы, соответствующие текущему положению "
Обычно медианная фильтрация выполняется через две логические процедуры:
Но в данном случае мы имеем дело с бинарным изображением, и поэтому медианную фильтрацию можно выполнить через две арифметико-логические процедуры:
$$B_{rc}=\sum\limits_{\hat{i},\hat{j}}x_{\hat{i},\hat{j}}^{rc} \text{ и } y_{rc} = \begin{cases} 1, \text{ если } B_{rc} \ge 13, \\ 0, \text{ если } B_{rc} < 13. \end{cases}$$В МКМД-бит-потоковых технологиях невозможно непосредственно просуммировать однобитный поток данных, так как "единица переноса" сохраняется внутри бит-процессора (БП) и учитывается на следующем такте суммирования (см. рис. 3.2 раздела 3.1). Поэтому приходится:
Для суммирования по этой схеме необходимо реализовать (в данном случае) 6 вложенных циклов: $$For(с_{128}, For(с_{32}, For(с_{16}, For(с_{8}, For(с, For(с_{2}))))))$$, из которых 5 нижних используются для формирования 32-битных операндов, обеспечивающих нулевую
Шаг 4. Обнулить реакцию медианного фильтра на паразитные взаимодействия элементов "
где $$d_r = 1$$, если $$1< r< 127$$, и $$d_r = 1$$ в противном случае.
Для выполнения этого шага потокового алгоритма необходимо:
Шаг 5. Составить гистограммы по строкам $$\{y_{r}\}$$ или по столбцам $$\{y_{c}\}$$,
где$$y_{r} = \sum\limits_{c=1}^{124}{ y_{rc }},$$ а $$y_{с} = \sum\limits_{c=1}^{124}{ y_{rc }}$$
Для реализации этих выражений необходимо:
Шаг 6. Обработать полученные гистограммы 2-элементным "
Данная процедура выполняется "непрерывно" и не налагает каких-либо ограничений на процедуру парного суммирования.
Шаг 7. Сравнить результат обработки первых и последних двух тестовых строк кадра с эталонной реакцией:
$$DT1 = \begin{cases} 0, \text{ если } a_{1} = 96, \\ 1, \text{ если } a_{1} \ne 96. \end{cases}$$Для выполнения этого шага потокового алгоритма необходимы те же управляющие процедуры, что и на шаге 6.
Шаг 8. Обнулить реакцию 2-элементного "
$$a_{r} =a_{c}\bigwedge\limits_{c=1}^{128}{d_c}$$ и $$a_{c} =a_{r}\bigwedge\limits_{r=1}^{128}{d_r}$$
где $$d_r, d_c = 1$$, если $$r, c \succ 1$$, и $$d_r, d_c = 0$$, если $$r, c = 1$$
Для выполнения этого шага потокового алгоритма необходимо выполнить те же управляющие процедуры, что и на шаге 6.
Шаг 9. Выполнить "свертку" вектор-столбца $$\{a_r\}$$ и вектор-строки $$\{a_c\}$$ по правилу:
$$a_{r}^* =\sum\limits_{r=1}^{127}{a_r}*w_r \text{ и } a_{c}^* =\sum\limits_{c=1}^{127}{a_c}*w_c$$Здесь $$w_{r},w_{c} =\overline{1,127}$$ - весовые коэффициенты, соответствующие индексу элемента вектор-столбца или элемента вектор-строки - $$w_r = r$$ и $$w_c = c$$ соответственно.
Для выполнения этого шага потокового алгоритма необходимо выполнить те же управляющие процедуры, что и на шаге 6.
Шаг 10. Вычислить суммарную "яркость" обрабатываемого изображения:
$$a_{r}^{\sim}=\sum\limits_{r=1}^{127}{a_r} \text{ и/или } a_{c}^{\sim}=\sum\limits_{c=1}^{127}{a_c}$$Для выполнения этого шага потокового алгоритма необходимо выполнить те же управляющие процедуры, что и на шаге 6.
Шаг 11. Определить координаты $$(x^0_i , x^0_j)$$ центра масс изображения по отношению к его верхнему левому углу: $$х^0_i = а_{r}^*/ а^{\sim}_r$$ и $$х^0_j = а_{c}^*/ а^{\sim}_c$$.
Шаг 12. Определить координаты $$(|x_{i}^0|, |x_j^0|)$$ центра масс изображения по отношению к его центру: $$|x_i^0| = | x_i^0 - 64| + 0,5$$ и $$|x_j^0| = | x_j^0 - 64| + 0,5$$ ; $$sign|x_i^0| = sign(x_i^0 - 64)$$ ; $$sign|x_j^0| = sign(x_j^0 - 64)$$.
Шаг 13. Продублировать вычисления на шагах 8-11 с использованием дополнительного комплекта аппаратуры и сравнить результат с основным:
$$DT2 = \begin{cases} 0, \text{ если } |x_i^0|^{(1)} = |x_i^0|^{(2)}, \\ 1, \text{ если } |x_i^0|^{(1)} \ne |x_i^0|^{(2)}. \end{cases}$$В МКМД-бит-потоковых вычислительных технологиях последние три процедуры выполняются над "бесконечными" потоками данных, из которых только один цикл является информативным, который и выделяется интерфейсом обмена с последующим устройством обработки.
Из приведенных данных видно, что практически в каждой потоковой процедуре необходимо определить параметры циклов $$for$$, которые необходимо заложить в управляющие конструкции, специфичные для каждой словинструкции. Именно индивидуальные процедуры управления "по счетчику" (циклы $$for$$ ) отличают МКМД-бит-потоковые субпроцессоры от остальных программируемых средств вычислительной техники. Объясняется это тем, что это класс субпроцессоров работает в режиме интерпретации, а не компиляции прикладных программ. В традиционных архитектурах режим интерпретации значительно проигрывает во времени режиму компиляции, так как в этом случае все аппаратные ресурсы процессора последовательно предоставляются каждой инициализированной слов-инструкции, что вынуждает перенастраивать процессор на параметры каждой инициализированной инструкции ассемблера. В случае бит-потоковых субпроцессоров режим интерпретации не сопряжен с большими временными издержками, так как все управляющие и интерфейсные процедуры реализуются аппарат-но и включают в себя параметры циклов управления. Это приводит к росту аппаратных затрат на средства управления вычислительным процессом, но обеспечивает максимальную "мобильность" микропрограммных модулей на бит-матрице в процессе парирования множественных карт отказов.
Укрупненная функциональная схема МКМД-бит-потокового субпроцессора слежения за "центром масс" астроориентира имеет вид рис. 8.4, и она определяет место этого субпроцессора во всем тракте управления угловыми координатами при полете группы ЛА сомкнутым строем.
(рис 8.4) Функциональная схема включения МКМД-бит-потокового субпроцессорного тракта в контур обработки полетной информацииИз этой схемы следует:
В каждом из перечисленных модулей аппаратурный ресурс расходуется на некоторое множество операционных, управляющих, коммутационных или диагностических функций, как правило, различного формата и разной разрядности.
(рис 8.5) Функциональная схема поток-процессора определения "центра масс" астроориентираТакое разбиение на функциональные модули обеспечивает минимум информационных связей между аппаратно поддерживающими их специализированными МКМД-бит-
Параллельно-последовательный 16- битный интерфейс данных ( INS16 - рис. 8.6) с блоком управления процедурой синхронного чтения реализуется на основе регистра параллельной записи и последовательного чтения (рис. 8.7). Здесь и далее за начало координат взят верхний левый угол бит-матрицы; первой указана координата строки, а второй - координата столбца бит-матрицы.
(рис 8.6) Структурная схема параллельно-последовательного интерфейса (INNS16)
(рис 8.7) Топологическая схема модуля входного интерфейса (INNS16)Данный интерфейсный модуль занимает бит-матрицу размером 3*18 БП, и в нем время начальной задержки поступления входных данных составляет 32 такта. Такая задержка обеспечивает вхождение в конвейер параллельной FIFO -регистровой шины управления процедурой "чтение" (бит-процессоры 1-й и 2-й строки). В этой шине все 16 эквидистантных выходов канала распространения циклической константы $$C_{16}1$$ (см. лекцию 5 курса "Задачи и модели вычислительных наноструктур") имеют одинаковое время задержки, отсчитанное от управляющего входа канала (БП с координатами (1, 16, 3)), что обеспечивает одновременное (синфазное) поступление "1" на схемы "И" третьей строки бит-матрицы.
Частота поступления входных бит-данных, заданных в параллельном коде, - 1 раз за 16 тактов работы бит-матрицы. Координаты информационных входов помечены треугольными стрелками: (3, 1, 4)-(3, 16, 4). Координата выхода операндов в последовательном коде - (1, 2, 2). Время начальной задержки в модуле - 36 тактов. Здесь и далее используется следующая система обозначений БП и их входов-выходов:
Строб "чтение" $$C_{16}1$$ формируется
Из приведенных данных видно, что на каждом 16-битном цикле работы входного интерфейса:
Таким образом, пропускная способность входного интерфейса составляет по потоку 16- битных слов-инструкций $$V_{I} = [(2+1+2)+(16+1+1)]*F_{t} /16 = 23*F_{t} /16 = 1,4375F_{t}$$ (оп/сек), а по потоку данных $$V_{D} = F_{t}$$ (бит/сек), где $$F_{t}$$ - частота работы бит-матрицы.
Модуль циклической генерации тест данных ( DTM - рис. 8.8), которые имеют вид: "пять единиц - три ноля", "пять единиц - три ноля", и т. д., всего 64 раза, что соответствует заполнению тест-данными двух верхних и двух нижних строк каждого кадра обрабатываемого изображения размером 128*128 = 214 однобитных пикселей (см. рис. 8.3).
Блок управления генерацией тест-данных содержит (рис. 8.9):
(рис 8.8) Структурная схема модуля генерации тест-данных (DTM)На выходе блока управления генерацией тест данных формируется циклическая константа из 29 "единиц" и (214-29) "нулей". Функциональный выход этого блока расположен в БП (3, 11, 1), а реальный, топологический - в БП (3,2,1).
Как видно из рис. 8.9, делитель и таймер совмещены по аппаратуре и представляют собой счетчики из Т -триггеров, каждый из которых занимает бит-матрицу 2*2 БП.
Генератор тест-данных $$С_{8}5:=00011111$$ реализован на БП (1, 1), который выполняет бит-инструкцию CG. В теле этой бит-инструкции хранится данная циклическая константа, которая в шестнадцатеричном виде со смещением на 1 такт влево имеет вид $$3Е = 00111110$$.
В блоке слияния потоков реальных и тестовых данных (БП первых двух столбцов рис. 8.9)
(рис 8.9) Топологическая схема модуля генерации тест-данных (DTM)Чтобы совместить поток тест-данных с двумя верхними и двумя нижними строками каждого кадра обрабатываемого изображения, необходимо подобрать начальную задержку в блоке управления, которая регулируется расстановкой бит-инструкций AND или NAND в БП 1-й строки. Эти бит-инструкции определяют время задержки на распространение "единицы" из предыдущего Т -триггера в последующий. В данном случае задержка составляет 36 тактов и она предполагает, что входной интерфейс поток-процессора начал свою работу с задержкой на 256 тактов по отношению ко времени начала работы всей бит-матрицы.
Из приведенных данных видно, что на каждом 8-битном цикле работы генератора тест-данных ( DTM ) выполняются:
Таким образом, пропускная способность генератора тест-данных по потоку 8-битных слов-инструкций составляет$$V_{I} = [(1+2)+(1+1)+ (4+1+6)+(1+1+2)+(1+1+3)]*F_{t} /8 = 25*F_{t} /8 = 3,125*F_{t},$$ а из 25 реально исполняемых в режиме интерпретации слов-инструкций полезной для пользователя является только одна операция замещения входных данных тест-данными.
Модуль " скользящего окна " размером 5 * 5 пикселей ( SWM25 - рис. 8.10) представляет собой разветвленную по 25 выходам FIFO -регистровую линию (функциональной) задержки продолжительностью 4*128+5 = 517 тактов (бит). Преимущество FIFO -регистровой линии задержки состоит в том, что она минимизирует число обращений к внешней памяти и использует однократно введенный входной операнд ровно столько раз, сколько требуется по алгоритму обработки. При этом она одновременно осуществляет 4*128+5+25 = 542 операции пересылки однобитных операндов входного потока.
На ее 25 выходах параллельно, но с временным перекосом или, что одно и то же, с нарастающей дополнительной "технологической" задержкой на 1 такт формируются биты, отвечающие одному положению "
(рис 8.10) Структурная схема модуля "скользящее окно" (SWM25)необходима для правильного суммирования содержимого однобитных пикселей в последующем модуле медианной фильтрации ( MMF25 ).
На топологической схеме поток-оператора модуль "скользящее окно" (рис. 8.11) занимает бит-матрицу размером 6*25 БП, который частично пересекается с модулем MMF25. Первый каскад из 25 его выходов имеет координаты (1, 1, 2)-(1, 25, 2).
(рис 8.11) Фрагмент топологической схемы модуля "скользящее окно" (SWM25)Координата входа в модуль - (5, 1, 4), где время начальной задержки составляет 43(+2*128) тактов. В скобках указано дополнительное время начальной задержки, если в субпроцессоре используется модуль циклической генерации тест-данных DTM.
Таким образом, пропускная способность модуля "скользящее окно" по потоку однобитных инструкций составляет $$V_{I} = 542*F_{t}$$.
Модуль медианной фильтрации бинарного изображения ( MMF25 - рис. 8.12) присваивает каждому положению "
(рис 8.12) Структурная схема медианного фильтра (MMF25)Модуль MMF25 содержит 8 идентичных блоков, в которых осуществляется:
Цикл выборки потока обрабатываемых данных из входного потока для каждого блока составляет 8 тактов. В результате в каждом из этих блоков формируется реакция всего медианного фильтра на закрепленные за ним положения "
Модуль медианной фильтрации MMF25 расположен на бит-матрице размером 24*28 БП, а каждый из 8 его блоков занимает по три строки и содержит (рис. 8.13):
При любом пространственном смещении модуля медианной фильтрации MMF25 или его отдельных блоков необходимо скорректировать фазу выхода циклической константы $$C_{8}1$$, придав ей вид, отвечающий фактическому сдвигу в начале их работы. Результирующее бинарное изображение начинает формироваться с 618(+2*128) такта в БП (3, 28, 2) слиянием по "ИЛИ" циклических реакций от каждого из 8 блоков.
Время начальной задержки только в модуле медианной фильтрации MMF25 бинарного изображения "
Из приведенных данных видно, что каждый блок модуля медианной фильтрации ( MMF25 ) работает с циклом 8 тактов и на выходе формирует однобитный признак результата сравнения с порогом, равным 13. При этом составляющие его блоки реализуют следующие слов-инструкции:



(рис 8.13) Топологическая схема 1-го блока модуля медианной фильтрации (MMF25)Таким образом, пропускная способность модуля медианной фильтрации составляет по потоку 8-битных слов-инструкций $$V_{I} = 8*[(1+25+ 54)+(25+25+25)+(1+1+2)]*F_{t} /8 = 159*F_{t}$$, а из 159 реально исполняемых в режиме интерпретации слов-инструкций полезными для пользователя являются только четыре: накопление суммы, сравнение с порогом и формирование результата сравнения с его подстановкой.
Модуль подавления реакций медианного фильтра на паразитные межстрочные положения " скользящего окна " ( CMZ 4(128) - рис. 8.14) представляет собой генератор циклической константы вида: 4 "нуля" и 124 "единицы", которая стробирует по "И" результирующее изображение, обнуляя в нем 2 первых и 2 последних пикселя в каждой строке.
(рис 8.14) Структура модуля подавления паразитных реакций медианного фильтра CMZ 4(128)Модуль CMZ 4(128) представляет собой
Соотношение фаз управляющего и обрабатываемых потоков поддерживается подстановкой бит-инструкций AND или NAND в бит-процессоры первой строки, и они должны редактироваться при любом пространственном перемещении как модуля медианной фильтрации, так и/или модуля подавления реакций на паразитные положения "
В модуле CMZ 4(128) в одном 8-битном цикле выполняются (рис. 8.15):
(рис 8.15) Топологическая схема модуля подавления паразитных реакций медианного фильтра (CMZ 4(128))Таким образом, пропускная способность модуля подавления паразитных реакций медианного фильтра по потоку 8 -битных слов-инструкций составляет $$V_{I} = [(1+2)+(1+1)+(3+3)+(1+2)]*F_{t} /8 = 14*F_{t} /8 = 1,75*F_{t}$$, а из 14 реально исполняемых в режиме интерпретации слов-инструкций полезными для пользователя являются три: формирование строба $$C _{128}4$$, подавление паразитной реакции и пересылка результата.
Модуль формирования построчных гистограмм отфильтрованного бинарного изображения и их циклического сглаживания 2-элементным " скользящим окном " ( LHM ) является первым в канале арифметической обработки субпроцессора. Модуль LHM осуществляет подсчет количества "единичных" пикселей в каждой строке и попарное суммирование (сглаживание гистограммы) накопленных сумм из двух смежных строк, принадлежащих одному кадру обрабатываемого изображения. Модуль LHM (рис. 8.16) содержит:
В четырех каскадах потокового сумматора ADD сначала попарно складывается содержимое четных и нечетных бит, выделенных из обрабатываемого потока. Затем по аналогичной схеме суммируются четные и нечетные 2-битные операнды, выделенные из обрабатываемого потока, и т. д. до получения 16-битных операндов (с 8 значащими разрядами), которые уже суммируются в ADDR по классической схеме накопления в аккумуляторе с управляемым циклом.
Потоковая часть сумматора ADD (рис. 8.17) занимает с 20-го по 28-й столбцы бит-матрицы и имеет только информационный вход (3, 28, 4) с начальной задержкой 619(+2*128) тактов.
Все локальные блоки управления ADD распределены по сумматору, и с их помощью один поток из каждого предшествующего каскада суммирования расщепляется в пространстве на два потока, которые затем выравниваются по времени задержки и суммируются. Для этих целей в первом каскаде используется
(рис 8.16) Структурная схема модуля формирования построчной гистограммы обрабатываемого изображения (LHM)Аккумулирующая часть сумматора ADDR16 (рис. 8.17) занимает с 15-го по 19-й БП первой строки бит-матрицы, а блок управления циклом накопления CADDA16(128) - с 5-го по 18-й столбец 2-й и 3-й строки бит-матрицы. Этот блок частично пересекается по топологии с блоком DWH сглаживания гистограммы 2-элементным "
Сумматор-накопитель ADDR16 с 16-битным аккумулятором имеет 2 информационных входа: (1, 18, 3) и (1, 20, 1), 2 управляющих входа: "чтение" ( R ) - (1, 17, 2) и "сброс" ( RS ) - (2, 18, 2), и 1 информационный выход - (2, 17, 1) с общим временем задержки от входа субпроцессора в 771(+2*128) тактов. В данном случае полный цикл накопления составляет 128 тактов и задается 16-битным "единичным" стробом "чтение": 16 "единиц" и 112 "нулей", инверсия которого используется для обнуления содержимого аккумулятора.
Блок управления циклом накопления CADDA16(128) построчной гистограммы представляет собой:
(рис 8.17) Топологическая схема модуля формирования построчной гистограммы обрабатываемого изображения (LHM)Блок циклического сглаживания DWH2 построчной гистограммы 2-элементным "
Предшествующий ему цикл срабатывания 2-элементного "
Из приведенных данных видно, что в модуле формирования построчной гистограммы обрабатываемого изображения ( LHM) в одном 16 -битном цикле выполняются:
Таким образом, пропускная способность модуля формирования построчной гистограммы обрабатываемого изображения ( LHM) по потоку смеси из 2-, 4-, 8- и 16- битных слов-инструкций составляет:
$$V_{I} = [4*(1+2+1+6)+(1+2+1+6)+(4+8+1+1+1+1+1)+(8+1+1)]*F_{t} /16 = 76*F_{t}/16 = 4,75*F_{t} ,$$а из 76 эквивалентных 16-битных и реально исполняемых в режиме интерпретации слов-инструкций полезными для пользователя являются только 7 операций: суммирование с накоплением, сглаживание двухэлементным "
Модуль " свертки " вектор-столбца построчной гистограммы отфильтрованного изображения ( SMM - рис. 8.18) осуществляет "взвешенное" суммирование $$B_s = \sum\limits_{s}X^{s}_{128} * W^s_{128}$$ элементов $$X^{s}_{128}$$ построчной гистограммы (в данном случае $$s = \overline{1,128}$$ ), умноженной на соответствующий весовой коэффициент $$W_{128}^s$$, представляющий собой номер строки в исходном изображении.
(рис 8.18) Структурная схема модуля "свертки" (SMM) Следует помнить, что и множимое $$W_{128}^s$$, и множитель $$X_{128}^s$$ имеют только 7 значащих разрядов. Поэтому их произведение имеет только 14 значащих разрядов. Сам весовой коэффициент $$W_{128}^s$$ изменяется (по $$s$$ ) от 0 до 127, что позволяет непосредственно в умножителе подавить паразитные взаимодействия межу кадрами при обработке 2-элементным "
Умножитель ML занимает первые 9 столбцов бит-матрицы рис. 8.19-a и имеет два информационных входа (БП (2, 3, 1) - множитель и БП (3, 3, 4) - множимое) и один управляющий (БП (1, 3, 1)).
Первое значимое множимое является первым элементом вектор-столбца $$X ^{1}_{128}$$ построчной гистограммы и подается на 936(+2*128) такте. Первый значащий множитель $$W ^{1}_{128} = 1$$ подается на 934(+2*128) такте. На управляющий вход умножителя на $$933(+2*128)$$ такте подается циклическая константа $$C_{128}1$$, задающая цикл его работы. При этом следует помнить, что первые нулевые операнды множимого и множителя поступают на входы умножителя соответственно на 808 и 806 тактах.

(рис 8.19) Топологическая схема модуля свертки вектор-столбца построчной гистограммы отфильтрованного изображения (SMM)Циклическая константа $$C_{128}1$$ и поток весовых коэффициентов $$W_{128}^{s} = (0, 1, 2, 3, …, 127)$$ генерируются двумя взаимодействующими блоками управления WGU и CCU1(128), которые занимают на бит-матрице первые пять столбцов с 6-й по 24-ю строку.
Блок генерации CCU1(128) циклической константы $$C_{128}1$$ выполнен по классической схеме делителя (на 24) частоты задающего генератора CG, содержащего циклическую константу $$C_{8}1$$ (БП (23, 5)). В БП (20, 1) данная циклическая константа ветвится в двух направлениях, так как она используется и как независимая управляющая переменная, и как промежуточный аргумент, задающий величину и цикл приращения целочисленных значений весовых коэффициентов $$W_{128}^{s}$$ в блоке WGU.
Блок WGU имеет выход (6, 2, 2) с начальной задержкой 794 такта по отношению к обнуленному в DWHCU операнду и 922 такта по отношению к первому значащему операнду, имеющему в ML вес "единица". Для установки такой начальной задержки использована PD -ассоциативная схема записи однократной "единицы" в соответствующие разряды счетчика на Т -триггерах. Однократная "единица" формируется при включении субпроцессора БП с координатами (21, 3)-(21, 5) и распространяется вверх по 5-му столбцу бит-матрицы. Время начальной задержки фиксировано, но его можно изменить, модифицировав адреса разрядов счетчика, в которые попадает однократная "единица".
Блок обнуления ( DWHCU ) паразитных взаимодействий строк из разных кадров, попавших в одно 2-элементное "скользящее окно", генерирует циклическую константу вида: 32 "нуля" и (214-32) "единиц". Он расположен на бит-матрице с координатами (10, 6)-(21, 9) и представляет собой два взаимодействующих счетчика, один из которых генерирует циклическую константу $$С_{32}1$$ (выход БП (13, 8, 2)), а второй - $$С_{2}^{14}1$$ (выход БП (12, 7, 2)). Циклическая константа $$С_{32}1$$ используется как управляющая переменная в БП (7, 11), который реализует бит-инструкцию ST1, а вторая циклическая константа используется в этом же БП как информационная. Начальная задержка в блоке DWHCU устанавливается с помощью бит-инструкций AND и NAND в БП 6-го и 9-го столбцов. Само обнуление паразитных взаимодействий строк из разных кадров осуществляется в БП (6, 10), который реализует бит-инструкци ю AND.
Сумматор-накопитель ADDRV32 оператора свертки вектор-столбца построчной гистограммы обрабатываемого изображения выполнен по классической схеме с 32-битным аккумулятором (рис. 8.19-б - бит-матрица с координатами (6, 7)-(8, 10)).
Строб "чтение" имеет вид: 32 "единицы" и (214-32) "нуля", предшествует полному циклу накопления, поступает на $$916+Q*2^{14}$$ такте на вход бит-процессора (7, 10, 1) и в инвертированном виде используется в БП (7, 9, 4) как строб сброса. Он генерируется блоком ( CADDR32 ), который занимает бит-матрицу с координатами (10, 10)-(13, 21). Задающий генератор этого блока размещен в БП (10, 12), который настроен на бит-инструкцию CG и генерирует циклическую константу $$С_{8}1$$, записанную со смещением на 7 тактов и потому имеющую шестнадцатеричное представление 10. Циклическая константа $$С_{32}1$$ формируется на выходе БП (15, 12, 2) и используется как управляющая переменная в БП (11, 11), настроенном на бит-инструкцию ST1. На нижний, информационный вход этого БП поступает циклическая константа $$С_{2}^{14}1$$. Установка начального состояния генер атора строба CADDR32 осуществляется соответствующим размещением бит-инструкций AND и NAND в БП 10-го и 13-го столбцов бит-матрицы.
Функциональный выход модуля свертки ADDRV32 построчной гистограммы расположен в бит-процессоре (7, 10, 4).
построчной гистограммы. Его информационный вход расположен в бит-процессоре (3, 10, 1), и начальная задержка на нем составляет 950 тактов по отношению к первому значащему операнду.
Управляющий вход этого сумматора расположен по адресу (3, 11, 4), на который на 918+Q*2^{14} такте поступает 32-битный "единичный" строб, который в бит-процессоре (2, 10) используется как сигнал "чтение", а в бит-процессоре (2, 11) - как сигнал "сброс".
Функциональный выход сумматора ADDRH32 расположен по адресу (2, 10, 4), на котором задержка составляет $$922+Q*2^{14}$$ такта. Топологический выход этого блока совпадает с входом операнда делителя, и на нем начальная задержка равна 966 тактов, которая учитывает сдвиг операнда на 7 бит влево, что соответствует умножению на нормирующий множитель 27. Такая нормировка обеспечивает условия правильного деления, когда частное должно быть меньше единицы.
Из приведенных данных видно, что в модуле свертки вектор-столбца ( SMM ) в одном 128-битном цикле выполняются:
Таким образом, пропускная способность модуля свертки вектор-столбца ( SMM ) по потоку смеси из 8-битных, 32-битных и 128-битных слов-инструкций составляет: $$V_{I} = [(1+1+1)+(1+1+1)+16+32+4+36)]+(1+2+3)+ (16+32+4+4+4+4+4+8)+(1+2+3)+(1+1)]*F_{t} /128 = 184*F_{t} /128 = 1,4375*F_{t} $$.
Модуль определения положение центра масс астроориентира на оси Х ( CMM - рис. 8.20) представляет собой:
(рис 8.20) Структурная схема модуля вычисления "центра масс" (CMM)Делитель DL (рис. 8.21) на 7 двоичных разрядов занимает бит-матрицу размером 8*62 БП и имеет:
В данном случае использован классический для конвейерной арифметики формат
Из приведенных данных видно, что из 214 тактов, соответствующих полному циклу обработки одного кадра изображения, делитель полезно используется только на 32 тактах, но занимает порядка 12 % всей площади бит-матрицы.
Первый результат на выходе делителя появляется начиная с 17699 такта, и представлен в инверсном виде.
В делителе использован алгоритм деления со сдвигом и
где $$\alpha_i$$ - остаток на $$i$$ -м цикле деления; $$z_{i}$$ - разряд частного, причем $$i=\overline{0,k}$$,если речь идет о $$\alpha$$, и $$i=\overline{1,k}$$, если речь идет о $$z$$. Здесь $$k$$ - разрядность частного.
Модуль преобразования из прямого в дополнительный код делителя $$(-D)$$ на рис. 8.21 занимает бит-матрицу в пределах БП (1, 10)-(6, 13). Его топология существенно "деформирована" по сравнению с рис. 4.2 (см. раздел 4.1), что связано с принудительной инверсией знакового разряда.
Из приведенных данных видно: в модуле определения положения центра масс астроориентира на оси Х ( CMM ) в одном 214 -битном цикле выполняются:
Таким образом, физическая пропускная способность модуля определения положения центра масс астроориентира на оси Х ( CMM ) по потоку 32-битных слов-инструкций составляет$$V_I = [(2^{9}+2^{9})+(2^{9}+2^{9}+2^{9})+(2^{11}+2^{12}+ 2^{9}+2^{11})]*F_t /2^{14} \approx 2^{13}*F_{t} /2^{14} = 0,5 F_{t}.$$
Фактическая (пользовательская) пропускная способность этого операционного модуля приближается к нулю, так как за 214 тактов фактически исполняется только одна 7-битная операция деления над 32-битными операндами.
Дублирующий канал арифметической обработки включает те же модули и блоки обработки, что и основной. Несмотря на то что основные и дублирующие каналы разнесены на топологической схеме, они сконструированы таким образом, чтобы все их входы и выходы были идентичными по временам начальной задержки, что обеспечивается выбором FIFO -регистровых коммутирующих каналов.
Модуль контроля правильности работы логических устройств субпроцессора ( ICLM - рис. 8.22) осуществляет циклическое сравнение накопленных сумм в гистограммах первых двух строк обрабатываемого изображения, которые смешаны на входе по "ИЛИ" с потоком тест-данных.
(рис 8.21) Фрагменты топологической схемы делителя (DL)Он осуществляет контроль правильности работы всех логических блоков вплоть до модуля формирования построчных гистограмм включительно, где арифметические действия превалируют над логическими действиями. Модуль ICLM ( см. рис. 8.22) содержит:
Согласно схеме рис. 8.22, модуль ICLM не позволяет контролировать правильность работы входного интерфейса INS16, который работает параллельно до блока выделения тестовых строк SLC. При правильной работе контролируемой части субпроцессора накопленная сумма должна равняться 32, так как каждая из двух тестовых строк должна содержать 16 "единиц", которые отвечают правильной реакции медианного фильтра.
(рис 8.22) Структурная схема модуля контроля работы логических блоков субпроцессора слежения за "центром масс" факела (ICLM)Блок управления циклом сравнения CUICLM (БП (3, 1)-(6, 12) рис. 8.23) на выходе (4, 12, 2) периодически генерирует константу вида $$С_{2}^{14} 8$$, которая открывает доступ эталонному значению $$01111001$$ (БП (3, 11, 3) в блок сравнения, в котором хранится константа 79 ).
Блок сравнения занимает бит-матрицу (1, 10)-(2, 13) (см. рис. 8.23). Его функциональный выход имеет координату (2, 13, 4), на котором с задержкой 813 тактов формируется переменная 00000000, если реальная реакция субпроцессора е совпала в БП (2, 10) по XOR с эталонной и 8-битный операнд с обязательной "единицей" в старшем бите - в противном случае. Содержимое этого бита запоминается в БП (3, 13, 3) и служит признаком (не)правильной работы логического тракта субпроцессора слежения за "центром масс" астроориентира.
Правильной работе канала логической обработки отвечает "нулевая" реакция тестового модуля ICLM, а при обнаружении ошибки на этом
(рис 8.23) Топологическая схема модуля контроля работы логических блоков субпроцессора слежения за "центром масс" астроориентира (ICLM)выходе начиная с 813-го такта устанавливается "тождественная единица" на всех последующих 214 тактах.
Из приведенных данных видно, что в модуле контроля работы логических блоков ( ICLM ) в одном 214- битном цикле выполняются:
Таким образом, пропускная способность модуля контроля работы логических блоков ( ICLM ) по потоку 214-битных слов-инструкций составляет:$$V_{I} = [(2^{12}+2^{13})+(2^{11}+2^{11}+2^{11})+(2^{11}+2^{11})+(2^{11}+2^{14}+1+1)+(8+8)]*F_{t} /8+ [(1+1+1+1+3)]*F_{t} /2^{14} \approx 2^{15}*F_{t} /2^{14} \approx 2 F_{t}.$$
Контроль правильности работы арифметических каналов субпроцессора ( CAM ) осуществляется по классической фон-неймановской схеме двойного резервирования, которая гарантирует темп реального времени для задачи стопроцентного обнаружения одиночных отказов.
Поэтому, несмотря на большие аппаратные затраты, каналы из арифметических модулей SMM и CMM продублированы, а их выходы объединены тестовым модулем сравнения по XOR с последующим выделением признака результата сравнения, принимающим значение "ноль", если в субпроцессоре отсутствуют функционально значимые отказы аппаратуры, и значение "единица" в противном случае. Функциональный состав дублирующих модулей SMM d и CMM d идентичен основным, но их топологические схемы все же разнятся в некоторых деталях.
Канал определения центра масс на горизонтальной оси изображения аналогичен по функциям описанному каналу с той разницей, что обрабатываемое изображение подается на его входы в транспонированном виде.
Распределение слов-инструкций по операционным модулям МКМД-бит-потокового субпроцессора приведено в табл. 8.1, из данных которой видно:
| Тип Тип блока и Тип Количество слов-инструкций | ||||||
|---|---|---|---|---|---|---|
| модуля | размеры модуля | операнда | ОУ | Управление | Пересылки | Итого |
| INS16 | ICU1(16) | 8, 16 бит | - | 3 | 2 | 5 |
| INNS16 | 16 бит | 1 1 - | - 3 1 | 17 19 2 | 18 | |
| 3 18=54 БП | 8, 16 бит | 23 | ||||
| DTM | NG | 8 бит | 3 | |||
| SG | 8 бит | - | 1 | 1 | 2 | |
| CG | 8 бит | - | 5 | 6 | 11 | |
| TG | 8 бит | 2 | - | 2 | 4 | |
| ASU | 8 бит | 2 4 - - 25*8=120 2*8=16 136 - | - 7 - 26*8=208 - - 208 1 | 3 14 542 54*8=432 50*8=400 2*8=16 848 2 | 5 | |
| 3*24=72 БП | 8 бит | 25 | ||||
| SWM25 | 6*25=150 БП | 1 бит | 542 | |||
| MMF25 | CUADD1(8)) | 8 бит | 640 | |||
| ADD | 1 бит | 520 | ||||
| THU | 8 бит | 32 | ||||
| 3*8*28=672 БП | 1, 8 бит | 1192 | ||||
| CMZ 4(128) | NG | 8бит | 3 | |||
| CG | 8бит | - | 1 | 1 | 2 | |
| SG | 8бит | - | 1 | 3 | 4 | |
| AND | 8бит | 1 | - | 3 | 4 | |
| LHM | ADDA | 2-16 бит | 15 | 4 | 30 10 9 | 49 |
| CADDA16(128) | 8, 16 бит | - | 7 | 17 | ||
| DWH | 16 бит | 1 | - | 10 | ||
| SMM | 4*28=112 БП ML | 2-16 бит 128 бит | 16 1 | 11 1 | 49 1 | 76 3 |
| WGU | 16,128 бит | 1 | 1 | 1 | 3 | |
| CCU1(128) | 8,128 бит | - | 20 | 68 | 88 | |
| ADDRV32 | 128 бит | 3 | - | 3 | 6 | |
| CADDR32 | 8, 32, 128 бит | - | 28 | 48 | 76 | |
| ADDRH32 | 128 бит | 3 | - | 3 | 6 | |
| DWHCU | 128 бит | 1 9 9 | - 50 50 | 1 125 125 | 2 | |
| 24*13=312 БП | 8, 32, 128 бит | 184 | ||||
| SMM_{d} | 24*13=312 БП | 8, 32, 128 бит | 184 | |||
| CMM | DL | 32 бита 1 - | 1 | 2 | ||
| DCC | 32 бита 2 - | 1 | 3 | |||
| CG | 8, 32 бит | -5 35 3 | 3 5 5 1 | 8 | ||
| 8*62=496 БП | 8, 32 бит | 13 | ||||
| CMM_{d} | 8*62=496 БП | 8, 32 бит | 13 | |||
| ICLM | CUICLM | 8 бит | - | 1 | 2 | |
| SRP | 8 бит | - | 2 | 2 | 4 | |
| SLC | 8-1 1 | 2 | ||||
| CMPR | 1 кадр | 10 | - | 10 14 1755 | 20 | |
| 6*13=78 БП 2776 БП | 8 бит, 1 кадр | 10 4 | 28 | |||
| Итого | 192 346 | 2293 | ||||
На основе приведенных данных можно утверждать:
Наиболее четко данный эффект проявился в модулях "
Основной вклад в аппаратные затраты и в повышение пропускной способности (производительности) МКМД-бит-потоковых субпроцессоров вносят массовые операции управления и (сверх)массо-вые пересылки управляющих и преобразуемых операндов, которые составляют соответственно 15,1 % и 76,54 %, в то время как арифметико-логические операции составляют всего лишь 8,36 % от общего количества операций (см. табл. 8.1).
Качество работы МКМД-бит-потокового субпроцессора слежения за "центром масс" астроориентира оценим по четырем основным показателям: пропускной способности по
Согласно данным предыдущего раздела, средневзвешенная по разрядности потоковая производительность МКМД-бит-потокового субпроцессора слежения за "центром масс" астроориентира с учетом дублирующих модулей SMM d и CMM d составляет: $$V_{I}(субпроцессора) = V _{I}(INNS16) + V_{I}(DTM) + V_{I}(SWM25) + V_{I}(MMF25) + V_{I}(CMZ 4(128)) + V_{I}(LHM) + 2*V_{I}(SMM) + 2*V_{I}(CMM) + V_{I}(ICLM) = (1,4375 + 3,125 + 542 + 159 + 1,75 + 4,75 + 2*1,4375 + 2*0,5 +2)*F_{t} \approx 718*F_{t}$$.
Отсюда следует: при комплектации МКМД-бит-потоковых субпроцессоров слежения за "центром масс" астроориентира отечественными СБИС Н1841 ВФ1, работающими на тактовой частоте 5*106 Гц, достигается потоковая производительность порядка 3,6*103 MIPS, в которую решающий вклад вносят модули "
В отличие от RISC -архитектур, в МКМД-бит-потоковых субпроцессорах цикл исполнения каждой ассемблерной слов-инструкции зависит от разрядности данных, которая в нашем случае варьирует по ходу вычислений в достаточно широких пределах от 1 до 128 бит. Тем не менее цикл исполнения всех слов-инструкций остается постоянным и согласованным друг с другом благодаря использованию требуемого коэффициента векторизации, поддерживающего единый темп обработки по всему макроконвейеру из 11 специализированных процессоров RISC -подобной архитектуры.
Использование варьируемого коэффициента векторизации приводит к тому, что пропускная способность по потокам данных падает по мере их распространения по операционным модулям субпроцессора, в данном случае от 25 $$F_{t}$$ в модуле "
Приведенные значения пропускной способности по
Полученные численные значения позволяют утверждать:
В вычислительной технике [227] принято считать вычислительный процесс устойчивым, если абсолютная или относительная погрешность вычислений не превосходит соответствующей погрешности представления исходных данных.
С таких позиций выполняемые ЭВМ арифметико-логические действия над данными не должны вносить дополнительных погрешностей по отношению к погрешности представления, которая появляется не в самой ЭВМ, а на ее входе.
Основным источником погрешностей в цифровой вычислительной технике является ограниченная разрядная сетка передаваемых и преобразуемых операндов, что обусловлено ограниченной разрядностью регистров временного хранения, аккумуляторов и шин передачи данных. В инженерной практике принято считать, что максимальная
Среди арифметико-логических операций основной вклад в
Формат плавающей запятой является компромиссом между необходимостью обеспечения высокой точности вычислений (разрядность мантиссы) в широком динамическом диапазоне изменения преобразуемых величин (разрядность порядка). С точки зрения сохранения вычислительной устойчивости только варьируемый по ходу вычислений формат
Как видно из данных предыдущего раздела, в МКМД-бит-потоковом субпроцессоре слежения за "центром масс" астроориентира все арифметико-логические действия выполняются с требуемой на данном этапе вычислений точностью, то есть с нулевой
Так, в модуле формирования построчной гистограммы обрабатываемого изображения ( LHM ) без потери темпа реального времени осуществлен переход от однобитных к 16-битным операндам, в которых только 7 младших бит могут быть значащими, так как после медианной фильтрации накопленная сумма "единиц" не может превышать значения 124.
Аналогично в модуле "свертки" ( SMM ) при умножении операндов разрядность удвоена и доведена до 32 бит, что сохраняет и все биты произведения, и все биты накапливаемой впоследствии суммы. Такое увеличение разрядной сетки без потери темпа реального времени оказалось возможным потому, что в модуле LHM один выходной операнд вырабатывается на каждую строку обрабатываемого изображения, длина которой равна 128 бит, а в модуле свертки SMM оба выходных операнда вырабатываются на один кадр обрабатываемого изображения, "длина" которого равна 16384 битам. В данном случае именно размеры строки и кадра регламентируют минимальную погрешность промежуточных и окончательных результатов, соответственно 2-128 и 2-16384. Тем не менее, результат деления представлен операндом из 7 значащих бит, так как координата "центра масс" астроориентира на изображении 128*128 пикселей не выходит за пределы этой разрядной сетки.
Таким образом, можно утверждать, что МКМД-бит-потоковый субпроцессор слежения за "центром масс" астроориентира является вычислительно устойчивым и не вносит дополнительных погрешностей в общий тракт обработки видеосигналов.
Единственное негативное последствие использования МКМД-бит-потоковой вычислительной технологии в тракте управления (К)ЛА - это ощутимое время задержки, которое на 8 % превосходит время формирования, а значит, и время обработки любыми другими вычислительными средствами 1 кадра входного видеоизображения. Однако эти издержки можно минимизировать, повысив частоту формирования и обработки исходного видеоизображения до 100-1000 кадров/с, для чего имеется временной запас при использовании бит-матричных СБИС, работающих на тактовой частоте 250 МГц.
Отказоустойчивость МКМД-бит-потокового субпроцессора слежения за "центром масс" астроориентира будет проведена раздельно для подсистемы обнаружения и подсистемы парирования отказов.
Из приведенных в предыдущем разделе данных видно, что в темпе реального времени функциональный контроль работоспособности субпроцессора слежения за "центром масс" астроориентира осуществляется двумя способами:
В данной схеме использован не сверхнадежный, а равнонадежный
Главная специфика функционального контроля состоит в том, что с его помощью вырабатываются тестовые реакции не на все, а только на функционально значимые отказы, которые проявляются в содержимом промежуточных или окончательных результатов вычислений. По сравнению с прямым аппаратным резервированием, выполненным на уровне узлов каждого БП, такая схема обнаружения отказов обладает меньшим уровнем "
Отсюда встает задача оценки среднего количества реально существующих, но тем не менее "индифферентных" по отношению к решаемой задаче аппаратных отказов. Для получения такой оценки используем схему декомпозиции, рассмотренную в разделе 6.4 (см. рис. 6.48 и 6.49), согласно которой поток-оператор слежения за "центром масс" астроори-ентира разбивается на составляющие слов-инструкции, которые и служат объектом диагностики.
Цель исследований - определить
Из приведенной в предыдущем разделе структурно-функциональной схемы субпроцессора видно, что для исследования его устойчивости к индифферентным отказам достаточно оценить отказоустойчивость следующих слов-инструкций (рис. 8.24):
Тестовая последовательность для каждой слов-инструкции выбиралась по методике, изложенной в разделе 6.4, и по критерию максимально полного обнаружения отказов в исследуемом функциональном модуле.
Здесь $$Р$$ - вероятность сохранения работоспособности; $$N$$ - количество одновременных отказов вентилей в теле слов-инструкции;1 - кривая для генераторов циклических констант и медианного фильтра, 2 - для умножителя, 3 - для делителя и преобразователя из прямого кода в дополнительный, 4 - для сумматора-накопителя.
Из приведенных данных видно, что в 40 % случаев система обеспечения живучести МКМД-бит-потоковых субпроцессоров "поднимает тревогу", прерывает функциональную обработку и включается в работу только тогда, когда классическая схема мажоритарного резервирования фон Неймана уже исчерпала свой 3-кратный аппаратный ресурс.
Сопоставив графики рис. 8.24 и топологические схемы отвечающих им операционных блоков, можно убедиться: чем более "рыхлая" структура микропрограммы, тем выше ее нечувствительность к отказам. Объясняется это тем, что в более "рыхлых" топологиях ресурсы БП используются по
минимуму и неравномерно, что предопределено МКМД-режимом
(рис 8.24) Вероятность сохранения работоспособности слов-инструкцийПоэтому "рыхлость" их топологии в данном случае можно охарактеризовать тремя показателями:
В результате проведенных исследований подтвердилась применимость соотношения (3.5), которое предполагает, что вероятность сохранения работоспособности при $$k$$ отказах равна вероятности сохранения работоспособности при одном отказе в степени $$k$$. Более того, оказалось, что вероятность сохранения работоспособности операционных модулей, реализующих конкретные слов-инструкции, можно оценить как сумму (по составляющим термам) произведений вероятности сохранения работоспособности терма и вероятности попадания отказа в этот терм.
Наиболее наглядно это можно показать на примере умножителя, микропрограмма которого приведена на рис. 8.25. Здесь практически все столбцы бит-матрицы однородны по своей структуре, а вероятность сохранения работоспособности БП из каждой строки (при одном неисправном вентиле) равна:
При равновероятной гипотезе отказ 1 вентиля в БП любой из четырех строк одного столбца $$p_{v} = 1/4 = 0,25$$. Поэтому общая вероятность сохранения работоспособности умножителя при одном отказавшем вентиле $$p(ML) = 0,25*0,804 + 0,25*0,668 + 0,25*0,72 + 0,25*0,663 = 0,71375$$.
На графике 2 рис. 8.24 этот показатель находится на уровне 0,718, что всего лишь на 0,4 % выше расчетного. Такое расхождение можно объяснить некоторым неравномерным распределением функциональной нагрузки между БП, которые принадлежат разным термам (столбцам бит-матрицы рис. 8.25). Например, БП с координатами (4, 2) фактически выполняет операцию транзита, так как второй операнд в реализуемой им бит-инструкции ADD всегда равен нулю. Поэтому отказ типа "тождественный ноль" во втором входном коммутаторе канала АЛУ БП практически не влияет на выполнение им функции ADD, что и повышает его работоспособность по сравнению с соседями в этой строке.
(рис 8.25) Микропрограмма конвейерного умножителяПриемлемое для инженерной практики совпадение теоретических и экспериментальных данных позволяет распространить соотношение (3.5) на все уровни иерархии имитационного моделирования. Это кардинальным образом снижает затраты на оценку работоспособности МКМД-бит-потоковых субпроцессоров, которую можно осуществить достаточно достоверно и полно, не прибегая к анализу полного
Только МКМД-бит-потоковым субпроцессорам свойственно повышение работоспособности с ростом уровня иерархии в организации вычислительного процесса, что является следствием реализации принципа "одна (бит)инструкция - один (бит)процессор", который поддерживается на всех уровнях организации вычислений. В результате с ростом уровня иерархии возрастает и естественная структурно-функциональная избыточность субпроцессоров, которая на уровне бит-матриц уже поддерживается не только недоиспользованием коммутационных и операционных возможностей отдельных БП, но и полным их неиспользованием в топологии микропрограмм. По этой причине даже при пяти отказах вентилей, распределенных по матрице по равномерному закону, вероятность сохранения работоспособности субпроцессора слежения за "центром масс" астроориентира оказывается на уровне 0,5 (рис. 8.26).
Для сравнения, даже в лучшей из составляющих субпроцессор поток-инструкции медианной фильтрации (кривая 1 рис. 8.25) такой уровень работоспособности достижим только при трех индифферентных отказах.
Вторая важная характеристика подсистемы обнаружения отказов - это ее латентный период (буквально - период мнимого благополучия), который отсчитывается от момента появления отказа и до момента появления тестовой реакции на периферии бит-матрицы. Согласно схеме рис. 8.5 и приведенным топологическим схемам модулей, в МКМД-бит-потоковом субпроцессоре применена комбинированная схема контроля правильности работы, в которой максимальным латентным периодом обладает модуль ICLM, осуществляющий периодическую диагностику логических модулей субпроцессора на основе замещения текущих данных тест-данными, которые занимают 2 верхние и 2 нижние строки изображения. Общая задержка на выходе модуля ICLM составляет 813 тактов. Отказ в худшем случае может появиться на следующем такте после проведения периодического контроля. Поэтому временные издержки использованного метода контроля составляют $$2^{14}-128*4 = 16 384-512 = 15 872$$ такта. Технологические временные издержки, связанные с передачей тестовой реакции от выхода модуля ICLM и до периферии бит-матрицы, в данном случае невелики и составляют всего 9 тактов.
(рис 8.26) Вероятность сохранения работоспособности субпроцессора слежения за "центром масс" астроориентираТаким образом, латентный период подсистемы обнаружения отказов в МКМД-бит-потоковом субпроцессоре слежения за "центром масс" астроориентира составляет 16694 тактов, и он всего лишь в 1,02 раза превосходит цикл формирования и обработки 1 кадра обрабатываемого изображения. Тем не менее, вычисленные координаты необходимо задержать в буфере обмена данными с БЦВМ САУ (см. рис. 8.2 и 8.4) еще на 2 кадра обрабатываемого изображения, чтобы гарантировать отказобезопасность проведения сложных маневров боевых ЛА в группе, при посадке в сложных метеоусловиях и т. п.
Еще больший вклад в повышение отказоустойчивости МКМД-бит-потоковых субпроцессоров вносит подсистема парирования карт отказов, которая обеспечивает толерантное (пере)размещение микропрограммы поток-оператора на бит-матрице. Модельным экспериментом показано, что при реализации в подсистеме парирования отказов функций простейших сдвигов и растяжений достаточно крупных блоков микропрограммы становится возможным обеспечить работоспособность субпроцессора "в среднем" при 17 отказах бит-процессоров и 38%-ном резерве.
Ограничение на использование только простейших аффинных преобразований введено для сохранения темпа реального времени при их выборе и реализации. Более того, перемещаемые фрагменты микропрограмм были выбраны по критерию минимума информационных FIFO -регистровых связей, что соответствует разбиению всего поток-оператора на составляющие модули рис. 8.5 и что снижает временные затраты на редактирование связей между "подвижными" и "неподвижными" фрагментами микропрограммы. В результате основным "пожирателем" аппаратного резерва оказался модуль медианной фильтрации MMF25, который среди всех модулей занимает максимальную площадь бит-матрицы (24*28 = 672 БП) и к тому же обладает максимальной однородностью, как по строкам, так и по столбцам микропрограммы. В результате сдвиг микропрограммы этого модуля (см. рис. 8.13) по столбцам практически не изменяет требований к бит-инструкциям, реализуемым ка ждым БП, а при сдвиге по строкам эти требования воспроизводятся с циклом 3, так как каждый из 8 однородных составляющих блоков занимает три строки бит-матрицы. Таким образом, показано:
Учитывая тот факт, что в процессе работы субпроцессора накапливается существенная индифферентная карта отказов, тестировать необходимо всю бит-матрицу, а не отдельные ее части. Объясняется это тем, что для принятия правильного решения о толерантном (пере)размещении рабочего тела микропрограммы необходимо знать всю действующую карту отказов, так как при таком (пере)размещении изменяются требования к бит-процессорам, что может перевести любой отказ из индифферентного в функционально значимый.
Проведенный анализ основных потребительских характеристик МКМД-бит-потокового субпроцессора слежения за "центром масс" астроориентира показал:
В основе решения задач автоматической астронавигации лежит определение пространственного положения линии визирования от космического летательного аппарата (КЛА) до центра некоторой "неподвижной" яркой звезды, используемой в качестве астроориентира. В идеале с помощью обработки бинарного видеоизображения звездного пространства можно достаточно четко "провести" линию визирования до центра астроориентира (рис. 8.1-а). Однако в звездном пространстве существуют не только астроориентиры, но и мириады звезд (рис. 8.1-б), которые для алгоритма обработки бинарного изображения представляют собой "точечную" помеху, способную сместить вычисленный "центр масс" даже очень крупного астроориентира. Такого рода помехи наиболее эффективно фильтруются медианным фильтром (см. раздел 4.5 [290]), апертура которого должна более чем в два раза превышать площадь каждой яркой звезды, бли зко примыкающей в пространстве к астроориентиру.
Для решения такого рода задач на борту КЛА необходимо иметь видеокамеры (желательно по одной на астроориентир, чтобы жестко связать их положение с осями КЛА), которые формируют бинарные (черно-белые) изображения требуемого участка звездного пространства. Апертура таких видеокамер не должна быть очень большой (не более 128*128 пикселей), чтобы за счет малого "угла зрения" снизить паразитные влияния остальных звезд.
Частота определения собственного положения в пространстве КЛА невелика, как невелика и сложность задачи обработки такого изображения. Поэтому современные ЦПОС способны справиться с решением в реальном времени подобного рода задач. Однако высочайшая ответственность за успех космической экспедиции и достаточно продолжительное негативное влияние на (Б)ВС жестких космических излучений и других внешних воздействующих факторов выдвигают на первый план требование к (сверх)высокой живучести вычислительных комплексов, отвечающих за решение задач астронавигации, а значит, и за эффективность автономного управления полетом КЛА.
(рис 8.1) Влияние звездного пространства на точность визирования "центра масс" астроориентираАналогичные задачи решаются при посадке ЛА в плохих погодных условиях на подвижное основание, при дозаправке в воздухе группы самолетов и т. д. Но здесь уже требуются как (сверх)высокая (109-1012 оп/ сек) производительность, так и (сверх)высокая отказоустойчивость при выполнении особо сложных маневров, сопряженных с опасностью потери ЛА или гибелью экипажей.
Задачи, решаемые такими пассивными системами микро- и астронавигации, содержат достаточно полный набор функций (слов-инструкций), который можно рассматривать как представительную смесь, объективно
характеризующую возможности работы системы обеспечения живучести практически всех МКМД-бит-потоковых субпроцессоров. Поэтому полученные для такого проблемно-ориентированного субпроцессора характеристики системы обеспечения живучести с высокой степенью достоверности можно распространить на весь МКМД-бит-потоковый субпроцессорный тракт (см. рис. 4.5 раздела 4.2).
Таким образом, в субпроцессором тракте (Б)ВС КЛА требуется решить в реальном времени следующие задачи:
Ориентированный на решение перечисленных задач субпроцессорный тракт (Б)ВС КЛА должен иметь пред- и сопроцессор, на первый из которых возлагаются первые две задачи, а на второй - последние. Покажем, что основное достоинство такой схемы построения отечественных (Б)ВС состоит в том, что при этом повышается не только производительность, но и вычислительная устойчивость,
При разработке МКМД-бит-потокового предпроцессора слежения за "центром масс" астроориентира будем считать, что исходное видеоизображение имеет размеры 128x128 черно-белых пикселей $$x_{ij}\in\{0,1\} (i, j = \overline{1,128})$$.
Такие размеры обрабатываемого видеоизображения обеспечивают приемлемую угловую избирательность порядка 10о-15о, которая, с одной стороны, снижает влияние естественных и искусственных видеопомех, а с другой стороны - обеспечивает достаточно высокую точность определения угловых координат "центра масс" астроориентира порядка 0,08о-0,12о. Вычисленные линейные координаты "центра масс" фигуры, идентифицированной как астроориентир, по отношению к центру плоского (двумерного) черно-белого изображения, должны быть
Структурно-функциональная схема канала обработки астронавигационной информации приведена на рис. 8.2, а укрупненный алгоритм его работы имеет вид:
(рис 8.2) Структурно-функциональная схема видеоканалаДля вычисления координаты $$y^{0}_p$$ матрица $$\{x_{ij}\}$$ транспонируется и полученная матрица $$\{x_{ji}\}^{\tau}$$ обрабатывается аналогичным образом, где после первого этапа вычислений формируется матрица $$\{y_{cr}\}$$, после четвертого этапа - вектор-столбец $$\{a_{c}\}$$, а на восьмом этапе - $$у_{p}^0 =a_{c}^8/a^{\sim}_{c}$$
Бит-матрица используется с разделением времени как при определении каждой координаты "центра масс" астроориентира $$(x_p^0)$$ и $$(y^{0}_p)$$, так и при обработке изображений от каждого из пяти фотоприемников.
Все рассмотренные процедуры работы канала обработки видеоизображения необходимо привести к потоковому виду, который учитывает как "непрерывность" потока входных и выходных данных, так и специфику работы МКМД-бит-потоковых субпроцессоров, которая связана с тем, что каждая потоковая слов-
Шаг 1. Перевести поток 16-битных входных операндов из параллельного кода $$\{\hat{x}_{ij}\}$$ в последовательный код $$\{х_{ij}^*\}$$. Здесь $$\hat{x}_{ij}, х_{ij}^* \in\{0,1\}$$, а перечисление потока входных данных происходит по строкам исходного изображения. Такой перечислительный процесс осуществляется внешними по отношению к субпроцессору аппаратными средствами, реализующими три вложенных цикла: $$For(k, For(j, For(i)))$$, где индекс кадра обрабатываемого изображения $$k = \overline{1,\infty}$$, a $$j = \overline{1,128}$$ ; $$i = \overline{1,128}$$.
Во входном интерфейсе самого МКМД-бит-потокового субпроцессора реализуется "бесконечно кратный" цикл $$For(i) = \overline{1,16}$$, который соответствует циклу перехода от параллельного кода к последовательному с использованием 16-разрядной шины данных.
Шаг 2. Заместить две верхние и две нижние строки в каждом кадре исходного изображения $$\{ х_{ij}^*\}$$ тестовыми данными (рис. 8.3) по правилу: "пять единиц - три ноля", "пять единиц - три ноля" и т. д., всего 64 раза. В субпроцессоре тестовой считается та фаза вычислений, в которой в "скользящем окне" медианного фильтра объединяются две нижние строки из предыдущего кадра с двумя верхними строками из текущего кадра обрабатываемого изображения. В результате на выходе медианного фильтра будет выработано по 3 "единицы" на каждые 8 пикселей, то есть эталонная тестовая реакция канала логической обработки на этот фрагмент изображения должна равняться 48.
(рис 8.3) Расположение тест-данных на исходном изображенииЧтобы осуществить замещение двух верхних и двух нижних строк исходного изображения тест-данными, необходимо:
Шаг 3. Обработать полученное изображение медианным фильтром размером 5*5 пикселей: $$\tilde{x}_{rc} := med_{5\times 5}\{x_{\hat{i},\hat{j}}\}^{гс}$$. Здесь:
В МКМД-бит-потоковых технологиях процедура "скольжения" окна размером 5*5 пикселей реализуется с помощью FIFO -регистровой линии задержки, имеющей 1 вход и 25 выходов, на которых одновременно появляются все элементы, соответствующие текущему положению "
Обычно медианная фильтрация выполняется через две логические процедуры:
Но в данном случае мы имеем дело с бинарным изображением, и поэтому медианную фильтрацию можно выполнить через две арифметико-логические процедуры:
$$B_{rc}=\sum\limits_{\hat{i},\hat{j}}x_{\hat{i},\hat{j}}^{rc} \text{ и } y_{rc} = \begin{cases} 1, \text{ если } B_{rc} \ge 13, \\ 0, \text{ если } B_{rc} < 13. \end{cases}$$В МКМД-бит-потоковых технологиях невозможно непосредственно просуммировать однобитный поток данных, так как "единица переноса" сохраняется внутри бит-процессора (БП) и учитывается на следующем такте суммирования (см. рис. 3.2 раздела 3.1). Поэтому приходится:
Для суммирования по этой схеме необходимо реализовать (в данном случае) 6 вложенных циклов: $$For(с_{128}, For(с_{32}, For(с_{16}, For(с_{8}, For(с, For(с_{2}))))))$$, из которых 5 нижних используются для формирования 32-битных операндов, обеспечивающих нулевую
Шаг 4. Обнулить реакцию медианного фильтра на паразитные взаимодействия элементов "
где $$d_r = 1$$, если $$1< r< 127$$, и $$d_r = 1$$ в противном случае.
Для выполнения этого шага потокового алгоритма необходимо:
Шаг 5. Составить гистограммы по строкам $$\{y_{r}\}$$ или по столбцам $$\{y_{c}\}$$,
где$$y_{r} = \sum\limits_{c=1}^{124}{ y_{rc }},$$ а $$y_{с} = \sum\limits_{c=1}^{124}{ y_{rc }}$$
Для реализации этих выражений необходимо:
Шаг 6. Обработать полученные гистограммы 2-элементным "
Данная процедура выполняется "непрерывно" и не налагает каких-либо ограничений на процедуру парного суммирования.
Шаг 7. Сравнить результат обработки первых и последних двух тестовых строк кадра с эталонной реакцией:
$$DT1 = \begin{cases} 0, \text{ если } a_{1} = 96, \\ 1, \text{ если } a_{1} \ne 96. \end{cases}$$Для выполнения этого шага потокового алгоритма необходимы те же управляющие процедуры, что и на шаге 6.
Шаг 8. Обнулить реакцию 2-элементного "
$$a_{r} =a_{c}\bigwedge\limits_{c=1}^{128}{d_c}$$ и $$a_{c} =a_{r}\bigwedge\limits_{r=1}^{128}{d_r}$$
где $$d_r, d_c = 1$$, если $$r, c \succ 1$$, и $$d_r, d_c = 0$$, если $$r, c = 1$$
Для выполнения этого шага потокового алгоритма необходимо выполнить те же управляющие процедуры, что и на шаге 6.
Шаг 9. Выполнить "свертку" вектор-столбца $$\{a_r\}$$ и вектор-строки $$\{a_c\}$$ по правилу:
$$a_{r}^* =\sum\limits_{r=1}^{127}{a_r}*w_r \text{ и } a_{c}^* =\sum\limits_{c=1}^{127}{a_c}*w_c$$Здесь $$w_{r},w_{c} =\overline{1,127}$$ - весовые коэффициенты, соответствующие индексу элемента вектор-столбца или элемента вектор-строки - $$w_r = r$$ и $$w_c = c$$ соответственно.
Для выполнения этого шага потокового алгоритма необходимо выполнить те же управляющие процедуры, что и на шаге 6.
Шаг 10. Вычислить суммарную "яркость" обрабатываемого изображения:
$$a_{r}^{\sim}=\sum\limits_{r=1}^{127}{a_r} \text{ и/или } a_{c}^{\sim}=\sum\limits_{c=1}^{127}{a_c}$$Для выполнения этого шага потокового алгоритма необходимо выполнить те же управляющие процедуры, что и на шаге 6.
Шаг 11. Определить координаты $$(x^0_i , x^0_j)$$ центра масс изображения по отношению к его верхнему левому углу: $$х^0_i = а_{r}^*/ а^{\sim}_r$$ и $$х^0_j = а_{c}^*/ а^{\sim}_c$$.
Шаг 12. Определить координаты $$(|x_{i}^0|, |x_j^0|)$$ центра масс изображения по отношению к его центру: $$|x_i^0| = | x_i^0 - 64| + 0,5$$ и $$|x_j^0| = | x_j^0 - 64| + 0,5$$ ; $$sign|x_i^0| = sign(x_i^0 - 64)$$ ; $$sign|x_j^0| = sign(x_j^0 - 64)$$.
Шаг 13. Продублировать вычисления на шагах 8-11 с использованием дополнительного комплекта аппаратуры и сравнить результат с основным:
$$DT2 = \begin{cases} 0, \text{ если } |x_i^0|^{(1)} = |x_i^0|^{(2)}, \\ 1, \text{ если } |x_i^0|^{(1)} \ne |x_i^0|^{(2)}. \end{cases}$$В МКМД-бит-потоковых вычислительных технологиях последние три процедуры выполняются над "бесконечными" потоками данных, из которых только один цикл является информативным, который и выделяется интерфейсом обмена с последующим устройством обработки.
Из приведенных данных видно, что практически в каждой потоковой процедуре необходимо определить параметры циклов $$for$$, которые необходимо заложить в управляющие конструкции, специфичные для каждой словинструкции. Именно индивидуальные процедуры управления "по счетчику" (циклы $$for$$ ) отличают МКМД-бит-потоковые субпроцессоры от остальных программируемых средств вычислительной техники. Объясняется это тем, что это класс субпроцессоров работает в режиме интерпретации, а не компиляции прикладных программ. В традиционных архитектурах режим интерпретации значительно проигрывает во времени режиму компиляции, так как в этом случае все аппаратные ресурсы процессора последовательно предоставляются каждой инициализированной слов-инструкции, что вынуждает перенастраивать процессор на параметры каждой инициализированной инструкции ассемблера. В случае бит-потоковых субпроцессоров режим интерпретации не сопряжен с большими временными издержками, так как все управляющие и интерфейсные процедуры реализуются аппарат-но и включают в себя параметры циклов управления. Это приводит к росту аппаратных затрат на средства управления вычислительным процессом, но обеспечивает максимальную "мобильность" микропрограммных модулей на бит-матрице в процессе парирования множественных карт отказов.
Укрупненная функциональная схема МКМД-бит-потокового субпроцессора слежения за "центром масс" астроориентира имеет вид рис. 8.4, и она определяет место этого субпроцессора во всем тракте управления угловыми координатами при полете группы ЛА сомкнутым строем.
(рис 8.4) Функциональная схема включения МКМД-бит-потокового субпроцессорного тракта в контур обработки полетной информацииИз этой схемы следует:
В каждом из перечисленных модулей аппаратурный ресурс расходуется на некоторое множество операционных, управляющих, коммутационных или диагностических функций, как правило, различного формата и разной разрядности.
(рис 8.5) Функциональная схема поток-процессора определения "центра масс" астроориентираТакое разбиение на функциональные модули обеспечивает минимум информационных связей между аппаратно поддерживающими их специализированными МКМД-бит-
Параллельно-последовательный 16- битный интерфейс данных ( INS16 - рис. 8.6) с блоком управления процедурой синхронного чтения реализуется на основе регистра параллельной записи и последовательного чтения (рис. 8.7). Здесь и далее за начало координат взят верхний левый угол бит-матрицы; первой указана координата строки, а второй - координата столбца бит-матрицы.
(рис 8.6) Структурная схема параллельно-последовательного интерфейса (INNS16)
(рис 8.7) Топологическая схема модуля входного интерфейса (INNS16)Данный интерфейсный модуль занимает бит-матрицу размером 3*18 БП, и в нем время начальной задержки поступления входных данных составляет 32 такта. Такая задержка обеспечивает вхождение в конвейер параллельной FIFO -регистровой шины управления процедурой "чтение" (бит-процессоры 1-й и 2-й строки). В этой шине все 16 эквидистантных выходов канала распространения циклической константы $$C_{16}1$$ (см. лекцию 5 курса "Задачи и модели вычислительных наноструктур") имеют одинаковое время задержки, отсчитанное от управляющего входа канала (БП с координатами (1, 16, 3)), что обеспечивает одновременное (синфазное) поступление "1" на схемы "И" третьей строки бит-матрицы.
Частота поступления входных бит-данных, заданных в параллельном коде, - 1 раз за 16 тактов работы бит-матрицы. Координаты информационных входов помечены треугольными стрелками: (3, 1, 4)-(3, 16, 4). Координата выхода операндов в последовательном коде - (1, 2, 2). Время начальной задержки в модуле - 36 тактов. Здесь и далее используется следующая система обозначений БП и их входов-выходов:
Строб "чтение" $$C_{16}1$$ формируется
Из приведенных данных видно, что на каждом 16-битном цикле работы входного интерфейса:
Таким образом, пропускная способность входного интерфейса составляет по потоку 16- битных слов-инструкций $$V_{I} = [(2+1+2)+(16+1+1)]*F_{t} /16 = 23*F_{t} /16 = 1,4375F_{t}$$ (оп/сек), а по потоку данных $$V_{D} = F_{t}$$ (бит/сек), где $$F_{t}$$ - частота работы бит-матрицы.
Модуль циклической генерации тест данных ( DTM - рис. 8.8), которые имеют вид: "пять единиц - три ноля", "пять единиц - три ноля", и т. д., всего 64 раза, что соответствует заполнению тест-данными двух верхних и двух нижних строк каждого кадра обрабатываемого изображения размером 128*128 = 214 однобитных пикселей (см. рис. 8.3).
Блок управления генерацией тест-данных содержит (рис. 8.9):
(рис 8.8) Структурная схема модуля генерации тест-данных (DTM)На выходе блока управления генерацией тест данных формируется циклическая константа из 29 "единиц" и (214-29) "нулей". Функциональный выход этого блока расположен в БП (3, 11, 1), а реальный, топологический - в БП (3,2,1).
Как видно из рис. 8.9, делитель и таймер совмещены по аппаратуре и представляют собой счетчики из Т -триггеров, каждый из которых занимает бит-матрицу 2*2 БП.
Генератор тест-данных $$С_{8}5:=00011111$$ реализован на БП (1, 1), который выполняет бит-инструкцию CG. В теле этой бит-инструкции хранится данная циклическая константа, которая в шестнадцатеричном виде со смещением на 1 такт влево имеет вид $$3Е = 00111110$$.
В блоке слияния потоков реальных и тестовых данных (БП первых двух столбцов рис. 8.9)
(рис 8.9) Топологическая схема модуля генерации тест-данных (DTM)Чтобы совместить поток тест-данных с двумя верхними и двумя нижними строками каждого кадра обрабатываемого изображения, необходимо подобрать начальную задержку в блоке управления, которая регулируется расстановкой бит-инструкций AND или NAND в БП 1-й строки. Эти бит-инструкции определяют время задержки на распространение "единицы" из предыдущего Т -триггера в последующий. В данном случае задержка составляет 36 тактов и она предполагает, что входной интерфейс поток-процессора начал свою работу с задержкой на 256 тактов по отношению ко времени начала работы всей бит-матрицы.
Из приведенных данных видно, что на каждом 8-битном цикле работы генератора тест-данных ( DTM ) выполняются:
Таким образом, пропускная способность генератора тест-данных по потоку 8-битных слов-инструкций составляет$$V_{I} = [(1+2)+(1+1)+ (4+1+6)+(1+1+2)+(1+1+3)]*F_{t} /8 = 25*F_{t} /8 = 3,125*F_{t},$$ а из 25 реально исполняемых в режиме интерпретации слов-инструкций полезной для пользователя является только одна операция замещения входных данных тест-данными.
Модуль " скользящего окна " размером 5 * 5 пикселей ( SWM25 - рис. 8.10) представляет собой разветвленную по 25 выходам FIFO -регистровую линию (функциональной) задержки продолжительностью 4*128+5 = 517 тактов (бит). Преимущество FIFO -регистровой линии задержки состоит в том, что она минимизирует число обращений к внешней памяти и использует однократно введенный входной операнд ровно столько раз, сколько требуется по алгоритму обработки. При этом она одновременно осуществляет 4*128+5+25 = 542 операции пересылки однобитных операндов входного потока.
На ее 25 выходах параллельно, но с временным перекосом или, что одно и то же, с нарастающей дополнительной "технологической" задержкой на 1 такт формируются биты, отвечающие одному положению "
(рис 8.10) Структурная схема модуля "скользящее окно" (SWM25)необходима для правильного суммирования содержимого однобитных пикселей в последующем модуле медианной фильтрации ( MMF25 ).
На топологической схеме поток-оператора модуль "скользящее окно" (рис. 8.11) занимает бит-матрицу размером 6*25 БП, который частично пересекается с модулем MMF25. Первый каскад из 25 его выходов имеет координаты (1, 1, 2)-(1, 25, 2).
(рис 8.11) Фрагмент топологической схемы модуля "скользящее окно" (SWM25)Координата входа в модуль - (5, 1, 4), где время начальной задержки составляет 43(+2*128) тактов. В скобках указано дополнительное время начальной задержки, если в субпроцессоре используется модуль циклической генерации тест-данных DTM.
Таким образом, пропускная способность модуля "скользящее окно" по потоку однобитных инструкций составляет $$V_{I} = 542*F_{t}$$.
Модуль медианной фильтрации бинарного изображения ( MMF25 - рис. 8.12) присваивает каждому положению "
(рис 8.12) Структурная схема медианного фильтра (MMF25)Модуль MMF25 содержит 8 идентичных блоков, в которых осуществляется:
Цикл выборки потока обрабатываемых данных из входного потока для каждого блока составляет 8 тактов. В результате в каждом из этих блоков формируется реакция всего медианного фильтра на закрепленные за ним положения "
Модуль медианной фильтрации MMF25 расположен на бит-матрице размером 24*28 БП, а каждый из 8 его блоков занимает по три строки и содержит (рис. 8.13):
При любом пространственном смещении модуля медианной фильтрации MMF25 или его отдельных блоков необходимо скорректировать фазу выхода циклической константы $$C_{8}1$$, придав ей вид, отвечающий фактическому сдвигу в начале их работы. Результирующее бинарное изображение начинает формироваться с 618(+2*128) такта в БП (3, 28, 2) слиянием по "ИЛИ" циклических реакций от каждого из 8 блоков.
Время начальной задержки только в модуле медианной фильтрации MMF25 бинарного изображения "
Из приведенных данных видно, что каждый блок модуля медианной фильтрации ( MMF25 ) работает с циклом 8 тактов и на выходе формирует однобитный признак результата сравнения с порогом, равным 13. При этом составляющие его блоки реализуют следующие слов-инструкции:



(рис 8.13) Топологическая схема 1-го блока модуля медианной фильтрации (MMF25)Таким образом, пропускная способность модуля медианной фильтрации составляет по потоку 8-битных слов-инструкций $$V_{I} = 8*[(1+25+ 54)+(25+25+25)+(1+1+2)]*F_{t} /8 = 159*F_{t}$$, а из 159 реально исполняемых в режиме интерпретации слов-инструкций полезными для пользователя являются только четыре: накопление суммы, сравнение с порогом и формирование результата сравнения с его подстановкой.
Модуль подавления реакций медианного фильтра на паразитные межстрочные положения " скользящего окна " ( CMZ 4(128) - рис. 8.14) представляет собой генератор циклической константы вида: 4 "нуля" и 124 "единицы", которая стробирует по "И" результирующее изображение, обнуляя в нем 2 первых и 2 последних пикселя в каждой строке.
(рис 8.14) Структура модуля подавления паразитных реакций медианного фильтра CMZ 4(128)Модуль CMZ 4(128) представляет собой
Соотношение фаз управляющего и обрабатываемых потоков поддерживается подстановкой бит-инструкций AND или NAND в бит-процессоры первой строки, и они должны редактироваться при любом пространственном перемещении как модуля медианной фильтрации, так и/или модуля подавления реакций на паразитные положения "
В модуле CMZ 4(128) в одном 8-битном цикле выполняются (рис. 8.15):
(рис 8.15) Топологическая схема модуля подавления паразитных реакций медианного фильтра (CMZ 4(128))Таким образом, пропускная способность модуля подавления паразитных реакций медианного фильтра по потоку 8 -битных слов-инструкций составляет $$V_{I} = [(1+2)+(1+1)+(3+3)+(1+2)]*F_{t} /8 = 14*F_{t} /8 = 1,75*F_{t}$$, а из 14 реально исполняемых в режиме интерпретации слов-инструкций полезными для пользователя являются три: формирование строба $$C _{128}4$$, подавление паразитной реакции и пересылка результата.
Модуль формирования построчных гистограмм отфильтрованного бинарного изображения и их циклического сглаживания 2-элементным " скользящим окном " ( LHM ) является первым в канале арифметической обработки субпроцессора. Модуль LHM осуществляет подсчет количества "единичных" пикселей в каждой строке и попарное суммирование (сглаживание гистограммы) накопленных сумм из двух смежных строк, принадлежащих одному кадру обрабатываемого изображения. Модуль LHM (рис. 8.16) содержит:
В четырех каскадах потокового сумматора ADD сначала попарно складывается содержимое четных и нечетных бит, выделенных из обрабатываемого потока. Затем по аналогичной схеме суммируются четные и нечетные 2-битные операнды, выделенные из обрабатываемого потока, и т. д. до получения 16-битных операндов (с 8 значащими разрядами), которые уже суммируются в ADDR по классической схеме накопления в аккумуляторе с управляемым циклом.
Потоковая часть сумматора ADD (рис. 8.17) занимает с 20-го по 28-й столбцы бит-матрицы и имеет только информационный вход (3, 28, 4) с начальной задержкой 619(+2*128) тактов.
Все локальные блоки управления ADD распределены по сумматору, и с их помощью один поток из каждого предшествующего каскада суммирования расщепляется в пространстве на два потока, которые затем выравниваются по времени задержки и суммируются. Для этих целей в первом каскаде используется
(рис 8.16) Структурная схема модуля формирования построчной гистограммы обрабатываемого изображения (LHM)Аккумулирующая часть сумматора ADDR16 (рис. 8.17) занимает с 15-го по 19-й БП первой строки бит-матрицы, а блок управления циклом накопления CADDA16(128) - с 5-го по 18-й столбец 2-й и 3-й строки бит-матрицы. Этот блок частично пересекается по топологии с блоком DWH сглаживания гистограммы 2-элементным "
Сумматор-накопитель ADDR16 с 16-битным аккумулятором имеет 2 информационных входа: (1, 18, 3) и (1, 20, 1), 2 управляющих входа: "чтение" ( R ) - (1, 17, 2) и "сброс" ( RS ) - (2, 18, 2), и 1 информационный выход - (2, 17, 1) с общим временем задержки от входа субпроцессора в 771(+2*128) тактов. В данном случае полный цикл накопления составляет 128 тактов и задается 16-битным "единичным" стробом "чтение": 16 "единиц" и 112 "нулей", инверсия которого используется для обнуления содержимого аккумулятора.
Блок управления циклом накопления CADDA16(128) построчной гистограммы представляет собой:
(рис 8.17) Топологическая схема модуля формирования построчной гистограммы обрабатываемого изображения (LHM)Блок циклического сглаживания DWH2 построчной гистограммы 2-элементным "
Предшествующий ему цикл срабатывания 2-элементного "
Из приведенных данных видно, что в модуле формирования построчной гистограммы обрабатываемого изображения ( LHM) в одном 16 -битном цикле выполняются:
Таким образом, пропускная способность модуля формирования построчной гистограммы обрабатываемого изображения ( LHM) по потоку смеси из 2-, 4-, 8- и 16- битных слов-инструкций составляет:
$$V_{I} = [4*(1+2+1+6)+(1+2+1+6)+(4+8+1+1+1+1+1)+(8+1+1)]*F_{t} /16 = 76*F_{t}/16 = 4,75*F_{t} ,$$а из 76 эквивалентных 16-битных и реально исполняемых в режиме интерпретации слов-инструкций полезными для пользователя являются только 7 операций: суммирование с накоплением, сглаживание двухэлементным "
Модуль " свертки " вектор-столбца построчной гистограммы отфильтрованного изображения ( SMM - рис. 8.18) осуществляет "взвешенное" суммирование $$B_s = \sum\limits_{s}X^{s}_{128} * W^s_{128}$$ элементов $$X^{s}_{128}$$ построчной гистограммы (в данном случае $$s = \overline{1,128}$$ ), умноженной на соответствующий весовой коэффициент $$W_{128}^s$$, представляющий собой номер строки в исходном изображении.
(рис 8.18) Структурная схема модуля "свертки" (SMM) Следует помнить, что и множимое $$W_{128}^s$$, и множитель $$X_{128}^s$$ имеют только 7 значащих разрядов. Поэтому их произведение имеет только 14 значащих разрядов. Сам весовой коэффициент $$W_{128}^s$$ изменяется (по $$s$$ ) от 0 до 127, что позволяет непосредственно в умножителе подавить паразитные взаимодействия межу кадрами при обработке 2-элементным "
Умножитель ML занимает первые 9 столбцов бит-матрицы рис. 8.19-a и имеет два информационных входа (БП (2, 3, 1) - множитель и БП (3, 3, 4) - множимое) и один управляющий (БП (1, 3, 1)).
Первое значимое множимое является первым элементом вектор-столбца $$X ^{1}_{128}$$ построчной гистограммы и подается на 936(+2*128) такте. Первый значащий множитель $$W ^{1}_{128} = 1$$ подается на 934(+2*128) такте. На управляющий вход умножителя на $$933(+2*128)$$ такте подается циклическая константа $$C_{128}1$$, задающая цикл его работы. При этом следует помнить, что первые нулевые операнды множимого и множителя поступают на входы умножителя соответственно на 808 и 806 тактах.

(рис 8.19) Топологическая схема модуля свертки вектор-столбца построчной гистограммы отфильтрованного изображения (SMM)Циклическая константа $$C_{128}1$$ и поток весовых коэффициентов $$W_{128}^{s} = (0, 1, 2, 3, …, 127)$$ генерируются двумя взаимодействующими блоками управления WGU и CCU1(128), которые занимают на бит-матрице первые пять столбцов с 6-й по 24-ю строку.
Блок генерации CCU1(128) циклической константы $$C_{128}1$$ выполнен по классической схеме делителя (на 24) частоты задающего генератора CG, содержащего циклическую константу $$C_{8}1$$ (БП (23, 5)). В БП (20, 1) данная циклическая константа ветвится в двух направлениях, так как она используется и как независимая управляющая переменная, и как промежуточный аргумент, задающий величину и цикл приращения целочисленных значений весовых коэффициентов $$W_{128}^{s}$$ в блоке WGU.
Блок WGU имеет выход (6, 2, 2) с начальной задержкой 794 такта по отношению к обнуленному в DWHCU операнду и 922 такта по отношению к первому значащему операнду, имеющему в ML вес "единица". Для установки такой начальной задержки использована PD -ассоциативная схема записи однократной "единицы" в соответствующие разряды счетчика на Т -триггерах. Однократная "единица" формируется при включении субпроцессора БП с координатами (21, 3)-(21, 5) и распространяется вверх по 5-му столбцу бит-матрицы. Время начальной задержки фиксировано, но его можно изменить, модифицировав адреса разрядов счетчика, в которые попадает однократная "единица".
Блок обнуления ( DWHCU ) паразитных взаимодействий строк из разных кадров, попавших в одно 2-элементное "скользящее окно", генерирует циклическую константу вида: 32 "нуля" и (214-32) "единиц". Он расположен на бит-матрице с координатами (10, 6)-(21, 9) и представляет собой два взаимодействующих счетчика, один из которых генерирует циклическую константу $$С_{32}1$$ (выход БП (13, 8, 2)), а второй - $$С_{2}^{14}1$$ (выход БП (12, 7, 2)). Циклическая константа $$С_{32}1$$ используется как управляющая переменная в БП (7, 11), который реализует бит-инструкцию ST1, а вторая циклическая константа используется в этом же БП как информационная. Начальная задержка в блоке DWHCU устанавливается с помощью бит-инструкций AND и NAND в БП 6-го и 9-го столбцов. Само обнуление паразитных взаимодействий строк из разных кадров осуществляется в БП (6, 10), который реализует бит-инструкци ю AND.
Сумматор-накопитель ADDRV32 оператора свертки вектор-столбца построчной гистограммы обрабатываемого изображения выполнен по классической схеме с 32-битным аккумулятором (рис. 8.19-б - бит-матрица с координатами (6, 7)-(8, 10)).
Строб "чтение" имеет вид: 32 "единицы" и (214-32) "нуля", предшествует полному циклу накопления, поступает на $$916+Q*2^{14}$$ такте на вход бит-процессора (7, 10, 1) и в инвертированном виде используется в БП (7, 9, 4) как строб сброса. Он генерируется блоком ( CADDR32 ), который занимает бит-матрицу с координатами (10, 10)-(13, 21). Задающий генератор этого блока размещен в БП (10, 12), который настроен на бит-инструкцию CG и генерирует циклическую константу $$С_{8}1$$, записанную со смещением на 7 тактов и потому имеющую шестнадцатеричное представление 10. Циклическая константа $$С_{32}1$$ формируется на выходе БП (15, 12, 2) и используется как управляющая переменная в БП (11, 11), настроенном на бит-инструкцию ST1. На нижний, информационный вход этого БП поступает циклическая константа $$С_{2}^{14}1$$. Установка начального состояния генер атора строба CADDR32 осуществляется соответствующим размещением бит-инструкций AND и NAND в БП 10-го и 13-го столбцов бит-матрицы.
Функциональный выход модуля свертки ADDRV32 построчной гистограммы расположен в бит-процессоре (7, 10, 4).
построчной гистограммы. Его информационный вход расположен в бит-процессоре (3, 10, 1), и начальная задержка на нем составляет 950 тактов по отношению к первому значащему операнду.
Управляющий вход этого сумматора расположен по адресу (3, 11, 4), на который на 918+Q*2^{14} такте поступает 32-битный "единичный" строб, который в бит-процессоре (2, 10) используется как сигнал "чтение", а в бит-процессоре (2, 11) - как сигнал "сброс".
Функциональный выход сумматора ADDRH32 расположен по адресу (2, 10, 4), на котором задержка составляет $$922+Q*2^{14}$$ такта. Топологический выход этого блока совпадает с входом операнда делителя, и на нем начальная задержка равна 966 тактов, которая учитывает сдвиг операнда на 7 бит влево, что соответствует умножению на нормирующий множитель 27. Такая нормировка обеспечивает условия правильного деления, когда частное должно быть меньше единицы.
Из приведенных данных видно, что в модуле свертки вектор-столбца ( SMM ) в одном 128-битном цикле выполняются:
Таким образом, пропускная способность модуля свертки вектор-столбца ( SMM ) по потоку смеси из 8-битных, 32-битных и 128-битных слов-инструкций составляет: $$V_{I} = [(1+1+1)+(1+1+1)+16+32+4+36)]+(1+2+3)+ (16+32+4+4+4+4+4+8)+(1+2+3)+(1+1)]*F_{t} /128 = 184*F_{t} /128 = 1,4375*F_{t} $$.
Модуль определения положение центра масс астроориентира на оси Х ( CMM - рис. 8.20) представляет собой:
(рис 8.20) Структурная схема модуля вычисления "центра масс" (CMM)Делитель DL (рис. 8.21) на 7 двоичных разрядов занимает бит-матрицу размером 8*62 БП и имеет:
В данном случае использован классический для конвейерной арифметики формат
Из приведенных данных видно, что из 214 тактов, соответствующих полному циклу обработки одного кадра изображения, делитель полезно используется только на 32 тактах, но занимает порядка 12 % всей площади бит-матрицы.
Первый результат на выходе делителя появляется начиная с 17699 такта, и представлен в инверсном виде.
В делителе использован алгоритм деления со сдвигом и
где $$\alpha_i$$ - остаток на $$i$$ -м цикле деления; $$z_{i}$$ - разряд частного, причем $$i=\overline{0,k}$$,если речь идет о $$\alpha$$, и $$i=\overline{1,k}$$, если речь идет о $$z$$. Здесь $$k$$ - разрядность частного.
Модуль преобразования из прямого в дополнительный код делителя $$(-D)$$ на рис. 8.21 занимает бит-матрицу в пределах БП (1, 10)-(6, 13). Его топология существенно "деформирована" по сравнению с рис. 4.2 (см. раздел 4.1), что связано с принудительной инверсией знакового разряда.
Из приведенных данных видно: в модуле определения положения центра масс астроориентира на оси Х ( CMM ) в одном 214 -битном цикле выполняются:
Таким образом, физическая пропускная способность модуля определения положения центра масс астроориентира на оси Х ( CMM ) по потоку 32-битных слов-инструкций составляет$$V_I = [(2^{9}+2^{9})+(2^{9}+2^{9}+2^{9})+(2^{11}+2^{12}+ 2^{9}+2^{11})]*F_t /2^{14} \approx 2^{13}*F_{t} /2^{14} = 0,5 F_{t}.$$
Фактическая (пользовательская) пропускная способность этого операционного модуля приближается к нулю, так как за 214 тактов фактически исполняется только одна 7-битная операция деления над 32-битными операндами.
Дублирующий канал арифметической обработки включает те же модули и блоки обработки, что и основной. Несмотря на то что основные и дублирующие каналы разнесены на топологической схеме, они сконструированы таким образом, чтобы все их входы и выходы были идентичными по временам начальной задержки, что обеспечивается выбором FIFO -регистровых коммутирующих каналов.
Модуль контроля правильности работы логических устройств субпроцессора ( ICLM - рис. 8.22) осуществляет циклическое сравнение накопленных сумм в гистограммах первых двух строк обрабатываемого изображения, которые смешаны на входе по "ИЛИ" с потоком тест-данных.
(рис 8.21) Фрагменты топологической схемы делителя (DL)Он осуществляет контроль правильности работы всех логических блоков вплоть до модуля формирования построчных гистограмм включительно, где арифметические действия превалируют над логическими действиями. Модуль ICLM ( см. рис. 8.22) содержит:
Согласно схеме рис. 8.22, модуль ICLM не позволяет контролировать правильность работы входного интерфейса INS16, который работает параллельно до блока выделения тестовых строк SLC. При правильной работе контролируемой части субпроцессора накопленная сумма должна равняться 32, так как каждая из двух тестовых строк должна содержать 16 "единиц", которые отвечают правильной реакции медианного фильтра.
(рис 8.22) Структурная схема модуля контроля работы логических блоков субпроцессора слежения за "центром масс" факела (ICLM)Блок управления циклом сравнения CUICLM (БП (3, 1)-(6, 12) рис. 8.23) на выходе (4, 12, 2) периодически генерирует константу вида $$С_{2}^{14} 8$$, которая открывает доступ эталонному значению $$01111001$$ (БП (3, 11, 3) в блок сравнения, в котором хранится константа 79 ).
Блок сравнения занимает бит-матрицу (1, 10)-(2, 13) (см. рис. 8.23). Его функциональный выход имеет координату (2, 13, 4), на котором с задержкой 813 тактов формируется переменная 00000000, если реальная реакция субпроцессора е совпала в БП (2, 10) по XOR с эталонной и 8-битный операнд с обязательной "единицей" в старшем бите - в противном случае. Содержимое этого бита запоминается в БП (3, 13, 3) и служит признаком (не)правильной работы логического тракта субпроцессора слежения за "центром масс" астроориентира.
Правильной работе канала логической обработки отвечает "нулевая" реакция тестового модуля ICLM, а при обнаружении ошибки на этом
(рис 8.23) Топологическая схема модуля контроля работы логических блоков субпроцессора слежения за "центром масс" астроориентира (ICLM)выходе начиная с 813-го такта устанавливается "тождественная единица" на всех последующих 214 тактах.
Из приведенных данных видно, что в модуле контроля работы логических блоков ( ICLM ) в одном 214- битном цикле выполняются:
Таким образом, пропускная способность модуля контроля работы логических блоков ( ICLM ) по потоку 214-битных слов-инструкций составляет:$$V_{I} = [(2^{12}+2^{13})+(2^{11}+2^{11}+2^{11})+(2^{11}+2^{11})+(2^{11}+2^{14}+1+1)+(8+8)]*F_{t} /8+ [(1+1+1+1+3)]*F_{t} /2^{14} \approx 2^{15}*F_{t} /2^{14} \approx 2 F_{t}.$$
Контроль правильности работы арифметических каналов субпроцессора ( CAM ) осуществляется по классической фон-неймановской схеме двойного резервирования, которая гарантирует темп реального времени для задачи стопроцентного обнаружения одиночных отказов.
Поэтому, несмотря на большие аппаратные затраты, каналы из арифметических модулей SMM и CMM продублированы, а их выходы объединены тестовым модулем сравнения по XOR с последующим выделением признака результата сравнения, принимающим значение "ноль", если в субпроцессоре отсутствуют функционально значимые отказы аппаратуры, и значение "единица" в противном случае. Функциональный состав дублирующих модулей SMM d и CMM d идентичен основным, но их топологические схемы все же разнятся в некоторых деталях.
Канал определения центра масс на горизонтальной оси изображения аналогичен по функциям описанному каналу с той разницей, что обрабатываемое изображение подается на его входы в транспонированном виде.
Распределение слов-инструкций по операционным модулям МКМД-бит-потокового субпроцессора приведено в табл. 8.1, из данных которой видно:
| Тип Тип блока и Тип Количество слов-инструкций | ||||||
|---|---|---|---|---|---|---|
| модуля | размеры модуля | операнда | ОУ | Управление | Пересылки | Итого |
| INS16 | ICU1(16) | 8, 16 бит | - | 3 | 2 | 5 |
| INNS16 | 16 бит | 1 1 - | - 3 1 | 17 19 2 | 18 | |
| 3 18=54 БП | 8, 16 бит | 23 | ||||
| DTM | NG | 8 бит | 3 | |||
| SG | 8 бит | - | 1 | 1 | 2 | |
| CG | 8 бит | - | 5 | 6 | 11 | |
| TG | 8 бит | 2 | - | 2 | 4 | |
| ASU | 8 бит | 2 4 - - 25*8=120 2*8=16 136 - | - 7 - 26*8=208 - - 208 1 | 3 14 542 54*8=432 50*8=400 2*8=16 848 2 | 5 | |
| 3*24=72 БП | 8 бит | 25 | ||||
| SWM25 | 6*25=150 БП | 1 бит | 542 | |||
| MMF25 | CUADD1(8)) | 8 бит | 640 | |||
| ADD | 1 бит | 520 | ||||
| THU | 8 бит | 32 | ||||
| 3*8*28=672 БП | 1, 8 бит | 1192 | ||||
| CMZ 4(128) | NG | 8бит | 3 | |||
| CG | 8бит | - | 1 | 1 | 2 | |
| SG | 8бит | - | 1 | 3 | 4 | |
| AND | 8бит | 1 | - | 3 | 4 | |
| LHM | ADDA | 2-16 бит | 15 | 4 | 30 10 9 | 49 |
| CADDA16(128) | 8, 16 бит | - | 7 | 17 | ||
| DWH | 16 бит | 1 | - | 10 | ||
| SMM | 4*28=112 БП ML | 2-16 бит 128 бит | 16 1 | 11 1 | 49 1 | 76 3 |
| WGU | 16,128 бит | 1 | 1 | 1 | 3 | |
| CCU1(128) | 8,128 бит | - | 20 | 68 | 88 | |
| ADDRV32 | 128 бит | 3 | - | 3 | 6 | |
| CADDR32 | 8, 32, 128 бит | - | 28 | 48 | 76 | |
| ADDRH32 | 128 бит | 3 | - | 3 | 6 | |
| DWHCU | 128 бит | 1 9 9 | - 50 50 | 1 125 125 | 2 | |
| 24*13=312 БП | 8, 32, 128 бит | 184 | ||||
| SMM_{d} | 24*13=312 БП | 8, 32, 128 бит | 184 | |||
| CMM | DL | 32 бита 1 - | 1 | 2 | ||
| DCC | 32 бита 2 - | 1 | 3 | |||
| CG | 8, 32 бит | -5 35 3 | 3 5 5 1 | 8 | ||
| 8*62=496 БП | 8, 32 бит | 13 | ||||
| CMM_{d} | 8*62=496 БП | 8, 32 бит | 13 | |||
| ICLM | CUICLM | 8 бит | - | 1 | 2 | |
| SRP | 8 бит | - | 2 | 2 | 4 | |
| SLC | 8-1 1 | 2 | ||||
| CMPR | 1 кадр | 10 | - | 10 14 1755 | 20 | |
| 6*13=78 БП 2776 БП | 8 бит, 1 кадр | 10 4 | 28 | |||
| Итого | 192 346 | 2293 | ||||
На основе приведенных данных можно утверждать:
Наиболее четко данный эффект проявился в модулях "
Основной вклад в аппаратные затраты и в повышение пропускной способности (производительности) МКМД-бит-потоковых субпроцессоров вносят массовые операции управления и (сверх)массо-вые пересылки управляющих и преобразуемых операндов, которые составляют соответственно 15,1 % и 76,54 %, в то время как арифметико-логические операции составляют всего лишь 8,36 % от общего количества операций (см. табл. 8.1).
Качество работы МКМД-бит-потокового субпроцессора слежения за "центром масс" астроориентира оценим по четырем основным показателям: пропускной способности по
Согласно данным предыдущего раздела, средневзвешенная по разрядности потоковая производительность МКМД-бит-потокового субпроцессора слежения за "центром масс" астроориентира с учетом дублирующих модулей SMM d и CMM d составляет: $$V_{I}(субпроцессора) = V _{I}(INNS16) + V_{I}(DTM) + V_{I}(SWM25) + V_{I}(MMF25) + V_{I}(CMZ 4(128)) + V_{I}(LHM) + 2*V_{I}(SMM) + 2*V_{I}(CMM) + V_{I}(ICLM) = (1,4375 + 3,125 + 542 + 159 + 1,75 + 4,75 + 2*1,4375 + 2*0,5 +2)*F_{t} \approx 718*F_{t}$$.
Отсюда следует: при комплектации МКМД-бит-потоковых субпроцессоров слежения за "центром масс" астроориентира отечественными СБИС Н1841 ВФ1, работающими на тактовой частоте 5*106 Гц, достигается потоковая производительность порядка 3,6*103 MIPS, в которую решающий вклад вносят модули "
В отличие от RISC -архитектур, в МКМД-бит-потоковых субпроцессорах цикл исполнения каждой ассемблерной слов-инструкции зависит от разрядности данных, которая в нашем случае варьирует по ходу вычислений в достаточно широких пределах от 1 до 128 бит. Тем не менее цикл исполнения всех слов-инструкций остается постоянным и согласованным друг с другом благодаря использованию требуемого коэффициента векторизации, поддерживающего единый темп обработки по всему макроконвейеру из 11 специализированных процессоров RISC -подобной архитектуры.
Использование варьируемого коэффициента векторизации приводит к тому, что пропускная способность по потокам данных падает по мере их распространения по операционным модулям субпроцессора, в данном случае от 25 $$F_{t}$$ в модуле "
Приведенные значения пропускной способности по
Полученные численные значения позволяют утверждать:
В вычислительной технике [227] принято считать вычислительный процесс устойчивым, если абсолютная или относительная погрешность вычислений не превосходит соответствующей погрешности представления исходных данных.
С таких позиций выполняемые ЭВМ арифметико-логические действия над данными не должны вносить дополнительных погрешностей по отношению к погрешности представления, которая появляется не в самой ЭВМ, а на ее входе.
Основным источником погрешностей в цифровой вычислительной технике является ограниченная разрядная сетка передаваемых и преобразуемых операндов, что обусловлено ограниченной разрядностью регистров временного хранения, аккумуляторов и шин передачи данных. В инженерной практике принято считать, что максимальная
Среди арифметико-логических операций основной вклад в
Формат плавающей запятой является компромиссом между необходимостью обеспечения высокой точности вычислений (разрядность мантиссы) в широком динамическом диапазоне изменения преобразуемых величин (разрядность порядка). С точки зрения сохранения вычислительной устойчивости только варьируемый по ходу вычислений формат
Как видно из данных предыдущего раздела, в МКМД-бит-потоковом субпроцессоре слежения за "центром масс" астроориентира все арифметико-логические действия выполняются с требуемой на данном этапе вычислений точностью, то есть с нулевой
Так, в модуле формирования построчной гистограммы обрабатываемого изображения ( LHM ) без потери темпа реального времени осуществлен переход от однобитных к 16-битным операндам, в которых только 7 младших бит могут быть значащими, так как после медианной фильтрации накопленная сумма "единиц" не может превышать значения 124.
Аналогично в модуле "свертки" ( SMM ) при умножении операндов разрядность удвоена и доведена до 32 бит, что сохраняет и все биты произведения, и все биты накапливаемой впоследствии суммы. Такое увеличение разрядной сетки без потери темпа реального времени оказалось возможным потому, что в модуле LHM один выходной операнд вырабатывается на каждую строку обрабатываемого изображения, длина которой равна 128 бит, а в модуле свертки SMM оба выходных операнда вырабатываются на один кадр обрабатываемого изображения, "длина" которого равна 16384 битам. В данном случае именно размеры строки и кадра регламентируют минимальную погрешность промежуточных и окончательных результатов, соответственно 2-128 и 2-16384. Тем не менее, результат деления представлен операндом из 7 значащих бит, так как координата "центра масс" астроориентира на изображении 128*128 пикселей не выходит за пределы этой разрядной сетки.
Таким образом, можно утверждать, что МКМД-бит-потоковый субпроцессор слежения за "центром масс" астроориентира является вычислительно устойчивым и не вносит дополнительных погрешностей в общий тракт обработки видеосигналов.
Единственное негативное последствие использования МКМД-бит-потоковой вычислительной технологии в тракте управления (К)ЛА - это ощутимое время задержки, которое на 8 % превосходит время формирования, а значит, и время обработки любыми другими вычислительными средствами 1 кадра входного видеоизображения. Однако эти издержки можно минимизировать, повысив частоту формирования и обработки исходного видеоизображения до 100-1000 кадров/с, для чего имеется временной запас при использовании бит-матричных СБИС, работающих на тактовой частоте 250 МГц.
Отказоустойчивость МКМД-бит-потокового субпроцессора слежения за "центром масс" астроориентира будет проведена раздельно для подсистемы обнаружения и подсистемы парирования отказов.
Из приведенных в предыдущем разделе данных видно, что в темпе реального времени функциональный контроль работоспособности субпроцессора слежения за "центром масс" астроориентира осуществляется двумя способами:
В данной схеме использован не сверхнадежный, а равнонадежный
Главная специфика функционального контроля состоит в том, что с его помощью вырабатываются тестовые реакции не на все, а только на функционально значимые отказы, которые проявляются в содержимом промежуточных или окончательных результатов вычислений. По сравнению с прямым аппаратным резервированием, выполненным на уровне узлов каждого БП, такая схема обнаружения отказов обладает меньшим уровнем "
Отсюда встает задача оценки среднего количества реально существующих, но тем не менее "индифферентных" по отношению к решаемой задаче аппаратных отказов. Для получения такой оценки используем схему декомпозиции, рассмотренную в разделе 6.4 (см. рис. 6.48 и 6.49), согласно которой поток-оператор слежения за "центром масс" астроори-ентира разбивается на составляющие слов-инструкции, которые и служат объектом диагностики.
Цель исследований - определить
Из приведенной в предыдущем разделе структурно-функциональной схемы субпроцессора видно, что для исследования его устойчивости к индифферентным отказам достаточно оценить отказоустойчивость следующих слов-инструкций (рис. 8.24):
Тестовая последовательность для каждой слов-инструкции выбиралась по методике, изложенной в разделе 6.4, и по критерию максимально полного обнаружения отказов в исследуемом функциональном модуле.
Здесь $$Р$$ - вероятность сохранения работоспособности; $$N$$ - количество одновременных отказов вентилей в теле слов-инструкции;1 - кривая для генераторов циклических констант и медианного фильтра, 2 - для умножителя, 3 - для делителя и преобразователя из прямого кода в дополнительный, 4 - для сумматора-накопителя.
Из приведенных данных видно, что в 40 % случаев система обеспечения живучести МКМД-бит-потоковых субпроцессоров "поднимает тревогу", прерывает функциональную обработку и включается в работу только тогда, когда классическая схема мажоритарного резервирования фон Неймана уже исчерпала свой 3-кратный аппаратный ресурс.
Сопоставив графики рис. 8.24 и топологические схемы отвечающих им операционных блоков, можно убедиться: чем более "рыхлая" структура микропрограммы, тем выше ее нечувствительность к отказам. Объясняется это тем, что в более "рыхлых" топологиях ресурсы БП используются по
минимуму и неравномерно, что предопределено МКМД-режимом
(рис 8.24) Вероятность сохранения работоспособности слов-инструкцийПоэтому "рыхлость" их топологии в данном случае можно охарактеризовать тремя показателями:
В результате проведенных исследований подтвердилась применимость соотношения (3.5), которое предполагает, что вероятность сохранения работоспособности при $$k$$ отказах равна вероятности сохранения работоспособности при одном отказе в степени $$k$$. Более того, оказалось, что вероятность сохранения работоспособности операционных модулей, реализующих конкретные слов-инструкции, можно оценить как сумму (по составляющим термам) произведений вероятности сохранения работоспособности терма и вероятности попадания отказа в этот терм.
Наиболее наглядно это можно показать на примере умножителя, микропрограмма которого приведена на рис. 8.25. Здесь практически все столбцы бит-матрицы однородны по своей структуре, а вероятность сохранения работоспособности БП из каждой строки (при одном неисправном вентиле) равна:
При равновероятной гипотезе отказ 1 вентиля в БП любой из четырех строк одного столбца $$p_{v} = 1/4 = 0,25$$. Поэтому общая вероятность сохранения работоспособности умножителя при одном отказавшем вентиле $$p(ML) = 0,25*0,804 + 0,25*0,668 + 0,25*0,72 + 0,25*0,663 = 0,71375$$.
На графике 2 рис. 8.24 этот показатель находится на уровне 0,718, что всего лишь на 0,4 % выше расчетного. Такое расхождение можно объяснить некоторым неравномерным распределением функциональной нагрузки между БП, которые принадлежат разным термам (столбцам бит-матрицы рис. 8.25). Например, БП с координатами (4, 2) фактически выполняет операцию транзита, так как второй операнд в реализуемой им бит-инструкции ADD всегда равен нулю. Поэтому отказ типа "тождественный ноль" во втором входном коммутаторе канала АЛУ БП практически не влияет на выполнение им функции ADD, что и повышает его работоспособность по сравнению с соседями в этой строке.
(рис 8.25) Микропрограмма конвейерного умножителяПриемлемое для инженерной практики совпадение теоретических и экспериментальных данных позволяет распространить соотношение (3.5) на все уровни иерархии имитационного моделирования. Это кардинальным образом снижает затраты на оценку работоспособности МКМД-бит-потоковых субпроцессоров, которую можно осуществить достаточно достоверно и полно, не прибегая к анализу полного
Только МКМД-бит-потоковым субпроцессорам свойственно повышение работоспособности с ростом уровня иерархии в организации вычислительного процесса, что является следствием реализации принципа "одна (бит)инструкция - один (бит)процессор", который поддерживается на всех уровнях организации вычислений. В результате с ростом уровня иерархии возрастает и естественная структурно-функциональная избыточность субпроцессоров, которая на уровне бит-матриц уже поддерживается не только недоиспользованием коммутационных и операционных возможностей отдельных БП, но и полным их неиспользованием в топологии микропрограмм. По этой причине даже при пяти отказах вентилей, распределенных по матрице по равномерному закону, вероятность сохранения работоспособности субпроцессора слежения за "центром масс" астроориентира оказывается на уровне 0,5 (рис. 8.26).
Для сравнения, даже в лучшей из составляющих субпроцессор поток-инструкции медианной фильтрации (кривая 1 рис. 8.25) такой уровень работоспособности достижим только при трех индифферентных отказах.
Вторая важная характеристика подсистемы обнаружения отказов - это ее латентный период (буквально - период мнимого благополучия), который отсчитывается от момента появления отказа и до момента появления тестовой реакции на периферии бит-матрицы. Согласно схеме рис. 8.5 и приведенным топологическим схемам модулей, в МКМД-бит-потоковом субпроцессоре применена комбинированная схема контроля правильности работы, в которой максимальным латентным периодом обладает модуль ICLM, осуществляющий периодическую диагностику логических модулей субпроцессора на основе замещения текущих данных тест-данными, которые занимают 2 верхние и 2 нижние строки изображения. Общая задержка на выходе модуля ICLM составляет 813 тактов. Отказ в худшем случае может появиться на следующем такте после проведения периодического контроля. Поэтому временные издержки использованного метода контроля составляют $$2^{14}-128*4 = 16 384-512 = 15 872$$ такта. Технологические временные издержки, связанные с передачей тестовой реакции от выхода модуля ICLM и до периферии бит-матрицы, в данном случае невелики и составляют всего 9 тактов.
(рис 8.26) Вероятность сохранения работоспособности субпроцессора слежения за "центром масс" астроориентираТаким образом, латентный период подсистемы обнаружения отказов в МКМД-бит-потоковом субпроцессоре слежения за "центром масс" астроориентира составляет 16694 тактов, и он всего лишь в 1,02 раза превосходит цикл формирования и обработки 1 кадра обрабатываемого изображения. Тем не менее, вычисленные координаты необходимо задержать в буфере обмена данными с БЦВМ САУ (см. рис. 8.2 и 8.4) еще на 2 кадра обрабатываемого изображения, чтобы гарантировать отказобезопасность проведения сложных маневров боевых ЛА в группе, при посадке в сложных метеоусловиях и т. п.
Еще больший вклад в повышение отказоустойчивости МКМД-бит-потоковых субпроцессоров вносит подсистема парирования карт отказов, которая обеспечивает толерантное (пере)размещение микропрограммы поток-оператора на бит-матрице. Модельным экспериментом показано, что при реализации в подсистеме парирования отказов функций простейших сдвигов и растяжений достаточно крупных блоков микропрограммы становится возможным обеспечить работоспособность субпроцессора "в среднем" при 17 отказах бит-процессоров и 38%-ном резерве.
Ограничение на использование только простейших аффинных преобразований введено для сохранения темпа реального времени при их выборе и реализации. Более того, перемещаемые фрагменты микропрограмм были выбраны по критерию минимума информационных FIFO -регистровых связей, что соответствует разбиению всего поток-оператора на составляющие модули рис. 8.5 и что снижает временные затраты на редактирование связей между "подвижными" и "неподвижными" фрагментами микропрограммы. В результате основным "пожирателем" аппаратного резерва оказался модуль медианной фильтрации MMF25, который среди всех модулей занимает максимальную площадь бит-матрицы (24*28 = 672 БП) и к тому же обладает максимальной однородностью, как по строкам, так и по столбцам микропрограммы. В результате сдвиг микропрограммы этого модуля (см. рис. 8.13) по столбцам практически не изменяет требований к бит-инструкциям, реализуемым ка ждым БП, а при сдвиге по строкам эти требования воспроизводятся с циклом 3, так как каждый из 8 однородных составляющих блоков занимает три строки бит-матрицы. Таким образом, показано:
Учитывая тот факт, что в процессе работы субпроцессора накапливается существенная индифферентная карта отказов, тестировать необходимо всю бит-матрицу, а не отдельные ее части. Объясняется это тем, что для принятия правильного решения о толерантном (пере)размещении рабочего тела микропрограммы необходимо знать всю действующую карту отказов, так как при таком (пере)размещении изменяются требования к бит-процессорам, что может перевести любой отказ из индифферентного в функционально значимый.
Проведенный анализ основных потребительских характеристик МКМД-бит-потокового субпроцессора слежения за "центром масс" астроориентира показал:
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.