[Перевод] Спасибо за память: как дешёвая память меняет вычисления
Ранний Micron DRAM, ёмкость 1 Мбит
RAM (random access memory, запоминающее устройство с произвольным доступом) присутствует в любой компьютерной системе, от небольших встроенных контроллеров до промышленных серверов. Данные хранятся в SRAM (статической RAM) или DRAM (динамической RAM), пока процессор работает с ними. С падением цен на RAM модель перемещения данных между RAM и постоянным местом хранения данных может исчезнуть.
RAM сильно подвержена влиянию колебаний рынка, но в долгосрочной перспективе её стоимость идёт вниз. В 2000 году гигабайт памяти стоил более $1000, а сейчас — всего $5. Это позволяет вообразить совершенно другую архитектуру системы.
Базы данных обычно хранятся на дисках, откуда нужная информация считывается при необходимости в память, после чего обрабатывается. Обычно считается, что объём памяти в системе на несколько порядков меньше объёма дисков — например, гигабайты против терабайтов. Но с увеличением объёмов памяти становится эффективнее загружать больше данных в память, уменьшая количество чтений и записей. С уменьшением стоимости RAM становится возможным загружать базы данных в память целиком, проводить операции над ними и записывать их обратно. Сейчас мы уже подошли к точке, в которой некоторые базы не записываются обратно на диск, и постоянно висят в памяти.
Мегабитный чип от Carl Zeiss
До 1975 года RAM была памятью на магнитных сердечниках
4-мегабитный чип EPROM, стираемый при помощи ультрафиолета, направляемого через окошко
Кучка современных DRAM
Скорости доступа к памяти измеряются в наносекундах, а время доступа к диску измеряется в миллисекундах — то есть, память получается в миллион раз быстрее. Скорость передачи данных в памяти, конечно, не в миллион раз быстрее — это гигабайты в секунду против нескольких сотен мегабайт в секунду для быстрого харда — но, по крайней мере, скорость RAM превосходит скорость накопителей на порядок.
В реальном мире различия не такие серьёзные, но чтение данных с диска в RAM и запись их обратно — серьёзное узкое место, а также поле для появления ошибок. Исчезновение этого шага ведёт к упрощению инструкций, увеличению простоты и эффективности.
С падением цен на RAM в больших компаниях и дата-центрах становится популярным обеспечивать сервера терабайтами памяти. Но кроме размера, базу данных в памяти обычно не хочется держать по соображениям надёжности. RAM теряет содержимое при отключении энергии или компрометации системы. С этими проблемами сталкиваются при попытке соответствовать стандарту надёжности баз данных ACID (atomicity, consistency, isolation, durability — Атомарность, Согласованность, Изолированность, Долговечность).
Проблем можно избежать при помощи слепков и логов. Так же, как можно делать резервные копии БД с дисков, БД в памяти можно копировать в хранилище. Создание слепков мешает другим процессам читать данные, поэтому частота контрольных точек — это компромисс между быстродействием и надёжностью. А это, в свою очередь, можно сгладить записью транзакций, или журналированием, записывающим изменения данных так, что позднее состояние можно воссоздать из ранней копии. Но всё же, когда БД полностью находится в памяти, некий процент избыточности теряется.
Программы для управления БД, находящихся в памяти (IMDBS), позволяют создавать гибридные системы, в которых некоторые таблицы БД находятся в памяти, а другие живут на диске. Это лучше кэширования, и удобно в тех случаях, когда бессмысленно держать всю БД в памяти.
БД могут быть сжатыми, особенно в системах со столбцами, хранящими таблицы в виде наборов столбцов, а не строк. Большинство технологий сжатия предпочитают, чтобы соседние данные были одного типа, а столбцы в таблицах почти всегда содержат данные одного типа. И хотя сжатие подразумевает увеличение нагрузки на вычисления, хранение столбцов хорошо подходит для сложных запросов в очень больших наборах данных — поэтому в них заинтересованы пользователи «большие данные» и учёные.
На больших масштабах компании вроде Google перешли на RAM, чтобы большое количество поисковых запросов обрабатывалось с приемлемой скоростью. Здесь также появляются проблемы обеспечения доступа к большим объёмам памяти, поскольку количество RAM, подсоединяемое к одной материнской плате, ограничено, а организация общего доступа приводит к появлению дополнительных задержек.
Но нельзя гарантировать, что работа с данными в памяти — это будущее обработки данных. Альтернативный метод — использование энергонезависимой RAM (non-volatile RAM, NVRAM), знакомой пользователям в виде SSD, предлагающих совместимую с дисковыми системами архитектуру. Сейчас они работают на флэш-памяти NAND, предлагающей высокие по сравнению с механическими жёсткими дисками скорости чтения и записи. Но у неё есть свои проблемы. Флэш-памяти требуются относительно высокие напряжения для записи данных, и она постепенно вырождается, с чем призваны бороться особые алгоритмы, приводящие к постепенному замедлению работы.
Стоимость памяти и накопителей от времени (долларов за Мегабайт)
Как видно из графика, со временем стоимость накопителей уменьшается примерно так же, как и стоимость RAM. Уменьшающаяся стоимость SSD привела к их распространению в дата-центрах и на рабочих местах, но пока непонятно, какое у этой технологии будущее. В исследовании от Google, опубликованном в феврале 2016 года, на основе шести лет использования был сделан вывод, что флэш-память гораздо менее надёжна, чем жёсткие диски — например, она выдаёт неисправимые ошибки — хотя ей и требуются более редкие замены. А SSD для корпоративного применения не отличаются по качеству от потребительских вариантов.
Но уже появляются новые типы NVRAM. Ферроэлектрическая RAM (FRAM) когда-то должна была стать заменой RAM и флэшек в мобильных устройствах, но сейчас внимание переключилось на магниторезистивную RAM (MRAM). По скоростям она приближается к RAM, а задержка доступа к ней составляет 50 наносекунд — это медленнее, чем 10 нс у DRAM, но в 1000 раз быстрее, чем микросекунды у NAND.
Схема MRAM
MRAM хранит информацию при помощи магнитной ориентации, а не электрического заряда, используя тонкоплёночную структуру и магнитный туннельный переход. MRAM с переключением уже используется в таких продуктах, как массивы хранения данных EqualLogic от Dell, но пока лишь для журналирования.
MRAM с передачей спина (ST-MRAM) использует более сложную структуру, в потенциале допускающую увеличение плотности. Сейчас на рынок её выводит Everspin, недавно вышедшая на NASDAQ под кодом MRAM. Другие фирмы, исследующие эту возможность — Crocus, Micron, Qualcomm, Samsung, Spin Transfer Technologies (STT) и Toshiba.
Память 3D XPoint
Два чипа 3D XPoint по 128 Гб
Диаграмма для Intel/Micron 3D XPoint
Сравнение скоростей
А в это время 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 демократизирует технологии — техника дешевеет, и разница между крупными и мелкими организациями стирается.
Дата-центр Google со сделанными под заказ серверами
Суперкомпьютер Sequoia
Суперкомпьютер Sunway TaihuLight, быстрейший компьютер в мире, 93 петафлопс
Titan, быстрейший суперкомпьютер США
Дата-центр 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 будет играть в нём центральную роль.