嵌入式系统可寻址空间的分区方法

文档序号:6443182阅读:652来源:国知局
专利名称:嵌入式系统可寻址空间的分区方法
技术领域
本发明涉及嵌入式微处理器系统(以下简称“嵌入式系统”),特别涉及一种嵌入式系统中用于安全管理的可寻址空间的分区方法。
背景技术
随着嵌入式系统的快速发展,在单个嵌入式系统芯片上集成的功能越来越多,处理能力也越来越强大,一方面多用户可以共用一款嵌入式系统芯片,另一方面单用户在使用一款嵌入式系统芯片时也存在多功能应用的需求。但是,无论对于多用户还是对于单用户都存在对嵌入式系统中的资源进行分区管理的问题,其中最受用户关注的无疑就是信息的安全性。众所周知,嵌入式系统启动后CPU可寻址空间一般可划分为三类区域,如图1所示,一是系统区,用于存放启动程序等;二是控制区,用于配置和管控存储空间等;三是用户区,是指系统中对应于存储器、内部功能模块、内部控制模块以及外设的存储空间,管理员根据需要可将用户区任意分割为若干个区块供用户使用和管理。针对CPU的可寻址空间,技术人员在芯片设计开发时需要根据系统资源的配置情况对逻辑地址空间进行分配, 而从用户应用的角度技术人员还需要对CPU的可寻址空间进行分区管理。其中,分区管理不仅牵涉到用户对各区块访问权限的设定,还涉及可寻址空间中各区块的划分方法(即分区方法)。传统的分区方法是以每个区块的起始地址以及区块大小为依据在CPU可寻址空间中来划分各区块,而且区块的大小是以2为倍数,取256Byte到4GByte范围。乍看之下, 原有分区方法也能达到分配区块位置和大小的目的,但从实现效果上看,原有分区方法是以区块大小隐含了地址对齐。因此以往的做法一方面造成了实际分区位置与预期的分区位置相差很大的情况,另一方面,区块大小的选择也局限于硬件提供的若干种(即以2为倍数,取256Byte到4GByte范围),如果要想分配的区块为3MByte空间,实际只能分配4MByte 空间,其中浪费了 IMByte空间。以上两点容易造成区块分配混乱和资源浪费,给嵌入式系统芯片存储空间分区管理带来了较大的制约,轻者造成存储资源浪费,重者造成用户预期的分区配置与实际大相径庭,留下了安全隐患。

发明内容
鉴于上述技术现状,本发明提出一种嵌入式系统可寻址空间的分区方法,旨在解决现有分区方法带来的区块分配混乱以及浪费资源等问题。为达到上述目的,本发明采用的技术方案是一种嵌入式系统可寻址空间的分区方法,其创新在于在对嵌入式系统可寻址空间进行分区时,将需要划分的每个区块的上边界地址、下边界地址和地址对齐位数作为各区块划分的三种不同属性,采用三组配置寄存器来分别定义,其中,第一组配置寄存器用来定义需要划分的各区块的上边界地址,第二组配置寄存器用来定义需要划分的各区块的下边界地址,第三组配置寄存器用来定义需要划分的各区块的地址对齐位数。
上述技术方案的有关内容解释如下
1.上述方案中,如果嵌入式系统具有三十二位逻辑地址,地址对齐位数在低八位到低三十一位之间的范围内选择。如果嵌入式系统具有十六位逻辑地址,地址对齐位数在低八位到低十五位之间的范围内选择。如果嵌入式系统具有六十四位逻辑地址,地址对齐位数在低八位到低六十三位之间的范围内选择。由于上述技术方案运用,本发明与现有技术相比具有下列优点和效果
1.本发明解决了传统分区方法可能造成区块划分重叠以及由此产生的安全隐患问题。 传统分区方法只能通过配置寄存器对各区块的起始地址和区块大小进行设定。从传统分区方法中可以看出,定义每个区块采用了两个属性,一个是区块的起始地址,另一个是区块的大小。从表面看这种分区方法简单可行,似乎不存在任何不合理现象。但实际上由于在系统底层隐含着地址对齐机制,因此在定义区块时,区块大小隐含的第三个属性是以区块大小为单位进行地址对齐,即一个区块中的所有地址均对齐为该区块的起始地址,因此该起始地址即为隐含的地址对齐位置。由于地址对齐位数与定义的区块大小有关,因此区块大小隐含了地址对齐位数。如果以2的η次方来表示区块大小,那么隐含的地址对齐位数将是低 η位,即地址的低η位被隐掉,比如对于一个具有三十二位逻辑地址的CPU系统,如果定义区块大小为512KByte字节,即2的19次方字节,那么三十二位逻辑地址中的低19位将被隐掉;如果定义区块大小为IMByte字节,即2的20次方字节,那么三十二位逻辑地址中的低 20位将被隐掉,以此类推。在嵌入式系统中,隐含地址对齐机制其实是指参与地址译码(即寻址)的地址线的位数,目的是为了提高地址译码速度、减少电路的复杂性以及节省配置寄存器资源。以往用户在进行分区时,由于配置寄存器对用户是开放的,如果用户对区块的起始地址选择不在隐含的地址对齐位置上,嵌入式系统就会自动将其移到默认的地址对齐位置上,这样就会造成预想的区块边界与实际的区块边界不一致,使分区产生意外的重叠,而此时用户并不知道。一旦出现这种现象,由于重叠的两个区块访问权限不一致就会产生安全隐患,甚至造成访问出错等故障。而本发明将每个区块的上边界地址、下边界地址和地址对齐位数作为划分各区块的三种不同属性,并且通过三组配置寄存器来分别定义。这种分区方法从区块划分角度由于明确选择了地址对齐位数,用户知晓地址对齐位数,不会将两个区块的逻辑地址重叠设置,因此解决了以往区块大小隐含地址对齐位数所带来的分区重叠问题。2.本发明解决了传统分区方法带来的地址资源浪费,大大提高了嵌入式系统有限地址资源的利用率。传统分区方法是以每个区块的起始地址以及区块大小为依据在CPU 可寻址空间中来划分各区块,而且区块大小是以2为倍数,取256Byte到4GByte范围,即区块大小应在 256Byte、512 ByteUKbyte,2 Kbyte、4Kbyte、8Kbyte、16Kbyte、32Kbyte、
64Kbyte、128Kbyte、128Kbyte、512Kbyte、lMbyte、2Mbyte、4Mbyte、......4GByte 范围中选一。
因此,如果用户要想分配的区块大小为3MByte空间,实际只能分配4MByte空间,其中浪费了 IMByte空间。而本发明由于将每个区块的上边界地址、下边界地址和地址对齐位数作为划分各区块的三种不同属性,用户可以用上边界地址和下边界地址来定义3MByte空间,地址对齐位数可以选择隐掉三十二位逻辑地址中的低8位或低9位,即以256Byte或512Byte 进行地址对齐。因此,本发明分区方法可以灵活的设定地址对齐位数,一方面解决了以往地址资源浪费的问题,另一方面使用户的存储管理更加得心应手,大大提高了嵌入式系统有限地址资源的利用率。


附图1为嵌入式系统地址分配示意图; 附图2为嵌入式系统原理附图3为传统分区方法出现区块边界偏移的示意图; 附图4为本发明分区方法不会出现区块边界偏移的示意图; 附图5为传统分区方法配置寄存器示意图; 附图6为本发明分区方法配置寄存器示意图。
具体实施例方式下面结合附图及实施例对本发明作进一步描述 实施例
图1为嵌入式系统地址分配示意图。从图中可以看出,嵌入式系统启动后CPU可寻址空间划分为三类区域,一是系统区,二是控制区,三是用户区。针对CPU的可寻址空间,技术人员在芯片设计开发时需要根据系统资源对逻辑地址空间进行分配,而从用户应用的角度技术人员还需要对CPU的可寻址空间进行分区安全管理。其中,分区安全管理不仅牵涉到用户对各区块访问权限的设定,还涉及可寻址空间中各区块的划分方法(即分区方法)。图 1中画出了八个区块,即区块(Γ区块7,表示从安全管理角度将CPU可寻址空间分成八个区块来进行管理。其中,采用的分区方法是在对嵌入式系统可寻址空间进行分区时,将需要划分的每个区块的上边界地址、下边界地址和地址对齐位数作为各区块划分的三种不同属性,采用三组配置寄存器来分别定义,其中,第一组配置寄存器用来定义需要划分的各区块的上边界地址,第二组配置寄存器用来定义需要划分的各区块的下边界地址,第三组配置寄存器用来定义需要划分的各区块的地址对齐位数。其中,地址对齐位数的选择可参考以下内容
1.如果嵌入式系统具有三十二位逻辑地址,理论上地址对齐位数在低八位到低三十一位之间的范围内选择。2.如果嵌入式系统具有十六位逻辑地址,理论上地址对齐位数在低八位到低十五位之间的范围内选择。3.如果嵌入式系统具有六十四位逻辑地址,理论上地址对齐位数在低八位到低六十三位之间的范围内选择。这里需要特别说明的是第一,对于嵌入式系统来说,逻辑地址位数与数据位数概念不同,比如一个32位CPU,具有32位逻辑地址和32位数据,但一个8位CPU,具有16位逻辑地址和8位数据。要能够正确区分逻辑地址位数与数据位数的关系。本发明与嵌入式系统的逻辑地址位数有关,而与数据位数无关。第二,本发明分区方法适用于嵌入式系统中CPU的可寻址空间,而不局限于用户区。第三,采用本发明分区方法对CPU可寻址空间分区时,每个区块中的地址对齐位数相同,而各区块之间的地址对齐位数可以相同,也可以不同,这要根据实际需要结合系统的支持能力来确定。图2为本发明应用实例嵌入式系统原理图。从图中可以看出,该嵌入式系统由CPU、系统总线、存储器、周边模块、外部模块和MPU模块组成。其中,周边模块是指内部模块,比如加密模块、存储器接口模块等;MPU模块是指存储器保护模块,该模块由MPU控制寄存器、加解密部分、控制部分和输出部分组成。本实例嵌入式系统中设置MPU模块的目的是为CPU访问提供安全保障。为了达到安全管理的目的,需要对CPU的可寻址空间进行分区, 并通过MPU控制寄存器来设定。MPU控制寄存器是一个配置寄存器组,有八组配置寄存器, 可以将CPU可寻址空间划分成八个区块来进行管理,并对每个区块分别设定上边界地址、 下边界地址、地址对齐位数、加密使能以及访问权限,以便对各区块进行安全管理。其中访问权限包括超级用户的任意区块可读(SR),可写(SW),可执行(SX),超级用户的本区块可读(Sr),可写(Sw),可执行(&0;普通用户的任意区块可读(UR),可写(UW),可执行(UX),普通用户的本区块可读(to·),可写(Uw),可执行(Ux)。当CPU发起一次访问,其程序指针和访问地址分别输入程序指针比较单元和地址一致匹配单元进行区块匹配,同时本次访问的控制信息也将输入访问权限判定单元与各区块设定的访问权限进行比较,最终通过访问判定违规单元判定在该访问所匹配的区块内的权限设定是否允许本次访问。另一方面,本次访问的地址信号和数据信号将分别输入地址乱序加密单元和数据加解密单元进行处理,其结果由输出控制单元结合访问允许与否进行输出或屏蔽。图3为传统分区方法出现区块边界偏移的示意图。从图中可以看出,本应用实例具有三十二位逻辑地址,如果用户以32’ h800F_FF00为起始地址,取分区大小为1MB,设置区块0,由于原有技术中隐含的地址对齐机制是根据分区大小1MB进行了地址对齐,即2的 20次方字节等于1MB,那么三十二位逻辑地址中的低20位将被隐掉,嵌入式系统会自动将其移到默认的地址对齐位置上,因此,用户实际获得的地址分配效果是从32’ h8000_0000 到32,h8010_000的1MB区域,从而导致了实际分配与用户预期不一致的情况。若用户还设定了一块上边界为32’ h8000_0000的区块2,则区块0和区块2将在地址32’ h8000_0000 处发生预想外的区域重叠,由于重叠区域的访问权限和加密设定有特别的规则,这样预想外的区域重叠情况很容易导致预想外的访问违规发生。此外,由于分区大小只能在以2为倍数,取256Byte到4GByte的若干种之中选择 (如5IIByte、1MB、2MB、4MB),若要实现3MB区块大小的分配,用户只能选择分配4MB的区块 1来满足要求,这样就会产生1MB的存储空间浪费。图4为本发明分区方法不会出现区块边界偏移的示意图。从图中可以看出,由于实现了上边界地址和下边界地址的独立配置,并且边界地址选择256Byte进行地址对齐, 即2的8次方字节等于256Byte,三十二位逻辑地址的低8位隐掉,因此能够实现用户预想的32,h800F_FF00到32,h801F_FF00的1MB区块0地址分配,同时避免了预想外的区块0 与区块2发生重叠。此外,由于本发明在分配区块1时明确选择256Byte进行地址对齐,因此能够轻松实现诸如3MB的区域1大小分配,由此大大提高了存储资源的利用率,使用户的多分区管理更加灵活精确。图5为传统分区方法配置寄存器示意图。从图中可以看出,传统的分区方法是以每个区块的起始地址以及区块大小为依据在CPU可寻址空间中来划分各区块,而且区块的大小是以2为倍数,取256Byte到4GByte范围。图6为本发明分区方法配置寄存器示意图。从图中可以看出,本发明在对嵌入式系统可寻址空间进行分区时,将需要划分的每个区块的上边界地址、下边界地址和地址对齐位数作为各区块划分的三种不同属性,采用三组配置寄存器来分别定义。由此可见本发明一方面解决了传统分区方法可能造成区块划分重叠以及由此产生的安全隐患问题,另一方面解决了传统分区方法带来的地址资源浪费,大大提高了嵌入式系统有限地址资源的利用率。本实施例尽管例举的是三十二位逻辑地址的嵌入式系统,但本领域技术人员在实施例的启发下,容易得出十六位和六十四位逻辑地址的嵌入式系统也同样可以实现。上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
权利要求
1.一种嵌入式系统可寻址空间的分区方法,其特征在于在对嵌入式系统可寻址空间进行分区时,将需要划分的每个区块的上边界地址、下边界地址和地址对齐位数作为各区块划分的三种不同属性,采用三组配置寄存器来分别定义,其中,第一组配置寄存器用来定义需要划分的各区块的上边界地址,第二组配置寄存器用来定义需要划分的各区块的下边界地址,第三组配置寄存器用来定义需要划分的各区块的地址对齐位数。
2.根据权利要求1所述的分区方法,其特征在于所述嵌入式系统具有三十二位逻辑地址,地址对齐位数在低八位到低三十一位之间的范围内选择。
3.根据权利要求1所述的分区方法,其特征在于所述嵌入式系统具有十六位逻辑地址,地址对齐位数在低八位到低十五位之间的范围内选择。
4.根据权利要求1所述的分区方法,其特征在于所述嵌入式系统具有六十四位逻辑地址,地址对齐位数在低八位到低六十三位之间的范围内选择。
全文摘要
一种嵌入式系统可寻址空间的分区方法,其特征在于在对嵌入式系统可寻址空间进行分区时,将需要划分的每个区块的上边界地址、下边界地址和地址对齐位数作为各区块划分的三种不同属性,采用三组配置寄存器来分别定义,其中,第一组配置寄存器用来定义需要划分的各区块的上边界地址,第二组配置寄存器用来定义需要划分的各区块的下边界地址,第三组配置寄存器用来定义需要划分的各区块的地址对齐位数。本发明一方面解决了传统分区方法可能造成区块划分重叠以及由此产生的安全隐患问题,另一方面解决了传统分区方法带来的地址资源浪费,大大提高了嵌入式系统有限地址资源的利用率。
文档编号G06F12/06GK102541752SQ20111044073
公开日2012年7月4日 申请日期2011年12月26日 优先权日2011年12月26日
发明者匡启和, 吴凯祺, 林雄鑫, 肖佐楠, 郑茳 申请人:苏州国芯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1