处理器装置、使用它的信息处理装置、编译装置及其方法制造方法及图纸

技术编号:2874200 阅读:135 留言:0更新日期:2012-04-11 18:40
一种处理器装置,包括: 命令处理单元,读入并顺次执行存储器装置上的程序; 地址寄存器,被所述命令处理单元读写,并且存储程序中指针的绝对地址; 范围信息寄存器,被所述命令处理单元读写,并且使用绝对地址来存储有关该指针的范围信息;以及 例外发生单元,在所述命令处理单元利用所述地址寄存器的指针,对存储器装置进行存取时,输入所述命令处理单元的输出和所述范围信息寄存器的范围信息,在存储器装置的违反范围时,向所述命令处理单元输出例外信号。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及具有存储器保护功能的处理器装置、编译装置及其关联技术。
技术介绍
计算机系统中的现有的存储器保护技术几乎由处理器或编译器单独完成,基于组合的存储器保护技术也不过是该技术的延伸。作为处理器中的存储器保护技术,有如段寄存器等那样,使用表示地址范围的寄存器装置的段保护技术,以及设定存储器的可存取范围,将存储器管理单元(MMU)等设置在处理器中的分页保护技术等。在这些技术中,通过仅对以处理器的特权模式工作的OS提供存取范围的设定,从而在不正确的存取时产生例外。作为单独基于编译器的存储器保护技术,还有将全部用软件来实现存储器监视功能的代码埋入到程序中的方法。有以软件高速进行存储器监视的处理器结构,但在仅具有高速进行存储器范围检查的结构中,不存在明确使用高级语言中的指针的结构。在以上中,首先在段保护和分页保护中,由于只能以OS可执行的处理器的特权模式来重写,所以在不存在具有存储器保护功能的高级OS的情况下,不能使用。此外,在控制和通信等用途中,不能使用任务切换开销大的MMU。而且,段寄存器和MMU表的分配单位是按处理为单位被OS分配的单位,不可能进行对应于应用程序内部结构的细致的存储器保护,在与处理相当的处理器仅存在一个来装入应用程序中的大规模程序时,难以应用。用软件进行的存储器保护技术在检查上需要时间,实用上差。存在使用配有硬件的地址范围比较器,使其高速化的处理器的方法。但是,在对象间转交指针的情况下,指针保持的地址值需要与指针同时转交独立的存取范围,不存在严格支持转交的体系结构,停滞于窄范围中的被限定的保护。而在可严格进行转交的情况下,由于没有可同时操作指针和存取范围的功能,所以在操作中发生中断的情况下,指针和存取范围的匹配性损失。鉴于以上方面,在(日本)特开平7-6095号公报中,提出了以下技术在通过指针,对存储器块进行存取时,不降低程序的执行速度,来防止不当的存取。但是,在该技术中,在处理器中,尽管准备了存储地址范围的寄存器,但没有准备存储指针值本身的寄存器。因此,实际上,基于该技术,不能分别处理指针和被该指针允许的地址范围信息。即,在该技术中,为了保证所谓的指针和存取范围始终取得匹配的原子(アトミツク)性,在每次指针的操作时,必须禁止中断等,否则效率会显著下降。此外,在该技术中,对于一个处理,由局部模块内部中的存储器范围检查等来对付。因此,如果发生超过模块的存储器存取,则难以正确地保持其保护范围。
技术实现思路
因此,本专利技术的目的在于提供一种技术,在使用指针的程序语言中,原样保证实时性,并正确地保护超过模块的指针存取范围。在第1专利技术的处理器装置中,包括命令处理单元,读入并顺次执行存储器装置上的程序;地址寄存器,被命令处理单元读写,并且程序中指针的绝对地址;范围信息寄存器,存储被命令处理单元读写,并且使用绝对地址来存储有关该指针的范围信息;以及例外发生单元,在命令处理单元利用地址寄存器的指针,对存储器装置进行存取时,输入命令处理单元的输出和范围信息寄存器的范围信息,在存储器装置的违反范围时,向命令处理单元输出例外信号。根据该结构,可以将指针和其范围信息不可分地相关联,即使指针被超过模块使用,也可以检测基于指针操作的违反存取,可以提高工作稳定性。在第2专利技术的处理器装置中,包括命令处理单元,读入并顺次执行存储器装置上的程序;程序计数器,被命令处理单元读写,并且存储程序中的执行地址值;范围信息寄存器,被命令处理单元读写,并且存储有关程序的执行地址值的范围信息;以及例外发生单元,在命令处理单元在程序计数器中存储新的执行地址值时,输入该新的执行地址值和范围信息寄存器的范围信息,在违反范围时,向命令处理单元输出例外信号。根据该结构,可以将执行地址值和其范围信息不可分地相关联,即使执行地址值因分支等而变化,也可进行突发检测,可以提高工作稳定性。在第3专利技术的处理器装置中,包括命令处理单元,读入并顺次执行存储器装置上的程序;地址寄存器,被命令处理单元读写,并且存储程序中的指针的绝对地址;第1范围信息寄存器,被命令处理单元读写,并且使用绝对地址,来存储有关该指针的范围信息;第1例外发生单元,在命令处理单元对存储器装置进行存取时,输入命令处理单元的输出和第1范围信息寄存器的范围信息,在存储器装置的违反范围时,向命令处理单元输出第1例外信号;程序计数器,被命令处理单元读写,并且存储程序中的执行地址值;第2范围信息寄存器,被命令处理单元读写,并且存储有关执行地址值的范围信息;以及第2例外发生单元,在命令处理单元在程序计数器中存储新的执行地址值时,输入该新的执行地址值和第2范围信息寄存器的范围信息,在违反范围时,向命令处理单元输出第2例外信号。根据该结构,可以将指针和其范围信息不可分地相关联,即使指针被超过模块使用,也可以检测基于指针操作的违反存取,可以提高工作稳定性。此外,可以将执行地址值和其范围信息不可分地相关联,即使执行地址值因分支等而变化,也可进行突发检测,可以提高工作稳定性。在第4专利技术的处理器装置中,地址寄存器、第1范围信息寄存器、程序计数器、以及第2范围信息寄存器都由通用寄存器构成。根据该结构,在已有的处理器装置中不进行大幅度的变更,也可以安装必要的功能。在第5专利技术的处理器装置中,范围信息包含范围的上限值和范围的下限值。在该结构中,根据上限值和下限值,可以明确地定义范围。在第6专利技术的处理器装置中,范围信息包含范围的下限值和从该下限值至范围的上限值的长度。在该结构中,根据上限值和从下限值至范围的上限值的长度,可以明确址定义范围。在第7专利技术的处理器装置中,范围信息包含表示读写允许/禁止的属性。根据该结构的属性,可以实现细致的存取控制。在第8专利技术的处理器装置中,范围信息包含范围的上限值而不包含范围的下限值。根据该结构,可以用很少的存储器量来实现实际情况上有效的范围保护。在第9专利技术的处理器装置中,命令处理单元在一机器语言命令中执行将程序指针的绝对地址存储在地址寄存器中的处理、以及将该指针的范围信息存储在范围信息寄存器中的处理。在第10专利技术的处理器装置中,命令处理单元在一机器语言命令中执行将新的执行地址值存储在程序计数器中的处理、以及将执行地址值的范围信息存储在范围信息寄存器中的处理。在这些结构中,根据一机器语言命令来执行这些处理,不因中断而使处理被分断,原子性高,可以确保正确的动作。附图说明图1是本专利技术实施方式1的处理器装置的方框图。图2(a)是本专利技术实施方式1中采用的源代码的例示图。图2(b)~图2(d)是带有相同范围信息的指针的状态说明图。图3是本专利技术实施方式2的编译装置的方框图。图4是该编译装置的流程图。图5是本专利技术实施方式3的编译装置的方框图。图6是该编译装置的流程图。图7是搭载了本专利技术实施方式1的处理器装置的信息处理装置的方框图。图8(a)、图8(b)是该信息处理装置的外观图。具体实施例方式首先,在具体结构的说明之前,说明本专利技术的基本考虑方法。(关于存储器存取保护)现有的大多数存储器保护技术,主流是以OS的存在为前提,以程序的处理单位来进行粒度粗糙的保护。这在执行不特定代码时是有效的,但不适于仅执行设计者意图的程序的内部系统。在编译程序中移交管理存储器保护功能的情况下,如果使存取前提的每个变量的本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:渕上竜司米泽友纪大博树田中义辉
申请(专利权)人:松下电器产业株式会社
类型:发明
国别省市:

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

1