The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Серьёзное снижение производительности ядра 5.19, вызванное з..."
Отправлено erthink, 13-Сен-22 20:18 
>[оверквотинг удален]
> +; Переход никогда не происходит. Предотвращает предсказания следующего
> +; косвенного перехода, во многих случаях некорректные.
> + jc .stop
>   lea rax, [rax + vm_base + vm_base_lbl - execute_instruction]
>   next_opcode
>   jmp rax
> - ud2
> +.stop: ud2
>

> Здесь промахов нет, но обратите внимание - всего одна инструкция за такт,

Всё примерно верно, но только иначе.

Базовый паттерн goto jump_table[*bytecode_ip++], соответственно out-of-order процессор может "узнать" адрес перехода еще до реального выполнения инструкций перед goto.
Условных переходов тут нет (можно избавиться), поэтому предсказывать нечего.

Если же инструкция байткода соответствует условному переходу, то вот тогда может участвовать предсказатель.
И у всех современных ЦПУ он будет работать и верно предсказывать переходы в случае циклов в байткоде.

Сложно возникают только если в байткоде есть цикл, а внутри него оператор if, которые реализуются через один опкод, но в актуальном коде работают в разных плечах.
Тогда просто предсказатель начинает путаться, но штеудовский во многих случаях умеет подстраиваться (работает по принципу электронной гадалки).

Как-то так.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру