Dram的地址总线连接着内存控制器和DRAM芯片,地址总线的宽度是固定的,它限制了能够寻址的内存容量。例如,一个32位的地址总线可以寻址4GB的内存,而64位的地址总线可以寻址18EB(1EB=1024PB)的内存。然而,随着内存容量的不断增加,地址总线的宽度或者微处理器寻址的最大内存数量难以同时跟上。为了解决这个问题,现代的计算机系统通常使用了物理地址扩展(PAE)技术或者16进制扩展,这些技术可以让操作系统使用更多的内存,但这也给寻址带来了更多的难题。
大多数的计算机系统实现了虚拟内存。虚拟内存会将应用程序的地址空间从实际的物理内存分离出来,这样就可以使用硬盘或者固态硬盘上的空闲空间作为延伸的物理内存。为了让虚拟内存与物理内存之间进行映射,现代操作系统使用页表机制。一个虚拟地址被分成页的大小,每一页再映射成物理地址,这个映射过程需要两个步骤。首先,通过一次地址转换将虚拟地址的高位映射到相应的物理地址的一部分。其次,在这个物理地址的基础上,将虚拟地址的低位直接相加得到最终的物理地址。由于这个两步映射过程的限制,Dram的地址一般要分两次接收。
许多计算机系统使用的还是32位的操作系统和应用程序,这些系统最多只能寻址4GB的内存空间。在这种情况下,为了访问超过4GB的物理内存,必须使用物理地址扩展或者16进制扩展技术,这使得地址总线的宽度更加限制。Dram的地址一般要分两次接收,以便实现对大容量物理内存的支持。它可以将一个虚拟地址分为两部分,一部分是高的18位,一部分是低的14位。如果Dram的地址一次接收,只需要使用32位的地址总线,无法支持大容量的物理内存。
为了让内存的读写操作更高效,Dram的地址一般要分两次接收。首先发送高位地址,然后发送低位地址,这个操作可以以并行的方式执行。如果一次性发送所有地址,系统需要较长的时间来进行缓冲和处理,这会降低系统的效率。Dram的地址一次发送时限制了数据总线的大小。由于数据总线的带宽与地址总线宽度相等,因此限制了数据总理的带宽,这也是Dram的地址一般要分两次接收的原因之一。