为什么单片机通常只有那么小的数据内存?

举报
tsinghuazhuoqing 发表于 2021/12/27 01:05:53 2021/12/27
【摘要】 也许大家都注意到了,在过去的20多年的时间里,微控制器(MCU)经历了跨越式的发展,这反映在很多方面,比如更高的系统始终、更多的外设模块、更加便利的调试手段、32位的内核等等。但MCU内部的数据内存空间则...

也许大家都注意到了,在过去的20多年的时间里,微控制器(MCU)经历了跨越式的发展,这反映在很多方面,比如更高的系统始终、更多的外设模块、更加便利的调试手段、32位的内核等等。但MCU内部的数据内存空间则始终在十几K(16~32KB)的左右徘徊,虽然有些基于Cortex M4核单片机有多达265kB RAM的型号,但是在众多单片机型号阵列中,它们是寥寥无几。

那么,究竟什么原因使得单片机很容易拥有多达数 MB的程序Flash空间,而数据内存只有那么小呢?

△ 小型封装的MCU

△ 小型封装的MCU

在一篇博文“Why do microcontrollers have so little RAM?”中,众人给出了单片机RAM容量小的很多原因。

在所有影响单片机内RAM增加的原因中,一个基础的问题就是RAM会占用很多硅片面积,这也会直接引起芯片价格的增加。这是因为在同样的硅片上,占用硅片面积大会使得MCU数量就会减少,特别是在晶圆片的边界部分造成更大的浪费。祸不单行,面积大的IC也更会产生缺陷,使得成品率下降。

第二个原因就是制作RAM的工序复杂。可以通过不同手段优化RAM生产工艺,但在制作MCU过程中, 同一芯片不可能经历过多的工序。有一些芯片加工服务厂商专门生产DRAM,这是利用特殊的半导体电容技术来极大减少RAM所占用的硅片面积。但DRAM需要通过不停刷新来维持其内部数据。为了延迟DRAM单元保持数据的能力,就要求晶体管漏电流小,这也会造成晶体管的运行速度降低。这需要在速度和数量之间做折中,但这种折中工艺不利于制作高速逻辑电路。

△ IC和晶片

△ IC和晶片

此外,大容量RAM电路在后期的测试阶段也会消耗大量的时间,从而增加生产的时间成本。所以,经济原因造成生产RAM的专门厂商兴起。

功耗是另外一个限制因素。单片机系统通常对功耗有限制,很多情况下,单片机通过进入睡眠状态来减少耗电量。普通的SRAM耗电量很小,通过备用电池往往可以工作很多年。但DRAM则需要通过不断刷新来维持存储的数据。一旦停止刷新,由于漏电流的存在,DRAM的内容在不到一秒钟的时间内就会消失。所以,单片机中不能够使用DRAM而只能使用占用硅片面积更大的SRAM。

在现代CPU技术中,往往在新品中保留数量较少的SRAM作为缓存(Cache),而将大容量的DRAM作为CPU外部的数据存储空间。

有一些非常酷的手段可以将不同生产工艺的RAM和MCU制作工艺融合在一起,例如多芯片封装技术(Multi-Chip Package),将RAM新品放在MCU芯片上面堆叠一起进行封装,这比在电路板上将RAM与MCU集成更加节省系统体积,也提高数据传输速率。

△ AMD的带有堆叠封装的MCU

△ AMD的带有堆叠封装的MCU

最后一个原因,那就是在绝大多数单片机应用的场合所需要的RAM的容量都比较少。比如在嵌入式控制领域,很多很多传感器信息都可以用极少字节的数据来表示,用于控制的参数和控制逻辑占用数据空间也很少。

所以当需要大量RAM的应用出现的时候,往往就会直接采用集成有大容量DRAM的电路板来工作。通过外部集成大容量RAM芯片要远比MCU内部集成的RAM更加经济。

△ 高容量的DRAM

△ 高容量的DRAM

除了前面的原因之外,单片机指令集也会限制RAM访问空间。比如Microchip公司的单片机,PIC10LF320,是12bit的指令,它只能够范围128字节的RAM空间。对于8031单片机,直接寻址的RAM空间也只有128字节。如果访问更大的外部存储空间,则需要借助于执行效率更低的间接指令。

单片机总线结构分为Harvard结构和Von Neumann结构,后者中,程序和数据存储空间是在同一个访问空间中。如果单片机中集成了大量的Flash区,那么留给数据RAM空间访问地址就少了。

此外,高效的C语言编译器,可以有效重复应用有限的RAM空间完成所需要的任务。在复杂的应用中,往往会采用多个单片机协同完成,这大大提高系统实时特性。巧妙的设计方案会避免嵌入式系统对大容量RAM的需求。所以,有人认为,正是由于没有大量需要高RAM容量的应用要求,是造成现在单片机内部RAM少的真正原因。

别忘了,早期那些另我们着迷的电子游戏,虽然有着炫酷的图形界面,但它们连程序带数据总共也只有8k字节的存储空间。让我们想早期的这些嵌入式编程人员致敬吧。

▲ 吃豆子游戏

△ 吃豆子游戏

△ 太空入侵电子游戏

△ 太空入侵电子游戏

文章来源: zhuoqing.blog.csdn.net,作者:卓晴,版权归原作者所有,如需转载,请联系作者。

原文链接:zhuoqing.blog.csdn.net/article/details/105836315

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。