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

Вычислительные машины и программное обеспечение

УДК 004.414.23, 004.252

О.В. Мамутова, А.С. Филиппов

разработка модели иерархическом

оперативной памяти вычислительной системы

Развитие технологий производства электронных устройств сопровождается уменьшением размеров элементов памяти и понижением требуемого напряжения питания. Это ведет к повышению чувствительности элементов памяти к таким возмущающим внешним воздействиям, как нарушения в системе питания, электромагнитные помехи, сильные электрические поля и избыток тепла. При этом особое внимание уделяют вопросам нарушения работы элементов памяти вследствие одиночных событий (single event effect - SEE) попадания в кристалл тяжелых ионизированных частиц высокой энергии (ТЗЧ). Результатом таких воздействий на элементы памяти является высокая интенсивность сбоев ячеек памяти (SEU - single event upset), которые приводят к изменению хранимой информации [1, 2]. Интенсивность появления таких сбоев в полупроводниковых устройствах в оборудовании на околоземных орбитах на несколько порядков превышает интенсивность появления отказов. Поэтому для аппаратуры, подверженной космическому излучению или работающей в непосредственной близости от источников излучения, применяются методы по-

вышения надежности за счет структурной и информационной избыточности.

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

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

Домен внешней памяти

Домен...

j Мажорирование и

Домен ввода/вывода

Локачьная память 1 Локальная память 2 Локальная память п

1 1 ...

Процессор 1 Процессор 2 Процессор п

Вычислительный домен

Рис. 1. Структура целевой высоконадежной вычислительной системы

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

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

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

Методики исследования

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

Альтернативой является применение средств моделирования, позволяющих проводить анализ с использованием моделей вознаграждений [7]. Для разработки модели выбрана современная программная среда моделирования Möbius (соз-

дана в рамках группы Performability Engineering Research Group (PERFORM), Center for Reliable and High-Performance Computing, Иллинойский университет в Урабана-Шампейн, США), предназначенная для моделирования сложных систем с целью совокупной оценки надежности и производительности систем. Преимущество этого средства - поддержка множества формализмов моделирования, а также возможность создания иерархических моделей любой сложности [8].

Разработка модели системы

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

В качестве основной характеристики надежности системы памяти в условиях возможности появления одиночных сбоев (SEU) принята X - интенсивность появления сбоев в максимальном объеме кэш-памяти. При этом размер кэшпамяти определяется как относительная величина cache_size, принимающая значения от нуля до единицы и показывающая активно используемую долю от максимально возможного размера кэшпамяти: 0 - кэш-память не используется, 1 - используется весь возможный объем кэш-памяти. То есть, учитывая равномерное распределение вероятности возникновения сбоя по всей площади кэш-памяти, X = X • cache size - интенсивность возникновения сбоев в активной области кэшпамяти.

Для характеристики исполняемой программы и быстродействия кэш-памяти выбраны следующие усредненные параметры:

Рмйе - вероятность обращения к памяти по записи;

- вероятность промаха при обращении в кэш-память;

- среднее время обращения к памяти при попадании в кэш, с;

^ - среднее время обращения к памяти при кэш-промахе, с.

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

В качестве показателя надежности предложено использовать среднее время безотказной работы системы при наличии сбоев кэш-памяти Т (средняя наработка до отказа). В качестве показателя производительности - число обращений к памяти, выполняемых за единицу времени. Тогда совокупным показателем надежность-производительность считаем N - число операций, выполненных заданной программой до перехода в состояние отказа при наличии сбоев в кэш-памяти. Поскольку для оценки надежности системы, использующей структурное резервирование, нецелесообразно использовать величину средней наработки до отказа, предлагается еще один показатель надежности - вероятность безотказной работы за заданное время mission_time. При этом для характеристики производительности используется число операций, выполненных заданной программой за время mission_time.

Следует указать следующие общие соображения о возможном влиянии размера кэш-памяти на надежность и производительность системы.

Если уменьшить размер кэш-памяти, уменьшается вероятность попадания частицы в активную область кэш. При этом частицы, попадающие в неактивную область кэш-памяти, не могут привести к отказу системы. Таким образом, с уменьшением размера кэш-памяти надежность системы увеличивается.

С другой стороны, с уменьшением размера кэш-памяти увеличивается время выполнения программы. При этом вероятность возникновения сбоя в течение большего промежутка времени больше.

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

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

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

Разработка в среде Möbius заключается в построении следующей иерархии моделей:

• ATOMIC - на этом уровне создается описание простых базовых моделей с помощью выбранных формализмов;

• COMPOSED - на этом уровне возможно построение более сложной модели из простейших или других сложных подмоделей с помощью операций объединения и дублирования;

• REWARD - эта модель определяет измеряемые параметры в созданной модели;

• STUDY, TRANSFORMER, SOLVER - необходимы для моделирования и получения результатов.

Иерархическая структура построенной модели представлена на рис. 2.

Путем декомпозиции системы выделены следующие базовые подмодели:

модель сбоев кэш-памяти - учитывает зависимость появления ошибок при обращении в кэш-память от ее размера;

модель исполняемой программы - моделирует поток обращений процессора к памяти с уче-

Рис. 2. Структура ядра разработанной модели вычислительной системы в Möbius

том заданных усредненных параметров производительности размера кэш-памяти;

модели распространения ошибок в иерархической системе памяти при различных типах обращений (запись/чтение, попадание в кэш/кэш-промах);

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

Базовые модели реализованы с помощью формализма SAN (Stochastic activity networks) -расширения сетей Петри, используемого в среде Möbius. Из базовых подмоделей построены следующие сложные модели:

модель работы узла процессорного домена -включает в себя модель исполняемой программы, модель сбоев кэш-памяти и модели распространения отказов;

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

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

Ниже представлены описания базовых подмоделей.

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

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

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

READ_HIT - модель распространения ошибки в случае обращения к памяти типа «Попадание при чтении». В этой ситуации наличие сбоя во внешней памяти не влияет на логику распространения ошибок. И рассматривая худший случай, считаем, что наличие сбоя в кэш приводит к сбою выполняемой программы узла.

READ_MISS - модель распространения ошибки в случае обращения к памяти типа «Промах при чтении». Если нет сбоев ни в кэш-памяти, ни во внешней памяти, программа успешно продолжает свое выполнение. Если есть сбой в кэш-памяти, но нет сбоя во внешней памяти, то при смене блоков ошибка из кэш-памяти попадает во внешнюю память, но программа успешно продолжает свое выполнение, прочитав из внешней памяти значение без ошибки. Если есть сбой во внешней памяти, рассматривая худший случай, считаем, что из внешней памяти прочитано сбойное значение и происходит сбой выполняемой программы.

WRITE_HIT - модель распространения ошибки в случае обращения к памяти типа «Попадание при записи». Если используется процедура записи writethrough, при любой записи тут же происходит запись во внешнюю память. Если же используется процедура writeback, записанное значение попадает во внешнюю память с задержкой. Рассматривая худший вариант, считаем, что обратная запись во внешнюю память происходит сразу, перенося ошибочное значение из кэшпамяти во внешнюю память, и наоборот.

WRITE_MISS - модель распространения ошибки в случае обращения к памяти типа «Промах при записи». В этой ситуации всегда происходит смена блоков внешней памяти и кэш. Тогда если ошибка только в кэш-памяти, считаем, что в худшем случае она тут же попадает во внешнюю память с обратной записью, оставаясь при этом в кэш-памяти. Если сбой во внешней памяти, он попадает в кэш-память при смене блоков.

SIMPLE_VOTER - модель голосующего элемента, маскирующего отказы отдельных узлов. Модель содержит четыре места, наличие меток в которых отображает состояние всей системы: OK - система функционирует, ошибок не замечено; soft_diagnostic - замаскировано ошибочное обращение к памяти (отказ системы определяется метками в diagnostic и fault); diagnostic - некоторое число резервированных процессорных узлов отказало, но система продолжает успешно функционировать; fault - система находится в состоянии отказа, т. к. более половины процессорных узлов отказало.

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

1. Вероятность возникновения одного из типов обращения задается фиксированной вероятностью на всем протяжении выполнения программы. В действительности интенсивность тех или иных обращений различается для каждой исполняемой программы и не имеет определенной функции распределения. Для проведения моделирования следует подключать модель анализа потока обращений в память разного типа, отслеживая исполняемый код программы либо в процессе моделирования, либо проведя предварительную процедуру адресной трассировки (address trace). Кроме того, в действительности если в одном из

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

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

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

Результаты моделирования

В таблице приведены заданные при моделировании значения параметров модели. Оценка вероятности безотказной работы проведена для mission_time =1 с размером выборки 104. Значение относительного размера кэш-памяти cache_size для проведенных экспериментов менялось от нуля до единицы с шагом 0,1.

На рис. 3 представлены графики, отражающие зависимости средней наработки до отказа Т, совокупного показателя надежность-производительность N и вероятности безотказной работы Р от относительного размера кэш-памяти (cache_size), полученные в результате моделирования. При рассмотрении результатов следует учитывать, что возможность имитационной оценки параметров Т и N при cache_size = 0 ограничена, поэтому соответствующие результаты не учитывались при формировании зависимостей на рисунке.

Оценки Т и N, полученные при моделировании, имеют доверительный интервал 5 % с вероятностью 95 %. Увеличение статистической точности оценки возможно, однако при этом

Значение параметров модели

Параметр Значение

Интенсивность появления сбоев, X (с-1) 2

Вероятность промаха при обращении в кэш (при максимальном размере кэш), pmiss (%) 1

Вероятность обращения к памяти по записи, pwrite (%) 10

Время обращения к памяти при попадании в кэш, thit (с) 10-5

Время обращения к памяти при кэш-промахе, tmiss (с) 10-3

Число процессорных узлов, nmr val 3

увеличивается время моделирования. Точность оценки Р определяется выбранным размером выборки и составляет четыре знака после запятой, при этом время моделирования имеет степенную зависимость от выбираемой точности оценки.

Полученные результаты показывают, что с учетом принятых усредненных характеристик исполняемой программы совокупный показатель надежность-производительность принимает наименьшее значение при относительном размере кэш-памяти в диапазоне от 0,2 до 0,9. При этом вероятность безотказной работы более 0,9 за 1 с достигается при относительном размере кэшпамяти не более 0,1.

Построенное ядро модели вычислительной системы позволяет оценить корректность получа-

емых результатов путем сравнения с расчетными значениями. Для проведения аналитических расчетов использованы следующие выражения:

P = 3 • е

-2-cache_size-^-mission_time ^ £-3-cache_size-Х-mission_time .

T =

2 • cache size • Х 3 • cache size • Х '

Рис. 3. Примеры результатов моделирования

т = N а - ^ + N • •

Сравнение результатов моделирования с аналитическими расчетами показало, что средняя погрешность оценки N составляет около 7 %, а среднее абсолютное отклонение оценки Р составляет 0,004205. Анализ результатов моделирования при пшг_уа1 равном 1 и 5 показал, что погрешности получаемых оценок незначительно отличаются от указанных выше.

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

Модель апробирована на системах с различным числом процессорных узлов (1, 3 и 5). Сравнение с результатами, полученными аналитически, показало корректность построенной модели.

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

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

1. Edmons, L.D. An Introduction to Space Radiation Effects on Microelectronics [Текст] / L.D. Edmons, C.E. Barnes, L.Z. Scheick. - Jet propulsion Laboratory, California Institute of Technology, 2000. -83 p.

2. Чумаков, А.И. Действие космической радиации на ИС [Текст] / А.И. Чумаков. -М.: Радио и связь, 2004. -320 с.

3. Hennessy, Lohn L. Computer architecture: a quantitative approach [Текст] / Lohn L. Hennessy, David A. Patterson. -Morgan Kaufmann Publishers, 2007. -676 c.

4. Глухих, М.И. Формализация представления отказоустойчивых систем при проектировании структуры системы [Текст] / М.И. Глухих // Информационно-управляющие системы. -2005. -№ 3. -C. 27-35.

5. Cai Yuan. Cache Size Selection for Performance, Energy and Reliability of Time-Constrained Systems

[Текст] / Yuan Cai, Marcus T. Schmitz, Alireza Ejlali [et al.] // Proc. of the 2006 Asia and South Pacific Design Automation Conf., Jan. 2006.

6. Asadi, G.-H. Balancing Performance and Reliability in the Memory Hierarchy [Текст] / G.-H. Asadi, V. S. Mehdi, B. Tahoori [et al.] // Proc. of the IEEE International Symp. on Performance Analysis of Systems and Software, 2005. -ISPASS 2005, IEEE Computer Society, March 2005.

7. Haverkort, Boudewijn R. Performability modelling tools and techniques [Текст] / Boudewijn R. Haverkort, Ignas G. Niemegeers. // Performance Evaluation. -Elsevier Science Publishers B. V. Amsterdam, The Netherlands. -March 1996. -Vol. 25. -Iss. 1.

8. Deavours, D.D. The Möbius framework and its implementation [Текст] / D.D. Deavours, G. Clark, T. Courtney [et al.] // IEEE Transactions on Software Engineering. -Oct. 2002. -№ 28(10). -P 956-969.

УДК 004.416.6

В.М. Ицыксон, А.В. Зозуля

формализм для описания частичных спецификаций

компонентов программного окружения

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

качество выпускаемого программного обеспечения;

обеспечиваемый уровень поддержки; своевременный выход новых версий продукта; поддержка большого числа программных и аппаратных платформ;

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

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

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

Одна из задач, часто встающая перед разработчиками, - перенос отлаженного корректно функционирующего программного кода в новые условия:

на новую операционную систему; в новую версию ранее использовавшейся библиотеки;

в новую библиотеку;

на новую аппаратную платформу

и т. п.

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