① 存储器中的一个字节,可以存放多少个英文字母
一个字节 (Byte) 只能存一个字母(ASC编码)
有些编码, 会需要2个字节....汉字至少要2个字节
② 存储器的读写过程是什么样的
首页 采购专区 供应专区 技术资料 环保电子 商情资讯 我的B2BIC
5.1 存储器系统基本知识
作者: 时间: 2008-04-10 来源:
5.1.1存储器的分类
按照存储介质不同,可以将存储器分为半导体存储器、磁存储器、激光存储器。
这里我们只讨论构成内存的半导体存储器。
按照存储器的存取功能不同,半导体存储器可分为只读存储器(Read Only Memory简称ROM)和随机存储器(Random Access Memory简称RAM)
1.只读存储器(ROM)
ROM的特点是把信息写入存储器以后,能长期保存,不会因电源断电而丢失信息。计算机在运行过程中,只能读出只读存储器中的信息,不能再写入信息。一般地,只读存储器用来存放固定的程序和数据,如微机的监控程序、汇编程序、用户程序、数据表格等。根据编程方式的不同,ROM共分为以下5种:
(1)掩模工艺ROM
这种ROM是芯片制造厂根据ROM要存贮的信息,设计固定的半导体掩模版进行生产的。一旦制出成品之后,其存贮的信息即可读出使用,但不能改变。这种ROM常用于批量生产,生产成本比较低。微型机中一些固定不变的程序或数据常采用这种ROM存贮。
(2)可一次性编程ROM(PROM)
为了使用户能够根据自己的需要来写ROM,厂家生产了一种PROM。允许用户对其进行一次编程──写入数据或程序。一旦编程之后,信息就永久性地固定下来。用户可以读出和使用,但再也无法改变其内容。
(3)紫外线擦除可改写ROM(EPROM)
可改写ROM芯片的内容也由用户写入,但允许反复擦除重新写入。EPROM是用电信号编程而用紫外线擦除的只读存储器芯片。在芯片外壳上方的中央有一个圆形窗口,通过这个窗口照射紫外线就可以擦除原有的信息。由于阳光中有紫外线的成分,所以程序写好后要用不透明的标签封窗口,以避免因阳光照射而破坏程序。EPROM的典型芯片是Intel公司的27系列产品,按存储容量不同有多种型号,例如2716(2KB′8)、2732(4KB′8)、2764(8KB′8)、27128(16KB′8)、27256(32KB′8)等,型号名称后的数字表示其存储容量。
(4)电擦除可改写ROM(EEPROM或E2PROM)
这是一种用电信号编程也用电信号擦除的ROM芯片,它可以通过读写操作进行逐个存储单元读出和写入,且读写操作与RAM存储器几乎没有什么差别,所不同的只是写入速度慢一些。但断电后却能保存信息。典型E2PROM芯片有28C16、28C17、2817A等。
(5)快擦写ROM(flash ROM)
E2PROM虽然具有既可读又可写的特点,但写入的速度较慢,使用起来不太方便。而flash ROM是在EPROM和E2PROM的基础上发展起来的一种只读存储器,读写速度都很快,存取时间可达70ns,存储容量可达16MB~128MB。这种芯片可改写次数可从1万次到100万次。典型flash ROM芯片有28F256、28F516、AT89等。
2.随机存储器RAM(也叫读写存储器)
读写存储器RAM按其制造工艺又可以分为双极型RAM和金属氧化物RAM。
(1) 双极型RAM
双极型RAM的主要特点是存取时间短,通常为几到几十纳秒(ns)。与下面提到的MOS型RAM相比,其集成度低、功耗大,而且价格也较高。因此,双极型RAM主要用于要求存取时间短的微型计算机中。
(2) 金属氧化物(MOS)RAM
用MOS器件构成的RAM又分为静态读写存储器(SRAM)和动态读写存储器(DRAM)。
j静态RAM(SRAM)
静态RAM的基本存储单元是MOS双稳态触发器。一个触发器可以存储一个二进制信息。静态RAM的主要特点是,其存取时间为几十到几百纳秒(ns),集成度比较高。目前经常使用的静态存储器每片的容量为几KB到几十KB。SRAM的功耗比双极型RAM低,价格也比较便宜。
k动态RAM(DRAM)
动态RAM的存取速度与SRAM的存取速度差不多。其最大的特点是集成度特别高。其功耗比SRAM低,价格也比SRAM便宜。DRAM在使用中需特别注意的是,它是靠芯片内部的电容来存贮信息的。由于存贮在电容上的信息总是要泄漏的,所以,每隔2ms到4ms,DRAM要求对其存贮的信息刷新一次。
l集成RAM(i RAM)
集成RAM――Integrated RAM,缩写为i RAM,这是一种带刷新逻辑电路的DRAM。由于它自带刷新逻辑,因而简化与微处理器的连接电路,使用它和使用SRAM一样方便。
m非易失性RAM(NVRAM)
非易失性RAM――Non-Volatile RAM,缩写为NVRAM,其存储体由SRAM和EEPROM两部分组合而成。正常读写时,SRAM工作;当要保存信息时(如电源掉电),控制电路将SRAM的内容复制到EEPROM中保存。存入EEPROM中的信息又能够恢复到SRAM中。
NVRAM既能随机存取,又具有非易失性,适合用于需要掉电保护的场合。
5.1.2存储器的主要性能指标
1.存贮容量
不同的存储器芯片,其容量不一样。通常用某一芯片有多少个存贮单元,每个存贮单元存贮若干位来表示。例如,静态RAM6264的容量为8KB′8bit,即它有8K个单元(1K=1024),每个单元存贮8位(一个字节)数据。
2.存取时间
存取时间即存取芯片中某一个单元的数据所需要的时间。在计算机工作时,CPU在读写RAM时,它所提供的读写时间必须比RAM芯片所需要的存取时间长。如果不能满足这一点,微型机则无法正常工作。
3.可靠性
微型计算机要正确地运行,必然要求存储器系统具有很高的可靠性。内存的任何错误就足以使计算机无法工作。而存储器的可靠性直接与构成它的芯片有关。目前所用的半导体存储器芯片的平均故障间隔时间(MTBF)大概是(5′106∽1′108)小时左右。
4.功耗
使用功耗低的存储器芯片构成存储器系统,不仅可以减少对电源容量的要求,而且还可以提高存贮系统的可靠性。
关于我们 | 网站地图 | 推荐给朋友 | 友情链接 | 服务介绍 | 配套杂志 | IC库存
E-mail:[email protected]
Copyright (c) 2003-2008 经营许可证号:冀B2 - 20060071 备案序号:冀ICP备字05001825号
Powered by POAKs 5010375
③ 电脑的记忆体有什么规格
倒,你是从英文翻译的叫记忆体吧,明明中文叫作内存
-------------------------------------------------------------
从PC100标准开始内存条上带有SPD芯片,SPD芯片是内存条正面右侧的一块8管脚小芯片,里面保存着内存条的速度、工作频率、容量、工作电压、CAS、tRCD、tRP、tAC、SPD版本等信息。当开机时,支持SPD功能的主板BIOS就会读取SPD中的信息,按照读取的值来设置内存的存取时间。我们可以借助SiSoft Sandra2001(下载地址http://www.sisoftware.co.uk/index.htm)这类工具软件来查看SPD芯片中的信息,例如软件中显示的SDRAM PC133U-333-542就表示被测内存的技术规范。内存技术规范统一的标注格式,一般为PCx-xxx-xxx,但是不同的内存规范,其格式也有所不同。
1、内存的定义
内存指的就是主板上的存储部件,是CPU直接与之沟通,并对其存储数据的部件。存放当前正在使用的(即执行中)的数据和程序,它的物理实质就是一组或多组具备数据输入输出和数据存储功能的集成电路。
2、内存的分类
1)内存类型分类
RAM (Random Access Memory)
随机读写存储器
ROM (Read Only Memory)
只读存储器
SRAM (Static Random Access Memory)
静态随机读写存储器
DRAM (Dynamic Random Access Memory)
动态随机读写存储器
2)内存芯片分类
FPM (Fast-Page Mode) DRAM
快速页面模式的DRAM
EDO (Extended Data Out) DRAM
即扩展数据输出DRAM 速度比FPM DRAM快15%~30%
BEDO (Burst EDO) DRAM
突发式EDO DRAM 性能提高40%左右
SDRAM (Synchronous DRAM)
同步DRAM 与CPU的外部工作时钟同步
RDRAM (Rambus DRAM )
DDR (Double Data Rate) DRAM
3)按内存速度分
PC66
PC100
PC133
PC200
PC266
4)按内存接口形式分
SIMM(Single-In Line Memory Mole)
单边接触内存条,分为30线和72线两种。
DIMM(Dual In-Line Memory Mole)
双边接触内存条,168线,184线,200线等,目前广泛使用168线DIMM。
SODIMM Small Outline Dual In-line Memory Mole
144线DIMM主要用于笔记本型电脑
RIMM
5)按是否有缓冲分
Unbuffered
Registered
6)按是否有校验分
Non-ECC
ECC
3、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以上的内存必须经过注册。
4、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。
5、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。
6、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。
7、各厂商内存芯片编号
(1)HYUNDAI(现代)
现代的SDRAM内存兼容性非常好,支持DIMM的主板一般都可以顺利的使用它,其SDRAM芯片编号格式为:HY 5a b cde fg h i j k lm-no
其中HY代表现代的产品;5a表示芯片类型(57=SDRAM,5D=DDR SDRAM);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)。其中KINGMAX PC133与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 = 100 MHz @ 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=200MHz
DDR 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〕。
④ 谁能帮帮我,《数据结构》课程设计——哈夫曼编译码器设计(用C语言的)!!!谢谢了!!!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef char* HuffmanCode;/*动态分配数组,存储哈夫曼编码*/
typedef struct
{
unsigned int weight ; /* 用来存放各个结点的权值*/
unsigned int parent, LChild,RChild ; /*指向双亲、孩子结点的指针*/
}HTNode, * HuffmanTree; /*动态分配数组,存储哈夫曼树*/
void select(HuffmanTree *ht,int n, int *s1, int *s2)
{
int i;
int min;
for(i=1; i<=n; i++)
{
if((*ht)[i].parent == 0)
{
min = i;
i = n+1;
}
}
for(i=1; i<=n; i++)
{
if((*ht)[i].parent == 0)
{
if((*ht)[i].weight < (*ht)[min].weight)
min = i;
}
}
*s1 = min;
for(i=1; i<=n; i++)
{
if((*ht)[i].parent == 0 && i!=(*s1))
{
min = i;
i = n+1;
}
}
for(i=1; i<=n; i++)
{
if((*ht)[i].parent == 0 && i!=(*s1))
{
if((*ht)[i].weight < (*ht)[min].weight)
min = i;
}
}
*s2 = min;
}
void CrtHuffmanTree(HuffmanTree *ht , int *w, int n)
{ /* w存放已知的n个权值,构造哈夫曼树ht */
int m,i;
int s1,s2;
m=2*n-1;
*ht=(HuffmanTree)malloc((m+1)*sizeof(HTNode)); /*0号单元未使用*/
for(i=1;i<=n;i++)
{/*1-n号放叶子结点,初始化*/
(*ht)[i].weight = w[i];
(*ht)[i].LChild = 0;
(*ht)[i].parent = 0;
(*ht)[i].RChild = 0;
}
for(i=n+1;i<=m;i++)
{
(*ht)[i].weight = 0;
(*ht)[i].LChild = 0;
(*ht)[i].parent = 0;
(*ht)[i].RChild = 0;
} /*非叶子结点初始化*/
/* ------------初始化完毕!对应算法步骤1---------*/
for(i=n+1;i<=m;i++) /*创建非叶子结点,建哈夫曼树*/
{ /*在(*ht)[1]~(*ht)[i-1]的范围内选择两个parent为0且weight最小的结点,其序号分别赋值给s1、s2返回*/
select(ht,i-1,&s1,&s2);
(*ht)[s1].parent=i;
(*ht)[s2].parent=i;
(*ht)[i].LChild=s1;
(*ht)[i].RChild=s2;
(*ht)[i].weight=(*ht)[s1].weight+(*ht)[s2].weight;
}
}/*哈夫曼树建立完毕*/
void outputHuffman(HuffmanTree HT, int m)
{
if(m!=0)
{
printf("%d ", HT[m].weight);
outputHuffman(HT,HT[m].LChild);
outputHuffman(HT,HT[m].RChild);
}
}
void CrtHuffmanCode(HuffmanTree *ht, HuffmanCode *hc, int n)
/*从叶子结点到根,逆向求每个叶子结点对应的哈夫曼编码*/
{
char *cd;
int i;
unsigned int c;
int start;
int p;
hc=(HuffmanCode *)malloc((n+1)*sizeof(char *)); /*分配n个编码的头指针*/
cd=(char * )malloc(n * sizeof(char )); /*分配求当前编码的工作空间*/
cd[n-1]='\0'; /*从右向左逐位存放编码,首先存放编码结束符*/
for(i=1;i<=n;i++) /*求n个叶子结点对应的哈夫曼编码*/
{
start=n-1; /*初始化编码起始指针*/
for(c=i,p=(*ht)[i].parent; p!=0; c=p,p=(*ht)[p].parent) /*从叶子到根结点求编码*/
if( (*ht)[p].LChild == c)
cd[--start]='0'; /*左分支标0*/
else
cd[--start]='1'; /*右分支标1*/
hc[i]=(char *)malloc((n-start)*sizeof(char)); /*为第i个编码分配空间*/
strcpy(hc[i],&cd[start]);
}
free(cd);
for(i=1;i<=n;i++)
printf("%d编码为%s\n",(*ht)[i].weight,hc[i]);
}
void main()
{
HuffmanTree HT;
HuffmanCode HC;
int *w;
int i,n; // the number of elements;
int wei; // the weight of a element;
int m;
printf("input the total number of the Huffman Tree:" );
scanf("%d",&n);
w=(int *)malloc((n+1)*sizeof(int));
for(i=1;i<=n;i++)
{
printf("input the %d element's weight:",i);
fflush(stdin);
scanf("%d",&wei);
w[i]=wei;
}
CrtHuffmanTree(&HT,w,n);
m = 2*n-1;
outputHuffman(HT,m);
printf("\n");
CrtHuffmanCode(&HT,&HC,n);
}