资源描述
交通信息与控制工程系教案(理论教学用)课程名称微机原理与接口技术第 15 次第 7 周2 学时上课教室WM1310课程类型专业基础课授课对象自动化专业章节名称第6章 存储器系统(6.4,6.5,6.6)教学目的和要求1 熟练掌握存储器与地址总线的连接;2 了解CACHE的概念和工作原理;3 了解8086/8088系统的存储器管理方法4 了解现代计算机存储器管理方法;讲 授主要内容及时间分配存储器与地址总线的连接高速缓冲存储器(40min)存储器管理;(35min)硬盘、RAID和光盘原理;(15min)教学重点与难点重点:1 CACHE的概念和工作原理;2 086/8088系统的存储器管理方法;3 现代计算机存储器管理方法;4 存储器与地址总线的连接。难点:1存储器与地址总线的连接。要求掌握知识点和分析方法1 了解CACHE的概念和工作原理;2了解8086/8088系统的存储器管理方法;3了解现代计算机存储器管理方法;4存储器与地址总线的连接。启发与提问1 为什么现代计算机要使用缓存?2硬盘属于什么存储器?教学手段多媒体作业布置思考题:1Windows的虚拟内存在计算机程序运行中起什么作用,如何设置虚拟内存?主 要参考资料备注注:教案按授课次数填写,每次授课均应填写一份。重复班授课可不另填写教案。长安大学讲稿(第十五讲)讲 授 内 容5.4 高速缓存(Cache)为什么要在CPU和主存之间加Cacheq “为了提高CPU访问主存的速度”或:“为了解决CPU与主存之间的速度匹配问题”。q 早期计算机的CPU与主存的工作速度较为接近,如IBM 904,CPU的机器周期(即总线周期)为12us,而主存的存取周期也是12us,此时主存的速度并不影响整机的运算速度。Cache基本原理1. 程序访问的局部性(locality of reference)q 对大量典型程序的运行情况的分析结果表明,在一个较短的时间间隔内,由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内。q 指令地址的分布本来就是连续的,再加上循环程序段和子程序段要重复执行多次。因此,对这些地址的访问就自然具有时间上集中分布的倾向。q 数据分布的这种集中倾向不如指令明显,但对数组的存储和访问以及工作单元的选择都可以使存储器地址相对集中。q 这种对局部范围的存储地址频繁访问,而对此范围以外的地址访问甚少的现象,称为“程序访问的局部性”。q 程序访问的局部性是Cache技术的基本依据。Cache系统的基本组成n 三个组成部分:Cache模块(SRAM)主存(DRAM)Cache控制器。在高速缓存系统中,主存中保存着所在现行程序和数据,Cache中保存着主存的部分副本。 Cache的命中率q 当CPU访问存储器时,给出的地址要同时送往Cache和主存,首先检查Cache,如果要访问的数据已经在Cache中,则CPU就能很快完成访问,这种情况称为Cache“命中”(Cache hit);q 否则,CPU就必须从主存中提取数据,称为Cache“失误”(Cache miss)或Cache“未命中”。q 如果组织得好,那么程序所用的大多数的数据都可在Cache中找到,即在大多数情况下能命中Cache。q Cache的“命中率”(hit rate)和Cache容量大小、Cache的控制算法、Cache的组织方式有关,当然还和所运行的程序有关。q 在80386系统中,使用组织较好的Cache系统,命中率可达95%IBM 360,99%Cache的数据更新方法n 在Cache系统中,同样一个数据可能既存在于Cache中,也存在主存中。这样,当数据更新时,可能Cache已更新,而主存未更新。这种情况会造成数据丢失。n 另外,在有DMA控制器的系统和多处理器系统中,有多个部件可访问主存,这时,可能其中有些部件是直接访问主存的,也可能每个DMA部件和处理器配一个Cache,这样,主存的一个区块可能对应于多个Cache中的各一个区块。n 于是,又会产生主存中的数据被某个总线主部件更新过,而某个Cache中的内容未更新,这种情况造成Cache中数据过时。对前一种一致性问题“数据丢失”,有如下解决办法:贯穿读出式l CPU对主存的所有数据请求都首先送到Cache,在Cache中查找。若命中,则切断CPU对主存的请求,并将数据送出;如果不命中,则将数据请求传给主存。旁路读出式n CPU向Cache和主存同时发出数据请求。如果命中,则Cache将数据回送给CPU,并同时中断CPU对主存的请求;若不命中,则Cache不做任何动作,由CPU直接访问主存。Cache读操作的优缺点n 贯穿读出式 优点:降低了CPU对主存的请求次数; 缺点:延误了CPU对主存的访问时间。n 旁路读出式 优点:没有CPU访问内存的时间延误; 缺点:每次都要读内存,占用了部分总线访问时间。写穿式n 从CPU发出的写信号送Cache的同时也写入主存。回写式n 数据一般只写到Cache,当Cache中的数据被再次更新时,将原更新的数据写入主存相应单元,并接受新的数据。Cache写操作的优缺点n 写穿式 优点:操作简单; 缺点:由于主存的慢速,降低了系统的写速度并占用 了部分系统总线时间。n 回写式 优点:克服了CPU写入内存问题; 缺点:增加了Cache控制的复杂性。对后一种一致性问题(即出现主存区块更新而Cache未更新的情况),一般有四种防止方法:(1). 总线监视法q 在这种方法中,由Cache控制器随时监视系统的地址总线,如其他部件将数据写到主存,并且写入的主存区块正好是Cache中的区块对应位置,那么,Cache控制器会自动将Cache中的区块标为“无效”。(2). 硬件监视法q 把主存中映象到Cache的区块称为已映象区块,硬件监视法就是通过外加硬件电路,使Cache本身能观察到主存中已映象区块的所的存取操作。要达到这个目的,最简单的办法是所有部件对主存的存取都通过同一个Cache完成。q 另一个办法是每个部件配备各自的Cache,当一个Cache有写操作时,新数据既拷贝到主存,也拷贝到其他Cache,从而防止数据过时,这种方法也称为广播式。(3)划出不可高速缓存存储区法q 按照这种方式,要在主存中划出一个区域作为各部件共享区,这个区域中的内容永远也不能取到Cache,因此,CPU对此区域的访问也必须是直接的,而不是通过Cache来进行的。q 用这种方法,便可避免主存中一个区块映象到多个Cache的情况,于是也避免了数据过时的问题。 (4) Cache清除法q 这种方法是将Cache中所有已更新的数据写回到主存,同时,清除Cache中的所有数据。q 在进行一次这样的主存写入时,系统中所有Cache作一次大清除,那么,Cache中自然不会有过时的数据。Cache的分级体系结构n 一级Cache:容量一般为8KB-64KB 一般可以完成80的内存请求; 指令Cache和数据Cache。n 二级Cache:容量一般为128KB-2MB 剩余的20的数据请求一般有80可以在二级缓存中实现。Pentium PC的CachePentium PC机是一个单CPU系统,它采用了两级Cache结构。集成在Pentium CPU内的Cache称为L1级Cache,其容量为16KB。安装在主板上的Cache称之为L2级Cache,其容量为512KB,也采用2路组相联映射方式,每行可以是32B、64B或128BPentium 两级Cache的工作环境Pentium 两级Cache的工作环境如下图所示。L2级Cache (512KB)采用了回写法,遵循MESI协议,L2是主存的子集,保持与主存一致。CPU内部的L1级Cache是L2的子集,采用写一次法,同样遵循MESI协议,维护L1与L2两级之间的一致性,从而保证了L1- L2-主存三级存储系统的一致性。5.5 存储器管理5.5.1 IBM PC/XT的存储空间的分配n 09FFFFH 640K基本RAM DOS专用n 0A0000H-0BFFFFH 128K显示RAM 显卡专用n 0C0000H-0EFFFFH 192K控制Rom 硬盘、显示器n 0F0000H-0FFFFFH 系统板上的ROM BIOS8088寻址空间1M,Dos操作系统只能管理其中的640K,成为阻碍计算机发展的一个瓶颈。n 因此,引入了存储器管理的概念n 目前,存储器管理有三大模式 实地址模式 虚拟8086模式(V86模式) 虚地址保护模式实地址模式n 8086的工作模式,20根地址线能够寻址1M的地址空间;n 8086系统对存储器按照分段的方法进行管理;n 逻辑地址: 段地址:偏移地址n 物理地址:段地址×16偏移地址n 系统启动以后,进入实地址模式。虚拟8086模式n 386以上的CPU,支持的一种虚拟的工作模式。n 能够再虚拟的8086环境下,使操作系统能够执行DOS程序。n 而且可以提供多个独立的、相互隔离的虚拟环境。虚地址保护模式虚拟存储器 虚拟存储器是指用磁盘的存储空间来弥补主存空间的不足,使得程序人员能够使用比主存实际空间更大的存储空间来编写和运行程序。v 目的是解决内存小、作业大、作业多的问题。v 是由操作系统提供的一个假想的特大存储器。原则是把一个程序当前正在使用的部分放在内存,而其它部分放在磁盘上,就启动执行它。v 实现虚拟存储技术的基础是二级存储器结构和动态地址转换机构(程序运行时把逻辑地址转换成物理地址,实现动态定位)。虚拟存储器的基本特征:虚拟扩充:不是物理上,而是逻辑上扩充了内存容量。部分装入:每个作业不是全部一次性地装入内存,而是 只装入一部分。离散分配:不必占用连续的内存空间。而是“见缝插针”。多次对换:所需的全部程序和数据要分成多次调入内存。虚拟存储器受到的限制:指令中表示地址的字长,外存的容量。n 采用虚拟存储器的好处:n 用户编程可不必考虑内存的大小问题n 作业先装一部分进内存,内存可容纳更多作业,提高CPU和内存利用率,系统吞吐量提高。虚拟存储器经常使用两种基本管理技术:段式存储管理 段是程序模块化设计的结果,即把程序中逻辑上相对独立的部分设计为不同的段, 再经过连接程序连接成更大的程序。 页式存储管理,所分配的内存没有逻辑意义,它们用于存储程序还是数据不得而知。无法在存储区中设置共享与保护特性。为此,段式存储管理,以程序的逻辑段为单位分配内存。使程序的逻辑结构中的段与内存的段建立直接联系。页式存储管理 页式存储管理是把虚拟空间和主存空间都分成大小相同的页(为二的整数幂个字),并以页为单位进行虚存与主存间的信息交换。此时虚存地址和主存地址分别被分为虚存页号、页内地址和主存页号、页内地址,虚、实二页号会不同,但使用相同的页内地址。 与段式存储管 理不一样,页不是程序本身的结构特性,而是从管理的角度人为划分的结果。设置和管理好页表是页式存储管理的关键技术。4. 分页和分段的主要区别 (1) 页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头, 提高内存的利用率。或者说, 分页仅仅是由于系统管理的需要而不是用户的需要。段则是信息的逻辑单位,它含有一组其意义相对完整的信息。 分段的目的是为了能更好地满足用户的需要。 (2) 页的大小固定且由系统决定,由系统把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的,因而在系统中只能有一种大小的页面;而段的长度却不固定, 决定于用户所编写的程序,通常由编译程序在对源程序进行编译时,根据信息的性质来划分。(3) 分页的作业地址空间是一维的,即单一的线性地址空间,程序员只需利用一个记忆符,即可表示一个地址; 而分段的作业地址空间则是二维的,程序员在标识一个地址时,既需给出段名, 又需给出段内地址。 Windows XP的虚拟内存 系统运行时,先要将所需的指令和数据从外部存储器(如硬盘、软盘、光盘等)调入内存中,CPU再从内存中读取指令或数据进行运算,并将运算结果存入内存中,内存所起的作用就像一个“二传手”的作用。当运行一个程序需要大量数据、占用大量内存时,内存这个仓库就会被“塞满”,而在这个“仓库”中总有一部分暂时不用的数据占据着有限的空间,所以要将这部分“惰性”的数据“请”出去,以腾出地方给“活性”数据使用。这时就需要新建另一个后备“仓库”去存放“惰性”数据。由于硬盘的空间很大,所以微软Windows操作系统就将后备“仓库”的地址选在硬盘上,这个后备“仓库”就是虚拟内存。XP的虚拟内存的设置56硬盘及硬盘驱动器5.6 硬盘管理 几乎所有计算机都使用硬盘来存储信息。从存储角度,与内存比较起来,硬盘有三个主要的优点:(1)可用的存储容量非常大(2)每位的价格非常低(3)电源关掉后信息不会丢失硬盘存储器管理硬盘性能简述1. 数据的组织和格式Ø 实际的硬盘都组织成多个盘片,每片分两面,每面分成若干条磁道,磁道间有间隙Ø 磁道又被分成许多扇区,每条磁道上扇区数目典型为10至100,每个扇区包含相同的字节数,相当于一个盘块硬盘接口类型n IDE: 并行ATA(即ATA/133)所能达到133MB/s。 n SCSI的英文全称为“Small Computer System Interface 。n SATA(Serial ATA):Serial ATA 2.0的数据传输率将达到300MB/s,最终SATA将实现600MB/s的最高数据传输率。 六、低价磁盘的冗余阵列(RAID) Redundant Arrays of Inexpensive Disks用 N 个低价磁盘构成一个统一管理的阵列,取代特贵单一磁盘是一个好的方案,它可以:有 N个磁盘的容量有 1/N 的访问时间有更高的性能价格比对阵列盘采用冗余技术提高信息的可靠性。RAID的级别从RAID概念的提出到现在,巳经发展了多个级别,有明确标准级别分别是0、1、2、3、4、5等。但是最常用的是0、1、3、5四个级别。RAID为使用者降低了成本、增加了执行效率,并提供了系统运行的稳定性。 RAID 0级数据分块,即把数据分布在多个盘上非冗余阵列、无冗余信息严格地说,它不属于RAID系列。 RAID 1级亦称镜像盘,使用双备份磁盘每当数据写入一个磁盘时,将该数据也写到另一个冗余盘(镜像盘),形成信息的两份复制品。特点:昂贵、系统可靠性高、效率低(冗余度太大,磁盘的利用率仅为50%光盘存储器 概述 CD(Compact Disc,高密盘)是采用光学方式来记录和读取二进制信息的,所以称之为光盘。 光盘是一种数字式记录存储器,具有容量大、耐用、易保存、标准化等优点,并且非常适合于大量生产,所以被广泛地作为计算机软件、多媒体出版物、计算机游戏等发行量大的电子出版物。 光盘在存储多媒体信息方面具有以下主要的特点。 1记录密度高 2存储容量大 3采用非接触方式读/写信息 4信息保存时间长 5不同平台可以互换 6多种媒体融合 7价格低廉1 光盘的基本构造单面只读光盘是由三种物质重叠在一起组成的。 从底层向上依次是:基片(衬底)、存储介质(光敏膜层)和保护层。基片是一个关键的光学器件,存储材料就附在基片上, 所以,基片实际起保护信息层的作用。 目前, 按光盘的读/写类型来分, 可分为Ø 只读型光盘(ROM); Ø DVDØ 一次写入型光盘(WORM); 可擦除重写光盘(REWRITE)。习题66.8.已知RAM的容量为(1)16K×8 (2)32K×8 (3)64K×8 (4)2K×8如果RAM的起始地址为5000H,则各RAM对应的末位地址为多少?【解】首先画出内存单元示意图容易想不通的是16K的值用二进制表示为0100 0000 0000 0000,这一步直接表示成这个形式即可(1)16K×8【析】最后一个单元的地址-首地址+1=16KB= 24 ×210=(转换为16进制)=0100 0000 0000 0000 = 4000H最后一个单元的地址=5000H+4000H-1=8FFFH(2)32K×8【析】最后一个单元的地址-首地址+1=32KB= 25 ×210= 215D =(转换为16进制)=1000 0000 0000 0000 = 8000H最后一个单元的地址=5000H+8000H-1=D000H-1=CFFFH(3)64K×8 【析】最后一个单元的地址-首地址+1=32KB= 26 ×210= 216D =(转换为16进制)=0001 0000 0000 0000 0000 =10000H最后一个单元的地址=5000H+10000H-1=15000H-1=14FFFH(4)2K×8最后一个单元的地址-首地址+1=2KB= 21 ×210= 211D =(转换为16进制)=0000 1000 0000 0000 = 0800H最后一个单元的地址=5000H+0800H-1=5800H-1=57FFH6.9.如果一个应用系统中ROM为8KB,最后一个单元地址为57FFH,RAM紧接着ROM后面编址,RAM为16KB,求该系统中存储器的第一个地址和最后一个单元地址。【解】首先画出内存单元示意图【析】首先,已知ROM的最后一个单元地址为57FFH,那么RAM的第一个单元地址为57FFH+1=5800H。再求RAM的最后一个单元地址方法如下:最后一个单元的地址-首地址+1=16KB= 24 ×210=(转换为16进制)=0100 0000 0000 0000 = 4000H最后一个单元的地址=5800H+4000H-1=9800H-1=97FFH6.10.如果存储器起始地址为1200H,末地址为19FFH,求该存储器的容量。【解】首先画出内存单元示意图【析】最后一个单元的地址-首地址+1 = 存储器容量 存储器容量 = 19FFH 1200H + 1 = 7FFH+1 = 800H将800H写成二进制形式800H = 1000 0000 0000 =(转换为10进制数)= 211 = 2K存储器容量为2K【补充习题】:1计算机的内存和外存有什么区别?答:内存储器(主存储器)用来存放当前机器运行的程序和数据,它是计算机主机的一部分,一般把具有一定容量且速度较高的存储器作为内存储器,CPU可直接用指令对内存储器进行读写。在微机中通常用半导体存储器作为内存储器。 外存储器用来存放当前暂时不用的程序和数据。外存储器是存储容量大、速度较低、位于主机之外的存储器。CPU不能直接用指令对外存储器进行读写。 要使用外存储器中的信息,必须先将它调入内存储器。2计算机的三级存储系统是什么?解决了什么实际问题?答:在现代微机中同时采用这两种存储层次,构成cache内存外存三级存储系统。这三级存储系统的形成,满足了现代微型计算机对存储系统的速度快、容量大且价格低廉的要求。cache内存存储系统解决了速度与成本的矛盾。cache内存外存三级存储系统解决了存储器的大容量和低成本之间的 矛盾。3已知某微机控制系统中的RAM容量为4K×8位,首地址为4800H,求其最后一个单元的地址。答:最后一个单元的地址-首地址+1=4KB=212=1000H最后一个单元的地址=4800H+1000H-1=57FFH6.13 若某微机有16条地址线,现用SRAM 2114(1K×4位)存储芯片组成存储系统,问采用线选译码时,系统的存储容量最大为多少?需要多少个2114存储器芯片?【析】16条地址线为A0-A15,即CPU的寻址空间为64KB。线选法是指高位地址不经译码,直接作为存储芯片的片选信号。每根高位地址线接一块芯片,用低位地址线实现片内寻址。当用存储字长不是8位的芯片构成内存时,必须用多片合并在一起并行构成具有8位字长的存储单元。2114可同时用2片。它们的地址线、控制线完全是并联在一起的,数据线则分别接在数据总线的不同位线上。先考虑片内寻址,因为每片2114是1K×4位,所以用A0-A9作为片内选择。每组是2片2114。高位A10-A15用线选法可选通6组。一共的芯片数为12片2114,因此系统存储容量最大为12×1K×4位=6KB。需要12片2114存储器芯片。6.14 设有一个具有14位地址和8位字长的存储器,问:(1)该存储器能存储多少字节的信息?(2)如果存储器由1K×1位静态RAM芯片组成,需要多少芯片?(3)需要多少位地址作芯片选择?【析】(1)214=24×210=16KB,即16KB字节信息(2)1K×1位若要组成16K×8位,需要16×8片=128片。(3)每片为1K×1位,片内寻址主要考虑1K=210,即使用低位地址线A0-A9作片内寻址,其余高位地址线A10-A13这4根做片选信号。需要译码出16组片选信号。可采用4-16译码器74LS154。6.15 用1024×1位的RAM芯片组成16K×8位的存储器,需要多少个芯片?分为多少组?共需多少根地址线?地址线如何分配?试画出与CPU的连接框图。【析】1024×1位就是1K×1位,因为1K×1位×16×8=16K×8位,需要128个芯片,由于要组成每8位为一组,所以需要16组。低位地址要寻址1K空间,即A0-A9,高位地址进行片选,需要寻址16组芯片,所以采用A10-A13,然后用4-16译码器74LS154产生译码输出。
展开阅读全文