曹红根计算机组成原理第 4 章 存储器系统.ppt
2023/11/18,1,第四章 存储器系统,2023/11/18,2,本章学习内容存储器的分类及主要技术指标 存储系统的层次结构半导体存储器的工作原理存储器与CPU的连接辅助存储器的工作原理Cache的工作原理并行存储系统,2023/11/18,3,4.1 存储器概述,存储器:计算机的存储部件,用于存放程序和数据。计算机发展的重要问题之一,就是如何设计容量大、速度快、价格低的存储器。,2023/11/18,4,4.1.1 存储器分类,1按与CPU的连接和功能分类(1)主存储器 CPU能够直接访问的存储器。用于存放当前运行的程序和数据。简称内存或主存。(2)辅助存储器 为解决主存容量不足而设置的存储器,用于存放当前不参加运行的程序和数据。当需要运行程序和数据时,将它们成批调入内存供CPU使用。,2023/11/18,5,(3)高速缓冲存储器(Cache)是一种介于主存与CPU之间用于解决CPU与主存间速度匹配问题的高速小容量的存储器。Cache用于存放CPU立即要运行或刚使用过的程序和数据。,2023/11/18,6,2按存取方式分类,(1)随机存取存储器(RAM)存储器任何单元的内容均可按其地址随机地读取或写入,且存取时间与单元的物理位置无关。RAM主要用于组成主存。(2)只读存储器(ROM)存储器任何单元的内容只能随机地读出而不能随便写入和修改。ROM可以作为主存的一部分,用于存放不变的程序和数据,与RAM分享相同的主存空间。ROM还可以用作其它固定存储器,如存放微程序的控制存储器、存放字符点阵图案的字符发生器等。,2023/11/18,7,(3)顺序存取存储器(SAM)存储器所存信息的排列、寻址和读写操作均是按顺序进行的,并且存取时间与信息在存储器中的物理位置有关。如磁带存储器,信息通常是以文件或数据块形式按顺序存放,信息在载体上没有唯一对应的地址,完全按顺序存放或读取。(4)直接存取存储器(DAM)介于RAM和SAM之间的存储器。也称半顺序存储器。典型的DAM如磁盘,当进行信息存取时,先进行寻道,属于随机方式,然后在磁道中寻找扇区,属于顺序方式。,2023/11/18,8,3按存储介质分类,(1)磁存储器 采用磁性材料制成存储器。磁存储器是利用磁性材料的的两个不同剩磁状态存放二进制代码“0”和“1”。早期有磁芯存储器。现多为磁表面存储器,如磁盘、磁带等。(2)半导体存储器 用半导体器件组成的存储器。根据工艺不同,可分为双极型和MOS型。,2023/11/18,9,(3)光存储器 利用光学原理制成的存储器,它是通过能量高度集中的激光束照在基体表面引起物理的或化学的变化,记忆二进制信息。如光盘存储器。4.按信息的可保存性分类(1)易失性存储器(2)非易失性存储器,2023/11/18,10,4.1.2 主存储器的组成和基本操作,1.主存的基本组成(1)存储元件(存储元、存储位)(2)存储单元(3)存储体(存储阵列)(4)地址寄存器(5)地址译码与驱动电路(6)读写电路(7)数据寄存器(8)时序控制电路,2023/11/18,11,2023/11/18,12,主存的基本组成,2023/11/18,13,2.主存与CPU的连接及主存的操作,主存储器用于存放CPU正在运行的程序和数据。主存与CPU之间通过总线进行连接。,2023/11/18,14,主存的操作过程,MAR:地址寄存器 MDR:数据寄存器,2023/11/18,15,4.1.3 存储器的主要性能指标,衡量主存的性能指标主要有:1存储容量2速度3.存储器总线带宽4价格,2023/11/18,16,容量、速度、价格三个指标是相互矛盾、相互制约的。高速的存储器往往价格也高,因而容量也不可能很大。为了较好地解决存储器容量、速度与价格之间的矛盾,在现代计算机系统中,通常都是通过辅助软、硬件,将不同容量、不同速度、不同价格的多种类型的存储器组织成统一的整体。即构成存储器系统的多级层次结构。存储器系统的多级层次结构通常是由三级存储器组成,即 Cache 主存 辅存,4.1.4 存储器系统的层次结构,2023/11/18,17,存储器层次结构,辅助软硬件,辅助硬件,2023/11/18,18,主存 辅存层次主要解决容量问题 Cache 主存层次主要解决速度问题,2023/11/18,19,2023/11/18,20,4.2 半导体随机存储器,通常使用的半导体存储器分为随机存取存储器(Random Access Memory,RAM)和只读存储器(Read-Only Memory,ROM)。它们各自又有许多不同的类型。,2023/11/18,21,4.2.1 半导体存储器的分类,2023/11/18,22,4.2.2 随机存取存储器的结构及工作原理,1.半导体存储器芯片的结构及实例,2023/11/18,23,存储器芯片(存储器组件)半导体存储器芯片一般有两种结构:字片式结构和位片式结构,An10,Dm10,R/W,电源,地线,2023/11/18,24,字片式结构的存储器芯片(64字8位),2023/11/18,25,位片式结构的存储器芯片(4K1位),2023/11/18,26,(1)TMS4116芯片,2.存储器芯片举例,2023/11/18,27,2023/11/18,28,2023/11/18,29,TMS4116的刷新,当某个存储单元被选中进行读/写操作时,该单元所在行的其余127个存储电路也将自动进行一次读出再生操作,即完成一次刷新操作。TMS4116的刷新是按行进行的,每次只加行地址,不加列地址,即可实现被选行上的所有存储电路的刷新。即一次可以刷新128个存储单元电路。,2023/11/18,30,读出再生放大器电路,2023/11/18,31,4.2.3 动态存储器的刷新方式,刷新的间隔时间主要根据电容电荷泄放速度决定。1.刷新最大周期(刷新最大间隔)设存储电容为C,其两端电压为u,电荷QCu,则泄漏电流为,2023/11/18,32,所以泄漏时间为u:电容两端的电压变化I:泄露电流C:存储电容若C0.2pf,u1V,I0.1nA则泄漏时间为说明动态MOS元件每隔2ms必须刷新一次t就是刷新最大间隔,即刷新最大周期。,2023/11/18,33,2.刷新方法 按行刷新 例:16K的4116芯片,存储体排成128128阵列,需要刷新128行。每次由刷新地址计数器给出刷新的行地址,每刷新一行,刷新地址计数器加1。,2023/11/18,34,3.刷新方式当主存需要刷新时,CPU不能访存,所以要尽可能让刷新时间少占用CPU时间。集中式刷新集中式刷新的优点:控制简单。集中式刷新的缺点:在“死区”内CPU必须停止访存操作,CPU利用率低。,2023/11/18,35,分散式刷新 分散式刷新的优点:没有“死区”,每一系统周期都可进 行读/写操作。分散式刷新的缺点:没有充分利用所允许的最大刷新间 隔(2ms),且刷新过于频繁,降低了 系统的速度。,2023/11/18,36,异步式刷新 异步式刷新既充分利用2ms的最大刷新间隔,保持存储系统的高速性,又大大缩短了主机的“死区”,所以是一种最常用的刷新方式。,2023/11/18,37,4.2.4 半导体存储器的组成,由于一块存储器芯片的容量总是有限的,因此一个存储器总是由一定数量的存储器芯片构成。要组成一个主存储器,需要考虑的问题:如何选择芯片根据存取速度、存储容量、电源 电压、功耗及成本等方面的要求进行芯片的选择。所需的芯片数量:,2023/11/18,38,例:用2114芯片组成32K8位的存储器,所需2114芯片数为:如何把许多芯片连接起来。通常存储器芯片在单元数和位数方面都与实际存储器要求有很大差距,所以需要在字方向和位方向两个方面进行扩展。主要进行三种信号线的连接:地址信号线、数据信号线、控制信号线,2023/11/18,39,1位扩展,当芯片的单元数满足存储器单元数的要求,但单元中的位数不满足要求时,需要进行位扩展。位扩展:只进行位数扩展(加大字长)。采用位扩展时,芯片的单元数(字数)与存储器的单元数是一致的。位扩展的连接方式:将所有存储器芯片的地址线、片选信号线和读/写控 制线均对应的并接在一起,连接到地址和控制总线的 对应位上。将各芯片的数据线单独列出,分别接到数据总线的 对应位。,2023/11/18,40,例:用2114存储器芯片构成1K8位的存储器。2114为1K4位的芯片,现存储器要求容量为1K8位,单元数满足,位数不满足,需要1K8/1K42片 2114来构成存储器。1K8位的存储器共需8根数据线D7D0,两片2114各自的4根数据线分别用于连接D7D4和D3D0。2114本身具有10根地址线,称为片内地址线,与存储器要求的10根地址线一致,所以只要将他们并接起来即可。电路中CPU的读/写控制线(R/W)与2114的 WE 信号并接。MREQ 为CPU的访存请求信号,作为2114的片选信号连接到 CS 上。,2023/11/18,41,2023/11/18,42,2字扩展,当芯片单元中的的位数满足存储器位数的要求,但芯片的单元数不满足存储器单元数要求时,需要进行字扩展。字扩展:仅是单元数(字数)扩展,而位数不变。采用字扩展时,芯片单元中的位数与存储器的数据位数是一致的。字扩展的连接方式:将所有芯片的地址线、数据线、读/写控制线均对应地并接在一 起,连接到地址、数据、控制总线的对应位上。由片选信号区分被选芯片。片选信号:通常由高位地址经译码进行控制。高位地址:存储器总地址减去芯片内部寻址的地址得到的地址。,2023/11/18,43,例:用16K8位的存储器芯片构成64K8位的存储器。16K8位的芯片,可以满足64K8位的存储器数据位的要求,但不满足单元数的要求。需要4片16K8位的芯片采用字扩充方式来构成存储器。64K8位的存储器需要16位地址线A15A0,而16K8位的芯片的片内地址线为14根,所以用16位地址线中的低14位A13A0进行片内寻址,高两位地址A15、A14用于选择芯片,即选片寻址。设存储器从0000H开始连续编址,则四块芯片的地址分配:第一片地址范围为:0000H3FFFH 第二片地址范围为:4000H7FFFH 第三片地址范围为:8000HBFFFH 第四片地址范围为:C000HFFFFH,2023/11/18,44,片内地址,片选地址,2023/11/18,45,2023/11/18,46,3字和位同时扩展,当芯片的单元数和单元的数据位均不满足存储器的要求时需要进行字和位的同时扩展。字和位同时扩展:按位扩展和字扩展的方法分别在位方向 和字方向进行扩展。字和位同时扩展的连接方式:所有芯片的片内地址线、读/写控制线均对应地并接在 一起,连接到地址和控制总线的对应位上。同一地址区域内,不同芯片的片选信号连在一起,接 到片选译码器的同一输出端;不同地址区域内的芯片 的片选信号分别接到片选译码器的不同输出端。,2023/11/18,47,不同地址区域内,同一位芯片的数据线对应地并接在 一起,连接到数据总线的对应位上。不同位芯片的数 据线分别连接到数据总线的不同位上。,2023/11/18,48,例1:用2114芯片组成8K8位存储器需用16片2114芯片构成8K8位存储器。16片芯片排成8行2列,每行按位扩展方法连接,每列按字扩展方法连接。存储器地址线A12A0,芯片片内地址A9A0,高三位地址A12、A11、A10用于选片寻址。存储器数据线D7D0,芯片数据线I/O3I/O0,两片芯片的数据线一同构成存储器的8位数据线。,2023/11/18,49,2023/11/18,50,2023/11/18,51,例:某微机系统有16根地址线,8根数据线,地址空间安 排为:16K系统程序存储区,用ROM芯片,安排在地址 最低区;接着留出16K的设备地址空间;其后的32K作 为用户程序区,采用RAM芯片。给定芯片如下,请画 出连线图,给出各存储区的地址范围。,ROM,D7D0,A13,A0,RAM,D7D0,A13,A0,2023/11/18,52,ROM区:16K8位,需1片16K8位ROM芯片RAM区:32K8位,需2片16K8位RAM芯片I/O区:16K8位,主存不应使用,2023/11/18,53,ROM,A13A0,RAM,D7D0,A15,A14,RAM,地址译码器,2023/11/18,54,地址分配与片选的关系,存储空间片内空间扩容三种方法:1.线选法片外的高地址直接(或经反相器)分别接到各存储器芯片的CS引脚。特点:无需外加逻辑电路,但仅适用于芯片较少的场合。,2023/11/18,55,2.全译码法片外的高地址全部接到译码器的输入端,译码器输出为片选信号。特点:芯片的地址范围确定,连续,无重叠存储区,对译码电路要求较高。3.部分译码法片外的高地址部分地与译码器相连,译码器输出为片选信号。(选片内地址多?还是地址少?),2023/11/18,56,多种数据位输出的组织问题。,1.多种输出的情况 可输出8位、16位、32位等。2.芯片与片选控制信号的安排 CPU增加控制信号,控制不同数据的输出。,2023/11/18,57,请用2K8bit的SRAM设计一个8K16bit的存储器,并画出存储器与CPU的连接原理图。要求:当B=0时访问16位数据;当B=1时访问8位数据,两列存储芯片按地址交叉方式编址。B控制信号由CPU给出,此外CPU还有MREQ(低电平有效)、R/W等控制信号(高电平读、低电平写)。SRAM除地址、数据线外,有CS(低电平有效)、WE等控制线(高电平读、低电平写)。其他的辅助芯片(译码器、门电路)自选,但要说明它们的功能。,2023/11/18,58,地址线的安排,8K16bit=8K2 8bit 空间214 8bit 地址线14根由于交叉编址和整数边界的要求,故A0用于8位、16位的控制(与B组合)A11-A1用于片内地址A13、A12用于2:4译码,2023/11/18,59,逻辑表达式,2023/11/18,60,Peven=A0Podd=A0 B,Y0,Y1,Y2,Y3,A13,A12,2023/11/18,61,CS0=Y0+Peven CS1=Y0+PoddCS2=Y1+Peven CS3=Y1+PoddCS4=Y2+Peven CS5=Y2+PoddCS6=Y3+Peven CS7=Y3+Podd(画出连接图),2023/11/18,62,2023/11/18,63,2023/11/18,64,存储模块,若干个存储芯片按一定的逻辑关系连起来,高密度地安装在对外有若干个引脚的印制电路板上或密封在对外有若干引线的陶瓷壳中。这样,存储模块作为独立的不可分割的整体存在内存条,2023/11/18,65,内存条的应用,内存条主要用于微机系统。对于其他系统,可让设计员按照研制要求用控制芯片、存储芯片和存储芯片。,2023/11/18,66,4.4 高速缓冲存储器(Cache),高速缓冲存储器是位于主存与CPU之间的高速小容量存储器,用来存放程序中当前最活跃的程序和数据。,2023/11/18,67,4.4.1 地位与作用,程序局部性原理:CPU在一个较短的时间间隔内,由程序产生的地址往往簇聚在一个很小的区域内。如果把这一局部区域的程序和数据从主存复制到Cache中,使CPU能够高速地在Cache中读取指令和数据,就可大大提高CPU的访存速度。,2023/11/18,68,4.4.2 结构与工作原理,2023/11/18,69,1.Cache的基本结构,Cache存储阵列由高速存储器构成,用于存放主存信息的副本。容量小于主存,但编址方式、物理单元长度均与主存相同。地址映像变换机构用于实现主存地址与Cache地址转换的部件,一般由相联存储器组成,用以记录主存内容存入Cache时两者地址的对应关系。替换策略实现机构根据一定的算法,用硬件实现块的替换。,2023/11/18,70,在带Cache的存储器中,CPU的访存地址被分割成两部分:块地址(块框架地址、块号)用于查找该块在Cache中的位置。块内位移(块内偏移量)用于确定所访问的数据在块中的位置。,块号,块内偏移量,2023/11/18,71,2Cache的工作过程,当CPU需要进行访存时,首先给出主存实地址。地址映像变换机构接收到主存实地址后,根据块号判定所访问的信息字是否在Cache中。若在(Cache命中),通过地址变换机构将主存块号变换为Cache块地址,再根据块内地址,对Cache进行存取。若不在(Cache不命中),则通知访问Cache块失效。然后通过CPU与主存之间的直接数据通路访问主存,将被访问字直接送给CPU,并将包含该字的新块装入Cache。若Cache巳满,则通过替换策略实现机构,调出某一Cache块,然后装入所需的块。,2023/11/18,72,Cache的存在对程序员是透明的。在处理机每次访问存储器时,系统自动将地址转换成Cache中的地址。提高Cache的访问速度的方法 Cache的地址变换和数据块的替换算法均用硬件实现。在物理位置上让Cache尽量靠近CPU,以减少CPU与 Cache之间的传输延迟。如将Cache集成在CPU芯片内。为了加速调块,一般将每个数据块的容量规定为并行 主存系统一个存储周期所能访问到的字数。,2023/11/18,73,4.4.3 Cache的地址映像方式,因为CPU以主存地址访问Cache,所以必须把访存地址变换为Cache的实际地址。地址变换取决于地址映像方式,也即主存信息按什么规则装入Cache。,2023/11/18,74,cache的容量与命中率的关系,2023/11/18,75,1.全相联映象及变换,任何主存单元可映象到任意一个Cache单元。,主存,Cache,设主存有2n块Cache有2m块,2023/11/18,76,2023/11/18,77,(1)任意主存单元的数据或指令可以存放到Cache的任意单元中去,两者之间的对应关系不存在任何限制.(2)增加Cache的容量能存储的数据越多,命中率越高,但每次访问内存都需要进行大量的地址比较,既耗时同时效率也低.,全相联映象方式的特点,2023/11/18,78,直接映像是指任何一个主存单元只能复制到Cache的某一固定单元中。,2直接映像方式,2023/11/18,79,主存,Cache,2023/11/18,80,2023/11/18,81,直接映象方式的特点:(1)只需要做一次地址比较即可确定是否命中(2)不同的内存单元可能有相同的cache索引,不同的cache标识使得cache仍未命中,需要访问主存,2023/11/18,82,组相联映像是前两种方式的一种折衷方式。组相联映像方式是先将主存以Cache容量分为若干区,再将主存块和Cache块以相同块数进行分组。主存中的任何一组能只映像到Cache中的某一固定组,但同一组中的主存块可调入Cache中指定组内的任意块中。如果组的大小为1,组相联映像就变成了直接映象;如果组的大小为整个Cache的尺寸,组相联映像就变成了全相联映象。当一个组里有n块时,组相联映象方式也称为n路组相联。,3组相联映像方式,2023/11/18,83,主存,Cache,2023/11/18,84,2023/11/18,85,2023/11/18,86,组相连映像方式的特点:(1)地址比较的次数与相关联的程度有关(2)组的数目越多,性能越高,但用作标识cache的SRAM容量也增加了,从而增加了成本,2023/11/18,87,5.Cache的替换算法,当访存Cache不命中时,必须从主存中调入所需块,此时,若Cache已满或已装不进新块,则必须按一定算法,选择一个Cache块将其替换出去,然后才能调入新块。如何选择被替换块,这就是替换算法的问题。常用替换算法有两种:FIFO法和LRU法。,2023/11/18,88,FIFO法(先进先出法)按调入Cache的先后决定替换顺序,即需要替换时,总是淘汰最先调入Cache的块。FIFO法控制简单,容易实现。但最先调入的信息不一定是最近不使用的信息,所以这种算法可能影响Cache命中率。LRU法(近期最少使用法)把近期最少使用的Cache块替换出去。这种算法需随时记录Cache中各块使用情况,以确定哪个块为近期最少使用的块。LRU法是按使用频繁程序决定淘汰顺序的,比较合理,使Cache命中率高于FIFO法,是目前使用最多的一种替换算法。,2023/11/18,89,4.5 存储系统组织,本节从存储器组织的角度,讨论解决存储器速度、容量、价格之间矛盾的一些常用技术,包括双端口存储器、并行主存系统、高速缓冲存储器和虚拟存储技术等。,2023/11/18,90,4.5.1 双端口存储器,单端口存储器:单端口存储器每次只接收一个地址,访问一个编址单元,从中读取或存入一个字节或一个字。双端口存储器:双端口存储器具有两个彼此独立的读/写口,每个读/写口都有一套独立的地址寄存器和译码电路,可以并行地独立工作。两个读/写口可以按各自接收的地址,同时读出或写入,或一个写入而另一个读出。与两个独立的存储器不同,两套读/写口的访存空间相同,可以访问同一区间、同一单元。,2023/11/18,91,双端口存储器,2023/11/18,92,双端口存储器的常用场合:在运算器中采用双端口存储芯片作为通用寄存器组,能快速提供双操作数,或快速实现寄存器间传送。让双端口存储器的一个读/写口面向CPU,通过专门的存储总线(或称局部总线)连接CPU与主存,使CPU能快速访问主存;另一个读写口则面向外围设备或输入输出处理机IOP,通过共享的系统总线连接,这种连接方式具有较大的信息吞吐量。在多机系统中采用双端口存储器甚至多端口存储器,作为各CPU的共享存储器。实现多CPU之间的通信。,2023/11/18,93,4.5.2 并行主存系统,为提高系统速度,在高速的大型计算机中普遍采用并行主存系统。并行主存系统:在一个存储周期内可并行存取多字的存储系统。利用并行主存系统可以提高整个存储器系统的吞吐率(数据传送率),解决CPU与主存间的速度匹配问题。,2023/11/18,94,1单体多字并行主存系统,单体多字并行主存系统:多个并行存储器共用一套地址寄存器,按同一地址码并行地访问各自的对应单元。例如n个存储器顺序排列n个字,每个字有w位。假定送入的地址码为 A,则n个存储器同时访问各自的A号单元。即将这n个存储器视作一个大存储器,每个编址对应于n字w位,因而称为单体多字方式。单体多字并行主存系统适用于向量运算一类的特定环境。例如矩阵运算中的aibja0b0、a0b1、,就适于采用单体多字并行存取方式。,2023/11/18,95,单体多字并行主存系统,2023/11/18,96,2多体交叉存取方式的并行主存系统,多体交叉存储器:使用n个容量相同的存储器,或称为n个存储体,它们具有自己的地址寄存器、数据线、时序,可以独立编址地同时工作。各存储体的编址大多采用交叉编址方式,即将一套统一的编址,按序号交叉地分配给各个存储体。每个存储体都有自己的读写控制电路、地址寄存器和数据寄存器,各自以等同的方式与CPU传送信息。在理想情况下,如果程序段或数据块都是连续地在主存中存取,那么将大大提高主存的访问速度。,2023/11/18,97,四个存储体组成的多体交叉存储器,2023/11/18,98,多体交叉存取方式的并行主存系统,2023/11/18,99,CPU同时访问四个模块,由存储器控制部件控制它们分时使用数据总线进行信息传递。对每一个存储模块来说,从CPU给出访存命令直到读出信息仍然使用了一个存取周期时间,而对CPU来说,它可以在一个存取周期内连续访问四个模块,各模块的读写过程并行进行。多体交叉存取方式适合支持流水线的处理方式,而流水处理方式已是CPU中一种典型技术,因此,多体交叉存储结构是高速大型计算机的典型主存结构。,2023/11/18,100,多存储体分时工作示意图,2023/11/18,101,4.5.3 虚拟存储器,虚拟存储器是建立在主存 辅存层次上,由附加硬件和操作系统存储管理软件组成的存储体系,其目的是为用户提供比主存容量大得多的程序空间。采用虚拟存储器技术后,可将主存和辅存的地址空间统一编址,用户按其程序需要使用逻辑地址(即虚地址)进行编程。所编程序和数据在操作系统管理下先送入辅存(一般是磁盘),然后操作系统自动地将当前即需运行的部分调入主存,供CPU操作,其余暂不运行部分留在辅存中。随程序执行的需要,操作系统自动地按一定替换算法进行调换,将暂不运行部分由主存调往辅存,将新的模块由辅存调入主存。,2023/11/18,102,CPU执行程序时,按照程序提供的虚地址访问主存,因此,先由存储管理硬件判断该地址内容是否在主存中。若已调入主存,则通过地址变换机制将程序中的虚地址转换为主存的物理地址(即实地址),据此访问主存的实际单元。若尚未调入主存,则通过缺页中断程序,以页为单位调入或实现主存内容更换。上述过程对于用户程序是透明的,用户看到只是用位数较长的虚地址编程,CPU可按虚地址访存,可访问存储空间很大,遍及辅存空间。显然,这是一个虚拟层次。,2023/11/18,103,从原理上,虚拟存储器和Cache有不少相同之处,不同的是Cache控制是全部用硬件实现的,所以对各类程序员是透明的,而虚拟存储器的控制是软硬件结合的,对设计存储管理软件的系统程序员是不透明的,而对应用程序员是完全透明的。虚拟存储器的管理方式有三种:页式、段式和段页式。(前两种常用),2023/11/18,104,页式存储管理,主要思路:把虚拟(逻辑)地址空间和主存实际(物理)地址空间,都分成大小相等的页,并规定页的大小为2的整数次方个字,则所有地址都可以用页号拼接页内地址的形式来表示。,2023/11/18,105,虚拟地址用虚页号拼接页内地址给出,主存实际地址用实页号拼接页内地址给出。请注意页式存储管理与段式存储管理的一个重要区别,段本身是程序设计的一个产物,是一个独立的程序单位,长度可变;而页则不是程序本身的什么特性,是为了方便管理,人为地对程序进行划分的结果,通常在一个计算机系统中,页的长度是事先确定的,不会变化。这种通过分页方式进行的存储器管理被称为页式存储器管理。,2023/11/18,106,页式存储的关键功能是实现按页来完成在虚存和主存之间交换数据,并完成逻辑地址到物理地址的转换,说到底,就是找出虚页号和实页号的对应关系。这可以通过设立页表来完成。页表由若干表目组成,每个虚页号对应页表中的一个表目,表目的内容可以由如下一些部分组成:,2023/11/18,107,最重要的是一个虚页分配在主存中的实际页号,还可能包括页装入(有效)位,修改标记位,替换控制位,其它保护位等组成的控制位字段。请注意,在页式存储器管理的系统中,页表本身也是以页为单位管理的,可以保存在虚存中,也可以保存在主存中。如下图给出了页式存储器管理的地址变换过程。,2023/11/18,108,2023/11/18,109,地址变换过程,用虚地址中的虚页号与页表基地址相加,求出对应该虚页的页表表目在主存中的实际地址,从该表目的实页号字段取出实页号再拼上虚地址中的页内地址,就得到读主存数据用的实存地址当需要把一页从虚存调入主存时,操作系统从主存储器的空闲区找出一页分配给这一页,把该页的内容写入主存,把主存储器的实际页号写进轧表的相应表目的实页号字段,写装入位为1。,2023/11/18,110,两次读问题,当下次要读该页内的某个存储单元时,首先要读一次主存,通过查页表求出实存地址,尔后再读一次主存,才能取得要读的数据,为读一个数据变成两次读主存,实际应用中是难以令人接受的。怎么解决这一问题呢?,2023/11/18,111,快慢页表,答案:设立一个完全用快速硬件实现的一个容量很小的(一般在1664个表目之间)快速页表(英文为Translation Lookaside Buffer,简写为TLB,译为中文叫做转换旁路缓冲器),用于存放在页表中使用最频繁的、为数不多的那些表目的内容。,2023/11/18,112,快表最重要的两项内容是虚页号和实页号。经快表实现的地址转换过程,用虚地址中的虚页号去与快表中虚页号字段的内容相比较,与哪个表目中的虚页号相同,则可以取出该表目中的实页号,并与页内地址拼接出实存地址。这一过程可以很快完成,很有点类似于高速缓冲存储器的运行原理。,2023/11/18,113,当在快表中找不到该虚页号时,就要到主存中经慢表(相对而言是个大表!)找出该虚页号对应的实页号,在得到一个实存地址的同时,并用该虚页号和实页号替换掉修改快表的一个表目的内容,以反映这次操作的现实形势。下图给出了快慢表在页式管理中的作用。,2023/11/18,114,2023/11/18,115,4.5.5 相联存储器,相联存储器(Associative Memory)又称为联想存储器,它不是根据地址而是根据所存信息的全部特征或部分特征进行存取的,即一种按内容寻址的存储器(CAM-Content Access Memory),如下图所示。,2023/11/18,116,2023/11/18,117,相联存储器的基本结构,2023/11/18,118,相联存储器的访问过程,2023/11/18,119,由于相联存储器要求每个基本存储单元都具有比较功能,因此设计复杂,成本较高,容量不大。实用的联想存储器,一般除有按内容访问能力外,还有按地址访问能力。故仍保留有地址寄存器、译码电路和读出寄存器。联想存储器的每个基本单元除了有存储能力和相等比较功能外,还可实现,MAX,MIN,BETWEEN,NEXT HIGHER,NEXT LOWER等比较功能。,