第四章 内存管理与映像接口n n在PC机中,CPU对其部件的访问分为两类uu一种是前面已介绍过的I/O端口寻址方式,它完全为PC机系统输入/输出设备服务uu另一种访问方法就是存储器寻址,主要用于CPU对系统内存的管理,也可用作对系统的输入/输出接口管理X86的三种工作模式及寻址原理n n最早的8088CPU是准16位微处理器,其最大的寻址空间为1M字节n n操作系统是DOS,因此DOS下的应用软件的寻址和处理方式必须符合8088的标准n n为解决CPU性能的发展与兼容性之间的矛盾,CPU有三种工作模式uu实地址模式uu保护模式uu仿86模式一、实地址模式n n实地址模式和8086/8088的寻址方式是一样的,但运行速度更快,内存配置更大些用户在8086/8088上运行的程序可以不做任何修改直接在实地址模式下运行n n开机启动时,CPU自动进入实地址模式n n用户可以一直运行在实模式,也可以通过软件指令切换到保护模式n n在实模式下,X86仍使用CS∶IP指示指令地 址 ,每 段 仍 为 64K, 寻 址 空 间 为1MB+64KB-16B实地址模式存储器空间n n在8086/8088中,利用段寻址可实现的最大范围为0000H∶0000H--FFFFH∶FFFFHn n如果把段左移4位加上偏置,寻址范围为00000H-10FFEFH,该范围为1MB+64KB-16Bn n8086/8088地址空间被限制在220=1M字节n n80386以上CPU有32位地址线,只要在实模式下把A20开通,就可以实现上述范围的寻址实地址模式I/O空间n n实模式下,80X86与8086/8088有相同的I/O空间,仍为64KB, 0000H-FFFFHn n这些端口地址可以直接被I/O指令所访问二、保护模式n n在保护模式下,能利用其全部的地址线参与寻址,并能满足多用户、多任务操作系统的要求n nCPU寻址内存时,首先要满足保护规则,然后才能进行寻址n n访问权限是指分配给每个任务的一定内存资源和读写限制n n保护规则的含义是指寻址时超越了这些权限的话,CPU将拒绝执行这次寻址,并产生中断以告警。
n n保护规则是对个别段所采取的措施n n在保护模式下,段通过转换才能存取n n在转换的过程中要经过一层筛选以防止错误的寻址实地址模式如何切换到保护模式n nX86增加了CR0,CR1,CR2和CR3四个控制寄存器n nCR0的第0位称为PE位(保护激活位)uu在实模式下,PE位置0uu当PE位置1时,系统进入保护模式uuPE位可以通过指令来改变存储器分页管理n n当CR0的PG位被置为1后,其寻址方式就进入分页管理n n这时CPU将32位地址线所管理的4GB线性地址空间分成1048576个页面,每个页面占用4KBn n其目的主要是为了采用虚拟内存技术虚拟内存技术n n虚拟内存不是由内存芯片组成,而是把数据存在外部存储器中(如硬盘)n n需要用时再把数据转移到真正的内存中n n这样可以极低的价格获取大量存储空间保护模式下的四个新寄存器n n全局描述符表寄存器GDTR(48位)n n局部描述符表寄存器LDTR(16位)n n中断描述符表寄存器IDTR(48位)n n任务寄存器TR(16位)n n另外,EAX、EBX、ESP等扩展为32位描述符表n n在内存中设置一个区域存放描述符,从而构成描述符表n n每个描述符占8个连续字节,用来描述一段内存基地址及访问权限n n描述符寄存器则指明了对应描述符表的所在内存地址n nCPU在保护模式下的寻址是通过描述符和对应的偏置来完成的n n386以上CPU的每个任务都划分一定的内存资源n n在保护模式下,段寄存器 (如CS, DS, ES等)高13位表示地址偏置n n第三位是一个全局或局部任务标志位TIn n如TI=0表示这次寻址是一次全局任务寻址uu由由GDTRGDTR与与段段寄寄存存器器高高1313位位偏偏置置一一起起找找到到全全局局描描述述符表符表GDTGDT中的一个描述符中的一个描述符uu再加上某偏置寄存器如再加上某偏置寄存器如EIPEIP中的偏置完成寻址任务中的偏置完成寻址任务n n当TI=1时表示是一次局部任务寻址uu这时必须用这时必须用LDTRLDTR、、GDTRGDTR与与CSCS一起找到局部描述符一起找到局部描述符uu再与再与EIPEIP一起完成寻址一起完成寻址保护模式下全局或局部任务寻址保护模式下的寻址空间n n逻辑地址由段寄存器(如CS)和逻辑偏移量(如EIP)组成n n段寄存器有16位,其中有效寻址位是高14位,而逻辑偏移量有32位n n故每个任务所拥有的逻辑地址空间为232×214=246,即64TB任务寄存器n n其内容是当前任务的选择符,间接指示出任务的任务状态段TSS,主要用于任务切换功能n n每一个任务都有一个任务状态段TSSn n在全局描述符表GDT中保留有每个任务的TSS描述符n n而TSS描述符包括了对应TSS的基地址和表长n n通过任务寄存器和当前的GDTR可选择一个TSS描述符n n任务状态段中保留有与这个任务相关的外部环境和内部数据三、仿86模式n nCPU对存储器的寻址是不用描述符的,这点它与实模式相同n n将段寄存器内容左移4位与偏移量一起生成21位线性地址n n在仿86模式下n n每个任务的最大寻址空间是1MB多一点三种模式的切换DOS下的内存管理微机内存分为四类:n n基本内存n n保留内存n n扩充内存n n扩展内存微机内存n n1、基本内存是指8086/8088或286以上CPU在实模式下所能寻址的0-640KB范围内的存储器n n2、扩充内存占用640KB-1024KB之间的一些地址空间,是对基本内存的扩充,可管理1MB以上,可在8086或实模式下管理和访问n n3、扩展内存占用1MB以上的地址空间,也是对基本内存的扩充,只能在保护模式下,才能访问和管理扩充内存n n系统BIOS、显示缓存、接口卡等占用了640KB-1MB的大部分,为了能用有限的地址空间管理更大的内存而提出扩充内存n n最早以内存卡的形式出现,采用分页管理的方法n n微机只分配一个页的地址空间给扩充内存,CPU在某时刻只能对其中某一页进行直接存取,访问其他页时,必须通过换页机制EMS(扩充内存)规范n n操作系统通过实际寻址的“物理页”与间接存取的“逻辑页”对扩充内存进行管理n n每一个物理页为16KB,4个页构成一个页框 , 一 般 在 640KB-1MB区 间 内 的 连 续64K(4.0的页间地址可以不连续)n nCPU能直接寻址的只是页框范围内的物理页空间XMS(扩展内存)标准XMS定 义 了 三个区域uu高端存储区HMAuu高端存储块UMBuu扩展存储块EMBUMB高端内存块n n位于640KB-1MB的一些存储器n n由于这部分内存在640KB以上,故称为高端内存(Upper Memory)n n内存不一定是连续的,可能有好几个块n nEMM 386程序建立UMBHMA高端内存区n n是指1MB以后的第一个64KB的扩展内存n n与其他扩展内存不同,该区域可以被实模式下的指令直接寻址n n但8086/8088只有20根地址线,因此被忽视掉Windows内存管理及接口设计n nWindows 95/98特点uu混合有混合有1616位段和位段和3232位码段位码段uu可以运行可以运行MS-DOSMS-DOS,,WIN16WIN16,,WIN32WIN32,,应用程序应用程序uu多任务和多线程多任务和多线程t t先进的抢先式多任务处理功能先进的抢先式多任务处理功能uu3232位文件系统位文件系统uu虚拟设备驱动程序(虚拟设备驱动程序(VXDVXD))uu其他特点其他特点t t即插即用(即插即用(PNPPNP))t t完善的对象连接嵌入(完善的对象连接嵌入(OLEOLE))t t长文件名长文件名t t内嵌的网络功能内嵌的网络功能Windows 95的内存管理特点n n基于页面的内存管理n n为每个任务划分自己独立的地址空间,使其表现出很强的保护特性扩展存储器接口的几种方法n n第一种是将扩展存储器当作外设,由I/O端口或DMA访问uu此时应由接口板自设置扩展存储器地址指针,这个地址指针可以由一个计数器来实现n n第二种是存储器至存储器的DMA传送n n第三种方法是将扩展存储器直接映像为主存储器的一部分uu将扩展存储器当作系统主存储器的一部分uu所有能够访问主存储器的指令也以同样的方式访问扩展存储器内存直接映像技术n n内存直接映像:将扩展存储器的地址映像到系统地址空间之内未被占用的区域,因此可以作为系统存储器的一部分直接使用n nPC系统的0C0000H-0DFFFFH这段区域可作内存空间的映像PC/AT内存分配基于ISA总线的内存直接映像n n用ISA总线进行内存直接映像设计时,通常要使用的信号uuA0-A19:提供存储器地址uuALE:下降沿处A0--A19被锁存uu/MEMCS16:16位存储器片选信号uu/SMEMR:存储器读信号uu/SMEMW:存储器写信号uuI/O CHRDY:I/O通道准备就绪信号内存直接映像的读写控制方式n n系统总线控制读写n n主机控制写,外设控制读n n主机控制读,外设控制写n n混合结构系统总线控制读写对主机存储容量的 扩 充 ,用于存储器的扩充接口卡主机写外设读可以产生任意函数波形主机将函数的抽样值写入映像存储器计数器读出函数值并送入D/A主机读外设写n n这种结构与主机写外设读类似,仅仅数据传送方向相反,因此只要把/MEMW改为/MEMR便可n n可用于高速数据采集系统混合结构n n存储器既可以由主机控制读写,也可由外设控制读写n n当同时申请读写时,电路需要仲裁n n带处理器的图形控制卡是一个典型的混合结构SRAM接口设计n nSRAM的引脚信号uu地址线A0-An-1,可访问2n个存储单元uu数据输入/输出线I/O,每个存储单元有M位数据uu控制线t t片选控制片选控制/ /CECE或或/ /CSCSt t写控制写控制/ /WEWEt t输出允许输出允许/ /OEOEn nSRAM有6116、6264、62256、62512等SRAM 6264的引脚图SRAM 6264的读时序SRAM 6264的写时序主机写外设读的内存映像接口电路ROM接口设计n nROM引 脚 与SRAM类似n n分为地址线、数据线和控制线n nROM为读操作,一般用于存储程序微机图形显示接口n n系统ROM BIOS提供了INT 10H的中断服务程序,其中有许多子功能。
但并没有包含适合任何图形的INT 10Hn n图形显示接口卡都带有ROM,ROM中固化了该图形显示卡的驱动程序,当主机启动时,这些程序自动连接于系统中n n在调用INT 10H时,实际上就是调用这些程序与图形显示卡硬件来打交道n n而ROM BIOS中的仅是用户和这些驱动程序的接口而已防病毒卡n n防病毒卡包含有存放病毒检测程序的ROMn n主机启动时可以将病毒检测程序接入程序中,从而在BIOS上建立一个监测和防护外壳n n其优先级高于磁盘中任何可执行程序和任何微机病毒接口卡固化程序的接入n nROM BIOS为接口板上的扩展ROM程序进入系统提供了简便的接口方法n n主机启动时,BIOS设置中断向量,并对扩展的ROM模块进行扫描n n接口卡上的ROM程序通过中断可以获得控制权n n寻找接口板上有效的扩展ROM,对C8000H ~E0000H以2K为单位进行扫描,寻找ROM块接口板的有效ROM块定义格式n n字节0:55Hn n字节1:AAHn n字节2:长度指示器 nuu用来表示ROM中以512个字节为一块的信息块的个数,即长度为 n×512uu为测试ROM模块的完整性,在被定义的ROM中,将每一个字节按模100H求和uu求和为0时,才认为该模块有效,校验结果放在该模块的最后一个字节中n n字节3:执行程序的远调用入口扩展ROM中的信息格式接口板ROM程序的组成n n第一部分是中断向量加载和一些初始化工作n n第二部分是有关的功能调用n n开机时,自动完成功能调用程序的入口地址加载和初始化接口板ROM的执行n n当ROM BIOS找到有效的ROM块时,对ROM的字节3作远调用n n接口板执行其加电初始化程序,最后执行返回指令n n控制权还给ROM BIOS,完成系统的启动新型存储器n nFIFO存储器n n闪速存储器n n双端口RAM等FIFO存储器n nFIFO有两个端口(输入口和输出口),并按先进先出的顺序来暂时存放数据n n写入FIFO的第一个字将是输出口被读出的第一个字n n输入口和输出口的工作彼此是独立的n n当FIFO存满数据的时候,它就会阻止继续写入数据n n当FIFO中所有的数据被读完时,它就会禁止继续读出数据AM7205A FIFO简介n n是一个8192×9位的双端口静态RAM阵列n nAM7205A按先进先出的次序写入或读出数据n n写和读操作可以独立地不同步地同时进行n n提供了状态标志信号来指示FIFO的状态n n读写地址指针在达到地址8191之后会自动溢出到地址0n nFIFO复位时,读和写地址指针初始化到地址0AM7205A FIFO方框图AM7205A引脚图闪速存储器n n具有可靠的非易失性、电擦除性以及低成本n n具有随机存取的特点n n具有的EPROM基本结构特性28F256A闪速存储器内部结构28F256A闪速存储器引脚图28F256A的主要电气特性n n快速电擦除:整片擦除时间典型值为1sn n快速脉冲编程算法:10μs标准字节编程n n编程电压:12V±5%n n高性能读操作:120ns最长访问时间n nCMOS低功耗:10mA正常工作电流;50μA等待电流n n闪速非易失工艺n n抗干扰特性三、双端口RAM IDT7130框图25IDT7130引脚图IDT7130主要电气特性n n高速存取速度:20/25/35/55/100nsn n低功耗:工作:550mW,等待:5mWn n可进行数据总线宽度扩展n n可完全异步操作n n单电压:+5V±10%n nTTL电平。