Энергосберегающее противогоночное кодирование состояний асинхронного автомата | Прикладная дискретная математика. Приложение. 2015. № 8.

Энергосберегающее противогоночное кодирование состояний асинхронного автомата

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

Low power race-free state assignment of an asynchronous automaton.pdf Моделью поведения логической схемы с памятью является конечный автомат, представляющий собой пятерку (A,B,Q, Ф, Ф), где A, B и Q - соответственно множества входных символов, выходных символов и состояний автомата, а Ф и Ф - функции Ф : A х Q ^ Q и Ф: A х Q ^ B, называемые соответственно функцией переходов и функцией выходов. Для qi,qj G Q и a G A состояние qj = Ф(а, qi) является тем состоянием, в которое автомат переходит из состояния qi под воздействием входного символа a. Рассматриваемая задача позволяет игнорировать функцию Ф, поэтому в дальнейшем она не будет здесь упоминаться. Задача кодирования состояний автомата заключается в присвоении каждому состоянию определённого булева вектора (z1,z2,... ,zk), называемого кодом состояния, который соответствует набору состояний двоичных элементов памяти (триггеров) в логической схеме, где каждый переход из состояния в состояние представляется переключением одного или нескольких триггеров. Естественно, что это переключение происходит не одновременно. В реальных асинхронных схемах это явление называется состязаниями, или гонками элементов памяти. Принято называть состязания неопасными, если все промежуточные состояния, в которых автомат может оказаться при переходе из одного состояния в другое под воздействием некоторого входного сигнала a, являются неустойчивыми для сигнала a, т. е. при любом порядке переключений элементов памяти автомат из некоторого состояния qi под воздействием входного сигнала а переходит всегда в состояние qj = Ф(а^). Если же при этом автомат может оказаться в некотором устойчивом состоянии qk, отличном от qj, то состязания называются опасными. Кодирование состояний, обеспечивающее отсутствие опасных состязаний (гонок), называется противогоночным. Естественно, здесь возникает задача минимизации длины кода состояния, приводящая к наименьшему числу элементов памяти в реальной схеме. Другим критерием оптимизации схемы является величина потребляемой энергии. Это обусловлено, с одной стороны, стремлением увеличить время действия источника энергии в портативных приборах и, с другой стороны, стремлением снизить остроту проблемы отвода тепла при проектировании сверхбольших интегральных схем. Как отмечено в [1], потребляемая мощность схемы, построенной на основе КМОП-техноло-гии, пропорциональна частоте изменения сигналов. Это даёт возможность частично решать данную проблему на уровне логического проектирования. В частности, снижения энергопотребления можно добиваться при кодировании состояний автомата. Кодировать состояния при этом надо таким образом, чтобы при переходе автомата из одного состояния в другое меняли свое состояние как можно меньше элементов памяти. Проблеме энергосберегающего кодирования состояний синхронного автомата посвящено довольно много работ, одной из которых является, например, работа [2], где процесс кодирования состояний автомата представляется как размещение состояний в булевом пространстве внутренних переменных. Проблема энергопотребления логических схем рассматривается также в [3], где решается задача определения режима максимального потребления энергии в схеме, реализующей конечный автомат. В данной работе рассматривается возможность учёта энергосбережения при противогоноч-ном кодировании состояний асинхронного автомата. Автору не известны публикации, посвящённые данной проблеме. Условие отсутствия опасных состязаний для пары переходов qi ^ qj, ^ qi (qj = при одном и том же входном сигнале а можно выразить троичным вектором [4], в котором компоненты соответствуют состояниям автомата, компоненты i и j имеют одно значение, 0 или 1, а компоненты k и l - противоположное ему значение. Остальным компонентам приписывается значение « -». В схеме, реализующей заданный автомат, это условие выполняется триггером, который в процессе одного перехода рассматриваемой пары хранит состояние 0, а в процессе другого - 1. На множестве векторов, представляющих условия отсутствия опасных состязаний, имеется отношение импликации: троичный вектор a имплицирует троичный вектор b, если b получается из a заменой некоторых нулей или единиц значением « -» и, возможно, инвертированием полученного результата. Например, вектор (10--101) имплицирует векторы (10---01) и (01---1 - ). Смысл этого отношения в том, что условие, представленное вектором b, автоматически выполняется при соблюдении условия, представленного вектором a. Все условия отсутствия опасных состязаний в виде описанных векторов составляют троичную матрицу, в которой отсутствуют имплицируемые строки. Эта матрица называется матрицей условий [4]. Говорят, что троичная матрица R имплицирует, троичную матрицу S, если для каждой строки матрицы S в матрице R найдётся имплицирующая её строка. Задача противогоночного кодирования с минимизацией длины кода состояния сводится к нахождению матрицы с минимальным числом строк, имплицирующей матрицу условий и называемой кратчайшей имплицирующей формой матрицы условий. Столбцы этой матрицы будут представлять искомые коды состояний, а получаемая в результате её транспонирования матрица называется матрицей кодирования. Строкам матрицы кодирования соответствуют состояния автомата, а столбцам - внутренние переменные, и строки этой матрицы представляют коды соответствующих состояний. Кратчайшая имплицирующая форма матрицы условий находится следующим образом. Множество строк матрицы условий называется совместимым, если существует вектор, имплицирующий каждую строку этого множества. Совместимое множество называется максимальным, если оно не является собственным подмножеством другого совместимого множества. Надо найти кратчайшее покрытие множества строк матрицы условий максимальными совместимыми множествами. Каждому совместимому множеству соответствует вектор, имплицирующий все строки, принадлежащие этому множеству. Векторы, соответствующие элементам полученного покрытия, в качестве строк составят кратчайшую имплицирующую форму заданной матрицы условий. При применении описанного подхода к решению задачи противогоночного кодирования состояний автомата для снижения интенсивности переключений элементов памяти можно использовать следующие соображения. Каждому столбцу матрицы кодирования можно поставить в соответствие множество переходов. Это множество для i-го столбца составляют те переходы, которыми связаны состояния автомата, в кодах которых переменная zi имеет различные значения, т.е. при таких переходах i-й триггер в реальной схеме, реализующей автомат, меняет своё состояние. Следовательно, для снижения интенсивности переключений элементов памяти надо выбрать такой вариант противогоночного кодирования состояний, который соответствует наименьшему множеству переходов между состояниями. Если удаётся вычислить вероятности переходов, то столбцу матрицы кодирования состояний ставится в соответствие вероятность события, которое заключается в том, что происходит некоторый переход из множества переходов, связанных с данным столбцом. Поскольку переходы между состояниями автомата являются несовместимыми событиями, эта вероятность равна сумме вероятностей отдельных переходов из данного множества. Для подсчёта вероятностей переходов между состояниями в [2] используется метод Чэпмена - Колмогорова, где данные вероятности получаются в результате решения системы линейных уравнений с этими вероятностями в качестве неизвестных. Однако этот метод можно применять только тогда, когда автомат является полностью определённым, а его граф поведения является сильносвязным ориентированным графом. В противном случае столбцу матрицы кодирования состояний автомата приписывается мощность связанного с ним множества переходов. Таким образом, каждому совместимому множеству строк матрицы условий и соответственно вектору, имплицирующему все строки из этого множества, приписывается вес в виде числа переходов или суммы вероятностей переходов, связанных с этим вектором. Искомое решение получается в виде покрытия множества строк матрицы условий максимальными совместимыми множествами, обладающего минимальным весом. Весом покрытия является сумма весов принадлежащих ему элементов. Кодирование состояний автомата можно представить как размещение состояний в пространстве внутренних переменных z1, z2, ..., Zk [2], т.е. по вершинам булева гиперкуба, представляющего это пространство. В [2] введён критерий качества такого размещения с точки зрения интенсивности переключений элементов памяти. Этот критерий выражается формулой D = Y wij (dij - 1), где dij -расстояние по Хэммин-гу между кодами состояний qi и qj; wij - число переходов или вероятность перехода между состояниями qi и qj, и суммирование берётся по всем парам состояний, соответствующим парам вершин в гиперкубе. Очевидно, чем меньше значение D, тем лучше результат размещения, и D = 0, если всем парам состояний, связанным переходами, соответствуют рёбра гиперкуба. Тогда при любом переходе из состояния в состояние переключается ровно один элемент памяти. Сравнение по критерию D результатов решения примеров показало целесообразность использования предлагаемого метода.

Ключевые слова

асинхронный автомат, противогоночное кодирование состояний, энергосберегающее кодирование состояний, asynchronous automaton, race-free state assignment, low power state assignment

Авторы

ФИООрганизацияДополнительноE-mail
Поттосин Юрий ВасильевичОбъединенный институт проблем информатики НАН Беларуси (Минск)кандидат физико-математических наук, доцент, ведущий научный сотрудникpott@newman.bas-net.by
Всего: 1

Ссылки

Закревский А. Д. Логический синтез каскадных схем. М.: Наука, 1981.
Закревский А. Д. Алгоритмы энергосберегающего кодирования состояний автомата // Информатика. 2011. №1(29). С. 68-78.
Закревский А. Д. Нахождение режима максимального энергопотребления логической схемы // Прикладная дискретная математика. 2012. №2. С. 100-104.
Мурога С. Системное проектирование сверхбольших интегральных схем. В 2-х кн. Кн. 1. М.: Мир, 1985.
 Энергосберегающее противогоночное кодирование состояний асинхронного автомата | Прикладная дискретная математика. Приложение. 2015. № 8.

Энергосберегающее противогоночное кодирование состояний асинхронного автомата | Прикладная дискретная математика. Приложение. 2015. № 8.