рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Hyper-Threading зачем она нужна

Работа сделанна в 2002 году

Hyper-Threading зачем она нужна - Реферат, раздел Связь, - 2002 год - Intel Pentium 4 3,06 ГГц с поддержкой технологии Hyper-Threading Hyper-Threading Зачем Она Нужна. Компания Intel, Если Внимательно Посмотреть,...

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

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

И еще чтобы ее просто не было у других. Так было с Pentium, когда Intel противопоставила весьма производительному в целочисленных операциях AMD Am5x86 мощный FPU. Так было с Pentium II, который получил широкую шину и быстрый кэш второго уровня, благодаря чему за ним так и не смогли угнаться все процессоры Socket 7. Так было и с Pentium 4, который противопоставил всем остальным наличие поддержки SSE2 и быстрый рост частоты и тоже де-факто выиграл.

Сейчас Intel предлагает Hyper-Threading. Я думаю, что стоит задуматься почему производитель, известный грамотностью своих инженеров ни слова про маркетологов и громадными суммами, которые он тратит на исследования, предлагает эту технологию. Объявить Hyper-Threading очередной маркетинговой штучкой, конечно, проще простого. Однако не стоит забывать, что это технология, она требует исследований, денег на разработку, времени, сил. Не проще ли было нанять за меньшую сумму еще одну сотню PR-менеджеров или сделать еще десяток красивых рекламных роликов Видимо, не проще.

А значит, что-то в этом есть. Следует попытаться понять даже не то, что получилось в результате, а то, чем руководствовались разработчики IAG Intel Architecture Group, когда принимали решение разрабатывать эту интересную мысль дальше, или отложить на потом. Как ни странно, для того чтобы понять как функционирует Hyper-Threading, вполне достаточно понимать как работает любая многозадачная операционная система.

И действительно ведь исполняет же каким-то образом один процессор сразу десятки задач Этот секрет всем уже давно известен на самом деле, конечно одновременно все равно выполняется только одна на однопроцессорной системе задача, просто переключение между кусками кода разных задач выполняется настолько быстро, что создается иллюзия одновременной работы большого количества приложений. По сути, Hyper-Threading предлагает то же самое, но реализована аппаратно, внутри самого CPU. Есть некоторое количество различных исполняющих блоков ALU, MMU, FPU, SIMD, и есть два одновременно исполняемых фрагмента кода. Специальный блок отслеживает, какие команды из каждого фрагмента необходимо выполнить в данный момент, после чего проверяет, загружены ли работой все исполняющие блоки процессора.

Если один из них простаивает, и именно он может исполнить эту команду ему она и передается. Естественно, существует и механизм принудительного посыла команды на выполнение в противном случае один процесс мог бы захватить весь процессор все исполняющие блоки и исполнение второго участка кода исполняемого на втором виртуальном CPU было бы прервано.

Данный механизм пока не является интеллектуальным т. е. не способен оперировать различными приоритетами, а просто чередует команды из двух разных цепочек в порядке живой очереди. Если, конечно, не возникает ситуации, когда команды одной цепочки по исполняющим блокам нигде не конкурируют с командами другой.

В этом случае получается действительно на 100 параллельное исполнение двух фрагментов кода. Самое очевидное следствие применения технологии Hyper-Threading повышение коэффициента полезного действия процессора. Действительно если одна из программ использует в основном целочисленную арифметику, а вторая выполняет вычисления с плавающей точкой, то во время исполнения первой FPU просто ничего не делает, а во время исполнения второй наоборот, ничего не делает ALU. Казалось бы, на этом можно закончить.

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

Также одним из серьезнейших неприятных моментов является то, что Pentium 4 приходится иметь дело с классическим x86-кодом, в котором активно используется прямое адресование ячеек и даже целых массивов, находящихся за пределами процессора в ОЗУ. Да и вообще большинство обрабатываемых данных чаще всего находится там. Поэтому делить между собой виртуальные CPU будут не только регистры, но и общую для обоих процессорную шину, минуя которую данные в CPU попасть просто не могут.

Однако тут есть один тонкий момент на сегодняшний день честные двухпроцессорные системы на Pentium III и Xeon находятся в точно такой же ситуации Потому что шина AGTL, доставшаяся в наследство всем сегодняшним процессорам Intel от знаменитого Pentium Pro в дальнейшем ее лишь подвергали модификациям, но идеологию практически не трогали всего одна, сколько бы CPU ни было установлено в системе.

Отойти от этой схемы на x86 попробовала только AMD со своим Athlon MP у AMD 760MP760MPX от каждого процессора к северному мосту чипсета идет отдельная шина. Впрочем, даже в таком варианте проблема отодвигается не очень далеко так как шина памяти точно одна причем вот в этом случае уже везде.

Но и даже из этого в общем-то не очень приятного момента Hyper-Threading может помочь извлечь какую-то пользу.

Дело в том, что по идее должен будет наблюдаться существенный прирост производительности не только в случае с несколькими задачами, использующими разные функциональные блоки процессора, но и в том случае, если задачи по-разному работают с данными, находящимися в ОЗУ. Если одно приложение что-то усиленно считает внутри себя, другое же постоянно подкачивает данные из ОЗУ, то общее время выполнения их в случае использования Hyper-Threading по идее должно уменьшиться даже если они используют одинаковые блоки исполнения инструкций хотя бы потому, что команды на чтение данных из памяти смогут обрабатываться в то время, пока наше первое приложение будет что-то считать. 5.

– Конец работы –

Эта тема принадлежит разделу:

Intel Pentium 4 3,06 ГГц с поддержкой технологии Hyper-Threading

Однако кто-то может вполне резонно поинтересоваться А зачем мне двухпроцессорная машина дома И действительно зачем Именно это я и постарался… Что это дает В общем-то ничего. Потому что в дополнение к этому нужна еще и операционная система, умеющая задействовать эти два процессора. Эта…

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Hyper-Threading зачем она нужна

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

SMP и Hyper-Threading
SMP и Hyper-Threading. Как работает классическая SMPSymmetric Multi-Processor - система с точки зрения обычной логики Не так уж велико количество пользователей, хорошо себе представляющих как работ

Hyper-Threading совместимость
Hyper-Threading совместимость. Кроме того, возвращаясь к вещам практическим и приземленным, хотелось бы затронуть еще один немаловажный аспект не все ОС, даже поддерживающие многопроцессорность, мо

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги