计算机组成原理——主存储器

3.2 主存储器

整理自up主Beokayy_传送门

1.主存储器的结构

主存储器的结构

  • MDR与MAR:
区别MARMDR
存放内容预访问的存储单元的地址从存储器某单元读取出的二进制代码或准备往存储器某单元中写入的二进制代码
位数对应存储单元的个数与存储字长相等
  • 译码驱动:把地址总线送来的地址信号翻译成对应存储单元的选择信号。
  • 地址线m根,数据线n根,则芯片容量为 2 m n 2^{mn} 2mn位。
  • 读/写控制线:决定芯片进行读/写操作,可以共用一根,也可以分用两根。
  • 片选线:选择存储芯片(存储器可能由许多存储芯片构成):一根或两根。
  • 存储单元内放置的是存储字,存储字的长度即为存储字长。

2.存储器的性能指标

  • 存储容量=存储单元个数×存储字长。
  • 存储时间:从启动一次存储器操作到完成该操作所经历的时间。
  • 存取周期:又称为读写周期,指存储器进行一次完整读写操作所需要的全部时间,即连续两次独立访问存储器操作之间所需的最小时间间隔。存取周期通常大于存取时间,因为对任何一种存储器,在读操作后都要有一段恢复内部状态的复原时间。所以存取周期=存取时间+恢复时间。
  • 主存带宽:又称数据传输率,表示每秒从主存进出信息的最大数量。

3. 按x编址

  • 按x编址即每x位编一个地址:
    • 按字节编址:每8位编一个地址。
    • 按字编址:每存储字长位数编一个地址。
    • 按半字编址:每半个存储字长位数编一个地址。
  • 假设计算机存储字长32位,按字节编址,此时一个存储单元内存放的应该是32位,则计算机一次访存可以取4个字节。又由于按字节编址,即每个字节编一个地址,所以如果计算机需要从这4个字节中取其中的某个字节,只需要对地址进行修改,只取出目的字节所在的部分即可。

4.存储器芯片的内部结构

主存芯片技术

主存芯片技术

  • 存储体:存储单元的集合,由行选择线X和列选择线Y来选择所访问单元。
  • 地址译码器:用来将地址转换为译码输出线上的高电平,以便驱动相应的读写电路。
  • I/O控制电路:用以控制被选中单元的读写。
  • 片选控制信号:对芯片进行扩展后需要片选控制信号来选择某一具体的芯片。
  • 读/写控制信号:根据CPU给出的读/写命令,控制被选中单元进行读或写。

DRAM芯片技术

DRAM

  • 地址引脚复用技术:
    • DRAM芯片容量较大,因而地址位数较多,为了减少芯片的地址引脚数,从而减小体积,大多采用地址引脚复用技术。
    • 行地址和列地址通过相同的引脚分先后两次输入,这样地址引脚数可减少一半。
    • 上图所示芯片容量为2048×2048×4位,行列地址均为11位,有4个位平面,在每个行、列交叉处的4个平面数据同时进行读写。由于复用技术,只需要11根地址引脚线,分时传送行、列地址
    • 若一个DRAM芯片的存储阵列是r行×c列 ,为提高DRAM芯片的性价比,通常设置r和c满足r≤c且|r - c|最小。
  • RAS和CAS:
    • RAS代表行地址选通信号,CAS代表列地址选通信号,二者低电平有效。
    • 在它们的控制下,地址线会分时传送行、列地址。
  • D1~D4:
    • 4根数据引脚线。
    • 因此,每个芯片同时可以读出4位数据。
  • WE:
    • 读写控制引脚。
    • 低电平时为写操作,高电平时为读操作。
  • OE:
    • 输出使能驱动引脚。
    • 低电平有效,高电平时断开输出。
  • 刷新计数器:
    • 位数也是11位,一次刷新相当于对一行数据进行读操作,通过对这一行数据读后再生进行刷新。

5.多模块存储器

高位交叉编址(顺序编址)

  • 体号在高位,体内地址在低位,这样设计是先访问同一模块,该模块访问结束后再转到下一个存储体
  • CPU总是按照顺序访问存储模块,各模块不能被并行访问。

低位交叉编址

  • 低位交叉编址分为两类:
类型同时启动轮流启动
总线宽度每个体的存储字*模块数m每个存储体的存储字
存储体周期T总线传输周期r总线传输周期r*模块数m
  • 对于轮流启动的低位交叉编址:
    轮流启动

    • 体号在低位,体内地址在高位,这样的设计会导致地址在增加的时候会依次访问每个存储体,即按照M0→M1→M2→M3→M0→M1→…这样的S型顺序访问。
    • 设模块存取一个字的存取周期为T,总线传送周期为r,则存储器模块数m应大于等于T/r,这样才能实现流水线的工作方式。
    • 假设模块数为m(m=T/r),那么一个存储周期T会被分为m个小单位,每个小单位的长度为r。对于一个存取周期为T的存储模块,只需要r个时间就可以完成存取操作,由于芯片的物理属性,读完一个芯片必须间隔一段时间才能再读,所以我们可以用这个时间同时对下一个模块进行存取,从而达到并行。
    • 请注意,虽然用r时间就可以对一个存储模块进行存取,之后就切换到下一个模块,但是数据被完整地存取仍需要T的时间才能完成。所以存取m个连续的字所需的时间为T + (m - 1)r,而不是m*r。
  • 同时启动的低位交叉编址
    -在这里插入图片描述

    • 同时启动的思想是忽略地址低位的体号,不进行选体,只根据地址高位的存储单元即可同时把四个存储体中的存储字都读出来。
    • 在同时启动的工作方式下,一个存储体周期内可以读出m个存储字,故总线宽度是每个体的存储字*模块数m。
    • 这种工作方式类似于芯片的位扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盐可颂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值