第 5 章 半导体存储器 - 范文中心

第 5 章 半导体存储器

10/15

第5章 半导体存储器

回 顾:微型计算机系统的硬件组成,存储器在微机系统中的功能和作用。 本讲重点:微机存储器系统的基本概况,存储器的分类,内部存储器的系统结

构,动、静态读写存储器RAM 的基本存储单元与芯片。

讲授内容:

5.1概述

存储器是计算机(包括微机) 硬件系统的重要组成部分,有了存储器,计算机才具有“记忆”功能,才能把程序及数据的代码保存起来,才能使计算机系统脱离人的干预,而自动完成信息处理的功能。

存储器系统的三项主要性能是指标容量、速度和成本。

存储容量是存储器系统的首要性能指标,因为存储容量越大,则系统能够保存的信息量就越多,相应计算机系统的功能就越强;

存储器的存取速度直接决定了整个微机系统的运行速度,因此,存取速度也是存储器系统的重要的性能指标;

存储器的成本也是存储器系统的重要性能指标。

为了在存储器系统中兼顾以上三个方面的指标,目前在计算机系统中通常采用三级存储器结构,即使用高速缓冲存储器、主存储器和辅助存储器,由这三者构成一个统一的存储系统。从整体看,其速度接近高速缓存的速度,其容量接近辅存的容量,而其成本则接近廉价慢速的辅存平均价格。

一、 存储器分类

1.按构成存储器的器件和存储介质分类

按构成存储器的器件和存储介质主要可分为:磁芯存储器、半导体存储器、光电存储器、磁膜、磁泡和其它磁表面存储器以及光盘存储器等。 2.按存取方式分类

可将存储器分为随机存取存储器、只读存储器两种形式。 (1).随机存储器RAM(Random Access Memory)

又称读写存储器,指能够通过指令随机地、个别地对其中各个单元进行读/写操作的一类存储器。

按照存放信息原理的不同,随机存储器又可。静态RAM 是以双稳态元件作为基本的存储单元来保存信息的,因此,其保存的信息在不断电的情况下,是不会被破坏的;而动态RAM 是靠电容的充、放电原理来存放信息的,由于保存在电容上的电荷,会随着时间而泄露,因而会使得这种器件中存放的信息丢失,必须定时进行刷新。

(2).只读存储器ROM (Read-Only Memory)

在微机系统的在线运行过程中,只能对其进行读操作,而不能进行写操作的一类存储器。ROM 通常用来存放固定不变的程序、汉字字型库、字符及图形符号等。随着半导体技术的发展,只读存储器也出现了不同的种类,如可编程的只读存储器PROM(Programmable ROM) ,可擦除的可编程的只读存储器EPROM(Erasible Programmable ROM)和EEPROM(Electric Erasible Programmable ROM) 以及掩膜型只读存储器MROM(Masked ROM) 等,近年来发展起来的快擦型存储器(F1ash Memory)具有EEPROM 的特点。

3.按在微机系统中位置分类

() () 主存储器又称为系统的主存或者内存,位于系统主机的内部,CPU 可以直接对其中的单元进行读/写操作;辅存存储器又称外存,位于系统主机的外部,CPU 对其进行的存/取操作,必须通过内存才能进行;缓冲存储器位于主存与CPU 之间,其存取速度非常快,但存储容量更小,可用来解决存取速度与存储容量之间的矛盾,提高整个系统的运行速度。

另外,还可根据所存信息是否容易丢失,而把存储器分成易失性存储器和非易失性存储器。如半导体存储器(DRAM,SRAM) ,停电后信息会丢失,属易失性;而磁带和磁盘等磁表面存储器,属非易失性存储器。

存储器分类表如下所示(P87):

双极型半导体存储器 随机存储器

存储器(静态、动态)

主存储器可编程只读存储器PROM

只读存储器 可擦除可编程只读存储器EPROM ,EEPROM 掩膜型只读存储器MROM

存储器磁盘(软盘、硬盘、盘组) 存储器 辅助存储器 磁带存储器 光盘存储器 缓冲存储器

二、存储器的系统结构

一般情况下,一个存储器系统由以下几部分组成。 1.基本存储单元

一个基本存储单元可以存放一位二进制信息,其内部具有两个稳定的且相互对立的状态,并能够在外部对其状态进行识别和改变。不同类型的基本存储单元,决定了由其所组成的存储器件的类型不同。 2.存储体(以图示讲解说明)

一个基本存储单元只能保存一位二进制信息,若要存放M ×N 个二进制信息,就需要用M ×N 个基本存储单元,它们按一定的规则排列起来,由这些基本存储单元所构成的阵列称为存储体或存储矩阵。 3.地址译码器

由于存储器系统是由许多存储单元构成的,每个存储单元一般存放8位二进制信息,为了加以区分,我们必须首先为这些存储单元编号,即分配给这些存储单元不同的地址。地址译码器的作用就是用来接受CPU 送来的地址信号并对它进行译码,选择与此地址码相对应的存储单元,以便对该单元进行读/写操作。

存储器地址译码有两种方式,通常称为单译码与双译码。 (1).单译码

单译码方式又称字结构,适用于小容量存储器。 (2).双译码

在双译码结构中,将地址译码器分成两部分,即行译码器(又叫X 译码器) 和列译码器(又叫Y 译码器) 。X 译码器输出行地址选择信号,Y 译码器输出列地址选择信号。行列选择线交叉处即为所选中的内存单元,这种方式的特点是译码输出线较少。

4.片选与读/写控制电路

片选信号用以实现芯片的选择。对于一个芯片来讲,只有当片选信号有效时,才能对其进行读/写操作。片选信号一般由地址译码器的输出及一些控制信号来形成,而读/写控制电路则用来控制对芯片的读/写操作。 5.I/O电路

I/O电路位于系统数据总线与被选中的存储单元之间,用来控制信息的读出与写入,必要时,还可包含对I/O信号的驱动及放大处理功能。 6.集电极开路或三态输出缓冲器

为了扩充存储器系统的容量,常常需要将几片RAM 芯片的数据线并联使用或与双向的数据线相连,这就要用到集电极开路或三态输出缓冲器。 7.其它外围电路

对不同类型的存储器系统,有时,还专门需要一些特殊的外围电路,如动态RAM 中的预充电及刷新操作控制电路等,这也是存储器系统的重要组成部分。

4.2 读写存储器RAM

RAM(Random Access Memory)意指随机存取存储器,其工作特点是:在微机系统的工作过程中,可以随机地对其中的各个存储单元进行读/写操作。读写存储器分为静态RAM 与动态RAM 两种。

一、 静态RAM

1.基本存储单元

静态RAM 的基本存储单元是由两个增强型的NM0S 反相器交叉耦合而成的触发器,每个基本的存储单元由六个MOS 管构成,所以,静态存储电路又称为六管静态存储电路。

图5-1(a)为六管静态存储单元的原理示意图。其中T 1、T 2为控制管,T 3、T 4为负载管。这个电路具有两个相对的稳态状态,若Tl 管截止则A =“l ”(高电平) ,它使T 2管开启,于是B =“0”(低电平) ,而B =“0”又进一步保证了T 1管的截止。所以,这种状态在没有外触发的条件下是稳定不变的。同样,T 1管导通即A =“0”(低电平) ,T 2管截止即B =“1”(高电平) 的状态也是稳定的。因此,可以用这个电路的两个相对稳定的状态来分别表示逻辑“1”和逻辑“0”。

当把触发器作为存储电路时,就要使其能够接收外界来的触发控制信号,用以读出或改变该存储单元的状态,这样就形成了如图5-l(b)所示的六管基本存储电路。其中T5、T6为门控管。

地址

(I/O)

接Y 地址译码器

8I/O

(a) 六管静态存储单元的原理示意图 (b) 六管基本存储电路

图5-1 六管静态存储单元

当X 译码输出线为高电平时,T 5、T 6管导通,A 、B 端就分别与位线D 0及

D0相连;若相应的

Y 译码输出也是高电平,则T 7、T 8管(它们是一列公用的,

不属于某一个存储单元) 也是导通的,于是D 0及D0(这是存储单元内部的位线) 就与输入/输出电路的I/O线及I/O线相通。

写入操作:写入信号自I/O线及I/O线输入,如要写入“1”,则I/O线为高电平而I/O线为低电平,它们通过T 7、T 8管和T 5、T 6管分别与A 端和B 端相连,使A=“1”,B=“0”,即强迫T 2管导通,T l 管截止,相当于把输入电荷存储于T l 和T 2管的栅级。当输入信号及地址选择信号消失之后,T 5、T 6、T 7、T 8都截止。由于存储单元有电源及负载管,可以不断地向栅极补充电荷,依靠两个反相

器的交叉控制,只要不掉电,就能保持写入的信息“1”,而不用再生(刷新) 。若要写入“0”,则I/O线为低电乎而I/O线为高电平,使Tl 管导通,T 2管截止即A=“0”,B=“1”。

读操作:只要某一单元被选中,相应的T 5、T 6、T 7、T 8均导通,A 点与B 点分别通过T 5、T 6管与D 0及D0相通,D 0及D0又进一步通过T 7、T 8管与I/O及

I/O线相通,即将单元的状态传送到

I/O及I/O线上。

由此可见,这种存储电路的读出过程是非破坏性的,即信息在读出之后,原存储电路的状态不变。

2.静态RAM 存储器芯片Intel 2114

Intel 2114是一种1K ×4的静态RAM 存储器芯片,其最基本的存储单元就是如上所述的六管存储电路, 其它的典型芯片有Ietel 6116/6264/62256等。 (1).芯片的内部结构

如图5-2所示,它包括下列几个主要组成部分:

图5-2 Intel2114静态存储器芯片的内部结构框图

• 存储矩阵:Intel2114内部共有4096个存储电路,排成64×64的短阵形式; • 地址译码器:输入为10根线,采用两级译码方式,其中6根用于行译码,4根用于列译码;

• I/O控制电路:分为输入数据控制电路和列I /O 电路,用于对信息的输入/输出进行缓冲和控制;

• 片选及读/写控制电路:用于实现对芯片的选择及读/写控制。 (2).Intel 2114的外部结构

Intel2114RAM 存储器芯片为双列直插式集成

引脚图

电路芯片,共有18个引脚,引脚图如图5-3所示,

V CC A 7A 8A 9I/O1I/O2I/O3I/O4WE

A 6A 5A 4A 3A 0A 1A 2CS 各引脚的功能如下:

• A 0-A 9:10根地址信号输入引脚。 • WE : 读/写控制信号输入引脚,当WE 为低电 平时,使输入三态门导通,信息由数据总线通过输入数据控制电路写入被选中的存储单元;反之从所选中的存储单元读出信息送到数据总线。

• I/O1~I/O4 :4根数据输入/输出信号引脚, 图5-3 Intel 2114引脚图 • CS : 低电平有效,通常接地址译码器的输出端。 • +5V: 电源。 • GND :地。

二、 动态RAM

1.动态RAM 基本存储单元

静态RAM 的基本存储单元是一个RS 触发器,因此,其状态是稳定的,但由于每个基本存储单元需由6个MOS 管构成,就大大地限制了RAM 芯片的集成度。

如图5-4所示,就是一个动态RAM 的基本存储单元,

它由一个MOS 管T 1和位于其栅极上的分布电容c 构成。当栅极电容C 上充有电荷时,表示该存储单元保存信息“1”。反之,当栅极电容上没有电荷时,表示该单元保存信息“0”。由于栅极电容上的充电与放电是两个对立

S

的状态,因此,它可以作为一种基本的存储单元。图5-4 单管动态存储单元

写操作:字选择线为高电平,T 1管导通,写信号通过位线存入电容C 中; 读操作:字选择线仍为高电平,存储在电容C 上的电荷,通过T 1输出到数据线上,通过读出放大器,即可得到所保存的信息。

刷新:动态RAM 存储单元实质上是依靠T 1管栅极电容的充放电原理来保存信息的。时间一长,电容上所保存的电荷就会泄漏,造成了信息的丢失。因此,在动态RAM 的使用过程中,必须及时地向保存“1”的那些存储单元补充电荷,以维持信息的存在。这一过程,就称为动态存储器的刷新操作。

2.动态RAM 存储器芯片Intel 2164A

Intel2164A 是一种64K ×1的动态RAM 存储器芯片,它的基本存储单元就是

采用单管存储电路,其它的典型芯片有Ietel 21256/21464等。 (1).Intel 2164A的内部结构

如图5-5所示,其主要组成部分如下:

图5-5 Intel 2164A内部结构

• 存储体:64K ×1的存储体由4个128×128的存储阵列构成;

• 地址锁存器:由于Intel 2164A采用双译码方式,故其16位地址信息要分两次送入芯片内部。但由于封装的限制,这16位地址信息必须通过同一组引脚分两次接收,因此,在芯片内部有一个能保存8位地址信息的地址锁存器; • 数据输入缓冲器: 用以暂存输入的数据; • 数据输出缓冲器: 用以暂存要输出的数据;

• 1/4I/O门电路:由行、列地址信号的最高位控制,能从相应的4个存储矩阵中选择一个进行输入/输出操作;

• 行、列时钟缓冲器:用以协调行、列地址的选通信号; • 写允许时钟缓冲器:用以控制芯片的数据传送方向;

• 128读出放大器:与4个128×128存储阵列相对应,共有4个128读出放大器,它们能接收由行地址选通的4×128个存储单元的信息,经放大后,再写回原存储单元,是实现刷新操作的重要部分;

• 1/128行、列译码器: 分别用来接收7位的行、列地址,经译码后,从128×128个存储单元中选择一个确定的存储单元,以便对其进行读/写操作。

(2).Intel 2164A的外部结构

Intel 2164A 是具有16个引脚的双列直插式集成电路芯片,其引脚安排如图5-6所示。

• A0~A 7:地址信号的输入引脚,用来分时接收CPU 送来的8位行、列地址; • RAS :行地址选通信号输入引脚,低电平有效,兼作芯片选择信号。当RAS 为

N/CD IN WE A 0A 2A 1V DD

12345678

[**************]

SS D OUT A 6A 3A 4A 5A 7

低电平时,表明芯片当前接收的是行地址; • CAS :列地址选通信号输入引脚,低电平有效,表明当前正在接收的是列地址(此时RAS 应保持为低电平) ;

• WE : 写允许控制信号输入引脚,当其为低电平时,执行写操作;否则,执行读操作。

• DIN :数据输入引脚; • DOUT :数据输出引脚; 图5-6 Intel 2164A引脚 • Css:地; • N/C:未用引脚。

• VDD:十5V 电源引脚;

(3).Intel 2164A的工作方式与时序

① 读操作

在对Intel 2164A的读操作过程中,它要接收来自CPU 的地址信号,经译码选中相应的存储单元后,把其中保存的一位信息通过D OUT 数据输出引脚送至系统数据总线。

Intel 2164A的读操作时序如图4-7所示。

从时序图中可以看出,读周期是由行地址选通信号RAS 有效开始的,要求行地址要先于RAS 信号有效,并且必须在RAS 有效后再维持一段时间。同样,为了保证列地址的可靠锁存,列地址也应领先于列地址锁存信号CAS 有效,且列地址也必须在CAS 有效后再保持一段时间。

要从指定的单元中读取信息,必须在RAS 有效后,使CAS 也有效。由于从RAS 有效起到指定单元的信息读出送到数据总线上需要一定的时间,因此,存储单元中信息读出的时间就与CAS 开始有效的时刻有关。

RA S

CA S

地址WE

D OUT

图5-7 Intel 2164A读操作的时序

存储单元中信息的读写,取决于控制信号WE 。为实现读出操作,要求WE 控制信号无效,且必须在CAS 有效前变为高电平。 ② 写操作

在Intel 2164A的写操作过程中,它同样通过地址总线接收CPU 发来的行、列地址信号,选中相应的存储单元后,把CPU 通过数据总线发来的数据信息,保存到相应的存储单元中去。Intel2164A 的写操作时序如图5-8所示。

D OUT

高阻状态

图5-8 Intel 2164A写操作的时序

③ 读-修改-写操作

这种操作的性质类似于读操作与写操作的组合,但它并不是简单地由两个单独的读周期与写周期组合起来,而是在RAS 和CAS 同时有效的情况下,由WE 信号控制,先实现读出,待修改之后,再实现写入。其操作时序如图5-9所示。 ④ 刷新操作

Intel 2164A 内部有4×128个读出放大器,在进行刷新操作时,芯片只接收从地址总线上发来的行地址(其中RA 7不起作用),由RA 0~RA 6共七根行地址线在四个存储矩阵中各选中一行,共4×128个单元,分别将其中所保存的信息输出到4×128个读出放大器中,经放大后,再写回到原单元,即可实现512个单元的刷新操作。这样,经过128个刷新周期就可完成整个存储体的刷新。

图5-9 Intel 2164A读-修改-写操作的时序

RA S CA S

地址D OUT

图5-10 Intel 2164A唯RAS 有效刷新操作的时序

⑤数据输出

数据输出具有三态缓冲器,它由CAS 控制,当CAS 为高电平时,输出Dout 呈高阻抗状态,在各种操作时的输出状态有所不同。 ⑥页模式操作

在这种方式下,维持行地址不变(RAS 不变) ,由连续的CAS 脉冲对不同的列地址进行锁存,并读出不同列的信息,而RAS 脉冲的宽度有一个最大的上限值。在页模式操作时,可以实现存储器读、写以及读-修改-写等操作。

有关上述时序图中参数的具体值,请参考有关的技术手册。

习题与思考:

1.试说明存储器系统的主要性能指标。

2.存储器的哪一部分用来存储程序指令及像常数和查找表一类的固定不变的信息?哪一部 分用来存储经常改变的数据?

3.术语“非易失性存储器”是什么意思?PROM 和EPROM 分别代表什么意思? 4.微型计算机中常用的存储器有哪些类型?它们各有何特点?分别适用于哪些场合? 5.试比较静态RAM 和动态RAM 的优缺点,并说明有何种方法可解决掉电时动态RAM

5.3 只读存储器ROM

回 顾:微型计算机存储器系统的分类及读/写存储器RAM 。 本讲重点:只读存储器ROM 及其基本存储单元与芯片。

讲授内容:

5.3 只读存储器ROM

指在微机系统的在线运行过程中,只能对其进行读操作,而不能进行写操作的一类存储器,在不断发展变化的过程中,ROM 器件也产生了掩模ROM 、PROM 、EPROM 、EEPROM 等各种不同类型。

一、掩模ROM

如图5-11所示,是一个简单的4×4位的MOS ROM 存储阵列,采用单译码方式。这时,有两位地址输入,经译码后,输出四条字选择线,每条字选择线选中一个字,此时位线的输出即为这个字的每一位。

此时,若有管子与其相连(如位线1和位线4),

则相应的MOS 管就导通,这些位线的输出就是低电表

平,表示逻辑“0”;而没有管 图5-11 简单的4×4位的MOS ROM存储阵列 子与其相连的位线(如位线2和位线3),则输出就是高电平,表示逻辑“1”。

二、可编程的ROM

掩模ROM 的存储单元在生产完成之后,其所保存的信息就已经固定下来了,这给使用者带来了不便。为了解决这个矛盾,设计制造了一种可由用户通过简易设备写入信息的ROM 器件,即可编程的ROM ,又称为PROM 。

PROM 的类型有多种,我们以二极管破坏型PROM 为例来说明其存储原理。 这种PROM 存储器在出厂时,存储体中每条字线和位线的交叉处都是两个反向串联的二极管的PN 结,字线与位线之间不导通,此时,意味着该存储器中所有的存储内容均为“1”。如果用户需要写入程序,则要通过专门的PROM 写入电路,产生足够大的电流把要写入“1”的那个存储位上的二极管击穿,造成这个PN 结短路,只剩下顺向的二极管跨连字线和位线,这时,此位就意味着写入了“1”。读出的操作同掩模ROM 。

除此之外,还有一种熔丝式PROM ,用户编程时,

靠专用写入电路产生脉冲

电流,来烧断指定的熔丝,以达到写入“1”的目的。

对PROM 来讲,这个写入的过程称之为固化程序。由于击穿的二极管不能再正常工作,烧断后的熔丝不能再接上,所以这种ROM 器件只能固化一次程序,数据写入后,就不能再改变了。

三、 可擦除可编程的ROM

1.基本存储电路

可擦除可编程的ROM 又称为EPROM 。它的基本存储单元的结构和工作原

理如图5-12所示。

(a)

(b)

与普通的P 沟道增强型MOS 电路相似,这种EPROM

电路在N 型的基片上扩展了两个高浓度的P 型区,分别引出源极(S )和漏极(D),在源极与漏极之间有一个由多晶硅做成的栅极,但它是浮空图

SiO 2所包围。在

图5-12 P 沟道EPROM 结构示意图 的,被绝缘物

芯片制作完成时,每个单元的浮动栅极上都没有电荷,所以管子内没有导电沟道,源极与漏极之间不导电,其相应的等效电路如图5-12(b)所示,此时表示该存储单元保存的信息为“1”。

向该单元写入信息“0”:在漏极和源极(即S )之间加上十25v 的电压,同时加上编程脉冲信号(宽度约为50ns) ,所选中的单元在这个电压的作用下,漏极与源极之间被瞬时击穿,就会有电子通过SiO 2绝缘层注入到浮动栅。在高压电源去除之后,因为浮动栅被SiO 2绝缘层包围,所以注入的电子无泄漏通道,浮动栅为负,就形成了导电沟道,从而使相应单元导通,此时说明将0写入该单元。

清除存储单元中所保存的信息:必须用一定波长的紫外光照射浮动栅,使负电荷获取足够的能量,摆脱SiO 2的包围,以光电流的形式释放掉,这时,原来存储的信息也就不存在了。

由这种存储单元所构成的ROM 存储器芯片,在其上方有一个石英玻璃的窗口,紫外线正是通过这个窗口来照射其内部电路而擦除信息的,一般擦除信息需用紫外线照射l5~20分钟。

2.EPROM 芯片Intel 2716

Intel2716是一种2K ×8的EPROM 存储器芯片,双列直插式封装,24个引脚,其最基本的存储单元,就是采用如上所述的带有浮动栅的MOS 管,其它的

典型芯片有Ietel 2732/27128/27512等。 (1).芯片的内部结构

Intel 2716存储器芯片的内部结构框图如图5-13(b)所示,其主要组成部分包括:

V CC

A 7A 6A 5A 4A 3A 2A

1A 0O 0O 1O 2

数据输出[***********][**************]14V CC A 8

A 9

V PP A 10O 7O 6O 5O 4O 3

(a) 引脚分配图 (b) 内部结构框图

图5-13 Intel 2716的内部结构及引脚分配

• 存储阵列;Intel2716存储器芯片的存储阵列由2K ×8个带有浮动栅的MOS 管构成,共可保存2K ×8位二进制信息;

• X 译码器:又称为行译码器,可对7位行地址进行译码; • Y 译码器:又称为列译码器,可对4位列地址进行译码; • 输出允许、片选和编程逻辑:实现片选及控制信息的读/写; • 数据输出缓冲器:实现对输出数据的缓冲。 (2).芯片的外部结构:

Intel2716具有24个引脚,其引脚分配如图5-13(a)所示,各引脚的功能如下: • A l0~A 0:地址信号输入引脚,可寻址芯片的2K 个存储单元; • O 7~O 0: 双向数据信号输入输出引脚;

• CE :片选信号输入引脚,低电平有效,只有当该引脚转入低电平时,才能对相应的芯片进行操作;

• OE :数据输出允许控制信号引脚,输入,低电平有效,用以允许数据输出; • Vcc :+5v电源,用于在线的读操作;

• VPP :+25v电源,用于在专用装置上进行写操作; • GND :地。

(3).Intel2716的工作方式与操作时序 ① 读方式

这是Intel2716连接在微机系统中的主要工作方式。在读操作时,片选信号CE 应为低电平,输出允许控制信号OE 也为低电平其时序波形如图5-14所示。

读周期由地址有效开始,经时间tACC 后,所选中单元的内容就可由存储阵列中读出,但能否送至外部的数据总线,还取决于片选信号CE 和输出允许信号

OE 。时序中规定,必须从CE 有效经过t cs 时间以及从OE 有效经过时间t OE ,芯片的输出三态门才能完全打开,数据才能送到数据总线。

地CE 输出

高阻

上述时序图中参数的具体值,请参考有关的技术手册。

除了读方式外,2716

还有如下工作方式: ②禁止方式; ③备用方式;

输④写入方式;

⑤校核方式; 图5-14 Intel2716读时序波形 ⑥编程。

四、电可擦除可编程序的ROM (Electronic Erasible Programmable ROM)

电可擦除可编程序的ROM 也称为EEPROM 即E 2PROM 。E 2PROM 管子的结构示意图如图5-15所示。它的工作原理与EPROM 类似,当浮动栅上没有电荷时,管子的漏极和源极之间不导电,若设法使浮动栅带上电荷,则管子就导通。在E 2PROM 中,使浮动栅带上电荷和消去电荷的方法

与EPROM 中是不同的。在E 2PROM 中,漏极上面增加了一个隧道二极管,它在第

二栅与漏极之间的电压VG 的作用下(在电场的 图5-15 E 2PROM 结构 作用下),可以使电荷通过它流向浮动栅(即起编程作用);若VG 的极性相反也可以使电荷从浮动栅流向漏极(起擦除作用),而编程与擦除所用的电流是极小的,可用极普通的电源就可供给VG 。

E 2PROM 的另一个优点是:擦除可以按字节分别进行(不像EPROM ,擦除时把整个芯片的内容全变成“1”)。由于字节的编程和擦除都只需要10ms ,并且不需特殊装置,因此可以进行在线的编程写入。常用的典型芯片有

2816/2817/2864等。

五、 快擦型存储器(F1ash Memory)

快擦型存储器是不用电池供电的、高速耐用的非易失性半导体存储器,它以性能好、功耗低、体积小、重量轻等特点活跃于便携机(膝上型、笔记本型等) 存储器市场,但价格较贵。

快擦型存储器具有EEPROM 的特点,又可在计算机内进行擦除和编程,它的读取时间与DRAM 相似,而写时间与磁盘驱动器相当。快擦型存储器有5V 或12V 两种供电方式。对于便携机来讲,用5V 电源更为合适。快擦型存储器操作简便,编程、擦除、校验等工作均已编成程序,可由配有快擦型存储器系统的中央处理机予以控制。

快擦型存储器可替代EEPROM ,在某些应用场合还可取代SRAM ,尤其是对于需要配备电池后援的SRAM 系统,使用快擦型存储器后可省去电池。快擦型存储器的非易失性和快速读取的特点,能满足固态盘驱动器的要求,同时,可替代便携机中的ROM ,以便随时写入最新版本的操作系统。快擦型存储器还可应用于激光打印机、条形码阅读器、各种仪器设备以及计算机的外部设备中。典型的芯片有27F256/28F016/28F020等。

习题与思考:

1.计算机的电源掉电后再接电时(系统中无掉电保护装置),存储在各类存储器中的 信息是否仍能保存?试从各类存储器的基本原理上来分析说明。 2.“ROM 是只读存储器”这种说法正确吗?正确的说法应该怎样? 3.试从ROM 器件的发展过程,说明读、写之间的辩证关系。

5.4 存储器芯片的扩展及其与系统总线的连接

回 顾:微型系统的系统总线结构及存储器组织。

本讲重点:按实际应用的需要,由不同规格、类型的存储器芯片,通过与系统

总线的连接,构成存储器系统。

讲授内容:

5.4 存储器芯片的扩展及其与系统总线的连接

微机系统的规模、应用场合不同,对存储器系统的容量、类型的要求也必 不相同,一般情况下,需要用不同类型,不同规格的存储器芯片,通过适当的 硬件连接,来构成所需要的存储器系统,这就是本节所需要讨论的内容。

一、 存储器芯片与CPU 的连接

1.引言

在微型系统中,CPU 对存储器进行读写操作,首先要由地址总线给出地 址信号,选择要进行读/写操作的存储单元,然后通过控制总线发出相应的读/写 控制信号,最后才能在数据总线上进行数据交换。所以,存储器芯片与CPU 之间的连接,实质上就是其与系统总线的连接,包括: • 地址线的连接; • 数据线的连接; • 控制线的连接;

在连接中要考虑的问题有以下几个方面: 2.CPU 总线的负载能力

在设计CPU 芯片时,一般考虑其输出线的直流负载能力,为带一个TTL 负载。现在的存储器一般都为MOS 电路,直流负载很小,主要的负载是电容 负载,故在小型系统中,CPU 是可以直接与存储器相连的,而较大的系统中, 若CPU 的负载能力不能满足要求,可以(就要考虑CPU 能否带得动,需要时 就要加上缓冲器,)由缓冲器的输出再带负载。 3.CPU 的时序和存储器的存取速度之间的配合问题

CPU 在取指和存储器读或写操作时,是有固定时序的,用户要根据这些来确定对存储器存取速度的要求,或在存储器已经确定的情况下,考虑是否需要T w 周期,以及如何实现。 4.存储器的地址分配和片选问题

内存通常分为RAM 和ROM 两大部分,而RAM 又分为系统区(即机器的监控程序或操作系统占用的区域) 和用户区,用户区又要分成数据区和程序区,ROM 的分配也类似,所以内存的地址分配是一个重要的问题。另外,目前生产的存储器芯片,单片的容量仍然是有限的,通常总是要由许多片才能组成一个存储器,这里就有一个如何产生片选信号的问题。 5.控制信号的连接

CPU 在与存储器交换信息时,通常有以下几个控制信号(对8088/8086来说) :

IO /M(IO/M ),RD , WR 以及WAIT 信号。这些信号如何与存储器要求的控制信号相连,以实现所需的控制功能。

二、 存储器芯片的扩展

存储器芯片扩展的方法有以下两种:

1.存储器芯片的位扩充

适用场合:存储器芯片的容量满足存储器系统的要求,但其字长小于存储器系统 的要求。

例1 用1K ×4的2114芯片构成lK ×8的存储器系统。

分析: 由于每个芯片的容量为1K ,故满足存储器系统的容量要求。但由于每个芯片只能提供4位数据,故需用2片这样的芯片,它们分别提供4位数据至系统的数据总线,以满足存储器系统的字长要求。

设计要点:

● 将每个芯片的10位地址线按引脚名称一一并联,按次序逐根接至系统地址总线的低10位。

● 数据线则按芯片编号连接,1号芯片的4位数据线依次接至系统数据总线的D 0-D 3,2号芯片的4位数据线依次接至系统数据总线的D 4-D 7。

● 两个芯片的WE 端并在一起后接至系统控制总线的存储器写信号(如CPU 为8086/8088,也可由WR 和IO /M 或IO/M 的组合来承担)。 ●

CS 引脚也分别并联后接至地址译码器的输出,而地址译码器的输入则由系统

地址总线的高位来承担。 具体连线见图5-16。

当存储器工作时,系统根据高位地址的译码同时选中两个芯片,而地址码的低位也同时到达每一个芯片,从而选中它们的同一个单元。在读/写信号的作用下,两个芯片的数据同时读出,送上系统数据总线,产生一个字节的输出,或者同时将来自数据总线上的字节数据写入存储器。

图5-16 用2114组成1K ×8的存储器连线

根据硬件连线图,我们还可以进一步分析出该存储器的地址分配范围如下:(假设只考虑16位地址)

地 址 码 芯 片 的 地 址 范 围 15121110 0 0 0 0 0 H : : : :

× × 0 0 1 1 0 3 F F H ×表示可以任选值,在这里我们均选0。

这种扩展存储器的方法就称为位扩展,它可以适用于多种芯片,如可以用8片2164A 组成一个64K ×8的存储器等。 2.存储器芯片的字扩充

适用场合:存储器芯片的字长符合存储器系统的要求,但其容量太小。 例2 用2K ×8的2716A存储器芯片组成8K ×8的存储器系统。

分析:由于每个芯片的字长为8位,故满足存储器系统的字长要求。但由于每个芯片只能提供2K 个存储单元,故需用4片这样的芯片,以满足存储器系统的容量要求。

设计要点:同位扩充方式相似。

● 先将每个芯片的11位地址线按引脚名称一一并联,然后按次序逐根接至系统地址总线的低11位。

● 将每个芯片的8位数据线依次接至系统数据总线的D 0-D 7。

● 两个芯片的OE 端并在一起后接至系统控制总线的存储器读信号(这样连接的原因同位扩充方式),

● 它们的CE 引脚分别接至地址译码器的不同输出,地址译码器的输入则由系统地址总线的高位来承担。连线见图5-17。

图5-17 用2716组成8K ×8的存储器连线

当存储器工作时,根据高位地址的不同,系统通过译码器分别选中不同的芯片,低位地址码则同时到达每一个芯片,选中它们的相应单元。在读信号的作用

下,选中芯片的数据被读出,送上系统数据总线,产生一个字节的输出。

同样,根据硬件连线图,我们也可以进一步分析出该存储器的地址分配范围如下表:(假设只考虑16位地址)

地 址 码 芯片的地址范围 对应芯片编号 1513 12 11 0 0 0 0 0 H

: : 2716-1 × × 0 0 1 1 1 0 7 F F H 0 0 8 0 0 H

: : 2716-2 × × 0 1 1 1 1 0 F F F H × × 1 0 0 0 0 1 0 0 0 H

: : 2716-3 × × 1 0 1 1 1 1 7 F F H × × 1 1 0 0 0 1 8 0 0 H

: : 2716-4 × × 1 1 1 1 1 1 F F F H

×表示可以任选值,在这里我们均选0

如可以用8片27128(16k ×8)组成一个×8

3.同时进行位扩充与字扩充

适用场合:存储器芯片的字长和容量均不符合存储器系统的要求,这时就需要用多片这样的芯片同时进行位扩充和字扩充,以满足系统的要求。 例3 用1K ×4的2114芯片组成2K ×8的存储器系统。

分析:由于芯片的字长为4位,因此首先需用采用位扩充的方法,用两片芯片组成1K ×8的存储器。再采用字扩充的方法来扩充容量,使用两组经过上述位扩充的芯片组来完成。

设计要点:每个芯片的10根地址信号引脚宜接接至系统地址总线的低10位,每组两个芯片的4位数据线分别接至系统数据总线的高/低四位。地址码的A 10、A 11经译码后的输出,分别作为两组芯片的片选信号,每个芯片的WE 控制端直接接到CPU 的读/写控制端上,以实现对存储器的读/写控制。硬件连线如图5-18

图5-18 用2114 组成2K ×8的存储器连线

当存储器工作时,根据高位地址的不同,系统通过译码器分别选中不同的芯片组,低位地址码则同时到达每一个芯片组,选中它们的相应单元。在读/写信号的作用下,选中芯片组的数据被读出,送上系统数据总线,产生一个字节的输出,或者将来自数据总线上的字节数据写入芯片组。

同样,根据硬件连线图,我们也可以进一步分析出该存储器的地址分配范围如下:(假设只考虑16位地址)

规定存储器的地址范围从0800H 开始,并要连续存放,对以上硬件连线图该如何改动呢?

由于低位地址仍从0开始,因此低位地址仍直接接至芯片组。于是,要改动的是译码器和高位地址的连接。我们可以将两个芯片组的片选输入端分别接至译码器的Y 2和Y 3输出端,即当A 11、A 10为10时,选中2114-1,则该芯片组的地址范围为 0800H-0BFFH ,而当A 11、A 10为11时,选中2114-2,则该芯片组的地址范围为 0C00H-0FFFH 。同时,保证高位地址为0(即A 15-A 12为0)。这样,此存储器的地址范围就是0800H-0FFFH 了。(具体连线自己考虑)

以上例子所采用的片选控制的译码方式称为全译码方式,这种译码电路较复杂,但是,由此选中的每一组的地址是确定且唯一的。有时,为方便起见,也可以直接用高位地址(如A 10—A 15中的任一位)来控制片选端。例如用A 10来控制,

如图5-19所示。

粗看起来,这两组的地址分配与全译码时相同,但是当用A l0这一个信号作为片选控制

时,只要A l0=0,A 11—A 15可为任意值都选中

第一组;而只要A 10=1,A ll —A 15可为任意值

都选中第二组。这种选片控制方式称为线选法。 图5-19 线选法示例 线选法节省译码电路,设计简单,但必须

注意此时芯片的地址分布以及各自的地址重叠区,以免出现错误。

例4 一个存储器系统包括2K RAM和8K ROM,分别用1K ×4的2114芯片和

2K ×8的2716芯片组成。要求ROM 的地址从1000H 开始,RAM 的地址从3000H

开始。完成硬件连线及相应的地址分配表。

图5-20 2K RAM和8K ROM存储器系统连线图

分析:该存储器的设计可以参考本节的例2和例3。所不同的是,要根据题目的

要求,按规定的地址范围,设计各芯片或芯片组片选信号的连接方式。整个存储

器的硬件连线如图5-20所示。

根据硬件连线图,我们可以分析出该存储器的地址分配范围如下。(假设只

考虑16位地址)

地 址 码

芯片的地址范围 对应芯片编号

[1**********]0 : : 2716-1

0 0 0 1 0 1 1 1 1 7 F F H

: : 2716-2

0 0 0 1 1 1 1 1 1 F F F H

: : 2716-3

0 0 1 0 0 1 1 1 2 7 F F H

0 0 1 0 1 0 0 0 2 8 0 0 H

: : 2716-4

0 0 1 0 1 1 1 1 2 F F F H

0 0 1 1 0 0 0 0 3 0 0 0 H

: : 2114-1

0 0 1 1 0 0 1 1 3 3 F F H

: : 2114-2

0 0 1 1 1 0 1 1 3 B F F H

习题与思考:

1.试画出容量为2K*8的RAM 连接图(CPU 用8088,RAM 用2114,RAM 地址区

为0800H~0FFFH)。

2.试画出容量为8K*8的ROM 连接图(CPU 用8086,EPROM 用2716,ROM 地址

区从4000H 开始)。

3.一台8位微机系统(CPU 为8088)需扩展内存16K ,其中ROM 为8K ,RAM 为

8K 。ROM 选用EPROM2716,RAM 选用2114,地址空间从0000H 开始,要求ROM

在低地址,RAM 在高地址。试画出存储器组构图,并写出各芯片的存储分配范围。

5.5 高速缓冲存储器Cache

回 顾:微型系统的存储器组织,内、外存的基本概念,存储器系统的容量、

存取速度及成本等项性能指标及其相互关系。

本讲重 点:高速缓冲存储器Cache 的基本概念与作用,Cache-主存存储结构及

其实现,Cache 的基本操作,地址映象方式,替换策略,虚拟存储

器的基本概念及实现方法。

讲授内容:

5.5 高速缓冲存储器Cache

一、 问题的提出

微机系统中的内部存储器通常采用动态RAM 构成,具有价格低,容量大的

特点,但由于动态RAM 采用MOS 管电容的充放电原理来表示与存储信息,其

存取速度相对于CPU 的信息处理速度来说较低。这就导致了两者速度的不匹配,

也就是说,慢速的存储器限制了高速CPU 的性能,影响了微机系统的运行速度,

并限制了计算机性能的进一步发挥和提高。高速缓冲存储器就是在这种情况下产

生的。

二、 存储器访问的局部性

微机系统进行信息处理的过程就是执行程序的过程,这时,CPU 需要频繁地

与内存进行数据交换,包括取指令代码及数据的读写操作。通过对大量典型程序

的运行情况分析结果表明,在一个较短的时间内,取指令代码的操作往往集中在

存储器逻辑地址空间的很小范围内(因为在多数情况下,指令是顺序执行的,因

此指令代码地址的分布就是连续的,再加上循环程序段和子程序段都需要重复执

行多次,因此对这些局部存储单元的访问就自然具有时间上集中分布的倾向);

数据读写操作的这种集中性倾向虽不如取指令代码那么明显,但对数组的存储和

访问以及工作单元的选择也可以使存储器单元相对集中。这种对局部范围的存储

器单元的防问比较频繁,而对此范围以外的存储单元访问相对甚少的现象,称为程序访问的局部性。

三、 Cache-主存存储结构及其实现

为了解决存储器系统的容量、存取速度及单位成本之间的矛盾,可以采用

Cache-主存存储结构,即在主存和CPU 之间设置高速缓冲存储器Cache ,把正在

执行的指令代码单元附近的一部分指令代码或数据从主存装入Cache 中,供CPU

在一段时间内使用,由于存储器访问的局部性,在一定容量Cache 的条件下,我

们可以做到使CPU 大部分取指令代码及进行数据读写的操作都只要通过访问

Cache ,而不是访问主存而实现。 优点:

● Cache 的读写速度几乎能够与CPU 进行匹配,所以微机系统的存取速度可以

大大提高;

● Cache 的容量相对主存来说并不是太大,所以整个存储器系统的成本并没有

上升很多。

采用了Cache-主存存储结构以后,整个存储器系统的容量及单位成本能够主

存相当,而存取速度可以与Cache 的读写速度相当,这就很好地解决了存储器系

统的上述三个方面性能之间的矛盾。

如图5-21,是Cache-主存结构

示意图,在主存和CPU 之间增加了一个容

量相对较小的双极型静态RAM 作为高速缓

冲存储器Cache ,为了实现Cache 与主存之

间的数据交换,系统中还相应地增加了辅

助的硬件电路。

管理这两级存储器的部件为Cache 控制

器,CPU 与主存之间的数据传输必须经过

图5-21 主存-Cache 层次示意图 Cache 控制器(见图5-22) 进行,Cache 控制器

将来自CPU 的数据读写请求,转向Cache 存储器,如果数据在Cache 中,则CPU

对Cache 进行读写操作,称为一次命中。命中时,CPU 从Cache 中读(写) 数据。

由于Cache 速度与CPU 速度相匹配,因此不需要插入等待状态,故CPU 处于零

等待状态,也就是说也就是说CPU 与Cache 达到了同步,因此,有时称高速缓

存为同步Cache ;若数据不在Cache 中,则CPU 对主存操作,称为一次失败。

失败时, CPU 必须在其总线周期中插入等待周期T W 。

图5-22 Cache 存储系统基本结构

在主存—Cache 存储体系中,所有的程序代码和数据仍然都存放在主存中,

Cache 存储器只是在系统运行过程中,动态地存放了主存中的一部分程序块和

数据块的副本,这是一种以块为单位的存储方式。块的大小称为“块长”,块长

一般取一个主存周期所能调出的信息长度。

假设主存的地址码为n 位,则其共有2n 个单元,将主存分块(block),每块

有B 个字节,则一共可以分成2n /B块。Cache 也由同样大小的块组成,由于其

容量小,所以块的数目小得多,也就是说,主存中只有一小部分块的内容可存放

在Cache 中。

在Cache 中,每一块外加有一个标记,指明它是主存中哪一块的副本,所

以该标记的内容相当于主存中块的编号。假定主存地址为n =M +b 位,其中M

称为主存的块地址,而b 则称为主存的块内地址,即:主存的块数为2M,块内

字节数为2b ;同样,假定Cache 地址n =N十b 位,其中N 称为Cache 块地址,

N b 而b 为Cache 的块内地址,即Cache 的块数为2,块内字节数为2,通常使主

存与Cache 的块内地址码数量相同,即b =b ,即Cache 的块内字节数与主存的

块内字节数相同。

当CPU 发出读请求时,将主存地址M位(或M位中的一部分) 与Cache 某块的标记相比较,根据其比较结果是否相等而区分出两种情况:当比较结果相等时,

说明需要的数据已在Cache 中,那么直接访问Cache 就行了,在CPU 与Cache

之间,通常一次传送一个字;当比较结果不相等时,说明需要的数据尚未调入

Cache ,那么就要把该数据所在的整个字块从主存一次调进来。

四、 Cache-主存存储结构的命中率

命中率指CPU 所要访问的信息在Cache 中的比率,相应地将所要访问的信

息不在Cache 中的比率称为失效率。

Cache 的命中率除了与Cache 的容量有关外,还与地址映象的方式有关。

目前,Cache 存储器容量主要有256KB 和512KB 等。这些大容量的Cache

存储器,使CPU 访问Cache 的命中率高达90%至99%,大大提高了CPU 访问

数据的速度,提高了系统的性能。

五、 两级Cache-主存存储结构

CPU 工作时,首先在第一级Cache(微处理器内的Cache) 中查找数据,如果

找不到,则在第二级Cache(主机板上的Cache) 中查找,若数据在第二级Cache

中,Cache 控制器在传输据的同时,修改第一级Cache ;如果数据既不在第一级

Cache 也不在第二级Cache 中,Cache 控制器则从主存中获取数据,同时将数据

提供给CPU 并修改两级Cache 。两级Cache 结构,提高了命中率,加快了处理

速度,使CPU 对Cache 的操作命中率高达98%以上。图5-22给出了主板上Cache

存储器系统的基本结构。

六、 Cache 的基本操作

1.读操作

当CPU 发出读操作命令时,要根据它产生的主存地址分两种情形:一种是

需要的数据已在Cache 存储器中,那么只需直接访问Cache 存储器,从对应单

元中读取信息到数据总线;另一种是所需要的数据尚未装入Cache 存储器,CPU

在从主存读取信息的同时,由Cache 替换部件把该地址所在的那块存储内容从

主存拷贝到Cache 中。Cache 存储器中保存的字块是主存相应字块的副本。

2.写操作

当CPU 发出写操作命令时,也要根据它产生的主存地址分两种情形:

其一,命中时,不但要把新的内容写入Cache 存储器中,必须同时写入主

存,使主存和Cache 内容同时修改,保证主存和副本内容一致,这种方法称写

直达法或称通过式写(Write-through,简称通写法) 。

其二,未命中时,许多微机系统只向主存写入信息,而不必同时把这个地址

单元所在的主存中的整块内容调入Cache 存储器。

七、 地址映象及其方式

我们知道,主存与Cache 之间的信息交换,是以数据块的形式来进行的,

为了把信息从主存调入Cache ,必须应用某种函数把主存块映象到Cache 块,

称作地址映象。当信息按这种映象关系装入Cache 后,系统在执行程序时,应

将主存地址变换为Cache 地址,这个变换过程叫做地址变换(由于Cache 的存储

空间较小,因此,Cache 中的一个存储块要与主存中的若干个存储块相对应,即

若干个主存块将映象到同一个Cache 块)。

根据不同的地址对应方法,地址映象的方式通常有直接映象、全相联映象和

组相联映象三种。

1.直接映象

每个主存块映象到Cache 中的一个指定块的方式称为直接映象。在直接映象

方式下,主存中某一特定存储块只可调入Cache 中的一个指定位置,如果主存中

另一个存储块也要调入该位置,则将发生冲突。 地址映象的方法:

将主存块地址对Cache 的块号取模,即可得到Cache 中的块地址,这相当于

将主存的空间按Cache 的大小进行分区,每区内相同的块号映象到Cache 中相同

的块的位置。

一般来说,如果Cache 被分成2N 块,主存被分成同样大小的2M 块, 则主

存与Cache 中块的对应关系如图5-23所示。 直接映象函数可定义为:

j =i mod 2N

其中j 是Cache 中的块号;i 是主存中的块号。在这种映象方式中,主存的

第0块,第2N 块,第2N+l块,„,只能映象到Cache 的第0块,而主存的第1

块,第2N 十l 块,第2N+1十1块,„,只能映象到Cache 的第1块,依次类推。

例如,一个Cache 的大小为2K 字,每个块为16字,这样Cache 中共有128

个块。假设主存的容量是256K 字,则共有16384个块。主存的地址码将有18

位。在直接映象方式下,主存中的第1~128块映象到Cache 中的第1~128块,

第129块则映象到Cache 中的第1块,第130块映象到Cache 中的第2块,依

次类推。

直接映象函数的优点是实现简单,缺点是不够灵活,尤其是当程序往返访问

两个相互冲突的块中的数据时,Cache 的

命中率将急剧下降。

2.全相联映象

如图4-24所示,它允许主存中的每一个字块映象到Cache 存储器的任何一个

字块位置上,也允许从确实已被占满的Cache 存储器中替换出任何一个旧字块当

访问一个块中的数据时,块地址要与Cache 块表中的所有地址标记进行比较以确

定是否命中。在数据块调入时,存在着一个比较复杂的替换策略问题,即决定将

数据块调入Cache 中什么位置,将Cache 中哪一块数据调出到主存。

全相联方法块冲突的概率低,Cache 的利用率高,是一种最理想的解决方案,但

全相联Cache 中块表查找的速度慢,由于Cache 的速度要求高,因此全部比较和

替换策略都要用硬件实现,控制复杂,实现起来也比较困难。

主 存

第1区主 存第2区

图5-23 直接映像示意图 图5-24全相联映像示意图

3.组相联映象

组相联映象方式是全相联映象和直接映象的一种折衷方案。这种方法将存

储空间分成若干组,各组之间是直接映象,而组内各块之间则是全相联映象。

如图5-25所示,在组相联映象方式下,主存中存储块的数据可调入Cache 中一

个指定组内的任意块中。它是上述两种映象方式的一般形式,如果组的大小为

1时就变成了直接映象;如果组的大小为整个Cache 的大小时就变成了全相联

映象。

第 0 组第 1 组

第2C 2M-R 组

图5-25 组相联映像示意图

例如,把Cache 子块分成2C 组,每组包含2R 个字块,那么,主存字块M M (i)(0

M ≤i ≤2-1) 可以用下列映象函数映象到Cache 字块MN(j)( 0≤j ≤2N -1) 上:

j =(i mod 2C ) ×2R 十k ( 0≤k ≤2R -1)

例如, 设C =3位,R =1位,考虑

主存字块15可映象到Cache 的哪一个字块中。根据公式,可得:

j =(i mod 2C ) ×2R 十k

=(15 mod 23) ×21十k

=7×2十k

=14十k

又:0≤k ≤2R -1=21-1=1

即: k =0或1

代入后得j =14(k=0) 或15(k=1) 。所以主存模块15可映象到Cache 字块14

或15,在第7组。同样可计算出主存字块17可映象到Cache 的第0块或第1

块, 在第1组。

组相联映象方法在判断块命中以及替换算法上都要比全相联映象方法简

单,块冲突的概率比直接映象方法的低,其命中率介于直接映象和全相联映象

方法之间。

八、 替换策略

主存与Cache 之间的信息交换,是以存储块的形式来进行的,主存的块长与

Cache 的块长相同,但由于Cache 的存储空间较小,主存的存储空间较大,因此,

Cache 中的一个存储块要与主存中的若干个存储块相对应,若在调入主存中一个

存储块时,Cache 中相应的位置已被其它存储块占有,则必须去掉—个旧的字块,

让位于一个新的字块。这称为替换策略或替换算法。

常用的两种替换策略是:先进先出(FIFO) 策略和近期最少使用(LRU) 策

略。

1.先进先出(FIFO) 策略

FIFO (First In First Out)策略总是把一组中最先调入Cache 存储器的字块替

换出去,它不需要随时记录各个字块的使用情况,所以实现容易,开销小。

2.近期最少使用(LRU) 策略

LRU(Least Recently Used) 策略是把一组中近期最少使用的字块替换出去,

这种替换策略需随时记录Cache 存储器中各个字块的使用情况,以便确定哪个

字块是近期最少使用的字块。LRU 替换策略的平均命中率比FIFO 要高,并且

当分组容量加大时,能提高该替换策略的命中率。

图5-26 LRU 算法替换登记表

LRU 实现方法是:把组中各块的使用情况

记录在一张表上(如图5-26所示) ,并把最近使用过的块放在表的最上面,设组

内有8个信息块,其地址编号为0,1,„,7。当要求替换时,首先更新7号信

息块的内容;如要访问7号信息块,则将7写到表的顶部,其它号向下顺移。接

着访问5号信息块,如果此时命中,不需要替换,也要将5移到表的顶部,其它

号向下顺移。6号数据块是以后要首先被替换的,„„。

LRU 策略的另一种实现方法是:对Cache 存储器中的每一个字块都附设一

个计数器,记录其被使用的情况。每当Cache 中的一块信息被命中时,比命中

块计数值低的信息块的计数器均加1,而命中块的计数器则清0。显然,采用这

种计数方法,各信息块的计数值总是不相同的。一旦不命中的情况发生时,新

信息块就要从主存调入Cache 存储器,以替换计数值最大的那片存储区。这时,

新信息块的计数值为0,而其余信息块的计数值均加1,从而保证了那些活跃的

信息块(即经常被命中或最近被命中的信息块)的计数值要小,而近来越不活

跃的信息块的计数值越大。这样,系统就可以根据信息块的计数值来决定先替

换谁。

九、 PIII 中采用的Cache 技术

在本节的开头曾提到,为了提高CPU 访问存储器的速度,在486和Pentium

机中都设计了一定容量的数据Cache 和指令Cache (L1), 并且还可以使用处理

器外部的第二级Cache (L2)。Pentium Pro在片内第一级Cache 的设计方案中,

也分别设置了指令Cache 与数据Cache 。指令Cache 的容量为8kB ,采用2路

组相联映像方式。数据Cache 的容量也为8kB ,但采用4路组相联映像方式。

它采用了内嵌式或称捆绑式L2 Cache,大小为256kB 或512kB 。此时的L2已

经用线路直接连到CPU 上,益处之一就是减少了对急剧增多L1 Cache的需求。

L2 Cache还能与CPU 同步运行,即当L1 Cache不命中时,立刻访问L2 Cache,

不产生附加延迟。

PentiumII 是Pentium Pro的改进型,同样有2级Cache ,L1为32kB(指令和

数据Cache 各16kB) 是Pentium Pro的两倍,L2为512kB 。 Pentium II与Pentium

Pro 在L2 Cache 的不同是由于制作成本的原因。此时,L2 Cache已不在内嵌芯

片上,而是与CPU 通过专用64位高速缓存总线相联,与其它元器件共同被组

装在同一基板上,即“单边接触盒”上。

PentiumIII 也是基于Pentium Pro结构为核心,它具有32kB 非锁定L1 Cache

和512kB 非锁定L2 Cache。L2可扩充到1~2MB ,具有更合理的内存管理,可 以有效地对大于L2缓存的数据块进行处理,使CPU 、Cache 和主存存取更趋合 理,提高了系统整体性能。在执行视频回放和访问大型数据库时,高效率的高 速缓存管理使PIII 避免了对L2 Cache的不必要的存取。由于消除了缓冲失败, 多媒体和其它对时间敏感的操作性能更高了。对于可缓存的内容,PIII 通过预先 读取期望的数据到高速缓存里来提高速度,这一特色提高了高速缓存的命中率, 减少了存取时间。

为进一步发挥Cache 的作用,改进内存性能并使之与CPU 发展同步来维护 系统平衡,一些制造CPU 的厂家增加了控制缓存的指令。Intel 公司也在PentiumIII 处理器中新增加了70条3D 及多媒体的SSE 指令集,其中有很重要 的一组指令是缓存控制指令。AMD 公司在K6-2和K6-3中的3DNow 多媒体指 令中,也有从L1数据Cache 中预取最新数据的数据预取指令(Prefetch)。

PentiumIII 处理器有两类缓存控制指令。一类是数据据预存取(Prefetch)指 令,能够增加从主存到缓存的数据流;另一类是内存流优化处理(Memory

Streaming) 指令,能够增加从处理器到主存的数据流。这两类指令都赋予了应用 开发人员对缓存内容更大的控制能力,使他们能够控制缓存操作以满足其应用 的需求,同时也提高了Cache 的效率。

4.6 虚拟存储器

一、 主存-辅存层次结构

操作系统的形成和发展使得程序员尽可能摆脱主、辅存之间的地址定位, 同时形成了支持这些功能的“辅助硬件”,通过软件、硬件结合,把主存和辅存 统一成了一个整体,如图5-27所示。这时,由主存-辅存形成了一个存储层次, 即存储系统。主存-辅存层次解决了存储器的大容量要求和低成本之间的矛盾, 从整体看,其速度接近于主存的速度,其容量则接近于辅存的容量,而每位平 均价格也接近于廉价的慢速的辅存平均价格。这种系统不断发展和完善,就逐 步形成了现在广泛使用的虚拟存储系统。

图5-27 主存-辅存层次结构

二、什么叫虚拟存储器(Virtal Memory )

当CPU 输出地址码的位数较多,而实际主存容量较小的情况下,微机系统 可以将一部分辅存当作主存来使用的机制,就是虚拟存储器系统。

虚拟存储器是建立在主存-辅存物理结构基础之上,由附加硬件装置及操作 系统存储管理软件组成的一种存储体系,它将主存和辅存的地址空间统一编址, 形成一个庞大的存储空间。在这个大空间里,用户自由编程,完全不必考虑程 序在主存是否装得下,或者放在辅存的程序将来在主存中的实际位置。编好的 程序由计算机操作系统装入辅助存储器,程序运行时,附加的辅助硬件机构和 存储管理软件会把辅存的程序一块块自动调入主存由CPU 执行,或从主存调 出。用户感觉到的不再是处处受主存容量限制的存储系统,而是好象具有一个

容量充分大的存储器。

三、 虚地址和实地址的基本概念及其相互关系 虚地址:

虚拟存储器的辅存部分也能让用户象内存一样使用,用户编程时指令地址 允许涉及辅存大小的空间范围,这种指令地址称为“虚地址”(即虚拟地址) 或 叫“逻辑地址”,虚地址对应的存储空间称为“虚存空间”或叫“逻辑空间”。 实地址:

实际的主存储器单元的地址则称为“实地址”(即主存地址) 或叫“物理地址”, 实地址对应的是“主存空间”,亦称物理空间。

虚拟存储器的用户程序以虚地址编址并存放在辅存里,程序运行时,CPU 以虚地址访问主存,由辅助硬件找出虚地址和物理地址的对应关系,判断由这 个虚地址指示的存储单元的内容是否已装入主存,如果在主存,CPU 就直接执 行已在主存的程序;如果不在主存,就要进行辅存内容向主存的调度,这种调 度同样以程序块为单位进行。计算机系统存储管理软件和相应的硬件把欲访问 单元所在的程序块从辅存调入主存,且把程序虚地址变换成实地址,然后再由 CPU 访问主存。

四、虚拟存储器和Cache 的异同点

虚拟存储器和主存-Cache 存储器是两个不同存储层次的存储体系。在概念 上两者有不少相同之处:但由主存-辅存组成的虚拟存储器和主存-Cache 存储器亦有很多不同之处:

1.Cache 存储器采用与CPU 速度匹配的快速存储元件弥补了主存和CPU 之间 的速度差距,而虚拟存储器虽然最大限度地减少了慢速辅存对CPU 的影响,但 它的主要功能是用来弥补主存和辅存之间的容量差距,具有提供大容量和程序 编址方便的优点。

2.两个存储体系均以信息块作为存储层次之间基本信息的传送单位,Cache 存 储器每次传送的信息块是定长的,只有几十字节,而虚拟存储器信息块划分方 案很多,有页、段等等,长度均在几百~几百K 字节左右。

3.CPU 访问快速Cache 存储器的速度比访问慢速主存快5~10倍。虚拟存储器 中主存的速度要比辅存缩短100~1000倍以上。

4.主存-Cache 存储体系中CPU 与Cache 和主存都建立了直接访问的通道.一 旦不命中时,CFU 就直接访问主存并同时向Cache 调度信息块,从而减少了CPU 等待的时间。而辅助存储器与CPU 之间没有直接通路,一旦在主存不命中时, 只能从辅存调块到主存。因为辅存的速度相对CPU 的差距太大,调度需要毫秒 级时间,因此,CPU 一般改换执行另一个程序,等到调度完成后才返回原程序 继续工作。

5.Cache 存储器存取信息的过程、地址变换和替换策略全部用硬件实现,对程序员均是透明的。而主存-辅存层次的虚拟存储器基本上是由操作系统的存储管理软件并辅助一些硬件来进行信息块的划分和主存-辅存之间的调度,所以对设计存储管理软件的系统程序员来说,它是不透明的,而对广大用户,因为虚拟存储路提供了庞大的逻辑空间可以任意使用,所以对应用程序员是透明的。

五、 虚拟存储器的几种实现方法

按虚拟存储器信息块的划分方案不同,虚拟存储器的实现,可以分为页式 虚拟存储器、段式虚拟存储器、段页式虚拟存储器等集中形式,其中,段页式 虚拟存储器综合了段式和页式结构的优点,是一种较好的虚拟存储器信息块的 划分方案,也是目前大中型计算机系统中普遍采用的一种方式。有关这一部分 内容,我们就不再一一为大家介绍了,有兴趣的同学可以看一看书上的相关内 容。

习题与思考:

1.什么是高速缓冲存储器?在微机系统中使用高速缓冲存储器的作用是什么?

2.什么是存储器访问的局部性?研究和讨论这一现象有什么意义?

3.试说明直接映像、全相联映像、组相联映像等地址映像方式的基本工作原理。

4.存储器体系为什么采用分级结构,主要用于解决存储器中存在的哪些问题?

5.什么是虚拟存储器?它的作用是什么?


相关内容

  • 扫描电镜(SEM)和透射电镜(TEM)
    摘要:简要介绍了扫描电镜(SEM)和透射电镜(TEM)两种当前主要的电子显微分析工具在存储器器件分析过程中的应用,讨论了它们各自的适用范围以及测量精度,指出两者的有机结合可以得到比较全面的分析结果. 关键词:扫描电子显微镜:透射电子显微镜: ...
  • 题 计算机历史与分类
    1.第一台电子计算机是1946年在美国研制的,该机的英文缩写名是( A ) . A .ENIAC B .EDVAC C .EDSAC D .MARK-II 2.提出了存储程序和采用二进制系统的设想, 被人们尊称为"计算机之父&qu ...
  • 家用医疗电子设备设计指南
    美国食品与药物管理局(FDA)指出:在医疗设备产业中,家庭卫生保健是发展最快的领域.受到人类平均寿命延长,慢性病患者越来越多以及保健成本越来越高等原因的推动,越来越多更"智能"."友好"的医疗设备正在 ...
  • 毕业设计_多亮度等级调光灯制作(终稿)
    毕业论文 毕业设计论文 设计(论文) 题目: 下 达 日 期: 月 日 开 始 日 期: 年 月 完 成 日 期: 年 月 指 导 教 师: 学 生 专 业: 班 级: 学 生 姓 名: 教 研室主任: 系 本系统基于单片机MSP430F4 ...
  • 电路中的缩写字母都有什么
    电路中的缩写字母都有什么? AC(alternating current) 交流(电) A /D(analog to digital) 模拟/数字转换 ADC(analog to digital convertor) 模拟/数字转换器 AD ...
  • 突破即将来临
    突破即将来临,固态硬盘将不再与"短命"画上等号,一种新型技术将令闪存的P/E寿命突破1亿次:突破即将来临,当前1Tbit/in2的存储密度在它面前将显得不值一提,5.5PB/mm3的存储密度将把存储容量推上一个新的高度. ...
  • 20XX年无线电调试高级工技能鉴定理论题库
    无线电调试高级工技能鉴定理论题库 本复习题仅作为复习参考用. 知识点:电路基础.模拟电子技术.数字电子技术.计算机基础.测量调试技术. 一.判断题 ( ³ )1.三相四线制供电线路中,中线必须装熔断器. ( √ )2.在发生串联谐振时,回路 ...
  • 电子信息产业行业分类目录及注释
    附录 电子信息产业行业分类目录 电子信息产业行业分类注释 A0000 雷达工业行业 A4040 雷达设备制造 指雷达整机设备的制造. 包括:----指挥自动化系统: ----地面雷达.机载雷达.舰载雷达等. B0000 B4021 通信设备 ...
  • 嵌入式大容量存储方案
    如果您需要大容量本地数据存储来完成数据采集与监控,如果您正筹划大容量数据记录仪,或公共安全.公共交通等信息查询系统,您可以参考这个恒颐的嵌入式大容量数据存储方案. 嵌入式大容量数据存储解决方案 恒颐成功案例 * 某单位舰载信息黑匣子: * ...
  • 单片机 四路抢答器
    课程设计说明书 (2009/2010学年第二学期) 课程名称 :题 目 :专业班级 :学生姓名 :学 号 :指导教师 :设计周数 :设计成绩 : 单片机应用课程设计 四路抢答器 电气2班 韩昱 苗敬利 两周(10.6.28-10.07.09 ...