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

Содержание.

Вступление. *

Необходимость применения Hyper-Threading. *

Совместимость технологии Hyper-Threading. *

Заключение. *

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

Вступление.

Совсем не так уж и давно вышел Pentium 4 2,8 ГГц, однако, компания Intel изобрела новое процессорное ядро, способное к постоянному «разгону».

От предыдущей типовой модели рассматриваемый нами процессор отличается не только более высокой частотой (больше предыдущего на мегагерц). На данном процессоре компанией Intel применяется технология эмуляции двух процессоров на одном процессорном ядре, доступная раньше лишь на сверх дорогих Xeon.

Радует и тот факт, что на всех последующие моделях Pentium 4, начиная с рассматриваемого, будет применятся такая технология, как Hyper-Threading.

Фактически технология Hyper-Threading — это многопроцессорность, только виртуальная. Ибо процессор Pentium 4 на самом деле один, а операционная система процессоров видит два.

К обыкновенному однопроцессорному процессору добавили еще один блок AS — IA-32 Architectural State. В общем-то его назначение заключается в том, что он содержит состояние регистров (общего назначения, управляющих, APIC, служебных). Фактически, AS#1 плюс единственное физическое ядро (блоки предсказания ветвлений, ALU, FPU, SIMD-блоки и пр.) представляет из себя один логический процессор (LP1), а AS#2 плюс все то же физическое ядро — второй логический процессор (LP2).

У каждого LP есть свой собственный контроллер прерываний (APIC — Advanced Programmable Interrupt Controller) и набор регистров. Для корректного использования регистров двумя LP существует специальная таблица — RAT (Register Alias Table), согласно данным в которой можно установить соответствие между регистрами общего назначения физического CPU. RAT у каждого LP своя. В результате получается схема, при которой на одном и том же ядре могут свободно выполняться два независимых фрагмента кода т. е. де-факто — многопроцессорную систему!

Теперь разберемся с тем, как работает классическая система Symmetric Multi-Processor (SMP). Но для начала отметим, что поддержкой данной технологии могут обладать не все операционные системы.

Все ОС компании Microsoft обладают поддержкой данной технологии. Также данной поддержкой обладают все ОС, основанные на идеологии Unix — всевозможные Free- Net- BSD, коммерческие Unix (такие как Solaris, HP-UX, AIX), и многочисленные разновидности Linux.

Если в данный момент времени исполняется одно приложение — то все ресурсы одного процессора будут отданы ему, второй же будет просто простаивать. Если приложений стало два — второе будет отдано на исполнение второму CPU, так что по идее скорость выполнения первого не должна уменьшиться, но на самом деле все сложнее.

Исполняемое пользовательское приложение может быть запущено всего одно, но количество процессов (т. е. фрагментов машинного кода, предназначенных для выполнения некой задачи) в многозадачной ОС всегда намного больше. Поэтому на самом деле второй CPU способен немного «помочь» даже одиночной задаче, взяв на себя обслуживание процессов, порожденных операционной системой.

Сначала отметим, что поток отличается от процесса только двумя вещами — он во-первых никогда не порождается пользователем (процесс может запустить как система, так и человек, в последнем случае процесс = приложение; появление потока инициируется исключительно запущенным процессом), и во-вторых — поток выгружается вместе с родительским процессом независимо от своего желания.

Во время работы даже одно приложение может порождать потоки, которые при наличии нескольких CPU могут исполняться на них по отдельности. Так, например, поступают почти все программы рендеринга — они специально писались с учетом возможности работы на многопроцессорных системах. Поэтому в случае использования потоков выигрыш от SMP иногда довольно весом даже в «однозадачной» ситуации.

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