《第4章存储系统.ppt》由会员分享,可在线阅读,更多相关《第4章存储系统.ppt(179页珍藏版)》请在三一文库上搜索。
1、2007.7.2,计算机组成原理,1,第4章 存储系统,计算机组成原理,2007.7.2,计算机组成原理,2,第4章 存储系统,本章介绍了计算机中各种常见存储器芯片的结构和工作原理,以及当存储器芯片不满足系统需求时,如何对存储器进行扩展,采用何种方式对存储器进行管理以提高存储空间的利用率。,2007.7.2,计算机组成原理,3,本章要点: 存储器分类及其工作原理 芯片扩展方法 存储空间管理方法,2007.7.2,计算机组成原理,4,4.1 计算机存储系统组织方式,随着计算机和网络技术的发展,人们对计算机的要求逐渐提高,从最开始只需要计算机代替人进行计算,逐渐过渡到要求计算机系统能长时间保存大量
2、信息,并且方便用户进行异地查询。 为了满足人们对各类信息的查询要求,现在的计算机必须要配备容量较大的存储系统。但是计算机存储系统,特别是磁盘存储系统,自身存在很难克服的缺陷,如读取速度慢、寻道时间长等。然而,尽管存储器速度提升缓慢,处理器的处理能力却在快速提高。这就造成了新的矛盾,存储器的数据传输速度远远小于处理器处理数据的速度,使得存储器的性能成为计算机系统性能的瓶颈。,2007.7.2,计算机组成原理,5,基于以上原因,计算机中配置存储器时,需要考虑两方面的问题: (1)如何利用有限的存储空间尽可能多地存储数据、方便快捷地读出数据。 (2)如何将慢速的磁盘存储器和快速的处理器匹配起来。 第
3、1个问题的解决方法,我们将在4.5节中详细介绍。下面简单介绍第2个问题的解决方法。 为了同时满足用户对容量和速度的要求,计算机系统往往会采用以下的存储器配置方法,如图4-1所示。,2007.7.2,计算机组成原理,6,2007.7.2,计算机组成原理,7,大容量磁盘存储器处于存储系统的最底层,其主要作用是给计算机系统提供一个较大的存储容量,因此,对它的要求主要是存储容量要尽可能大。 在计算机中配置了磁盘存储器后已经解决了容量问题,为什么还要加内存呢?原因在于匹配CPU和磁盘的速度。从前面的分析我们可以知道,计算机中,CPU的处理速度比磁盘的读写速度快得多,如果不进行速度匹配,则会出现CPU长时
4、间等待磁盘输入数据的情况,从而降低CPU利用率,影响系统性能。内存的读写速度比CPU的速度慢,但是比磁盘快,刚好可以起到速度匹配的作用,同时,因为内存解决的主要问题不是容量问题,所以对其容量的要求不是特别高。,2007.7.2,计算机组成原理,8,寄存器和Cache都是CPU中的存储器,但是二者作用却不完全相同。寄存器的读写速度最快,主要用于直接提供CPU计算所需要的数据;Cache,又叫高速缓存,作用与内存相似,主要用于匹配相对低速的内存和高速的寄存器。由此可见,二者对速度的要求都很高,而对容量的要求则较小。 基于以上的原因,目前市场上的主流磁盘容量都在160G以上,内存的容量大都是512M
5、或1G,而Cache的容量则在1M左右。 思考:联系实际,一台微型计算机存储系统包含那些部件?它们分别存在于计算机那些地方?作用是什么?,2007.7.2,计算机组成原理,9,4.2半导体存储器芯片介绍,目前,几乎所有的存储器都是用半导体材料做成的。但是根据存储器的使用特性可以将存储器分为两类:随机存取存储器(Random Access Memory,RAM)和只读存储器(Read-Only Memory,ROM)。 只读存储器跟随机存储器不同,用户在使用时只能读取其中的数据,如果要对ROM中的数据进行修改,则必须采用特殊的方法进行,因此ROM可以用于保存不需要经常改变的程序和数据,如:设备驱
6、动程序等。同时,ROM有掉电保护功能,可用于制造磁盘等能长时间保存信息且不受断电影响的存储器。常用ROM有以下五类:,2007.7.2,计算机组成原理,10,掩模式(Masked)ROM:该种ROM不允许用户对其修改。 可编程ROM(Programmable ROM,PROM):该种ROM允许用户对其进行一次修改,一旦程序或数据写入则不允许用户再次修改。 可擦除PROM(Erasable PROM,EPROM):该种ROM允许用户在第一次写入数据后再次进行修改,但是修改时必须先用紫外光擦除原来的数据。 电可擦除PROM (Electrically Erasable ROM,EEPROM 又叫E
7、2PROM):该种存储器与PROM一样可以对数据进行多次修改,但是不同的是E2PROM不需要紫外光擦除,而是采用加电的方式进行擦除。 闪存(Flash memory)。闪存是电可擦除只读存储器(EEPROM)的变种,所不同的是,闪存的删除写入是以字节为单位,而EEPROM是以整块芯片为单位。现在的U盘、MP3和MP4等都使用的是闪存。,2007.7.2,计算机组成原理,11,4.2.1 SRAM芯片的结构和工作原理 1内部存储单元 SRAM的一个存储单元可以用来保存一 位数据,即可保存一个“0”或一个“1”。电路如图4-2所示。图4-2 SRAM内部存储单元 电路中使用的T1、T2、T3、T4
8、均是NMOS管。X是单元行地址选择线,Y是单元列地址选择线。作为存储单元电路,该电路至少应该有保持、写入和读出三种状态。,2007.7.2,计算机组成原理,12,(1)保持 图中T1、T2、T3、T4能构成一个双稳态电路。T1和T2在某一时刻只能有一个处于导通状态。当T1截止、T2导通时,节点A处于高电平状态,节点B处于低电平状态。A的高电平可以保证T2持续导通,B的低电平可以保证T1持续截止。反之亦然。如果没有外界因素的影响,该电路的状态将长时间保持。所以,SRAM不需要经常刷新。约定:T1截止、T2导通时表示该单元电路状态为“1”,T1导通、T2截止时表示该单元电路状态为“0”。 从以上分
9、析可以看出,A点的状态即为单元电路保存的信息状态,A为高电平时,单元信息为“1”,A为低电平时,单元信息为“0”。因此,读出时,只需要读出A点的状态即可。,2007.7.2,计算机组成原理,13,(2)写入 要对此单元进行写入操作,要选中该单元,并且要将数据放在数据线上。选中时,该单元的行选择线X和列选择线Y都处于高电平状态,X、Y的高电平,使得T5T8全部导通。如果待写入的数据是“0”,则I/0数据线被置为低电平,数据线被置为高电平,不管A、B之前的状态如何,此时A点将被强制置为低电平,B点将被强制置为高电平,进而使得T1导通而T2截止。反之如果待写入数据为“1”,使得T1截止而T2导通。,
10、2007.7.2,计算机组成原理,14,(3)读出 跟写入一样,读出单元数据时,也要先选中该电源。不同的是,此时往数据线上放数据。选中时,该单元的行选择线X和列选择线Y都处于高电平状态,X、Y的高电平,使得T5T8全部导通。I/O数据线直接与A点相连, A两点的状态将通过数据线输出。,2007.7.2,计算机组成原理,15,4.2.2 DRAM芯片的结构和工作原理 相对于SRAM来说,DRAM具有容易集成、位价格低、容量大和功耗低等优点,但是由于受到器件的限制,DRAM的存取速度比SRAM慢,而且需要定时刷新。,1内部存储单元 跟SRAM一样,DRAM的一个存储单元也可以用来保存一位数据,即可
11、保存一个“0”或一个“1”。常见的DRAM的基本存储电路可以分为多管型和单管型,下面以单管型为例介绍电路原理。单管型存储单元如图4-4所示。,2007.7.2,计算机组成原理,16,电路中的电容C和NMOS管T是电路的核心器件。单元存储的信息是通过电容的高低电压来表示的。电容充电后的高电位表示“1”,放电后的低电位表示“0”,读出时只要能读出C的电位即可。T管的栅极接行选择信号,源极通过T2接数据线,其作用是控制对C的充电。当T管导通时,源极电位与电容电位相同。 对单元电路的写入、读出和保持这三个基本操作的基本原理如下:,2007.7.2,计算机组成原理,17,(1)写入 要对单元进行写入,行
12、列选择信号必须有效,且待写入数据需要放在数据线上。此时T1、T2导通,数据线与源极相连,而源极电位与电容电位相同,因此,数据线上的电位将强制修改电容的电位,从而完成写入操作。 (2)读出 该单元的行列选择地址有效时,T1、T2导通,所以电容电位的高低能通过数据线输出。 (3)保持 单元电路是通过C的高低电位表示信息,然而电容的电压不能长时间保持,如果不定期对C的数据进行刷新,则其保存的信息“1”经过一段时间后将会变为“0”导致数据丢失。通常每12ms就需要对其状态进行一次刷新。,2007.7.2,计算机组成原理,18,2典型芯片的工作原理 下面我们以Intel 2164A芯片为例介绍DRAM芯
13、片的工作过程。 (1)芯片简介 Intel2164A芯片存储容量为64K1位、最大存取时间为200ns、刷新时间间隔为2ms,采用双列直插式封装,有16个引脚,其引脚图如图4-5所示。各引脚功能:行地址选通信号,用于锁存行地址, 低电平有效,兼作芯片选择信号。为低电平时,表明芯片当前接收的是行地址;:列地址选通信号;地址总线上先送上行地址,后送上列地址,它们分别在RAS和CAS有效期间被锁存芯片中。A0A7:地址线;用来分时接收CPU送来的8位行、列地址;DIN:数据输入;DOUT:数据输出;NC:未用引脚;VCC :+5V电源引脚;GND:接地引脚;:读写允许控制信号输入引脚,当其为低电平时
14、,执行写操作;否则,执行读操作。,2007.7.2,计算机组成原理,19,(2)工作原理 2164A有64K1位的存储空间,需要16位地址线才能寻址,由于其存储单元采用矩阵的方式设置,我们只要知道某个存储单元的行列地址就可以对该单元进行读写,所以芯片16位地址线又可以分成8位行地址线和8为列地址线,为了节约成本和减少芯片引脚数量,芯片只用了8位地址线,采用分时的方式分别传送行地址和列地址。传送地址时,先传送8位行地址,后传送8位列地址。为了区别行列地址,芯片设置了两个低电平有效的引脚(Row Address Strobe)和(Column Address Strobe)分别作为行地址选通信号和
15、列地址选通信号。当信号为低电平时,把此时地址线上的8位地址信号送至内部的行地址锁存器,同理当信号为低电平时,把此时地址线上的8位地址信号送至内部的列地址锁存器。,2007.7.2,计算机组成原理,20,与6116不同,2164A的输入输出数据线使用了不同的引脚,在实际使用时,常将这两位数据线与数据总线的同一位相连。为了保证正确的接收数据和输出数据,芯片设置了读写允许控制信号输入引脚。当0时,芯片接收数据,并根据行列地址信号将此数据写入到相应的存储单元;当1时,芯片根据行列地址信号读出相应的存储单元的数据,并且输出到数据总线上。,2007.7.2,计算机组成原理,21,4.2.3 ROM的结构和
16、原理 下面,我们以EPROM的典型芯片Intel 2716为例介绍ROM芯片的工作原理。 1内部存储单元 EPROM的基本电路如图4-6所示,其核心器件是浮置栅雪崩注入型场效管(Floating grid Avalanche injection,FAMOS)。图4-6 EPROM内部存储单元 在没有被写入数据前,FAMOS管的栅极没有电子,源漏极间没有形成导电沟道,不导通,此时保存的信息为“1”。对其进行写入操作后,其栅极上被注入电子,源漏极间形成导电沟道,管子导通,此时保存的信息为“0”。,2007.7.2,计算机组成原理,22,2典型芯片的工作原理 (1)芯片简介 Intel 2716是容
17、量为2K8位,读出时间在350ns450ns,有24个引脚,采用双列直插式封装的芯片。芯片引脚图如图4-7所示。各引脚功能如下:Al0 A0:地址信号输入引脚,可寻址芯片的2K个存储单元; O7O0:双向数据信号输入输出引脚;: 片选信号输入引脚,低电平有效,只有当该引脚转入低电平时,才能对相应的芯片进行操作;:数据输出允许控制信号引脚,低电平时允许数据输出;Vcc:+5V电源;VPP:+25V/+5V电源,用于在专用装置上进行写操作;GND:接地引脚。,2007.7.2,计算机组成原理,23,(2)工作原理 芯片有两个电源输入引脚VCC和VPP。引脚VCC作为芯片电源引脚,一直接高电平,即V
18、CC1。引脚VPP用以控制是否对芯片进行写操作。当VPP+5V时,不允许对写芯片,但是当VPP+25V时,能对芯片读操作也能进行写操作。其工作原理如下:当VPP+5V、且时,允许对读芯片,芯片将地址信号所指定的单元的信息放到输出数据线O7O0上;当VPP+5V、时,无论状态如何,芯片都将进入保持状态,此时不能对芯片进行读写,输出数据线呈高阻状态;当VPP+25V、为持续50ms的高电平、时,数据线上的信息将被写入到地址信息确定的单元里,此时芯片处于编程写入状态,数据线处于输入状态;编程完成后,需要验证写入芯片的数据是否正确,因此,Intel2176芯片还能提供程序校验功能,即当VPP+25V、
19、时,能对芯片内的存储单元进行读操作,根据读出的数据判断写入的程序是否正确;当VPP+25V、时,不允许写芯片,此时数据线又将呈高阻状态。,2007.7.2,计算机组成原理,24,4.2.4相联存储器 相联存储器(associative memory)是一种根据存储内容来进行存取的存储器,也称为按内容访问存储器(content addressed memory)。 它跟一般的存储器不同,一般存储器进行读写时,需要控制芯片提供读写的单元地址,而相联存储器则是按顺序写入,根据需要读取的内容读出。严格地说,相联存储器是一种存取方法,而不是一种存储器。,2007.7.2,计算机组成原理,25,任何一个记
20、录都有很多的数据项,如学生的姓名、学号、联系方式等,每个数据项都是不完全相同的,特别是同一所学校的学生的学号是不可能重复的,因此,在对这类数据进行读出时,选定一个数据项作为相联关键字来代表要查找的对象,如学生的学号。读出时,根据中央处理单元给出的这个相联关键字,用它和存储器中所有单元中的一部分信息进行比较,如果相等,则将此单元中余下的信息读出。这是实现存储器并行操作的一种有效途径,特别适合于信息的检索和更新。现在的大部分数据库都是采用这种方法实现的。为了进行正确比较,存储器必须设置一定的机构来实现比较的过程,这些机构包括:比较寄存器,屏蔽寄存器,字选择寄存器,查找结果寄存器等。各寄存器作用如下
21、:,2007.7.2,计算机组成原理,26,(1)比较寄存器用来存放检索字,其位数和相联存储器的存储单元位数相等。 (2)屏蔽寄存器用来存放屏蔽码,其位数和检索寄存位数相同。当按内容进行检索时,相应地把MR中要比较的位设置成“1”,不要比较的设置成“0”。置“1”的字段为关键字段。 (3)查找结果寄存器:位数等于相联存储器的存储单元位数,每一位对应一个存储单元,位的序数即为相联存储器的单元地址。若比较结果第i个字满足要求,则将第i位置为“1”,其余的均为“0”。,2007.7.2,计算机组成原理,27,(4)字选择寄存器:位数与记录的数据项的数量相同,用以确定哪些字参与检索,参与检索的则相应位
22、为“1”,其余的为“0”。 思考:目前,我们使用的那些存储产品采用的是半导体存储技术?,2007.7.2,计算机组成原理,28,4.3主存储系统,主存储器主要有以下几个性能指标: 存储容量:所谓存储容量即存储器能够保存的数据的数量。常用的单位有GB、MB、KB等。1GB=1024MB,1MB=1024KB,1KB=1024B。也可以用乘积的方式表示,公式为: 容量字数字长 如1KB可以表示为1K8位,1MB可以表示为1M8位等。 存取速度:所谓存取速度即是单位时间内存储器能读写的位数或字节数。该参数跟存储器的时钟频率有关。一般情况下,时钟频率越高,存取速度越快。如果用位数衡量,常用单位有Kb/
23、s、Mb/s等;如果用字节数衡量,常用单位有KB/s、MB/s等。,2007.7.2,计算机组成原理,29,读写周期:所谓读写周期是指读写一位或一个字节所需要的时间。该参数与存取速度成反比。存取速度越快,周期越短,反之亦然。 前面我们介绍了几种常用的存储器芯片的结构、电路和工作原理。但是不同的应用场合会对芯片提出不同的要求。现有的芯片往往不能完全满足系统的需要,因此如何用现有的芯片来实现系统的性能要求就成为了存储系统必须解决的重要问题之一。 芯片不满足使用的需要主要有以下几个方面:,2007.7.2,计算机组成原理,30,1位数不够 如系统需要的存储容量为128K8位,可选的芯片却只有128K
24、1位或者128K4位的芯片。这种情况下,芯片能够满足128K的要求,而位数却不能满足8位的要求。此时需要对位数进行扩展,即位扩展。,2007.7.2,计算机组成原理,31,2字数不够 如系统需要的存储容量为256K8位,可选的芯片却只有64K8位或者128K8位的芯片。这种情况下,芯片能满足8位的要求,但却不能满足容量256K的要求。此时需要对字进行扩展,即字扩展。,2007.7.2,计算机组成原理,32,3字数位数均不够 如系统需要的存储容量为256K8位,可选的芯片却只有64K4位或者128K4位等芯片。这种情况下,芯片既不能满足8位的要求,又不能满足容量256K的要求。此时需要对位数和字
25、同时进行扩展,即字位扩展。 当芯片不能直接满足系统需求时,设计者就需要对存储器进行扩展。上述三种情况是对存储器进行扩展时的三种主要情况,因此对存储器的扩展又主要有位扩展、字扩展和字位扩展。,2007.7.2,计算机组成原理,33,值得一提的是,如果发生下述情况:系统需要的存储容量为128K8位,可选的芯片只有256K8位的芯片,这时不需要进行芯片扩展,只需要在编程时仅使用低地址空间即可;系统需要的存储容量为128K8位,可选的芯片只有128K16位的芯片,这时也不需要进行芯片扩展,只需要在编程时只使用输出数据的低8位,高8位悬空或者置零即可。所以只有当可选芯片的字或位不够用时才需要进行芯片扩展
26、。,2007.7.2,计算机组成原理,34,4.3.1 位扩展 所谓位扩展,就是当单个芯片的容量能满足要求,但是输出位数不满足系统对存储器输出位数的要求时,通过几个芯片同时输出的方式对存储器的输出位数进行扩展。 根据前面的介绍,我们知道了何时需要进行位扩展,那么如何用位数较少的芯片来扩展位数较多的存储器呢?比如,系统需要的存储容量为128K8位,可选的芯片却只有128K4位的芯片。其扩展过程如下:,2007.7.2,计算机组成原理,35,(1)确定扩展类型:仔细分析系统要求可知,系统需要的容量跟芯片容量刚好相等,但是位数不同,因此我们需要进行位扩展; (2)需要确定所需芯片的数量,系统要求存储
27、器每次输出8位数据,而一片芯片每次只能输出4位,则为了满足系统需求,每次要两片芯片同时输出,因此在对芯片进行选择时,这两片芯片的片选信号和地址线必须相同,实际连接电路时只需要将片选信号和地址线连在一起即可; (3)因为扩展时需要由两个4位组成一个8位进行输出,所以要确定哪4位为高4位,哪4位为低4位。 根据以上步骤,可以得出如图4-8所示的扩展电路图。,2007.7.2,计算机组成原理,36,2007.7.2,计算机组成原理,37,图中,两芯片的片选信号、读写控制信号和地址信号连在一起,当系统需要进行读写时,两块芯片将同时工作。现以读地址为1024的单元为例介绍扩展后的存储器工作过程:控制芯片
28、将其与片选信号相连的引脚置为低电平;将与读写控制线相连的引脚置为低电平;将待读取地址(00100H)通过地址总线传送给存储器,因为两块芯片的以上三个信号相同,它们将同时把其1024单元中的地址放到数据线上输出,两组输出数据线分别连接控制芯片的数据线的高4位和低4位,所以控制器在发出一个读信号后,将收到一组8位的数据。从而实现了用两片4位输出芯片扩展为一个8位输出的存储器。,2007.7.2,计算机组成原理,38,4.3.2 字扩展 所谓字扩展,就是当单个芯片输出位数满足系统要求,而容量不满足要求时,用多个芯片采用地址分段的方式对存储容量进行扩展,参与扩展的每个芯片的地址范围不同。 注意:在学习
29、本节内容的过程中,大家一定要注意字扩展和位扩展方法的不同。,2007.7.2,计算机组成原理,39,下面用一个例子解释字扩展的方法:系统需要的存储容量为256K8位,可选的芯片只有64K8位。其扩展的步骤如下: (1)确定扩展类型 分析系统要求可知,芯片输出数据的位数与系统需求一致,所以不需要进行位扩展;芯片容量只有系统需求的四分之一,所以本例中,为了满足系统需求,需要用多个小容量芯片组成一个较大容量的存储器,即字扩展。,2007.7.2,计算机组成原理,40,(2)确定芯片数量 系统需要256K的容量,如果用64K的芯片则需要4片才能满足系统需求。所以本例中,参加扩展的芯片数量为4。 注意:
30、如果实际需要的容量不是芯片容量的整数倍,则扩展后的容量不能比系统需要的容量小。 (3)选择合适的扩展方法 字扩展时常采用的方法有线选法、数字逻辑法和译码法。,2007.7.2,计算机组成原理,41,下面分别对以上三种方法进行介绍。 线选法:所谓线选法就是在产生片选信号(低电平有效)时,不是由几位地址线的组合状态经过运算后得出,而是用直接将控制器的一根地址线与芯片使能端相连。 线选法是字扩展中最简单的方法,其优点是片选信号的产生过程简单,不容易出现错误。但是由于每个芯片都占用一根地址线,当芯片数量增多时要求控制器地址线数量很多,而且此方法会严重浪费控制器的逻辑地址空间,限制了程序的规模。,200
31、7.7.2,计算机组成原理,42,采用线选法对上述例子进行字扩展的电路图如图4-9所示。图中芯片的地址信号都是使用的A15A0这16位低地址线,但是芯片的片选信号都分别占用了A16A19中的一根地址线,则每个芯片的地址见表4-3所示。 假设控制器的地址线共有20根,即A19A0,寻址空间大小为1M。从上表中我们可以看出,被浪费的地址空间是00000H6FFFFH、80000HAFFFFH、C0000HCFFFFH和F0000FFFFFH四个范围,地址空间大小占768K,占控制器寻址空间的75,对地址空间造成了严重的浪费,且当系统需求增大时,被浪费的地址也无法再被利用。,2007.7.2,计算机
32、组成原理,43,2007.7.2,计算机组成原理,44,2007.7.2,计算机组成原理,45,为了克服线选法对地址空间的浪费,我们常采用数字逻辑法和译码法进行字扩展。 数字逻辑法:所谓数字逻辑法即用数字逻辑电路对两位高地址进行逻辑运算产生片选信号。 各个芯片的存储单元的地址情况:256K的容量需要18根地址线(A17A0),而64K的容量需要16根地址线,因此只需要从系统的18根地址线中取出低16位(A15A0)即可对芯片内的每个存储单元进行寻址,剩余的两位高地址(A17、A16)有4种组合,每一种组合刚好可以用作产生片选信号。每个芯片的地址范围见表4-4所示。,2007.7.2,计算机组成
33、原理,46,2007.7.2,计算机组成原理,47,2007.7.2,计算机组成原理,48,从上述例子中,我们可以看出:逻辑运算法克服了线选法的缺点,地址空间的利用率达到了100,同时也节省了两根地址线,所以存储器的容量还可以进一步扩展。但是片选信号的产生复杂,容易出现错误。随着扩展时所需芯片数量的增加,电路的复杂性将会成级数方式增加。 为了达到地址空间100的利用率和使用的地址线尽可能少的要求,克服逻辑运算法产生片选信号过程复杂的缺点,实际进行字扩展时常常采用第三种方法,即译码法。,2007.7.2,计算机组成原理,49,译码法:所谓译码法就是对几根地址线的组合状态用译码器译码后产生片选信号
34、。其原理与逻辑运算法类似,不同之处在于片选信号的产生方法,逻辑运算法是对地址状态经过组合逻辑电路运算后得出片选信号,而译码法则是用译码器译码产生。 根据参与译码的地址线的数量,可以将译码法分为:完全译码法和部分译码法。完全译码法是指所有地址线状态都作为译码器输入的方法。部分译码法是指部分地址线状态作为译码器输入的方法。,2007.7.2,计算机组成原理,50,译码法进行字扩展时,各芯片的地址空间跟逻辑运算法的芯片地址空间一样,如表4-5所示,因此只需要对两位地址通过2-4译码器译码,即可产生4块芯片需要的片选信号,所以采用的译码方法是部分译码法,芯片扩展后的电路图如图4-11所示。,2007.
35、7.2,计算机组成原理,51,2007.7.2,计算机组成原理,52,与逻辑运算法相比,译码法产生片选信号时,用译码器替代了复杂的数字组合逻辑电路。片选信号的产生简单明了,不容易出现错误,更降低了成本。 译码法不仅继承了逻辑运算法的优点、克服了逻辑运算法的缺点,还方便存储容量再次扩展。比如:现在需要将系统容量从256K提高到512K,译码法只需要将2-4译码器更改为3-8译码器,然后将译码器输出与各芯片片选引脚相连即可;而采用逻辑运算时,需要重新计算每个片选信号与地址输入信号的关系,然后根据此关系式选择正确的门电路画出组合逻辑电路图,最后将每个组合逻辑电路的输出与各芯片片选信号相连。因此,译码
36、法是较方便且不容易出错的字扩展方法。,2007.7.2,计算机组成原理,53,4.3.3 字位扩展 所谓字位扩展,就是当单个芯片的输出位数和容量同时不满足系统要求时,用多个芯片结合位扩展和字扩展的方法对存储器进行扩展。在实际芯片扩展时,常常会需要用到这种扩展。,2007.7.2,计算机组成原理,54,例子:如系统需要的存储容量为256K8位,可选的芯片容量只有128K4位。在这种情况下,存储器需要一次输出8位,而芯片却只能一次输出4位,需要进行位扩展;存储器要求容量为256K,而芯片容量却只有128K,需要进行字扩展。扩展过程中,需要用到位扩展的方法,也会用到字扩展的方法。扩展步骤如下:,20
37、07.7.2,计算机组成原理,55,(1)位扩展:根据位扩展的原理,此处需要两个芯片同时输出才能满足系统对位数的要求,因此,连接电路时,这两块芯片的片选引脚必须接同一个片选信号,保证两块芯片同时被选中。,2007.7.2,计算机组成原理,56,(2)字扩展:位扩展时,虽然是两块128K的芯片同时工作,但是存储器容量仍然是128K,只是输出变成了8位,构成了128K8位的芯片。因此要构成256K8位的存储器,必须先将两块芯片构成一组,此时,这一组芯片可以当成一个128K8位的芯片使用,然后由两组芯片组成系统需要的存储器。此处只需要两组就可以达到要求,所以片选信号产生时,没有用到译码器,而选择了一
38、个非门;如果需要多组,则需要通过译码芯片产生片选信号。 (3)连接数据输出线。 字位扩展后的电路图如图4-12所示。,2007.7.2,计算机组成原理,57,2007.7.2,计算机组成原理,58,电路中的4块芯片从左向右编号分别为1、2、3、4,其中1、2号芯片构成一组,3、4号芯片构成一组。从图中,我们可以看见每组芯片输出都是8位,地址线A16A0能对组内128K的地址范围进行寻址。A17作为片选信号,当A17为低电平时,芯片1、2被选中,当A17为高电平时,芯片3、4被选中。因此,芯片1、2构成的芯片组地址范围是00000H1FFFFH,2、3构成的芯片组地址范围是20000H3FFFF
39、H。,2007.7.2,计算机组成原理,59,综上所述,可以得到以下结论,假定系统需要的存储容量为MN位,可选的存储芯片容量只有xy位(xM,yN),此时需要在字向和位向同时进行扩展,共需(M/x)(N/y)块存储芯片。 思考:假如计算机存储系统中单片ROM容量为4K8,单片RAM容量为8K8,请设计计算机存储系统电路图,要求ROM为16KB,RAM容量为64KB。,2007.7.2,计算机组成原理,60,4.4 高速缓冲存储器Cache,4.4.1 Cache基本原理 1设置Cache的必要性 计算机有两个核心器件,一个内存,另外一个则是CPU。二者是否能较好配合,将直接影响计算机性能。早期
40、的CPU跟内存的速度相差不多,但是随着计算机硬件技术的发展,CPU的速度提高的比内存快,现在内存和CPU的读写速度相差23个数量级。如果仅仅依靠内存给CPU传输数据,那么CPU可能会长时间等待,降低资源利用率。所以,必须对二者速度进行匹配。,2007.7.2,计算机组成原理,61,匹配内存和CPU的速度有以下三个方法:(1)降低CPU速度;(2)采用高速的SRAM作为内存的存储器;(3)根据程序执行的局部性原理,在二者之间设置一定的缓冲器。显然,第一个方法降低了计算机性能,不可能采用;第二个方法需要用价格昂贵的SRAM来制作容量高达几百兆的内存,成本过高。因此第三个方法则呈了现代计算机的首选方
41、法。,2007.7.2,计算机组成原理,62,实际的计算机系统中,常常在CPU和内存间设置一个容量不大(常常为几十至几百K)但是速度跟CPU速度相同的Cache作为缓冲器,把正在执行的指令代码单元附近的一部分指令代码或数据存入Cache中,CPU需要数据时,直接从Cache中读取,这种方法解决了速度不匹配的问题,又不会大幅度增加成本。,2007.7.2,计算机组成原理,63,2. 基本原理 Cache又叫高速缓存,是高速缓冲存储器(Cache Memory)的简称。作为一种存储器,Cache有一定的存储空间,但Cache的主要作用不是进行数据存储,所以其存储空间较小。根据Cache所处位置的不
42、同,可以将Cache分为一级Cache和二级Cache。与CPU集成在同一块芯片中的是一级Cache(简称L1 Cache ),其容量常常为几十KB几百KB;不与CPU集成在同一块芯片中的是二级Cache(简称L2 Cache ),其容量常常为几百KB2MB。目前市场上比较高档的CPU常常配有512KB、1MB或者2MB的Cache。 配置了Cache的CPU和内存之间的存储结构如图4-13所示。,2007.7.2,计算机组成原理,64,2007.7.2,计算机组成原理,65,在Cache控制器的作用下, CPU首先访问Cache,如其需要的数据在Cache中,则直接访问Cache即可,否则再
43、访问内存。如果设置了L2 Cache,则系统将按照L1 Cache、L2 Cache、内存的顺序访问。值得注意的是:Cache不能被用户直接访问,用户不能使用Cache地址进行编程。,2007.7.2,计算机组成原理,66,Cache一般由SRAM、TRAM和控制器组成。其中,SRAM提供存储空间, 它的容量即为Cache的容量;TRAM保存Cache中的数据在主存中的地址;控制器则是实现比较和控制Cache的读写操作等功能。当CPU需要内存中某一地址的数据时,控制器首先将该地址信号与TRAM中的地址进行比较,如果找到相同的地址,说明内存中的数据在Cache中,则CPU直接访问Cache,否则
44、CPU将访问内存。当CPU所需要的数据没有在Cache中时,控制器还要完成对Cache的修改,将内存中的数据读取到Cache中,以保证Cache命中率尽可能高,提高数据访问速度。,2007.7.2,计算机组成原理,67,4.4.2 地址映像 Cache作为CPU和内存间的缓冲存储器,理想情况下,应该保证CPU每次需要访问的数据都在Cache中。但是,用户程序却是按照内存地址编写的,Cache所做的工作是在CPU访问内存前,根据程序执行的局部性原理,先将内存中的数据读出,当CPU需要时再提供给它。所以,“Cache所保存的数据到底是内存中的哪些数据,地址是什么?”就成了关键性问题。这一问题实际上
45、也是Cache的存储空间与内存之间的地址映像问题。,2007.7.2,计算机组成原理,68,常用的地址映像方式有三种:全相联映像、直接映像和组相联映像。 1全相联映像 所谓全相联映像是指将内存和Cache按找固定的相同的大小进行分块。内存的块和Cache的块可以任意对应,即内存的任何一块都可以映像到Cache的任何一块,在Cache的存储空间被占满的情况下,也允许确实已被占满的Cache存储器中替换出任何一个旧块。,2007.7.2,计算机组成原理,69,这种映像方式的优点是映像过程灵活,块冲突率低,只有在Cache中的块全部装满后才会出现冲突,Cache利用率高。缺点是块表查找的速度慢,由于
46、Cache的速度要求高,全部比较和替换策略都要用硬件实现,控制复杂,实现起来也比较困难,成本高。 全相联映像方式下内存与Cache对应的对应关系如图4-14所示:,2007.7.2,计算机组成原理,70,2007.7.2,计算机组成原理,71,2直接映像 跟全相联映像一样,直接映像先将Cache分成若干块,每个块的大小相同,并对每个块进行编号,同时根据Cache容量大小将内存分成若干页,每个页的容量都跟Cache的容量相同,然后对内存进行分块,每块的大小跟Cache块的大小相同,同样对页内的块进行编号。映像时,内存的某个页的块只能保存在与其块号相同的内存块中。例如,如图4-15所示,内存各页中
47、的第0块只能映像到Cache的第0块,而不能映像到其他块。,2007.7.2,计算机组成原理,72,2007.7.2,计算机组成原理,73,直接映像的优点是地址变换简单、速度快,缺点是映像不灵活,块冲突率较高,Cache命中率低,特别是程序需要在两个页的相同块号的块之间往返执行时,Cache命中率将降得非常低。,2007.7.2,计算机组成原理,74,3组相联映像 为了解决直接映像的冲突问题,组相联映像方式,先将Cache分成大小相同的若干区,一般分为2个或4个区,对每个区按照直接映像的方式进行分块,并且编号,因此,Cache中有多个编号相同的块。对内存按照Cache区的大小进行分页,再对每页
48、按照Cache块的大小进行分块,每个内存块可以对应不同Cache区中的相同块号的块。例如,图4-16中内存第0页的第0块,可以对应Cache的第0区的第0块,也可以对应第j区的第0块。,2007.7.2,计算机组成原理,75,组相联映像的减小了直接映像方式下的页冲突问题,提高了Cache的命中率,且Cache的容量越大,分区的数量越多,命中率越高,但是这中映像方式控制电路复杂。 值得注意的是,如果只对Cache分1个区时,则组相联映像就是直接映像,因此,直接映像是组相联映像的一种特殊情况。,2007.7.2,计算机组成原理,76,2007.7.2,计算机组成原理,77,4.4.3 替换策略及更
49、新策略 1. 替换策略 不管采用何种映像方式,内存的每个块都对应Cache的某一个块。但是Cache容量远小于内存容量,不能将内存的所有块全部保存。因此,如果需要往Cache中调入一个新块,且Cache已经被占满时,就需要将Cache中的某一个块调出,而将新块调入Cache,这个过程就是替换。,2007.7.2,计算机组成原理,78,采用不同的替换策略,将很大程度上影响Cache的命中率。常用的替换策略有: 随机替换法:任意选择一个Cache块,将其调出。 先进先出(FIFO) 策略:替换出最先进入Cache的块 近期最少使用(LRU) 策略:这种替换策略需随时记录Cache存储器中各个字块的使用情况,以便确定哪个字块是近期最少使用的字块。 这三种策略的算法将在4.5节中介绍,这里不再赘述。,2007.7.2,计算机组成原理,79,2. 更新策略 当内存数据被修改时,与之对应的Cache的数据也需要相应修改,这个过程就是更新。但是,进行修改时,Cache无法向CPU提供数据,因此修改Cache的时机相当重要。常用的更新策略有:,2007.7.2,计算机组成原理,80,及时更新策略:修改内
链接地址:https://www.31doc.com/p-2605045.html