存储器(Memory)是计算机系统中的记忆设备,用来存放程序和数据。计算机中所有信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。它根据控制器指定的位置存入和取出信息。有了存储器,计算机才有记忆功能,才能保证正常工做。
按用途存储器可分为主存储器(内存)和辅助存储器(外存),也有分为外部存储器和内部存储器的分类方法。
外存一般是磁性介质或光盘等,能长期保存信息。内存指主板上的存储部件,用来存放当前正在执行的数据和程序,但仅用于暂时存放程序和数据,关闭电源或断电,数据会丢失。
构成
构成存储器的存储介质,目前主要采用半导体器件和磁性材料。存储器中最小的存储单位就是一个双稳态半导体电路或一个CMOS晶体管或磁性材料的存储元,它可存储一个二进制代码。由若干个存储元组成一个存储单元,而后再由许多存储单元组成一个存储器。 一个存储器包含许多存储单元,每一个存储单元可存放一个字节(按字节编址)。每一个存储单元的位置都有一个编号,即地址,通常用十六进制表示。一个存储器中全部存储单元可存放数据的总和称为它的存储容量。假设一个存储器的地址码由20位二进制数(即5位十六进制数)组成,则可表示2的20次方,即1M个存储单元地址。每一个存储单元存放一个字节,则该存储器的存储容量为1MB。
分类按存储介质分
半导体存储器:用半导体器件组成的存储器。
磁表面存储器:用磁性材料作成的存储器。
按存储方式分 随机存储器:任何存储单元的内容都能被随机存取,且存取时间和存储单元的物理位置无关。
顺序存储器:只能按某种顺序来存取,存取时间和存储单元的物理位置有关。
按存储器的读写功能分 只读存储器(ROM):存储的内容是固定不变的,只能读出而不能写入的半导体存储器。
随机读写存储器(RAM):既能读出又能写入的半导体存储器。
按信息的可保存性分非永久记忆的存储器:断电后信息即消失的存储器。
永久记忆性存储器: 断电后仍能保存信息的存储器。
按存储器用途分 根据存储器在计算机系统中所起的做用,可分为主存储器、辅助存储器、高速缓冲存储器、控制存储器等。
为了解决对存储器要求容量大,速度快,成本低三者之间的矛盾,目前一般采用多级存储器体系结构,即便用高速缓冲存储器、主存储器和外存储器。
名称 用途 特色
高速缓冲存储器 Cache 高速存取指令和数据 存取速度快,但存储容量小
主存储器 内存 存放计算机运行期间的大量程序和数据 存取速度较快,存储容量不大
外存储器 外存 存放系统程序和大型数据文件及数据库 存储容量大,位成本低
功能
存储器 功能 寻址方式 掉电后 说 明
随机存取存储器(RAM) 读、写 随机寻址 数据丢失
只读存储器(ROM) 读 随机寻址 数据不丢失 工做前写入数据
闪存(Flash Memory) 读、写 随机寻址 数据不丢失
先进先出存储器(FIFO) 读、写 顺序寻址 数据丢失
先进后出存储器(FILO) 读、写 顺序寻址 数据丢失
各种存储器
RAM
RAM(random access memory,随机存取存储器)。存储单元的内容可按需随意取出或存入,且存取的速度与存储单元的位置无关的存储器。这种存储器在断电时将丢失其存储内容,故主要用于存储短期使用的程序。 按照存储信息的不一样,随机存储器又分为静态随机存储器(Static RAM,SRAM)和动态随机存储器(Dynamic RAM,DRAM)。
SRAMS
RAM(Static RAM,静态随机存储器),不须要刷新电路,数据不会丢失,并且,通常不是行列地址复用的。可是他集成度比较低,不适合作容量大的内存,通常是用在处理器的缓存里面。像S3C2440的ARM9处理器里面就有4K的SRAM用来作CPU启动时用的。
SRAM实际上是一种很是重要的存储器,它的用途普遍。SRAM的速度很是快,在快速读取和刷新时可以保持数据完整性。SRAM内部采用的是双稳态电路的形式来存储数据。因此SRAM的电路结构很是复杂。制造相同容量的SRAM比DRAM的成本高的多。正由于如此,才使其发展受到了限制。所以目前SRAM基本上只用于CPU内部的一级缓存以及内置的二级缓存。仅有少许的网络服务器以及路由器上可以使用SRAM。
DRAM
Dynamic RAM,动态随机存取存储器,每隔一段时间就要刷新一次数据,才能保存数据。并且是行列地址复用的,许多都有页模式。SDRAM是其中的一种。
SDRAM
SDRAM(Synchronous DRAM,同步动态随机存储器),即数据的读写须要时钟来同步。其存储单元不是按线性排列的,是分页的。
DRAM和SDRAM因为实现工艺问题,容量较SRAM大。可是读写速度不如SRAM。
通常的嵌入式产品里面的内存都是用的SDRAM。电脑的内存也是用的这种RAM,叫DDR SDRAM,其集成度很是高,由于是动态的,因此必须有刷新电路,每隔一段时间必须得刷新数据。
ROM
Read-Only Memory,只读存储器的总称。
在微机的发展初期,BIOS都存放在ROM(Read Only Memory,只读存储器)中。ROM内部的资料是在ROM的制造工序中,在工厂里用特殊的方法被烧录进去的,其中的内容只能读不能改,一旦烧录进去,用户只能验证写入的资料是否正确,不能再做任何修改。若是发现资料有任何错误,则只有舍弃不用, 从新订作一份。ROM是在生产线上生产的,因为成本高,通常只用在大批量应用的场合。
PROM
可编程只读存储器,只能写一次,写错了就得报废,如今用得不多了,好像那些成本比较低的OPT单片机里面用的就是这种存储器吧。
EPROM
EPROM(Erasable Programmable ROM,可擦除可编程ROM)芯片可重复擦除和写入,解决了PROM芯片只能写入一次的弊端。
EPROM芯片有一个很明显的特征,在其正面的陶瓷封装上,开有一个玻璃窗口,透过该窗口,能够看到其内部的集成电路,紫外线透过该孔照射内部芯片就能够擦除其内的数据,完成芯片擦除的操做要用到EPROM擦除器。
EPROM内资料的写入要用专用的编程器,而且往芯片中写内容时必需要加必定的编程电压(VPP=12—24V,随不一样的芯片型号而定)。EPROM的型号是以27开头的,如27C020(8*256K)是一片2M Bits容量的EPROM芯片。EPROM芯片在写入资料后,还要以不透光的贴纸或胶布把窗口封住,以避免受到周围的紫外线照射而使资料受损。 EPROM芯片在空白状态时(用紫外光线擦除后),内部的每个存储单元的数据都为1(高电平)。
EEPROMEEPROM (Electrically Erasable Programmable ROM,电可擦可编程只读存储器),一种掉电后数据不丢失的存储芯片。EEPROM是可用户更改的只读存储器,其可经过高于普通电压的做用来擦除和重编程(重写),便可以在电脑上或专用设备上擦除已有信息并从新编程。不像EPROM芯片,EEPROM不需从计算机中取出便可修改,是如今用得比较多的存储器,好比24CXX系列的EEPROM。
在一个EEPROM中,当计算机在使用的时候是可频繁地重编程的,EEPROM的寿命是一个很重要的设计考虑参数。
EEPROM的一种特殊形式是闪存,其应用一般是我的电脑中的电压来擦写和重编程。
EEPROM通常用于即插即用(Plug & Play),经常使用在接口卡中,用来存放硬件设置数据,也经常使用在防止软件非法拷贝的"硬件锁"上面。
闪存(Flash)
闪存(FLASH)是一种非易失性存储器,即断电数据也不会丢失。由于闪存不像RAM(随机存取存储器)同样以字节为单位改写数据,所以不能取代RAM。
闪存卡(Flash Card)是利用闪存(Flash Memory)技术达到存储电子信息的存储器,通常应用在数码相机,掌上电脑,MP3等小型数码产品中做为存储介质,因此样子小巧,有如一张卡片,因此称之为闪存卡。根据不一样的生产厂商和不一样的应用,闪存卡大概有U盘、SmartMedia(SM卡)、Compact Flash(CF卡)、MultiMediaCard(MMC卡)、Secure Digital(SD卡)、Memory Stick(记忆棒)、XD-Picture Card(XD卡)和微硬盘(MICRODRIVE)。这些闪存卡虽然外观、规格不一样,可是技术原理都是相同的。
NAND FLASH和NOR FLASH都是如今用得比较多的非易失性闪存。
设计实现
采用的并行接口,有独立的地址线和数据线,性能特色更像内存,是芯片内执行(XIP, eXecute In Place),这样应用程序能够直接在flash闪存内运行,没必要再把代码读到系统RAM中。
NAND采用的是串行的接口,地址线和数据线是共用的I/O线,相似电脑硬盘。CPU从里面读取数据的速度很慢,因此通常用NAND作闪存的话就必须把NAND里面的数据先读到内存里面,而后CPU才可以执行。可是它的集成度很高,成本很低。还有就是它的擦除速度也的NOR要快。其实NAND型闪存在设计之初确实考虑了与硬盘的兼容性,小数据块操做速度很慢,而大数据块速度就很快,这种差别远比其余存储介质大的多。这种性能特色很是值得咱们留意
性能对比 flash闪存是非易失存储器,能够对称为块的存储器单元块进行擦写和再编程。任何flash器件的写入操做只能在空或已擦除的单元内进行,因此大多数状况下,在进行写入操做以前必须先执行擦除。NAND器件执行擦除操做是十分简单的,而NOR则要求在进行擦除前先要将目标块内全部的位都写为0。
因为擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操做的时间为5s,与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操做最多只须要4ms。
执行擦除时块尺寸的不一样进一步拉大了NOR和NADN之间的性能差距,统计代表,对于给定的一套写入操做(尤为是更新小文件时更多的擦除操做必须在基于NOR的单元中进行。这样,当选择存储解决方案时,设计师必须权衡如下的各项因素。
● NOR的读速度比NAND稍快一些。
● NAND的写入速度比NOR快不少。
● NAND的4ms擦除速度远比NOR的5s快。
● 大多数写入操做须要先进行擦除操做。
● NAND的擦除单元更小,相应的擦除电路更少。
接口差异 NOR flash带有SRAM接口,有足够的地址引脚来寻址,能够很容易地存取其内部的每个字节。
NAND器件使用复杂的I/O口来串行地存取数据,各个产品或厂商的方法可能各不相同。8个引脚用来传送控制、地址和数据信息。
NAND读和写操做采用512字节的块,这一点有点像硬盘管理此类操做,很天然地,基于NAND的存储器就能够取代硬盘或其余块设备。
容量和成本
NAND flash的单元尺寸几乎是NOR器件的一半,因为生产过程更为简单,NAND结构能够在给定的模具尺寸内提供更高的容量,也就相应地下降了价格。
NOR flash占据了容量为1~16MB闪存市场的大部分,而NAND flash只是用在8~128MB的产品当中,这也说明NOR主要应用在代码存储介质中,NAND适合于数据存储,NAND在CompactFlash、Secure Digital、PC Cards和MMC存储卡市场上所占份额最大。
可靠性和耐用性
采用flahs介质时一个须要重点考虑的问题是可靠性。对于须要扩展MTBF的系统来讲,Flash是很是合适的存储方案。能够从寿命(耐用性)、位交换和坏块处理三个方面来比较NOR和NAND的可靠性。
寿命(耐用性)
在NAND闪存中每一个块的最大擦写次数是一百万次,而NOR的擦写次数是十万次。NAND存储器除了具备10比1的块擦除周期优点,典型的NAND块尺寸要比NOR器件小8倍,每一个NAND存储器块在给定的时间内的删除次数要少一些。
位交换
全部flash器件都受位交换现象的困扰。在某些状况下(不多见,NAND发生的次数要比NOR多),一个比特位会发生反转或被报告反转了。
一位的变化可能不很明显,可是若是发生在一个关键文件上,这个小小的故障可能致使系统停机。若是只是报告有问题,多读几回就可能解决了。
固然,若是这个位真的改变了,就必须采用错误探测/错误更正(EDC/ECC)算法。位反转的问题更多见于NAND闪存,NAND的供应商建议使用NAND闪存的时候,同时使用EDC/ECC算法。
这个问题对于用NAND存储多媒体信息时倒不是致命的。固然,若是用本地存储设备来存储操做系统、配置文件或其余敏感信息时,必须使用EDC/ECC系统以确保可靠性。
坏块处理
NAND器件中的坏块是随机分布的。之前也曾有过消除坏块的努力,但发现成品率过低,代价过高,根本不划算。
NAND器件须要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用。在已制成的器件中,若是经过可靠的方法不能进行这项处理,将致使高故障率。
易于使用
能够很是直接地使用基于NOR的闪存,能够像其余存储器那样链接,并能够在上面直接运行代码。
因为须要I/O接口,NAND要复杂得多。各类NAND器件的存取方法因厂家而异。
在使用NAND器件时,必须先写入驱动程序,才能继续执行其余操做。向NAND器件写入信息须要至关的技巧,由于设计师毫不能向坏块写入,这就意味着在NAND器件上自始至终都必须进行虚拟映射。
软件支持
当讨论软件支持的时候,应该区别基本的读/写/擦操做和高一级的用于磁盘仿真和闪存管理算法的软件,包括性能优化。
在NOR器件上运行代码不须要任何的软件支持,在NAND器件上进行一样操做时,一般须要驱动程序,也就是内存技术驱动程序(MTD),NAND和NOR器件在进行写入和擦除操做时都须要MTD。
使用NOR器件时所须要的MTD要相对少一些,许多厂商都提供用于NOR器件的更高级软件,这其中包括M-System的TrueFFS驱动,该驱动被Wind River System、Microsoft、QNX Software System、Symbian和Intel等厂商所采用。
驱动还用于对DiskOnChip产品进行仿真和NAND闪存的管理,包括纠错、坏块处理和损耗平衡。
应用环境
NOR型闪存如今的容量通常在2M左右,比较适合频繁随机读写的场合,一般用于存储程序代码并直接在闪存内运行,手机就是使用NOR型闪存的大户,因此手机的“内存”容量一般不大。另外用在代码量小的嵌入式产品方面,能够把LINUX操做系统剪裁到2M之内在其上面直接运行。
NAND型闪存主要用来存储资料,我们经常使用的闪存产品,如闪存盘、数码存储卡、U盘、MP3等。另外用在那些要跑大型的操做系统的嵌入式产品上面,好比LINUX啊,WINCE啊。固然也能够把LINUX操做系统剪裁到2M之内在NOR Flash上运行。可是不少时候,一个嵌入式产品里面,操做系统占的存储空间只是一小部分,大部分都是给用户跑应用程序的。就像电脑,硬盘都是几百G,但是WINDOWNS操做系统所占的空间也不过几G而已。
总结:
简单地说,在计算机中,RAM 、ROM都是数据存储器。RAM 是随机存取存储器,它的特色是易挥发性,即掉电失忆。ROM 一般指固化存储器(一次写入,反复读取),它的特色与RAM 相反。
ROM又分一次性固化(PROM)、光擦除(EPROM)和电擦除(EEPROM)重写几种类型。举个例子来讲也就是,若是忽然停电或者没有保存就关闭了文件,那么ROM能够随机保存以前没有储存的文件可是RAM会使以前没有保存的文件消失。
RAM又分为静态随机存储器(SRAM)和动态随机存储器(DRAM)。
问与答
问题1:什么是DRAM、SRAM、SDRAM?答:名词解释以下DRAM--------动态随即存取器,须要不断的刷新,才能保存数据,并且是行列地址复用的,许多都有页模式SRAM--------静态的随机存储器,加电状况下,不须要刷新,数据不会丢失,并且通常不是行列地址复用的SDRAM-------同步的DRAM,即数据的读写须要时钟来同步
问题2:为何DRAM要刷新,SRAM则不须要?答:这是由RAM的设计类型决定的,DRAM用了一个T和一个RC电路,致使电容会漏电和缓慢放电,因此须要常常刷新来保存数据
问题3:咱们一般所说的内存用的是什么呢?这三个产品跟咱们实际使用有什么关系?答:内存(即随机存贮器RAM)可分为静态随机存储器SRAM,和动态随机存储器DRAM两种。咱们常常说的“内存”是指DRAM。而SRAM你们却接触的不多。
问题4:为何使用DRAM比较多、而使用SRAM却不多?答:1)由于制造相同容量的SRAM比DRAM的成本高的多,正由于如此,才使其发展受到了限制。所以目前SRAM基本上只用于CPU内部的一级缓存以及内置的二级缓存。仅有少许的网络服务器以及路由器上可以使用SRAM。2)存储单元结构不一样致使了容量的不一样:一个DRAM存储单元大约须要一个晶体管和一个电容(不包括行读出放大器等),而一个SRAM存储单元大约须要六个晶体管。DRAM和SDRAM因为实现工艺问题,容量较SRAM大,可是读写速度不如SRAM。
问题5:用得最多的DRAM有什么特色呢?它的工艺是什么状况?(一般所说的内存就是DRAM)答:1)DRAM须要进行周期性的刷新操做,咱们不该将SRAM与只读存储器(ROM)和Flash Memory相混淆,由于SRAM是一种易失性存储器,它只有在电源保持连续供应的状况下才可以保持数据。“随机访问”是指存储器的内容能够以任何顺序访问,而无论前一次访问的是哪个位置。2)DRAM和SDRAM因为实现工艺问题,容量较SRAM大。可是读写速度不如SRAM,可是如今,SDRAM的速度也已经很快了,时钟好像已经有150兆的了。那么就是读写周期小于10ns了。3)SDRAM虽然工做频率高,可是实际吞吐率要打折扣。以PC133为例,它的时钟周期是7.5ns,当CAS latency=2 时,它须要12个周期完成8个突发读操做,10个周期完成8个突发写操做。不过,若是以交替方式访问Bank,SDRAM能够在每一个周期完成一个读写操做(固然除去刷新操做)。4)其实如今的主流高速存储器是SSRAM(同步SRAM)和SDRAM(同步DRAM)。目前能够方便买到的SSRAM最大容量是8Mb/片,最大工做速度是166MHz;能够方便买到的SDRAM最大容量是128Mb/片,最大工做速度是133MHz。
问题6:用得比较少但速度很快,一般用于服务器cache的SRAM有什么特色呢?答:1)SRAM是静态的,DRAM或SDRAM是动态的,静态的是用的双稳态触发器来保存信息,而动态的是用电子,要不时的刷新来保持。SRAM是Static Random Access Memory的缩写,中文含义为静态随机访问存储器,它是一种类型的半导体存储器。“静态”是指只要不掉电,存储在SRAM中的数据就不会丢失。2)SRAM实际上是一种很是重要的存储器,它的用途普遍。SRAM的速度很是快,在快速读取和刷新时可以保持数据完整性。SRAM内部采用的是双稳态电路的形式来存储数据。因此SRAM的电路结构很是复杂。3)从晶体管的类型分,SRAM能够分为双极性与CMOS两种。从功能上分,SRAM能够分为异步SRAM和同步SRAM(SSRAM)。异步SRAM的访问独立于时钟,数据输入和输出都由地址的变化控制。同步SRAM的全部访问都在时钟的上升/降低沿启动。地址、数据输入和其它控制信号均于时钟信号相关。最后要说明的一点: SRAM不该该与SDRAM相混淆,SDRAM表明的是同步DRAM(Synchronous DRAM),这与SRAM是彻底不一样的。SRAM也不该该与PSRAM相混淆,PSRAM是一种假装成SRAM的DRAM。php