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

МКМД-БИТ-потоковые субпроцессоры с (микро)программируемой архитектурой

< Лекция 4 || Лекция 5: 123456 || Лекция 6 >

4.5. Порядок синтеза МКМД-бит-потоковых субпроцессорных трактов

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

  • вытекающая из условий реального времени решаемых задач пропускная способность по потокам инструкций (производительность - P^{C}(I) ) (и/или данных - P^{C}(D) ) должна намного превосходить предоставляемую отдельным (бит)процессором физическую пропускную способность по потокам инструкций ( P^{PH}(I) ) (и/или данных - P^{PH}(D) ): P^{C}(I) \gg P^{PH}(I) ;
  • "время жизни" (сверх)многопроцессорной (Б)ВС должно быть на 1-2 порядка больше времени наработки на один отказ одной комплектующей СБИС;
  • (сверх)многопроцессорная (Б)ВС должна быть абсолютно устойчивой по своим вычислительным характеристикам, то есть она должна вносить нулевой вклад в абсолютную и/или относительную погрешность вычислений по отношению к погрешности представления исходных данных.

Из перечисленных требований первое является доминирующим, так как при P^{C}(I) < P^{PH}(I) обычно имеется достаточный аппаратно-временной резерв, чтобы удовлетворить два оставшихся требования с использованием хорошо отработанных традиционных методов и средств аппаратно-временной избыточности. Специфика работы (Б)ВС для боевых ЛА как раз и состоит в том, что подавляющее большинство решаемых задач выдвигает к оборудованию полный комплекс перечисленных выше противоречивых требований, проявляющийся в жесткой "борьбе" за общий аппаратно-временной ресурс (Б)ВС. Поэтому в условиях прототипирования, где решающую роль играет качество синтеза прообраза создаваемого ЛА, такую же решающую роль играет точная и достоверная оценка потребной и предоставляемой производительности на самых ранних этапах проведения проектных работ. Но хроническая проблема всей вычислительной техники как раз и состоит в том, что, отталкиваясь от формальных моделей решаемых задач, точно и достоверно можно определить только прямые алгоритмические затраты некоторой абстрактной вычислительной машины, способной выполнить полный набор требуемых арифметико-логических действий и управляющих процедур, связанных с порядком перечисления

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

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

В МКМД-бит-потоковых вычислительных технологиях такая взаимозависимость между потоками инструкций и данных не устраняется, а только разрывается за счет того, что в ней аппаратно поддержаны только поток-операторы с линейным (инкрементным) порядком перечисления потока ассемблерных слов-инструкций с заранее известным количеством циклов их исполнения. Нелинейный и зависящий от содержимого обрабатываемых данных порядок перечисления реально исполняемых ассемблерных слов-инструкций реализуется на уровне задач, где неделимой единицей управления являются исполняемые поток-операторы и циклически преобразуемые ими потоки данных. В рамках активизированного поток-оператора порядок исполнения слов-инструкций строго задан, а количество циклов их исполнения задается по счетчику, а не по условию. При этом количество циклов исполнения самого поток-оператора считается бесконечным, а переход к другому поток-оператору может быть осуществлен по условию, проверяемому контроллером (суб)процессорного тракта после каждого цикла исполнения поток-оператора над выборкой из N n -битных данных (см. рис. 4.5), то есть с достаточно продолжительным периодом из N*n \gg 1 тактов.

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

  1. Отталкиваясь от формализованного алгоритма и архитектуры абстрактной вычислительной машины, оценить количество операций, затрачиваемых на реализацию основных, управляющих и коммутационных функций.
  2. Опираясь на полученное распределение операционных затрат, откор-ректировать абстрактную базовую архитектуру так, чтобы обеспечить равную продолжительность цикла (в числе тактов) исполнения всех процедур, используемых при выполнении основных, управляющих и коммутационных функций.
  3. Представить в потоковом виде вычислительный алгоритм для всех операционных, управляющих, адресных и коммутационных процедур, с явным указанием требуемого уровня векторно-конвейерного распараллеливания для каждой из них.
  4. Используя библиотеку стандартных слов-инструкций, синтезировать топологию микропрограмм для всех поток-операторов решаемой задачи и на ее основе определить аппаратно-временные затраты и время задержки в (суб)процессоре.
  5. Оценить полученные в пункте 4 результаты в целом для комплекса БЭО и всего ЛА и при необходимости повторить шаги 1-5 с модифицированной алгоритмической и векторно-конвейерной схемой распараллеливания вычислений.

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

Таким образом, целевую функцию итеративного процесса проектирования МКМД-бит-потоковых субпроцессоров можно представить: P^{PH}(I) \to P^{C} ( I), а интерактивные методы и средства достижения этой цели в качестве ограничений используют структурно-функциональные возможности бит-процессоров и схемотехнические характеристики комплектующих СБИС.

В качестве примера оценим потребную производительность при решении задачи медианной фильтрации [290] исходного изображения размером N*N полутоновых черно-белых пикселей x_{ij} "скользящим окном" М*М (рис. 4.17 ). Медианный фильтр является частным случаем рангового фильтра и реализует преобразование подстановки центральному элементу "скользящего окна" исходного изображения х^{rc}_{ij} значение \hat{х}_{rc} = med\{ х^{rc}_{ij}\}, вычисленное по всем x_{ij}\in\{ х^{rc}_{ij}\}, где med\{ х^{rc}_{ij}\} - центральный элемент упорядоченной последовательности \{ х^{rc}_{ij}\}. С помощью такого

фильтра выделяется маскирующая "точечная" (импульсная) помеха, когда за "точку" принимается любая пространственная композиция пикселей внутри "скользящего окна" суммарным размером ]М*М/2[, обладающая максимальной или минимальной яркостью. Здесь ]М*М/2[ - младшее целое М*М/2, а М - нечетно. Такая "точечная" помеха способна в условиях активного противодействия противника сместить вычисленный "центр масс" факела за пределы угла обзора приемной ИК-камеры, что приведет к потере угловых координат самолета-лидера в ведомом беспилотном ЛА, то есть к разрыву сомкнутого строя и, как следствие, потери управления беспилотным ЛА.

Порядок присвоения значений при медианной фильтрации изображений

Рис. 4.17. Порядок присвоения значений при медианной фильтрации изображений

Алгоритмические затраты на вычисление каждого медианного значения \hat{x}_{rc}. = med\{ х^{rc}_{ij}\} составляют E_{rc} = М^{2}*(М^{2}-1)/2, если вычисление упорядочение (сортировку) \{ х^{rc}_{ij}\} проводить методом "пузырька". Отсюда, общие алгоритмические затраты на медианную фильтрацию изображения N*N полутоновых черно-белых пикселей квадратично зависят от размеров обрабатываемого изображения (O(N^2)) и биквадратно - от размеров "скользящего окна" (O(М^{4})): 
E = E_{rc} *(N-M-1)^{2} = М^2*(М ^{2}-1)*(N-M-1)^{2}/2.

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

Действительно, если темп поступления пикселей составляет F_{pc} в секунду, то темп обработки должен составлять М^{2}*F_{pc} , так как вычисление медианы необходимо провести для каждого пикселя входного изображения, за исключением периферийных (N-M-1) пикселей в каждой строке и в каждом столбце, для которых понятие медианы не определено (см. рис. 4.17). Отсюда видно, что в системах реального времени коэффициент векторизации вычислительного алгоритма медианной фильтрации в принципе не может быть ниже площади "скользящего окна" М^{2}, и для его обеспечения блок медианной фильтрации, работающий по схеме рис. 4.18, необходимо дополнить блоком векторизации потока с одним входом и М^{2} выходами (рис. 4.19).

Векторно-конвейерная схема ранговой фильтрации

Рис. 4.18. Векторно-конвейерная схема ранговой фильтрации
Структурная схема звена рангового фильтра

Рис. 4.19. Структурная схема звена рангового фильтра

В схеме медианного фильтра рис. 4.18 коэффициент векторно-конвейерного распараллеливания вычислений равен E_{rc} = М^2*(М^{2}-1)/2, и в ней каждый узел должен выполнить (рис. 4.20) две операции: "сравнение" и "транспозиция" операндов по результату сравнения B^{S}\in\{0,1\}.

Структурная схема рангового фильтра

Рис. 4.20. Структурная схема рангового фильтра

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

  • звено задержки, в данном случае на 27 тактов, реализовано на бит-процессорах (БП) первой строки матрицы, которые выполняют бит-операции ADD с дополнительной задержкой на 1 такт в канале АЛУ;
    Топологическая схема узла медианного фильтра

    Рис. 4.21. Топологическая схема узла медианного фильтра
  • блок сравнения, который выполняет сравнение двух чисел, заданных в формате фиксированной запятой со старшим буферным и следующим за ним знаковым разрядом ( n = 16 бит), выполнен на бит-процессорах матрицы с координатами (2,2)-(6,4);
  • блок коммутации, который выполняет транспозицию входных операндов, выполнен на бит-процессорах матрицы с координатами (2,5)-(6,7).

В итоге для реализации медианного фильтра требуется бит-матрица размером не менее 42*Е_{rc} = 21*М^{2}*(М^{2}-1) бит-процессоров с временем задержки во всем тракте обработки порядка T_{0} = 2n *М^{2}, так как в конвей-ерной арифметике признак результата сравнения B^S\in\{0,1\} вырабатывается с задержкой более чем n тактов.

Микропрограммный алгоритм процедуры сравнения двух операндов вытекает из традиционного правила:

B^s =
\begin{cases}
1, & \text{ если } x_i^s - x_j^s \ge 0, \\
0, & \text{ если } x_i^s - x_j^s \pi 0,
\end{cases}

которое в конвейерной арифметике реализуется следующим образом.

Шаг 1. Перевести операнд x_j^s из прямого кода в дополнительный код с принудительной инверсией знака и сохранением "нуля" в буферном разряде: БП (3,2) - \overline{х}_j^s = x_j^s \oplus \overline{С}_{16}1 ; БП (3,3) - (-x^{s}_j) = x_j^s + С_{16}1,где C_{16}1 - 16-битная циклическая константа вида 0000.0000.0000.0001, а \ovaerline{C}_{16}1 - ее инверсия, которая поступает на вход БП (3,2) на 1 такт раньше x_j^s .

Шаг 2. Сложить операнды и запомнить на n тактов знаковый разряд суммы: БП (4,3) - z^{s} = x^{s}_i +(x^s_j) ; БП (4,4) - B^{s} = ST1(z^{s}, C _{16}1), где циклическая константа C_{16}1 подается на второй, управляющий вход БП (4,4) с опережением на 2 такта по отношению к z^{s}, которая поступает слева на первый, информационный вход этого БП (см. табл. 5.8 курса "Задачи и модели вычислительных наноструктур").

Блок коммутации реализует транспозицию входных операндов по правилу:

\max(x_i^s,x_j^s) = x^{s}_j\land B^{s}\lor x_i^s \land\overline{B}^{s};\,\,\,\,
\min(x_i^s,x_j^s) = x^{s}_j\land \ovaerline{B}^{s}\lor x_i^s \land{B}^{s}.

Таким образом:

  1. Показано, что технология микропрограммного конструирования МКМД-бит-потоковых субпроцессоров носит итерационный интерактивный характер и осуществляется "сверху-вниз" в структурно-функциональной плоскости проекта при декомпозиции задачи до микропрограммных процедур ее реализации и "снизу-вверх" в топологической плоскости проекта, которая и позволяет оценить реальные потребительские характеристики синтезируемого субпроцессора и закрепленного за ним БЭО.
  2. На основе топологической схемы микропрограммы можно получить все необходимые соотношения для вычисления потребительских характеристик МКМД-бит-потокового субпроцессора медианной фильтрации. В эти соотношения входят параметры обрабатываемого изображения - N*N пикселей, параметры "скользящего окна" - М*М пикселей, темп поступления данных - F_{pc}, зависящий от частоты кадров (F_{pc}= F_k/N*N), а также параметры самой бит-матрицы: ее размеры и частота работы ( F_c ), которая должна удовлетворять неравенству F_{pc}\le F_c/n, где n - разрядность значений яркости полутонового черно-белого изображения.
  3. В частности, уже при N = 128 пикселей, М = 5 пикселей, частоте кадров F_k = 50 Гц и разрядности входных данных n = 8 бит МКМД-бит-потоковый субпроцессор медианной фильтрации для поддержания темпа реального времени должен обеспечить пропускную способность:
    • по потоку инструкций PPH(I) = 128*128*25*12*50/8 = 30*106 \text{ операций/с }= 30 \text{ MOPS} ;
    • по потоку данных - PPH(D) = 128*128*25*12*50*8 = 1,966 \text{ Гбит/с } .
< Лекция 4 || Лекция 5: 123456 || Лекция 6 >
Евгений Акимов
Евгений Акимов

Добрый день!

 

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

Спасибо,

Евгений

 

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