[Перевод] Спасибо за память: как дешёвая память меняет вычисления

6d0366746be6a51ea142e6a083b321ac.jpg
Ранний Micron DRAM, ёмкость 1 Мбит

RAM (random access memory, запоминающее устройство с произвольным доступом) присутствует в любой компьютерной системе, от небольших встроенных контроллеров до промышленных серверов. Данные хранятся в SRAM (статической RAM) или DRAM (динамической RAM), пока процессор работает с ними. С падением цен на RAM модель перемещения данных между RAM и постоянным местом хранения данных может исчезнуть.

RAM сильно подвержена влиянию колебаний рынка, но в долгосрочной перспективе её стоимость идёт вниз. В 2000 году гигабайт памяти стоил более $1000, а сейчас — всего $5. Это позволяет вообразить совершенно другую архитектуру системы.

Базы данных обычно хранятся на дисках, откуда нужная информация считывается при необходимости в память, после чего обрабатывается. Обычно считается, что объём памяти в системе на несколько порядков меньше объёма дисков — например, гигабайты против терабайтов. Но с увеличением объёмов памяти становится эффективнее загружать больше данных в память, уменьшая количество чтений и записей. С уменьшением стоимости RAM становится возможным загружать базы данных в память целиком, проводить операции над ними и записывать их обратно. Сейчас мы уже подошли к точке, в которой некоторые базы не записываются обратно на диск, и постоянно висят в памяти.
7811275833f62a4db63a37e7f5050245.jpg
Мегабитный чип от Carl Zeiss

8ee0057b9d242dde7b682538dc78da19.jpg
До 1975 года RAM была памятью на магнитных сердечниках

34ecf0c5460fc6bc7f60d80c3fd07731.jpg
4-мегабитный чип EPROM, стираемый при помощи ультрафиолета, направляемого через окошко

8206af9f8a41c4338acda93d6f617226.jpg
Кучка современных DRAM

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

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

С падением цен на RAM в больших компаниях и дата-центрах становится популярным обеспечивать сервера терабайтами памяти. Но кроме размера, базу данных в памяти обычно не хочется держать по соображениям надёжности. RAM теряет содержимое при отключении энергии или компрометации системы. С этими проблемами сталкиваются при попытке соответствовать стандарту надёжности баз данных ACID (atomicity, consistency, isolation, durability — Атомарность, Согласованность, Изолированность, Долговечность).

Проблем можно избежать при помощи слепков и логов. Так же, как можно делать резервные копии БД с дисков, БД в памяти можно копировать в хранилище. Создание слепков мешает другим процессам читать данные, поэтому частота контрольных точек — это компромисс между быстродействием и надёжностью. А это, в свою очередь, можно сгладить записью транзакций, или журналированием, записывающим изменения данных так, что позднее состояние можно воссоздать из ранней копии. Но всё же, когда БД полностью находится в памяти, некий процент избыточности теряется.

Программы для управления БД, находящихся в памяти (IMDBS), позволяют создавать гибридные системы, в которых некоторые таблицы БД находятся в памяти, а другие живут на диске. Это лучше кэширования, и удобно в тех случаях, когда бессмысленно держать всю БД в памяти.

БД могут быть сжатыми, особенно в системах со столбцами, хранящими таблицы в виде наборов столбцов, а не строк. Большинство технологий сжатия предпочитают, чтобы соседние данные были одного типа, а столбцы в таблицах почти всегда содержат данные одного типа. И хотя сжатие подразумевает увеличение нагрузки на вычисления, хранение столбцов хорошо подходит для сложных запросов в очень больших наборах данных — поэтому в них заинтересованы пользователи «большие данные» и учёные.

На больших масштабах компании вроде Google перешли на RAM, чтобы большое количество поисковых запросов обрабатывалось с приемлемой скоростью. Здесь также появляются проблемы обеспечения доступа к большим объёмам памяти, поскольку количество RAM, подсоединяемое к одной материнской плате, ограничено, а организация общего доступа приводит к появлению дополнительных задержек.


Но нельзя гарантировать, что работа с данными в памяти — это будущее обработки данных. Альтернативный метод — использование энергонезависимой RAM (non-volatile RAM, NVRAM), знакомой пользователям в виде SSD, предлагающих совместимую с дисковыми системами архитектуру. Сейчас они работают на флэш-памяти NAND, предлагающей высокие по сравнению с механическими жёсткими дисками скорости чтения и записи. Но у неё есть свои проблемы. Флэш-памяти требуются относительно высокие напряжения для записи данных, и она постепенно вырождается, с чем призваны бороться особые алгоритмы, приводящие к постепенному замедлению работы.

7a259753c976e2b6a7187a4aed680e9d.jpg
Стоимость памяти и накопителей от времени (долларов за Мегабайт)

Как видно из графика, со временем стоимость накопителей уменьшается примерно так же, как и стоимость RAM. Уменьшающаяся стоимость SSD привела к их распространению в дата-центрах и на рабочих местах, но пока непонятно, какое у этой технологии будущее. В исследовании от Google, опубликованном в феврале 2016 года, на основе шести лет использования был сделан вывод, что флэш-память гораздо менее надёжна, чем жёсткие диски — например, она выдаёт неисправимые ошибки — хотя ей и требуются более редкие замены. А SSD для корпоративного применения не отличаются по качеству от потребительских вариантов.

Но уже появляются новые типы NVRAM. Ферроэлектрическая RAM (FRAM) когда-то должна была стать заменой RAM и флэшек в мобильных устройствах, но сейчас внимание переключилось на магниторезистивную RAM (MRAM). По скоростям она приближается к RAM, а задержка доступа к ней составляет 50 наносекунд — это медленнее, чем 10 нс у DRAM, но в 1000 раз быстрее, чем микросекунды у NAND.

9e378454a082d2d73bfc95cc1aa7189b.jpg
Схема MRAM

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

MRAM с передачей спина (ST-MRAM) использует более сложную структуру, в потенциале допускающую увеличение плотности. Сейчас на рынок её выводит Everspin, недавно вышедшая на NASDAQ под кодом MRAM. Другие фирмы, исследующие эту возможность — Crocus, Micron, Qualcomm, Samsung, Spin Transfer Technologies (STT) и Toshiba.

b276a66ae1c109a8a6c631a28700f9cf.jpg
Память 3D XPoint

344b42eb4eec67cd5fcbe4928f760f50.jpg
Два чипа 3D XPoint по 128 Гб

9bc55c2cdbd230c4d3ba9ed7c7ae25a5.jpg
Диаграмма для Intel/Micron 3D XPoint

ab0a3d30bc332f241bc60abbb293ad0d.jpg
Сравнение скоростей

А в это время Intel работает с Micron над разновидностью NVRAM под названием 3D XPoint (произносится «кросспоинт»). Эта форма памяти с изменением фазового состояния (PCM), известная как резистивная RAM (ReRAM), впервые была обнародована в 2015-м.»3D» означает возможность многослойного построения памяти. Intel считает, что XPoint может работать в 1000 раз быстрее, чем NAND, и быть в 10 раз более ёмкой, хотя недавно эти заявления слегка уменьшились. Ожидается, что цена будет в промежутке между флэш-памятью и DRAM. Из-за этого она вряд ли приживётся в домах, но на большом масштабе она может заменить RAM и SSD.

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

RAM-гонка повлияет на все уровни развития компьютеров. Увеличение памяти с 8 до 16 Гб на десктопах конечных потребителей позволит ускорить многозадачность и повысить эффективность требовательных к памяти программ.

В ультрабуках SSD уже являются нормой, а растущие ёмкости уже делают их кандидатами для замены жёстких дисков. Следующее поколение трёхмерной NAND (V-NAND, вертикальной) обещает большую эффективность и плотность записи. Samsung предсказывает, что к 2020 году появятся SSD для конечных пользователей на 512 Гб по цене сегодняшнего терабайтного винта.

Для среднего бизнеса и научных заведений больше дешёвой RAM означает улучшение аналитики при помощи данных, находящихся в памяти — если софт будет поспевать за этим. SAP HANA — база данных, содержащаяся в памяти, платформа для широкого применения облачных и местных решений, позволяющая уже не очень крупным компаниям работать с большими данными. Схожие БД есть и у IBM с Oracle.

RAM демократизирует технологии — техника дешевеет, и разница между крупными и мелкими организациями стирается.

921cd7551ee09fe20be48fa6dc439fbe.jpg
Дата-центр Google со сделанными под заказ серверами

1d4e71c557a4873ea5913ccb6e96ceae.jpg
Суперкомпьютер Sequoia

c40b42ea8cb83c04316efb350cf211ef.jpg
1cdc876a6ac8363702dbf19c7677cab4.jpg
Суперкомпьютер Sunway TaihuLight, быстрейший компьютер в мире, 93 петафлопс

8eab4d2f10ed8661fe0de82dd99fcfda.jpg
Titan, быстрейший суперкомпьютер США

d156d8d50b0d83715852da65910a9f9d.jpg
Дата-центр EcoPod HP

Последний по порядку, но не по значимости, пункт — потребность в памяти суперкомпьютеров. Быстрейший на сегодня китайский СК Sunway TaihuLight содержит 1 300 Тб DDR3 DRAM, что относительно немного для его скорости в 93 петафлопс (квадриллион операций с плавающей запятой в секунду). В частности из-за этого его энергопотребление составляет всего 15,3 МВт, но это может стать и ограничивающим фактором.

Теперь все стремятся к приставке экзафлопсам, или к 1000 петафлопсов. Японский компьютер post-K, разрабатываемый Riken и Fujitsu, будет готов к 2020 году и будет содержать Hybrid Memory Cube от Micron — многослойная реализация DRAM, и возможно также будет использовать 3D XPoint NVRAM. Европейский проект NEXTGenIO в Эдинбургском суперкомпьютерном центре намеревается достичь экзафлопсов к 2022 году, также с использованием 3D XPoint.

В США Exascale Computing Project, разрабатываемый в рамках инициативы NSCI, к 2023 году должен представить аж два суперкомпьютера подобного быстродействия. Их архитектура ещё прорабатывается, но поскольку быстродействие и энергоэффективность находятся в приоритете, RAM будет играть в нём центральную роль.

© Geektimes