半导体存储器的分类
如图1所示,半导体存储器主要分成随机读写存储器(Random Access Memory,RAM)和只读存储器(Read Only Memory,ROM)两大类。

图1 半导体存储器的分类
一、随机读写存储器
随机读写存储器分成静态随机存取存储器(Static RAM,SRAM)和动态随机存取存储器(Dynamic RAM,DRAM)两大类。
所谓的“静态”,是指这种存储器只要保持通电,里面储存的数据就可以恒常保持。相对之下,动态随机存取存储器(DRAM)里面所储存的数据就需要周期性地更新。然而,当电力供应停止时,SRAM储存的数据还是会消失(被称为volatile memory),这与在断电后还能储存资料的ROM或闪存是不同的。
SRAM不需要刷新电路即能保存它内部存储的数据。而DRAM(Dynamic Random Access Memory)每隔一段时间,要刷新充电一次,否则内部的数据即会消失。因此SRAM具有较高的性能,但是SRAM也有它的缺点,即它的集成度较低,功耗较DRAM大,相同容量的DRAM内存可以设计为较小的体积,但是SRAM却需要很大的体积。同样面积的硅片可以做出更大容量的DRAM,因此SRAM显得更贵。
计算机的内存条DDR SDRAM就属于DRAM,目前最新版本已经到了第5代,它在带宽速度、工作频率、单片芯片密度、功耗等方面都比第4代优越。DDR是Double Data Rate,双倍速率;DDR SDRAM是双倍速率同步动态随机存储器,人们习惯称为DDR。其中,SDRAM 是Synchronous Dynamic Random Access Memory的缩写,即同步动态随机存取存储器。而DDR SDRAM是Double Data Rate SDRAM的缩写,是双倍速率同步动态随机存储器的意思。


图2 计算机内存条
二、只读存储器
只读存储器主要有MASK ROM(掩膜ROM)、OTP ROM(One Time Programable ROM,一次性可编程ROM)、EPROM(Erasable Programable ROM,可擦除可编程ROM)、EEPROM(Electrically Erasable Programable ROM,电可擦除可编程ROM)和Flash ROM等种类。
2.1 MASK ROM
掩膜ROM是由生产过程中的一道掩膜工艺决定其中的信息,半导体厂家按照固定的线路制造的,一旦制造好后,其中的信息只能读而不能改变。这种ROM是工艺厂家根据客户所要存储的信息,设计专用的掩膜板进行生产的。这类ROM一般用于批量生产,成本比较低。
2.2 OTP ROM
OTP ROM是一次可编程只读存储器,可以进行片内编程操作,而且可以增强加密功能,但不可擦除,只能烧录一次程序,不能实现重复编程,不利于大量普及使用。
微芯是业内首家推出OTP ROM单片机的公司。OTP产品提供了介于掩膜和Flash产品特性之间的单片机,既可以进行一次性编程,而在生产量不大的情况下,其价格又接近掩模产品,因此迅速占领了市场。
2.3 EPROM
EPROM由以色列工程师Dov
Frohman发明,是一种断电后仍能保留数据的计算机储存芯片——即非易失性的(非挥发性)。它是一组浮栅晶体管,被一个提供比电子电路中常用电压更高电压的电子器件分别编程。一旦编程完成后,EPROM只能用强紫外线照射来擦除。EPROM的型号是以27开头的,如2732是一片4KB(32÷8=4)容量的EPROM芯片。
通过封装顶部能看见硅片的透明窗口,很容易识别EPROM,这个窗口同时用来进行紫外线擦除。可以将EPROM的玻璃窗对准阳光直射一段时间就可以擦除。一个编程后的EPROM芯片的“石英玻璃窗”一般使用黑色不干胶纸盖住, 以防止遭到阳光直射。EPROM内资料的写入要用专用的编程器,并且往芯片中写内容时必须要加一定的编程电压(VPP=12~24V,随不同的芯片型号而定)。

图3 UV-EPROM存储器
2.4 EEPROM
EEPROM是指电可擦可编程只读存储器。是一种掉电后数据不丢失的存储芯片,可通过高于普通电压的作用来擦除和重编程(重写)。不像EPROM芯片,EEPROM不须从计算机中取出即可修改。EEPROM可以在计算机上或专用设备上擦除已有信息,重新编程,一般用在即插即用(Plug & Play)。EEPROM的型号是以28开头的,如2816是一片2KB(16÷8=2)容量的EEPROM芯片。

图4 EEPROM存储器
2.5 Flash ROM
Flash ROM指快速擦写只读编程器,也就是我们常说的“闪存”。所谓“闪存”,它也是一种非易失性的内存,属于EEPROM的改进产品。
它的最大特点是必须按块(Block)擦除(每个区块的大小不定,不同厂家的产品有不同的规格), 而EEPROM则可以一次只擦除一个字节(Byte)。目前“闪存”被广泛用在PC机的主板上,用来保存BIOS程序,便于进行程序的升级。其另外一大应用领域是用来作为硬盘的替代品,具有抗震、速度快、无噪声、耗电低的优点,但是将其用来取代RAM就显得不合适,因为RAM需要能够按字节改写,而Flash ROM不需要。
Flash ROM(闪存)已经成为了目前最成功、流行的一种固态内存,与EEPROM相比具有读写速度快,而与SRAM相比具有非易失、以及价廉等优势。而基于NOR和NAND结构的闪存是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出 NOR Flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年东芝公司发表了NAND Flash技术(后将该技术无偿转让给韩国Samsung公司),强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。
图5所示为Intel公司生成的P28F020 Flash ROM,容量为256KB。

图5 Flash ROM存储器
普林斯顿结构 VS 哈佛结构
一、冯·诺依曼结构
冯·诺依曼结构,又称为普林斯顿体系结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。取指令和取操作数都在同一总线上,通过分时复用的方式进行;缺点是在高速运行时,不能达到同时取指令和取操作数,从而形成了传输过程的瓶颈。由于程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同,如英特尔公司的8086中央处理器的程序指令和数据都是16位宽。

目前使用冯·诺依曼结构的CPU和微控制器有很多。其中包括英特尔公司的8086及其他CPU,TI的MSP430处理器,ARM公司的ARM7,MIPS公司的MIPS处理器。
二、哈佛结构
哈佛结构是一种将程序指令存储和数据存储分开的存储器结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问,目的是为了减轻程序运行时的访存瓶颈。
如图,哈佛结构的计算机由CPU、程序存储器和数据存储器组成,程序存储器和数据存储器采用不同的总线,从而提供了较大的存储器带宽,使数据的移动和交换更加方便,尤其提供了较高的数字信号处理性能。

目前使用哈佛结构的中央处理器和微控制器有很多,除了上面提到的Microchip公司的PIC系列芯片,还有摩托罗拉公司的MC68系列、Zilog公司的Z8系列、Atmel公司的AVR系列和安谋公司的ARM9、ARM10和ARM11。
三、总结
随着CPU设计的发展,流水线的增加,指令和数据的互斥读取影响CPU指令执行的scale程度。哈佛结构中数据存储器与程序代码存储器分开,各自有自己的数据总线与地址总线,取操作数与取指令能同时进行。但这是需要CPU提供大量的数据线,因而很少使用哈佛结构作为CPU外部构架来使用。对于CPU内部,通过使用不同的数据和指令scale,可以有效的提高指令执行的效率,因而目前大部分计算机体系都是在CPU内部使用哈佛结构,在CPU外部使用冯·诺依曼结构。
思考:8051单片机的存储器属于哪种结构?