文档库 最新最全的文档下载
当前位置:文档库 › 不同种类的内存

不同种类的内存

不同种类的内存
不同种类的内存

有些人喜欢对他们所拥有-或考虑购买-的计算机系统有很深的了解,只因为他们就是那样,这是他们挑剔的原因。有些人从不了解他们的计算机系统,而且喜欢那样其他人- 大部分人,实际上- 只在有需要的时候试著了解他们的计算机系统━当计算机出问题或是需要升级的时候,值得注意的是,选择计算机系统━以及内存功能━将会影响使用计算机的经验与满足感。这一章将介绍更多关于内存的资讯,以方便使你所购买或升级的计算机系统功能更加强大。

模组规格(Module Form Factors)

最简单的内存模组分类方法是依照规格的不同分类模组规格是指模组的尺寸以及针脚之配置。绝大多数的计算机系统中的内存插槽只能容纳一种规格的内存模组;有些计算机系统配备不只一种内存插槽,以提供更多内存模组规格的选择。这种设计通常是业界过渡期时,制造厂无法确定未来最占优势或最容易利用的模组规格的结果。

SIMM模组

如同前面提过的,SIMM代表Single In-Line Memory Module. 在SIMM上,内存晶片被焊连在插入主机板上内存插槽的印刷电路版上。

最早期的SIMMs一次能够传输8位元的资料,后来随著中央处理器开始以32位元的数量读写资料,能够一次供应32位元资料的较宽SIMM模组开始发展。分辨两这两种不同的SIMM模组最容易的方式是以针脚,或连接点,的数目不同来分辨。较早期的模组只有30个Pin,而较新的模组有72个Pins 於是它们一般被称为30-pin SIMM模组以及72-pin SIMM模组。

另一个30-pin以及72-pin SIMM模组的重要差异在於72-pin SIMM模组较30-pin SIMM模组长3/4英寸(1.9公分) 并且在下缘中央有一个模组刻痕。下图为两种SIMM模组差异以及资料宽度。

4-1/4" 72-Pin SIMM

3-1/2" 30-Pin SIMM

Comparison of a 30-pin and a 72-pin SIMM

DIMM模组

Dual In-Line Memory Modules, 或称DIMM模组与SIMM模组相当类似。相似於SIMM模组,大部分的DIMM模组以垂直的方式安装於扩充插槽内两者之间的主要差别在於,在SIMM模组上,电路板正反两面的针脚是相连在一起的,而在DIMM模组上,电路板正反两面的针脚则各有其独立电路。

168-pin DIMM模组以一次64位元的速度传输资料并大多使用於配备64位元或更宽内存汇流排的计算机系统上。168-pin DIMM模组与72-pin SIMM模组外观的差异包括:模组的长度,模组上刻痕数目的不同,以及模组安装於插槽中的方式。另一个不同点在於,许多72-pin SIMM模组以一个微小的角度安插於内存插槽中而,168-pin DIMM模组以垂直方式安装并与主机板保持垂直。下图表示168-pin DIMM与72-pin SIMM间的差异。

4-1/4" 70-Pin SIMM

5-1/4" 168-Pin DIMM

72-pin DIMM模组与168-pin DIMM模组的差异

SO DIMM模组

笔记型计算机常用的一种内存模组常称为SO DIMM模组,或是Small Outline DIMM。SO DIMM 模组以及DIMM模组间的主要差别在於,由於SO DIMM是为了使用於笔记型计算机中而设计,它的尺寸较标准DIMM模组小很多。72-pin SO DIMM模组为32位元宽,而144-pin SO DIMM模组为64位元宽。

2.35" 72-pin SO DIMM 2.66" 144-Pin SO DIMM

72-pin SO DIMM模组与144-pin SO DIMM模组的差异

RIMM模组

RIMM是Direct Rambus memory module的注册专有名称RIMM模组与DIMM模组的外观相

似,但针脚数目却不同。RIMM模组以16位元封包的方式传输资料,由於RIMM模组有较快的存取与传输速率产生较多热能,因此模组外包裹了一层称为散热层(Heat Spreader)的铝制外壳以确保晶片不会过热。

去除散热层后的184-pin RIMM模组

SO-RIMM模组与160-pin SO-DIMM模组外观相似,但是它应用了Rambus技术

A 160-pin SO-RIMM module.

Flash Memory

快闪内存本是一种固体状,非挥发性,具有改写功能的内存像RAM及硬碟的结合体。快闪内存储存电子资料在内存单位中就如同DRAM,但同样地,有如同硬碟的功能,当电源被关掉时,资料仍然被储存在内存中。

由於他高速、耐久性及低电压之特性,快闪内存是很广泛被运用在很多产品上,如数位相机、行动电话、打印机、掌上型计算机、呼叫器及音响录音设备。

PC卡和Credit Card内存

在SO DIMM模组开始受欢迎之前,绝大部分的笔记型计算机内存是以制造厂本身自行设计的方式发展的。使用标准的产品对於系统制造厂一直是比较经济实惠的选择,而使用与现今的PC卡相同的“信用卡” 包装技术的内存也风行一时。由於这类模组外观与PC卡类似,许多人以为这些

内存卡与PC卡相同并能够安插在PC卡插槽中。当时,由於它的规格大小与信用

卡相似,这一类的内存也被称为“Credit Card Memory” 由於Credit Card内存的小型尺寸,对於空间有限的笔记型计算机来说十分理想。

PC卡使用一种称为PCMCIA(Personal Computer Memory Card International Association)的输入/输出协定。这个标准是为在笔记型计算机上连接输入/输出设备,例如网路卡(network adaptor),传真数据机或是硬碟,由於PC卡内存具有为笔记型计算机插槽设计的PC卡外形,某些人便误以为内存模组能够使用於PC卡插槽中。目前,随机存取内存并没有以PCMCIA卡的方式包装,因为这种技术无法让处理器与内存以足够的速度通讯,目前PC卡模组中最常见的是快闪内存。

外观上来说,Credit Card内存与典型的内存模组规格不同但是内部仍然配置标准的TSOP晶片。

这个部分介绍最常见用於主内存的内存技术:

以下简介内存晶片技术的演变

1987FPM50ns

1995EDO50ns

1997PC66 SDRAM66MHz

1998PC100 SDRAM100MHz

1999RDRAM800MHz

1999/2000PC133 SRAM133MHz (VCM option)

2000DDR SDRAM266MHz

主要晶片技术

因为外观上的差异,以内存模组规格相当容易分辨出不同。绝大部分模组规格通常能够支援数种不同的内存技术,所以,两个外观相同的模组便有可能实际上完全不同。例而言168-pin DIMM模组便能使用EDO,SDRAM或某些其他形式的内存。唯一能够准确判断模组内含内存种类的方式只有判读晶片上的标示每个晶片制造厂都有不同的标示以及型号以识别晶片技术。

Fast Page Mode (FPM)

FPM曾经一度是计算机中最常见的DRAM形式。事实上,由於FPM如此常见,它被省略“FPM” 而直接称为“DRAM”,FPM以更快存取位於同一列的资料的速度提供了较早期内存科技更多的优势。

Extended Data Out (EDO)

1995年时,EDO技术成为另一项内存革新。它与FPM技术相当类似,但稍微修改以加速连续内存存取,这项技术使内存控制器能够在下达指令的过程中省略几个步骤以节省时间。EDO技术使中央处理器能以比FPM技术快10%到15%的速度存取内存。

Synchronized DRAM (SDRAM)

1996年底,SDRAM开始在系统中出现,不同於早期的技术, SDRAM是为了与中央处理器的计时同步化所设计,这使得内存控制器能够掌握准备所要求的资料所需的准确时钟周期,因此中央处理器从此不需要延后下一次的资料存取。SDRAM晶片同时也应用Interleaving与Bursting功能以加快内存读取的速度,SDRAM有数种不同的速度以便与所使用的系统时钟同步化,举例而言,PC66 SDRAM以66MHz的速度运作,PC100 SDRAM以100MHz的速度运,作PC133 SDRAM以133MHz的速度运作,以此类推,速度更快的SDRAM,例如200MHz以及266MHz 目前仍在开发中。

Double Data Rate Synchronized DRAM (DDR SDRAM)

DDR SDRAM是新一代的SDRAM技术。它使内存晶片能够在时钟周期的波峰及波谷传送资料,举例而言,使用DDR SDRAM时,一个100MHZ或133MHz内存汇流排clock rate能够达到200MHz或266MHz的实际资料传输速率,使用DDR SDRAM的系统预定2000年底上市。

Direct Rambus

Direct Rambus是一项挑战传统主内存设计的全新DRAM结构以及介面标准。与较早的内存技术相比, Direct Rambus技术的速度惊人,它以高达800MHz的速度透过一个称为”Direct Rambus Channel”的狭窄16位元汇流排传输资料,它的高传输速度是透过一项使内存能够在时钟周期波峰及波谷执行作业的“double clocked”功能,同时,每个RDRAM模组上的内存设备能够提供高达每秒1.6GB的频宽━目前100MHz SDRAM可用频宽的两倍。

除了为主内存所设计的晶片技术,市面上也有为影片应用所特别设计的内存技术

为影片以及图像处理设计的内存技术

Video RAM (VRAM)

VRAM 是影像版本的FPM技术,VRAM通常具有两个而非一个接口,使内存能够运用一个频道来重新整理萤幕,而另一个来改变萤幕上的影像。对影片程式来说,它比一般的DRAM更有效率,但是由於影片内存晶片的使用量较主内存晶片少,它的价格一般来说也较昂贵,所以,系统设计师可能会选择在影片系统中使用一般的DRAM,乃是依价格或效能表现的要求而决定。

Window RAM (WRAM)

WRAM是另一种应用在使用大量图像系统中的双接口内存,它与VRAM稍微不同的地方在於它较小的指定显示接口以及它支援EDO功能。

Synchronous Graphics RAM (SGRAM)

SGRAM是一个包括图像读写的SDRAM特制影片处理之产品。SGRAM同时也让资料能够以群组而非单个的方式读取以及修改,这项功能减少内存必须执行的读写动作,使处理过程更有效率,并因此提高图像控制器的效能表现。

Base Rambus以及Concurrent Rambus

早在成为主内存的竞争者之前,Rambus 技术已经被应用在影片内存上。目前的Rambus主内存技术称为Direct Rambus 两项较早期的技术分别称为Base Rambus以及Concurrent Rambus 这两种形式的Rambu,早在几年前就已被应用在某些工作站的影片程式以及电视游乐器系统,例如任天堂64上。

RAM内存分为哪些种类

RAM内存分为哪些种类 RAM的特点是:电脑开机时,操作系统和应用程序的所有正在运行的数据和程序都会放置其中,并且随时可以对存放在里面的数据进行修改和存取。它的工作需要由持续的电力提供,一旦系统断电,存放在里面的所有数据和程序都会自动清空掉,并且再也无法恢复。 01.DRAM(Dynamic RAM,动态随机存取存储器) 这是最普通的RAM,一个电子管与一个电容器组成一个位存储单元,DRAM将每个内存位作为一个电荷保存在位存储单元中,用电容的充放电来做储存动作,但因电容本身有漏电问题,因此必须每几微秒就要刷新一次,否则数据会丢失。存取时间和放电时间一致,约为2~4ms。因为成本比较便宜,通常都用作计算机内的主存储器。 02.SRAM(Static RAM,静态随机存取存储器) 静态,指的是内存里面的数据可以长驻其中而不需要随时进行存取。每6颗电子管组成一个位存储单元,因为没有电容器,因此无须不断充电即可正常运作,因此它可以比一般的动态随机处理内存处理速度更快更稳定,往往用来做高速缓存。 03.VRAM(Video RAM,视频内存) 它的主要功能是将显卡的视频数据输出到数模转换器中,有效降低绘图显示芯片的工作负担。它采用双数据口设计,其中一个数据口是并行式的数据输出入口,另一个是串行式的数据输出口。多用于高级显卡中的高档内存。 04.FPM DRAM(Fast Page Mode DRAM,快速页切换模式动态随机存取存储器) 改良版的DRAM,大多数为72Pin或30Pin的模块。传统的DRAM在存取一个BIT的数据时,必须送出行地址和列地址各一次才能读写数据。而FRM DRAM在触发了行地址后,如果CPU 需要的地址在同一行内,则可以连续输出列地址而不必再输出行地址了。由于一般的程序和数据在内存中排列的地址是连续的,这种情况下输出行地址后连续输出列地址就可以得到所需要的数据。FPM将记忆体内部隔成许多页数Pages,从512B到数KB不等,在读取一连续区域内的数据时,就可以通过快速页切换模式来直接读取各page内的资料,从而大大提高读取速度。在96年以前,在486时代和PENTIUM时代的初期,FPM DRAM被大量使用。 05.EDO DRAM(Extended Data Out DRAM,延伸数据输出动态随机存取存储器) 这是继FPM之后出现的一种存储器,一般为72Pin、168Pin的模块。它不需要像FPM DRAM 那样在存取每一BIT 数据时必须输出行地址和列地址并使其稳定一段时间,然后才能读写有效的数据,而下一个BIT的地址必须等待这次读写操作完成才能输出。因此它可以大大缩短等待输出地址的时间,其存取速度一般比FPM模式快15%左右。它一般应用于中档以下

两种常见的内存管理方法:堆和内存池

两种常见的内存管理方法:堆和内存池 本文导读 在程序运行过程中,可能产生一些数据,例如,串口接收的数据,ADC采集的数据。若需将数据存储在内存中,以便进一步运算、处理,则应为其分配合适的内存空间,数据处理完毕后,再释放相应的内存空间。为了便于内存的分配和释放,AWorks提供了两种内存管理工具:堆和内存池。 本文为《面向AWorks框架和接口的编程(上)》第三部分软件篇——第9章内存管理——第1~2小节:堆管理器和内存池。 本章导读 在计算机系统中,数据一般存放在内存中,只有当数据需要参与运算时,才从内存中取出,交由CPU运算,运算结束再将结果存回内存中。这就需要系统为各类数据分配合适的内存空间。 一些数据需要的内存大小在编译前可以确定。主要有两类:一类是全局变量或静态变量,这部分数据在程序的整个生命周期均有效,在编译时就为这些数据分配了固定的内存空间,后续直接使用即可,无需额外的管理;一类是局部变量,这部分数据仅在当前作用域中有效(如函数中),它们需要的内存自动从栈中分配,也无需额外的管理,但需要注意的是,由于这一部分数据的内存从栈中分配,因此,需要确保应用程序有足够的栈空间,尽量避免定义内存占用较大的局部变量(比如:一个占用数K内存的数组),以避免栈溢出,栈溢出可能破坏系统关键数据,极有可能造成系统崩溃。 一些数据需要的内存大小需要在程序运行过程中根据实际情况确定,并不能在编译前确定。例如,可能临时需要1K内存空间用于存储远端通过串口发过来的数据。这就要求系统具有对内存空间进行动态管理的能力,在用户需要一段内存空间时,向系统申请,系统选择一段合适的内存空间分配给用户,用户使用完毕后,再释放回系统,以便系统将该段内存空间回收再利用。在AWorks中,提供了两种常见的内存管理方法:堆和内存池。9.1 堆管理器

内存型号说明

Samsung 具体含义解释 主要含义: 第1位——芯片功能K,代表是内存芯片。 第2位——芯片类型4,代表DRAM。 第3位——芯片的更进一步的类型说明,S代表SDRAM、H代表DDR、G代表SGRAM 、T代表DDR2 DRAM、D表示GDDR1(显存颗粒)。 第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位数据。 第8位——为一个数字,表示内存的物理Bank,即颗粒的数据位宽,有3和4两个数字,分别表示4Banks和8Banks。对于内存而言,数据宽度×芯片数量=数据位宽。这个值可以是64或128,对应着这条内存就是1个或2个bank。例如256M内存32×4格式16颗芯片:4×16=64,双面内存单bank;256M内存 16M×16格式 8颗芯片:16×8=128,单面内存双bank。所以说单或双bank和内存条的单双面没有关系。另外,要强调的是主板所能支持的内存仅由主板芯片组决定。内存芯片常见的数据宽度有4、8、16这三种,芯片组对于不同的数据宽度支持的最大数据深度不同。所以当数据深度超过以上最大值时,多出的部分主板就会认不出了,比如把256M认成128M就是这个原因,但是一般还是可以正常使用。 第9位——由一个字符表示采用的电压标准,Q:SSTL-1.8V (1.8V,1.8V)。与DDR的2.5V电压相比,DDR2的1.8V是内存功耗更低,同时为超频留下更大的空间。 第10位——由一个字符代表校订版本,表示所采用的颗粒所属第几代产品,M 表示1st,A-F表示2nd-7th。目前,长方形的内存颗粒多为A、B、C三代颗粒,而现在主流的FBGA颗粒就采用E、F居多。靠前的编号并不完全代表采用的颗粒比较老,有些是由于容量、封装技术要求而不得不这样做的。 第11位——连线“-”。 第12位——由一个字符表示颗粒的封装类型,有G,S:FBGA(Leaded)、Z,Y:FBGA(Leaded-Free)。目前看到最多的是TSOP和FBGA两种封装,而FBGA是主流(之前称为mBGA)。其实进入DDR2时代,颗粒的封装基本采用FBGA了,因为TSOP封装的颗粒最高频率只支持到550MHz,DDR最高频率就只到400MHz,像DDR2 667、800根本就无法实现了。 第13位——由一个字符表示温控和电压标准,“C”表示Commercial Temp.( 0°C ~ 85°C) & Normal Power,就是常规的1.8V电压标准;“L”表示Commercial Temp.( 0°C ~ 85°C) & Low Power,是低电压版,适合超频,

动态分区式存储管理

可变分区存储管理 设计思路: 整体思路: 可变分区管理方式将内存除操作系统占用区域外的空间看做一个大的空闲区。当作业要求装入内存时,根据作业需要内存空间的大小查询内存中的各个 空闲区,当从内存空间中找到一个大于或等于该作业大小的内存空闲区时,选择其中一个空闲区,按作业需求量划出一个分区装人该作业,作业执行完后,其所占的内存分区被收回,成为一个空闲区。如果该空闲区的相邻分区也是空闲区,则需要将相邻空闲区合并成一个空闲区。 设计所才用的算法: 采用最优适应算法,每次为作业分配内存时,总是把既能满足要求、又是最小的空闲分区分配给作业。但最优适应算法容易出现找到的一个分区可能只比作业所需求的长度略大一点的情行,这时,空闲区分割后剩下的空闲区就很小以致很难再使用,降低了内存的使用率。为解决此问题,设定一个限值min size,如果空闲区的大小减去作业需求长度得到的值小于等于min size,不再将空闲区分成己分分区和空闲区两部分,而是将整个空闲区都分配给作业。 内存分配与回收所使用的结构体: 为便于对内存的分配和回收,建立两张表记录内存的使用情况。一张为记录作业占用分区的“内存分配表”,内容包括分区起始地址、长度、作业名/标志(为0时作为标志位表示空栏目);一张为记录空闲区的“空闲分区表”,内容包括分区起始地址、长度、标志(0表空栏目,1表未分配)。两张表都采用顺序表形式。 关于分配留下的内存小碎片问题: 当要装入一个作业时,从“空闲分区表”中查找标志为“ 1”(未分配)且满足作业所需内存大小的最小空闲区,若空闲区的大小与作业所需大小的差值小于或等于min size,把该分区全部分配给作业,并把该空闲区的标志改为“0”(空栏目)。同时,在已分配区表中找到一个标志为“ 0”的栏目登记新装人作业所占用分区的起始地址,长度和作业名。若空闲区的大小与作业所需大小的差值大于

内存数据库介绍

常用内存数据库介绍(一) 博客分类: 内存数据库 数据结构Oracle企业应用网络应用设计模式 (注:部分资料直接来源于Internet) 1. 内存数据库简介 1.1 概念 一、什么是内存数据库 传统的数据库管理系统把所有数据都放在磁盘上进行管理,所以称做磁盘数据库(DRDB:Disk-Resident Database)。磁盘数据库需要频繁地访问磁盘来进行数据的操作,由于对磁盘读写数据的操作一方面要进行磁头的机械移动,另一方面受到系统调用(通常通过CPU中断完成,受到CPU时钟周期的制约)时间的影响,当数据量很大,操作频繁且复杂时,就会暴露出很多问题。 近年来,内存容量不断提高,价格不断下跌,操作系统已经可以支持更大的地址空间(计算机进入了64位时代),同时对数据库系统实时响应能力要求日益提高,充分利用内存技术提升数据库性能成为一个热点。 在数据库技术中,目前主要有两种方法来使用大量的内存。一种是在传统的数据库中,增大缓冲池,将一个事务所涉及的数据都放在缓冲池中,组织成相应的数据结构来进行查询和更新处理,也就是常说的共享内存技术,这种方法优化的主要目标是最小化磁盘访问。另一种就是内存数据库 (MMDB:Main Memory Database,也叫主存数据库)技术,就是干脆重新设计一种数据库管理系统,对查询处理、并发控制与恢复的算法和数据结构进行重新设计,以更有效地使用CPU周期和内存,这种技术近乎把整个数据库放进内存中,因而会产生一些根本性的变化。两种技术的区别如下表:

内存数据库系统带来的优越性能不仅仅在于对内存读写比对磁盘读写快上,更重要的是,从根本上抛弃了磁盘数据管理的许多传统方式,基于全部数据都在内存中管理进行了新的体系结构的设计,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,从而使数据处理速度一般比传统数据库的数据处理速度快很多,一般都在10倍以上,理想情况甚至可以达到1000倍。 而使用共享内存技术的实时系统和使用内存数据库相比有很多不足,由于优化的目标仍然集中在最小化磁盘访问上,很难满足完整的数据库管理的要求,设计的非标准化和软件的专用性造成可伸缩性、可用性和系统的效率都非常低,对于快速部署和简化维护都是不利的。 2. 内存数据库历史和发展 一、雏形期 从上个世纪60年代末到80年代初。在这个时期中,出现了主存数据库的雏形。1969年IBM公司研制了世界上最早的数据库管理系统------基于层次模型的数据库管理系统IMS,并作为商品化软件投入市场。在设计IMS时,IBM考虑到基于内存的数据管理方法,相应推出了IMS/VS Fast Path。Fast Path是一个支持内存驻留

固定分区存储管理

理工大学信息工程与自动化学院学生实验报告 ( 2013 —2014 学年第一学期) 课程名称:操作系统开课实验室:信自楼444 2013年 11月28 日 注:报告容按下列的要求进行。 一、实验目的 通过编写固定分区存储管理的模拟程序,加深对操作系统存储管理功能中的固定分区管理方式、主存分配表等相应知识的理解。 通过编写和调试存储管理的模拟程序以加深对存储管理方案的理解,熟悉可变分区存储管理的存分配和回收。 二、实验题目 1.设计一个固定分区分配的存储管理方案。并模拟实现分区的分配和回收过程。 2.必须建立分区表,记录空闲区与占用区的状况。

本系统将存用户空间划分为五个大小不固定的分区,其分区大小由用户输入决定。在每个分区只装入一道作业,这样把用户空间划分为几个分区,便允许几道作业并发运行。当有一个空闲分区时,便可以从外存的后备队列中选择一个适当大小的作业装入该分区,当该作业结束时又可以从后备作业队列中找出另一作业调入该分区。 每个存空间是一个Node型的对象。Node类有一个三个参数的构造函数。分别为:分区号、起始地址、大小。然后就是一些属性的get、set方法和一个打印其属性的函数。四个数据域分别为:属性m_No用来表示该存空间的序号。属性m_Addr用来表示存分区的起始地址。属性m_Size用来表示存空间的大小。属性m_State表示存空间的是否已分配的状态标志。若该存空间已分配,m_TaskNo表示占有该存空间的任务序号。否则没有实际意义。 在用户申请任务的存空间时,提示用户输入任务号和其需要的存空间大小。 流程图 主程序:

释放存空间算法

内存条的种类

内存条的种类 老的内存有FPM、EDO、SDRM,后来的有DDR、DDR2、DDR3、RDRAM 目前能见到的内存有:SDR、DDR、DDR2 ,DDR3三类。比如说DDR 800后面所带的数字表示内存的频率,数字越高速度越快。 内存的价格非常不稳定,没办法讨论其性价比。 性能从低到高分别是:SDR DDR DDR2 DDR3 外观: SDR一般有两个缺口 DDR1的缺口比较靠外 DDR2的缺口比较靠中间 DDR2代和DDR3代的槽是一样的 其中DDR与DDR2的区别很不明显,DDR是184线接口,DDR2是240线接口,金手指比DDR的要密看标识,上面写的很清,下面用图片来直观的说一下其中的区别吧 延迟问题

在同等核心频率下,DDR2的实际工作频率是DDR的两倍。这得益于DDR2内存拥有两倍于标准DDR内存的4BIT预读取能力。换句话说,虽然DDR2和DDR一样,都采用了在时钟的上升延和下降延同时进行数据传输的基本方式,但DDR2拥有两倍于DDR的预读取系统命令数据的能力。也就是说,在同样100MHz的工作频率下,DDR的实际频率为200MHz,而DDR2则可以达到400MHz。 这样也就出现了另一个问题:在同等工作频率的DDR和DDR2内存中,后者的内存延时要慢于前者。举例来说,DDR 200和DDR2-400具有相同的延迟,而后者具有高一倍的带宽。实际上,DDR2-400和DDR 400具有相同的带宽,它们都是3.2GB/s,但是DDR400的核心工作频率是200MHz,而DDR2-400的核心工作频率是100MHz,也就是说DDR2-400的延迟要高于DDR400。 封装和发热量: 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 II通过调整上拉(pull-up)/下拉(pull-down)的电阻值使两者电压相等。使用OCD通过减少DQ-DQS的倾斜来提高信号的完整性;通过控制电压来提高信号品质。 ODT:ODT是内建核心的终结电阻器。我们知道使用DDR SDRAM的主板上面为了防止数据线终端反射信号需要大量的终结电阻。它大大增加了主板的制造成本。实际上,不同的内存模组对终结电路的要求是不一样的,终结电阻的大小决定了数据线的信号比和反射率,终结电阻小则数据线信号反射低但是信噪比也较低;终结电阻高,则数据线的信噪比高,但是信号反射也会增加。因此主板上的终结电阻并不能非常好的匹配内存模组,还会在一定程度上影响信号品质。DDR2可以根据自已的特点内建合适的终结电阻,这样可以保证最佳的信号波形。使用DDR2不但可以降低主板成本,还得到了最佳的信号品质,这是DDR不能比拟的。

内存种类与特点

1、FPM内存 FPM是Fast Page Mode(快页模式)的简称,是较早的PC机普遍使用的内存,它每隔3个时钟脉冲周期传送一次数据。现在早就被淘汰掉了。 2、EDO内存 EDO是Extended Data Out(扩展数据输出)的简称,它取消了主板与内存两个存储周期之间的时间间隔,每隔2个时钟脉冲周期传输一次数据,大大地缩短了存取时间,使存取速度提高30%,达到60ns。EDO内存主要用于72线的SIMM内存条,以及采用EDO内存芯片的PCI显示卡。这种内存流行在486以及早期的奔腾计算机系统中,它有72线和168线之分,采用5V工作电压,带宽32 bit,必须两条或四条成对使用,可用于英特尔430FX/430VX甚至430TX芯片组主板上。目前也已经被淘汰,只能在某些老爷机上见到。 3、SDRAM内存 SDRAM是Synchronous Dynamic Random Access Memory(同步动态随机存储器)的简称,是前几年普遍使用的内存形式。SDRAM采用3.3v工作电压,带宽64位,SDRAM将CPU与RAM通过一个相同的时钟锁在一起,使RAM和CPU能够共享一个时钟周期,以相同的速度同步工作,与EDO内存相比速度能提高50%。SDRAM基于双存储体结构,内含两个交错的存储阵列,当CPU从一个存储体或阵列访问数据时,另一个就已为读写数据做好了准备,通过这两个存储阵列的紧密切换,读取效率就能得到成倍的提高。SDRAM不仅可用作主存,在显示卡上的显存方面也有广泛应用。SDRAM曾经是长时间使用的主流内存,从430TX芯片组到845芯片组都支持SDRAM。但随着DDR SDRAM的普及,SDRAM 也正在慢慢退出主流市场。 4、RDRAM内存 RDRAM是Rambus Dynamic Random Access Memory(存储器总线式动态随机存储器)的简称,是Rambus公司开发的具有系统带宽、芯片到芯片接口设计的内存,它能在很高的频率范围下通过一个简单的总线传输数据,同时使用低电压信号,在高速同步时钟脉冲的两边沿传输数据。最开始支持RDRAM 的是英特尔820芯片组,后来又有840,850芯片组等等。RDRAM最初得到了英特尔的大力支持,但由于其高昂的价格以及Rambus公司的专利许可限制,一直未能成为市场主流,其地位被相对廉价而性能同样出色的DDR SDRAM迅速取代,市场份额很小。 5、DDR SDRAM内存 DDR SDRAM是Double Data Rate Synchronous Dynamic Random Access Memory(双数据率同步动态随机存储器)的简称,是由VIA等公司为了与RDRAM相抗衡而提出的内存标准。DDR

一种嵌入式系统的内存分配方案

一种嵌入式系统的内存分配方案 摘要:实时性、可靠性的要求,使得许多嵌入式应用使用自己的内存管理程序。本文探讨嵌入式系统中对内存管理的要求、存在的问题以及可能的解决策略;介绍一种“一次分配,多次使用”的动态内存分配方法,并给出2个例子。 关键词:嵌入式系统内存管理一次分配多次使用 1 嵌入式系统中对内存分配的要求 ①快速性。嵌入式系统中对实时性的保证,要求内存分配过程要尽可能地快。因此在嵌入式系统中,不可能采用通用操作系统中复杂而完善的内存分配策略,一般都采用简单、快速的内存分配方案。当然,对实性要求的程序不同,分配方案也有所不同。例如,VxWorks采用简单的最先匹配如立即聚合方法;VRTX中采用多个固定尺寸的binning方案。 ②可靠性。也就是内存分配的请求必须得到满足,如果分配失败可能会带来灾难性的后果。嵌入式系统应用的环境千变万化,其中有一些是对可靠性要求极高的。比如,汽车的自动驾驶系统中,系统检测到即将撞车,如果因为内存分配失败而不能相应的操作,就会发生车毁人亡的事故,这是

不能容忍的。 ③高效性。内存分配要尽可能地少浪费。不可能为了保证满足所有的内存分配请求而将内存配置得无限大。一方面,嵌入式系统对成本的要求使得内存在其中只是一种很有限的资源;另一方面,即使不考虑成本的因素,系统有限的空间和有限的板面积决定了可配置的内存容量是很限的。 静态分配与动态分配 究竟应用使用静态分配还是动态分配,一直是嵌入式系统设计中一个争论不休的总是。当然,最合适的答案是对于不同的系统采用不同的方案。如果是系统对于实时性和可靠性的要求极高,不能容忍一点延时或者一次分配失败,当然需要采用静态分配方案,也就是在程序编译时所需要的内存都已经分配好了。例如,火星探测器上面的嵌入式系统就必须采用静态分配的方案。另外,WindRiver公司的一款专门用于汽车电子和工业自动化领域的实时操作系统OSEKWorks中就不支持内存的动态分配。在这样的应用场合,成本不支持内存的动态分配。在这样的应用场合,成本不是优先考虑的对象,实时性和可靠性才是必须保证的。当然,采用静态分配一个不可避免的总是就是系统失去了灵活性,必须在设计阶段就预先知道所需要的内存并对之作出分配;必须在设计阶段就预先考虑到所有可能的情况,因为一旦出现没有考虑到的情况,系统就无法处理。这样的分配方

动态分区存储管理系统分解

操作系统原理 课程设计报告 题目:动态分区分配存储管理系统 所在学院:计算机科学与技术学院 班级: 11级计算机科学与技术(非师) 学号: 20111202052 姓名:吴创连 指导教师:黄侠剑 2014年3月18

目录 1 引言 (1) 2 需求分析 (1) 3 概要设计 (1) 4 详细设计 (1) 4.1问题描述和分析 (1) 4.2程序流程图 (2) 4.3数据结构体分析 (3) 4.4主要程序代码分析 (4) 5 调试与操作说明 (11) 5.1初始界面 (11) 5.2模拟内存分配 (12) 5.3回收内存界面 (12) 5.4最佳适应算法的实现 (13) 5.5最坏适应算法的实现 (13) 6总结与体会 (13)

1 引言 操作系统是最重要的系统软件,同时也是最活跃的学科之一。我们通过操作系统可以理解计算机系统的资源如何组织,操作系统如何有效地管理这些系统资源,用户如何通过操作系统与计算机系统打交道。 存储器是计算机系统的重要组成部分,近年来,存储器容量虽然一直在不断扩大,但仍不能满足现代软件发展的需要,因此,存储器仍然是一种宝贵而又紧俏的资源。如何对它加以有效的管理,不仅直接影响到存储器的利用率,而且还对系统性能有重大影响。而动态分区分配属于连续分配的一种方式,它至今仍在内存分配方式中占有一席之地。 2 需求分析 动态分区分配是根据进程的实际需要,动态地为之分配内存空间。在实现动态分区分配时,将涉及到分区分配中所用的数据结构、分区分配算法和分区的分配和回收操作这样三个问题。常用的数据结构有动态分区表和动态分区链。在对数据结构有一定掌握程度的情况下设计合理的数据结构来描述存储空间,实现分区存储管理的内存分配功能,应该选择最合适的适应算法(最佳适应算法,最坏适应算法),在动态分区存储管理方式中主要实现内存分配和内存回收算法,在这些存储管理中间必然会有碎片的产生,当碎片产生时,进行碎片的拼接等相关的内容。 3 概要设计 本程序采用机构化模块化的设计方法,共分为两大模块。 1.最佳适应算法实现 它从全部空闲区中找出能满足作业要求的、且大小最小的空闲分区,这种方法能使碎片尽量小。为适应此算法,空闲分区表(空闲区链)中的空闲分区要按从小到大进行排序,自表头开始查找到第一个满足要求的自由分区分配。 2.最坏算法实现 最坏适应分配算法要扫描整个空闲分区或链表,总是挑选一个最大的空闲分区分割给作业使用。该算法要求将所有的空闲分区按其容量从大到小的顺序形成一空闲分区链,查找时只要看第一个分区能否满足作业要求。 4 详细设计 4.1 问题描述和分析 系统应利用某种分配算法,从空闲分区链表中找到所需大小的分区,如果空闲分区大小

如何判断内存条类型

如何判断内存条类型 A部分标明的是生产此颗粒企业的名称——Hynix。B部分标明的是该内存模组的生产日期,以三个阿拉伯数字的形式表现。第一个阿拉伯数字表示生产的年份,后面两位数字表明是在该年的第XX周生产出来的。如上图中的517表示该模组是在05年的第17周生产的。 C部分表示该内存颗粒的频率、延迟参数。由1-3位字母和数字共同组成。其根据频率、延迟参数不同,分别可以用“D5、D43、D4、J、M、K、H、L”8个字母/数字组合来表示。其含义分别为D5代表DDR500(250MHz),延迟为3-4-4;D43代表DDR433(216MHz),延迟为3-3-3;D4代表DDR400(200MHz),延迟为3-4-4;J代表DDR333(166MHz),延迟为2.5-3-3;M代表DDR266(133MHz),延迟为2-2-2;K代表DDR266A(133MHz),延迟为2-3-3;H代表DDR266B (133MHz),延迟为2.5-3-3;L代表DDR200(100MHz),延迟为2-2-2。 D部分编号实际上是由12个小部分组成,分别表示内存模组的容量、颗粒的位宽、工作电压等信息。具体详细内容如图二所示。 D部分编号12个小部分分解示意图 采用现代颗粒的内存颗粒特写 第1部分代表该颗粒的生产企业。“HY”是HYNIX的简称,代表着该颗粒是现代生

产制造。第2部分代表产品家族,由两位数字或字母组成,“5D”表示为DDR内存,“57”表示为SDRAM内存。 第3部分代表工作电压,由一个字母组成。其中含义为V代表VDD=3.3V & VDDQ=2.5V; U代表VDD=2.5V & VDDQ=2.5V;W代表VDD=2.5V & VDDQ=1.8V;S代表VDD=1.8V & VDDQ=1.8V来分别代表不同的工作电压。 第4部分代表内存模组的容量和刷新设置,由两位数字或字母组成。对于DDR内存,分别由“64、66、28、56、57、12、1G”来代表不同的容量和刷新设置。其中含义为:64代表64MB容量,4K刷新;66代表64MB容量,2K刷新; 28代表128MB容量,4K刷新;56代表256MB容量,8K刷新;57代表256MB容量,4K刷新;12代表512MB容量,8K刷新;1G代表1GB容量,8K刷新。 第5部分代表该内存颗粒的位宽,由1个或2个数字组成。分为4种情况,分别用“4、8、16、32”来分别代表4bit、8bit、16bit和32bit。 第6部分表示的是Bank数,由1个数字组成。有三种情况,分别是“1”代表2 bank,“2”代表4 bank,“4”代表8 bank。 第7部分代表接口类型,由一个数字组成。分为三种情况,分别是“1”代表SSTL_3,“2”代表SSTL_2;“3”代表SSTL_18。 第8部分代表该颗粒的版本,由一个字母组成,这部分的字母在26个字母中的位

JVM内存分配(栈堆)与JVM回收机制

Java 中的堆和栈 简单的说: Java把内存划分成两种:一种是栈内存,一种是堆内存。 在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。 堆内存用来存放由new创建的对象和数组。 在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。 在堆中产生了一个数组或对象后,还可以在栈中定义一个特殊的变量,让栈中这个变量的取值等于数组或对象在堆内存中的首地址,栈中的这个变量就成了数组或对象的引用变量。 引用变量就相当于是为数组或对象起的一个名称,以后就可以在程序中使用栈中的引用变量来访问堆中的数组或对象。 具体的说: 栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 Java的堆是一个运行时数据区,类的(对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。 栈的优势是,存取速度比堆要快,仅次于寄存器,栈数据可以共享。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。栈中主要存放一些基本类型的变量(,int, short, long, byte, float, double, boolean, char)和对象句柄。 栈有一个很重要的特殊性,就是存在栈中的数据可以共享。假设我们同时定义: int a = 3; int b = 3; 编译器先处理int a = 3;首先它会在栈中创建一个变量为a的引用,然后查找栈中是否有3这个值,如果没找到,就将3存放进来,然后将a指向3。接着处理int b = 3;在创建完b的引用变量后,因为在栈中已经有3这个值,便将b直接指向3。这样,就出现了a与b同时均指向3的情况。这时,如果再令a=4;那么编译器会重新搜索栈中是否有4值,如果没有,则将4存放进来,并令a指向4;如果已经有了,则直接将a指向这个地址。因此a值的改变不会影响到b 的值。要注意这种数据的共享与两个对象的引用同时指向一个对象的这种共享是不同的,因为这种情况a的修改并不会影响到b, 它是由编译器完成的,它有利于节省空间。而一个对象引用变量修改了这个对象的内部状态,会影响到另一个对象引用变量。 String是一个特殊的包装类数据。可以用: String str = new String("abc"); String str = "abc"; 两种的形式来创建,第一种是用new()来新建对象的,它会在存放于堆中。每调用一次就会创建一个新的对象。 而第二种是先在栈中创建一个对String类的对象引用变量str,然后查找栈中有没有存放"abc",如果没有,则将"abc"存放进栈,并令str指向”abc”,如果已经有”abc”则直接令 str指向“abc”。 比较类里面的数值是否相等时,用equals()方法;当测试两个包装类的引用是否指向同一个对象时,用==,下面用例子说明上面的理论。 String str1 = "abc"; String str2 = "abc"; System.out.println(str1==str2); //true

JAVA虚拟机内存分配机制

JA V A虚拟机内存分配原则 Java把内存划分成两种:一种是栈内存,一种是堆内存。 在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。 堆内存用来存放由new创建的对象和数组。 在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。 在堆中产生了一个数组或对象后,还可以在栈中定义一个特殊的变量,让栈中这个变量的取值等于数组或对象在堆内存中的首地址,栈中的这个变量就成了数组或对象的引用变量。 引用变量就相当于是为数组或对象起的一个名称,以后就可以在程序中使用栈中的引用变量来访问堆中的数组或对象。 具体的说: 栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 Java的堆是一个运行时数据区,类的(对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的,Java 的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。 栈的优势是,存取速度比堆要快,仅次于寄存器,栈数据可以共享。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。栈中主要存放一些基本类型的变量(,int, short, long, byte, float, double, boolean, char)和对象句柄。 栈有一个很重要的特殊性,就是存在栈中的数据可以共享。假设我们同时定义: int a = 3; int b = 3;

JVM内存管理:深入垃圾收集器与内存分配策略

JVM内存管理:深入垃圾收集器与内存分配策略 https://www.wendangku.net/doc/af3372539.html, 时间:2010-11-20 作者:网络编辑:fnw 点击: 6 [ 评论] - - Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。 概述: 说起垃圾收集(Garbage Collection,下文简称GC),大部分人都把这项技术当做Java 语言的伴生产物。事实上GC的历史远远比Java来得久远,在1960年诞生于MIT的Lisp 是第一门真正使用内存动态分配和垃圾收集技术的语言。当Lisp还在胚胎时期,人们就在思考GC需要完成的3件事情:哪些内存需要回收?什么时候回收?怎么样回收? 经过半个世纪的发展,目前的内存分配策略与垃圾回收技术已经相当成熟,一切看起来都进入“自动化”的时代,那为什么我们还要去了解GC和内存分配?答案很简单:当需要排查各种内存溢出、泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就需要对这些“自动化”的技术有必要的监控、调节手段。 把时间从1960年拨回现在,回到我们熟悉的Java语言。本文第一章中介绍了Java内存运行时区域的各个部分,其中程序计数器、VM栈、本地方法栈三个区域随线程而生,随线程而灭;栈中的帧随着方法进入、退出而有条不紊的进行着出栈入栈操作;每一个帧中分配多少内存基本上是在Class文件生成时就已知的(可能会由JIT动态晚期编译进行一些优化,但大体上可以认为是编译期可知的),因此这几个区域的内存分配和回收具备很高的确定性,因此在这几个区域不需要过多考虑回收的问题。而Java堆和方法区(包括运行时常量池)则不一样,我们必须等到程序实际运行期间才能知道会创建哪些对象,这部分内存的分配和回收都是动态的,我们本文后续讨论中的“内存”分配与回收仅仅指这一部分内存。 对象已死? 在堆里面存放着Java世界中几乎所有的对象,在回收前首先要确定这些对象之中哪些还在存活,哪些已经“死去”了,即不可能再被任何途径使用的对象。 引用计数算法(Reference Counting) 最初的想法,也是很多教科书判断对象是否存活的算法是这样的:给对象中添加一个引用计数器,当有一个地方引用它,计数器加1,当引用失效,计数器减1,任何时刻计数器为0的对象就是不可能再被使用的。 客观的说,引用计数算法实现简单,判定效率很高,在大部分情况下它都是一个不错的算法,但引用计数算法无法解决对象循环引用的问题。举个简单的例子:对象A和B分别有字段b、a,令A.b=B和B.a=A,除此之外这2个对象再无任何引用,那实际上这2个对

固定分区存储管理

昆明理工大学信息工程与自动化学院学生实验报告 ( 2013 —2014 学年第一学期) 课程名称:操作系统开课实验室:信自楼444 2013年 11月28 日 注:报告内容按下列的要求进行。 一、实验目的 通过编写固定分区存储管理的模拟程序,加深对操作系统存储管理功能中的固定分区管理方式、主存分配表等相应知识的理解。 通过编写和调试存储管理的模拟程序以加深对存储管理方案的理解,熟悉可变分区存储管理的内存分配和回收。 二、实验题目 1.设计一个固定分区分配的存储管理方案。并模拟实现分区的分配和回收过程。

2.必须建立分区表,记录空闲区与占用区的状况。 3.流程图按选定的算法自己完成。 三、算法设计的思想或流程图 本系统将内存用户空间划分为五个大小不固定的分区,其分区大小由用户输入决定。在每个分区只装入一道作业,这样把用户空间划分为几个分区,便允许几道作业并发运行。当有一个空闲分区时,便可以从外存的后备队列中选择一个适当大小的作业装入该分区,当该作业结束时又可以从后备作业队列中找出另一作业调入该分区。 每个内存空间是一个Node型的对象。Node类有一个三个参数的构造函数。分别为:分区号、起始地址、大小。然后就是一些属性的get、set方法和一个打印其属性的函数。四个数据域分别为:属性m_No用来表示该内存空间的序号。属性m_Addr用来表示内存分区的起始地址。属性m_Size用来表示内存空间的大小。属性m_State表示内存空间的是否已分配的状态标志。若该内存空间已分配,m_TaskNo表示占有该内存空间的任务序号。否则没有实际意义。 在用户申请任务的内存空间时,提示用户输入任务号和其需要的内存空间大小。 流程图 主程序:

内存名称详解

内存名称详解 PC-66 这种内存使用66MHz的频率,而这也是第一代的SDR SDRAM内存。 PC-100 同样的,这种内存只是将工作频率提升到了100MHz,工作在CAS3模式下。 PC-133 这次改变还是只是将频率提升到133MHz,同样工作在CAS3模式下。 PC-150 这种内存并非官方发布的一个版本,而PC-150实际上就是一个超频版的内存。通常这种内存可以运行在150MHz频率CAS3模式或者是133MHz频率CAS2模式下,但是据说Corsair 的PC-150内存可以在150MHz 的频率下以CAS2的模式工作。 PC-166 另外一类超频内存,只是单纯的超频使得频率达到了一个新高点而已,仍然运行在CAS3之下。 PC-180 可以算作是另类的超频内存了,它简单的将频率提升到了180MHz,但是我个人认为这种内存没有实际使用的意义,因为毕竟现在DDR内存的价格已经是非常便宜了。 DDR SDRAM DDR内存按照速度分类就可以用两种方法来进行分类了。第一种就是以DDRXXX这种方式命名。后边的“XXX”就表示了这个内存是以两倍于XXX的速度运行的内存。另外一种就是以PCXXXX进行命名。后边的“XXXX”就是内存的带宽。 PC1600 此类DDR内存就是最早的一代DDR内存了。它的工作频率为200MH(由于是DDR内存,所以频率增加一倍,就是100MHz x2所以实际上这类内存是工作在200MHz的频率下的),而工作模式为CAS2.5。 DDR266/PC2100 现在最普遍见到的DDR内存,工作频率为266MHz,工作模式为CAS2.5。 PC2400 又是一个非官方版本的DDR内存。实际上就是通过对内存颗粒的筛选、改造而制造成质量上乘的超频DDR内存。这样,让它们可以在150MHz(实际使用中双倍变为300MHz)的频率下工作在CAS2的模式下。Corsair就是其中的一个厂商。 DDR333/PC2700 官方发布的一个DDR内存版本,通过将内存频率增加到166MHz DDR(实际工作中双倍变为333MHz)的CAS2.5模式,来提升系统性能。

4G内存条的终极解释

昨天刚换4G内存虽然是64BIT windows7 但是依然无法完全使用。可用内存只有3G。。。坛子上搜了不少帖子发现时主板问题。。 SIS671DX 号称支持4G内存的主板。。实际在操作系统里是无法完全使用的。。。内存映射PAE这些选项在笔记本主板里是没有的。。所以至今还是个无解的难题。 一下转载某人博客里的文章希望大家能深刻理解。。。 全面解析4GB内存无法识别问题 因为内存价格的持续走低,目前各大内存厂商相继推出了单条2GB的DDR2 800内存,这些内存给人最大的感觉就是价格便宜量又足。很多用户就直接买了两条2GB的内存,想组成双通道使用。可拿回家一看,原本4GB的内存容量被识别出来的只有3.2GB左右。通过检查,发现内存本身并没有问题。那又是什么吞食了你的内存呢?这就是我们本期将要给大家说清楚的一个问题。 800MB内存被吞食了 大家或许会发现一种很奇怪的现象,在我们的Windows XP和Vista中,安装4GB内存后,显示出来的只有3.2GB左右甚至更少,有800多MB的内存“无缘无故”地消失了,这让人感觉十分费解,主板和操作系统之所以不能使用全部的4GB内存,问题的根源就在于计算机那32位X86架构。32位X86架构是指个人电脑的地址总线是32位的,CPU、内存控制器、操作系统都是按32位地址总线设计。32位地址总线可以支持的内存地址代码是4096MB,也就是有4GB的地址代码,可以编4GB个地址。这4GB个地址码正好可以分配给4GB内存。但是,这4GB个地址码不能全部分配给安装在主板上的物理内存。因为个人电脑还有很多设备需要地址代码,以便CPU可以根据地址码找到它们,同时CPU和这些设备交换数据需要暂时存放数据的存储器——寄存器,这些寄存器也需要地址代码。比如硬盘控制器、软驱控制器、管理插在PCI槽上的PCI卡的PCI总线控制器,PCI-E总线控制器和PCI-E显卡,它们都有寄存器都需要系统分配给它们地址代码。这些地址由系统分配,电脑用户在使用中感觉不到。这样一来,当我们为电脑插上总容量为4GB的内存时,就有一部分内存分配不到地址代码而不能使用。 要深入了解4GB内存之谜,我们就得弄清楚各部件与4GB内存关系,其中涉及到的部件有CPU、内存控制器(Intel平台集成在北桥,AMD平台集成在CPU)和操作系统。CPU、内存控制器、BIOS:能支持4GB CPU能支持4GB内存 从386时代开始,CPU的地址总线就是32位的,可以访问4GB的地址代码。从奔腾Ⅱ到奔腾Ⅳ,理论上已经可以访问64GB的地址编码。后来支持64位架构的奔腾Ⅳ到现在的酷睿2,地址总线已经升级到64位,64位地址总线可以访问千亿GB的地址编码。实际上用不到这么多的地址总线,一般用42位足够了,可以编码的地址量有4TB。兼容64位架构的CPU 用在32位系统时地址总线就缩小为36位。所以现在的CPU支持4GB内存是没有问题的。

相关文档