NetBurst | это... Что такое NetBurst? (original) (raw)

NetBurst (рабочее название — P68) — суперскалярная гиперконвейерная микроархитектура, разработанная компанией Intel и лежавшая в основе микропроцессоров Pentium 4, Pentium D, Celeron и Xeon.

Содержание

История

Архитектура NetBurst пришла на смену архитектуре P6 на рынке процессоров для настольных и серверных систем. Она не являлась развитием архитектуры P6, а представляла собой принципиально новую по сравнению со всеми предшественниками архитектуру.

Первые процессоры архитектуры NetBurst были анонсированы 20 ноября 2000 года. 8 августа 2007 года компания Intel объявила о начале действия программы по снятию с производства всех процессоров этой архитектуры.[1][2] На смену процессорам архитектуры NetBurst пришли процессоры семейства Core 2 Duo, архитектура которых представляет собой развитие архитектуры P6.

Особенности архитектуры

Архитектура NetBurst разрабатывалась, в первую очередь, с целью достижения высоких тактовых частот процессоров. Характерными особенностями архитектуры NetBurst являются гиперконвейеризация и применение кэша последовательностей микроопераций вместо традиционного кэша инструкций. АЛУ процессоров архитектуры NetBurst также имеет существенные отличия от АЛУ процессоров других архитектур. Также возможно применение технологии Hyper-threading.[1]

Гиперконвейеризация (англ. Hyper Pipelining).

Процессоры Pentium 4 на ядрах Willamette и Northwood имеют конвейер глубиной 20 стадий, а процессоры на ядрах Prescott и Cedar Mill — 31 стадию. При этом стадии декодирования инструкций не учитываются: в связи с применением кэша последовательностей микроопераций, декодер (англ. Instruction decoder) вынесен за пределы конвейера. Это позволяет процессорам Pentium 4 достигать более высоких тактовых частот по сравнению с процессорами, имеющими более короткий конвейер при одинаковой технологии производства. Так, например, максимальная тактовая частота процессоров Pentium III на ядре Coppermine (180 нм. технология) составляет 1333 МГц, а процессоры Pentium 4 на ядре Willamette способны работать на частоте, превышающей 2000 МГц.[1]

Для минимизации влияния неверно предсказанных переходов, в процессорах архитектуры NetBurst используются увеличенный по сравнению с предшественниками буфер предсказания ветвлений (BTB, англ. branch target buffer) и новый алгоритм предсказания ветвлений, что позволило достичь высокой точности предсказания (около 94%) в процессорах на ядре Willamette. В последующих ядрах механизм предсказания ветвлений подвергался модернизациям, повышавшим точность предсказания.[1][3]

Кэш последовательностей микроопераций (англ. Execution Trace Cache)

Процессоры архитектуры NetBurst, как и большинство современных x86-совместимых процессоров, являются CISC-процессорами с RISC-ядром: перед исполнением сложные инструкции x86 преобразуются в более простой набор внутренних инструкций (микроопераций), что позволяет повысить скорость обработки команд. Однако, вследствие того, что инструкции x86 имеют переменную длину и не имеют фиксированного формата, их декодирование связано с существенными временными затратами.[4]

В связи с этим, при разработке архитектуры NetBurst было принято решение отказаться от традиционной кэш-памяти инструкций первого уровня, хранящей команды x86, в пользу кэша последовательностей микроопераций, хранящего последовательности микроопераций в соответствии с предполагаемым порядком их исполнения. Емкость trace cache составляла около 12 тыс. микроопераций. Такая организация кэш-памяти позволила также снизить временные затраты на выполнение условных переходов и на выборку инструкций.

АЛУ и механизм ускоренного исполнения целочисленных операций (англ. Rapid Execution Engine)

Так как основной целью разработки архитектуры NetBurst было повышение производительности за счёт достижения высоких тактовых частот, возникла необходимость увеличения темпа выполнения основных целочисленных операций. Для достижения этой цели АЛУ процессоров архитектуры NetBurst разделено на несколько блоков: «медленное АЛУ» (англ. slow ALU), способное выполнять большое количество целочисленных операций, и два «быстрых АЛУ» (англ. 2X ALU), выполняющих только простейшие целочисленные операции (например, сложение). Выполнение операций на «быстрых АЛУ» происходит последовательно в три этапа: сначала вычисляются младшие разряды результата, затем старшие, после чего могут быть получены флаги.

«Быстрые АЛУ», обслуживающие их планировщики (англ. Fast scheduler), а также регистровый файл (англ. Integer register file) синхронизируются по половине такта процессора, таким образом, эффективная частота их работы вдвое превышает частоту ядра. Эти блоки образуют механизм ускоренного выполнения целочисленных операций.

В процессорах на ядрах Willamette и Norhtwood «быстрые АЛУ» способны выполнять лишь те операции, которые обрабатывают операнды в направлении от младших разрядов к старшим. При этом результат вычисления младших разрядов может быть получен через половину такта. Таким образом, эффективная задержка составляет половину такта. В процессорах на ядрах Willamette и Norhtwood отсутствуют блоки целочисленного умножения и сдвига, а данные операции выполняются другими блоками (в частности, блоком инструкций MMX).

В процессорах на ядре Prescott (а также более новых ядрах) присутствует блок целочисленного умножения, а «быстрые АЛУ» способны выполнять операции сдвига. Эффективная задержка операций, исполняемых «быстрыми АЛУ», возросла по сравнению с процессорами на ядре Norhtwood и составляет один такт.[5]

Система повторного исполнения микроопераций (англ. Replay System)[6]

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

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

Если оценка времени, необходимого для получения данных, оказалась верной, микрооперация выполняется успешно. В том случае, если данные не были получены вовремя, проверка корректности результата заканчивается неудачей. При этом микрооперация, результат выполнения которой оказался некорректен, ставится в специальную очередь (англ. replay queue), а затем вновь направляется планировщиком на исполнение.

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

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

Достоинства

Основным достоинством процессоров архитектуры NetBurst является возможность работы на высоких тактовых частотах. Это позволяет достичь высокой производительности в оптимизированных задачах и компенсировать низкую удельную производительность. Кроме того, высокая тактовая частота даёт маркетинговые преимущества: потребители склонны выбирать процессоры с большей тактовой частотой («покупают мегагерцы»). К достоинствам процессоров архитектуры NetBurst можно также отнести высокую пропускную способность памяти.[7]

Поддержка технологии HyperThreading некоторыми процессорами архитектуры NetBurst позволяла поднять производительность в задачах, поддерживающих многопроцессорность, однако существуют некоторые задачи, при выполнении которых производительность может снижаться.[6][8]

Благодаря удачной маркетинговой и рекламной политике компании Intel, процессоры архитектуры NetBurst были популярны среди пользователей, что позволяло компании Intel удерживать значительную долю рынка микропроцессоров (больше 70%) и получать прибыль, в отличие от основного конкурента — компании AMD[9][10].

Недостатки

Основными недостатками длинного конвейера являются уменьшение удельной производительности по сравнению с коротким конвейером (за один такт выполняется меньшее количество инструкций), а также серьёзные потери производительности при некорректном выполнении инструкций (например, при неверно предсказанном условном переходе или кэш-промахе)[1][6]. Так, например, процессор Pentium 4 с частотой 1700 МГц в неоптимизированных под архитектуру NetBurst задачах уступал процессорам с частотой 1333 МГц[11].

Кроме того, работа процессоров на высоких частотах была связана с высоким тепловыделением. Несмотря на то, что процессоры на ядре Cedar Mill были способны работать на частотах, превышавших 7 ГГц, с использованием экстремального охлаждения (обычно использовался стакан с жидким азотом), максимальная тактовая частота серийных процессоров Pentium 4 составила 3800 МГц. При этом типичное тепловыделение превышало 100 Вт, а максимальное — 150 Вт[12][13][14].

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

Двухъядерные процессоры архитектуры NetBurst для настольных компьютеров (Pentium D) представляли собой два ядра Prescott (процессоры на ядре Smithfield), находящиеся на одном кристалле, или Cedar Mill (Presler), находящиеся в одном корпусе (по сути два отдельных процессора в одном корпусе). Так как процессоры архитектуры NetBurst изначально разрабатывались как одноядерные, обмен данными между ядрами осуществлялся через оперативную память, что приводило к потерям производительности (для сравнения, конкурирующие процессоры Athlon 64 X2 разрабатывались с расчётом на многоядерность, поэтому имеют специальный блок, позволяющий осуществлять обмен данными минуя оперативную память[15])[16].

Описание функциональных блоков

Функциональная схема процессора Pentium 4 на ядре Willamette

Процессоры архитектуры NetBurst состоят из четырёх основных структурных блоков:

Исполнительные устройства

К исполнительным устройствам относятся:

В процессорах на ядре Prescott и более новых блок обработки чисел с плавающей запятой получил поддержку инструкций SSE3.

Устройства организации внеочередного исполнения

Внеочередное исполнение позволяет ускорить работу за счёт изменения порядка выполнения микроопераций в тех случаях, когда это изменение не приведёт к изменению результата. К устройствам организации внеочередного исполнения относятся:

Устройства входного блока

К устройствам входного блока относятся:

Интерфейс памяти

Интерфейс памяти осуществляет взаимодействие с оперативной памятью. К этому блоку относятся:

Некоторые процессоры содержали также кэш-память третьего уровня объёмом 2, 4 или 8 МБ.

Описание работы

Конвейер процессора на ядре Northwood

Конвейер процессоров на ядре Northwood Конвейер состоит из 20 стадий:

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

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

После подготовки процессора к выполнению микроопераций (резервирование ресурсов, переименование регистров), они помещаются в соответствующие их типам очереди: микрооперации, осуществляющие взаимодействие с памятью, помещаются в отдельную очередь длиной 16 микроопераций, а все остальные — в общую очередь (32 микрооперации). После определения порядка выполнения микроопераций (порядок может быть изменён в зависимости от готовности данных для выполнения микроопераций, от наличия переисполняемых инструкций, наличия свободных вычислительных ресурсов и т.п.), планировщики отправляют микрооперации на выполнение в соответствующие исполнительные блоки: микрооперации, взаимодействующие с памятью, отправляются в блоки генерации адреса, целочисленные операции — в блоки АЛУ, а вещественночисленные — в блоки обработки чисел с плавающей запятой. При этом операнды, необходимые для выполнения микроопераций либо считываются из регистрового файла, либо передаются как результат выполнения предыдущей микрооперации. После выполнения микроопераций происходит формирование флагов и проверка корректности результатов. В том случае, если результаты корректны, происходит отставка (англ. retirement) микроопераций, а результаты помещаются в регистровый файл. Если же результаты выполнения микрооперации некорректны (например, был неверно предсказан переход, или необходимые данные не были вовремя получены), эта микрооперация отправляется на повторное исполнение.[17][4]

Процессоры архитектуры NetBurst

Процессор Ядро Технология производства Годы выпуска
Pentium 4 Willamette, Northwood, Gallatin, Prescott, Cedar Mill КМОП, 180—65 нм 20002007
Pentium D Smithfield, Presler КМОП, 90—65 нм 2005—2007
Celeron Willamette-128, Northwood-128 КМОП, 180—130 нм 2001—2005
Celeron D Prescott-256, Cedar Mill-512 КМОП, 90—65 нм 2004—2007
Xeon Foster, Prestonia, Gallatin, Potomac, Cranford, Irwindale, Nocona, Paxville, Dempsey, Tulsa КМОП, 180—65 нм 2001—2007
Pentium 4 (Northwood) Pentium D (Smithfield) Celeron (Northwood-128) Celeron D (Prescott-256) Xeon DP (Foster)
Pentium 4 (Northwood) Pentium D (Smithfield) Celeron (Northwood-128) Celeron D (Prescott-256) Xeon DP (Foster)

Примечания

  1. 1 2 3 4 5 Willamette - как будет работать новоиспеченный флагман от Intel…
  2. Intel снимает с производства последние Pentium 4 и Pentium D
  3. Intel Pentium 4 «Prescott»: полшага вперед
  4. 1 2 Pentium 4: Мистический и загадочный Trace-кэш
  5. Prescott: Последний из могикан? (Pentium 4: от Willamette до Prescott). Часть 2
  6. 1 2 3 Replay: неизвестные особенности функционирования ядра Netburst
  7. Pentium 4 Extreme Edition и Athlon 64 FX: битва двух рыцарей с участием оруженосцев
  8. Intel Pentium 4 3,06 ГГц с поддержкой технологии Hyper-Threading
  9. Сага о маркетинге в исполнении Intel
  10. IТоги года `2003
  11. Прогнозы, которые подтверждаются: Pentium 4 1.7 GHz и его производительность
  12. Pentium 4 670: теперь на частоте 7.3 ГГц и 18 секунд в Super PI
  13. IA-32 implementation: Intel P4 (incl. Celeron and Xeon) (англ.)
  14. Intel Pentium 4 570/570J 3.8 GHz - JM80547PG1121M (BX80547PG3800E) (англ.)
  15. Athlon 64 X2 4800+: самый быстрый двухъядерный x86 из существующих на данный момент
  16. Presler против Smithfield: новый раунд тестов
  17. Архитектура CPU Автор: Сергей Озеров Опубликовано в журнале "Компьютерра" №37 от 13 октября 2005 года

Ссылки

Официальная информация

Характеристики процессоров архитектуры NetBurst

Обзоры процессоров и описания архитектуры

Просмотр этого шаблона Процессоры Intel
Больше непроизводятся 4 бита: 400440408 бит: 800880808085x86-16 (16 бит): 80868088801868018880286x86-32/IA-32 (32 бита): 8038680486Pentium (OverDriveProIIII OverDriveIII4M) • Celeron (MD) • CoreIntel A100/A110 • x86-64/EM64T (64 бита): Pentium 4 (некоторые) • Pentium DPentium EECeleron D (некоторые) • IA-64 (64 бита): ItaniumДругие: iAPX 432RISC: i860i960StrongARM • XScale
Актуальные x86-32: EP80579 • Intel CE • Atomx86-64: Atom (некоторые) • CeleronPentium Dual-CoreCore (2 (SoloDuoQuad • Extreme) • i3i5i7) • XeonДругие: Itanium 2/Itanium 9300
Списки Разъём процессора • Типы корпусовКодовые именаЧипсетыБудущие процессорыПо маркам: Atom • CeleronPentium (II • III • M • 4D и EEDual-Core и последующие) • Core (2 • i3i5i7) • Xeon • Itanium
Микроархитектуры
P5 0,90 мкм: P5 • 0,60 мкм: P54C • 0,35 мкм: P54CS • P55C • 0,25 мкм: Tillamook
P6 0,50 мкм: P60,35 мкм: Klamath • 0,25 мкм: Mendocino • Dixon • Tonga • Covington • Deschutes • Katmai • Drake • Tanner • 180 нм: Coppermine • Coppermine T • Cascades • 130 нм: Tualatin • Banias • 90 нм: Dothan • Stealey • 65 нм: Tolapai • Yonah • Sossaman
NetBurst 180 нм: Willamette • Foster • 130 нм: Northwood • Gallatin • Prestonia • 90 нм: Tejas и Jayhawk • Prescott • Smithfield • Nocona • Irwindale • Cranford • Potomac • Paxville • 65 нм: Cedar Mill • Presler • Dempsey • Tulsa
Core 65 нм: Merom-L • Merom • Conroe-L • Allendale • Conroe • Kentsfield • Woodcrest • Clovertown • Tigerton • 45 нм: Penryn • Penryn-QC • Wolfdale • Yorkfield • Wolfdale-DP • Harpertown • Dunnington
Bonnell 45 нм: Silverthorne • Diamondville • Pineview • Lincroft
Nehalem 45 нм: Clarksfield • Lynnfield • Jasper Forest • Bloomfield • Gainestown (Nehalem-EP) • Beckton (Nehalem-EX) • 32 нм (Westmere): Arrandale • Clarkdale • Gulftown (Westmere-EP)
Bridge 32 нм: Sandy Bridge22 нм: Ivy Bridge
Будущие LarrabeeHaswellBroadwell • Rockwell • Atom (Saltwell • Silvermont • Airmont)

Эта статья входит в число хороших статей