PersCom — Компьютерная Энциклопедия Компьютерная Энциклопедия

Процессоры

Процессоры

Технология Hyper-Threading

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

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

Эффективность блоков Hyper-Threading при выполнении конкретных приложений сильно зависит от степени оптимизации кода программы.

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

Чем лучше оптимизирован код для архитектуры Pentium 4, тем меньше будет выигрыш от применения Hyper-Threading, поскольку «правильный» код нагружает элементы процессора по максимуму. Если же оптимизация кода далека от идеала, происходят промахи размещения данных в кэш-памяти, ошибки предсказания ветвлений, нарушение параллелизма выполнения инструкций. В результате часть аппаратных блоков ядра простаивает, ожидая результатов критичных операций. В этот момент свободные блоки могут быть представлены операционной системе как элементы второго, логического процессора и получить собственные задачи, выполнение которых будет происходить независимо от работы других элементов.

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

Особенности ядра Prescott

Микроархитектура ядра Prescott в сравнении с предшественниками (Willamette и Northwood) содержит неоднозначные технические решения. С одной стороны, улучшены алгоритмы предвыборки (Prefetch), что позволило достичь больших значений реальной пропускной способности памяти. Заметны и другие положительные моменты, в первую очередь введение нового набора SIMD-инструкций SSE3.

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

Подкатегории