内存

C1103A-2 H9971S500

内存分为只读存储器(ROM)、随机读写存储器(RAM)以及高速缓冲存储器(Cache),本文将针对内存的相关原理进行总结

内存的种类

ROM

ROM工作原理及特性

ROM是非易失的存储器,掉电后不丢失,但是一旦存储资料便无法改变或删除。经常存放一些比较关键的内容,例如BIOS

RAM

DRAM工作原理及特性

基本工作原理

DRAM实际就是一个电容和二极管组成的二维矩阵,下图展示了DRAM的电气结构,一个4*4的矩阵。矩阵的每一个节点代表一个二进制bit。具体表示如下

  • 当电容充电,代表1
  • 当电容未充电,代表0

图片名称

由于晶体管有漏电电流,因此DRAM需要动态刷新,且掉电后数据挥发,所以被成为动态存储。

读写操作2

由于DRAM电路是矩阵形式,所以操作也是二维操作,先定位行,再定位列,接下来我们针对内存中的读写操作进行总结。

读操作
DRAM相关特性
优点

与SRAM相比,DRAM结构简单,一个bit需要一个二极管一个电容进行表示,所以存储密度高,成本较低。

缺点

访问速度慢,耗电量大

内存结构3

这里我们以2GB的DDR3内存为例,对内存结构进行讲解,内存结构图如下所示:

图片名称

  • Rank:内存的一排,上面的内存由两个rank组成,每个rank有8个clip
  • Clip:颗粒,一个rank包含8个颗粒,每个128MB,共提供1GB内存
  • Bank:存储数据的矩阵单元,一个颗粒8个bank,根据行列定位随机存储的数据块
  • Cell:单元,用于存储一个数据单位,DDR3为8bit,如果CPU是32位,那么可以一次读写4个cell

内存特点

  • 速度较快(1.3GHz左右)
  • 价格较高

内存单元

定义

如果我们把内存看作是一个大的存储箱,那么内存单元就是这个存储箱中一个个小隔间,内存单元是我们唯一的一种使用内存的方式。内存单元是可以寻址的,我们在计算机中的地址实际就是指向一个内存单元。一般来说,内存单元是字节寻址的,即内存的划分粒度为字节,一个内存单元的大小是一个字节,我们可以访问内存中单个的字节。这个是由计算机的硬件决定的,你可以将内存想象为一个$n\times 8$的矩阵电路,$n$代表的是地址数,根据CPU总线数决定;而$8$代表一次能够读取8个位,即一个字节。字节寻址的机器又叫做“字节机”。对于字节寻址的内存,我们需要注意如下两点:

  • 一个地址总是指向一个字节的空间
  • 一个字是一个字节组,根据CPU数据总线的大小,可以是2、4或8个字节

计算

假设我们现在有一个指针nextfree,显示下一个空闲的内存单元的地址,其值为0xff105000,而我们需要存储4096字节的数据。那么存储完后,nextfree的值是多少?

答:由于一个内存单元大小为一个字节,而一个地址指向一个内存单元大小的空间,那么我们的计算非常简单,公式如下:

所以$\textrm{nextfree}=\textrm{0xff105000}{H}+4096{D}=\textrm{0xff106000}$

FIFO

FIFO是FPGA设计中常用的IP核,即一个先进先出的内存结构,可以分为同步(读写同时钟)与异步(读写时钟分开)两种。最重要的功能就是进行缓存。异步FIFO还有跨时钟域的作用。FIFO中关键信号如下:

  • 写时钟/数据/使能
  • 读时钟/数据/使能
  • 复位信号
  • 空/满信号(抑制读写)

参考文献

0%