用于MIPS系统的代码段保护方法和装置制造方法及图纸

技术编号:2845059 阅读:197 留言:0更新日期:2012-04-11 18:40
一种用于MIPS系统的代码段保护方法,其特征在于,包括以下步骤:    步骤a,在编译生成主机软件时,使其代码段和数据段的地址都落在可通过所述MIPS系统中的内存管理单元转换的区域内;以及    步骤b,在启动主机软件时,使所述代码段和数据段在主机软件中的程序地址空间落在所述区域内。

【技术实现步骤摘要】

本专利技术涉及通信领域,更具体而言,涉及一种用于MIPS系统的代码段保护方法和装置
技术介绍
MIPS(Microprocessor without Interlocked Pipe Stages,无互锁流水线级的微处理机)是高效的RISC(Reduced Instruction SetComputer,精简指令集计算机)体系结构中最优雅的一种体系结构,它很好地利用了流水线技术。在MIPS 32和MIPS 64中,程序地址空间最常用的有以下4个区域,分别具有不同的属性kuseg地址空间为0x00000000~0x7FFFFFFF(低端2GB),这些是用户模式下可用的地址。在带有MMU(Memory Manage Unit,内存管理单元)的机器里,这些地址都将由MMU加以转换;kseg0地址空间为0x80000000~0x9FFFFFFF(512MB),一般情况下都是通过cache对这段区域内的地址进行访问;kseg1地址空间为0xA0000000~0xBFFFFFFF(512MB),kseg1是不通过Cache存取的(uncached),kseg1是唯一的在系统重启时能正常工作的地址空间;kseg2地址空间为0xC0000000~0xFFFFFFFF(1GB),这段地址空间只能在核心态下使用并且要经过MMU的转换。在一个MIPS系统下,目前常使用的方案中将BIOS(Basic InputOutput System,基本输入输出系统)软件和主机软件的程序空间地址都设置在kseg0区域内,采用该方案的计算机系统的启动过程的顺序如下1、单板上电;2、启动BIOS,开始将BIOS的程序地址空间加载在kseg1区域,初始化MMU后,将BIOS程序空间切换为kseg0;3、在BIOS程序中,将主机软件拷贝到内存(kseg0的地址空间)中;4、程序指针跳转到主机软件在内存中的起始地址(kseg0的地址空间)中开始执行;5、主机软件开始运行。在上述技术方案的实现过程中,由于主机软件的程序地址空间在kseg0区域,所以只需要把最高位清零,这些地址就被转换为物理地址,然后把它们连续地映射到物理内存中512MB大小的低字段(0x00000000~0x1FFFFFFF)内,这种转换是一种cache方式访问的从程序地址(也叫虚拟地址)到物理地址的直接映射,这样该地址空间一直都是可读写的。在实际应用中,系统启动后代码段加到内存中后一般不会再变化,但由于某种原因比如软件缺陷导致对代码段进行异常改写,则将使得系统发生异常,当发生这种代码段被改写时又很难定位出代码段被改写的真正原因。所以在采用该技术方案的MIPS系统的主机软件实际运行过程中,常常由于某种原因比如软件的缺陷导致对程序代码段进行了异常改写,使得系统发生异常比如复位或者崩溃,并且对于这种代码段被改写真正原因进行定位。从上面的描述可以看出,相关技术无法做到对代码段进行保护,难以实现这种代码段保护的需求。因此,人们需要一种用于MIPS系统保护代码段的解决方案,能够解决上述相关技术中的问题。
技术实现思路
本专利技术提供了用于MIPS系统的代码段保护方法和装置,用于解决上述的MIPS系统无法保护代码段的问题。根据本专利技术的一个方面,提供了一种用于MIPS系统的代码段保护方法,包括以下步骤步骤a,在编译生成主机软件时,使其代码段和数据段的地址都落在可通过MIPS系统中的内存管理单元转换的区域内;以及步骤b,在启动主机软件时,使代码段和数据段在主机软件中的程序地址空间落在该区域内。在上述的代码段保护方法中,步骤b包括以下步骤步骤b1,将代码段的程序地址空间映射到该区域内,以建立代码段空间,并设置为不可写;以及步骤b2,将数据段的程序地址空间映射到该区域内,以建立数据段空间,并设置为可写,其中,使代码段空间与数据段空间不重叠。在上述的代码段保护方法中,步骤b1还包括以下步骤利用陷阱服务操作来查询改写代码段空间的写操作的详细信息。在上述的代码段保护方法中,步骤b1和b2在MIPS系统的BIOS启动阶段执行。在上述的代码段保护方法中,步骤b1包括以下步骤建立代码段的程序地址空间的翻译后援缓冲器表项,根据代码段的大小,将代码段的程序地址空间映射到该区域内从0起始的空间内,以建立代码段空间;以及将代码段空间所对应的翻译后援缓冲器表项中EntryLo0/1寄存器的BIT2的Dirty位设置为表示代码段空间为不可写。在上述的代码段保护方法中,步骤b2包括以下步骤建立数据段的程序地址空间的翻译后援缓冲器表项,根据数据段的大小,将数据段的程序地址空间映射到该区域内从代码段空间结束地址起始的空间内,以建立数据段空间;以及将翻译后援缓冲器表项中EntryLo0/1寄存器的BIT2的Dirty位设置为表示数据段空间为可写。在上述的代码段保护方法中,区域为不是kseg0的地址段,其中包括kuseg、kseg1、kseg2。根据本专利技术的另一方面,提供了一种用于MIPS系统的代码段保护装置,包括编译模块,用于在编译生成主机软件时,使其代码段和数据段的地址都落在可通过MIPS系统中的内存管理单元转换的区域内;以及启动模块,用于在启动主机软件时,使代码段和数据段在主机软件中的程序地址空间落在该区域内。在上述的代码段保护装置中,启动模块包括代码段空间模块,用于将代码段的程序地址空间映射到该区域内,以建立代码段空间,并设置为不可写;以及数据段空间模块,用于将数据段的程序地址空间映射到该区域内,以建立数据段空间,并设置为可写,其中,使代码段空间与数据段空间不重叠。在上述的代码段保护装置中,代码段空间模块还包括陷阱模块,用于通过陷阱服务操作来查询改写代码段空间的写操作的详细信息。在上述的代码段保护装置中,代码段空间模块和其他段空间模块在MIPS系统的BIOS启动阶段执行。在上述的代码段保护装置中,代码段空间模块包括代码段空间建立模块,用于建立代码段的程序地址空间的翻译后援缓冲器表项,根据代码段的大小,将代码段的程序地址空间映射到该区域内从0起始的空间内,以建立代码段空间;以及不可写设置模块,用于将代码段空间所对应的翻译后援缓冲器表项中EntryLo0/1寄存器的BIT2的Dirty位设置为表示代码段空间为不可写。在上述的代码段保护装置中,数据段空间模块包括数据段空间建立模块,用于建立数据段的程序地址空间的翻译后援缓冲器表项,根据数据段的大小,将数据段的程序地址空间映射到该区域内从代码段空间结束地址起始的空间内,以建立数据段空间;以及可写设置模块,用于将翻译后援缓冲器表项中EntryLo0/1寄存器的BIT2的Dirty位设置为表示数据段空间为可写。在上述的代码段保护装置中,区域为不是kseg0的地址段,其中包括kuseg、kseg1、kseg2。通过上述技术方案,本专利技术实现了如下技术效果可以实现在支持MMU的MIPS系统中对代码段的保护,避免代码段的被改写。并且,根据本专利技术的有选方案,当有任务或者进程等试图修改代码段时,能够捕获异常并且捕获出要改写该代码段的任务或者进程的详细信息,从而增强系统的健壮性以及可维护性。本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于MIPS系统的代码段保护方法,其特征在于,包括以下步骤步骤a,在编译生成主机软件时,使其代码段和数据段的地址都落在可通过所述MIPS系统中的内存管理单元转换的区域内;以及步骤b,在启动主机软件时,使所述代码段和数据段在主机软件中的程序地址空间落在所述区域内。2.根据权利要求1所述的代码段保护方法,其特征在于,所述步骤b包括以下步骤步骤b1,将所述代码段的程序地址空间映射到所述区域内,以建立代码段空间,并设置为不可写;以及步骤b2,将所述数据段的程序地址空间映射到所述区域内,以建立数据段空间,并设置为可写,其中,使所述代码段空间与所述数据段空间不重叠。3.根据权利要求2所述的代码段保护方法,其特征在于,所述步骤b1还包括以下步骤利用陷阱服务操作来查询改写所述代码段空间的写操作的详细信息。4.根据权利要求2所述的代码段保护方法,其特征在于,所述步骤b1和b2在所述MIPS系统的BIOS启动阶段执行。5.根据权利要求2所述的代码段保护方法,其特征在于,所述步骤b1包括以下步骤建立所述代码段的程序地址空间的翻译后援缓冲器表项,根据所述代码段的大小,将所述代码段的程序地址空间映射到所述区域内从0起始的空间内,以建立所述代码段空间;以及将所述代码段空间所对应的翻译后援缓冲器表项中EntryLo0/1寄存器的BIT2的Dirty位设置为表示所述代码段空间为不可写。6.根据权利要求2所述的代码段保护方法,其特征在于,所述步骤b2包括以下步骤建立所述数据段的程序地址空间的翻译后援缓冲器表项,根据所述数据段的大小,将所述数据段的程序地址空间映射到所述区域内从所述代码段空间结束地址起始的空间内,以建立所述数据段空间;以及将所述翻译后援缓冲器表项中EntryLo0/1寄存器的BIT2的Dirty位设置为表示所述数据段空间为可写。7.根据上述权利要求1至6中任一项所述的代码段保护方法,其特征在于,所述区域为不是kseg0的地址段,其中包括kuseg、kseg1、kseg2。8.一种用于MIPS系统的代码段保护装置,其特征在于,包括编译模块,用...

【专利技术属性】
技术研发人员:肖圣龙
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利