【每日话题】为什么单片机RAM那么少?
#每日话题#对硬件和软件均小白的跑堂真的很好奇:手机内存(RAM)动辄8G、12G,可是为什么单片机RAM连1M都不到?
要知道,经典的AT89C51单片机,其内部只有128字节RAM(内存)。同样经典的MSP430F149,也只有2K的RAM空间。即使现在用得比较多的STM32F1系列,其最大的RAM也不到100K。
于是,很多小伙伴就有这样的疑问:现在固态硬盘都以T为单位了,手机电脑内存都是8G甚至32G了,可是为什么单片机RAM连1M都不到呢?(strongerHuang)
所以你知道为什么单片机RAM那么少吗?诚邀各位坛友来给不理解的“跑堂”科普~
话题奖励如下:
1、所有参与回帖的用户,都可获得10家园币(家园币可以兑换礼品);
2、抽一位发表优质见解的友友奖励500家园币。
手机电脑是需要跑大型程序的,需要占用很多的RAM空间,用来增加运行速度。手机如果RAM不够的话,运行一个APP就只能杀掉其他的APP才能保证运行,会造成APP切换卡顿。而电脑也是一样的问题,甚至电脑上的大型软件,一个软件就需要非常多的RAM资源来支持,否则运行会非常卡顿。
而单片机一般来说只会运行相对简单的多的程序,而且仅仅只是单线程运行,哪怕是上了系统的单片机,本质上也是单线程运行的,因此对RAM资源的需求就没有那么大。
而且相对于手机、电脑的几百G甚至几T的存储空间对应几十G的内存,单片机几M甚至不到1M的Flash也运行不了手机电脑上那么大型的APP,几K几十K的RAM足够使用了。 单片机就是为单独执行某些特定程序设计的,鉴于其体积和功耗机身内存必然不会做的很大,不过可以通过外部存储芯片满足实际使用需求。再说了一般小项目,在某些编程高手手中其机身内存也足够用了。本人非常羡慕那些单片机编程高手。 RAM就是钱,单片机本来就是微型控制器,RAM够用才是最好的,过大的RAM除了增加成本,没啥用,不仅ram,flash也是如此。 目前接触使用单片机开发的项目,通常都是裸机,一般不会用到特别大的计算及大型软件,所以很多项目对单片机RAM容量要求不高,甚至有很大一部分RAM都没有用到。 集成的是运行所需的基本内存,需要多内存,可以外部扩展吧。 手机的RAM 与MCU 的RAM一般是两个不同品种。目前手机一般用DDR RAM,MCU 一般用SRAM.按照存储位计算,DDR 仅用1个晶体管,而SRAM 需要用4~6个晶体管。而DDR驱动接口电路比SRAM 接口又复杂庞大许多。所以,需要小内存时采用SRAM方案每个bit平均成本有优势。需要大内存时,DDR 方案每个比特平均成本有优势。 但是如果需要低功耗,仅SRAM有技术优势。 单片机的ram少应该有以下几个原因:
1. 需求
首先,单片机能做的事情不需要那么多RAM资源,如果真的需要做更多事情,需要更高性能,直接使用x86或者带保护模式,支持MMU等,支持外扩DDR的ARM系列即可。当然,这就意味着更高的制造成本和研发成本。而大多数适合mcu的使用场景,价格便宜,开发成本低廉,RAM自然也是足够使用了。这类多内存的使用场景,功耗只能控制到一定程度,很多对功耗敏感的场景也没办法考虑。
2.成本
上面我们提到了成本,支持更多内存的解决方案,比如X86或者类似ARM cortex-a9及以上,他们外部扩展的通常是DDR3及更新的内存芯片,
无论是片子的成本,板子的成本(设计、生产)以及开发周期和mcu都不是一个级别的,广大普通应用场景根本不可能采用这样的设计方案。
当然,还有其它因素:比如开发团队,要求会更大和更高; 比如对代工厂家的要求会更高,对整个技术支撑团队要求更高:包括测试,售前售后.....对很多使用场景根本支撑不下来。
3.制造工艺
像mcu那样在一片上做几个G内存的SOC的技术和工艺应该不是一家可以搞定的,这就是为什么你即使使用了X86的CPU,还是要用三星和海力士的存储芯片的原因。你很难将上文中的要求(就像手机里那样)做成类似MCU这样的一个芯片里面。至少目前是没有必要。
MCU在他适用的需求里,它的资源满足需求了,并且这种需求一"内存“也比起当初大大提升,可以看到以后,它还继续提升,但是要想达到类似手机那种,至少不是MCU发展的方向。
多大的内存干多大的事,定位不一样而已 好像是内存越大,总线越长,一般的芯片从体积和成本上都是承担不起的,毕竟一套系统是一均衡的,不浪费够用是最经济可靠的。 ram 对应的不是xxG的那些都是ddr, ram对应的是cache L1, 虽然手机的cache 大, L1也是很小的,
手机的cpu也是可以仅仅用cache来当ram跑的. 只是没法跑更大的程序.
现在我的程序就游走在MPU和MCU之间,我做复杂的协议转换,对内存的要求还是很大的.现在市面上内存最大的比较好买就是杭州万高的V8410N,*SCM402FA),1M FLASH,1M SRAM.华芯微的也有封装了DDR的,够大,够便宜.也是一个好选择. 单片机的使用场景就决定了它不需要太大的RAM,最多也就是到1M,这已经算高端产品了,再往上上系统,肯定是外挂RAM合算啊 从芯片版图的角度出发,RAM很占面积,面积大了die就要大,说白了就是增大RAM收益很低;
从产品使用角度来看,同core 配套2K和20K 所能提供的功能可能都是一样的;
从工艺和制成上看,加大RAM都不是问题,只是成本的问题; 单片机的应用一般都很简单,直接和外设交互数据也没有什么太复杂的逻辑运算,自然ram需求不大 一直找 5*5mm内 QFN28/32 ,flash 64k以上,sram 32k以上的
12位dac+12位adc+uart各至少一路的,但找不到 一般使用场景下也不需要很大的RAM,第二个原因可能是制造成本上的考虑。 用过RAM最少的单片机是米帝的PIC12C系列的,25个字节SRAM,我抱怨过吗? 面向于不同应用吧。手机CPU这么强大,也得外扩1个T的flash,对吧 一方面是成本原因,一方面是单片机的使用场景;
如果ram增大了,flash也得上去,这些配置都上去了,那可能主频就又得相应的提上去;这些都上去了那就叫soc了。
页:
[1]
2