Лекция Технология Hyper – Threading План Структурная реализация процессора с Hyper-Threading


Download 48.41 Kb.
Sana22.04.2023
Hajmi48.41 Kb.
#1381475
TuriЛекция

Лекция 7. Технология Hyper – Threading


План



  1. Структурная реализация процессора с Hyper-Threading

  2. Принцип работы технологии Hyper – Threading

  3. Преимущества и недостатки технологии Hyper-Threading

В настоящее время улучшение скорости работы процессоров добиваются путем увеличения тактовой частоты и размеров кэша. Конечно, таким способом можно увеличить производительность, но все же потенциал процессора не будет полностью задействован. Суть технологии Hyper-Threading заключается в одновременном выполнении несколько потоков. Это позволяет использовать процессор куда более эффективно. Конечно, таким способом можно увеличить производительность, но все же потенциал процессора не будет полностью задействован.
Hyper-Threading – это название технологии, существовавшей и ранее вне x86 мира, технологии одновременной многопоточности (Simultaneous Multi-Threading, SMT). Идея этой технологии проста. Один физический процессор представляется операционной системе как два логических процессора, и операционная система не видит разницы между одним SMT процессором или двумя обычными процессорами. В обоих случаях операционная система направляет потоки как на двухпроцессорную систему. Далее все вопросы решаются на аппаратном уровне.

Рис. 7.1. Структура процессора с Hyper-Threading
В процессоре с Hyper-Threading каждый логический процессор имеет свой собственный набор регистров (включая и отдельный счетчик команд) и в ней не реализуется одновременное выполнение инструкций выборки/декодирования в двух потоках. То есть такие инструкции выполняются поочередно. Параллельно же выполняются лишь обычные команды.

Рис. 7.2. Принцип работы двух логических процессоров с Hyper-Threading
Рассмотрим работу двух логических процессоров. С использованием второго целочисленного устройства, единственный конфликт случился только на последней операции. Наш теоретический процессор в чем-то похож на Pentium 4. В нем имеется целых три целочисленных устройства (два ALU и одно медленное целочисленное устройство для циклических сдвигов). А что ещё более важно, оба целочисленных устройства Pentium 4 способны работать с двойной скоростью – выполнять по две микрооперации за такт. А это, в свою очередь, означает, что любое из этих двух целочисленных устройств Pentium 4/Xeon могло выполнить те две операции сложения из разных потоков за один такт.
Используя инструкцию HALT, можно приостановить работу одного из логических процессоров, и тем самым увеличить производительность приложений, которые не выигрывают от Hyper-Threading. Итак, приложение не станет работать медленнее, вместо этого один из логических процессоров будет остановлен, и система будет работать на одном логическом процессоре – производительность будет такой же, что и на однопроцессорных компьютерах. Затем, когда приложение сочтет, что от Hyper-Threading оно выиграет в производительности, второй логический процессор просто возобновит свою работу.
Проблема неполного использования исполнительных устройств связана с несколькими причинами. Процессор не может получать данные с желаемой скоростью (это происходит в результате недостаточной пропускной способности системной шины и шины памяти) и исполнительные устройства будут использоваться не так эффективно. Кроме того, существует ещё одна причина – недостаток параллелизма на уровне инструкций в большинстве потоков выполняемых команд.
По сути, Hyper-Threading реализована аппаратно внутри самого CPU. Есть некоторое количество различных исполняющих блоков (ALU, MMU, FPU, SIMD), и есть два “одновременно” исполняемых фрагмента кода. Специальный блок отслеживает, какие команды из каждого фрагмента необходимо выполнить в данный момент, после чего проверяет, загружены ли работой все исполняющие блоки процессора. Если один из них простаивает, и именно он может исполнить эту команду — ему она и передается.
Естественно, существует и механизм принудительного посыла команды на выполнение — в противном случае один процесс мог бы захватить весь процессор (все исполняющие блоки) и исполнение второго участка кода (исполняемого на втором “виртуальном CPU”) было бы прервано. Данный механизм чередует команды из двух разных цепочек в порядке живой очереди.
Следствие применения технологии Hyper-Threading — повышение коэффициента полезного действия процессора. Действительно — если одна из программ использует в основном целочисленную арифметику, а вторая — выполняет вычисления с плавающей точкой, то во время исполнения первой FPU просто ничего не делает, а во время исполнения второй — наоборот, ничего не делает ALU.
В случае с процессором без Hyper-Threading имеется просто “честное” поочередное выполнение двух программ на одном ядре с арбитром в виде операционной системы, и общее время их работы определяется:

  • временем выполнения кода программы №1

  • временем выполнения кода программы №2

  • временными издержками на переключение между фрагментами кода программ №1 и №2

В случае с Hyper-Threading схема становится немного другой:

  • время выполнения программы №1 на процессоре №1 (виртуальном)

  • время выполнения программы №2 на процессоре №2 (виртуальном)

  • время на переключение одного физического ядра (как набора требуемых обеим программам исполняющих блоков) между двумя эмулируемыми “виртуальными CPU”.

Технология Hyper-Threading с теоретической точки зрения соответствует реалиям сегодняшнего дня. Hyper-Threading позволяет увеличить коэффициент полезного действия процессора в определенных ситуациях. В частности — в ситуациях, когда одновременно исполняются разнородные по характеру приложения. Появление CPU, способного в два раза быстрее делать все то, что делалось ранее это новизна.
“Стиль Hyper-Threading” — это сочетание процессов “развлекательных” или “служебных” с процессами “рабочими”. Пользователь не получит существенного ускорения от CPU с поддержкой этой технологии в большинстве классических многопроцессорных задач, или если по привычке будет запускать только одно приложение в один момент времени. Но имеет место уменьшение времени исполнения многих фоновых задач, исполняемых в качестве “довеска” к обычной работе. Фактически, Intel предложила способ ускорения — но не столько одного какого-то процесса самого по себе, сколько комплекса выполняемых одновременно приложений.


Контрольные вопросы



  1. Каким образом в настоящее время увеличивают производительность процессора?

  2. Как структурно реализуется технология Hyper-Threading?

  3. Принцип работы процессора с Hyper-Threading?

  4. Достоинства и недостатки применения технологии Hyper-Threading

Download 48.41 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling