Научная статья на тему 'Реализация операции вставки поддерева при аппаратно-ориентированной обработке R-выражений'

Реализация операции вставки поддерева при аппаратно-ориентированной обработке R-выражений Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
87
104
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЛОГИЧЕСКИЙ МУЛЬТИКОНТРОЛЛЕР / ПАРАЛЛЕЛЬНЫЙ АЛГОРИТМ ЛОГИЧЕСКОГО УПРАВЛЕНИЯ / РАЗБИЕНИЕ / ОПТИМИЗАЦИЯ / R-ВЫРАЖЕНИЕ / ОРИЕНТИРОВАННОЕ ДЕРЕВО / СПЕЦПРОЦЕССОР / LOGICAL MULTICONTROLLER / PARALLEL ALGORITHM OF LOGICAL CONTROL / PARTITION / OPTIMIZATION / R-EXPRESSION / ORIENTED TREE / SPECIAL PROCESSOR

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Ватутин Эдуард Игоревич, Зотов Игорь Валерьевич, Титов Виталий Семенович, Аль-ашвал Муджиб Мохаммед Ахья

Рассматривается устройство, позволяющее реализовать операцию вставки поддерева в дерево при аппаратно-ориентированной обработке R-выражений, возникающей при выполнении эквивалентных преобразований параллельных алгоритмов.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Ватутин Эдуард Игоревич, Зотов Игорь Валерьевич, Титов Виталий Семенович, Аль-ашвал Муджиб Мохаммед Ахья

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

HARDWARE-LEVEL IMPLEMENTATION OF SUBTREE INSERTION IN PROCESSING OF R-EXPRESSIONS

A device is described which allows for implementation of procedure of subtree insertion into a tree when hardware-level processing of R-expression is carried out. The procedure is reported to appear in execution of equivalent transformation of parallel algorithms.

Текст научной работы на тему «Реализация операции вставки поддерева при аппаратно-ориентированной обработке R-выражений»

ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА

УДК 004.384:004.272:004.414.2

Э. И. Ватутин, И. В. Зотов, В. С. Титов, М. М. Аль-Ашвал

РЕАЛИЗАЦИЯ ОПЕРАЦИИ ВСТАВКИ ПОДДЕРЕВА ПРИ АППАРАТНО-ОРИЕНТИРОВАННОЙ ОБРАБОТКЕ ^-ВЫРАЖЕНИЙ

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

Ключевые слова: логический мультиконтроллер, параллельный алгоритм логического управления, разбиение, оптимизация, Я-выражение, ориентированное дерево, спецпроцессор.

Построение систем логического управления, ориентированных на реализацию параллельных управляющих алгоритмов в базисе логических мультиконтроллеров (ЛМК), требует декомпозиции комплексных параллельных алгоритмов теоретически неограниченной сложности на множество частных алгоритмов ограниченной сложности [1]. Получение оптимального набора частных алгоритмов (разбиения) представляет собой сложную комбинаторную задачу, решение которой возможно лишь с помощью эвристических алгоритмов. Качество решения этой задачи существенно влияет на аппаратную сложность ЛМК и определяет, в конечном счете, время выполнения алгоритма. Эффективным путем решения данной задачи является параллельно-последовательный метод декомпозиции [2—5].

Один из ключевых этапов параллельно-последовательной декомпозиции — построение множества сечений, покрывающего все вершины исходного алгоритма. Формирование сечений осуществляется посредством выполнения трудоемких операций подстановки над множеством так называемых Я-выражений, описывающих алгоритм управления. Как показывают исследования, упрощение и ускорение этих операций возможно путем их сведения к действиям над деревьями. Такие действия, в свою очередь, допускают разбиение на ряд более простых (элементарных) операций [6]. Схематично операции подстановки могут быть представлены следующим образом:

^ г: Xя — ВК' (м-подстановка);

^ ] : ВК' — Xя (^-подстановка),

Я Я?

где X — некоторое Я-выражение, не участвующее в подстановке; В — Я-выражение, получаемое из Я-выражения ВЯ после удаления поддерева АЯ и вставки вместо него дерева СЯ .

1: Xя- - ВК

} АК - - СК

1: СК - ■> АК

] ВК- Xя

Методика практической реализации операций над ^-выражениями, а также представление их в виде деревьев, допускающее преобразование в табличный вид, приведены в работах [7, с. 38; 8]. Здесь напомним следующее: каждый элемент а дерева X, представленного совокупностью наборов листьев , ,..., (х), узлов Т[х,ТХ ,...,ТХт(х) и связей между ними,

кодируется набором полей. С учетом ряда особенностей обработки, наборы листьев и узлы дерева кодируются отдельно. Узлы дерева представлены следующими полями: тип узла

(ТУ) — параллельный или альтернативный (тх )); ссылка на предка (СП) — номер узла-предка (и (тх )); номер соответствия (НС) — номер изоморфного эквивалента в соседнем дереве (пг (Тх )); тип соответствия (ТС) — отсутствующее, полное или частичное соответствие (л(Тх )); наборам листьев дерева при этом соответствуют поля множества вершин (МВ) —

двоичный вектор с единичными битами в позициях, соответствующих номерам присутствующих в наборе вершин, а также перечисленные выше поля СП, НС и ТС.

Табличное представление ^-выражений подчиняется ряду следующих требований [8].

1. Корень дерева хранится в позиции с номером 0. Значение поля СП корня указывает на заведомо несуществующий элемент дерева.

2. Для каждого узла дерева его потомки хранятся в позициях с номерами, превосходящими номер позиции самого узла (при этом порядок хранения потомков не важен).

3. Все узлы и наборы листьев дерева хранятся в смежных позициях (без „пропусков").

4. Каждому узлу дерева соответствует не более одного дочернего набора листьев, в дереве не может быть „пустых" наборов листьев, не содержащих вершин.

5. Если дерево представлено единственным набором листьев (без узлов), то в составе этого набора может быть всего один элемент (одна вершина алгоритма управления).

6. В составе корректного дерева не может быть совпадения типа узлов у любой пары смежных узлов.

7. Дерево содержит, по меньшей мере, один набор листьев. Число узлов дерева может быть нулевым.

В настоящей статье предложена аппаратная реализация операции вставки поддерева. Она выполняется непосредственно после операции удаления поддерева, г-изоморфного [7, 8]

дереву А , в результате которого может быть нарушено требование № 3. Рассматриваемая операция состоит из двух стадий: на первой производится копирование элементов дерева, на второй — настройка связей для скопированных элементов. В результате выполнения опера-

о

ции копирования элементов дерева С должны быть учтены требования № 2 и 4. При этом в общем случае требования № 3 и 6 в результате выполнения операции вставки поддерева не выполняются, что обусловливает необходимость удаления „пропусков" непосредственно после рассматриваемой операции.

Общие принципы выполнения первой стадии продемонстрированы на рис. 1 (белые квадраты — свободные позиции, темные квадраты — занятые позиции, крестами помечены удаленные элементы, стрелками обозначены операции копирования элементов дерева).

На первой стадии при копировании узлов дерева (см. рис. 1, а) необходимо соблюдение требования № 2 корректности дерева. Наиболее простой способ обеспечить выполнение этого требования — последовательная вставка „новых" узлов, начиная с позиции с номером,

о

превосходящим номера уже имеющихся узлов дерева В , с сохранением порядка их следования. Номер такой позиции может быть определен как ^ = gl (Хт) +1, где

ХТ (В) = (х (Т)В), х (Т\ ),..., х (тП_1)) — вектор двоичных признаков х (¡Х) свободных позиций среди узлов дерева ВЯ, (X) — функция выделения позиции старшего нуля в двоичном векторе X [9]. Копирование наборов листьев (см. рис. 1, б) не нарушает требований корректности дерева и поэтому может быть осуществлено непосредственно в первую свободную

ячейку с младшим номером, который определяется как (Xь), где

Х^ (В) = (х (В), х (л) .., х )) — вектор двоичных признаков х (ьХ) свободных позиций среди наборов листьев дерева ВЯ, (X) — функция выделения позиции младшей единицы в двоичном векторе X [9]. Подобный способ копирования наборов листьев уменьшает число действий, затрачиваемых впоследствии на ликвидацию пустых позиций.

Я

При добавлении каждого нового элемента в дерево В также необходимо инкрементиро-вать значение Ыт (вк ) (при добавлении узла) или (ВК) (при добавлении набора листьев).

а)

Узлы дерева В (после удаления поддерева)

б) Наборы листьев В

(после удаления Наборы листьев п°ддерева) дерева С

N..

0

1

2

3 X

4

5 X

6 X

7

► 8 X

9

10

11

Ы7

Узлы дерева С т - 0 1 2

3

4

5

Ы7

0 1 2

3

4

5

6

7

8 9

10 11

0 1 2

3

4

5

6

N7

N7

ь

Х Nr

Рис. 1

Вторая стадия начинается с корректировки значений полей СП „новых" элементов дерева ВЯ, скопированных в него из дерева СЯ. Прежде всего корректировке подвергаются значения полей СП, обозначаемые как и ( ), „новых" элементов: и(ьВ ) := и (ьВ ) + N1,

и (тВ) := и (т?) + ^ . Подобные формулы корректировки объясняются достаточно просто:

Я я т

нулевой узел (корень) дерева С попадает в дереве В в позицию с номером ^ , первый —

т

в позицию N.. +1 и т.д.

После выполнения указанных корректировок необходимо настроить связь скопированного поддерева из „новых" элементов с уже присутствующими элементами дерева В (точнее, с узлом, г-изоморфным корню дерева А , при частичном соответствии, или его предком при полном соответствии). Детали реализации настройки связи между деревьями представлены в табл. 1 и проиллюстрированы на рис. 2, где а, б, в соответствуют трем различным случаям выполнения операции подстановки, приведенным в таблице.

_Таблица 1

Наличие в дереве А узлов (оА ) ТС корня дерева АК (Т)) Формула обновленного значения поля СП корневого элемента скопированного дерева

1 Полное: Д=11 X = и тВ пг [тА)

Частичное: Д=10 X = пг (Т0А)

0 Полное, частичное: Д= 1* X = и г Ьо 'Ь ) А

Особым случаем, не указанным в табл. 1, является ситуация, когда дерево СК не содержит узлов, что обозначим нулевым значением двоичного признака о с . В этом случае при

выполнении описанных выше действий возможно нарушение требования № 4, если у элемен-

К с

та дерева В , на который производится настройка поля СП добавляемого набора листьев Ь

дерева , уже есть дочерний набор листьев ¿кк . Правильным действием в подобной ситуа-

С В В В I I с

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

ции является добавление элементов вектора Ь к элементам вектора Ьк : := и ¿0 вместо добавления еще одного набора листьев.

Алгоритм преобразования выполняется следующим образом.

1. Если дерево не содержит узлов (ос = 0) и узел дерева ВК с номером х, определяемым согласно табл. 1, имеет дочерний набор листьев Ьк (что в дальнейшем будем обозначать с использованием двоичного признака к (Тх), равного в данном случае единице), перейти к п. 7.

2. Определить значение := #0 (Хт) +1. Если Хт = 00...0 (все элементы в табличном представлении заняты), установить признак ошибки 81 := 1 и перейти к п. 8, в противном случае установить признак 81 := 0.

3. Копирование узлов: скопировать узлы Т дерева С , / = 0, Ыт (СК ) — 1, в смежные

к т

позиции дерева В , начиная с позиции Ы^ . При недостаточном количестве свободных позиций сформировать признак ошибки 8т := 1 и перейти к п. 8, в противном случае положить 8Т := 0.

4. Копирование наборов листьев: скопировать наборы листьев ЬС дерева ,

/ = 0, Ыь (СК) — 1, в дерево ВК, причем 1-й набор листьев дерева копируется в позицию

к = (Xь ), а сама позиция помечается как используемая: х (¿1) = 0. В случае если на ка-

ком-либо из шагов Хь = 00...0 (свободной позиции нет), установить признак ошибки 8ь := 1 и перейти к п. 8, в противном случае положить 8ь := 0 .

5. Увеличить значения текущего количества узлов и текущего количества листьев дерева ВК: Ыт (вк) := Ыт (вк ) + Ыт (сК ), ЫЬ (вк ) := ЫЬ (вк ) + ЫЬ (сК ).

К

6. Модифицировать значения полей СП „новых" элементов дерева В , скопированных из дерева СК, за исключением корневого, как и (ьв ) := и (¿В ) + Ы11, и (т?) := и [(В) + Ы11 .

Для „нового" элемента дерева ВК, соответствующего корневому элементу дерева , установить значение поля СП согласно табл. 1. Перейти к п. 8.

В ВС

7. Осуществить объединение наборов листьев: Ьк := Ьк и ¿0 .

8. Конец алгоритма.

Схема, реализующая предложенный алгоритм, приведена на рис. 3 (сокращения, использованные в схеме, аналогичны принятым в работе [7]). Регистр 1 хранит текущее количе-

К к

ство узлов дерева В и инкрементируется по мере добавления в дерево В новых узлов. Коммутатор 2 используется для выбора значения вектора, подаваемого на вход элемента В.УЭ(у) [7, 10] в качестве адреса записи. Элементы 3 и 4 используются при инициализации значений вектора В.УЭ(у). Шифратор 5 предназначен для преобразования значения номера свободной позиции с выхода схемы выделения старшего нуля (СВСН) из унитарного в двоичное представление, сохраняющегося в регистре 6. Элемент задержки 7 обеспечивает запись значения в регистр 6 только по окончании его формирования на выходе схемы СВСН. Элемент ИЛИ—НЕ 8 используется для формирования сигнала ошибки 81. Регистры 9 и 27 предназначены для хранения числа узлов и наборов листьев дерева СК соответственно. Коммутатор 10 в совокупности с дешифратором 11 обеспечивают запись в сдвиговый регистр 12 значения текущего числа элементов (наборов листьев или узлов) в унитарном коде в зависимости от этапа обработки. Элемент И 13 запрещает прохождение синхросигнала С1 при инициализации значения В.УЭ(нл) на входы элемента В.УЭ(у) и регистра 6. Регистр 14 хранит

текущее количество наборов листьев дерева В , инкрементируемое по мере добавления новых наборов листьев. Коммутатор 15 в совокупности с элементами 16 и 17 обеспечивает ини-

К

циализацию значения вектора УЭ наборов листьев дерева В (в ходе дальнейшей обработки значения вектора УЭ изменяются согласно алгоритму обработки с использованием перечисленных элементов). Шифратор 18 используется для преобразования значения текущего рассматриваемого элемента из унитарного кода в двоичный. Сумматор 19 обеспечивает формирование на его выходе значения Ы^ + / очередной свободной позиции и признака ошибки

8т . Дешифратор 20 преобразует значение Ы^ + / в унитарный код для его дальнейшего использования в качестве адреса записи. Коммутаторы 21, 23, 28, 31, 46 и 47 используются для

выбора значения элемента дерева В модифицируемого элемента в зависимости от этапа алгоритма и особенностей обработки. Сумматор 22 обеспечивает формирование обновленного значения поля СП копируемого элемента. Элемент ИЛИ 24 служит для прохождения синхросигнала записи на вход элемента В.СП(у). Элементы 25 и 26 обеспечивают прохождение синхросигналов С2 и С3 на вход регистра 12. Элемент ИЛИ—НЕ 29 служит для формирования признака ошибки 8ь . Сумматор 30 используется для корректировки значения поля СП копируемого набора листьев. Элемент ИЛИ 32 обеспечивает прохождение синхросигнала на вход элемента В.МВ, активирующего модификацию поля МВ в зависимости от ситуации.

а) Дерево BR Дерево Ar Дерево в r'

Удаление Вставка

поддерева / ^ поддерева

| | a 'a 2 | |

Cl 3CI 4 Cl jCI 4

Дерево В

Дерево Ar Дерево Br' Дерево Br" Дерево Ar Дерево Cr

Удаление поддерева

>

Вставка поддерева

>

1 — i:=n,.(Lo)

2 —j:=u(L,B) в

3 — и(Т0с= Tmt):=j

Cl 3CI4

Cl 3С1 4

\—i:=n,{T(f)

2-j:=u(T,B)B

3 — и(Т0с= TNT):=j

ДеревоAr Дерево С

Î — i:=lb.(T04l 2 — и(Т0с= TNT)-=i

Рис. 2

Рис. 3

Коммутатор 33 обеспечивает формирование на своем выходе значения предка корня подставляемого дерева в зависимости от типа соответствия. Дешифратор 34 обеспечивает преобразование номера узла, г-изоморфного корневому узлу дерева А , из двоичного кода в унитарный. Дешифратор 35 обеспечивает преобразование номера набора листьев, г-изоморфного

нулевому набору листьев дерева А , из двоичного кода в унитарный. Коммутатор 36 обеспечивает формирование на своем выходе значения номера узла-предка для корня подставляемого дерева. Регистр 37 хранит значение текущего числа узлов дерева А , используемое для формирования значения признака а а на выходе элемента ИЛИ 38, подаваемого на вход коммутатора 36. Элемент ИЛИ 39 используется для формирования признака ас . Элемент ИЛИ 43 обеспечивает формирование признака к, используемого в совокупности с элементами 40—42, 44 и 45 для управления прохождением синхросигнала е4. Регистр-защелка 48 используется для хранения значения первой свободной позиции, формируемого на выходе схемы выделения младшей единицы (СВМЕ). Элемент ИЛИ 49 обеспечивает прохождение синхросигнала записи к элементу В.СП(нл) в зависимости от обрабатываемой ситуации. Блок элементов ИЛИ 50 используется при объединении уже имеющегося набора листьев с единственным набором листьев, входящим в состав подставляемого дерева СК .

Вычислительные затраты на выполнение отдельных элементарных операций рассмотренного выше алгоритма приведены в табл. 2.

Таблица 2

Действие Программная реализация, шаг, не более Аппаратная реализация, шаг, не более

Определение значений вектора Хт Ыт 1

т Определения значения Ыт 1

Копирование узлов Ыт Ыт

Определение значений вектора Х- Ыь 1

Определение младшей свободной позиции в Х- Ыт 1

Копирование наборов листьев Ыт Ыь

Корректировка СП Ыт 1

Итого 3 Ыт + 2 Ыт + Ы- Ыт + Ыт + 4

Анализ показывает, что при использовании предлагаемого устройства, по сравнению с программной реализацией, преимущество по времени обработки составляет

3Ыт + 2 Ыт + Ы- ЛТ —Т-т-- « Ык раз,

ЫТ + Ыт + 4

где = Ы- + Ыт, что достигается благодаря использованию схем маскировки неиспользуемых позиций (СМНП 1 и 2) и схемы выделения старшего нуля (СВСН), а также возможности ассоциативного поиска информации в памяти акселератора [7, 10].

список литературы

1. Организация и синтез микропрограммных мультимикроконтроллеров / И. В. Зотов, В. А. Колосков, В. С. Титов и др. Курск: КурскГТУ, 1999. 368 с.

2. Зотов И. В., Колосков В. А., Титов В. С. Выбор оптимальных разбиений алгоритмов при проектировании микроконтроллерных сетей // Автоматика и вычислительная техника. 1997. № 5. С. 51—62.

3. Ватутин Э. И., Зотов И. В. Метод формирования субоптимальных разбиений параллельных управляющих алгоритмов // Параллельные вычисления и задачи управления (PACO'04). М.: ИПУ РАН, 2004. С. 884—917.

4. Ватутин Э. И., Зотов И. В. Параллельно-последовательный метод формирования субоптимальных разбиений параллельных управляющих алгоритмов // Свид. об официальной регистрации программы для ЭВМ. № 2005613091 от 28.11.05.

5. Ватутин Э. И., Волобуев С. В., Зотов И. В. Комплексный сравнительный анализ качества разбиений при синтезе логических мультиконтроллеров в условиях присутствия технологических ограничений // Параллельные вычисления и задачи управления (PAC0'08). М.: ИПУ РАН, 2008. С. 643—685.

6. Ватутин Э. И., Зотов И. В. Поиск базового сечения в задаче разбиения параллельных алгоритмов / Курск. гос. техн. ун-т. Курск, 2003. 30 с. Деп. в ВИНИТИ. 24.11.03, № 2036-B2003.

7. Ватутин Э. И., Зотов И. В., Титов В. С. Выявление изоморфных вхождений Л-выражений при построении параллельных алгоритмов логического управления // Изв. вузов. Приборостроение. 2009. Т. 52, № 2. С. 37—45.

8. Ватутин Э. И., Зотов И. В., Титов В. С. Выявление изоморфных вхождений Л-выражений при построении множества сечений параллельных алгоритмов логического управления // Информационно-измерительные и управляющие системы. 2009. Т. 7, № 11. С. 49—56.

9. Ватутин Э. И., Зотов И. В., Титов В. С. Использование схемных формирователей и преобразователей двоичных последовательностей при построении комбинаторно-логических акселераторов // Изв. КурскГТУ. 2008. № 4 (25). С. 32—39.

10. Ватутин Э. И. Однородная среда электронной модели дерева для аппаратно-ориентированной обработки Л-выражений // Оптико-электронные приборы и устройства в системах распознавания образов, обработки изображений и символьной информации (Распознавание — 2008). Курск: КурскГТУ, 2008. Ч. 1. С. 90—92.

Сведения об авторах

Эдуард Игоревич Ватутин — канд. техн. наук; Курский государственный технический универ-

ситет, кафедра вычислительной техники; E-mail: [email protected]

Игорь Валерьевич Зотов — д-р техн. наук, профессор; Курский государственный технический

университет, кафедра вычислительной техники; E-mail: [email protected]

Виталий Семенович Титов — д-р техн. наук, профессор; Курский государственный технический

университет, кафедра вычислительной техники; E-mail: [email protected]

МуджибМохаммед Ахья Аль-Ашвал — аспирант; Курский государственный технический университет,

кафедра вычислительной техники; E-mail: [email protected]

Рекомендована кафедрой Поступила в редакцию

вычислительной техники 14.04.10 г.

i Надоели баннеры? Вы всегда можете отключить рекламу.