为什么 RAM 比其他内存更快?
编辑:宝星微科技 | 发布时间:2023-09-08 17:20 | 浏览次数:196
如今,处理器的运行速度达到令人难以置信的几兆赫 (MHz) 和千兆赫 (GHz)。他们以非常高的速度执行计算,因此必须尽快获得这些计算所需的数据。如果处理器直接读取或写入存储内存,则该过程将陷入困境,因为硬盘驱动器、闪存等存储内存根本不够快。如果处理器的运行速度受到限制,那么处理器的潜力就毫无用处,因为执行计算所需的数据无法按时获得。
RAM 通过存储计算机正在使用的信息以便快速访问来帮助我们摆脱这个问题。RAM 代表随机存取存储器。它是一种可以以更高速度读取和写入数据的存储器。RAM 越多,性能就越好。然而,RAM 是一种易失性存储器。这意味着当电源关闭时,它会丢失存储的数据。
微控制器中的 RAM
微控制器的核心元件是处理器、存储器和I/O外设。其不同类型的存储器及其外设(定时器、UART、SPI、I2C、USB 等)均在内部连接到处理器并存在于微控制器芯片内部。与使用多个芯片相比,这降低了总体成本,并最大限度地减少了电路板上所需的空间,这是许多嵌入式系统的一个重要因素。
决定微控制器性能的主要因素是处理器速度。但第二个最重要的因素是板载内存。谈到微控制器上存储器的分类,它们分为三种类型:
闪存或程序存储器
静态随机存取存储器 (SRAM)
电可擦除可编程只读存储器 (EEPROM)
要执行的程序存储在闪存或程序存储器中,这是一种只读存储器(ROM)。它是非易失性存储器。程序的执行直接从闪存完成,即不加载到RAM 中。
EEPROM用于为微控制器存储小字节数据,可以逐字节电擦除和重新编程。它是一种非易失性存储器,但与闪存相比,写入周期数更高。
SRAM用于存储程序执行时的临时变量、全局变量、程序堆栈和堆部分。与闪存和 EEPROM 不同,它是易失性存储器。微控制器中的 RAM 尺寸较小,通常为千字节 (KB) 大小。
我们知道拥有更多 RAM 可以提高性能,但微控制器的 RAM 数量仍然有限。这是因为在开发嵌入式硬件时,空间是一个关键因素。就微控制器而言,SRAM 占用大量空间,每位有六个晶体管。增加SRAM容量会增加微控制器芯片占用的占地面积,而没有空间容纳其他外设。然而,由于微控制器的任务与台式计算机相比微不足道,因此 SRAM 的小尺寸并不是主要问题,除非您正在做一些占用大量空间的事情。
但为什么 RAM 更快呢?
随机存取存储器。这个问题的答案就在名字本身。RAM 的功能与其他类型的内存略有不同。它随机访问内存。
让我们举个例子:假设下图代表一摞书。如果我要求你从中选出第 4 本书,你有两种方法可以做到:
方法1.将编号为 1、2、3 的书一一取出,然后得到编号为 4 的书。这可以称为顺序访问。
方法2.或者你可以直接从书堆中挑出第 4 本书,然后将其取出,而不必取出前三本书,这称为随机存取。
上述两个选项中速度更快的方法肯定是第二个选项,即随机访问。RAM 的功能与此类似。
为简单起见,如果我们的 RAM 有 1000 个内存块,则对内存块 389 进行随机访问与访问块 1 所需的时间相同。但是对块 389 进行顺序访问会相对较慢,因为您必须传递 1, 2, 3 。 .. 387, 388, 389 最终到达所请求的内存块。这就是 RAM 速度更快的原因。它对内存块进行随机访问,而不是顺序访问,这得益于 RAM 的内部结构。
当我们看RAM的基本组织时,有一个地址解码电路和一个二维的内存块阵列,它们相互连接,就像一个矩阵。
首先,地址解码电路接收目标地址,这是一组位,对应于将我们带到特定存储单元的开关链。然后,使用多路复用器和多路分解器的组合,它对输入地址进行解码,找到它必须遍历内存块的哪一行和哪一列才能到达所请求的内存块。当然,我们已经在很大程度上简化了解释。在微处理器级别实现这一点需要相当大的复杂性。
如果板载 RAM 不存在,我们的微控制器将很难满足现代的速度要求,因为处理器需要从相对较慢的闪存中获取数据。它可以被认为与处理器或程序存储器一样重要。您的处理器可以访问的 RAM 越多,它的工作就越容易,因为有更多的空间和内存可供使用。