Реализация алгоритмов расчета RAID 6 с использованием встроенных функций SSE Макулов Р.Н., 345 группа Научный руководитель: Короткевич А.И.
Задача состоит в восстановлении одного или двух утраченных дисков данных из N записываемых на жесткий диск.
Для этого RAID6 использует 2 синдрома, которые вычисляются в кольце многочленов над полем Галуа: где U - произвольный примитивный элемент поля.
Постановка задачи Изучение алгоритмов реализации RAID 6 Изучение наборов команд SSE Написание подпрограмм вычислений в поле многочленов 128 степени Написание реализации RAID 6
Коэффициенты многочленов храним в 128- битных переменных типа _m128i Подсчет синдромов осуществляем с помощью встроенных функций SSE таких, как : o _mm_clmulepi64_128(a, b, 0x00) o _mm_xor_si_128(f, e) o _mm_slli_si128(m1, 8) Для вычислений в поле получены функции o перемножения многочленов o нахождения остатка от деления o перемножения многочленов по модулю
Результаты измерений Время выполнения, тики Диски данных
Сравнение результатов Время выполнения, тики Диски данных Генерация синдромов Время выполнения, тики Диски данных Восстановление 2-х дисков Время выполнения, тики Диски данных Генерация синдромов
В рамках курсовой работы Были изучены алгоритмы расчета RAID 6. Были изучены наборы процессорных расширений SSE, SSE2, SSE 4.2 и их intrinsics аналоги в языке C, а также способы реализации алгоритмов полиномиального кодирования. На языке C была написана библиотека подпрограмм для вычислений в поле многочленов с фактор- многочленом x x 7 + x 2 + x + 1 с использованием intrinsics команд. Реализован алгоритм RAID 6 с использованием указанного полинома 128-й степени.