Найти в Дзене
Данил Волокитин

Дополнительные и настраиваемые режимы во время выполнения (2.2)

Кодировщик трассировки команд может поддерживать несколько режимов отслеживания. Чтобы убедиться, что декодер правильно обрабатывает входящие пакеты, ему необходимо сообщить о текущей активной конфигурации. Конфигурация сообщается пакетом, который выдаётся кодировщиком при каждом изменении конфигурации кодировщика. Вот распространенные примеры таких режимов:
1) Режим дельта-адреса: разрывы счётчика программ кодируются как разности, а не как абсолютные значения адреса.
2) Режим полного адреса: прерывания счетчика программ кодируются как абсолютные значения адреса.
3) Режим полного адреса: прерывания счетчика программ кодируются как абсолютные значения адреса. Режим неявного исключения: предполагается, что адрес назначения исключения (т.е адрес ловушки исключения) известен декодеру и, следовательно, не закодирован в трассировке.
4) Последовательно выводимый режим перехода: цель косвенного перехода может быть определена путем рассмотрения комбинированного эффекта двух команд.
5

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

Вот распространенные примеры таких режимов:
1) Режим дельта-адреса: разрывы счётчика программ кодируются как разности, а не как абсолютные значения адреса.
2) Режим полного адреса: прерывания счетчика программ кодируются как абсолютные значения адреса.
3) Режим полного адреса: прерывания счетчика программ кодируются как абсолютные значения адреса. Режим неявного исключения: предполагается, что адрес назначения исключения (т.е адрес ловушки исключения) известен декодеру и, следовательно, не закодирован в трассировке.
4) Последовательно выводимый режим перехода: цель косвенного перехода может быть определена путем рассмотрения комбинированного эффекта двух команд.
5) Неявный режим возврата: адрес назначения возвращаемых вызовов функций выводится из стека вызовов и, следовательно, не кодируется в трассировке
6) Режим предсказания ветвей: ветви, которые правильно предсказаны предсказателем ветвей кодера (и идентичной копией в декодере), кодируются не как принятые/не принятые, а как более эффективное количество ветвей
7) Режим кэша цели перехода: вместо того, чтобы сообщать адрес непереводимой цели перехода, эффективность можно повысить, кэшируя последние цели перехода и сообщая вместо этого индекс записи в кэше.

Все режимы являются необязательными, кроме режима дельта-адреса, который должен поддерживаться.