2011 Логическое проектирование дискретных автоматов №4(14)
ЛОГИЧЕСКОЕ ПРОЕКТИРОВАНИЕ ДИСКРЕТНЫХ
АВТОМАТОВ
УДК 519.7
КОДИРОВАНИЕ СОСТОЯНИЙ ДИСКРЕТНОГО АВТОМАТА, ОРИЕНТИРОВАННОЕ НА УМЕНЬШЕНИЕ ЭНЕРГОПОТРЕБЛЕНИЯ
РЕАЛИЗУЮЩЕЙ СХЕМЫ
Ю. В. Поттосин
Объединенный институт проблем информатики НАН Беларуси, г. Минск, Беларусь
E-mail: [email protected]
Рассматривается задача кодирования состояний дискретного автомата с целью уменьшения интенсивности переключений элементов памяти в реализующей схеме. Предлагается метод решения этой задачи, сочетающий идеи методов «желательных соседств» и «сборки» булева гиперкуба.
Ключевые слова: дискретный автомат, кодирование состояний, энергосбережение.
Введение
В последнее время при проектировании дискретных устройств управления на основе сверхбольших интегральных схем большое внимание уделяется проблеме снижения энергопотребления проектируемой схемы. Это обусловлено стремлением, с одной стороны, увеличить время действия источника энергии в портативных приборах и, с другой стороны, снизить остроту проблемы отвода тепла при проектировании сверхбольших интегральных схем. Поэтому одним из основных критериев оптимизации при проектировании дискретных устройств является величина потребляемой схемой энергии. Как отмечено в работах [1, 2], потребляемая мощность схемы, построенной на основе КМОП-технологии, пропорциональна частоте изменения сигналов. Это дает возможность частично решать данную проблему на уровне логического проектирования. В частности, снижения энергопотребления можно добиваться при кодировании состояний и декомпозиции автомата [3 - 5]. Кодировать состояния при этом надо таким образом, чтобы при переходе автомата из одного состояния в другое меняли свое состояние как можно меньше элементов памяти.
При решении задачи кодирования состояний автомата в работе [3] использован информационный подход, при котором учитываются вероятности состояний. В работе [5] эта задача сводится к укладке графа поведения автомата в полный булев граф, или булев гиперкуб. Наибольшая эффективность метода из работы [5] достигается, когда граф, полученный из графа поведения автомата удалением ориентации и кратности ребер, оказывается подграфом полного булева графа, т. е. он полностью укладывается в гиперкуб. Тогда при каждом переходе автомата только один элемент памяти изменяет свое состояние. В противном случае минимизируется число ребер, не укладываемых в гиперкуб. Алгоритмизация этого метода осуществлена в работе [6], где описан еще один алгоритм кодирования состояний, который основан на использовании матрицы
смежности графа и карты Карно и заключается в построении последовательности конфигураций из ребер и квадратов, образующих подграфы гиперкуба. Под квадратом понимается цикл длины 4 в графе.
Для решения задачи энергосберегающего кодирования состояний автомата можно использовать метод «желательных соседств» [7, 8], направленный на получение наиболее простой схемы. При этом минимизируется величина Ш = Еш^, где суммирование ведется по всем парам состояний заданного автомата, а —расстояние по Хэммингу между кодами состояний ^ и qj. В случае энергосберегающего кодирования в качестве ш^ надо выбрать некоторый показатель, связанный с переходами между состояниями qi и qj. Как отмечено еще в работе [7], абсолютный минимум величины Ш получить довольно сложно, да и не всегда он соответствует оптимальному решению конкретной задачи. Поэтому чаще используются некоторые эвристики при размещении состояний автомата в булевом пространстве. В частности, для решения данной задачи можно использовать предлагаемый в работе [9] алгоритм размещения вершин графа, которым может быть гиперкуб, в простой цепи с минимизацией той же суммы Ш, только в ней Шу —некоторая функция на ребрах графа, а —расстояния в заданной простой цепи.
В настоящей работе предлагается метод кодирования состояний автомата, приводящий к снижению переключательной активности элементов памяти в реализующей схеме. Он отличается от известных методов способом размещения состояний автомата в булевом пространстве внутренних переменных. Используется подход, изложенный в работах [10, 11] и основанный на методе из [7, 8]; размещение состояний в булевом пространстве представляется как процесс построения к-мерного булева гиперкуба, напоминающий сборку некоторой простой механической конструкции. Здесь к — число элементов памяти в проектируемой схеме.
1. Построение булева гиперкуба
Формально задачу можно поставить следующим образом. Пусть задан автомат М, состояния которого, образующие множество Q = ^2,...^7}, должны быть зако-
дированы булевыми векторами так, чтобы минимизировать сумму W = Еш^-йу, где суммирование ведется по всем парам состояний заданного автомата; йу — расстояние по Хэммингу между кодами состояний qi и qj; = ш^^-); ш — функция, принима-
ющая вещественные значения на множестве пар состояний из Q. Смысл функции ш и ее определение зависят от конкретной задачи. В работах [10, 11] она выбрана из соображений получения наиболее простой схемы автомата. В случае энергосберегающего кодирования функция ш должна отражать интенсивность переключений элементов памяти. Так же, как в [6], в качестве ш возьмем целочисленную функцию, значения которой для пар qi, qj пропорциональны вероятностям перехода между состояниями qi и qj, неважно, в каком направлении. Эту вероятность можно вычислить методом Чэпмена— Колмогорова [12], который подробно описан также в [6].
Критерием качества размещения состояний в вершинах булева гиперкуба можно считать введенную в [6] величину, названную дефектом отображения (ребер графа переходов на ребра гиперкуба), которая в терминах излагаемого метода вычисляется по формуле Д = Еш^- (й^ — 1), где суммирование берется по всем парам состояний, соответствующим парам вершин в гиперкубе. Очевидно, чем меньше значение Д, тем лучше результат размещения, и дефект отображения равен нулю, если всем парам состояний, связанным переходами, соответствуют ребра гиперкуба. Тогда при любом переходе из состояния в состояние переключается ровно один элемент памяти.
Предлагаемый метод является эвристическим, т. е. не гарантирует получения абсолютного минимума суммы Ш. Он основан на том соображении, что для того, чтобы величина Ш не сильно отличалась от минимума, надо, чтобы состояния qi и qj, для которых значение ш^- велико, кодировались по возможности близкими кодами.
Исходными данными для построения п-мерного гиперкуба являются значения функции ш и число состояний 7 заданного автомата М. Полагается, что это число минимальное или по какой-то причине его не надо минимизировать. Если 7 не является целой степенью двойки, его надо путем введения фиктивных состояний увеличить до 2П, где п = |1с^2 7]. Считаем, что шы = 0, если хотя бы одно из состояний qk или ql является фиктивным. В начале процесса вершины, которые представляют состояния автомата М и должны быть вершинами гиперкуба, образуют пустой граф (без ребер).
Построение п-мерного гиперкуба представляется как последовательность п шагов. На 5-м шаге рассматривается множество (в — 1)-мерных гиперкубов, они объединяются в пары, и из каждой пары получается один 5-мерный гиперкуб путем соответствующего добавления ребер. При этом, по возможности, для соединения ребрами выбираются те вершины qi и qj, которым соответствуют наибольшие из оставшихся значения ш^-. В результате выполнения п шагов получим искомый п-мерный гиперкуб. Вершинам приписываем п-компонентные булевы векторы с соблюдением отношения соседства, представленного ребрами гиперкуба.
На первом шаге из 7 изолированных вершин, или 0-мерных гиперкубов, строятся 1-мерные гиперкубы в виде 7/2 попарно несмежных ребер. На последнем п-м шаге из двух (п — 1) -мерных гиперкубов собирается один п-мерный гиперкуб путем добавления 2п-1 ребер.
Рассмотрим более подробно образование 5-мерных гиперкубов на 5-м шаге. Для компьютерной реализации метода важным моментом является способ представления гиперкубов. Любой к-мерный гиперкуб, являющийся подграфом п-мерного гиперкуба, можно представить последовательностью Б из 2й номеров вершин, взятых из множества {1, 2,..., 2П}. Ребра заданы неявно: считается, что две вершины связаны ребром тогда и только тогда, когда занимаемые ими места в последовательности Б соответствуют местам соседних кодов в равной по длине последовательности кодов Грея.
Перед выполнением любого шага число гиперкубов всегда четно, точнее, для 5-го шага оно равно 2га-5+1. Текущая ситуация характерна наличием некоторого множества 5-мерных гиперкубов С (перед выполнением шага оно пусто) и некоторого остатка в виде множества (5 — 1)-мерных гиперкубов С8_1. Перебираются все пары гиперкубов из множества С5_1 и выбирается одна из них в соответствии с критерием, указанным ниже. К этой паре добавляются ребра, чтобы образовать 5-мерный гиперкуб, который вводится в множество С8. Выбранная пара исключается из С5-1. Выполнение шага заканчивается, когда С5_1 оказывается пустым.
2. Объединение гиперкубов в пары
Для двух (5 — 1)-мерных гиперкубов, представленных последовательностями Б1 и Б//, подсчитывается сумма Еш^-, где суммирование ведется по всем парам г и ] номеров вершин, занимающих одноименные места в Б1 и Б/;. Величина, представляемая указанной суммой, меняется с перестановкой вершин в одной из последовательностей, например в Б//. Конечно, только те последовательности могут быть приняты к рассмотрению, которые сохраняют отношение соседства между вершинами.
Выбирается та пара гиперкубов, для которой величина Еш^ максимальна, и из них строится 5-мерный гиперкуб соединением ребрами вершин, номера которых за-
нимают одноименные места в последовательностях Б/ и Б// (после соответствующей перестановки). Последовательность, представляющая построенный гиперкуб, получается соединением последовательностей Б/ и Б//, одна из которых меняет свой порядок на обратный.
Пусть, например, для восьми состояний получены два 2-мерных гиперкуба, которые представляются следующими последовательностями, связанными с кодом Грея: ql,q2^5^3 и q4,q6,q8,q7. Первый гиперкуб имеет ребра qlq2, q2q5, qзq5 и qlqз; второй — q4q6, q6q8, q7q8 и q4q7. При таком расположении вершин построенный с помощью добавления ребер q1q4, q2q6, q5q8 и q3q7 3-мерный гиперкуб представится последовательностью q1, q2, q5, q3, q7, q8, q6, q4. Если взять перестановку q8, q6, q4, q7 состояний второй последовательности, то получим q1, q2, q5, q3, q7, q4, q6, q8.
3. Сложность перебора вариантов объединения гиперкубов в пары
Рассмотрим перестановку, задаваемую оператором Е^, в результате действия которого все соседние по к-му измерению вершины меняются местами. Очевидные свойства операторов такого типа, Е^Е^ = Е^Е и Е^Е^ = 1, позволяют в каждом варианте пары гиперкубов перебирать еще 25_1 различных вариантов, порождаемых перестановками вершин в одном из гиперкубов рассматриваемой пары, получаемыми путем применения всевозможных сочетаний операторов Е1, Е2, ... , Е5-1.
Количество перебираемых вариантов пар гиперкубов на 5-м шаге выражается следующей формулой:
2п-а
Е = Е (2га_" — г + 1)(2га-5+1 — 2г + 1) = 2п__1((22(п_+1) — 1)/3 + 2П_).
г=1
Принимая во внимание перестановки, определяемые всевозможными сочетаниями операторов Ей (к = 1, 2,..., 5 — 1) для каждой пары (5 — 1)-мерных гиперкубов, получим количество перебираемых вариантов на 5-м шаге:
Е = 2,_1 Е'в = 2га_2((22(га_+1) — 1)/3 + 2”_).
Полный перебор всех возможных перестановок вершин (5 — 1)-мерного гиперкуба с сохранением отношения соседства на 5-м шаге, предусмотренный в работе [10] и допустимый при небольшом числе состояний автомата, резко увеличивает трудоемкость получения решения при увеличении числа состояний (число вариантов при этом составит Е,(5 — 1)! • 2,_1). Поэтому данный случай рассматривать здесь не будем.
Окончательно получим число вариантов, перебираемых указанным способом в течение всего процесса построения п-мерного булева гиперкуба:
П
Е = X] Е = 2га_2((22(га+1) — 3п — 13)/9 + 2п).
,= 1
Поскольку 2п в данном случае является числом состояний автомата, количество вариантов перебора при сборке п-мерного гиперкуба оценивается как полином степени 3 от числа состояний. Процесс выбора пары (5 — 1)-мерных гиперкубов на 5-м шаге может быть сокращен, если величина Еш^ достигла верхней границы, которую легко подсчитать, взяв сумму наибольших значений ш^ для пар вершин, еще не связанных ребрами.
4. Примеры
Процесс сборки гиперкуба продемонстрируем на примере из [6]. Воспользуемся результатами вычислений функции Эду, приведенными в данной работе, и представим значения Эду в табл. 1 (значение и’у пропорционально вероятности перехода между состояниями ^ и ^), где строки и столбцы соответствуют состояниям автомата. К автомату с шестью состояниями добавляем два фиктивных состояния д7 и д8, чтобы придать числу состояний значение целой степени двойки. Нулевые значения Wi7 и и^8 в табл. 1 не представлены.
Таблица 1 Значения шу
42 43 44 45 46
18 11 0 7 1 41
0 2 0 7 42
7 15 2 43
8 8 44
0 45
Максимальное значение имеет и12 = 18. Поэтому в первую очередь соединяем ребром вершины и д2. Затем ребрами соединяются вершины д3 и д5, д4 и д6, д7 и д8. Таким образом, на первом шаге получаем четыре одномерных гиперкуба, изображенных на рис. 1.
Рис. 1. Одномерные гиперкубы
Теперь требуется сформировать двумерный гиперкуб, добавив два ребра ад- и ді так, чтобы величина и- + Wkl была максимальной среди всех возможно добавляемых ребер. Все варианты присоединения ребер с соответствующей величиной и- + и>ы приведены в табл. 2. Ребра, инцидентные вершинам д7 и д8, не рассматриваются.
Таблица 2 Варианты присоединения ребер на втором шаге
Ребра 4143, 42 45 4145, 4243 4144, 42 46 4146, 4244 4344, 45 46 4346, 4445
ыц + ыы 11 7 7 3 7 10
Выбрав первый вариант, получим, как показано на рис. 2, один двумерный гиперкуб на вершинах д1, д2, д3 и д5 и второй гиперкуб путем добавления оставшихся ребер.
Для окончания работы требуется добавить еще четыре ребра, чтобы получить трехмерный гиперкуб. Варианты добавления ребер представлены в табл. 3. Среди них только два ребра могут иметь ненулевое значение и-. Поэтому рассматриваются только пары ребер.
% 4 %4 %7
Чг 4 Ч6 %
Рис. 2. Результат второго шага сборки гиперкуба
Таблица 3
Варианты присоединения ребер на третьем шаге
Ребра ?1?4,?2?6 ?2?6,?4?5 ®?4,?5?6 93?6,?4® ?1?6,?2 ?4 ?1?4,®?6
ыц + ыы 3 7 15 2 7 10 8 2
Выбрав третий вариант, получим результат, показанный на рис. 3. Согласно отношению соседства, представленному графом на рис. 3, шесть состояний заданного автомата могут быть закодированы следующим образом: — 000, д2 — 001, д3 — 010,
д4 — 111, д5 — 011, д6 — 110.
" 8 7
^ * у*
<г
Рис. 3. Окончательный результат сборки
Ч
Ч
2
5
Получим дефект отображения Д = Еи’у— 1). В рассмотренном примере к парам состояний, связанным переходами и соответствующим парам несвязных вершин в гиперкубе, относятся (д1,д5), (д1,д6), (д2,д4), (?з,д6) и (д3,д4). Соответствующими весами являются 7, 1, 2, 2 и 7, а расстояниями — 2, 2, 2, 3 и 2. В итоге получаем Д = 21, что значительно меньше значения, полученного для того же примера в работе [6].
Для сравнения предлагаемого метода с методом квадратов, описанным в [6], рассмотрим другой из приведенных там примеров — автомат с 11 состояниями. В данном случае и’у = 1, если состояния д и ^ связаны переходом, и и’у = 0 в противном случае, поскольку вероятности переходов здесь не учитываются. Значения и’у на парах состояний автомата удобно задать в виде табл. 4.
Для доведения числа состояний до целой степени двойки вводим пять фиктивных состояний и определим Wij = 0, если хотя бы одно из д и ^ является фиктивным. Одномерные гиперкубы, получаемые на первом шаге, изображены на рис. 4, где ребра, у которых оба конца соответствуют фиктивным состояниям, не присутствуют.
Используя тот же способ, что и в предыдущем примере, вводим ребра д1д6, д3д7, д2?9, ?4?8, д5д11 и д10д12; получим три двумерных гиперкуба (четвертый гиперкуб с нулевыми весами ребер не представляет интереса), изображенных на рис. 5. При переборе
Таблица 4
Значения
42 43 44 45 46 47 48 49 410 411
0 1 0 0 1 0 1 0 0 0 41
0 1 0 1 0 0 1 0 1 42
0 0 1 1 0 1 0 0 43
1 0 0 1 0 0 0 44
0 0 0 0 1 1 45
1 0 0 1 0 46
0 1 0 0 47
1 0 0 48
0 0 49
1 410
9г Чг Ч5
• • •
ч6 %
• •
• • • • •
Чз %4 %10 Ч7 %9 %12
Рис. 4. Одномерные гиперкубы
вариантов введения ребер следует учитывать верхнюю границу суммы их весов, на данном шаге равную 2.
Чх
ч6
Чг
Ч9
Чх
Рис. 5. Двумерные гиперкубы
Следующим шагом является построение двух трехмерных гиперкубов путем введения двух четверок ребер. При этом в данном примере достаточно рассматривать только такую четверку, в которой каждое ребро имеет не более одного конца, соответствующего фиктивному состоянию.
Все рассматриваемые варианты присоединения ребер с соответствующей величиной суммы их весов приведены в табл. 5, которая имеет три секции, соответствующие трем парам гиперкубов. Первая строка соответствует исходному положению гиперкубов, последующие строки — перестановкам, определяемым операторами Еі, Е2 и их сочетанию ЕіЕ. Выбирается четвертый вариант с максимальной суммой весов, равной 2. Результатом выполнения этого шага является трехмерный гиперкуб, изображенный на рис. 6. Во втором гиперкубе, также изображенном на рис. 6, одна из гиперграней полностью состоит из вершин, соответствующих фиктивным состояниям, и для сборки этого гиперкуба не надо перебирать ребра.
Ч
Ч
Ч
Ч
Ч
Ч
Ч
8
3
7
4
Таблица 5
Варианты присоединения ребер на третьем шаге
Ребра Ребра Ребра
9192 , 9699, 9394 , 9798 0 9l95, 9691Ъ 97912, 93910 0 9295 , 9991Ъ 98912 , 94910 0
9199 , 9296 , 9398 , 9497 1 91911, 9596 , 97910 , 93912 0 92911, 9599 , 98910 , 94912 1
9194 , 9698 , 9799 , 9293 1 919^ 969^ 9791Ъ 9395 0 929№ 99912, 9891Ь 9495 1
9198 , 9496 , 9297 , 9399 2 91912 , 96910 , 9597 , 93911 1 92912 , 99910 , 9598 , 94911 0
Рис. 6. Результат формирования трехмерных гиперкубов
Перебор вариантов соединения полученных трехмерных гиперкубов для получения окончательного решения в виде четырехмерного гиперкуба представлен в табл. 6. На последнем шаге качество сборки удобно оценивать по дефекту отображения ребер Д, значения которого показаны в последней строке табл. 6. Наименьшее значение Д = 6 получено в результате применения оператора Е2.
Т а б л и ц а 6 Варианты последнего шага сборки гиперкуба
Ч
ч
ч
ч
'
7
Код Грея Исходное положение Применение операторов Е^
Е1 Е2 Е3 Е1Е2 Е1Е3 Е2Е3 ЕЕ2 Е3
000 91 95 915 911 910 916 913 912 914
001 93 910 913 912 95 914 915 911 916
011 97 912 914 910 911 913 916 95 915
010 96 911 916 95 912 915 914 910 913
110 94 916 911 915 914 95 912 913 910
111 92 914 912 913 916 910 911 915 95
101 99 913 910 914 915 912 95 916 911
100 98 915 95 916 913 911 910 914 912
в 10 9 6 8 8 8 8 8
Окончательное решение в виде четырехмерного гиперкуба получаем, соединив ребрами 51511, 52513, 5з?12, 54^15, 55^6, 57?ю, 58^16 и 59514 трехмерные гиперкубы, показанные на рис. 6. Это решение приведено на рис. 7. Коды состояний автомата можно получить по табл. 6. Для этого к кодам Грея, соответствующим состояниям из второго столбца, надо приписать слева 0, а к кодам Грея, соответствующим состояниям из столбца Е2, приписать слева 1. Тогда получим следующее кодирование для 11 состояний: 51 — 0000, 52 — 0111, 53 — 0001, 54 — 0110, 55 — 1001, 56 — 0010, 57 — 0011, 58 — 0100, 59 — 0101, 5ю — 1011, 5п — 1000.
Заметим, что дефект отображения Д, характеризующий качество решения, здесь оказался равным дефекту отображения, полученному для того же примера в [6]. Если
Рис. 7. Результат сборки четырехмерного гиперкуба
взять способ построения гиперкуба из работы [6], при котором выбирается вариант соединения четырьмя ребрами грани 5551151251о с одной из граней куба с вершинами 51, 52 , 53 , 54 , 56 , 57 , 58 и 59, то удается получить Б = 4, т. е. на 2 меньше, чем в [6], но этот способ намного более трудоемкий.
Заключение
Предлагаемый метод кодирования состояний автомата рассчитан на использование его в автоматизированной системе логического проектирования. Минимизация интенсивности переключений не противоречит минимизации количества элементов в схеме. Предлагаемый метод допускает частичное совместное решение этих двух задач на этапе кодирования состояний. Решение примеров показывает, что предлагаемый подход не хуже известных и может быть использован для энергосберегающего кодирования состояний автомата.
Автор выражает благодарность рецензенту за ценные замечания, позволившие устранить ошибки и повысить качество изложения.
1.
2.
Б.
ЛИТЕРАТУРА
Мурога С. Системное проектирование сверхбольших интегральных схем. В 2 кн. Кн. 1. М.: Мир, 1985. 288 с.
Pedram M. Power minimization in IC design: Principles and applications // ACM Trans. Design Automat. Electron. Syst. 1996. V. 1. P. 3-56.
Kashirova L., Keevallik A, and Meshkov M. State assignment of finite state machine for decrease of power dissipation // Second Inter. Conf. Computer-Aided Design Discrete Devices —CAD DD’97. Minsk, Republic of Belarus, November 12-14, 1997. V. 1. Minsk: National Academy of Sciences of Belarus, Institute of Engineering Cybernetics, 1997. P. 60-67.
Sudnitson A. Partition search for FSM low power synthesis // Fourth Inter. Conf. Computer-Aided Design of Discrete Devices —CAD DD’2001. Minsk, Republic of Belarus, November 14-16, 2001. V. 1. Minsk: National Academy of Sciences of Belarus, Institute of Engineering Cybernetics, 2001. P. 44-49.
Закревский А. Д. Об оптимальном размещении графа в булевом пространстве // Вестник Томского госуниверситета. Приложение. 2005. №14. С. 13-17.
Закревский А. Д. Алгоритмы энергосберегающего кодирования состояний автомата // Информатика. 2011. №1(29). С. 68-78.
Armstrong D. B. A programmed algorithm for assigning internal codes for sequential machines // IRE Trans., EC-11. 1962. No. 4. P. 466-472.
q
q
в
8. Armstrong D. B. On the efficient assignment of internal codes to sequential machines // IRE Trans, EC-11. 1962. No. 5. P. 611-622.
9. Оранов A. M. Размещение множества вершин взвешенного графа в простой цепи // Логическое проектирование дискретных устройств. Минск: Ин-т техн. кибернетики АН БССР, 1984. С. 54-61.
10. Закревский А. Д., Поттосин Ю. В., Черемисинова Л. Д. Логические основы проектирования дискретных устройств. М.: Физматлит, 2007. 592 с.
11. Pottosin Yu. V. «Assembling» a Boolean hypercube: an approach to state assignment of finite state machines // Second Inter. Conf. Computer-Aided Design of Discrete Devices — CAD DD’97. Minsk, Republic of Belarus, November 12-14, 1997. V. 1. Minsk: National Academy of Sciences of Belarus, Institute of Engineering Cybernetics, 1997. P. 54-59.
12. Macii E., Pedram M., and Somenzi F. High-level power modeling, estimation and optimization // IEEE Trans. Computer-Aided Design Integrated Circuits and Systems. 1998. V. 17. No. 11. P. 1061-1079.