Маршевый тест

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Ма́ршевый тест (англ. March test) — тест ячеек оперативной памяти (ОЗУ), имеющий линейную зависимость сложности от ёмкости запоминающего устройства[1][2].

Описание[править | править код]

Маршевый тест состоит из конечного числа маршевых элементов. При этом каждый маршевый элемент определяется через порядок формирования адресной последовательности и порядок операций чтения и записи[1][3].

Формирование адресной последовательности может быть[1][3]:

  • Последовательный по возрастанию (↑);
  • Последовательный по убыванию (↓);
  • Последовательный по возрастанию или убыванию (↑↓);

Операции чтения и записи рассматриваются из следующих:

  • «r0» (англ. read) — чтение ячейки памяти с ожидаемым значением 0;
  • «r1» — чтение ячейки памяти с ожидаемым значением 1;
  • «w0» (англ. write) — запись в ячейку памяти значения 0;
  • «w1» — запись в ячейку памяти значения 1.

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

Например, маршевый тест MATS (Modified Algorithmic Test Sequence) описывается следующим образом: {↑↓(w0); ↑(r0, w1); ↓(r1)}. Этот тест имеет три маршевых элемента и сложность O(4N). Первый элемент «↑↓(w0)» рассматривается как фаза инициализации и устанавливает начальное значение ячейки памяти. Она может использоваться как при переходе к новым проверяемым ячейкам, так и изначально путём записи во все ячейки ОЗУ. Вторая фаза «↑(r0, w1)» представляет собой перебор всех ячеек по возрастанию, во время которого происходит чтение и проверка 0, и далее запись 1. Третий элемент «↓(r1)» используется в последующем перебором всех ячеек с чтением и проверкой 1[4][5].

Набор элементов маршевого теста (как элементы, так и их последовательность) определяет его покрывающую способность и эффективность обнаружения отказов[4].

Особенности[править | править код]

Маршевые тесты имеют приемлемую покрывающую способность неисправностей ОЗУ и простоту реализации, что важно для встроенных средств самотестирования (англ. Built-In Self-Test, BIST)[1][6].

Классические маршевые тесты[править | править код]

Считаются классическими следующие маршевые тесты[7][2]:


Список классических маршевых тестов
Название теста Сложность теста Описание
1 Scan 4N {↑↓(w0); ↑↓(r0); ↑↓(w1); ↑↓(r1)}
2 MATS 4N {↑↓(w0); ↑(r0, w1); ↓(r1)}
3 MATS+ 5N {↑↓(w0); ↑(r0, w1); ↓(r1, w0)}
4 MATS++ 6N {↑↓(w0); ↑(r0, w1); ↓(r1, w0, r0)}
5 Marching 1/0 14N {↑↓(w0); ↑(r0, w1, r1); ↓(r1, w0, r0); ↑↓(w1); ↑(r1, w0, r0); ↓(r0, w1, r1)}
6 March X 6N {↑↓(w0); ↑(r0, w1); ↓(r1, w0); ↑↓(r0)}
7 March Y 8N {↑↓(w0); ↑(r0, w1, r1); ↓(r1, w0, r0); ↑↓(r0)}
8 March C 11N {↑↓(w0); ↑(r0, w1); ↑(r1, w0); ↑↓ (r0); ↓(r0, w1); ↓(r1, w0); ↑↓(r0)}
9 March C- 10N {↑↓(w0); ↑(r0, w1); ↑(r1, w0); ↓(r0, w1); ↓(r1, w0); ↑↓(r0)}
10 March A 15N {↑↓(w0); ↑(r0, w1, w0, w1); ↑(r1, w0, w1); ↓(r1, w0, w1, w0); ↓(r0, w1, w0)}
11 March B 17N {↑↓(w0); ↑(r0, w1, r1, w0, r0, w1); ↑(r1, w0, w1); ↓(r1, w0, w1, w0); ↓(r0, w1, w0)}
12 Algorithm B 17N {↑↓(w0); ↑(r0, w1, w0, w1); ↑(r1, w0, r0, w1); ↓(r1, w0, w1, w0); ↓(r0, w1, r1, w0)}
13 March C-R 15N {↑↓(w0); ↑(r0, r0, w1); ↑(r1, r1, w0); ↓(r0, r0, w1); ↓(r1, r1, w0); ↑↓(r0, r0)}
14 PMOVI 13N {↑↓(w0); ↑(r0, w1, r1); ↑(r1, w0, r0); ↓(r0, w1, r1); ↓(r1, w0, r0)}
15 PMOVI-R 17N {↑↓(w0); ↑(r0, w1, r1, r1); ↑(r1, w0, r0, r0); ↓(r0, w1, r1, r1); ↓(r1, w0, r0, r0)}
16 March G 23N+2D {↑↓(w0); ↑(r0, w1, r1, w0, r0, w1); ↑(r1, w0, w1); ↓(r1, w0, w1, w0); ↓(r0, w1, w0); D; ↑↓(r0, w1, r1); D; ↑↓(r1, w0, r0)}
17 March U 13N {↑↓(w0); ↑(r0, w1, r1, w0); ↑(r0, w1); ↓(r1, w0, r0, w1); ↓(r1, w0)}
18 March UD 13N+2D {↑↓(w0); ↑(r0, w1, r1, w0); D; ↑(r0, w1); D; ↓(r1, w0, r0, w1); ↓(r1, w0)}
19 March U-R 15N {↑↓(w0); ↑(r0, w1, r1, r1, w0); ↑(r0, w1); ↓(r1, w0, r0, r0, w1); ↓(r1, w0)}
20 March LR 14N {↑↓(w0); ↓(r0, w1); ↑(r1, w0, r0, w1); ↑(r1, w0); ↑(r0, w1, r1, w0); ↓(r0)}
21 March LA 22N {↑↓(w0); ↓(r0, w1, w0, w1, r1); ↑(r1, w0, w1, w0, r0); ↓(r0, w1, w0, w1, r1); ↓(r1, w0, w1, w0, r01); ↓(r0)}
22 March M 16N {↑↓(w0); ↑(r0, w1, r1, w0); ↑↓(r0); ↑(r0, w1); ↑↓(r1); ↓(r1, w0, r0, w1); ↑↓(r1); ↓(r1, w0)}
23 March PS 23N {↑↓(w0); ↑(r0, w1, r1, w0, r0, w1); ↑(r1, w0, r0, w1, r1); ↑(r1, w0, r0, w1, r1, w0); ↑(r0, w1, r1, w0, r0)}
24 March PNPSFk 18N {↑↓(w0); ↑(r0, w1, r1, w0); ↓(r0, w1); ↑(r1, w0, r0, w1); ↑(r1, w0); ↑(r0, w1); ↓(r1, w0, r0)}
25 Cheng test 17N {↑↓(w0); ↑(w1, r1, w0); ↑(r0, w1); ↑(r1, w0, r0, w1); ↑(r1, w0); ↓(r1, w0); ↓(r0, w1); ↓(r1, w0); ↑↓(r0)}

Рассматриваемые маршевые тесты имеют разную способность к обнаружению отказов[8][9][2]:


Таблица обнаруживающей способности маршевых тестов
Название теста Сложность теста SA TF CFin CFid TF-CF CFid-CFid CFin-CFin CFid-CFin
1 MATS 4N + - - - - - - -
2 MATS+ 5N + - - - - - - -
3 MATS++ 6N + + - - - - - -
4 Marching 1/0 14N + + + - + - - -
5 March X 6N + + + - - - - -
6 March Y 8N + + + - + - - -
7 March C 11N + + + + - - + -
8 March C- 10N + + + + - - + -
9 March A 15N + + + + - + - -
10 March B 17N + + + + + + - -
11 Algorithm B 17N + + + + + + - -

В таблице[10]:

  • SA (англ. stack-at) — константный отказ;
  • TF (англ. transition faults) — переходные отказы, когда ячейка не может перейти в одно из состояний 1 или 0;
  • СF (англ. coupling fault) — отказы взаимного влияния; когда состояние ячейки с одним адресом влияет на состояние ячейки с другим адресом;
  • CFin (англ. inversing coupling fault) — инверсное взаимное влияние; например, если изменение в 1 одной ячейке приводит к 0 в другой ячейке;
  • CFid (англ. indepotent coupling fault) — при изменении одной ячейки происходит принудительная установка определённого значения в другой ячейке.

Примечания[править | править код]

  1. 1 2 3 4 Ярмолик, 2009, с. 25.
  2. 1 2 3 Ad.J. van de Goor, A. Offerman, I. Schanstra. Towards a uniform notation for memory tests // Proceedings ED TC European Design and Test Conference. — 1996. — Март. — С. 420–427. — doi:10.1109/EDTC.1996.494335. Архивировано 16 июня 2018 года.
  3. 1 2 Ярмолик, 2019, с. 60.
  4. 1 2 Ярмолик, 2009, с. 26.
  5. Ярмолик, 2019, с. 60—61.
  6. Ярмолик, 2019, с. 59.
  7. Ярмолик, 2019, с. 61—62.
  8. Ярмолик, 2019, с. 63.
  9. Goor, 1991.
  10. Ярмолик, 2019, с. 27—28.

Литература[править | править код]

  • Ярмолик С. В., Занкович А. П., Иванюк А. А. Маршевые тесты для самотестирования ОЗУ. — Издательский центр БГУ, 2009. — 271 с. — ISBN 9789854767079.
  • Ярмолик С. В. Контроль и диагностика вычислительных систем. — Бестпринт, 2019. — 387 с. — ISBN 9789859050954.
  • A.J. van de Goor. Testing Semiconductor Memories: Theory and Practice. — Wiley. — 1991. — 512 с. — ISBN 978-0-471-92586-6.