Hyper-Threading Технология - это форма одновременного многопоточности технологии, внедренной Intel.
Эти ресурсы включают механизм выполнения, кеши и системную шину интерфейс; совместное использование ресурсов позволяет двум логическим процессорамработать друг с другом более эффективно и позволяет процессор для заимствования ресурсов у другого.
В процессоре Intel с поддержкой Hyper-Threading один процессорный ядро (с несколькими ALU) может выполнять инструкции из 2 потоков на одинаковых часах. И оба потока разделяют: store-buffer, кеши L1/L2 и системная шина.
Но если два потока выполняются одновременно на одном ядре, thread-1 хранит атомное значение, а thread-2 загружает это значение, что будет использоваться для этого обмена: общий буфер хранения, общий кэш L1/L2 или обычный кэш L3
Что произойдет, если оба потока из одного и того же процесса (одно и то же виртуальное адресное пространство) и если из двух разных процессов (различного виртуального адресного пространства)?
Sandy Bridge Intel CPU - кеш L1:
- 32 КБ - размер кеша
- 64 B - размер строки кеша
- 512 строк (512 = 32 КБ /64 Б)
- 8-полосная
- 64 - количество наборов путей (64 = 512 строк /8-way)
- 6 бит [11: 6] - виртуального адреса (индекса) определяет текущее заданное число (это тег)
- 4 K - каждый один и тот же (виртуальный адрес /4 K) конкурирует за один и тот же набор (32 КБ /8-way)
-
низкий 12 бит - значительный для определения текущего установленного числа
-
4 КБ - стандартный размер страницы
- низкий 12 бит - то же самое в виртуальных и физических адресах для каждого адреса