Jump to content

Кодирование кэша значений

Потребление энергии становится все более важным как для встраиваемых , мобильных компьютеров , так и для высокопроизводительных систем. [ 1 ] Внешняя шина данных потребляет значительную часть мощности системы. Замечено, что внекристальная шина данных потребляет от 9,8% до 23,2% общей мощности. потребляется системой в зависимости от системы. Таким образом, снижение энергопотребления внешней шины данных приведет к снижению общего энергопотребления.

Введение

[ редактировать ]

[ 2 ] Внечиповые шины связаны с более высокими значениями емкости внутренних узлов и, следовательно, с методами минимизации переключение по внешним шинам адреса и данных, даже за счет небольшого увеличения переключения по внутренним емкостям, весьма полезно. Потребление энергии вне кристалла можно снизить, по крайней мере, с помощью этих двух методов: за счет уменьшения количества линий шины, активируемых во время передачи данных , и за счет уменьшения количества битовых переходов на активных линиях шины. Сочетание обоих этих методов дает оптимальный результат.
Кодирование кэша значений — это схема, которая используется для снижения энергопотребления на внешней шине данных. В этой схеме кэш на обеих сторонах шины данных используется для уменьшения динамического рассеивания мощности на внешних шинах данных. Эти кэши поддерживаются таким образом, что их содержимое всегда одинаково.

Детали схемы

[ редактировать ]

В этом протоколе мы используем небольшой кэш (называемый кэшем значений или сокращенно VC) на каждой стороне внешней шины данных. Эти кэши значений отслеживают значения данных, которые недавно были переданы по шине. Записи в этих кэшах построены таким образом, что содержимое обоих кэшей значений всегда одинаково. Когда значение данных необходимо передать по шине, мы сначала проверяем, находится ли оно в кеше значений отправителя ( в памяти или в кеше). Если это так, мы передаем только индекс данных (т. е. адрес или индекс их кэша значений) вместо фактического значения данных, и другая сторона (получатель) может определить значение данных, используя этот индекс и его кэш значений. .
Для передачи данных в кэше значений с использованием только 1-битной коммутации размер кэша значений ограничен шириной шины данных. То есть при 32-битной шине в ВК могло быть всего 32 записи. Поскольку кэши значений, используемые нашим протоколом питания, очень малы, ширина значения индекса намного меньше ширины фактического значения данных. Следовательно, для передачи необходимо активировать меньше внешних шинных линий.
Наш подход пытается реализовать первый вариант, используя локальность значений данных, передаваемых по внешней шине данных. Однако как только ширина данных (которые необходимо передать) будет уменьшена, мы также можем ожидать снижения (в целом) средней активности переключения битов за передачу. Кроме того, эту коммутационную активность можно еще больше снизить за счет использования известных схем кодирования шины в сочетании с нашей стратегией.

Согласованность кэша

[ редактировать ]

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

Мы предполагаем, что изначально значения 100 и 200 отсутствуют в VC. Во время транзакции №1 A отправляется из памяти в кеш. Запрошенный элемент данных, хранящийся по некоторому адресу (скажем, адресу X памяти), имеет значение 100. Контроллер памяти ищет в VC значение 100 и обнаруживает промах. Поэтому значение 100 отправляется по внешней шине данных. Кроме того, согласно нашему протоколу питания, значение 100 сохраняется в одном и том же месте (скажем, 5) виртуальных виртуальных машин как источника, так и назначения. Для транзакции №2 контроллер памяти ищет значение 200, не может найти это значение в виртуальном пространстве и повторяет шаги, описанные выше. На этом этапе кэши значений на обоих концах содержат значения данных 100 и 200. В транзакции №3 контроллер памяти обнаруживает, что значение 100 должно быть отправлено для обслуживания запроса на чтение (из той же ячейки памяти, что и раньше, или другая ячейка памяти с тем же значением). Но обратите внимание, что значение 100 уже присутствует в виртуальном канале отправителя в ячейке 5 в результате транзакции №1. Таким образом, вместо отправки значения 100 контроллер памяти просто отправляет значение индекса 5. С другой стороны, получатель извлекает значение фактических данных (в данном случае 100) из местоположения 5 своего VC. Наконец, в транзакции №4 мы хотим отправить в память элемент данных D, имеющий значение 200 (т. е. запрос на запись). Но значение 200 уже кэшировано в обоих виртуальных каналах в результате транзакции №2 из памяти в кэш. Следовательно, индекс кэшированной копии (присутствующей в VC) значения 200 используется для завершения транзакции № 4, но в обратном направлении. Эта последняя транзакция показывает, что данные, помещенные в VC во время транзакции в одном направлении, могут быть повторно использованы (из VC) во время транзакции в обратном направлении.

Политика замены

[ редактировать ]

[ 3 ] LRU используется в качестве политики замены в обоих кэшах. Это реализуется с использованием опорного бита и n-битной отметки времени для каждого значения, хранящегося в кеше. Когда на входе появляется значение, устанавливается опорный бит. Через регулярные промежутки времени опорный бит сдвигается вправо в позицию старшего бита n-битной метки времени, в результате чего все биты в метке времени также смещаются вправо, а младший бит в метке времени отбрасывается. Например, отметка времени 000 означает, что это значение не появлялось в течение последних трех интервалов времени, отметка времени 100 означает, что оно было замечено только в последнем интервале, а отметка времени 000 с установленным эталонным битом означает, что оно встречается в текущем временном интервале.
Вышеупомянутая операция выполняется над всеми записями обоих кэшей со сбросом всех опорных битов. Таким образом, timestamp хранит историю появления значений за последние n периодов времени.
Если требуется запись и необходимо удалить значение, выбирается запись с наименьшей меткой времени и чистым ссылочным битом. Новое значение вводится с новым опорным битом и меткой времени (все 0) в этой выбранной записи.

Тип кэша значений

[ редактировать ]

После описания протокола мы теперь увидим два подхода к поддержанию кеша:

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

определение часто встречающихся значений на лету.

Другое применение

[ редактировать ]

Обсуждаемый нами протокол применялся к шине, один конец которой представляет собой встроенный кэш, а другой конец — внекристальную память . Можно адаптировать нашу стратегию и для работы с внешним кэшем L2. Кроме того, протокол питания также можно использовать для уменьшения активности переключения между встроенным кэшем L1 и встроенным кэшем L2 (хотя результаты будут не такими хорошими, как при использовании внешней шины). Фактически нашу стратегию можно использовать между любыми двумя взаимодействующими устройствами в системе (с поддержкой VC). Кроме того, мы не ограничены конфигурациями типа «точка-точка». То есть наш подход можно заставить работать в среде, где несколько устройств обмениваются данными через общую (энергоемкую) шину данных.
Очевидно, что в этом случае, помимо всего прочего, нам понадобится механизм когерентности (обсуждение которого выходит за рамки данной статьи). Недостатком нашей стратегии является дополнительное пространство, необходимое для двух кэшей значений (один внутри кристалла, а другой вне кристалла). В этой статье мы не представляем подробное исследование последствий нашего подхода для пространства схем. Как будет показано в разделе экспериментальных результатов, даже небольшой VC (128 записей) генерирует достаточно хорошее энергетическое поведение; поэтому мы можем ожидать, что накладные расходы на пространство из-за нашей оптимизации не будут чрезмерными.

См. также

[ редактировать ]
  1. ^ Протокол питания: снижение рассеиваемой мощности на внекристальных шинах данных https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1176262
  2. ^ Динеш С. Суреш; Банит Агравал; Цзюнь Ян; Валид Наджар (28 июня 2005 г.). «Настраиваемый кодировщик шины для внекристальных шин данных» (PDF) . Проверено 22 апреля 2015 г.
  3. ^ Цзюнь Ян; Гупта, Р. (2001). «Кодирование FV для ввода-вывода данных с низким энергопотреблением». ISLPED'01: Материалы Международного симпозиума по маломощной электронике и дизайну 2001 г. (каталожный номер IEEE 01TH8581) . ИИЭЭ . стр. 84–87. дои : 10.1109/LPE.2001.945379 . ISBN  1-58113-371-5 . S2CID   9582140 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 0149e414f78069fb6fa097e41b7105c1__1722362100
URL1:https://arc.ask3.ru/arc/aa/01/c1/0149e414f78069fb6fa097e41b7105c1.html
Заголовок, (Title) документа по адресу, URL1:
Value cache encoding - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)