搜档网
当前位置:搜档网 › SDRAM内存详解(经典)

SDRAM内存详解(经典)

SDRAM内存详解(经典)
SDRAM内存详解(经典)

SDRAM内存详解(经典)

我们从内存颗粒、内存槽位接口、主板和内存之间的信号、接口几个方面来详细阐述SDRAM内存条和主板内存系统的设计思路...

虽然目前SDRAM内存条价格已经接底线,内存开始向DDR和Rambus内存过渡。但是由于DDR内存是在SDRAM基础上发展起来的,所以详细了解SDRAM内存的接口和主板设计方法对于设计基于DDR内存的主板不无裨益。下面我们就从内存颗粒、内存槽位接口、主板和内存之间的信号接口几个方面来详细阐述SDRAM内存条和主板内存系统的设计思路。

内存颗粒介绍

对于DRAM(Dynamic Random Access Memory)内存我想凡是对于计算机有所了解的读者都不会陌生。这种类型的内存都是以一个电容是否充有电荷来作为存储状态的标志,电容冲有电荷为状态1,电容没有电荷为状态0。其最大优点是集成度高,容量大,但是其速度相对于SRAM (Static Random Access Memory) 内存来说慢了许多。目前的内存颗粒封装方式有许多种,本文仅仅以大家常见的TSSOP封装的内存颗粒为例子。

其各个管脚的信号定义和我们所使用的DIMM插槽的定义是相同的,对于不同容量的内存,地址信号的位数有所不同。另外一个需要注意的地方就是其供电电路。Vcc和Vss是为内存颗粒中的存储队列供电,而VccQ和VssQ是为内存颗粒中的地址和数据缓冲区供电。两者的作用不同。

我们对内存颗粒关心的问题主要是其颗粒的数据宽度(数据位数)和容量(寻址空间大小)。而对于颗粒自检、颗粒自刷新等等逻辑并不需要特别深入的研究,所以对此我仅仅是一笔带过,如果读者有兴趣的读者可以详细研究内存颗粒的数据手册。虽然内存颗粒有这么多的逻辑命令方式,但是由于目前北桥芯片和内存颗粒的集成度非常高,只要在布线和元器件的选择上严格按照内存规范来设计和制造,需要使用逻辑分析仪来调试电路上的差错的情况比较少,并且在设计过程中尽量避免出现这种情况。

168线DIMM内存插槽的信号定义

 我们目前PC和Server使用的内存大都是168 Pins的SDRAM,区别只是其工作频率有的可能是100MHz频率,有的可能是133MHz频率的。但是只要是SDRAM,其DIMM插槽的信号定义是一样的。而这些引脚得定义就是设计内存条和主板所必须遵从的规范。

内存引脚主要分为如下几类:地址引脚、数据引脚(包含校验位引脚)、片选等控制信号、时钟信号。整个内存时序系统就是这些引脚上的信号配合产生。下面的表中就是内存插槽的引脚数量和引脚定义,对于一些没有定义或者是保留以后使用的信号就没有列出来。

符号功能详细描述

DQ [0-63] I/O 数据输入/输出

CB [0-7] I/O ECC内存的ECC校验输入/输出

A [0-13] I/O 地址选择

BA [0-1] Control Bank选择

CS [0-3] Control 片选信号

RAS Control 行地址选择信号

CAS Control 列地址选择信号

DQMB [0-7] Control 数据掩码控制(DQ Mask)高有效*

WE Control 写允许信号

CK [0-3] Clock 时钟信号

CKE [0-1] Clock 时钟允许信号**

REGE Control 寄存器 (Registered) 允许信号

SA [0-2] I/O SPD地址输入

SDA I/O SPD数据输入/输出

SCL Clock SPD时钟输入

WP Control 写保护

Vss Power 电源线

Vdd Power 地线

注:

SPD Serial Presence Detect 内存序列存储芯片

RAS Row Address Strobe 行地址选择

CAS Column Address Strobe 列地址选择

* 在读模式时,控制芯片颗粒的Buffers数据输出

在写模式时,将芯片颗粒的Buffers中的数据写入芯片颗粒中的内存队列中

** 当该信号为高时,时钟信号有

当该信号为低时,时钟信号无效,并且该信号会触发内存颗粒的低功耗模式、自刷新模式或者挂起模式。

我们从DIMM插槽的引脚定义就可以计算出来,每个DIMM槽位最大支持的内存数值。该数值实际上是寻址空间乘上数据宽度,所以每个DIMM槽位支持最大容量为4GB = 214 x 214 x 8 Byte。但是由于内存芯片颗粒的制造局限性,所以目前能够使用的DIMM条的内存都达不到这个容量,其容量最大的内存条为1GB。

在设计和制造内存条的时候,所有的内存条都是按照插槽的规范来布线和生产,所以对于内存地址空间,所有生产出来的内存条都是相同的地址空间,例如一条128MB内存,他就是用了地址线A0-A13,当我们在一台计算机上安装多个内存时,如何分配每个内存内存条的地址空间呢?这个工作就需要北桥芯片和主板来配合了。

SPD信号定义

内存中使用的SPD都是一片8针TSSOP(Plastic Thin Small Outline Package)封装的串行存储EEPROM,其容量是2048bit。每个DIMM的SPD数据读写时钟线SCL和数据线SDA都是共享在一条总线上,所以当我们在一台机器上会安装多条内存时,其SPD的片选信号就需要事先确定。该片选信号是由SA0,SA1,SA2三条数据线来确定,该数据线的状态由主板设计厂商在设计主板的时候固定下来。在每次读写该EEPROM的时候,北桥芯片会按照EEPROM的读写规格首先向该芯片发送3位片选信号和8位地址信息,每个芯片都会读入该3位片选信号和8位地址信号。当3位片选信号和主板上固化的3?

醯刂废撸⊿A0,SA1,SA2)的状态一致的时候该内存条上的SPD芯片就被选中,其信息会记录在北桥控制器的寄存器中(Register)。

SPD读写逻辑中的片选必须满足下图的时序逻辑。在此主要介绍地址选择逻辑,对于数据如何读写的时序,有兴趣的读者可以查阅 Atemel 24C02A 的数据手册(许多内存厂商都选用该芯片作为SPD)。在这个时序中,硬件上仅仅需要满足其Device Address 地址信息。该地址信息是一个 8bit 的数据,它的格式如下

地址位0 1 2 3 4 5 6 7

数据 1 0 1 0 A2 A1 A0 R/W

该数据通过SCL提供的时钟同步,0-3 位是固定的信息,4-6 位是片选地址,7位是判断该,命令是读还是写。在芯片内部会对4-6位的数据和硬件电路上的状态进行比较,相符的话,该芯片被选中,否则不进行下面的操作。从该时序逻辑可以得知,一个SPD通道(仅仅只有一对SCL和SDA信号线)只支持8条内存。至于SPD的读写和SPD内容的含义在此就不做进一步说明。

注:SPD涉及到的缩写

SA 0-2 Serial Presence Detect Address Inputs

SDA Serial Presence Detect Address Input/Output

SCL Serial Presence Detect Clock Input

WP Write Protect for SPD on DIMM

内存条的设计

我们已经知道了内存颗粒、SPD的接口信息,下面就可以开始设计内存了。内存条的逻辑功能图差别不是非常大,对于不同容量的颗粒,只是在数量上有所改变。

上面的逻辑功能图就是一个带ECC功能72bit 内存条的逻辑功能图。采用的是16bit数据宽度的内存颗粒。由于内存条每次读写必须满足64bits(非ECC)或者72bit(ECC),所以在设计的时候颗粒数量是固定的。上面的内存条仅仅只有一个Bank,所以没有使用BA信号。如果该内存条设计的时候是两个Bank,其功能图中就多出了BA选择信号,并且其容量也会随之增加1倍。剩下的工作就是布线,在一个6层电路板上布下所有的信号线。

但是随着目前服务器内存的增大,内存插槽数量的增多,服务器内存系统各个引脚间的引线长度会产生较大差别,导致信号时序会产生错位。并且控制器的信号控制这么多的内存,有限的驱动能力会不堪重负。针对这种情况,服务器中的内存主要采用的是Registered内存,在内存上添加锁相环电路和几个寄存器,这样每个控制信号仅仅针对数量很少的寄存器,不用针对内存条上的每个内存颗粒来输出信号,可以很大程度上降低控制芯片的负载,提高信号的质量。同时锁相环电路大大减少了内存系统的时间延迟,保证了数据的同步。

下面就是寄存器的功能图

寄存器仅仅寄存了每个内存条上的控制信号,对于数据信号没有进行任何操作。因为控制信号例如S0、CKE0等等信号都是控制多个内存颗粒的信号,所以当服务器上安装8到16条内存的时候,仅仅靠主板上的控制芯片来控制肯定是力不从心。

 上面的逻辑图就很好的说明了Registered内存中锁相环电路的作用。该电路时时保证和主板上的时钟电路所属出的时钟频率保持同步,使用这个时钟信号驱动寄存器和内存芯片颗粒就不会产生时钟的漂移。所以目前的服务器内存都采用的是Registered内存条。

主板上内存系统的设计

主板上对于内存的访问主要是由北桥芯片来控制。32位CPU能够访问的内存容量是64GB。这是由CPU寻址空间和数据带宽固定的。但是在实际使用中,我们的北桥芯片能够寻址的空间却十分有限。一般PC是2GB,高端PC可能达到4GB,高端服务器可以达到32GB 的内存容量。这一部分和各个系统内存控制芯片的设计有关。在此我以Intel 815E芯片组为例说明一下主板上内存系统的设计。

Intel 815E北桥控制芯片的内存控制电路的逻辑图如下:

每种信号引脚的功能如下表:

符号功能详细描述

SMD [0-63] I/O 数据输入/输出

SMAA [0-12] I/O 地址选择

SMAB [4-7] I/O 地址选择

SMAC [4-7] I/O 地址选择

SBS [0-1] Control Bank选择

SCSA [0-5] Control 片选信号

SCSB [0-5] Control 片选信号

SRAS Control 行地址选择信号

SCAS Control 列地址选择信号

SDQM [0-7] Control 数据掩码控制

SWE Control 写允许信号

SCKE [0-5] Clock 时钟允许信号

SRCOMP Control 用来校准系统内存的I/O缓冲。一般在主板上固定设置为高

该芯片组的内存兼容性和管理特性主要有下面几点:

Intel 815E支持64bits的内存。

从芯片引脚信号图可以看出,该芯片组只有64bits的数据带宽,没有8bits的ECC校验。

北桥芯片没有SPD监测电路。

该信息必须通过南桥芯片上的服务器系统管理总线SM_Bus总线来读出SPD的信息,然后传送到北桥芯片的寄存器中。

该芯片组不支持Registered内存。

可以支持3个DIMM插槽。每个槽位最大支持512MB。

计算方法:采用SMAA,总共使用数据带宽为64bits。

容量为512MB=213 x 213 x 8

我们根据Intel 815E芯片的特性,就可以设计出主板上的DIMM插槽的电路连接逻辑示意图了(注:该图中没有标出SPD的地址分配信息):

每个DIMM槽的SDQM、SMD、SMB_CLK(管理总线_时钟信号线)、SMB_DATA(管理总线_数据信号线)、SCAS、SRAS、SWE、SBS是共享的。那么如何区别每个DIMM槽上的内存呢?每个DIMM槽上的内存颗粒通过SMAA,SMAB,SMAC三个地址来区分其不同的地址段,而12条片选信号则在每个DIMM槽上分配4条,分别选择不同的芯片颗粒。这样同种的内存条插在不同的插槽上就被分配了不同的内存地址段。

至此,我们的内存系统从颗粒到主板的整个地址和数据组织管理模式就清晰的摆在读者面前了。

内存硬件知识汇总

为了保证所保存的数据不丢失,DRAM必须定时进行刷新,DDR3也不例外。 为了最大的节省电力,DDR3采用了一种新型的自动自刷新设计(ASR,Automatic Self-Refresh)。当开始ASR之后,将通过一个内置于DRAM芯片的温度传感器来控制刷新的频率,因为刷新频率高的话,消电就大,温度也随之升高。而温度传感器则在保证数据不丢失的情况下,尽量减少刷新频率,降低工作温度。不过DDR3的ASR是可选设计,并不见得市场上的DDR3内存都支持这一功能,因此还有一个附加的功能就是自刷新温度范围(SRT,Self-Refresh Temperature)。通过模式寄存器,可以选择两个温度范围,一个是普通的的温度范围(例如0℃至85℃),另一个是扩展温度范围,比如最高到95℃。对于DRAM内部设定的这两种温度范围,DRAM将以恒定的频率和电流进行刷新操作。 局部自刷新(RASR,Partial Array Self-Refresh)这是DDR3的一个可选项,通过这一功能,DDR3内存芯片可以只刷新部分逻辑Bank,而不是全部刷新,从而最大限度的减少因自刷新产生的电力消耗。这一点与移动型内存(Mobile DRAM)的设计很相似 FBD、XDR、XDR2内存概述 来自(https://www.sodocs.net/doc/067162962.html,/) 2009-07-14 1.FBD内存 FBD即Fully-buffer DIMM(全缓存模组技术),它是一种串行传输技术,可以提升内存的容量和传输带宽.是Intel在DDR2、DDR3的基础上发展出来的一种新型内存模组与互联架构,既可以搭配现在的DDR2内存芯片,也可以搭配未来的DDR3内存芯片。FB-DIMM可以极大地提升系统内存带宽并且极大地增加内存最大容量。 FB-DIMM与XDR相比较,虽然性能不及全新架构的XDR,但成本却比XDR要低廉得多。与现有的普通DDR2内存相比,FB-DIMM技术具有极大的优势:在内存频率相同的情况下目前能提供四倍于普通内存的带宽,并且能支持的最大内存容量也达到了普通内存的24倍,系统最大能支持192GB内存。FB-DIMM最大的特点就是采用已有的DDR2内存芯片(以后还将采用DDR3内存芯片),但它借助内存PCB上的一个缓冲芯片AMB(Advanced Memory Buffer,高级内存缓冲)将并行数据转换为串行数据流,并经由类似PCI Express 的点对点高速串行总线将数据传输给处理器。 与普通的DIMM模块技术相比,FB-DIMM与内存控制器之间的数据与命令传输不再是传统设计的并行线路,而采用了类似于PCI-Express的串行接口多路并联的设计,以串行的方式进行数据传输。在这种新型架构中,每个DIMM上的缓冲区是互相串联的,之间是点对点的连接方式,数据会在经过第一个缓冲区后传向下一个缓冲区,这样,第一个缓冲区和内存控制器之间的连接阻抗就能始终保持稳定,从而有助于容量与频率的提升。 2.XDR内存 XDR就是“eXtreme Data Rate”的缩写,这是Rambus的黄石的最终名称。XDR将Rambus之前公布了一系列新技术集中到了一起,新技术不仅带来了新的内存控制器设计和DRAM模块设计,同时可以工作在相当高的频率,带来让人难以置信的带宽。 XDR内存比较有意思,这次架构同目前实际使用的DDR、DDR II并没有太大的差别,但XDR却依旧拥有自己的知识产权。XDR在今年年内会有样品出现,明年中后期正式推广,同原来一样三星依旧是RAMBUS

内存试题

实训四内存、硬盘的参数认知任务目标 掌握内存、硬盘的性能参数; 了解内存的功能和分类; 了解硬盘的分类及结构; 任务准备 计算机一台; 能连接互联网; 任务操作 (1)、知识阅读(资料文件夹下的CPU和主板) 1、内存的工作原理; 2、内存; 3、内存简介; 4、如何识别内存条; 5、内存条的发展; 6、DDR; 7、从外观区别DDR和DDR2,DDR3; 8、怎么识别内存型号。 9、常见的三大硬盘“形态”;

10、揭秘泰国洪水如何成为硬盘涨价替罪羊; 11、硬盘厂商情何以堪创见2TB U盘研发成功; 12、MHDD使用方法图解; 13、固态硬盘; 14、再吹就成SSD 厂家最爱4大硬盘关键词; 15、蓝光光驱; (2)、习题 内存部分 1、在计算机中, Cache 又称为:( D )。 A:存储器B:高速存储器C:高速缓冲存储器D:缓冲存储器 2、关机后,其中的程序和数据都不会丢失的内存是( D )。 A:硬盘B:软盘C:RAM D:ROM 3、下列设备中,响应CPU访问速度最快的是:( C )。 A:硬盘B:软盘C:内存储器D:光盘 4、内存存取时间的单位是(C) A:毫秒B:秒C:纳秒D:分 5、DDRIII内存的工作电压为:( D ) A:3.3v B:2.5v C:2.3v D:1.5v 6、我们一般所说的内存是指ROM( B ) A:对B:错 7、双通道内存技术是与主板芯片组有关的技术与内存本身无关

的技术。( B ) A:对B:错 8、ROM是随机存储器,RAM是只读存储器?( B 说反了) A:对B:错 9、内存主要是指随机存取存储器,断电后数据将会丢失。( A) A:对B:错 多选题: 10、内存的性能指标有(DC ) A:接口类型B:内存条的大小C:内存的容量D:内存颗粒的速度 11、随机存储器RAM可分为哪两种类型的存储器:(AB) A:SRAM B:DRAM C:DDRAM D:SDRAM 简答: 12、内存条的主要技术指标有哪些? SRAM RAM SDRAM同步动态、随机储存器,3.3V/168引脚DRAM DDRAM 2.5V/184线, DDRⅡ 1.8V 240线 DDRⅢ 1.5V 240线 13、简述内存条选购要点? 品牌,

MC9S12XS128 AD转换详解

A/D转换模块详解 1、A/D转换原理 A/D转换的过程是模拟信号依次通过取样、保持和量化、编码几个过程后转换为数字格式。 a)取样与保持 一般取样与保持过程是同时完成的,取样-保持电路的原理图如图16所示,由输 入放大器A 1、输出放大器A 2 、保持电容C H 和电子开关S组成,要求 A V1 * A V2 = 1。原 理是:当开关S闭合时,电路处于取样阶段,电容器充电,由于 A V1 * A V2 = 1,所以 输出等于输入;当开关S断开时,由于A 2输入阻抗较大而且开关理想,可认为C H 没有 放电回路,输出电压保持不变。 图16 取样-保持电路 取样-保持以均匀间隔对模拟信号进行抽样,并且在每个抽样运算后在足够的时间内保持抽样值恒定,以保证输出值可以被A/D 转换器精确转换。 b)量化与编码 量化的方法,一般有舍尾取整法和四舍五入法,过程是先取顶量化单位Δ,量化单位取值越小,量化误差的绝对值就越小,具体过程在这里就不做介绍了。将量化后的结果用二进制码表示叫做编码。 2、A/D转换器的技术指标 a)分辨率 分辨率说明A/D转换器对输入信号的分辨能力,理论上,n位A/D转换器能区分的输入电压的最小值为满量程的1/2n 。也就是说,在参考电压一定时,输出位数越多,量化单位就越小,分辨率就越高。S12的ATD模块中,若输出设置为8位的话,那么转换器能区分的输入信号最小电压为19.53mV。 b)转换时间

A/D转换器按其工作原理可以分为并联比较型(转换速度快ns级)、逐次逼近型(转换速度适中us级)、双积分型(速度慢抗干扰能力强)。 不同类型的转化的A/D转换器转换时间不尽相同,S12的ATD模块中,8位数字 量转换时间仅有6us,10位数字量转换时间仅有7us。 S12内置了2组10位/8位的A/D模块:ATD0和ATD1,共有16个模拟量输入通道,属于逐次逼近型A/D转换器(这个转换过程与用天平称物的原理相似)。 1、功能结构图 图17 A/D 模块功能结构图 图17所示的是A/D 模块的功能结构,这个功能模块被虚线划分成为图示所示的虚线所隔离的三个部分:IP总线接口、转换模式控制/寄存器列表,自定义模拟量。 IP 总线接口负责该模块与总线的连接,实现A/D 模块和通用I/O 的目的,还起 到分频的作用; 转换模式控制寄存器列表中有控制该模块的所有的寄存器,执行左右对齐运行和连 续扫描。 自定义模拟量负责实现模拟量到数字量的转换。包括了执行一次简单转换所需的模 拟量和数字量。 2、HCS12中A/D转化模块特点 8/10 位精度;7 us, 10-位单次转换时间.;采样缓冲放大器;可编程采样时间;左/ 右对齐, 有符号/无符号结果数据;外部触发控制;转换完成中断;模拟输入8 通道复用;模拟/数字输入引脚复用;1到8转换序列长度;连续转换模式;多通道扫描方式。 ATD 模块有模拟量前端、模拟量转换、控制部分及结果存储等四部分组成。其中模拟前端包括多路转换开关、采样缓冲器、放大器等,结果存储部分主要有8个16 位的存储器和反映工作状态的若干标志位。 A/D转换应用实例 要让ATD 开始转换工作,必须经过以下三个步骤: 1.将ADPU 置1,使ATD 启动;

Android 应用程序内存泄漏的分析

Android 应用程序内存泄漏的分析以前在学校里学习Java的时候,总是看到说,java是由垃圾收集器(GC)来管理内存回收的,所以当时形成的观念是Java不会产生内存泄漏,我们可以只管去申请内存,不需要关注内存回收,GC会帮我们完成。呵呵,很幼稚的想法,GC没那么聪明啊,理论及事实证明,我们的Java程序也是会有内存泄漏的。 (一)Java内存泄漏从何而来 一般来说内存泄漏有两种情况。一种情况如在C/C++语言中的,在堆中的分配的内存,没有将其释放,或者是在没有将其释放掉的时候,就将所有能访问这块内存的方式都删掉(如指针重新赋值);另一种情况则是在内存对象明明已经不需要的时候,还仍然保留着这块内存和它的访问方式(引用)。第一种情况,在Java中已经由于垃圾回收机制的引入,得到了很好的解决。所以,Java中的内存泄漏,主要指的是第二种情况。 (二)需要的工具 1.DDMS—Update heap Gause GC Heap 是DDMS自带的一个很不错的内存监控工具,下图红色框中最左边的图标就是该 工具的启动按钮,它能在Heap视图中显示选中进程的当前内存使用的详细情况。下图 框中最右边的是GC工具,很多时候我们使用Heap监控内存的时候要借助GC工具,点 击一次GC按钮就相当于向VM请求了一次GC操作。中间的按钮是Dump HPROF file,它 的功能相当于给内存拍一张照,然后将这些内存信息保存到hprof文件里面,在使用我 们的第二个工具MAT的时候会使用到这个功能。 2.MAT(Memory Analyzer Tool) Heap工具能给我们一个感性的认识,告诉我们程序当前的内存使用情况和是否存在内存 泄漏的肯能性。但是,如果我们想更详细,更深入的了解内存消耗的情况,找到问题所 在,那么我们还需要一个工具,就是MAT。这个工具是需要我们自己去下载的,可以下 载独立的MAT RCP 客户端,也可以以插件的形式安装到Eclipse里面,方便起见,推荐 后者。 安装方法: A.登录官网https://www.sodocs.net/doc/067162962.html,/mat/downloads.php B.下载MAT Eclipse插件安装包(红框所示,当然你也可是选择Update Site在线安装,个人觉得比较慢)

SDRAM内存详解(经典)

SDRAM内存详解(经典) 我们从内存颗粒、内存槽位接口、主板和内存之间的信号、接口几个方面来详细阐述SDRAM内存条和主板内存系统的设计思路... 虽然目前SDRAM内存条价格已经接底线,内存开始向DDR和Rambus内存过渡。但是由于DDR内存是在SDRAM基础上发展起来的,所以详细了解SDRAM内存的接口和主板设计方法对于设计基于DDR内存的主板不无裨益。下面我们就从内存颗粒、内存槽位接口、主板和内存之间的信号接口几个方面来详细阐述SDRAM内存条和主板内存系统的设计思路。 内存颗粒介绍 对于DRAM(Dynamic Random Access Memory)内存我想凡是对于计算机有所了解的读者都不会陌生。这种类型的内存都是以一个电容是否充有电荷来作为存储状态的标志,电容冲有电荷为状态1,电容没有电荷为状态0。其最大优点是集成度高,容量大,但是其速度相对于SRAM (Static Random Access Memory) 内存来说慢了许多。目前的内存颗粒封装方式有许多种,本文仅仅以大家常见的TSSOP封装的内存颗粒为例子。 其各个管脚的信号定义和我们所使用的DIMM插槽的定义是相同的,对于不同容量的内存,地址信号的位数有所不同。另外一个需要注意的地方就是其供电电路。Vcc和Vss是为内存颗粒中的存储队列供电,而VccQ和VssQ是为内存颗粒中的地址和数据缓冲区供电。两者的作用不同。 我们对内存颗粒关心的问题主要是其颗粒的数据宽度(数据位数)和容量(寻址空间大小)。而对于颗粒自检、颗粒自刷新等等逻辑并不需要特别深入的研究,所以对此我仅仅是一笔带过,如果读者有兴趣的读者可以详细研究内存颗粒的数据手册。虽然内存颗粒有这么多的逻辑命令方式,但是由于目前北桥芯片和内存颗粒的集成度非常高,只要在布线和元器件的选择上严格按照内存规范来设计和制造,需要使用逻辑分析仪来调试电路上的差错的情况比较少,并且在设计过程中尽量避免出现这种情况。 168线DIMM内存插槽的信号定义  我们目前PC和Server使用的内存大都是168 Pins的SDRAM,区别只是其工作频率有的可能是100MHz频率,有的可能是133MHz频率的。但是只要是SDRAM,其DIMM插槽的信号定义是一样的。而这些引脚得定义就是设计内存条和主板所必须遵从的规范。 内存引脚主要分为如下几类:地址引脚、数据引脚(包含校验位引脚)、片选等控制信号、时钟信号。整个内存时序系统就是这些引脚上的信号配合产生。下面的表中就是内存插槽的引脚数量和引脚定义,对于一些没有定义或者是保留以后使用的信号就没有列出来。 符号功能详细描述 DQ [0-63] I/O 数据输入/输出 CB [0-7] I/O ECC内存的ECC校验输入/输出 A [0-13] I/O 地址选择 BA [0-1] Control Bank选择 CS [0-3] Control 片选信号 RAS Control 行地址选择信号 CAS Control 列地址选择信号 DQMB [0-7] Control 数据掩码控制(DQ Mask)高有效* WE Control 写允许信号 CK [0-3] Clock 时钟信号 CKE [0-1] Clock 时钟允许信号** REGE Control 寄存器 (Registered) 允许信号

内存基础知识

内存基础知识学习笔记 紧接着上个星期的硬件学习,在了解了硬盘的一定基础知识之后,转战内存。但发现内存的知识要比硬盘的知识要多得多,因此这次笔记只对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(输入/输出缓冲)的传输频率;而有效数据传输频率就是指数据传送的频率(即等效频率)。

笔记本内存知识大全

笔记本内存知识大全----买本必看(二) 笔记本内存是笔记本电脑中的主要部件,它是相对于其他存储器而言的。我们平常使用的程序,如操作系统、、游戏软件等,一般都是安装在硬盘等外存上的,但仅此是不能使用其功能的,必须把它们调入内存中运行,才能真正使用其功能,我们平时输入一段文字,或玩一个游戏,其实都是在内存中进行的。通常我们把要永久保存的、大量的数据存储在外存上,而把一些临时的或少量的数据和程序放在内存上。内存是连接CPU 和其他设备的通道,起到缓冲和数据交换作用! 一:什么是SDRAM、DDR、DDR2、DDR3内存 在介绍DDR之前我们先明白什么是SDRAM,SDRAM是 Synchronous Dynamic Random Access Memory的缩写,中文叫同步动态随机存取存储器。SDRAM在一个时钟周期内只传输一次数据,它是在时钟的上升期进行数据传输。SDRAM从发展到现在已经经历了四代,分别是:第一代SDR SDRAM,第二代DDR SDRAM,第三代 DDR2 SDRAM,第四代DDR3 SDRAM后面将做详细介绍 DDR叫DDR SDRAM,人们习惯称为DDR,DDR SDRAM是Double Data Rate SDRAM的缩写,DDR内存则是一个时钟周期内传输两次次数据,它能够在时钟的上升期和下降期各传输一次数据,就是双倍速率同步动态随机存储器的意思。 DDR2的定义: DDR2(Double Data Rate 2) SDRAM ,即简称DDR2。DDR2和DDR一样,采用了在时钟的上升延和下降延同时进行数据传输的基本方式,但是最大的区别在于,DDR2内存可进行4bit预读取。两倍于标准DDR内存的2BIT预读取,这就意味着,DDR2拥有两倍于DDR的预读系统命令数据的能力,因此,DDR2则简单的获得两倍于DDR的完整的数据传输能力。 DDR2内存技术最大的突破点其实不在于所谓的两倍于DDR的传输能力,而是,在采用更低发热量,更低功耗的情况下,反而获得更快的频率提升,突破标准DDR的400MHZ 限制。 外形,封装

飞思卡尔MC9S12XS128技术手册翻译AD

飞思卡尔MC9S12XS128技术手册(AD转换部分) 英文资料:飞思卡尔MC9S12XS256RMV1官方技术手册 1.1 XS12系列单片机的特点 XS12系列单片机特点如下: ·16位S12CPU —向上支持S12模糊指令集并去除了其中的MEM, WAV, WAVR, REV, REVW 五条指令; —模块映射地址机制(MMC); —背景调试模块(BDM); ·CRG时钟和复位发生器 —COP看门狗; —实时中断; ·标准定时器模块 —8个16位输入捕捉或输出比较通道;; —16位计数器,8位精密与分频功能; —1个16位脉冲累加器; ·周期中断定时器PIT —4具有独立溢出定时的定时器; —溢出定时可选范围在1到2^24总线时钟; —溢出中断和外部触发器; ·多达8个的8位或4个16位PWM通道 —每个通道的周期和占空比有程序决定; —输出方式可以选择左对齐或中心对其; —可编程时钟选择逻辑,且可选频率范围很宽; ·SPI通信模块 —可选择8位或16位数据宽度;

—全双工或半双工通信方式; —收发双向缓冲; —主机或从机模式; —可选择最高有效为先输出或者最低有效位先输出; ·两个SCI串行通信接口 —全双工或半双工模式 ·输入输出端口 —多达91个通用I/O引脚,根据封装方式,有些引脚未被引出; —两个单输入引脚; ·封装形式 —112引脚薄型四边引线扁平封装(LQFP); —80引脚扁平封装(QFP); —64引脚LQFP封装; ·工作条件 —全功率模式下单电源供电范围3.15V到5V; —CPU总线频率最大为40MHz —工作温度范围–40 C到125 C 第十章模拟—数字转换 10.1 介绍 ADC12B16C是一个16通道,12位,复用方式输入逐次逼近模拟—数字转换器。 ATD的精度由电器规格决定。 10.1.1 特点 ·可设置8位、10位、12位精度 ·在停止模式下,ATD转换使用内部时钟 ·转换序列结束后自动进入低耗电模式 ·可编程采样时间 ·转化结果可选择左对齐或右对齐

android如何查看cpu的占用率和内存泄漏

android如何查看cpu的占用率和内存泄漏 在分析内存优化的过程中,其中一个最重要的是我们如何查看cpu的占用率和内存的占用率呢,这在一定程度上很重要,经过查询资料,研究了一下,暂时了解到大概有以下几种方式,如果哪位高手有更好的办法,或者文中描述有错误,还望高手在下面留言,非常感谢! 一、通过eclipse,ADT开发工具的DDMS来查看(Heap) 在“Devices”窗口中选择模拟器中的一个需要查看的程序,从工具条中选“Update heap”按钮,给这个程序设置上“heap Updates”,然后在Heap视图中点击Cause GC就可以实时显示这个程序的一些内存和cpu的使用情况了。

然后就会出现如下界面: 说明: a) 点击“Cause GC”按钮相当于向虚拟机请求了一次gc操作; b) 当内存使用信息第一次显示以后,无须再不断的点击“Cause GC”,Heap视图界面会定

时刷新,在对应用的不断的操作过程中就可以看到内存使用的变化; c) 内存使用信息的各项参数根据名称即可知道其意思,在此不再赘述。 大致解析如下: 这个就是当前应用的内存占用,allocated 是已经分配的内存free是空闲内存, heap size 是虚拟机分配的不是固定值 heap size 的最大值跟手机相关的 有网友说, 一般看1byte的大部分就是图片占用的 如何判断应用是否有内存泄漏的可能性呢? 如何才能知道我们的程序是否有内存泄漏的可能性呢。这里需要注意一个值:Heap视图中部有一个Type叫做data object,即数据对象,也就是我们的程序中大量存在的类类型的对象。在data object一行中有一列是“Total Size”,其值就是当前进程中所有Java数据对象的内存总量,一般情况下,这个值的大小决定了是否会有内存泄漏。可以这样判断: a) 不断的操作当前应用,同时注意观察data object的Total Size值; b) 正常情况下Total Size值都会稳定在一个有限的范围内,也就是说由于程序中的的代码良好,没有造成对象不被垃圾回收的情况,所以说虽然我们不断的操作会不断的生成很多对象,而在虚拟机不断的进行GC的过程中,这些对象都被回收了,内存占用量会会落到一个稳定的水平; c) 反之如果代码中存在没有释放对象引用的情况,则data object的Total Size值在每次GC 后不会有明显的回落,随着操作次数的增多Total Size的值会越来越大, 直到到达一个上限后导致进程被kill掉。

内存大全

内存大全 Samsung 具体含义解释: 例:SAMSUNG K4H280838B-TCB0 主要含义: 第1位——芯片功能K,代表是内存芯片。 第2位——芯片类型4,代表DRAM。 第3位——芯片的更进一步的类型说明,S代表SDRAM、H代表DDR、G代表SGRAM。

第4、5位——容量和刷新速率,容量相同的内存采用不同的刷新速率,也会使用不同的编号。 64、62、63、65、66、67、6A代表64Mbit的容量;28、27、2A代表128Mbit的容量;56、55、57、5A代表256Mbit的容量;51代表512Mbit的容量。 第6、7位——数据线引脚个数,08代表8位数据;16代表16位数据;32代表32位数据;64代表64位数据。 第11位——连线“-”。 第14、15位——芯片的速率,如60为6ns;70为 7ns;7B为7.5ns (CL=3);7C为7.5ns (CL=2) ;80为 8ns;10 为10ns (66MHz)。 知道了内存颗粒编码主要数位的含义,拿到一个内存条后就非常容易计算出它的容量。例如一条三星DDR内存,使用18片SAMSUNG K4H280838B-TCB0颗粒封装。颗粒编号第4、5位“28”

代表该颗粒是128Mbits,第6、7位“08”代表该颗粒是8位数据带宽,这样我们可以计算出该内存条的容量是128Mbits(兆数位)× 16片/8bits=256MB(兆字节)。 注:“bit”为“数位”,“B”即字节“byte”,一个字节为8位则计算时除以8。关于内存容量的计算,文中所举的例子中有两种情况:一种是非ECC内存,每8片8位数据宽度的颗粒就可以组成一条内存;另一种ECC内存,在每64位数据之后,还增加了8位的ECC校验码。通过校验码,可以检测出内存数据中的两位错误,纠正一位错误。所以在实际计算容量的过程中,不计算校验位,具有ECC功能的18片颗粒的内存条实际容量按16乘。在购买时也可以据此判定18片或者9片内存颗粒贴片的内存条是ECC内存

常见内存型号基础知识介绍

DDR=DoubleDataRate双倍速率同步固态随机处理器 严格的说DDR应该叫DDRSDRAM,人们习惯称为DDR,部分初学者也常看到DDRSDRAM,就 认为是SDRAM。DDRSDRAM是 DoubleDataRateSDRAM的缩写,是双倍速率同步动态随机存储 器的意思。DDR内存是在SDRAM内存基础上发展而来的,仍然沿用 SDRAM生产体系,因此对 于内存厂商而言,只需对制造普通SDRAM的设备稍加改进,即可实现DDR内存的生产,可有 效的降低成本。 什么是DDR1? 有时候大家将老的存储技术DDR称为DDR1,使之与DDR2加以区分。尽管一般是使用DDR, 但DDR1与DDR的含义相同。 DDR1规格 DDR-200:DDR-SDRAM记忆芯片在100MHz下运行DDR-266:DDR-SDRAM记忆芯片在133MHz 下运行DDR- 333:DDR-SDRAM记忆芯片在166MHz下运行DDR-400:DDR-SDRAM记忆芯片在200MHz下运行(JEDEC制定的DDR最高规格)DDR-500:DDR-SDRAM记忆芯片在250MHz下运 行(非JEDEC制定的DDR规格)DDR-600:DDR-SDRAM记忆芯片在 300MHz下运行(非JEDEC 制定的DDR规格)DDR-700:DDR-SDRAM记忆芯片在350MHz下运行(非JEDEC制定的DDR规格) 什么是DDR2? DDR2/DDRII(DoubleDataRate2)SDRAM是由JEDEC(电子设备工程联合委员会)进行开 发的新生代内存技术标准,它与上一代DDR内存技术标准最大的不同就是,虽然同是采用了 在时钟的上升/下降延同时进行数据传输的基本方式,但DDR2内存却拥有两倍于上一代DDR 内存预读取能力(即:4bit数据读预取)。换句话说,DDR2内存每个时钟能够以4倍外部总 线的速度读/写数据,并且能够以内部控制总线4倍的速度运行。 此外,由于DDR2标准规定所有DDR2内存均采用FBGA封装形式,而不同于目前广泛应用 的TSOP/TSOP-II封装形式,FBGA封装可以提供了更为良好的电气性能与散热性,为DDR2 内存的稳定工作与未来频率的发展提供了坚实的基础。回想起DDR的发展历程,从第一代应 用到个人电脑的 DDR200经过DDR266、DDR333到今天的双通道DDR400技术,第一代DDR 的发展也走到了技术的极限,已经很难通过常规办法提高内存的工作速度;随着Intel最新 处理器技术的发展,前端总线对内存带宽的要求是越来越高,拥有更高更稳定运行频率的DDR2内存将是大势所趋。 什么是DDR3? DDR3是针对Intel新型芯片的一代内存技术(但目前主要用于显卡内存),频率在800M 以上,和DDR2相比优势如下: (1)功耗和发热量较小:吸取了DDR2的教训,在控制成本的基础上减小了能耗和发热量,

内存基本知识详解

内存这样小小的一个硬件,却是PC系统中最必不可少的重要部件之一。而对于入门用户来说,可能从内存的类型、工作频率、接口类型这些简单的参数的印象都可能很模糊的,而对更深入的各项内存时序小参数就更摸不着头脑了。而对于进阶玩家来说,内存的一些具体的细小参数设置则足以影响到整套系统的超频效果和最终性能表现。如果不想当菜鸟的话,虽然不一定要把各种参数规格一一背熟,但起码有一个基本的认识,等真正需要用到的时候,查起来也不会毫无概念。 内存种类 目前,桌面平台所采用的内存主要为DDR 1、DDR 2和DDR 3三种,其中DDR1内存已经基本上被淘汰,而DDR2和DDR3是目前的主流。 DDR1内存 第一代DDR内存 DDR SDRAM 是Double Data Rate SDRAM的缩写,是双倍速率同步动态随机存储器的意思。DDR内存是在SDRAM内存基础上发展而来的,仍然沿用SDRAM生产体系,因此对于内存厂商而言,只需对制造普通SDRAM的设备稍加改进,即可实现DDR内存的生产,可有效的降低成本。 DDR2内存

第二代DDR内存 DDR2 是DDR SDRAM 内存的第二代产品。它在DDR 内存技术的基础上加以改进,从而其传输速度更快(可达800MHZ ),耗电量更低,散热性能更优良。 DDR3内存 第三代DDR内存

DDR3相比起DDR2有更低的工作电压,从DDR2的1.8V降落到1.5V,性能更好更为省电;DDR2的4bit预读升级为8bit预读。DDR3目前最高能够1600Mhz的速度,由于目前最为快速的DDR2内存速度已经提升到800Mhz/1066Mhz的速度,因而首批DDR3内存模组将会从1333Mhz的起跳。 三种类型DDR内存之间,从内存控制器到内存插槽都互不兼容。即使是一些在同时支持两种类型内存的Combo主板上,两种规格的内存也不能同时工作,只能使用其中一种内存。 内存SPD芯片 内存SPD芯片 SPD(Serial Presence Detect): SPD是一颗8针的EEPROM(Electrically Erasable Programmable ROM 电可擦写可编程只读存储器), 容量为256字节,里面主要保存了该内存的相关资料,如容量、芯片厂商、内存模组厂商、工作速度等。SPD的内容一般由内存模组制造商写入。支持SPD的主板在启动时自动检测SPD中的资料,并以此设定内存的工作参数。 启动计算机后,主板BIOS就会读取SPD中的信息,主板北桥芯片组就会根据这些参数信息来自动配置相应的内存工作时序与控制寄存器,从而可以充分发挥内存条的性能。上述情况实现的前提条件是在BIOS设置界面中,将内存设置选项设为“By SPD”。当主板从内存条中不能检测到SPD信息时,它就只能提供一个较为保守的配置。 从某种意义上来说,SPD芯片是识别内存品牌的一个重要标志。如果SPD内的参数值设置得不合理,不但不能起到优化内存的作用,反而还会引起系统工作不稳定,甚至死机。因此,很多普通内存或兼容内存厂商为了避免兼容性问题,一般都将SPD中的内存工作参数设置得较为保守,从而限制了内存性能的充分发挥。更有甚者,一些不法厂商通过专门的读

MC9S12XS128终极例程

SCI程序 串行通信时MCU与外部设备之间进行通信的一种简单而有效的硬件方法。 无论用查询方式还是中断方式进行串行通信编程,在程序初始化时均必须对SCI进行初始化。初始化主要包括波特率设置、通信格式的设置、发送接收数据方式的设置等。 对SCI进行初始化,需要设置如下几部分: (1)定义波特率 一般选内部总线时钟为串行通信的时钟源。通过设置SCI波特率寄存器SCI0BD的波特率选择位SBR[12:0],来选择合适的分频系数。 (2)写控制字到SCI控制寄存器1(SCI0CR1) 设置是否允许SCI、数据长度、输出格式、选择唤醒方法、是否校验等。 (3)写控制字到SCI控制寄存器2(SCI0CR2) 设置是否允许发送与接收、是中断接收还是查询接收等。 串行通信程序如下: /** write in “Init.h” **/ #include /* common defines and macros */ #include "derivative.h" /* derivative-specific definitions */ //void InitBusClk(void); //可以不使用锁相环 void InitSci(void); /** write in “Init.c” **/ //初始化程序 #include "Init.h" /* //------------初始化Bus Clock------------// void InitBusClk(void) { DisableInterrupts; CLKSEL=0X00; //PLLSEL 1 : Bus Clock=PLLCLK/2 // 0 : Bus Clock=OSCCLK/2 PLLCTL_PLLON=1; //开启PLL SYNR=0; //OSCCLK=16MHz REFDV=0X0F; //PLLCLK=2*OSCCLK*[(1+SYNR)/(1+REFDV]=32/16=2MHz while(!(CRGFLG_LOCK==1)); //直到LOCK=1,when PLL is ready,退出循环 CLKSEL_PLLSEL=1; //PLLSEL 1 : Bus Clock=PLLCLK/2=2MHz/2=1MHz // 0 : Bus Clock=OSCCLK/2=16M/2=8MHz } */

安卓性能优化方案

随着技术的发展,智能手机硬件配置越来越高,可是它和现在的PC相比,其运算能力,续航能力,存储空间等都还是受到很大的限制,同时用户对手机的体验要求远远高于PC的桌面应用程序。以上理由,足以需要开发人员更加专心去实现和优化你的代码了。选择合适的算法和数据结构永远是开发人员最先应该考虑的事情。同时,我们应该时刻牢记,写出高效代码的两条基本的原则:(1)不要做不必要的事;(2)不要分配不必要的内存。 我从去年开始接触Android开发,以下结合自己的一点项目经验,同时参考了Google的优化文档和网上的诸多技术大牛给出的意见,整理出这份文档。 1. 内存优化 Android系统对每个软件所能使用的RAM空间进行了限制(如:Nexus o ne 对每个软件的内存限制是24M),同时Java语言本身比较消耗内存,d alvik虚拟机也要占用一定的内存空间,所以合理使用内存,彰显出一个程序员的素质和技能。 1) 了解JIT 即时编译(Just-in-time Compilation,JIT),又称动态转译(Dynamic Translation),是一种通过在运行时将字节码翻译为机器码,从而改善字节码编译语言性能的技术。即时编译前期的两个运行时理论是字节码编译和动态编译。Android原来Dalvik虚拟机是作为一种解释器实现,新版

(Android2.2+)将换成JIT编译器实现。性能测试显示,在多项测试中新版本比旧版本提升了大约6倍。 详细请参考https://www.sodocs.net/doc/067162962.html,/cool_parkour/blog/item/2802b01586e22cd8a6ef3f6b. html 2) 避免创建不必要的对象 就像世界上没有免费的午餐,世界上也没有免费的对象。虽然gc为每个线程都建立了临时对象池,可以使创建对象的代价变得小一些,但是分配内存永远都比不分配内存的代价大。如果你在用户界面循环中分配对象内存,就会引发周期性的垃圾回收,用户就会觉得界面像打嗝一样一顿一顿的。所以,除非必要,应尽量避免尽力对象的实例。下面的例子将帮助你理解这条原则: 当你从用户输入的数据中截取一段字符串时,尽量使用substring函数取得原始数据的一个子串,而不是为子串另外建立一份拷贝。这样你就有一个新的String对象,它与原始数据共享一个char数组。如果你有一个函数返回一个String对象,而你确切的知道这个字符串会被附加到一个Stri ngBuffer,那么,请改变这个函数的参数和实现方式,直接把结果附加到StringBuffer中,而不要再建立一个短命的临时对象。 一个更极端的例子是,把多维数组分成多个一维数组: int数组比Integer数组好,这也概括了一个基本事实,两个平行的int数组比(int,int)对象数组性能要好很多。同理,这试用于所有基本类型的组合。如果你想用一种容器存储(Foo,Bar)元组,尝试使用两个单独的Foo[]

内存基础知识——内存中的Bank

也许有的朋友在购买内存后发现:为什么明明在商家那里可以使用,而在自己的电脑里就不能使用了呢?其实这里面就涉及到内存Bank的问题,今天将为大家深入分析出现这种情况的原因。 内存Bank分为物理Bank和逻辑Bank。 1.物理Bank 传统内存系统为了保证CPU的正常工作,必须一次传输完CPU在一个传输周期内所需要的数据。而CPU在一个传输周期能接收的数据容量就是CPU数据总线的位宽,单位是bit(位)。内存与CPU之间的数据交换通过主板上的北桥芯片进行,内存总线的数据位宽等同于CPU数据总线的位宽,这个位宽就称之为物理Bank(Physical Bank,简称P-Bank)的位宽。以目前主流的DDR系统为例,CPU与内存之间的接口位宽是64bit,也就意味着CPU 在一个周期内会向内存发送或从内存读取64bit的数据,那么这一个64bit的数据集合就是一个内存条Bank。目前绝大多数的芯片组都只能支持一条内存包含两个物理Bank。不过以前有不少朋友都认为,内存的物理Bank是由面数决定的:即单面内存条则包含一个物理Bank,双面内存则包含两个。其实这个看法是错误的! 一条内存条的物理Bank是由所采用的内存颗粒的位宽决定的,各个芯片位宽之和为64bit就是单物理Bank;如果是128bit就是双物理Bank。读到这里,大家也应该知道,我们可以通过两种方式来增加这种类型内存的容量。第一种就是通过增加每一个独立模块的容量来增加Bank的容量,第二种方法就是增加Bank的数目。由于目前内存颗粒位宽的限制,一个系统只有一个物理Bank已经不能满足容量的需要。所以,目前新一代芯片组可以支持多个物理Bank,最少的也能支持4个物理Bank。对于像Intel i845D这种支持4个Bank的芯片组来说,我们在选购内存时就要考虑一下插槽数与内存Bank 的分配问题了。因为如果选购双Bank的内存,这意味着在Intel i845D芯片组上我们最多只能使用两条这样的内存,多了的话芯片组将无法识别。这里我建议大家最好根据自己的主板所提供的内存插槽数目来选购内存,如果主板只提供了两个内存插槽,那就不必为内存是单Bank还是双Bank而担心了。而如果主板提供了4个内存插槽(同一种规格),那么应该尽量购买单Bank或大容量双Bank的内存,以免给日后升级留下不必要的麻烦。 2.逻辑Bank 逻辑Bank的英文全称为Logical Bank,简称L-Bank。如果将物理Bank说成是内存颗粒阵列的话,那么逻辑Bank可以看做是数据存储阵列。不过与物理Bank不同,SDRAM与DDR内存的逻辑Bank并不完全一样,所以我将分开来简单介绍一下。 简单地说,SDRAM的内部是一个存储阵列(图1),因为如果是管道式存储,就很难做到随机访问了。阵列就如同表格一样,将数据“填”进去。因此逻辑Bank我们可以看成是一张逻辑二维表,在此表中内存的数据是以位(bit)为单位写入一个大的矩阵中,每个单元我们称为CELL,只要指定一个行(Row),再指定一个列(Column),就可以准确地定位到某个CELL,里面每个单元都可以存储数据,而且每个单元的存储空间相同——因为实际上与物理Bank每个单元具体存储数据量相同。这个具体的单元存储数据量即为逻辑Bank的位宽(实际上内存芯片的位宽就是逻辑Bank的位宽),一般有4bit、8bit和16bit等几种。如果你认为不好理解的话,那么你可以用硬盘操作中的簇与扇区的关系来理解内存中的存储形式——扇区是硬盘中的最小存储单元(相当于内存中的存储体),而一个簇则包含多个扇区(相当于逻辑Bank中的存储单元),数据的交换都是以一个簇为单位进行。由于工艺上的原因,这个阵列不可能做得太大,所以一般内存芯片中都是将内存容量分成几个阵列来制造,也就是说内存芯片中存在多个逻辑Bank,随着芯片容量的不断增加,逻辑Bank数量也在不断增加。 主板芯片组本身设计时在一个时钟周期内只允许对一个逻辑Bank进行操作,而不是主

内存知识全集---讲义教材

内存知识大全 DDR2 DDR2的定义: DDR2(Double Data Rate 2) SDRAM是由JEDEC(电子设备工程联合委员会)进行开发的新生代内存技术标准,它与上一代DDR内存技术标准最大的不同就是,虽然同是采用了在时钟的上升/下降延同时进行数据传输的基本方式,但DDR2内存却拥有两倍于上一代DDR内存预读取能力(即:4bit 数据读预取)。换句话说,DDR2内存每个时钟能够以4倍外部总线的速度读/写数据,并且能够以内部控制总线4倍的速度运行。 此外,由于DDR2标准规定所有DDR2内存均采用FBGA封装形式,而不同于目前广泛应用的TSOP/TSOP-II封装形式,FBGA封装可以提供了更为良好的电气性能与散热性,为DDR2内存的稳定工作与未来频率的发展提供了坚实的基础。回想起DDR的发展历程,从第一代应用到个人电脑的DDR200经过DDR266、DDR333到今天的双通道DDR400技术,第一代DDR的发展也走到了技术的极限,已经很难通过常规办法提高内存的工作速度;随着Intel最新处理器技术的发展,前端总线对内存带宽的要求是越来越高,拥有更高更稳定运行频率的DDR2内存将是大势所趋。 DDR2与DDR的区别: 在了解DDR2内存诸多新技术前,先让我们看一组DDR和DDR2技术对比的数据。 1、延迟问题: 从上表可以看出,在同等核心频率下,DDR2的实际工作频率是DDR的两倍。这得益于DDR2内存拥有两倍于标准DDR内存的4BIT预读取能力。换句话说,虽然DDR2和DDR 一样,都采用了在时钟的上升延和下降延同时进行数据传输的基本方式,但DDR2拥有两倍于DDR的预读取系统命令数据的能力。也就是说,在同样100MHz的工作频率下,DDR 的实际频率为200MHz,而DDR2则可以达到400MHz。 这样也就出现了另一个问题:在同等工作频率的DDR和DDR2内存中,后者的内存延时要慢于前者。举例来说,DDR200和DDR2-400具有相同的延迟,而后者具有高一倍的带宽。实际上,DDR2-400和DDR400具有相同的带宽,它们都是3.2GB/s,但是DDR400的核心工作频率是200MHz,而DDR2-400的核心工作频率是100MHz,也就是说DDR2-400的延迟要高于DDR400。 2、封装和发热量: DDR2内存技术最大的突破点其实不在于用户们所认为的两倍于DDR的传输能力,而是在采用更低发热量、更低功耗的情况下,DDR2可以获得更快的频率提升,突破标准DDR 的400MHZ限制。 DDR内存通常采用TSOP芯片封装形式,这种封装形式可以很好的工作在200MHz上,当频率更高时,它过长的管脚就会产生很高的阻抗和寄生电容,这会影响它的稳定性和频率提升的难度。这也就是DDR的核心频率很难突破275MHZ的原因。而DDR2内存均采用FBGA封装形式。不同于目前广泛应用的TSOP封装形式,FBGA封装提供了更好的电气性能与散热性,为DDR2内存的稳定工作与未来频率的发展提供了良好的保障。 DDR2内存采用1.8V电压,相对于DDR标准的2.5V,降低了不少,从而提供了明显的更小的功耗与更小的发热量,这一点的变化是意义重大的。 DDR2采用的新技术: 除了以上所说的区别外,DDR2还引入了三项新的技术,它们是OCD、ODT和Post CAS。 OCD(Off-Chip Driver):也就是所谓的离线驱动调整,DDR II通过OCD可以提高信号的完整性。DDR

相关主题