存储器

存储器

超大规模集成电路的制作技术,使CPU的速度变得惊人的高,而存储器的取数和存数的速度与它很难适配,这使计算机系统的运行速度在很大程度上受存储器速度的制约。此外,由于I/O设备不断增多,如果它们与存储器交换信息都通过CPU来实现,这将大大降低CPU的工作效率。为此,出现了I/O与存储器的直接存取方式(DMA),这也使存储器的地位更为突出。尤其在多处理机的系统中,各处理机本身都需与其主存交换信息,而且各处理机在互相通信中,也都需共享存放在存储器中的数据。因此,存储器的地位就更为显要。可见,从某种意义而言,存储器的性能已为计算机系统的核心。

存储器的种类繁多,从不同的角度对存储器可作不同的分类。

1。按存储介质分类

存储介质是指能寄存“0”,“1”两种代码并能区别两种状态的物质或元器件。存储人质主要有半导体器件、磁性材料和光盘等。

(1)半导体存储器

现代半导体存储器都用超大规模集成电路工艺制成芯片,其优点是体积小、功耗低、存取时间短。其缺点是当电源消失时,所存信息也随即丢失,它是一种易失性存储器。

(2)磁表面存储器

(3)磁芯存储器

(4)光盘存储器

2:按存取方式分类

按存取方式可把存储器分为随机存储器、只读存储器、顺序存取器和直接存取存储器。

3:按在计算机中的作用分类

按在计算机系统中的作用不同,存储器主要分为主存储器、辅助存储器、缓冲存储器。

主存储器(简称主存)的主要特点是它可以和CPU直接交换信息。辅助存储器(简称辅存)是主存储器的后援存储器,用来存放当前暂时不用的程序和数据,它不能与CPU直接交换信息。两者相比,主存速度快、容量小、每位价格高;辅存速度慢、容量大、每位价格低。缓冲存储器(简称缓存)用在两个速度不同的部件之中,例如,CPU与主存之间可设置一个快速缓存,起到缓冲作用。

虚拟存储系统:

在主存-辅存这一层次的不断发展,逐渐形成了虚拟存储系统。在这个系统中,程序员编程的地址范围与虚拟存储器的地址空间相对应。例如,机器指令地址码为24位,则虚拟存储器存储单元的个数可达16M。这个数与主存的实际存储单元的个数相比要大得多,称这类指令地址码为虚地址(虚存地址、虚拟地址)或逻辑地址,而把主存的实际地址称为物理地址或实地址。物理地址是程序在执行过程中能够真正访问的地址,也是实实在在的主存地址。对具有虚拟存储器的计算机系统而言,程序员编程时,可用的址空间远无大于主存空间,使程序以为自己占有一个容量极大的主存,其实这个主存并不存在,这就是将其称为虚拟存储器的原因。对虚拟存储器而言,其逻辑地址变换为物理地址的工作是由计算机系统的硬件和操作系统自动完成的,对程序员是透明的。当虚地址的内容在主存时,机器便可立即使用;若虚地址的内容不在主存,则必须先将此虚地址的内容传递到主存的合适单元后再为机器所用。

主存储器

1:主存中存储单元地址的分配

主存各存储单元的空间位置由单元地址号来表示的,而地址总线是用来指出存储单元地址号的,根据该地址可读出或写入一个存储字。不同的机器存储字长也不同,为了满足字符处理的需要,常用8位二进制数表示一个字节,因此存储字长都取8的倍数。通常计算机系统既可按字寻址,也可按字节建起。例如IBM 370机的字长为32位,它可按字节寻址,即它的每一个存储字包含4个可独立寻址的字节。字地址是用该字高位字节的地址来表示。

2:主存的技术指标。

主存的主要技术指标是存储容量和存储速度。

(1)存储容量

存储容量是指主存能存放二进制代码的总位数,即

存储容量=存储单元个数*存储字长

它的可用字节总数来表示,即

存储容量=存储单元个数*存储字长/8

目前的计算机存储容量大多以字节数来表示,例如,某机主存的存储容量为256MB,则按字节寻址的地址线位数应对应28位。

(2)存储速度。

存储速度是由存取时间和存取周期来表示的。

存取时间又称为存储器的访问时间(Memory Access Time),是指启动一次存储器操作(读或写)到完成该操作所需的全部时间。

存储周期是指存储器进行连续两次独立的存储器操作(如连续两次读操作)所需的最小间隔时间,通常存取周期大于存取时间。

(3)存储器带宽

与存取周期密切相关的指标为存储器带宽,它表示单位时间内存储器存取的信息量,单位可用字/秒或字节/稍或位/秒表示。

半导体存储芯片简介

半导体存储芯片的基本结构

半导体存储芯片采用超大规模集成电路制造工艺,在一个芯片内集成具有记忆功能的存储矩阵、译码驱动电路和读/写电路等。

译码驱动能把地址总线送来的地址信号翻译成对应存储单元的选择信号,该信号在读/写路的配合下完成对被中单元的读/写操作。

读/写电路包括读出放大器和写入电路,用来完成读/写操作。

存储芯片能过地址总线、数据总线和控制总线与外部连接。

数据线...

地址线...

控制线主要有读/写控制线与片选线两种。不同存储芯片的读/写控制线和片选线可以不同。有的芯片的读/写控制线共用1根(如2114),有的分用两根(如6264);有的芯片的片选线用1根,有的用2根。读/写控制线决定芯片进行读/写操作,片选 线用来选择存储芯片。由于半导体存储器是由许多芯片组成的,为此需用片选信号来确定哪个芯片被选中。例如,一个64K*8位的存储器可由32片16K*1位的存储芯片组成。每次读出一个存储字时,只需选 中8片。

随机存取存储器

随机存取存储器按其存储信息的原理不同,可分为静态RAM和动态RAM两大类。

1:静态RAM(Static RAM,SRAM)

静态RAM是用触 发器工作原理存储信息,因此即使信息读出后,它仍保持其原状态,不需要再生。但电源掉电时,原存信息丢失,故它属易失性半导体存储器。

2:动态RAM(Dynamic RAM,DRAM)

动态RAM是靠电容存储电荷的原理来寄存信息的。若电容上存有足够多的电荷表示存“1”,电容上无电荷表示存“0”。电容上的电荷一般只能维持1~2ms,因此即使电源不掉电,信息也会自动消失。为此,必须在2ms内对其所有存储单元恢复一次原状态,这个过程称为再生或刷新。由于它与静态RAM相比,具有集成度更高、功耗更低等特点,目前被各类计算机广泛应用。

只读存储器

存储器与CPU的连接

1:存储容量的扩展

由于单片存储芯片的容量总是有限的,很难满足实际的需要,因此,必须将苦干存储芯片连在一起才能组成足够容量的存储器,称为存储容量的扩展,通常有位扩展和字扩展。

2:存储器与CPU的连接

存储芯片与CPU芯片相边时,特别要注意片与片之间的地址线、数据线和控制线的连接。

(1)地址线的连接

存储芯片的容量不同,其地址线数也不同,CPU的地址线数往往比存储芯片的地址线数多。通常总是将CPU地址线的低位与存储芯片的地址线相连。CPU地址线的高位或在存储芯片扩充时用,或做其他用途,如片选 信号等。

(2)数据线的连接

CPU的数据线数与存储芯片的数据线数也不一定相等。此时,必须对存储芯片扩位,使其数据位数与CPU的数据线数相等。

(3)读/写命令线的连接

CPu读/写命令线一般可直接与存储芯片的读/写控制端相连,通常高电平为读,低电平为写。有些CPu的读/写命令线是分开的,此时CPU的读命令线应与存储芯片的允许读控制端相连,而CPU的写命令线则应与存储芯片的允许写控制端相连。

(4)片选线的连接

片选线的连接是CPU与存储芯片正确工作的关键。存储器由许多存储芯片组成,哪一片被选中完全取决于该存储芯片的片选控制端是否能接收到来自CPU片选 有效信号 。

高速缓冲存储器

cache工作原理

主存由2的n次方可编址的字组成,每个字有惟一的n位地址。为了与cache映射,将主存与缓存都分成若干块,每块内又包含若干个字,并使它们的块大小相同(即块内的字数相同)。这就将主存地址分为两段:高m位表示主存的块地址,低b位表示块内地址。同样缓存的地址也分为两段:高c位表示缓存的块号,低b位表示块内地址,且c远小于m。主存与缓存地址中都用b位表示其块内字数。

任何时刻都有一些主存块处于缓存块中。CPU欲读取主存某字时,有两种可能:一种是所需要的字已在缓存中,即可直接访问Cache(CPU与Cache之间通常一次传送一个字);另一个种是所需的字不在Cache内,此时需将该字所在的主存整个次调入Cache中(Cache与主存之间是字块传送)。如果主存块已调入缓存块,则称该主存块与缓存块建立了对应关系。

Cache-主存地址映射

由主存地址映射到Cache地址称为地址映射。地址映射方式很多,有直接映射(固定的映射关系)、全相联映射(灵活性大映射关系)、组相联映射(上述两种映射的折中)。

替换策略

当新的主存块需要调入Cache并且它的可用空间位置又被占满时,需要替换掉Cache的数据,这就产生了替换策略问题。理想的替换方法是把未来很少用到的或者很久才用到的数据块替换出来,但实际上很难做到。常用的替换算法有先进先出算法、近期最少使用算法和随机法。

猜你喜欢

转载自xieyaxiong.iteye.com/blog/1797177