微机原理第四章 存储器系统_第1页
微机原理第四章 存储器系统_第2页
微机原理第四章 存储器系统_第3页
微机原理第四章 存储器系统_第4页
微机原理第四章 存储器系统_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机原理第四章存储器系统第一页,共七十七页,2022年,8月28日2023/3/21授课教师:殷代红制作者:殷代红邮箱:第二页,共七十七页,2022年,8月28日2023/3/22第四章存储器系统第三页,共七十七页,2022年,8月28日2023/3/23第四章存储器系统4.1概述4.2读写存储器RAM4.3只读存储器ROM4.4存储器芯片扩展与CPU的连接4.5高速缓冲存储器Cache4.6虚拟存储器第四页,共七十七页,2022年,8月28日2023/3/24

衡量存储器的性能指标主要有三个:

容量、速度和成本。

容量:存储器系统的容量越大,表明其能够保存的信息量越多,相应计算机系统的功能就越强,因此存储容量是存储器系统的第一性能指标。速度:存储器的存取速度相对于高速的CPU总要慢1-2个数量级,这会影响到整个系统的工作效率。

成本:也是衡量存储器系统的重要性能指标。4.1概述第五页,共七十七页,2022年,8月28日2023/3/25为了兼顾以上三个方面的指标通常采用三级存储器结构:

高速缓冲存储器、主存储器和辅助存储器。其速度接近高速缓存的速度;其容量接近辅存的容量;位成本接近廉价慢速的辅存平均价格。

本章重点介绍半导体存储器的工作原理、计算机主存的构成和工作过程、存储器的层次结构。第六页,共七十七页,2022年,8月28日2023/3/264.1.1

存储器分类

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

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

从五十年代开始,磁芯存储器曾一度成为主存储器的主要存储介质。但从七十年代起,半导体存储器逐渐取代了磁芯存储器的地位。目前,绝大多数计算机都使用的是半导体存储器。

第七页,共七十七页,2022年,8月28日2023/3/272.按存储器的存取方式分类

按存取方式可分为随机存取存储器、只读存储器等

(1)随机存储器

RAM(RandomAccessMemory)

随机存储器(又称读写存储器)是指通过指令可以随机地对各个存储单元进行读和写,在计算机系统中,主存储器大都采用随机存储器。按照存放信息的方式不同,随机存储器又可分为静态和动态两种。静态RAM(SRAM)是以双稳态元件作为基本的存储单元来保存信息,而动态RAM(DRAM)是靠电容来存放信息的,使得这种存储器中存放的信息容易丢失,必须定时进行刷新。第八页,共七十七页,2022年,8月28日2023/3/28

静态RAM 动态RAM

容量小 大速度快 慢集成度低 高高 低功耗第九页,共七十七页,2022年,8月28日2023/3/29(2)只读存储器ROM(Read-OnlyMemory)

只读存储器是一种对其内容只能读出不能写入的存储器。它通常用来存放固定不变的程序、汉字字型库、字符及图形符号等。由于它和读写存储器分享主存储器的同一个地址空间,故仍属于主存储器的一部分。随着半导体技术的发展,只读存储器也出现了不同的种类,如可编程序只读存储器PROM(ProgrammableROM);可擦除可编程只读存储器EPROM(ErasibleProgrammableROM)和电可擦除可编程只读存储器EEPROM(ElectricErasibleProgrammableROM)以及近年来发展起来的快擦型存储器(FlashMemory)具有EEPROM的特点。

第十页,共七十七页,2022年,8月28日2023/3/2103.按在计算机中的作用分类

按在计算机中的作用可以分为主存储器(内存)、辅助存储器(外存)、缓冲存储器等。主存储器速度高,但容量较小,每位价格较高。辅存速度慢,容量大,每位价格低。缓冲存储器用在两个不同工作速度的部件之间,在交换信息过程中起缓冲作用。

4.按掉电时所存信息是否容易丢失分类分成易失性存储器和非易失性存储器。半导体存储器(DRAM,SRAM),属易失性。磁带和磁盘等磁表面存储器,属非易失性。

第十一页,共七十七页,2022年,8月28日2023/3/211

双极型半导体存储器随机存储器(RAM)

MOS存储器(静态、动态)主存储器

掩膜型只读存储器MROM

可编程只读存储器PROM

只读存储器(ROM)可擦除可编程只读存储器

(EPROM,EEPROM)

快擦型存储器存储器磁盘(软盘、硬盘、盘组)存储器

辅助存储器

磁带存储器

光盘存储器缓冲存储器第十二页,共七十七页,2022年,8月28日2023/3/2124.1.2存储器系统结构第十三页,共七十七页,2022年,8月28日2023/3/213

存储器系统由以下六部分组成:1.基本存储单元一个基本存储单元可以存放一位二进制信息,其内部具有两个相互对立的状态,并能够在外部对其状态进行识别和改变。

2.存储体一个基本存储单元只能保存一位二进制信息,若要存放M×N个二进制信息,就需要用M×N个基本存储单元,它们按一定的规则排列起来,由这些基本存储单元所构成的阵列称为存储体或存储矩阵。如8k×8表示存储体中一共8K个存储单元,每个存储单元存放8位二进制数据。8×1024×8=65536基本存储单元

第十四页,共七十七页,2022年,8月28日2023/3/2143.地址译码器

存储器系统是由许多存储单元构成的,CPU要对某个存储单元进行读/写操作时,必须先通过地址总线发出所需访问存储单元的地址码。地址译码器的作用是接受地址信号并对它进行译码,选中该地址码相对应的存储单元,以便对该单元进行读/写操作。存储器地址译码有单译码与双译码两种方式。单译码

单译码方式又称字结构,全部地址码只用一个电路译码,译码输出的选择线直接选中对应的存储单元。这一方式需要的选择线数较多,只适用于容量较小的存储器。第十五页,共七十七页,2022年,8月28日2023/3/215(2)双译码

在双译码结构中,将地址译码器分成行译码器(又叫X译码器)和列译码器(又叫Y译码器)两部分,行列选择线交叉处即为所选中的内存单元,这种方式的特点是译码输出线较少。如下图所示。第十六页,共七十七页,2022年,8月28日2023/3/216例如假定地址信号为10位单译码方式:2n=1024根译码输出线。双译码方式:分成两组,每组5位,则行译码后的输出线为25=32根;列译码输出线也为25=32根;共64根译码输出线。容量较大的存储器系统,一般都采用双译码方式。第十七页,共七十七页,2022年,8月28日2023/3/2174.片选与读/写控制电路

片选信号用以实现存储器芯片的选择。当片选信号有效时,才能对其进行读/写操作。在选择存储单元时,要先进行片选,再在芯片中选择与地址相应的存储单元。片选信号一般由地址译码器的输出及一些控制信号来形成。读/写控制电路则用来控制对芯片的读/写操作。5.I/O电路

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

6.其它外围电路集电极开路、三态输出缓冲器、刷新操作的控制电路等

第十八页,共七十七页,2022年,8月28日2023/3/2184.1.3存储器的性能指标1、存储器容量存储器容量是指存储器所有存储单元的数量,即字节数。或可以容纳的二进制信息总量,即存储信息的总位(bit)数。2、存取速度存储器的速度直接影响计算机的速度。存取速度可用存取时间和存储周期这两个时间参数来衡量。3、可靠性存储器的可靠性用MTBF(MeanTimeBetweenFailures)平均故障间隔时间来衡量。4、功耗存储器芯片正常工作时所消耗的电能,可用某个存储单元或整个芯片的功耗来表示。第十九页,共七十七页,2022年,8月28日2023/3/219读写存储器分为静态RAM与动态RAM两种。

4.2.1静态RAM(SRAM)1.基本存储单元

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

4.2读写存储器RAM第二十页,共七十七页,2022年,8月28日2023/3/220六管静态存储单元T1、T2为控制管T3、T4为负载管

T5、T6为门控管第二十一页,共七十七页,2022年,8月28日2023/3/221静态存储电路结构组成原理图第二十二页,共七十七页,2022年,8月28日2023/3/2222.静态RAM存储器芯片Intel2114Intel2114是一种1K×4的静态RAM存储器芯片,其它的典型芯片有Ietel6116/6264/62256等。芯片的内部结构•

存储矩阵•

地址译码器•

I/O控制电路•

片选及读、写控制电路第二十三页,共七十七页,2022年,8月28日2023/3/223(2)Intel2114的外部结构

Intel2114RAM存储器芯片为双列直插式集成电路芯片,共有18个引脚。•

A0-A9:10根地址信号输入引脚;

I/O1~I/O4:4根数据输入/输出信号引脚;•:读/写控制信号输入引脚;

:片选信号输入引脚;•+5V:

电源;

GND:地;第二十四页,共七十七页,2022年,8月28日2023/3/2244.2.2动态RAM(DRAM)1.动态RAM基本存储单元动态RAM的基本存储单元,由一个MOS管T1和位于其栅极上的分布电容C构成。当栅极电容C上充有电荷时,表示该存储单元保存信息“1”。反之,当栅极电容上没有电荷时,表示该单元保存信息“0”。动态RAM存储单元实质上是依靠T1管栅极电容的充放电原理来保存信息的,电容上所保存的电荷会泄漏。在动态RAM的使用过程中,必须及时地向保存“1”的那些存储单元补充电荷,以维持信息的存在。这一过程,就称为动态存储器的刷新操作。

第二十五页,共七十七页,2022年,8月28日2023/3/2252.动态RAM存储器芯片Intel2164AIntel2164A是一种64K×1的动态RAM存储器芯片,其他典型芯片有Ietel21256/21464等。(1)Intel2164A的内部结构第二十六页,共七十七页,2022年,8月28日2023/3/226•

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

地址锁存器(8位):Intel2164A采用双译码方式,16位地址信息分两次送入芯片,且通过同一组引脚分两次接收,故在芯片内部有一个锁存8位地址信息的地址锁存器;•

数据输入缓冲器(1位):

用以暂存输入的数据;

数据输出缓冲器(1位):

用以暂存要输出的数据;•1/4I/O门电路:由行、列地址信号的最高位控制,从相应的4个存储矩阵中选择一个进行输入/输出操作;例:A7(行)A7(列)选中128*128矩阵

00 左上角

01 右上角

10 左下角

11 右下角第二十七页,共七十七页,2022年,8月28日2023/3/227行、列时钟缓冲器:用以协调行、列地址的选通信号;•写允许时钟缓冲器:用以控制芯片的数据传送方向;•128读出放大器:接收由行地址选通的4×128个存储单元的信息,放大后写回原存储单元,实现刷新操作;•1/128行、列译码器:分别用来接收7位的行、列地址,从128×128个存储单元中选定某一单元,对其进行读/写操作。第二十八页,共七十七页,2022年,8月28日2023/3/228(2)Intel2164A的外部结构:

Intel2164A是具有16个引脚的双列直插式芯片。•A0~A7:地址信号的输入引脚;•:行地址选通信号输入引脚;

•:列地址选通信号输入引脚;•:写允许控制信号输入引脚;•DIN:数据输入引脚;

•DOUT:数据输出引脚;

•VDD:+5V电源引脚;

•Vss:地;第二十九页,共七十七页,2022年,8月28日2023/3/229

4.3.1

掩模

MROM

图示4×4位的MOSROM存储阵列,采用单译码方式。有两位地址输入,译码后输出四条字选择线为行,输出的位线为列线,行列的交叉处有管子则该位为“0”,没有管子则该位为“1”,交叉处的连接是在制造时由二次光刻版的图形掩模所决定的,一旦芯片制成后,用户是无法变更其结构的。保存的信息,在电源消失后,也不会丢失,将永远保存下去。

4.3只读存储器ROM第三十页,共七十七页,2022年,8月28日2023/3/2304.3.2可编程的PROM

PROM存储器在出厂时,存储体中每条字线和位线的交叉处都是两个反向串联的二极管的PN结,字线与位线之间不导通,意味着该存储器中所有的存储内容均为“0”。如果用户需要写入程序,则要通过专门的PROM写入电路,产生足够大的电流把要写入“1”的那个存储位上的二极管击穿,造成这个PN结短路,只剩下顺向的二极管跨连字线和位线,这时,此位就意味着写入了“1”。还有一种熔丝式PROM,用户编程时,靠专用写入电路产生脉冲电流,来烧断指定的熔丝,以达到写入“1”的目的。写入的过程称之为固化程序,PROM器件只能固化一次程序,数据写入后,就不能再改变了。第三十一页,共七十七页,2022年,8月28日2023/3/2314.3.3可擦除可编程序的EPROM1.基本存储电路

可擦除可编程的ROM又称为EPROM。这种EPROM电路在N型的基片上扩展了两个高浓度的P型区,分别引出源极(S)和漏极(D),在源极与漏极之间有一个由多晶硅做成的栅极,但它是浮空的,被绝缘物SiO2所包围。出厂时浮空栅极上没有电荷,管子内没有导电沟道,源极与漏极之间不导电,此时表示该存储单元保存的信息为“1”;

第三十二页,共七十七页,2022年,8月28日2023/3/232

编程时,若要使该单元保存信息“0”,则只要在漏极和源极之间加上+25V的电压,同时加上编程脉冲信号(宽度约为50ns),漏极与源极之间被瞬时击穿,就会有电子通过SiO2绝缘层注入到浮动栅。浮动栅被SiO2绝缘层包围,注入的电子无泄漏通道,且浮动栅为负,就形成了导电沟道使相应的单元导通,则该单元所保存的信息为“0”。如果要清除存储单元中所保存的信息,就必须设法将其浮动栅上的负电荷释放掉。当用一定波长的紫外光照射浮动栅时,负电荷便可以获取足够的能量,摆脱SiO2的包围,以光电流的形式释放掉,源极与漏极之间不导电。恢复保存的信息为“1”的状态。该单元又可重新编程。

EPROM存储器芯片,在其上方有一个石英玻璃的窗口,紫外线正是通过这个窗口来照射其内部电路而擦除信息的,一般擦除信息需用紫外线照射l5~20分钟。第三十三页,共七十七页,2022年,8月28日2023/3/2332.EPROM芯片Intel2716

Intel2716是一种2K×8的EPROM存储器芯片,双列直插式封装,24个引脚。其它的典型芯片有Ietel2732、Ietel2764、Ietel27256等。芯片的内部结构•存储阵列;存储阵列由2K×8个浮动栅MOS管构成;•7位行地址译码器;•4位列地址译码器;•输出允许、片选和编程逻辑;•

数据输出缓冲器;

第三十四页,共七十七页,2022年,8月28日2023/3/234(2)芯片的外部结构

Intel2716具有24个引脚,各引脚的功能如下:•Al0~A0:地址信号输入引脚;•O7~O0:双向数据信号输入输出引脚;•:片选信号输入引脚;•:数据输出允许控制信号引脚;•Vcc:+5v电源;•VPP:+25v电源;•GND:地。第三十五页,共七十七页,2022年,8月28日2023/3/2354.3.4电可擦除可编程序的EEPROM

电可擦除可编程序的ROM也称为EEPROM即E2PROM。其工作原理与EPROM类似,在E2PROM中,漏极上面增加了一个隧道二极管,它在第二栅极与漏极之间的电压VG的作用下,可以使电荷通过它流向浮动栅;若VG的极性相反也可以使电荷从浮动栅流向漏极,所用的电流是极小的。擦除可以按字节分别进行。字节的编程和擦除都只需要10ms,可以进行在线的编程写入。常用的典型芯片有2816/2864等第三十六页,共七十七页,2022年,8月28日2023/3/2364.3.5快擦型存储器(F1ashMemory)

快擦型存储器具有EEPROM的特点,又可在计算机内进行擦除和编程,它的读取时间与DRAM相似,而写时间与磁盘驱动器相当。快擦型存储器操作简便,编程、擦除、校验等工作均已编成程序,可由配有快擦型存储器系统的中央处理机予以控制。快擦型存储器可替代EEPROM,在某些应用场合还可取代需要配备电池后援的SRAM系统,使用快擦型存储器后可省去电池。快擦型存储器的非易失性和快速读取的特点,能满足固态盘驱动器的要求。同时,可替代便携机中的ROM,以便随时写入最新版本的操作系统。快擦型存储器还可应用于MP3、U盘、各种仪器设备以及计算机的外部设备中。典型的芯片有27F256/28F016/28F020等。

第三十七页,共七十七页,2022年,8月28日2023/3/2374.4.1存储器芯片与CPU的连接

CPU对存储器进行读写操作,首先要由地址总线给出地址信号,然后要发出相应的读/写控制信号,最后才能在数据总线上进行信息交流。存储器芯片与CPU的连接,主要有以下三个部分:•地址线的连接;

•数据线的连接;•控制线的连接;4.4存储器芯片扩展与CPU的连接第三十八页,共七十七页,2022年,8月28日2023/3/238在连接中要考虑的问题有以下几个方面:

1.CPU总线的负载能力;

2.CPU的时序和存储器的存取速度之间的配合问题;

3.存储器的地址分配和片选问题;内存通常分为RAM和ROM两大部分。而RAM又分为系统区和用户区,用户区又要分成数据区和程序区。ROM的分配也类似,所以内存的地址分配是一个重要的问题。单片存储器芯片的容量是有限的,通常要由许多片才能组成一个存储器,即如何产生片选信号的问题。

4.控制信号的连接;CPU在与存储器交换信息时,通常有以下几个控制信号:

(),,

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

第三十九页,共七十七页,2022年,8月28日2023/3/2394.4.2存储器芯片的扩展计算机的内存一般要求容量也很大,单片存储器芯片不能满足需求,需要用到多片芯片的连接与扩展。存储器芯片扩展的方法有以下两种。1.存储器芯片的位扩充

如果存储器芯片的容量满足存储器系统的要求,但其字长小于存储器系统的要求,就需要用多片同样容量的芯片通过位扩充的方法来满足存储器系统对字长的要求。

第四十页,共七十七页,2022年,8月28日2023/3/240例1用1K×4的2114芯片构成lK×8的存储器系统。由于芯片的容量为1K,故满足存储器系统的容量要求。但由于每个芯片只能提供4位数据,故需用2片这样的芯片,它们分别提供4位数据至系统的数据总线,以满足存储器系统的字长要求。这种扩展存储器的方法就称为位扩展适用于多种芯片,如可以用8片2164A(64K×1)组成64K×8的存储器等。

第四十一页,共七十七页,2022年,8月28日2023/3/241....A11A10译码器A9A9A0A0WRWEI/OI/OCS2114

(1)...D0D3D4D7A9A0WEI/OI/OCS2114

(2)...................8088Y0M/IO地址码地址范围A15…A12A11A10A9…A0…000…00000H………001…103FFH第四十二页,共七十七页,2022年,8月28日2023/3/2422.存储器芯片的字扩充

如果存储器芯片的字长符合存储器系统的要求,但其容量太小,可使用多片存储器芯片进行字扩充。例2用2K×8的2716存储器芯片组成8K×8的存储器系统。由于每个芯片的字长为8位,满足存储器系统的字长要求。但每个芯片容量为2K故需用4片2716进行字扩充。第四十三页,共七十七页,2022年,8月28日2023/3/243第四十四页,共七十七页,2022年,8月28日2023/3/244地址码A15…A13A12A11A10A9…A0地址范围芯片编号0…00000…0┇0…00011…10000H┇07FFH2716-10…00100…0┇0…00111…10800H┇0FFFH2716-20…01000…0┇0…01011…11000H┇17FFH2716-30…01100…0┇0…01111…11800H┇1FFFH2716-4根据硬件连线图存储器的地址分配范围如下:

第四十五页,共七十七页,2022年,8月28日2023/3/2453.同时进行位扩充与字扩充

在有些情况下,存储器芯片的字长和容量均不符合存储器系统的要求,需要用多片存储器芯片同时进行位扩充和字扩充,以满足系统的要求。例3用1K×4的2114芯片组成2K×8的存储器系统。第四十六页,共七十七页,2022年,8月28日2023/3/246例4一个存储器系统包括2KRAM和8KROM,分别用1K×4的2114芯片和2K×8的2716芯片组成。要求ROM的地址从1000H开始,RAM的地址从3000H开始。试完成硬件连线及相应的地址分配表。

第四十七页,共七十七页,2022年,8月28日2023/3/247一.利用门电路进行地址译码A9A8A6A3A2A1A7A5A4A0AENCSA9A8A7A6A5A4A3A2A1A0AEN11010011100经过译码后的端口号地址为:34EH第四十八页,共七十七页,2022年,8月28日2023/3/248

二.译码器进行地址译码地址译码器常用74LS138,它的引脚和功能表如图所示。

74LS138有三个使能端G1=1、G2A=0和G2B=0;

3个译码输入端C、B、A决定8个输出端的状态。第四十九页,共七十七页,2022年,8月28日2023/3/249三.组合电路译码电路

A15A14A13

A12A11

1

0

0

0

0

Y0

0

1

Y1

1

0

Y2

1

1

Y3

8000H~87FFH8800H~8FFFH9000H~97FFH9800H~9FFFH第五十页,共七十七页,2022年,8月28日2023/3/250四.二级译码电路

A15A14A13

A12A11

1

0

0

0

0

Y0

0

1

Y1

1

0

Y2

1

1

Y3

8000H~87FFH8800H~8FFFH9000H~97FFH9800H~9FFFH第五十一页,共七十七页,2022年,8月28日2023/3/251线选方式:使用1~2根地址线与门电路组合产生片选信号。特点:线路简单,但地址重叠区多。部分译码方式:使用多根地址线与译码器组合产生片选信号。特点:要有译码器,但仍存在地址重叠区。全译码方式:使用全部地址线与译码器组合产生片选信号。特点:要有译码器,无地址重叠区。译码方式:第五十二页,共七十七页,2022年,8月28日2023/3/2521.设计一个存储器系统,CPU为8088,RAM为16K,ROM为2K;地址从4000H开始,ROM在高位地址,RAM在低位地址,现有两种芯片:2K×8的EPROM芯片2716和8K×8的静态RAM芯片6264。⑴画出硬件连接图⑵写出各芯片的地址范围。第五十三页,共七十七页,2022年,8月28日2023/3/2532.用64K*1位芯片构成2MB存储器系统

①芯片数目=()块

②(

)块的A1接在一起,每()块的D1接在一起。

③每(

)块的片选信号接在一起。④选用(

)个输入,(

)个输出的译码器控制芯片。一个译码器输出控制(

)芯片的片选信号。⑤片内寻址需(

)条地址线,选片寻址需(

)条地址线。2562563232581658第五十四页,共七十七页,2022年,8月28日2023/3/254

8086系统中字长是16位,1M字节分为2个512K的存储体,一个存储体中的都是偶数地址,叫偶体,另一个都是奇数地址,叫做奇体。如下图所示。第五十五页,共七十七页,2022年,8月28日2023/3/255访问一个存储体,只需19位地址,用A1~A19

剩下一位A0用来区分访问那个存储体。

A0=0时为访问偶存储体,A0=1时为访问奇存储体。信号:由该信号和A0的代码组合和控制读写操作,见下表A0操作(读或写)00从偶地址开始,同时访问2存储体,读写一个字01只访问奇地址存储体或I/O端口,读写高位字节10只访问偶地址存储体或I/O端口,读写低位字节11无操作第五十六页,共七十七页,2022年,8月28日2023/3/2564.5.1主存-Cache的层次结构目前计算机使用的内存主要为动态RAM,它具有价格低,容量大的特点,但由于是用电容存储信息,所以存取速度难以提高,在半导体存储器中,双极型静态RAM的存取速度可与CPU速度处于同一数量级,但这种RAM价格较贵,功耗大,集成度低,要达到与动态RAM相同的容量时,其体积就比较大,也就不可能将存储器都采用静态RAM。因此就产生出一种分级处理的办法,即在主存和CPU之间加一个容量相对小的双极型静态RAM作为高速缓冲存储器(简称Cache)

4.5高速缓冲存储器Cache第五十七页,共七十七页,2022年,8月28日2023/3/257

对大量典型程序的运行情况分析结果表明,在一个较短的时间内,由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内。数据的这种集中倾向虽不如指令明显,但对数组的存储和访问以及工作单元的选择也可以使存储器地址相对集中。这种对局部范围的存储器地址频繁访问,而对此范围以外的地址则访问甚少的现象,称为程序访问的局部性。根据程序的局部性原理,在主存和CPU之间设置Cache,把正在执行的指令地址附近的一部分指令或数据的副本从主存装入Cache中,供CPU在一段时间内使用,是完全可行的。第五十八页,共七十七页,2022年,8月28日2023/3/258管理这两级存储器的部件为Cache控制器(82385),CPU和主存之间的数据传输都必须经过Cache控制器,Cache控制器将来自CPU的数据读写请求,转向Cache存储器,如果数据在Cache中,则CPU对Cache进行操作,称为一次命中。命中时,CPU从Cache中读(写)数据。由于Cache速度与CPU速度相匹配,因此不需要插入等待状态。目前,大容量的Cache存储器使CPU访问Cache的命中率高达90%至99%,大大提高了CPU访问数据的速度,提高了系统的性能。第五十九页,共七十七页,2022年,8月28日2023/3/259

若数据块不在Cache中,称为一次失败(不命中)。如果是做读操作,则CPU需从主存读取信息的同时,Cache替换部件把该地址所在的那块存储内容从主存拷贝到Cache中。如果是做写操作,很多计算机系统只向主存写入信息,不必同时把这个地址单元所在的整块内容调入Cache存储器。这时,CPU必须在其机器周期中插入等待周期。第六十页,共七十七页,2022年,8月28日2023/3/2604.5.2Cache的基本工作原理

对典型程序的运行情况分析结果表明,存在着对局部范围的存储器地址访问频繁,而对此范围以外的地址则访问甚少的现象,称为程序访问的局部性。设置Cache可将正在执行的指令地址附近的一部分指令或数据从主存装入Cache中,供CPU在一段时间内使用,可提高指令执行的速度。

Cache存储器存放主存中的一部分程序块和数据块的副本,是以块为单位的存储方式。每一块加有一个标记,指明它是主存的哪一块副本,Cache的容量和块的大小是影响Cache效率的重要因素,常用“命中率”来测量Cache的效率。在Pentum以后的CPU中,集成了数据Cache和指令Cache,与主机板上的Cache存储器形成两级Cache结构。第一、二级Cache结合,提高了命中率,加快了处理速度,使CPU对Cache的操作命中率高达98%以上。

第六十一页,共七十七页,2022年,8月28日2023/3/2614.5.3Cache的基本操作

Cache作为存储器,具有两种基本操作,即读操作和写操作。

CPU读操作时分两种情形:一是需要的数据已在Cache存储器中,只需直接访问Cache存储器;另一种是需要的数据未装入Cache,CPU需从主存读取信息。同时,Cache替换部件把该地址所在的存储内容块从主存拷贝到Cache中。

CPU写操作时也分两种情形:一是命中时,将新的内容写入Cache存储器中,并同时写入主存,保证主存和副本内容一致,这种方法称写直达法或称通过式写(简称通写法)。考虑到写入的数据往往是中间结果,每次都写入主存很浪费时间,于是设计成每次只向Cache写入,并用标志加以注明,直到Cache中被写过的块要被新进入Cache的信息块取代时,才一次性写回主存。这种方法称为回写法。

第六十二页,共七十七页,2022年,8月28日2023/3/262地址映象地址映象:为了把信息放到Cache中,必须应用某种函数把主存地址映象到Cache中定位。

地址变换:当信息按这种映象关系装入Cache后,系统在执行程序时,应将主存地址变换为Cache地址,这个变换过程叫做地址变换。

Cache中的一个存储块要与主存中的若干个存储块相对应,即若干个主存地址将映象成同一个Cache地址。根据不同的地址对应方法,地址映象的方式通常有

直接映象、全相联映象和组相联映象三种。第六十三页,共七十七页,2022年,8月28日2023/3/2631.直接映象每个主存地址映象到Cache中的一个指定地址的方式称为直接映象。在直接映象方式下,主存中存储单元的数据只可调入Cache中的一个固定位置,如果主存中另一个存储单元的数据也要调入该位置,则将发生冲突。直接映象函数可定义为:

j=imod2N

j是Cache中的块号;i是主存中的块号。Cache被分成2N块,主存被分成同样大小的2M块。直接映象是一种最简单的地址映象方式,它的地址变换速度快,而且不涉及其它两种映象方法中的替换策略问题。缺点是不够灵活,这使得Cache存储空间得不到充分利用,并降低了命中率。尤其是当程序往返访问两个相互冲突的块中的数据时,Cache的命中率将急剧下降。第六十四页,共七十七页,2022年,8月28日2023/3/264在这种映象方式中,主存的第0块,第2N块,…

第2N+l块,…,只能映象到Cache的第0块,而主存的第1块,第2N十l块,第2N+1十1块,…,只能映象到Cache的第1块,依次类推。第六十五页,共七十七页,2022年,8月28日2023/3/2652.全相联映象全相联映象方式是最灵活但成本最高的一种方式,它允许主存中的每一个字块映象到Cache存储器的任何一个字块位置上,也允许从确实已被占满的Cache存储器中替换出任何一个旧字块。当访问一个块中的数据时,块地址要与Cache块表中的所有地址标记进行比较以确定是否命中。在数据块调入时,存在着一个比较复杂的替换策略问题,即决定将数据块调入Cache中什么位置,将Cache中哪一块数据调出到主存。全相联方法只有在Cache中的块全部装满后才会出现块冲突,所以块冲突的概率低,Cache的利用率高。但全相联Cache中块表查找的速度慢,由于Cache的速度要求高,因此全部比较和替换策略都要用硬件实现,控制复杂,实现起来也比较困难。这是一个理想的方案,但实际上由于它的成本太高而不能采用。第六十六页,共七十七页,2022年,8月28日2023/3/2663.组相联映象

组相联映象方式是全相联映象和直接映象的一种折衷方案。这种方法将存储空间分成若干组,各组之间是直接映象,而组内各块之间则是全相联映象。在组相联映象方式下,主存中存储块的数据可调入Cache中一个指定组内的任意块中。它是上述两种映象方式的一般形式,如果组的大小为1时就变成了直接映象;如果组的大小为整个Cache的大小时就变成了全相联映象。

组相联映象方法在判断块命中以及替换算法上都要比全相联映象方法简单,块冲突的概率比直接映象方法的低,其命中率也介于直接映象和全相联映象方法之间。Cache的命中率除了与地址映象的方式有关外,还与Cache的容量有关,Cache容量大,命中率高,但达到一定容量后,命中率的提高就不明显了。

第六十七页,共七十七页,2022年,8月28日2023/3/267组相联映象函数可定义为:j=(INT(i/2R)mod2C)×2R十k

Cache子块分成2C组,每组包含2R个字块主存字块MM(i)

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

(0≤j≤2N-1)上例如,设C=3位,R=1位,主存字块15可映象到Cache的哪一个字块中。j=(INT(i/2R)mod2C)×2R十k

=(15/2mod8)×2十k

=7×2十k

=14十k0≤k≤2R-1=2-1=1即:

k=0或1

代入后得j=14(k=0)或15(k=1)。主存模块i=15可映象到Cache字块j=14或15,在第7组。同法可计算主存字块i=17可映象到Cache的第0块或第1块,在第0组。

第六十八页,共七十七页,2022年,8月28日2023/3/2684.5.4替换策略

当新的主存字块需要调入Cache存储器而它的可用位置又已被占满时,就产生替换策略问题。常用的两种替换策略是:先进先出(FIFO)策略和近期最少使用(LRU)策略。1.先进先出(FIFO)策略

FIFO(FirstInFirstOut)策略总是把一组中最先调入Cache存储器的字块替换出去,它不需要随时记录各个字块的使用情况,所以实现容易,开销小。2.近期最少使用(LRU)策略

LRU(LeastRecentlyUsed)策略是把一组中近期最少使用的字块替换出去,这种替换策略需随时记录Cache存储器中各个字块的使用情况,以便确定哪个字块是近期最少使用的字块。LRU替换策略的平均命中率比FIFO要高,并且当分组容量加大时,能提高该替换策略的命中率。

第六十九页,共七十七页,2022年,8月28日2023/3/2694.5.5PIII中采用的Cache技术

PentiumII有2级Cache,L1为32kB(指令和数据Cache16kB),L2为512kB。PentiumII的L2Cache与CPU通过专用64位高速缓存总线相联,与其它元器件共同被组装在同一基板上。

PentiumIII具有32kB非锁定L1Cache和512kB非锁定L2Cache。L2可扩充到1~2MB,具有更合理的内存管理,可以对大于L2缓存的数据块进行处理,使CPU、Cache和主存存取更趋合理,提高了系统整体性能。对于可缓存的内容,PIII通过预先读取期望的数据到高速缓存里来提高速度和命中率,减少了存取时间。为进一步发挥Cache的作用,PentiumIII处理器中新增加了一组缓存控制指令。缓存控制指令有两类。一类是数据预存取(Prefetch)指令,能够增加从主存到缓存的数据流;另一类是内存流优化处理(MemoryStreaming)指令,能够增加从处理器到主存的数据流。

第七十页,共七十七页,2022年,8月28日2023/3/2704.6.1主存-辅存层次结构

主存一般由半导体器件构成,辅存一般为磁存储器和光存储器。主存的速度远高于辅存,但辅存成本低,容量大,而且断电后信息不会丢失。

CPU不能直接访问辅存,辅存主要用于存放大量程序、数据文件。当CPU执行某程序时,在存储管理软件和有关硬件的支持下,将程序从辅存调入主存,再由CPU执行,这样便形成了主-辅存的存储层次。主存-辅存层次解决了存储器的大容量要求和低成本之间的矛盾,其速度接近于主存的速度,其容量则接近于辅存的容量,经过不断发展和完善,就逐步形成了现在广泛使用的虚拟存储系统。4.6虚拟存储器第七十一页,共七十七页,2022年,8月28日2023/3/2714.6.2虚拟存储器的基本概念1.什么叫虚拟存储器(VirtalMemory)

虚拟存储器是建立在主存-辅存物理结构基础之上,由附加硬件装置及操作系统存储管理软件组成的一种存储体系,它将主存和辅存的地址空间统一编址,形成一个庞大的存储空间。程序运行时,附加的辅助硬件机构和存储管理软件会把辅存的程序一块块自动调入主存由CPU执行,或从主存调出。用户感觉到的不再是处处受主存容量限制的存储系统,而是好象具有一个容量充分大的存储器。实质上CPU仍只能执行调入主存的程序,所以这样的存储体系称为“虚拟存

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论