НАШ МИР
Разделы новостей
Софт [526]
Интересности [76]
Моддинг [19]
Гаджеты [86]
Мобильные устройства [210]
Компьютерная периферия [41]
Игровые консоли [3]
Система [26]
Железо [657]
Наука и техника [462]
Интернет браузеры [29]
Операционные системы [52]
Интернет [76]
Игры [242]
Безопасность [20]
Новости сайта [4]
Календарь новостей
«  Октябрь 2008  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031
Форма входа
Поиск
Друзья сайта
Реклама
Статистика
Rambler's Top100

page counter
Онлайн всего: 1
Гостей: 1
Пользователей: 0

Понедельник, 2024-05-20, 14:22:34
Приветствую Гость | RSS
Главная | Регистрация | Вход
ОБСУЖДАЮТ НА ФОРУМЕ
Ваши любимые анекдоты:) 253 uggs kids sale 2014-02-12
Необычные здания мира. 235 jennaam2 2014-02-12
В тылу врага 2: Братья по оружию/Men of War [RUS] 942 Giselledsz 2014-02-09
Секреты Adobe Photoshop CS3 22 KroftiKLM 2014-02-07
Intel Core i7 (Nehalem): новая архитектура. (Часть 1)
22:06:31

Введение

Два года назад Intel сорвала большой куш, выведя на рынок архитектуру Conroe, которая нашла применение в процессорах Core 2 Duo и Core 2 Quad. Благодаря данному решению компания вернула корону производительности после небольшой потери доверия из-за спорного дизайна Pentium 4 "Prescott". В то же время Intel объявила весьма амбициозные планы развивать архитектуру своих процессоров ударными темпами, как это происходило в середине 1990-х. Первая фаза плана предусматривала выпуск обновления архитектуры через 12 месяцев после объявления, чтобы получить преимущество от нового техпроцесса. Это и было сделано с выпуском Penryn. А полностью новая архитектура должна была появиться через 24 месяца с кодовым названием Nehalem. Эта архитектура и стала темой данной статьи.

Nehalem


Нажмите на картинку для увеличения.

Архитектура Conroe обеспечивала превосходную производительность и весьма разумное энергопотребление, но она не была идеальна. Собственно, условия, в которых разрабатывалась эта архитектура, тоже не были идеальными. Когда Intel поняла, что процессор Pentium 4 зашёл в тупик, компании пришлось изобретать новую архитектуру в великой спешке - а это не так легко для такой крупной компании, как Intel. Команде инженеров в Хайфе (Израиль), которая до этого отвечала за мобильные архитектуры, была внезапно навязана разработка дизайна для всей новой линейки процессоров Intel. Задача для команды оказалась не такой лёгкой, поскольку именно ей пришлось отвечать за будущее Intel. Учитывая эти условия, с жёсткими временными рамками и давлением, результат, который выдали инженеры Intel, просто великолепен. Но эта ситуация также объясняет, почему команде пришлось пойти на некоторые компромиссы.

Хотя перед нами была серьёзная переработка Pentium M, архитектура Conroe всё же в какой-то степени предала свою мобильную основу. С одной стороны, архитектура не была достаточно модульной. Ей было необходимо закрыть всю линейку процессоров Intel, от ноутбуков до серверов. Но на практике в каждом случае мы получали практически идентичный чип; разница была только в размере памяти L2. Архитектура была явно разработана для двуядерных процессоров, и переход на четырёхъядерные CPU потребовал такой же трюк, какой Intel сделала для первых двуядерных CPU - два кристалла в одной упаковке. Наличие FSB повредило разработке конфигураций с несколькими процессорами, поскольку она оставалась "узким местом" по доступу к памяти. Наконец, маленький подарок: одна из новых функций, введённых в архитектуре Conroe, а именно слияние макроопераций, позволяющая соединять две инструкции x86 в одну, не работала в 64-битном режиме, стандартном режиме для серверов.

Эти компромиссы были понятны два года назад, но сегодня Intel уже не может их оправдать - особенно перед лицом конкуренции со стороны AMD и процессоров Opteron, которые до сих пор весьма привлекательны для корпоративных окружений. С Nehalem Intel было необходимо устранить свои слабые места, разработав модульную архитектуру, которая может адаптироваться для нужд всех трёх основных рынков: мобильного, настольного и серверного.

Nehalem: обзор

Честно говоря, сложно делать обзор архитектуры, подобной Nehalem, которая изначально была разработана модульной. Инженеры Intel хотели создать набор базовых "кирпичей, которые можно собирать как блоки конструктора Lego, чтобы создавать разные версии архитектуры.

Nehalem


Нажмите на картинку для увеличения.

Впрочем, в то же время вполне реально рассмотреть флагмана новой архитектуры - high-end версию, которая будет использоваться в серверах и производительных рабочих станциях. На первый взгляд, спецификации очень напоминают архитектуру Barcelona (K10) от AMD. То есть перед нами "родной" четырёхъядерный процессор, который использует три уровня кэш-памяти, встроенный контроллер памяти, а также высокопроизводительную систему интерфейсов "точка-точка" для связи с периферией и другими CPU в многопроцессорной конфигурации. Это доказывает, что технологические решения AMD были не такими плохими, но пострадали из-за технической реализации, которая не была достаточно хорошо адаптирована для текущего дизайна.

Nehalem


Нажмите на картинку для увеличения.

Но Intel не только обновила свою архитектуру, взяв у конкурента интересные инновации. С бюджетом более 700 млн. транзисторов (731 млн., если быть точным), инженеры смогли серьёзно улучшить основные характеристики исполнительного ядра, добавив в то же время новую функциональность. Например, поддержка многопоточности (simultaneous multi-threading, SMT), которая впервые появилась в Pentium 4 "Northwood" под названием Hyper-Threading, вновь вернулась. Поскольку физических ядер на кристалле четыре, некоторые версии Nehalem, которые используют два ядра в одной упаковке, смогут выполнять до 16 потоков одновременно. Изменения на первый взгляд кажутся простыми, но, как мы увидим позже, они привели к серьёзным переменам на разных уровнях конвейера; многие буферы пришлось изменить, чтобы данный режим не влиял на производительность. Как уже случалось с каждой последней архитектурой на протяжении последних лет, Intel добавила к Nehalem новые инструкции SSE. Архитектура поддерживает набор SSE 4.2, некоторые компоненты которого были, как может показаться, взяты из микроархитектуры AMD K10.

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

Nehalem


Нажмите на картинку для увеличения.

Считывание и декодирование инструкций

В отличие от перемен, которые произошли при переходе от микроархитектур с Core на Core 2, Intel не очень сильно переделала переднюю часть конвейера Nehalem. Здесь есть те же самые четыре блока декодирования, которые появились вместе с Conroe - три простых и один сложный. По-прежнему поддерживается функция слияния макроопераций (macro-ops fusion), обеспечивается теоретическая максимальная пропускная способность 4+1 инструкций x86 за такт.

Nehalem


Нажмите на картинку для увеличения.

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

Начнём с того, что была добавлена поддержка слияния макроопераций (macro-ops fusion) для 64-битного режима, что вполне оправданно для архитектуры, подобной Nehalem, и не скрывает амбиций по проникновению на серверный сегмент рынка. Но инженеры на этом не остановились. Если архитектура Conroe могла выполнять слияние только весьма ограниченного набора инструкций, архитектура Nehalem поддерживает большее число вариантов, то есть слияние макроопераций может выполняться чаще.

Ещё одна новая функция, представленная с Conroe, тоже была улучшена: Loop Stream Detector. За этим названием скрывается буфер, содержащий несколько инструкций (18 инструкций x86 в архитектуре Core 2). Когда процессор определяет цикл, он отключает некоторые части конвейера. Поскольку цикл подразумевает выполнение одинаковых инструкций указанное число раз, вряд ли имеет смысл выполнять предсказание ветвлений или забирать инструкции из кэша L1 при каждой итерации цикла. Поэтому Loop Stream Detector работает как небольшая кэш-память, которая "замыкает" первые ступени конвейера в подобных ситуациях. При реализации этой техники получается двоякий прирост: снижается энергопотребление, поскольку процессор не работает над бесполезными задачами, а также увеличивается производительность путём снижения нагрузки на кэш инструкций L1.

Nehalem


Нажмите на картинку для увеличения.

С архитектурой Nehalem Intel улучшила функциональность Loop Stream Detector. Начнём с того, что буфер был увеличен - теперь он вмещает 28 инструкций. Но, более того, изменилось его расположение в конвейере. В Conroe буфер располагался как раз за ступенью выборки инструкций (instruction fetch). Теперь же буфер находится после ступени декодирования; такое расположение позволило отключать большую часть конвейера. В Nehalem Loop Stream Detector хранятся уже не инструкции x86, а микрооперации. В данном отношении технология чем-то напоминает концепцию кэша с отслеживаниями (trace cache) у Pentium 4. Нас не удивляет, что в Nehalem можно найти ряд инноваций, появившихся с архитектурой NetBurst, поскольку команда в Хиллсборо (Hillsboro), отвечающая за Nehalem, занималась и проектом Pentium 4. Однако если Pentium 4 использовал кэш с отслеживаниями эксклюзивно, поскольку он мог рассчитывать только на один декодер в случае промаха кэша, Nehalem выигрывает от мощи четырёх декодеров, хотя Loop Stream Detector можно назвать только дополнительной оптимизацией для некоторых ситуаций. В любом случае, перед нами лучшее из обоих миров.

Предсказание ветвлений

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

Intel не обеспечила деталей по поводу алгоритма, используемого в новых блоках предсказания ветвлений, но широко известно, что теперь есть два уровня предсказаний. Первый уровень не изменился с архитектуры Conroe, но был добавлен новый уровень с медленным доступом, который позволяет хранить большую историю ветвлений. По информации Intel, эта конфигурация улучшает предсказание ветвлений в некоторых приложениях, которые используют массивные участки кода, таких как базы данных - ещё одно свидетельство ориентации Nehalem на серверы. Другое улучшение касается Return Stack Buffer, который хранит адрес возврата функций, когда они вызываются. В некоторых случаях этот буфер может переполняться, что приводит к ошибочным предсказаниям. Чтобы ограничить такую возможность, AMD увеличила его размер до 24 записей, а в Intel Nehalem появилась система переименования для этого буфера.

Возвращение Hyper-Threading

Итак, первые ступени конвейера были не очень сильно изменены. То же самое касается и замыкающих ступеней. Здесь используются такие же исполнительные блоки, что и в самых последних процессорах Core, но, опять же, инженеры вновь поработали над их более эффективным использованием.

Nehalem


Нажмите на картинку для увеличения.

С Nehalem вернулась технология Hyper-Threading. Впервые она появилась в версии Northwood архитектуры Intel NetBurst. Технология Hyper-Threading, в миру вне-Intel известная как Simultaneous Multi-Threading (SMT), позволяет использовать параллелизм на уровне потоков, чтобы оптимизировать нагрузку исполнительных блоков ядра, в результате чего на уровне приложений одно физическое ядро превращается в два виртуальных.

Чтобы поддерживать параллельное выполнение потоков, некоторые ресурсы, такие как регистры, должны быть продублированы. Другие ресурсы можно совместно использовать двумя потоками, сюда входит вся логика внеочередного выполнения (буфер изменения порядка инструкций/instruction reorder buffer, исполнительные блоки и кэш). Внедрение SMT было обусловлено простым наблюдением: чем "шире" (больше исполнительных блоков) и "глубже" (больше ступеней конвейера) становятся процессоры, тем сложнее получать достаточную степень параллелизма для загрузки исполнительных блоков на каждом такте. Если Pentium 4 был очень "глубоким", конвейер превысил 20 ступеней, у Nehalem он очень "широкий". У процессора доступно шесть исполнительных блоков, которые способны одновременно выполнять три операции работы с памятью и три операции вычисления. Если движок выполнения не сможет обеспечить параллелизм инструкций на должном уровне, с загрузкой всех блоков, в конвейере появляются так называемые "пузырьки" - холостые такты.

Возвращение Hyper-Threading

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

Реализация SMT

Реализация SMT

Впрочем, в большинстве ситуаций влияние SMT на производительность положительное, а себестоимость технологии по ресурсам невысокая, что и объясняет её возвращение. Но программистам следует быть внимательными, поскольку в случае Nehalem не все потоки создаются одинаковыми. Чтобы помочь в нелёгком деле, Intel обеспечивает способ точно определить топологию процессора (число физических и логических процессоров), а программисты могут использовать механизм привязки ОС (affinity), позволяющий привязать поток к виртуальному ядру. Подобное решение вряд ли застанет врасплох игровых разработчиков, поскольку очень схоже осуществляется программирование под процессор Xenon (используется в Xbox 360). Но, в отличие от приставок, где у программистов есть доступ на очень низком уровне, на ПК присутствует планировщик потоков ОС, который способен сказать своё последнее слово.

Так как SMT сильнее нагружает внеочередной исполнительный движок, Intel увеличила размер некоторых встроенных буферов, чтобы они не превратились в "узкое место". Так, буфер изменения порядка команд (reorder buffer), который отслеживает все выполняемые инструкции, был увеличен с 96 записей у Core 2 до 128 записей у Nehalem. На практике, поскольку буфер статически распределён, чтобы ни один из потоков не смог монополизировать все ресурсы, его размер уменьшен до 64 записей для каждого потока в SMT. Вполне понятно, что в случае выполнения одного потока обеспечивается доступ ко всем записям, то есть потенциально устранены специфические случаи, в которых Nehalem дал бы меньшую производительность, чем предшественник.

Станция резервации (reservation station), которая отвечает за привязку инструкций к разным исполнительным блокам, тоже была увеличена с 32 до 36 записей. Но, в отличие от буфера изменения порядка команд, здесь распределение уже динамическое, поэтом поток может использовать больше или меньше записей как функцию его потребностей.

Два других буфера тоже были изменены: буфер загрузки (load buffer) и буфер хранения (store buffer). Первый получил 48 записей против 32 у Conroe, а второй - 32 вместо 20. Здесь, опять же, распределение ресурсов между потоками статическое.

Ещё одно последствие возвращения SMT: производительность инструкций синхронизации потоков была улучшена (по словам Intel).

SSE 4.2 и энергопотребление

С архитектурой Nehalem Intel не смогла устоять перед искушением расширить и так уже длинный список инструкций SSE. Nehalem поддерживает SSE 4.2, то есть все инструкции, которые присутствовали у Penryn (SSE4.1) плюс ещё семь. Большинство инструкций связаны с обработкой строк символов, и одно из предназначений, по словам Intel, заключается в ускорении обработки XML-файлов.

SSE 4.2 и энергопотребление

Две инструкции нацелены на специфические приложения; команда POPCNT, появившаяся в Barcelona, используется для подсчёта числа ненулевых битов в регистре. По информации Intel, эта инструкция очень полезна в приложениях распознавания голоса и секвенирования ДНК. Последняя инструкция, CRC32, используется для ускорения расчёта кода обнаружения ошибок.

Энергопотребление под контролем

Вновь и вновь Intel говорит, что для всех потенциальных инноваций в одной из новых архитектур, инженеры взвешивали увеличение производительности с изменением энергопотребления - они хорошо выучили уроки по Pentium 4. С архитектурой Nehalem инженеры пошли ещё дальше с развитием технологий ограничения энергопотребления. Теперь у процессора есть собственный микроконтроллер Power Control Unit, который постоянно отслеживает температуру и энергопотребление ядер, и даже может полностью их отключать, если ядра не используются. Благодаря этой технологии энергопотребление неиспользуемых ядер близко к нулю, в то время как до Nehalem были потери, связанные с токами утечки.

Nehalem


Нажмите на картинку для увеличения.

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

Nehalem


Нажмите на картинку для увеличения.

Nehalem


Нажмите на картинку для увеличения.

Обратите внимание, что, как и в случае процессора Atom, кэши L1 и L2 у Nehalem используют по восемь транзисторов на ячейку вместо привычных шести, что снижает энергопотребление за счёт несколько большей площади кристалла.

Источник: http://www.thg.ru | Автор: Дмитрий Чеканов,
Категория: Железо | Просмотров: 584 | Добавил: KroX | Рейтинг: |
Последние новости
[2009-01-21]53 графических адаптера в тестах на потребление мощности
[2009-01-21]Обнаружен протеин, способный убивать раковые клетки
[2009-01-08]Карты памяти стандарта SDXC смогут вместить до 2 Тб данных
[2008-12-30]Тест 14 видеокарт в новейшей игре Prince of Persia Prodigy
[2008-12-26]Создан искусственный костный мозг
[2008-12-26]Громкие премьеры грядущей выставки CES 2009
[2008-12-25]Процессоры AMD Phenom II могут поступить в продажу раньше намеченного срока
[2008-12-25]Размеры живых существ увеличивались гигантскими скачками
[2008-12-25]Топ 10 лучших смартфонов 2008 года
[2008-12-24]Задержка анонса процессоров Fusion может принести AMD пользу
Всего комментариев: 0
Имя *:
Email *:
Код *:
Copyright OURWORLD © 2024
Сайт управляется системой uCoz