第一篇:内存实用基础
对于电脑内存,可能大家都觉得内存影响不到游戏帧数,但这其实是非常片面的。举个例子,在玩绝地求生时,按下TAB键会卡顿或者游戏忽然掉帧,那就是内存不足导致的。下面就让小编带你去看看内存实用基础大全,希望能帮助到大家!
又到了学点内存知识的季节
什么是DDR?
DDR,全称:DDR SDRAM,Double Data Rate Synchronous Dynamic Random AccessMemary,即,双数据速率同步动态随机存取记忆体,也就是我们常用的内存,它从SDRAM的基础上发展起来,以后依次出现了DDR SDRAM、DDR2SDRAM、DDR3 SDRAM、DDR4 SDRAM。它们的能效不断提升。文章结尾附一张纯良心内存能效参数表。
DDR间有什么区别?
1、SDRAM
SDRAM内部组成如,可见其组成可以分为几个部分,存储阵列、IO门控单元、行列地址解码器、行列地址锁存器、逻辑控制单元(包含模式寄存器)、数据输入输出寄存器等。
存储矩阵内部结构,以8位内存单元为例,每个内存单元的数据输出是并联在一起,通过行列地址线选中一个存储单元,存储容量大小和数据位宽度、行地址、列地址、块数量等的关系:
单片容量(bit)=单片位宽×行数×列数×块数量
2、DDR SDRAM
DDR的内部结构与SDRAM相比,数据读写部分改进比较大。其一,使用了两位预读取的技术;其二,增加了DLL(delay lockloop演示锁定回路);其三,增加了数据掩码控制和数据总线反转控制;此外,时钟信号和数据选通信号改为差分信号。
3、DDR2 SDRAM
DDR2 SDRAM整体布局变化不大,在输入输出数据总线接口上变化比较多。
DDR2在DDR的基础上增加了ODT(on-dietermination片上终结,即通过内部逻辑选择合适的终端电阻进行匹配)功能,预读取提高到了4位,即每传输4个字节/字,只有第一个字节/字有潜伏期。
4、DDR3 SDRAM
DDR3 SDRAM在输入输出数据总线接口上继续提升性能,在存储结构上改进工艺,堆叠更多的存储块,提高单颗芯片的容量。
在功能上的改进有,增加了读写平衡功能。
5、DDR4 SDRAM
DDR4SDRAM在输入输出数据总线接口上继续改善性能,在存储结构上继续改进工艺,不仅堆叠更多的存储块,而且使用硅片穿孔工艺把把堆叠成的存储块进行并列放置,集中到一颗芯片中,提高单颗芯片的容量。
内存的一些简单入门知识
首先是大家都知道的,也是百度百科的资料,内存是什么?
内存条是连接CPU 和其他设备的通道,起到缓冲和数据交换作用。当CPU在工作时,需要从硬盘等外部存储器上读取数据,但由于硬盘这个“仓库”太大,加上离CPU也很“远”,运输“原料”数据的速度就比较慢,导致CPU的工作效率大打折扣!为了解决这个问题,人们便在CPU与外部存储器之间,建了一个“小仓库”——内存。
内存的特点是存储速度快。内存是电脑中的主要部件,它是相对于外存而言的。我们平常使用的程序,如QQ、浏览器、游戏,包括WINDOWS系统,一般都是安装在硬盘等外存上的,但仅此是不能使用其功能的,必须把它们调入内存中运行,才能真正使用其功能,我们平时输入一段文字,或玩一个游戏,其实都是在内存中进行的。就好比在一个书房里,存放书籍的书架或书柜相当于电脑的外存,而我们工作的办公室就是内存。通常我们把要永久保存的、大量的数据存在外存上,当然内存的好坏会直接影响电脑的运行速度。
内存的发展历史
内存分为DRAM和ROM两种,前者又叫动态随机存储器,它的一个主要特征是断电后数据会丢失,我们平时说的内存就是指这一种;后者又叫只读存储器,我们平时开机首先启动的是存于主板上ROM中的BIOS程序,然后再由它去调用硬盘中的Windows,ROM的一个主要特征是断电后数据不会丢失。
而我们平时所说的“内存条”则隶属于DRAM类别下的SDRAM家族。
第一代 SDR SDRAM
第二代 DDR SDRAM
第三代 DDR2 SDRAM
第四代 DDR3 SDRAM
第五代DDR4 SDRAM
我们现在常用的DDR4就是第五代内存了!
关于内存频率、时序还有电压的一些解释
所谓内存频率,就是我们经常说的某某品牌,DDR4 2133、2400、2666…等等,后面这些数字就是内存频率。
一般情况下,内存频率的高低,决定了内存性能的强弱。内存频率越高,内存带宽也就越高,正常工作的速度会更快。
关于内存时序,也就是我们在CPU-Z里面所看到的数字了。
内存时序是描述内存条性能的一种参数,一般存储在内存条的SPD中。这些参数设置的越小,内存处理数据越快,但是也越不稳定;反之较慢,但是稳定性提高,因此需要设置合适的内存时序。一般DDR42133的内存默认时序是15-15-15-35…
关于内存电压,每代内存电压都是有一个标准范围的。比如我们现在用的DDR4内存电压默认为1.2V,超频也最好不要超过1.5V;而DDR3的内存则是从1.5-2.0V;DDR2则是2V起步。
现在内存所支持的XMP是什么?
Intel XMP全名是Extreme Memory Profile,是针对DDR3模块而推出的一项认证。
其主要功能就是高阶的内存设定,内存厂商除了会在内存预设普通的SPD值外,另外亦会写入更为高速的设定。当然,厂商们可以任意替旗下的内存模块写进更加高速的设定,但这样就没有任何稳定性的保证及标准,所以业界便引入XMP设计。
XMP会在内存地址176-254中记录内存的速度,而最多可以保存2组的设定值。厂商们如需要得到XMP的认证,就必须把内存及该设定送交Intel测试,通过后就会给予认证。Intel推出这个标准,其主要用意是针对高效能市场,玩家使用具备了XMP的内存,就能够直接提升工作平台的效能。
内存时序和频率的一些问题?
这时候我们就需要举个例子了,以宇瞻黑豹DDR4 2400的内存和影驰名人堂HOF DDR4 2400内存来对比。
延迟对比:
宇瞻黑豹DDR4 2400 16-16-16-36 CL16 延迟计算(1/2400MHz)__16=6.67纳秒
宇瞻黑豹DDR4 2133 15-15-15-35 CL15 延迟计算(1/2400MHz)__15=6.25纳秒
然后计算带宽(按照双通道计算,内存带宽128bit):
2400 : 2400MHz__128bit/8= 38400MB/S
2133 : 2133MHz__128bit/8= 34128MB/S
内存延迟意味着内存的反应速度。我们知道,CPU读写内存的事情,首先是要告诉内存,要读写某个地址的数据,意味着CPU要先发送某个地址代码给内存,内存接收到后,编译准备好的这段时间为内存延迟时间。
当内存准备好了数据反馈给CPU,CPU开始读写内存,这时候,内存的带宽是主要作用,一直到数据传输完成,然后重复上一步操作,这就是内存和CPU的工作原理(简单通俗的讲,实际比这个复杂多了)
所以我们可以分两种情况,当CPU读写内存数据量很大,而且是连续的时候,内存带宽影响最大;当CPU读写的内存数据非常零碎,且零碎数据很多,这时候的低延迟的内存速度回更快。
这也解释了核显对于双通道高频内存的需求,图形数据一般都是大量并且连续的,AMD的APU需要高频双内存的原理,就是这么来的。
关于内存超频的一些问题
内存超频跟内存颗粒的体制是肯定有最为直接的关系的。然后还有就是主板bios的设计、主板bios的优化水平,CPU集成的内存控制器等等原因,都是有影响的!
我们所看到某些支持XMP内存和主板,在某种程度上,可以认为是厂商预先保留的超频选择,直接在bios开启即实现超频。
当然,我们普通的内存一样是可以超频的,具体要看实际平台和内存等等来操作,基本原理也就是时序、频率和电压了,每个人的情况都不一样,需要自己去调试才行。
好了,今天的每日一荐到此结束,临时洋洋洒洒写了1900个字,明天还不知道写啥,希望大家给我一些建议和提示!
内存知识详解:接口类型
接口类型,是根据内存条金手指上导电触片的数量来划分的。金手指上的导电触片,也习惯称为针脚数(Pin)。因为不同的内存采用的接口类型各不相同,而每种接口类型所采用的针脚数各不相同。笔记本内存一般采用144Pin、200Pin 接口;台式机内存则基本使用 168Pin 和184Pin接口。对应于内存所采用的不同针脚数,内存插槽类型也各不相同。目前,台式机系统主要有 SIMM、DIMM 和 RIMM 三种类型的内存插槽,而笔记本内存插槽则是在SIMM 和 DIMM 插槽基础上发展而来,基本原理并没有变化,只是在针脚数上略有改变。
1、金手指
金手指(connectingfinger)是内存条上与内存插槽之间的连接部件,所有的信号都是通过金手指进行传送的。金手指由众多金黄色的导电触片组成,因其表面镀金而且导电触片排列如手指状,所以称为“金手指”。金手指实际上是在覆铜板上通过特殊工艺再覆上一层金,因为金的抗氧化性极强,而且传导性也很强。不过,因为金昂贵的价格,目前较多的内存都采用镀锡来代替。从上个世纪90年代开始,锡材料就开始普及,目前主板、内存和显卡等设备的“金手指”,几乎都是采用的锡材料,只有部分高性能服务器/工作站的配件接触点,才会继续采用镀金的做法,价格自然不菲。
内存的金手指
内存处理单元的所有数据流、电子流,正是通过金手指与内存插槽的接触与 PC系统进行交换,是内存的输出输入端口。因此,其制作工艺,对于内存连接显得相当重要。
2、内存插槽
最初的计算机系统,通过单独的芯片安装内存,那时内存芯片都采用 DIP(Dual ln-line Package,双列直插式封装)封装,DIP芯片是通过安装在插在总线插槽里的内存卡与系统连接,此时还没有正式的内存插槽。DIP芯片有个最大的问题,就在于安装起来很麻烦,而且随着时间的增加,由于系统温度的反复变化,它会逐渐从插槽里偏移出来。随着每日频繁的计算机启动和关闭,芯片不断被加热和冷却,慢慢地芯片会偏离出插槽。最终导致接触不好,产生内存错误。
内存插槽
早期还有另外一种方法,是把内存芯片直接焊接在主板或扩展卡里,这样有效避免了 DIP芯片偏离的问题,但无法再对内存容量进行扩展,而且如果一个芯片发生损坏,整个系统都将不能使用,只能重新焊接一个芯片或更换包含坏芯片的主板。此种方法付出的代价较大,也极为不便。
对于内存存储器,大多数现代的系统,都已采用单列直插内存模块(Single Inline MemoryModule,SIMM)或双列直插内存模块(Dual Inline MemoryModule,DIMM)来替代单个内存芯片。这些小板卡插入到主板或内存卡上的特殊连接器里。
3、内存模块
1)SIMM
SIMM(Single Inline MemoryModule,单列直插内存模块)。内存条通过金手指与主板连接,内存条正反两面都带有金手指。金手指可以在两面提供不同的信号,也可以提供相同的信号。SIMM就是一种两侧金手指都提供相同信号的内存结构,它多用于早期的 FPM 和 EDD DRAM,最初一次只能传输 8bif 数据,后来逐渐发展出16bit、32bit 的 SIMM 模组。其中,8bit 和 16bit SIMM 使用 30pin 接口,32bit 的则使用72pin接口。在内存发展进入 SDRAM 时代后,SIMM 逐渐被 DIMM 技术取代。
2)DIMM
DIMM(Dual Inline Memory Module,双列直插内存模块)。与 SIMM 相当类似,不同的只是 DIMM 的金手指两端,不像SIMM 那样是互通的,它们各自独立传输信号。因此,可以满足更多数据信号的传送需要。同样采用 DIMM,SDRAM 的接口与 DDR内存的接口也略有不同,SDRAMDIMM 为 168Pin DIMM 结构,金手指每面为84Pin,金手指上有两个卡口,用来避免插入插槽时,错误将内存反向插入而导致烧毁;
DDR DIMM则采用 184Pin DIMM 结构,金手指每面有 92Pin,金手指上只有一个卡口。卡口数量的不同,是二者最为明显的区别。DDR2DIMM 为240pinDIMM 结构,金手指每面有 120Pin,与 DDR DIMM 一样金手指一样,也只有一个卡口,但是卡口的位置与 DDR DIMM稍微有一些不同。因此,DDR 内存是插不进 DDR2 DIMM 的,同理 DDR2 内存也是插不进 DDR DIMM 的。因此,在一些同时具有 DDR DIMM和 DDR2 DIMM 的主板上,不会出现将内存插错插槽的问题。
不同针脚 DIMM 接口对比。为了满足笔记本电脑对内存尺寸的要求,SO-DIMM(Small Outline DIMMModule)也开发了出来,它的尺寸比标准的 DIMM 要小很多,而且引脚数也不相同。同样 SO-DIMM 也根据 SDRAM 和 DDR内存规格不同而不同。SDRAM 的 SO-DIMM 只有 144pin引脚,而DDR 的 SO-DIMM 拥有 200pin 引脚。此外,笔记本内存还有MicroDIMM 和 Mini Registered DIMM 两种接口。MicroDIMM 接口的DDR 为 172pin,DDR2 为214pin;Mini Registered DIMM 接口为 244pin,主要用于 DDR2 内存。
3)RIMM
RIMM(Rambus Inline Memory Module)是 Rambus 公司生产的 RDRAM 内存所采用的接口类型。RIMM 内存与DIMM 的外型尺寸差不多,金手指同样也是双面的。RIMM 有也 184 Pin 的针脚,在金手指的中间部分有两个靠的很近的卡口。RIMM 非 ECC 版有16 位数据宽度,ECC 版则都是 18 位宽。由于 RDRAM 内存较高的价格,此类内存在 DIY 市场很少见到,RIMM 接口也就难得一见了。
第二篇:内存序列号识别
内存序列号
从PC100标准开始内存条上带有SPD芯片,SPD芯片是内存条正面右侧的一块8管脚小芯片,里面保存着内存条的速度、工作频率、容量、工作电压、CAS、tRCD、tRP、tAC、SPD版本等信息。当开机时,支持SPD功能的主板BIOS就会读取SPD中的信息,按照读取的值来设置内存的存取时间。我们可以借助SiSoft Sandra2001这类工具软件来查看SPD芯片中的信息,例如软件中显示的SDRAM PC133U-333-542就表示被测内存的技术规范。
内存技术规范统一的标注格式,一般为PCx-xxx-xxx,但是不同的内存规范,其格式也有所不同。
1、PC66/100 SDRAM内存标注格式
(1)1.0---1.2版本
这类版本内存标注格式为:PCa-bcd-efgh,例如PC100-322-622R,其中a表示标准工作频率,用MHZ表示(如66MHZ、100MHZ、133MHZ等);b表示最小的CL(即CAS纵列存取等待时间),用时钟周期数表示,一般为2或3;c表示最少的Trcd(RAS相对CAS的延时),用时钟周期数表示,一般为2;d表示TRP(RAS的预充电时间),用时钟周期数表示,一般为2;e表示最大的tAC(相对于时钟下沿的数据读取时间),一般为6(ns)或6。5,越短越好;f表示SPD版本号,所有的PC100内存条上都有EEPROM,用来记录此内存条的相关信息,符合Intel PC100规范的为1。2版本以上;g代表修订版本;h代表模块类型;R代表DIMM已注册,256MB以上的内存必须经过注册。
(2)1.2b+版本
其格式为:PCa-bcd-eeffghR,例如PC100-322-54122R,其中a表示标准工作频率,用MHZ表示;b表示最小的CL(即CAS纵列存取等待时间),用时钟周期数表示,一般为2或3;c表示最少的Trcd(RAS相对CAS的延时),用时钟周期数表示;d表示TRP(RAS的预充电时间),用时钟周期数表示;ee代表相对于时钟下沿的数据读取时间,表达时不带小数点,如54代表5.4ns tAC;ff代表SPD版本,如12代表SPD版本为1.2;g代表修订版本,如2代表修订版本为1.2;h代表模块类型;R代表DIMM已注册,256MB以上的内存必须经过注册。
2、PC133 SDRAM(版本为2.0)内存标注格式
威盛和英特尔都提出了PC133 SDRAM标准,威盛力推的PC133规范是PC133 CAS=3,延用了PC100的大部分规范,例如168线的SDRAM、3.3V的工作电压以及SPD;英特尔的PC133规范要严格一些,是PC133 CAS=2,要求内存芯片至少7.5ns,在133MHz时最好能达到CAS=2。
PC133 SDRAM标注格式为:PCab-cde-ffg,例如PC133U-333-542,其中a表示标准工作频率,单位MHZ;b代表模块类型(R代表DIMM已注册,U代表DIMM不含缓冲区;c表示最小的CL(即CAS的延迟时间),用时钟周期数表示,一般为2或3;d表示RAS相对CAS的延时,用时钟周期数表示;e表示RAS预充电时间,用时钟周期数表示;ff代表相对于时钟下沿的数据读取时间,表达时不带小数点,如54代表5.4ns tAC;g代表SPD版本,如2代表SPD版本为2.0。
3、PC1600/2100 DDR SDRAM(版本为1.0)内存标注格式
其格式为:PCab-ccde-ffg,例如PC2100R-2533-750,其中a表示内存带宽,单位为MB/s;a*1/16=内存的标准工作频率,例如2100代表内存带宽为2100MB/s,对应的标准工作频率为2100*1/16=133MHZ;b代表模块类型(R代表DIMM已注册,U代表DIMM不含缓冲区;cc表示CAS延迟时间,用时钟周期数表示,表达时不带小数点,如25代表CL=2.5;d表示RAS相对CAS的延时,用时钟周期数表示;e表示RAS预充电时间,用时钟周期数表示;ff代表相对于时钟下沿的数据读取时间,表达时不带小数点,如75代表7.5ns tAC;g代表SPD版本,如0代表SPD版本为1.0。
4、RDRAM 内存标注格式
其格式为:aMB/b c d PCe,例如256MB/16 ECC PC800,其中a表示内存容量;b代表内存条上的内存颗粒数量;c代表内存支持ECC;d保留;e代表内存的数据传输率,e*1/2=内存的标准工作频率,例如800代表内存的数据传输率为800Mt/s,对应的标准工作频率为800*1/2=400MHZ。
5、各厂商内存芯片编号
内存打假的方法除了识别内存标注格式外,还可以利用刻在内存芯片上的编号。内存条上一般有多颗内存芯片,内存芯片因为生产厂家的不同,其上的编号也有所不同。
由于韩国HY和SEC占据了世界内存产量的多半份额,它们产的内存芯片质量稳定,价格不高,另外市面上还流行LGS、Kingmax、金邦金条等内存,先来看看它们的内存芯片编号。
(1)HYUNDAI(现代)
现代的SDRAM内存兼容性非常好,支持DIMM的主板一般都可以顺利的使用它,其SDRAM芯片编号格式为:HY 5a b cde fg h i j k lm-no
其中HY代表现代的产品;5a表示芯片类型(57=SDRAM,5D=DDRSDRAM);b代表工作电压(空白=5V,V=3.3V,U=2.5V);cde代表容量和刷新速度(16=16Mbits、4K Ref,64=64Mbits、8K Ref,65=64Mbits、4K Ref,128=128Mbits、8K Ref,129=128Mbits、4K Ref,256=256Mbits、16K Ref,257=256Mbits、8K Ref);fg代
表芯片输出的数据位宽(40、80、16、32分别代表4位、8位、16位和32位);h代表内存芯片内部由几个Bank组成(1、2、3分别代表2个、4个和8个Bank,是2的幂次关系);I代表接口(0=LVTTL〔Low Voltage TTL〕接口);j代表内核版本(可以为空白或A、B、C、D等字母,越往后代表内核越新);k代表功耗(L=低功耗芯片,空白=普通芯片);lm代表封装形式(JC=400mil SOJ,TC=400mil TSOP-II,TD=13mm TSOP-II,TG=16mm
TSOP-II);no代表速度(7=7ns〔143MHz〕,8=8ns〔125MHz〕,10p=10ns〔PC-100 CL2或3〕,10s=10ns〔PC-100 CL3〕,10=10ns〔100MHz〕,12=12ns〔83MHz〕,15=5ns〔66MHz〕)。
例如HY57V658010CTC-10s,HY表示现代的芯片,57代表SDRAM,65是64Mbit和4K refresh cycles/64ms,8是8位输出,10是2个Bank,C是第4个版本的内核,TC是400mil TSOP-Ⅱ封装,10S代表CL=3的PC-100。
市面上HY常见的编号还有HY57V65XXXXXTCXX、HY57V651XXXXXATC10,其中ATC10编号的SDRAM上133MHz相当困难;编号ATC8的可超到124MHz,但上133MHz也不行;编号BTC或-
7、-10p的SDRAM上133MHz很稳定。一般来讲,编号最后两位是7K的代表该内存外频是PC100,75的是PC133的,但现代内存目前尾号为75的早已停产,改
换为T-H这样的尾号,可市场上PC133的现代内存尾号为75的还有很多,这可能是以前的屯货,但可能性很小,假货的可能性较大,所以最好购买T-H尾号的PC133现代内存。
(2)LGS〔LG Semicon〕
LGs如今已被HY兼并,市面上LGs的内存芯片也很常见。
LGS SDRAM内存芯片编号格式为:GM72V ab cd e 1 f g T hi
其中GM代表LGS的产品;72代表SDRAM;ab代表容量(16=16Mbits,66=64Mbits);cd表示数据位宽(一般为4、8、16等);e代表Bank(2=2个Bank,4=4个Bank);f表示内核版本,至少已排到E;g代表功耗(L=低功耗,空白=普通);T代表封装(T=常见的TSOPⅡ封装,I=BLP封装);hi代表速度(7.5=7.5ns〔133MHz〕,8=8ns〔125MHz〕,7K=10ns〔PC-100 CL2或3〕,7J=10ns〔100MHz〕,10K=10ns〔100MHz〕,12=12ns〔83MHz〕,15=15ns〔66MHz〕)。
例如GM72V661641CT7K,表示LGs SDRAM,64Mbit,16位输出,4个Bank,7K速度即PC-100、CL=3。
LGS编号后缀中,7.5是PC133内存;8是真正的8ns PC 100内存,速度快于7K/7J;7K和7J属于PC 100的SDRAM,两者主要区别是第三个反应速度的参数上,7K比7J的要快,上133MHz时7K比7J更稳定;10K属于非PC100规格的,速度极慢,由于与7J/7K外型相似,不少奸商把它们冒充7J/7K的来卖。
(3)Kingmax(胜创)
Kingmax的内存采用先进的TinyBGA封装方式,而一般SDRAM内存都采用TSOP封装。采用TinyBGA封装的内存,其大小是TSOP封装内存的三分之一,在同等空间下TinyBGA封装可以将存储容量提高三倍,而且体积要小、更薄,其金属基板到散热体的最有效散热路径仅有0.36mm,线路阻抗也小,因此具有良好的超频性能和稳定性,不过Kingmax内存与主板芯片组的兼容性不太好,例如Kingmax PC150内存在某些KT133主板上竟然无法开机。
Kingmax SDRAM内存目前有PC150、PC133、PC100三种。其中PC150内存(下图)实际上是能上150外频且能稳定在CL=3(有些能上CL=2)的极品PC133内存条,该类型内存的REV1.2版本主要解决了与VIA 694X芯片组主板兼容问题,因此要好于REV1.1版本。购买Kingmax内存时,你要注意别买了打磨条,市面上JS常把原本是8ns的Kingmax PC100内存打磨成7ns的PC133或PC150内存,所以你最好用SISOFT SANDRA2001等软件测试一下内存的速度,注意观察内存上字迹是否清晰,是否有规则的刮痕,芯片表面是否发白等,看看芯片上的编号。
KINGMAX PC150内存采用了6纳秒的颗粒,这使它的速度得到了很大程度的提升,即使你用它工作在PC133,其速度也会比一般的PC133内存来的快;Kingmax的PC133内存芯片是-7的,例如编号KSV884T4A1A-07;而PC100内存芯片有两种情况:部分是-8的(例如编号KSV884T4A0-08),部分是-7的(例如编号KSV884T4A0-07)。其中KINGMAXPC133与PC100的区别在于:PC100的内存有相当一部分可以超频到133,但不是全部;而PC133的内存却可以保证100%稳定工作在PC133外频下(CL=2)。
(4)Geil(金邦、原樵风金条)
金邦金条分为“金、红、绿、银、蓝”五种内存条,各种金邦金
条的SPD均是确定的,对应不同的主板。其中红色金条是PC133内存;金色金条P针对PC133服务器系统,适合双处理器主板;绿色金条是PC100内存;蓝A色金条针对AMD750/760 K7系主板,面向超频玩家;蓝V色金条针对KX133主板;蓝T色金条针对KT-133主板;银色金条是面向笔记本电脑的PC133内存。
金邦内存芯片编号例如GL2000 GP 6 LC 16M8 4 TG-7 AMIR 00 32
其中GL2000代表芯片类型(GL2000=千禧条TSOPs即小型薄型封装,金SDRAM=BLP);GP代表金邦科技的产品;6代表产品家族(6=SDRAM);LC代表处理工艺(C=5V Vcc CMOS,LC=0.2微米3.3V Vdd CMOS,V=2.5V Vdd CMOS);16M8是设备号码(深度*宽度,内存芯片容量 = 内存基粒容量 * 基粒数目 = 16 * 8 =128Mbit,其中16 = 内存基粒容量;8 = 基粒数目;M = 容量单位,无字母=Bits,K=KB,M=MB,G=GB);4表示版本;TG是封装代码(DJ=SOJ,DW=宽型SOJ,F=54针4行FBGA,FB=60针8*16 FBGA,FC=60针11*13 FBGA,FP=反转芯片封装,FQ=反转芯片密封,F1=62针2行FBGA,F2=84针,2行FBGA,LF=90针FBGA,LG=TQFP,R1=62针2行微型FBGA,R2=84针2行微型FBGA,TG=TSOP(第二代),U=μ BGA);-7是存取时间(7=7ns(143MHz));AMIR是内部标
识号。以上编号表示金邦千禧条,128MB,TSOP(第二代)封装,0.2微米3.3V Vdd CMOS制造工艺,7ns、143MHz速度。
(5)SEC(Samsung Electronics,三星)
三星EDO DRAM内存芯片编号例如KM416C254D表示:KM表示三星内存;4代表RAM种类(4=DRAM);16代表内存芯片组成x16(1=x1[以1的倍数为单位]、4=x4、8=x8、16=x16);C代表电压(C=5V、V=3.3V);254代表内存密度256Kbit(256[254] =256Kx、512(514)= 512Kx、1 = 1Mx、4 = 4Mx、8 = 8Mx、16 =16Mx);D代表内存版本(空白=第1代、A=第2代、B=第3代、C=第4代、D=第5代)即三星256Kbit*16=4Mb内存。
三星SDRAM内存芯片编号例如KM416S16230A-G10表示:KM表示三
星内存;4代表RAM种类(4=DRAM);16代表内存芯片组成x16(4 = x4、8 = x8、16 =x16);S代表SDRAM;16代表内存芯片密度16Mbit(1 = 1M、2 = 2M、4 = 4M、8 =8M、16 = 16M);2代表刷新(0 = 4K、1 = 2K、2 = 8K);3表示内存排数(2=2排、3=4排);0代表内存接口(0=LVTTL、1=SSTL);A代表内存版本(空白=第1代、A=第2代、B=第3代);G代表电源供应(G=自动刷新、F=低电压自动刷新);10代表最高频率(7 =7ns[143MHz]、8 = 8ns[125 MHz]、10 = 10ns[100 MHz]、H = 100MHz @ CAS值为
2、L=100 MHz @ CAS值为3)。三星的容量需要自己计算一下,方法是用“S”后的数字乘S前的数字,得到的结果即为容量,即三星16M*16=256Mbit SDRAM内存芯片,刷新为8K,内存Banks为3,内存接口LVTTL,第2代内存,自动刷新,速度是
10ns(100 MHz)。
三星PC133标准SDRAM内存芯片格式如下:
Unbuffered型:KMM3 xx s xxxx BT/BTS/ATS-GA Registered型:KMM3 90 s xxxx BTI/ATI-GA
三星DDR同步DRAM内存芯片编号例如KM416H4030T表示:KM表示三星内存;4代表RAM种类(4=DRAM);16表示内存芯片组成x16(4=x4、8=x8、16=x16、32=x32);H代表内存电压(H=DDR SDRAM[3.3V]、L=DDR SDRAM[2.5V]);4代表内存密度4Mbit(4=4M、8 = 8M、16 = 16M、32 = 32M、64 = 64M、12 = 128M、25 =
256M、51 = 512M、1G = 1G、2G = 2G、4G = 4G);0代表刷新(0 = 64m/4K [15.6μs]、1 = 32m/2K
[15.6μs]、2 = 128m/8K[15.6μs]、3 = 64m/8K[7.8μs]、4 =128m/16K[7.8μs]);3表示内存排数(3=4排、4=8排);0代表接口电压(0=混合接口LVTTL+SSTL_3(3.3V)、1=SSTL_2(2.5V));T表示封装类型(T=66针
TSOP II、B=BGA、C=微型BGA(CSP));Z代表速度133MHz(5 = 5ns, 200MHz(400Mbps)、6 = 6ns,166MHz(333Mbps)、Y = 6.7ns, 150MHz(300Mbps)、Z = 7.5ns,133MHz(266Mbps)、8 = 8ns, 125MHz(250Mbps)、0 = 10ns, 100MHz(200Mbps))。即三星4Mbit*16=64Mbit内存芯片,3.3V DDR SDRAM,刷新时间0 = 64m/4K
(15.6μs),内存芯片排数为4排(两面各两排),接口电压LVTTL+SSTL_3(3.3V),封装类型66针TSOP II,速度133MHZ。
三星RAMBUS DRAM内存芯片编号例如KM418RD8C表示:KM表示三星内存;4代表RAM种类(4=DRAM);18代表内存芯片组成x18(16 = x16、18 = x18);RD表示产品类型(RD=Direct RAMBUS DRAM);8代表内存芯片密度8M(4 = 4M、8 =8M、16 = 16M);C代表封装类型(C = 微型BGA、D =微型BGA [逆转CSP]、W = WL-CSP);80代表速度(60 = 600Mbps、80 = 800Mbps)。即三星8M*18bit=144M,BGA封装,速度800Mbps。
(6)Micron(美光)
Micron公司是世界上知名内存生产商之一(如右图Micron PC143 SDRAM内存条),其SDRAM芯片编号格式为:MT48 ab cdMef Ag TG-hi j
其中MT代表Micron的产品;48代表产品家族(48=SDRAM、4=DRAM、46=DDR SDRAM、6=Rambus);ab代表处理工艺(C=5V Vcc CMOS,LC=3.3V Vdd CMOS,V=2.5V Vdd CMOS);cdMef设备号码(深度*宽度),无字母=Bits,K=Kilobits(KB),M=Megabits(MB),G=Gigabits(GB)Mricron的容量=cd*ef;ef表示数据位宽(4、8、16、32分别代表4位、8位、16位和32位);Ag代表Write Recovery〔Twr〕(A2=Twr=2clk);TG代表封装(TG=TSOPII封装,DJ=SOJ,DW=宽型SOJ,F=54针4行FBGA,FB=60针8*16 FBGA,FC=60针11*13 FBGA,FP=反转芯片封装,FQ=反转芯片密封,F1=62针2行FBGA,F2=84针2行FBGA,LF=90针FBGA,LG=TQFP,R1=62针2行微型
FBGA,R2=84针2行微型FBGA,U=μ BGA);j代表功耗(L=低耗,空白=普通);hj代表速度,分成以下四类:(A)、DRAM-4=40ns,-5=50ns,-6=60ns,-7=70ns SDRAM,x32 DDR SDRAM(时钟率 @ CL3)-15=66MHz,-12=83MHz,-10+=100MHz,-8x+=125MHz,-75+=133MHz,-7x+=143MHz,-65=150MHz,-6=167MHz,-55=183MHz,-5=200MHzDDR SDRAM(x4,x8,x16)时钟率 @ CL=2.5,-8+=125MHz,-75+=133MHz,-7+=143MHz
(B)、Rambus(时钟率)
-4D=400MHz 40ns,-4C=400MHz 45ns,-4B=400MHz 50ns,-3C=356MHz 45ns,-3B=356MHz 50ns,-3M=300MHz 53ns+的含义-8E支持PC66和PC100(CL2和CL3)-75支持PC66、PC100(CL2和CL3)、PC133(CL=3)、-7支持PC66、PC100(CL2和CL3)、PC133(CL2和CL3)-7E支持PC66、PC100(CL2和CL3)、PC133(CL2+和CL3)
(C)、DDR SDRAM
-8支持PC200(CL2)-75支持PC200(CL2)和PC266B(CL=2.5)-7支持PC200(CL2),PC266B(CL2),PC266A(CL=2.5)。例如MT 48 LC 16M8 A2 TG-75 L _ ES表示美光的SDRAM,16M8=16*8MB=128MB,133MHz
(7)其它内存芯片编号
NEC的内存芯片编号例如μPD4564841G5-A80-9JF表示:μPD4代表NEC的产品;5代表SDRAM;64代表容量64MB;8表示数据位宽(4、8、16、32分别代表4位、8位、16位、32位,当数据位宽为16位和32位时,使用两位);4代表Bank数(3或4代表4个Bank,在16位和32位时代表2个Bank;2代表2个Bank);1代表LVTTL(如为16
位和32位的芯片,则为两位,第2位双重含义,如1代表2个Bank和LVTTL,3代表4个Bank和LVTTL);G5为TSOPII封装;-A80代表速度:在CL=3时可工作在125MHZ下,在100MHZ时CL可设为2(80=8ns〔125MHz CL 3〕,10=10ns〔PC100 CL 3〕,10B=10ns较10慢,Tac为7,不完全符合PC100规范,12=12ns,70=[PC133],75=[PC133]);JF代表封装外型(NF=44-pinTSOP-II;JF=54-pin TSOPII;JH=86-pin TSOP-II)。
HITACHI的内存芯片编号例如HM5264805F-B60表示:HM代表日立的产品;52是SDRAM类型(51=EDO DRAM,52=SDRAM);64代表容量64MB;80表示数据位宽(40、80、16分别代表4位、8位、16位);5F表示是第几个版本的内核(现在至少已排到“F”了);空白表示功耗(L=低功耗,空白=普通);TT为TSOII封装;B60代表速度(75=7.5ns〔133MHz〕,80=8ns〔125MHz〕,A60=10ns〔PC-100 CL2或3〕,B60=10ns〔PC-100 CL3〕即100MHZ时CL是3)。
SIEMENS(西门子)内存芯片编号格式为:HYB39S ab cd0 e T f-gh 其中ab为容量,gh是速度(6=166MHz,7=143MHz,7.5=133MHz,8=125MHz,8B=100MHz〔CL3〕,10=100MHz〔PC66规格〕)。
TOSHIBA的内存芯片编号例如TC59S6408BFTL-80表示:TC代表是东芝的产品;59代表SDRAM(其后的S=普通SDRAM,R=Rambus SDRAM,W=DDR SDRAM);64代表容量(64=64Mb,M7=128Mb);08表示数据位宽(04、08、16、32分别代表4位、8位、16位和32位);B表示内核的版本;FT为TSOPII封装(FT后如有字母L=低功耗,空白=普通);80代表速度(75=7.5ns〔133MHz〕,80=8ns〔125MHz〕,10=10ns〔100MHz CL=3〕)。
IBM的内存芯片编号例如IBM0316809CT3D-10,其中IBM代表IBM的产品;03代表SDRAM;16代表容量16MB;80表示数据位宽(40、80、16分别代表4、8、16位);C代表功耗(P=低功耗,C=普通);D表示内核的版本;10代表速度(68=6.8ns〔147MHz〕,75A=7.5NS〔133MHz〕,260或222=10ns〔PC100 CL2或3〕,360或322=10ns〔PC100 CL3〕,B版的64Mbit芯片中,260和360在CL=3时的标定速度为:135MHZ,10=10NS〔100MHz〕。
第三篇:电脑内存基础知识[范文模版]
内存是计算机的“灵魂”部件之一,被称为内存储器或主存储器用于暂时存放CPU的运算数据以及CPU与硬盘等外部存储的交换数据。下面就让小编带你去看看电脑内存基础知识大全,希望能帮助到大家!
你的真知识在内存
互联网时代是信息爆炸的时代。每天雅的俗的,真的假的,荤的素的,正面的负面的…各种消息、信息、故事……如潮水般通过网络涌来,让人应接不暇。夹杂着堕落的文化,贪婪与自私,金钱与欲望的搅动,整个社会更加浮躁。这些年好像能够安心读书的人越来越少,认真思考问题的人也越来越少。一些人更喜欢“知识的快餐”、“信息的方便面”。须知它们可以使大脑虚胖,但却缺乏有价值的营养。
个人成长需要读书,社会进步需要学习!
信息不能代替知识,看手机不能代替读书,一般浏览不能真正掌握知识。手机、电脑、书本里的知识属于“外存”,它们不属于你或不完全属于你。只有你自己大脑记住甚至掌握的知识才真正属于你。大脑中的财富是你的“内存”,要有真知识就需要内存,需要不断加大内存。
什么是内存?在计算机结构中,一个很重要的部分就是存储器。存储器按其用途可分为主存储器和辅助存储器,主存储器又称内存储器(简称内存),辅助存储器又称外存储器(简称外存)。内存与CPU(中央处理器,是一台计算机的运算核心和控制核心。)内存与CPU直接沟通。一般情况下计算机的运行主要是依靠内存的数据和程序,以保证它的快速运转和正常工作。而外存需要调入才能使用,调动外存就会延缓计算机的运行速度。
对于人来讲,自己大脑也包括思维和控制部分,这相当于电脑的CPU;也有存储知识和信息的部分,这相当于电脑的内存。而手机、电脑、书本报纸存储的知识则是我们的外存。通常情况下,人们的思维和判断就是对内存知识的组织、加工和运用,这种能力的大小很大程度上取决于内存的容量和储存的信息资料的质量。
内存的知识是你形成思想、作出判断、表达意识的原材料,是你智慧的基础,也是你外在气质的基础。内存达不到一定的数量和质量就不可能有成熟、正确和快速的反应、思考和判断。如果内存不足甚至你连寻找外存的关键词和索引都不具备,那么你如何能够进行快速的反应、思考和判断呢。
一个人的水平高低、气质俗雅、知识渊博还是肤浅主要取决于他的“内存”容量和质量。除非为了写文章,或为了专门的需要,通常你不会用到外存的。
通常人们内存的知识来自两方面,一是上学读书的积累,另一个是自己校外的读书、摄取和积累。一个知识渊博的人,大部分的知识应来自校外的读书和摄取,校内学习和积累的知识只是你内存的基础和框架。
读书是加大内存的主要途径。许多时候,自己以为许多看过的书籍都成了过眼云烟,不复记忆,其实他们仍是潜在的,在气质里,在谈吐上,在胸襟的无涯,当然也可能显露在生活和文字里。读书的最大理由是摆脱平庸,早一天读就多一份人生的精彩;迟一天读就多一天平庸的困扰。
读书重点内容要多读几遍,要抄写整理,要背下来,要想加大内存一定要背记,除此之外,没有更好的窍门和方法。文史哲方面至少要背几百首经典诗词文章,要记下几百个经典历史典籍、历史人物、历史故事、古今中外著名的哲学家和哲学观点。数理化要在理解的基础上背熟元素周期表,物理的定律及其理论,还要背熟大量相关数据。
总之要使自己知识渊博,要使自己思想深邃,要使自己聪明能干,要使自己有气质不凡,就一定加大自己的“内存”,要加大内存就一定要多读书,要背要记,在这方面没有捷径。
程序员必须知悉的内存知识
其实组装电脑整机,在选配电脑硬件的过程中,最容易选择的莫过于内存条了。毕竟内存条并不是很复杂,只要清楚自己的主板是DDR3,还是DDR4的内存接口,就可以选择了。不过,有不少人由于对内存条的了解不够多。往往在选配内存条时,还是会出现很多的问题,还是纠结在内存容量、内存频率上,从而选配内存条时不知如何下手。
DDR4内存条
其实,只要在平时注意了解下内存条一些简单的知识,在选购内存时,想要选购到一条适合自己使用的内存条,并不困难。如果你是一个电脑小白的,就赶紧看过来吧,最简单的内存选配知识送给你。
DDR3和DDR4怎么区别选择
按照目前来说,如今装机的主流内存都是以DDR4为主,全新的电脑主机,基本上都不会有选择组装DDR3的配置硬件。除非是一些网上选购的电脑主机,可能还有DDR3在组装,但是可能只有小白的才会入坑。
内存条区别
不过,还有一些用户在使用的前几年的电脑,可能还会使用DDR3内存的电脑,在一定程度上,可能还需要升级内存的。这就需要先确认自己电脑主板支持的是DDR3还是DDR4,再根据内存条型号需求进行升级内存条。在通常情况下,主板上DDR4还是DDR3内存,需要看主板插槽类型。在主板上插槽标注1.2V就是DDR4内存,如果标注1.5V就是DDR3内存。
根据个人需求选配内存容量
可以说,内存条的内存容量,是很多人在选配内存条时重要依据。可能也是大众比较熟悉,也比较容量接受的观点,在选购时直接说容量,别的不在乎。
目前主流内存容量是8G,对于日常办公娱乐的用户来说,8G的内存已经足够满足日常需求。当然也会有人追求高性能体验,也可以根据自己的需求安装16G的内存条。
DDR4 2400 8G内存条
如果说是专业玩家的平台,至少也需要安装32G的内存条。但并不是说内存容量越大越好,这就要看个人需求,来选择合适自己使用内存容量,不能盲目地去选择。
内存频率够用就好
相对来说,相同代数和容量的内存情况下,内存条的频率越高,性能就越好,电脑系统运行速度就越快。但也不能一味地追求高频率的内存条,如果说你的主板不支持高内存频率,那也是一点作用都没有。
至于内存频率要选择多大频率,个人认为只要够用就好。在目前的电脑硬件市上,DDR3内存条的主流频率是1600MHz频率,DDR4内存条主流是2400MHz频率。
DDR4 内存条
虽然也有DDR4 3000/4000MHz甚至更高的内存频率,但是从性能性价比上来讲,通常情况下 DDR42400/2666Mhz的内存频率,已足够满足日常的电脑使用需求了。
篇后总结
简而言之,内存条的选择在于个人电脑使用需求,根据自己的主板型号,以及电脑的工作需要来选定内存的容量和频率,只要够用就好。
金士顿内存条
在内存条的品牌商选择上,尽量选择比较常用的知名品牌,比如金士顿、威刚、宇瞻、海盗船、芝奇等等。这样的话,在质量、稳定性和售后服务上都有一定保障,也用得放心一些。
原来内存插法也有讲究
双通道内存平台
主流平台一般都支持双通道内存模式,例如目前流行的AMD AM4平台和IntelLGA1151平台,这类主板一般都提供两条或四条内存插槽,玩家可以使用两条或四条内存来组建双通道系统。当然,也可以插一条内存来组建单通道内存系统,或是三条内存组建弹性双通道系统。
如果是把内存插满,那自然就不用考虑插哪个插槽的问题,双插槽问题也不大,我们主要考虑四插槽的情况。一般来说,玩家在插内存的时候可能会理所当然地优先选择靠近处理器的插槽,但实际上这样并不是最好的方案。兼容性最好的插法是单条内存插第二条插槽,两条内存插第二和第四条插槽。为什么要这样插?这是由主板上的布线设计决定的,当然,你要随便插也不是不能用,但在一些主板上就有一定几率遇到奇怪的兼容问题,例如需要开两次机才能启动、莫名重启、无法使用__MP等等。
四通道内存平台
Intel和AMD的高端发烧级平台都支持四通道,例如__99、__299和__399。这些主板根据板型大小一般会提供四条或八条内存插槽(部分只支持Corei7 7740__和Core i5 7640__的__299主板虽然提供了四条内存插槽,但只支持双通道模式)。
不过,就算是发烧级土豪玩家,也很少把8条内存插槽插满(除非有使用超大内存的特别需求),因为这样会影响内存超频的上限,一般插四条组建四通道内存就可以达到频率和通道数的最佳平衡了。
那么在八条内存插槽中插内存应该怎样插才是最佳方案呢?这类高端主板的八条内存插槽一般会分两组排列在处理器插座的两侧,总的来说就是双通道平台的插法再“镜像”一遍就可以了,下面来详细介绍一下。
当只使用一条内存时,插在靠近主板24pin电源插座这一侧的第二条插槽上;增加到两条内存时,就在处理器插座另一侧“镜像”的插座上再加一条;增加到四条时,就插在处理器两侧内存插槽对应的二和四号插槽上;增加到六条时,插在处理器两侧的1、2、4号插槽上。不建议使用除这些组合之外的内存数量,那会影响系统的内存兼容性和性能。
总结:安装前仔细看主板说明书,可以避免很多问题
实际上,最佳的内存安装方案和内存兼容性列表在主板说明书上都会标明(一线主板厂商会提供得更完整,甚至还会列出不同内存数量对应的极限频率),所以在安装之间多读一下主板说明书可以避免很多奇怪的问题。此外,如果纸质说明书不慎丢失,也可以上主板厂商官网下载电子版进行查阅。
电脑内存基础知识大全
第四篇:党员档案内存材料
党员档案内存材料
确 定 积 极 分 子 阶 段 每年年底积极分子与发展对象要备案
发展党员工作原则上当年11月15日之前完成15日内报上级党委审批
企业党委12月15日之前审批完。
基层党组织因特殊原因,年内需增加或减少党员发展计划的,需于9月1日前向工委组织部提出书面申请。
1.入党申请书(个人写)
思想汇报(可有,个人写,提交入党申请书之后写)
2.(支部)公推积极分子会议记录(党员大会记录)(党群写)(每半年组织公推)(递交申请书一年后成为积极分子,一年这个时间不做硬性规定)
4.入党积极分子考察表(1-2年,每半年填一次)(积极分子个人+2个培养人+党支部写)
5.支委会研究确定发展对象会议记录(党群写)(入党积极分子与发展对象比例3:1)入党积极分子培养满一年后方可列为发展对象。未经备案不可发展。
6.对发展对象的公示(通过公开栏、板报等张榜公示,7天)
党员发展对象公示情况反馈表(党群写)(盖公司章,交企业党委预审盖章)XX全区党员发展对象集中培训情况通报(可有)(每年上半年)
关于反馈XX年发展对象培训情况及下达发展党员计划的通知(可有)(及时补考,未通过考试的发展对象,当年不得发展对党
7.劳动合同复印件(人资部提供)
8.政审证明材料(配偶,双方父母等党组织所在地或街道居委会所在地盖党组织章)(个人提供)
9.党支部政审综合考察材料(支部书记写)
10.对发展党员的公示(可有)(党群写)
发展党员公示情况反馈表(公司章+去企业党委审批盖章)(党群写)
发展党员预审表
11.审批后领取入党志愿书(个人+介绍人/一般是培养人+党支部+党委+企党填)
12.接收发展对象为预备党员的支部党员大会会议记录(全体党员参加)
13.支部大会召开后填写好入党申请书中党支部和党委意见,15日内报企业党委审批。
14.组织预备党员宣誓。
预备党员转正阶段15.党员转正申请(个人写)
16.预备党员考察表(半年一写写一年)(个人+介绍人+党群写)(公章)
预备期也延长一次,不少于半年,最长不超过一年.17.党员转正公示
预备党员转正公示情况反馈表
18.党员转正会议记录(党群写)
19.填写入党申请书最后一页(党群写)
20.党员大会后15日报企业党委审批
21.企业党委审批后,有人事档案的存入人事档案,没有的,建立党员档案,由所在党委保存。
第五篇:内存申请释放
1.内存分配方式
内存分配方式有三种:
[1]从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。
[2]在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。
[3]从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。动态内存的生存期由程序员决定,使用非常灵活,但如果在堆上分配了空间,就有责任回收它,否则运行的程序会出现内存泄漏,频繁地分配和释放不同大小的堆空间将会产生堆内碎块。
2.程序的内存空间
一个程序将操作系统分配给其运行的内存块分为4个区域,如下图所示。
一个由C/C++编译的程序占用的内存分为以下几个部分,1、栈区(stack)—由编译器自动分配释放,存放为运行函数而分配的局部变量、函数参数、返回数据、返回地址等。其操作方式类似于数据结构中的栈。
2、堆区(heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。分配方式类似于链表。
3、全局区(静态区)(static)—存放全局变量、静态数据、常量。程序结束后由系统释放。
4、文字常量区 —常量字符串就是放在这里的。程序结束后由系统释放。
5、程序代码区—存放函数体(类成员函数和全局函数)的二进制代码。
下面给出例子程序,int a = 0;//全局初始化区
char *p1;//全局未初始化区
int main(){
int b;//栈
char s[] = “abc”;//栈
char *p2;//栈
char *p3 = “123456”;//123456在常量区,p3在栈上。
static int c =0;//全局(静态)初始化区
p1 = new char[10];
p2 = new char[20];
//分配得来得和字节的区域就在堆区。
strcpy(p1, “123456”);//123456放在常量区,编译器可能会将它与p3所指向的“123456”优化成一个地方。}
3.堆与栈的比较
3.1申请方式
stack: 由系统自动分配。例如,声明在函数中一个局部变量 int b;系统自动在栈中为b开辟空间。heap: 需要程序员自己申请,并指明大小,在C中malloc函数,C++中是new运算符。
如p1 =(char *)malloc(10);p1 = new char[10];
如p2 =(char *)malloc(10);p2 = new char[20];
但是注意p1、p2本身是在栈中的。
3.2申请后系统的响应
栈:只要栈的剩余空间大于所申请空间,系统将为程序提供内存,否则将报异常提示栈溢出。
堆:首先应该知道操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,会遍历该链
表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删除,并将该结点的空间分配给程序。
对于大多数系统,会在这块内存空间中的首地址处记录本次分配的大小,这样,代码中的delete语句才能正确的释放本内存空间。
由于找到的堆结点的大小不一定正好等于申请的大小,系统会自动的将多余的那部分重新放入空闲链表中。
3.3申请大小的限制
栈:在Windows下,栈是向低地址扩展的数据结构,是一块连续的内存的区域。这句话的意思是栈顶的地址和栈的最大容量是系统预先规定好的,在 WINDOWS下,栈的大小是2M(也有的说是1M,总之是一个编译时就确定的常数),如果申请的空间超过栈的剩余空间时,将提示overflow。因 此,能从栈获得的空间较小。
堆:堆是向高地址扩展的数据结构,是不连续的内存区域。这是由于系统是用链表来存储的空闲内存地址的,自然是不连续的,而链表的遍历方向是由低地址向高地址。堆的大小受限于计算机系统中有效的虚拟内存。由此可见,堆获得的空间比较灵活,也比较大。
3.4申请效率的比较
栈由系统自动分配,速度较快。但程序员是无法控制的。
堆是由new分配的内存,一般速度比较慢,而且容易产生内存碎片,不过用起来最方便。
另外,在WINDOWS下,最好的方式是用VirtualAlloc分配内存,他不是在堆,也不是栈,而是直接在进程的地址空间中保留一快内存,虽然用起来最不方便。但是速度快,也最灵活。
3.5堆和栈中的存储内容
栈:在函数调用时,第一个进栈的是主函数中后的下一条指令(函数调用语句的下一条可执行语句)的地址,然后是函数的各个参数,在大多数的C编译器中,参数是由右往左入栈的,然后是函数中的局部变量。注意静态变量是不入栈的。
当本次函数调用结束后,局部变量先出栈,然后是参数,最后栈顶指针指向最开始存的地址,也就是主函数中的下一条指令,程序由该点继续运行。
堆:一般是在堆的头部用一个字节存放堆的大小。堆中的具体内容有程序员安排。
3.6存取效率的比较
char s1[] = “a”;
char *s2 = “b”;
a是在运行时刻赋值的;而b是在编译时就确定的;但是,在以后的存取中,在栈上的数组比指针所指向的字符串(例如堆)快。比如:
int main(){
char a = 1;
char c[] = “1234567890”;
char *p =“1234567890”;
a = c[1];
a = p[1];
return 0;
}
对应的汇编代码
10: a = c[1];
00401067 8A 4D F1 mov cl,byte ptr [ebp-0Fh]
0040106A 88 4D FC mov byte ptr [ebp-4],cl
11: a = p[1];
0040106D 8B 55 EC mov edx,dword ptr [ebp-14h]
00401070 8A 42 01 mov al,byte ptr [edx+1]
00401073 88 45 FC mov byte ptr [ebp-4],al
第一种在读取时直接就把字符串中的元素读到寄存器cl中,而第二种则要先把指针值读到edx中,再根据edx读取字符,显然慢了。来源:考试大-计算机二级考试