「计算机组成原理」:现代存储器的结构( 二 )

M×8 DRAM芯片的内存模块 , 每个DRAM芯片负责8位数据 , 这样一次能对64位字进行读写 。 比如想要获得地址A处的字:

  • 内存控制器首先将A转化为(i,j)的超单元地址 , 然后内存控制器依次将i和j广播到所有DRAM芯片中
  • 每个DRAM芯片依次接收到RAS i和CAS j , 会通过上述的方法输出8位数据
  • 模块中的电路收集到所有DRAM芯片输出的8位数据 , 然后将其合并成一个64位的字 , 返回给内存控制器
为了进一步扩大存储能力 , 可以将多个内存模块连接到内存控制器 , 能够聚合成主存 。 当内存控制器想要读取地址A处的字时 , 会先找到包含地址A的内存模块k , 然后根据上述步骤得到对应的字 。
而基于传统的DRAM单元 , 可以做一些优化来提高访问基本DRAM单元的速度:
  • 快页模式DRAM(Fast Page Mode DRAM , FPM DRAM):传统的DRAM芯片通过CAS获得数据后 , 会将那一行的数据从内部行缓冲区直接删掉 , 如果访问多个在同一行的超单元时 , 需要反复读取相同的行 。 而FPM DRAM能够获取一次性数据后 , 后面的读取直接从内部行缓冲区读取 。
  • 扩展数据输出DRAM(Extended Data Out DRAM , EDO DRAM):对FPM DRAM进行改进 , 使得各个CAS信号在时间上更加紧密 。
  • 同步DRAM(Synchronous DRAM , SDRAM):DRAM芯片与内存控制器的通信使用一组显示的控制信号 , 通常是异步的 , 而SDRAM使用了 , 控制内存控制器的外部时钟信号的上升沿来代替控制信号 。
  • 双倍数据速率同步DRAM(Double Data-Rate Sychronous DRAM , DDR SDRAM):对SDRAM的优化 , 通过使用两个时钟沿作为控制信号 , 从而使得DRAM的速度翻倍 。
  • 视频RAM(Video RAM , VRAM): 用于图形系统的帧缓冲区 , 与FPM DRAM的区别:VRAM的输出是通过对内部缓冲区的移位得到的 , VRAM允许对内存并行地读和写 。
从更高层面来看 , 数据流是通过称为总线(Bus)的共享电子电路在处理器和DRAM主存之间传递数据的 。 总线是一组并行的导线 , 能够携带地址、数据和控制信号 , 也可以将数据和地址信号使用相同的导线 。
「计算机组成原理」:现代存储器的结构文章插图
如上图所示是一个连接CPU和DRAM主存的总线结构 。 其中I/O桥接器(I/O Bridge)芯片组包括内存控制器 , 能够将系统总线的电子信号和内存总线的电子信号互相翻译 , 也能将系统总线和内存总线连接到I/O总线 。
当从内存加载数据到寄存器中:
  1. CPU芯片通过总线接口(Bus Interface)在总线上发送读事务(Read Transaction)
  2. CPU会将内存地址发送到系统总线上
  3. I/O桥将信号传递到内存总线
  4. 内存接收到内存总线上的地址信号 , 会从DRAM读取出数据字 , 然后将数据写到内存总线
  5. I/O桥将内存总线信号翻译成系统总线信号 , 然后传递到系统总线上
  6. CPU从总能线上读取数据 , 并将其复制到寄存器中
当将寄存器中的数据保存到内存中:
  1. CPU芯片通过总线接口发起写事务(Write Transaction)
  2. CPU会将内存地址发送到系统总线上
  3. I/O桥将信号传递到内存总线
  4. 内存接收到内存总线上的地址信号 , 会等待数据到达
  5. CPU将寄存器中的数据字复制到系统总线
  6. I/O桥将内存总线信号翻译成系统总线信号 , 然后传递到系统总线上
  7. 内存从内存总线读出数据 , 并将其保存到DRAM中 。
这里的读事务和写事务统称为总线事务(Bus Transaction) 。
1.1.3 非易失性存储器之前介绍的DRAM和SRAM在断电时都会丢失数据 , 所以是易失的(Volatile) , 而非易失性存储器(Nonvolatile Memory)即使断电后 , 也会保存信息 , 该类存储器称为只读存储器(Read-Only Memory , ROM) , 但是现在ROM中有的类型既可以读也可以写了 , 可以根据ROM能够重编程的次数以及对它们进行重编程所用的机制进行区分 , 包括:
  • 可编程ROM(PROM):可以编程一次
  • 可擦写PROM(EPROM):可以批量擦除
  • 闪存(Flash Memory):具有部分(块级)擦除功能 , 大约擦除十万次后会耗尽
存储在ROM设备中的程序称为固件(Firmware) , 包括BIOS、磁盘控制器、网卡、图形加速器和安全子系统等 。 当计算机系统通电后 , 会运行存储在ROM中的固件 。
1.2 磁盘存储磁盘(Disk)是被用来保存大量数据的存储设备 , 但是读信息的速度比DRAM慢10万倍 , 比SRAM慢100万倍 。
「计算机组成原理」:现代存储器的结构文章插图