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?

审核编辑 黄昊宇

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

    关注

    6078

    文章

    45630

    浏览量

    675654
  • RAM
    RAM
    +关注

    关注

    8

    文章

    1404

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    MCU单片机外扩的国产串口QSPI SRAM

    在嵌入式系统设计中,MCU单片机本身的内部RAM往往有限,当遇到数据采集、音频处理、图形显示或网络协议栈等需要大量临时存储的场景时,外扩RAM就成了刚需。传统的并行SRAM虽然速度快,
    的头像 发表于 04-15 17:29 552次阅读

    单片机外扩SRAM芯片:Async Fast EMI504WF08VB-10IE应用

    在嵌入式系统开发中,单片机内部集成的RAM容量往往有限,当程序复杂度提升或需要处理大量数据时,内部存储资源就容易不够用。所以通过外扩SRAM来扩展内存成为常见且高效的解决方案。
    的头像 发表于 03-27 14:06 222次阅读
    <b class='flag-5'>单片机</b>外扩SRAM芯片:Async Fast EMI504WF08VB-10IE应用

    纽扣电池给单片机供电问题

    在我的项目中,单片机供电是3V的纽扣电池。单片机上电就进入STOP省电模式,等待工作时候由引脚唤醒,项目主要使用单片机的adc功能,基准电压是单片机内部VEFBUFF。目前主要问题是,
    发表于 03-14 14:57

    单片机里的程序运行方式

    :它是单片机内部的核心部件,决定了单片机的主要功能特性,由运算器和控制器两大部分组成。 存储器:8051单片机在系统结构上采用了哈佛型,将程序和数据分别存放在两个存储器内,一个称为程序存储器,另一个为
    发表于 01-16 06:57

    单片机解密是什么?

    芯片的其中一个类。 单片机(MCU)一般都有内部程序区和数据区(或者其一)供用户存放程序和工作数据(或者其一)。为了防止未经授访问或拷贝单片机机内程序,大部分
    发表于 12-30 08:19

    为什么单片机芯片上需要多组VDD?

    单片机的芯片上,经常会看到多个组VDD的设计。这样的设计是为了保证 电源 稳定性,同时减小信号的噪声。本文将从单片机内部的电路结构、功耗、EMI/EMC等方面来探讨为什么单片机芯片上需要多组VDD
    发表于 12-12 07:59

    单片机系统进行扩展时需要遵循的原则有哪些

    一个单片机应用系统的硬件电路设计包含两部门内容:一是系统扩展,即单片机内部的功能单元,如ROM、RAM、I/O、定时器/计数器、间断系统等不能知足应用系统的要求时,必需在片外进行扩展,选择适当的芯片
    发表于 12-09 07:56

    单片机程序的执行

    。 但是单片机上只有几K的RAM,而flash一般有几十K甚至1M,这个时候指令和数据都在内存中吗(这里指的内存仅指RAM,因为PC上我们常说的内存就是DDR RAM memory,
    发表于 12-04 06:20

    从代码执行看单片机内存的分配

    是要求把取得的数送到A累加器,所以取出的数字经内部数据总线进入A累加器,而不是进入指令寄存器。至此,一条指令的执行完毕! 单片机中PC=0002H,PC在CPU每次向存储器取指或取数时自动加1
    发表于 12-02 07:58

    单片机如何选择复位方式?

    在数字电路领域,单片机的复位是确保其正常启动与运行的重要环节,复位功能主要是将单片机内部状态重置为初始状态,避免程序运行过程中的混乱、跑飞或死机等问题,使系统随时准备接受并执行各种指令,复位方式将
    发表于 11-26 08:09

    请问单片机RAM空间不够用了怎么办?

    单片机RAM空间不够用了怎么办?
    发表于 11-25 08:09

    单片机烧录原理是怎样的?辉芒微单片机烧录程序详细步骤讲解

    烧录(Programming)就是把 .hex/.bin 文件里的机器码搬运进单片机片内 Flash 的过程。辉芒微(FMD)单片机内部有一块 自举 BootROM,上电时会先跑这段程序;如果检测
    的头像 发表于 09-17 16:14 3467次阅读
    <b class='flag-5'>单片机</b>烧录原理是怎样的?辉芒微<b class='flag-5'>单片机</b>烧录程序详细步骤讲解

    单片机采用什么电流控制

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

    单片机怎么烧程序

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

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

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