Re[7]: Эльбрус - 8 ядер
От: Cyberax Марс  
Дата: 03.06.17 21:56
Оценка: 1 (1)
Здравствуйте, Kernighan, Вы писали:

C>>Современные Intel'ы внутри так и работают — предсказатель переходов, по сути, и есть "перекомпиляция на лету". Туда ещё добавляется и спекулятивное исполнение, когда CPU одновременно исполняет обе ветки if'а до тех пор, пока точно не станет известен результат сравнения.

K>Неправильно!
K>CPU всегда исполняет ОДНУ ветку. Ту, которую он считает более вероятной.
Это так обычный предсказатель переходов работает. А современные Intel именно что исполняют обе ветки, хотя предсказанная ветка пойдёт дальше.

K>А если не угадал, то откатывает результаты.

K>Достаточно подумать пять минут, чтобы понять, почему это лучше.
Проблема тут в том, что при неправильном предсказании CPU должен будет переделать всю работу. В случае параллельного исполнения одна ветка просто будет отброшена.

Минус в том, что глубина предсказания ограничена (на практике одним уровнем) и требуется больше ALU на выполнение ненужных операций (которые можно было бы израсходовать на ещё одно ядро).
Sapienti sat!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.