单片机为什么不需要缓存(RAM)?

CPU需要在缓存中计算,那单片机为什么不需要缓存?
1楼所说,我知道是集成的,单片机还是有缓存的。我先开始问关于单片机的带宽,我得到这个答案。http://zhidao.baidu.com/question/211964131.html
这个答案说单片机根本没有缓存,所以也不存在什么缓存与CPU之间的带宽……
所以我又问,单片机为什么没有缓存,你的答案就和他说的矛盾了,我不知道该相信谁了……能进一步解释吗?

看看我能不能帮到你。
缓冲存储器是为了缓解低速部件和高速部件之间的矛盾设置的缓冲区域。距离来讲,比如低速的软盘,读里边的内容时可能需要几十秒,这么长的时间CPU不可能在那白等,那么就设置一骗缓冲,先读到缓冲里,等读完之后再呼唤cpu来处理,这样一来就提高了效率。
现在的cpu缓冲存储器也是为了提高效率,采用设计好的算法预先猜测程序的走向,把一部分有可能呗执行的代码先弄到缓冲存储器里边,如果算法设计的好,恰好下一次活着几次就能够从缓冲里取得要执行的代码,而不用从硬戒指等低速设备获得代码,这样就提高了效率,没猜中一次就叫做“命中”一次,同事可以设立二级缓冲三级缓冲,更加提高效率。
说到这里你就知道了,单片机很可能在很多人眼里就不配有缓冲了。单片机基本上是单一任务处理器,代码走向很固定,而且吞吐量不大,本身就是为过程服务,并不是事件驱动,也没多线程,勉强上个操作系统也没什么意思。所以,还要缓冲干嘛呢。
如果ARM算单片机的话,那么这个事情就不好说了,高级点的ARM是有缓冲的。不过说到这你也应该明白了吧,缓冲不缓冲的,还是看场合。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-01-03
首先说明单片机是国人对微控制器(MCU)的俗称,微控制器包括了常见的八位或16位的(如51/avr/pic单片机),还有32位的部分ARM芯片业是微控制器范畴。

如果按照百度百科上对“缓存”的解释(内存属于缓存),那么所有的的4位、8位、16位、32位的MCU都有缓存,一般MCU的缓存就是数据存储单元。而且你的标题里写到了RAM,其实内存也是属于RAM的范畴,而MCU就是集成了CPU、RAM和输入输出总线的芯片。

如果你要问像计算机微处理器(就是人们常说的电脑CPU芯片其实学名叫微处理器)里头的L1、L2之类的,那么只有一些高端的32位的MCU有缓存(不一定是ARM才是32位的MCU、有些厂家推出的独立架构的32位MCU也能和ARM比)。

而一般4位、8位16位的MCU基本上都是对数据进行实时操作的。比如说控制导弹的飞行轨迹,这是需要实时的,稍微一点延时也会造成很大的错误。如果数据量大的话,MCU处理不过来,那么就要换用更高频率的时钟电路或者换用功能更强的MCU,而不是像计算机的微处理器那样加上L1、L2来做缓冲
第2个回答  2011-01-02
缓存只是一个概念,寄存器是否属于缓存区是人为定义的.你可以把某个ram叫做缓存,也可以不叫缓存.并没有规定CPU计算的部分必须称为缓存,也可以不叫做缓存.
早期电子里也就没有缓存这个概念,缓存概念出来之前,单片机已经使用的范围很广了.
第3个回答  2020-07-22
大部分单片机主频速度比较低,片内的SRAM速度比较快,可以做到与CPU同频率了,因此不需要cache。高性能的Cortex M7主频能达到500MHZ,就带了cache.
第4个回答  2011-01-02
你是指电脑的cpu么?它的缓存你是指内存条么?
如果是的话,那么你应该对单片机不是很了解
单片机是集成芯片,内部已经集成ram rom cpu(运算处理器) 总线等等
所以才叫它单片机 他已经具备存储(rom),缓存(ram),运算于一体了。相当于一个最简单的主机机箱里的主要部件集成在一个芯片中,所以..自己理解下