_Доклады БГУИР_
2005 апрель-июнь № 2
ИНФОРМАТИКА
УДК 681.326.7
ПОВЫШЕНИЕ ДОСТОВЕРНОСТИ ТЕКУЩЕГО КОНТРОЛЯ ОЗУ
А.А. ИВАНЮК, С Б. МУСИН
Белорусский государственный университет информатики и радиоэлектроники П. Бровки, 6, Минск, 220013, Беларусь
Поступила в редакцию 15 декабря 2004
В данной статье рассматриваются обнаруживающая и диагностическая способность эффективного метода текущего контроля ОЗУ — адаптивного сигнатурного анализа (АСА). Исследуются способы повышения достоверности данного метода, а также предлагается новый подход для обнаружения с помощью метода АСА четырехкратных ошибок в ОЗУ.
Ключевые слова: текущий контроль ОЗУ, адаптивный сигнатурный анализ.
Введение
Системы обработки и хранения информации, вычислительные и управляющие комплексы — компьютерные системы — нашли широкое применение в самых различных областях. В настоящее время много внимания уделяется безопасности таких систем. При этом выделяют два аспекта:
обеспечение целостности и особенно конфиденциальности хранимых данных;
обеспечение надежности функционирования, устойчивости к возникновению ошибок и сбоев в работе.
Требование безопасности системы — это в первую очередь требование безопасности ее функциональных узлов. Неотъемлемой составляющей любой компьютерной системы является оперативное запоминающее устройство (ОЗУ). ОЗУ — один из самых ненадежных функциональных узлов компьютерных систем [1]. Ошибка в данных, хранимых ОЗУ, может повлечь как выдачу системой неправильного результата, так и нарушение работы всей системы вплоть до получения к ней несанкционированного доступа [2]. Вот почему сегодня одной из важных задач является контроль правильности функционирования ОЗУ.
Тестирование и контроль ОЗУ
Хранение информации в ОЗУ, как правило, осуществляется в виде двоичных кодов с символами 0 и 1. Любое искажение этих кодов называется ошибкой. Под кратностью ошибки понимается количество искаженных информационных символов.
Причиной ошибки может быть неисправность либо сбой в работе ОЗУ. Для выявления неисправностей в процессе эксплуатации могут применяться методы тестирования, а для обнаружения ошибочных данных — методы текущего контроля.
При тестировании (рис. 1) предполагается наличие дополнительного устройства, которое служит для генерации тестовых воздействий и обработки результатов тестирования. Тестирование осуществляется во время простоя системы либо после подачи внешнего сигнала, по
которому ОЗУ переключается в соответствующий режим. К достоинствам данного подхода можно отнести возможность проведения исчерпывающего тестирования для выявления любых типов неисправностей, к недостаткам — тот факт, что ошибки, возникшие в результате воздействия внешних факторов (альфа-частицы естественной радиации окружающей среды), в промежутках между тестированием не могут быть обнаружены.
Рис. 1. Схема тестирования ОЗУ
Текущий контроль (рис. 2) в отличие от тестирования не нарушает процесс нормального функционирования ОЗУ.
При текущем контроле ОЗУ с применением корректирующих кодов совокупность запоминающих элементов рассматривается как канал передачи информации, в котором информация передается не в пространстве, а во времени. Данные, поступающие на хранение в ОЗУ, предварительно обрабатываются кодером, который вносит избыточность с целью обнаружения и/или исправления ошибок определенной кратности. При считывании происходит декодирование: на основании информационных и контрольных символов рассчитывается синдром. Значение синдрома определяется конфигурацией ошибок, оно не зависит от информационных символов. Таким образом, на основании синдрома ошибка может быть обнаружена и, если возможно, исправлена. Обнаруживающая способность данного подхода зависит от характеристик используемого корректирующего кода. Существенным недостатком текущего контроля ОЗУ с применением корректирующих кодов являются значительные аппаратурные затраты на реализацию.
Рис. 2. Схема контроля ОЗУ
Адаптивный сигнатурный анализ
В [3] был предложен подход, основанный как на принципе тестирования, так и на принципе текущего контроля — адаптивный сигнатурный анализ (АСА). Затраты аппаратуры на реализацию АСА значительно меньше, чем при использовании традиционного подхода текущего контроля ОЗУ с использованием корректирующих кодов.
В основу АСА положен метод неразрушающего тестирования ОЗУ, предложенный Ко-неманом в 1986 г. [4]. Данный метод основан на свойстве линейности сигнатурного анализатора.
Для проведения неразрушающего тестирования содержимое ОЗУ сжимается на сигнатурном анализаторе в соответствии с фазами чтения неразрушающего алгоритма тестирования. Полученная эталонная сигнатура сохраняется. Далее подаются тестовые воздействия, а получаемые выходные реакции снова сжимаются на сигнатурном анализаторе. Полученная сигнатура сравнивается с эталонной. Если сигнатуры различны, то произошла ошибка в работе ОЗУ. Главным недостатком такого подхода является необходимость вычисления эталонной сигнатуры каждый раз после изменения содержимого ОЗУ.
Метод АСА позволяет производить коррекцию эталонной сигнатуры, не выполняя сжатие всего содержимого ОЗУ, что позволяет использовать сигнатурный анализатор в качестве инструмента текущего контроля. Основное отличие метода АСА от классического сигнатурного анализа - сжатие на сигнатурном анализаторе вместо информационных символов их адресов.
Процедуру проведения текущего контроля ОЗУ с применением АСА можно описать следующим образом (рис. 3).
выходные данные
адрес, данные, управление
Рис. 3. Схема контроля ОЗУ с использованием АСА
Изначально значения рабочей и эталонной сигнатур равны нулю. При изменении содержимого ОЗУ текущее значение эталонной сигнатуры суммируется по модулю два со значениями адресов ячеек памяти, поменявших свое значение. Если необходимо провести контроль хранящихся данных, функционирование ОЗУ приостанавливается. Рабочая сигнатура вычисляется как сумма по модулю два ячеек ОЗУ со значением 1. Рабочая и эталонная сигнатуры сравниваются. Факт несовпадения эталонной и рабочей сигнатур говорит о том, что ОЗУ содержит ошибочные данные. Адресация ячеек не может начинаться с нулевого адреса, так как каждый адрес, сжимаемый на анализаторе, должен изменять значение сигнатуры.
Обнаруживающая и диагностическая способность метода АСА
Рассмотрим бит-ориентированное ОЗУ, состоящее из массива запоминающих элементов размерности 2м, N — разрядность шины адреса. Совокупность адресов рассматриваемого ОЗУ является векторным пространством А = {а1, а2,..., ai,..., ам }, где
а = {а0,а,...а,...,амч},ае ОЕ(2).
Пусть х{— значение, хранящееся по адресу а{ в А, х{ е ОЕ(2); БЬ — значение эталонной
сигнатуры; БЖ — значение рабочей сигнатуры; Б — синдром; © — оператор суммирования в ОЕ(2).
Тогда при каждом изменении значения х{ на новое значение х' коррекция эталонной сигнатуры проводится по следующей формуле:
БЬ'= БЬ © а1,Vxi Ф х', где БЬ - старое, БЬ' - новое значения сигнатуры. Рабочая сигнатура вычисляется как
N
БЖ = 0^ а1, Ух, =1.
1=1
Если содержимое ОЗУ корректно, то БЬ = БЖ или Б = БЖ 0 БЬ = 0.
Утверждение 1. Ошибка не может быть обнаружена, если после ее возникновения
Б = 0.
Пусть произошла ошибка кратности к = 1: значение ячейки по адресу ае1 изменилось.
Тогда:
N
1) БЖЛ = 0^ аг 0аА, Ух, =1, х' = 1, хй =0, Б = БЖ 0 БЬ = ай * 0,
1 =1
N-1
2) БЖЛ = 0^ аг, Ух, =1, х'1 =0, хй =1, Б = БЖ 0 БЬ = ай * 0.
1=1
Следовательно, однократные ошибки обнаруживаются и исправляются. Пусть произошла ошибка кратности к = 2 : значения ячеек по адресам ае1, ае2 изменились. Тогда:
Б = БЖ 0 БЬ = ае1 0 ае 2,
ае1 0 ае2 = 0 , если ае1 = ае2 (свойство суммирования в GF(2)), причем а, * aj, У а, е А, aj е А (свойство векторного пространства). Следовательно, двукратные ошибки обнаруживаются.
Повышение обнаруживающей и диагностической способности метода АСА
Для обнаружения ошибок более высокой кратности (к > 2) в [5, 6] было предложено сжимать не адреса ОЗУ, а некоторые бинарные векторы, которые ставятся в соответствие каждому реальному адресу.
Пусть произошла ошибка кратности к = 3 : значения ячеек по адресам ае1, ае2, ае3 изменились. Тогда:
Б = БЖ 0 БЬ = ае1 0 ае2 0 ае3,
ае1 0 ае2 0 ае3 = 0 , если ае1 0 ае2 = ае3, т.е. для обнаружения трех ошибок необходимо преобразовать исходное векторное пространство таким образом, чтобы сумма любых двух векторов из данного пространства не равнялась третьему вектору, принадлежащему этому пространству.
Теорема. Пусть а е А и а = {а0,_а,-.а^},Ь е А и Ь = {$,,_,&,_ вч),
а * Ь * 0. а 0 Ь < а тогда и только тогда, когда Зх :ах = 1 и {Д),_, вх-1, вх } = {0,___,0,1} .
Доказательство. Необходимость. а 0 Ь < а , или
{а0,_,ах ,_,aN-1} 0 {А>,_, Рх ,_,вN-1} < {а0,_,ах ,_,aN-1},
{а0 0в0,_,ах 0в ,_,аN-1 0 вN-1} < {а0,_,ах ,_,aN-1}.
Следовательно, существуют позиции в а, где ах = 1, и в а 0 Ь , где ах 0 вх = 0. Достаточность. а = {а0,_,1,_,а^/-1},Ь = {0,_,1,_,Д^-1} .Тогда а 0Ь = {а0 0 0,_,101,_,aN-1 0 в-1} = {a0,_,0,_,aN-1 0в-1}. {а0,_Д_,а^1 0вЛГ-1} < {а0,_,1,_,алг-1} . Следовательно а 0 Ь < а . Для обнаружения АСА ошибок кратности к = 3 закодируем адреса ОЗУ следующим образом: увеличим размерность вектора на одну координату:
а = {1,0, _,0,1} или {0,—,0,1,0,—,0,1},
а2 = {1,0, _,1,0} или {0,_,0,1,0,_,1,0},
а, = {1,а0,_,а^2,а^^ или {0,_,0,1,а0,_-2,а№-1} .
Покажем, что любые ошибки кратности k = 3 обнаруживаются. Возьмем два произвольных вектора ai и aj таких, что ai = {1,а0,...,aN-1} и aj = {1,в0,...,eN-1}, тогда из теоремы
следует, что at © aj < a1. Поэтому ошибки третьей кратности обнаруживаются.
Пусть произошла ошибка кратности k > 3 и k - нечетно: значение ячейки по адресам ae1, ae 2,., aek изменились.
Базис. Пусть k = 3 .Тогда из теоремы следует, что все ошибки обнаруживаются.
Индукция. Пусть верно, что ©^ak Ф 0 , где k > 3 , k — нечетно. Покажем, что верно
k
©^ak © ak+1 © ak+2 Ф 0. Пусть s = ©^ ak , тогда из теоремы следует, что s © ak+1 © ak+2 Ф 0 . kk
Пусть произошла ошибка кратности k > 3 и k — четно: значение ячейки по адресам ae1, ae2, ae3, ae 4 изменились. Тогда:
S = SW © SL = ae1 © ae2 © ae3 © ae4,
ae1 © ae2 © ae3 © ae4 = 0, если ae1 © ae2 © ae3 = ae4, т.е. результат суммирования любых трех адресов не должен равняться четвертому адресу.
Определение. Вектор g является образующим вектором векторного пространства G размерности r (r > 0), если
g = {Y0,-",Y-2,Yr-1} и {Yc-Y 2} = {0,...,0}, уг-2 = 1.
Например: r = 3, G = (001, 010, 011, 100, 101, 110, 111), g = 100. Утверждение 2. ©^ gr Ф 0, Vr
r
В векторном пространстве X размерности N можно выбрать N образующих векторов. Из утверждения 2 следует, что сумма любого количества этих векторов не дает образующий вектор. Если кодировать векторы из A образующими векторами, то можно обнаруживать ошибки любой кратности. Однако для того чтобы закодировать 2N векторов, длина кодовых векторов должна быть 2N. Если ограничиться обнаружением ошибок четвертой кратности, то длину кода можно уменьшить.
Будем последовательно выбирать пары векторов из векторного пространства Х. Если пара векторов — образующие векторы, то данные векторы являются и кодовыми. Пусть сумма образующих векторов тоже является кодовым вектором, тогда все векторы, которые дают в результате суммирования этот вектор или уже выбранный, не входят в код. Следующий не образующий вектор, не дающий в сумме с уже выбранным вектором кодовый вектор, также является кодовым. Приведем алгоритм построения кода для обнаружения четырехкратных ошибок. Алгоритм построения кода:
Х — исходное множество векторов, n = | X | G — множество образующих векторов, GcX, gkeG, gk = 2 C — множество кодовых векторов, CcX, c^C, m=|C| k=[0...n], i=[0...m]
g0 := 1
while gk < n do begin
v1 := вектор из X, для которого (v1©ci) <tC добавить v1 в С удалить v1, (v1 ©ci) из X
v2 := следующий вектор из X, для которого (v!©v2)eX
if v1 = gk and v2 = gk+i then begin
добавить v2 в С удалить v2, (v2©Oi) из X
добавить (v1©v2) в С
удалить (v1©v2), (v1©v2©ci) из X
gk := gk+1
end
else if v1 = gk and v2 < gk+1 then begin while v2 < gi+1 do begin
добавить v2 в С удалить v2, (v2©ci) из X
v1 := v2
v2 := следующий вектор из X, для которого (v^c^eX
end
end
gk := gk+1 end
В таблице приведены векторы, выбранные предложенным алгоритмом из 1024 последовательных векторов. Как видно из таблицы, из 1024 последовательных векторов можно выбрать только 30 кодовых векторов. Сумма любой четверки векторов из полученного набора не дает нулевой вектор.
Векторы для кодирования 30 адресов ОЗУ, позволяющие обнаруживать четырехкратные ошибки в ОЗУ с помощью метода АСА
110 12 21610 110110002
210 102 23710 111011012
310 112 24710 111101112
410 1002 25610 1000000002
810 10002 27910 1000101112
1210 11002 29710 1001010012
1610 100002 45710 1110010012
3210 1000002 51210 10000000002
4810 1100002 53710 10000110012
6410 10000002 558ю 10001011102
8510 10101012 59410 10010100102
10610 11010102 79610 11000111002
12810 100000002 84710 11010011112
15010 100101102 87210 11011010002
17110 101010112 94110 11101011012
Заключение
В данной статье были рассмотрены способы повышения достоверности текущего контроля ОЗУ с использованием метода АСА. Добавление одного дополнительного бита к адресам ОЗУ позволяет методу АСА обнаруживать все неисправности нечетной кратности. Для обнаружения неисправностей четной кратности (выше второй) в соответствие каждому адресу ОЗУ должен ставиться кодовый вектор. Был предложен алгоритм, который позволяет получить кодовые векторы для обнаружения ошибок четвертой кратности. Необходимо дальнейшее исследование свойств полученных кодовых векторов с целью эффективной аппаратурной реализации.
IMPROVING THE REABILITY OF CONCURRENT CHECKING TECHNIQUES FOR RAM
A.A. IVANIUK, SB. MUSIN Abstract
In this paper we consider error detection and correction ability of effective concurrent checking techniques for RAM - self-adjusting output data compression (SAODC). We investigate the ways of improving this technique, as well as propose the new method for quadruple RAM errors detecting by the SAODC.
Литература
1. Ярмолик В.Н., Калоша Е.П., Быков Ю.В., и др. Проектирование самотестируемых СБИС. Т. 2. Мн., 2001.
2. Sudhakar Govindavajhala, Andrew W. Applet Using Memory Errors to Attack a Virtual Machine // IEEE Symposium on Security and Privacy, 2003.
3. Ярмолик В.Н., Иванюк А.А. Встроенное самотестирование памяти с использованием сигнатурного анализа // Логическое проектирование. Мн., ИТК, 1997.
4. NicolaidisM. Transparent BIST for RAMs // Proc. of Int. Test Conf., USA, 1992.
5. Ярмолик В.Н., ИванюкА.А. Адаптивный сигнатурный анализ для бит-ориентированной памяти // Материалы 25-й юбилейной Междунар. конф. и дискуссионный клуб IT+SE'98: Сб. тр. конф. Гурзуф, 1998.
6. Иванюк А.А. Методы повышения достоверности адаптивного сигнатурного анализа // М-лы 10-й науч.-техн. конф. "Новые технологии в машиностроении и вычислительной технике": Сб. тр. конф. Ч. 2. Брест, 1998.