存储器是许多存储单元的集合,按单元号顺序排列。每个单元由若干二进制位构成,以表示存储单元中存放的数值,这种结构和数组的结构非常相似,故在VHDL语言中,通常由数组描述存储器 [1]。
存储器是用来存储程序和各种数据信息的记忆部件。存储器可分为主存储器(简称主存或内存)和辅助存储器(简称辅存或外存)两大类。和CPU直接交换信息的是主存。 [2] 主存的工作方式是按存储单元的地址存放或读取各类信息,统称访问存储器。主存中汇集存储单元的载体称为存储体,存储体中每个单元能够存放一串二进制码表示的信息,该信息的总位数称为一个存储单元的字长。存储单元的地址与存储在其中的信息是一一对应的,单元地址只有一个,固定不变,而存储在其中的信息是可以更换的。 [2] 指示每个单元的二进制编码称为地址码。寻找某个单元时,先要给出它的地址码。暂存这个地址码的寄存器叫存储器地址寄存器(MAR)。为可存放从主存的存储单元内取出的信息或准备存入某存储单元的信息,还要设置一个存储器数据寄存器(MDR)。 [2]
计算机的存储器可分成内存储器和外存储器。内存储器在程序执行期间被计算机频繁地使用,并且在一个指令周期期间是可直接访问的。外存储器要求计算机从一个外贮藏装置例如磁带或磁盘中读取信息。这与学生在课堂上做笔记相类似。如果学生没有看笔记就知道内容,信息就被存储在“内存储器”中。如果学生必须查阅笔记,那么信息就在“外存储器”中。 [3]
内存储器有很多类型。随机存取存储器( RAM)在计算期间被用作高速暂存记忆区。数据可以在RAM中存储、读取和用新的数据代替。当计算机在运行时RAM是可得到的。它包含了放置在计算机此刻所处理的问题处的信息。大多数RAM是“不稳定的”,这意味着当关闭计算机时信息将会丢失。只读存储器(ROM)是稳定的。它被用于存储计算机在必要时需要的指令集。存储在ROM内的信息是硬接线的”(即,它是电子元件的一个物理组成部分),且不能被计算机改变(因此称为“只读”)。可变的ROM,称为可编程只读存储器(PROM),可以将其暴露在一个外部电器设备或光学器件(如激光)中来改变。 [3] 数字成像设备中的内存储器必须足够大以存放至少一幅数字图像。一幅512 x512 x8位的图像需要1/4兆字节。因此,一台处理几幅这样的图像的成像设备需要几兆字节的内存。 [3]
外存储器用来储存不是实时成像任务中获取的图像,其与计算机有不同的分离层面。已经作出诊断的图像通常因为法律目的而存储多年。这些图像被称为“归档”(如磁带),它们必须在计算机上重新安装才能取回信息.硬盘驱动器中的图像被物理地安装在计算机上,且能在几毫秒内被访问。磁存储器中单个位被记录为磁畴,“北极向上”可能意味着1,“北极向下”可能意味着0。 [3] 最常用的外存储器设备以两种方式之一来存储信息。磁带,以大的盘式装置的形式在20世纪70年代作为计算机存储的一大支柱,现在则以小而封闭的盒式磁带的形式成为一种相对便宜的“离线”存储选择。尽管它在加载现代录音磁带和寻找到感兴趣数据的存储位置时可能花费几秒甚至几分钟,但购买和维修这一存储媒质的长期花费是较低的。 [3] 存储器 各种光学存储器装置也是可得到的。在光学存储器装置中存取一串特定数据所需的时间,可能与在(磁)硬盘存取数据所需的时间一样短。在光盘某一平滑镜面上存在着微小的缺陷。在光盘表面烧一个孔洞表示二进制数1,没有烧孔洞则表示0。烧制而成的光盘是“写一次,读多次”(WORM)光盘的实例。这个特征使得它们适合于长期的档案存储,且保持较高的存取速率。直径是12 cm的盘已经成为音乐录制和常规PC使用的标准。这些磁盘被称为“高密度盘”或CD ROM。与CD ROM具有相同大小,但能存储足够的数字信息来支持几小时的高质量视频的高容量盘,被称为数字视频盘(DVD)。DVD正变得流行。有时候根据要求利用机械装置从一大批光盘中提取和安装盘。这些装置被称为是“自动唱片点唱机”。 [3]构成存储器的存储介质主要采用半导体器件和磁性材料。存储器中最小的存储单位就是一个双稳态半导体电路或一个CMOS晶体管或磁性材料的存储元,它可存储一个二进制代码。由若干个存储元组成一个存储单元,然后再由许多存储单元组成一个存储器。 [4] 根据存储材料的性能及使用方法的不同,存储器有几种不同的分类方法。 [4]
1.按存储介质分类
半导体存储器:用半导体器件组成的存储器。 [4]
2.按存储方式分类
随机存储器:任何存储单元的内容都能被随机存取,且存取时间和存储单元的物理位置无关。 [4]
顺序存储器:只能按某种顺序来存取,存取时间与存储单元的物理位置有关。 [4] 3.按存储器的读写功能分类
只读存储器(ROM):存储的内容是固定不变的,只能读出而不能写入的半导体存储器。 [4]
随机读写存储器(RAM):既能读出又能写入的半导体存储器。 [4]
4.按信息的可保存性分类
非永久记忆的存储器:断电后信息即消失的存储器。 [4]
永久记忆性存储器:断电后仍能保存信息的存储器。 [4]
5.按在计算机系统中的作用分类
主存储器(内存):用于存放活动的程序和数据,其速度高、容量较小、每位价位高。 [4]
辅助存储器(外存储器):主要用于存放当前不活跃的程序和数据,其速度慢、容量大、每位价位低。 [4]
缓冲存储器:主要在两个不同工作速度的部件起缓冲作用。 [4] 存储系统的分级结构 存储器结构在MCS - 51系列单片机中,程序存储器和数据存储器互相独立,物理结构也不相同。程序存储器为只读存储器,数据存储器为随机存取存储器。从物理地址空间看,共有4个存储地址空间,即片内程序存储器、片外程序存储器、片内数据存储器和片外数据存储器,I/O接口与外部数据存储器统一编址。 [5] 为提高存储器的性能,通常把各种不同存储容量、存取速度和价格的存储器按层次结构组成多层存储器,并通过管理软件和辅助硬件有机组合成统一的整体,使所存放的程序和数据按层次分布在各存储器中。 [6] 主要采用三级层次结构来构成存储系统,由高速缓冲存储器Cache、主存储器和辅助存储器组成。图中自上向下容量逐渐增大,速度逐级降低,成本则逐次减少。 [6]
整个结构可看成主存一辅存和Cache-主存两个层次。在辅助硬件和计算机操作系统的管理下,可把主存一辅存作为一个存储整体,形成的可寻址存储空间比主存储器空间大得多。由于辅存容量大,价格低,使得存储系统的整体平均价格降低。Cache-主存层次可以缩小主存和CPU之间的速度差距,从整体上提高存储器系统的存取速度。 [6]
一个较大的存储系统由各种不同类型的存储设备构成,形成具有多级层次结构的存储系统。该系统既有与CPU相近的速度,又有极大的容量,而价格又是较低的。可见,采用多级层次结构的存储器系统可有效地解决存储器的速度、容量和价格之间的矛盾。 [6]
存储器 任何存储芯片的存储容量都是有限的。要构成一定容量的内存,单个芯片往往不能满足字长或存储单元个数的要求,甚至字长和存储单元数都不能满足要求。这时,就需要用多个存储芯片进行组合,以满足对存储容量的需求,这种组合就称为存储器的扩展。存储器扩展时要解决的问题主要包括位扩展、字扩展和字位扩展。 [7]
异步SRAM的接口是一种非常典型的半导体存储芯片接口,掌握了它的接口设计方法就意味着掌握了一系列半导体存储芯片接口的设计方法(包括 NoR Flash、E2PROM等),同时也为学习其他半导体存储芯片的接口设计打下了基础。本节以异步SRAM的接口为例,介绍半导体存储芯片接口设计的基本方法与原则。 [7]
Flash存储控制器功能包括存储器组织、启动选择、IAP、ISP、片上Flash编程及校验和计算。在存储器组织中介绍了Flash存储控制器映射和系统存储器映射。Flash存储控制器包含片上 Flash和 Boot loader片上存储器是可编程的,包括APRON、 LDROM、数据 Flash和用户配置区。地址映射包括 Flash存储映射和5个地址映射:支持IAP功能的 LDROM,不支持IAP功能的 LDROM,支持IAP功能的APRON,不支持IAP功能的 APROM,以及支持IAP功能的 Boot loader。 [8]
存储器芯片 存储管理要实现的目的是为用户提供方便、安全和充分大的存储空间。 [9]
方便是指将逻辑地址和物理地址分开,用户只在各自的逻辑地址空间编写程序,不必过问物理空间和物理地址的细节,地址的转换由操作系统自动完成;安全是指同时驻留在内存的多个用户进程相互之间不会发生干扰,也不会访问操作系统所占有的空间;充分大的存储空间是指利用虚拟存储技术,从逻辑上对内存空间进行扩充,从而可以使用户在较小的内存里运行较大的程序。 [9] 存储器层次框图 如何增加磁盘的存取速度,如何防止数据因磁盘的故障而丢失及如何有效地利用磁盘空间,一直是电脑专业人员和用户的困扰;而大容量磁盘的价格非常昂贵,对用户形成很大的负担。磁盘阵列技术的产生一举解决了这些问题。 [10] 过去十多年来,CPU的处理速度几乎是呈几何级数的跃升,内存(memory)的存取速度亦大幅增加,而数据储存装置主要是在与磁盘(hard disk)的存取速度相较之下,较为缓慢。整个I/O吞吐量不能和系统匹配,形成电脑系统的瓶颈,拉低了电脑系统的整体性能。若不能有效地提升磁盘的存取速度,CPU、内存及磁盘问的不平衡将使CPU及内存的改进形成浪费。 [10] 目前改进磁盘存取速度的方式主要有两种。 [10]
一是磁盘快取控制(disk cache controller),它将从磁盘读取的数据存在快取内存(cachememory)中以减少磁盘存取的次数,数据的读写都在快取内存中进行,大幅增加存取的速度,如要读取的数据不在快取内存中,或要写数据到磁盘时,才做磁盘的存取动作。这种方式在单工期环境(single-tasking environment)如DOS之下,对大量数据的存取有很好的性能(量小且频繁的存取则不然),但在多工(multi-tasking)环境之下(因为要不停地做数据交换的动作)或数据库的存取(因每一记录都很小)就不能显示其性能。这种方式没有任何安全保障。 [10]
二是使用磁盘阵列的技术。磁盘阵列是把多个磁盘组成一个阵列,当作单一磁盘使用,它将数据以分段(striping)的方式储存在不同的磁盘中,存取数据时,阵列中的相关磁盘一起动作,大幅减低数据的存取时间,同时有更佳的空间利用率。磁盘阵列所利用的不同的技术,称为RAID level,不同的level针对不同的系统及应用,以解决数据安全的问题。 [10]
一般高性能的磁盘阵列都是以硬件的形式来达成,进一步把磁盘快取控制及磁盘阵列结合在一个控制器(RAID controller)或控制卡上,针对不同的用户解决人们对磁盘输出/输入系统的四大要求:
(1)增加存取速度;
(2)容错(fault tolerance),即安全性;
(3)有效利用磁盘空间;
(4)尽量平衡CPU、内存及磁盘的性能差异,提高电脑的整体工作性能。 [10]
关于磁盘阵列技术的阵列原理,1987年,加州伯克利大学的一位人员发表了名为“磁盘阵列研究”的论文,正式提到了RAID也就是磁盘阵列,论文提出廉价的5.25〞及3.5〞的硬盘也能如大机器上的8”盘一样能提供大容量、高性能和数据的一致性,并详述了RAID的技术。 [10] 磁盘阵列针对不同的应用,使用不同技术,称为RAID level。RAID是RedundantArray of Inexpensive Disks的缩写,每- level代表一种技术。 目前业界公认的标准是RAIDO- RAID5。这个level并不代表技术的高低,leve15并不高于leve13,levell也不低于level4,至于要选择哪一种RAID level的产品,视用户的操作环境(operating environment)及应用(application)而定,与level的高低没有必然的关系。RAIDO没有安全的保障,但其快速,所以适合高速I/O的系统;RAID1适用于需安全性又要兼顾速度的系统,RAID2及RAID3适用于大型电脑及影像、CAD/CAM等处理;RAID5多用于OLTP,因有金融机构及大型数据处理中心的迫切需要,故使用较多而较有名气,但也因此形成很多人对磁盘阵列的误解,以为磁盘阵列非要RAID5不可。RAID4较少使用,和RAID5有其共同之处,但RAID4适合大量数据的存取。其他如RAID6、RAID7,乃至RAID10、RAID50、RAID100等,都是厂商各做各的,并无一致的标准,在此不作说明。 [10] 总而言之,RAIDO及RAID1最适合PC服务器及图形工作站的用户,提供最佳的性能及最便宜的价格,以低成本符合市场的需求。RAID2及RAID3适用于大档案且输入/输出需求不频繁的应用如影像处理及CAD/CAM等;而RAID5则适用于银行、金融、股市、数据库等大型数据处理中心的OLTP应用;RAID4与RAID5有相同的特性及应用方式,但其较适用于大型文件的读取。 [10] 存储器是计算机中数据存放的主要介质。随着近年来的发展, 存储器的变化日新月异, 各种新型存储器进入市场, 普及针对新型存储器的维护方法已经迫在眉睫。 [11]
从PCRAM和MRAM到RRAM等更多技术,一系列全新的存储技术正不断涌向晶圆厂。而推动这一进程的正是游戏和移动产品领域的技术进步, 以及云计算的发展。这些应用都非常重要,它们正在不断扩展当今主流存储技术的能力。例如,游戏应用需要速度极快的主存储器和高容量的辅助(存储类)存储器,从而在用户浑然不觉的情况下处理数据, 快速管理海量的图形数据。毕竟,没人希望在游戏玩到关键时刻,突然遇到意外的卡顿。对于云计算,其最大的优势在于能够通过网络访问海量数据,而无需将这些数据直接存储在我们的个人设备上。同样,速度也至关重要,因为除非必要,没人愿意多等待哪怕一纳秒。 [12] 半导体存储器 随着数据存储技术的迅猛发展,用户对存储性价比的要求也越来越高,而云存储技术无需硬件设备的支持,这就大大增加了存储的安全性能,用户也无需对硬件设施进行维护,减少了投入成本,提升存储效率。 [13]