一种信息处理方法及电子设备与流程

文档序号:11829541阅读:180来源:国知局
一种信息处理方法及电子设备与流程

本发明涉及电子技术领域,特别涉及一种信息处理方法及电子设备。



背景技术:

信息技术和信息产业正在改变传统的生产、经营和生活方式,信息已成为社会发展的重要战略资源。电子商务、电子政务、电子税务、电子银行、电子海关、电子证券、网上交易、网上选举等网络信息系统将在政治、军事、金融、商业、交通等方面发挥越来越大的作用,社会对网络信息系统的以来也日益增强。

在计算机应用日益广泛和深入的同时,网络的脆弱性和复杂性增加了威胁和攻击的可能性,计算机网络的安全问题日益复杂和突出。

在现有技术中,为了维护计算机系统的安全,其中,对缓冲区溢出的安全防范常采用在某些处理器(CPU)内部增加某些硬件机制,进而对内存地址段加以保护,防止在数据段执行指令等造成的缓冲区溢出攻击。此外,通过对CPU内部自带的地址空间进行特权划分,进而实现对用户程序访问地址进行分级限制。

本申请发明人在发明本申请实施例中技术方案的过程中,发现上述现有技术至少存在如下技术问题:

现有技术中,对计算机系统的安全保护主要用于桌面领域。在移动领域中,一方面,当用CPU IP做SOC集成时,多数已经开发完毕,很难再改变集成在CPU里面的安全方案,另一方面,主要是针对处理器内部的虚拟地址进行的保护,比如,在对处理器自带的地址分级时,现有技术中存在将不同级别的虚拟地址映射到同一块物理内存上的情况,从而造成不同程序会访问越界,所以,现有技术中存在计算机系统安全性差的技术问题。



技术实现要素:

本发明实施例提供一种信息处理方法及电子设备,用于解决现有技术中存在计算机系统安全性差的技术问题,实现了对计算机系统安全保护的技术效果。

一方面,本申请实施例提供了一种信息处理方法,所述方法应用于一电子设备中,所述方法包括:

在所述电子设备中的处理器与W个功能模块通过总线建立连接,并通过所述总线访问所述N个功能模块中的第一功能模块时,获得第一访存地址,其中,W为正整数;

基于一地址查找表判断所述第一访存地址是否为有效访存地址,获得第一判断结果;

在所述第一判断结果为是时,所述处理器基于所述第一访存地址执行第一操作。

可选地,所述基于一地址查找表判断所述第一访存地址是否为有效访存地址,获得第一判断结果,具体包括:

获得一地址查找表;

基于所述地址查找表对所述第一访存地址进行地址检查,获得第一检测结果;

基于所述第一检测结果判断所述第一访存地址是否为有效访存地址,获得第一判断结果。

可选地,所述基于所述第一检测结果判断所述第一访存地址是否为有效访存地址,获得第一判断结果,具体包括:

确定所述地址查找表中的M个表项中包含的N个有效表项,其中,M为正整数,N为小于等于M的正整数;

判断所述第一访存地址是否和所述N个有效表项中的K个表项中的物理地址相对应,获得第二判断结果,其中,K为小于等于N的正整数;

在所述第二判断结果为是时,判断表征所述第一访存地址的第一地址属性是否和所述物理地址对应的第二地址属性相匹配,获得第一判断结果。

可选地,所述判断所述第一访存地址是否和所述N个有效表项中的K个表项中的物理地址相对应,获得第二判断结果,具体为:

判断所述第一访存地址是否和所述K个表项中的第一物理地址相同,获得第二判断结果。

可选地,所述判断所述第一访存地址是否和所述N个有效表项中的K个表项中的物理地址相对应,获得第二判断结果,具体为:

判断所述第一访存地址是否位于所述K个表项中的第一物理地址段中,获得第二判断结果。

可选地,在所述判断所述第一访存地址是否和所述N个有效表项中的K个表项中的物理地址相对应,获得第二判断结果之后,所述方法还包括:

在所述第二判断结果为否时,确定所述第一访存地址为无效访存地址;

在确定所述第一访存地址为所述无效访存地址时,所述处理器中断所述第一操作。

可选地,在所述第一地址属性具体为数据或指令的第一读取指令,或为一程序的第一运行指令;且所述第二地址属性具体为表征所述物理地址中存储有数据或指令的第一类型存储地址时,在所述第二判断结果为是时,判断表征所述第一访存地址的第一地址属性是否和所述物理地址对应的第二地址属性相匹配,获得第一判断结果,具体为:

在所述第二判断结果为是时,判断所述第二地址属性是否为与所述第一读取指令相匹配的用于表征所述物理地址为用于存储数据或指令的第一类型内存地址,获得第一判断结果;或

在所述第二判断结果为是时,判断所述第二地址属性是否为与所述第一运行指令相匹配的用于表征所述物理地址为用于运行程序的第二类型内存地址。

可选地,在所述第一地址属性具体为所述第一访存地址的第一访存级别,所述第二地址属性具体为所述物理地址的第二访存级别时,在所述第二判断结果为是时,判断表征所述第一访存地址的第一地址属性是否和所述物理地址对应的第二地址属性相匹配,获得第一判断结果,具体为:

在所述第二判断结果为是时,判断所述第一访存级别是否高于所述第二访存级别,获得第一判断结果。

可选地,在所述基于一地址查找表判断所述第一访存地址是否为有效访存地址,获得第一判断结果之后,所述方法还包括:

在所述第一判断结果为是否时,确定所述第一访存地址为无效访存地址;

在确定所述第一访存地址为所述无效访存地址时,所述处理器中断所述第一操作。

另一方面,本申请实施例还提供了一种电子设备,包括:

处理器;

W个功能模块,其中,W为正整数;

总线,所述W个功能模块与所述处理器间通过所述总线连接;

地址检查模块,通过所述总线与所述处理器和所述W个功能模块连接;

其中,所述地址检查模块用于在所述处理器通过所述总线访问所述W个功能模块中的第一功能模块时,获得第一访存地址;

所述地址检查模块基于一地址查找表判断所述第一访存地址是否为有效访存地址,获得第一判断结果;

在所述第一判断结果为是时,所述处理器基于所述第一访存地址执行第一操作。

可选地,所述地址检查模块具体用于:

获得一地址查找表;

基于所述地址查找表对所述第一访存地址进行地址检查,获得第一检测结 果;

基于所述第一检测结果判断所述第一访存地址是否为有效访存地址,获得第一判断结果。

可选地,所述地址检查模块具体用于:

确定所述地址查找表中的M个表项中包含的N个有效表项,其中,M为正整数,N为小于等于M的正整数;

判断所述第一访存地址是否和所述N个有效表项中的K个表项中的物理地址相对应,获得第二判断结果,其中,K为小于等于N的正整数;

在所述第二判断结果为是时,判断表征所述第一访存地址的第一地址属性是否和所述物理地址对应的第二地址属性相匹配,获得第一判断结果。

可选地,所述地址检查模块具体用于:

判断所述第一访存地址是否和所述K个表项中的第一物理地址相同,获得第二判断结果。

可选地,所述地址检查模块具体用于:

判断所述第一访存地址是否位于所述K个表项中的第一物理地址段中,获得第二判断结果。

可选地,所述地址检查模块在判断所述第一访存地址是否和所述N个有效表项中的K个表项中的物理地址相对应,获得第二判断结果之后,还用于:

在所述第二判断结果为否时,确定所述第一访存地址为无效访存地址;

在确定所述第一访存地址为所述无效访存地址时,所述处理器中断所述第一操作。

可选地,所述地址检查模块在所述第一地址属性具体为数据或指令的第一读取指令,或为一程序的第一运行指令;且所述第二地址属性具体为表征所述物理地址中存储有数据或指令的第一类型存储地址时,具体用于:

在所述第二判断结果为是时,判断所述第二地址属性是否为与所述第一读取指令相匹配的用于表征所述物理地址为用于存储数据或指令的第一类型内 存地址,获得第一判断结果;或

在所述第二判断结果为是时,判断所述第二地址属性是否为与所述第一运行指令相匹配的用于表征所述物理地址为用于运行程序的第二类型内存地址。

可选地,所述地址检查模块在所述第一地址属性具体为所述第一访存地址的第一访存级别,所述第二地址属性具体为所述物理地址的第二访存级别时,具体用于:

在所述第二判断结果为是时,判断所述第一访存级别是否高于所述第二访存级别,获得第一判断结果。

可选地,所述地址检查模块在所述基于一地址查找表判断所述第一访存地址是否为有效访存地址,获得第一判断结果之后,还用于:

在所述第一判断结果为是否时,确定所述第一访存地址为无效访存地址;

其中,在确定所述第一访存地址为所述无效访存地址时,所述处理器中断所述第一操作。

本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:

在本申请的技术方案中,当CPU产生一组访存地址时,通过采用在所述电子设备中的处理器与W个功能模块通过总线建立连接,并通过所述总线访问所述N个功能模块中的第一功能模块时,获得第一访存地址,基于一地址查找表判断所述第一访存地址是否为有效访存地址,获得第一判断结果;在所述第一判断结果为是时,所述服务器基于所述第一访存地址执行第一操作的技术手段,从而通过在总线系统上对所述第一访存地址做内存地址段检测,当检测结果表明所述第一访存地址为有效访存地址时,CPU才会执行与访存地址相对应的操作指令,所以,实现了对计算机系统安全保护的技术效果。

进一步地,由于采用了本申请的技术方案,能够直接针对物理地址进行大段地址的保护,而不像现有技术中那样,通过在CPU内部增加硬件保护机制, 一旦使用已有的CPU IP在做片上系统(System on a Chip,即SoC)集成时,就很难改变集成在CPU里面的安全策略,而实际的SoC中的物理内存的设置可能差别很大,进而导致现有技术中的保护方案无法移植到移动领域,而本申请的技术方案,可以根据实际物理内存的设置来设置内存保护,所以,实现了根据实际物理内存来设置内存保护的技术效果。

进一步地,由于采用了本申请的技术方案,能够直接针对物理地址进行大段地址的保护,而不像现有技术中那样,通过在CPU内部增加硬件保护机制,并针对虚拟地址进行保护,且需要对每一个页地址都要做相应设置的较为繁琐的处理流程,所以,实现了保护流程较为简洁的技术效果。

进一步地,由于采用了本申请的技术方案,能够直接针对物理地址进行大段地址的保护,而不像现有技术中那样,需要针对CPU内部虚拟地址自带的地址分级来实现对地址空间分级访问的限制,却存在不同级别的虚拟地址会映射到同一块物理内存上,比如,虚拟地址分别是核心空间、超级用户空间、用户空间,但实际却映射到同一块物理内存上,进而没有达到预期的安全性,所以,本申请的技术方案中的直接针对物理地址的保护,极大实现了对地址空间分级访问进行有效限制的技术效果。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。

图1为本申请实施例一中一种信息处理方法的流程图;

图2为本申请实施例一中一种信息处理方法中步骤S102的方法流程图;

图3为本申请实施例一中一种信息处理方法中步骤S203的方法流程图;

图4为本申请实施例一中一种信息处理方法中步骤S302之后的方法流程图;

图5为本申请实施例一中一种信息处理方法中步骤S103之后的方法流程 图;

图6为本申请实施例二提供的一种电子设备的功能结构方框图。

具体实施方式

本发明实施例提供一种信息处理方法及电子设备,用于解决现有技术中存在计算机系统安全性差的技术问题,实现了对计算机系统安全保护的技术效果。

本申请实施例中的技术方案为解决上述的技术问题,总体思路如下:

一种信息处理方法,应用于一电子设备中,所述方法包括:

在所述电子设备中的处理器与W个功能模块通过总线建立连接,并通过所述总线访问所述W个功能模块中的第一功能模块时,获得第一访存地址,其中,W为正整数;

基于一地址查找表判断所述第一访存地址是否为有效访存地址,获得第一判断结果;

在所述第一判断结果为是时,所述服务器基于所述第一访存地址执行第一操作。

在本申请的技术方案中,当CPU产生一组访存地址时,通过采用在所述电子设备中的处理器与W个功能模块通过总线建立连接,并通过所述总线访问所述N个功能模块中的第一功能模块时,获得第一访存地址,基于一地址查找表判断所述第一访存地址是否为有效访存地址,获得第一判断结果;在所述第一判断结果为是时,所述服务器基于所述第一访存地址执行第一操作的技术手段,从而通过在总线系统上对所述第一访存地址做内存地址段检测,当检测结果表明所述第一访存地址为有效访存地址时,CPU才会执行与访存地址相对应的操作指令,所以,实现了对计算机系统安全保护的技术效果。

为了更好的理解上述技术方案,下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对 本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互结合。

实施例一

在具体实施过程中,该信息处理方法可应用于一电子设备,所述电子设备具体来讲,可以是手机,平板电脑,笔记本电脑,也可以是别的电子设备,在此就不一一举例了。在上述电子设备中,可集成SoC或者微机系统以及其他的计算机系统,在本申请中不作具体的限制。所述处理器可以具体为MIPS CPU,也可以是ARM CPU,在此就不一一举例了。

请参考图1,本申请实施例提供了一种信息处理方法,所述方法包括:

S101:在所述电子设备中的处理器与W个功能模块通过总线建立连接,并通过所述总线访问所述W个功能模块中的第一功能模块时,获得第一访存地址,其中,W为正整数;

S102:基于一地址查找表判断所述第一访存地址是否为有效访存地址,获得第一判断结果;

S103:在所述第一判断结果为是时,所述服务器基于所述第一访存地址执行第一操作。

在本申请实施例中的总线可以是AHB、AXI、OCP一种,也可以是三种任意类型的组合,当然也可以是其他的形式的总线,在此就不一一举例了。下面的实施例中将以AHB总线为例,进行详细的说明。

首先手机中的处理器与W个功能模块之间通过总线建立连接,本申请实施例中的所述W个功能模块可以是多个MPU、DSP、MCU或者其它复合的IP核,比如,SRAM、DRAM、SDRAM、寄存器等,在此就不一一赘述了。举个具体的例子来说,CPU需要访问物理地址是oxfa000的单元,那么在x86处理器平台上,会产生一个PCI总线上对0xfa000地址的访问,其中,0xfa000即为获得的第一访存地址,该访存地址或者在内存中,比如DRAM,或者是在某个卡上的存储单元,甚至可能这个地址上没有对应的存储器。

在本申请实施例中,请参考图2,步骤102:基于一地址查找表判断所述第一访存地址是否为有效访存地址,获得第一判断结果,具体包括:

S201:获得一地址查找表;

S202:基于所述地址查找表对所述第一访存地址进行地址检查,获得第一检测结果;

S203:基于所述第一检测结果判断所述第一访存地址是否为有效访存地址,获得第一判断结果。

在具体实施过程中,步骤S201至步骤S203具体实现过程如下,首先,获得一地址查找表,所述地址查找表依据电子设备中处理器具体的操作系统而确定的,其中,操作系统可以是32位,也可以是64位,等等。所述地址查找表中所设置的表项的个数则由具体的操作系统对指令,或数据,或地址空间所划分的地址空间块数所决定的。举个具体的例子来说,以32位操作系统为例,且该操作系统所划分地址空间块数为22块,则表项个数有32个,而且在这种情况下,该处理器的内存寻址空间为2的32次方,即4G左右。此外,每一项表项的长度由因系统而异。在本申请实施例中,地址查找表的每一个表项中具体包括有地址段,有效位以及地址属性这三项内容。其中,地址段可以有2种形式,第一种形式为每一项只有1个地址的情况,且该地址表示物理内存的基地址,而且对于SoC系统来说,地址段的具体长度会因SoC系统而异。比如,10bits地址可以表示以“K”为边界的地址,20bits地址可以表示以“M”为边界的地址。第二种形式为,每一项可以有两个地址,1个表示高地址,1个表示低地址。有效位主要用来标示每一个表项是否有效。地址属性则用来标识对应的地址段是用于指令段,还是数据段,或者是用于标示对应的地址段的级别属性。对于本领域的普通技术人员,可以根据实际需要,来决定表项个数及每个表项的长度,在此就不一一赘述了。

在本申请实施例中,在获得地址查找表之后,执行步骤S202:基于所述地址查找表对第一访存地址进行地址检查,获得第一检测结果。继续以访存地址 0xfa000为例,也就是说,将该访存地址与地址查找表中的每一个表项进行地址检测,进而获得相应的检测结果。

在本申请实施例中,请参考图3,步骤S203:基于所述第一检测结果判断所述第一访存地址是否为有效访存地址,获得第一判断结果,具体包括:

S301:确定所述地址查找表中的M个表项中包含的N个有效表项,其中,M为正整数,N为小于等于M的正整数;

S302:判断所述第一访存地址是否和所述N个有效表项中的K个表项中的物理地址相对应,获得第二判断结果,其中,K为小于等于N的正整数;

S303:在所述第二判断结果为是时,判断表征所述第一访存地址的第一地址属性是否和所述物理地址对应的第二地址属性相匹配,获得第一判断结果。

在本申请实施例中,首先从地址查找表中所有的表项中确定出有效表项,举个具体的例子来说,以32位操作系统为例,且该操作系统所划分地址空间块数为22块,则表项个数有32个,其中有效表项为22个,无效表项为10个,其中,对于表项是否有效可以设置valid bit为1bit,如,“0”表示无效,“1”表示有效。在确定出22个有效表项后,则做地址段检查,也就是说,判断访存地址0xfa000是否和22个有效表项中的物理地址相对应,获得第二判断结果。如果存在有与访存地址0xfa000对应的物理地址,那么在进行地址段检查之后则做地址属性检查,判断访存地址0xfa000对应的第一地址属性是否和表项中与之对应的物理地址的第二地址属性相匹配,获得第一判断结果,进而可以确定出该访存地址是否为有效访存地址。

在本申请实施例中,步骤S302:判断所述第一访存地址是否和所述N个有效表项中的K个表项中的物理地址相对应,获得第二判断结果,具体有以下两种实现方式,当不仅限于以下两种实现方式,本领域的普通技术人员可以根据具体的需要进行相应的改进。

第一种实现方式

当地址查找表中每个表项中的地址段只有一个地址,且该地址为表示物理内存的基地址时,第一种实现方式具体为:判断所述第一访存地址是否和所述K个表项中的第一物理地址相同,获得第二判断结果。继续以访存地址为0xfa000,有效表项为22个为例,如果22个有效表项中有一个表项的物理地址为0xfa000,则该访存地址和该表项的物理地址相同,也就是说,二者地址段匹配。

第二种实现方式

当地址查找表中每个表项中的地址段由2个分别表示高地址和高地址组成时,第二种实现方式具体为:判断所述第一访存地址是否位于所述K个表项中的第一物理地址段中,获得第二判断结果。也就是说,判断第一访存地址是否位于有效表项中其中一个表项所对应地址空间内。继续以访存地址为0xfa000,有效表项为22个为例,如果22个有效表项中有一个表项的地址空间为0xf000-0xff00,那么该访存地址位于该地址空间内,则认为该访存地址和该表项地址段匹配。

在本申请实施例中,请参考图4,在步骤S302:判断所述第一访存地址是否和所述N个有效表项中的K个表项中的物理地址相对应,获得第二判断结果之后,执行步骤:

S401:在所述第二判断结果为否时,确定所述第一访存地址为无效访存地址;

S402:在确定所述第一访存地址为所述无效访存地址时,所述处理器中断所述第一操作。

在具体实施过程中,无论采用哪种地址段是否匹配的实现方式,当第一访存地址和表项中的任意一个表项所对应的地址空间都不匹配,那么第一访存地址则为无效访存地址。当第一访存地址为无效访存地址时,CPU对当前的第一访存地址则返回无效访问结果,并中断与第一访存地址相对应的第一操作,通知CPU进行后续处理。

在本申请实施例中,步骤S303:在所述第二判断结果为是时,判断表征所述第一访存地址的第一地址属性是否和所述物理地址对应的第二地址属性相匹配,获得第一判断结果,具体有以下两种判断方式,但不仅限于以下两种判断方式,本领域的普通技术人员可以根据具体的需要来设计相应的判断方式。

第一种判断方式

第一种判断方式在所述第一地址属性具体为数据或指令的第一读取指令,或为一程序的第一运行指令;且所述第二地址属性具体为表征所述物理地址中存储有数据或指令的第一类型存储地址时,在所述第二判断结果为是时,判断表征所述第一访存地址的第一地址属性是否和所述物理地址对应的第二地址属性相匹配,获得第一判断结果,具体为:

在所述第二判断结果为是时,判断所述第二地址属性是否为与所述第一读取指令相匹配的用于表征所述物理地址为用于存储数据或指令的第一类型内存地址,获得第一判断结果;或

在所述第二判断结果为是时,判断所述第二地址属性是否为与所述第一运行指令相匹配的用于表征所述物理地址为用于运行程序的第二类型内存地址。

在具体实施过程中,当CPU通过总线并基于第一访存地址去内存中取指令,或者数据,所述第一访存地址对应的第一地址属性具体为数据或者指令的第一读取指令。那么,此时,为了将所述第一访存地址的第一地址属性和有效表项中的第二地址属性进行地址属性匹配,相应地,地址查找表中每个表项存储的地址属性具体为表征其内的地址段是用于指令段,还是数据段。继续以访存地址为0xfa000,有效表项为22个,且与其中的一个表项的地址段匹配为例,如果该访存地址0xfa000对应为数据段,而与之匹配的表项的地址段属性为指令段,则二者地址属性不匹配,如果与之匹配的表项的地址段属性为数据段,则二者地址属性匹配。其中,在具体实现中,对于地址查找表中每个表项中地址属性的设置可以设置valid bit为1bit,如,“0”表示数据,“1”表示指令, 当然也可以是,“0”表示指令,“1”表示数据。

在本申请实施例中,当CPU通过总线并基于第一访存地址去内存运行一程序时,所述第一访存地址对应的第一地址属性具体为第一运行指令,那么,此时,为了将所述第一访存地址的第一地址属性和有效表项中的第二地址属性进行地址属性匹配,相应地,地址查找表中每个表项存储的第二地址属性为与所述第一运行指令相匹配的用于表征与第一访存地址地址段匹配的表项中的物理地址为用于运行该程序的第二类型内存地址。

第二种判断方式

第二种判断方式在所述第一地址属性具体为所述第一访存地址的第一访存级别,所述第二地址属性具体为所述物理地址的第二访存级别时,在所述第二判断结果为是时,判断表征所述第一访存地址的第一地址属性是否和所述物理地址对应的第二地址属性相匹配,获得第一判断结果,具体为:

在所述第二判断结果为是时,判断所述第一访存级别是否高于所述第二访存级别,获得第一判断结果。

为了实现CPU对地址空间分级访问,从而达到较高的安全,仍然可以采用本申请提供的技术方案。在具体实施过程中,针对CPU访问内存的总线设置地址查找表,地址查找表的每一项包含地址段,有效位,地址属性。每当CPU产生一组访存地址时,针对上述的地址查找表中的每一个表项做地址检查,其中对表项有效性的检查以及地址段匹配的检查和第一种判断方式中所采用的方案相同,关于地址属性匹配的检查则需要针对不同的CPU进行相应的检查。总体上,所采用的检查规则为:每一种访存地址属性,可以访问不高于它的属性的地址空间。比如:对于MIPS CPU通常划分为三级特权空间,分别是核心空间(Kernel)、超级用户空间(Supervisor)、用户空间(User),此时第二地址空间属性主要有这三级访存级别。当操作系统自己的代码运行时,MIPS CPU就为核心级,当用户的程序运行时就只让它在用户级运行,这样如果用户的程序如果想要做破坏系统的事情的话,则没办法做到,这样就极大地 提高了计算机系统的安全性。依照检查规则核心级访存地址属性可以访问核心级,以及超级用户级,以及用户级的地址属性所对应的地址空间。超级用户级访存地址属性则可以访问超级用户级以及用户级的地址属性所对应的地址空间。而用户级访存地址属性则只能访问用户级的地址属性所对应的地址空间。再比如,ARM Cortex-M3CPU有两级特权操作,分别是特权级和用户级,那么对第二地址属性的设置主要为特权级访存级别和用户级访存级别。也就是说,对于不同的CPU所划分的特权空间不同,对应的表项中的物理地址对应的第二地址属性也不同,并不局限于以上提到的两种划分方法,对于本领域的普通技术人员可以根据需要进行相应的设计,在此就不一一举例了。

在具体实施过程中,继续以访存地址为0xfa000为例,处理器为MIPS CPU时,如果该访存地址的属性为User,与22个有效表项中某一有效表项地址匹配,但是该表项的地址属性为Kernel,则意味着第一访存级别低于第二访存级别,则该访问地址为无效访存地址。如果该访存地址的属性为Kernel,与22个有效表项中某一有效地址匹配,且该表项的地址属性为Kernel,则意味着第一访存级别和第二访存级别为同一级别,可以进行有效访问。在具体实现过程中,对于本领域的普通技术人员,根据不同的CPU所划分的特权等级个数来具体设置第二访存属性。比如,MIPS CPU有三个特权等级,用两位就可以表示这三个特权等级所对应的第二访存属性,举个具体的例子来说,“00”表示Kernel,“01”表示Supervisor,“10”表示“User”,当然还可以有其它的实现形式,在此就不一一赘述了。

在本申请实施例中,请参考图5,在步骤S103之后,执行步骤:

S501:在所述第一判断结果为是否时,确定所述第一访存地址为无效访存地址;

S502:在确定所述第一访存地址为所述无效访存地址时,所述处理器中断所述第一操作。

在具体实施过程中,继续以访存地址为0xfa000为例,当地址段不匹配, 或者是地址段匹配,但是地址属性不匹配时,则该访存地址为无效访存地址,此时CPU将不能进行第一读取指令或者第一运行指令所对应的操作。

实施例二

基于本申请实施例一中信息处理方法同样的发明构思,请参考图6,本申请实施例还提供了一种电子设备,包括:

处理器60;

W个功能模块,其中,W为正整数;

总线,所述W个功能模块与处理器60间通过总线连接;

地址检查模块61,通过总线与处理器60和所述W个功能模块连接;

其中,地址检查模块61用于在处理器60通过总线访问所述W个功能模块中的第一功能模块62时,获得第一访存地址;

地址检查模块61基于一地址查找表判断所述第一访存地址是否为有效访存地址,获得第一判断结果;

在所述第一判断结果为是时,处理器60基于所述第一访存地址执行第一操作。

在本申请实施例中,地址检查模块61具体用于:

获得一地址查找表;

基于所述地址查找表对所述第一访存地址进行地址检查,获得第一检测结果;

基于所述第一检测结果判断所述第一访存地址是否为有效访存地址,获得第一判断结果。

在本申请实施例中,地址检查模块61具体用于:

确定所述地址查找表中的M个表项中包含的N个有效表项,其中,M为正整数,N为小于等于M的正整数;

判断所述第一访存地址是否和所述N个有效表项中的K个表项中的物理地址相对应,获得第二判断结果,其中,K为小于等于N的正整数;

在所述第二判断结果为是时,判断表征所述第一访存地址的第一地址属性 是否和所述物理地址对应的第二地址属性相匹配,获得第一判断结果。

在本申请实施例中,地址检查模块61对地址段是否匹配的判断具体有两种实现方式,但又不仅限于以下两种实现方式。

第一种实现方式,地址检查模块61具体用于:

判断所述第一访存地址是否和所述K个表项中的第一物理地址相同,获得第二判断结果。

第二种实现方式,地址检查模块61具体用于:

判断所述第一访存地址是否位于所述K个表项中的第一物理地址段中,获得第二判断结果。

在本申请实施例中,地址检查模块61在判断所述第一访存地址是否和所述N个有效表项中的K个表项中的物理地址相对应,获得第二判断结果之后,还用于:

在所述第二判断结果为否时,确定所述第一访存地址为无效访存地址;

在确定所述第一访存地址为所述无效访存地址时,处理器60中断所述第一操作。

在本申请实施例中,地址检查模块61对地址属性是否匹配的判断主要以下两种判断方式,但又不仅限于以下两种判断方式。

第一种判断方式

地址检查模块61在所述第一地址属性具体为数据或指令的第一读取指令,或为一程序的第一运行指令;且所述第二地址属性具体为表征所述物理地址中存储有数据或指令的第一类型存储地址时,具体用于:

在所述第二判断结果为是时,判断所述第二地址属性是否为与所述第一读取指令相匹配的用于表征所述物理地址为用于存储数据或指令的第一类型内存地址,获得第一判断结果;或

在所述第二判断结果为是时,判断所述第二地址属性是否为与所述第一运行指令相匹配的用于表征所述物理地址为用于运行程序的第二类型内存地址。

第二种判断方式

地址检查模块61在所述第一地址属性具体为所述第一访存地址的第一访存级别,所述第二地址属性具体为所述物理地址的第二访存级别时,具体用于:

在所述第二判断结果为是时,判断所述第一访存级别是否高于所述第二访存级别,获得第一判断结果。

在本申请实施例中,地址检查模块61在所述基于一地址查找表判断所述第一访存地址是否为有效访存地址,获得第一判断结果之后,还用于:

在所述第一判断结果为是否时,确定所述第一访存地址为无效访存地址;

其中,在确定所述第一访存地址为所述无效访存地址时,处理器60中断所述第一操作。

通过本申请实施例中的一个或多个技术方案,可以实现如下一个或多个技术效果:

在本申请的技术方案中,当CPU产生一组访存地址时,通过采用在所述电子设备中的处理器与W个功能模块通过总线建立连接,并通过所述总线访问所述N个功能模块中的第一功能模块时,获得第一访存地址,基于一地址查找表判断所述第一访存地址是否为有效访存地址,获得第一判断结果;在所述第一判断结果为是时,所述服务器基于所述第一访存地址执行第一操作的技术手段,从而通过在总线系统上对所述第一访存地址做内存地址段检测,当检测结果表明所述第一访存地址为有效访存地址时,CPU才会执行与访存地址相对应的操作指令,所以,实现了对计算机系统安全保护的技术效果。

进一步地,由于采用了本申请的技术方案,能够直接针对物理地址进行大段地址的保护,而不像现有技术中那样,通过在CPU内部增加硬件保护机制,一旦使用已有的CPU IP在做片上系统(System on a Chip,即SoC)集成时,就很难改变集成在CPU里面的安全策略,而实际的SoC中的物理内存的设置可能差别很大,进而导致现有技术中的保护方案无法移植到移动领域,而本申 请的技术方案,可以根据实际物理内存的设置来设置内存保护,所以,实现了根据实际物理内存来设置内存保护的技术效果。

进一步地,由于采用了本申请的技术方案,能够直接针对物理地址进行大段地址的保护,而不像现有技术中那样,通过在CPU内部增加硬件保护机制,并针对虚拟地址进行保护,且需要对每一个页地址都要做相应设置的较为繁琐的处理流程,所以,实现了保护流程较为简洁的技术效果。

进一步地,由于采用了本申请的技术方案,能够直接针对物理地址进行大段地址的保护,而不像现有技术中那样,需要针对CPU内部虚拟地址自带的地址分级来实现对地址空间分级访问的限制,却存在不同级别的虚拟地址会映射到同一块物理内存上,比如,虚拟地址分别是核心空间、超级用户空间、用户空间,但实际却映射到同一块物理内存上,进而没有达到预期的安全性,所以,本申请的技术方案中的直接针对物理地址的保护,极大实现了对地址空间分级访问进行有效限制的技术效果。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设 备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

具体来讲,本申请实施例中的信息处理方法对应的计算机程序指令可以被存储在光盘,硬盘,U盘等存储介质上,当存储介质中的与信息处理方法对应的计算机程序指令被一电子设备读取或被执行时,包括如下步骤:

一种信息处理方法,所述方法应用于一电子设备中,所述方法包括:

在所述电子设备中的处理器与W个功能模块通过总线建立连接,并通过所述总线访问所述W个功能模块中的第一功能模块时,获得第一访存地址,其中,W为正整数;

基于一地址查找表判断所述第一访存地址是否为有效访存地址,获得第一判断结果;

在所述第一判断结果为是时,所述服务器基于所述第一访存地址执行第一操作。

可选地,所述存储介质中存储的与步骤,所述基于一地址查找表判断所述第一访存地址是否为有效访存地址,获得第一判断结果,对应的计算机程序指令在被执行时,具体包括:

获得一地址查找表;

基于所述地址查找表对所述第一访存地址进行地址检查,获得第一检测结果;

基于所述第一检测结果判断所述第一访存地址是否为有效访存地址,获得第一判断结果。

可选地,所述存储介质中存储的与步骤,所述基于所述第一检测结果判断所述第一访存地址是否为有效访存地址,获得第一判断结果,对应的计算机程序指令在被执行时,对应的计算机程序指令在被执行时,具体包括:

确定所述地址查找表中的M个表项中包含的N个有效表项,其中,M为正整数,N为小于等于M的正整数;

判断所述第一访存地址是否和所述N个有效表项中的K个表项中的物理地址相对应,获得第二判断结果,其中,K为小于等于N的正整数;

在所述第二判断结果为是时,判断表征所述第一访存地址的第一地址属性是否和所述物理地址对应的第二地址属性相匹配,获得第一判断结果。

可选地,所述存储介质中存储的与步骤,所述判断所述第一访存地址是否和所述N个有效表项中的K个表项中的物理地址相对应,获得第二判断结果,对应的计算机程序指令在被执行时,具体为:

判断所述第一访存地址是否和所述K个表项中的第一物理地址相同,获得第二判断结果。

可选地,所述存储介质中存储的与步骤,所述判断所述第一访存地址是否和所述N个有效表项中的K个表项中的物理地址相对应,获得第二判断结果,对应的计算机程序指令在被执行时,具体为:

判断所述第一访存地址是否位于所述K个表项中的第一物理地址段中,获得第二判断结果。

可选地,所述存储介质中存储的与步骤,在所述判断所述第一访存地址是否和所述N个有效表项中的K个表项中的物理地址相对应,获得第二判断结果之后,对应的计算机程序指令在被执行时,所述方法还包括:

在所述第二判断结果为否时,确定所述第一访存地址为无效访存地址;

在确定所述第一访存地址为所述无效访存地址时,所述处理器中断所述第一操作。

可选地,所述存储介质中存储的与步骤,在所述第一地址属性具体为数据 或指令的第一读取指令,或为一程序的第一运行指令;且所述第二地址属性具体为表征所述物理地址中存储有数据或指令的第一类型存储地址时,在所述第二判断结果为是时,判断表征所述第一访存地址的第一地址属性是否和所述物理地址对应的第二地址属性相匹配,获得第一判断结果,对应的计算机程序指令在被执行时,具体为:

在所述第二判断结果为是时,判断所述第二地址属性是否为与所述第一读取指令相匹配的用于表征所述物理地址为用于存储数据或指令的第一类型内存地址,获得第一判断结果;或

在所述第二判断结果为是时,判断所述第二地址属性是否为与所述第一运行指令相匹配的用于表征所述物理地址为用于运行程序的第二类型内存地址。

可选地,所述存储介质中存储的与步骤,在所述第一地址属性具体为所述第一访存地址的第一访存级别,所述第二地址属性具体为所述物理地址的第二访存级别时,在所述第二判断结果为是时,判断表征所述第一访存地址的第一地址属性是否和所述物理地址对应的第二地址属性相匹配,获得第一判断结果,对应的计算机程序指令在被执行时,具体为:

在所述第二判断结果为是时,判断所述第一访存级别是否高于所述第二访存级别,获得第一判断结果。

可选地,所述存储介质中存储的与步骤,在所述基于一地址查找表判断所述第一访存地址是否为有效访存地址,获得第一判断结果之后,对应的计算机程序指令在被执行时,所述方法还包括:

在所述第一判断结果为是否时,确定所述第一访存地址为无效访存地址;

在确定所述第一访存地址为所述无效访存地址时,所述处理器中断所述第一操作。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基 本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1