Выбор оперативной памяти по платформам. Какую память купить для моего процессора? Оперативная память Контроллер оперативной памяти и где он находится

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

Перемещение контроллера памяти непосредственно в современные процессоры достаточно сильно сказывается на общей производительности компьютерных систем. Главным фактором тут является исчезновение «посредника» между процессором и памятью в лице «северного моста». Производительность процессора больше не зависит от используемого чипсета и, как правило, вообще от системной платы (т.е. последняя превращается просто в объединительную панель).

Оперативная память следующего поколения, DDR4 SDRAM, привнесла в серверные, настольные и мобильные платформы значительное увеличение производительности. Но достижение новых рубежей быстродействия требует радикальных изменений в топологии подсистемы памяти. Эффективная частота модулей DDR4 SDRAM составит от 2133 до 4266 МГц. Перспективные модули памяти не только быстрее, но и экономичнее своих предшественников. Они используют пониженное до 1,1-1,2 В напряжение питания, а для энергоэффективной памяти штатным является напряжение 1,05 В. Производителям чипов DRAM при изготовлении микросхем DDR4 SDRAM пришлось прибегать к использованию самых передовых производственных технологий.

Массовый переход на использование DDR4 SDRAM планировался на 2015 год, но при этом необходимо иметь в виду, что экстремально высокие скорости работы памяти нового поколения потребовали внесения изменений в привычную структуру всей подсистемы памяти. Дело в том, что контроллеры DDR4 SDRAM смогут справиться лишь с единственным модулем в каждом канале. Это значит, что на смену параллельному соединению модулей памяти в каждом канале придёт чётко выраженная топология точка-точка (каждая установленная планка DDR4 будет задействовать разные каналы). Чтобы гарантировать высокие частоты спецификация DDR4 поддерживает только один модуль на каждый контроллер памяти. Это означает, что производителям потребовалось увеличить плотность чипов памяти и создать более продвинутые модули. В то же время тайминги продолжали расти, хотя время доступа продолжало снижаться.

Компания Samsung Electronics освоила выпуск многоярусных 512-Мбит чипов DRAM по технологии TSV. Именно эту технологию планирует использовать для выпуска DDR4. Таким образом, планируется добиться выпуска относительно недорогих чипов памяти DDR4 очень высокой ёмкости.

Ещё один хорошо известный и уже зарекомендовавший себя способ - использование техники так называемой "разгружающей памяти" - LR-DIMM (Load-Reduce DIMM). Суть идеи состоит в том, что в состав модуля памяти LR-DIMM входит специальный чип (или несколько чипов), буферизирующих все сигналы шины и позволяющих увеличить количество поддерживаемой системой памяти. Правда, не стоит забывать про единственный, пожалуй, но от этого не менее существенный недостаток LR-DIMM: буферизирование неизбежно ведёт к дополнительному увеличению латентности, которая у памяти DDR4 по определению будет и без того немаленькая. Для сегмента серверных и high-end вычислений, где востребован очень большой объём памяти, предлагается совершенно иной выход из ситуации. Здесь предполагается использование высокоскоростной коммутации специальными многовходовыми чипами-коммутаторами.

Компании Intel и Micron совместными усилиями создали новый тип системы хранения данных, который в одну тысячу раз быстрее самой передовой памяти NAND Flash. Новый тип памяти, получивший название 3D XPoint, показывает скорости чтения и записи в тысячу раз превышающие скорость обычной памяти NAND, а также обладает высокой степенью прочности и плотности. Новостное агентство CNET сообщает, что новая память в десять раз плотнее чипов NAND и позволяет на той же физической площади сохранять больше данных и при этом потребляет меньше питания. Intel и Micron заявляют, что их новый тип памяти может использоваться как в качестве системной, так и в качестве энергозависимой памяти, то есть, другими словами, ее можно использовать в качестве замены как оперативной RAM-памяти, так и SSD. В настоящий момент компьютеры могут взаимодействовать с новым типом памяти через интерфейс PCI Express, однако Intel говорит, что такой тип подключения не сможет раскрыть весь потенциал скоростей новой памяти, поэтому для максимальной эффективности памяти XPoint придется разработать новую архитектуру материнской платы.

Благодаря новой технологии 3DXpoint (кросс-поинт) ячейка памяти меняет сопротивление для различения между нулем и единицей. Поскольку ячейка памяти Optane не одержит транзистора, плотность хранения данных в памяти Optane превышает в 10 раз показатели NAND Flash. Доступ к индивидуальной ячейке обеспечивает сочетание определенных напряжений на пересекающихся линиях проводников. Аббревиатура 3D введена поскольку ячейки в памяти расположены в несколько слоев.

Уже в 2017 году технология получила широкое применение и будет использоваться как в аналогах флеш-карт, так и в модулях оперативной памяти. Благодаря новой техноголии, компьютерные игры получат мощнейшее развитие, ведь сложные по объему памяти локации и карты будут загружаться мгновенно. Intel заявляет о 1000-кратном превосходстве нового типа памяти, по сравнению с привычными нам флеш-картами и жесткими дисками. Устройства под брендом Optane будет производить компания Micron с использованием 20-нм техпроцесса. В первую очередь будет произведен выпуск 2.5 дюймовых твердотельных накопителей SSD, но также выйдут диски SSD с другими типоразмерами, дополнительно компания выпустит модули оперативной памяти Оптейн DDR4 для серверных платформ Интел.

Итак, ранее выше мы уже говорили о том, что как команды, так и данные, попадают в процессор из оперативной памяти. На самом деле всё немного сложнее. В большинстве современных x86-систем (то есть компьютеров на базе x86-процессоров), процессор как устройство к памяти обращаться вообще не может, так как не имеет в своем составе соответствующих узлов. Поэтому он обращается к «промежуточному» специализированному устройству, называемому контроллером памяти, а уже тот, в свою очередь - к микросхемам ОЗУ, размещенным на модулях памяти. Модули вы наверняка видели - это такие длинные узкие текстолитовые «планочки» (фактически - небольшие платы) с некоторым количеством микросхем на них, вставляемые в специальные разъемы на системной плате. Роль контроллера ОЗУ, таким образом, проста: он служит своего рода «мостом»* между памятью и использующими ее устройствами (кстати, к ним относится не только процессор, но об этом - чуть позже). Как правило, контроллер памяти входит в состав чипсета - набора микросхем, являющегося основой системной платы. От быстродействия контроллера во многом зависит скорость обмена данными между процессором и памятью, это один из важнейших компонентов, влияющих на общую производительность компьютера.

* - кстати, контроллер памяти физически находится в микросхеме чипсета, традиционно называемой «северным мостом».

Процессорная шина

Любой процессор обязательно оснащён процессорной шиной, которую в среде x86 CPU принято называть FSB (Front Side Bus). Эта шина служит каналом связи между процессором и всеми остальными устройствами в компьютере: памятью, видеокартой, жёстким диском, и так далее. Впрочем, как мы уже знаем из предыдущего раздела, между собственно памятью и процессором находится контроллер памяти. Соответственно: процессор посредством FSB связывается с контроллером памяти, а уже тот, в свою очередь, по специальной шине (назовём её, не мудрствуя лукаво, «шиной памяти») - с модулями ОЗУ на плате. Однако, повторимся: поскольку «внешняя» шина у классического x86 CPU всего одна, она используется не только для работы с памятью, но и для общения процессора со всеми остальными устройствами.

Различия между традиционной для x86 CPU архитектурой и K8/AMD64

Революционность подхода компании AMD состоит в том, что её процессоры с архитектурой AMD64 (и микроархитектурой, которую условно принято называть «K8») оснащены множеством «внешних» шин. При этом одна или несколько шин HyperTransport служат для связи со всеми устройствами кроме памяти, а отдельная группа из одной или двух (в случае двухканального контроллера) шин - исключительно для работы процессора с памятью. Преимущество интеграции контроллера памяти прямо в процессор, очевидно: «путь от ядра до памяти» становится заметно «короче», что позволяет работать с ОЗУ быстрее. Правда, имеются у данного подхода и недостатки. Так, например, если ранее устройства типа жёсткого диска или видеокарты могли работать с памятью через выделенный, независимый контроллер - то в случае с архитектурой AMD64 они вынуждены работать с ОЗУ через контроллер, размещённый на процессоре. Так как CPU в данной архитектуре является единственным устройством, имеющим прямой доступ к памяти. Де-факто, в противостоянии «внешний контроллер vs. интегрированный», сложился паритет: с одной стороны, на данный момент AMD является единственным производителем десктопных x86-процессоров с интегрированным контроллером памяти, с другой - компания вроде бы вполне довольна этим решением, и не собирается от него отказываться. С третьей - Intel тоже не собирается отказываться от внешнего

Памятью называется устройство, предназначенное для записи (хранения) и считывания информации.

В памяти контроллера хранятся:

  1. обслуживающие программы изготовителя,
  2. программы пользователя,
  3. конфигурация контроллера,
  4. блоки данных (значения переменных, таймеров, счетчиков, меркеров и др.).

Свойства памяти. Память характеризуется:

  1. Объем памяти (KВ, MВ или GВ).
  2. Скорость или время обращения к памяти.
  3. Энергозависимость. Поведение после отключения питания .

Рис. 3.4 Виды памяти (рисунок автора) .

Оперативная память (RAM - random access memory ).

Преимущество.

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

Недостаток.

Основным свойством этой памяти является энергозависимость, т.е.потеря данных после отключения электрического питания.

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

Элементом оперативной памяти является электронный триггер (статическая память) или электрический конденсатор (динамическая память).

Рис. 3.5 Триггер - основной элемент RAM памяти (рисунок автора) .

Динамическая память требует циклической подзарядки конденсаторов, однако, она более дешевая по сравнению со статической памятью.

Матрица памяти представляет собой совокупность отдельных ячеек памяти – триггеров.

1 ряд матрицы содержит 8 ячеек памяти (8 Bit соответствует 1 Byte).

Каждая ячейка памяти имеет свой уникальный адрес (№ ряда «точка» № бита).

Ряды (биты) нумеруются справа налево от «0» до «7».

Строки (байты) нумеруются сверху вниз, начиная с «0».

Рис. 3.6 Матрица памяти (рисунок автора) .

Постоянная память (ROM - read only memory ) предназначена для продолжительного хранения информации. Основным отличием от оперативной памяти является то, что она способна сохранять информацию без источника питания , т.е. является энергонезависимой.

Эта память, в свою очередь, подразделяется на два типа: однократно (ROM) – и многократно перепрограммируемую (PROM) .

Перепрограммируемую память записывает пользователь с помощью программаторов. Для этого необходимо предварительно стереть содержимое памяти.

К старому типу перепрограммируемой памятиотноситься ЕPROM - память, стираемая ультрафиолетовыми лучами (EPROM - erasable programmable read only memory ).

Рис. 3.7 Память ЕPROM стирается ультрафиолетовыми лучами (источник http://ru.wikipedia.org/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Eprom.jpg) .

EEPROM (Electrically Erasable Programmable Read-Only Memory ) - электрически стираемое перепрограммируемое постоянное запоминающее устройство (ЭСППЗУ), один из видов энергонезависимой памяти (таких как PROM и EPROM ). Память такого типа может стираться и заполняться данными до миллиона раз.

На сегодняшний день классическая двух - транзисторная технология EEPROM практически полностью вытеснена NOR флэш-памятью. Однако название EEPROM прочно закрепилось за этим сегментом памяти независимо от технологии.

Рис. 3.8 Программирование флеш-памяти.

(источник http://ru.wikipedia.org/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Flash_programming_ru.svg ).

Флеш-память (flash memory ) - разновидность твердотельной полупроводниковой энергонезависимой перезаписываемой памяти.

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

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

Условное деление областей памяти контроллера

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

Загрузочная память – это энергонезависимая память для программы пользователя,

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

Рабочая память – это энергозависимая память. Контроллер копирует некоторые элементы проекта из загрузочной памяти в рабочую память. Эта область памяти теряется при отключении питания, а при возвращении питания контроллер ее восстанавливает.

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


Восстановление информации

Рис. 3.9 Фазы восстановления информации (рисунок автора).

1. Информация о состоянии процесса управления, сохраненная в оперативную память, называется образом процесса управления POU . Т.е. все физические клеммы блока входа- выхода имеют виртуальных двойников (триггеры) в памяти контроллера. Обычно, для увеличения скорости обмена информацией, процессор обращается за информацией в оперативную память (а не к физическим клеммам входа/ выхода). Запись результатов обработки программы из образа процесса в клеммы выхода производится циклично.

2. После отключения питающего напряжения (напряжение падает ниже критического уровня) важнейшая информация сохраняется обратно из RAM в EEPROM. Области данных, подлежащих сохранению, определяет пользователь.

  • Что называется матрицей памяти?
  • Сколько ячеек памяти в одном ряду матрицы памяти?
  • Как нумеруются столбцы матрицы памяти (направление и диапазон)?
  • На какие основные типы подразделяется память контроллера (назовите только два типа)?
  • Какими преимуществами обладает один тип памяти перед другим (два ответа)?
  • На какие типы подразделяется оперативная память контроллера (2)?
  • На какие типы подразделяется постоянная память по кратности программирования (2)?
  • На какие типы подразделяется перепрограммируемая постоянная память по способу стирания (2)?
  • Откуда появляется информация в RAM при включение питания контроллера?
  • Пропадает ли вся информация из RAM при выключении питания (если не пропадает, то куда и какая информация сохраняется)?
  • Как называется информация о состоянии клемм входа/ выхода в оперативной памяти?
  • С каким блоком памяти, в основном, работает процессор?

  • В первый месяц осени мы активно разбираем вопросы выбора оперативной памяти для нового персонального компьютера. Так как все современные системы поддерживают исключительно DDR3 тип памяти, именно о ней мы и ведем речь в статьях. В предыдущих статьях мы разобрали вопросы выбора планок оперативной памяти и ее типов, в отдельной статье мы остановились на вопросах выбора оптимального объема памяти для персонального компьютера. В данной завершающей обзорной статье мы хотели бы остановиться на вопросах выбора оперативной памяти применительно к процессорным платформам, существующим на рынках.
    Рассмотрение сокетных платформ следует начать с того, что каждый процессорный сокет рассчитан на определенный тип процессоров, а для материнских плат выпускаются собственные чипы. Контроллер оперативной памяти встроен в современные процессоры, поэтому можно смело заявлять, что тип рекомендуемой памяти всецело зависит от центрального процессора, а тип примененного процессора от выбранного сокета и платформы. Начнем рассмотрение с популярных сокетных платформ компании AMD.

    Одной из популярных и одновременно огорчивших пользователей оказался сокет AMD Socket FM1 . Данный сокет предназначен для использования процессоров AMD Llano. Данные процессоры имеют интегрированный контроллер оперативной памяти и неплохое графическое ядро. Максимальной официально поддерживаемой рабочей частотой планок оперативной памяти для данного сокета является частота 1866 Мгц. Поэтому мы рекомендуем приобретать именно данные планки оперативной памяти, так как они достаточно доступные на сегодняшний день. Следует отдельно выделить, что контроллер процессоров формата FM1 обладает способностью показывать отличный разгонный потенциал памяти, поэтому имеет смысл присмотреться к хорошо разгоняемым модулям, если вы планируете разгон на базе данной платфомы.

    Картинка кликабельна --


    Буквально через две недели официально должны будут представлены новые процессоры на базе платформы Socket FM2 для процессоров AMD Trinity. Компания AMD, которая славилась преемственностью платформ "кинула" покупателей платформы FM1 и они теперь не смогут установить в свою систему процессоры нового поколения.

    Новые процессоры AMD Trinity основаны на архитектуре Piledriver, то есть вычислительные ядра данных процессоров должны будут работать быстрее, чем у AMD Llano. Сообщается об обновлении интегрированной графики в процессорах. В частности, наиболее быстрым графическим блоком будет AMD Radeon HD 7660D. Следует отметить, что архитектура данных ядер не аналогична архитектуре дискретных видеокарт AMD Radeon HD 7000, к примеру, ядрам Tahiti, поэтому возлагать особых надежд на красивые цифры не следует.

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

    По предварительным данным, контроллер памяти двухъядерного процессора AMD A6-5400K с интегрированной графикой AMD Radeon HD 7540D и уровнем тепловыделения 65 ватт будет поддерживать память типа DDR3 с максимальной частотой лишь 1600 Мгц. Все остальные более старшие решения AMD A8-5500, AMD A8-5600K, AMD A10-5700 должны будут поддерживать наиболее быструю сертифицированную память DDR3 - 1866 Мгц.

    Следует отметить, что покупателям AMD A6-5400K не следует гоняться за памятью DDR3-1600 Мгц. Обыкновенный разгон позволит достичь частоты 1866 Мгц, а если вы откажитесь от разгона - память все равно сможет работать также как и обычная с рабочей частотой 1600 Мгц. А вот при продаже планок памяти на вторичном рынке у вас могут возникнуть проблемы с продажей устаревающей DDR3-1600 Мгц.

    Контроллеры у процессоров AMD Llano и AMD Trinity двухканальные, поэтому планки необходимо приобретать парные.

    Картинка кликабельна --


    Сокет AM3 от AMD является первой платформой для процессоров с интегрированным контроллером оперативной памяти типа DDR3. Предыдущие платформы 939, AM2, AM2+ поддерживали исключительно DDR2 тип памяти. Контроллер данных процессоров двухканальный, поэтому оперативную память необходимо устанавливать четным количеством планок. Официальной базовой частотой для данных процессоров является 1333 Мгц типа DDR3. При планируемом разгоне имеет смысл приобретать более быстрые планки. Так как платформа AM3 уходит в историю, при покупке нового компьютера все равно необходимо брать наиболее оптимальную память по стоимости, желательно с рабочей частотой 1866 Мгц. Интегрированные профили позволят ей запуститься на базовой частоте 1333 Мгц.

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

    Картинка кликабельна --


    Последним поколением сокетов от AMD для обычных процессоров является AM3+ . Данный сокет создан для процессоров серии Bulldozer и готовящихся к началу продаж процессоров Vishera. На данных архитектурах основаны процессоры AMD FX. Все данные процессоры имеют обновленный двухканальный контроллер памяти, поэтому планки следует приобретать попарно. Официально поддерживаемой частотой является цифра 1866 Мгц. Пользователи активно и агрессивно разгоняют процессоры серии AMD FX, поэтому рекомендуется присматриваться к хорошо разгоняемым модулям. Контроллер данных процессоров легко может покорить цифру в 2133 Мгц по памяти, поэтому чаще всего ограничивающим фактором оказываются модули памяти.

    Картинка кликабельна --


    Постепенно мы переходим к рассмотрению сокетов компании Intel . Основной сокетной платформой компании является LGA 1155 , который используется для процессоров старого поколения Intel Sandy Bridge и нового поколения Inte Ivy Bridge. Контроллер оперативной памяти данных процессоров двухканальный, поэтому планки следует приобретать и устанавливать попарно. Если вы собираете платформу для разгона на соответствующем чипсете материнской платы и покупаете соответствующий процессор серии "K", то надо присматриваться к оверклоккерской оперативной памяти с рабочей частотой 2133 Мгц или даже 2400 Мгц.

    Если же вы не планируете разгон или не знали что нужно приобретать материнские платы на чипсетах с маркировкой "P" или "Z", и процессор с разблокированным множителем - смысла тратить средства нет. Приобретаете стандартные модули памяти и живете спокойно.

    На сокете LGA 1156 мы останавливаться не будем, так как она ушла в истрорию. Лишь отметитм, что контроллер данных процессоров двухканальный. Для разгона также рекомендуется приобретать хорошие модули памяти. Во многих случаях можно обойтись планками с рабочей частотой 1866 Мгц.

    Картинка кликабельна --


    Платформа LGA 1366 в отличии от LGA 1156 продолжает свою жизнь. Данная платформа является первой и единственной с наличием трехканального контроллера оперативной памяти в процессорах. Особенности разгона процессоров на ядре Gulftown говорит о том, что для успеха необходимо приобретать качественные комплекты оверклоккерской оперативной памяти. Если бюджет ограничен, вполне можно ограничиться планками с частотой 1866 Мгц.

    Картинка кликабельна --


    Платформа LGA 2011 - решение для энтузиастов желающих купить процессоры Intel Sandy Bridge-E. Стоимость процессоров и материнских плат данного формата находятся на наиболее высоком уровне. Процессор имеет четырехканальный контроллер оперативной памяти, поэтому установка четырех модулей одновременно - минимальное требование для пользователя. Учитывая высокую стоимость оверклоккерских комплектов на четыре планки памяти, рекомендовать их покупку мы можем только при неограниченности бюджета. В стандартном случае обычные планки на 1866 Мгц от Samsung или Hynix.

    Очень хочется надеяться, что данная статья поможет вам определиться с выбором памяти для своего процессора.

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

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


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

    Влияние на производительность предсказать сложно, поскольку всё зависит от приложения и операционной системы. 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 успешно обошла конкурента.


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

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

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

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