Программно-аппаратные платформы и вычислительные наноструктуры

Оценка производительности и живучести МКМД-БИТ-потокового предпроцессора системы астронавигации

Разбить на страницы
Показывать лекцию целиком

8.1. Описание предметной области и системы преобразований МКМД-бит-потокового субпроцессора слежения за "центром масс" астроориентира

В основе решения задач автоматической астронавигации лежит определение пространственного положения линии визирования от космического летательного аппарата (КЛА) до центра некоторой "неподвижной" яркой звезды, используемой в качестве астроориентира. В идеале с помощью обработки бинарного видеоизображения звездного пространства можно достаточно четко "провести" линию визирования до центра астроориентира (рис. 8.1-а). Однако в звездном пространстве существуют не только астроориентиры, но и мириады звезд (рис. 8.1-б), которые для алгоритма обработки бинарного изображения представляют собой "точечную" помеху, способную сместить вычисленный "центр масс" даже очень крупного астроориентира. Такого рода помехи наиболее эффективно фильтруются медианным фильтром (см. раздел 4.5 [290]), апертура которого должна более чем в два раза превышать площадь каждой яркой звезды, бли зко примыкающей в пространстве к астроориентиру.

Для решения такого рода задач на борту КЛА необходимо иметь видеокамеры (желательно по одной на астроориентир, чтобы жестко связать их положение с осями КЛА), которые формируют бинарные (черно-белые) изображения требуемого участка звездного пространства. Апертура таких видеокамер не должна быть очень большой (не более 128*128 пикселей), чтобы за счет малого "угла зрения" снизить паразитные влияния остальных звезд.

Частота определения собственного положения в пространстве КЛА невелика, как невелика и сложность задачи обработки такого изображения. Поэтому современные ЦПОС способны справиться с решением в реальном времени подобного рода задач. Однако высочайшая ответственность за успех космической экспедиции и достаточно продолжительное негативное влияние на (Б)ВС жестких космических излучений и других внешних воздействующих факторов выдвигают на первый план требование к (сверх)высокой живучести вычислительных комплексов, отвечающих за решение задач астронавигации, а значит, и за эффективность автономного управления полетом КЛА.

  • определение "центра масс" после медианной фильтрации интенсивной "точечной" помехи
  • ошибка определения "центра масс" при наличии интенсивной "точечной" помехи
  • (рис 8.1) Влияние звездного пространства на точность визирования "центра масс" астроориентира

    Аналогичные задачи решаются при посадке ЛА в плохих погодных условиях на подвижное основание, при дозаправке в воздухе группы самолетов и т. д. Но здесь уже требуются как (сверх)высокая (109-1012 оп/ сек) производительность, так и (сверх)высокая отказоустойчивость при выполнении особо сложных маневров, сопряженных с опасностью потери ЛА или гибелью экипажей.

    Задачи, решаемые такими пассивными системами микро- и астронавигации, содержат достаточно полный набор функций (слов-инструкций), который можно рассматривать как представительную смесь, объективно

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

    Таким образом, в субпроцессором тракте (Б)ВС КЛА требуется решить в реальном времени следующие задачи:

  • медианную фильтрацию кадров для устранения "точечных" помех, отвечающих "скользящему окну" размером 5x5 пикселей;
  • нахождение "центра масс" для каждого из 5-10 астроориентиров;
  • определение рассогласования между текущим направлением движения и заданным;
  • формирование сигналов управления.
  • Ориентированный на решение перечисленных задач субпроцессорный тракт (Б)ВС КЛА должен иметь пред- и сопроцессор, на первый из которых возлагаются первые две задачи, а на второй - последние. Покажем, что основное достоинство такой схемы построения отечественных (Б)ВС состоит в том, что при этом повышается не только производительность, но и вычислительная устойчивость, устойчивость к отказам, а с ними и отказобезопасность всего БЭО отечественных (К)ЛА.

    При разработке МКМД-бит-потокового предпроцессора слежения за "центром масс" астроориентира будем считать, что исходное видеоизображение имеет размеры 128x128 черно-белых пикселей $$x_{ij}\in\{0,1\} (i, j = \overline{1,128})$$. Такие размеры обрабатываемого видеоизображения обеспечивают приемлемую угловую избирательность порядка 10о-15о, которая, с одной стороны, снижает влияние естественных и искусственных видеопомех, а с другой стороны - обеспечивает достаточно высокую точность определения угловых координат "центра масс" астроориентира порядка 0,08о-0,12о. Вычисленные линейные координаты "центра масс" фигуры, идентифицированной как астроориентир, по отношению к центру плоского (двумерного) черно-белого изображения, должны быть жестко связаны с продольной и другими осями (К)ЛА, по отношению к которым и вырабатываются управляющие воздействия извне и со стороны собственной системы автоматического управления (САУ). При этом система обеспечения живучести субпроцессора должна обнаружить в темпе реального времени все функционально значимые отказы аппаратуры.

    Структурно-функциональная схема канала обработки астронавигационной информации приведена на рис. 8.2, а укрупненный алгоритм его работы имеет вид:

  • Обработать изображение $$\{х_{ij}\}$$ медианным фильтром со скользящим окном размером 5x5 пикселей. В результате получим изображение $$y_{rc} = med_{5\times 5}\{ x_{ij}\}^{rc}$$, в котором индексы $$r$$, $$c$$ соответствуют положению центрального элемента "скользящего окна" и связаны с индексами $$i$$, $$j$$ строк и столбцов исходного изображения правилом $$r = i_1+2$$, а $$c = j_{1}+2$$, где $$i_{1}, j_{1}$$ - координаты левого верхнего угла "скользящего окна".
  • Подавить паразитные взаимодействия элементов "скользящего окна" при его переходе со строки на строку:$$y_{rc} = \begin{cases} y_{rc}, \text{ если } 2 < c < 127, \\ 0, \text{ если } c \ge 2, c \ge 127. \end{cases}$$
  • Составить гистограмму по строкам $$\{y_{r}\}$$, где$$y_r = \sum\limits_{}^{128}y_{rc}$$
  • Обработать гистограмму двухэлементным скользящим окном$$a_{r} = (y_r + y_{r+1})/2$$
  • Обнулить паразитные взаимодействия в двухэлементном "скользящем окне" при переходе от одного кадра обрабатываемого изображения к другому:$$a_{rc} = \begin{cases} a_{r}, \text{ если } r > 1, \\ 0, \text{ если } r = 1. \end{cases}$$ (рис 8.2) Структурно-функциональная схема видеоканала
  • Выполнить свертку вектор-столбца $$\{a_r\}$$ по правилу$$a_r^* = \sum\limits_{r=1}^{127}(a_r\cdot r)$$
  • Вычислить суммарную яркость обрабатываемого изображения:$$a_r^{\sim} = \sum\limits_{r=1}^{127}a_r$$
  • Определить координату $$x^0_p$$ центра масс изображения по отношению к его верхнему левому углу: $$х_{p}^0 =a_{r}^*/a^{\sim}_r$$, где $$p$$ - номер фотоприемника, для которого найдена координата.
  • Для вычисления координаты $$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)$$, так и при обработке изображений от каждого из пяти фотоприемников.

    8.2. Потоковый алгоритм работы МКМД-бит-потокового субпроцессора слежения за центром масс астроориентира

    Все рассмотренные процедуры работы канала обработки видеоизображения необходимо привести к потоковому виду, который учитывает как "непрерывность" потока входных и выходных данных, так и специфику работы МКМД-бит-потоковых субпроцессоров, которая связана с тем, что каждая потоковая слов-инструкция пользователя интерпретируется МКМД-бит-процессорной матрицей. Поэтому ее необходимо сопроводить индивидуальными средствами управления, задающими и реализующими циклы $$for(\overline{1, n})$$ и $$for(\overline{ 1, N})$$, где $$n$$ и $$N$$ - соответственно разрядность арифметики и количество операндов в циклически обрабатываемых потоках данных. В результате на ассемблерном уровне организации вычислений выдерживается принцип "одна инструкция - один процессор", который в каждой ассемблерной команде поддерживается своими специфическими входными и выходными интерфейсами, устройствами управления и обработки. С целью повышения отказоустойчивости и отказобезопасности МКМД-бит-потокового субпроцессорного тракта обработки видеоизображений необходимо выбрать и включить в него процедуры генерации избыточных данных и устройств обнаружения отказов темпа реального времени. В результате потоковый алгоритм работы такого многопроцессорного устройства принимает вид:

    Шаг 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) Расположение тест-данных на исходном изображении

    Чтобы осуществить замещение двух верхних и двух нижних строк исходного изображения тест-данными, необходимо:

  • реализовать цикл $$For(i) = \overline{1,16634},$$ который определяется размерами обрабатываемого изображения 128*128 однобитных пикселей;
  • реализовать цикл $$For(i) = \overline{1,512}$$, который определяется размерами 4-х тестовых строк;
  • реализовать циклическую константу вида $$11111000…11111000…$$, которая подставляется вместо текущих во время одного цикла $$For(i) = \overline{1,512}$$ ;
  • задать начальную фазу поступления входных данных таким образом, чтобы цикл $$For(i) = \overline{1,512}$$ совместился с двумя нижними и двумя верхними строками обрабатываемого изображения.
  • Шаг 3. Обработать полученное изображение медианным фильтром размером 5*5 пикселей: $$\tilde{x}_{rc} := med_{5\times 5}\{x_{\hat{i},\hat{j}}\}^{гс}$$. Здесь:

  • $$\hat{i},\hat{j} = \overline{1,5}$$ - индексы элементов, соответствующие одному положению "скользящего окна";
  • индексы $$r, с$$ соответствуют центральному элементу "скользящего окна" размером 5*5 пикселей, и они связаны с индексами строк и столбцов исходного изображения $$i, j$$ правилом: $$r = i_1 + 2$$, а $$c = j_{1} + 2 $$, где $$i_1, j_{1}$$ - координаты левого верхнего угла "скользящего окна".
  • В МКМД-бит-потоковых технологиях процедура "скольжения" окна размером 5*5 пикселей реализуется с помощью FIFO -регистровой линии задержки, имеющей 1 вход и 25 выходов, на которых одновременно появляются все элементы, соответствующие текущему положению "скользящего окна". Фактически такая линия^ задержки реализует 5 вложенных циклов: $$For(k,For(j,For(i,For(\hat{j},For(\hat{i})))))$$,где $$k=\overline{1,\infty}$$ ; $$j=\overline{1,128}$$ ; $$i=\overline{1,128}$$ ; $$\hat{j}=\overline{1,5}$$ ; $$\hat{i}=\overline{1,5}$$.

    Обычно медианная фильтрация выполняется через две логические процедуры:

  • упорядочение элементов $$x_{\hat{i},\hat{j}} \in \{x_{\hat{i},\hat{j}}\}^{rc}$$ по возрастанию;
  • присвоение $$\tilde{x}_{rc} :=med_{5\times 5} \{x_{\hat{i},\hat{j}}\}^{rc}$$, которое соответствует выбору центрального элемента в упорядоченной последовательности $$\{x_{\hat{i},\hat{j}}\}^{rc}$$.
  • Но в данном случае мы имеем дело с бинарным изображением, и поэтому медианную фильтрацию можно выполнить через две арифметико-логические процедуры:

    $$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). Поэтому приходится:

  • разделять поток входных бит-данных сначала на два потока, в один из которых попадают все четные, а в другой - все нечетные биты из суммируемого потока;
  • выравнивать по времени задержки на 1 такт и суммировать четные и нечетные биты одного и того же входного потока;
  • разбивать поток 2-битных частных сумм на два потока - четный и нечетный, и, выровняв их по времени задержки на 2 такта, суммировать и т. д. до получения промежуточного операнда, разрядность которого обеспечивает накопление всей суммы;
  • сложение частных сумм по классической схеме с накапливающим аккумулятором.
  • Для суммирования по этой схеме необходимо реализовать (в данном случае) 6 вложенных циклов: $$For(с_{128}, For(с_{32}, For(с_{16}, For(с_{8}, For(с, For(с_{2}))))))$$, из которых 5 нижних используются для формирования 32-битных операндов, обеспечивающих нулевую погрешность вычислений взвешенных сумм в последующих процедурах, а $$с_{128} = \overline{1,128}$$ ; $$с_{32} = \overline{1,32}$$ ; $$с_{16} = \overline{1,16}$$ ; $$с_{8} = \overline{1,8}$$ ; $$с_{4} = \overline{1,4}$$ ; $$с_{2} = \overline{1,2}$$.

    Шаг 4. Обнулить реакцию медианного фильтра на паразитные взаимодействия элементов "скользящего окна" при его переходе со строки на строку (со столбца на столбец):

    $$y_{rc} =y_{rc }\bigwedge\limits_{r=1}^{128}{d_r},$$

    где $$d_r = 1$$, если $$1< r< 127$$, и $$d_r = 1$$ в противном случае.

    Для выполнения этого шага потокового алгоритма необходимо:

  • задать цикл обработки строки $$For(r) = \overline{1,128}$$ ;
  • сформировать циклическую константу вида: 4 бита - "нули" и остальные 124 бита - "единицы".
  • Шаг 5. Составить гистограммы по строкам $$\{y_{r}\}$$ или по столбцам $$\{y_{c}\}$$,

    где$$y_{r} = \sum\limits_{c=1}^{124}{ y_{rc }},$$ а $$y_{с} = \sum\limits_{c=1}^{124}{ y_{rc }}$$

    Для реализации этих выражений необходимо:

  • задать цикл обработки строки $$For(r) = \overline{1,16384}$$ ;
  • сформировать циклическую константу вида: 32 "единицы" и 32 "нуля";
  • сформировать циклическую константу вида: 32 бита - "единицы" и 16352 бита - "нули", а также ее инверсию для управления циклом накопления.
  • Шаг 6. Обработать полученные гистограммы 2-элементным "скользящим окном": $$a_{r} = (y_{r} + y_{r+1})/2$$ или $$a = (y_{c} + y_{c+1})/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.3. Система МКМД-бит-потоковых слов-инструкций поток-оператора слежения за центром масс астроориентира и их топология

    Укрупненная функциональная схема МКМД-бит-потокового субпроцессора слежения за "центром масс" астроориентира имеет вид рис. 8.4, и она определяет место этого субпроцессора во всем тракте управления угловыми координатами при полете группы ЛА сомкнутым строем.

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

    Из этой схемы следует:

  • Данный субпроцессор является предпроцессором, и его системное назначение состоит в том, чтобы обеспечить высокую живучесть модуля сопряжения высокоскоростных источников сигналов с центральной частью БВС, работающей в контуре САУ.
  • Он выполнит свое функциональное назначение, если осуществит "семантическое" сжатие потоков входных данных и снизит их интенсивность с 2 457 600 бит/сек до 2.400 бит/сек. Первая из этих цифр задается 5 видеокамерами (5*30 кадров/сек*128*128пикселей = 2457600), а вторая определяется скоростью передачи в центральную часть БВС десяти 8-битных координат "центра масс" астроориенти-ров, вычисленных по каждому кадру обрабатываемого изображения. Согласно приведенному выше алгоритму работы, в МКМД-бит-потоковом предпроцессоре определения "центра масс" астроориентира можно выделить следующие функциональные модули (рис. 8.5):
  • модуль параллельно-последовательного 16-битного интерфейса данных (INS16);
  • модуль циклической генерации тест данных (DTM);
  • модуль "скользящего окна" размером 5*5пикселей (SWM25);
  • модуль медианной фильтрации бинарного изображения (MMF25);
  • модуль формирования построчных гистограмм отфильтрованного бинарного изображения и их циклического сглаживания 2-элементным "скользящим окном" (LHM);
  • модуль "свертки" вектор-столбца построчной гистограммы отфильтрованного изображения (SMM);
  • модуль определения положения центра масс астроориентира на оси Х (CMM);
  • модуль контроля правильности работы логических устройств субпроцессора (ICLM);
  • модуль контроля правильности работы арифметических каналов субпроцессора (CAM).
  • В каждом из перечисленных модулей аппаратурный ресурс расходуется на некоторое множество операционных, управляющих, коммутационных или диагностических функций, как правило, различного формата и разной разрядности.

    (рис 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 тактов. Здесь и далее используется следующая система обозначений БП и их входов-выходов:

  • первые две цифры в скобках соответствуют номеру строки и столбца бит-матрицы, отсчитанные от левого верхнего угла;
  • третья цифра идентифицирует номер входа-выхода по правилу: слева - 1, сверху - 2, справа - 3, снизу - 4.
  • Строб "чтение" $$C_{16}1$$ формируется управляющим модулем ICU1(16), который расположен на БП 17-го и 18-го столбцов бит-матрицы рис. 8.7. В этом модуле функции задающего генератора $$C_{8}1 = 00000001…00000001$$ выполняет БП (3, 18), который настроен на бит-инструкцию CG, в "теле" которой и размещена 8-битная константа $$C_{8}1$$ со сдвигом влево на 2 бита (в шестнадцатеричном виде она записывается как 04 ). Далее эта циклическая константа проходит через триггер со счетным входом ( Т -триггер), собранный на БП (2, 17) и (3, 17). Функциональный выход модуля ICU1(16) расположен в БП (2, 18, 2), который настроен на бит-инструкцию AND. Реальный, топологический выход модуля ICU1(16) расположен в БП (1, 17, 1).

    Из приведенных данных видно, что на каждом 16-битном цикле работы входного интерфейса:

  • в модуле ICU1(16) реализуются две 8-битные слов-инструкции генерации константы $$C_{8}1$$, одна 16-битная слов-инструкция генерации константы $$C_{16}1$$ и две операции пересылки этих констант;
  • в модуле INNS16 реализуются 16 пересылок константы $$C_{16}1$$, одна 16-битная AND и одна 16-битная FIFO-регистровая пересылка выходного операнда;
  • из 23 реально исполняемых в режиме интерпретации слов-инструкций полезной для пользователя является только одна 16-битная FIFO-регистровая пересылка выходного операнда.
  • Таким образом, пропускная способность входного интерфейса составляет по потоку 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):

  • задающий генератор (NG) циклической константы $$C_{8}1:= 0000.0001$$ (БП (2, 24)), который настроен на бит-инструкцию CG, в "теле" которой и размещена 8-битная константа $$C_{8}1$$ со сдвигом влево на 4 бита, что в шестнадцатеричном виде записывается как 10;
  • генератор цикла (CG) в виде делителя на 211 исходной частоты, который занимает две верхние строки бит-матрицы начиная с третьего столбца и задает цикл генерации тест-данных, равный размеру 1 кадра, обрабатываемого в последовательном коде (всего 214 тактов);(рис 8.8) Структурная схема модуля генерации тест-данных (DTM)
  • таймер продолжительности тест-данных (SG), который формирует циклическую константу из 29 "единиц" и такого же количества "нулей" и который реализован БП верхних двух строк начиная с 11 столбца.
  • На выходе блока управления генерацией тест данных формируется циклическая константа из 29 "единиц" и (214-29) "нулей". Функциональный выход этого блока расположен в БП (3, 11, 1), а реальный, топологический - в БП (3,2,1).

    Как видно из рис. 8.9, делитель и таймер совмещены по аппаратуре и представляют собой счетчики из Т -триггеров, каждый из которых занимает бит-матрицу 2*2 БП.

    Генератор тест-данных $$С_{8}5:=00011111$$ реализован на БП (1, 1), который выполняет бит-инструкцию CG. В теле этой бит-инструкции хранится данная циклическая константа, которая в шестнадцатеричном виде со смещением на 1 такт влево имеет вид $$3Е = 00111110$$.

    В блоке слияния потоков реальных и тестовых данных (БП первых двух столбцов рис. 8.9) управляющий сигнал из 29 "единиц" и (214-29) "нулей" сначала открывает на 29 тактов выход генератора тест-данных (БП (2, 1, 4)), а затем на (214-29) тактов - выход параллельно-последовательного интерфейса (БП (4, 2, 2)).

    (рис 8.9) Топологическая схема модуля генерации тест-данных (DTM)

    Чтобы совместить поток тест-данных с двумя верхними и двумя нижними строками каждого кадра обрабатываемого изображения, необходимо подобрать начальную задержку в блоке управления, которая регулируется расстановкой бит-инструкций AND или NAND в БП 1-й строки. Эти бит-инструкции определяют время задержки на распространение "единицы" из предыдущего Т -триггера в последующий. В данном случае задержка составляет 36 тактов и она предполагает, что входной интерфейс поток-процессора начал свою работу с задержкой на 256 тактов по отношению ко времени начала работы всей бит-матрицы.

    Из приведенных данных видно, что на каждом 8-битном цикле работы генератора тест-данных ( DTM ) выполняются:

  • в задающем генераторе NG: 1 операция генерации циклической константы $$C_{8}1$$ и 2 пересылки;
  • в таймере продолжительности тест-данных SG: 1 операция формирования циклической константы из 29 "единиц" и такого же количества "нулей" и 1 пересылка;
  • в генераторе цикла CG: 4 операции слияния по "ИЛИ", 1 операция "И" и 6 пересылок, включая ветвление результирующего операнда между генератором тест-данных и вентилем управления входным потоком;
  • в генераторе тест-данных TG: 1 операция генерации циклической константы 3Е, 1 операция ее временной селекции AND и 2 пересылки;
  • в блоке слияния потоков ASU: 1 операция AND, 1операция OR и 3 операции пересылки.
  • Таким образом, пропускная способность генератора тест-данных по потоку 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 такт формируются биты, отвечающие одному положению "скользящего окна" на исходном изображении. Такая нарастающая на 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) присваивает каждому положению "скользящего окна" или, что одно и то же, его центральному элементу в результирующем изображении значение "единица", если суммарная площадь "единичных" пикселей превышает половину площади "скользящего окна". В нашем случае общая площадь "скользящего окна" равна 5*5 = 25 пикселей, поэтому центральному пикселю результирующего изображения присваивается значение "единица", если суммарная яркость пикселей в этом положении "скользящего окна" больше или равна 13, и присваивается значение "ноль" в противном случае.

    (рис 8.12) Структурная схема медианного фильтра (MMF25)

    Модуль MMF25 содержит 8 идентичных блоков, в которых осуществляется:

  • циклическое суммирование бинарных яркостей пикселей, принадлежащих одному и тому же положению "скользящего окна" на исходном изображении;
  • циклическое сравнение накопленной суммы с пороговым значением 13 и присвоение "единичного" или "нулевого" значения соответствующему пикселю выходного изображения;
  • транзитная передача содержимого "скользящего окна" параллельно по всем 25 пикселям исходного изображения.
  • Цикл выборки потока обрабатываемых данных из входного потока для каждого блока составляет 8 тактов. В результате в каждом из этих блоков формируется реакция всего медианного фильтра на закрепленные за ним положения "скользящего окна", которые кратны 8. Поэтому время начала работы каждого блока сдвинуто на 4 такта или, что одно и то же, на один пиксель в положении центрального элемента "скользящего окна" размером 5*5 пикселей на исходном изображении. Здесь 4 такта задержки образованы одним тактом функциональной задержки и тремя тактами технологической задержки, обусловленными транзитной передачей содержимого "скользящего окна" через предшествующий блок медианной фильтрации.

    Модуль медианной фильтрации MMF25 расположен на бит-матрице размером 24*28 БП, а каждый из 8 его блоков занимает по три строки и содержит (рис. 8.13):

  • блок управления циклом суммирования (CUADD1(8)): БП (1, 1), настроенный на бит-инструкцию CG с циклической константой $$C_{8}1:= 0000.0001$$, которая в каждом блоке сдвинута влево на количество тактов, отвечающее времени начала его работы;
  • блок суммирования (ADD): БП 3-й строки бит-матрицы с первого по 25-й столбец бит-матрицы;
  • блок сравнения с порогом и подстановки результата сравнения (THU): 27-й и 28-й столбцы.
  • При любом пространственном смещении модуля медианной фильтрации MMF25 или его отдельных блоков необходимо скорректировать фазу выхода циклической константы $$C_{8}1$$, придав ей вид, отвечающий фактическому сдвигу в начале их работы. Результирующее бинарное изображение начинает формироваться с 618(+2*128) такта в БП (3, 28, 2) слиянием по "ИЛИ" циклических реакций от каждого из 8 блоков.

    Время начальной задержки только в модуле медианной фильтрации MMF25 бинарного изображения "скользящим окном" 5*5 пикселей составляет 55 тактов, а суммарное время начальной задержки от входа субпроцессора до этого выхода составляет 618 тактов без учета начальной задержки 2*128 тактов для вхождения в конвейер модуля генерации тест-данных.

    Из приведенных данных видно, что каждый блок модуля медианной фильтрации ( MMF25 ) работает с циклом 8 тактов и на выходе формирует однобитный признак результата сравнения с порогом, равным 13. При этом составляющие его блоки реализуют следующие слов-инструкции:

    (рис 8.13) Топологическая схема 1-го блока модуля медианной фильтрации (MMF25)
  • блок управления циклом суммирования (CUADD1(8)): 1 слов-инструкцию генерации циклической константы $$С_{8}1$$, 25 операций селекции входных операндов (бит-инструкции AND) и 54 операции пересылки;
  • блок суммирования (ADD): 25 операций суммирования (бит-инструкции ADD), 25 операций пересылки промежуточных результатов суммирования и 25 операций транзитной пересылки данных в последующие блоки фильтрации;
  • блок сравнения с порогом и подстановки результата сравнения (THU): 1 сравнение, 1 формирование результата сравнения и 2 пересылки, одна из которых - собственный результат сравнения, а другая - результаты сравнения в предшествующих блоках.
  • Таким образом, пропускная способность модуля медианной фильтрации составляет по потоку 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) представляет собой делитель частоты CG на основе циклической константы вида $$C_{8}1:= 0000.0001$$ (БП (2, 1), настроенный на бит-инструкцию CG ). Выход генератора циклического строба SG (БП (1, 11, 3)) опережает по фазе на 2 такта момент появления первого пикселя результирующего изображения на выходе медианного фильтра и в данном случае составляет 616(+2*128) тактов.

    Соотношение фаз управляющего и обрабатываемых потоков поддерживается подстановкой бит-инструкций AND или NAND в бит-процессоры первой строки, и они должны редактироваться при любом пространственном перемещении как модуля медианной фильтрации, так и/или модуля подавления реакций на паразитные положения "скользящего окна". Модуль CMZ 4(128) генерирует циклическую константу $$С_{128}4$$, в которой 4 "единичных" бита, а остальные - "нули". Этот модуль вносит только один такт в общую задержку во всем предшествующем тракте обработки, и поэтому суммарное время задержки в субпроцессоре по его выходу (БП (1, 11, 2)) составляет 619(+2*128) тактов.

    В модуле CMZ 4(128) в одном 8-битном цикле выполняются (рис. 8.15):

  • 1 генерация циклической константы и 2 пересылки в задающем генераторе NG (БП (2, 1));
  • 1 формирование (модификация) циклической константы $$С_{128}1$$ в блоке CG (БП с первого по восьмой столбец бит-матрицы) и 1 пересылка;
  • 1 формирование циклической константы $$C _{128}4$$ в модуле SG методом слияния по трем "ИЛИ" (с задержкой) циклической константы $$С_{128}1$$ (БП девятого столбца бит-матрицы), инверсия циклической константы $$C _{128}4$$ (БП (1, 10)) и 3 пересылки,
  • фильтрация входного потока (БП (1, 11)) в блоке AND и 2 пересылки.
  • (рис 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) содержит:

  • циклический накапливающий сумматор (ADDA) двоичной последовательности до 124 бит или, что одно и то же, пикселей, который состоит из четырехкаскадного сумматора ADD и сумматора-накопителя ADDR;
  • блок управления (CADDA16(128)) циклом накопления, который генерирует циклическую управляющую константу, содержащую 16 "единиц" и 112 "нулей";
  • блок циклического сглаживания (DWH) построчной гистограммы 2-элементным "скользящим окном".
  • В четырех каскадах потокового сумматора ADD сначала попарно складывается содержимое четных и нечетных бит, выделенных из обрабатываемого потока. Затем по аналогичной схеме суммируются четные и нечетные 2-битные операнды, выделенные из обрабатываемого потока, и т. д. до получения 16-битных операндов (с 8 значащими разрядами), которые уже суммируются в ADDR по классической схеме накопления в аккумуляторе с управляемым циклом.

    Потоковая часть сумматора ADD (рис. 8.17) занимает с 20-го по 28-й столбцы бит-матрицы и имеет только информационный вход (3, 28, 4) с начальной задержкой 619(+2*128) тактов.

    Все локальные блоки управления ADD распределены по сумматору, и с их помощью один поток из каждого предшествующего каскада суммирования расщепляется в пространстве на два потока, которые затем выравниваются по времени задержки и суммируются. Для этих целей в первом каскаде используется меандр (и его инверсия) вида …0101…01, во втором каскаде - … 00110011…0011 и т. д. Выход потоковой части сумматора ADD расположен в бит-процессоре (1, 20, 1), где общее время задержки составляет 647(+2*128) тактов.

    (рис 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) построчной гистограммы представляет собой:

  • задающий генератор (LG) в виде счетчика до 27 тактов (2-я и 3-я строки бит-матрицы в пределах с 5-го по 12-й столбец);(рис 8.17) Топологическая схема модуля формирования построчной гистограммы обрабатываемого изображения (LHM)
  • управляемый генератор (PG) в виде счетчика до 24 тактов (2-я и 3-я строки бит-матрицы в пределах 13-го и 14-го столбцов). Собственно управляющий 16-битный "единичный" строб "чтение" формируется БП (1, 14, 3), настроенном на бит-инструкцию ST1. В этой бит-инструкции на 2-й управляющий вход (снизу) подается циклическая константа $$C_{16}1$$, а на 1-й информационный вход (слева) - циклическая константа $$C_{128}1$$. Данный строб используется в БП (2, 17), обеспечивая циклическое "чтение" накопленной суммы, а его инверсия используется в БП (1, 18) для циклического обнуления содержимого аккумулятора.
  • Блок циклического сглаживания DWH2 построчной гистограммы 2-элементным "скользящим окном" представляет собой сумматор двух смежных операндов с задержкой предыдущего на 128 тактов. На топологической схеме рис. 8.17 он занимает БП: четыре первых столбца полностью, с 5-го по 11-й в первой строке и с 5-го по 10-й в четвертой строке бит-матрицы. Первый значащий результат на его выходе (БП (1, 11, 2)) появляется на 900-м такте после полного первого цикла суммирования для данного кадра обрабатываемого изображения (без учета времени начальной задержки на 2*128 тактов в модуле генерации тест-данных).

    Предшествующий ему цикл срабатывания 2-элементного "скользящего окна" соответствует $$772+Q*2^{14}$$ такту и используется в канале обнаружения отказов, так как имеет заранее известное содержимое, отвечающее реакции на две тестовые строки. Здесь $$Q$$ - индекс кадра обрабатываемого изображения. В основном канале обработки реакция 2-элементного "скользящего окна" на этом цикле обнуляется управляющим блоком ( DWHCU ), который на топологической схеме совмещен с модулем свертки вектор-столбца SMM.

    Из приведенных данных видно, что в модуле формирования построчной гистограммы обрабатываемого изображения ( LHM) в одном 16 -битном цикле выполняются:

  • в циклическом накапливающем сумматоре (ADDA): в каждом из четырех каскадов сумматора ADD - 1 суммирование, 2 операции "И", 1 операция генерации константы и 6 пересылок, а в сумматоре-накопителе ADDR - 1 суммирование, 2 операции "И" и 6 пересылок;
  • в блоке управления CADDA16(128): 4 генерации циклической константы $$С_{8}1$$, 8 ее пересылок, 1 генерация циклической константы $$С_{16}1 $$ и 1 ее пересылка, 1 генерация или проверка условия формирования циклической константы $$С_{128}1$$ и 1 ее "пересылка", 1 цикл формирования константы $$С_{128}16$$ ;
  • в блоке циклического сглаживания (DWH): 8 пересылок в FIFO-регистровой линии задержки, 1 сложение и 1 пересылка результата.
  • Таким образом, пропускная способность модуля формирования построчной гистограммы обрабатываемого изображения ( 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-элементным "скользящим окном" построчной гистограммы каждого кадра исходного изображения. Данный модуль включает:

  • 8-разрядный умножитель (ML) положительных чисел;
  • блок генерации весовых коэффициентов (WGU) "свертки" вектор-столбца построчной гистограммы;
  • блок генерации циклической константы $$C_{128}1$$ (CCU1(128));
  • накапливающий сумматор оператора свертки вектор-столбца (ADDRV32);
  • блок управления (CADDR32) циклом накопления оператора свертки ADDRV32 и аналогичным циклом в сумматоре-накопителе построчной гистограммы ADDRH32; этот блок генерирует циклическую управляющую константу, содержащую 32 "единицы" и (214-32) "нулей";
  • накапливающий сумматор построчной гистограммы (ADDRH32);
  • блок обнуления (DWHCU) паразитных взаимодействий строк из разных кадров, попавших в одно 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).

    Накапливающий сумматор ADDRH32 определяет суммарную яркость каждого кадра обрабатываемого бинарного изображения, и он эквивалентен по функции сумматору ADDRV32 с той разницей, что в нем формируется прямая, а не взвешенная сумма элементов вектор-столбца

    построчной гистограммы. Его информационный вход расположен в бит-процессоре (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-битном цикле выполняются:

  • в 8-разрядном умножителе (ML): 1 операция умножения 16-битных операндов с 32-битным результатом, 1 операция задания разрядности и 1 пересылка произведения в сумматор-накопитель (пересылки множимого, множителя и управляющей константы учтены в предшествующих модулях);
  • в блоке генерации весовых коэффициентов (WGU): 1 формирование, 1 чтение, 1 пересылка весового коэффициента;
  • в блоке генерации циклической константы $$C_{128}1$$ (CCU1(128)): 16 операций генерации задающей циклической константы $$C_{8}1$$ и 32 ее пересылки; 4 операции контроля приращения циклической константы $$C_{128}1$$ и 36 ее пересылок, так как эта константа используется и как аргумент приращения при формировании весового коэффициента, и как сигнал "чтение" на каждом цикле работы модуля WGU, и как сигнал управления в модуле ML;
  • в накапливающем сумматоре оператора свертки вектор-столбца (ADDRV32): 1 суммирование, 2 операции "И" и 3 пересылки;
  • в блоке управления (CADDR32) циклом накопления: 16 генераций задающей циклической константы $$C_{8}1$$ и 32 ее пересылки; 4 генерации циклической константы $$C_{32}1$$ и 4 ее пересылки; 4 контроля приращения циклической константы $$С_{2}^{14}1$$ и 4 ее пересылки; 4 контроля приращения циклической константы $$С_{2}^{14}32$$ и 8 ее пересылок в сумматор-накопитель;
  • в накапливающем сумматоре построчной гистограммы (ADDRH32): 1 суммирование, 2 операции "И" и 3 пересылки;
  • в блоке обнуления (DWHCU) паразитных взаимодействий: 1 операция AND и 1 пересылка результата.
  • Таким образом, пропускная способность модуля свертки вектор-столбца ( 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-разрядный делитель (DL), где в качестве делимого выступают значения $$B_{S}$$ свертки вектор-столбца построчной гистограммы отфильтрованного изображения, а в качестве делителя - суммарная черно-белая яркость одного кадра обрабатываемого изображения;
  • преобразователь "прямой код - дополнительный код" делимого (DCC) при смене знака с $$(+D)$$ на $$(-D)$$, который объединен с блоком генерации циклической константы $$C_{32}1$$.
  • (рис 8.20) Структурная схема модуля вычисления "центра масс" (CMM)

    Делитель DL (рис. 8.21) на 7 двоичных разрядов занимает бит-матрицу размером 8*62 БП и имеет:

  • три информационных входа: делимого $$B_{S}$$ (на рис. 8.21-а - это БП (3, 9, 3)) и делителя, который на 966 такте появляется на входах БП (4, 9, 3) и (6, 9, 3) с отрицательным $$(-D)$$ и положительным $$(+D)$$ знаком соответственно;
  • один управляющий вход (1, 9, 3), где на 966 такте появляется циклическая константа $$C_{32}1$$, задающая разрядность и формат обрабатываемых данных.
  • В данном случае использован классический для конвейерной арифметики формат фиксированной запятой: "нулевой" (старший) 32-й бит служит для блокирования паразитного распространения "единицы переноса" по потоку данных, 31-й бит - для хранения и передачи знака операнда, а остальные 30 бит - для хранения и передачи значащей части операндов.

    Из приведенных данных видно, что из 214 тактов, соответствующих полному циклу обработки одного кадра изображения, делитель полезно используется только на 32 тактах, но занимает порядка 12 % всей площади бит-матрицы.

    Первый результат на выходе делителя появляется начиная с 17699 такта, и представлен в инверсном виде.

    В делителе использован алгоритм деления со сдвигом и восстановлением остатка:

    $$\alpha_i = \begin{cases} 2\alpha_{i-1}-D, \text{ если } \alpha_{i-1} \ge 0, \\ 2\alpha_{i-1}+D, \text{ если } \alpha_{i-1} \pi 0. \end{cases} \,\,\,\, z_i = \begin{cases} 0, \text{ если } \alpha_{i} \pi 0, \\ 1, \text{ если } \alpha_{i} \ge 0. \end{cases}$$

    где $$\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 -битном цикле выполняются:

  • в 7-разрядном делителе (DL): 29 операций деления 32-битных операнда с 7-битным результатом и 29 пересылок результата, из которых только один информативен;
  • в преобразователе "прямой код - дополнительный код" делимого (DCC): 29 инверсий знака, 29 преобразований и 29 пересылок результата;
  • в блоке генерации циклической константы $$C _{32}1$$: 211 генераций циклической константы $$C_81$$ и 212 ее пересылок, 29 генерации циклической константы $$C_{32}1$$ и 211 ее пересылок.
  • Таким образом, физическая пропускная способность модуля определения положения центра масс астроориентира на оси Х ( 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) содержит:

  • блок управления циклом сравнения (CUICLM), который генерирует циклическую константу вида $$С_{2}^{14}8$$, в которой 8 "единиц", а остальные (214-8) - "нули";
  • блок генерации эталонной реакции (SRP) вида $$01111001$$ ;
  • блок выделения тестовых строк (SLC), который определяет момент появления на входе тестовой реакции;
  • блок сравнения (CMPR), который вырабатывает признак "единица", если произошел сбой или отказ в тракте логической обработки.
  • Согласно схеме рис. 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- битном цикле выполняются:

  • в блоке управления циклом сравнения (CUICLM): 212 генераций циклической константы $$C_{8}1$$ и 213 ее пересылок;
  • в блоке генерации эталонной реакции (SRP): 211 генераций циклической константы 79 и 211 ее пересылок; 211 операций "И" и 211 "пересылок" результата;
  • в блоке выделения реакций на тестовые строки (SLC): 211 операций "И" и 211 "пересылок" результата;
  • в блоке сравнения (CMPR): 211 операций "XOR", 214 операций "ИЛИ" с задержкой при формировании признака результата сравнения и 214 "пересылок" результата, 1 214-битная операция запоминания результата сравнения и 1 операция пересылки 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, из данных которой видно:

  • Проблемно-ориентированный субпроцессор слежения за "центром масс" астроориентира состоит из 1 специализированного контроллера ( INS16 ) и 10 специализированных процессоров арифметико-логической обработки: DTM, SWM25, MMF25, CMZ 4(128), LHM, SMM, SMM d, CMM, CMM d, ICLM, в каждом из которых имеется одно или несколько операционных, управляющих и коммутационных устройств, поддерживающих 11 информационно связанных и одновременно протекающих процессов потоковой обработки операндов. При этом составляющие специализированные процессоры сами являются многопроцессорными RISC -подобными системами, имеющими по несколько устройств управления и обработки с постоянными циклами исполнения всех команд и независимыми шинами передачи всех управляющих и информационных потоков. Например, модуль медиа нной фильтрации MMF25 состоит из 8 идентичных процессоров, а модуль свертки SMM - из одного умножителя и двух сумматоров.
  • Формат преобразуемых операндов колеблется от 1 до 128 бит, причем количество операций пересылки обрабатываемых и управляющих операндов почти в 5 раз превосходит количество операций, затрачиваемых на управление, и почти в 10 раз - количество операций, затрачиваемых на функциональную обработку потоков данных.
  • Максимальный вклад в пропускную способность по потокам исполняемых инструкций и преобразуемых потоков данных вносят модули "скользящего окна" ( SWM25 ) и медианной фильтрации ( MMF25 ), в которых обрабатываются однобитные операнды. Реализация этих поток-операторов представляет проблему и в классических архитектурах, не столько из-за сложности выполняемых преобразований, сколько из-за резкого возрастания интенсивности потоков преобразуемых и управляющих данных, обеспечивающих циклы "перемещения" "скользящего окна" по кадру изображения. Только задача управления перемещением "скользящего окна" имеет 4 вложенных цикла: модификация индекса строки изображения, модификация индекса столбца изображения, модификация индекса строки "скользящего окна", модификация индекса столбца "скользящего окна". В результате размерность задачи управления скольжением по исходному изображению оценивается как $$О(N^{2}*M^{2})$$, где $$N$$ и $$M$$ - линейные размеры изображения и "скользящего окна" соответственно.
  • Распределение слов-инструкций по операционным модулям субпроцессора
    Тип Тип блока и Тип Количество слов-инструкций
    модуля размеры модуля операнда ОУ Управление Пересылки Итого
    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

    На основе приведенных данных можно утверждать:

  • Задача слежения за "центром масс" астроориентира содержит достаточно богатую смесь МКМД-бит-потоковых арифметико-логических, интерфейсных, управляющих и диагностических процедур как по форматам и разрядности операндов, так и по алгоритмам их реализации. Поэтому ее можно рассматривать как представительную смесь при анализе потребительских характеристик МКМД-бит-потоковых субпроцессоров.
  • Чем выше коэффициент распараллеливания вычислений по потоку команд, тем ближе параллельные (Б)ВС к работе в режиме интерпретации, а не трансляции (компиляции) исполняемых программ, так как в этом случае все большему числу процессоров необходимо задать параметры настройки исполняемых команд и преобразуемых ими данных.
  • В МКМД-бит-потоковых субпроцессорных трактах достаточно просто сопрягается обработка данных разного формата и разной разрядности при сохранении общего темпа поступления входного потока, который регламентируется теоремой Котельникова. Этот эффект достигается не только за счет глубокой конвейеризации по потоку команд, но и за счет векторизации по потоку данных.

    Наиболее четко данный эффект проявился в модулях "скользящего окна" и медианной фильтрации, в первом из которых коэффициент векторизации должен равняться "площади скользящего окна" (в данном случае она равна 25 пикселям), а во втором этот коэффициент возрастает почти в 4 раза за счет векторно-конвейерной обработки в 8 блоках суммирования. В этом и только в этом случае можно выровнять темпы поступления потока входных данных и их обработки в макроконвейере, содержащем 12 специализированных процессоров.

  • Разрядность операндов нарастает по мере приближения к выходу субпроцессора, а фактическая (пользовательская) интенсивность использования оборудования при этом падает практически до нуля, как это имеет место в делителе, который с учетом дублирующего модуля занимает бит-матрицу 16*62 = 992 БП, что составляет 33,6 % от общего размера бит-матрицы 44*67 = 2948 БП.

    Основной вклад в аппаратные затраты и в повышение пропускной способности (производительности) МКМД-бит-потоковых субпроцессоров вносят массовые операции управления и (сверх)массо-вые пересылки управляющих и преобразуемых операндов, которые составляют соответственно 15,1 % и 76,54 %, в то время как арифметико-логические операции составляют всего лишь 8,36 % от общего количества операций (см. табл. 8.1).

  • Управление МКМД-бит-потоковыми субпроцессорами в основном сводится к организации работы различного рода таймеров, что больше свойственно процессорам, ориентированным на задачи управления устройствами электро- и радиоавтоматики, а не арифметико-логической обработки потоков данных.
  • 8.4. Анализ характеристик качества работы МКМД-бит-потокового субпроцессора слежения за центром масс астроориентира

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

    Оценка пропускной способности по потокам команд и данных

    Согласно данным предыдущего раздела, средневзвешенная по разрядности потоковая производительность МКМД-бит-потокового субпроцессора слежения за "центром масс" астроориентира с учетом дублирующих модулей 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 -архитектур с постоянным, однотактным циклом исполнения всех ассемблерных инструкций.

    В отличие от RISC -архитектур, в МКМД-бит-потоковых субпроцессорах цикл исполнения каждой ассемблерной слов-инструкции зависит от разрядности данных, которая в нашем случае варьирует по ходу вычислений в достаточно широких пределах от 1 до 128 бит. Тем не менее цикл исполнения всех слов-инструкций остается постоянным и согласованным друг с другом благодаря использованию требуемого коэффициента векторизации, поддерживающего единый темп обработки по всему макроконвейеру из 11 специализированных процессоров RISC -подобной архитектуры.

    Использование варьируемого коэффициента векторизации приводит к тому, что пропускная способность по потокам данных падает по мере их распространения по операционным модулям субпроцессора, в данном случае от 25 $$F_{t}$$ в модуле "скользящего окна" и $$100 F_{t}$$ в модуле медианной фильтрации до $$(2-4) F_{t}$$ в модуле "свертки". Для субпроцессора на СБИС Н1841 ВФ1 пропускная способность по потокам данных составляет соответственно 125, 500 и (10-20) Мбит/с. Такая пропускная способность по потокам команд и данных более характерна для современных персональных ЭВМ, работающих на частотах порядка единиц ГГц. Это позволяет говорить о том, что МКМД-бит-потоковые вычислительные технологии способны компенсировать в проблемно-ориентированных областях применения (200-300)-кратное технологическое отставание за счет более эффективной организации вычислений на уровне слов- и поток-инструкций. С экономических позиций это значит, ч то использование таких вычислительных технологий позволяет снизить на (1-2) порядка стоимость (Б)ВС за счет снижения стоимости комплектующих СБИС с простейшей архитектурой, которая аппаратно поддерживается несколькими сотнями логических вентилей. Именно схемотехническая "прозрачность" архитектуры бит-матричных СБИС резко снижает стоимость их бездефектного проектирования и стоимость их промышленного контроля. Более того, она позволяет достичь на широко доступных субмикронных микроэлектронных технологиях предельно высоких (не ниже 80 %) и недостижимых в других изделиях показателей выхода годных СБИС, который служит основным индикатором их цены.

    Приведенные значения пропускной способности по потокам инструкций являются пиковыми, так как они не учитывают издержек на вхождение МКМД-бит-потокового субпроцессора в стационарный режим работы конвейера из составляющих его операционных модулей. Поэтому имеет смысл оценить пропускную способность субпроцессора слежения за "центром масс" астроориентира с учетом издержек на его вхождение в достаточно глубокий конвейер, на выходе которого первая вычисленная координата $$x^{0}_{1}$$ появляется начиная с 17698 такта. Такое время задержки превосходит на 8 % время экспозиции одного кадра размером 214 = 16384 тактов, если считать равными такты формирования и ввода пикселей в бит-матрицу. После вхождения в конвейер обработка каждого следующего кадра, а значит, и вычисление каждой следующей координаты обходится в 16384 тактов, так как согласно одному из базовых принципов МКМД-бит-потоковой организации вычислений скорости обработки и передачи данных равны. Поэтому в самом ху дшем случае общее время вычисления десяти ортогональных координат для всех пяти фотоприемников (время 1-го цикла обработки) равно $$(17 698+16 384*9)*\tau$$. В СБИС Н1841 ВФ1 $$F_{t} = 5$$ МГц, то есть $$\tau = 2*10^{-7}$$ сек, а в современной бит-матрице с далеко не рекордной тактовой частотой 250 МГц $$\tau = 4*10^{-9}$$ сек. Поэтому время обработки составляет соответственно в первом случае $$\approx 33$$ мсек, а во втором случае $$\approx 0,66$$ мсек.

    Полученные численные значения позволяют утверждать:

  • Отечественная СБИС Н1841 ВФ1 разработки 1985 г. до сих пор способна поддержать темп реального времени в специализированном МКМД-бит-потоковом субпроцессоре слежения за "центром масс" астроори-ентира при частоте формирования изображения до 60 кадров/с.
  • Бит-матричная СБИС той же архитектуры, но работающая на тактовой частоте 250 МГц, позволяет перейти от алгоритмически ориентированных к проблемно-ориентированным субпроцессорам, которые способны решить широкий круг задач контура реального времени аэрокосмических ЛА. Действительно, на один цикл вычисления координат "центра масс" пяти астроориентиров такой субпроцессор израсходует только 2 % своего рабочего времени, а оставшиеся 98 % временного ресурса можно использовать как для решения других функциональных задач, так и для принудительного тестирования (сверх)многопроцессорной бит-матрицы.
  • При работе на тактовой частоте 250 МГц можно достичь пропускной способности по потокам данных порядка 25 Гбит/с, что даже по современным меркам соответствует рекордным требованиям к интерфейсам, поддерживающим темп реального времени при обработке высокоскоростных изображений.
  • Оценка вычислительной устойчивости

    В вычислительной технике [227] принято считать вычислительный процесс устойчивым, если абсолютная или относительная погрешность вычислений не превосходит соответствующей погрешности представления исходных данных.

    С таких позиций выполняемые ЭВМ арифметико-логические действия над данными не должны вносить дополнительных погрешностей по отношению к погрешности представления, которая появляется не в самой ЭВМ, а на ее входе.

    Основным источником погрешностей в цифровой вычислительной технике является ограниченная разрядная сетка передаваемых и преобразуемых операндов, что обусловлено ограниченной разрядностью регистров временного хранения, аккумуляторов и шин передачи данных. В инженерной практике принято считать, что максимальная абсолютная погрешность представления исходного числа не превосходит "веса" младшего значащего разряда $$2^{-n}$$, где $$n$$ - разрядность операнда.

    Среди арифметико-логических операций основной вклад в погрешность вычислений вносят две:

  • денормализация чисел, которая интенсивно используется при сложении операндов в формате плавающей запятой;
  • пересылка промежуточных результатов, которая случайным образом стимулирует округление промежуточных результатов вычислений (см. раздел 6.6 курса "Задачи и модели вычислительных наноструктур") при их перезаписи из регистра-аккумулятора, обладающего максимальной для данной ЭВМ разрядностью, в ОЗУ, для чего используются шины данных, разрядность которых обычно в 1,5-2 раза меньше чем у аккумулятора.
  • Формат плавающей запятой является компромиссом между необходимостью обеспечения высокой точности вычислений (разрядность мантиссы) в широком динамическом диапазоне изменения преобразуемых величин (разрядность порядка). С точки зрения сохранения вычислительной устойчивости только варьируемый по ходу вычислений формат фиксированной запятой способен полностью удовлетворить требования приведенного выше определения, так как в нем отсутствуют операции денормализации, а округление с требуемой точностью можно провести один раз и только над результирующими данными.

    Как видно из данных предыдущего раздела, в МКМД-бит-потоковом субпроцессоре слежения за "центром масс" астроориентира все арифметико-логические действия выполняются с требуемой на данном этапе вычислений точностью, то есть с нулевой абсолютной погрешностью.

    Так, в модуле формирования построчной гистограммы обрабатываемого изображения ( LHM ) без потери темпа реального времени осуществлен переход от однобитных к 16-битным операндам, в которых только 7 младших бит могут быть значащими, так как после медианной фильтрации накопленная сумма "единиц" не может превышать значения 124.

    Аналогично в модуле "свертки" ( SMM ) при умножении операндов разрядность удвоена и доведена до 32 бит, что сохраняет и все биты произведения, и все биты накапливаемой впоследствии суммы. Такое увеличение разрядной сетки без потери темпа реального времени оказалось возможным потому, что в модуле LHM один выходной операнд вырабатывается на каждую строку обрабатываемого изображения, длина которой равна 128 бит, а в модуле свертки SMM оба выходных операнда вырабатываются на один кадр обрабатываемого изображения, "длина" которого равна 16384 битам. В данном случае именно размеры строки и кадра регламентируют минимальную погрешность промежуточных и окончательных результатов, соответственно 2-128 и 2-16384. Тем не менее, результат деления представлен операндом из 7 значащих бит, так как координата "центра масс" астроориентира на изображении 128*128 пикселей не выходит за пределы этой разрядной сетки.

    Таким образом, можно утверждать, что МКМД-бит-потоковый субпроцессор слежения за "центром масс" астроориентира является вычислительно устойчивым и не вносит дополнительных погрешностей в общий тракт обработки видеосигналов.

    Единственное негативное последствие использования МКМД-бит-потоковой вычислительной технологии в тракте управления (К)ЛА - это ощутимое время задержки, которое на 8 % превосходит время формирования, а значит, и время обработки любыми другими вычислительными средствами 1 кадра входного видеоизображения. Однако эти издержки можно минимизировать, повысив частоту формирования и обработки исходного видеоизображения до 100-1000 кадров/с, для чего имеется временной запас при использовании бит-матричных СБИС, работающих на тактовой частоте 250 МГц.

    Оценка отказоустойчивости

    Отказоустойчивость МКМД-бит-потокового субпроцессора слежения за "центром масс" астроориентира будет проведена раздельно для подсистемы обнаружения и подсистемы парирования отказов.

    Из приведенных в предыдущем разделе данных видно, что в темпе реального времени функциональный контроль работоспособности субпроцессора слежения за "центром масс" астроориентира осуществляется двумя способами:

  • по классической схеме мажоритарного резервирования, в которой использовано дублирование микропрограмм арифметических блоков схемы и сравнение полученных результатов в микропрограммном блоке принятия решений, который реализован на той же бит-матрице, что и контролируемые модули;
  • по схеме информационной избыточности, в которой разделены во времени циклы подачи пользовательских и тестирующих эталонных данных, что требует временной селекции реакций на эталонные данные.
  • В данной схеме использован не сверхнадежный, а равнонадежный блок принятия решений, отказ которого воспринимается как отказ всего субпроцессора, что увеличивает вероятность "ложной тревоги", которая при гипотезе равновероятного распределения отказов пропорциональна "площади" данного микропрограммного модуля. Если в состав этого модуля включить и БП, обеспечивающие доставку тестового признака до периферии бит-матрицы, то и в этом случае его "площадь" не превысит 100 БП, то есть вероятность "ложной тревоги" ниже вероятности отказа одного БП в (44*80 = 3520)/100 = 35,2 раза.

    Главная специфика функционального контроля состоит в том, что с его помощью вырабатываются тестовые реакции не на все, а только на функционально значимые отказы, которые проявляются в содержимом промежуточных или окончательных результатов вычислений. По сравнению с прямым аппаратным резервированием, выполненным на уровне узлов каждого БП, такая схема обнаружения отказов обладает меньшим уровнем "ложной тревоги" по отношению к решаемой задаче пользователя. Однако при этом в бит-матрице накапливаются функционально "незначимые" аппаратные отказы, карта которых оказывает существенно влияние на эффективность работы подсистем локализации и парирования отказов (см. раздел 7.6).

    Отсюда встает задача оценки среднего количества реально существующих, но тем не менее "индифферентных" по отношению к решаемой задаче аппаратных отказов. Для получения такой оценки используем схему декомпозиции, рассмотренную в разделе 6.4 (см. рис. 6.48 и 6.49), согласно которой поток-оператор слежения за "центром масс" астроори-ентира разбивается на составляющие слов-инструкции, которые и служат объектом диагностики.

    Цель исследований - определить устойчивость к отказам как самого поток-оператора слежения за "центром масс" астроориентира, так и составляющих его слов-инструкций. В качестве показателя устойчивости к отказам использовано количество индифферентных отказов, не нарушающих условия правильной работы объекта диагностики. Разбиение поток-оператора на составляющие его слов-инструкции и отвечающие им операционные, управляющие и коммутационные блоки необходимо проводить для корректного синтеза тестовых последовательностей, позволяющих достаточно полно обнаружить отказы, нарушающие правила функционирования составляющих слов-инструкций и поток-инструкции в целом. Как и ранее, считается, что отказ любого вентиля бит-матрицы равновероятен.

    Из приведенной в предыдущем разделе структурно-функциональной схемы субпроцессора видно, что для исследования его устойчивости к индифферентным отказам достаточно оценить отказоустойчивость следующих слов-инструкций (рис. 8.24):

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

    Здесь $$Р$$ - вероятность сохранения работоспособности; $$N$$ - количество одновременных отказов вентилей в теле слов-инструкции;1 - кривая для генераторов циклических констант и медианного фильтра, 2 - для умножителя, 3 - для делителя и преобразователя из прямого кода в дополнительный, 4 - для сумматора-накопителя.

    Из приведенных данных видно, что в 40 % случаев система обеспечения живучести МКМД-бит-потоковых субпроцессоров "поднимает тревогу", прерывает функциональную обработку и включается в работу только тогда, когда классическая схема мажоритарного резервирования фон Неймана уже исчерпала свой 3-кратный аппаратный ресурс.

    Сопоставив графики рис. 8.24 и топологические схемы отвечающих им операционных блоков, можно убедиться: чем более "рыхлая" структура микропрограммы, тем выше ее нечувствительность к отказам. Объясняется это тем, что в более "рыхлых" топологиях ресурсы БП используются по минимуму и неравномерно, что предопределено МКМД-режимом распараллеливания вычислений. В результате запрограммированная бит-матрица по используемому аппаратному ресурсу является существенно неоднородной, что усложняет задачу нарушения условий правильного функционирования именно этого БП и именно в этой микропрограмме. Сами микропрограммы исследуемых слов-инструкций синтезированы по критерию максимального использования ресурсов каждого БП или, что одно и то же, по минимуму использования площади всей бит-матрицы.

    (рис 8.24) Вероятность сохранения работоспособности слов-инструкций

    Поэтому "рыхлость" их топологии в данном случае можно охарактеризовать тремя показателями:

  • уровнем неоднородности термального состава микропрограммы или, что одно и то же, степенью использования МКМД-фактора при выборе термального состава для каждой слов-инструкции;
  • степенью использования в каждом БП аппаратного ресурса или, что одно и то же, уровнем скрытой структурно-функциональной избыточности бит-матрицы, определяемой принципами и методами МКМД-бит-потоковой организации вычислений;
  • количеством неиспользуемых БП или топологическими издержками компоновки как отдельных слов-инструкций, так и всей микропрограммы поток-оператора; в нашем случае эти издержки составляют 3520-2776 = 744 БП, или почти 27 % по отношению к рабочей "площади" бит-матрицы (см. табл. 8.1 - 2776 БП).
  • В результате проведенных исследований подтвердилась применимость соотношения (3.5), которое предполагает, что вероятность сохранения работоспособности при $$k$$ отказах равна вероятности сохранения работоспособности при одном отказе в степени $$k$$. Более того, оказалось, что вероятность сохранения работоспособности операционных модулей, реализующих конкретные слов-инструкции, можно оценить как сумму (по составляющим термам) произведений вероятности сохранения работоспособности терма и вероятности попадания отказа в этот терм.

    Наиболее наглядно это можно показать на примере умножителя, микропрограмма которого приведена на рис. 8.25. Здесь практически все столбцы бит-матрицы однородны по своей структуре, а вероятность сохранения работоспособности БП из каждой строки (при одном неисправном вентиле) равна:

  • для первой строки, в БП которой используется только канал транзита WTR: $$p = 0,804$$ ;
  • для второй строки, в БП которой используется только функция St1: $$p = 0,668$$ ;
  • для третьей строки, в БП которой используется только функция AND: $$p = 0,72$$ ;
  • для четвертой последней строки, в БП которой используется только функция ADD: $$p = 0,663$$.
  • При равновероятной гипотезе отказ 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) на все уровни иерархии имитационного моделирования. Это кардинальным образом снижает затраты на оценку работоспособности МКМД-бит-потоковых субпроцессоров, которую можно осуществить достаточно достоверно и полно, не прибегая к анализу полного гиперпространства отказов на бит-матрице. Для этого моделирование и экспериментальную оценку последствий одиночных отказов можно ограничить отдельными блоками и узлами БП, содержащими не более 100 транзисторов, и на этой основе провести по формуле (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 однородных составляющих блоков занимает три строки бит-матрицы. Таким образом, показано:

  • минимальные временные затраты на парирование карт отказов обеспечивает фиксированное в пространстве разбиение микропрограммы субпроцессора на составляющие его процессоры с независимыми операционными, управляющими и интерфейсными блоками, которые обеспечивают минимум информационных FIFO-регистровых связей между собой;
  • при некратном резервировании (всего 38 %) парируется "в среднем" карта из 17 отказов, распределенных по бит-матрице по равномерному закону; для сравнения, при трехкратном мажоритарном резервировании по схеме фон Неймана удается парировать всего 1 отказ, после чего один из дублирующих модулей отключается и поэтому теряется возможность выбора правильной реакции из двух возможных;
  • реальная аппаратная избыточность МКМД-бит-потокового субпроцессора слежения за "центром масс" астроориентира выше 38 %, так как в системе обнаружения отказов продублированы арифметические модули, что увеличило фактический резерв на 13*44+8*55 = 572+440 = 1012 БП, или на 42 % от площади рабочего поля бит-матрицы размером 36*67 = 2412 БП.
  • Учитывая тот факт, что в процессе работы субпроцессора накапливается существенная индифферентная карта отказов, тестировать необходимо всю бит-матрицу, а не отдельные ее части. Объясняется это тем, что для принятия правильного решения о толерантном (пере)размещении рабочего тела микропрограммы необходимо знать всю действующую карту отказов, так как при таком (пере)размещении изменяются требования к бит-процессорам, что может перевести любой отказ из индифферентного в функционально значимый.

    Проведенный анализ основных потребительских характеристик МКМД-бит-потокового субпроцессора слежения за "центром масс" астроориентира показал:

  • Основное системотехническое преимущество МКМД-бит-потоковых вычислительных технологий состоит в том, что они позволяют на самых ранних этапах проектирования проблемно- и алгоритмически ориентированных субпроцессорных трактов оценить влияние принимаемых конструктивных и технических решений на их отказоустойчивость, то есть сделать процесс проектирования управляемым по фактору отказоустойчивости.
  • Производительность при решении задачи слежения за факелом на МКМД-бит-потоковых субпроцессорах составляет не менее 3,6*103 MIPS, а пропускная способность по потокам данных составляет порядка 500 Мбит/с, что более характерно для современных персональных ЭВМ, работающих на частотах порядка единиц ГГц.
  • Естественная структурно-функциональная избыточность БП разбивает все множество отказов на два класса: функционально значимые и индифферентные по отношению к исполняемой бит-операции. Однако рост отказоустойчивости бит-процессоров на схемотехническом уровне негативно сказывается на системотехническом уровне, увеличивая латентный период накопления карты отказов. Это может привести к тому, что скрытое нарастание карты отказов в бит-матрице достигнет катастрофических размеров к моменту появления первого функционально значимого, а значит, обнаруживаемого алгоритмически ориентированными средствами отказа. 4. За счет фиксированного в пространстве распределения потока инструкций по бит-матрице повышается функциональная отказоустойчивость всего субпроцессорного тракта в целом, что приводит к накоплению в латентном периоде от 5 до 30 отказов, при этом парируются в темпе реального времени порядка 17 отказов при 38%-ном аппаратном резерве.
  • Системотехнические выводы по лекции 8

  • В МКМД-бит-потоковых вычислительных технологиях структурно-функциональная декомпозиция заданий пользователя представляет собой многокритериальную задачу, в которой необходимо учесть:
  • минимум аппаратных затрат и максимум неоднородности составляющих модулей, повышающий устойчивость к отказам,
  • минимум информационных связей между модулями, снижающий затраты на редактирование этих связей после проведения над телом микропрограммы толерантных аффинных преобразований, и целый ряд других требований к топологии микропрограммы, обеспечивающих удобство работы всей системы обеспечения живучести субпроцессора.
  • Естественная структурно-функциональная избыточность МКМД-бит-потоковых субпроцессоров используется комплексно, обеспечивая не только (сверх)высокие коэффициенты распараллеливания вычислений, но и повышая более чем на порядок их отказоустойчивость в сравнении с параллельными системами на основе процессоров традиционной архитектуры, а также вычислительную устойчивость, гарантируя нулевую абсолютную погрешность за счет вариации разрядной сетки по ходу вычислений.
  • Чем выше МКМД-уровень распараллеливания вычислений, тем большему количеству процессоров необходимо задать управляющие параметры и начальные условия, что в пределе, когда вычисления организованы по принципу "одна (бит)инструкция - один (бит)про-цессор", приводит к работе всей (Б)ВС в режиме интерпретации, а не компиляции программ.
  • Работа МКМД-бит-потокового субпроцессора в режиме интерпретации, а не трансляции или компиляции программ:
  • сопряжена с временными издержками, которые сгруппированы в отдельный этап ввода микропрограммы в бит-матрицу и которые окупаются при выполнении системообразующего неравенства (6.1) курса "Задачи и модели вычислительных наноструктур" за счет большого количества циклов обработки "больших" потоков данных;
  • требует приведения исходного вычислительного алгоритма к потоковому виду с явным указанием всех управляющих, интерфейсных и диагностических процедур;
  • приводит к росту в основном аппаратных, а не временных затрат на реализацию индивидуальных управляющих, интерфейсных и диагностических процедур, что повышает "мобильность" модуля при парировании карт отказов.
  • Чем больше имеющийся естественный структурно-функциональный и топологический резерв у бит-процессоров и соответственно матриц на их основе, тем более устойчив к отказам поток-оператор и тем больше карта отказов, накапливаемая в латентном периоде. Отсюда следует, что с ростом отказоустойчивости бит-матриц необходимо увеличивать частоту принудительного тестового контроля, что негативно сказывается на пропускной способности МКМД-бит-потоковых субпроцессорных трактов.
  • С проектных позиций МКМД-бит-потоковые вычислительные технологии удобны тем, что на самых ранних этапах создания субпроцессоров здесь можно получить достоверные оценки достижимой пропускной способности по потокам инструкций и данных, массо-габаритам, потребляемой энергии, отказоустойчивости и времени задержки, которые играют решающую роль в оценке летно-технических и боевых характеристик (К)ЛА и их БЭО.
  • Методы и средства обеспечения живучести МКМД-бит-потоковых субпроцессоров не исключают, а только дополняют традиционные методы и средства, основанные на введении дополнительной аппаратной, информационной и временной избыточности. При этом возможность проведения в темпе реального времени фактически ремонтно-восстановительных работ позволяет снизить необходимый аппаратный резерв до десятков процентов и сохранить живучесть субпроцессорного тракта при наличии в нем карт, насчитывающих десятки отказов. В результате удельные аппаратные затраты на парирование одного отказа в МКМД-бит-потоковых субпроцессорах не менее чем на порядок меньше аналогичных затрат в традиционных фон-неймановских схемах мажоритарного резервирования, которые по-прежнему доминируют в зарубежной авионике.
  • Даже на отсталой по современным меркам элементной базе разработки середины 80-х годов прошлого столетия в МКМД-бит-потоковых технологиях удается достичь производительности не менее 3,6*103 MIPS и пропускной способности по потокам данных порядка 500 Мбит/с, что более характерно для современных персональных ЭВМ, работающих на частотах порядка единиц ГГц.
  • Страницы:

    8.1. Описание предметной области и системы преобразований МКМД-бит-потокового субпроцессора слежения за "центром масс" астроориентира

    В основе решения задач автоматической астронавигации лежит определение пространственного положения линии визирования от космического летательного аппарата (КЛА) до центра некоторой "неподвижной" яркой звезды, используемой в качестве астроориентира. В идеале с помощью обработки бинарного видеоизображения звездного пространства можно достаточно четко "провести" линию визирования до центра астроориентира (рис. 8.1-а). Однако в звездном пространстве существуют не только астроориентиры, но и мириады звезд (рис. 8.1-б), которые для алгоритма обработки бинарного изображения представляют собой "точечную" помеху, способную сместить вычисленный "центр масс" даже очень крупного астроориентира. Такого рода помехи наиболее эффективно фильтруются медианным фильтром (см. раздел 4.5 [290]), апертура которого должна более чем в два раза превышать площадь каждой яркой звезды, бли зко примыкающей в пространстве к астроориентиру.

    Для решения такого рода задач на борту КЛА необходимо иметь видеокамеры (желательно по одной на астроориентир, чтобы жестко связать их положение с осями КЛА), которые формируют бинарные (черно-белые) изображения требуемого участка звездного пространства. Апертура таких видеокамер не должна быть очень большой (не более 128*128 пикселей), чтобы за счет малого "угла зрения" снизить паразитные влияния остальных звезд.

    Частота определения собственного положения в пространстве КЛА невелика, как невелика и сложность задачи обработки такого изображения. Поэтому современные ЦПОС способны справиться с решением в реальном времени подобного рода задач. Однако высочайшая ответственность за успех космической экспедиции и достаточно продолжительное негативное влияние на (Б)ВС жестких космических излучений и других внешних воздействующих факторов выдвигают на первый план требование к (сверх)высокой живучести вычислительных комплексов, отвечающих за решение задач астронавигации, а значит, и за эффективность автономного управления полетом КЛА.

  • определение "центра масс" после медианной фильтрации интенсивной "точечной" помехи
  • ошибка определения "центра масс" при наличии интенсивной "точечной" помехи
  • (рис 8.1) Влияние звездного пространства на точность визирования "центра масс" астроориентира

    Аналогичные задачи решаются при посадке ЛА в плохих погодных условиях на подвижное основание, при дозаправке в воздухе группы самолетов и т. д. Но здесь уже требуются как (сверх)высокая (109-1012 оп/ сек) производительность, так и (сверх)высокая отказоустойчивость при выполнении особо сложных маневров, сопряженных с опасностью потери ЛА или гибелью экипажей.

    Задачи, решаемые такими пассивными системами микро- и астронавигации, содержат достаточно полный набор функций (слов-инструкций), который можно рассматривать как представительную смесь, объективно

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

    Таким образом, в субпроцессором тракте (Б)ВС КЛА требуется решить в реальном времени следующие задачи:

  • медианную фильтрацию кадров для устранения "точечных" помех, отвечающих "скользящему окну" размером 5x5 пикселей;
  • нахождение "центра масс" для каждого из 5-10 астроориентиров;
  • определение рассогласования между текущим направлением движения и заданным;
  • формирование сигналов управления.
  • Ориентированный на решение перечисленных задач субпроцессорный тракт (Б)ВС КЛА должен иметь пред- и сопроцессор, на первый из которых возлагаются первые две задачи, а на второй - последние. Покажем, что основное достоинство такой схемы построения отечественных (Б)ВС состоит в том, что при этом повышается не только производительность, но и вычислительная устойчивость, устойчивость к отказам, а с ними и отказобезопасность всего БЭО отечественных (К)ЛА.

    При разработке МКМД-бит-потокового предпроцессора слежения за "центром масс" астроориентира будем считать, что исходное видеоизображение имеет размеры 128x128 черно-белых пикселей $$x_{ij}\in\{0,1\} (i, j = \overline{1,128})$$. Такие размеры обрабатываемого видеоизображения обеспечивают приемлемую угловую избирательность порядка 10о-15о, которая, с одной стороны, снижает влияние естественных и искусственных видеопомех, а с другой стороны - обеспечивает достаточно высокую точность определения угловых координат "центра масс" астроориентира порядка 0,08о-0,12о. Вычисленные линейные координаты "центра масс" фигуры, идентифицированной как астроориентир, по отношению к центру плоского (двумерного) черно-белого изображения, должны быть жестко связаны с продольной и другими осями (К)ЛА, по отношению к которым и вырабатываются управляющие воздействия извне и со стороны собственной системы автоматического управления (САУ). При этом система обеспечения живучести субпроцессора должна обнаружить в темпе реального времени все функционально значимые отказы аппаратуры.

    Структурно-функциональная схема канала обработки астронавигационной информации приведена на рис. 8.2, а укрупненный алгоритм его работы имеет вид:

  • Обработать изображение $$\{х_{ij}\}$$ медианным фильтром со скользящим окном размером 5x5 пикселей. В результате получим изображение $$y_{rc} = med_{5\times 5}\{ x_{ij}\}^{rc}$$, в котором индексы $$r$$, $$c$$ соответствуют положению центрального элемента "скользящего окна" и связаны с индексами $$i$$, $$j$$ строк и столбцов исходного изображения правилом $$r = i_1+2$$, а $$c = j_{1}+2$$, где $$i_{1}, j_{1}$$ - координаты левого верхнего угла "скользящего окна".
  • Подавить паразитные взаимодействия элементов "скользящего окна" при его переходе со строки на строку:$$y_{rc} = \begin{cases} y_{rc}, \text{ если } 2 < c < 127, \\ 0, \text{ если } c \ge 2, c \ge 127. \end{cases}$$
  • Составить гистограмму по строкам $$\{y_{r}\}$$, где$$y_r = \sum\limits_{}^{128}y_{rc}$$
  • Обработать гистограмму двухэлементным скользящим окном$$a_{r} = (y_r + y_{r+1})/2$$
  • Обнулить паразитные взаимодействия в двухэлементном "скользящем окне" при переходе от одного кадра обрабатываемого изображения к другому:$$a_{rc} = \begin{cases} a_{r}, \text{ если } r > 1, \\ 0, \text{ если } r = 1. \end{cases}$$ (рис 8.2) Структурно-функциональная схема видеоканала
  • Выполнить свертку вектор-столбца $$\{a_r\}$$ по правилу$$a_r^* = \sum\limits_{r=1}^{127}(a_r\cdot r)$$
  • Вычислить суммарную яркость обрабатываемого изображения:$$a_r^{\sim} = \sum\limits_{r=1}^{127}a_r$$
  • Определить координату $$x^0_p$$ центра масс изображения по отношению к его верхнему левому углу: $$х_{p}^0 =a_{r}^*/a^{\sim}_r$$, где $$p$$ - номер фотоприемника, для которого найдена координата.
  • Для вычисления координаты $$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)$$, так и при обработке изображений от каждого из пяти фотоприемников.

    8.2. Потоковый алгоритм работы МКМД-бит-потокового субпроцессора слежения за центром масс астроориентира

    Все рассмотренные процедуры работы канала обработки видеоизображения необходимо привести к потоковому виду, который учитывает как "непрерывность" потока входных и выходных данных, так и специфику работы МКМД-бит-потоковых субпроцессоров, которая связана с тем, что каждая потоковая слов-инструкция пользователя интерпретируется МКМД-бит-процессорной матрицей. Поэтому ее необходимо сопроводить индивидуальными средствами управления, задающими и реализующими циклы $$for(\overline{1, n})$$ и $$for(\overline{ 1, N})$$, где $$n$$ и $$N$$ - соответственно разрядность арифметики и количество операндов в циклически обрабатываемых потоках данных. В результате на ассемблерном уровне организации вычислений выдерживается принцип "одна инструкция - один процессор", который в каждой ассемблерной команде поддерживается своими специфическими входными и выходными интерфейсами, устройствами управления и обработки. С целью повышения отказоустойчивости и отказобезопасности МКМД-бит-потокового субпроцессорного тракта обработки видеоизображений необходимо выбрать и включить в него процедуры генерации избыточных данных и устройств обнаружения отказов темпа реального времени. В результате потоковый алгоритм работы такого многопроцессорного устройства принимает вид:

    Шаг 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) Расположение тест-данных на исходном изображении

    Чтобы осуществить замещение двух верхних и двух нижних строк исходного изображения тест-данными, необходимо:

  • реализовать цикл $$For(i) = \overline{1,16634},$$ который определяется размерами обрабатываемого изображения 128*128 однобитных пикселей;
  • реализовать цикл $$For(i) = \overline{1,512}$$, который определяется размерами 4-х тестовых строк;
  • реализовать циклическую константу вида $$11111000…11111000…$$, которая подставляется вместо текущих во время одного цикла $$For(i) = \overline{1,512}$$ ;
  • задать начальную фазу поступления входных данных таким образом, чтобы цикл $$For(i) = \overline{1,512}$$ совместился с двумя нижними и двумя верхними строками обрабатываемого изображения.
  • Шаг 3. Обработать полученное изображение медианным фильтром размером 5*5 пикселей: $$\tilde{x}_{rc} := med_{5\times 5}\{x_{\hat{i},\hat{j}}\}^{гс}$$. Здесь:

  • $$\hat{i},\hat{j} = \overline{1,5}$$ - индексы элементов, соответствующие одному положению "скользящего окна";
  • индексы $$r, с$$ соответствуют центральному элементу "скользящего окна" размером 5*5 пикселей, и они связаны с индексами строк и столбцов исходного изображения $$i, j$$ правилом: $$r = i_1 + 2$$, а $$c = j_{1} + 2 $$, где $$i_1, j_{1}$$ - координаты левого верхнего угла "скользящего окна".
  • В МКМД-бит-потоковых технологиях процедура "скольжения" окна размером 5*5 пикселей реализуется с помощью FIFO -регистровой линии задержки, имеющей 1 вход и 25 выходов, на которых одновременно появляются все элементы, соответствующие текущему положению "скользящего окна". Фактически такая линия^ задержки реализует 5 вложенных циклов: $$For(k,For(j,For(i,For(\hat{j},For(\hat{i})))))$$,где $$k=\overline{1,\infty}$$ ; $$j=\overline{1,128}$$ ; $$i=\overline{1,128}$$ ; $$\hat{j}=\overline{1,5}$$ ; $$\hat{i}=\overline{1,5}$$.

    Обычно медианная фильтрация выполняется через две логические процедуры:

  • упорядочение элементов $$x_{\hat{i},\hat{j}} \in \{x_{\hat{i},\hat{j}}\}^{rc}$$ по возрастанию;
  • присвоение $$\tilde{x}_{rc} :=med_{5\times 5} \{x_{\hat{i},\hat{j}}\}^{rc}$$, которое соответствует выбору центрального элемента в упорядоченной последовательности $$\{x_{\hat{i},\hat{j}}\}^{rc}$$.
  • Но в данном случае мы имеем дело с бинарным изображением, и поэтому медианную фильтрацию можно выполнить через две арифметико-логические процедуры:

    $$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). Поэтому приходится:

  • разделять поток входных бит-данных сначала на два потока, в один из которых попадают все четные, а в другой - все нечетные биты из суммируемого потока;
  • выравнивать по времени задержки на 1 такт и суммировать четные и нечетные биты одного и того же входного потока;
  • разбивать поток 2-битных частных сумм на два потока - четный и нечетный, и, выровняв их по времени задержки на 2 такта, суммировать и т. д. до получения промежуточного операнда, разрядность которого обеспечивает накопление всей суммы;
  • сложение частных сумм по классической схеме с накапливающим аккумулятором.
  • Для суммирования по этой схеме необходимо реализовать (в данном случае) 6 вложенных циклов: $$For(с_{128}, For(с_{32}, For(с_{16}, For(с_{8}, For(с, For(с_{2}))))))$$, из которых 5 нижних используются для формирования 32-битных операндов, обеспечивающих нулевую погрешность вычислений взвешенных сумм в последующих процедурах, а $$с_{128} = \overline{1,128}$$ ; $$с_{32} = \overline{1,32}$$ ; $$с_{16} = \overline{1,16}$$ ; $$с_{8} = \overline{1,8}$$ ; $$с_{4} = \overline{1,4}$$ ; $$с_{2} = \overline{1,2}$$.

    Шаг 4. Обнулить реакцию медианного фильтра на паразитные взаимодействия элементов "скользящего окна" при его переходе со строки на строку (со столбца на столбец):

    $$y_{rc} =y_{rc }\bigwedge\limits_{r=1}^{128}{d_r},$$

    где $$d_r = 1$$, если $$1< r< 127$$, и $$d_r = 1$$ в противном случае.

    Для выполнения этого шага потокового алгоритма необходимо:

  • задать цикл обработки строки $$For(r) = \overline{1,128}$$ ;
  • сформировать циклическую константу вида: 4 бита - "нули" и остальные 124 бита - "единицы".
  • Шаг 5. Составить гистограммы по строкам $$\{y_{r}\}$$ или по столбцам $$\{y_{c}\}$$,

    где$$y_{r} = \sum\limits_{c=1}^{124}{ y_{rc }},$$ а $$y_{с} = \sum\limits_{c=1}^{124}{ y_{rc }}$$

    Для реализации этих выражений необходимо:

  • задать цикл обработки строки $$For(r) = \overline{1,16384}$$ ;
  • сформировать циклическую константу вида: 32 "единицы" и 32 "нуля";
  • сформировать циклическую константу вида: 32 бита - "единицы" и 16352 бита - "нули", а также ее инверсию для управления циклом накопления.
  • Шаг 6. Обработать полученные гистограммы 2-элементным "скользящим окном": $$a_{r} = (y_{r} + y_{r+1})/2$$ или $$a = (y_{c} + y_{c+1})/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.3. Система МКМД-бит-потоковых слов-инструкций поток-оператора слежения за центром масс астроориентира и их топология

    Укрупненная функциональная схема МКМД-бит-потокового субпроцессора слежения за "центром масс" астроориентира имеет вид рис. 8.4, и она определяет место этого субпроцессора во всем тракте управления угловыми координатами при полете группы ЛА сомкнутым строем.

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

    Из этой схемы следует:

  • Данный субпроцессор является предпроцессором, и его системное назначение состоит в том, чтобы обеспечить высокую живучесть модуля сопряжения высокоскоростных источников сигналов с центральной частью БВС, работающей в контуре САУ.
  • Он выполнит свое функциональное назначение, если осуществит "семантическое" сжатие потоков входных данных и снизит их интенсивность с 2 457 600 бит/сек до 2.400 бит/сек. Первая из этих цифр задается 5 видеокамерами (5*30 кадров/сек*128*128пикселей = 2457600), а вторая определяется скоростью передачи в центральную часть БВС десяти 8-битных координат "центра масс" астроориенти-ров, вычисленных по каждому кадру обрабатываемого изображения. Согласно приведенному выше алгоритму работы, в МКМД-бит-потоковом предпроцессоре определения "центра масс" астроориентира можно выделить следующие функциональные модули (рис. 8.5):
  • модуль параллельно-последовательного 16-битного интерфейса данных (INS16);
  • модуль циклической генерации тест данных (DTM);
  • модуль "скользящего окна" размером 5*5пикселей (SWM25);
  • модуль медианной фильтрации бинарного изображения (MMF25);
  • модуль формирования построчных гистограмм отфильтрованного бинарного изображения и их циклического сглаживания 2-элементным "скользящим окном" (LHM);
  • модуль "свертки" вектор-столбца построчной гистограммы отфильтрованного изображения (SMM);
  • модуль определения положения центра масс астроориентира на оси Х (CMM);
  • модуль контроля правильности работы логических устройств субпроцессора (ICLM);
  • модуль контроля правильности работы арифметических каналов субпроцессора (CAM).
  • В каждом из перечисленных модулей аппаратурный ресурс расходуется на некоторое множество операционных, управляющих, коммутационных или диагностических функций, как правило, различного формата и разной разрядности.

    (рис 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 тактов. Здесь и далее используется следующая система обозначений БП и их входов-выходов:

  • первые две цифры в скобках соответствуют номеру строки и столбца бит-матрицы, отсчитанные от левого верхнего угла;
  • третья цифра идентифицирует номер входа-выхода по правилу: слева - 1, сверху - 2, справа - 3, снизу - 4.
  • Строб "чтение" $$C_{16}1$$ формируется управляющим модулем ICU1(16), который расположен на БП 17-го и 18-го столбцов бит-матрицы рис. 8.7. В этом модуле функции задающего генератора $$C_{8}1 = 00000001…00000001$$ выполняет БП (3, 18), который настроен на бит-инструкцию CG, в "теле" которой и размещена 8-битная константа $$C_{8}1$$ со сдвигом влево на 2 бита (в шестнадцатеричном виде она записывается как 04 ). Далее эта циклическая константа проходит через триггер со счетным входом ( Т -триггер), собранный на БП (2, 17) и (3, 17). Функциональный выход модуля ICU1(16) расположен в БП (2, 18, 2), который настроен на бит-инструкцию AND. Реальный, топологический выход модуля ICU1(16) расположен в БП (1, 17, 1).

    Из приведенных данных видно, что на каждом 16-битном цикле работы входного интерфейса:

  • в модуле ICU1(16) реализуются две 8-битные слов-инструкции генерации константы $$C_{8}1$$, одна 16-битная слов-инструкция генерации константы $$C_{16}1$$ и две операции пересылки этих констант;
  • в модуле INNS16 реализуются 16 пересылок константы $$C_{16}1$$, одна 16-битная AND и одна 16-битная FIFO-регистровая пересылка выходного операнда;
  • из 23 реально исполняемых в режиме интерпретации слов-инструкций полезной для пользователя является только одна 16-битная FIFO-регистровая пересылка выходного операнда.
  • Таким образом, пропускная способность входного интерфейса составляет по потоку 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):

  • задающий генератор (NG) циклической константы $$C_{8}1:= 0000.0001$$ (БП (2, 24)), который настроен на бит-инструкцию CG, в "теле" которой и размещена 8-битная константа $$C_{8}1$$ со сдвигом влево на 4 бита, что в шестнадцатеричном виде записывается как 10;
  • генератор цикла (CG) в виде делителя на 211 исходной частоты, который занимает две верхние строки бит-матрицы начиная с третьего столбца и задает цикл генерации тест-данных, равный размеру 1 кадра, обрабатываемого в последовательном коде (всего 214 тактов);(рис 8.8) Структурная схема модуля генерации тест-данных (DTM)
  • таймер продолжительности тест-данных (SG), который формирует циклическую константу из 29 "единиц" и такого же количества "нулей" и который реализован БП верхних двух строк начиная с 11 столбца.
  • На выходе блока управления генерацией тест данных формируется циклическая константа из 29 "единиц" и (214-29) "нулей". Функциональный выход этого блока расположен в БП (3, 11, 1), а реальный, топологический - в БП (3,2,1).

    Как видно из рис. 8.9, делитель и таймер совмещены по аппаратуре и представляют собой счетчики из Т -триггеров, каждый из которых занимает бит-матрицу 2*2 БП.

    Генератор тест-данных $$С_{8}5:=00011111$$ реализован на БП (1, 1), который выполняет бит-инструкцию CG. В теле этой бит-инструкции хранится данная циклическая константа, которая в шестнадцатеричном виде со смещением на 1 такт влево имеет вид $$3Е = 00111110$$.

    В блоке слияния потоков реальных и тестовых данных (БП первых двух столбцов рис. 8.9) управляющий сигнал из 29 "единиц" и (214-29) "нулей" сначала открывает на 29 тактов выход генератора тест-данных (БП (2, 1, 4)), а затем на (214-29) тактов - выход параллельно-последовательного интерфейса (БП (4, 2, 2)).

    (рис 8.9) Топологическая схема модуля генерации тест-данных (DTM)

    Чтобы совместить поток тест-данных с двумя верхними и двумя нижними строками каждого кадра обрабатываемого изображения, необходимо подобрать начальную задержку в блоке управления, которая регулируется расстановкой бит-инструкций AND или NAND в БП 1-й строки. Эти бит-инструкции определяют время задержки на распространение "единицы" из предыдущего Т -триггера в последующий. В данном случае задержка составляет 36 тактов и она предполагает, что входной интерфейс поток-процессора начал свою работу с задержкой на 256 тактов по отношению ко времени начала работы всей бит-матрицы.

    Из приведенных данных видно, что на каждом 8-битном цикле работы генератора тест-данных ( DTM ) выполняются:

  • в задающем генераторе NG: 1 операция генерации циклической константы $$C_{8}1$$ и 2 пересылки;
  • в таймере продолжительности тест-данных SG: 1 операция формирования циклической константы из 29 "единиц" и такого же количества "нулей" и 1 пересылка;
  • в генераторе цикла CG: 4 операции слияния по "ИЛИ", 1 операция "И" и 6 пересылок, включая ветвление результирующего операнда между генератором тест-данных и вентилем управления входным потоком;
  • в генераторе тест-данных TG: 1 операция генерации циклической константы 3Е, 1 операция ее временной селекции AND и 2 пересылки;
  • в блоке слияния потоков ASU: 1 операция AND, 1операция OR и 3 операции пересылки.
  • Таким образом, пропускная способность генератора тест-данных по потоку 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 такт формируются биты, отвечающие одному положению "скользящего окна" на исходном изображении. Такая нарастающая на 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) присваивает каждому положению "скользящего окна" или, что одно и то же, его центральному элементу в результирующем изображении значение "единица", если суммарная площадь "единичных" пикселей превышает половину площади "скользящего окна". В нашем случае общая площадь "скользящего окна" равна 5*5 = 25 пикселей, поэтому центральному пикселю результирующего изображения присваивается значение "единица", если суммарная яркость пикселей в этом положении "скользящего окна" больше или равна 13, и присваивается значение "ноль" в противном случае.

    (рис 8.12) Структурная схема медианного фильтра (MMF25)

    Модуль MMF25 содержит 8 идентичных блоков, в которых осуществляется:

  • циклическое суммирование бинарных яркостей пикселей, принадлежащих одному и тому же положению "скользящего окна" на исходном изображении;
  • циклическое сравнение накопленной суммы с пороговым значением 13 и присвоение "единичного" или "нулевого" значения соответствующему пикселю выходного изображения;
  • транзитная передача содержимого "скользящего окна" параллельно по всем 25 пикселям исходного изображения.
  • Цикл выборки потока обрабатываемых данных из входного потока для каждого блока составляет 8 тактов. В результате в каждом из этих блоков формируется реакция всего медианного фильтра на закрепленные за ним положения "скользящего окна", которые кратны 8. Поэтому время начала работы каждого блока сдвинуто на 4 такта или, что одно и то же, на один пиксель в положении центрального элемента "скользящего окна" размером 5*5 пикселей на исходном изображении. Здесь 4 такта задержки образованы одним тактом функциональной задержки и тремя тактами технологической задержки, обусловленными транзитной передачей содержимого "скользящего окна" через предшествующий блок медианной фильтрации.

    Модуль медианной фильтрации MMF25 расположен на бит-матрице размером 24*28 БП, а каждый из 8 его блоков занимает по три строки и содержит (рис. 8.13):

  • блок управления циклом суммирования (CUADD1(8)): БП (1, 1), настроенный на бит-инструкцию CG с циклической константой $$C_{8}1:= 0000.0001$$, которая в каждом блоке сдвинута влево на количество тактов, отвечающее времени начала его работы;
  • блок суммирования (ADD): БП 3-й строки бит-матрицы с первого по 25-й столбец бит-матрицы;
  • блок сравнения с порогом и подстановки результата сравнения (THU): 27-й и 28-й столбцы.
  • При любом пространственном смещении модуля медианной фильтрации MMF25 или его отдельных блоков необходимо скорректировать фазу выхода циклической константы $$C_{8}1$$, придав ей вид, отвечающий фактическому сдвигу в начале их работы. Результирующее бинарное изображение начинает формироваться с 618(+2*128) такта в БП (3, 28, 2) слиянием по "ИЛИ" циклических реакций от каждого из 8 блоков.

    Время начальной задержки только в модуле медианной фильтрации MMF25 бинарного изображения "скользящим окном" 5*5 пикселей составляет 55 тактов, а суммарное время начальной задержки от входа субпроцессора до этого выхода составляет 618 тактов без учета начальной задержки 2*128 тактов для вхождения в конвейер модуля генерации тест-данных.

    Из приведенных данных видно, что каждый блок модуля медианной фильтрации ( MMF25 ) работает с циклом 8 тактов и на выходе формирует однобитный признак результата сравнения с порогом, равным 13. При этом составляющие его блоки реализуют следующие слов-инструкции:

    (рис 8.13) Топологическая схема 1-го блока модуля медианной фильтрации (MMF25)
  • блок управления циклом суммирования (CUADD1(8)): 1 слов-инструкцию генерации циклической константы $$С_{8}1$$, 25 операций селекции входных операндов (бит-инструкции AND) и 54 операции пересылки;
  • блок суммирования (ADD): 25 операций суммирования (бит-инструкции ADD), 25 операций пересылки промежуточных результатов суммирования и 25 операций транзитной пересылки данных в последующие блоки фильтрации;
  • блок сравнения с порогом и подстановки результата сравнения (THU): 1 сравнение, 1 формирование результата сравнения и 2 пересылки, одна из которых - собственный результат сравнения, а другая - результаты сравнения в предшествующих блоках.
  • Таким образом, пропускная способность модуля медианной фильтрации составляет по потоку 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) представляет собой делитель частоты CG на основе циклической константы вида $$C_{8}1:= 0000.0001$$ (БП (2, 1), настроенный на бит-инструкцию CG ). Выход генератора циклического строба SG (БП (1, 11, 3)) опережает по фазе на 2 такта момент появления первого пикселя результирующего изображения на выходе медианного фильтра и в данном случае составляет 616(+2*128) тактов.

    Соотношение фаз управляющего и обрабатываемых потоков поддерживается подстановкой бит-инструкций AND или NAND в бит-процессоры первой строки, и они должны редактироваться при любом пространственном перемещении как модуля медианной фильтрации, так и/или модуля подавления реакций на паразитные положения "скользящего окна". Модуль CMZ 4(128) генерирует циклическую константу $$С_{128}4$$, в которой 4 "единичных" бита, а остальные - "нули". Этот модуль вносит только один такт в общую задержку во всем предшествующем тракте обработки, и поэтому суммарное время задержки в субпроцессоре по его выходу (БП (1, 11, 2)) составляет 619(+2*128) тактов.

    В модуле CMZ 4(128) в одном 8-битном цикле выполняются (рис. 8.15):

  • 1 генерация циклической константы и 2 пересылки в задающем генераторе NG (БП (2, 1));
  • 1 формирование (модификация) циклической константы $$С_{128}1$$ в блоке CG (БП с первого по восьмой столбец бит-матрицы) и 1 пересылка;
  • 1 формирование циклической константы $$C _{128}4$$ в модуле SG методом слияния по трем "ИЛИ" (с задержкой) циклической константы $$С_{128}1$$ (БП девятого столбца бит-матрицы), инверсия циклической константы $$C _{128}4$$ (БП (1, 10)) и 3 пересылки,
  • фильтрация входного потока (БП (1, 11)) в блоке AND и 2 пересылки.
  • (рис 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) содержит:

  • циклический накапливающий сумматор (ADDA) двоичной последовательности до 124 бит или, что одно и то же, пикселей, который состоит из четырехкаскадного сумматора ADD и сумматора-накопителя ADDR;
  • блок управления (CADDA16(128)) циклом накопления, который генерирует циклическую управляющую константу, содержащую 16 "единиц" и 112 "нулей";
  • блок циклического сглаживания (DWH) построчной гистограммы 2-элементным "скользящим окном".
  • В четырех каскадах потокового сумматора ADD сначала попарно складывается содержимое четных и нечетных бит, выделенных из обрабатываемого потока. Затем по аналогичной схеме суммируются четные и нечетные 2-битные операнды, выделенные из обрабатываемого потока, и т. д. до получения 16-битных операндов (с 8 значащими разрядами), которые уже суммируются в ADDR по классической схеме накопления в аккумуляторе с управляемым циклом.

    Потоковая часть сумматора ADD (рис. 8.17) занимает с 20-го по 28-й столбцы бит-матрицы и имеет только информационный вход (3, 28, 4) с начальной задержкой 619(+2*128) тактов.

    Все локальные блоки управления ADD распределены по сумматору, и с их помощью один поток из каждого предшествующего каскада суммирования расщепляется в пространстве на два потока, которые затем выравниваются по времени задержки и суммируются. Для этих целей в первом каскаде используется меандр (и его инверсия) вида …0101…01, во втором каскаде - … 00110011…0011 и т. д. Выход потоковой части сумматора ADD расположен в бит-процессоре (1, 20, 1), где общее время задержки составляет 647(+2*128) тактов.

    (рис 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) построчной гистограммы представляет собой:

  • задающий генератор (LG) в виде счетчика до 27 тактов (2-я и 3-я строки бит-матрицы в пределах с 5-го по 12-й столбец);(рис 8.17) Топологическая схема модуля формирования построчной гистограммы обрабатываемого изображения (LHM)
  • управляемый генератор (PG) в виде счетчика до 24 тактов (2-я и 3-я строки бит-матрицы в пределах 13-го и 14-го столбцов). Собственно управляющий 16-битный "единичный" строб "чтение" формируется БП (1, 14, 3), настроенном на бит-инструкцию ST1. В этой бит-инструкции на 2-й управляющий вход (снизу) подается циклическая константа $$C_{16}1$$, а на 1-й информационный вход (слева) - циклическая константа $$C_{128}1$$. Данный строб используется в БП (2, 17), обеспечивая циклическое "чтение" накопленной суммы, а его инверсия используется в БП (1, 18) для циклического обнуления содержимого аккумулятора.
  • Блок циклического сглаживания DWH2 построчной гистограммы 2-элементным "скользящим окном" представляет собой сумматор двух смежных операндов с задержкой предыдущего на 128 тактов. На топологической схеме рис. 8.17 он занимает БП: четыре первых столбца полностью, с 5-го по 11-й в первой строке и с 5-го по 10-й в четвертой строке бит-матрицы. Первый значащий результат на его выходе (БП (1, 11, 2)) появляется на 900-м такте после полного первого цикла суммирования для данного кадра обрабатываемого изображения (без учета времени начальной задержки на 2*128 тактов в модуле генерации тест-данных).

    Предшествующий ему цикл срабатывания 2-элементного "скользящего окна" соответствует $$772+Q*2^{14}$$ такту и используется в канале обнаружения отказов, так как имеет заранее известное содержимое, отвечающее реакции на две тестовые строки. Здесь $$Q$$ - индекс кадра обрабатываемого изображения. В основном канале обработки реакция 2-элементного "скользящего окна" на этом цикле обнуляется управляющим блоком ( DWHCU ), который на топологической схеме совмещен с модулем свертки вектор-столбца SMM.

    Из приведенных данных видно, что в модуле формирования построчной гистограммы обрабатываемого изображения ( LHM) в одном 16 -битном цикле выполняются:

  • в циклическом накапливающем сумматоре (ADDA): в каждом из четырех каскадов сумматора ADD - 1 суммирование, 2 операции "И", 1 операция генерации константы и 6 пересылок, а в сумматоре-накопителе ADDR - 1 суммирование, 2 операции "И" и 6 пересылок;
  • в блоке управления CADDA16(128): 4 генерации циклической константы $$С_{8}1$$, 8 ее пересылок, 1 генерация циклической константы $$С_{16}1 $$ и 1 ее пересылка, 1 генерация или проверка условия формирования циклической константы $$С_{128}1$$ и 1 ее "пересылка", 1 цикл формирования константы $$С_{128}16$$ ;
  • в блоке циклического сглаживания (DWH): 8 пересылок в FIFO-регистровой линии задержки, 1 сложение и 1 пересылка результата.
  • Таким образом, пропускная способность модуля формирования построчной гистограммы обрабатываемого изображения ( 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-элементным "скользящим окном" построчной гистограммы каждого кадра исходного изображения. Данный модуль включает:

  • 8-разрядный умножитель (ML) положительных чисел;
  • блок генерации весовых коэффициентов (WGU) "свертки" вектор-столбца построчной гистограммы;
  • блок генерации циклической константы $$C_{128}1$$ (CCU1(128));
  • накапливающий сумматор оператора свертки вектор-столбца (ADDRV32);
  • блок управления (CADDR32) циклом накопления оператора свертки ADDRV32 и аналогичным циклом в сумматоре-накопителе построчной гистограммы ADDRH32; этот блок генерирует циклическую управляющую константу, содержащую 32 "единицы" и (214-32) "нулей";
  • накапливающий сумматор построчной гистограммы (ADDRH32);
  • блок обнуления (DWHCU) паразитных взаимодействий строк из разных кадров, попавших в одно 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).

    Накапливающий сумматор ADDRH32 определяет суммарную яркость каждого кадра обрабатываемого бинарного изображения, и он эквивалентен по функции сумматору ADDRV32 с той разницей, что в нем формируется прямая, а не взвешенная сумма элементов вектор-столбца

    построчной гистограммы. Его информационный вход расположен в бит-процессоре (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-битном цикле выполняются:

  • в 8-разрядном умножителе (ML): 1 операция умножения 16-битных операндов с 32-битным результатом, 1 операция задания разрядности и 1 пересылка произведения в сумматор-накопитель (пересылки множимого, множителя и управляющей константы учтены в предшествующих модулях);
  • в блоке генерации весовых коэффициентов (WGU): 1 формирование, 1 чтение, 1 пересылка весового коэффициента;
  • в блоке генерации циклической константы $$C_{128}1$$ (CCU1(128)): 16 операций генерации задающей циклической константы $$C_{8}1$$ и 32 ее пересылки; 4 операции контроля приращения циклической константы $$C_{128}1$$ и 36 ее пересылок, так как эта константа используется и как аргумент приращения при формировании весового коэффициента, и как сигнал "чтение" на каждом цикле работы модуля WGU, и как сигнал управления в модуле ML;
  • в накапливающем сумматоре оператора свертки вектор-столбца (ADDRV32): 1 суммирование, 2 операции "И" и 3 пересылки;
  • в блоке управления (CADDR32) циклом накопления: 16 генераций задающей циклической константы $$C_{8}1$$ и 32 ее пересылки; 4 генерации циклической константы $$C_{32}1$$ и 4 ее пересылки; 4 контроля приращения циклической константы $$С_{2}^{14}1$$ и 4 ее пересылки; 4 контроля приращения циклической константы $$С_{2}^{14}32$$ и 8 ее пересылок в сумматор-накопитель;
  • в накапливающем сумматоре построчной гистограммы (ADDRH32): 1 суммирование, 2 операции "И" и 3 пересылки;
  • в блоке обнуления (DWHCU) паразитных взаимодействий: 1 операция AND и 1 пересылка результата.
  • Таким образом, пропускная способность модуля свертки вектор-столбца ( 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-разрядный делитель (DL), где в качестве делимого выступают значения $$B_{S}$$ свертки вектор-столбца построчной гистограммы отфильтрованного изображения, а в качестве делителя - суммарная черно-белая яркость одного кадра обрабатываемого изображения;
  • преобразователь "прямой код - дополнительный код" делимого (DCC) при смене знака с $$(+D)$$ на $$(-D)$$, который объединен с блоком генерации циклической константы $$C_{32}1$$.
  • (рис 8.20) Структурная схема модуля вычисления "центра масс" (CMM)

    Делитель DL (рис. 8.21) на 7 двоичных разрядов занимает бит-матрицу размером 8*62 БП и имеет:

  • три информационных входа: делимого $$B_{S}$$ (на рис. 8.21-а - это БП (3, 9, 3)) и делителя, который на 966 такте появляется на входах БП (4, 9, 3) и (6, 9, 3) с отрицательным $$(-D)$$ и положительным $$(+D)$$ знаком соответственно;
  • один управляющий вход (1, 9, 3), где на 966 такте появляется циклическая константа $$C_{32}1$$, задающая разрядность и формат обрабатываемых данных.
  • В данном случае использован классический для конвейерной арифметики формат фиксированной запятой: "нулевой" (старший) 32-й бит служит для блокирования паразитного распространения "единицы переноса" по потоку данных, 31-й бит - для хранения и передачи знака операнда, а остальные 30 бит - для хранения и передачи значащей части операндов.

    Из приведенных данных видно, что из 214 тактов, соответствующих полному циклу обработки одного кадра изображения, делитель полезно используется только на 32 тактах, но занимает порядка 12 % всей площади бит-матрицы.

    Первый результат на выходе делителя появляется начиная с 17699 такта, и представлен в инверсном виде.

    В делителе использован алгоритм деления со сдвигом и восстановлением остатка:

    $$\alpha_i = \begin{cases} 2\alpha_{i-1}-D, \text{ если } \alpha_{i-1} \ge 0, \\ 2\alpha_{i-1}+D, \text{ если } \alpha_{i-1} \pi 0. \end{cases} \,\,\,\, z_i = \begin{cases} 0, \text{ если } \alpha_{i} \pi 0, \\ 1, \text{ если } \alpha_{i} \ge 0. \end{cases}$$

    где $$\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 -битном цикле выполняются:

  • в 7-разрядном делителе (DL): 29 операций деления 32-битных операнда с 7-битным результатом и 29 пересылок результата, из которых только один информативен;
  • в преобразователе "прямой код - дополнительный код" делимого (DCC): 29 инверсий знака, 29 преобразований и 29 пересылок результата;
  • в блоке генерации циклической константы $$C _{32}1$$: 211 генераций циклической константы $$C_81$$ и 212 ее пересылок, 29 генерации циклической константы $$C_{32}1$$ и 211 ее пересылок.
  • Таким образом, физическая пропускная способность модуля определения положения центра масс астроориентира на оси Х ( 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) содержит:

  • блок управления циклом сравнения (CUICLM), который генерирует циклическую константу вида $$С_{2}^{14}8$$, в которой 8 "единиц", а остальные (214-8) - "нули";
  • блок генерации эталонной реакции (SRP) вида $$01111001$$ ;
  • блок выделения тестовых строк (SLC), который определяет момент появления на входе тестовой реакции;
  • блок сравнения (CMPR), который вырабатывает признак "единица", если произошел сбой или отказ в тракте логической обработки.
  • Согласно схеме рис. 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- битном цикле выполняются:

  • в блоке управления циклом сравнения (CUICLM): 212 генераций циклической константы $$C_{8}1$$ и 213 ее пересылок;
  • в блоке генерации эталонной реакции (SRP): 211 генераций циклической константы 79 и 211 ее пересылок; 211 операций "И" и 211 "пересылок" результата;
  • в блоке выделения реакций на тестовые строки (SLC): 211 операций "И" и 211 "пересылок" результата;
  • в блоке сравнения (CMPR): 211 операций "XOR", 214 операций "ИЛИ" с задержкой при формировании признака результата сравнения и 214 "пересылок" результата, 1 214-битная операция запоминания результата сравнения и 1 операция пересылки 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, из данных которой видно:

  • Проблемно-ориентированный субпроцессор слежения за "центром масс" астроориентира состоит из 1 специализированного контроллера ( INS16 ) и 10 специализированных процессоров арифметико-логической обработки: DTM, SWM25, MMF25, CMZ 4(128), LHM, SMM, SMM d, CMM, CMM d, ICLM, в каждом из которых имеется одно или несколько операционных, управляющих и коммутационных устройств, поддерживающих 11 информационно связанных и одновременно протекающих процессов потоковой обработки операндов. При этом составляющие специализированные процессоры сами являются многопроцессорными RISC -подобными системами, имеющими по несколько устройств управления и обработки с постоянными циклами исполнения всех команд и независимыми шинами передачи всех управляющих и информационных потоков. Например, модуль медиа нной фильтрации MMF25 состоит из 8 идентичных процессоров, а модуль свертки SMM - из одного умножителя и двух сумматоров.
  • Формат преобразуемых операндов колеблется от 1 до 128 бит, причем количество операций пересылки обрабатываемых и управляющих операндов почти в 5 раз превосходит количество операций, затрачиваемых на управление, и почти в 10 раз - количество операций, затрачиваемых на функциональную обработку потоков данных.
  • Максимальный вклад в пропускную способность по потокам исполняемых инструкций и преобразуемых потоков данных вносят модули "скользящего окна" ( SWM25 ) и медианной фильтрации ( MMF25 ), в которых обрабатываются однобитные операнды. Реализация этих поток-операторов представляет проблему и в классических архитектурах, не столько из-за сложности выполняемых преобразований, сколько из-за резкого возрастания интенсивности потоков преобразуемых и управляющих данных, обеспечивающих циклы "перемещения" "скользящего окна" по кадру изображения. Только задача управления перемещением "скользящего окна" имеет 4 вложенных цикла: модификация индекса строки изображения, модификация индекса столбца изображения, модификация индекса строки "скользящего окна", модификация индекса столбца "скользящего окна". В результате размерность задачи управления скольжением по исходному изображению оценивается как $$О(N^{2}*M^{2})$$, где $$N$$ и $$M$$ - линейные размеры изображения и "скользящего окна" соответственно.
  • Распределение слов-инструкций по операционным модулям субпроцессора
    Тип Тип блока и Тип Количество слов-инструкций
    модуля размеры модуля операнда ОУ Управление Пересылки Итого
    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

    На основе приведенных данных можно утверждать:

  • Задача слежения за "центром масс" астроориентира содержит достаточно богатую смесь МКМД-бит-потоковых арифметико-логических, интерфейсных, управляющих и диагностических процедур как по форматам и разрядности операндов, так и по алгоритмам их реализации. Поэтому ее можно рассматривать как представительную смесь при анализе потребительских характеристик МКМД-бит-потоковых субпроцессоров.
  • Чем выше коэффициент распараллеливания вычислений по потоку команд, тем ближе параллельные (Б)ВС к работе в режиме интерпретации, а не трансляции (компиляции) исполняемых программ, так как в этом случае все большему числу процессоров необходимо задать параметры настройки исполняемых команд и преобразуемых ими данных.
  • В МКМД-бит-потоковых субпроцессорных трактах достаточно просто сопрягается обработка данных разного формата и разной разрядности при сохранении общего темпа поступления входного потока, который регламентируется теоремой Котельникова. Этот эффект достигается не только за счет глубокой конвейеризации по потоку команд, но и за счет векторизации по потоку данных.

    Наиболее четко данный эффект проявился в модулях "скользящего окна" и медианной фильтрации, в первом из которых коэффициент векторизации должен равняться "площади скользящего окна" (в данном случае она равна 25 пикселям), а во втором этот коэффициент возрастает почти в 4 раза за счет векторно-конвейерной обработки в 8 блоках суммирования. В этом и только в этом случае можно выровнять темпы поступления потока входных данных и их обработки в макроконвейере, содержащем 12 специализированных процессоров.

  • Разрядность операндов нарастает по мере приближения к выходу субпроцессора, а фактическая (пользовательская) интенсивность использования оборудования при этом падает практически до нуля, как это имеет место в делителе, который с учетом дублирующего модуля занимает бит-матрицу 16*62 = 992 БП, что составляет 33,6 % от общего размера бит-матрицы 44*67 = 2948 БП.

    Основной вклад в аппаратные затраты и в повышение пропускной способности (производительности) МКМД-бит-потоковых субпроцессоров вносят массовые операции управления и (сверх)массо-вые пересылки управляющих и преобразуемых операндов, которые составляют соответственно 15,1 % и 76,54 %, в то время как арифметико-логические операции составляют всего лишь 8,36 % от общего количества операций (см. табл. 8.1).

  • Управление МКМД-бит-потоковыми субпроцессорами в основном сводится к организации работы различного рода таймеров, что больше свойственно процессорам, ориентированным на задачи управления устройствами электро- и радиоавтоматики, а не арифметико-логической обработки потоков данных.
  • 8.4. Анализ характеристик качества работы МКМД-бит-потокового субпроцессора слежения за центром масс астроориентира

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

    Оценка пропускной способности по потокам команд и данных

    Согласно данным предыдущего раздела, средневзвешенная по разрядности потоковая производительность МКМД-бит-потокового субпроцессора слежения за "центром масс" астроориентира с учетом дублирующих модулей 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 -архитектур с постоянным, однотактным циклом исполнения всех ассемблерных инструкций.

    В отличие от RISC -архитектур, в МКМД-бит-потоковых субпроцессорах цикл исполнения каждой ассемблерной слов-инструкции зависит от разрядности данных, которая в нашем случае варьирует по ходу вычислений в достаточно широких пределах от 1 до 128 бит. Тем не менее цикл исполнения всех слов-инструкций остается постоянным и согласованным друг с другом благодаря использованию требуемого коэффициента векторизации, поддерживающего единый темп обработки по всему макроконвейеру из 11 специализированных процессоров RISC -подобной архитектуры.

    Использование варьируемого коэффициента векторизации приводит к тому, что пропускная способность по потокам данных падает по мере их распространения по операционным модулям субпроцессора, в данном случае от 25 $$F_{t}$$ в модуле "скользящего окна" и $$100 F_{t}$$ в модуле медианной фильтрации до $$(2-4) F_{t}$$ в модуле "свертки". Для субпроцессора на СБИС Н1841 ВФ1 пропускная способность по потокам данных составляет соответственно 125, 500 и (10-20) Мбит/с. Такая пропускная способность по потокам команд и данных более характерна для современных персональных ЭВМ, работающих на частотах порядка единиц ГГц. Это позволяет говорить о том, что МКМД-бит-потоковые вычислительные технологии способны компенсировать в проблемно-ориентированных областях применения (200-300)-кратное технологическое отставание за счет более эффективной организации вычислений на уровне слов- и поток-инструкций. С экономических позиций это значит, ч то использование таких вычислительных технологий позволяет снизить на (1-2) порядка стоимость (Б)ВС за счет снижения стоимости комплектующих СБИС с простейшей архитектурой, которая аппаратно поддерживается несколькими сотнями логических вентилей. Именно схемотехническая "прозрачность" архитектуры бит-матричных СБИС резко снижает стоимость их бездефектного проектирования и стоимость их промышленного контроля. Более того, она позволяет достичь на широко доступных субмикронных микроэлектронных технологиях предельно высоких (не ниже 80 %) и недостижимых в других изделиях показателей выхода годных СБИС, который служит основным индикатором их цены.

    Приведенные значения пропускной способности по потокам инструкций являются пиковыми, так как они не учитывают издержек на вхождение МКМД-бит-потокового субпроцессора в стационарный режим работы конвейера из составляющих его операционных модулей. Поэтому имеет смысл оценить пропускную способность субпроцессора слежения за "центром масс" астроориентира с учетом издержек на его вхождение в достаточно глубокий конвейер, на выходе которого первая вычисленная координата $$x^{0}_{1}$$ появляется начиная с 17698 такта. Такое время задержки превосходит на 8 % время экспозиции одного кадра размером 214 = 16384 тактов, если считать равными такты формирования и ввода пикселей в бит-матрицу. После вхождения в конвейер обработка каждого следующего кадра, а значит, и вычисление каждой следующей координаты обходится в 16384 тактов, так как согласно одному из базовых принципов МКМД-бит-потоковой организации вычислений скорости обработки и передачи данных равны. Поэтому в самом ху дшем случае общее время вычисления десяти ортогональных координат для всех пяти фотоприемников (время 1-го цикла обработки) равно $$(17 698+16 384*9)*\tau$$. В СБИС Н1841 ВФ1 $$F_{t} = 5$$ МГц, то есть $$\tau = 2*10^{-7}$$ сек, а в современной бит-матрице с далеко не рекордной тактовой частотой 250 МГц $$\tau = 4*10^{-9}$$ сек. Поэтому время обработки составляет соответственно в первом случае $$\approx 33$$ мсек, а во втором случае $$\approx 0,66$$ мсек.

    Полученные численные значения позволяют утверждать:

  • Отечественная СБИС Н1841 ВФ1 разработки 1985 г. до сих пор способна поддержать темп реального времени в специализированном МКМД-бит-потоковом субпроцессоре слежения за "центром масс" астроори-ентира при частоте формирования изображения до 60 кадров/с.
  • Бит-матричная СБИС той же архитектуры, но работающая на тактовой частоте 250 МГц, позволяет перейти от алгоритмически ориентированных к проблемно-ориентированным субпроцессорам, которые способны решить широкий круг задач контура реального времени аэрокосмических ЛА. Действительно, на один цикл вычисления координат "центра масс" пяти астроориентиров такой субпроцессор израсходует только 2 % своего рабочего времени, а оставшиеся 98 % временного ресурса можно использовать как для решения других функциональных задач, так и для принудительного тестирования (сверх)многопроцессорной бит-матрицы.
  • При работе на тактовой частоте 250 МГц можно достичь пропускной способности по потокам данных порядка 25 Гбит/с, что даже по современным меркам соответствует рекордным требованиям к интерфейсам, поддерживающим темп реального времени при обработке высокоскоростных изображений.
  • Оценка вычислительной устойчивости

    В вычислительной технике [227] принято считать вычислительный процесс устойчивым, если абсолютная или относительная погрешность вычислений не превосходит соответствующей погрешности представления исходных данных.

    С таких позиций выполняемые ЭВМ арифметико-логические действия над данными не должны вносить дополнительных погрешностей по отношению к погрешности представления, которая появляется не в самой ЭВМ, а на ее входе.

    Основным источником погрешностей в цифровой вычислительной технике является ограниченная разрядная сетка передаваемых и преобразуемых операндов, что обусловлено ограниченной разрядностью регистров временного хранения, аккумуляторов и шин передачи данных. В инженерной практике принято считать, что максимальная абсолютная погрешность представления исходного числа не превосходит "веса" младшего значащего разряда $$2^{-n}$$, где $$n$$ - разрядность операнда.

    Среди арифметико-логических операций основной вклад в погрешность вычислений вносят две:

  • денормализация чисел, которая интенсивно используется при сложении операндов в формате плавающей запятой;
  • пересылка промежуточных результатов, которая случайным образом стимулирует округление промежуточных результатов вычислений (см. раздел 6.6 курса "Задачи и модели вычислительных наноструктур") при их перезаписи из регистра-аккумулятора, обладающего максимальной для данной ЭВМ разрядностью, в ОЗУ, для чего используются шины данных, разрядность которых обычно в 1,5-2 раза меньше чем у аккумулятора.
  • Формат плавающей запятой является компромиссом между необходимостью обеспечения высокой точности вычислений (разрядность мантиссы) в широком динамическом диапазоне изменения преобразуемых величин (разрядность порядка). С точки зрения сохранения вычислительной устойчивости только варьируемый по ходу вычислений формат фиксированной запятой способен полностью удовлетворить требования приведенного выше определения, так как в нем отсутствуют операции денормализации, а округление с требуемой точностью можно провести один раз и только над результирующими данными.

    Как видно из данных предыдущего раздела, в МКМД-бит-потоковом субпроцессоре слежения за "центром масс" астроориентира все арифметико-логические действия выполняются с требуемой на данном этапе вычислений точностью, то есть с нулевой абсолютной погрешностью.

    Так, в модуле формирования построчной гистограммы обрабатываемого изображения ( LHM ) без потери темпа реального времени осуществлен переход от однобитных к 16-битным операндам, в которых только 7 младших бит могут быть значащими, так как после медианной фильтрации накопленная сумма "единиц" не может превышать значения 124.

    Аналогично в модуле "свертки" ( SMM ) при умножении операндов разрядность удвоена и доведена до 32 бит, что сохраняет и все биты произведения, и все биты накапливаемой впоследствии суммы. Такое увеличение разрядной сетки без потери темпа реального времени оказалось возможным потому, что в модуле LHM один выходной операнд вырабатывается на каждую строку обрабатываемого изображения, длина которой равна 128 бит, а в модуле свертки SMM оба выходных операнда вырабатываются на один кадр обрабатываемого изображения, "длина" которого равна 16384 битам. В данном случае именно размеры строки и кадра регламентируют минимальную погрешность промежуточных и окончательных результатов, соответственно 2-128 и 2-16384. Тем не менее, результат деления представлен операндом из 7 значащих бит, так как координата "центра масс" астроориентира на изображении 128*128 пикселей не выходит за пределы этой разрядной сетки.

    Таким образом, можно утверждать, что МКМД-бит-потоковый субпроцессор слежения за "центром масс" астроориентира является вычислительно устойчивым и не вносит дополнительных погрешностей в общий тракт обработки видеосигналов.

    Единственное негативное последствие использования МКМД-бит-потоковой вычислительной технологии в тракте управления (К)ЛА - это ощутимое время задержки, которое на 8 % превосходит время формирования, а значит, и время обработки любыми другими вычислительными средствами 1 кадра входного видеоизображения. Однако эти издержки можно минимизировать, повысив частоту формирования и обработки исходного видеоизображения до 100-1000 кадров/с, для чего имеется временной запас при использовании бит-матричных СБИС, работающих на тактовой частоте 250 МГц.

    Оценка отказоустойчивости

    Отказоустойчивость МКМД-бит-потокового субпроцессора слежения за "центром масс" астроориентира будет проведена раздельно для подсистемы обнаружения и подсистемы парирования отказов.

    Из приведенных в предыдущем разделе данных видно, что в темпе реального времени функциональный контроль работоспособности субпроцессора слежения за "центром масс" астроориентира осуществляется двумя способами:

  • по классической схеме мажоритарного резервирования, в которой использовано дублирование микропрограмм арифметических блоков схемы и сравнение полученных результатов в микропрограммном блоке принятия решений, который реализован на той же бит-матрице, что и контролируемые модули;
  • по схеме информационной избыточности, в которой разделены во времени циклы подачи пользовательских и тестирующих эталонных данных, что требует временной селекции реакций на эталонные данные.
  • В данной схеме использован не сверхнадежный, а равнонадежный блок принятия решений, отказ которого воспринимается как отказ всего субпроцессора, что увеличивает вероятность "ложной тревоги", которая при гипотезе равновероятного распределения отказов пропорциональна "площади" данного микропрограммного модуля. Если в состав этого модуля включить и БП, обеспечивающие доставку тестового признака до периферии бит-матрицы, то и в этом случае его "площадь" не превысит 100 БП, то есть вероятность "ложной тревоги" ниже вероятности отказа одного БП в (44*80 = 3520)/100 = 35,2 раза.

    Главная специфика функционального контроля состоит в том, что с его помощью вырабатываются тестовые реакции не на все, а только на функционально значимые отказы, которые проявляются в содержимом промежуточных или окончательных результатов вычислений. По сравнению с прямым аппаратным резервированием, выполненным на уровне узлов каждого БП, такая схема обнаружения отказов обладает меньшим уровнем "ложной тревоги" по отношению к решаемой задаче пользователя. Однако при этом в бит-матрице накапливаются функционально "незначимые" аппаратные отказы, карта которых оказывает существенно влияние на эффективность работы подсистем локализации и парирования отказов (см. раздел 7.6).

    Отсюда встает задача оценки среднего количества реально существующих, но тем не менее "индифферентных" по отношению к решаемой задаче аппаратных отказов. Для получения такой оценки используем схему декомпозиции, рассмотренную в разделе 6.4 (см. рис. 6.48 и 6.49), согласно которой поток-оператор слежения за "центром масс" астроори-ентира разбивается на составляющие слов-инструкции, которые и служат объектом диагностики.

    Цель исследований - определить устойчивость к отказам как самого поток-оператора слежения за "центром масс" астроориентира, так и составляющих его слов-инструкций. В качестве показателя устойчивости к отказам использовано количество индифферентных отказов, не нарушающих условия правильной работы объекта диагностики. Разбиение поток-оператора на составляющие его слов-инструкции и отвечающие им операционные, управляющие и коммутационные блоки необходимо проводить для корректного синтеза тестовых последовательностей, позволяющих достаточно полно обнаружить отказы, нарушающие правила функционирования составляющих слов-инструкций и поток-инструкции в целом. Как и ранее, считается, что отказ любого вентиля бит-матрицы равновероятен.

    Из приведенной в предыдущем разделе структурно-функциональной схемы субпроцессора видно, что для исследования его устойчивости к индифферентным отказам достаточно оценить отказоустойчивость следующих слов-инструкций (рис. 8.24):

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

    Здесь $$Р$$ - вероятность сохранения работоспособности; $$N$$ - количество одновременных отказов вентилей в теле слов-инструкции;1 - кривая для генераторов циклических констант и медианного фильтра, 2 - для умножителя, 3 - для делителя и преобразователя из прямого кода в дополнительный, 4 - для сумматора-накопителя.

    Из приведенных данных видно, что в 40 % случаев система обеспечения живучести МКМД-бит-потоковых субпроцессоров "поднимает тревогу", прерывает функциональную обработку и включается в работу только тогда, когда классическая схема мажоритарного резервирования фон Неймана уже исчерпала свой 3-кратный аппаратный ресурс.

    Сопоставив графики рис. 8.24 и топологические схемы отвечающих им операционных блоков, можно убедиться: чем более "рыхлая" структура микропрограммы, тем выше ее нечувствительность к отказам. Объясняется это тем, что в более "рыхлых" топологиях ресурсы БП используются по минимуму и неравномерно, что предопределено МКМД-режимом распараллеливания вычислений. В результате запрограммированная бит-матрица по используемому аппаратному ресурсу является существенно неоднородной, что усложняет задачу нарушения условий правильного функционирования именно этого БП и именно в этой микропрограмме. Сами микропрограммы исследуемых слов-инструкций синтезированы по критерию максимального использования ресурсов каждого БП или, что одно и то же, по минимуму использования площади всей бит-матрицы.

    (рис 8.24) Вероятность сохранения работоспособности слов-инструкций

    Поэтому "рыхлость" их топологии в данном случае можно охарактеризовать тремя показателями:

  • уровнем неоднородности термального состава микропрограммы или, что одно и то же, степенью использования МКМД-фактора при выборе термального состава для каждой слов-инструкции;
  • степенью использования в каждом БП аппаратного ресурса или, что одно и то же, уровнем скрытой структурно-функциональной избыточности бит-матрицы, определяемой принципами и методами МКМД-бит-потоковой организации вычислений;
  • количеством неиспользуемых БП или топологическими издержками компоновки как отдельных слов-инструкций, так и всей микропрограммы поток-оператора; в нашем случае эти издержки составляют 3520-2776 = 744 БП, или почти 27 % по отношению к рабочей "площади" бит-матрицы (см. табл. 8.1 - 2776 БП).
  • В результате проведенных исследований подтвердилась применимость соотношения (3.5), которое предполагает, что вероятность сохранения работоспособности при $$k$$ отказах равна вероятности сохранения работоспособности при одном отказе в степени $$k$$. Более того, оказалось, что вероятность сохранения работоспособности операционных модулей, реализующих конкретные слов-инструкции, можно оценить как сумму (по составляющим термам) произведений вероятности сохранения работоспособности терма и вероятности попадания отказа в этот терм.

    Наиболее наглядно это можно показать на примере умножителя, микропрограмма которого приведена на рис. 8.25. Здесь практически все столбцы бит-матрицы однородны по своей структуре, а вероятность сохранения работоспособности БП из каждой строки (при одном неисправном вентиле) равна:

  • для первой строки, в БП которой используется только канал транзита WTR: $$p = 0,804$$ ;
  • для второй строки, в БП которой используется только функция St1: $$p = 0,668$$ ;
  • для третьей строки, в БП которой используется только функция AND: $$p = 0,72$$ ;
  • для четвертой последней строки, в БП которой используется только функция ADD: $$p = 0,663$$.
  • При равновероятной гипотезе отказ 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) на все уровни иерархии имитационного моделирования. Это кардинальным образом снижает затраты на оценку работоспособности МКМД-бит-потоковых субпроцессоров, которую можно осуществить достаточно достоверно и полно, не прибегая к анализу полного гиперпространства отказов на бит-матрице. Для этого моделирование и экспериментальную оценку последствий одиночных отказов можно ограничить отдельными блоками и узлами БП, содержащими не более 100 транзисторов, и на этой основе провести по формуле (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 однородных составляющих блоков занимает три строки бит-матрицы. Таким образом, показано:

  • минимальные временные затраты на парирование карт отказов обеспечивает фиксированное в пространстве разбиение микропрограммы субпроцессора на составляющие его процессоры с независимыми операционными, управляющими и интерфейсными блоками, которые обеспечивают минимум информационных FIFO-регистровых связей между собой;
  • при некратном резервировании (всего 38 %) парируется "в среднем" карта из 17 отказов, распределенных по бит-матрице по равномерному закону; для сравнения, при трехкратном мажоритарном резервировании по схеме фон Неймана удается парировать всего 1 отказ, после чего один из дублирующих модулей отключается и поэтому теряется возможность выбора правильной реакции из двух возможных;
  • реальная аппаратная избыточность МКМД-бит-потокового субпроцессора слежения за "центром масс" астроориентира выше 38 %, так как в системе обнаружения отказов продублированы арифметические модули, что увеличило фактический резерв на 13*44+8*55 = 572+440 = 1012 БП, или на 42 % от площади рабочего поля бит-матрицы размером 36*67 = 2412 БП.
  • Учитывая тот факт, что в процессе работы субпроцессора накапливается существенная индифферентная карта отказов, тестировать необходимо всю бит-матрицу, а не отдельные ее части. Объясняется это тем, что для принятия правильного решения о толерантном (пере)размещении рабочего тела микропрограммы необходимо знать всю действующую карту отказов, так как при таком (пере)размещении изменяются требования к бит-процессорам, что может перевести любой отказ из индифферентного в функционально значимый.

    Проведенный анализ основных потребительских характеристик МКМД-бит-потокового субпроцессора слежения за "центром масс" астроориентира показал:

  • Основное системотехническое преимущество МКМД-бит-потоковых вычислительных технологий состоит в том, что они позволяют на самых ранних этапах проектирования проблемно- и алгоритмически ориентированных субпроцессорных трактов оценить влияние принимаемых конструктивных и технических решений на их отказоустойчивость, то есть сделать процесс проектирования управляемым по фактору отказоустойчивости.
  • Производительность при решении задачи слежения за факелом на МКМД-бит-потоковых субпроцессорах составляет не менее 3,6*103 MIPS, а пропускная способность по потокам данных составляет порядка 500 Мбит/с, что более характерно для современных персональных ЭВМ, работающих на частотах порядка единиц ГГц.
  • Естественная структурно-функциональная избыточность БП разбивает все множество отказов на два класса: функционально значимые и индифферентные по отношению к исполняемой бит-операции. Однако рост отказоустойчивости бит-процессоров на схемотехническом уровне негативно сказывается на системотехническом уровне, увеличивая латентный период накопления карты отказов. Это может привести к тому, что скрытое нарастание карты отказов в бит-матрице достигнет катастрофических размеров к моменту появления первого функционально значимого, а значит, обнаруживаемого алгоритмически ориентированными средствами отказа. 4. За счет фиксированного в пространстве распределения потока инструкций по бит-матрице повышается функциональная отказоустойчивость всего субпроцессорного тракта в целом, что приводит к накоплению в латентном периоде от 5 до 30 отказов, при этом парируются в темпе реального времени порядка 17 отказов при 38%-ном аппаратном резерве.
  • Системотехнические выводы по лекции 8

  • В МКМД-бит-потоковых вычислительных технологиях структурно-функциональная декомпозиция заданий пользователя представляет собой многокритериальную задачу, в которой необходимо учесть:
  • минимум аппаратных затрат и максимум неоднородности составляющих модулей, повышающий устойчивость к отказам,
  • минимум информационных связей между модулями, снижающий затраты на редактирование этих связей после проведения над телом микропрограммы толерантных аффинных преобразований, и целый ряд других требований к топологии микропрограммы, обеспечивающих удобство работы всей системы обеспечения живучести субпроцессора.
  • Естественная структурно-функциональная избыточность МКМД-бит-потоковых субпроцессоров используется комплексно, обеспечивая не только (сверх)высокие коэффициенты распараллеливания вычислений, но и повышая более чем на порядок их отказоустойчивость в сравнении с параллельными системами на основе процессоров традиционной архитектуры, а также вычислительную устойчивость, гарантируя нулевую абсолютную погрешность за счет вариации разрядной сетки по ходу вычислений.
  • Чем выше МКМД-уровень распараллеливания вычислений, тем большему количеству процессоров необходимо задать управляющие параметры и начальные условия, что в пределе, когда вычисления организованы по принципу "одна (бит)инструкция - один (бит)про-цессор", приводит к работе всей (Б)ВС в режиме интерпретации, а не компиляции программ.
  • Работа МКМД-бит-потокового субпроцессора в режиме интерпретации, а не трансляции или компиляции программ:
  • сопряжена с временными издержками, которые сгруппированы в отдельный этап ввода микропрограммы в бит-матрицу и которые окупаются при выполнении системообразующего неравенства (6.1) курса "Задачи и модели вычислительных наноструктур" за счет большого количества циклов обработки "больших" потоков данных;
  • требует приведения исходного вычислительного алгоритма к потоковому виду с явным указанием всех управляющих, интерфейсных и диагностических процедур;
  • приводит к росту в основном аппаратных, а не временных затрат на реализацию индивидуальных управляющих, интерфейсных и диагностических процедур, что повышает "мобильность" модуля при парировании карт отказов.
  • Чем больше имеющийся естественный структурно-функциональный и топологический резерв у бит-процессоров и соответственно матриц на их основе, тем более устойчив к отказам поток-оператор и тем больше карта отказов, накапливаемая в латентном периоде. Отсюда следует, что с ростом отказоустойчивости бит-матриц необходимо увеличивать частоту принудительного тестового контроля, что негативно сказывается на пропускной способности МКМД-бит-потоковых субпроцессорных трактов.
  • С проектных позиций МКМД-бит-потоковые вычислительные технологии удобны тем, что на самых ранних этапах создания субпроцессоров здесь можно получить достоверные оценки достижимой пропускной способности по потокам инструкций и данных, массо-габаритам, потребляемой энергии, отказоустойчивости и времени задержки, которые играют решающую роль в оценке летно-технических и боевых характеристик (К)ЛА и их БЭО.
  • Методы и средства обеспечения живучести МКМД-бит-потоковых субпроцессоров не исключают, а только дополняют традиционные методы и средства, основанные на введении дополнительной аппаратной, информационной и временной избыточности. При этом возможность проведения в темпе реального времени фактически ремонтно-восстановительных работ позволяет снизить необходимый аппаратный резерв до десятков процентов и сохранить живучесть субпроцессорного тракта при наличии в нем карт, насчитывающих десятки отказов. В результате удельные аппаратные затраты на парирование одного отказа в МКМД-бит-потоковых субпроцессорах не менее чем на порядок меньше аналогичных затрат в традиционных фон-неймановских схемах мажоритарного резервирования, которые по-прежнему доминируют в зарубежной авионике.
  • Даже на отсталой по современным меркам элементной базе разработки середины 80-х годов прошлого столетия в МКМД-бит-потоковых технологиях удается достичь производительности не менее 3,6*103 MIPS и пропускной способности по потокам данных порядка 500 Мбит/с, что более характерно для современных персональных ЭВМ, работающих на частотах порядка единиц ГГц.
  • Вернуться к учебному плану