Микроэлектроника, 2022, T. 51, № 4, стр. 313-320

Эффективность методов повышения сбое- и отказоустойчивости блоков статической оперативной памяти

Л. А. Щигорев *

АО Научно-технический центр “Модуль”
125190 Москва, 4-я ул. 8 Марта, 3, Россия

* E-mail: l.shchigorev@module.ru

Поступила в редакцию 27.12.2021
После доработки 22.02.2022
Принята к публикации 28.02.2022

Полный текст (PDF)

Аннотация

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

Ключевые слова: система на кристалле (СнК), статическая оперативная память (СОЗУ), обнаружение и коррекция ошибок, резервные столбцы, количество парируемых дефектов

1. ВВЕДЕНИЕ

Основой современных высокопроизводительных вычислительных систем являются микропроцессоры, реализованные в составе “систем на кристалле” (СнК) [1, 2]. Производительность процессора определяется такими факторами как рабочая частота и архитектура. В свою очередь одной из ключевых характеристик архитектуры является встроенная кэш памяти микропроцессора. Варьируются уровни кэш памяти, типы хранимой информации и объем. Помимо блоков кэш памяти в составе СнК используются оперативная память, буфера коммуникационной среды и контроллеров ввода-вывода. По оценкам экспертов Semico Research Corp устройства памяти могут занимать до 75% площади современных СнК [3]. В следствие этого одной из важнейших задач при проектировании электронных систем является обеспечение достоверности хранения и передачи информации. Большинство современных микросхем производятся по коммерческим суб-100-нм технологическим процессам. Ячейки памяти в таких устройствах имеют повышенную чувствительность к внешним воздействиям и изменениям напряжения питания, которые вызывают сбои и отказы [4–6].

Для повышения сбое- и отказоустойчивости блоков СОЗУ, входящих в состав СнК, применяются методы обнаружения и исправления одиночных ошибок, а также вводятся резервные элементов [7]. Простейшим способом обнаружения однократной ошибки (в общем случае, ошибки нечетной кратности) является контроль четности [8]. Для парирования одиночных ошибок памяти используются устройства на базе корректирующих кодов Хемминга или Хсяо [8–10]. Они успешно справляются как со сбоями, возникающими в процессе активной работы, так и с постоянными дефектами. Но при парировании ячеек, в которых произошел отказ, корректирующая способность теряется, и следующая неисправность может привести к непоправимой ошибке работы системы. Для парирования неработоспособных ячеек памяти вследствие производственных дефектов, а также приобретенных отказов в процессе эксплуатации, в состав блоков памяти могут быть введены резервные элементы [11]. В случае производственного контроля достаточно использовать внешнее тестовое оборудование для детектирования неработоспособных ячеек памяти и энергонезависимую память для хранения данных об однократной замене, но при применении резервных элементов в процессе эксплуатации необходимо иметь устройства тестирования и реконфигурации памяти непосредственно в составе СнК [12].

Использование кодов коррекции и резервных элементов по отдельности имеет ряд ограничений. Для устройств на базе кодов обнаружения и коррекции ошибок это определяется ограничением в исправлении одиночной ошибки на информационное слово и неэффективное использование при парировании производственных дефектов. Резервные элементы, в свою очередь, не могут бороться со сбоями, возникающими “на лету”. Комбинированное использование обоих методов приводит к росту числа парируемых неработоспособных ячеек памяти [13].

Эффективность применения различных методов повышения сбое- и отказоустойчивости оценивается по вероятности работоспособности блока памяти в зависимости от количества неработоспособных ячеек памяти [14]. Архитектурная организация СнК нередко использует 32–128 разрядные блоки памяти, из-за соответствия размерам шин передачи данных. Повышение корректирующей способности устройств на базе кодов Хэмминга может быть достигнуто при разбиении таких блоков на массивы, хранящие меньшие по размерности информационные слова. В данной статье предлагается метод расчета вероятности работоспособности памяти при разбиении блока, а также представлен комплексный критерий оценки оптимального баланса между достигаемой надежностью от применения различных методов повышения сбое- и отказоустойчивости памяти и затрачиваемыми в ходе их реализации дополнительными ресурсами аппаратуры.

2. ВЕРОЯТНОСТЬ РАБОТОСПОСОБНОСТИ ПАМЯТИ ПРИ РАЗБИЕНИИ БЛОКА

Известными являются зависимости вероятности работоспособности памяти от числа неработоспособных ячеек памяти для одного блока при использовании исправления одиночной ошибки и резервных элементов Y1(d) [14]. Предположим, что память собрана из k таких блоков. Необходимо определить вероятность того что ни один из них не выйдет из строя после того, как суммарное число неработоспособных ячеек во всех составных блоках станет равным d. В работе предлагается способ расчета вероятности работоспособности памяти при разбиении блока памяти на основе формулы Бернулли.

Во-первых, необходимо определить вероятность попадания i дефектов в любой из k блоков, после того, как суммарное число неработоспособных ячеек во всех блоках станет равным d. Это можно сделать, воспользовавшись формулой Бернулли:

(1)
$Y\left( i \right) = \left( {\begin{array}{*{20}{c}} d \\ i \end{array}} \right){{\left( {\frac{1}{k}} \right)}^{i}}{{\left( {1 - \frac{1}{k}} \right)}^{{d - i}}}.$

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

‒ вероятности выхода из строя произвольного блока

$\mathop \sum \limits_{i = 1}^d \left( {1 - {{Y}_{1}}\left( i \right)} \right)Y\left( i \right),$

– вероятности попадания в произвольный блок 1/k;

‒ количества блоков k;

(2)
$\mathop \sum \limits_{i = 1}^d \left( {1 - {{Y}_{1}}\left( i \right)} \right)Y\left( i \right)k\frac{1}{k}.$

Тогда вероятность работоспособности блока, состоящего из k составных блоков равна:

(3)
$1 - \mathop \sum \limits_{i = 1}^d \left( {1 - {{Y}_{1}}\left( i \right)} \right)Y\left( i \right).$

Наглядно предложенный метод вычисления вероятности работоспособности памяти в зависимости от количества неработоспособных ячеек продемонстрирован на рис. 1–5 для:

Рис. 1.

Зависимость вероятности работоспособности памяти для разбиения А.

Рис. 2.

Зависимость вероятности работоспособности памяти для разбиения Б.

Рис. 3.

Зависимость вероятности работоспособности памяти для разбиения В.

Рис. 4.

Зависимость вероятности работоспособности памяти для разбиения Г.

Рис. 5.

Зависимость вероятности работоспособности памяти для разбиения Д.

‒ 5 реализаций блока памяти, хранящего 4Кх128 информационных слов:

• из 16-ти блоков, хранящих 8-разрядные слова (А);

• из 8-ми блоков, хранящих 16-разрядные слова (Б);

• из 4-х блоков, хранящих 32-разрядные слова (В);

• из 2-х блоков, хранящих 64-разрядные слова (Г);

• из 1-го блока, хранящего 128-разрядные слова (Д);

‒ для 4 способов повышения сбое- и отказоустойчивости:

• 2 резервных столбца;

• исправление одиночной ошибки;

• исправление одиночной ошибки + 1 резервный столбец;

• исправление одиночной ошибки + 2 резервных столбца.

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

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

‒ при использовании двух резервных столбцов и 10 покрываемых поврежденных ячейках вероятность работоспособности памяти растет в 200 раз при реализации В и в 300 раз при реализации А;

‒ при исправлении одиночной ошибки для реализаций А и Д число покрываемых неработоспособных ячеек памяти растет в 16 раз;

‒ при совместном использовании исправления одиночной ошибки и резервных столбцов число покрываемых неработоспособных ячеек памяти растет в 13 раз для вероятности работоспособности памяти равной 99% и в 15 раз для 90% при сравнении реализаций А и Д.

3. КОМПЛЕКСНЫЙ КРИТЕРИЙ ОЦЕНКИ ЭФФЕКТИВНОСТИ ПРИМЕНЕНИЯ МЕТОДОВ ПОВЫШЕНИЯ СБОЕ- И ОТКАЗОУСТОЙЧИВОСТИ ПАМЯТИ

Применение любых методов повышения сбое- и отказоустойчивости блоков памяти ведет не только к росту числа парируемых неработоспособных ячеек, но и к росту площади кристалла, занимаемой памятью, а также росту времени выборки данных. Для общей оценки эффективности предлагается построить функцию X(c, d, t) при помощи интерполяционного метода, где d – количество парируемых неработоспособных ячеек памяти рассматриваемого метода, изменяющаяся в пределах [1; +∞); с – сложность реализации (аппаратурные и временные затраты), изменяющаяся в пределах [2; +∞); t – приоритет оценки, изменяющийся в пределах [0; 1]. В табл. 1 приведены функции для различных критериев оценки.

Таблица 1.  

Функции критериев

t Приоритет оценки Функция
0 Минимальные затраты c
1/2 Баланс между затратами и парируемыми дефектами c/d
1 Наибольшее число парируемых дефектов 1/d

При равноотстоящих узлах интерполяции и интерполировании вперед можно использовать прямую интерполяционную формулу Ньютона. Интерполирующий полином ищется в виде:

(4)
$\begin{gathered} {{P}_{n}}\left( x \right) = {{a}_{0}} + {{a}_{1}}\left( {x - {{x}_{0}}} \right) + {{a}_{2}}\left( {x - {{x}_{0}}} \right)\left( {x - {{x}_{1}}} \right) + \ldots + \\ + \,\,{{a}_{n}}\left( {x - {{x}_{0}}} \right)\left( {x - {{x}_{1}}} \right) \ldots \left( {x - {{x}_{{n - 1}}}} \right). \\ \end{gathered} $

Коэффициенты ai находятся по следующей формуле:

(5)
${{a}_{i}} = \frac{{{{\Delta }^{i}}{{f}_{0}}}}{{i!{{h}^{i}}}},$
где h – шаг интерполяции, i = 1, 2…n.

Конечные разности первого порядка находятся по следующим формулам:

$\Delta {{f}_{0}} = {{f}_{1}} - {{f}_{0}};$
$\Delta {{f}_{1}} = {{f}_{2}} - {{f}_{1}};$
(6)
$ \ldots $
$\Delta {{f}_{{n - 1}}} = {{f}_{n}} - {{f}_{{n - 1}}},$
где fi – значения в соответствующих точках xi.

Конечные разности второго порядка находятся по следующим формулам:

${{\Delta }^{2}}{{f}_{0}} = {{f}_{1}} - {{f}_{0}};$
${{\Delta }^{2}}{{f}_{1}} = {{f}_{2}} - {{f}_{1}};$
(7)
$ \ldots $
${{\Delta }^{2}}{{f}_{{n - 2}}} = {{f}_{{n - 1}}} - {{f}_{{n - 2}}}.$

Конечные разности высших порядков находятся по следующим формулам:

${{\Delta }^{k}}{{f}_{0}} = {{\Delta }^{{k - 1}}}{{f}_{1}} - {{\Delta }^{{k - 1}}}{{f}_{0}};$
${{\Delta }^{k}}{{f}_{1}} = {{\Delta }^{{k - 1}}}{{f}_{2}} - {{\Delta }^{{k - 1}}}{{f}_{1}};$
(8)
$ \ldots $
${{\Delta }^{k}}{{f}_{{n - 2}}} = {{\Delta }^{{k - 1}}}{{f}_{{n - 1}}} - {{\Delta }^{{k - 1}}}{{f}_{{n - 2}}}.$

В результате прямая интерполяционная формула Ньютона будет записана следующим образом:

(9)
$\begin{gathered} {{P}_{n}}\left( x \right) = {{f}_{0}} + \frac{{\Delta {{f}_{0}}}}{{1!h}}\left( {x - {{x}_{0}}} \right) + \frac{{{{\Delta }^{2}}{{f}_{0}}}}{{2!{{h}^{2}}}}\left( {x - {{x}_{0}}} \right) \times \\ \times \,\,\left( {x - {{x}_{1}}} \right) + \ldots + \frac{{{{\Delta }^{n}}{{f}_{0}}}}{{n!{{h}^{n}}}}\left( {x - {{x}_{0}}} \right)\left( {x - {{x}_{1}}} \right) \ldots \left( {x - {{x}_{{n - 1}}}} \right). \\ \end{gathered} $

Шаг интерполяции равен:

(10)
$h = t - {{t}_{0}} = {{t}_{2}} - {{t}_{1}} = 0.5.$

Функция оценки эффективности комбинированных методов примет следующий вид:

(11)
$\begin{gathered} X\left( t \right) = {{f}_{0}} + \frac{{\Delta {{f}_{0}}}}{h}\left( {t - {{t}_{0}}} \right) + \\ + \,\,\frac{{{{\Delta }^{2}}{{f}_{0}}}}{{2{{h}^{2}}}}\left( {t - {{t}_{0}}} \right)\left( {t - {{t}_{1}}} \right) = {{f}_{0}} + \frac{{\Delta {{f}_{0}}}}{{0.5}}\left( {t - 0} \right) + \\ + \,\,\frac{{{{\Delta }^{2}}{{f}_{0}}}}{{0.5}}\left( {t - 0} \right)\left( {t - 0.5} \right) = 2{{\Delta }^{2}}{{f}_{0}}{{t}^{2}} + \\ + \,\,\left( {2\Delta {{f}_{0}} - {{\Delta }^{2}}{{f}_{0}}} \right)t + {{f}_{0}}. \\ \end{gathered} $

В табл. 2 представлены конечные разности.

Таблица 2.  

Конечные разности

i t f f 2f
0 0 c $\frac{c}{d} - c$ $\frac{{1 - 2c + cd}}{d}$
1 0.5 $\frac{c}{d}$ $\frac{{1 - c}}{d}$
2 1 $\frac{1}{d}$

Тогда функция оценки эффективности комбинированных методов будет записана следующим образом:

(12)
$X\left( t \right) = 2{{k}^{2}}\left( {\frac{{cd - 2c + 1}}{d}} \right) + k\left( {\frac{{4c - 3cd - 1}}{d}} \right) + c.$

Чем меньше X(t), тем лучше. Экстремум в том случае, если сложность c наибольшая, а количество парируемых дефектов d наименьшее.

4. ОЦЕНКА ЭФФЕКТИВНОСТИ КОМБИНИРОВАННЫХ МЕТОДОВ ПОВЫШЕНИЯ СБОЕ- ОТКАЗОУСТОЙЧИВОСТИ ПАМЯТИ

Аппаратурные и временные затраты для методов повышения сбое- и отказоустойчивой памяти объемом 4Кх128 для проектно-технологической нормы 28 нм рассмотрены автором в предыдущих работах [15, 16]. В табл. 3 пронумерованы рассматриваемые способы повышения сбое- и отказоустойчивости блоков памяти.

Таблица 3.  

Методы повышения сбое- и отказоустойчивости

№ варианта Метод
1 Без защиты
2 Побайтовый контроль четности
3 Исправление одиночной ошибки
4 Побайтовый контроль четности + исправление одиночной ошибки
5 Исправление одиночной ошибки + 2 резервных столбца
6 Исправление одиночной ошибки + 2 резервных столбца + побайтовый контроль четности

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

(13)
$c = ~\frac{S}{{{{S}_{{{\text{min}}}}}}} + \frac{T}{{{{T}_{{{\text{min}}}}}}}.$

Для оценки парируемых неработоспособных ячеек памяти (d) рассмотрены величины соответствующие вероятности работоспособности памяти равной 99%. Для вариантов с контролем четности (2, 4 и 6) вводится повышающий коэффициент 1.11 относительно вариантов без контроля четности (1, 3 и 5). Для варианта без защиты (1) предлагается ввести номинальное значение d равное 1.

5. РЕЗУЛЬТАТЫ И ИХ ОБСУЖДЕНИЕ

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

Рис. 6.

Функция оценки эффективности при различных значениях коэффициента приоритета для всех методов повышения сбое- и отказоустойчивости.

Рис. 7.

Функция оценки эффективности при различных значениях коэффициента приоритета для методов повышения сбое- и отказоустойчивости с исправлением одиночной ошибки.

Когда приоритет оценки заключается в минимальных аппаратурных затратах (t = 0) ожидаемо наилучшими вариантами выглядят не защищенная реализация (1) и побайтовый контроль четности (2). Среди способов, содержащих исправление одиночной ошибки, наилучшей реализацией является “чистый” вариант (3).

При увеличении t критерий оценки меняется в сторону плавного роста влияния числа парируемых дефектов, а варианты 1 и 2 с отрывом становятся худшими. Дальнейший анализ имеет смысл для вариантов с исправлением одиночной ошибки по рис. 7. При росте t в диапазоне от 0 до 0.5 наиболее предпочтительным вариантом выглядит “чистое” исправление одиночной ошибки (3) и почти вровень с ним идет комбинация исправление одиночной ошибки и контроля четности (4). Сравнение вариантов разбиения показывает некоторое преимущество для деления на 8 (Б) и на 4 (В).

При переходе через точку баланса (t = 0.5) верх берут варианты комбинации исправления одиночной ошибки и резервных столбцов (5 и 6), так как в этой области преимущество переходит к реализациям с наибольшим числом парируемых дефектов. Варианты разбиения на 4 (В), 8 (Б) и 16 (А) обладают небольшим преимуществом с перевесом в сторону более дискретной реализации А.

ЗАКЛЮЧЕНИЕ

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

Список литературы

  1. Шагурин И.И. Системы на кристалле. Особенности реализации и перспективы применения // Электронные компоненты. 2009. № 1. С. 37–39.

  2. Бобков С.Г. Высокопроизводительные вычислительные системы / Под ред. Академика РАН Бетелина В.Б. М., НИИСИ РАН, 2014. 296 с.

  3. The Worldwide SoC Market Forecast. Available at: http://www.semico.com/content/worldwide-soc-market-forecast-approach-200-billion-2019-says-semico-research (дата обращения: 10.12.2021).

  4. Зебрев Г.И. Радиационные эффекты в кремниевых интегральных схемах высокой степени интеграции. М.: НИЯУ МИФИ, 2010. 148 с.

  5. Егоров И.В., Мелехин В.Ф. Способ организации автомата с памятью с повышенной устойчивостью к мягким отказам и регистрацией мягких отказов // Информационно-управляющие системы. 2018. № 2. С. 18–27.

  6. Мамутова О.В. Аналитические модели надежности кэш-памяти // Информационные технологии и вычислительные системы. 2015. № 4. С. 13–21.

  7. Рябцев В.Г., Волобуев С.В. Встроенные средства саморемонта оперативной памяти системы на кристалле // Известия вузов. Электроника. 2020. Т. 25. № 4. С. 339–346.

  8. Hamming R.W. Error Detecting and Correcting Codes // Bell Syst. Tech. J. 1950. V. 29. P. 147–160.

  9. Hsiao M.Y. A Class of Optimal Minimum Odd-Weight-Column SEC-DED Codes // IBM J. Res. Develop. 1970. V. 14. P. 395–401.

  10. Петров К.А., Стенин В.Я. Помехоустойчивое кодирование в КМОП ОЗУ, устойчивых к одиночным воздействиям ядерных частиц // Микроэлектроника. 2015. Т. 44. № 5. С. 359–367.

  11. Cenker R.P., Clemons D.G., Huber W.R., Petrizzi J.B., Procyk F.J., Trout G.M. A fault-tolerant 64K dynamic RAM // IEEE International Solid-State Circuits Conference. Digest of Technical Papers. 1979. P. 150–151.

  12. Shchigorev L.A., Shagurin I.I. Comparision of hardware and timing penalties for eliminating SRAM failures // 2nd International Telecommunication Conference “Advanced Micro- and Nanoelectronic Systems and Technologies”. IOP Conference Series: Materials Science and Engineering. V. 498, № 1. 2019. 012017. P. 1–8.

  13. Kalter H.L., Stapper C.H., Barth J.E.Jr., DiLorenzo J. et al. A 50-ns 16-Mb DRAM with a 10-ns data rate and on-chip ECC // IEEE J. Solid-State Circuits. 1990. V. 25. P. 1118–1128.

  14. Horiguchi M., Itoh K. Nanoscale Memory Repair. N.Y.: Springer, 2011. P. 215.

  15. Шагурин И.И., Щигорев Л.А. Сравнительный анализ комбинированных методов повышения сбое- и отказоустойчивости блоков статической оперативной памяти // Известия высших учебных заведений. Электроника. 2016. Т. 21. № 4. С. 347–352.

  16. Shchigorev L.A., Shagurin I.I. Combined methods of tolerance increasing for embedded SRAM // 1st International Telecommunication Conference “Advanced Micro- and Nanoelectronic Systems and Technologies” / IOP Conference Series: Materials Science and Engineering. V. 151. № 1. 2016. 012004. P. 1–5.

Дополнительные материалы отсутствуют.