主存储器的构成

在一般的主存储器中主要由以下部分构成

  • MDR(memory data register)内存数据寄存器
  • MAR(memory address register)内存地址存储器
  • 存储体

存储体由存储单元构成而存储单元又由一个个存储元构成

存储元的构成和数据读写的实现原理

存储元的构成

一般存储元由以下两个元件构成

  • MOS管
  • 电容

其中

  • MOS管在接受5V及以上的电压时,会接通线路,否则保持短路状态
  • 电容在两级有电压差时会存储电荷

他们在电路图中的结构如下图所示

存储元.drawio

存储元的写入和读取

如果此时需要进行数据的写入

  1. 首先对MOS管提供5V电压让MOS管保持通路状态
  2. 在MOS管的第三个(从左往右)引脚给出高电平
  3. 此时电容左端为接地0V,右端为高电平
  4. 因此电容会存储电荷,在存储完成电荷并稳定后停止对MOS管提供5V电压
  5. 此时电容左端和右端皆为接地状态,电荷不会发生移动
  6. 存储电荷状态下的电容代表二进制数据1

如果需要进行数据的读出

  1. 首先对MOS管提供5V电压让MOS管保持通路状态

  2. 分为两种情况

    1. 第一种情况下电容中有电荷存储
      1. 此时由于MOS管已经接通
      2. 电容会释放电荷
      3. 产生高电平信号1
    2. 第二种情况下电容中没有电荷存储
      1. 此时代表低电平信号0

这样我们就可以通过一个存储元来存储一个位

存储元的拓展

当我们把多个存储元进行合理的连接(横向拓展)后

存储元-multiply.drawio

我们只要在同一条线路上施加5V电压就能够同时激活多个MOS管

同时获取这些存储元的位数据

当在共同线路上施加一次5V电压后获得的所有位数据成为存储字

对于这些被施加5V电压的存储元成为存储单元

存储字长为一个存储单元中存储元的个数

接着我们对存储单元进行竖向拓展

得到下面的结构图

存储元-row-multiply.drawio

  • CPU通过向MAR(memory address register)提供地址信息
  • 译码器通过解读CPU提供的地址信息得到在存储矩阵中对应的行
  • 然后对该行的对应的线路施加5V电压激活线路上的MOS管
  • 使电容释放数据
  • 电容释放的数据通过另一条线路被传送到MDR(memory data register)
  • 接着通知CPU取走数据

存储体的容量计算

  1. 在上图中我们的存储字长为6位(b)
  2. 如果我们的MAR为3位(b)
  3. 那么总共可以存储的数据大小可以按下面的方法计算
  4. 我们知道MAR为3位,我们可以根据此计算出存储矩阵的行数为$2^3=8$
  5. 接着我们知道存储字长为6位,我们可以知道存储矩阵的列数位$6$
  6. 因此我们可以得到存储体的大小为$8\times 6=48$bit

在描述存储芯片的大小时,还有可能出现以下的表述方式

$8K\times 8$位 这里的乘号的左边代表了MAR的位数右边代表了存储字长的位数

实际的存储体构成

在实际的存储体中除了存储矩阵、译码器之外还有控制电路和驱动器

  • 其中控制电路用来做读写控制、存储片的选择
  • 驱动器用来控制在稳定接受到译码器给出的信号后再去激活线路

控制电路的读写控制实现

控制电路的读写控制有两种实现方式

  1. 通过两个引脚实现
  2. 通过一个引脚实现

对于第一种方式

  • $\over{OE}$ (output enable) 读取使能信号在对指定引脚输入低电平信号后激活读取
  • $\over{WE}$(write enable) 写入使能信号在对指定引脚输入低电平信号后激活写入

对于第二种方式

  • $\over{WE}$
  • 在对指定引脚输入低电平时表示写入
  • 在对指定引脚输入高电平时表示读取

控制电路的片选线的含义和作用

对于控制电路的片选线(chip select/ chip enable) 芯片选择/芯片使能

$\over{CS}$ $\over{CE}$

片选线主要用于对存储芯片的选择

例如在内存上,我们会看到有许多的存储芯片,片选线就是为了选择某个存储芯片设计的

因为我们不希望在准备读取某个存储芯片时同时激活其他的存储芯片这样会增加功耗

对于一个存储体可能会有的引脚个数

  • 存储体都会有片选线 这条线会占用1个引脚
  • 存储体会接受来自CPU的地址信息 这会占用N个引脚 这里的N为MAR(memory address register)接受的位数
  • 存储体在内部处理完成后会返回给CPU对应地址的二进制信息 这回占用M个引脚 这里的M位MDR(memory data register)的位数
  • 存储体有两种不同的方式来控制写入和输出
    • 对于都用低电平代表信号的方式,其需要两个引脚
    • 对于用低电平代表写入 用高电平代表读取的方式,其需要一个引脚