РАЗРАБОТКА МЕХАНИЗМА КОМПРЕССИИ ДАННЫХ ДЛЯ КЭШ-ПАМЯТИ ТРЕТЬЕГО УРОВНЯ ПРОЦЕССОРОВ C АРХИТЕКТУРОЙ "ЭЛЬБРУС"
←
→
Транскрипция содержимого страницы
Если ваш браузер не отображает страницу правильно, пожалуйста, читайте содержимое страницы ниже
Московский физико-технический институт (государственный университет) Факультет радиотехники и кибернетики Кафедра информатики и вычислительной техники РАЗРАБОТКА МЕХАНИЗМА КОМПРЕССИИ ДАННЫХ ДЛЯ КЭШ-ПАМЯТИ ТРЕТЬЕГО УРОВНЯ ПРОЦЕССОРОВ C АРХИТЕКТУРОЙ «ЭЛЬБРУС» Выпускная квалификационная работа (магистерская диссертация) Студент: Сурченко А.В. Научный руководитель: Фельдман В.М. Консультант: Кожин А.С. Москва, 2020
Компрессия данных в кэш-памяти Компрессия Декомпрессия L3-кэш Память данных • Применение: Увеличение эффективного объема кэш-памяти при незначительном изменении площади и времени доступа • Алгоритм BΔI*-HL: - Скорость (задержка декомпрессии – 1 такт) - Простота (занимает не более 0,1% от площади банка L3) - Эффективность (доля сжатых строк – 24,2%, степень сжатия – 1.246) Характеристики алгоритма исследованы в ходе бакалаврской работы 2
Цель работы Разработка механизма компрессии на базе алгоритма BΔI*-HL в кэш-памяти третьего уровня процессора «Эльбрус-16С» Задачи: • разработка и RTL-описание алгоритма совместного размещения сжатых кэш-строк для увеличения эффективного объема L3-кэша • доработка RTL-описания L3-кэша для интеграции механизмов компрессии и декомпрессии • отладка разработанного решения на Verilog-модели и FPGA-прототипе процессора «Эльбрус-16С» Требования: • Внедрение механизма не должно вносить существенные изменения в структуру L3-кэша, влиять на алгоритмы вытеснения и протокол когерентности • Внедрение механизма не должно уменьшать частоту работы L3-кэша и существенно увеличивать время доступа к нему 3
Принцип сжатия BΔI*-HL Сегмент S0 Сегмент S1 Сегмент S2 Сегмент S7 0x000175FA 0x000175FC 0x000175FD … 0x00000003 База 0x000175 0xFA 0xFC 0xFD … 0x03 0b000…1 Si = {base × ~mi, Δi} Δ0 Δ1 Δ2 Δ7 m0m1m2…m7 • Кэш-строка параллельно разбивается на 4, 8, 16 и 32 сегмента равных размеров, проверяется равенство их старших разрядов нулю или между собой • Сжатая кэш-строка содержит общие старшие разряды (база), набор младших разрядов – смещений (Δ), и маску, показывающую, относительно нуля или базы получено смещение (m) • Размеры смещений выбираются так, чтобы сжатая кэш-строка была не больше половины размера полной • Это повышает пропускную способность внутри кэша (кэш-строки передаются по половинам) и позволяет хранить две кэш-строки в одной ячейке памяти 4
Организация L3-кэша процессора «Эльбрус-16С» L3-кэш состоит из памяти тэгов и состояний LDD LDX (TA, Tag Array) и памяти данных (DA, Data Array) TA В TA находится локальный справочник LD c информацией о когерентном состоянии строк в L3 и кэшах ядер LD состоит из равных по размеру частей: DA • LDD – локальный справочник с данными • LDX – расширение локального справочника Записям в LDD могут соответствовать кэш-строки в памяти данных, записям в LDX кэш-строки не соответствуют Ассоциативность кэш-памяти по тэгам в два раза превышает ассоциативность по данным: 32 против 16 5
Совместное размещение сжатых кэш-строк Проблема: как хранить больше данных в кэш-памяти, увеличив тем самым ее эффективный объем? Решение: данные могут соответствовать тэгам и в LDD, и в LDX TA LDD • Записи в памяти тэгов дополняются информацией о компрессии данных (позволяет не хранить нулевые данные) LDX • Тип компрессии в тэге указывает на размер данных в кэш-строке (полный, половинный или нулевой) • В зависимости от размеров данных в кэш- DA строке в ячейке памяти данных возможно совместное хранение кэш-строк, относящихся к тэгам в LDD и LDX 6
Действия при обработке запросов в L3-кэше без компрессии В зависимости от того, какого типа запрос по протоколу когерентности приходит в кэш-память и его попадания/промаха выполняемые действия различаются: • При RD Hit LDD или WB Hit LDD перестановок в тэгах не требуется. При необходимости происходит запись данных по тэгу • При RD Hit LDX или WB Hit LDX происходит перенос тэга, по которому пришел запрос, в LDD. Происходит запись данных в кэш по новому месту расположения тэга • Запись нового тэга в LDD (при промахе по чтению RD Miss), а также перенос в LDD тэга из LDX (RD Hit LDX и WB Hit LDX) могут потребовать вытеснения из LDD в LDX. Данные вытесняемого тэга при этом покидают кэш 7
Дополнительные действия при обработке запросов в L3-кэше с компрессией Хранение данных при тэгах LDX делает LDX Victim-кэшем по отношению к LDD: • При переносе тэга из LDX в LDD (при RD Hit LDX или WB Hit LDX) данные при тэге в LDX, если они есть, переносятся за тэгом • При вытеснении из LDD в LDX (при промахе по чтению RD Miss, переносе из LDX в LDD) данные вытесняются вслед за тэгом и остаются в кэше, если возможно их совместное размещение по месту записи, иначе покидают кэш • Запись данных по RD и WB происходит для тэга, находящегося в LDD (в случае Hit LDX он туда переносится). Может потребоваться дополнительное вытеснение, если нельзя сохранить соответствующие LDX данные вместе с записываемыми 8
Дополнительные действия при обработке запросов в L3-кэше с компрессией на примере RD Miss Одинаковые цвета блоков на рисунке показывают зависимость между тэгом и данными. Цвет линий показывает зависимость между переносами и переносимыми тэгами/данными R R D D M M is is s s Way: Req Victim Req Victim Way: Req Victim Req Victim LDD LDD TA TA (a) LDX (b) LDX X Half0 Half0 DA DA X Half1 Х Half1 (а) – действия при L3-кэше без компрессии (b) – действия при L3-кэше с компрессией. Занесение данных в кэш требует дополнительного вытеснения данных при тэге в LDX 9
Проблема потери актуальности информации о данных Необходимо разработать ограничения для поддержки атомарности транзакции в пределах одного ассоциативного пути Их отсутствие может привести к ошибке из-за потери актуальности информации о размерах данных, участвующих в транзакциях RD R D Hi M tL is DD s Way: Req Victim Way: Req Victim Way: Req Victim LDD LDD LDD TA TA TA LDX X LDX LDX Half0 Half0 Half0 DA DA DA Half1 Half1 Half1 RD Miss: соседствующих данных по месту записи нет, данные при вытеснении переносятся RD Hit LDD: данных при тэге LDX нет, вытеснения не требуется Возникает потеря данных одной из транзакций 10
Поддержка атомарности транзакций в пределах одного ассоциативного пути Введенные ограничения для поддержки атомарности: • При занесении новых данных предполагается, что они будут иметь полный размер, поскольку заранее неизвестно, смогут ли они сжаться при размещении в кэше • В случае записи данных для тэга LDD такая запись отменяется, если соседствующий тэг в LDX участвует в другой транзакции. В противном случае запись по одной из транзакций может испортить данные другой • Запись данных для тега, вытесняемого из LDD в LDX, отменяется, если соседствующий тэг в LDD по месту записи задействован в другой транзакции Поиск описанных ситуаций и решения о размещении данных принимаются при начале работы транзакции, предотвращая конфликты 11
Интеграция механизма компрессии в конвейер записи данных CMPRS R2_DA_WR R3_DA_WR DA_WR R3_DA_WR_DATA R4 DA_WR_DATA R3 R3_DA_WR_CMPRS CMPRS? CMPRS В случае, когда данные записи R3_DA_WR_DATA удалось сжать, производится модификация записи в память данных • Запись дополняется информацией о сжатии данных, которая затем записывается в соответствующий кэш-строке тэг • В случае сжатия до половины размера запись передается в один такт вместо двух • В случае нулевой строки запись отменяется, меняется только информация в тэге кэш- строки 12
Интеграция механизма декомпрессии в конвейер чтения данных DECMPRS D5_RD ~CMPRS NO D6_RD or ZERO? YES D5_RD_DATA ~CMPRS NO D6_RD_DATA or DECMPRS ZERO? D5 D6 YES B2N_DAT_HDR B2N_DAT_DATA • При чтении из памяти данные D5_RD_DATA подвергаются декомпрессии, если они были сжаты и не являются нулевыми, т.к. в последнем случае значение данных заранее известно • Декомпрессия задерживает отправку пакета с данными “DAT” на такт 13
Тестовый стенд Банк L3-кэша в составе FPGA-прототипа Блок счетчиков Запросы Анализ состояний Счетчики событий Память тэгов Компрессия Конфиг. Данные Декомпрессия APB Slave AMBA APB Регистры процессора Память данных L3-кэш • Был разработан тестовый стенд, позволяющий собирать данные о работе алгоритмов компрессии и декомпрессии, совместном размещении данных и кэш-памяти в целом через программно- доступные счетчики событий • Тестирование производилось на Verilog-модели, системных и автономных тестах • Прошли 184 теста на базе системных тестов на когерентность • Удалось добиться успешного прохождения прогона на автономной конфигурации из 2854 тестов 14
Характеристики разработанного механизма Разработанный механизм компрессии соответствуют заявленным требованиям к проекту • В кэш-памяти осталась неизменной работа алгоритмов вытеснения и протокола когерентности* • Разработанный механизм компрессии не потребовал существенных изменений в структуре кэш-памяти • Не изменилось время доступа по чтению для несжатых кэш-строк, время доступа к сжатым строкам, кроме доступа к нулевым данным, увеличилось на один такт • Результаты синтеза в САПР Synopsys Design Compiler и Intel Quartus: • частота работы не изменилась и составила 2ГГц • прирост аппаратуры – 4,5% и 10% от общего числа регистров и логических элементов банка L3-кэша соответственно • механизм занимает 1% от общей площади всего банка, размер L3-кэша при этом не меняется 15
Результаты работы • Разработан алгоритм совместного размещения сжатых кэш-строк для увеличения эффективного объема кэш-памяти, разработано его RTL- описание • Разработаны ограничения для поддержки атомарности транзакций, связанных с обработкой в L3-кэше запросов по протоколу когерентности • Доработано RTL-описание кэш-памяти для поддержки работы со сжатыми кэш-строками • Характеристики разработанного механизма соответствуют заявленным требованиям к проекту • В настоящее время механизм отлажен на системных и автономных тестах, начата отладка на FPGA-прототипе 16
Дополнительные материалы
Схемы компрессии BΔI*-HL Размер Размер Размер Размер сжатой строки, Название схемы сегмента, Б смещения, Б маски, Б Б ( ≤ 34Б) Zero values 0 0 0 0 Base4-Δ1 4 1 2 21 Base16-Δ4 16 4 1 29 Base8-Δ3 8 3 1 30 Base2-Δ1 2 7 бит 4 34 Half0 Zero – – – 34 Half1 Zero – – – 34 Нет компрессии – – – 68 • К размеру кэш-строки (64 Б) добавлены 4 Б, поскольку каждое слово в строке дополняется 2 битами тега защищенного режима • Схемы выбраны так, чтобы размер сжатой строки укладывался в ширину шины передачи данных, равной половине размера кэш-строки (34 Б) • Half0 Zero и Half1 Zero – дополнительные схемы, проверяющие кэш-строку на наличие нулевых половин I
Конфликт выдачи пакетов DAT Поскольку пакеты могут отправляться с разных стадий конвейера, возможен конфликт при одновременной отправке двух пакетов D3 D4 D5 DAT1 DAT1 DAT2 ! ! B2N_DAT D3 D4 D5 D3 D4 D5 DAT1 DAT1 DAT2 DAT2 DAT2 X B2N_DAT B2N_DAT Для предотвращения конфликта передача пакета DAT2 на интерфейс задерживается на такт II
Возможности применения Несжатые данные Сжатые данные Сеть-на-кристалле • При большом числе подключенных к сети-на-кристалле абонентов ее пропускная способность ограничивает производительность системы • Компрессия позволит уменьшить размер пакетов данных, передаваемых по сети, повышая тем самым пропускную способность III
Возможности применения Cmpr Dec Data Memory L3 B B B B … Network MC Cmpr Dec … C C C C IV
Вы также можете почитать