分享

一文读懂存储器

 alexlinsw 2020-11-09

存储器是计算机系统中的记忆设备,用来存放程序和数据。现代计算机系统都是以存储器为中心,计算机若要开始工作,必须先把有关程序和数据装到存储器中,程序才能开始运行。

在程序执行过程中,CPU所需的指令要从存储器中取出,运算器所需的原始数据要从存储器中取出,运算结果必须在程序执行完毕之前全部写到存储器中,各种输入输出设备也直接与存储器交换数据。因此,在计算机运行过程中,存储器是各种信息存储和交换的中心。 

存储器的构造及原理

存储器就是用来存放数据的地方。它是利用电平的高低来存放数据的,也就是说,它存放的实际上是电平的高、低,而不是我们所习惯认为的1234这样的数字,这样,我们的一个谜团就解开了,计算机也没什么神秘的吗。 

单片机里面都有这样的存储器,这是一个存储器的示意图:一个存储器就象一个个的小抽屉,一个小抽屉里有八个小格子,每个小格子就是用来存放“电荷”的,电荷通过与它相连的电线传进来或释放掉,至于电荷在小格子里是怎样存的,就不用我们操心了,你能把电线想象成水管,小格子里的电荷就象是水,那就好理解了。存储器中的每个小抽屉就是一个放数据的地方,我们称之为一个“单元”。 

有了这么一个构造,我们就能开始存放数据了,想要放进一个数据12,也就是00001100,我们只要把第二号和第三号小格子里存满电荷,而其它小格子里的电荷给放掉就行了。

可是问题出来了,一个存储器有好多单元,线是并联的,在放入电荷的时候,会将电荷放入所有的单元中,而释放电荷的时候,会把每个单元中的电荷都放掉,这样的话,不管存储器有多少个单元,都只能放同一个数,这当然不是我们所希望的

因此,要在结构上稍作变化,在每个单元上有个控制线,我想要把数据放进哪个单元,就给一个信号这个单元的控制线,这个控制线就把开关打开,这样电荷就能自由流动了,而其它单元控制线上没有信号,所以开关不打开,不会受到影响,这样,只要控制不一样单元的控制线,就能向各单元写入不一样的数据了,同样,如果要某个单元中取数据,也只要打开对应的控制开关就行了。

构成存储器的存储介质,目前主要采用半导体器件和磁性材料。存储器中最小的存储单位可以是一个双稳态半导体电路或一个CMOS晶体管或磁性材料的存储元,它可存储一个二进制代码。这个二进制代码位是存储器中最小的存储单位,称为一个存储位或存储元,若干个存储位可以组成一个存储单元,许多存储单元可以组成一个存储器,这些存储单元的集合也称为存储体。 

存储器的种类

根据存储材料的性能及使用方法的不同,存储器可以有各种不同的分类方法。

按存储介质分类

  • 1、半导体存储器

半导体存储器用半导体器件组成的存储器。

特点:集成度高、容量大、体积小、存取速度快、功耗低、价格便宜、维护简单。

主要分两大类:双极型存储器:TTL型和ECL型.金属氧化物半导体存储器(简称MOS存储器):静态MOS存储器和动态MOS存储器。

  • 2、磁存储器

磁表面存储器用磁性材料做成的存储器称为磁表面存储器,它包括磁盘存储器、

磁带存储器等。

特点:体积大、生产自动化程度低、存取速度慢,但存储容量比半导体存储器大得多且不易丢失。

  • 3、激光存储器 

信息以刻痕的形式保存在盘面上,用激光束照射盘面,靠盘面的不同反射率来读出信息。可分为只读型光盘(CD-ROM)、只写一次型光盘(WORM)和磁光盘(MOD)三种。

按存取方式分类

  • 1、随机存储器(RAM)

如果存储器中任何存储单元的内容都能被随机存取,且存取时间与存储单元的物理位置无关,则这种存储器称为随机存储器(RAM)。

RAM主要用来存放各种输入/输出的程序、数据、中间运算结果以及存放与外界交换的信息和做堆栈用。随机存储器主要充当高速缓冲存储器和主存储器。

  • 2、串行访问存储器(SAS)

如果存储器只能按某种顺序来存取,也就是说,存取时间与存储单元的物理位置有关,则这种存储器称为串行访问存储器。

串行存储器又可分为顺序存取存储器(SAM)和直接存取存储器(DAM)。顺序存取存储器是完全的串行访问存储器,如磁带,信息以顺序的方式从存储介质的始端开始写入(或读出);直接存取存储器是部分串行访问存储器,如磁盘存储器,它介于顺序存取和随机存取之间。

  • 3、只读存储器(ROM)

只读存储器是一种对其内容只能读不能写入的存储器,即预先一次写入的存储器。通常用来存放固定不变的信息。如经常用作微程序控制存储器。

目前已有可重写的只读存储器。常见的有掩模ROM(MROM),可擦除可编程ROM(EPROM),电可擦除可编程ROM(EEPROM)。ROM的电路比RAM的简单、集成度高,成本低,且是一种非易失性存储器,计算机常把一些管理、监控程序、成熟的用户程序放在ROM中。

按信息的可保存性分类

非永久记忆的存储器:断电后信息就消失的存储器,如半导体读/写存储器RAM。

永久性记忆的存储器:断电后仍能保存信息的存储器,如磁性材料做成的存储器以及半导体ROM。

按在计算机系统中的作用分 

根据存储器在计算机系统中所起的作用,可分为主存储器、辅助存储器、高速缓冲存储器、控制存储器等。为了解决对存储器要求容量大,速度快,成本低三者之间的矛盾,目前通常采用多级存储器体系结构,即使用高速缓冲存储器、主存储器和外存储器。 

存储器的分级结构

一个存储器的性能通常用速度、容量、价格三个主要指标来衡量。计算机对存储器的要求是容量大、速度快、成本低,需要尽可能地同时兼顾这三方面的要求。但是一般来讲,存储器速度越快,价格也越高,因而也越难满足大容量的要求。目前通常采用多级存储器体系结构,使用高速缓冲存储器、主存储器和外存储器,如图所示。 

CPU能直接访问的存储器称为内存储器(简称内存),包括高速缓冲存储器和主存储器。CPU不能直接访问的存储器称为外存储器(简称外存,也叫辅助存储器),外存的信息必须调入内存才能被CPU使用。

高速缓冲存储器(Cache)是计算机系统中的一个高速、小容量的半导体存储器,它位于高速的CPU和低速的主存之间,用于匹配两者的速度,达到高速存取指令和数据的目的。和主存相比,Cache的存取速度快,但存储容量小。

主存储器,简称主存,是计算机系统的主要存储器,用来存放计算机正在执行的大量程序和数据,主要由MOS半导体存储器组成。

外存储器,简称外存,是计算机系统的大容量辅助存储器,用于存放系统中的程序、数据文件及数据库。与主存相比,外存的特点是存储容量大,位成本低,但访问速度慢。目前,外存储器主要有磁盘存储器、磁带存储器和光盘存储器。

由Cache和主存储器构成的Cache-主存系统,其主要目标是利用与CPU速度接近的Cache来高速存取指令和数据以提高存储器的整体速度,从CPU角度看,这个层次的速度接近Cache,而容量和每一位的价格则接近主存;由主存和外存构成的虚拟存储器系统,其主要目的是增加存储器的容量,从整体上看,其速度接近于主存的速度,其容量则接近于外存的容量。

计算机存储系统的这种多层次结构,很好地解决了容量、速度、成本三者之间的矛盾。这些不同速度、不同容量、不同价格的存储器,用硬件、软件或软硬件结合的方式连接起来,形成一个系统。这个存储系统对应用程序员而言是透明的,在应用程序员看来它是一个存储器,其速度接近于最快的那个存储器,存储容量接近于容量最大的那个存储器,单位价格则接近最便宜的那个存储器。

半导体存储芯片

半导体存储器芯片按照读写功能可分为随机读写存储器(Random Access Memory,RAM)和只读存储器(Read Only Memory,ROM)两大类。RAM可读可写,断电时信息会丢失;ROM中的内容只能读出,不能写入,信息可永久保存,不会因为断电而丢失。

随机读写存储器

目前广泛使用的半导体随机读写存储器是MOS半导体存储器,按保存数据的机理分为静态存储器(Static RAM,SRAM)和动态存储器(Dynamic RAM,DRAM)。

  • 1、静态存储器(SRAM)

利用双稳态触发器来保存信息,只要不断电信息就不会丢失。静态存储器的集成度低,成本高,功耗较大,通常作为Cache的存储体。

  • 2、动态存储器(DRAM)

利用MOS电容存储电荷来保存信息,使用时需要不断给电容充电才能保持信息。动态存储器电路简单,集成度高,成本低,功耗小,但需要反复进行刷新(Refresh)操作,工作速度较慢,适合作为主存储器的主体部分。

刷新操作:为防止存储的信息电荷泄漏而丢失信息,由外界按一定规律不断地给栅极进行充电,补足栅极的信息电荷。

DRAM工作时必须要有刷新控制电路,操作比较复杂。由于要不间断地进行刷新,故称这种存储器为动态存储器。动态MOS存储器主要采用“读出”的方式进行刷新,依次读出存储器的每一行,就可完成对整个DRAM的刷新。

DRAM存储器的刷新需要有硬件线路的支持,这些控制线路可以集成在一个半导体芯片上,形成DRAM控制器。借助于DRAM控制器,可以把DRAM当作SRAM一样使用,从而为系统设计带来很大的方便。

  • 3、增强型DRAM(EDRAM)

EDRAM芯片是在DRAM芯片上集成一个高速小容量的SRAM芯片而构成的,这个小容量的SRAM芯片起到高速缓存的作用,从而使DRAM芯片的性能得到显著改进。

当CPU从主存DRAM中读取数据时,会将包含此数据的整个数据块都写入高速缓存SRAM内,下次读取连续地址数据时,CPU就可以从这个SRAM中直接取用,而不必到较慢的DRAM中读取,如此即可加快CPU的存取速度。

将由若干EDRAM芯片组成的存储模块做成小电路插件板形式,就是目前普遍使用的内存条。

只读存储器

只读存储器ROM是一种存储固定信息的存储器,其特点是在正常工作状态下只能读取数据,不能即时修改或重新写入数据。

只读存储器电路结构简单,且存放的数据在断电后不会丢失,特别适合于存储永久性的、不变的程序代码或数据(如常数表、函数、表格和字符等),计算机中的自检程序就是固化在ROM中的。

ROM的最大优点是具有不易失性。

只读存储器有不可重写只读存储器(MROM、PROM)和可重写只读存储器(EPROM、EEPROM、闪速存储器等)两大类。

不可重写只读存储器

  • 1、掩模只读存储器(MROM)

掩模只读存储器,又称固定ROM。这种ROM在制造时,生产厂家利用掩模(Mask)技术把信息写入存储器中,使用时用户无法更改,适宜大批量生产。

掩模只读存储器可分为二极管ROM、双极型三极管ROM和MOS管ROM三种类型。

  • 2、可编程只读存储器(PROM)

可编程只读存储器(Programmable ROM,简称PROM),是可由用户一次性写入信息的只读存储器,是在MROM的基础上发展而来的。

PROM的缺点是用户只能写入一次数据,一经写入就不能再更改。

可重写只读存储器

这类ROM由用户写入数据(程序),当需要变动时还可以进行修改,使用起来比较方便。可重写ROM有紫外线擦除EPROM、电擦除EEPROM和闪速存储器Flash ROM三种类型。

  • 1、光擦可编程只读存储器(EPROM)

EPROM 的特点是其中的内容可以用特殊的装置进行擦除和重写。EPROM出厂时,其存储内容为全“1”,用户可根据需要改写为“0”,当需要更新存储内容时,可将原存储内容擦除(恢复为全“1”),以便写入新的内容。

EPROM一般是将芯片置于紫外线下照射15~20分钟左右,以擦除其中的内容,然后用专用的设备(EPROM写入器)将信息重新写入,一旦写入则相对固定。

在闪速存储器大量应用之前,EPROM常用于软件开发过程中。

  • 2、电擦可编程只读存储器(EEPROM或E2PROM)

用紫外线擦除EPROM的操作复杂,速度很慢。EEPROM可以用电气方法将芯片中的存储内容擦除,擦除时间较快,甚至可以在联机状态下操作。

EEPROM既可使用字擦除方式又可使用块擦除方式,使用字擦除方式可擦除一个存储单元,使用块擦除方式可擦除数据块中所有存储单元。

  • 3、闪速存储器(Flash ROM)

闪速存储器Flash ROM是20世纪80年代中期出现的一种块擦写型存储器,是一种高密度、非易失性的读/写半导体存储器,它突破了传统的存储器体系,改善了现有存储器的特性。

Flash ROM中的内容或数据不像RAM一样需要电源支持才能保存,但又像RAM一样具有可重写性。在某种低电压下,其内部信息可读不可写,类似于ROM,而在较高的电压下,其内部信息可以更改和删除,类似于RAM。

Flash ROM 可以用软件在PC机中改写或在线写入,信息一旦写入即相对固定。因此,在PC 机中可用于存储主板的BIOS程序。由于能进行改写,便于用户自行升级BIOS,但这也给病毒以可乘之机,著名的CIH病毒正是利用这个特点来破坏BIOS,从而导致整个系统瘫痪的。

另外,由于单片存储容量大,易于修改,Flash ROM也常用于数码相机和U盘中,因其具有低功耗、高密度等特点,且没有机电移动装置,特别适合于便携式设备。

FLASH存储器

随着电子世界的发展,出现了FLASH存储器,FLASH存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据 (NVRAM的优势),U盘和MP3里用的就是这种存储器。

在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来 Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。 

目前Flash主要有两种NOR Flash和NADN Flash

NOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。

NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除了使用NAND Flah以外,还作上了一块小的NOR Flash来运行启动代码。

一般小容量的用NOR Flash,因为其读取速度快,多用来存储操作系统等重要信息,而大容量的用NAND FLASH,最常见的NAND FLASH应 用是嵌入式系统采用的DOC(Disk On Chip)和我们通常用的"闪盘",可以在线擦除。

  • NAND Flash和NOR Flash的比较

NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年,东芝公司发表了NAND flash结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。

“flash存储器”经常可以与“NOR存储器”互换使用。大多数情况下闪存只是用来存储少量的代码,这时NOR闪存更适合一些。而NAND则是高数据存储密度的理想解决方案。

NOR是现在市场上主要的非易失闪存技术。NOR主要应用在代码存储介质中。NOR的特点是应用简单、无需专门的 接口电路、传输效率高,它是属于芯片内执行(XIP, eXecute In Place),这样应用程序可以直接在(NOR型)flash闪存内运行,不必再把代码读到系统RAM中。

虚拟存储器

当代计算机系统的主存主要由半导体存储器组成,由于工艺和成本的原因,主存的容量受到限制。然而,计算机系统软件和应用软件的功能不断增强,程序规模迅速扩大,要求主存的容量越大越好,这就产生了矛盾。

为了给大的程序提供方便,使它们摆脱主存容量的限制,可以由操作系统把主存和辅存这两级存储系统管理起来,实现自动覆盖。

也就是说,一个大作业在执行时,其一部分地址空间在主存,另一部分在辅存,当所访问的信息不在主存时,则由操作系统而不是程序员来安排I/O指令,把信息从辅存调入主存。

从效果上来看,好像为用户提供了一个存储容量比实际主存大得多的存储器,用户无需考虑所编程序在主存中是否放得下或放在什么位置等问题。我们称这种存储器为虚拟存储器。

虚拟存储器只是一个容量非常大的存储器的逻辑模型,不是任何实际的物理存储器。它借助于磁盘等辅助存储器来扩大主存容量,使之为更大或更多的程序所使用。虚拟存储器指的是主存-外存层次,它以透明的方式为用户提供了一个比实际主存空间大得多的程序地址空间。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多