[发明专利]检测未初始化存储器读取的设备、系统和方法在审
申请号: | 201911142535.1 | 申请日: | 2019-11-20 |
公开(公告)号: | CN111352757A | 公开(公告)日: | 2020-06-30 |
发明(设计)人: | 罗恩·加博尔;托马尔·斯塔克;约瑟夫·努兹曼;埃迪·塔尔 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F11/07 | 分类号: | G06F11/07 |
代理公司: | 北京东方亿思知识产权代理有限责任公司 11258 | 代理人: | 宗晓斌 |
地址: | 美国加利*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 检测 初始化 存储器 读取 设备 系统 方法 | ||
本公开涉及检测未初始化存储器读取的设备、系统和方法。公开了用于处理器的电路的技术和机制,用于自动提供指示未初始化存储器块的元数据并且基于其执行操作。在一实施例中,处理器电路检测指定要基于存储器块处的某个数据执行的第一操作的软件指令。与所述数据相对应的元数据包括对于该数据是否基于未初始化存储器条件的标识符。对该指令的处理包括处理器电路基于该标识符自动执行第二操作。第二操作是独立于该应用的指定第二操作的任何指令执行的。在另一实施例中,对指令的执行(如果有的话)是以基于状态标识符的评估为条件的,或者第二操作是基于第一指令的执行而被自动执行的。
技术领域
本发明的实施例总体上涉及处理器操作,更具体而言(但并非排他地)涉及提供指出数据是否基于未初始化存储器状态的信息。
背景技术
存储器初始化一般指的是使给定的存储器资源进入数据存储的某个确定性状态的过程。存储器资源在存储器资源存储如下数据时被认为是未初始化的:该数据可能被损坏、过时、随机和/或在其他方面以一种使其难以被差错检测/纠正来分辨的方式成为无用的。在典型的情形中,存储器资源的未初始化状态在软件程序例如通过调用存储器分配函数malloc()来请求新的存储器缓冲区时引起。程序接收到存储器中的位置的指针,并且从而能够从所述位置读取和/或写入到所述位置。然而,该存储器位置在分配时包含未知的遗留数据。作为对比,一些架构支持的calloc()函数在使这种存储器位置可用于程序之前将其中的遗留数据清除。
“未初始化存储器读取”(uninitialized memory read,UMR)通常发生于在某个存储器资源未初始化之时从该存储器资源读取数据时。因此,UMR造成了一种风险,即软件操作基于与其预期利用没有相关性的数据被错误地或不正确地执行。基于UMR的差错是C/C++和实现动态存储器访问的其他软件语言中的常见缺陷。这种基于UMR的差错通常引起不可预测的程序行为、造成数据损坏或者引起安全漏洞,这些安全漏洞可被利用来发起攻击。因此,对于对基于未初始化存储器读取的软件操作的防止的持续改进,有越来越大的需求。
发明内容
根据本公开的第一方面,提供了一种处理器,包括:第一电路,其用于检测应用的指令,其中,所述指令指定要基于数据执行的第一操作,其中,与所述数据相对应的元数据包括指定所述数据是否是基于未初始化存储器条件的状态标识符;以及第二电路,其用于处理所述指令,其中,所述第二电路基于所述状态标识符、独立于所述应用的指定第二操作的任何指令来自动执行所述第二操作,其中:对所述指令的任何执行是以基于所述状态标识符的评估为条件的;或者所述第二操作是基于对所述第一指令的执行而被自动执行的;其中,向或者从存储器对所述数据和所述元数据两者的通信是基于指向存储所述数据的存储器块的指针的。
根据本公开的第二方面,提供了一种用于处理器的方法,所述方法包括:检测应用的指令,其中,所述指令指定要基于数据执行的第一操作,其中,与所述数据相对应的元数据包括指定所述数据是否是基于未初始化存储器条件的状态标识符;并且处理所述指令,包括基于所述状态标识符、独立于所述应用的指定第二操作的任何指令来自动执行所述第二操作,其中:对所述指令的任何执行是以基于所述状态标识符的评估为条件的;或者所述第二操作是基于对所述第一指令的执行而被自动执行的;其中,向存储器或者从存储器对所述数据和所述元数据两者的通信是基于指向存储所述数据的存储器块的指针的。
根据本公开的第三方面,提供了一种系统,包括:处理器,其包括:第一电路,其用于检测应用的指令,其中,所述指令指定要基于数据执行的第一操作,其中,与所述数据相对应的元数据包括指定所述数据是否是基于未初始化存储器条件的状态标识符;以及第二电路,其用于处理所述指令,其中,所述第二电路基于所述状态标识符、独立于所述应用的指定第二操作的任何指令来自动执行所述第二操作,其中:对所述指令的任何执行是以基于所述状态标识符的评估为条件的;或者所述第二操作是基于对所述第一指令的执行而被自动执行的;其中,向存储器或者从存储器对所述数据和所述元数据两者的通信是基于指向存储所述数据的存储器块的指针的;以及显示设备,其耦合到所述处理器,所述显示设备基于所述指令显示图像。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911142535.1/2.html,转载请声明来源钻瓜专利网。