主存储器
主存储器需要根据MAR中的地址访问某个存储单元,还需要经过地址译码、驱动等电路,才能找到所需要访问的单元。
当主存储器写入时,会从MDR中取出数据经过写入电路,才会被写入到选中的单元中。
当主存储器被读时,会从 被选中单元中取出数据,经过读取放大器,最后送入到MDR。
主存和CPU的联系
现代主存通常将 译码器、 驱动器、 读/写电路做在主存储器中;将 MDR、 MAR 集成在CPU中。两者通过总线相连接。
当CPU要读取数据时:
- CPU会将待读取地址发送到MAR,地址经MAR发送到主存
- CPU发出读命令。
- 主存接到命令后,读取指定地址单元上的内容
- 将单元的内容读至数据总线上
当CPU要写入数据时:
- CPU会将待写地址发送到MAR,地址经MAR发送到主存
- CPU将要写入的数据发送到MDR,数据经MDR发送到主存
- CPU发出写入命令
- 主存街道命令,将数据线上的信息写入到对应地址单元。
主存中存储单元地址分配
不同的机器,存储字长不同,通常存储字长是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线都被选中时才能决定地址,所以称为重合法。