Some random GrafanCon EU 2k18 Notes – Telegram
Some random GrafanCon EU 2k18 Notes
73 subscribers
312 photos
9 files
54 links
Заметки по докладам на которые я пошел (начинаются с #talk) и флуд фоточками.

Связаться с автором можно так: @Civiloid
Download Telegram
Почему же это вообще полезно?
ЧТобы понять - поговорим про предсказание ветвлений
когда цпу выполняет код
может встретится место в виде:
if (raining) { take_umbrella(); } else { do_something_else(); };
и тут два пути для процессора
можно подождать данных
и понять куда пойти
а можно попытаться предсказать куда мы пойдем дальше
и подгрузить данные дальше
процессор переходит в специальный режим - speculation
каждая инструкция анотируется флагом (speculative)
если процессор угадал - он работает быстрее
и если вдруг мы ошиблись и пошли не по той ветке - то происходит сброс данных
если не угадал - то данные удалятся и мы пойдем по другой ветке
и это не замедлит процессор по сравнению со случаем когда мы бы остановились
если мы выполним невилидные инструкции - то ничего не случится пока не поймем в какую втеку попали
Предполагается что из кода программы не узнать было ли предсказание успешным или нет
Предсказатель ветвлений так или иначе записывает историю
ер если мы встретили 10 раз условие true значит в 11ый вероятно будет true
в некоторых случаях даже может быть предсказатель закончится ли цикл
чтобы не хранить полный адрес каждого ветвлений - хранится только часть