Dafür gibt es mehrere Gründe.
Erstens beansprucht der Speicher viel Siliziumfläche. Dies bedeutet, dass eine Erhöhung der RAM-Größe direkt die Siliziumfläche des Chips und damit die Kosten erhöht. Eine größere Siliziumfläche hat einen doppelten Whammy-Effekt auf den Preis: Größere Chips bedeuten weniger Chips pro Wafer, insbesondere am Rand, und größere Chips bedeuten, dass jeder Chip mit größerer Wahrscheinlichkeit einen Defekt aufweist.
Zweitens ist die Frage des Prozesses. RAM-Arrays sollten auf andere Weise als die Logik optimiert werden, und es ist nicht möglich, verschiedene Teile desselben Chips durch verschiedene Prozesse zu senden - der gesamte Chip muss mit demselben Prozess hergestellt werden. Es gibt Halbleiterfabrikanten, die sich mehr oder weniger der Herstellung von DRAM widmen. Keine CPUs oder andere Logik, nur DRAM. DRAM erfordert flächeneffiziente Kondensatoren und sehr leckarme Transistoren. Die Herstellung der Kondensatoren erfordert eine spezielle Verarbeitung. Die Herstellung von Transistoren mit geringem Leckverlust führt zu langsameren Transistoren, was ein guter Kompromiss für die DRAM-Ausleseelektronik ist, aber für die Erstellung einer Hochleistungslogik nicht so gut wäre. Die Herstellung von DRAM auf einem Mikrocontroller-Chip würde bedeuten, dass Sie die Prozessoptimierung in irgendeiner Weise in Frage stellen müssten. Bei großen RAM-Arrays ist es auch wahrscheinlicher, dass sie aufgrund ihrer großen Fläche, ihres geringeren Ertrags und der steigenden Kosten Fehler entwickeln. Das Testen großer RAM-Arrays ist auch zeitaufwendig und daher erhöhen sich die Testkosten, wenn große Arrays verwendet werden. Darüber hinaus senken Skaleneffekte die Kosten für separate RAM-Chips stärker als für spezialisiertere Mikrocontroller.
Der Stromverbrauch ist ein weiterer Grund. Viele eingebettete Anwendungen sind auf wenig Strom angewiesen, weshalb viele Mikrocontroller so gebaut sind, dass sie in einen Energiesparmodus versetzt werden können. Um einen Ruhezustand mit sehr geringem Stromverbrauch zu ermöglichen, wird SRAM aufgrund seiner Fähigkeit verwendet, seinen Inhalt mit äußerst geringem Stromverbrauch aufrechtzuerhalten. Ein batteriegepufferter SRAM kann seinen Zustand über Jahre hinweg mit einer einzigen 3-V-Knopfbatterie halten. DRAM hingegen kann seinen Zustand nicht länger als einen Bruchteil einer Sekunde halten. Die Kondensatoren sind so klein, dass eine Handvoll Elektronen aus dem Substrat heraus und in das Substrat hinein tunneln oder durch die Zellentransistoren lecken. Um dem entgegenzuwirken, muss der DRAM kontinuierlich ausgelesen und zurückgeschrieben werden. Infolgedessen verbraucht der DRAM im Leerlauf erheblich mehr Strom als der SRAM.
Auf der anderen Seite sind SRAM-Bitzellen viel größer als DRAM-Bitzellen. Wenn also viel Speicher benötigt wird, ist DRAM im Allgemeinen eine bessere Option. Aus diesem Grund wird häufig eine kleine Menge SRAM (kB bis MB) als On-Chip-Cache-Speicher in Verbindung mit einer größeren Menge Off-Chip-DRAM (MB bis GB) verwendet.
Es wurden einige sehr coole Designtechniken verwendet, um die in einem eingebetteten System verfügbare RAM-Menge zu niedrigen Kosten zu erhöhen. Einige davon sind Multi-Chip-Gehäuse, die separate Chips für den Prozessor und den RAM enthalten. Andere Lösungen umfassen die Herstellung von Pads auf der Oberseite des CPU-Pakets, so dass ein RAM-Chip darauf gestapelt werden kann. Diese Lösung ist sehr clever, da abhängig von der benötigten Speicherkapazität verschiedene RAM-Chips auf die CPU gelötet werden können, ohne dass ein zusätzliches Routing auf Kartenebene erforderlich ist (Speicherbusse sind sehr breit und beanspruchen viel Kartenfläche). Beachten Sie, dass diese Systeme normalerweise nicht als Mikrocontroller betrachtet werden.
Viele sehr kleine eingebettete Systeme benötigen ohnehin nicht viel RAM. Wenn Sie viel RAM benötigen, sollten Sie wahrscheinlich einen High-End-Prozessor mit externem DRAM anstelle von integriertem SRAM verwenden.