Гиперпоточность на аппаратном уровне

Итак, в этом семестре у меня есть предмет по операционным системам, и я еще не так много понимаю в Hyper threading. Я искал в Интернете, но то, что я нашел, почти одно и то же (я не знаю, искал ли я неправильные термины).

Вот источники, которые я нашел:

https://www.dasher.com/will-hyper-threading-improve-processing-performance/;

Сравнение производительности гиперпоточности;

Почему гиперпоточность приносит пользу моему алгоритму?;


Но мой вопрос не о HT на разных языках или о том, как я могу анализировать с/без, а как это было реализовано на аппаратном уровне.

Как HT взаимодействует с основной памятью (ALU, регистры..), кешем и другими устройствами. Где я могу найти что-нибудь об этом?

И, наконец, я хочу сравнить HT с параллельными процессами. Как параллелизм использует гиперпоточность?


Итак, ребята, если вы знаете о книге или сайте, которые могут мне помочь, поделитесь здесь.

Спасибо,


person Gabriel Castro Fernandes    schedule 10.04.2016    source источник


Ответы (1)


Современная гиперпоточность реализована очень умно.

Подумайте о двухъядерном процессоре на несколько минут. Он имеет два ядра, каждое из которых имеет регистры, кэши с механизмами доступа к памяти и набор исполнительных блоков для выполнения различных операций с целыми числами, с плавающей запятой и управления.

Теперь представьте, что вместо того, чтобы каждое ядро ​​имело собственный набор исполнительных модулей, два ядра просто используют один общий пул исполнительных модулей. Любое ядро ​​может использовать, скажем, множитель с плавающей запятой, если другое ядро ​​не использует тот же исполнительный блок. Если одному ядру нужен исполнительный модуль, который используется другим ядром, ему придется ждать, как если бы этот исполнительный модуль использовался перекрывающейся инструкцией, выполняемой тем же потоком.

person David Schwartz    schedule 11.04.2016