Научная статья на тему 'Методы оптимизации микрокода встроенной аппаратуры самотестирования ОЗУ'

Методы оптимизации микрокода встроенной аппаратуры самотестирования ОЗУ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
120
36
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
оперативное запоминающее устройство / маршевый тест / встроенное самотестирование / конечный цифровой автомат / микропрограммное управление

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — А. А. Иванюк, А. А. Автушко

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

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

METHODS OF MICROCODE OPTIMIZATION FOR EMBEDDED MEMORY BUILD-IN SELF-TEST

Methods of designing programmable build-in self-test architectures for embedded memories based on March tests are described. A new method of March test coding for programmable memory build-in self-test architectures allowing reducing hardware overheads and speed-up tests transferring over serial interfaces is offered

Текст научной работы на тему «Методы оптимизации микрокода встроенной аппаратуры самотестирования ОЗУ»

Доклады БГУИР

2010 № 3 (49)

УДК 681.326.7

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

А.А. ИВАНЮК, А.А. АВТУШКО

Белорусский государственный университет информатики и радиоэлектроники П. Бровки, 6, Минск, 220013, Беларусь

Поступила в редакцию 7 сентября 2009

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

Ключевые слова: оперативное запоминающее устройство, маршевый тест, встроенное самотестирование, конечный цифровой автомат, микропрограммное управление.

Введение

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

С увеличением сложности цифровых устройств наиболее актуальным и распространенным способом тестирования стала встроенная аппаратура самотестирования (BIST — Built-In Self-Test). Ядро BIST передает тестовые последовательности тестируемому устройству, считывает результаты и сравнивает их с ожидаемыми, и таким образом определяет, исправно ли тестируемое устройство.

Существуют различные подходы к проектированию BIST. BIST может реализовывать один определенный алгоритм тестирования. В таком случае аппаратные затраты на BIST минимальны и скорость применения теста является максимальной, но данный поход является наименее гибким, так как он определяет единственный алгоритм тестирования, способный обнаруживать фиксированный набор неисправностей. Изменение алгоритма тестирования невозможно без необходимости перепроектирования BIST. Альтернативным подходом является BIST с микропрограммным управлением P-MBIST (Programmable Memory BIST), в которой алгоритм тестирования определяется микрокодом, хранящимся в памяти микропрограмм. P-MBIST позволяет изменять алгоритм тестирования во время жизненного цикла тестируемого устройства.

Для тестирования оперативных запоминающих устройств существует множество различных тестов, способных обнаруживать определенные классы ошибок. Примерами таких тестов являются "Шахматная доска" (checkerboard), "Бегущая 1/0" (walking 1/0), "Галоп" (Galloping 1/0). Но данные традиционные тесты имеют большую сложность, что ограничивает их применение в современной цифровых системах. В настоящее время наиболее применимыми являются тесты сложности O(n), где n — емкость ОЗУ, так называемые маршевые тесты.

В данной работе рассматриваются способы минимизации микрокода, кодирующего произвольные маршевые тесты, с целью их хранения в памяти микропрограмм P-MBIST. Оптимальный способ представления алгоритмических тестов определяет архитектуру встроенной

аппаратуры самотестирования ОЗУ, аппаратные затраты и скорость передачи тестов по последовательным интерфейсам.

Минимизация микрокода маршевых тестов P-MBIST

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

Например, маршевый тест, описанный в нотации MTL [1] как {ЦмЮ); Й (гО, М); и (г1, мЮ), состоит из трех фаз:

1) запись 0 во все элементы памяти, причем направление обхода адресного пространства не имеет значения;

2) для каждого запоминающего элемента, начиная с первого и заканчивая последним, прочитать хранимое значение (оно должно быть 0) и записать 1;

3) для каждого элемента памяти, начиная с последнего и заканчивая первым, прочитать значение, которое должно быть равным 1, и записать 0.

Наиболее популярные маршевые тесты на сегодняшний день представлены в табл. 1.

Таблица 1. Наиболее распространенные маршевые тесты

Название MTL описание

MATS Z (w0);ft(r0, w1); Z (r1)

MATS+ Z (w0);fi (r0, w1);U(r1, w0)

MATS++ Z (w0);fi (r0, w1);U (r1, w0, r0)

Marching 1/0 Z (w0); ft (r0, w1, r1); U (r1; w0; r0); ff (w1); ft (r1, w0, r0); U (r0, w1, r1)

March X Z (w0);fl~ (r0, w1);U (r1, w0); Z (r0)

March Y Z (w0); ff (r0, w1, r 1); U (r1, w0, r0); Z (r0)

March C Z (w0); fl (r0, w1); ft (r1, w0); Z (r0); U (r0, w1); U (r 1, w0); Z (r0)

March C- Z (w0); fl (r0, w1); A (r1, w0); U (r0, w1); U (r1, w0); Z (r0)

March A Z (w0); ft (r0, w1, w0, w1); ft (r1, w0, w1); U (r1, w0, w1, w0); U (r0, w1, w0)

March B Z (w0); ft (r0, w1, r1, w0, r0, w1); ft (r 1, w0, w1); U (r 1, w0, w1, w0); U (r0, w1, w0)

Algorithm B Z (w0); ft (r0, w1, w0, w1); ft (r1, w0, r0, w1); U (r1, w0, w1, w0); U (r0, w1, r1, w0)

В простейшем случае для кодирования маршевого теста с целью его хранения в памяти P-MBIST необходимо кодировать количество фаз теста, количество базовых операций в фазе теста или маркер окончания фазы теста, тип базовой операции (чтение или запись) и направление обхода адресного пространства. Данный подход описан в работе [2]. Пример кодирования маршевого теста MATS+ представлен на рис. 1.

Рис. 1. Пример кодирования теста MATS+: AO — Address Order, направление обхода адресного пространства; RW — Read/Write, базовая операция чтения или записи; D — Data, бит данных; EE — End of Element, маркер конца фазы теста

При таком способе кодирования маршевого теста размер микрокода зависит от количества фаз теста и количества базовых операций. Для кодирования любого маршевого теста потребуется V бит.

V = (3no+ne).

(1)

где п0 — количество базовых операций; пв — количество фаз теста (здесь и далее не учитываются затраты памяти для хранения количества фаз теста, которое необходимо для определения момента завершения выполнения теста памяти).

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

(w —г) => (dt —> dt), (г w) => (dt dt), (г г) => (dt dt), (w —>■ w) => (dt —>■ dt).

(2)

(3)

(4)

(5)

Это значит, что бит данных, используемый в базовой операции записи, представляет собой инверсию бита данных, используемого в предыдущей базовой операции, независимо от ее типа и фазы теста, в которой базовая операция находится. Эта закономерность позволяет исключить данные из микрокода и реализовать формирование данных для маршевого теста в самой аппаратуре P-MBIST. Пример кодирования маршевого теста MATS+ указанным способом представлен на рис. 2.

Рис. 2. Пример кодирования теста MATS+ Для кодирования любого маршевого теста данным способом необходимо V' бит. У = (2по+пе). (6)

Дальнейший анализ существующих маршевых тестов показывает, что маршевый тест можно представить как совокупность предопределенных компонентов, представляющих собой целую фазу теста [4]. В маршевых тестах из табл. 1 можно выделить следующие компоненты: ЛМП = (wd), ЛМ, = (/г/, иг7), 8М2 = (гс/, м>с[, гс1, wd), 8МЪ = (гс/, м>с1, иг/),

ЛМ4 - (/г/, иг/, /г/, иг/, /г/, иг/), ЛМ- = (/г/), Ш. = (rd,wd ,wd ,wd), ЛМ7 = (rd,wd,rd). В табл. 2 описаны те же тесты, построенные на основе предопределенных компонентов.

Таблица 2. Маршевые тесты, построенные на основе предопределенных компонентов

Название Описание

MATS $ SM0;ft SMj;$ SM

MATS+ $ SM0 ;ft SM ^ SM

MATS++ $ sm0 ;ft sm sm

Marching 1/0 $ sm0 ; ft sm ; U sm ; ft sm0 ; ft sm ; ft sm

March X t sm0 ;ft sm ;ft sm ; $ sm

March Y $ sm ;ft sm ;ft sm ;t sm

March C $ sm0 ;ft sm ;ft sm ;$ sm5 ;ft sm ;ft sm ;$ sm

March C- $ sm ; ft sm ; ft sm ; ft sm ; ft sm ; $ sm

March A $ sm;ft sm6;ft sm;ft sm6;ft sm

March B S sm0 ;ft sm4 ;ft sm ;ft sm6 ;ft sm

Algorithm B z sm ;ft sm ;ft sm ;ft sm6 ;ft sm

Для минимизации микрокода маршевого теста могут быть использованы данные предопределенные компоненты, реализованные аппаратно. Для кодирования маршевого теста необходимы следующие данные:

1) направление обхода AO адресного пространства, кодируемое одним битом;

2) номер компонента CN, кодируемый log28=3 битами, при этом каждый из предопределенных компонентов должен быть реализован в аппаратуре.

Данные из микрокода могут быть исключены, как и описано в [3]. Тест MATS+, кодируемый указанным способом, представлен на рис. 3.

Рис. 3. Пример кодирования теста MATS+

Для кодирования любого маршевого теста данным способом потребуется V" бит. При таком способе кодирования количество используемых компонентов всегда равняется количеству фаз маршевого теста.

У = (4пе). (7)

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

В рассмотренных выше маршевых тестах первым примитивом всегда является инициализирующий ф (^0), поэтому данный примитив может быть исключен из микрокода, но должен быть реализован в аппаратуре, и с его выполнения должен начинаться процесс самотестирования ОЗУ.

Исходя из приведенного определения, направления обхода ОЗУ являются предопределенными, и могут быть исключены из микрокода. Основная задача при проектировании P-MBIST — это определение примитивов. Сгруппируем примитивы так, чтобы направления обхода памяти изменялись закономерно, что позволит убрать AO из микрокода, таким образом упростив аппаратную реализацию устройства управления. Полученные результаты представлены в табл. 3.

Таблица 3. Выделение составных примитивов из маршевых тестов

Название Описание

MATS t\SM! SM5

MATS+ ftSMj ;u SM

MATS++ i\SM sm

Marching 1/0 \\sm1 ; u sm ; a (SM, SM); ^ sm

March X f\SM ;u(£M, SM )

March Y i\SM ;^(SM7, sm5 )

March C ft (sm , SM , SM5 ); u (SM , SM , SM)

March C- ft (sm , sm ); ^ (SM, sm , sm5 )

March A ft (sm6 , sm ); u (sm6 , sm )

March B ft (sm4 , sm ); u (sm6 , sm )

Algorithm B ft (sm6 , sm ) u (SM, sm )

Выделим следующие составные примитивы, основываясь на группировке фаз, показанной в табл. 3: = (ЛМ, ЛМУ = (ЛМ,,ЛМ, ЛМ|0 = (Ш6

= (Ж6, ), Ж12 = (, ), £М13 = (, ), Ж14 = (ЖЦ,, ),

<5М15 = (8МI, ЛА-/, ). Всего выделено 16 примитивов, для кодирования каждого из которых потребуется ^216=4 бита.

Таблица 4. Маршевые тесты, построенные на основе простых и составных примитивов и размер микрокода, необходимого для их кодирования

Название Описание Размер микрокода, бит

MATS SM ; SM 8

MATS+ sm ; SM 8

MATS++ sm ; sm 8

Marching 1/0 SM ; SM ; SMA ; SM 16

March X SMX; SM 8

March Y SM ; SM3 8

March C sm ; SM 8

March C- SMl5; SM 8

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

March A sm10; SM10 8

March B SM 12; SM10 8

Algorithm B SMi; SMi 8

Так как способ изменения данных и направления обхода в маршевом тесте предопределены, микрокод представляет собой множество слов фиксированной длины, каждое из которых декодируется в предопределенный простой или составной примитив. Простые примитивы кодируются числами от 0 до 7, а составные — от 8 до 15. Таким образом, для определения типа примитива в устройстве управления Р-МВКТ необходимо проверить старший бит инструкции. Тест MATS+, кодируемый данным способом, представлен на рис. 4, где РК — номер примитива.

Рис. 4. Пример кодирования теста MATS+

Для кодирования любого маршевого теста данным способом потребуется V" бит. V" = (Апр), (8)

где пр — количество простых и составных примитивов, из которых состоит тест.

Предложенный способ кодирования маршевых тестов позволяет сократить аппаратурные затраты на память микрокода и увеличить скорость передачи тестов по последовательным интерфейсам благодаря уменьшенному объему микрокода. Для кодирования любого из рассмотренных выше маршевых тестов достаточно 16 бит, что на 71% меньше чем необходимо для метода, описанного в [2] и на 59% меньше, чем для [3].

Р-МВКТ с предложенным способом кодирования маршевых тестов была спроектирована на языке УИБЬ и синтезирована с использованием программного автоматизированного средства проектирования цифровой аппаратуры ХШпх КЕ WebPack 9.21 [6]. Диаграмма состояний спроектированной Р-МВКТ изображена на рис. 5.

Рис. 5. Диаграмма состояний P-MBIST с оптимальным способом кодирования тестов

На диаграмме, изображенной на рис. 6, показаны отношения аппаратурных затрат на реализацию P-MBIST для каждого из рассмотренных способов кодирования тестов (для оценки аппаратурных затрат использовалось значение Total equivalent gate count for design, генерируемое в результате синтеза проекта средством Xilinx ISE WebPack 9.2i). P-MBIST с микрокодом, состоящим из простых и составных примитивов, сравним по аппаратурным затратам с остальными методами благодаря более простому устройству управления, что позволяет скомпенсировать издержки, вносимые необходимостью реализовывать примитивы аппаратно.

108%

100% 103%

93%

□ P-MBIST с простым микрокодом

□ P-MBIST с микрокодом, не содержащим данных

□ P-MBIST с микрокодом, содержащим простые компоненты

□ P-MBIST микрокодом из простых и составных примитивов

Рис. 6. Отношения аппаратурных затрат для P-MBIST с различными способами кодирования тестов

Заключение

Предложен способ кодирования существующих маршевых тестов ОЗУ с целью минимизации аппаратурных затрат на памяти микропрограмм P-MBIST, необходимой для их хранения. Предложенный способ является промежуточным между аппаратным (с предопределенными тестами) и программным (позволяющим кодировать произвольные тесты), как по скорости функционирования, так и по множеству поддерживаемых тестов и аппаратным затратам.

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

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

METHODS OF MICROCODE OPTIMIZATION FOR EMBEDDED MEMORY

BUILD-IN SELF-TEST

A.A. IVANIUK, A.A. AVTUSHKO Abstract

Methods of designing programmable build-in self-test architectures for embedded memories based on March tests are described. A new method of March test coding for programmable memory build-in self-test architectures allowing reducing hardware overheads and speed-up tests transferring over serial interfaces is offered.

Литература

1. Goor A., Offerman A., Schanstra H. // European Design and Test Conference (EDTC'96): Proc. of IEEE Int. Conf. Paris, France, 11-14 March 1996. Washington, DC, USA. 1996. P. 420-427.

2. McEvoy P., Farrell R. // Proc. of IEEE IC Test Workshop, Limerick, Ireland. 13-14 Sept., 2004, P. 15-21.

3. ИванюкА.А., ЯрмоликВ.Н. // Автоматика и вычислительная техника. 2008. № 4. С. 5-13.

4. Zarrineh K. Upadhyaya S.J. // Design, Automation and Test in Europe (DATE'99): proc. of IEEE Int. Conf. Munich, Germany. Mar. 9-12, 1999. P. 709-713.

5. HellebrandS., Wundelich Y.-J., Yarmolik V.N. // IEEE Design, Automation and Test in Europe Conference (DATE'99): Proc. Int. Conf. Munich, Germany, 9-12 March 1999. P. 702-707.

6. ISE WebPACK 9.2i [Electronic resource]. 2008. Mode of access: http://www.xilinx.com.

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