вает несколько эволюционирующих линий программ, которые конкурируют между собой в точности выражения искомой зависимости.
Из проведенного анализа существующих методов И АД можно сделать вывод, что наиболее подходящим методом при анализе данных является метод эволюционного программирования. С помощью этого метода можно находить любые типы закономерностей. Возможно, что при решении задач классификации предпочтительней было бы использовать алгоритмы деревьев решений, а при прогнозировании - метод ближайшего соседа и т.д. Но в виду того, что каждый из этих методов реализован в отдельном программном продукте, покупка такого множества программ не целесообразна и экономически неэффективна для предприятия. Поэтому применение методов эволюционного программирования является наиболее эффективным при решении задач интеллектуального анализа данных.
ВЫВОДЫ
Управление современным предприятием требует большей оперативности в период быстрых изменений на рынке, более короткого цикла обращения продукции и услуг. Именно поэтому сейчас остро стоит вопрос в реорганизации, в первую очередь, управленческого процесса на предприятии. Повысить эффективность деятельности управленцев на всем этапе управленческого цикла призвана новая концепция управления предприятием -контроллинг. Контроллинг как новое явление в теории и практике управления выполняет функцию интегрирования всех функций управленческого процесса. Занимая особое место в системе управления, контроллинг осуществляет информационное обеспечение принятия решений в целях оптимального использования имеющихся возможностей. Для выполнения данной функции контроллинга на предприятии необходимо, во-первых, провести комплексную автоматизацию всех бизнес-процессов, а, во-вторых, внедрить СППР в соответствии с требованиями управленческого персонала предприятия. Т.к. для анализа данных с целью получения аналитической информации необходимо использовать разнообразные математические методы - применение технологии ИАД является необходимых условием для повышения эффек-
тивности процесса принятия решений на любом предприятии.
На основе проведенного анализа методов ИАД - эволюционное программирование является наиболее подходящим методом при анализе данных по двум причинам. Во-первых, с помощью метода эволюционного программирования можно достаточно эффективно находить любые типы закономерностей, что нельзя сказать о других методах ИАД. Во-вторых, экономически эффективно для предприятий использовать один программный продукт с реализацией метода эволюционного программирования для комплексного решения задач интеллектуального анализа данных, чем несколько программных продуктов, каждый из которых выявляет только ограниченный набор типов закономерностей.
ПЕРЕЧЕНЬ ССЫЛОК
1. Рубцов С.В. Целевое управление в корпорациях. Управление изменениями. - М.: Фи-нансы и статистика, 2001. - 305 с.
2. Сердюк С.Н., Поздняков А.А. Анализ и синтез систем поддержки принятия решений // Радюелектрошка. 1нфор-матика. Управлшня, 2000. - № 1. - С.106 -111.
3. Дайле А. Практика контроллинга. - М.: Финансы и статистика, 2001. - 336 с.
4. Ананькина Е.А., Данилочкин С.В., Данилочкина Н.Г. и др. Контроллинг как инструмент управления предприятием / Под ред. Н. Г. Данилочкиной. - М.: Аудит, ЮНИТИ, 2001. -279 с.
5. Дюк В., Самойленко A. Data mining: учебный курс. - СПб.: Питер, 2001. - 368 с.
НадШшла 18.02.03 Шсля доробки 31.02.04
Розглянута концепщя контроллтгу, opienmoeana на систему облшу, та гг головна задача - шформацшна nid-тримка прийняття рииень. Для тдвищення onepamueuocmi отримання аналтичног гнформаци використовуютъ системы тдтримки прийняття рииень (СППР). Проанал1зова1и математичм методы технологи ттелектуального анал1зу даних ят використовуються в СППР. Метод еволющйного програмування обраний як найбыъш ефективний при inme-лектуальному анал1зу даних.
The article considers controlling-accounting conception and it main goal - information decision support. Decision support system (DSS) are using for increase quickness getting the analytical information. Mathematical methods of technology data mining is analyse in the article. This methods use in DSS. A method of evolution programming is the method of highest effectiveness in data mining.
УйК 681.518
Ю.А. Скобцов, М.А. Ермоленко
ФУНКЦИОНАЛЬНЫЕ МОДЕЛИ НЕИСПРАВНОСТЕЙ ЦИФРОВЫХ СИСТЕМ
Рассмотрена проблема верыфыкации ы тестирования Исследованы функциональные модели неисправностей циф-сложных цифровых систем, представленных на языках опи- ровых систем, описанных с помощью этих языков, сания аппаратуры высокого уровня (УНОЬ, УЕШЬОС).
Ю.А. Скобцов, М.Л. Ермоленко-. ФУНКЦИОНАЛЬНЫЕ МОДЕЛИ НЕИСПРАВНОСТЕЙ ЦИФРОВЫХ СИСТЕМ
ВВЕДЕНИЕ
На логическом уровне моделирования, где ЦС представляется в виде логической схемы, основной моделью физических дефектов являются константные неисправности, которые эквивалентны постоянным сигналам О или 1 на линиях схемы. В отличие от логического уровня моделей неисправностей, где обычно можно установить соответствие между физическим дефектом проводников в кремнии и соединениями в логической схеме, на поведенческом уровне, как правило, трудно установить соответствие между описанием ЦС на HDL и структурным описанием. Один оператор HDL может соответствовать сотням логических вентилей, соединенных между собой. Поэтому необходимо рассматривать функциональные модели неисправностей непосредственно на языковых конструкциях HDL. При этом качество (или адекватность) функциональных моделей неисправностей, как правило, проверяется с помощью логического моделирования ЦС, которое определяет полноту теста относительно одиночных константных неисправностей схемы, реализующей ЦС. Поэтому данный подход ориентирован скорее на достижение высокой полноты теста для константных неисправностей, а не обнаружение ошибок в языковых конструкциях HDL. Более того, при этом эффективность тестовой последовательности не может быть определена непосредственно на функциональном уровне. Поэтому в настоящее время для верификации и тестирования ЦС, описанных на HDL, применяются методы, заимствованные из тестирования программного обеспечения [ 1 ].
ТЕСТИРОВАНИЕ ПРОГРАММ
Проблема верификации корректности описания ЦС на языках описания аппаратуры подобна задаче тестирования программного обеспечения потому, что описание ЦС на поведенческом уровне подобно программе, написанной на одном из языков высокого уровня таких как С или С++. Но между ними есть два существенных отличия:
- языки программирования более выразительны и используют более сложные конструкции, такие как указатели, комплексные типы, рекурсия и т.п., которые соответственно требуют более сложных тестовых процедур;
- описание ЦС обычно выполняется в процессе последовательного уточнения за счет детализации от поведенческого абстрактного уровня до структурного описания. В отличие от проектирования ЦС при разработке программного обеспечения не всегда существуют детальные спецификации и указанная стратегия редко используется.
Для тестирования программ [2] используется два основных подхода: 1) формальные методы, основанные на доказательствах теорем; 2) структурные методы, где программа, как правило, представляется блок-схемой или непосредственно последовательностью операторов. Для тестирования описаний ЦС на HDL целесообразно
использовать второй подход.
Блок-схема является графическим представлением управляющей структуры программы и состоит из линейных участков программы (процессов), точек решения и схождения. Процесс состоит из последовательности операторов и имеет один вход и один выход. В точке решения программа расходится и, наоборот, в точке схождения - сходится. Путь в блок-схеме представляет один из возможных вариантов выполнения последовательности операторов от точки входа в программу до точки выхода из нее. Сложность программы, прежде всего, определяется числом возможных путей в ее блок-схеме.
Для конкретных входных данных выполняются (активизируются) определенные операторы программы. Для оценки качества тестирования программ используются различные меры. Мера покрытия операторов программы измеряется числом операторов, активизированных при определенных входных данных. В случае меры покрытия ветвей точек ветвления, измеряется число активизированных ветвей при определенных входных параметрах. Мера покрытия путей измеряет число активизированных путей в блок-схеме на тестовых данных. Целью тестирования программы является стопроцентное покрытие путей, которое обеспечивает также покрытие ветвей и операторов. Но число путей в программе может экспоненциально зависеть от ее размера и поэтому стопроцентное покрытие путей является очень сильным требованием, которое на практике не всегда выполнимо.
ФУНКЦИОНАЛЬНЫЕ МОДЕЛИ
НЕИСПРАВНОСТЕЙ И МЕРЫ ПОЛНОТЫ
ТЕСТОВ ДЛЯ ЦС, ОПИСАННЫХ НА HDL
Ошибка проектирования ЦС заключается в несоответствии между заданной спецификацией и реализованным на HDL проектным решением. Общая спецификация, как правило, задается на естественном языке и описывает желаемое функционирование ЦС. Более точная и формальная исполняемая спецификация выполняется на языке высокого уровня описания аппаратуры HDL. Ошибка проектирования может произойти как из-за простой синтаксической ошибки в одном из операторов HDL, так и из-за неправильного понимания спецификации, что обычно соответствует ошибочному сегменту кода HDL. Функциональная неисправность является моделью ошибок проектирования. Следует отметить, что относительно небольшой набор неисправностей может моделировать достаточно большое множество ошибок [3].
На рис.1 показан простой пример для иллюстрации функциональных моделей проектирования. В левой части рис.1 представлено текстовое описание, а в правой -функциональная блок-схема. При одном из подходов тестирования путей в блок-схеме выбираются пути, которые связывают блок объявления переменной с блоками, в которых она используется. Например, на рис.1 пути 1,2,9,4,5,6,7,8 и 1,2,9,4,8 покрывают оба возможных пути между объявлением переменной л: и ее использованием.
( Initial Node J
С Last Node
Рисунок 1
arhitecture beha of gcd is begin p1: process
variable x, y , temp: INT_RANGE; begin wait until clock = '1' x := xi; y: = yi;
while (x > 0) bop if (x <= y) then temp := y; y:=x; x := temp; end if; x := x - y; end loop; ou <= y; end process p1; end beha;
НЕИСПРАВНОСТИ ТЕКСТА ПРОГРАММ HDL
Этот тип модели непосредственно применим к тексту программы, который описывает функционирование ЦС [2]. Простая неисправность текста программы HDL соответствует мере покрытия операторов при тестировании программного обеспечения, которая рассматривалась выше. Эта мера имеет ограниченную точность, поскольку не учитывает проявление ошибки на внешних выходах устройства. Несмотря на ограничения, эта мера часто применяется разработчиками ЦС в силу своей простоты реализации. Анализ мутации соответствует неисправности текста программы и был первоначально разработан для тестирования программного обеспечения [4] и затем перенесен на тестирование ЦС [5]. При этом "мутант" представляет версию функционального описания, которая отличается от оригинала на одну потенциальную ошибку проектирования. Тогда оператор мутации определяется функцией, которая применяется к оригиналу для генерации "мутанта". Типичным примером оператора мутации является замена одной арифметической операции на другую. Однако, поскольку этот оператор локален по своей природе, с его помощью невозможно описать достаточно большое множество ошибок проектирования.
МЕРЫ ПОКРЫТИЯ ФУНКЦИОНАЛЬНЫХ
НЕИСПРАВНОСТЕЙ
Многие модели функциональных неисправностей основаны на представлении HDL описания ЦС функциональными блок-схемами. Поэтому рассмотренный выше
подход к тестированию программного обеспечения переносятся на блок-схемы, соответствующие описанию ЦС на HDL [6]. Распространение этого подхода на блок-схемы, описывающие последовательные процессы достаточно очевидно, но для параллельных процессов это не так тривиально. Рассмотрим основные типы и меры покрытия функциональных неисправностей.
- Битовые неисправности. Каждая переменная, сигнал или порт представляется двоичным вектором. Каждый бит этого вектора может принять константное значение 0 или 1 [7]. На рис.2 показана константная битовая неисправность. Очевидно, что этот тип является простым обобщением модели обычных константных неисправностей, широко используемой на логическом уровне.
■I 0 0 0 0 | 0 | 1 I 0 | 0 |
1 0 0 0 0 | 1 0 | 0 1
addr<= (tail + regl) mod 2**8
-«001 011
и
Рисунок 2
- Условные неисправности. Каждая условие в условном операторе может принять также константное значение 0 или 1. в результате некоторые пути в блок-схеме становятся "недоступными".
Ю.А. Скобцов, M.Л. Ермоленко: ФУНКЦИОНАЛЬНЫЕ МОДЕЛИ НЕИСПРАВНОСТЕЙ ЦИФРОВЫХ СИСТЕМ
Указанные модели исключают явное некорректное поведение элементарных операторов (таких как +, -,*, / ...). Искажаются только значения отдельных битов переменных. Каждая неисправность в списке моделируемых неисправностей характеризуется следующими атрибутами: имя сигнала, переменной или порта; оператор HDL, в котором произошла ошибка; тип константной неисправности (битовая или условная); для битовых неисправностей номер бита. Поскольку все биты HDL описания ЦС могут искажаться, то вводится битовая мера покрытия неисправностей. При этом мера показывает число искаженных битов в сигналах, переменных или портах, которые обнаруживаются на тестовых воздействиях. Далее рассмотрим модели функциональных неисправностей и меры покрытия, определенные на блок-схемах HDL. Ранние методы функционального тестирования использовали модели и меры покрытия ветвей и путей.
- Мера покрытия ветвей ассоциирует каждую неисправность с определенным направлением ветви в каждом условном операторе (точке ветвления). Отметим, что полное покрытие ветвей требует, чтобы пути блок-схемы покрывали все ветви каждого условного оператора. Некоторые исследователи использовали меру покрытия ветвей при генерации тестов для оценки их полноты.
- Мера покрытия путей налагает более жесткие требования по сравнению с предыдущей, так как отражает число исполняемых путей для тестовых данных. При этом предполагается, что ошибка ассоциируется с некоторым путем блок-схемы. Поэтому прохождение всех путей в блок-схеме гарантирует обнаружение возможных ошибок. При наличии циклов в блок-схеме длина пути может быть неограниченной, поэтому при использовании этой меры покрытия длина путей должна быть ограничена. Поскольку число исполнимых путей в блок-схеме растет экспоненциально с числом условий некоторыми исследователями была предпринята попытка выделить некоторое подмножество путей, достаточное для тестирования [8].
ТЭГИ
Схема реализует вычисление некоторой функции и можно рассматривать этот процесс как последовательность присваивания значений переменным. Ошибки в вычислении моделируются как ошибки в операторах присваивания, т.е. любое значение, присвоенное какой либо переменной в HDL описании, может быть ошибочным. Возможность наличия ошибки представляется установкой метки для переменной (с левой стороны в операторе присваивания) - символа А, который обозначает возможное изменение значения переменной в присутствии ошибки [5]. Рассматриваются как положительные Д так и отрицательные метки - Д. Для каждого функционального теста моделируется схема чтобы определить какой из тэгов активизируется первым (посредством активизации соответствующего оператора присваивания) и затем тэг распространяется на внешние
выходы схемы. Когда тэг распространяется на внешние выходы схемы, то это означает, что существует путь от точки ввода тэга до одного из внешних выходов и этот путь активизируется данным функциональным тестом. Затем находится покрытие неисправностей для данного функционального теста. Следует отметить, что при моделировании эффект каждого тэга учитывается отдельно (аналогично одиночным константным неисправностям при моделировании на логическом уровне) Однако программа моделирования неисправностей может моделировать эффекты нескольких тэгов параллельно, также как и в параллельном методе моделирования константных неисправностей.
При этом не требуется, чтобы ошибки в коде описания на HDL, всегда приводили к неправильным значениям некоторых переменных. Ошибки типа пропуска отдельных переменных или операторов, или следствие общего непонимания функционирования проектируемой ЦС, могут не вызывать такого эффекта. Тэги отражают два основных требования при верификации модели: 1) активизация операторов в HDL программе; 2) наблюдение эффекта активизации.
Рассмотрим вопросы присоединения тэгов к операторам (присваивания), включающие арифметические и булевы операторы. Положительные и отрицательные тэги вносятся в операторы присваивания посредством присоединения тэгов к переменным, находящимся слева в операторах присваивания. Двоичная векторная переменная, в основном, трактуется, как одно целое и ей ставится в соответствие один тэг. Но если ее отдельные биты обрабатываются отдельно, то каждый из них трактуется как независимая переменная и ей соответствует свой тэг.
В условных операторах к управляющим переменным (стоящих после if) тэги не присоединяются. Но для остальных переменных (данных) они могут вноситься.
Основной проблемой является распространение тэгов через элементы и модули HDL описания ЦС. Для того, чтобы значение входа распространялось через модуль, остальные входы должны иметь неконтролирующие значения. Например, если в вентиле И на какой либо вход подается контролирующее значение 0, то для остальных входов невозможно распространить на выход любое значение сигнала. Отметим, что для простых логических вентилей распространение тэгов фактически совпадает с D-распространением. Символ D (как и тэг) показывает рассогласование сигналов в исправной и неисправной схеме. Аналогично D-исчислению [9] разработано А -исчисление, табл. 1,2 представляют Д-исчисление для вентилей И и НЕ и используются для распространения тэгов через эти элементы.
Рассмотрим распространение тэгов через арифметические операторы. Каждый модуль работает с «-разрядными двоичными векторами. Для каждого оператора после моделирования имеем v(/)==v (a)<op>v(b), где v(x) означает значение векторной переменной х. Далее положительный или отрицательный тэг может быть присоединен к v(/), что обозначается соответственно (v(/")+А) или (v(f)-A).
Таблица 2
INVERT 1 Ô
Гд о+д
Рассмотрим тэг-распространение через некоторые типовые модули. Если все тэги на входах сумматора положительны и значение результата v(/) < MAXINT (наибольшего «-разрядного целого числа), то выходу сумматора присваивается (v(/)+A ). Аналогично, в случае наличия на всех входах отрицательных тэгов, выходу присваивается (v(f)+A). Если входы имеют как положительные, так и отрицательные тэги, то выходу тэг не присваивается.
Для умножителя при тэг-распространении на его входах все тэги должны быть одного знака. Положительный тэг на входе а распространяется на выход /", если
V (b) #0 или если b имеет положительный тэг. В этом случае выходу умножителя присваивается (v(/)+A). Аналогичные действия выполняются для отрицательных входных тэгов.
Если существуют тэги на входах а и b компаратора, то для распространения они должны иметь противоположные знаки. Иначе тэг на выход не распространяется. Предположим, что положительный тэг есть только на одном входе а, и либо положительный тэг на входе а и отрицательный тэг на входе Ь. Если V (а) < v(b), то тэг распространяется на выход и выходу присваивается (0+Д). Аналогичные действия выполняются для других тэгов и других типов компараторов.
Для побитовой операции И все тэги для их распространения должны быть одного знака. Пусть задан положительный тэг переменной а, а переменная b не отмечена тэгом. Если по крайней мере один из битов в векторе b отличен от нуля и V (а) Ф2п-\, то vif) V (a)@v(b) и выходу присваивается V . Для положительных тэгов для обеих переменных а и b в случае, когда v(a) и
V (Ь) Ф2п-\ полагаем v(f) и v(a)@v(b) выходу присваивается также v(f)+A Аналогичные действия выполняются для отрицательных тэгов.
Для поразрядного НЕ v(/";)=(v - (а.) ), где 0<i<n. Для положительного тэга на а выходу присваивается значение V.
Распространение тэгов через условные операторы if требует препроцессорной обработки программы. Достижимость процесса из условного оператора определяется путем анализа блок-схемы. Если каждый процесс имеет один вход и один выход, то все операторы в пределах данного процесса имеют одинаковые свойства достижимости. Без потери общности предполагается, что каждый условный оператор является бинарным. Для каждого условного оператора определяется множество достижимых процессов при условии истинности управляющей пере-
менной с. Это множество обозначается Рс. Аналогично через Р-, обозначается множество процессов, достижимых при нулевом значении управляющей переменной с. При обработке условных операторов в процессе моделирования возможны два случая:
1) Нет тэга в управляющей переменной. В этом случае моделирование протекает обычным образом. В соответствующих процессах выполняются операторы, для которых в случае необходимости вносятся и распространяются тэги.
2) Если тэг присоединен к управляющей переменной с, то это ведет к неправильному ветвлению при достижении данного условного оператора. Пусть с имеет положительный тэг. Если значение с равно 1, то тэг не распространяется. И наоборот, если с=0, то тэг вносится во все переменные в процессах Р- — Рг. При наличии тэга в условии операции присваивания пропускаются, следовательно, к переменным выхода присоединяется тэг. Если новое значение выхода после присваивания меньше старого, то присваивается положительный тэг. Если новое значение больше старого, то присваивается отрицательный тэг. Если же значения одинаковы, либо старое значение не определено, то тэг не вносится.
ФУНКЦИОНАЛЬНЫЕ МОДЕЛИ
НЕИСПРАВНОСТЕЙ АВТОМАТНОГО УРОВНЯ
Конечные автоматы (КА) являются классической функциональной моделью последовательностных схем (систем с памятью). В качестве меры покрытия при этом чаще всего используются две меры, основанные на представлении КА графом переходов-выходов: 1) покрытие состояний, которая показывает число "посещенных" состояний (в идеале все состояния автомата должны быть посещены в процессе диагностического эксперимента); 2) покрытие переходов, которое показывает число пройденных переходов на данной тестовой последовательности (для полного теста все переходы должны быть). Некоторые исследователи рассматривают только особо важные с точки зрения пользователя переходы, которые подлежат проверке при тестировании [10]. Кроме этого, используется мера покрытия путей в графе переходов-выходов автомата или системном графе процессора [11]. В работе [12] для тестирования последовательностных схем используется классический математический аппарат булевых функций. Указанные меры покрытия являются приближенными, наиболее полно вопросы тестирования последовательностных схем решаются в теории экспериментов с автоматами [13]. Но, к сожалению, при этом длина тестовых последовательностей слишком велика, поскольку при этом проверяется вся таблица переходов-выходов автомата. Поэтому некоторые исследователи для тестирования выделяют определенное подмножество автоматов, критичных с точки зрения тестирования. Расширенный конечный автомат и управляющий автомат образуют редуцированный автомат посредством разбиения битов переменных состояния на информационные и управляющие.
Таблица 1
AND 0 1 0+Д 1-Д
0 0 0 0 0
1 0 0+Д 0+Д 1-Д
0+Д 0 0+Д 0+Д 0
1-Д 0 1-Д 0 1-Д
Ю.А. Скобцов, М.Л. Ермоленко-. ФУНКЦИОНАЛЬНЫЕ МОДЕЛИ НЕИСПРАВНОСТЕЙ ЦИФРОВЫХ СИСТЕМ
ФУНКЦИОНАЛЬНЫЕ НЕИСПРАВНОСТИ
МИКРОПРОЦЕССОРОВ
В классической работе [14] микропроцессор представляется в виде системного графа (СГ), основанного на его архитектуре и наборе команд. Вершины этого графа соответствуют регистру или группе регистров МП. Пусть R={Rl, R2,..., Rn} - множество всех программно доступных регистров МП и 1={1\,..., /р} - его множество команд. Тогда вершины графа представляют регистр (или группу эквивалентных регистров) и специальные вершины IN и OUT. Вершина IN соответствует источнику входных данных МП (ОЗУ и т.д.), а вершина OUT -приемнику выходных данных. Они включают в себя адреса, данные и управляющие сигналы, которые принимает (IN) и посылает (OUT) МП. Если существует хотя бы одна команда во время выполнения которой информация передается из регистра Rt в регистр Rj, то в СГ строится ребро, направленное от вершины Rj к вершине Rj. Если существует хотя бы одна команда, при которой информация передается со входов МП в регистр /?,-, то в СГ проводится ребро из вершины IN к вершине Аналогично, если существует хотя бы одна команда, при которой информация передается из R, на выходы МП, то в СГ строится ребро из вершины R^ к вершине OUT. При таком подходе предполагается, что каждая
команда Ц состоит из микрокоманд 1г ={ni\, m2..... т/,,},
которые выполняются последовательно. Каждая микрокоманда в свою очередь состоит из множества микроинструкций /;=(М,- j, М(2,.. ■, М,- qj), которые выполняются параллельно.
В соответствии с основными функциональными блоками МП рассматриваются следующие модели функциональные неисправности.
1. Модель неисправности функции дешифрации адресов регистров. Пусть
fd (Rt) обозначает функцию дешифрации адреса регистра. Тогда при этой неисправности возможно:
а) fd (Rl)=Rj (вместо адреса Rt выбирается адрес Rj);
б) f,i (i?;)= 0 (адрес не выбирается);
в) f(i (Rt)={Rv Rt} (вместо адреса выбирается два адреса /?, и Rj).
2. Модель неисправности функций хранения данных. Предполагается, что любой разряд регистра может иметь константные неисправности 0,1.
3. Модель неисправности функций передачи данных. При этом любое число линий может иметь константные неисправности 0,1 и любая пара линий может замкнуться (сигналы на этих линиях принимают одинаковые значения).
4. Модель неисправности дешифрации инструкций и функций управления последовательностью операций. При этом предполагается, что может произойти одно или несколько следующих событий:
а) одна или несколько микроинструкций в команде не выполняется;
б) дополнительно выполняются микроинструкции, ко-
торые не должны быть в данной команде;
в) дополнительно выполняются микрокоманды, которых нет в последовательности данной команды.
При этом предполагается, что число операций записи информации в регистры МП не увеличивается. Кроме этого считаем, что число микрокоманд в команде (даже неисправной) не превышает некоторого числа К, а число микроинструкций в микрокоманде не превышает также числа М.
5. Модели неисправностей функций обработки данных. Специальная модель для этого типа неисправностей не вводится. Считается, что либо известен полный тест АЛУ, либо его можно построить, зная структуру АЛ У на вентильном уровне.
НЕИСПРАВНОСТИ ИНТЕРФЕЙСА
При использовании современной технологии проектирования сложных многопроцессорных систем, основанной на "интеллектуальных ядрах" (IP cores) акцент тестирования смещается в сторону проверки интерфейса между этими компонентами [13]. При этом неявно подразумевается, что сами ядра исправны (их тестирование проведено в процессе разработки). Следует отметить, что дополнительные сложности при этом возникают из-за кратной синхронизации таких сложных систем. Интерфейс между компонентами с разными синхронизирующими воздействиями является существенно асинхронным, что создает дополнительные трудности.
ЗАКЛЮЧЕНИЕ
Выполнен аналитический обзор функциональных неисправностей для ЦС, описание которых представлено с помощью языков описания аппаратуры. При этом меры покрытия неисправностей, используемые при тестировании программного обеспечения, распространены на функциональное тестирование ЦС, представленных с помощью языков описания аппаратуры. Данный подход позволяет тестировать современные сложные многопроцессорные ЦС, проверка которых невозможна на вентильном уровне из-за сложности и их функциональных особенностей.
ПЕРЕЧЕНЬ ССЫЛОК
1. Ian G. Harris. Fault models and test generation for hardware-software covalidation// IEEE Design and Test of computers, 2003, Vol.20, N.4, pp. 40-47
2. B. Beizer. Software testing techniques. Van Nostrand Rheinhold, New York, second edition, 1990.
3. S. Tasiran and K. Keutzer. Coverage metrics for functional validation of hardware designs// IEEE Design and Test of computers, 2001, Vol.18, N.4, pp. 36-45
4. K.N. King and A.J. Offutt. Fortran language system for mutation-based software testing//Software practice and eng., 1991, Vol.21, N.7, pp.685-718
5. G. Al Hayek and C. Robach. From specification validation to hardware testing: a unified message //Proc. Int'l Test Conf.(ITC 96), IEEE Press, 1996, pp.885-893
6. S. Devadas, A. Ghosh, and K, Keutzer. An observability -based code coverage metric for functional simulation.//In proceedings of the international conference on computer-aided design, November 1996, pp.418-425.
7. F. Ferrandi, G. Ferrara, D. Sciuto. Functional Test Generation for behaviorally sequential models // взять на сайте итальянцев
8. С. Paoli, M.-L. Nivet, and J.-F. Santucci. Use of constraint solving in order to generate test vectors for behavioral validation //Proc. IEEE Int'l High Level Design Validation and Test Workshop, IEEE CS Press, 2000, pp.15-20.
9. M. Abramovichi, M.A. Breuer, and A.D. Friedman. Digital system testing and testable desine. IEEE Press,1990.
10. D. Geist et al. Coverage-Directed Test Generation Using Symbolic Techniques.// Proc. 1st Int'l Conf. Formal Methods in Computer-Aided Design (FMCAD 96), Lecture Notes in Computer Science, vol. 1166, Springer,1996, pp. 143158
11. R.C. Ho et al. Architecture Validation for Processors.// Proc. 22nd Ann. Int'l Symp. Computer Architecture (ISCA 95), ACM Press, 1993, pp. 404-413
12. D. Lee and M. Yannakakis. Principles and Methods of Testing Finite State Machines - A Survey.// Proc. IEEE Trans. Computers, vol 84, no.8, Aug. 1996, pp. 1090-1123
13. Грунский И. С. Анализ поведения конечных автоматов. -Луганск; 2003. - 210 с.
14. S.M. Thatte, J.A. Abraham. Test generation for microproces-sors//IEEE transactions on computers, vol. C-29,1980, № 6, pp. 429-441.
15. J.A. Rowson and A. Sangiovanni-Vencentelli. Interface-Based Design.// Proc. Design Automation Conf. (DAC 97), ACM Press, 1997, pp.178-183
НадШшла 26.03.04
Розглянуто проблему верифшацп i тестування складных цифровых сыстем, представленых на мовах опису апарату-ри высокого pienH (VHDL, VERILOG). Дослгджено функ-цюналът модел{ несправностей цифровых сыстем, опысаных за допомогою цих мое.
The verification and testing problem is considered for complex digital systems, represented on high level languages of hardware (VHDL, VERILOG). The functional fault models are investigated for digital systems, represented with help these languages.
УДК 519.248
Г.В. Табунщик
РОБАСТНОЕ ПЛАНИРОВАНИЕ ЭКСПЕРИМЕНТА В ЗАДАЧАХ МОДЕЛИРОВАНИЯ ТЕХНИЧЕСКИХ ОБЪЕКТОВ
Рассмотрен метод робастного планирования эксперимента и особенности обработки результатов. Приведена реализация данного метода для приложений в области проектирования номинальных значений на параметры изделий (процессов) и назначении допустимых отклонений на проектируемые параметры.
1 ПОСТАНОВКА ЗАДАЧИ
По„ робастным планированием эксперимента будем понимать метод планирования эксперимента, который позволяет обеспечить "нечувствительность" выходной характеристики сложного технического объекта (СТО) к различным шумовым воздействиям [1].
Введем единую классификацию шумовых воздействий (рис.1) по типу, направленности и по характеру воздействия.
По типу шумовые воздействия будем подразделять
- внешние - воздействия, влияющие на исследуемый СТО извне;
- внутренние - параметры исследуемого сложного технического объекта, являющиеся шум-факторами для входных параметров;
- комбинированные - шумы, возникающие внутри объекта исследования из-за воздействия внешних параметров.
По направленности воздействия будем различать:
- шум, воздействующий на СТО в целом - например, дополнительные параметры объекта, внешние воздействия (температура окружающей среды) (рис.2д);
- шум, воздействующий непосредственно на входные параметры - погрешность измерений, износ материала (рис.2а и 26);
- шум, воздействующий непосредственно на выходную характеристику - аддитивный временной дрейф (рис.2с).
Шум можно классифицировать также как управляемый, неуправляемый и неконтролируемый.
Рисунок 1 - Классификация шума
ь
л
-Ц
I
UJ1
тпт
тгтг
а)
б)
с)
д)
Рисунок 2 - Воздействие шумов на проектируемый объект: а), б) на проектируемые параметры; с) на выходную характеристику; д) на проектируемый СТО в целом