关于内存详细说明
- 格式:docx
- 大小:82.25 KB
- 文档页数:4
内存芯片参数介绍具体含义解释:例: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乘。
本内容来源于@什么值得买APP,观点仅代表作者本人 |作者:电脑叫兽一、读懂内存命名很多电脑小白在看到内存名字的时候都一脸懵逼,一长串的名字只能看懂品牌名。
后面的“DDR4、3200”等参数,根本看不懂。
我们以芝奇皇家戟这根内存为例,其名为“芝奇皇家戟DDR4 3600 32GB”。
“芝奇”相信大家都知道,是这根内存条的名字。
“皇家戟”则是芝奇品牌下的一个系列,除了“皇家戟”之外,还有“幻光戟”、“焰光戟”等。
不一样的系列命名,不同的系列名称也代表着不同的市场定位。
“DDR4”的意思是第四代DDR内存,选购内存时要选择跟主板内存接口类型相同的内存,DDR3内存与DDR4内存的接口是不一样的。
像“2666”、“3000”、“3200”等数字,代表着内存频率,单位为MHz。
数字越大,代表着内存速度越快,性能也就越高。
最后的“xx GB”,代表内存的容量。
二、内存跟硬盘的差别上面我们了解完内存了,可能还会有很多人有疑问。
为什么一块500GB的固态硬盘卖五六百,而一根16GB的内存条也能卖五六百?2.1 原理上的区别内存,即内部存储器。
内存是计算机系统中硬盘数据和CPU数据交换的中转站,属于临时存储器。
内存上的电容是会缓慢放电的,放电到一定程度就会导致数据发生变化,这也是关机断电后会导致内存中数据丢失的原因。
而硬盘,属于外出存储器,它可以长期的存储数据,不受断电的影响,存储容量大。
2.2 功能上的区别在功能上,我们可以把内存条看成一个连接CPU与硬盘的“中介”。
比如我们打开Photoshop这款软件,首先是内存从硬盘中读取Photoshop这款软件的文件,写入到硬盘当中。
因为内存的读写速度要比硬盘快的多,所以CPU会跟内存进行数据的交换,而不是跟硬盘进行数据交换。
2.3 速度上的区别下图是同一台电脑硬盘跟内存的读写速度跑分图,图上可以看到内存的读写性能是硬盘的二三十倍。
(作图为硬盘跑分,右图为内存跑分)三、内存条的组成内存中最重要的元件就是颗粒,就是下图中黑色的小方块。
内存知识内存颗粒编号,内存知识具体含义解释:例:samsungk4h280838b-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片samsungk4h280838b-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内存。
高手进阶,终极内存技术指南——完整/进阶版作为电脑中必不可少的三大件之一(其余的两个是主板与CPU),内存是决定系统性能的关键设备之一,它就像一个临时的仓库,负责数据的中转、暂存……不过,虽然内存对系统性能的至关重要,但长期以来,DIYer并不重视内存,只是将它看作是一种买主板和CPU时顺带买的“附件”,那时最多也就注意一下内存的速度。
这种现象截止于1998年440BX主板上市后,PC66/100的内存标准开始进入普通DIYer的视野,因为这与选购有着直接的联系。
一时间,有关内存时序参数的介绍文章大量出现(其中最为著名的恐怕就是CL参数)。
自那以后,DIYer才发现,原来内存也有这么多的学问。
接下来,始于 2000年底/2001年初的VIA芯片组4路交错(4-Way Interleave)内存控制和部分芯片组有关内存容量限制的研究,则是深入了解内存的一个新开端。
本刊在2001年第2期上也进行了VIA内存交错控制与内存与模组结构的详细介绍,并最终率先正确地解释了这一类型交错(内存交错有多种类型)的原理与容量限制的原因。
从那时起,很多关于内存方面的深入性文章接踵而至,如果说那时因此而掀起了一股内存热并不夸张。
大量的内存文章让更多的用户了解了内存,以及更深一层的知识,这对于DIY当然是一件好事情。
然而,令人遗憾的是这些所谓的内存高深技术文章有不少都是错的(包括后来的DDR与RDRAM内存的介绍),有的甚至是很低级的错误。
在这近两年的时间里,国内媒体上优秀的内存技术文章可谓是寥若晨星,有些媒体还编译国外DIY网站的大篇内存文章,但可惜的是,外国网站也不见得都是对的(这一点,似乎国内很多作者与媒体似乎都忽视了)。
就这样,虽然打开了一个新的知识领域,可“普及”的效果并不那么好,很多媒体的铁杆读者高兴地被带入内存深层世界,但也因此被引向了新的误区。
不过,从这期间(2001年初至今)各媒体读者对这类文章的反映来看,喜欢内存技术的玩家大有人在且越来越多,这是各媒体“培养”的成果。
DB2的参数配置说明DB2是一种关系型数据库管理系统(RDBMS),它支持在各种计算环境中存储、操作和检索数据。
在使用DB2时,通过合理的参数配置可以提高数据库的性能和可靠性。
以下是关于DB2参数配置的详细说明。
1.内存参数配置:1.1DB2_MEM_PERCENT:指定了DB2实例可使用的内存百分比,默认值为100。
可以根据实际情况调整此参数,以确保系统有足够的内存资源运行DB21.2DB2_MAX_IOSERVERS:指定了DB2实例可以使用的最大IO服务器数目,默认值为10。
可以根据服务器的硬件配置和负载情况调整此参数,以获得更好的IO性能。
1.3DB2_MAX_MEMORY:指定了DB2实例可以使用的最大内存量,默认为系统可用内存的一半。
可以根据系统的内存情况和负载调整此参数,以提高数据库的性能。
2.查询优化参数配置:2.1DB2_PARALLEL_IO:指定是否允许并行IO,默认为OFF。
可以在高负载环境下启用此参数,以提高查询性能。
2.2DB2_PARALLELISM:指定了DB2查询的并行度,默认为1、可以根据系统的CPU核心数和负载情况调整此参数,以提高查询的并行执行能力。
2.3DB2_STMT_CONC:指定了单个DB2会话中并行执行的最大语句数目,默认为1、可以根据系统的负载情况调整此参数,以提高并行执行的效率。
3.缓存参数配置:3.1DB2_NUM_IOSERVERS:指定了DB2实例可以使用的IO服务器数目,默认为10。
可以根据服务器硬件配置和负载情况调整此参数,以提高IO性能。
3.2DB2_NUM_CHEKBUFFERS:指定了每个缓冲池中的检查缓冲区数目,默认为100。
可以根据系统的内存情况和负载调整此参数,以提高缓存的性能。
3.3DB2_LOGFILSIZ:指定了每个日志文件的大小,默认为64MB。
可以根据系统的IO性能和重做日志的生成速度调整此参数,以避免日志文件的频繁切换。
计算机小白内存基础知识扫盲对于电脑内存,可能大家都觉得内存影响不到游戏帧数,但这其实是非常片面的。
举个例子,在玩绝地求生时,按下TAB键会卡顿或者游戏忽然掉帧,那就是内存不足导致的。
下面就让小编带你去看看计算机小白内存基础知识扫盲,希望能帮助到大家!涨知识!原来内存插法也有讲究双通道内存平台主流平台一般都支持双通道内存模式,例如目前流行的AMD AM4平台和Intel LGA1151平台,这类主板一般都提供两条或四条内存插槽,玩家可以使用两条或四条内存来组建双通道系统。
当然,也可以插一条内存来组建单通道内存系统,或是三条内存组建弹性双通道系统。
如果是把内存插满,那自然就不用考虑插哪个插槽的问题,双插槽问题也不大,我们主要考虑四插槽的情况。
一般来说,玩家在插内存的时候可能会理所当然地优先选择靠近处理器的插槽,但实际上这样并不是最好的方案。
兼容性最好的插法是单条内存插第二条插槽,两条内存插第二和第四条插槽。
为什么要这样插?这是由主板上的布线设计决定的,当然,你要随便插也不是不能用,但在一些主板上就有一定几率遇到奇怪的兼容问题,例如需要开两次机才能启动、莫名重启、无法使用XMP等等。
四通道内存平台Intel和AMD的高端发烧级平台都支持四通道,例如X99、X299和X399。
这些主板根据板型大小一般会提供四条或八条内存插槽(部分只支持Core i7 7740X和Core i5 7640X的X299主板虽然提供了四条内存插槽,但只支持双通道模式)。
不过,就算是发烧级土豪玩家,也很少把8条内存插槽插满(除非有使用超大内存的特别需求),因为这样会影响内存超频的上限,一般插四条组建四通道内存就可以达到频率和通道数的最佳平衡了。
那么在八条内存插槽中插内存应该怎样插才是最佳方案呢?这类高端主板的八条内存插槽一般会分两组排列在处理器插座的两侧,总的来说就是双通道平台的插法再“镜像”一遍就可以了,下面来详细介绍一下。
DDR1 DDR2 二合一内存维修卡DDR2 版利用说明利用文档:该内存维修卡采纳PCI接口,通过搭配INTEL915系列主板,能够测试DDR2内存条的好坏,并能精准指出内存条上坏IC 所在的位置,是内存条测试和维修的好帮手。
一:系统要紧组成部份及用法二:维修卡的五种工作模式三:如何开始测试四:维修卡错误代码说明五:注册方式六:问题和解答一内存维修工具DDR2内存测试/检测卡内存测试仪一:系统要紧组成部份四个七段数码管,一个5X8 显示阵列,一个推按式开关,一个绿色指示灯。
1)七段数码管用来显示内存M 数在内存测试进程中,每测完1M,数码管就会显示相对应的M 数。
2)开关用来选择进入维修卡测试模式(该功能保留,不作利用)。
3)5X8 显示阵列第一和第二行,每一行上的8 个灯别离用来代表内存条上的IC。
用户能够依照这些指示灯的情形快速地找出内存条上犯错的IC 所在位置。
a)关于双面条:第一行显示待测内存条的正面,第二行显示待测内存条的反面。
b )关于单面条:第一行不利用,第二行显示待测内存条的正面。
4)5X8 显示阵列第三行该行保留,不作利用。
5)5X8 显示阵列第四行,当插在主板上作为宜的标准条犯错的时候,会显示在这一行。
利用那个功能,能够在没有好的内存条的情形下快速定位一些内存IC 短路,假焊引发问题。
6)5X8 显示阵列第五行,左侧四个灯显示内存条的工作频率:亮1/2/3 个指示灯,别离表示266/333/400MHZ。
右边四个灯显示CPU 的总线频率:亮1/2/3 个指示灯,别离表示400/533/800MHZ。
二:维修卡的五种工作模式维修卡有多种工作模式,包括内存快速,慢速测试模式,电脑开机测试模式,测试完成后自动关机模式。
1)测试维修模式该模式在测试的时候,会先进行快速测试,然后进行慢速测试。
1----------------------- Page 2-----------------------2)内存维修模式下自动关机模式内存维修卡测试完成后会自动关闭电脑。
闪存指南金士顿® 是全球领先的独立内存产品制造商,提供各种利用闪存芯片存储数据的闪存卡、USB 闪存盘和固态硬盘 (SSD)(统称为闪存设备)。
本指南旨在介绍现有的各种技术和闪存产品。
注意:由于闪存技术不断变化,本文档所述规格可能随时更改,恕不另行通知。
1.0 闪存:助力新一代闪存设备东芝于 20 世纪 80 年代发明了闪存,这项新存储器技术让存储器设备在断开电源时也能保留已存储的数据。
从那时起,闪存技术逐步发展成为各种消费类及工业设备的首选存储介质。
在消费类设备领域,闪存广泛应用于:••笔记本电脑••个人电脑••平板电脑••数码相机••全球定位系统•(GPS)••手机••固态音乐播放器,例如•••电子乐器•MP3•播放器••电视•••便携式和家庭视频游戏机闪存还应用于许多工业应用领域,其中断电情形中的可靠性和数据保持性是两项关键要求。
这些领域包括:••安保系统/网路摄影机••军事系统••嵌入式计算机••机顶盒••网络和通信产品••无线通信设备••零售管理产品••销售点设备•((例如手持扫描器))请注意:大多数金士顿闪存产品经过精心设计和严格测试,可兼容消费类设备。
对于超出标准日常消费类用途的工业应用或特殊用途应用,建议您直接联系金士顿。
这可能需要特殊配置,特别是对于严重影响闪存单元耐久性的应用(参见第•3.0•章)。
2.0 SSD、闪存卡和 USB 闪存盘容量闪存设备上所列容量有部分会用于格式化及其他功能,并非全部用于数据存储。
在设计和生产闪存设备时,需要采取相应的步骤,以确保设备能够可靠地工作并允许主机设备(计算机、数码相机、平板电脑、手机等)访问存储器单元,即存储和检索位于闪存设备上的数据。
格式化包括以下操作:1.•测试闪存设备中的每个存储器单元。
2.•找出所有有问题的单元,并采取相应的步骤确保不会对有故障的单元进行数据写入或读取。
3.•保留部分单元作为“备用”。
闪存单元拥有很长的寿命,但也是有限的。
1 在C语言代码(文本文件)形成可执行程序(二进制文件),需要经过
预处理---编译—汇编—链接。
编译过程是把C语言文本文件生成汇编程序,
汇编过程是把汇编程序形成二进制机器代码,
链接则是将各个源文件生成的二进制代码文件组合成一个文件。
2 C语言的程序经过编译--------链接后,将形成一个统一文件,它由几个部分组成。
在程序运行时又会产生其他几个部分,各个部分代表了不同的存储区域。
3 说明:C语言程序分为映像和运行时两种状态。
在编译-----链接后形成映像中,将只包含代码段(Text)、只读数据段(RO Data)和读写数据段(RW Data)。
在程序运行之前,将动态生成未初始化数据段BSS。
在程序的运行时还将动态生成堆Heap区域和栈Stack区域。
C语言在编译链接后,将生成代码段(Text)、只读数据段(RO Data)和读写数据段(RW Data)。
在运行时,除了上述三个区域外,还包括未初始化数据段BSS区域和栈Stack区域。
代码段(Text)
只读数据段(RO Data) -----const定义的变量常量
Static修饰符的变量不管在函数内部或外部全在静态区
全局变量----静态区
读写数据段(RW Data) ---已初始化的全局变量
未初始化数据段BSS ---直接定义的全局变量
堆Heap区域----malloc
栈Stack区域----主要存储以下三种:函数内部的动态变量函数参数函数返回值
int main() char *p=”tiger”,系统在栈上开辟了四个字节存储p的数值。
, tiger”在只读存储区,因此tiger”的内容不能改变,*p= tiger”,char *p = “tiger” ; 表示地址赋值。
因此,p指向了只读存储区,因此改变p指向p[1+=’l’; 的内容会引起段错误。
但是因为P在存放在栈上,因此p的数p++ ; 值是可以改变的,因此p++是正确的。
p rintf(“%s\n”,p);
}
typedef char *pStr ; ----经过编译提示错误为:error:increment of read-only variable ‘p2’ int main() 1>const使用的基本形式为const char m ; 限定m不可变
{ 2>替换const char *pm ; 限定*pm不可变,pm是可变的,因此c har string*6+ = “tiger” ;p1++是对的。
const char *p1 = string ; 3>替换const newType m;限定m不可变,所以p2是不可变的。
const pStr p2 = string ; p2++是错误的。
p1 ++ ; const (char *) pContent;//pContent是const,*pContent是可变
p2 ++ ;
p rintf(“p1=%s\np2=%s\n”,p1,p2);
}
问题1:
#include "stdio.h"
char *get_string_1()
{
char p[] = "hello world!";
return p;
}
char *get_string_2()
{
char *p = "hello world!";
return p;
}
int main()
{
char *p;
p = get_string_1();
printf("get_string_1:%s\n",p);
p = get_string_2();
printf("get_string_2:%s\n",p);
return 0;
}
输出:
get_string_1:(乱码或者没有输出),linux下没有任何输出
get_string_2:hello world!
为什么会这样?
问题2:char *p = "hello world!";这样写到底合不合法,实际应用中能不能这样写。
问题3:char *p = "hello world!";与char p[]="hello world!";有什么细节和操作上的差异。
/* { char p[] = "Hello world"; ...}
方式使用此静态字符串时,实际上相当于:
char p[12];
strcpy(p, "Hello world");
p[12]是在栈里临时分配的。
虽然p指向的内容是"Hello world", 但是这是复制品,不是原件。
当函数结束,char p[]就被程序回收了,所以p[]的内容就不再是"Hello world"了。
但如果以char *p="Hello world"的方式使用,p指向的是静态字符串存储的位置,也就是说指向"Hello world"的原件,当然没有问题了。
如果想坚持用char p[]而不使用char *p, 有效方法必须是:搜索
{ static char p[]="Hello world"; return p; } static char []是静态的,存储在数据区。
*/
解析:
char *p = "hello world!";与char p[] = "hello world!"; 两者都用来声明一个字符串,并将其初始化为hello world!,但是表示的意义确是大不相同。
从其声明的对象来说:
char p[] = "hello world!";用来声明一个数组p,数组大小为12字节。
char *p = "hello world!";用来声明一个指针p,指向“hello world!”字符串起始位置。
从存储位置来说:
char p[] = "hello world!";p数组作为局部变量被存储在栈区;
char *p = "hello world!"; 在这个声明中,"hello world!"被存储在静态数据区,而且是全局的,p仅仅就是个指针,指向这个区域。
不信的话你可以试试下边的代码,看是不是同一个地址:
char *p1 = "hello world!";
char *p2 = "hello world!";
printf("p1:%x\np2:%x\n",p1,p2);
从函数执行后的扫尾工作来看:
C函数执行完之后对栈区进行清除操作,对静态数据区和堆则没有,因此第一个问题也就不难解释了,get_string_1()函数执行完就释放了栈区内存,所以根本就不存在存有"hello world!"声明时的内存,也就不可能有所输出。
那么,写成char *p = "hello world!";到底合不合法呢?能不能这样写呢?
这是一个历史问题,在const关键字被引入C语言之前,这样写是合法的,而且存在了很长的一段时间,大量的代码在此期间运用了这种写法,新版C语言为了兼容,故允许这样写,但最好不要这样,因为这种写法终会被淘汰,说不定哪天你的代码用了新版的编译器,然后莫名的出了问题,要找这个BUG估计不是一件容易的事。
现在最好写成:const char *p = "hello world!";
或者
char p[] = "hello world!";
那他们在操作和细节上有什么区别呢?
区别很多,由于本人才疏学浅,只总结出以下几点,忘有知者补充:
1. char *p = "hello world!"; 可以用p++操作,sizeof(p) == 4;
2.char p[]="hello world!"; sizeof(p) == 12;。