Исследование эффективности работы устройства предварительной подкачки данных микропроцессора “Эльбрус” Магистерская диссертация студента 213 группы ФРТК Шугаев Андрея Александровича Москва 2008 Цели работы Исследование характеристик и параметров устройства Оценка эффективности реализации устройства Выявление возможных недостатков Выявление возможной избыточности Выработка рекомендаций по модернизации Этапы работы •Выбор тестовых программ •Выбор характеристик для исследования •Выбор метода исследования •Сбор статистики использования аппаратуры устройства •Анализ полученных данных •Выработка рекомендаций Схема исследования Пакет программ Spec95 Вычислительный комплекс Эльбрус3М Статистические данные Специальные скрипты Статистика исполнения циклов Частота исполнения циклов Поток команд Поток команд 50 Гц Принцип предварительной подкачки данных Запрос за данными в память A B C D Ответ из памяти Запрос за данными B A C D •Буфер начальных индексов •Буфер команд подкачки •Буфер инкрементов •Команда подкачки •Буфер подкаченных данных A B C D •Регистровый файл Схема устройства aau Команды подкачки Начальные данные Буфер хранения команд подкачки Блок формирования запросов в память Буфер хранения адресной информации AAU APB move команды RF AAU (array access unit) - устройство подкачки данных APB (array prefetch buffer) – буфер хранения подкаченных данных MU (memory unit) – подсистема памяти RF (register file) – регистровый файл MU Исследуемые компоненты Буфер команд подкачки Буфер начальных индексов Размер 8 слов по 32 бита 6 портов (4 чтение, 2 запись) Буфер подкаченных данных Размер 16 слов по 32 бита 6 портов (4 чтение, 2 запись) Буфер инкрементов Размер 32 слова по 128 бит 2 порта (1 чтение, 1 запись) Объем 4 Кбайта 3 порта (2 чтение, 1 запись) Кодировка команды предварительной подкачки Исследование количества подкачиваемых массивов относительная частота использования 0.3 0.25 0.2 0.15 0.1 0.05 0 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 кол-во массивов Выводы: •Целесообразно сократить количество массивов на подкачку которых рассчитано устройство до 16 Исследование использования регистров начальных индексов относительная частота использования 0.35 0.3 0.25 0.2 0.15 0.1 0.05 0 1 2 3 4 5 6 7 8 9 10 11 кол-во используемых регистров Выводы: •Аппаратура достаточна и не избыточна 12 13 14 15 16 Исследование использования регистров инкремента относительная частота использования 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 1 2 3 4 5 6 7 кол-во используемых регистров Выводы: •Целесообразно сократить количество используемых значений инкремента до 4 8 Буфер хранения подкаченных данных Логическая реализация запись чтение Физическая реализация запись чтение Использование портов в двух портовой памяти относительная частота 0.7 0.6 0.5 0.4 1 порт 0.3 2 порта 0.2 0.1 задачи Выводы: •Аппаратура достаточна и не избыточна сумма vortex wave5 fpppp apsi perl ijpeg li compress gcc turb3d m88ksim applu mgrid hydro2d su2cor swim tomcatv go 0 Исследование кодировки команды (литеральное смещение) 1 относительная частота 0.9 0.8 0.7 0.6 не используется 0.5 используется 0.4 0.3 0.2 0.1 pp p w av e5 vo rte x су м ма si fp ap rl pe g li ijp e ss c pr e gc m co to go m ca tv sw im su 2c hy or dr o2 d m gr id ap m pl u 88 ks im tu rb 3d 0 задачи Вывод: •Мало используется. Удаление этого поля позволит сократить размер команды с 64 до 32 разрядов Исследование кодировки команды (литеральное смещение) 1 относительная частота 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 1 2 3 4 5 четверки битов Вывод: Есть возможность сократить 8 старших бит 6 7 8 Исследование кодировки команды (размер читаемых записей) относительная частота использования 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 значение читаемых записей Вывод: •Есть возможность использовать меньшее число разрядов 31 Сокращение длины команды по результатам сбора статистики Литеральное смещение 32 разряда Размер читаемых записей 2 разряда Поле инкремента 1 разряд В итоге длина команды уменьшится на 35 разрядов из 64 Возможные оптимизации в аппаратуре Сокращение числа подкачиваемых массивов с 64 до 16 Сокращение количества регистров инкремента с 8 до 4 Размер буфера команд уменьшится с 512 байт до 128 байт 2 счетчика разрядностью 32 до разрядности 8 из управления 2 буфера размером 32х35 до размера 8х35 из блока обработки move команд 2 буфера размером 32х32 до размера 8х32 (буфер текущих индексов) 2 буфера размером 32х22 до размера 8х32 из блока формирования запросов в память Размер буфера уменьшится с 32 байт до 16 байт Сокращение поля литеральное смещение из команды 2 32 разрядных сумматора Результаты работы •Оценена эффективность реализации устройства предварительной подкачки данных •Выявлена избыточность •Выработаны рекомендации по модернизации