硬件化的进程内存管理核的方法

文档序号:6460499阅读:179来源:国知局
专利名称:硬件化的进程内存管理核的方法
技术领域
本发明涉及硬件化的操作系统设计,更具体的说,是涉及一种硬件化的进 程内存管理核的方法。
背景技术
随着计算机应用在人们生活中普及,依靠计算机进行自动化的管理,控制, 计算和服务处理变得越来越重要。特别在金融,工业,控制等领域,除了需要 保证计算机可靠与安全,对处理速度,响应时间高效性的需求也显得非常重要。同时由于互联网的飞速发展,大型服务器和某些专门用于实时任务处理的 机器需要服务的响应和请求的处理有非常高的速度。但是,软件的使用限制了 速度的进一步提升。作为软件管理者的操作系统也实际上成为了速度提升的瓶颈。因此出现了许多针对原有操作系统的改进版本,Linux2.4版本里时钟的最 小粒度为IO毫秒,而Linux2.6将时钟粒度降低到1毫秒,但这还远达不到实 时系统的要求。RTLimix通过将任务分解成实时部分和非实时部分,在原有操 作系统核的基础上进一步独立出实时核来专门处理和分发实时任务,提高了响 应速度,几乎可以达到了十几个微秒级的调度粒度。但是, 一味地提高时钟粒 度会使调度的开销增大,也就是说当时钟粒度小到某个极限时,系统的性能不 会因为时钟频率的增加而提高了。另外,软件技术的改进受到的硬件本身的制约,只有能够通过硬件本身的 改进来进行加速,才能取得好的效果。比如,在Intel公司每次对处理器的改进 上,都会加入一些新的指令针对特定的应用程序进行加速,比如在SSE4指令 集中过提供了一条新的计算CRC(Cyclic Redundancy Check)指令,因此数据的 集成检查可以更加迅速的完成。而且,软件存在于内存中,容易被恶意的代码 进行篡改,尽管安全防护技术层出不穷,但相比于实现同样功能的硬件单元, 软件的安全性就略显不足。因此,将操作系统中与调度性能直接相关的进程内存管理,包括页表创建,切换,页面映射等功能设计成硬件,可以消除软件处理时的瓶颈,同时能够进 一步减少由于时钟粒度的细化而带来的额外调度开销,提高整个系统的工作效 率。发明内容本发明的主要目的在于克服现有技术中的不足,提供一种涉及硬件化的进 程内存管理核的方法。为了解决上述技术问题,本发明是通过以下技术方案实现的。 硬件化的进程内存管理核的方法,包括以下步骤(1) 进程页表的创建读入要创建页表的进程的进程号PID,在进程号与页表基地址转换表中找 到进程号所对应的表项,并将进程页表的基地址,即PIDf 1024写入该表项中;(2) 进程虚拟地址到硬件地址的映射根据输入的进程号PID,计算出该进程的页表基地址,利用输入的虚拟地 址的高10位作为索引,找到页表中该虚拟地址对应的项,检查表项中的合法位 是否置位,如果己经置位则操作失败,将用于指示操作是否成功的寄存器SUC赋值为O,表示操作失败;否则将物理地址的高10位填入该表项中并将表项中 的合法位置位,该合法位标识了该虚拟页已经被映射使用;(3) 进程虚拟地址到硬件地址的取消映射根据输入的进程号PID,计算出该进程的页表基地址,利用输入的虚拟地 址的高10位作为索引,找到页表中该虚拟地址对应的项,将表项中的合法位清 除,表示该虚拟页已经被释放;(4) 进程页表的切换首先将切换前运行的进程PID存储到用来记录上一个运行进程PID号寄存 器last_pid中,然后将输入的进程PID号赋给标志当前运行进程PID的寄存器 curr_pid;(5) 进程页表的删除读入要创建页表的进程的进程号PID,在进程号与页表基地址转换表中找到进程号所对应的表项,并将该表项清空,表明该进程的页表映射已经完全失效,同时要将实际页表中所有项的合法位清空;(6) 进程虚拟地址到物理地址的转换:将输入虚拟地址的前IO位作为索引,首先在TLB中进行查找,如果査找 到则直接返回物理地址;否则以currjid计算出当前进程页表的基地址,在该 页表中选择出对应的表项;然后检查该表项的合法位,如果该位为零则表明无 此虚拟地址,程序访问错误,置suc为0;否则将表项中存储的物理地址高10 位读出到PA寄存器中和TLB的对应项中;TLB的替换策略采用先进先出的替 换策略。作为一种改进,进程页表创建、删除、切换、虚拟地址映射、反映射以及 虚拟地址到物理地址的转换由硬件来完成,可降低进程切换时的开销,提高进 程切换时效率。与现有技术相比,本发明的有益效果是(1) 高效性。本发明实现了在硬件化的进程内存管理核的方法,将内存管 理中的进程页表创建,删除,切换,虚拟地址映射,反映射以及虚拟地址到物 理地址的转换由硬件来完成,降低了进程切换时的开销,提高了进程切换时效 率。(2) 安全性。本发明中的硬件化的进程内存管理核的方法,将原本由软件 代码来实现的功能交付给硬件单元来完成,消除了操作系统的某一部分功能被 恶意篡改的可能性,保证了处理的完全正确性和可靠性。


图1是本发明的总体结构框架图。
具体实施方式
结合附图,通过具体实施例对本发明进一步说明。 首先解释一下用到的名词和一些技术设计所用到的前提 PID:进程号,4bit, 0号不用,因此最多可以表示15个进程PID一TO—PCB:进程号与页表基地址转换表SUC:输出信号中每一次操作的返回值,成功为l,失败为OVA:输入信号中的逻辑地址, 一共有22位,页面大小4Kbytes PA:输出信号中的物理地址, 一共有22位,页面大小4Kbytes last』id:上一个运行的或即将被切换走的进程号 CUrr_pid:当前运行的或即将运行的进程号TLB: Translation Look-aside Buffer,用来力口速页表查找一种硬件化的进程内存管理核的方法,包括以下步骤(1) 进程页表的创建 输入进程号PID输出SUC寄存器,操作成功返回l,失败返回O。 读入要创建页表的进程的进程号PID,在PID_TO_PCB表(进程号与页表基地址转换表)中找到进程号所对应的表项,并将进程页表的基地址,即PID * 1024写入该表项中。这里采用一级页表映射,每个页表的大小为4K Bytes,因此该页表可映射最多达8M Bytes的内存空间。(2) 进程虚拟地址到硬件地址的映射输入进程号PID,要映射的虚拟地址,要映射的物理地址输出SUC寄存器,操作成功返回l,失败返回O。根据输入的进程号PID,计算出该进程的页表基地址,利用输入的虚 拟地址的高10位作为索引,找到页表中该虚拟地址对应的项,检査表项中的合 法位是否置位,如果已经置位则操作失败,将suc赋值为0。否则将物理地址 的高10位填入该表项中并将表项中的合法位置位。该合法位标识了该虚拟页已 经被映射使用。(3) 进程虚拟地址到硬件地址的取消映射 输入进程号PID,要取消映射的虚拟地址 输出SUC寄存器,操作成功返回l,失败返回O。根据输入的进程号PID,计算出该进程的页表基地址,利用输入的虚 拟地址的高10位作为索引,找到页表中该虚拟地址对应的项,将表项中的合法位清除,表示该虚拟页已经被释放。(4) 进程页表的切换输入即将运行进程号PID输出SUC寄存器,操作成功返回l,失败返回O。 首先将切换前运行的进程PID存储到用来记录上一个运行进程PID 号寄存器last_pid中,然后将输入的进程PID号赋给标志当前运行进程PID的 寄存器Curr_pid。由于在进行虚拟地址到物理地址的转换时,页表的选择是根 据Curr_pid来进行计算饿,因此修改了 curr_pid的值也意味着页表的成功切换。(5) 进程页表的删除 输入进程号PID输出无读入要创建页表的进程的进程号PID,在进程号与页表基地址转换表中找 到进程号所对应的表项,并将该表项清空,表明该进程的页表映射己经完全失 效,同时要将实际页表中所有项的合法位清空。 (6)进程虚拟地址到物理地址的转换 输入虚拟地址VA输出物理地址PA, SUC寄存器,操作成功返回l,失败返回0。 将输入虚拟地址的前10位作为索引,首先在TLB中进行査找,如果查找 到则直接返回物理地址。否则以curr一j3id计算出当前进程页表的基地址,在该 页表中选择出对应的表项。然后检査该表项的合法位,如果该位为零则表明无 此虚拟地址,程序访问错误,置suc为0。否则将表项中存储的物理地址高10 位读出到PA寄存器中和TLB的对应项中。TLB的替换策略采用先进先出的替 换策略。本发明所述的是一种硬件化的进程内存管理核的方法,提出了操作系统软 件功能硬件化的思想。主要方法是将内存管理中进程页表创建,删除,切换, 虚拟地址映射,反映射以及虚拟地址到物理地址的转换的功能交付给硬件来完 成,降低了调度时进程切换时的开销,提高了进程切换时效率。本发明的思想 可以利用在操作系统的其他部件中。最后,还需要注意的是,以上列举的仅是本发明的具体实施例子。显然, 本发明不限于以上实施例子,还可以有许多变形。本领域的普通技术人员能从 本发明公开的内容直接导出或联想到的所有变形,均应认为是本发明的保护范 围。
权利要求
1、硬件化的进程内存管理核的方法,其特征在于,包括以下步骤(1)进程页表的创建读入要创建页表的进程的进程号PID,在进程号与页表基地址转换表中找到进程号所对应的表项,并将进程页表的基地址,即PID*1024写入该表项中;(2)进程虚拟地址到硬件地址的映射根据输入的进程号PID,计算出该进程的页表基地址,利用输入的虚拟地址的高10位作为索引,找到页表中该虚拟地址对应的项,检查表项中的合法位是否置位,如果已经置位则操作失败,将用于指示操作是否成功的寄存器suc赋值为0,表示操作失败;否则将物理地址的高10位填入该表项中并将表项中的合法位置位,该合法位标识了该虚拟页已经被映射使用;(3)进程虚拟地址到硬件地址的取消映射根据输入的进程号PID,计算出该进程的页表基地址,利用输入的虚拟地址的高10位作为索引,找到页表中该虚拟地址对应的项,将表项中的合法位清除,表示该虚拟页已经被释放;(4)进程页表的切换首先将切换前运行的进程PID存储到用来记录上一个运行进程PID号寄存器last_pid中,然后将输入的进程PID号赋给标志当前运行进程PID的寄存器curr_pid;(5)进程页表的删除读入要创建页表的进程的进程号PID,在进程号与页表基地址转换表中找到进程号所对应的表项,并将该表项清空,表明该进程的页表映射已经完全失效,同时要将实际页表中所有项的合法位清空;(6)进程虚拟地址到物理地址的转换将输入虚拟地址的前10位作为索引,首先在TLB中进行查找,如果查找到则直接返回物理地址;否则以curr_pid计算出当前进程页表的基地址,在该页表中选择出对应的表项;然后检查该表项的合法位,如果该位为零则表明无此虚拟地址,程序访问错误,置suc为0;否则将表项中存储的物理地址高10位读出到PA寄存器中和TLB的对应项中;TLB的替换策略采用先进先出的替换策略。
2、 根据权利要求l所述的硬件化的进程内存管理核的方法,其特征在于,进程页表创建、删除、切换、虚拟地址映射、反映射以及虚拟地址到物理地址 的转换由硬件来完成。全文摘要
本发明涉及硬件化的操作系统设计,旨在提供一种硬件化的进程内存管理核的方法。该方法包括以下步骤(1)进程页表的创建;(2)进程虚拟地址到硬件地址的映射;(3)进程虚拟地址到硬件地址的取消映射;(4)进程页表的切换;(5)进程页表的删除;(6)进程虚拟地址到物理地址的转换。本发明所述的硬件化的进程内存管理核的方法,提出了操作系统软件功能硬件化的思想。主要方法是将内存管理中进程页表创建,删除,切换,虚拟地址映射,反映射以及虚拟地址到物理地址的转换的功能交付给硬件来完成,降低了调度时进程切换时的开销,提高了进程切换时效率。本发明的思想还可以利用在操作系统的其他部件中。
文档编号G06F9/46GK101315602SQ20081006234
公开日2008年12月3日 申请日期2008年5月9日 优先权日2008年5月9日
发明者严力科, 冯德贵, 楠 张, 罡 王, 章铁飞, 斌 谢, 剑 陈, 度 陈, 陈天洲, 项凌翔 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1