Маршевый тест
Ма́ршевый тест (англ. 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 2 3 4 Ярмолик, 2009, с. 25.
- ↑ 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 года.
- ↑ 1 2 Ярмолик, 2019, с. 60.
- ↑ 1 2 Ярмолик, 2009, с. 26.
- ↑ Ярмолик, 2019, с. 60—61.
- ↑ Ярмолик, 2019, с. 59.
- ↑ Ярмолик, 2019, с. 61—62.
- ↑ Ярмолик, 2019, с. 63.
- ↑ Goor, 1991.
- ↑ Ярмолик, 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.
На эту статью не ссылаются другие статьи Википедии. |