存储器之主存与CPU的联系

主存储器

主存的基本构成

主存储器需要根据MAR中的地址访问某个存储单元,还需要经过地址译码、驱动等电路,才能找到所需要访问的单元。

当主存储器写入时,会从MDR中取出数据经过写入电路,才会被写入到选中的单元中。

当主存储器被读时,会从 被选中单元中取出数据,经过读取放大器,最后送入到MDR。

主存和CPU的联系

现代主存通常将 译码器驱动器读/写电路做在主存储器中;将 MDRMAR 集成在CPU中。两者通过总线相连接。

当CPU要读取数据时:

  1. CPU会将待读取地址发送到MAR,地址经MAR发送到主存
  2. CPU发出读命令。
  3. 主存接到命令后,读取指定地址单元上的内容
  4. 将单元的内容读至数据总线上

当CPU要写入数据时:

  1. CPU会将待写地址发送到MAR,地址经MAR发送到主存
  2. CPU将要写入的数据发送到MDR,数据经MDR发送到主存
  3. CPU发出写入命令
  4. 主存街道命令,将数据线上的信息写入到对应地址单元。

主存中存储单元地址分配

不同的机器,存储字长不同,通常存储字长是8的倍数。CPU可按字地址查找,也可以通过字节查找。如果存储字长为8位,机器字长32位(每一个字有32位),每个字都包含4个可独立寻址的字节,字地址是用该字的高位字节来表示的。

不同机器的字地址和字节地址

如图a所示,对24位地址线的主存而言,按字节寻址的范围是 2^24 bit,按字寻址的范围是 2^22 bit(先算出按字节算的个数,然后再除以一个字占用的字节)。
如图b所示,对24位地址线的主存而言,按字节寻址的范围是,2^24 bit,按字寻址的范围是 2^23 bit。

主存的技术指标

存储容量

存储容量是指 主存能存放二进制代码的总位数,即

1
2
3
    存储容量 = 存储单元个数 X 存储字长         

存储容量 = 存储单元个数 X 存储字长 / 8

存储速度

存储速度是由存取时间和存取周期来表示的。
存取时间又称为 存储器的访问时间(Memory Access Time) , 是指启动一次存储器操作(读或写)到完成该操作所需的全部时间。

存取时间分为 读出时间写入时间

  • 读出时间:存储器接收到有戏地址开始,到产生有效输出所需的全部时间。
  • 写入时间:存储器接受到有效地址开始,到数据写入被选中单元为止所需的全部时间。

存取周期是指存储器进行连续 开始 两次独立的存储操作所需的最小间隔时间(开始读取操作到下一次开始读取操作这段时间称为存取周期)。

译码驱动方式

线选法

一根字选择先,直接选中一个存储单元(比如一个字节)。这种方式适用于容量不大的存储芯片,因为容量大了之后所需要的字线根数就会很大。如图所示

重合法

对于1K X 1位存储芯片,采用重合法就只需要32 + 32根选择线,重合法就和x、y轴确定一个点一样,所以当地址线输入全为0时,x0和y0就有效了,矩阵中第0行、第0列共同选中的那行就被选中了。所以当x、y线都被选中时才能决定地址,所以称为重合法。
重合法