Size: a a a

Maxwell's Demons

2021 October 03

VS

Vadim S in Maxwell's Demons
Спасибо... Лишь бы оно просто не загнулось... А потенциальные тормоза будут видны заранее.. и можно принять меры
источник

VS

Vadim S in Maxwell's Demons
Опасно, это когда неожиданности вылазят..
источник

DB

Denis Barinov in Maxwell's Demons
И в стм есть предсказания?
источник

A

Alex in Maxwell's Demons
У некоторых ядер и только на один шаг
источник

a

aum in Maxwell's Demons
Для M3 арм пишет про 3

Branch forwarding loses a fetch opportunity if speculated on a conditional opcode, but is mitigated by a three-entry fetch queue....

The performance of the core with ICODE registered with prefetch is effectively the same as the core without the branch forwarding interface, around 10% slower.

https://developer.arm.com/documentation/ddi0337/e/Introduction/Branch-target-forwarding
источник

В

Василий in Maxwell's Demons
Так это доугое
источник

В

Василий in Maxwell's Demons
Префетч
источник

В

Василий in Maxwell's Demons
источник

МК

Михаил Кайдаров... in Maxwell's Demons
Как таковых нет, но есть конвеер. И условный переход чреват тем, что проц будешь дешифрировать команды сразу после перехода, которые могут не выполниться. И тогда будет задержка связанная с полной очисткой конвеера
источник

МК

Михаил Кайдаров... in Maxwell's Demons
Поэтому есть определенный способ помочь компилятору с указанием наиболее вероятных результатов вычислений в if
источник

DB

Denis Barinov in Maxwell's Demons
а если не помогать компилятору?
источник

МК

Михаил Кайдаров... in Maxwell's Demons
Переслано от Михаил Кайдаров...
#define likely(x) __builtin_expect((x), 1)
#define unlikely(x) __builtin_expect((x), 0)
источник

TK

Timur Khasanshin in Maxwell's Demons
В 20ке вроде это стало частью языка
источник

МК

Михаил Кайдаров... in Maxwell's Demons
Тогда он расставит участки кода по своему усмотрению
источник

DB

Denis Barinov in Maxwell's Demons
но код то выполнится
источник

МК

Михаил Кайдаров... in Maxwell's Demons
Ползоваться так
источник

МК

Михаил Кайдаров... in Maxwell's Demons
if (likely(cond)){вероятное событие}else{маловероятное}
источник

МК

Михаил Кайдаров... in Maxwell's Demons
Ну так и положено ему выполниться. Если программа того требует
источник

DB

Denis Barinov in Maxwell's Demons
ну и на том спасибо
источник

a

aum in Maxwell's Demons
PC указывает на инструкцию в ифе.
иф не срабатывает, PC приходится переставлять и заново выборку делать.
Так ведь?
ARM10 дополнительно как пишут имеет предсказание
источник