第四章存储器管理重点理解重定位的基本概念掌握动态分区分配方式掌握理解分页和分段存储管理方式理解虚拟存储器的基本概念掌握请求分页系统的基本原理难点动态分区分配算法分页和分段地址转换请求分页系统的地址转换及页面置换算法第四章存储器管理知识点重定位的基本概念动态分区分配方式及分配算法、分区保护分页存储管理及地址变换、分段存储管理及地址变换,信息共享和保护虚拟存储器的基本概念、特征,页面置换技术请求分页系统,页表机制、地址变换及页面置换算法第四章存储器管理4.1存储器的层次结构4.2程序的装入和链接4.3连续分配方式4.4基本分页存储管理方式4.5基本分段存储管理方式4.6虚拟存储器的基本概念4.7请求分页存储管理方式4.8页面置换算法4.9请求分段存储管理方式4.1存储器的层次结构存储器包括内存(主存)和外存(磁盘)存储器的功能是保存数据,存储器的发展方向是高速、大容量和小体积。内存在访问速度方面的发展:DRAM、SDRAM、SRAM,DDRSDRAM等;硬盘技术在大容量方面的发展:接口标准、存储密度等;主存储器管理技术分为两大类实存储器管理虚拟存储器管理4.1存储器的层次结构存储器的物理组织、多级存储器存储组织是指在存储技术和CPU寻址技术许可的范围内组织合理的存储结构。依据是访问速度匹配关系、容量要求和价格。“寄存器-内存-外存”结构“寄存器-缓存-内存-外存”结构;微机中的存储层次组织:访问速度越慢,容量越大,价格越便宜;最佳状态应是各层次的存储器都处于均衡的繁忙状态(如:缓存命中率正好使主存读写保持繁忙);4.1存储器的层次结构快速缓存:DataCacheTLB(TranslationLookasideBuffer)内存:DRAM,SDRAM等;外存:软盘、硬盘、光盘、磁带等;外外(secondarystorage)DOS外外外外外外外外外外(primarystorage)外外外外(cache)外外外(register)4.1存储器的层次结构主存储器管理功能存储分配和回收分配和回收算法及相应的数据结构地址变换和重定位可执行文件生成中的链接技术程序加载(装入)时的重定位技术进程运行时硬件和软件的地址变换技术和机构存储共享和保护代码和数据共享地址空间访问权限(读、写、执行)存储器扩充:存储器的逻辑组织和物理组织;由应用程序控制:覆盖;由OS控制:交换(整个进程空间),虚拟存储的请求调入和预调入(部分进程空间)4.1存储器的层次结构主存储器发展历史RAM(randomaccessmemory)随机存储器。按照存储信息的不同,随机存储器又分为静态随机存储器(StaticRAM,SRAM)和动态随机存储器(DynamicRAM,DRAM)。静态存储器(SRAM)存储原理:由触发器存储数据单元结构:六管NMOS或OS构成优点:速度快、使用简单、不需刷新、静态功耗极低;常用作Cache缺点:元件数多、集成度低、运行功耗大4.1存储器的层次结构主存储器发展历史动态存储器(DRAM)存贮原理:利用MOS管栅极电容可以存储电荷的原理,需刷新;刷新(再生):为及时补充漏掉的电荷以避免存储的信息丢失,必须定时给栅极电容补充电荷的操作刷新时间:定期进行刷新操作的时间。该时间必须小于栅极电容自然保持信息的时间(小于2ms)。优点:集成度远高于SRAM、功耗低,价格也低缺点:因需刷新而使外围电路复杂;刷新也使存取速度较SRAM慢,所以在计算机中,DRAM常用于作主存储器。4.1存储器的层次结构主存储器发展历史SIMM(SingleIn-lineMemoryModules)单边接触内存模组,80286上使用,容量为30pin,256kb,由片数据位和1片检验位组成组成一个bank。因此,常由4条一起使用。386,486使用72pinSIMM支持32bit快速页模式内存,容量为512kb~2mb,仅要求2条一起使用。与30pin不兼容,因此淘汰了30pinSIMM。FPMDRAM:(FastPageMode),在386时代很流行。4.1存储器的层次结构主存储器发展历史EDODRAM:(ExtendedDataOut),1991~1995年取消了扩展数据输出内存与传输内存两个存储周期之间的时间间隔,数据发给CPU同时访问下一个页面。速度比普通DRAM快15~30%。主要应用于486及早期pentium,分为72pin和168pin两种。单条容量已达4~16MB。由于Pentium及更高CPU支持64bit,故EDORAM与FPMRAM都必须成对使用。4.1存储器的层次结构主存储器发展历史DIMM:Dual-Inline-Memory-Modules,即双列直插式存储模块DIMM提供了64位的数据通道,因此它在奔腾主板上可以单条使用。它有168条引脚,故称为168线内存条。SO-DIMM(SmallOutlineDIMMModule):它的尺寸比标准的DIMM要小很多,而且引脚数也不相同。FB-DIMM(FullBuffered–DIMM):每个DIMM上的缓冲区是互相串联的,之间是点对点的连接方式,数据会在经过第一个缓冲区后传向下一个缓冲区。4.1存储器的层次结构主存储器发展历史RIMM:RambusInlineMemoryModuleRambus公司生产的RDRAM内存所采用的接口类型。RIMM非ECC版有16位和32位数据宽度,ECC版则都是18位宽。RIMM非ECC版16位内存每面92线,双面184线。32位内存每面116线,双面为232线。4.1存储器的层次结构主存储器发展历史SDRAM:(SynchronousDynamic)第一代使用PC66规范,由于Intel与AMD之争,CPU外频提升到100MHz,PC66很快被PC100取代,接着133MHz的PIII与K7出现,PC133规范进一步提高SDRAM的整体性能,带宽提高到1GB/sec以上。SDRAM带宽为64bit,与CPU完全对应,故仅需一条就可与工作。RAM与CPU以相同的时钟频率控制,使它们与外频同步,速度明显超越EDO。4.1存储器的层次结构主存储器发展历史RDRAM:(RambusDRAM)Intel与Rambus联合推广。采用类RISC(ReducdeInstructionSetComputing)理论,减少数据的复杂性,提高整个系统的性能。PC600,PC700的RDRAM出现Intel820芯片组“失误事件”,PC800RDRAM成本过高,PC1066也无法力挽狂澜。4.1存储器的层次结构主存储器发展历史DDRSDRAM:DoubleDataRateSDRAM双倍速率SDRAM,可以认为是SDRAM的升级DDR在时钟脉冲的上升沿和下降沿各传输一次数据,故比传统SDRAM速度快一倍。由于仅多使用下降信号传输数据,故不会增加能耗。至于定址与控制信号则与传统SDRAM相同采用时钟上升沿传输。DDR第一代DDR200没有得到推广;第二代PC266DDRSDRAM由PC133SDRAM衍生得到。4.1存储器的层次结构主存储器发展历史DDRSDRAM:DoubleDataRateSDRAMDDR随后出现DDR333,DDR400,双通道DDR400,DDR533。DDR2JEDEC组织提出DDR2标准,加上LGA775的915/925以及945。融入PostCAS、OCD(Off-ChipDriver)、ODT(OnDieTermination)等新性能指标和中断指令,提升内存带宽的利用率。4.1存储器的层次结构主存储器发展历史DDRSDRAM:DoubleDataRateSDRAMDDR2采用400,667,800,1000MHz等不同的时钟频率。采用200、220、240pin的FBGA封装形式。4.1存储器的层次结构主存储器发展历史DDRSDRAM:DoubleDataRateSDRAMDDR3使用了SSTL15的I/O接口,运作I/O电压是1.5V,采用CSP、FBGA封装方式包装。新增了更为精进的CWD(作为写入延迟之用)、Reset(提供了超省电功能的命令)、ZQ(新增校准功能)、SRT(Self-ReflashTemperature,可编程化温度控制内存时脉功能)、PASR(PartialArraySelf-Refresh)局部Bank刷新)功能。4.1存储器的层次结构主存储器发展历史DDRSDRAM:DoubleDataRateSDRAMDDR4内存规格原计划在2011年制定完成,2012年开始投入生产并上市,不过市场调研机构IHSiSuppli的数据显示,DDR4内存在2013年都看不到任何踪影,直到2014年才会露面。将会是Single-endedSignaling(传统SE信号)方式和DifferentialSignaling(差分信号技术)方式并存。4.2程序的装入和链接物理地址内存单元所看到的地址。用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。又称为绝对地址。逻辑地址由CPU生成。机器语言指令中,用来指定一个操作数或者是一条指令的地址。也称为虚拟地址,相对地址。0X000000000XFFFFFFFF4GB4.2程序的装入和链接多道程序环境下,程序以进程方式运行;创建进程分配内存源程序编译(compile)链接(link)装入(load)进程外外外外外外外外外外外外外外外外外外外外外外外外外外外外外外外外外外外…4.2程序的装入和链接inti=0,n=200;while(in){couti;myprint(i);i++;}0:i=0;1:n=200;2:ifnot(in)jmp7;3:couti;4:callmyprint(i);5:i++;6:jmp2;7:holt;编译逻辑地址myprint(inti){intj=i*2;coutj;}0:j=i*2;1:coutj;2:holt;4.2程序的装入和链接0:i=0;1:n=200;2:ifnot(in)jmp7;3:couti;4:callmyprint(i);5:i++;6:jmp2;7:holt;链接0:j=i*2;1:coutj;2:holt;0:i=0;1:n=200;2:ifnot(in)jmp7;3:couti;4:callmyprint(i);5:i++;6:jmp2;7:holt;0:j=i*2;1:coutj;2:holt;0:i=0;1:n=200;2:ifnot(in)jmp7;3:couti;4:jmp8;5:i++;6:jmp2;7:holt;8:j=i*2;9:coutj;10:jmp5;4.2程序的装入和链接0:i=0;1:n=200;2:ifnot(in)jmp7;3:couti;4:callmyprint(i);5:i++;6:jmp2;7:holt;装入i=0;n=200;ifnot(in)jmp7;couti;callmyprint(i);i++;jmp2;holt;500050015002500350045005500650074.2.1程序的装入绝对装入方式(AbsoluteLoadingMode)事先确定(知道)了程序将驻留在内存的位置,即在内存中的绝对地址。绝对地址的产生程序员直接赋予。不仅要求程序员熟悉内存使用情况,而且一旦程序或数据被修改后,可能要改变程序中的所有地址。编译或汇编时产生。通常在程序中采用符号地址,在编译或汇编时,再将符号地址转换为绝对地址。优点:程序中的逻辑地址与实际内存地址完全相同,故不须对程序和数据的地址进行修改。缺点:程序和数据,不能在内存中移动。适用于单道程序环