你肯定好奇:手机内存(RAM)动辄8G、12G,为啥单片机RAM连1M都不到?
经典的AT89C51单片机,其内部只有128字节RAM(内存),同样经典的MSP430F149也只有2K的RAM空间。
即使现在用的比较多的STM32F1系列,其最大的RAM也不到100K。
很多小伙伴就有这样的疑问:现在固态硬盘都以 T 为单位了,手机电脑内存都是8G、甚至32G了,为什么单片机RAM连1M都不到?
今天就来讲讲关于RAM以及单片机内存少的几点内容。
(备注:本文说的单片机,指MCU,微控制器)
关于RAM
RAM:Random Access Memory,随机存取存储器,也是大家所说的内存。
RAM是一种易失性存储器,也就是说断电就会丢失存储数据。
RAM有一些常见特点:
随机存取
易失性
对静电敏感
访问速度块
······
随着需求的提高,技术的进步,RAM又发展了像SRAM、DRAM、SDRAM等多种类型的RAM存储器,这里可以参看一下文章:SRAM、DRAM、SDRAM的区别
相对于Flash、硬盘等非易失性存储器而言,RAM具有更快的读写速度,因此RAM广泛用于各种单片机、嵌入式、计算机系统中。
但RAM也存在一些“不足”,导致在很多场合,RAM的容量都相对比较小。
RAM容量小的几点原因
RAM相对Flash、硬盘而言,要做到足够大容量,其成本相对Flash要多的多。
1.RAM工艺更复杂
RAM要求速度更快,电流又不能太大,为了能尽量满足和平衡更高要求,就需要使用更特殊和更先进的半导体电容技术。
2.更大的硅面积
因为RAM的工艺更复杂,其占用硅面积相对更大。
大家应该都知道芯片的制造过程,目前芯片主要使用硅这种材料制作芯片(当前,现在也发明了更先进的材料),占用硅面积更大,意味着单个芯片成本更贵,相信这个原理大家都懂。
通过认识wafer、die、cell它们的关系你就能大概理解芯片其实是“批量”生成的。
3.功耗原因
单片机通常要求功耗不能太多,特别是低功耗的单片机,在待机模式下,要求nA级别的电路。
为了满足低功耗,单片机中RAM,通常是静态RAM(SRAM)。
这里要扩展一下与SRAM对应的DRAM(动态RAM),顾名思义,动态RAM就是需要定时给电容补充漏掉的电荷,也就是需要定时刷新,DRAM需要驱动电路,功耗相对SRAM自然更大。
4.单片机大容量RAM需求不大
大家都知道,使用单片机开发的项目,通常都是裸机,或者RTOS,一般不会用到大型软件,特别是早期的时候(早期少数对RAM有需求的项目,一般通过外扩RAM的方式)。
所以,早期很多项目对单片机RAM容量要求不高,甚至有很大一部分RAM都没有用到。
当然,随着UI、AI、物联网的快速发展,现在对单片机RAM的需求也在不断增加,很多新出的单片机RAM容量也在不断增加,比如256K,甚至512K了。
5.其他
除了以上说的几点,还有像寿命、稳定性、兼容性等也是间接影响RAM大小的因素。
最后,欢迎大家补充更多的原因。