Архивы: по дате | по разделам | по авторам

Застывшая в кремнии музыка: NetBurst

АрхивПлатформа
автор : Дмитрий Криканов   07.06.2007

Этот материал является первой статьёй цикла, посвящённого микроархитектурам центральных процессоров. В последующих материалах будут рассмотрены более современные микроархитектуры, разработанные Intel и AMD.

Вокруг понятия архитектуры компьютера существует определённая путаница. Совершенно справедливыми будут утверждения о том, что архитектура ПК компьютера осталась неизменной с далёкого 1946 года, и при этом, что каждый год появляются новые архитектуры. Можно также заявить, что в 1978 году был разработан процессор i8086 с принципиально новой архитектурой, и это тоже будет истиной.

Возникает резонный вопрос - что же такое архитектура компьютера и чем она отличается от архитектуры процессора? И почему архитектура процессора остаётся неизменной, если каждый год появляются новые? На первый взгляд - сплошная путаница.

Однако, если разобраться, всё окажется гораздо проще. Все современные компьютеры имеют так называемую "фон-неймановскую" архитектуру, то есть состоят из арифметико-логического устройства (АЛУ), блока управления, блока памяти и устройства ввода/вывода. При этом принцип работы всех Intel-совместимых 32-разрядных процессоров, начиная с i80386, выстроен в соответствии с единой архитектурой, которая позже получила название IA-32 (32-bit Intel Architecture).

В рамках архитектуры IA-32 можно, в свою очередь, выделить ряд микроархитектур. Впервые понятие микроархитектуры было введено компанией Intel для процессоров семейства Pentium Pro. Это объяснялось необходимостью правильного позиционирования новых процессоров среди уже выпускавшихся. В то время как программная 32-разрядная модель изменялась весьма незначительно, физические модели процессоров могли иметь разительные отличия. Таким образом, понятие микроархитектуры описывает особенности исполнительной части процессора, то есть - способы и средства, посредством которых процессор выполняет обработку машинного кода.

На сегодняшний день в рамках архитектуры IA-32 существует две микроархитектуры процессоров Intel: P6 и P68. Последняя, с лёгкой руки маркетологов, получила броское название NetBurst, под которым и приобрела широкую известность. Именно архитектура NetBurst стала завершающим этапом развития 32-разрядных однопроцессорных систем. (Справедливости ради стоит отметить, что NetBurst использовалась и в первых двуядерных процессорах, но "не прижилась", уступив место более совершенной микроархитектуре Core).

Необходимость "сетевого прорыва"

При развитии микроархитектуры P6 быстродействие процессоров повышалось, главным образом, за счёт улучшения технологического процесса. Увеличение количества инструкций, выполняемых за такт, и рабочая частота ядра наращивались до тех пор, пока частотный потенциал микроархитектуры P6 не был практически исчерпан. Вершиной развития стало ядро Tualatin, изготавливавшееся по технологическому процессу 130 нм с максимальной рабочей частотой 1400 МГц. Несмотря на то, что производительность ядра была довольно приличной, Pentium III-S по многим параметрам уступал главному конкуренту - Athlon.

В 2000 году корпорация Intel задалась целью разработать микроархитектуру нового поколения, способную обеспечить рост производительности и тактовой частоты в долгосрочной перспективе. Результатом работы стала микроархитектура NetBurst, дословно - "сетевой прорыв", которая позволяла организовать более быструю и эффективную работу приложений в современных информационных и мультимедийных средах.

По сравнению с P6В, в новой микроархитектуре был реализован принципиально иной подход к разработке ядра. Основная идея заключалась в том, чтобы получить более высокие рабочие частоты процессора без усложнения технологического процесса. Так, процессоры с новой архитектурой при использовании такого же 180 нм техпроцесса работали на частоте от 1500 МГц и выше. Достигалось это благодаря целому ряду новых технологий, а также некоторому изменению логики работы микроархитектуры.

Hyper Pipelined Technology

"Гиперконвейерная технология" - столь громким именем Intel назвала увеличение длины конвейера. Конвейеры первых процессоров семейства Pentium IV на ядре Willamette имели длину в 20 стадий. Позднее, в ядре Prescott, конвейер был увеличен до 31 стадий.

Как известно, увеличение длины конвейера имеет свои "за" и "против".

С одной стороны, увеличение длины конвейера ведёт к уменьшению числа инструкций, выполняемых за один такт (IPC - Instructions Per Cycle). Кроме того, при более длинном конвейере увеличивается штраф неверного предсказания ветвлений, т.е. возвращаться нужно на большее число шагов.

С другой стороны, наращивание числа шагов в конвейере позволяет существенно увеличить тактовую частоту работы процессора. В результате, уменьшение производительности, вызванное низким IPC, компенсируется высокой тактовой частотой. Что касается штрафа ошибки предсказания, то этот недостаток компенсируется использованием высокоточных блоков предсказания ветвлений, которые позволяют получить правильный результат с вероятностью 90% (кстати, этот алгоритм предсказания практически без изменений "перекочевал" в микроархитектуру Core).

Rapid Execution Engine

Эта технология позволяет блокам арифметической логики работать на удвоенной, по сравнению с ядром процессора, тактовой частоте, что обеспечивает выполнение некоторых инструкций за половину такта, а также значительное увеличение скорости целочисленных операций (например, при частоте процессора 3,5 ГГц АЛУ работает на частоте 7 ГГц!). Преимущества высокой скорости работы АЛУ вполне очевидны, особенно если принять во внимание снижение IPC из-за увеличенной длины конвейера.

Из недостатков технологии Rapid Execution Engine можно выделить только один, но довольно существенный. Точные инструкции теперь выполняются гораздо дольше, что делает затруднительной оптимизацию кода программ под несколько процессоров. Например, столь любимые всеми программистами операции поразрядного сдвига уже не выполняются с привычной быстротой - дело в том, что многорегистрового сдвигового устройства, которое присутствовало во всех процессорах семейства x86, в микроархитектуре NetBurst нет.

Execution Trace Cache

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

Поскольку декодер инструкций любого x86 процессора является одним из самых медленных модулей, а кэш-память - самой быстрой, то было принято весьма логичное решение: получать коды микроопераций не из медленного декодера, а из быстрой кэш-памяти. По существу, Execution Trace Cache выступает в роли посредника между этапами декодирования и началом выполнения микроопераций. Благодаря этому в цикле исполнения команд устраняются задержки, связанные с декодированием инструкций. По сути, высокими тактовыми частотами процессоров микроархитектура NetBurst "обязана" главным образом, не столько увеличению длины конвейера, сколько асинхронной обработке каждого этапа.

Объём памяти Execution Trace Cache позволяет хранить до 12000 микрокоманд, что соответствует 12 Кбайт данных. На первый взгляд, это не так уж и много, но механизм "закладок", когда вместо кодов нескольких микроопераций в памяти хранится одна подменяемая "закладка", позволяет несколько увеличить эффективную ёмкость кэша команд.

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

Ядро Willamette

Впервые микроархитектура NetBurst была реализована в процессоре Pentium IV на ядре Willamette. Ядро изготавливалось по тому же технологическому процессу, что и Tualatin - 180 нм, а частота системной шины нового процессора была даже ниже, чем у Pentium III-S. Но при этом, благодаря новой микроархитектуре, а также реализованной поддержке дополнительных мультимедийных инструкций SSE2, производительность Pentium IV была гораздо выше, чем у "брата по техпроцессу" - тактовая частота могла достигать значения 2000 МГц.

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

В качестве "последнего гвоздя" Intel выпустила рекламный ролик, в котором сравнивалась работа Pentium IV и Athlon: с работающего процессора попросту снимали кулер и наблюдали за дальнейшим поведением. Pentium IV превосходно справлялся с нештатной ситуацией, "вешая" систему до того момента, пока кулер не возвращали на место. Для Athlon, не имевшего системы термоконтроля, такие манипуляции становились "смертельными" - процессор сначала дымился, а потом загорался.

Таким образом, ядро Willamette позволило процессорам Intel Pentium IV занять лидирующее положение на рынке, "догнав и перегнав" основного конкурента - компанию AMD.

Ядро Northwood

Следующим ядром, разработанным с использованием микроархитектуры NetBurst, стало Northwood. Новое ядро изготавливалось по техпроцессу 130 нм. Частота системной шины достигла 200 МГц, однако благодаря тому, что за один такт передавалось 4 пакета (Quad Pumped Bus), эффективная производительность системной шины составляла 800 МГц. Объём кэш-памяти второго уровня был увеличен вдвое и составил 512 Кб. В результате частота процессоров, построенных на базе Northwood, возросла до 3400 МГц.

Процессоры на базе Northwood наглядно продемонстрировали преимущества длинного конвейера микроархитектуры NetBurst. Без значительного усложнения технологического процесса удалось добиться увеличения тактовой частоты почти в два раза, и, как ни странно, снизить тепловыделение на кристалле процессора!

Уже в первых моделях ядра Northwood была реализована технология Hyper-Threading, но по каким-то неведомыми (читай - маркетинговым) причинам была отключена, вплоть до выхода ядра Prescott. Возможно, с этой особенностью связано возникновение так называемого NDS (Northwood Death Syndrome - смертельный синдром Northwood). Синдром этот обнаружили оверклокеры - при повышении напряжения ядра до 1,7 В процессор скоропостижно "умирал".

Ядро Northwood стало настоящей "рабочей лошадкой" Intel в разгар "гонки за мегагерцами" и, надо отметить, справилось со своей ролью вполне достойно, совсем немного "недотянув" до 3800 МГц.

Ядро Prescott

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

Прежде всего, стоит отметить увеличение длины конвейера до 31 шага, что позволило наращивать тактовую частоту процессора до отметки в 3800 МГц . За увеличение быстродействия пришлось расплачиваться необходимостью доработки блока предсказания переходов и увеличением размеров кэш-памяти первого и второго уровней. Кэш первого уровня был расширен до 16 Кб, а второго - до 1024 Кб. Объём инструкций, хранимых в trace cache, остался без изменений.

Кроме модификаций микроархитектуры, в новом ядре были реализован набор дополнительных инструкций SSE3 и поддержка набора команд, аналогичных AMD x86-64. В варианте Intel эти команды получили название ЕМ64Т. Основное улучшение, реализуемое благодаря ЕМ64Т, заключается в отмене присущего всем 32-разрядным процессорам ограничения в 4 Гб оперативной памяти, адресуемой напрямую, и расширить адресное пространство памяти до 1 Тб. Достигнуто это было благодаря введению 64-битных адресов и регистров памяти.

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

Однако, несмотря на многочисленные улучшения и нововведения, ядро Prescott знаменито прежде всего как "последний из могикан" архитектуры IA-32. Именно в процессорах Pentium IV на Prescott второго "эшелона" впервые стала доступна технология Hyper-Threading. Реализована эта технология была ещё на ядре Northwood, а затем, соответственно, и на первых Prescott, но была аппаратно заблокирована.

Технология Hyper-Threading – все ещё NetBurst, но уже почти Core

Технология Hyper-Threading, или "гиперпоточность", была разработана для увеличения производительности процессора при определённых условиях. По существу, Hyper-Threading - это виртуальная реализация двухпроцессорной системы (операционная система определяет один процессор как два самостоятельных). Логические процессоры реализованы на базе одного физического процессора.

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

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

Таким образом, Hyper-Threading - это, своего рода, "лекарство от неправильных программ", в которых происходят промахи размещения данных в кэше, ошибки предсказания ветвлений, нарушение параллелизма выполняемых инструкций и т.д. Но поскольку программ с действительно хорошо оптимизированным кодом вообще и оптимизированным именно под архитектуру Pentium IV в частности не так много, использование Hyper-Threading ощутимо сказывается на производительности. Так, на первых процессорах удалось добиться улучшения только на 5% по сравнению с идентичными процессорами без многопоточности, зато в дальнейшем эффективность возросла до 30%.

NetBurst: померяемся мегагерцами?

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

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

Так, итальянские оверклокеры организовали целый проект, посвящённый "разгону" процессоров микроархитектуры NetBurst в экстремальных условиях. Пока что рекорд составляет 8189 МГц, однако энтузиасты уверены, что ограничивающим фактором явилась материнская плата. Поскольку для охлаждения процессора использовался жидкий азот, в домашних условиях получить столь впечатляющую скорость, мягко говоря, затруднительно.

NetBurst на заслуженном отдыхе

Созданная в далёком уже 2000 году, микроархитектура NetBurst стала, без преувеличения, революционной. Возможность существенного наращивания тактовых частот процессорных ядер не только за счёт усложнения технологического процесса, но и благодаря улучшенным схемотехническим решениям, позволила вывести микропроцессорные технологии на принципиально новый уровень - как в плане производительности, так и цены.

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

Формально век архитектуры IA-32 подходит к концу. Тем не менее, процессоры Pentium IV до сих пор в состоянии обеспечить достаточную производительность для комфортного использования большинства современных программ и мультимедиа-технологий.

Микроархитектура NetBurst принесла Intel заслуженную победу в "гонке за мегагерцами", оставив конкурентов из AMD далеко позади. Сегодня главные "сражения" между вечными соперниками, Intel и AMD, ведутся на поле 64-битных многопроцессорных систем. NetBurst же спокойно почивает на лаврах, став, по сути, негласным стандартом для однопроцессорных 32-разрядных систем, причём совершенно заслуженно.

© ООО "Компьютерра-Онлайн", 1997-2019
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.