1、计算机的存储器是存放数据和程序的设备。可分为主存储器(memory,也称内存储器或简称为主存)和辅助存储器(也称为外存储器或简称为辅存)。主存直接与CPU交换信息,因此要求速度快,辅存用于存放当前不立即使用的信息。主存都由半导体存储器所组成,辅存则是由磁盘,磁带,光盘,U盘等所组成。,第7章 存储器系统,1 概述,一、基本概念 1、记忆单元(存储元件):存储一位二进制数的器件。 2、存储单元:多个记忆单元组成一个存储单元,一般为8个记忆单元。 3、存储体:存储器的核心。(相当于存储芯片) 4、存储器:由若干存储体同周围的逻辑线路一起组成的部件。 5、存储字长:一个存储字中说包含的二进制的位数。
2、 6、按字编址:一个存储单元可以存放一个字。 7、按字节编址:一个存储单元可以存放若干个字节。,二、主存储器的主要技术指标 1、存储容量:主存所能容纳的二进制信息的总量。字节编址:以字节数来表示容量;字编址:以字数字长来表示容量。如:某计算机的容量为64K16,表示它有64K个字,每个字的字长为16位;若用字节表示,则可记为128K字节。 2、存取速度(存取时间,存取周期)(1)存取时间Ta(访问时间,读写时间)指从启动一次存储器操作到完成该操作说经历的时间。(2)存取周期Tm(读写周期,访问内存周期)指存储器从接受读写命令型号开始,将信息读出或写入后,到接到下一个读写命令为止所需的时间。一般
3、情况下,TmTa,为什么?因为对任何一种存储器,在读写操作之后总要有一段恢复内部状态的复原时间。对于破坏性读出的存储器,存取周期往往比存取时间要大得多,甚至可以达到Tm=2Ta,这是因为存储器中的信息读出后需要马上进行重写(再生),3、可靠性:以平均无故障时间(两次故障之间的平均间隔来衡量)。 4、性价比(性能/价格比):希望价格越低性能越好。 5、功耗:是一个不容忽视的问题。它反映了存储器件耗电的多少。同时也反映了器件的发热程度。因为温度高会限制集成度的提高,功耗小,也有利于存储器的稳定工作。,2 半导体存储器,一、基本组成及操作 为了实现按“地址”存入或读出数据,存储器至少由如下部件组成:
4、 (1)地址寄存器(MAR) (2)地址译码和驱动器 (3)存储体 (4)读/写放大电路 (5)数据寄存器(MDR) (6)读/写控制电路A0A4:为地址线,来源于MAR D0D7:为数据线,来源于MDR,1、存储体(MB:memory Bank)(虚线框内):一般呈矩阵式,以便于译码。存储体由存储单元组成,每个存储单元包含若干个存储元件,每个存储元件只存储一位二进制数(1或0),每个存储单元有一个编号,称之存储单元的地址,简称“地址”。计算机的数据和指令是按地址存放在存储体的各个存储单元中。存储体所包含的存储单元总数称为存储器的容量。 2、地址寄存器(MAR;Memory Address R
5、egister)地址寄存器由若干个触发器组成,用来存放访问存储器的地址(指令地址或操作地址)。地址寄存器的长度(即位数)应该与存储器的容量相匹配。地址寄存器的长度i,至少应满足:2i=存储器容量。 如:存储器容量为8K,则地址寄存器的长度至少为13,3、地址译码和驱动器该部件实现对地址寄存器所提供的地址码进行译码,经驱动器的电流放大“选中”某一存储单元。 如:地址寄存器提供的地址码为0001000则选中存储体的第8号存储单元。 地址译码有:(1)单译码(线选法):一个译码器,一次就能选中一个存储单元。 (2)双译码(重合法):两个译码器,由X,Y双向决定被选中单元。单译码:4根地址线,16根选
6、择线 双译码:4根地址线,8根选择线,由上图可以看出:采用双译码结构,不能节省地址线的数目(由存储单元的个数决定),但可以节省地址线选择线的数目,现一般都采用这种结构。,4、数据寄存器(MDR:memory data register)用来暂存从存储单元中读出的数据(或指令),或暂存从数据总线来的即将写入存储单元的数据。 很显然,数据寄存器的宽度W应该与存储单元的长度相匹配。如果存储单元的长度为一个字节,则数据寄存器的位数为8位。 5、读/写放大电路该部件实现信息电平的转换,即将存储元件表示“1”和“0”的电平转换为数据寄存器中触发器上所需要的电平,反之亦然。 6、读/写控制电路该部件一般由逻
7、辑门电路组成,它根据控制器发来的读/写信号( )发出实现读/写操作的控制信号。片选信号 是由若干个位地址码经译码而形成,当 =0时,该存储芯片工作,否则,该芯片不工作。,二、存储器的工作原理:存储器如何实现读操作(取数)和写操作(存数),通常,我们把这两种操作统称为“访问”。当对某一存储器芯片进行访问时,该芯片应处于工作状态,故必须选中该芯片( ) 1、读操作过程: (1)送地址:控制器通过地址总线(ABUS)将指令地址或操作数地址送人地址寄存器(MAR) (2)发读命令:控制器通过控制总线(CBUS)将存储器读信号( )送人读/写控制电路。 (3) 从存储器读出数据:读/写控制电路根据读信号
8、有效( )和电选信号有效( ),向存储器内部发出“读出”控制信号,在该信号的作用下,地址寄存器中的地址码经地址译码器的译码,选中并驱动存储体中的某一存储单元,从该单元的全部存储元件中读出数据,经读/写放大器放大,送入数据寄存器。再经数据总线(DBUS)将读出的数据送入控制器(若读出的数据是指令)或运算器(若读出的数据是操作数)。,2、写操作过程: (1) 送地址: (2) 送数据:将要写入存储体的数据由运算器或输入设备经数据总线(DBUS)送入数据寄存器。 (3) 将数据写入存储器:读/写控制电路 存储器 地址译码 选中存储单元 写入数据。,三、存储空间的计算 1、递推法 0000H 1K 0
9、3FFH 0400H 1K 07FFH 0800H 2K 0FFFH 1000H 4K 1FFFH 地址码每增加1位,空间便扩大1倍,2、数位计算法 在十六进制中,上一位的数是下一位的数的16倍 1H= 10000H=64K 10H= 100000H=1024K 100H= 1000H=4K3、幂值计算法 如果地址码的位数位N,那么地址码所能表示的存储单位的个数M满足如下关系:M=2N 如:地址码为16位,则存储单元个数M=216=64K 这就是说:16根地址所能寻址的范围为64K容量,3 存储元件,在讲述具体的存储器之前,我们有必要先了解一下构成存储器的存储元件的种类和特性。存储元件用来存储
10、一位二进制信息,不同的半导体存储器,其存储元件的结构不同,就存储信息的原理而言,大致可分为三种: (1)用触发器作为存储元件(双极型和MOS型静态RAM) (2)用电容器作为存储元件(MOS型动态RAM(DRAM)充电为1、放电为0 (3)用晶体管作为存储元件。导通为0、截止为1,一、MOS型静态RAM存储元件和动态RAM存储元件的组成及其存储信息的原理。,T5,T6作为行选管 T7,T8作为列选管,当行选X上为高电平时,T5、T6导通,反之截止;当列选Y上为高电平时,T7、T8导通,反之截止。当存储器的地址寄存器MAR所提供的地址码,经译码选中某一存储单元时,该单元中的所有存储元件的行选和列
11、选均为高电平,(即X=1,Y=1)而且,由于该存储器芯片处于工作状态,故电选信号有效(CS=1) 1、读操作的工作原理X=1,T5、T6导通;Y=1,T7、T8导通读操作时, ,故CS ,三态门4打开,存储元件所存储的信息(设Q=1),经T6、T8和读写放大器3,从门4读出。此时,由于CSWE=0,门5关闭,写入电路不工作。 2、写操作的工作原理X=1,T5、T6导通;Y=1,T7、T8导通写操作时,WE=1,故CSWE=1,三态门5打开写入信息(设Din=1),经门5加到写入电路1和2 这样,反相器1的输出为写入信息的非,经T7、T5,使存储元件的 端置于写入信息的非。同向器2的输出为写入信
12、息的原,经T8,T6使存储元件的Q端置于写入信息的原。综上可知,存储元件的信息的读写是从Q端实现的,而写入则是从Q和 两端实现的。,二、MOS型动态RAM存储元件 动态RAM存储元件是用电容的充电来存储二进制信息。 (1)读出: 地址选择为高电平,T导通,电容C上的电压, 经T从数据线上读出。 (2)写入写入信息置于数据线上,且地址选择线为高电平,T导通,此时,数据线上的信息经T对电容C充电(写入1)或放电(写入0),使写入信息以电荷方式存储在电容C上。为了缩减元件所占的芯片面积,动态存储元件中的电容C不可能做得很大,故每次读写后信息会很快消失,为维持原存信息,需在读出后立即进行“重写”,此外
13、,即使不进行读操作,电容C上的电荷也会通过电路内部的漏电电阻和分布电容进行慢速放电,以致经过一段时间后,电容上的电荷也会放光,存储的信息自动丢失。因此,在由动态存储元件所组成的动态RAM中,每隔一定时间需对存储元件进行“刷新”,以保证原存的信息不丢失。“重写”和“刷新”是动态RAM要解决的两个特殊问题,这使得存储器的外围电路比较复杂。,三、动态MOS存储器的刷新 1、刷新的时间间隔决定于电荷的泄露速度。Q=CU C电容容量 U两端电压泄露电流:I=Q/t=CU/t 泄露时间:t=CU/I 一般器件的刷新周期为2ms,即要在2ms内对每一个存储单元的信息刷新一次。2、几点要求: 两次刷新时间间隔
14、不能超过允许时间2ms。 刷新优先于访存,但不能打断访存周期。 在刷新期间内,不准访存。,3、刷新方式 集中式:在允许的最大刷新时间间隔2ms内,集中安排刷新时间。(如下图) 如存储单元1024个,排成3232的方阵,存取周期500ns,刷新按行进行,每刷新一行,用一个存取周期,那么刷新32行就需要用32个存储周期。 2ms/500ns=4000个周期特点:存取周期不受刷新影响,速度快,存在“死区”,刷新时间内不能读/写。 分散式(如下图) 把系统的存取周期分成两部分:一部分读写,一部分刷新,每次读写信息后,立即对它刷新。如上例:存取周期500ns,刷新一行500ns,系统周期:1us 特点:
15、刷新时间间隔短(32us),无“死区”,但系统存取周期长,降低了整机的运算速度,不适于高速缓存。,异步方式(如下图)结合上面两种方式,在2ms 的时间内,把存储单元分散地刷新一遍。 如上例:3232方阵,2ms/32=62.5us(每行刷新的平均间隔)。 特点:单个间隔里集中,整个周期内分散。这种方式使用较多。另外,异步刷新方式还可以采用不定期刷新方式。可以在主机不访存的时间内刷新,这种方式取消了机器的“死区”,但刷新控制电路极其复杂。,【注意事项】 刷新对CPU是透明的。 刷新按行进行,不需要列地址 刷新与读出操作既相似又不同读出时,要对C1或C2充电,刷新也要对其充电。但刷新时仅补充电荷,
16、无需信息输出。 刷新和重写(再生)是两个完全不同的概念,切不可加以混淆。重写是随机的,某个存储单元只有在破坏性读出后才需要重写。而刷新是定时的。即使许多记忆单元长期未被访问,若不及时补充电荷的话,信息也会丢失。重写一般是按存储单元进行的,而刷新通常以存储体矩阵中的一行为单位进行的。,4 用存储器芯片构成半导体存储器,用现成的集成电路芯片构成一个一定容量的半导体存储器,大致要完成以下四项工作: 1、根据所需要的容量大小,确定所需芯片的数目 2、完成地址分配,设计片号信号译码器 3、实现总线(DBUS,ABUS,CBUS)连接 4、解决存储器与CPU的速度匹配问题下面通过一个简单例子,说明如何用现
17、成芯片来构成一个存储器。,2片,4组,练习:用2K8位存储芯片组成16K8位的存储器。,5 只读存储器ROM,最初提出ROM的概念定义为只读是从提高机器的可靠性和随机存储器的效能两个方面考虑的。当时人们发现,计算机在执行程序过程中有好多程序是固定不变的。于是,就可把这些程序放在只能读出,不能写入的存储器中,尤其在一些专用机中采用比较普遍,甚至把一些常数也放在只读存储器。后来,这种思想又发展了,把只读存储器应用于微程序控制器,成了微程序库。因而增强了控制器对机器控制的灵活性,也使控制器的设计更加方便和有条件。现在,随着计算机的发展,只读存储器的作用已显得越来越重要了。,只读存储器ROM常用来存储
18、计算机的监控程序、基本输入输出系统(BIOS)、微程序库、汉字库等。是一种在程序执行过程中只能将内部信息读出而不能写入的存储器。主要包含四种: 1、固定掩模型ROM:这一类ROM的内部信息是在制作集成电路芯片时用定做的掩膜写入的,制作后用户不能再修改。 这种芯片生产成本较高,尤其数量小时,更高。 2、PROM:可编写的ROM这一类ROM的内部信息是由用户按需要写入的,但只允许编程一次。 3、EPROM:可擦洗的ROM这一类ROM的内部信息可多次改写,当用户自行写入的信息不需要时,可用“擦除器”(紫外线照射)将原存的信息擦掉,再写入新的内容。 4、E2PROM:电可擦洗的ROM通过大电源即可将原
19、存的信息擦掉,再写入新的内容。,6 辅助存储器,辅助存储器用于存放当前不立即使用的信息。一旦需要,辅存便与主存成批交换数据,或将信息从辅存调入内存,或将信息从主存调出到辅存。辅存的最大特点: (1)存储容量大 (2)可靠性高 (3)价格低 (4)信息永久保存,目前,常用的辅助存储器有:,一、磁表面存储器的存储原理是用某些磁性材料涂在金属铝片或塑料片(带)的表面上作为载体而来存储信息的存储器。在载磁体的附近有一个磁头,其上绕有一个读写线圈。 (1)写操作时,在磁头的线圈中通过一定方向的脉冲电源,磁头的铁芯内便产生一定方向的磁通,该磁通使磁头空隙下的载磁体局部磁化,形成相应极性的磁化元。写入脉冲电
20、源的方向不同,在载磁体上形成的磁化元的极性不同。用一种极性表示信息1、另一种表示0,则一个磁化元就是一个存储元件,可存放一位二进制信息。写操作是将两个方向的电流脉冲转化为两种极性磁化元的过程,该磁化元的极性状态可永久地保存在载磁体上,直到下一次重新写入为止。 (2)读操作时,当载磁体按一定方向移动时,磁头作切割磁力线运动,便在磁头的线圈中产生感应电势,该电势在外电路作用下转化为脉冲电流。可见,读操作是将不同极性的雌化状态转化为不同方向的电流脉冲的过程,二、磁带存储器(磁表面存储器的一种)1、存储格式磁带机是一种顺序存取的存储器,磁带上的信息以信息块的形式(一个“记录”或一个“文件”)顺序地存放
21、在磁带上。其格式如下各信息块之间留有间隙,每个信息块都有头标和尾标,整个磁带有卷头标和卷尾标。整个磁带有卷头标和卷尾标。若要读取的信息块在磁带的尾部,则必须空转磁带到尾部,才能读该信息块。因此磁带的存取时间较长,速度较慢,但存储容量大,价格便宜,便于携带,互换性好,是大中型计算机系统中常用的辅助存储器。,2、磁带机的主要技术指标: (1)带速:(45米/秒) (2)记录密度:每英寸所能记录的字节数。单位BPI。常用的有:800BPI,1600BPI,3200BPI,6250BPI。 (3)数据传输速率:单位时间内所能传送信息的数量=带速记录密度三、磁盘存储器(magnetic disk sto
22、rage) 1、软盘:floppy Disk:是以塑料圆盘为基片,上下两面涂有磁性而制成的磁盘。标签:生产厂家的标志及软盘的规格,型号。单面(SS),双面(DS),低密度(DD),高密度(HD) (1)磁盘要远离磁场,注意防磁。 (2)磁盘久置容丢失信息,尤其是软盘要注意防潮。每一片磁盘可有两个盘面,每一个盘面上都有一个磁头用于读取或写入该盘面的信息。,【盘面信息存放格式】每个盘面上有几条到几百条同心圆磁道,由外向内,分别为0磁道,1磁道,N磁道,每条磁道上又分成若干个扇区,每个扇区存放若干个字节信息。信息存取以扇区为单位。读/写信息时,必须知道: (1)盘面号 (2)磁道号 (3)扇区号 (
23、4)存取信息的长度。由上述几项就可以知道:存储信息的位置(称为磁盘存储器的地址),【主要技术指标】 (1)记录密度(存储密度):一般用磁道密度和位密度来表示。磁道密度:指沿磁盘半径方向,单位长度内磁道的条数。位密度:指沿磁道方向,单位长度内存储二进制信息的个数。由于每个磁道上的存储容量是相同的,很显然,0磁道的密度比最后一个磁道的密度要小得多 (2)存储容量C:所能存储得有用信息得容量C=盘面数磁道数扇区数每扇区字节数 (3)寻址时间:指磁头从启动位置到达所要求的读/写位置所经历的全部时间。由寻道时间ts和平均等待时间tw两部分时间组成。寻道时间:磁头找到目的磁道所需的时间。平均等待的时间:所
24、读/写的扇区转到磁头下方所用的平均时间(一般取转一周所用时间的一半) (4)数据传输速率:指磁头找到位置后,每秒读出或写入的字节数。V=一个磁道上存储的字节数/每转一周所需的时间,2、硬盘(hard disk)是以铝合金圆盘为基片,上下两面涂有磁性材料而制成的磁盘。它是将多个盘片固定在一根轴上,以组成一个盘组。硬盘上的读/写磁头大多数是悬浮的,它可沿着盘面的径向移动。目前常用的硬盘是温彻斯特盘(简称温盘),在微型机中,多采用直径3.5英尺和2.5英尺的小温盘。并将硬盘片,磁头,电机和驱动部件全做在一个密封的盒里,因此,具有体积小,重量轻,防尘性好,可靠性高,使用环境比较随便等特点。,【磁盘机的
25、结构】,【硬盘存储的原理】数据存储在密封于洁净的硬盘驱动器内腔的若干个磁盘片上。这些盘片一般是在以铝为主要成分的片基表面涂上磁性介质所形成,在磁盘片的每一面上,以转动轴为轴心、以一定的磁密度为间隔的若干个同心圆就被划分成磁道(track),每个磁道又被划分为若干个扇区(sector),数据就按扇区存放在硬盘上。在每一面上都相应地有一个读写磁头(head),所以不同磁头的所有相同位置的磁道就构成了所谓的柱面(cylinder)。传统的硬盘读写都是以柱面、磁头、扇区为寻址方式的(CHS寻址)。硬盘在上电后保持高速旋转(5400转/min以上),位于磁头臂上的磁头悬浮在磁盘表面,可以通过步进电机在不
26、同柱面之间移动,对不同的柱面进行读写。所以在上电期间如果硬盘受到剧烈振荡,磁盘表面就容易被划伤,磁头也容易损坏,这都将给盘上存储的数据带来灾难性的后果。,硬盘的第一个扇区(0道0头1扇区)被保留为主引导扇区。在主引导区内主要有两项内容:主引导记录和硬盘分区表。主引导记录是一段程序代码,其作用主要是对硬盘上安装的操作系统进行引导;硬盘分区表则存储了硬盘的分区信息。计算机启动时将读取该扇区的数据,并对其合法性进行判断(扇区最后两个字节是否为0x55AA或0xAA55 ),如合法则跳转执行该扇区的第一条指令。所以硬盘的主引导区常常成为病毒攻击的对象,从而被篡改甚至被破坏。可引导标志:0x80为可引导
27、分区类型标志;0表示未知;1为FAT12;4为FAT16;5为扩展分区等等。,四、光盘存储器 光盘是利用光学原理进行读/写信息的辅助存储器。它利用激光束在光盘表面上存储信息,并根据激光束反射光的强弱来读出信息。 1、分类: (1)只读型:(CDROM)(compact Disk Read only memory) (2)只写一次型:(WORM) write one read many disk (3)可重写型:(WROM) 2、读写原理:只读型和只写一次型的光盘与可重写型完全不同。只读型和只写一次型在写人信息时,将激光束聚焦成直径不超过1微米的激光束,照射到记录介质上,使其局部加热到能把介质熔
28、化,形成一个小凹坑,改变了光学特性。读出信息时,光电检查电路根据被激光照过的介质和没有被照过的介质对光的反射率不同,便可读出所存储的信息。可重写型是用磁光材料做成的。利用激光束的热作用改变介质上局部磁场的方向来记录信息,再利用磁光效应来读出信息。 3、光盘的优点: (1)存储量大(一张光盘为650MB) (2)可靠性(信息几乎不可能被丢失)(3)存取速度高,五、优盘(U盘) 1、构造原理: 主要就是在原有的晶体管上加入了浮动栅和选择栅,在源极和漏极之间电流单向传导的半导体上形成贮存电子的浮动棚。浮动栅包裹着一层硅氧化膜绝缘体。它的上面是在源极和漏极之间控制传导电流的选择/控制栅。数据是0或1取
29、决于在硅底板上形成的浮动栅中是否有电子。有电子为0,无电子为1。 闪存就如同其名字一样,写入前删除数据进行初始化。具体说就是从所有浮动栅中导出电子。即将有所数据归“1”。 2、存储的原理:写入时只有数据为0时才进行写入,数据为1时则什么也不做。写入0时,向栅电极和漏极施加高电压,增加在源极和漏极之间传导的电子能量。这样一来,电子就会突破氧化膜绝缘体,进入浮动栅。 读取数据时,向栅电极施加一定的电压,电流大为1,电流小则定为0。浮动栅没有电子的状态(数据为1)下,在栅电极施加电压的状态时向漏极施加电压,源极和漏极之间由于大量电子的移动,就会产生电流。而在浮动栅有电子的状态(数据为0)下,沟道中传
30、导的电子就会减少。因为施加在栅电极的电压被浮动栅电子吸收后,很难对沟道产生影响,7 提高主存储器性能的技术,一、概述 考查一个存储器的性能好坏,主要有三个因素:速度,容量,可靠性。如何提高主存储器性能是非常重要的。 (一)速度因素: 速度因素主要指CPU与主存之间传输速度。(CPU为ns级,内存为几十个ns级) 解决方案有五种: 1、采用存取时间短的存储器芯片 一般地讲:SRAM(静态RAM)比DRAM快,双极型比MOS型快。 2、采用双端口存储器 3、采用多个芯片并联使用,扩大字长,提高频宽(单位时间内存取的位数) 4、多体存储器交叉编址,使得可同时进行多个字的读或写。 5、加入高速缓冲存储
31、器(cache)把使用频率高的数据存入cache,从而提高数据的传输率。 (二)容量因素:主存容量决定于CPU的地址总线宽度。理论上讲扩大地址总线宽度(即地址线的位数),可以扩大主存容量,但这会带来控制器的困难,因此,实际上,普遍采用虚拟存储器技术。 (三)可靠性因素随着集成电路技术的发展,集成电路存储器芯片本身的可靠性已很高,在实际应用中,我们要考虑的是防止破坏和非法使用。,二、采用双端口存储器(如下图) 一个存储体有两套外围电路,在某一时刻可以同时对两个存储单元进行读写。,三、主存多体交叉存取方式(如下图)将一个大容量的主存分成多个容量相同的个体,每一个个体相互独立,交叉编址,每个个体有自
32、己的地址寄存器、数据寄存器、读写电路等,这样每个个体都可与CPU交换信息。即CPU可在一个存取周期内分时访问每个个体。 但要注意解决“相关性”问题:指令相关和数据相关(后一条指令需要前一条指令的结果),四、高速缓冲存储器Cache(如下图)就是在CPU和内存之间增设一种速度和CPU相当的存储器。 1、为什么增设cache就可以提高访问速度?因为在运行程序时,在较短时间内,程序的地址往往集中在某个很少的地址范围内,在时间上和地址上往往具有分布较集中的特性(即程序的局部性原理),若都要到内存中去调取,需要浪费较多的时间。 【容量问题】不能太大也不能太小。太大,内存与Cache交换的信息量大,影响C
33、PU效率且硬件线路复杂;太小,命中率低。所谓命中率:CPU在Cache中取得的有效信息的次数与访问Cache的总次数的比率。一般为90%。如P:L1 Cache 32K(位于CPU内部),16K指令,16K数据;L2 Cache 512K(位于主板上),速度相当于CPU核心速度的一半。,2、工作原理:(如下图)将主存分块,每块有若干个字节,将Cache也分成同样大小的块,由于其容量小,故其块数也比内存少,主存中只有一部分块的内容可放在Cache中。Cache的内容是主存内容的副本,cpu要访问主存时,先根据块标记判断要访问的数据是否在cache中,若在即命中,否则访问cache无效,即没命中,
34、说明要访问主存中的一块信息,并到内存把该块信息装入cache,如果cache已装满,则需要根据某种算法,把某一块先调出,再调入所需块。,3、主存与cache之间信息块的调度算法设计调度算法的目的就是要使用cache获得较高的命中率,即cpu要访问的数据总是能在cache中找到。常用的算法有四种: (1)随机替换法:公平,但命中率很低,已淘汰 (2)FIFO(先进先出)算法:最先进入cache的信息块最先被替换。 最先进去的块可能就是最常用的块。 (3)LUR算法:近期最少使用算法 把最近最少使用的信息块替换掉。最近少用,但并不证明将来也少使用。 (4)OPT(优化替换)算法: 理想算法,但实现
35、起来难度较大。先让程序试运行一次,从而分析出地址,然后才真正运行第二次。,4、Cache的一致性Cache中的字块,是主存中相应字块的副本,程序运行过程中会对Cache的某块进行写操作,如何保持Cache的信息和主存的信息的一致性呢? 写直达:Cache与主存单元同时更新。(Write Through) 写回法:仅更新Cache单元,用标志位标记,直至修改的字块被从Cache中替换出来时,再一次性写入内存。(WriteBack) 特点:写直达法简单,但当一个字倍多次更新时,会引起对主存的多次写入,这是不必要的。写回法速度快,但因在最后写主存前,主存中的字块未经随时修改而可能失效。,5、CPU是
36、如何访问cache?Cpu提供的是内存地址,而cache又并非和主存采用统一编址,因此要访问cache,就必须cpu提供的内存地址转换成cache地址,这种地址转换称为地址映象。那么有哪些方法? (1)直接映象法: cache块地址J与主存块I的关系满足J=I mod 2n (n为cache块地址位数) 特点:地址变换简单,但对应关系不灵活。 (2)全相联映象允许主存的每一块信息可以存到cache的任何一个块空间,也允许用任何替换算法从被占满的cache中替换掉任何一块信息。 特点:对应关系灵活,但访问速度太慢,成本太高,目前很少使用,最早的cache就是用硬件方法实现的全相联地址映象的。 (
37、3)组相联映象把cache分为2c组,每组包含2r个信息块,cache共有2c+r个信息块,此时,cache地址I与主存的块地址J的对应关系满足I=(J mod 2c )2r+k k K为可选参数。 很显然组间直接映象,而组内是全相联映象。【提醒】为提高速度,Cache需用全硬件实现,Cache全由静态RAM组成。,五、虚拟存储器(Virtual Memory)(解决内存容量问题) 1、问题的提出:目前,计算机内存主要由半导体存储器组成。由于成本、工艺、速度的原因,内存的容量受到限制,而用户却希望内存的容量越大越好。如:当多个用户同时使用一台计算机或一个用户同时运行多个程序或运行一个很大的程序
38、时,内存往往放不下这些程序和数据,怎么办?解决的办法是把外存当内存用,CPU仍然只与内存打交道,所需程序和数据及时自动地从外存调入内存,这样,对用户来讲好像机器有一个容量很大的内存,这种由于把外存当作内存用而扩大的存储空间,称为“虚拟存储器”。 2、虚拟存储器:由主存和联机工作的辅存组成。主存辅存在硬件和软件的共同作用下,构成一个对应用程序员来讲是单一的,速度相当于主存,容量相当于辅存的存储系统。虚拟存储器对系统程序员不透明,对应用程序员是透明的。,4、相关概念 (1)逻辑地址(虚拟地址):程序员编程以及CPU通过指令访问内存所用的程序地址。其寻址空间完全由指令中的地址码长度决定。如:地址码3
39、2位,寻址空间可达4G。(2)物理地址(真实地址):内存实际提供的地址,其可寻址空间完全由内存容量决定。(3)辅存地址:外存地址空间。(4)形式地址: (5)有效地址: (6)指令的地址: (7)指令中的地址:5、虚存中的地址映像和地址变换(1)地址映像: 缓存技术和虚存技术有很多相似之处,只是实现的细节不同而已。缓存要解决的是CPU与内存速度差异问题,故由硬件实现。而虚存要解决的是内存与外存的容量差距问题,故多由软件实现。 (2)地址变换:虚拟地址的可寻址空间远大于内存的可寻址空间。虚实地址变换的解决方案:由操作系统自动转换。6、实现存储管理的方法:页式存储管理、段式存储管理、段页式存储管理
40、。,8 存储器的层次结构,目前,整个存储系统采用层次结构,常见的有两种: 1、二级存储器层次结构 2、三级存储器层次结构,一、存储器层次结构的特点和追求目标 1、特点:各层次之间的信息调度是由辅助硬件或软件直接完成。避免了用户来分配内存管理内存的缺陷。(为什么要避免)用户管理的内存的手段是采用程序覆盖处理技术(用户把辅助中的程序或数据,一块一块地分别调入内存进行处理的技术),这种技术要求用户在编程中要不断地对内存进行动态分配,因为新调入的块要覆盖原有的块。很显然,严重影响速度而且使编程变得复杂。2、追求目标:存取速度接近于内存,存储容量越大越好,价格接近于辅存的价格。,二、存储体系结构的性能指
41、标及其提高的措施。 性能指标有三项:访问时间TA,存储容量S和每位价格C 1、TA=HTA1+(1-H)TA2其中 (1)H为从一个存储体获取信息的概率(命中率)H= ,或H=N1,N2分别为访问两个存储体的次数。 (2)TA1和TA2分别为访问两个存储体的时间 要想缩短TA,有两种途径:一是提高H,二是缩短TA1和TA2 提高H的办法 (1)加大存储体的容量 (2)改进辅助软硬件的性能。 缩短TA1和TA2的办法 (1)同时缩短TA1和TA2 (2)使TA1和TA2接近 2、每位价格CC=理论上sisi+1时,cci+1 :即低一级的存储容量远远小于上一级的存储容量时,C就越接近高一级的存储
42、元件价格ci+1。但实际上,si和si+1的差别越大,信息调度的难度亦愈大,这样会降低访问效率,反之,信息调度的难度下降,而结构层次要增多,同样会降低效率。,9 应用举例,例1:设有主存M1和辅存M2构成的二级存储体系,其中M1和M2的读出时间分别时1ns和1ms。经实测,该二级存储系统的平均读出时间为100ns。今欲使其减小为10ns,试给出两种改进设计的实现方法。 解:设主存的命中率为H,M1和M2的读出时间为Tm1和Tm2,已知Tm1=1ns,Tm2=1000ns 系统平均读出时间Ta=100ns,因为Ta=Tm1+(1-H)Tm2,要想Ta降低,则应该考虑H提高,Tm1和Tm2降低。
43、方案1:提高H原来的H=(Tm1+Tm2-Ta)/tm2=(1+1000-100)/1000=0.901要使Ta=10ns,则H=(1+1000-10)/1000=0.991,通过改进调度算法是可以实现的。 方案2:减小Tm1Tm1=Ta-(1-H)Tm2=10-(1-0.901)1000=-0.89ns,这种方法显然是不可行的。 方案3:减小tm2Tm2=(Ta-Tm1)/(1-H)=(10-1)/(1-0.901)=90.9ns,只要将辅存的读出时间减小到90.9ns,即可实现目标。,例2:有一台磁盘机,平均寻道时间为30ms,平均旋转等待时间为120ms,数据传输速率为500B/ms,磁
44、盘机上随机存放着1000件每件3000B的数据,现欲把一件件数据取走,更新后再放回原地,假设一次取出或写入所需时间为:平均寻道时间+平均等待时间+数据传送时间,另外,使用CPU更新信息所需时间为ms ,并且更新时间同输入输出操作不相重叠。试问: (1)更新磁盘上全部数据需要多少时间? (2)若磁盘及转速和数据传输速率都提高一倍,更新全部数据需要多少时间? 解:(1)读出/写出一块数据所需时间为3000B500B/ms=6ms.由于1000件数据是随机存放的,所以每取出或写入一块数据均要定位。故更新全部数据所需时间为:21000(平均寻道时间+平均等待时间+传送一块时间)+1000CPU更新一块
45、数据的时间=21000(30+1290+6)ms+10004ms=316s(2)磁盘机旋转速度提高一倍后,平均等待时间为60ms;数据传输速率提高一倍,数据传输速率为1000B/ms,读出/写入一块数据所需时间为:30001000=3ms,故更新全部数据所需时间为:21000(30+60+3)+10004=190s,例4:某微机的寻址范围为64KB,其存储器选择信号为M,接有8片8KB的存储器,试回答下列问题: (1)画出选片译码逻辑图 (2)写出每片RAM的寻址范围 (3)如果运行时发现不论往哪一片存储器存放8KB数据,以A000H起始地址的存储芯片都有相同的数据,分析故障原因。 (4)若发
46、现译码器中的地址线A13与CPU断线,并搭接到高电平的故障,问后果如何?解:(1)选片译码逻辑图如下图所示 (2)第0片RAM的寻址范围:0000H1FFFH 第1片RAM的寻址范围:2000H3FFFH 第2片RAM的寻址范围:4000H5FFFH 第3片RAM的寻址范围:6000H7FFFH 第4片RAM的寻址范围:8000H9FFFH 第5片RAM的寻址范围:A000HBFFFH 第6片RAM的寻址范围:C000HDFFFH 第7片RAM的寻址范围:E000HFFFFH (3)根据题意,第5片RAM与其他RAM芯片同时工作,由于第0片第4片、第6片、第7片能正常工作,所以译码器没有故障,
47、故障原因一定是Y5搭接到了低电平。 (4)若译码器中的地址线A13与CPU断线,并搭接到高电平上,则 读写第0片时,第1片也同时工作; 读写第2片时,第3片也同时工作; 读写第4片时,第5片也同时工作; 读写第6片时,第7片也同时工作;,例5:一台286计算机具有24位地址,按其最大寻址能力配置一个主存储器,问: (1)存储器容量是多少? (2)如果用2M4位存储芯片构成该存储器,共需多少片? (3)该存储器需要多少片选信号?用哪些地址信号去产生这些片选信号? 解: (1)24位地址线的最大寻址能力为224=16M,按最大寻址能力配置的最大存储器容量为16M8位。 (2)对2M4位存储芯片先做位扩展,用两个组成一个2M8位的存储体,再做字扩展,用8个存储体组成16M8位存储器。因此共需16M8/2M4=16片 (3)存储器容量为16M,每个存储体容量为2M,因此需要16/2=8个片选信号,用最高位地址信号A23A21经3-8译码器产生片选信号。,