Лекция Технология Hyper – Threading План Структурная реализация процессора с Hyper-Threading
Download 48.41 Kb.
|
- Bu sahifa navigatsiya:
- Контрольные вопросы
Лекция 7. Технология Hyper – Threading План Структурная реализация процессора с Hyper-Threading Принцип работы технологии Hyper – Threading Преимущества и недостатки технологии 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 предложила способ ускорения — но не столько одного какого-то процесса самого по себе, сколько комплекса выполняемых одновременно приложений. Контрольные вопросы Каким образом в настоящее время увеличивают производительность процессора? Как структурно реализуется технология Hyper-Threading? Принцип работы процессора с Hyper-Threading? Достоинства и недостатки применения технологии Hyper-Threading Download 48.41 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling