Аппаратная многопоточностьУвеличение использования процессора за счет переключения на другой поток, когда один поток остановлен.
НитьПоток включает в себя программный счетчик, состояние регистра и стек. Это легкий процесс; в то время как потоки обычно используют одно адресное пространство, процессы — нет.
ПроцессПроцесс включает один или несколько потоков, адресное пространство и состояние операционной системы.
Существует три основных подхода к аппаратной многопоточности.
Мелкозернистая многопоточность
Крупнозернистая многопоточность
Одновременная многопоточность
Мелкозернистая многопоточность
Мелкозернистая многопоточностьпереключается между потоками для каждой инструкции, что приводит к чередующемуся выполнению нескольких потоков.
Это чередование часто выполняется в циклическом режиме, пропуская любые потоки, остановившиеся на этом тактовом цикле.
Чтобы сделать мелкозернистую многопоточность практичной, процессор должен иметь возможность переключать потоки в каждом такте. Преимущество
Это может скрыть потери пропускной способности, возникающие как из-за коротких, так и из-за длинных простоев, поскольку инструкции из других потоков могут выполняться, когда один поток останавливается.
Недостаток
Это замедляет выполнение отдельных потоков, поскольку поток, готовый к выполнению без остановок, будет задержан инструкциями других потоков.
Крупнозернистая многопоточность
Крупнозернистая многопоточность переключает потоки только в случае дорогостоящих простоев, таких как промахи кэша последнего уровня.
Преимущество:
Устраняет необходимость быстрого переключения потоков.
Не замедляет выполнение отдельных потоков, поскольку инструкции из других потоков будут выдаваться только тогда, когда поток сталкивается с дорогостоящей остановкой.
Do'stlaringiz bilan baham: |