0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

为什么单片机内部的RAM这么少?

电子设计 ? 来源:电子设计 ? 作者:电子设计 ? 2020-10-30 11:38 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

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

△ 小型封装的 MCU

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

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

△ IC 和晶片

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

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

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

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

AMD 的带有堆叠封装的 MCU

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

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

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

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

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

别忘了,早期那些令我们着迷的电子游戏,虽然有着炫酷的图形界面,但它们连程序带数据总共也只有 8k 字节的存储空间,比如吃豆子游戏,太空入侵游戏等。让我们向早期的这些极简风格嵌入式编程人员致敬吧。

参考资料

[1]Why do microcontrollers have so little RAM?

审核编辑 黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6069

    文章

    45095

    浏览量

    654061
  • RAM
    RAM
    +关注

    关注

    8

    文章

    1393

    浏览量

    117976
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    单片机采用什么电流输出

    单片机的电流输出特性与其内部电路设计和应用场景密切相关,既包含自身工作时的微弱电流,也涉及通过外部电路扩展后的驱动电流。了解单片机的电流输出特点,是实现稳定控制外部设备的基础。 单片机
    的头像 发表于 07-30 11:13 ?193次阅读

    单片机采用什么电流控制

    单片机作为电子系统的控制核心,其电流控制涉及自身工作电流管理与外部设备电流驱动两个层面。由于单片机内部电路的特性,其自身工作电流较小,而控制外部设备时需通过特定电路实现电流放大与调节,以适配不同负载
    的头像 发表于 07-30 10:07 ?127次阅读

    单片机怎么烧程序

    单片机烧程序是将编写好的程序代码写入单片机内部存储单元,让单片机按照预设逻辑工作的过程,是单片机应用开发中不可或缺的环节。无论是简单的灯光控制程序,还是复杂的工业控制算法,都需要通过烧
    的头像 发表于 07-23 11:47 ?230次阅读

    如何判断感应电机内部结构的故障?

    感应电机作为现代工业中应用最广泛的动力设备之一,其内部结构复杂,故障类型多样。准确判断感应电机内部结构的故障,不仅关系到设备的正常运行,还直接影响生产效率和安全性。本文将详细介绍感应电机内部结构故障
    的头像 发表于 07-06 07:11 ?312次阅读

    单片机学习之GPIO

    分别配置成输入或输出模式2.外设:指的是除CPU以外的外围功能模块,只不过这部分电路依旧被封装在单片机内部,比如IO,ADC,DAC,TIM等3.复位:把MCU恢复到最开始的状态,比如说我们把电脑重启了
    发表于 03-26 14:53 ?0次下载

    为什么现在电流馈电型双向DCDC谐振变换器的研究这么

    为什么无论从IEEE或其他文献网站,搜索 电流馈电型双向DCDC谐振变换器的研究都这么
    发表于 03-06 08:57

    单片机内部怎么产生三路相位相差120°的正弦波?

    做电机驱动或者逆变器,都需要使用单片机或者DSP产生正弦波,那么,在单片机内部产生正弦波的思路是什么呢?本视频来说下对应的思路,有疑问的话欢迎大家评论,留言!!
    发表于 01-20 10:56

    单片机的中断机制

    单片机的中断机制是一种重要的处理方式,它允许单片机在执行主程序的过程中,能够暂停当前任务,转而处理外部或内部紧急事件。这种机制极大地提高了系统的响应速度和处理能力,使得单片机在各种应用
    的头像 发表于 10-17 18:03 ?2077次阅读

    计算机主机内部结构

    计算机主机的内部结构是一个复杂而精密的系统,它包含了多个关键组件,这些组件协同工作以实现计算机的各种功能。以下是对计算机主机内部结构的详细解析。
    的头像 发表于 09-26 16:40 ?2494次阅读

    单片机io口怎么配置成输出口

    单片机IO口配置成输出口的过程通常涉及对单片机内部寄存器的操作。不同型号的单片机在寄存器配置和编程方式上可能有所不同,但基本原理是相似的。以下是一个通用的步骤,用于将单片机IO口配置成
    的头像 发表于 09-14 14:33 ?1694次阅读

    单片机的三种总线结构

    单片机的三种总线结构包括地址总线(Address Bus, AB)、数据总线(Data Bus, DB)和控制总线(Control Bus, CB)。这三种总线在单片机内部及与外部设备之间的数据传输
    的头像 发表于 09-10 11:32 ?7412次阅读

    单片机烧录程序的线比单片机上的还能烧录吗

    的存储器通常分为两类:ROM(只读存储器)和RAM(随机存取存储器)。ROM用于存储程序代码,而RAM用于存储程序运行过程中的数据。烧录过程就是将程序代码写入ROM中。 单片机烧录方法 单片机
    的头像 发表于 09-02 09:54 ?1200次阅读

    单片机烧录程序的基本步骤是什么

    单片机烧录程序是单片机开发过程中非常重要的一步,它涉及到将编写好的程序代码通过一定的方式传输到单片机内部的存储器中,使单片机能够按照预定的逻辑执行任务。 一、硬件准备
    的头像 发表于 09-02 09:47 ?3002次阅读

    单片机引脚悬空是什么电平

    单片机引脚悬空是指单片机的I/O引脚在没有连接任何外部电路的情况下,引脚的电平状态。悬空引脚的电平状态取决于单片机内部结构和外部环境因素。 单片机
    的头像 发表于 08-28 09:51 ?5219次阅读

    简述单片机定时器的工作原理

    单片机定时器的工作原理是一个复杂而精细的过程,它涉及到单片机内部的多个组件和机制。
    的头像 发表于 08-19 18:20 ?3320次阅读