На это есть несколько причин.
Прежде всего, память занимает много кремниевой площади. Это означает, что увеличение объема оперативной памяти напрямую увеличивает кремниевую площадь чипа и, следовательно, стоимость. Большая кремниевая область оказывает «двойное влияние» на цену: более крупные чипы означают меньшее количество чипов на пластину, особенно по краям, а более крупные чипы означают, что каждый чип с большей вероятностью будет иметь дефект.
Второе - это проблема процесса. Массивы ОЗУ должны быть оптимизированы разными способами, нежели логика, и невозможно отправить разные части одного и того же чипа с помощью разных процессов - весь чип должен быть изготовлен с использованием одного и того же процесса. Существуют полупроводниковые основы, которые более или менее предназначены для производства DRAM. Не процессоры или другая логика, просто прямой DRAM. Для DRAM требуются эффективные по площади конденсаторы и транзисторы с очень малой утечкой. Изготовление конденсаторов требует специальной обработки. Создание транзисторов с малой утечкой приводит к более медленным транзисторам, что является хорошим компромиссом для электроники считывания DRAM, но не очень хорошо для построения высокопроизводительной логики. Создание DRAM на кристалле микроконтроллера означало бы, что вам необходимо каким-то образом отказаться от оптимизации процесса. Большие массивы ОЗУ также более склонны к возникновению неисправностей просто из-за их большой площади, снижения производительности и увеличения затрат. Тестирование больших массивов ОЗУ также занимает много времени, поэтому включение больших массивов увеличит затраты на тестирование. Кроме того, эффект масштаба снижает стоимость отдельных микросхем ОЗУ в большей степени, чем более специализированные микроконтроллеры.
Потребление энергии является еще одной причиной. Многие встроенные приложения ограничены по мощности, и в результате многие микроконтроллеры построены так, что они могут быть переведены в режим ожидания с очень низким энергопотреблением. Для обеспечения очень низкого энергопотребления SRAM используется благодаря своей способности поддерживать содержимое с чрезвычайно низким энергопотреблением. SRAM с батарейным питанием может сохранять свое состояние в течение многих лет от одной батареи 3V кнопки. DRAM, с другой стороны, не может удерживать свое состояние более доли секунды. Конденсаторы настолько малы, что горстка электронов туннелирует наружу и попадает в подложку или протекает через транзисторы ячейки. Чтобы бороться с этим, DRAM должен постоянно считываться и записываться обратно. В результате DRAM потребляет значительно больше энергии, чем SRAM в режиме ожидания.
С другой стороны, битовые ячейки SRAM намного больше, чем битовые ячейки DRAM, поэтому, если требуется много памяти, DRAM, как правило, является лучшим вариантом. Вот почему довольно часто в качестве встроенной кэш-памяти используется небольшое количество SRAM (от КБ до МБ) в сочетании с большим объемом оперативной памяти DRAM (от МБ до ГБ).
Были некоторые очень крутые методы проектирования, используемые для увеличения объема оперативной памяти, доступной во встроенной системе при низкой стоимости. Некоторые из них являются многочиповыми пакетами, которые содержат отдельные матрицы для процессора и оперативной памяти. Другие решения включают в себя изготовление накладок на верхней части корпуса процессора, поэтому чип ОЗУ может быть установлен сверху. Это решение очень разумно, так как различные микросхемы ОЗУ могут быть припаяны поверх ЦП в зависимости от требуемого объема памяти, без дополнительной маршрутизации на уровне платы (шины памяти очень широки и занимают много места на плате). Обратите внимание, что эти системы обычно не считаются микроконтроллерами.
Многие очень маленькие встроенные системы в любом случае не требуют большого объема оперативной памяти. Если вам нужно много оперативной памяти, то вы, вероятно, захотите использовать процессор более высокого класса с внешним DRAM вместо встроенного SRAM.