[发明专利]用于保护调用栈中的数据的信息处理装置和方法有效
申请号: | 201280072519.X | 申请日: | 2012-04-20 |
公开(公告)号: | CN104246693B | 公开(公告)日: | 2018-09-04 |
发明(设计)人: | 亚历山德鲁·波罗萨努 | 申请(专利权)人: | 恩智浦美国有限公司 |
主分类号: | G06F11/10 | 分类号: | G06F11/10;G06F9/448 |
代理公司: | 中原信达知识产权代理有限责任公司 11219 | 代理人: | 陈依虹;刘光明 |
地址: | 美国得*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 保护 调用 中的 数据 信息处理 装置 方法 | ||
一种信息处理装置(10)包括控制单元(12)、散列单元(16)和比较单元(18)。控制单元(12)被布置成运行程序并将程序的至少一个流控制信息存储在调用栈中。散列单元(16)被布置成响应于程序的第一上下文变化,通过将散列函数应用于选择的数据来生成第一散列值,选择的数据包括调用栈的至少一个或多个选择的项,第一上下文变化包括程序的第一进程或线程的终止或中断。控制单元(12)还被布置成仅当散列单元生成第一散列值的时候,才启动或恢复程序的第二进程或线程。散列单元(16)还被布置成响应于第二上下文变化,通过将散列函数再次应用于选择的数据来生成第二散列值,第二上下文变化包括第二进程或线程的终止或中断。比较单元(18)被布置成确定第一散列值和第二散列值是否相同。
技术领域
本发明涉及信息处理装置、用于在信息处理装置上运行程序的方法以及计算机程序产品。
背景技术
信息处理装置是能够运行程序的装置。程序可以是数字数据操作的任何序列。程序可以由驻留在装置的可编程或不可编程存储器单元中的指令来定义。运行程序可能涉及维护包括了可变数目堆栈项的调用栈。
堆栈可以被定义为一序列数据项,该序列数据项可以通过在序列末尾附加新项被增加以及通过从序列末尾移除项被减小。堆栈可以例如借助于后进先出(LIFO)缓冲器被实现。将项添加到堆栈也被称为将项推入到堆栈。从堆栈移除项也被称为从堆栈弹出项。
注意,程序可具有嵌套结构。例如,程序可包括调用各种子例程,并且这些子例程可能进而包括调用子例程,而这进而又可能包括调用子例程等等。每当子例程被调用的时候,返回地址就可被推入到堆栈,该返回地址指示在执行子例程之后要被执行的指令。当子例程已经被终止并且返回地址已从堆栈中读取的时候,返回地址可以从堆栈中弹出。
调用栈是堆栈的实例。调用栈尤其可包括关于程序的活动进程、线程或子例程的信息。调用栈可因此被定义为包含了流信息的堆栈。因此,调用栈的内容对信息处理装置的正常运行至关重要。例如,返回地址中的任何错误可能导致信息处理装置处理与信息处理装置的存储器单元中的当前数据值完全无关的指令。通常,调用栈中的错误可能导致信息处理装置崩溃。
发明内容
本发明提供了信息处理装置、方法以及计算机程序产品。
本发明的具体实施例在从属权利要求中被阐明。
参照下文中描述的实施例,本发明的这些或其它方面将会很明显并且被阐述。
附图说明
参照附图,仅仅通过举例的方式,本发明的进一步细节、方面和实施例将被描述。在附图中,类似的符号被用于表示相同的或功能相似的元素。为了简便以及清晰,附图中的元素不一定按比例绘制。
图1示意性地示出了信息处理装置的实施例的例子。
图2示出了用于保护调用栈的方法的实施例的例子的流程图。
图3示意性地示出了在执行中断服务例程之后的调用栈的例子。
图4示意性地示出了在执行中断服务例程之后的调用栈的例子。
图5示意性地示出了微处理器的例子。
具体实施方式
由于本发明说明的实施例可能大部分是通过使用本领域所属技术人员所熟知的电子元件和电路被实施,所以不会在比上述所说明的认为有必要的程度大的任何程度上解释细节。对本发明基本概念的理解以及认识是为了不混淆或偏离本发明所教之内容。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于恩智浦美国有限公司,未经恩智浦美国有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201280072519.X/2.html,转载请声明来源钻瓜专利网。