НАШ МИР
Разделы новостей
Софт [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, 13:30:20
Приветствую Гость | 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): новая архитектура. (Часть 2)
22:07:18

Соединения QuickPath

Хотя архитектура Core была очень эффективной, некоторые детали дизайна начали показывать свой возраст, и первой среди них является шина Front Side Bus (FSB). Эта шина, соединяющая процессор с северным мостом, была очевидным анахронизмом в остальном современной архитектуры. Самые главные недостатки были более всего заметны в многопроцессорных конфигурациях, когда архитектура с трудом справлялась с увеличением нагрузок. Процессорам приходилось совместно использовать эту шину не только для доступа в память, но и для обеспечения когерентности данных, находящихся в соответствующей кэш-памяти.

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

Nehalem


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

Соединения QuickPath

Решение, выбранное Intel под названием QuickPath Interconnect (QPI), не является чем-то новым; оно представляет собой встроенный контроллер памяти и очень быструю последовательную шину "точка-точка". Подобная технология была представлена пять лет назад в процессорах AMD, но на самом деле она ещё старше. Подобные принципы, которые заметны в продуктах AMD и теперь Intel, представляют собой результат работы, проделанной десять лет назад инженерами DEC во время разработки Alpha 21364 (EV7). Поскольку многие бывшие инженеры DEC перешли в компанию из Санта-Клары, неудивительно, что подобные принципы выплыли в последней архитектуре Intel.

С технической точки зрения интерфейс QPI является двунаправленным с двумя 20-битными шинами, по одной на каждое направление, из которых 16 зарезервировано под данные, а оставшиеся четыре - под функции исправления ошибок или служебную информацию протокола. Это даёт максимальную скорость 6,4 GT/s (млрд. передач в секунду) или полезную пропускную способность 12,8 Гбайт/с, как на чтение, так и на передачу. Для сравнения, FSB на самых современных процессорах Intel работает с максимальной тактовой частотой 400 МГц, при этом для передачи адресов требуется два такта (200 MT/s), а данные передаются в режиме QDR, с пропускной способностью 1,6 GT/s. При 64-битной ширине FSB даёт суммарную пропускную способность 12,8 Гбайт/с, но она доступна только для чтения или записи.

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

Соединения QuickPath

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

Соединения QuickPath

Подсистема памяти

Встроенный контроллер памяти

Кажется, что Intel в этом отношении догоняет AMD. Но, как часто бывает, когда гигант что-то делает, то и шаг вперёд получается гигантским. Если у Barcelona используется два 64-битных контроллера памяти DDR2, топовая конфигурация Intel включает целых три контроллера памяти DDR3. Если установить память DDR3-1333, которую Nehalem тоже будет поддерживать, это даст пропускную способность до 32 Гбайт/с в некоторых конфигурациях. Но преимущество встроенного контроллера памяти кроется не только в пропускной способности. Он существенно снижает задержки доступа к памяти, что не менее важно, учитывая, что каждый доступ стоит несколько сотен тактов. В контексте настольного использования снижение задержек встроенного контроллера памяти можно приветствовать, однако полное преимущество от более масштабируемой архитектуры будет заметно в многосокетных серверных конфигурациях. Раньше при добавлении CPU доступная пропускная способность оставалась прежней, однако теперь каждый новый дополнительный процессор увеличивает пропускную способность, поскольку каждый CPU обладает собственной памятью.

Nehalem


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

Конечно, чудес ожидать не следует. Перед нами конфигурация Non Uniform Memory Access (NUMA), то есть доступ к памяти будет обходиться по тем или иным накладным расценкам, в зависимости от того, где данные располагаются в памяти. Понятно, что доступ к локальной памяти будет производиться с самыми низкими задержками и самой высокой пропускной способностью, поскольку доступ к удалённой памяти происходит через промежуточный интерфейс QPI, снижающий производительность.

Nehalem


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

Влияние на производительность предсказать сложно, поскольку всё зависит от приложения и операционной системы. Intel утверждает, что падение производительности при удалённом доступе по задержкам составляет около 70%, а пропускная способность снижается в два раза по сравнению с локальным доступом. По информации Intel, даже при удалённом доступе через интерфейс QPI, задержки будут ниже, чем на предыдущих поколениях процессоров, где контроллер находился на северном мосту. Однако это касается только серверных приложений, которые уже довольно долгое время разрабатываются с учётом конфигураций NUMA.

Трёхуровневая иерархия кэша

Иерархия памяти в Conroe была очень простой; Intel сконцентрировалась на производительности общего кэша L2, который стал лучшим решением для архитектуры, которая нацеливалась, главным образом, на двуядерные конфигурации. Но в случае с Nehalem инженеры начали с нуля и пришли к такому же заключению, что и конкуренты: общий кэш L2 не очень хорошо подходит для "родной" четырёхъядерной архитектуры. Разные ядра могут слишком часто "вымывать" данные, необходимые другим ядрам, что приведёт к слишком многим проблемам с внутренними шинами и арбитражем, пытаясь обеспечить все четыре ядра достаточной пропускной способностью с сохранением задержек на достаточно низком уровне. Чтобы решить эти проблемы, инженеры оснастили каждое ядро собственным кэшем L2. Поскольку он выделен на каждое ядро и относительно мал (256 кбайт), получилось обеспечить кэш очень высокой производительностью; в частности, задержки существенно улучшились по сравнению с Penryn - с 15 тактов до, примерно, 10 тактов.

Трёхуровневая иерархия кэша

Затем есть огромная кэш-память третьего уровня (8 Мбайт), отвечающая за связь между ядрами. На первый взгляд архитектура кэша Nehalem напоминает Barcelona, но работа кэша третьего уровня очень отличается от AMD - она инклюзивная для всех нижних уровней иерархии кэша. Это означает, что если ядро попытается получить доступ к данным, и они отсутствуют в кэше L3, то нет необходимости искать данные в собственных кэшах других ядер - там их нет. Напротив, если данные присутствуют, четыре бита, связанные с каждой строчкой кэш-памяти (один бит на ядро) показывают, могут ли данные потенциально присутствовать (потенциально, но без гарантии) в нижнем кэше другого ядра, и если да, то в каком.

Трёхуровневая иерархия кэша

Эта техника весьма эффективна для обеспечения когерентности персональных кэшей каждого ядра, поскольку она уменьшает потребность в обмене информацией между ядрами. Есть, конечно, недостаток в виде потери части кэш-памяти на данные, присутствующие в кэшах других уровней. Впрочем, не всё так страшно, поскольку кэши L1 и L2 относительно маленькие по сравнению с кэшем L3 - все данные кэшей L1 и L2 занимают, максимум, 1,25 Мбайт в кэше L3 из доступных 8 Мбайт. Как и в случае Barcelona, кэш третьего уровня работает на других частотах по сравнению с самим чипом. Следовательно, задержка доступа на данном уровне может меняться, но она должна составлять около 40 тактов.

Единственные разочарования в новой иерархии кэша Nehalem связаны с кэшем L1. Пропускная способность кэша инструкций не была увеличена - по-прежнему 16 байт на такт по сравнению с 32 у Barcelona. Это может создать "узкое место" в серверно-ориентированной архитектуре, поскольку 64-битные инструкции крупнее, чем 32-битные, тем более что у Nehalem на один декодер больше, чем у Barcelona, что сильнее нагружает кэш. Что касается кэша данных, его задержка была увеличена до четырёх тактов по сравнению с тремя у Conroe, облегчая работу на высоких тактовых частотах. Но закончим мы на положительной новости: инженеры Intel увеличили число промахов кэша данных L1, которые архитектура может обрабатывать параллельно.

TLB

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

Если для каждой операции работы с памятью требовался бы такой этап перевода адресов, то всё работало бы слишком медленно. Поэтому инженеры вернулись к принципу физической адресации, добавив небольшую кэш-память напрямую на процессор, которая хранит соответствие для нескольких недавно запрошенных адресов. Кэш-память называется Translation Lookaside Buffer (TLB). Intel полностью переделала TLB в новой архитектуре. До сих пор Core 2 использовал TLB первого уровня очень маленького размера (16 записей), но очень быстрый и только для загрузок, а также больший кэш TLB второго уровня (256 записей), который отвечал за загрузки, отсутствующие в TLB L1, а также и записи.

Nehalem теперь оснастился полноценным двухуровневым TLB: кэш TLB первого уровня разделён для данных и инструкций. Кэш TLB L1 для данных может хранить 64 записи для маленьких страниц (4K) или 32 записи для больших страниц (2M/4M), а кэш TLB L1 для инструкций может хранить 128 записей для маленьких страниц (как и в случае Core2), а также семь для крупных. Второй уровень состоит из унифицированного кэша, который может хранить до 512 записей и работает только с маленькими страницами. Цель такого улучшения заключается в увеличении производительности приложений, которые используют большие массивы данных. Как и в случае двухуровневой системы предсказания ветвлений, перед нами ещё одно свидетельство серверной ориентации архитектуры.

Давайте на время вернёмся к SMT, поскольку эта технология тоже влияет на TLB. Кэш L1 TLB для данных и TLB L2 динамически распределяются между двумя потоками. Напротив, кэш L1 TLB для инструкций статически распределяется для малых страниц, а выделенный для больших страниц полностью копируется - это вполне понятно, учитывая его малый размер (семь записей на поток).

Доступ к памяти и предварительная выборка

Оптимизированный невыровненный доступ к памяти (Unaligned Memory Access)

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

Так, чтение из памяти, при котором происходил перехлёст двух строчек кэша, замедлялось примерно на 12 тактов, по сравнению с 10 тактами для записи. Инженеры Intel оптимизировали подобный тип обращений, чтобы он выполнялся быстрее. Начнём с того, что теперь нет падения производительности при использовании невыровненных инструкций чтения/записи в случаях, когда данные выровнены в памяти. В других случаях Intel тоже оптимизировала доступ, снизив падение производительности по сравнению с архитектурой Core.

Больше блоков предварительной выборки с более эффективной работой

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

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

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

Заключение

Conroe стал серьёзным фундаментом для новых процессоров, и Nehalem построен как раз на нём. Здесь используется такая же эффективная архитектура, но теперь она намного более модульная и масштабируемая, что должно гарантировать успех в разных рыночных сегментах. Мы не говорим о том, что Nehalem революционизировал архитектуру Core, но новый процессор революционизировал платформу Intel, которая теперь стала достойным соответствием для AMD по дизайну, а по реализации Intel успешно обошла конкурента.

Nehalem


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

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

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

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

Источник: http://www.thg.ru | Автор: Дмитрий Чеканов,
Категория: Железо | Просмотров: 495 | Добавил: 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