Почему оперативная память не установлена ​​на чипе процессора?


55

Современные процессоры очень быстры по сравнению со всеми внешними устройствами, включая память (RAM).

Это понятно, поскольку тактовая частота ЦП достигла точки, когда для электрического сигнала требуется несколько тактов для простого прохождения сигнала от ЦП через шину к микросхемам ОЗУ и обратно.

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

Многих из этих проблем можно было бы избежать, если бы значительный объем оперативной памяти был расположен непосредственно на чипе процессора. Он не должен быть эксклюзивным: возможно, поместите 1-4 ГБ на чип, в зависимости от его класса, и разрешите установку дополнительной памяти отдельно.

Я уверен, что есть веские причины, по которым Intel, AMD и тому подобное не делают этого. Каковы эти причины? Неужели на чипе нет места?


29
Кеш это ОЗУ. Пространство и булавки на штампе имеют премию.
медь. Что

2
@ copper.hat Кэш-память - это оперативная память, но размер кэша - это небольшая доля установленной оперативной памяти (обычно речь идет о диапазонах MBytes vs Gbytes). Интересно, почему бы не поставить 1 ГБ в чип процессора?
Малый Ежик

5
Обычно он оптимизирован для некоторого сочетания команд и потоков данных. Кроме того, не все данные из / в ОЗУ проходят через ЦП.
медь. Что

1
Чем проще кристалл, тем он дешевле. Это также означает, что вы можете использовать различные размеры и методы процесса.
подмастерье Компьютерщик

@LesserHedgehog Есть предел тому, насколько часто может быть ваш рейтинг попаданий в кеш, поэтому добавление кеша на самом деле ничего не поможет. Кроме того, многие ЦП действительно имеют встроенную DRAM, особенно в мобильном / встроенном пространстве (например, многие SoC на основе ARM).
пушистый

Ответы:


79

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 произошли значительные изменения во всей иерархии кэша по нескольким причинам, не все из которых были направлены на повышение производительности. Таким образом, хотя этого достаточно в качестве примера, это не полный отчет.


1
Хорошо объяснено, @Oleksandr R. Короче говоря, похоже, что между CPU и DRAM существует что-то вроде "несоответствия импеданса", что затрудняет соединение этих двух компонентов.
Малый Ежик

3
И, конечно же, SRAM все еще довольно велика - даже крошечные (по сравнению с ОЗУ) кэши занимают около половины площади кристалла на современных процессорах (ну, кроме процессоров с интегрированными графическими процессорами: D).
Луаан

2
Интересно, есть ли способ работать без основной памяти? 128 МБ должно быть достаточно для запуска уменьшенного дистрибутива Linux (или старой версии Windows).
user253751

Он называется «GPU-on-die», а не «GPU-on-package».
AStopher

4
@cybermonkey: инструкции на самом деле извлекаются из кэша L1, а не из основной памяти. Было бы ужасно извлечь их из основной памяти - время цикла 60 нс или около того, что ограничивает ваш процессор до 16 МГц для одноядерной конструкции.
MSalters

17

Основные причины, по которым больший объем памяти (ГБ DRAM) не включен в саму матрицу ЦП, связаны главным образом с затратами. Пространство кристалла ЦП значительно дороже из-за производственного процесса, необходимого для изготовления очень мелких элементов. Также может быть невозможно изготовить два на одном кристалле, хотя я не знаю достаточно о деталях, чтобы дать здесь какой-либо окончательный ответ.

Давайте оценим возможность размещения большого количества DRAM непосредственно на кристалле процессора.

22

Тем не менее, идея прикрепления памяти ближе к процессору не является полностью потерянным делом. Вполне вероятно, что в будущем память будет двигаться, потому что скорость света конечна, и так быстро общаться можно только на определенном расстоянии.

Реалистичные методы перемещения памяти ближе к процессору (обратите внимание, что они также имеют компромиссы с традиционными методами):

  1. Сложите их поверх самого процессора. Это уже сделано на Raspberry Pi и является частью стандарта памяти Wide I / O. Память по-прежнему представляет собой отдельный кристалл, изготовленный по отдельному процессу. Однако проблема заключается в том, что любое тепло, рассеиваемое в ЦП, должно проходить через память, прежде чем достигнет радиатора. Это означает, что он не будет работать для процессоров с высоким энергопотреблением, и поэтому основные приложения для этой технологии находятся в мобильных процессорах / других встроенных приложениях, где ваш процессор не потребляет много десятков или сотен ватт.

  2. Приклейте их очень близко к более дешевой подложке. Вот как HBM предназначен для работы с очень большой шиной, изготовленной на более дешевой «промежуточной» матрице, и это направление, в котором движется высокопроизводительная память GPU, потому что пропускная способность значительно выше. Микросхемы памяти и вставка все еще производятся на разных кристаллах от фактического процессора.


5
Я ожидал бы, что выходы упадут, если вы попытаетесь собрать больше миллиардов транзисторов на одном большом кристалле - вероятность отказа или дефекта возрастает с каждым дополнительным устройством. Если вы разделите систему на несколько более мелких частей, вероятность появления ошибки на каком-либо одном элементе значительно снизится, и стоимость отказа от этого дефектного элемента также будет ниже. Я полагаю, что изготовить очень большой кубик будет гораздо сложнее, при прочих равных условиях.
Джон

4
2

@JohnU - размещение большого количества повторяющихся модулей на кристалле имеет то преимущество, что при возникновении дефекта вы можете просто отключить модуль, в котором он обнаружен, и освободить кристалл в соответствии с более дешевым стандартом (это часто случается с DRAM, вернемся к 80-м годам, когда на многих машинах с модулями по 32 КБ фактически использовались 64-разрядные микросхемы с отключенной неисправной секцией). На самом деле это может означать, что выход увеличивается, когда вы интегрируете DRAM с процессорами ...
Jules

7

Есть несколько причин, по которым добавление большого количества DRAM в ЦП может быть невозможным.

  1. Процесс и fab не могут быть настроены для DRAM. DRAM требует специальных элементов схемы, которые производят дополнительные производственные этапы. Это увеличивает стоимость изготовления.

  2. Вся эта память должна быть проверена. Тестирование памяти увеличивает время тестирования. Это еще одно повышение стоимости.

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

  4. Разработка процесса, который может обрабатывать специальные виды памяти, занимает больше времени, денег и работы, и имеет более высокий риск отказа. Любая проблема с DRAM задержит освобождение процессора. Настольные процессоры находятся на переднем крае производства полупроводников, поэтому задержка может быть огромным конкурентным недостатком. (См .: AMD против Intel за последние несколько лет.)

  5. DRAM требует аналогового считывания для чтения, а также периодического обновления. Я не эксперт по DRAM, но я сомневаюсь, что он может быть таким же быстрым, как высокопроизводительный процессор, независимо от того, встроенный он или встроенный. Так что вы, вероятно, все еще застряли с кэшированием SRAM.

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


1
Большинство кэшей реализовано с помощью ECC, а некоторые последние процессоры Intel включают чип-килл и блочную избыточность для кэша. Это снижает требования к испытаниям и значительно повышает урожайность для больших штампов. Напротив, с датчиком изображения нет возможности исправления ошибок, потому что информация не известна априори , и мы также не можем решить, когда блок пикселей не работает должным образом, просто проигнорировать его и использовать запасной в его место.
Александр Р.

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

3

В дополнение к другим ответам, есть еще что можно сказать о такой системе. Перемещение памяти в основную матрицу будет включать в себя множество других инженерных проблем. Вам придется перенаправить шины, встроить контроллер DMA в основной процессор, реструктурировать шину IRQ и определить, как избавиться от всего того дополнительного тепла, которое вы будете выделять в концентрированной зоне. Это означает, что производитель материнских плат также должен был принять участие, чтобы поддержать такие существенные изменения. В то время как бюджетные системы, вероятно, выиграют от такого изменения, высокопроизводительные системы, вероятно, потребуют существенного охлаждения. Я сомневаюсь, что средний ноутбук мог бы справиться с таким чипом, например.

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

Имейте в виду, что мы говорим не о потребляемой мощности по всей системе, которая будет уменьшаться, а о том, что в одной зоне будет еще больше концентрации мощности (и, следовательно, тепла), что, вероятно, увеличит вероятность отказ.

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

AMD активно использует технологию, которая на самом деле работает таким образом, где каждая часть кристалла процессора представляет собой дискретный логический блок, который может быть заменен для различных конфигураций. В будущем, если такая конструкция будет жизнеспособной, мы вполне можем рассматривать процессоры, предлагающие встроенную память, как дорогостоящее обновление модуля, возможно, замену некоторой вычислительной мощности взамен или другие изменения. Например, однажды у нас может быть выбор между 256 ядрами без встроенной памяти или 128 ядрами со встроенной памятью, или, возможно, даже с другими конфигурациями, такими как частичный графический процессор, частичный процессор, частичный объем ОЗУ.


Основная проблема с этим ответом состоит в том, что конструкции SoC для смартфонов действительно содержат ОЗУ. Они не намного дороже, на самом деле они дешевле.
MSalters

@MSalters За исключением того, что они не интегрированы в одну и ту же матрицу. Плашки памяти являются отдельными, они были протестированы и подтверждены для правильной работы и просто упакованы вместе с микропроцессорной матрицей.
Зубная щетка

2

Почти все вышеперечисленное + еще одна дополнительная проблема: жара.

Элементы DRAM представляют собой конденсаторы с утечкой. А диэлектрик здесь - это сам слой SiO2. При повышении температуры токи утечки увеличиваются пропорционально. Они разряжают ячейки DRAM намного быстрее, что потребовало бы гораздо более высоких скоростей обновления, что увеличило бы сложность, требуемый ток и, конечно, добавило бы еще больше тепла.


2

В дополнение к уже даным ответам есть еще один аспект: отходы из-за производственных ошибок:

Скажем, 1/100 всех процессоров определенной модели неисправны (в действительности, конечно, меньше; 1/100 легче вычислить), а 1/100 всех произведенных ОЗУ неисправны.

Если оба компонента будут объединены в одной микросхеме, то 1/100 всех микросхем будет иметь дефектный процессор, а 1/100 всех микросхем будет иметь дефектную оперативную память.

Это будет означать:

  • 1 из 10000 микросхем будет иметь дефектную память и процессор
  • 99 чипов будут иметь дефектную оперативную память
  • 99 чипов будут иметь неисправный процессор
  • В целом 199 из 10000 произведенных деталей были бы отходами

Производя отдельные чипы, расчет следующий:

  • 50 из 5000 ОЗУ неисправны
  • 50 из 5000 процессоров неисправны
  • 100 из 10000 произведенных частей будут отходами

Обратите внимание, что один ГБ ОЗУ обычно создается в виде банка, состоящего из восьми чипов, поэтому вам не придется объединять два, а девять компонентов в один чип, если вы хотите разместить ОЗУ и ЦП на одном чипе. Это приведет к примерно 865 дефектным деталям из 10000, произведенным в простом примере выше.

Процессоры «IBM Cell» имели именно эту проблему. Консоль "Playstation" использовала чипы, которые были частично неисправны; программное обеспечение Playstation было написано таким образом, чтобы дефектные ядра и SRAM не использовались.


1
AMD предложила 3-ядерные процессоры на некоторое время по той же причине. Я думаю, что на практике детали обычно тестируются на уровне кристалла перед упаковкой, поэтому ваше беспокойство больше всего относится к монолитным комбинациям процессора и памяти.
Александр Р.

Компания Darpa получила приз за 50-кратную эффективность энергопотребления, преодолев стену памяти с помощью 3dSoC, которая является фантастической землей по сравнению с инженерами Intel и Qualcom, за исключением того, что darpa - это darpa. monolithic3d.com/blog/… SoC (система на микросхеме) лучше всего подходят для параллельных процессоров, а это означает, что существует 1000d групп, а не 2/16.
com.prehensible

1

На самом деле существует два типа оперативной памяти. Это статическая и динамическая память. Статическая память очень быстрая, но стоит дороже. Между тем динамическое ОЗУ медленное по сравнению со статическим ОЗУ, но обходится дешевле, чем статическое ОЗУ.

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


Не совсем, да, они быстрые, но это в первую очередь из-за того, что данные о расстоянии должны проходить намного меньше, чем в DRAM.
AStopher

3
На самом деле, ячейка SRAM быстрее, потому что она проще. Это цифровая бистабильная схема. Если бы вы случайно установили аналоговое значение 0,8, он зафиксируется, перейдя в стабильное положение 1,0. У DRAM нет таких стабильных состояний. Он не уходит от промежуточных состояний. Хуже того, он движется к таким состояниям, поэтому вам нужна дополнительная корректирующая схема «обновления».
MSalters

@MSalters: Ячейка SRAM НЕ проще, чем ячейка DRAM. Вы правы в том, что он намного более стабилен, что упрощает его использование (как с точки зрения поддержки схем, так и временных диаграмм). Но количество ячеек SRAM примерно в 6 раз больше, чем у DRAM.
Бен Фойгт

1
@BenVoigt: в количестве транзисторов да - 6T против 1T. Но у DRAM есть конденсатор, который является довольно странным компонентом. SRAM это просто транзисторы, соединенные вместе.
MSalters

Конденсатор в DRAM оказывается также реализованным как транзистор
Бен Фойгт

1

В дополнение к другим упомянутым причинам многие системы имеют более одного ядра процессора. В случаях, когда информация, которая хранится в основном DRAM, совместима со всеми кэшированными копиями, все процессоры, которые не имеют кэшированной информации, будут иметь равный доступ к ней. Некоторые архитектуры основаны на предположении, что каждое ядро ​​ЦП будет «владеть» диапазоном адресного пространства, и даже если ЦП способен обращаться к памяти, принадлежащей другим процессорам, такой доступ будет намного медленнее, чем доступ к его собственной памяти. , но x86 обычно не реализован таким образом.

Если система была разработана на основе предположения о том, что процессорные ядра имеют определенные диапазоны адресов, а код должен пытаться свести к минимуму использование диапазонов адресов других процессоров, то было бы целесообразно, чтобы каждый код процессора включал в себя большой объем встроенной памяти. Такая конструкция может сократить время, необходимое для доступа ядра процессора к собственной памяти, но, вероятно, увеличит время, необходимое для доступа к памяти другого процессора. Однако, если система не разработана на основе такого предположения, вполне вероятно, что данные будут распределяться между процессорами, независимо от того, кому и когда это нужно. Даже если дополнительное время, необходимое для доступа к данным из другого ЦП (по сравнению с внешней системой памяти), будет вдвое меньше, чем время, сэкономленное на внутреннем доступе,

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


2
Неоднородные архитектуры памяти уже используются (и даже распространены) сегодня. Для ЦП со встроенными контроллерами памяти, используемого в многопроцессорной системе, данные, хранящиеся в физической памяти другого процессора, являются более удаленными и доступными с большей задержкой, чем в его локально подключенной ОЗУ. На практике в этих системах происходит то, что процессоры оснащены дополнительными уровнями кэша, а связность трафика частично обрабатывается соединительной матрицей. POWER7 и POWER8 относятся к этому типу.
Александр Р.

1

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

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


1

Проблем, которые вы описываете в своем первоначальном вопросе, можно избежать, только если ВСЕ память в машине была включена в CPU. Любая дополнительная память, добавляемая к машине через слоты на основной плате, будет подвержена тем же задержкам, которые вы описываете, и потребует устройств маршалинга и логического управления между CPU / RAM и встроенной RAM.

Оперативная память является дешевой и обычно расширяется пользователями один или даже два раза между обновлениями их процессоров.

Также помните, что типичный вызов «Fetch», даже если ОЗУ работает на тактовой частоте ЦП, приведет к ряду неактивных тиков на ЦП.

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.