计算机接口技术课件第3章_第1页
计算机接口技术课件第3章_第2页
计算机接口技术课件第3章_第3页
计算机接口技术课件第3章_第4页
计算机接口技术课件第3章_第5页
已阅读5页,还剩36页未读, 继续免费阅读

下载本文档

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

文档简介

1、本章重点:存储器与CPU连接时应该注意的问题使用多个芯片构成大容量的存储器时存储芯片的选择问题高速缓冲存储器的系统结构3.1 存储器概述存储器概述存储器是计算机硬件系统的重要组成部分,计算机有了存储器后才具有记忆功能,才能把计算机要执行的操作、所需要的数据等信息保存起来,这样就可以自动地执行任务而不需要人为干预,从而自动完成信息的处理。这也是冯诺伊曼式计算机的程序存储思想。存储器要和CPU进行信息交换,它们之间的信息交换要借助于存储器和CPU之间的接口才能很好地进行。构成存储器芯片的种类不同,存储器和CPU之间进行通信的接口方式也不相同。本章重点研究各种存储器和CPU之间的接口。为了更好地了解

2、它们之间的接口,首先要了解各种存储器的性能特征及工作原理。接下来介绍存储器的性能要求及分类。3.1.1 存储器的性能要求存储器的性能要求随着计算机制造技术的发展,存储器技术也得到了迅速的发展,各种存储器的性能不断提高,但是评价存储器的基本要求仍然是大容量、高速度和低价格。大容量:存储器的容量越大,存储的信息就越多。特别是随着多媒体技术的出现和发展,要存储的信息量急剧增加,这就要求计算机有更大的容量来存储这些集图片、声音、文字多种信息于一体的多媒体信息,使得计算机的功能更强。高速度:在程序的执行过程中,访问存储器的速度比较慢。首先要去主存储器中取出程序所需要运行的指令和数据,然后送到相应的部件去

3、执行。这样一来,存储器存取速度的快慢关系到整个系统的工作效率。因此存储器的高速度才能与CPU的速度相匹配,充分发挥CPU的效率。存取速度是存储器首先要考虑的重要因素。低价格:任何产品,在相同的性能条件下,价格越低越受欢迎。从技术方面来讲,存储器的主要技术性能指标有:存储容量:通常以允许存放的字数位数或者字节数来表示存储器的容量。比如某存储器的容量为32M16,表示该存储器有32M字,每个字长为16位。存储容量越大,能存储的信息就越多。存取周期:存取周期又称为读写周期或访问周期。通常指连续存入或取出两个数据所间隔的时间。存取周期是衡量存储器工作速度的一个指标。取数时间:从CPU发出读命令开始,直

4、到存储器获得有效读出信号的一段时间称为取数时间。取数时间的长短主要与存储器载体的性质有关,比如半导体存储器可以达几十毫秒甚至十几纳秒。可靠性:要求存储器能长期稳定、可靠地运行,对于易失性存储器,比如我们常说的内存,希望在供电期间,数据在未修改的情况下存储要稳定。对于非易失性存储器,希望断电后存储器中的数据仍能完好保存,只要对存储器的内容不进行修改就可以一直保存,能够完整保存的时间越久越好。通常以平均无故障工作时间来衡量存储器的可靠性。显然,平均无故障工作时间越长,可靠性越高。性价比:我们常以“性价比”来衡量存储器的好坏。现在也采用另一种表示方法,即以每位的价格来衡量存储器的性价比。3.1.2

5、存储器的分类存储器的分类存储器从不同的角度有不同的分类方法:按照存储器在计算机中的位置分为辅助存储器、内存储器和高速缓冲存储器,它们共同构成三级存储结构。按照存储器的存取方式可以分为随机访问存储器和只读存储器。随机访问存储器(Random Access Memory,RAM)也叫做读写存储器,是指计算机可以随机、个别地对存储器的任意存储单元进行读写操作,所需的时间基本固定,与存储单元的地址大小无关。只读存储器(Read Only Memory,ROM)是一种对其存储内容只能读出不能写入的存储器,它也属于主存空间的一部分,和随机存储器分享主存储器的同一地址空间。按照构成存储器的器件和存储介质可分

6、为磁芯存储器、半导体存储器、光电存储器、磁膜、磁泡和其他磁表面存储器以及光盘存储器等。3.2 半导体存储器半导体存储器半导体存储器因为体积小、速度快、耗电低和价格低等优点,在微机中被广泛采用。目前市场上的半导体存储器种类繁多,性能各异。半导体存储器大致分为如下几类:双极型、MOS型和SAM型。其中,双极型速度快,集成度小,用于容量较小的高速缓冲存储器;SAM型分为先进先出存储器和电荷耦合器件,前者主要用于各种队列电路和多极缓冲器,后者用于串行存储器,和存取时间及位置有关;MOS型分为RAM和ROM,ROM又分为一般掩膜ROM、PROM(可编程ROM)、EPROM(可擦除可编程PROM)和EEP

7、ROM(电可擦除PROM),RAM分为SRAM(静态RAM)、DRAM(动态RAM)、IRAM(组合RAM)和FLASH(非易失型RAM)1. RAMRAM是指随机存取存储器,用作主存,所以与CPU有直接的数据通路。在微机系统的工作过程中,CPU可以随机地对其中的各个存储单元进行读写操作。但该存储器断电后信息会丢失,属于易失型存储器。按照存储元件在执行过程中信息能否长时间有效,易失型存储器又分为静态RAM与动态RAM两种。1) 静态RAM(SRAM)静态RAM的基本存储单元是由两个增强型的NMOS反相器交叉耦合而成的触发器,每个基本的存储单元由6个MOS管构成,所以静态存储电路又称为6管静态存

8、储电路。图3-1(a)为6管静态存储单元的原理示意图原理:T1、T2为控制管,T3、T4为负载管。这个电路具有两个相对的稳定状态,若Tl管截止,则A“l”(高电平),这可以使T2管开启,于是B“0”(低电平),而B“0”又进一步保证了T1管的截止。所以,这种状态在没有外触发的条件下是稳定不变的。同样,T1管导通,即A“0”(低电平);T2管截止,即B“1”(高电平),这种状态也是稳定的。因此,可以用这个电路的两个相对稳定的状态来分别表示逻辑“1”和逻辑“0”当把触发器作为存储电路时,就要使它能够接收来自外界的触发控制信号,以读出或改变该存储单元的状态,这样就形成了图3-l(b)所示的6管基本存

9、储电路。其中,T5、T6为门控管。当X译码输出线为高电平时,T5、T6管导通,A、B端分别与位线D0及 相连;若相应的Y译码输出线也是高电平,则T7、T8管也是导通的,于是D0及 与输入/输出电路的I/O线导通。2) 动态RAM(DRAM)静态RAM的基本存储单元是一个RS触发器,其状态是稳定的,但由于每个基本存储单元都需要由6个MOS管构成,因而大大限制了RAM芯片的集成度。图3-2所示是一个动态RAM的基本存储单元动态RAM由一个MOS管T1和位于其栅极上的分布电容C构成。当栅极电容C上充有电荷时,表示该存储单元保存信息“1”。反之,当栅极电容上没有电荷时,表示该存储单元保存信息“0”。由

10、于栅极电容上的充电与放电是两个对立的状态,因此它可以作为一种基本的存储单元。进行读写操作时,字选择线为高电平,使得T1管导通,写信号通过位线存入电容C中,读信号使得存储在电容C上的电荷通过T1输出到数据线上,通过读出放大器即可得到所保存的信息。DRAM的每一个存储都由有一个晶体管和一个小电容组成,所以它的集成度可以做得很高,它的集成度远远超过SRAM,并且DRAM的价格较低。正因为这两个优点,使得它成为计算机中的主要角色。为了提高DRAM 的存取速度,DRAM做了很多改进。主要是从存取时间上进行改进,出现如下几种类型的DRAM:快页式DRAM(Fast Page Mode DRAM ):DRA

11、M是通过交叉输入行列地址来进行地址选择的,速度比较慢。但是在大多数情况下,内存要访问的数据的地址是在当前访问数据的下一个单元,存放位置为同行的下一列,所以在做地址选择时可以考虑行不变,直接选择列地址,这样就节省了地址选择时间。快页式DRAM常用于视频卡。其中一种经过特殊设计,存取时间仅为48ns,这时称作VRAM,具有“双口”,其中一个端口可直接被CPU存取,而另一个端口可独立地被RAM“直接存取通道”存取。这样一来,存储器的“直接存取通道”不必等待CPU完成存取就可同时工作,从而比一般的DRAM要快些。扩展数据输出DRAM(Extended Data Out DRAM,EDO DRAM):又

12、称为超页模式(hyper-page-mode)DRAM,这种方式是在快页式DRAM基础上发展起来的,它在RAM的输出端加一级锁存器,直到数据被有效读出,这样可以让进行两次存取在时间上是重叠的,进一步节省了时间。比如行列地址被建立时,当数据被读出的同时可以进行下一个列地址的选择。突发式DRAM:这种方式是在扩展数据输出DRAM基础上发展起来的,就像它的名字一样,是在一个“突发动作”中读取数据。思想为:为存储器的芯片加上一个地址计数器,用来跟踪下一个地址。比如以4个周期突发访问内存时,若第一个地址给出,后三个地址很快在芯片上提供,并自动把它们预取出来。这样一来,在读后面三个数据中的每一个数据时,只

13、用仅仅一个时钟周期,CPU就能够以突发模式读数据。在这种方式下,指令的传送速度大大提高,处理器的指令队列能有效地填满。同步DRAM:即SDRAM,可以说是最有前途的一种内部存储器,当前这种RAM很受欢迎。目前市面上的绝大多数奔腾级主板和Pentium主板都支持这种内存。就像这种内存的名字所表明的系统时钟同步工作的DRAM。DRAM在非常快的突发方式下传送数据,支持高速的总线时钟频率,不插入等待时钟周期。之后,在SDRAM的基础上发展出SDRAM的第二代产品,即DDR SDRAM,它采用更高级的同步电路,允许数据在系统时钟的上升与下降两个边沿触发。2. ROMROM是指在微机系统的运行过程中,只

14、能进行读操作,而不能进行写操作的一类存储器。在不断发展变化的过程中,ROM器件也产生了掩模ROM、PROM、EPROM、EEPROM等多种类型。1) 掩模ROM在生产过程中,根据用户的需求及提供的数据或程序写入到ROM中,出厂时内容已经固定不能修改,因此不能用于批量生产。2) 可编程的ROM可编程的ROM也可记为PROM,一次性编程PROM可供用户通过编程器写入一次程序或数据,写入以后,内容不允许再进行修改,这样用户可以将不需要修改的数据或程序写入PROM。写入后若发现错误,该芯片就只能作废。对于PROM来说,这个写入的过程称为固化程序。由于击穿的二极管不能再正常工作,烧断后的熔丝不能再接上,

15、因此这种ROM器件只能固化一次程序,数据写入后,就不能再改变了。3) 可擦除可编程的ROM可擦除可编程的ROM也可记为EPROM,基本存储单元的结构和工作原理如图3-3所示。EPROM在擦除时用一定波长的紫外线照射,使得原来存储的信息不存在。需要说明的是:EPROM的擦除必须是脱机擦除,而且一次性整个芯片的所有信息都会被擦除掉,因此程序修改不方便。典型芯片有Intel 2716、Intel 2732/27128/27512等。4) 电可擦除可编程的ROM电可擦除可编程的ROM也称为EEPROM。它不像EPROM那样必须脱机用紫外线擦除,而是用电来擦除,可以由计算机联机进行编程和改写。可以整片擦

16、除,也可以按字节擦除和再编程,从而克服了EPROM的缺点。典型芯片有Intel 2816/2817/2864等。5) 快擦型存储器(Flash Memory)快擦型存储器既具有EEPROM的特点,又可在计算机内进行擦除和编程,它的读取时间与DRAM相似,而写时间与磁盘驱动器相当。它目前还是用于ROM的一种,在工业控制与办公设备等领域,Flash存储器可以用于在线改写的ROM。使用快擦型存储器后可省去电池。快擦型存储器的非易失性和快速读取特点,能满足固态盘驱动器的要求。同时,它可替代便携机中的ROM,以便随时写入最新版本的操作系统。3.3 存储器接口技术存储器接口技术存储器与CPU连接时应注意的

17、问题: 1,首先是CPU总线的负载能力问题。 2,其次是CPU时序与存储器芯片存取速度的匹配问题。 3,最后是存储器的地址分配和片选问题。3.3.1 存储器的地址译码方法存储器的地址译码方法每一个存储芯片的容量都是有限的,一个存储器需要多个芯片来共同构成。对于多个芯片构成的存储器,要保证CPU能对所有存储单元实现正确的寻址,以准确地找到哪一个芯片的哪一个存储单元。这样一来,存储器的地址译码就分为存储芯片的选择(即片选控制)和片内地址译码两部分。片内地址译码部分是利用地址选择线的低位来对片内存储单元进行寻址;而片选控制是选择哪一片是有效的,利用地址选择线的高位和相应的译码电路组合来完成。下面主要

18、介绍片选控制的译码方法,主要有4种方法:线选法、全译码、部分译码和混合译码。1. 线选法线选法当CPU的可寻址范围远大于存储器的容量,即存储器的容量不大,并且所用的芯片数量不多时,让高位地址线直接和一个芯片进行连接,中间不借助任何译码电路,即每一根地址线直接选通一块芯片,这种方法称为线选法。2. 全译码全译码全译码方式是指除了用于片内地址译码的地址线外,剩下的所有高位地址线都经过译码电路,从得出的状态中选择连续的几个对芯片进行选择,译码后多余的状态可以空闲,便于以后存储器的扩展。这种译码方式使得存储器的地址空间是连续的,无重叠现象。3. 部分译码部分译码部分译码是指除了用于片内地址选择的地址线

19、外,所剩的高位地址线部分送入译码电路进行译码,得出的状态用于片选。这种方法适用于不需要全部地址空间的寻址能力、但采用线选法时地址线又不够用的情况。这种方法有高位地址线未参与片选,所以会出现地址重叠现象。在高位地址线中,可选择不同的地址线送入译码器,所以得到的地址空间是不同的。4. 混合译码法混合译码法混合译码法是将线选法和部分译码法相结合的一种方法。该方法把用于片选控制的高位地址线分为两组,较低位地址线的一组采用部分译码方式,较高位地址线的那一组采用线选法进行芯片选择这种方法同样存在地址不连续和地址重叠的问题。3.3.2 主存储器接口主存储器接口构成主存储器的存储器芯片类型不同,其接口方式也不

20、同。下面以EPRAM、SRAM、 DRAM为例,介绍与CPU的接口问题。1. 动态动态RAM存储器芯片存储器芯片Intel 2164A与与CPU的接口的接口首先来看一下Intel 2164A的内部结构,如图3-9所示。Intel 2164A是一个64KB1的存储器,由4个128128的存储阵列构成,采用双译码方式,它的16位地址信息要分两次送入芯片内部。但由于受封装限制,这16位地址信息必须通过同一组引脚分两次接收,在芯片内部有一个能保存8位地址信息的地址锁存器;数据输入缓冲器和数据输出缓冲器用来暂存输入或输出的数据;1/4 I/O门电路用来从相应的4个存储矩阵中选择一个进行输入/输出操作,该

21、选择由行列地址信号的最高位控制,行/列时钟缓冲器用于协调行、列地址的选通信号;写允许时钟缓冲器用于控制芯片的数据传送方向;4个128读出放大器与4个128128存储阵列相对应,它们能接收由行地址选通的4128个存储单元的信息,经放大后,再写回原存储单元,是实现刷新操作的重要部分;1/128行/列译码器分别用来接收7位的行、列地址,经译码后,从128128个存储单元中选择一个确定的存储单元,以便对其进行读/写操作。为行地址选通信号输入引脚,低电平有效,兼作芯片选择信号。当 为低电平时,表明芯片当前接收的是行地址; 为列地址选通信号输入引脚,低电平有效,表明当前正在接收的是列地址(此时 应保持为低

22、电平); 为写允许控制信号输入引脚,当为低电平时,执行写操作;否则执行读操作。Intel 2164A的外部结构如图3-10所示,是一个具有16个引脚的双列直插式集成电路芯片。其中:A0A6为地址信号的输入引脚,用来分时接收CPU送来的8位行、列地址;VDD、VSS分别接+5V电压、接地;DIN、DOUT分别为数据输入引脚、数据输出引脚。这里以Intel 2164A为例,介绍动态RAM存储器芯片接口的实现。由于动态RAM存在两路地址复用,并且还需要定时进行地址刷新,因此动态RAM和CPU的接口实现常通过专用的DRAM控制器来实现。借助于DRAM控制器,可将CPU信号变换成DRAM所需的信号,从而

23、大大简化了DRAM接口的设计,使得DRAM的使用变得和SRAM一样方便。DRAM控制器的结构如图3-11所示,主要组成部分及功能包括:地址多路开关将地址转换成行列地址分两次送出;刷新定时器用来定时提供刷新请求;刷新地址计数器用来提供刷新地址,每刷新一行计数器自动加1,行全部刷新一遍后自动归零,重复刷新过程;当来自CPU的访问存储器的请求与来自刷新定时器的刷新请求同时进行时,仲裁电路需要对两者的优先权进行仲裁;定时发生器用来提供行选信号 、列选信号 和写允许信号 ,以满足对存储器的访问要求以及对芯片进行的刷新要求DRAM控制器8203是一种为了使80 x86 CPU系统支持DRAM而设计的接口芯

24、片,能向2164的DRAM芯片提供全部必要的接口信号,功能如下:提供行/列地址多路转换和行/列地址选通信号。包含刷新定时器和刷新计数器,可内部定时启动刷新或由外部请求。刷新与存取冲突裁决,空闲时刷新优先,否则正在进行者优先。产生系统响应 (开始一个存取周期)和传送响应 (读数据已稳定出现在数据端;写数据已写入DRAM)。最多可驱动64片DRAM。Intel 8203 DRAM控制器是为了控制2117、2118和2164 DRAM芯片而设计的。2117、2118是16KB1位的DRAM芯片,2164是64KBl位的DRAM芯片。根据所控制芯片的不同,8203有16KB与64KB两种工作模式。82

25、03芯片的地址处理部分接收从计算机系统地址总线送来的地址。64KB模式为地址AL0AL7、AH0AH7;16KB模式为地址 AL0AL6、AH0AH6。流经锁存器之后形成行地址和列地址并分时输出(64KB模式是OUT0OUT7,16KB模式是OUT0OUT6)到存储器芯片。另外,考虑到刷新,由8203内部的刷新计数器产生刷新用的行地址。所以在地址处理部分共有两个多路开关,分别用来选择行地址的来源以及分时输出的行地址和列地址。与此同时,时序处理部分输出 或 信号,向RAM芯片指示此时输出的地址是行地址或列地址。由于8203有两种工作模式,因此有些引脚有不同的定义,与地址有关的AL7、AH7和OU

26、T7就属于这种情况,如图3-12所示。在16KB模式下,B0、B1为存储体选择信号,这两者结合起来可以分别使 0 3有效,从而最多可对4个存储体进行选择。在刷新时,可通过刷新定时器和刷新计数器使 0 3全部有效,以实现对4个存储体同时刷新外部引脚:A10A0是地址信号引脚;O7O0是双向数据信号输入输出引脚;VPP、VCC分别接+5V和+25V电压,Vcc用于在线的读操作,VPP用于在专用装置上进行写操作; 是片选信号输入引脚,低电平有效,只有当该引脚转入低电平时,才能对相应的芯片进行操作; 是数据输出允许控制信号引脚,输入引脚,低电平有效,用于允许数据输出;如图3-15(a)所示。1) 内部

27、结构及外部引脚内部结构:Intel 2716存储器芯片的存储阵列由2K8个带有浮动栅的MOS管构成,共可保存2K8位二进制信息;X译码器又称行译码器,可对7位行地址进行译码;Y译码器又称列译码器,可对4位列地址进行译码;输出允许、片选和编程逻辑用于实现片选及控制信息的读/写;数据输出缓冲器用于实现对输出数据的缓冲,如图3-15(b)所示。2. EPROM芯片芯片Intel 2716与与CPU的接口的接口2716芯片提供2K个存储单元,所以进行芯片内部地址选择需要11根地址线,即CPU的低位11根地址线A10A0用于片内存储单元的选择。剩下的高地址线用于片选,一共4个芯片,所以只需要两根地址线。

28、经过2:4译码器后形成4个状态,选择4个芯片中的一个使之有效。芯片的 端并在一起后,接至系统控制总线的存储器读信号引脚RD,每个芯片的8位数据线依次接至系统数据总线的D0-D7;译码器的使能端与CPU的 /IO引脚连接。2) 接口方法例如,用2KB8的2716存储器芯片组成8KB8的存储器系统,如图3-16所示。该存储器系统的字长为8位,每一个2716芯片提供2K个存储单元,所以组成8KB存储系统需要4个2716芯片。3. 静态静态RAM存储器存储器芯片的接口方法芯片的接口方法静态RAM存储器芯片常用的接口方法有Intel 2114、2128、6116和6264等,下面以Intel 2114为

29、例,介绍SRAM的芯片特性,接口方法。1) 芯片的特性芯片内部是将4096个基本电路排列成6464的矩阵,如图3-17所示。地址译码器:输入为10根线A0A9,采用两级译码方式,其中6根用于行译码,4根用于列译码。I/O控制电路:分为输入数据控制电路和列I/O电路,用于对信息的输入/输出进行缓冲和控制。片选及读/写控制电路 和 :用于实现对芯片的选择及读/写控制。 :读/写控制信号输入引脚,当 为低电平时,使输入三态门导通,信息由数据总线通过输入数据控制电路写入被选中的存储单元;反之,就从所选中的存储单元读出信息送到数据总线。 :低电平有效,通常接地址译码器的输出端。Intel 2114 RA

30、M存储器芯片为双列直插式集成电路芯片,共有18个引脚,如图3-18所示2) 接口方法在微机系统中,CPU对存储器进行读写操作,首先要由地址总线给出地址信号,选择要进行读/写操作的存储单元,然后通过控制总线发出相应的读/写控制信号,最后才能在数据总线上进行数据交换。所以,存储器芯片与CPU之间的连接,实质上就是其与系统总线的连接,包括地址线的连接、数据线的连接和控制线的连接。Intel 2114的存储容量为1K4位,存取时间最大为450ns。下面举例介绍Intel 2114与CPU的连接,要求用1K4的2114芯片构成2K8的存储器系统,连接方式如图3-19所示。其中,Intel 2114的存储

31、容量为1KB4位,要组成1KB8位,需要两个2114芯片分别来存储低4位和高4位,所以两个2114为一组,组成2KB8位共需要两组、4个2114芯片。该芯片内部的地址引脚有10个A0A9,内部地址选择需要10根线,即CPU地址线的低位A0A9与2114芯片的10个引脚进行连接,进行内部地址选择。剩下的高位地址线用来进行片选,在本例中,用地址线A10、A11采用2:4译码器进行译码,译码后的4个状态使用其中的两个,两个信号连接到2114的片选信号 。译码器的使能端与CPU的 /IO引脚连接, 和2114芯片的读/写控制信号输入引脚连接,以控制数据是否可以经过数据线写入芯片。主存储器应该包括ROM

32、和RAM,可能存在两个芯片,内部存储单元的选择所需要的地址线个数不同。例如,一个存储器系统包括2KB RAM和8KB ROM,分别用1KB4的2114芯片和2K8的2716芯片组成。要求ROM的地址从1000H开始,RAM的地址从3000H开始。完成硬件连线及相应的地址分配表。在本例中存在两种芯片,一个为1K4的2114芯片,另一个为2K8的2716芯片,组成该存储器需要4个2114芯片和4个2716芯片。两个芯片需要的用来进行内部存储单元选择的地址线位数不同,所以对于两种芯片来说,用于片选的地址线位数也不相同,并且本例限定了地址范围。3.4 高速缓冲存储器的接口高速缓冲存储器的接口3.4.1

33、 高速缓冲存储器的引入高速缓冲存储器的引入微机系统中的内部存储器通常采用动态RAM构成,具有价格低、容量大的特点,但由于动态RAM采用MOS管电容的充放电原理来表示与存储信息,其存取速度相对于CPU的信息处理速度来说较低,这就导致了两者速度的不匹配。为了和高速CPU的速度相匹配,弥补主存速度的不足,在处理器和主存之间设置了一个高速、小容量的高速缓冲存储器(Cache),构成Cache-主存存储层次采用这样的结构有如下优点:首先,Cache的读写速度几乎能够与CPU进行匹配,所以微机系统的存取速度可以大大提高;其次,Cache的容量相对主存来说并不是太大,所以整个存储器系统的成本并没有上升很多。

34、为什么在CPU和主存之间加一个小容量的高速缓冲存储器能使存取速度大大提高呢?原因之一是Cache的读写速度几乎能够与CPU进行匹配,重要的原因就是要访问的数据大部分都位于高速缓冲存储器中,也就是当前要执行的下一条指令应该位于高速缓冲存储器中。这方面要求主要源于程序的局部性原理。程序的局部性包括两方面时间的局部性和空间的局部性。时间的局部性是指最近的、未来要用到的信息,也可能是现在正在使用的信息。因为程序中存在循环,循环程序段和子程序段都需要重复执行多次,所以对这些局部存储单元的访问就自然具有时间上集中分布的倾向。空间的局部性是指最近的、未来要用到的信息,可能是现在正在使用的信息,它们在空间上是

35、相邻的,这主要因为程序是顺序执行的,并且数据一般以向量、阵列等形式存放。这种对局部范围的存储器单元的访问比较频繁,而对此范围以外的存储单元进行访问的现象相对甚少。因此把局部范围内的小量数据放入高速缓冲存储器中,使得执行完当前指令后,下一条指令也在高速缓冲存储器中。这样一来,访问的速度就和Cache的读写速度相当,因而能提高整个系统的存取时间3.4.2 高速缓冲存储器的体系结构高速缓冲存储器的体系结构管理这两级存储器的部件为Cache控制器,CPU与主存之间的数据传输必须经过Cache 控制器。CPU通过地址总线给出主存的地址,从而到主存中读取数据,同时把地址送给主存地址寄存器MA,接下来通过主

36、存-Cache地址变换机构来判断该地址的数据或指令是否在Cache中,如果在,即命中,就把主存地址变换成Cache地址并送入Cache地址寄存器,通过该地址访问Cache。如果不命中,就继续访问主存并把数据所在的块调入Cache,调入之前要判断Cache中是否有空闲块以装入要调入的块。如果没有空闲块,就替换控制部件并仲裁把当前Cache中的哪一个块替换出去。把主存中的数据调入Cache是以块为单位调入的,把主存和Cache分成大小相等的块,块的大小比较小,通过多字宽通道调入Cache。主存的块数比较多而Cache的块数比较少,这就会发生冲突,即两个主存块同时争用Cache的同一个块,这称为块的

37、争用或块冲突。主存的块装入Cache时要按照一定的规则,也就是地址映像规则。1. 地址映像方式地址映像方式地址映像是指主存的块按照什么规则放入Cache中,这个规则称为地址映像规则。分为以下几种:1) 全相联全相联映像的规则是:主存的块可以放入Cache的任何位置,进行地址变换时需要记录主存的哪一块装入Cache中的哪一块,即记录主存块号和Cache块号之间的对应关系,如图3-23所示。因为Cache是为了和CPU的速度相匹配,所以在进行地址变换时不采用虚拟存储器的页表法而采用目录表硬件方式来实现,从而提高地址变换速度。2) 直接相联每个主存块映象到Cache中的一个指定块,这种方式称为直接映

38、象。在直接映象方式下,主存中某一特定存储块只可调入Cache中的一个指定位置,如果主存中另一个存储块也要调入该位置,将发生冲突。3) 组相联全相联映像的冲突概率低,但是速度慢;直接相联的冲突概率较高,但速度较快;组相联是全相联映象和直接相联映象的一种折衷方案。希望既有快的速度又使得冲突概率较低。该方法把主存空间先分成区,区中包含的块数同Cache中的块数相同,然后每个区内的块和Cache中的块分成若干组,各组之间是直接相联映象,而组内各块之间则是全相联映象全相联主存地址用nm来表示,包括两部分主存块号nmb和块内位移nmr。Cache地址用nc来表示,包括Cache块号ncb和Cache块内位

39、移ncb。地址变换记录nmb和ncb之间的对应关系。找到与主存块号nmb对应的Cache块号ncb后,和块内位移拼接最后的 主存地址nm所对应的Cache地址nc。进行相联比较时,比较的位数为ncb的位数。对于全相联方法来说,块冲突的概率低,只有Cache装满后才可能会发生块冲突,所以Cache的利用率高,是一种最理想的解决方案。但全相联Cache中目录表查找的速度慢,由于Cache的速度要求高,因此全部比较和替换策略都要用硬件实现,控制复杂,实现起来也比较困难直接相联如图3-24所示,把主存空间分成区,区中包含的块数和Cache块数相同,每个区中的第i块只能放在Cache中第i块的位置。这样

40、一来,主存地址nm被分为区号、区内块号和块内位移,Cache地址nc仍为Cache块号ncb和Cache块内位移ncb。进行地址变换时,每个区的第i块固定放在Cache中的第i个位置,即变换后的Cache块号ncb同主存地址中的区内块号相同,进行地址变换只需要记录Cache中的第i个位置是主存中哪个区的第i块装入的即可。组相联当每个组内块数减少到只包含一个块时,该映像变成直接相联映像;当组内块数增多到一个区内只包含一个组,即组内块数和Cache块数相同时,该映像变为全相联映像。采用组相联地址映像方式时,主存空间地址变为区号、区内组号、组内块号和块内位移,而Cache地址变为组号、组内块号和块内

41、位移三部分。在地址变换过程中,由于组间直接映像,即每个区中的第i组一定放在Cache的第i组中;组内是全映像相联,即组内每一块放在对应该组内任意块的位置。例如,给出主存地址区号nd、区内组号q、组内块号s和块内位移nmr,进行地址变换时,变换后的Cache组号也为q,需要找到区号和组内块号变换后对应Cache中该组的块号,组号和得到的块号及组内位移拼接,得到对应Cache中的地址,然后进行访问。在进行变换时,需要比较的是主存地址区号nd、组内块号s所对应的Cache的组内块号,相联比较的位数是区号的位数和组内块号的位数,相对全相联比较,组号位数要少,相对直接相联比较;区号位数要多,所以该方式的

42、地址变换速度介于两者之间,高于全相联低于直接相联。组相联映象方法在判断块命中以及替换算法上都要比全相联映象方法简单,块冲突的概率比直接相联映象方法低,其命中率介于直接相联映象和全相联映象方法之间2. 地址索引机构地址索引机构不管采用何种地址映像方式,在将主存中的内容复制到Cache中的同时,都必须把主存块地址写入到地址索引机构中。如果地址索引机构采用一般的存储器并按读出后再比较的方式工作,就会使高速缓冲存储器的优点丧失,因而地址索引机构一般采用按内容存取的相联存储器来实现。它是一种TTL器件,本身的读写延时极小,并且全部比较一次完成3. 替换算法替换算法在进行读写操作时,如果访问的地址所在的块

43、不在Cache中,就需要把从主存中把相应的块调入Cache,当Cache中有可用的空闲块时,可直接把该块调入。如果Cache中没有可用的空闲块,就把Cache中的某个块替换出去。把哪一个替换出去,要根据相应的替换算法。替换算法有如下几种:先进先出、LRU等。先进先出(First In First Out,FIFO)策略总是把一组中最先调入Cache存储器的字块替换出去,不需要随时记录各个字块的使用情况,所以容易实现,开销小。LRU(Least Recently Used)策略是把一组中近期使用最少的字块替换出去,这种替换策略需随时记录Cache存储器中各个字块的使用情况,以便确定哪个字块是近期最少使用的字块。LRU替换策略的平均命中率比FIFO要高,并且当分组容量加大时,能提高替换策略的命中率。4. 高速缓冲存储器的性能分析高速缓冲存储器的性能分析在进行写操作时,内容是直接写入Cache还是写入主存,这就是写回法和写直达法。写回法是指写Cache时并不把内容写

温馨提示

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

评论

0/150

提交评论