Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Вычисления в режиме опережения игнорируются процессором; тем не менее, разведка обеспечивает ускорение, поскольку увеличивается параллелизм на уровне памяти (MLP). Строки кэша, внесенные в иерархию кеша, часто снова используются процессором, когда он переключается обратно в нормальный режим.

Разведчик каменного процессора [ править ]

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

Скаутинг против SMT [ править ]

И разведка, и одновременная многопоточность (SMT) используют аппаратные потоки для борьбы с стеной памяти . При разведке поток разведки выполняет инструкции из того же потока инструкций, что и инструкция, которая вызывает остановку конвейера. В случае SMT поток SMT выполняет инструкцию в другом контексте.

Таким образом, SMT увеличивает пропускную способность процессора, в то время как разведка увеличивает производительность за счет снижения количества промахов кеша.

См. Также [ править ]

Ссылки [ править ]