Эволюция технического прогрессаТехнические данные Архитектура  Pentium 4МоделированиеЭто интересно  узнать 

           


Общая структура Pentium 4 
Гиперконвейерная технология 
Технология 
Реализация систем на базе  Pentium 4 
Технология Hyper-Threading

Вернуться на главную страницу

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

 В ноябре 2002г. корпорация Intel выпустила процессор Pentium 4 с частотой 3,06 ГГц, оснащенный технологией Hyper-Threading, которая превращает персональный компьютер с одним физическим процессором в систему с двумя логическими процессорами, работающими во многом независимо друг от друга. Технология превращения однопроцессорного ПК в фактически двухпроцессорную машину (именно так она и видится операционными системами) как нельзя лучше подходит для использования ПК в качестве рабочей станции.

 

Hyper-Threading - это многопроцессорность, только… виртуальная, так как процессор Pentium 4 на самом деле один, а процессоров ОС видит — два...

Итак, классическому «одноядерному» процессору добавили еще один блок AS — IA-32 Architectural State. 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 своя. В результате получается схема, при которой на одном и том же ядре могут свободно выполняться два независимых фрагмента кода.Новые элементы процессорного ядра:

Специальный блок отслеживает, какие команды из каждого фрагмента необходимо выполнить в данный момент, после чего проверяет, загружены ли работой все исполняющие блоки процессора. Если один из них простаивает, и именно он может исполнить эту команду — ему она и передается. Естественно, существует и механизм принудительного «посыла» команды на выполнение — в противном случае один процесс мог бы захватить весь процессор (все исполняющие блоки) и исполнение второго участка кода (исполняемого на втором «виртуальном CPU») было бы прервано.Этот механизм не является интеллектуальным т. е. не способен оперировать различными приоритетами, а просто чередует команды из двух разных цепочек в порядке живой очереди т. е. просто по принципу «я твою команду исполнил — теперь уступи место другому потоку». Если, конечно, не возникает ситуации, когда команды одной цепочки по исполняющим блокам нигде не конкурируют с командами другой. В этом случае мы получаем действительно на 100% параллельное исполнение двух фрагментов кода.

matalplate_hot.gif  Hyper-Threading: совместимость

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

Кроме ОС, BIOS и электроники платы, с технологией Hyper-Threading должен быть совместим еще и чипсет (с поддержкой 533 МГц FSB: i850E, i845E, i845PE/GE).

matalplate_cool.gif

Одна из целей реализации Hyper-Threading -- при наличии только одного активного потока позволить ему выполняться с тем же быстродействием, как и на обычном CPU. Для этого у процессора предусмотрены два основных режима работы: Single-Task (ST) и Multi-Task (MT). В режиме ST активным является только один логический процессор, который безраздельно пользуется доступными ресурсами (режимы ST0 и ST1); другой LP остановлен командой HALT. При появлении второго программного потока бездействовавший логический процессор активируется (посредством прерывания), и физический CPU переводится в режим MT. Останов неиспользуемых LP командой HALT возложен на операционную систему, которая в итоге и отвечает за такое же быстрое выполнение одного потока, как и в случае без Hyper-Threading.

При работе двух потоков поддерживаются два соответствующих набора Next Instruction Pointers. Большая часть инструкций берется из Trace Cache (TC), где они хранятся в декодированном виде, и доступ к TC два активных LP получают поочередно, через такт. В то же время, когда активен только один LP, он получает монопольный доступ к TC без чередования по тактам. Аналогичным же образом происходит и доступ к Microcode ROM. Блоки ITLB (Instruction Translation Look-aside Buffer), задействующиеся при отсутствии необходимых инструкций в кэше команд, дублируются и доставляют команды каждый для своего потока. Блок декодирования инструкций IA-32 Instruction Decode является разделяемым и в случае, когда требуется декодирование инструкций для обоих потоков, обслуживает их поочередно (через такт). Блоки Uop Queue и Allocator разделяются надвое, отводя по половине элементов для каждого LP. Schedulers числом 5 штук обрабатывают очереди декодированных команд (Uops) несмотря на принадлежность к LP0/LP1 и направляют команды на выполнение нужным Execution Units -- в зависимости от готовности к выполнению первых и доступности вторых. Кэши всех уровней являются полностью разделяемыми между двумя LP, однако для обеспечения целостности данных записи в DTLB (Data Translation Look-aside Buffer) снабжаются дескрипторами в виде ID логических процессоров.

 

   Основным достоинством Hyper-Threading является повышение коэффициента полезного действия процессора.

Итак, 14 ноября 2002 года, компания Intel официально анонсировала свой очередной процессор в семействе Pentium 4, Intel Pentium 4 3.06 ГГц. Этот процессор является первым CPU в семействе, поддерживающем технологию Hyper-Threading, и имеет следующие характеристики:

  • Частота ядра – 3066 МГц, частота шины Quad Pumped Bus - 533 МГц, коэффициент умножения – 23x.
  • Размер кеша первого уровня: 8 Кбайт – для данных, 12 Кбайт – для инструкций. Размер кеша второго уровня – 512 Кбайт.
  • Процессорное ядро Northwood. Технология производства – 0.13 мкм с использованием медных соединений.
  • Номинальное напряжение питания ядра – 1.525 В.
  • Площадь ядра – 131 кв. мм, число транзисторов – 55 миллионов.
  • Физический интерфейс – Socket 478.
  • Поддержка наборов инструкций MMX, SSE, SSE2.
  • Поддержка технологии Hyper-Threading.

 


All rights reserved.
a_nes@mail.ru

Hosted by uCoz