有几个原因。
首先,内存占用了大量的硅片面积。这意味着增加 RAM 的数量会直接增加芯片的硅面积,从而增加成本。更大的硅片面积对价格产生“双重打击”:更大的芯片意味着每个晶圆的芯片更少,尤其是在边缘附近,更大的芯片意味着每个芯片更有可能出现缺陷。
二是流程问题。RAM 阵列应该以不同于逻辑的方式进行优化,并且不可能通过不同的工艺发送同一芯片的不同部分——整个芯片必须使用相同的工艺制造。有些半导体代工厂或多或少致力于生产 DRAM。不是 CPU 或其他逻辑,只是直接使用 DRAM。DRAM 需要具有面积效率的电容器和泄漏极低的晶体管。制造电容器需要特殊处理。制造低泄漏晶体管会导致晶体管速度变慢,这对于 DRAM 读出电子设备来说是一个很好的折衷方案,但对于构建高性能逻辑并不是那么好。在微控制器芯片上生产 DRAM 意味着您需要以某种方式权衡工艺优化。大型 RAM 阵列也更容易出现故障,这仅仅是因为它们的面积大,降低了产量并增加了成本。测试大型 RAM 阵列也很耗时,因此包括大型阵列会增加测试成本。此外,与更专业的微控制器相比,规模经济更能降低单独 RAM 芯片的成本。
功耗是另一个原因。许多嵌入式应用程序都受到功率限制,因此构建了许多微控制器,以便它们可以进入非常低功耗的睡眠状态。为了实现极低功耗的睡眠,使用了 SRAM,因为它能够以极低的功耗保持其内容。电池供电的 SRAM 可以在单个 3V 纽扣电池的情况下保持其状态数年。另一方面,DRAM 保持其状态的时间不能超过几分之一秒。电容器是如此之小,以至于少数电子会隧穿并进入基板,或者通过单元晶体管泄漏。为了解决这个问题,必须不断地读取和写回 DRAM。因此,DRAM 在空闲时比 SRAM 消耗更多的功率。
另一方面,SRAM 位单元比 DRAM 位单元大得多,因此如果需要大量内存,DRAM 通常是更好的选择。这就是为什么使用少量 SRAM(kB 到 MB)作为片上高速缓存与大量片外 DRAM(MB 到 GB)相结合是很常见的原因。
已经有一些非常酷的设计技术用于以低成本增加嵌入式系统中可用的 RAM 数量。其中一些是多芯片封装,其中包含用于处理器和 RAM 的单独裸片。其他解决方案包括在 CPU 封装顶部生产焊盘,以便可以在顶部堆叠 RAM 芯片。该解决方案非常聪明,因为可以根据所需的内存量将不同的 RAM 芯片焊接到 CPU 顶部,而无需额外的板级布线(内存总线非常宽且占用大量板面积)。请注意,这些系统通常不被视为微控制器。
无论如何,许多非常小的嵌入式系统并不需要太多的 RAM。如果您需要大量 RAM,那么您可能会想要使用具有外部 DRAM 而不是板载 SRAM 的高端处理器。