一种微处理器存储管理方法

文档序号:9274644阅读:417来源:国知局
一种微处理器存储管理方法
【技术领域】
[0001]本发明涉及一种微处理器存储管理方法。
【背景技术】
[0002]虚拟内存技术是对整个内存的抽象描述,可以理解成处理器为用户程序提供的虚拟地址的总和,相对于物理内存而言,它并不“真实的”存在,是因为现代操作系统都提供了一种内存管理的抽象,即虚拟内存(virtual memory)。进程使用虚拟内存中的地址,由操作系统协助相关硬件,把它“转换”成真正的物理地址。有了这样的抽象,一个进程就可以使用比真实物理地址大得多的地址空间,甚至多个进程可以使用相同的地址。
[0003]现实的计算机设备所拥有的主存是有限的,通过存储管理单元可以使进程拥有巨大逻辑地址。逻辑地址(logical address)指的是机器语言指令中,用来指定一个操作数或者是一条指令的地址。物理地址(physical address)用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一个从O字节一直到最大空量逐字节的编号的大数组,然后把这个数组叫做物理地址,但是事实上,这只是一个硬件提供给软件的抽象,内存的寻址方式并不是这样。所以,说它是“与地址总线相对应”更贴切一些,不过抛开对物理内存寻址方式的考虑,直接把物理地址与物理的内存--对应,也是可以接受的。
[0004]目前的CPU储存管理单元大多采用分页管理,或者分段管理,或者二者兼而有之。大部分CPU使用分页存储管理,程序使用的逻辑地址需要转换成物理地址,在逻辑地址到物理地址的转换中会花费大量的CPU时钟周期。

【发明内容】

[0005]本发明的目的在于克服现有技术的不足,提供一种新型的微处理器存储管理方法,加快逻辑地址到物理地址的转换,操作系统通过设置多任务保护开始地址寄存器与多任务保护结束地址寄存器,以防止用户程序的非法访问。
[0006]本发明的目的是通过以下技术方案来实现的:一种微处理器存储管理方法,页表属性如下:
所述微处理器的寄存器页长度为64位,高11位保留,中间40位为页帧号,低13位为页表属性项;
其中,第42-13位:页表索引在物理地址,即页帧号;
第12-1位:保留系统使用;
第O位:页存在位P ;
当页存在位P=O时,表示页不在内存中,留给操作系统使用,用于定位到磁盘上页面的位置,若访问P=O的页面,则引发〃缺页错误〃,由中断处理程序负责将磁盘上的页调入内存后,原进程才能继续运行;当页存在位P=I时,表示该页能够向物理地址转换;
在页表转换时需要用到的寄存器: 进程标识符寄存器:进程标识符由一个10位长的字段组成,由系统为每一个进程机械地分配;操作系统通过为每一个进程分配不同的进程标识符,存储管理单元在进行逻辑地址到物理地址转换时进程标识符第9位到O位在页目录寄存器所指示的页目录表中找到对应的页表项;
多任务保护开始地址寄存器:用于存放存储管理单元进行虚拟地址转换时最小的物理地址,多任务保护开始地址寄存器只能被核心程序访问和设置,非核心程序的访问和设置会使微处理器产生异常;
多任务保护结束地址寄存器:用于存放存储管理单元进行虚拟地址转换时最大的物理地址,多任务保护结束地址寄存器只能被核心程序访问和设置,非核心程序的访问和设置会使微处理器产生异常;
多任务保护使能寄存器:当该寄存器置位在地址转换时,存储管理单元会判断物理地址是不是在多任务保护开始地址寄存器与多任务保护结束地址寄存器范围内,当存储管理单元把虚拟地址向物理地址转换时,存储管理单元会检测物理地址是否在多任务保护开始地址寄存器与多任务保护结束地址寄存器范围内,否则产生页出界异常;
存储管理单元属性寄存器:该寄存器只能被程序读,而不能被更改,它反映的是微处理器使用的存储管理单元的版本号及功能数据;
页目录寄存器:用于存放页目录所在的物理地址,该寄存器控制着微处理器核心的O级缓存,该缓存存放着当前CPU在使用的页目录,其有一定数量的单位页面,并且该页面的内容能够被程序更改和访问,系统能够使用页面交换指令把需要的页面放到片上的缓存地址;
三级页表寄存器:用于存放三级页表所在的物理地址,该寄存器控制着微处理器核心的O级缓存,该缓存存放着当前CPU在使用的三级页表,其有一定数量的单位页面,并且该页面的内容能够被程序更改和访问,系统能够使用页面交换指令把需要的页面放到片上的缓存地址;
二级页表寄存器:用于存放二级页表所在的物理地址,该寄存器控制着微处理器核心的O级缓存,该缓存存放着当前CPU在使用的二级页表,其有一定数量的单位页面,并且该页面的内容能够被程序更改和访问,系统能够使用页面交换指令把需要的页面放到片上的缓存地址;
一级页表寄存器:用于存放一级页表所在的物理地址,该寄存器控制着微处理器核心的O级缓存,该缓存存放着当前CPU在使用的一级页表,其有一定数量的单位页面,并且该页面的内容能够被程序更改和访问,系统能够使用页面交换指令把需要的页面放到片上的缓存地址;
缓存索引存储单元:在微处理器核心每一级缓存的开始位置,设置一定数量的片上全相连映像与变换,能够进行全相连映像与变换并且该页面的内容能够被程序更改和访问,程序能够使用页面交换指令把需要的页面放到片上的缓存地址,然后使用片上存取指令将页面的值放到全相连查找单元对应项中,这样就能够使微处理器在虚拟地址转换时浪费更少的微处理器时钟周期,核心程序将地址转换经常用到的页目录和最近将要用的页表放到其中,能够使微处理器减少等待的时间;
缓存:缓存单元能够使用片上存取指令更改和访问,也能够使用页面交换指令把需要的页面放到片上的缓存地址或者主存中,操作系统把即将需要使用到的页面通过页面交换指令放到片上,或者将该页面使用缓存交换指令放到主存中;
逻辑地址转换成物理地址的过程:
(1)每当进程引用一个逻辑地址,存储管理单元就到缓存索引存储单元中去查找,由存储管理单元自动地先在〃快表〃中进行查表,如果找到则变换该片上缓存地址,如果没有找到则执行逻辑地址转换成物理地址的操作;
(2)在分页机制下,每一个活动的进程,因为都使用其独立的逻辑地址,那么需要将它的页目录地址放到页目录寄存器中,然后建立起页目录表,需将该页目录表放到页目录缓存索引存储单元中;
(3)根据进程标识符第9位到O位在页目录寄存器所指示的页目录表中找到对应的页表项,如果页表项的第O位为O,表示该页表项无效,微处理器发出页不存在异常,由操作系统来填充该项,然后重入指令,微处理器继续转换;如果该页表项的第O位为1,则把找到的页表项高32位作为页帧号,找到三级页表地址;
(4)将找到的三级页表地址与三级页表寄存器比较,如果相
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1