第五章 存储器
5.1 存储器的分类 ( P207)
存储器就是用来存储程序和数据的,程序和数据都是信息的表现形式 。
存储器是计算机 (包括微机 )硬件系统的重要组成部分,有了存储器,计算机才具有,记忆,功能,才能把程序及数据的代码保存起来,才能使计算机系统脱离人的干预,而自动完成信息处理的功能 。
存储器的容量越大,记忆的信息也就越多,计算机的功能也就越强。
存储器系统的三项主要性能存储容量,是存储器系统的首要性能指标,因为存储容量越大,
则系统能够保存的信息量就越多,相应计算机系统的功能就越强;
存储器的存取速度,直接决定了整个微机系统的运行速度,因此,存取速度也是存储器系统的重要的性能指标;
存储器的成本,也是存储器系统的重要性能指标 。
为了在存储器系统中兼顾以上三个方面的指标,目前在计算机系统中通常采用三级存储器结构,即使用高速缓冲存储器、
主存储器和辅助存储器,由这三者构成一个统一的存储系统。
从整体看,其速度接近高速缓存的速度,其容量接近辅存的容量,而其成本则接近廉价慢速的辅存平均价格。
存储器分类 ( P207)
1,按照存取速度和用途分类按照存取速度和用途可把存储器分为两大类:内部存储器 ( 简称内存,又称主存储器 ) 和外部存储器 ( 简称外存 ) 。
内存,主存储器,位于计算机主机内部,用于存放当前正在使用或经常使用的程序或数据 。 其特点是,CPU可以直接对它进行访问,
速度较快,容量较小,价格较贵,一般由半导体存储器构成 。 内存的容量受 CPU地址总线位数的限制 。
外存,辅助存储器,位于计算机主机外部,用于存放程序或数据 。
其特点是,CPU不能直接对它进行访问,由专用的设备来管理,速度较慢,容量较大,价格较便宜,一般由磁存储器或光存储器构成 。
外存与 CPU之间没有直接通路,外存中的信息在需要时先调到主存,然后由 CPU 执行。
2,按构成存储器的器件和存储介质分类按构成存储器的器件和存储介质主要可分为:磁芯存储器,半导体存储器,光电存储器,磁膜,磁泡和其它磁表面存储器以及光盘存储器等 。
3,按存取方式分类可将存储器分为随机存取存储器,只读存储器两种形式 。
( 1) 随机存储器 RAM(Random Access Memory)
又称读写存储器,指能够通过指令随机地,个别地对其中各个单元进行读 /写操作的一类存储器 。
按照存放信息原理的不同,随机存储器又可分为静态和动态两种 。 静态 RAM( SRAM) 是以双稳态元件作为基本的存储单元来保存信息的,因此,其保存的信息在不断电的情况下,是不会被破坏的;而动态 RAM( DRAM) 是靠电容的充,放电原理来存放信息的,由于保存在电容上的电荷,会随着时间而泄露,因而会使得这种器件中存放的信息丢失,必须定时进行刷新 。
( 2) 只读存储器 ROM (Read-Only Memory)
在微机系统的运行过程中,只能对其进行读操作,而不能进行写操作的一类存储器 。 ROM通常用来存放固定不变的程序,
汉字字型库,字符及图形符号等 。
随着半导体技术的发展,只读存储器也出现了不同的种类,
如可编程的只读存储器 PROM(Programmable ROM),可擦除的可编程的只读存储器 EPROM(Erasible Programmable ROM)和
E2PROM(Electric Erasible Programmable ROM)以及掩膜型只读存储器 MROM(Masked ROM)等,近年来发展起来的快擦型存储器 (F1ash Memory)具有 E2PROM ( EEPROM ) 的特点 。
3,按在微机系统中位置分类分为主存储器 (内存 ),辅助存储器 (外存 ),缓冲存储器等,主存储器又称为系统的 主存或者内存,位于系统主机的内部,CPU可以直接对其中的单元进行读 /写操作; 辅存存储器又称外存,位于系统主机的外部,CPU对其进行的存 /取操作,必须通过内存才能进行; 缓冲存储器 位于主存与 CPU之间,其存取速度非常快,但存储容量更小,可用来解决存取速度与存储容量之间的矛盾,提高整个系统的运行速度 。
另外,还可根据所存信息是否容易丢失,而把存储器分成易失性存储器和非易失性存储器。如半导体随机存储器 ( DRAM,
SRAM),停电后信息会丢失,属易失性;而半导体只读存储器
( ROM),磁带和磁盘等磁表面存储器,属非易失性存储器。
缓冲存储器 (Cache)
双极型半导体存储器随机存储器 (RAM)
MOS存储器(静态、动态)
存储器 掩膜型只读存储器 ROM
可编程只读存储器 PROM
只读存储器 (ROM) 紫外线可擦除只读存储器 EPROM
电可擦除只读存储器 EEPROM
磁盘 (软盘、硬盘、盘组 )存储器外部存储器 磁带存储器光盘存储器存储器分类,
存储器选择的原则
1,选取存储器芯片的原则只读存储器常用于固化程序和常数,以便系统一开机就可按预定的程序工作 。 若所设计的系统是小批量生产或开发产品,
则建议使用 EPROM和 E2PROM;若为成熟的大批量产品,则应采用 PROM或掩膜 ROM,以降低生产成本和提高系统的可靠性 。
随机存储器常用来存取实时数据,变量和运算结果 。 若所用的 RAM容量较小或要求较高的存取速度,则宜采用 SRAM;
若所用的 RAM容量较大或要求低功耗,则应采用 DRAM,以降低成本 。
2,工作速度匹配
CPU对外部存储器进行读写所需要的时间称为 CPU的访存时间,是指 CPU向外部存储器发出地址码和读 /写完数据所需要的时间 。 存储器的最大存取时间是存储器固有的时间 ( 可查阅相关的手册或实际测量获得 ) 。 为了使 CPU和外部存储器同步而可靠工作,CPU的访存时间必须大于所用外部存储器的最大存取时间 。
3,对存储容量的要求微机所需的存储容量与存储器芯片本身的存储容量不是同一个概念 。 微机所需的存储容量是由实际应用系统的应用程序和实时数据的数量决定的,而存储器芯片的存储容量是存储器固有的参数,不同型号的存储器的存储容量也不同 。 一般说来,在应用系统所需存储容量不变的前提下,若所选存储器本身存储容量越大,则所用芯片数量就越小,所需的地址译码电路就越简单 。
4,对存储器地址空间的分配在确定 RAM和 ROM的容量和所选存储器的型号和数量之后,
还必须给每个芯片划定一个地址范围,无论怎样划定存储器的地址范围,都必须满足存储器本身的存储容量,否则会造成存储器硬件资源的浪费 。
5,合理地选择地址译码方式可根据实际应用系统的具体情况,按线选法,全地址译码法,
部分地地址译码法等地址译码方式的优缺点选择合理的地址译码方式 。
6,功耗要求在应用系统要求低功耗时,应尽量选择 CMOS器件,但
CMOS器件容量小、速度慢,HMOS器件在功耗、速度方面具有较好的特性。
总之,要从易失性,只读性,位容量,功耗,速度,价格,
可靠性等方面选择存储器 。
5.2 随机存取存储器( RAM)( P209 )
用来存放数据或指令,是计算机的重要记忆存储部件。其特点是,在微机系统的工作过程中,可以随机地对其中的各个存储单元进行读/写操作,读写方便,使用灵活;缺点为断电后 RAM内存储的信息会丢失,RAM是易失性存储器。
RAM的分类:
按器件类型 RAM可分为双极型和 MOS型两种。
按结构和工作原理可分为静态( SRAM)和动态 ( DRAM)
两种 (工作原理见后两页 )。
双极型 RAM,工作速度快,工艺复杂,成本高,集成度低。
适合于高速 RAM。
MOS型 RAM,制造工艺简单,成本低,功耗小,集成度高,
工作速度比双极型 RAM低。适合于大容量的 RAM。
6管静态 RAM基本存储单元单管动态 RAM基本存储单元 (P212)
5.2.1 存储器的系统结构 ( P209----210 )
一个存储器系统一般由以下几部分组成。 P210图 5-2
基本存储单元存储体地址译码器片选与读/写控制电路
I/O电路集电极开路或三态输出缓冲器其它外围电路
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中的预充电及刷新操作控制电路等,这也是存储器系统的重要组成部分。
5.2.2 静态随机存取存储器 SRAM
特点,速度快、片容量小、功耗大,在计算机中常用于超高速缓存。
常用的静态存储器 RAM芯片有 6116(2K× 8位 ),6264(8K× 8位 )、
62128(16K× 8位 ),62256(32K× 8位 ),628128( 128K× 8位 ) 等 。
由于由于价格相差不大,而大容量的速度快,且一般扩展时数据存储器应留有一定的空间余量,因此一般选择 8KB以上的芯片作为外部数据存储器 。 该系列不同型号的仅仅是地址线的数目和个别引脚有差别 。 其引脚排列如下图所示 。 引脚符号的含义和功能如下:
6264,213=8KB,所以,6264有 13位地址线。
:片选信号输入线,低电平有效。
:写允许信号输入线,低电平有效。
:读允许信号输入线,低电平有效。
VCC,主电源输入线,一般为 +5V。
GND,地线。
WE
OE
CS CE
6264
4.2.3 动态随机存取存储器 DRAM ( P211 )
存储元中管子的数目较少( 1个),有利于集成。速度比
SRAM慢、片容量大、功耗低,成本比 SRAM低 。
缺点是每隔一定时间需要刷新一次
(即:需要进行周期性刷新),
刷新时间一般小于 1ms。刷新时是先读后写。适合于构成大容量存储器,如计算机中的内存。
注:目前生产的 DRAM自身都能进行刷新,不需要外加电路。
只读存储器(简称 ROM)是 指在微机系统的运行过程中,只能读出,不能写入 一类存储器,在不断发展变化的过程中,ROM
器件也产生了掩模 ROM,PROM,EPROM,E2PROM,Flash闪存 等各种不同类型。 特点:具有非易失性。写入或擦除一般需用特殊方法。
对 ROM的编程,只读存储器存入数据的过程称为对 ROM的编程。
5.3 只读存储器( ROM)( P221 )
根据编程方法不同,ROM通常分为以下三类:
( 1) 固定内容的 ROM(只能读出,不能修改。设计周期长,可靠性高、集成度高、价格便宜、适用于批量生产)
( 2)一次可编程的 ROM( PROM) (用户可根据需要修改存储器中的某些存储单元,只能一次性修改,即:一次性编程。可靠性差,使用具有一定的局限性。)
( 3)多次改写可编程的 ROM(可以用紫外光照射或电的方法擦除,然后再用电的方法重新写入新的数据,修改比较方便,可多次重复改写。用于改写的编程设备(写入器)已很便宜,编程方法比较简单,应用比较广泛。)
下面分别介绍:
1.掩模 ROM
厂家根据用户的程序或数据对芯片进行二次光刻制造的,一旦光刻完,则无法更改。少量生产造价高,适用于已成熟产品的批量生产。(使用二极管或者是 MOS管)
2,可编程 PROM
掩模 ROM的存储单元在生产完成之后,其所保存的信息就已经固定下来了,这给使用者带来了不便。为了解决这个矛盾,设计制造了一种可由用户通过简易设备写入信息的 ROM器件,即可编程的 ROM,又称为 PROM。 (采用熔断丝的形式 )
3.多次改写可编程的 ROM
多次改写可编程的 ROM可分为紫外线( 光 ) 擦可编程 ROM
( EPROM),电擦可编程 ROM( E2PROM)、闪速存储器
( FLASH)。
( 1) 紫外线可擦除 EPROM
EPROM(光擦可编程 ROM )的存储内容不仅可以根据需要来写入,而且当需要更新存储内容是还可以将原存储内容抹去,再写入新的内容。 EPROM的上方有一个石英窗口,当用光子能量较高的紫外光照射(相距 2cm,照射几分钟)时可以抹去已存储的信息。这种 EPROM出厂时全为,1”,用户可根据需要写入,0”。一般擦除信息需用紫外线照射 l5~20分钟。 操作复杂、擦除速度缓慢 。
( 2)电擦可编程 ROM( E2PROM,EEPROM)
这种 E2PROM的存储内容不仅可以根据需要来写入,而且当需要更新存储内容时还可以用电方法将原存储内容抹去,再写入新的内容。它出厂时全为,1”,用户可根据需要写入,0”。 读写的时候加的电压不同 。
( 3)闪速存储器( FLASH)
高密度、非易失性的读 /写半导体存储器,一次性擦除,编程速度快。它既具有 E2PROM的特点,又有 RAM的特点,是一种全新的存储器。
4,常用的 EPROM
EPROM主要是 27系列芯片,即 2716,2732,2764,27128、
27256,27512,27040等型号,其容量分别是 2K× 8位,4K× 8位、
8K× 8位,16K× 8位,32 K× 8位,64K× 8位和 512 K× 8。其中
2716,2732为 24脚,且容量较小、性价比低,处于停产状态,故现在使用较少,而 2764~ 27512均为 28脚,其引脚排列基本向下兼容,
程序容量升级较为方便,所以使用较多。又由于价格相差不大,而大容量的 EPROM速度快,且一般扩展时程序存储器应留有一定的程序功能扩充空间,因此一般应用时选择 8KB以上的芯片,
2716~ 27512芯片的引脚图如下图所示 。 引脚符号的含义和功能如下:
l D7~ D0:三态数据总线 。 读或编程校验时,为数据输出线;编程固化时,为数据输入线;维持或编程禁止时,D7~ D0呈高阻抗;
l A0~ Ai:地址输入线,i=12~ 15。 2764的地址线为 13位,i=12;
27512的地址线为 16位,i=15;
,片选信号输入端,该引脚输入为,0”时,芯片被选中处于工作状态;输入为,1”时,芯片处于数据高阻态;
:输出允许输入信号线,低电平有效 。 该引脚为低,地址线有效时数据从 D7~ D0输出到数据总线上;
VPP,编程电源输入线 。 输入电压值因制造厂商和芯片型号而异;
:编程脉冲输入线;
VCC,电源;
GND:接地
OE
CE
PGM
6,典型的 E2PROM
E2PROM因具备在线改写的特性,故即可作为程序存储器,也可用作数据存储器。
2817是 Intel公司生产的
E2PROM,容量为 2KB,有 11条地址线。其特点是可以省去全部硬件接口电路而能执行数据写入的存储器。
5.4 8086CPU外扩存储器 (P225)
微机系统的规模、应用场合不同,对存储器系统的容量、
类型的要求也必不相同,一般情况下,需要用不同类型,不同规格的存储器芯片,通过适当的硬件连接,来构成所需要的存储器系统,这就是本节所需要讨论的内容。
1,CPU与存储器的连接时应注意的问题在微型系统中,CPU对存储器进行读写操作,首先要由地址总线给出地址信号,选择要进行读 /写操作的存储单元,然后通过控制总线发出相应的读 /写控制信号,最后才能在数据总线上进行数据交换 。 所以,存储器芯片与 CPU之间的连接,实质上就是其与系统总线的连接,包括:
地址线的连接;数据线的连接;控制线的连接 。
在连接中要考虑的问题有以下几个方面:
( 1) CPU总线的负载能力在设计 CPU芯片时,一般考虑其输出线的直流负载能力 。
现在的存储器一般都为 MOS电路,直流负载很小,主要的负载是电容负载,故在小型系统中,CPU是可以直接与存储器相连的,而较大的系统中,若 CPU的负载能力不能满足要求,可以
( 就要考虑 CPU能否带得动,需要时就要加上缓冲器,) 通过缓冲器增强 CPU的带负载能力 。
( 2) CPU的时序和存储器的存取速度之间的配合问题
CPU在取指和存储器读或写操作时,是有固定时序的,用户要根据这些来确定对存储器存取速度的要求,或在存储器已经确定的情况下,考虑是否需要 Tw周期,以及如何实现 。
( 3) 存储器的地址分配和片选问题内存通常分为 RAM和 ROM两大部分,而 RAM又分为系统区
(即机器的监控程序或操作系统占用的区域 )和用户区,用户区又要分成数据区和程序区,ROM的分配也类似,所以内存的地址分配是一个重要的问题 。 另外,目前生产的存储器芯片,单片的容量仍然是有限的,通常总是要由许多片才能组成一个存储器,这里就有一个如何产生片选信号的问题 。
( 4) 控制信号的连接
CPU在与存储器交换信息时,通常有以下几个控制信号
(对 8088/8086来说 ):,,等信号 。 这些信号如何与存储器要求的控制信号相连,以实现所需的控制功能 。
WRRDIO/M
2,存储器的地址选择对存储器单元的寻址包括两部分:
片间寻址,CPU高位地址线经译码 ( 或线性组合 ) 后作为存储器芯片的片选,用于选择存储器芯片 。
片内寻址,CPU低位地址线连到存储器的地址线上,用于选择存储器内部的具体单元 。
存储器地址选择有以下三种方法:
( 1) 线性选择方式 ( P226 图 5-14)
直接以系统空闲的高位地址线作为芯片的片选信号 。 优点是简单明了,无须另外增加电路,缺点是寻址范围不惟一,地址空间没有被充分利用,可外扩的芯片的个数较少 。 线选法适用于小规模单机应用系统中片选信号的产生 。
A13作为控制线,A13为,0”选中 1#芯片,为,1”选中 2#芯片,
所以 1#芯片的地址范围是 0000~ 1FFFH,2#芯片的地址范围是
2000~ 3FFFH。
A14为控制线 (A13为 0),A14为,0”选中 1#芯片,为,1”选中 2#芯片,
所以 1#芯片的地址范围是 0000~ 1FFFH,2#芯片的地址范围是
4000~ 5FFFH。
只要 A13为 0,A14~ A19为任意都选中 1#芯片;只要 A13为 1,
A14~ A19为任意都选中 2#芯片,所以它们的地址是重叠的。在同一个段 (64KB)中 (A0~A15),地址重叠区 4个,所以
1#芯片的寻址:
0000~ 1FFFH,4000~ 5FFFH,8000~ 9FFFH,C000~ DFFFH
2#芯片的寻址:
2000~ 3FFFH,6000~ 7FFFH,A000~ BFFFH,E000~ FFFFH
例如:计算机上内存容量为 512MB(256MB× 2),试写出 2个内存的地址范围?
答案是,1#内存 (256MB)的地址范围是,0000,0000~0FFF,FFFFH
2#内存的地址范围是,1000,0000H~ 1FFF,FFFFH。
( 2) 全地址译码法 ( P227 图 5-15)
全地址译码法,利用译码器对系统地址总线中 未被外扩芯片用到的高位地址线进行译码,以译码器的输出作为外围芯片的片选信号 。
常用的译码器有,74LS139,74LS138,74LS154等 。 优点是存储器的每个存储单元只有惟一的一个系统空间地址,不存在地址重叠现象;对存储空间的使用是连续的,能有效地利用系统的存储空间 。
缺点是所需地址译码电路较多 。 全地址译码法是单机应用系统设计中经常采用的方法 。
例,假设一个微机系统 RAM容量为 4KB,采用 1K× 8的 RAM芯片,安排在 64K空间的最低 4K的位置,A9~ A0作为片内寻址,A15~ A10译码后作为芯片寻址,则 4K占用的地址空间分别为:
第一组:地址范围是 0000~ 03FFH
第二组:地址范围是 0400~ 07FFH
第三组:地址范围是 0800~ 0BFFH
第四组:地址范围是 0C00~ 0FFFH
( 3) 部分地址译码法部分地址译码法,单机的未被外扩芯片用到的高位地址线中,只有一部分参与地址译码,其余部分是悬空的 。 优点是可以减少所用地址译码器的数量 。 缺点是存储器每个存储单元的地址不是唯一的,存在地址重叠现象 。 因此,采用部分地址译码法时必须把程序和数据存放在基本地址范围内,以避免因地址重叠引起程序运行的错误 。
74LS138的管脚图如右图所示。
3,CPU与外部存储器的连接
( 1)外部存储器的地址线与 CPU的低位地址线相连;
( 2)外部存储器的数据线与 CPU的数据线相连;
( 3) CPU的地址线,M/ 经译码后与外部存储器的片选线相连;
( 4)外部存储器的读 /写控制线与 CPU的读 /写控制线相连。
IO
例题:要求用 4K× 8的 EPROM芯片 2732,8K× 8的 RAM芯片
6264,译码器 74LS138构成 8K× 16的 ROM和 8K× 16RAM的存储器系统,系统配置方式为最小模式,画出系统的连线图。
解,ROM芯片,8K字需要 4片 2732芯片组成,片内用 12根地址线
A1~ A12寻址。 RAM芯片 8K字需要 2片 6264芯片组成,片内用 13
根地址线 A1~ A13寻址。
芯片的选择由 74LS138译码器输出 Y0,Y1完成。
分别写出 1#,2#,3#芯片的地址范围。
4,有关容量和数据宽度的扩展
( 1)容量扩展方法,将 N片同样位数的存储器芯片(容量为 A字 × B位)的 数据线并联 起来接到外部数据线上,外部输入的 地址线的高位经译码器译码输出后分别接到各存储器芯片的片选 线上,各存储器芯片的 地址线并联后接到外部输入的地址线的低位 上,读 /写线分别并联到 CPU的读 /写输出线上,则可以将存储器的容量扩展为:
( A × N)字 × B 位
( 2)数据宽度的扩展方法,将 N片同样的存储器芯片(容量为 A字 × B位)的 地址输入线并联 起来接到外部地址线上,片选线并联起来接到总片选线上,N片存储器芯片的 数据线组合 起来即为总的数据线,则可以将存储器的容量扩展为:
A字 × ( B × N)位
( 3)容量和数据宽度同时扩展方法,同时使用两种方法。
将 N片同样位数的存储器芯片(容量为 A字 × B位)的数据线并联起来接到外部数据线上,外部输入的地址线的高位经译码器译码输出后分别接到各存储器芯片的片选线上,各存储器芯片的地址线并联后接到外部输入的地址线的低位上,则可以将存储器的容量扩展为:
( A × N)字 × B 位将 M组上述经扩展的存储器芯片(容量为 A× N字 × B位)的地址输入线并联起来接到外部地址线上,片选线并联起来接到每组总片选线上,M组存储器芯片的数据线组合起来即为总的数据线,
则可以将存储器的容量扩展为:
(A × N)字 × ( B × M)位
5.5 存储器的工作时序 (以 SRAM为例 )
(1)CPU送出存储单元地址 (A点 ),读周期开始,读周期比读取时间长。为了保证 tA时间后,读取的数据在数据线上稳定,要求在地址信号有效后,不超过 tA~tCO的时间段中,片选有效。
(2)输出数据有效后,只要地址信号和输出允许信号没有撤销,输出数据一直保持有效。
(3)在整个读周期,要求 R/W保持高电平。
读出周期读取时间片选到稳定输出片选到输出有效
(1)写周期开始,要求有一段地址建立的时间,此时 WE必须为高电平,否则在地址变化期间可能会有误写入,使得存储单元内容写错。所以 WE有效前,地址就已经稳定。
(2)写周期期间 CS,WE为低电平,要求 tW写脉冲宽度必须大于规定值,以保证可靠的写入。
(3)为了保证可靠的写入,要写入的数据必须在 CS和 WE有效前已经稳定出现在数据线上。
写周期时间写脉冲宽地址建立时间数据有效时间数据保持时间
5.6 高档微机系统中的超高速缓存技术( P216)
5.6.1 概述存储器的存取速度相对于 CPU的信息处理速度来说较低。
这就导致了两者速度的不匹配,也就是说,慢速的存储器限制了高速 CPU的性能,影响了微机系统的运行速度,并限制了计算机性能的进一步发挥和提高。高速缓冲存储器就是在这种情况下产生的。
为了解决存储器系统的容量、存取速度及单位成本之间的矛盾,可以采用 Cache----主存存储结构,即在主存和 CPU之间设置高速缓冲存储器 Cache,把正在执行的指令代码单元附近的一部分指令代码或数据从主存装入 Cache中,供 CPU在一段时间内使用,在一定容量 Cache的条件下,我们可以做到使 CPU大部分取指令代码及进行数据读写的操作都只要通过访问 Cache,而不是访问主存而实现。
优点:
( 1) Cache的读写速度几乎能够与 CPU进行匹配,所以微机系统的存取速度可以大大提高;
( 2) Cache的容量相对主存来说并不是太大,所以整个存储器系统的成本并没有上升很多
( 3) 采用了 Cache--主存存储结构以后,整个存储器系统的容量及单位成本能够主存相当,而存取速度可以与 Cache的读写速度相当,这就很好地解决了存储器系统的上述三个方面性能之间的矛盾 。
Cache系统的结构( P220图 5-10)
( 1) Cache
( 2) Cache控制器
( 3)主存
Cache控制器将来自 CPU的数据读写请求,转向 Cache存储器,如果数据在 Cache中,则 CPU对 Cache进行读写操作,称为命中 。 命中时,CPU从 Cache中读 (写 )数据 。 由于 Cache速度与
CPU速度相匹配,因此 不需要插入等待状态,故 CPU处于零等待状态,也就是说 CPU与 Cache达到了同步,因此,有时称高速缓存为同步 Cache;若数据不在 Cache中,则 CPU对主存操作,称为 命中失败 。 失败时,CPU必须在其总线周期中 插入等待周期
TW。
在主存 — Cache存储体系中,所有的程序代码和数据仍然都存放在主存中,Cache存储器只是在系统运行过程中,动态地存放了主存中的一部分程序块和 数据块的 副本,这是一种以块为单位的存储方式 。 块的大小称为,块长,,块长一般取一个主存周期所能调出的信息长度 。
5.6.2 Cache的基本操作
1,读操作当 CPU发出读操作命令时,要根据它产生的主存地址分两种情形,一种是需要的数据已在 Cache存储器中,那么只需直接访问
Cache存储器,从对应单元中读取信息到数据总线; 另一种是所需要的数据尚未装入 Cache存储器,CPU在从主存读取信息的同时,
由 Cache替换部件把该地址所在的那块存储内容从主存拷贝到
Cache中 。 Cache存储器中保存的字块是主存相应字块的副本 。
2,写操作当 CPU发出写操作命令时,也要根据它产生的主存地址分两种情形,其一,命中时,不但要把新的内容写入 Cache存储器中,必须同时写入主存,使主存和 Cache内容同时修改,保证主存和副本内容一致,这种方法称写直达法或称通过式写 (Write-through,简称通写法 )。 其二,未命中时,许多微机系统只向主存写入信息,
而不必同时把这个地址单元所在的主存中的整块内容调入 Cache存储器 。
3,替换策略主存与 Cache之间的信息交换,是以存储块的形式来进行的,主存的块长与
Cache的块长相同,但由于 Cache的存储空间较小,主存的存储空间较大,因此,
Cache中的一个存储块要与主存中的若干个存储块相对应,若在调入主存中一个存储块时,Cache中相应的位置已被其它存储块占有,则必须去掉一个旧的字块,
让位给一个新的字块 。 这称为替换策略或替换算法 。
常用的两种替换策略是:先进先出 (FIFO)策略和近期最少使用 (LRU)策略 。
( 1) 先进先出 (FIFO) 策略
FIFO( First In First Out) 策略总是把一组中最先调入 Cache存储器的字块替换出去,它不需要随时记录各个字块的使用情况,所以实现容易,开销小 。
( 2) 近期最少使用 (LRU) 策略
LRU(Least Recently Used) 策略是把一组中近期最少使用的字块替换出去,
这种替换策略需随时记录 Cache存储器中各个字块的使用情况,以便确定哪个字块是近期最少使用的字块 。 LRU替换策略的平均命中率比 FIFO要高,并且 当分组容量加大时,能提高该替换策略的命中率 。
作业:
P237
1 2 8 13