Haswell Intel (или, по крайней мере, те продукты, которые включают в себя графический процессор Iris Pro 5200), а также IBM POWER7 и POWER8 включают встроенную DRAM, «eDRAM».
Одна важная проблема, которая привела к тому, что eDRAM до недавнего времени не была распространенной, заключается в том, что процесс изготовления DRAM по своей природе не совместим с логическими процессами, поэтому необходимо включать дополнительные этапы (которые увеличивают стоимость и уменьшают выход), когда требуется eDRAM. Таким образом, должна быть веская причина для того, чтобы включить его, чтобы компенсировать этот экономический недостаток. В качестве альтернативы, DRAM может быть размещен на отдельном кристалле, который изготовлен независимо от, но затем интегрирован в тот же пакет, что и процессор. Это обеспечивает большую часть преимуществ населенного пункта без трудностей по их подлинному объединению.
Другая проблема состоит в том, что DRAM не похож на SRAM в том, что он не хранит свое содержимое в течение неопределенного времени при подаче питания, и чтение его также уничтожает сохраненные данные, которые должны быть впоследствии записаны. Следовательно, его необходимо обновлять периодически и после каждого чтения. И, поскольку ячейка DRAM основана на конденсаторе, его зарядка или разрядка в достаточной степени, чтобы утечка не повредила его значение, прежде чем следующее обновление займет некоторое конечное время. Это время зарядки не требуется с SRAM, который является просто защелкой; следовательно, он может быть синхронизирован с той же частотой, что и процессор, тогда как DRAM ограничен частотой около 1 ГГц при сохранении разумного энергопотребления. Это приводит к тому, что DRAM имеет более высокую внутреннюю задержку, чем SRAM, что делает нецелесообразным использование для всех, кроме самых больших кешей, где сниженная частота промахов окупится.
Кроме того, что касается задержки, большая часть трудности заключается в том, что сигналы физического расстояния должны проходить. Свет может перемещаться только на 10 см за такт 3 ГГц. Конечно, сигналы не распространяются по прямой через матрицу и не распространяются на скорости, близкой к скорости света, из-за необходимости буферизации и разветвления, что вызывает задержки распространения. Таким образом, максимальное расстояние, на которое память может быть удалена от ЦП, чтобы выдержать 1 тактовый цикл задержки, составляет максимум несколько сантиметров, ограничивая объем памяти, который может быть размещен в доступной области. Процессор Intel Nehalem фактически уменьшил емкость кэш-памяти L2 по сравнению с Penryn частично, чтобы повысить его задержку, что привело к более высокой производительности. * Если мы не слишком заботимся о задержке, то нет причин размещать память в упаковке,
Следует также отметить, что частота обращений к кешу очень высока для большинства рабочих нагрузок: значительно выше 90% практически во всех практических случаях и нередко даже выше 99%. Таким образом, выгода от включения в память больших объемов памяти по своей сути ограничена уменьшением воздействия этих нескольких процентов промахов. Процессоры, предназначенные для рынка корпоративных серверов (такие как POWER), как правило, имеют огромные кэши и могут с пользой включать eDRAM, потому что это полезно для работы с большими рабочими наборами многих корпоративных рабочих нагрузок. У Haswell есть поддержка графического процессора, потому что текстуры большие и не могут быть помещены в кеш. Сегодня это варианты использования eDRAM, а не типичные рабочие нагрузки для настольных ПК или HPC, которые очень хорошо обслуживаются типичными иерархиями кеша.
Для решения некоторых вопросов, поднятых в комментариях:
Эти кэши eDRAM нельзя использовать вместо основной памяти, поскольку они разработаны как кэши жертвы L4. Это означает, что они нестабильны и эффективно адресуются, поэтому хранящиеся в них данные не рассматриваются как находящиеся в каком-либо конкретном месте и могут быть отброшены в любое время. Эти свойства трудно согласовать с требованием оперативной и постоянной привязки ОЗУ, но изменение их сделало бы кеши бесполезными по их прямому назначению. Конечно, возможно встроить память более традиционного дизайна, как это делается в микроконтроллерах, но это не оправдано для систем с большой памятью, поскольку низкая задержка не так выгодна в основной памяти, как в кеше, поэтому увеличение или добавление кеша - более стоящее предложение.
Что касается возможности очень больших кешей с емкостью порядка гигабайта, то кеш должен быть не больше размера рабочего набора для приложения. Приложения HPC могут работать с терабайтными наборами данных, но они имеют хорошую временную и пространственную локализацию, поэтому их рабочие наборы обычно не очень велики. Приложения с большими рабочими наборами - это, например, базы данных и программное обеспечение ERP, но существует только ограниченный рынок для процессоров, оптимизированных для такого рода рабочей нагрузки. Если программное обеспечение действительно не нуждается в этом, добавление дополнительного кэша обеспечивает очень быстро уменьшающуюся отдачу. Недавно мы увидели, что процессоры получают инструкции предварительной выборки, поэтому кэши можно использовать более эффективно: можно использовать эти инструкции, чтобы избежать ошибок, вызванных непредсказуемостью шаблонов доступа к памяти, а не абсолютным размером рабочего набора,
* Улучшение задержки было связано не только с меньшим физическим размером кеша, но и с уменьшением ассоциативности. В Nehalem произошли значительные изменения во всей иерархии кэша по нескольким причинам, не все из которых были направлены на повышение производительности. Таким образом, хотя этого достаточно в качестве примера, это не полный отчет.