Почему RAM не помещается на чип процессора?

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

Это понятно, поскольку тактовая частота процессора достигла точки, где требуется несколько тактов синхронизации для электрического сигнала, просто для запуска от CPU через шину к чипам памяти и обратно.

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

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

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

53 голоса | спросил Lesser Hedgehog 16 J0000006Europe/Moscow 2015, 02:04:33

10 ответов


76

Intel Haswell (или, по крайней мере, те продукты, которые включают графический процессор Iris Pro 5200) и IBM POWER7 и POWER8, включают встроенную DRAM, «eDRAM».

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

Другая проблема заключается в том, что DRAM не похож на SRAM, поскольку он не хранит его содержимое неограниченно во время подачи питания, а его чтение также уничтожает сохраненные данные, которые должны быть записаны позже. Следовательно, он должен обновляться периодически и после каждого чтения. И, поскольку ячейка DRAM основана на конденсаторе, заряжает или разряжает ее достаточно, чтобы утечка не искажала ее значение до следующего обновления, занимает некоторое конечное время. Это время зарядки не требуется с SRAM, который является просто защелкой; следовательно, он может быть синхронизирован с той же скоростью, что и CPU, тогда как DRAM ограничена примерно 1 ГГц при сохранении разумного энергопотребления. Это приводит к тому, что DRAM имеет более высокую внутреннюю задержку, чем SRAM, что делает его нецелесообразным использовать для всех, кроме самых больших кешей, где уменьшенная частота промахов будет окупаться. (Haswell и POWER8 примерно совпадают, и оба включают до 128 Мбайт eDRAM, который используется как кеш L4.)

Кроме того, что касается задержки, большая часть трудности заключается в том, что физические сигналы расстояния должны перемещаться. Свет может перемещаться только на 10 см в такт процессора 3 ГГц. Разумеется, сигналы не перемещаются по прямой линии по матрице и не распространяются ни на что близкое к скорости света из-за необходимости буферизации и разгона, что может привести к задержкам распространения. Таким образом, максимальное расстояние, которое память может находиться в стороне от ЦП, чтобы поддерживать 1 тактовый цикл латентности, составляет не более нескольких сантиметров, что ограничивает объем памяти, который может быть размещен в доступной области. Процессор Nehalem от Intel фактически уменьшил пропускную способность кэша L2 против Penryn частично, чтобы улучшить латентность, что привело к повышению производительности. * Если нам не все так много о задержке, то нет причин помещать память в пакет, а чем дальше, где это удобнее.

Следует также отметить, что для большинства рабочих нагрузок частота попадания в кеш очень высока: почти 90% практически во всех практических случаях и не редко даже выше 99%. Таким образом, преимущество включения больших воспоминаний на смерть зависит, по сути, от уменьшения воздействия этого небольшого процента промахов. Процессоры, предназначенные для корпоративного серверного рынка (например, POWER), как правило, имеют огромные кеши и могут с пользой включать eDRAM, поскольку полезно приспосабливать большие рабочие наборы многих корпоративных рабочих нагрузок. Haswell имеет поддержку GPU, потому что текстуры большие и не могут быть размещены в кеше. Сегодня это примеры использования для eDRAM, а не типичные рабочие нагрузки на рабочем столе или HPC, которые очень хорошо обслуживаются типичными иерархиями кэшей.

Чтобы решить некоторые вопросы, поднятые в комментариях:

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

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

* Улучшение задержки было связано не только с меньшим физическим размером кеша, но также и потому, что ассоциативность была уменьшена. Существовали значительные изменения во всей иерархии кэша в Nehalem по нескольким причинам, не все из которых были направлены на повышение производительности. Итак, хотя этого достаточно, например, это не полная учетная запись.

ответил Oleksandr R. 16 J0000006Europe/Moscow 2015, 03:38:17
17

Основные причины, по которым большая память (GB's DRAM) не включена в процессорную матрицу, в первую очередь связана с затратами. Объем процессорного пространства значительно дороже из-за производственного процесса, необходимого для создания очень маленьких функций. Возможно, также невозможно изготовить два на одной и той же матрице, хотя я не знаю достаточно подробностей, чтобы дать окончательный ответ здесь.

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

Чтобы дать сравнение масштаба, современный процессорный кристалл может составлять ~ 180 мм \ $ ^ 2 \ $ (приблизительно размер Intel Haswell умирает). У меня нет точных цифр для размеров кристалла DRAM, но предположим, что 1 ГБ традиционной DRAM занимает 140 мм \ $ ^ 2 \ $ (рассчитано из размеров DRAM GPU). В первом приближении вы примерно удваиваете размер кристалла процессора, что означает, по крайней мере, удвоение стоимости процессора и, скорее всего, всего за 1 ГБ DRAM на той же матрице ... Я не плачу несколько сотен долларов, просто чтобы получите 1 ГБ DRAM, и я не думаю, что кто-то был бы.

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

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

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

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

ответил helloworld922 16 J0000006Europe/Moscow 2015, 03:33:12
7

Существует несколько причин, по которым добавление больших объемов DRAM в CPU может быть неосуществимым.

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

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

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

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

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

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

ответил Adam Haun 16 J0000006Europe/Moscow 2015, 03:26:33
3

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

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

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

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

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

ответил phyrfox 16 J0000006Europe/Moscow 2015, 06:35:14
2

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

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

ответил Vasu 16 J0000006Europe/Moscow 2015, 19:20:36
2

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

Предположим, что 1/100 всех процессоров определенной модели произведено неправильно (на самом деле это меньше, конечно, 1/100 легче рассчитать), и 1/100 из всех произведенных RAM неисправен.

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

Это означало бы:

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

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

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

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

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

ответил Martin Rosenau 18 J0000006Europe/Moscow 2015, 09:42:15
1

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

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

ответил Mohammed Fawzan 16 J0000006Europe/Moscow 2015, 02:18:03
1

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

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

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

ответил supercat 16 J0000006Europe/Moscow 2015, 18:51:56
1

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

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

ответил Popup 17 J0000006Europe/Moscow 2015, 17:31:08
1

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

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

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

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

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

ответил Steve Matthews 19 J0000006Europe/Moscow 2015, 13:13:13

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132