当前位置:文档之家› 内存基础知识

内存基础知识

内存基础知识学习笔记
紧接着上个星期的硬件学习,在了解了硬盘的一定基础知识之后,转战内存。

但发现内存的知识要比硬盘的知识要多得多,因此这次笔记只对RAM里的DRAM的一些相关知识做一些整理。

什么是内存:
内存(Computer memory)是一种利用半导体技术做成的电子装置,用来储存资料。

电子电路的资料是以二进制的方式储存,存储器的每一个储存单元称为记忆元。

内存可以根据储存能力与电源的关系可以分为以下两类:易失性存储器(挥发性内存)和非易失性存储器(非挥发性内存)
分类
易失性存储器(Volatile memory)指的是当电源供应中断后,存储器所储存的资料便会消失的存储器。

主要有以下的类型:
RAM(Random access memory,随机访问存储器)
DRAM(Dynamic random access memory,动态随机访问存储器)
SRAM(Static random access memory,静态随机访问存储器)
非易失性存储器
非易失性存储器(Non-volatile memory)是指即使电源供应中断,存储器所储存的资料并不会消失,重新供电后,就能够读取内存资料的存储器。

主要有以下的类型:
ROM(Read-only memory,只读存储器)
PROM(Programmable read-only memory,可编程只读存储器)
EPROM(Erasable programmable read only memory,可擦可编程只读存储器)
EEPROM (Electrically erasable programmable read only memory,可电擦可编程只读存储器)Flash memory(快闪存储器)
下面主要整理了DRAM的相关资料。

DRMA
动态随机存取存储器(Dynamic Random Access Memory,DRAM)是一种半导体内存,主要的作用原理是利用电容内储存电荷的多寡来代表一个二进制位元(bit)是1还是0。

DRAM的结构可谓是简单高效,每一个bit只需要一个晶体管(起开关作用)加一个电容。

但是电容不可避免的存在漏电现象,如果电荷不足会导致数据出错,因此电容必须被周期性的刷新(预充电),这也是DRAM的一大特点。

而且电容的充放电需要一个过程,刷新频率不可能无限提升(频障),这就导致DRAM的频率很容易达到上限,即便有先进工艺的支持也收效甚微。

频率:
通常大家所说的DDR-400、DDR2-800、DDR3-1600等,其实并非是内存的真正频率,而是业界约定俗成的等效频率,这些DDR1/2/3内存相当于老牌SDR内存运行在400MHz、800MHz、1600MHz时的带宽,因此频率看上去很夸张,其实真正的内核频率都只有200MHz。

内存有三种不同的频率指标,它们分别是核心频率、时钟频率和有效数据传输频率。

核心频率即为内存Cell阵列(Memory Cell Array,即内部电容)的刷新频率,它是内存的真实运行频率;时钟频率即I/O Buffer(输入/输出缓冲)的传输频率;而有效数据传输频率就是指数据传送的频率(即等效频率)。

通过上表就能非常直观的看出,近年来内存的频率虽然在成倍增长,可实际上真正存储单元的频率一直在133MHz-200MHz之间徘徊,这是因为电容的刷新频率受制于制造工艺而很难取得突破。

虽然存储单元的频率一直都没变,但内存颗粒的I/O频率却一直在增长,再加上DDR是双倍数据传输,因此内存的数据传输率可以达到核心频率的8倍之多。

DDR1/2/3内存最关键的技术就是分别采用了2/4/8bit数据预取技术(Prefetch),由此得以将带宽翻倍,与此同时I/O控制器也必须做相应的改进。

SDRAM(Synchronous DRAM):同步动态随机存储器
之所以被称为“同步”,因为SDR内存的存储单元频率、I/O频率及数据传输率都是相同的。

SDR在一个时钟周期内只能读/写一次,只在时钟上升期读/写数据,当同时需要读取和写入时,就得等待其中一个动作完成之后才能继续进行下一个动作。

DDR(Double Date Rate SDRAM):双倍速率同步动态随机存储器
双倍是指在一个时钟周期内传输两次数据,在时钟的上升期和下降期各传输一次数据(通过差分时钟技术实现),在存储阵列频率不变的情况下,数据传输率达到了SDR的两倍,此时就需要I/O从存储阵列中预取2bit数据,因此I/O的工作频率是存储阵列频率的两倍。

DQ 频率和I/O频率是相同的,因为DQ在时钟上升和下降研能传输两次数据,也是两倍于存储阵列的频率。

DDR2(DDR 2 SDRAM):第二代双倍速率同步动态随机存储器
DDR2在DDR1的基础上,数据预取位数从2bit扩充至4bit,此时上下行同时传输数据(双倍)已经满足不了4bit预取的要求,因此I/O控制器频率必须加倍。

至此,在存储单元频率保持133-200MHz不变的情况下,DDR2的实际频率达到了266-400MHz,而(等效)数据传输率达到了533-800MHz。

DDR3(DDR 3 SDRAM):第三代双倍速率同步动态随机存储器
DDR3就更容易理解了,数据预取位数再次翻倍到8bit,同理I/O控制器频率也加倍。

此时,在存储单元频率保持133-200MHz不变的情况下,DDR3的实际频率达到了533-800MHz,而(等效)数据传输率高达1066-1600MHz。

综上可以看出,DDR1/2/3的发展是围绕着数据预取而进行的,同时也给I/O控制器造成了不小的压力,虽然存储单元的工作频率保持不变,但I/O频率以级数增长,我们可以看到DDR3的I/O频率已逼近1GHz大关,此时I/O频率成为了新的瓶颈,如果继续推出DDR4(注意不是GDDR4,两者完全不是同一概念,后文会有详细解释)的话,将会受到很多未知因素的制约,必须等待更先进的工艺或者新解决方案的出现才有可能延续DDR的生命。

内存位宽——SDR/DDR1/2/3单条内存都是64bit
内存模组的设计取决于内存控制器(集成在北桥或者CPU内部),理论上位宽可以无限提升,
但受制因素较多:高位宽将会让芯片组变得十分复杂,对主板布线提出严格要求,内存PCB 更是丝毫马虎不得,内存颗粒及芯片设计也必须作相应的调整。

可谓是牵一发而动全身,所以多年来业界都是墨守成规,维持64bit的设计不变。

内存颗粒位宽:4/8/16/32bit
理论上,完全可以制造出一颗位宽为64bit的芯片来满足一条内存使用,但这种设计对技术要求很高,良品率很低导致成本无法控制,应用范围很窄。

所以内存芯片的位宽一般都很小,台式机内存颗粒的位宽最高仅16bit,常见的则是4/8bit。

这样为了组成64bit内存的需要,至少需要4颗16bit的芯片、8颗8bit的芯片或者16颗4bit 的芯片。

多通道内存——双通道/三通道
既然实现高位宽内存条太难,那么就退而求其次,让两条内存并行传输数据,同样可以让位宽翻倍。

目前流行的双通道技术就是如此,北桥或者CPU内部整合了两个独立的64bit内存控制器,同时传输数据等效位宽就相当于128bit。

事实上服务器芯片组已经能够支持四通道内存,对服务器来说成本方面不是问题,只是对稳定性和容错性要求很高。

内存芯片的逻辑Bank
在芯片的内部,内存的数据是以bit为单位写入一张大的矩阵中,每个单元称为CELL阵列,只要指定一个行一个列,就可以准确地定位到某个CELL,这就是内存芯片寻址的基本原理。

这个阵列我们就称为内存芯片的BANK,也称之为逻辑BANK(Logical BANK)。

不可能只做一个全容量的逻辑Bank,因为单一的逻辑Bank将会造成非常严重的寻址冲突,大幅降低内存效率。

所以大容量内存颗粒都是由多个逻辑Bank叠加而成的。

简单来说,我们可以把一个Bank看作是一片平面的矩阵纸,而内存颗粒是由多片这样的纸叠起来的。

一个Bank的位宽就是内存颗粒的位宽,内存控制器一次只允许对一个Bank进行操作,由于逻辑Bank的地址线是公用的,所以在读写时需要加一个逻辑Bank的编号,这个动作被称为片选。

内存条的物理Bank
内存控制器的位宽必须与内存条的位宽相等,这样才能在一个时钟周期内传输所有数据,这个位宽就被成为一个物理Bank(通常是64bit),每条内存至少包含一个Bank,多数情况下拥有二个物理Bank。

一个物理Bank不会造成带宽浪费,理论上是最合理的配置,但为了实现大容量内存,单条内存多物理Bank也是允许的,但内存控制器所能允许的最大Bank数存在上限,常见的是双物理Bank设计,只有特殊内存或者服务器内存才会使用四Bank以上的设计,因为这种内存兼容性不好,“挑”芯片组。

相关主题