Задача тестирования моделей микропроцессоров с конвейерной архитектурой

Применение системы устранения колебаний натяжения прокатываемой полосы на станах холодной прокатки с переключением между специализированным разработанным регулятором колебаний натяжения полосы и типовым регулятором натяжения по сигналу обнаружения колебаний с возможностью размыкания контура регулирования на время настройки параметров позволяет поддерживать заданное натяжение прокатываемой полосы в колебательных и стабильных режимах с отклонением не более ±1,6-104 Н. Такой уровень колебаний натяжения прокатываемой полосы дает возможность вести процесс прокатки без снижения скорости при возникновении вибраций, и, соответственно, повысить производительность стана.

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

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

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

- применение системы устранения колебаний натяжения позволяет устранить в 85 % случаев колебания на станах холодной прокатки и повысить произ-

водительность стана, рассчитанную по методике [3], с применением разработанной системы на 2,14 %.

Литература

1. Уидроу, Б. Адаптивная обработка сигналов / Б. Уид-роу, С. Д. Стирнз. - М., 1989.

2. Харахнин, К.А. Разработка алгоритма идентификации вибраций в рабочих клетях станов холодной прокатки / К.А. Харахнин, А.В. Кожевников, Е.А. Маслов // Сталь. -2010. - № 10. - С. 38 - 40.

3. Химич, Г. Л. Оптимальная производительность станов холодной прокатки / Г.Л. Химич, А.В. Третьяков, Э.А. Гарбер, М.А. Макарова. - М., 1970. - C. 67 - 82.

4. John D. Higham, Colin J. McNaught Pat. 458842 U.S. Patent. Feed forward gauge control system for a rolling mill // Cupertino, California. - Apr. 8, 1974.

5. Glentis, G.O. Efficient Least Squares Adaptive Algorithms for FIR TransversalFiltering / G.O. Glentis, K. Ber-beridis, S. Theodoridis // IEEE Signal Processing Magazine. -1999. - № 4. - P. 13 - 41.

6. Mu, Р.Н. Stability Analysis of Chatter on a Tandem Rolling Mill / Р.Н. Hu, K.F. Ehmann // International Journal of Manufacturing Processes. - 2000. - № 4. - P. 217 - 224.

7. Rabiner, L.R. FIR Digital Filter Design Techniques Using Weighted Chebyshev Approximations / L.R. Rabiner, J.H. McClellan, T.W. Parks // Proc. IEEE. - 1975. - № 63. - P. 595

- 610.

8. Roberts, W. Third Octave - Mode Chatter in the Cold Rolling of Light Gauge Strip / W. Roberts // Proceedings of the International Conference on Steel Rolling. - 1980. - P. 1215 -1224.

УДК 519.87

Д.А. Мявря

Научный руководитель: доктор технических наук, профессор В.А. Кузнецов

ЗАДАЧА ТЕСТИРОВАНИЯ МОДЕЛЕЙ МИКРОПРОЦЕССОРОВ С КОНВЕЙЕРНОЙ АРХИТЕКТУРОЙ

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

Тестирование микропроцессора, граф состояний, конечный автомат, обход ориентированного графа.

This article considers the problem of microprocessor testing. The model of microprocessor as a finite-state machine on its state graph is built and analyzed. The methods of reducing the graph dimension are presented in the paper.

Microprocessor testing, state graph, finite-state machine, directed graph pass-by.

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

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

Написание спецификации. Как и любой другой программный или аппаратный продукт, создание микропроцессора предваряет написание полной спецификации его работы.

Создание модели работы микропроцессора. Обычно модель представляет собой программу на высокоуровневом языке программирования. Про-

граммная модель имеет две основных функции: она используется в качестве «эталона» при тестировании, а также необходима прикладным программистам для составления и отладки программ для разрабатываемого микропроцессора до появления его реального экземпляра.

Создание ЯТЬ-описания на уровне регистровых передач. Это описание комбинаторной логики, которое определяется в терминах потоков сигналов или пересылок данных между аппаратными регистрами и логических операций над данными сигналами. ЯТЬ-описание является конечным продуктом дизайнеров микропроцессоров, на основании которого будет создаваться реальный процессор.

Тестирование ЯТЬ-описания и программной модели.

Одним из методов тестирования является запуск тестовых программ для модели и на ЯТЬ-эмуляторе и последующего потактового сравнения отладочного вывода. В случае несоответствия выполняется поиск ошибки и исправление в программной модели или ЯТЬ-описания.

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

Рассмотрим конечный автомат следующего вида (8, 80, X, Т), где £ - множество состояний микропроцессора; - множество начальных состояний мик-

ропроцессора. Можно считать, что это множество может включать только одно состояние 50; X - множество стимулов, в данном случае это новая команда, поступающая на обработку конвейером.

Т с 8 х Т х 8 - отношение переходов. Каждый переход / имеет вид ^¡, х, st ’), где st - пресостояние микропроцессора; хг - стимул, в контексте данной задачи, это команда, поступающая на конвейер; $ \ -постсостояние микропроцессора.

Критерием полноты покрытия является покрытие всех возможных переходов автомата. В таком случае для каждой пары (, х1), ^ е 8, х1 е X возможно

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

Если граф состояний будет построен, задача может быть решена с помощью одного из алгоритмов обхода ориентированного графа. Один из таких алгоритмов описан в работе [2].

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

1. Текущая инструкция (команда и аргумент(ы)).

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

3. Состояние памяти данных.

4. Состояние регистров. Среди них стоит выделить регистры общего назначения, а также системные регистры (регистр состояния, регистр ошибок и др.).

5. Вектор прерываний.

Оценим порядок величины количества возможных состояний микропроцессора на примере микроконтроллера КМ32 дизайн студии КМ-211.

КМ-32 поддерживает 102 команды, команды имеют от 0 до 2 аргументов в зависимости от команды, в качестве аргумента могут быть использованы константы и/или регистры.

Микроконтроллер КМ-32 использует 19 системных и 24 регистров общего назначения.

КМ-32 может использовать до 8 Мб данных.

Вектор прерывание имеет размер 4 байта.

Используя грубую оценку, количество состояний

20000000

превосходит величину 10 .

Таким образом, количество состояний является огромной величиной, и покрытие тестами всех возможных состояний - неразрешимая задача. Однако следует заметить, что многие параметры состояния не влияют на работу процессора, например, из всего объема пользовательской памяти можно рассматривать только ту память, которая будет использоваться в трех командах процессора, которые находятся на обработке в конвейере. Также можно отсечь и некоторые пользовательские и системные регистры, которые не используются при выполнении текущих операций. Еще одним способом сокращения количества состояний является объединение нескольких однотипных операция в одну. В результате такой «оптимизации» количества состояний автомата уменьшится до 10150. Это число хоть и меньше во много раз, чем исходная оценка, но все равно является достаточно большой величиной.

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

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

Похожий метод был предложен Камкиным [3] и успешно используется в наборе программных средств для тестирования программного обеспечения и аппаратных сред ИшТЕБК [7], однако для его применения необходимо до начала тестирования составить полную формальную спецификацию тестируемого объекта в терминах логических предикатов. Иногда, для особенно сложных систем, построение формальной спецификации является очень сложной задачей и требует больших затрат труда высококвалифицированного персонала.

Представленная теория используется при создании автоматизированной системы генерации тестов, выполняемой по заказу Дизайн-компании КМ-211. Работа выполняется в рамках программы стратегического развития ПетрГУ сотрудниками лаборатории Математического моделирования и сложных вычислительных расчетов.

Литература

1. Бурданов, И.Б. Использование конечных автоматов для тестирование программ / И.Б. Бурданов, А.С. Косачев,

B.В. Кулямин // Программирование. - 2000. - № 2. - С. 12

- 28.

2. Бурданов, И.Б. Неизбыточные алгоритмы обхода ориентированных графов. Детерминированный случай / И.Б. Бурданов, А.С. Косачев, В.В. Кулямин // Программирование. - 2003. - № 5. - С. 11 - 30.

3. Камкин, А. С. Генерация тестовых программ для микропроцессоров / А.С. Камкин // Труды Института системного программирования РАН. - 2008. - Т. 4. - Ч. 2. -

C. 23 - 65.

4. Мявря, Д.А. Задача оптимизации тестового покрытия и методы ее решения / Д.А. Мавря // Новые информационные технологии в ЦБП и энергетике: Материалы X Международной конференции. - Петрозаводск, 2012. -С. 41 - 45.

5. Мявря, Д.А. Оптимизационные задачи в тестировании конвейерных микросхем / Д.А. Мавря, В.А. Кузнецов // Новые информационные технологии в ЦБП и энергетике. Материалы X Международной конференции. - Петрозаводск, 2012. - С. 35 - 36.

6. Справочник КМ32 // Дизайн Центр КМ211. - 2011.

7. итТЕ8К - индустриальная технология надежного тестирования. - ЦКЬ: http://www.unitesk.ru/

УДК 519.87

К.Н. Сеничев, В.А. Кузнецов

ИСПОЛЬЗОВАНИЕ МЕТАЭВРИСТИК ДЛЯ РЕШЕНИЯ ЗАДАЧ ДИСКРЕТНОГО ПРОГРАММИРОВАНИЯ

Представлено формальное изложение метаэвристических методов для решения задач дискретного программирования с использованием базовых математических структур, предложен оригинальный метод комбинирования решений.

Метаэвристика, комбинаторная оптимизация, дискретная линейная комбинация.

The article presents the description of metaheuristics algorithms for solving discrete programming problems using the basic mathematical structures. The new mix-and-match technique is proposed in the paper.

Metaheuristics, combinatorial optimization, discrete linear combination.

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

Далее будем считать, что метаэвристики предназначены для решения условных или безусловных задач оптимизации

P: fP (х)  min, х е Q.

Метаэвристики часто напоминают явления и процессы, которые встречаются в повседневной жизни. Придуманные физиками, биологами и инженерами, они нередко появляются в качестве аналогов физических, технических или социальных процессов, что привносит определенные особенности в терминологию их описания. К примеру, значение функционала задачи может интерпретироваться как «энергия» некоторого материала или «уровень здоровья» определенной особи, что в ряде случаев не соответствует требованиям математической строгости. План х е ^ может называться «маршрутом муравья» или «хромосомой» [1], что, чаще всего, не имеет никакого отношения к рассматриваемой задаче.

Значительная часть метаэвристик представляет собой гибрид алгоритмов случайного поиска, обеспечивающего определенный разброс решений, и локальной оптимизации, обеспечивающей определенное качество полученного решения [3]. Каждый этап