Современные процессоры очень быстры по сравнению со всеми внешними устройствами, включая память (RAM).
Это понятно, поскольку тактовая частота ЦП достигла точки, когда для электрического сигнала требуется несколько тактов для простого прохождения сигнала от ЦП через шину к микросхемам ОЗУ и обратно.
Это также усложняет жизнь на многих уровнях: многоуровневые иерархии кеша создаются для доставки данных ближе к ЦП, что, в свою очередь, требует сложной логики синхронизации в чипе. Программы должны быть написаны для кэша, чтобы избежать циклов ожидания во время выборки данных.
Многих из этих проблем можно было бы избежать, если бы значительный объем оперативной памяти был расположен непосредственно на чипе процессора. Он не должен быть эксклюзивным: возможно, поместите 1-4 ГБ на чип, в зависимости от его класса, и разрешите установку дополнительной памяти отдельно.
Я уверен, что есть веские причины, по которым Intel, AMD и тому подобное не делают этого. Каковы эти причины? Неужели на чипе нет места?
Ответы:
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 произошли значительные изменения во всей иерархии кэша по нескольким причинам, не все из которых были направлены на повышение производительности. Таким образом, хотя этого достаточно в качестве примера, это не полный отчет.
источник
Основные причины, по которым больший объем памяти (ГБ DRAM) не включен в саму матрицу ЦП, связаны главным образом с затратами. Пространство кристалла ЦП значительно дороже из-за производственного процесса, необходимого для изготовления очень мелких элементов. Также может быть невозможно изготовить два на одном кристалле, хотя я не знаю достаточно о деталях, чтобы дать здесь какой-либо окончательный ответ.
Давайте оценим возможность размещения большого количества DRAM непосредственно на кристалле процессора.
Тем не менее, идея прикрепления памяти ближе к процессору не является полностью потерянным делом. Вполне вероятно, что в будущем память будет двигаться, потому что скорость света конечна, и так быстро общаться можно только на определенном расстоянии.
Реалистичные методы перемещения памяти ближе к процессору (обратите внимание, что они также имеют компромиссы с традиционными методами):
Сложите их поверх самого процессора. Это уже сделано на Raspberry Pi и является частью стандарта памяти Wide I / O. Память по-прежнему представляет собой отдельный кристалл, изготовленный по отдельному процессу. Однако проблема заключается в том, что любое тепло, рассеиваемое в ЦП, должно проходить через память, прежде чем достигнет радиатора. Это означает, что он не будет работать для процессоров с высоким энергопотреблением, и поэтому основные приложения для этой технологии находятся в мобильных процессорах / других встроенных приложениях, где ваш процессор не потребляет много десятков или сотен ватт.
Приклейте их очень близко к более дешевой подложке. Вот как HBM предназначен для работы с очень большой шиной, изготовленной на более дешевой «промежуточной» матрице, и это направление, в котором движется высокопроизводительная память GPU, потому что пропускная способность значительно выше. Микросхемы памяти и вставка все еще производятся на разных кристаллах от фактического процессора.
источник
Есть несколько причин, по которым добавление большого количества DRAM в ЦП может быть невозможным.
Процесс и fab не могут быть настроены для DRAM. DRAM требует специальных элементов схемы, которые производят дополнительные производственные этапы. Это увеличивает стоимость изготовления.
Вся эта память должна быть проверена. Тестирование памяти увеличивает время тестирования. Это еще одно повышение стоимости.
Увеличение матрицы само по себе является повышением стоимости, поскольку оно означает меньшее количество фильер на пластину. Это также влияет на урожайность - один дефект забирает большую часть вашей пластины. В качестве крайнего примера этого взгляните на стоимость полнокадровых (35 мм) датчиков изображения в камерах.
Разработка процесса, который может обрабатывать специальные виды памяти, занимает больше времени, денег и работы, и имеет более высокий риск отказа. Любая проблема с DRAM задержит освобождение процессора. Настольные процессоры находятся на переднем крае производства полупроводников, поэтому задержка может быть огромным конкурентным недостатком. (См .: AMD против Intel за последние несколько лет.)
DRAM требует аналогового считывания для чтения, а также периодического обновления. Я не эксперт по DRAM, но я сомневаюсь, что он может быть таким же быстрым, как высокопроизводительный процессор, независимо от того, встроенный он или встроенный. Так что вы, вероятно, все еще застряли с кэшированием SRAM.
Даже если вы сможете преодолеть вышеуказанные проблемы и втиснуть пару гигабайт DRAM в кристалл ЦП, этого все равно будет недостаточно для запуска настольного ПК, ноутбука или сервера, так что вам все равно придется иметь внешнюю память ,
источник
В дополнение к другим ответам, есть еще что можно сказать о такой системе. Перемещение памяти в основную матрицу будет включать в себя множество других инженерных проблем. Вам придется перенаправить шины, встроить контроллер DMA в основной процессор, реструктурировать шину IRQ и определить, как избавиться от всего того дополнительного тепла, которое вы будете выделять в концентрированной зоне. Это означает, что производитель материнских плат также должен был принять участие, чтобы поддержать такие существенные изменения. В то время как бюджетные системы, вероятно, выиграют от такого изменения, высокопроизводительные системы, вероятно, потребуют существенного охлаждения. Я сомневаюсь, что средний ноутбук мог бы справиться с таким чипом, например.
Такой чип будет значительно дороже, хотя основная материнская плата подешевеет (хотя, вероятно, не заметно). Если вы видели пакеты для контроллера DMA и пакеты оперативной памяти, вам было бы трудно поверить, что всю эту логику можно запрессовать в один кристалл, который не будет существенно больше. Также помните, что процессоры вырезаны из больших пластин определенного размера. Это означает, что у производителя также будет гораздо меньше процессоров на каждую пластину, что также увеличит общую стоимость.
Имейте в виду, что мы говорим не о потребляемой мощности по всей системе, которая будет уменьшаться, а о том, что в одной зоне будет еще больше концентрации мощности (и, следовательно, тепла), что, вероятно, увеличит вероятность отказ.
Наконец, здесь есть еще один недостаток, а именно возможность предоставлять индивидуальные системы. В настоящее время производители могут выбирать системы с одинаковыми процессорами, но с разными объемами памяти, или с разными процессорами, но с одинаковым объемом памяти, в зависимости от предпочтений клиента. Чтобы предложить множество разных конфигураций, им нужно было бы создавать разные штампы, каждый на своей сборочной линии.
AMD активно использует технологию, которая на самом деле работает таким образом, где каждая часть кристалла процессора представляет собой дискретный логический блок, который может быть заменен для различных конфигураций. В будущем, если такая конструкция будет жизнеспособной, мы вполне можем рассматривать процессоры, предлагающие встроенную память, как дорогостоящее обновление модуля, возможно, замену некоторой вычислительной мощности взамен или другие изменения. Например, однажды у нас может быть выбор между 256 ядрами без встроенной памяти или 128 ядрами со встроенной памятью, или, возможно, даже с другими конфигурациями, такими как частичный графический процессор, частичный процессор, частичный объем ОЗУ.
источник
Почти все вышеперечисленное + еще одна дополнительная проблема: жара.
Элементы DRAM представляют собой конденсаторы с утечкой. А диэлектрик здесь - это сам слой SiO2. При повышении температуры токи утечки увеличиваются пропорционально. Они разряжают ячейки DRAM намного быстрее, что потребовало бы гораздо более высоких скоростей обновления, что увеличило бы сложность, требуемый ток и, конечно, добавило бы еще больше тепла.
источник
В дополнение к уже даным ответам есть еще один аспект: отходы из-за производственных ошибок:
Скажем, 1/100 всех процессоров определенной модели неисправны (в действительности, конечно, меньше; 1/100 легче вычислить), а 1/100 всех произведенных ОЗУ неисправны.
Если оба компонента будут объединены в одной микросхеме, то 1/100 всех микросхем будет иметь дефектный процессор, а 1/100 всех микросхем будет иметь дефектную оперативную память.
Это будет означать:
Производя отдельные чипы, расчет следующий:
Обратите внимание, что один ГБ ОЗУ обычно создается в виде банка, состоящего из восьми чипов, поэтому вам не придется объединять два, а девять компонентов в один чип, если вы хотите разместить ОЗУ и ЦП на одном чипе. Это приведет к примерно 865 дефектным деталям из 10000, произведенным в простом примере выше.
Процессоры «IBM Cell» имели именно эту проблему. Консоль "Playstation" использовала чипы, которые были частично неисправны; программное обеспечение Playstation было написано таким образом, чтобы дефектные ядра и SRAM не использовались.
источник
На самом деле существует два типа оперативной памяти. Это статическая и динамическая память. Статическая память очень быстрая, но стоит дороже. Между тем динамическое ОЗУ медленное по сравнению со статическим ОЗУ, но обходится дешевле, чем статическое ОЗУ.
Кэш-память попадает в статическую память. Вы можете видеть, что они бывают в килобайтах или мегабайтах. Они быстрые. Но высокая стоимость.
источник
В дополнение к другим упомянутым причинам многие системы имеют более одного ядра процессора. В случаях, когда информация, которая хранится в основном DRAM, совместима со всеми кэшированными копиями, все процессоры, которые не имеют кэшированной информации, будут иметь равный доступ к ней. Некоторые архитектуры основаны на предположении, что каждое ядро ЦП будет «владеть» диапазоном адресного пространства, и даже если ЦП способен обращаться к памяти, принадлежащей другим процессорам, такой доступ будет намного медленнее, чем доступ к его собственной памяти. , но x86 обычно не реализован таким образом.
Если система была разработана на основе предположения о том, что процессорные ядра имеют определенные диапазоны адресов, а код должен пытаться свести к минимуму использование диапазонов адресов других процессоров, то было бы целесообразно, чтобы каждый код процессора включал в себя большой объем встроенной памяти. Такая конструкция может сократить время, необходимое для доступа ядра процессора к собственной памяти, но, вероятно, увеличит время, необходимое для доступа к памяти другого процессора. Однако, если система не разработана на основе такого предположения, вполне вероятно, что данные будут распределяться между процессорами, независимо от того, кому и когда это нужно. Даже если дополнительное время, необходимое для доступа к данным из другого ЦП (по сравнению с внешней системой памяти), будет вдвое меньше, чем время, сэкономленное на внутреннем доступе,
Если бы кто-то проектировал систему с нуля, чтобы она соответствовала современным технологиям, неоднородная архитектура памяти могла бы дать больший «урок», чем та, которая должна позволить всем процессорам эффективно обращаться ко всей памяти. Однако с учетом современных разработок программного обеспечения наличие внешней системы памяти, которая распределяется между процессорами, может оказаться более эффективным, чем попытка хранения большого объема данных внутри самих процессоров.
источник
Несмотря на то, что все предыдущие ответы верны, они указывают, почему так сложно добавить больше памяти для ЦП, но верно и то, что в современных ЦП достаточно много памяти.
В операциях реального времени, когда важны детерминированные задержки, нередко используется встроенная кэш-память в качестве адресуемой памяти для кода и / или данных. Преимущество заключается в быстром и постоянном времени доступа, а недостатком является то, что встроенная память довольно ограничена.
источник
Проблем, которые вы описываете в своем первоначальном вопросе, можно избежать, только если ВСЕ память в машине была включена в CPU. Любая дополнительная память, добавляемая к машине через слоты на основной плате, будет подвержена тем же задержкам, которые вы описываете, и потребует устройств маршалинга и логического управления между CPU / RAM и встроенной RAM.
Оперативная память является дешевой и обычно расширяется пользователями один или даже два раза между обновлениями их процессоров.
Также помните, что типичный вызов «Fetch», даже если ОЗУ работает на тактовой частоте ЦП, приведет к ряду неактивных тиков на ЦП.
Традиционная организация памяти на машине - это пирамида с регистрами ЦП вверху, затем кеш, затем ОЗУ, затем диск. Как правило, машины, которые работают хорошо, имеют комбинацию приличной тактовой частоты, разумного объема кеша, хорошего объема оперативной памяти и высокоскоростного жесткого диска (или массива). В последние годы производительность дисков обычно дает наилучшее повышение производительности на большинстве дисков ПК и дисков с высокой частотой вращения, а диски с кэш-памятью и твердотельные диски дают хороший прирост производительности.
Да, машина со всей своей оперативной памятью на кристалле будет хорошо работать в современных приложениях, но машина с некоторой оперативной памятью на кристалле, работающей под управлением стандартной операционной системы, скорее всего, не обеспечит повышения производительности, как вы думаете.
источник