内存的分类以及各自特征

先说内存的含义:

内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。 内存(Memory)也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。 内存是由内存芯片、电路板、金手指等部分组成的。

只读存储器(ROM)

ROM是线路最简单半导体电路,通过掩模工艺,一次性制造,在元件正常工作的情况下,其中的代码与数据将永久保存,并且不能够进行修改。一般应用于PC系统的程序码、主机板上的 BIOS (基本输入/输出系统Basic Input/Output System)等。它的读取速度比RAM慢很多。

根据组成元件的不同,ROM内存又分为以下五种:

1.MASK ROM(掩模型只读存储器)

制造商为了大量生产ROM内存,需要先制作一颗有原始数据的ROM或EPROM作为样本,然后再大量复制,这一样本就是MASK ROM,而烧录在MASK ROM中的资料永远无法做修改。它的成本比较低。

2.PROM(Programmable ROM,可编程只读存储器)

这是一种可以用刻录机将资料写入的ROM内存,但只能写入一次,所以也被称为“一次可编程只读存储器”(One Time Progarmming ROM,OTP-ROM)。PROM在出厂时,存储的内容全为1,用户可以根据需要将其中的某些单元写入数据0(部分的PROM在出厂时数据全为0,则用户可以将其中的部分单元写入1), 以实现对其“编程”的目的。

3.EPROM(Erasable Programmable,可擦可编程只读存储器)

这是一种具有可擦除功能,擦除后即可进行再编程的ROM内存,写入前必须先把里面的内容用紫外线照射它的IC卡上的透明视窗的方式来清除掉。这一类芯片比较容易识别,其封装中包含有“石英玻璃窗”,一个编程后的EPROM芯片的“石英玻璃窗”一般使用黑色不干胶纸盖住, 以防止遭到阳光直射。

4.EEPROM(Electrically Erasable Programmable,电可擦可编程只读存储器)

功能与使用方式与EPROM一样,不同之处是清除数据的方式,它是以约20V的电压来进行清除的。另外它还可以用电信号进行数据写入。这类ROM内存多应用于即插即用(PnP)接口中。

5.Flash Memory(快闪存储器)

这是一种可以直接在主机板上修改内容而不需要将IC拔下的内存,当电源关掉后储存在里面的资料并不会流失掉,在写入资料时必须先将原本的资料清除掉,然后才能再写入新的资料,缺点为写入资料的速度太慢。

随机存储器(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%左右。它一般应用于中档以下的Pentium主板标准内存,后期的486系统开始支持EDO DRAM,到96年后期,EDO DRAM开始执行。。

06.BEDO DRAM(Burst Extended Data Out DRAM,爆发式延伸数据输出动态随机存取存储器)

这是改良型的EDO DRAM,是由美光公司提出的,它在芯片上增加了一个地址计数器来追踪下一个地址。它是突发式的读取方式,也就是当一个数据地址被送出后,剩下的三个数据每一个都只需要一个周期就能读取,因此一次可以存取多组数据,速度比EDO DRAM快。但支持BEDO DRAM内存的主板可谓少之又少,只有极少几款提供支持(如VIA APOLLO VP2),因此很快就被DRAM取代了。

07.MDRAM(Multi-Bank DRAM,多插槽动态随机存取存储器)

MoSys公司提出的一种内存规格,其内部分成数个类别不同的小储存库 (BANK),也即由数个属立的小单位矩阵所构成,每个储存库之间以高于外部的资料速度相互连接,一般应用于高速显示卡或加速卡中,也有少数主机板用于L2高速缓存中。

08.WRAM(Window RAM,窗口随机存取存储器)

韩国Samsung公司开发的内存模式,是VRAM内存的改良版,不同之处是它的控制线路有一、二十组的输入/输出控制器,并采用EDO的资料存取模式,因此速度相对较快,另外还提供了区块搬移功能(BitBlt),可应用于专业绘图工作上。

09.RDRAM(Rambus DRAM,高频动态随机存取存储器)

Rambus公司独立设计完成的一种内存模式,速度一般可以达到500~530MB/s,是DRAM的10倍以上。但使用该内存后内存控制器需要作相当大的改变,因此它们一般应用于专业的图形加速适配卡或者电视游戏机的视频内存中。

10.SDRAM(Synchronous DRAM,同步动态随机存取存储器)

这是一种与CPU实现外频Clock同步的内存模式,一般都采用168Pin的内存模组,工作电压为3.3V。 所谓clock同步是指内存能够与CPU同步存取资料,这样可以取消等待周期,减少数据传输的延迟,因此可提升计算机的性能和效率。

11.SGRAM(Synchronous Graphics RAM,同步绘图随机存取存储器)

SDRAM的改良版,它以区块Block,即每32bit为基本存取单位,个别地取回或修改存取的资料,减少内存整体读写的次数,另外还针对绘图需要而增加了绘图控制器,并提供区块搬移功能(BitBlt),效率明显高于SDRAM。

12.SB SRAM(Synchronous Burst SRAM,同步爆发式静态随机存取存储器)

一般的SRAM是非同步的,为了适应CPU越来越快的速度,需要使它的工作时脉变得与系统同步,这就是SB SRAM产生的原因。

13.PB SRAM(Pipeline Burst SRAM,管线爆发式静态随机存取存储器)

CPU外频速度的迅猛提升对与其相搭配的内存提出了更高的要求,管线爆发式SRAM取代同步爆发式SRAM成为必然的选择,因为它可以有效地延长存取时脉,从而有效提高访问速度。

14.DDR SDRAM(Double Data Rate二倍速率同步动态随机存取存储器)

作为SDRAM的换代产品,它具有两大特点:其一,速度比SDRAM有一倍的提高;其二,采用了DLL(Delay Locked Loop:延时锁定回路)提供一个数据滤波信号。这是目前内存市场上的主流模式。

15.SLDRAM (Synchronize Link,同步链环动态随机存取存储器)

这是一种扩展型SDRAM结构内存,在增加了更先进同步电路的同时,还改进了逻辑控制电路,不过由于技术显示,投入实用的难度不小。

16.CDRAM(CACHED DRAM,同步缓存动态随机存取存储器)

这是三菱电气公司首先研制的专利技术,它是在DRAM芯片的外部插针和内部DRAM之间插入一个SRAM作为二级CACHE使用。当前,几乎所有的CPU都装有一级CACHE来提高效率,随着CPU时钟频率的成倍提高,CACHE不被选中对系统性能产生的影响将会越来越大,而CACHE DRAM所提供的二级CACHE正好用以补充CPU一级CACHE之不足,因此能极大地提高CPU效率。

17.DDRII (Double Data Rate Synchronous DRAM,第二代同步双倍速率动态随机存取存储器)

DDRII 是DDR原有的SLDRAM联盟于1999年解散后将既有的研发成果与DDR整合之后的未来新标准。DDRII的详细规格目前尚未确定。

18.DRDRAM (Direct Rambus DRAM)

是下一代的主流内存标准之一,由Rambus 公司所设计发展出来,是将所有的接脚都连结到一个共同的Bus,这样不但可以减少控制器的体积,已可以增加资料传送的效率。
还要介绍一下最新的 我们大部分知道的 DDR3与DDR4

DDR3:

2005年制造出DDR3的原型产品。2007年,市场开始使用DDR3内存芯片。

与DDR2相比,DDR3采用8bit预取,因此提供更高的传输速率(2133MT/s);更低的工作电压(1.5V,DDR2工作电压为1.8V),另外采用了不同的封装工艺,因此能耗更低。

延迟周期同样比DDR2增长,引脚数增加。

DDR4:

2011年,samsung宣布生产出第一个DDR4内存模块。2012年,samsung、Micron等开始量产DDR4 SDRAM芯片。

与DDR3相比,DDR4提供更高的时钟频率和传输速率(4166MT/s);更低的工作电压(1.05~1.2V),因此能耗更低。

高速缓冲存储器(CACHE)

高速缓冲存储器cache一般采用随机存取方式。
  高速缓冲存储器cache工作时,cache能够根据指令地址得到cache中对应地址,按地址存取,因此它是随机存取。

高速缓冲存储器(Cache)其原始意义是指存取速度比一般随机存取记忆体(RAM)来得快的一种RAM,一般而言它不像系统主记忆体那样使用DRAM技术,而使用昂贵但较快速的SRAM技术,也有快取记忆体的名称。
  高速缓冲存储器是存在于主存与CPU之间的一级存储器, 由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多, 接近于CPU的速度。在计算机存储系统的层次结构中,是介于中央处理器和主存储器之间的高速小容量存储器。它和主存储器一起构成一级的存储器。高速缓冲存储器和主存储器之间信息的调度和传送是由硬件自动进行的。
  高速缓冲存储器最重要的技术指标是它的命中率
这个比较陌生,给一个总结的文章链接:高速缓冲存储器cache介绍

FLASH

FLASH存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)

目前Flash主要有两种NOR FlashNADN Flash

NOR Flash:NOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。一般小容量的用NOR Flash,因为其读取速度快,多用来存储操作系统等重要信息。NOR FLASH数据线和地址线分开,可以实现RAM一样的随机寻址功能,可以读取任何一个字节,但是擦除仍要按块来擦。

NADN Flash:没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除了使用NAND Flah以外,还作上了一块小的NOR Flash来运行启动代码。大容量的用NAND FLASH,最常见的NAND FLASH应用是嵌入式系统采用的DOC(Disk On Chip)和我们通常用的"闪盘",可以在线擦除。NAND FLASH同样是按块擦除,但是数据线和地址线复用,不能利用地址线随机寻址。读取只能按页来读取。(NAND FLASH按块来擦除,按页来读,NOR FLASH没有页)。由于NAND FLASH引脚上复用,因此读取速度比NOR FLASH慢一点,但是擦除和写入速度比NOR FLASH快很多。NAND FLASH内部电路更简单,因此数据密度大,体积小,成本也低。因此大容量的flash都是NAND FLASH型的。小容量的2~12M的flash多是NOR FLASH型的。

来一个两种flash的比较
NOR flash 和NAND flash区别深入分析

此外还有新起之秀 EMMC
emmc存储器eMMC (Embedded Multi Media Card) 为MMC协会所订立的,eMMC 相当于 NandFlash+主控IC ,对外的接口协议与SD、TF卡一样,主要是针对手机或平板电脑等产品的内嵌式存储器标准规格。eMMC的一个明显优势是在封装中集成了一个控制器,它提供标准接口并管理闪存,使得手机厂商就能专注于产品开发的其它部分,并缩短向市场推出产品的时间。这些特点对于希望通过缩小光刻尺寸和降低成本的NAND供应商来说,同样的重要。
eMMC由一个嵌入式存储解决方案组成,带有MMC(多媒体卡)接口、快闪存储器设备(Nand Flash)及主控制器,所有都在一个小型的BGA 封装。接口速度高达每秒52MBytes,eMMC具有快速、可升级的性能。同时其接口电压可以是 1.8v 或者是 3.3v。

现在很多智能电视已经逐步抛弃Nor或Nand,使用更为先进的eMMC芯片,然而普通编程器无法读写eMMC芯片,新开发的可支持eMMC芯片烧写的编程器性价比高,还能支持Nor、Nand芯片,支持全面、功能强大

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 单例模式是一种设计模式,它保证一个类仅有一个实例,并且提供一个全局访问点。通常情况下,单例模式被用来限制一个类的实例化次数,实现对象的全局唯一性,同时保证对象的唯一性不会受到多线程等因素的影响。 根据实例化时机的不同,单例模式可以分为懒汉式和饿汉式两种。 懒汉式在首次访问时才会创建实例,在多线程环境下需要考虑线程安全问题。优点是节约内存,缺点是第一次加载时需要实例化,反应稍慢。 饿汉式在类被加载时就会创建实例,不存在线程安全问题。优点是反应快,缺点是浪费内存。 此外,还有一种登记式单例模式,它是将每个实例都登记到一个簿记类中,使用唯一的标识符获取实例。 总的来说,单例模式可以提高代码复用率和系统的灵活性,但也可能造成一定的内存浪费。通过选用适当的实例化时机和线程安全处理方法,可以使单例模式更加稳定和易用。 ### 回答2: 单例模式是一种常用的设计模式,用于确保一个类只有一个实例对象,并提供一个全局的访问点。 根据实例化的时机,单例模式可以分为饿汉式和懒汉式两种。 饿汉式单例模式会在类加载时就创建实例对象,然后在类的生命周期中一直存在。这种方式简单直接,线程安全,可以保证在任何时候都能获取到实例对象。然而,它的缺点是如果实例对象很庞大并且不需要立即使用,会导致内存浪费。而且,如果实例化过程中抛出异常,无法捕获并处理,导致整个程序崩溃。 懒汉式单例模式会在第一次使用时创建实例对象,延迟实例化。这种方式节省了内存空间,只有在需要时才会创建对象。然而,懒汉式的实现需要考虑线程安全性,因为多线程环境下可能会创建多个实例对象。常见的解决方法是使用同步锁或双重检查锁定,但这会增加代码复杂性和执行效率。 除了以上两种分类,还有一些其他变种的单例模式,例如枚举单例模式和静态内部类单例模式。 枚举单例模式是Java中最简洁的实现方式,枚举类型保证了线程安全性和防止反射攻击,并且可以防止通过序列化/反序列化创建多个实例对象。 静态内部类单例模式使用静态内部类来持有单例实例,在外部类被加载时并不会立即实例化。在需要获取实例时,会调用内部类的静态方法获取单例,保证了线程安全性和延迟加载,并且不会产生内存浪费。 总结来说,饿汉式单例模式适用于实例对象较小且需要全局访问的场景,懒汉式单例模式适用于实例对象较大并且可能有延迟加载的场景,枚举和静态内部类单例模式是更加安全和优雅的实现方式。但无论哪种方式,都应根据实际情况选择最合适的单例模式。 ### 回答3: 单例模式是一种常见的设计模式,它的主要目的是确保类只有一个实例,并提供一个全局的访问点供其他对象使用。 单例模式的分类主要有以下几种: 1. 饿汉式(Eager Initialization): 饿汉式单例模式在类加载时就创建实例,因此在使用之前就已经准备好了,所以不存在线程安全问题。它的优点是实现简单、线程安全,缺点是在整个应用程序启动时就创建实例,会占用一定的内存空间。 2. 懒汉式(Lazy Initialization): 懒汉式单例模式在类首次使用时才创建实例,这样可以延迟实例化,节省内存。然而,懒汉式需要考虑线程安全问题。常见的解决方法是加锁(synchronized关键字)或双重检查锁(Double-Checked Locking)。优点是节省内存,缺点是在多线程环境下可能存在性能问题。 3. 静态内部类(Static Inner Class): 静态内部类单例模式将实例的创建延迟到静态内部类的加载时才进行,这样既实现了延迟加载,又保证了线程安全。优点是实现简单、线程安全,缺点是对序列化支持不够友好。 4. 枚举(Enum): 枚举单例模式可以防止通过反射或序列化创建新的实例,同时也保证了线程安全。枚举类型的成员是唯一的,因此每个枚举值都是单独的实例。优点是实现简单、线程安全,缺点是不灵活,不能延迟加载。 总体来说,单例模式的优点是能够确保只有一个实例存在,全局可访问,避免频繁的内存创建和销毁,提高性能。缺点是可能存在线程安全的问题,需要额外的处理。根据具体的应用场景,可以选择适合的单例模式实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值