Контроллеры памяти могут защитить память пк. Перемещение контроллера памяти непосредственно в современные процессоры Встроенный контроллер памяти в процессоре что

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

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

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

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

  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 при выключении питания (если не пропадает, то куда и какая информация сохраняется)?
  • Как называется информация о состоянии клемм входа/ выхода в оперативной памяти?
  • С каким блоком памяти, в основном, работает процессор?

  • В этом сезоне мы уже могли убедиться в том, что Intel больше не брезгует перенимать у AMD некоторые прогрессивные идеи. В частности, совместимость наборов команд AMD64 и IA-32e многими трактуется именно так. AMD же никогда не брезговала использовать продвигаемые Intel технологии - даже в современный период относительной независимости она ратует за скорейшее внедрение поддержки SSE3 в своих процессорах.

    реклама

    Оказывается, что и встроенный контроллер памяти может появиться в процессорах Intel. По крайне мере, в этом уверены сотрудники сайта The Inquirer . Один из крупных партнеров Intel признался им в доверительной беседе, что будущие процессоры Intel обзаведутся встроенными контроллерами памяти. Впрочем, поскольку эта тенденция привязывалась к поддержке 64-битных расширений, мы можем предположить, что случится это не очень скоро, ведь легализация 64-битных расширений в младших сегментах процессоров Intel намечена на середину 2006 года.

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

    реклама

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

    Остается лишь подождать пару лет, чтобы убедиться в достоверности этой информации или ее ложности:).

    C момента появления процессоров на ядре Nehalem, одним из их преимуществ все считали интегрированный трехканальный контроллер памяти. Не просто интегрированный контроллер памяти (ИКП сокращенно), а именно трехканальный . Понятно, чем это «круто» - все-таки одноканальные и двухканальные контроллеры памяти у AMD были еще за пять лет до этого, так что дополнительный канал, да еще и наиболее скоростной на данный момент памяти типа DDR3, выглядел весьма серьезным преимуществом. По мнению многих пользователей, также и одним основных факторов, которым процессоры линейки Core i7 обязаны своей высокой производительностью. Стоит заметить, что сама компания Intel это мнение никак не опровергала, за что и немного поплатилась - по-настоящему массовые процессоры архитектуры Nehalem, которые будут выпущены в начале осени, рассчитаны на конструктив LGA1156, предполагающий использование лишь двух каналов памяти. Казалось бы, серьезный недостаток новых моделей, который неспособен будет позволить им конкурировать со старшими братьями. Но так ли это?

    В обзорах материнских плат мы уже пробовали оценить полезность многоканального режима памяти в процессорах под LGA1366, и результаты оказались, мягко говоря, неутешительными. Для режимов, разумеется, а не для пользователей. Однако проверки проводились на весьма ограниченном количестве приложений, так что окончательного ответа на вопрос, нужен ли трехканальный режим на практике, они не давали. Сейчас мы решили восполнить этот пробел. Точнее, сначала просто возникло желание опробовать не трех-, а двухканальный режим, для последующего более корректного сравнения производительности Core i7 900-й и 800-й серий: чтобы потом не строить гипотез о том, что сильнее всего повлияло на результаты (если они, действительно, окажутся существенно различными). Однако просто «прогнать» тесты из последней версии нашей методики в еще одной конфигурации - слишком скучно, да и из такого противостояния всего двух вариантов хорошей статьи получиться не может, поэтому мы немного усложнили задачу.

    Конфигурация тестовых стендов

    Все тестирование проводилось с использованием процессора Core i7 920, материнской платы Intel DX58SO («Smackover») и референс-видеокарты на базе NVIDIA GeForce GTX 275 - словом, как все положено, согласно версии 4.0 нашей методики тестирования. Различалась только память. В дополнение к обычно используемому нами комплекту Kingston , мы взяли еще и кит от Apacer, имеющий вдвое меньший объем. Все модули поддерживают работу на более высоких частотах, нежели официальные для Core i7 920 1066 МГц, но мы тестировали их именно на этой частоте по схеме 8-8-8-19.

    Получилось четырех конфигурации, представленные в таблице:

    Почему именно они? Две трехканальных нам нужны, чтобы четко понять - что важно в каком-то приложении: трехканальность или суммарный объем? Это будет хорошо видно по результатам: если и 3×2, и 3×1 в победителях, значит, польза от трех каналов есть, если только первый, значит, приложению просто нужно много памяти (точнее, оно способно ее использовать). Без 3×1 к однозначному ответу прийти было бы сложно. Полезность участия в тестах 2×2 очевидна - именно таким образом комплектуются современные системы на Core 2 и процессорах AMD, и именно он на некоторое время станет весьма массовым для систем на LGA1156 (конечно, можно было бы протестировать память и в конфигурации 2×1, но это уже с точки зрения систем, не относящихся к бюджетному сектору, совсем не интересно). 1×4 выглядит крайне синтетичным, поскольку вряд ли кто-то, имея два модуля памяти по 2 ГБ, будет их устанавливать в один канал, «презрев» остальные, однако… Он нам нужен для повышения общей образованности. Да и модули DDR3, емкостью 4 ГБ, уже появились. К сожалению, пока это экзотика, даже до наших рук не добравшаяся (иначе бы в списке тестируемых обязательно был бы и вариант 2×4), однако массовое распространение на рынке, как таких модулей, так и китов на их основе лишь вопрос времени.

    Подробные результаты всех подтестов, как обычно, представлены в таблице , в формате Excel. Заметим, что в сегодняшнем тестировании они будут иногда даже более интересными, чем общие усредненные показатели по группам, так что тем, кому интересна детальная информация, не стоит отказывать себе в удовольствии с ними познакомиться.

    Пристрелка

    Но для начала мы решили проверить производительность каждого из вариантов в синтетическом приложении, в роли которого сегодня выступал Everest 4.6 (да, это далеко не последняя версия популярного тестового пакета, однако и «реальный» софт обновляется далеко не мгновенно, так что эти результаты нам весьма интересны даже если предположить слабую оптимизированность 4.6 под Nehalem).

    И первые же результаты несколько обескураживают - как мы видим, никакого видимого прироста от задействования третьего канала ИКП нет. Более того - три модуля от Apacer справляются с этой задачей медленнее, чем два от Kingston. В то же время одноканальный режим - явный аутсайдер. Теоретическая ПСП DDR3 1066 составляет 8528 МБ/с, во что мы и уперлись - это понятно. Но добавление еще одного канала увеличивает скорость чтения далеко не в два, а менее чем в полтора раза, а третий вообще ничего не дает.

    Со скоростью записи все еще веселее - одноканальный режим честно уперся в теоретическую ПСП, а увеличение количества каналов дало лишь менее 20% во всех случаях.

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

    Уже можно делать определенные выводы. Как мы помним из поведения других архитектур с ИКП (AMD K8/K10), они наиболее восприимчивы именно к задержкам при доступе к памяти, что очень заметно в реальных приложениях. Вряд ли Nehalem будет вести себя строго наоборот. Причем все это на фоне одинаковых скоростей чтения и записи, то есть двухканальный режим должен стать лидером. Одноканальный - уже не факт, что будет слишком быстрым: задержки меньше, но и ПСП гораздо ниже, а это не может не сказаться. Насколько сильно - мы и проверим. И попутно посмотрим, как разные приложения относятся к разному полному объему памяти: синтетические бенчмарки никакой информации по этому поводу дать не могут.

    3D-визуализация

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

    Рендеринг трёхмерных сцен

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

    Научные и инженерные расчёты

    А в этой группе появляется еще один класс приложений, в дополнение к тем, кому нужно как можно больше памяти и кому объем не важен - те, кто начинает в зависимости от увеличения ОЗУ работать медленнее. На первый взгляд, ситуация необъяснимая - если скорость падает от нехватки памяти, это понять легко, но избыток просто никто не должен «заметить». С другой стороны - а почему не должен? Эффективность кэширования вполне может зависеть от объема ОЗУ и даже должна от него зависеть. Если конкретное приложение использует лишь небольшой объем памяти, причем постоянный, ему будет «доставаться» разный объем кэш-памяти процессора. Например, при шести установленных гигабайтах лишь половина из 8 МБ кэша L3 будет отведена для данных программы «переднего плана» (не забываем, что в оставшейся памяти тоже может кто-то «жить», пусть и не очень активно, но на кэш при этом претендовать), а при трех их обслуживанием будут заниматься уже 2/3 от 8 МБ. Любопытный эффект, конечно, жаль только несколько в стороне от основной темы нашего исследования лежащий. С ней все, как обычно - в среднем, самым быстрым оказывается двухканальный режим, а из двух вариантов трехканального, несмотря на наличие упомянутых выше приложений-ренегатов, производительнее тот, где суммарный объем памяти выше.

    Растровая графика

    В основном, все понятно, поскольку среди растровых редакторов нам встречаются все три уже определенных «группы» приложений. Хотя и с некоторыми вариациями - так, например, обоим продуктам Corel все равно, сколько памяти и какой - 3 или 4 ГБ неважно, но лишь бы не 6. Но обнаружилось просто очень «памятелюбивое» приложение - Adobe Photoshop. Причем тут очень интересен не общий результат подтестов, а некоторые из них в отдельности. Точнее, один - Convert. И настолько интересен, что продублируем в статье соответствующий кусок таблицы с «сырыми» данными.

    Core 2 Quad Q9300 2×2 Core i7 920 3×2 Core i7 920 2×2 Core i7 920 1×4 Core i7 920 3×1
    0:09:07 0:04:45 0:08:05 0:08:12 0:17:42

    Вывод? Несмотря на то, что большинство обзоров в сети, где сравниваются процессоры разных архитектур в этом приложении (в меньшинстве обзоров теста по Photoshop просто нет, так что можно даже сказать, что во всех статьях такого рода), утверждается, что Core i7 просто идеальный процессор для Photoshop, как мы видим, ничего особо выдающегося в нем нет. Идеальным тут является не архитектура ядра, а количество памяти. При 6 ГБ Core i7 920 вдвое обгоняет Core 2 Quad Q9300, обеспеченный всего 4 ГБ. Именно такие сравнения в большинстве статей и встречаются (в том числе и на нашем сайте, но и прочие ресурсы ведут себя аналогично): 3х2 для процессоров под LGA1366 и 2х2 для Core2, AMD Phenom и т.п. Но если мы ограничим первый из процессоров теми же 4 ГБ (причем неважно, каким образом набранными), то выясняется… что отличие от Core 2 Quad вполне укладывается в допустимое, с точки зрения разницы в тактовой частоте. А если мы «отберем» у Core i7 еще всего один гигабайт памяти (казалось бы - 3 или 4: невелика разница), то результат ухудшится еще вдвое ! Это наиболее показательный пример, однако и другие подтесты ведут себя сходным образом, хоть микроскопическую, но разницу находят всегда. И ничего не поделаешь - Photoshop действительно память «любит», причем чем больше «весят» обрабатываемые в нем файлы, тем больше «любит», а все утилиты тестирования производительности в данном приложении (а не только наши самописные тесты), естественно, оперируют именно большими файлами.

    Впрочем, нельзя сказать, что в высоких результатах совсем нет заслуги самого Core i7, а только преференции от большого количества памяти. Трехканальный ИКП как раз и позволяет установить больше памяти при прочих равных условиях. Но об этом подробно мы поговорим чуть позже.

    Сжатие данных

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

    Компиляция (VC++)

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

    Java

    Тест Java-машины оказался очень восприимчив к скорости чтения из памяти, но и ее общий объем ему достаточно важен. Именно такую картину можно было бы ожидать везде, если бы верны были наивные предположения о том, что трехканальный доступ к памяти является залогом высокой производительности, но памяти при этом много не бывает. Жаль только, что среди протестированных приложений эти мечты подтверждены буквально пару-тройку раз. Но, как раз, пример, когда подтверждены.

    Кодирование аудио

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

    Кодирование видео

    А вот тут все почти так, как должно быть в «наивной теории». Портит картинку только недостаточно заметный проигрыш двухканального режима. Точнее, будет сказать, почти незаметный. Да и тому, что он вообще есть, мы обязаны ровно одному приложению - DivX. Пример хорошей оптимизации под все особенности сегодняшние Core i7. Как он поведет себя на «завтрашних» будем проверять уже менее чем через месяц.

    Игровое 3D

    Очень, очень спокойная немного непонятная общая картина. Однако под внешним спокойствием в детальных результатах таится настоящая буря. Пристрастия игр сильно разделились, а у каких как - оставим в качестве задачи для самостоятельного изучения. Главный вывод - для игр (именно как множества, а не для одной конкретной игры) вопрос конфигурации памяти не является каким-то важным. В общем-то, решать его даже менее необходимо, чем вопрос выбора центрального процессора (разумеется, если речь не идет о совсем уж бюджетном секторе, типа Core 2 Duo или вообще Pentium/Celeron). Главным же вопросом, стоящим перед «хардкорным» геймером сегодня, будет: «Потяну на multi-GPU или придется свои желания как-то ограничивать?»

    А зачем вообще нужен трехканальный ИКП?

    Как мы видим, большой пользы от задействования третьего канала контроллера памяти в Core i7 LGA1366 нет. Канал - есть, использовать - можно, но результаты далеко не всегда улучшаются. Чаще даже, наоборот, ухудшаются. Так зачем компания Intel делала ИКП именно трехканальным? Из желания поиграть мускулами (у конкурента два, а мы все три сделаем)? Возможно, такой соблазн тоже был, но вряд ли - все-таки три канала даются достаточно высокой ценой. Причем в прямо смысле: разводка плат становится очень сложной, а сложно - значит дорого. Процессоры можно делать и недорогими (и использованный нами сегодня Core i7 920 тому яркий пример - его розничная цена как Core 2 Quad Q9650), но сама платформа оказывается дороговатой. Причем без особой пользы - для большинства «типично пользовательских» приложений сейчас легко можно ограничиться двумя модулями по 2 ГБ и не волноваться (особенно если учесть процент до сих пор использующих 32-х разрядные операционные системы, где больший объем ОЗУ просто не будет использоваться). Как было сказано в хорошем анекдоте про верблюжонка и его маму: «А зачем нам эти навороты, если мы все равно живем в зоопарке?»

    В том-то и дело, что нынешние Core i7, по сути, в зоопарке и живут. Наилучшим образом под него будут приспособлены «настоящие» настольные модели, рассчитанные под исполнение LGA1156, главным (да и вообще - единственным) отличием которого от LGA1366 является поддержка «всего-навсего» двухканального режима памяти. А LGA1366 - платформа изначально серверная. В серверах нужно много памяти. Ни 4, ни 8 и даже ни 12 ГБ, а действительно много. Там и полсотни гигабайт легко могут оказаться востребованными, а то и недостаточными. Как же можно установить больше памяти в одну систему? Общий объем равен произведению количества модулей на их объем. Стало быть, нужно увеличивать либо количество, либо емкость каждого модуля. Второе - сложно и от производителей процессоров/чипсетов, вообще говоря, не зависит. Более того - освоение индустрией более «плотных» микросхем памяти благотворно сказывается на всех производителях серверных платформ одновременно, так что не может стать конкурентным преимуществом.

    Значит, надо увеличивать количество поддерживаемых модулей. А оно равно (в общем случае) количеству контроллеров памяти, умноженных на количество поддерживаемых каждым модулей. Последнее - произведение числа поддерживаемых каналов на число одновременно работающих на каждом канале модулей. Увеличивать последнее - очень сложная задача, поскольку одновременно нужно и скоростные характеристики не ухудшать, как минимум. Эта проблема даже в настольных системах проявляется, где больше двух-трех модулей на канал не используется. Например, может быть так: один модуль - DDR3 1333, два - DDR3 1066, три - DDR3 800. Очень много медленной памяти, конечно, иногда лучше, чем мало быстрой, но идти на такие издержки все равно нежелательно. А иногда и невозможно.

    Над проблемой увеличения количества поддерживаемых одним каналом контроллера модулей памяти в Intel работали долго и небезуспешно. Однако оказалось, что конечный результат (FB-DIMM) изначально поставленным требованиям удовлетворяет, но его использование вызывает массу нежелательных побочных эффектов.

    Остается только один путь - во-первых, перенести контроллер памяти в процессор, что в многопроцессорной системе автоматически обеспечивает нам поддержку и нескольких контроллеров памяти. Во-вторых, увеличивать количество каналов памяти. И то, и другое было сделано. Результат? В системе на двух Xeon, равно как и в системе на двух Opteron, есть два контроллера памяти. Только в первой оба трехканальные, а во второй - двухканальные, что дает нам шесть и четыре канала памяти, соответственно. При установке двух модулей памяти на канал (очень даже щадящий режим) в первой системе их окажется 12, а во второй - 8. Допустим, каждый модуль имеет емкость 4 ГБ, тогда в первой системе окажется 48 ГБ, а во второй - 32 ГБ. В ряде задач это сразу обеспечит первой системе весомое преимущество. А как в сервере на Оптеронах теми же модулями «добить» память до 48 ГБ? Легко - устанавливаем три модуля на канал и… вся система памяти начинает работать медленнее, поскольку, например, задержки придется сильно увеличить. И получается: при одинаковой скорости работы памяти система «и» имеет в полтора раза больший ее объем, чем система «а», а при равном объеме система «и» работает с памятью быстрее, чем система «а».

    Именно поэтому в Xeon трехканальный контроллер памяти нужен. Он и в Opteron нужен, но не удалось в свое время сделать. Точно так же, как сейчас Intel не удалось четыре канала реализовать. Все равно по этому пути идти обоим производителям, поскольку альтернативным (а именно FB-DIMM и количество модулей на канале увеличивать) один из них уже идти пробовал и остался не очень довольным.

    А зачем все это в зоопарке, на рабочем столе обычного пользователя? Правильно - незачем. Кому нужно - те многопроцессорную рабочую станцию купят и сведут задачу к предыдущей. Основная масса как-то желанием не горела и по 8 ГБ в компьютеры устанавливать (хотя это-то давно доступно), так что ей нет разницы - можно поставить 12 или как. Тем более что сейчас уже при двух модулях на канал двухканального контроллера памяти можно получить и 16 ГБ, а вопрос - насколько это хуже/лучше, чем 24 ГБ, для нормального пользователя компьютера сродни вопросу, сколько ангелов поместятся на кончике иглы.

    Итого

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

    Но! Успокаиваться на этом рано - как мы видим, в общем зачете получилась идиллия именно из-за того, что разные приложения друг друга уравновешивают, однако ведут себя они совершенно по-разному. Кому-то нужно много памяти, кому-то ее увеличение наоборот - мешает, кому-то не важен объем, но жизненно важны низкие задержки, но DivX, по сути, «презрел» все объективно существующие параметры памяти и отдал предпочтение трехканальному режиму в любом виде. Поэтому, при сравнении систем с разными конфигурациями памяти в рамках одной статьи (или самостоятельно), в конкретных тестах не стоит забывать поинтересоваться - как именно получен тот или иной результат. Впрочем, не так уж долго осталось нам возиться именно с разными конфигурациями - LGA1156, напомним, поддерживает только два канала памяти, так что с этими процессорами все будет просто и логично. Устройства в конструктиве LGA1366 мы продолжим тестировать в конфигурации 3х2, однако иногда будем извлекать из запасников и 2х2 (когда нежелательно будет делать поправки в уме на особенности системы памяти). Можно было бы даже полностью перейти на последние, но нет смысла - в среднем, они, конечно, несколько быстрее, но поддержка трех каналов памяти эксклюзивная особенность LGA1366, так что пусть за нее отдувается. Нам просто достаточно помнить, что трехканальный доступ к памяти на этой платформе производительность совсем не увеличивает, а даже наоборот.

    Память

    Память - это устройство для хранения информации. Она состоит из оперативного и постоянного запоминающего устройств. Оперативное запоминающее устройство называется ОЗУ , постоянное запоминающее устройство - ПЗУ .

    ОЗУ- энергозависимая память

    ОЗУ предназначена для записи, считывания и хранения программ (системных и прикладных), исходных данных, промежуточных и окончательных результатов. Доступ к элементам памяти прямой. Другое название – RAM (Random Access Memory) память с произвольным доступом. Все ячейки памяти объединены в группы по 8 бит (1 байт) и каждая такая группа имеет адрес, по которому к ней можно обратиться. ОЗУ используется для временного хранения данных и программ. При выключении компьютера, информация в ОЗУ стирается. ОЗУ - энергозависимая память. В современных компьютерах объем памяти обычно составляет от 512 Мбайт до 4 Гигабайт. Современные прикладные программы часто требуют для своего выполнения 128–256, а то и 512 Мбайта памяти, в противном случае программа просто не сможет работать.

    Оперативная память может строиться на микросхемах динамического (Dinamic Random Access Memory – DRAM ) или статического (Static Random Access Memory –SRAM ) типа. Статический тип памяти обладает существенно более высоким быстродействием, но значительно дороже динамического. Для регистровой памяти (МПП и КЭШ-память) используются SRAM, а ОЗУ основной памяти строится на базе DRAM-микросхем.

    ПЗУ - энергонезависимая память.

    В англоязычной литературе ПЗУ называется Read Only Memory, ROM (память только для чтения). Информация в ПЗУ записывается на заводе-изготовителе микросхем памяти, и в дальнейшем изменить ее значение нельзя. В ПЗУ хранится информация, которая не зависит от операционной системы.

    В ПЗУ находятся:


    • Программа управления работой самого процессора

    • Программы управления дисплеем, клавиатурой, принтером, внешней памятью

    • Программы запуска и остановки ЭВМ (BIOS – Base Input / Outout Sysytem)

    • Программы тестирования устройств, проверяющие при каждом включении компьютера правильность работы его блоков (POST -Power On SelfTest)

    • Информация о том, где на диске находится операционная система .

    CMOS - энергонезависимая память

    CMOS RAM - энергонезависимая память компьютера. Эта микросхема многократной записи имеет высокую плотность размещения элементов (каждая ячейка имеет размер в 1 байт) и малое потребление энергии – для нее вполне достаточно мощности батареи компьютера. Получила название от технологии создания на основе комплементарных металло-оксидных полупроводников (complementary metal-oxide semiconductor - CMOS). CMOS RAM является собой базу данных для хранения информации о конфигурации ПК. Программа запуска компьютера Setup BIOS используется для установки и хранения параметров конфигурации в CMOS RAM. При каждой загрузке системы для определения ее конфигурации проводится считывание параметров, хранящихся в микросхеме CMOS RAM. Более того, поскольку некоторые параметры запуска компьютера можно менять, то все эти вариации хранятся в CMOS. Программа установки BIOS SETUP при записи сохраняет в ней свою системную информацию, которую впоследствии сама же и считывает (при загрузке ПК). Несмотря на явную связь между BIOS и CMOS RAM, это абсолютно разные компоненты.



    Ключевые слова настоящей лекции

    контроллеры, чипсет, порты, USB, COM, LPT, BIOS POST, CMOS, Boot, устройства В/В,

    (controller - регулятор, управляющее устройство) - устройство управления разнообразными устройствами компьютера.

    Чипсет (chipset)

    Набор микросхем, спроектированных для совместной работы с целью выполнения набора каких-либо функций. Так, в компьютерах чипсет, размещенный на материнской плате, выполняет роль связующего компонента, обеспечивающего совместное функционирование подсистем памяти, центрального процессора (ЦП), ввода-вывода и других. Матери́нская пла́та (motherboard, MB , также используется название mainboard - главная плата; сленг. мама , мать , материнка ) - это сложная многослойная печатная плата, на которой устанавливаются основные компоненты персонального компьютера (центральный процессор, контроллер ОЗУ и собственно ОЗУ, загрузочное ПЗУ, контроллеры базовых интерфейсов ввода-вывода), чипсет, разъёмы (слоты) для подключения дополнительных контроллеров, использующих шины USB, PCI и PCI-Express.

    Северный мост (Northbridge; в отдельных чипсетах Intel, контроллер-концентратор памяти Memory Controller Hub, MCH) - системный контроллер чипсета на материнской плате платформы x86, к которому в рамках организации взаимодействия подключены:

    через Front Side Bus - микропроцессор ,

    через шину контроллера памяти - оперативная память ,

    через шину графического контроллера - видеоадаптер ,

    через внутреннюю шину подсоединяется южный мост .

    Южный мост (Southbridge; функциональный контроллер; контроллер-концентратор ввода-вывода I/O Controller Hub, ICH). Обычно это одна микросхема на материнской плате, которая через Северный мост связывает с центральный процессором «медленные» (по сравнению со связкой «ЦП-ОЗУ») взаимодействия (например разъёмы шин для подключения периферийных устройств).

    AGP (от англ. Accelerated Graphics Port, ускоренный графический порт) - разработанная в 1997 году компанией Intel, специализированная 32-битная системная шина для видеокарты.

    PCI (англ. Peripheral component interconnect, дословно - взаимосвязь периферийных компонентов) - шина ввода/вывода для подключения периферийных устройств к материнской плате компьютера.

    Ultra DMA (Direct memory access, Прямой доступ к памяти). Разные версии ATA известны под синонимами IDE, EIDE, UDMA, ATAPI; ATA (англ. Advanced Technology Attachment - присоединение по передовой технологии) - параллельный интерфейс подключения накопителей (жёстких дисков и оптических приводов) к компьютеру. В 1990-е годы был стандартом на платформе IBM PC; в настоящее время вытесняется своим последователем - SATA и с его появлением получил название PATA (Parallel ATA).

    USB (англ. Universal Serial Bus - «универсальная последовательная шина», произносится «ю-эс-би» или «у-эс-бэ») - последовательный интерфейс передачи данных для среднескоростных и низкоскоростных периферийных устройств в вычислительной технике. Для подключения периферийных устройств к шине USB используется четырёхпроводный кабель, при этом два провода (витая пара) в дифференциальном включении используются для приёма и передачи данных, а два провода - для питания периферийного устройства. Благодаря встроенным линиям питания USB позволяет подключать периферийные устройства без собственного источника питания (максимальная сила тока, потребляемого устройством по линиям питания шины USB, не должна превышать 500 мА).

    LPT -порт (стандартного устройства принтера «LPT1» Line Printer Terminal или Line PrinTer) в операционных системах семейства MS-DOS. IEEE 1284 (порт принтера, параллельный порт)

    COM -порт («ком-порт» Communication port, Serial port, серийный порт, последовательный порт) - двунаправленный последовательный интерфейс, предназначенный для обмена битовой информацией. Последовательным данный порт называется потому, что информация через него передаётся по одному биту, бит за битом (в отличие от параллельного порта).

    PS/2 - разъем, применяемый для подключения клавиатуры и мыши. Впервые появился в 1987 году на компьютерах IBM PS/2 и впоследствии получил признание других производителей и широкое распространение в персональных компьютерах и серверах рабочих групп. серия персональных компьютеров компании IBM на процессорах серий Intel 80286 и Intel 80386, выпускавшаяся с апреля 1987 года. /2 – версия компьютера.