单级页表自身内存的保护方法及装置的制作方法

文档序号:6461931阅读:244来源:国知局
专利名称:单级页表自身内存的保护方法及装置的制作方法
技术领域
本发明涉及计算机和通信领域,更具体地涉及一种单级页表自 身内存的保护方法及装置。
背景技术
在嵌入式系统中,存在多种类型的存储器件,为方便对多种存 储器件的地址空间或对同 一存储器件的不同地址空间进行管理,或者保护某段特殊内存不被修改,就需引入存储器管理单元(Memory Management Unit,简称MMU )对存4渚器件进4亍管理,比如PowerPC 处理器就可启用MMU来管理存4渚系统。MMU可以通过I殳式管理、页式管理、或者,史页式管理来实J见。 其中,页式管理的形式又可分为单级页表、二级页表和多级页表等, 例如PowerPC上的MMU就可使用单级页表。因为MMU通过页表来保护内存、实现虚拟地址到物理地址的 映射,所以若MMU的页表自身被非法改写,造成的后果比较严重。 例如,单板复位或者系统紊乱致使通讯设备打不通电话,且这样的 问题难以定位。因此,有时需要将MMU的页表自身内存保护起来 (将页表所占用的内存置为只读),但在保护的过程中,页表内存对 应的页表又在自身内存之中,较难实现页表内存的完全保护。发明内容鉴于以上所述的一个或多个问题,本发明提供了一种单级页表 自身内存的保护方法及装置。根据本发明实施例的单级页表自身内存的保护方法(其中,单级页表中的连续页表项所占的内存区域连续),包括以下步骤查询 单级页表所在的内存区域SO、单级页表中的第一层页表所在的内存区域Sl、单级页表中的第二层页表所在的内存区域S2.....单级页表中的第n- 1层页表所在的内存区域Sn- 1、以及单级页表中的 第n层页表所在的内存区域Sn,其中,单级页表中的第n层页表的 页表项位于单级页表中的第n层页表中,将单级页表称为第O层页 表,将第O层页表所占用内存对应的页表称为第1层页表,将第1 层页表所占用内存对应的页表称为第2层页表,……,将第n-1 层页表所占用内存对应的页表称为第n层页表,n>l;以及依次将 内存区域SO中内存区域Sl以外的部分、内存区域Sl中内存区域 S2以夕卜的部分、…、内存区i或Sn-1中内存区i或Sn以夕卜的部分、 以及内存区i或SiW呆护起来。其中,先查询单级页表中的第k层页表所在的内存区域Sk,然 后将单级页表中的第k-l层页表所在的内存区域Sk-1中内存区 域Sk以外的部分保护起来,再查询单级页表中的第k + 1层页表所 在的内存区i或Sk十1, 0<k<n。其中,通过一寻内存区i或Sk- 1中内 存区域Sk以外的部分i殳置为只读状态来实现对其的保护。根据本发明实施例的单级页表自身内存的保护装置(其中,单 级页表中的连续页表项所占的内存区域连续),包括查询单元,用 于查询单级页表所在的内存区域SO、单级页表中的第一层页表所在的内存区域S1、单级页表中的第二层页表所在的内存区域S2.....单级页表中的第n- 1层页表所在的内存区域Sn- 1、以及单级页表中的第n层页表所在的内存区域Sn,其中,单级页表中的第n层页 表的页表项位于单级页表中的第n层页表中,单级页表称为第O层 页表,第O层页表所占用内存对应的页表称为第1层页表,第l层 页表所占用内存对应的页表称为第2层页表,......第n- 1层页表所占用内存对应的页表称为第n层页表,n>l;以及^f呆护单元,用于 将内存区域SO中内存区域Sl以外的部分、内存区域Sl中内存区 i或S2以外的部分、…、内存区i或Sn- 1中内存区i或Sn以外的部分、 以及内存区i或Sn依次^呆护起来。其中,查询单元在保护单元将单级页表中的第k - 1层页表所在 的内存区域Sk- 1中单级页表中的第k层页表所在的内存区域Sk 以外的部分保护起来后,查询单级页表中的第k+ 1层页表所在的内 存区i或Sk+l, 0<k<n。其中,^f呆护单元通过^l寻内存区i或Sk—1中 内存区域Sk以外的部分设置为只读状态来实现对其的保护。通过本发明,可以将MMU的单级页表内存自身完全保护起来。


此处所说明的附图用来提供对本发明的进一步理解,构成本申 请的一部分,本发明的示意性实施例及其i兌明用于解释本发明,并 不构成对本发明的不当限定。在附图中具体实施方式
本发明的目的在于,提供一种可以将MMU的单级页表内存自 身完全保护起来的方法及装置。其中,本发明适用的前提包括l.系统中使用单级页表;2.对于 单级页表所占的虚拟地址区域,连续的虚拟地址对应的页表项也是 连续的。区域之内,不妨设单级页表所在的内存区域为SO,单级页表的内存 对应的所有页表项占用的内存区域为Sl,根据前提2, Sl这段区域 肯定是连续的,且能推出Sl这段区域对应的页表项肯定会处在Sl 区域中。在保护整个单级页表自身内存的过程中,可能会操作处于 Sl区域的页表项,故须先保留Sl区域的可写属性,将S0区域中除 Sl以外的内存区域先置为只读,4妄下来再考虑S1区域的处理。骤:步骤A,查找单级页表的内存区域SO的页表所在的内存区域Sl。步骤B,将S0中除S1以外的内存区域保护起来(置为只读)。步骤C,查找Sl区域的页表所在的内存区域S2,根据前提2 可以推出,区域S2是连续的,且S2区域对应的页表项必在S2区 域中。步骤D,将S1区域中除S2以外的内存区域保护起来(如此进行下去,直到最后只剩一页为止,4艮据前4是2,最后一 页的页表项会在本页中,将该页保护后即实现了所有页表内存的保 护。下面结合附图对实现页表内存自身完全保护的方法进行说明。如图l所示,虚拟地址空间为从O到最大虚拟地址。4艮据本发步骤1,查询整个单级页表所在内存区域S0及其起始地址AO和结束地址BO(这些值应该在系统初始化或者使能MMU的时候已 经确定)。步骤2,查询SO区域的页表所对应的内存区域SI及其起始地 址Al和结束地址Bl。步艰《3,将A0 A1、 B1 B0之间的内存区域置为只读,这两部 分内存区域的只读才喿作将会写A1 B1的页表。步骤4,查询Sl区域的页表所对应的内存区域S2及其起始地 址A2和结束;也址B2。步骤5,将A1 A2、 B2 B1之间的内存区域置为只读,这两部 分内存区域的只读才喿作将会写A2 B2的页表。步骤2i,查询S(i-l)区域的页表对应的内存区域Si及其起始地 址Ai和结束;也址Bi,其中(i>3)。步骤2i+l,将A(i-l) Ai、 Bi B(i-l)之间的区域置为只读,这两 部分内存区域的只读操作将会写Ai Bi的页表,其中(i>3)。若上述才乘作步骤中的Ai Bi之间的页表不大于单个页面(如图 l中的Sn区域),则停止上述过程,进入最后一步。最后一步,将剩余的单个页面置为只读,处理结束。用于实现上述方法的单级页表自身内存保护装置包括查询单 元,用于查询单级页表所在的内存区域SO、单级页表中的第一层页 表所在的内存区域Sl、单级页表中的第二层页表所在的内存区域S2.....单级页表中的第n-1层页表所在的内存区域Sn-1、以及单级页表中的第n层页表所在的内存区域Sn,其中,单级页表中的 第n层页表的页表项位于单级页表中的第n层页表中,所述单级页 表称为第O层页表,第O层页表所占用内存对应的页表称为第1层 页表,第1层页表所占用内存对应的页表称为第2层页表,......第n-1层页表所占用内存对应的页表称为第n层页表,n>l;以及保 护单元,用于将内存区域SO中内存区域S1以外的部分、内存区域Sl中内存区域S2以外的部分.....内存区域Sn- 1中内存区域Sn以外的部分、以及内存区域Sn依次保护起来。其中,查询单元在保护单元将单级页表中的第k - 1层页表所在 的内存区域Sk- 1中单级页表中的第k层页表所在的内存区域Sk 以外的部分保护起来后,查询单级页表中的第k + 1层页表所在的内 存区i或Sk+l, 0<k<n。其中,{呆护单元通过^1夸内存区;或81^-1中 内存区域Sk以外的部分设置为只读状态来实现对其的保护。以上所述仅为本发明的实施例而已,并不用于限制本发明,对 于本4页:威的才支术人员来i兌,本发明可以有各种更改和变4匕。凡在本 发明的精神和原则之内,所作的任何修改、等同替换、改进等,均 应包含在本发明的4又利要求范围之内。
权利要求
1. 一种单级页表自身内存的保护方法,其中,所述单级页表中的连续页表项所占的内存区域连续,其特征在于,所述方法包括查询所述单级页表中的第0层页表所在的内存区域S0、所述单级页表中的第1层页表所在的内存区域S1、所述单级页表中的第2层页表所在的内存区域S2、...、所述单级页表中的第n-1层页表所在的内存区域Sn-1、以及所述单级页表中的第n层页表所在的内存区域Sn,其中,所述单级页表中的第n层页表的页表项位于所述单级页表中的第n层页表中,所述单级页表称为第0层页表,第0层页表所占用内存对应的页表称为所述第1层页表,所述第1层页表所占用内存对应的页表称为所述第2层页表,......,所述第n-1层页表所占用内存对应的页表称为所述第n层页表,n≥1;依次将所述内存区域S0中所述内存区域S1以外的部分、所述内存区域S1中所述内存区域S2以外的部分、...、所述内存区域Sn-1中所述内存区域Sn以外的部分、以及所述内存区域Sn保护起来。
2. 根据权利要求1所述的单级页表自身内存的保护方法,其特征 在于,先查询所述单级页表中的第k层页表所在的内存区域 Sk,然后将所述单级页表中的第k-l层页表所在的内存区域 Sk-l中所述内存区域Sk以外的部分保护起来,再查询所述 单级页表中的第k + 1层页表所在的内存区域81^+ 1,0〈k《n。
3. 根据权利要求2所述的单级页表自身内存的保护方法,其特征 在于,通过将所述内存区域Sk-1中所述内存区域Sk以外的 部分i殳置为只读状态来实现对其的保护。
4. 一种单级页表自身内存的保护装置,其中,所述单级页表中的 连续页表项所占的内存区域连续,其特征在于,所述装置包括查询单元,用于查询所述单级页表所在的内存区域SO、 所述单级页表中的第一层页表所在的内存区域Sl、所述单级页表中的第二层页表所在的内存区域S2.....所述单级页表中的第n - 1层页表所在的内存区域Sn- 1、以及所述单级页 表中的第n层页表所在的内存区域Sn,其中,所述单级页表 中的第n层页表的页表项位于所述单级页表中的第n层页表 中,所述单级页表称为第O层页表,所述第O层页表所占用内 存对应的页表称为所述第1层页表,所述第1层页表所占用内 存对应的页表称为所述第2层页表,……,所述第n-l层页 表所占用内存对应的页表称为所述第n层页表,n>l;以及4呆护单元,用于将所述内存区i或SO中所述内存区i或Sl 以外的部分、所述内存区域Sl中所述内存区域S2以外的部 分、…、所述内存区i或Sn— 1中所述内存区i或Sn以外的部分、 以及所述内存区域Sn依次保护起来。
5. 根据权利要求4所述的单级页表自身内存的保护装置,其特征 在于,所述查询单元在所述保护单元将所述单级页表中的第k -1层页表所在的内存区域Sk- 1中所述单级页表中的第k层 页表所在的内存区域Sk以外的部分保护起来后,查询所述单 级页表中的第k+ 1层页表所在的内存区i或Sk十1, 0<k《n。
6. 根据权利要求5所述的单级页表自身内存的保护装置,其特征 在于,所述保护单元通过将所述内存区域Sk- 1中所述内存区 域Sk以外的部分i殳置为只读状态来实现对其的保护。
全文摘要
本发明公开了一种单级页表自身内存的保护方法,包括以下步骤查询单级页表所在的内存区域S0、单级页表中的第一层页表所在的内存区域S1、单级页表中的第二层页表所在的内存区域S2、...、单级页表中的第n-1层页表所在的内存区域Sn-1、以及单级页表中的第n层页表所在的内存区域Sn,其中,单级页表中的第n层页表的页表项位于单级页表中的第n层页表中,n≥1;以及分别将内存区域S0中内存区域S1以外的部分、内存区域S1中内存区域S2以外的部分、...、内存区域Sn-1中内存区域Sn以外的部分、以及内存区域Sn保护起来。其中,单级页表中的连续页表项所占的内存区域连续。
文档编号G06F12/08GK101266579SQ200810088270
公开日2008年9月17日 申请日期2008年4月29日 优先权日2008年4月29日
发明者傅仁武, 梁金祥 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1