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
Кэш тоже можно использовать
Разница во времени доступа - показывает где данные
в x86 - clflush который позволяет гарантировать что часть данных не в кэше
и делая cflush можно сказать что данные были в кэше
пример:
time = rdtsc(); // чтение счетчика
maccess(&data[0x300]) //
delta = rdtsc() - time
и можно сказать были ли данные по адресу в кше
Почему же это вообще полезно?
ЧТобы понять - поговорим про предсказание ветвлений
когда цпу выполняет код
может встретится место в виде:
if (raining) { take_umbrella(); } else { do_something_else(); };
и тут два пути для процессора
можно подождать данных
и понять куда пойти
а можно попытаться предсказать куда мы пойдем дальше
и подгрузить данные дальше
процессор переходит в специальный режим - speculation
каждая инструкция анотируется флагом (speculative)
если процессор угадал - он работает быстрее
и если вдруг мы ошиблись и пошли не по той ветке - то происходит сброс данных
если не угадал - то данные удалятся и мы пойдем по другой ветке
и это не замедлит процессор по сравнению со случаем когда мы бы остановились