Memory

在计算机中,Memory是与CPU进行数据交换的主存储体,所以,Memory的数据位宽应该与CPU的数据位宽相匹配。现在,电脑CPU的数据位宽基本上都是64-bit,因此,Memory的数据位宽必须也是64-bit。

Memory的访问速度一直是限制计算机性能的主要瓶颈,在实际应用中采用Multi-channel memory technology技术提高Memory的访问速度,主要原理是在Memory Controller与Memory之间增加更多的并行通信通道,以增加数据发送的带宽。现在个人电脑的CPU基本上都支持双通道内存,服务器CPU则可以支持4通道内存。

DIMM (dual in-line memory module)双列直插内存模块,俗称内存条,是计算机内存的物理实体,其数据位宽与CPU的数据位宽相等,都是64位,一个64位的存储实体构成一个RANK,一个内存条可以放置多个64位的存储实体,即集成多个RANK,常见的是单RANK、双RANK和四RANK内存条。CPU通过不同的片选信号CS#访问不同的RANK。

另外,根据应用场景不同,DIMM分为多种样式。台式机内吞条有168pin SDRAM DIMM、184pin DDR DIMM、240pin DDR2 DIMM和240pin DDR3 DIMM;笔记本内存条有两种类型,一种是SO-DIMM 型包括144pinSoDimm(SDRAM) 、200pin SoDimm (DDR)、200pin SoDimm (DDR2)和204pin SoDimm (DDR3),一种是MicroDimm型包括172pin MicroDimm (DDR)、214pin MicroDimm (DDR2)和214pin MicroDimm (DDR3);服务器中经常应用的内存条是Registered DIMM,Registered,如同书的目录,先检索目录而后进行读写,从而提高效率。带有Register的内存一定带Buffer。Buffer即缓存器,容量多为64K,具有Buffer的内存将对内存的读写速度有较大提高,Unbuffer表示不具有高速缓存。有Buffer的内存几乎都带ECC功能,Unbuffer内存只有少数带ECC功能。

从CPU的角度出发,Memory的概念从大到小依次是:Memory Controller Channels →DIMMs →RANKs →Memory Array Chip →(Logic Banks →Memory Array →Rows & Columns → Cells)

围绕Memory之所以有如此多的概念,是因为内存颗粒性能受技术因素的制约。

内存芯片的基本组织结构是一个行列存储矩阵,通过行地址和列地址可以定位到任一个存储单元,但是行列存储阵列平面不能无限大,否则会带来严重的寻址冲突。因此,通过采用多个行列存储阵列平面,来增加内存芯片的存储容量,一个行列存储阵列平面称为一个logic bank。阵列面中存储单元的大小等于内存芯片的数据位宽,通常为4bit、8bit和16bit,更高位宽的内存芯片对技术要求很高,在成本和实用性方面也都都处于劣势,所以采用多个内存芯片构建RANK的方式来制造内存条。综上,内存芯片的规格用存储单元数量×位宽表示,存储单元数量=行地址数×列地址数×BANK数。

内存条上会集成一个SPD:芯片密度,性能,速度和其它OEM数据等信息被写入到一个256字节的EEPROM(电可擦除只读存储器)中。

内存芯片的存储单元是按照行列阵列进行组织的,因此,CPU通过内存控制器对内存条进行各种操作时(已经定义好各种操作,行有效、写操作、读操作、预充电等)必须按照一定的先后顺序进行操作,以满足内存芯片正常工作的条件。

  1. 通过一个行地址和一个列地址,可以确定唯一的一个存储单元,对内存进行访问时,首先确定行地址,即行有效命令。在时钟信号的上升沿,同时将CS#有效、BA[2:0]选有效、地址信号A[15:0]有效,RAS#、CAS#、WE#确定行有效——结果就是使能选中RANK中的所有内存芯片,然后已使能的所有内存芯片均选中同一个存储阵列面,最后点亮此存储阵列的同一行。
  2. 列有效的同时可以进行读或写操作,同样是在时钟的上升沿,送出相同的RANK选择CS#信号、相同的BANK选择信号BA[2:0],以及要访问的内存单元的列地址信号A[11:0](行地址和列地址是复用的),同时命令信号RAS#、CAS#、WE#确定列有效的同时,通过WE#确定读操作或写操作。
  3. 内存控制器发出行有效命令之后,不能立刻发出列有效命令,中间必须有一个间隔时间tRCD,称为行选通周期,是为保证要访问的行被完全点亮。
  4. 在读数据时,从内部CAS#读命令发出到第一笔数据输出的这段时间,被定义为CL (CAS Latency, CAS潜伏期) ,内存芯片的S-AMP将信号放大之后才能放到数据总线上。
  5. 预充电。在发出预充电命令之后,要经过一段时间才能允许发送RAS 行有效命令打开新的工作行,这个间隔被称为tRP(Precharge command Period,预充电有效周期)。
One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.