SSD диски: новые требования к платформам

24 Дек 2014

SSD диски: новые требования к платформам

Переход от магнитных дисков к SSD-устройствам, появление интер­фейс­ной архитектуры NVM Express, пришедшей на смену контроллеру AHCI, подключение накопителя непосредственно к шине PCI Express — вот перечень революционных изменений, произошедших в индустрии систем хранения данных за последнее время. Жесткий диск перестает быть «узким местом» в цепочке передачи информации. Разработчикам UEFI-интерфейса и персональных платформ приходится «подтягивать» системную архитектуру под новые требования, обусловленные этим обстоятельством.

Слуга как минимум двух господ

Как известно, после интеграции контроллера оперативной памяти в состав CPU, мультипроцессорная платформа автоматически становится, NUMA-системой или системой с неоднородным доступом к памяти. Аббревиатура NUMA расшифровывается как Non-Uniform Memory Access и в данном контексте означает, что каждый из процессоров располагает собственным контроллером памяти, доступ к которому осуществляется быстрее, чем к памяти соседнего процессора. Соответственно, с учетом этого факта оптимизируется программное обеспечение. Как правило, предметом такой оптимизации является взаимодействие центрального процессора с оперативной памятью. Вместе с тем, работа bus master устройств, подключенных к шинам ввода-вывода и самостоятельно передающих данные, также требует оптимизации с учетом специфики NUMA. Аспект, на котором мы остановимся, имеет прямое отношение к системам хранения данных и должен учитываться разработчиками операционных систем и драйверов.

Подключение SSD диска к системе с двумя и более физическими процессорами
Рис.1. Подключение SSD диска к системе с двумя и более физическими процессорами

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

Без обиняков

Технология Direct Cache Access или DCA, позволяет записывать информацию, передаваемую bus-master устройством, непосредственно в кэш-память процессора. Чтобы понять, о чем идет речь, вспомним, как происходит передача данных в «обычной» платформе, без использования DCA. Устройство (в нашем примере контроллер жесткого диска) после получения от драйвера стартовых параметров: номера сектора и адреса буфера, способен самостоятельно выполнить передачу информации в оперативную память без вмешательства программы на фазе передачи данных. После завершения операции, центральный процессор будет проинформирован о результатах с использованием механизма аппаратных прерываний.

Заметим, что контроллер кэш-памяти отслеживает все операции записи в оперативную память. И если кэшированная информация изменилась, соответствующие строки кэш нужно объявить недостоверным (Cache Invalidation). Иначе вместо данных, записанных в память внешним устройством, процессор «увидит» в кэш-памяти их устаревшую копию. Такая схема взаимодействия с периферией не оптимальна: сначала нужно получить информацию о перезаписанных адресах и объявить недостоверным содержимое кэш; затем, обнаружив отсутствие требуемой информации в кэш, процессор читает оперативную память.

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

Опция для управления DCA в CMOS Setup серверной платформы
Рис.2. Опция для управления DCA в CMOS Setup серверной платформы Intel S2600WT

Опция Direct Cache Access доступна в CMOS Setup. Стоит обратить внимание на комментарий, визуализируемый при ее выборе из меню: там дословно говорится, что в кэш-памяти размещаются данные, поступающие от периферийных устройств — «placing data from I/O devices directly into the processor cache».

Контроллер DMA и технология Intel QuickData

Технология Intel QuickData предполагает использование устройства DMA engine (Direct Memory Access или по-новому Data Movement Acceleration) в составе процессора. Этот узел обслуживает передачу информации между оперативной памятью и периферией. Справедливости ради отметим, что такой подход начал практиковаться еще во времена системной логики Intel 5000 и модулей Fully Buffered DIMM (FB DIMM) и чаще упоминается в контексте подключения интеллектуальных контроллеров локальной сети.

Узел DMA engine не имеет ничего общего с Legacy-контроллерами DMA Intel 8237, основанными на архитектурных принципах шины ISA. Но избежать аналогий не удастся: «старый» и «новый» контроллеры предполагают централизованную модель выполнения операций с единым контроллером DMA, обслуживающим запросы периферийных устройств на прямой доступ к памяти (DRQ или DMA Request), а также программно инициированные запросы на копирование блоков и заполнение блоков константой. В то время, как два последних десятилетия господствует децентрализованная модель, характерная для большинства PCI и PCIe-устройств. Она предполагает способность периферийного устройства самостоятельно инициировать шинные циклы и взаимодействовать с оперативной памятью (bus master capability), что означает наличие в составе каждого устройства собственного контроллера DMA.

DMA Engine входит в состав процессора, в то время как Legacy контроллер DMA, аналогичный двум каскадно-включенным микросхемам Intel 8237 находится в микросхеме PCH. Современная платформа может содержать контроллеры обоих типов.

Расположение узла DMA Engine на блок-схеме процессора Intel Xeon E5 V3
Рис.3. Расположение узла DMA Engine (Device 4) на блок-схеме процессора Intel Xeon E5 V3

Direct Cache Access и производительность

Как зависит производительность платформы в целом и производительность твердотельного диска в частности от установки Direct Cache Access? Проделаем небольшой эксперимент, используя в качестве тестовой платформы Intel S2600WT с двумя процессорами Xeon E5-2670 v3 частотой 2,30 GHz. Оперативная память будет задействована так, чтобы обеспечить 4-х канальный режим доступа. Общий ее объем составляет 64 ГБайт и формируется с помощью регистровых модулей KVR21R15S4/8 (производство Kingston). Дисковая подсистема — SSD-накопитель от Intel емкостью 800 Гбайт.

SATA Express накопитель DC P3600 для шины PCI Express емкостью 800 Гбайт
Рис 4. NVM Express накопитель DC P3600 для шины PCI Express емкостью 800 Гбайт

Скорость доступа глазами HD Speed

Главный вывод — скорость обмена данными с SSD-диском в процессе работы тестовой утилиты HD Speed v1.7.8.107 не зависит от режима Direct Cache Access. Попытка измерить пиковую скорость обмена также не выявила преимуществ DCA-режима в силу того, что сопряжена с нестабильностью получаемых результатов.

Результат HD Speed со стандартными установками CMOS Результат HD Speed в режиме Data Cashe Access
Рис 5. Слева результат HD Speed со стандартными установками CMOS Setup, справа — с применением технологии Direct Cache Access

Если судить субъективно, то при последовательном чтении данных с SSD-диска результаты у DCA-режима чуть хуже, а пиковая скорость обмена — немного лучше, чем при использовании традиционной политики обслуживания кэш-памяти.

Производительность платформы по оценкам LinX

Выйти из патовой ситуации мы попытались с помощью утилиты LinX v0.6.5. Основанная на алгоритмах Intel, она дает оценку общей производительности платформы в гигафлопсах. 

 
Рис. 6. Слева результат LinX со стандартными установками CMOS Setup, справа — с применением технологии Direct Cache Access

Усреднив показатели можно заключить, что производительности платформы Intel S2600WT после включения DCA-режима ухудшается. Полученный результат позволил сформулировать ряд гипотез, касающихся особенностей применения Direct Cache Access.

Резюме

На сегодня не существует открытых источников, где декларировалась бы поддержка SSD-накопителями 3600-й серии режима доступа в кэш-память. Анализ конфигурационных регистров также не позволяет подтвердить этот факт. Результаты тестирования свидетельствуют, что, скорее всего, поддержка Direct Cache Access не имплементирована в контроллер твердотельного накопителя DC P3600.

Некоторая потеря производительности в DCA-режиме по-видимому связана с тем, что выполнение теста в среде Windows сопряжено с нерациональным заполнением кэш-памяти при работе bus-master устройств, так как технология доступа к кэш-памяти уже применяется в сетевых адаптерах. Думается, что ее область применения пока этим и ограничена.

На повестке дня — расширение функциональности NVMe-устройств, хотя бы в силу того, что, в отличие от магнитных носителей, автономное кеширование либо теряет смысл либо требует иной реализации. Еще одна актуальная задача состоит в оценке влияния Direct Cache Access на производительность ethernet-контроллеров, но это уже выходит за рамки нашей статьи.

Литература