[发明专利]转换原子读取-修改-写入访问有效
| 申请号: | 201780011521.9 | 申请日: | 2017-02-09 |
| 公开(公告)号: | CN108701049B | 公开(公告)日: | 2021-12-31 |
| 发明(设计)人: | C·丹恩;Y·巴卡特;A·基什安 | 申请(专利权)人: | 微软技术许可有限责任公司 |
| 主分类号: | G06F9/455 | 分类号: | G06F9/455 |
| 代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 顾嘉运;陈斌 |
| 地址: | 美国华*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 转换 原子 读取 修改 写入 访问 | ||
本文中描述了用于转换原子读取‑修改‑写入访问的各种系统和方法。在一个示例中,一种方法包括确定第一语言的机器指令指定原子读取‑修改‑写入访问。该方法包括生成第二语言的机器指令以在地址对齐的情况下执行针对地址的原子访问。该方法包括生成第二语言的机器指令以在地址非对齐的情况下获取全局锁。附加地,该方法包括生成第二语言的机器指令以在地址非对齐的情况下执行针对地址的非原子访问。另外,该方法包括生成第二语言的机器指令以在地址非对齐的情况下释放该全局锁。
背景
原子访问是多个计算机处理器中的一者对存储中所共享的数据排他地执行读取、写入或修改的一种尝试。大多数读取和写入在默认情况下是原子的。然而,在一些计算机编程语言中,存在确保这种原子性的特定命令。例如,x86汇编语言在原子化的读取-修改-写入命令上使用LOCK前缀。读取-修改-写入命令是将读取和算术相组合并写入结果的指令。这些原子访问发生在被设计成在特定计算机处理器上运行的计算机程序内。然而,可能期望在不同计算机处理器上运行为一个处理器生成的计算机程序。
计算机处理器被设计成基于可对设备进行编程的规定的机器语言来操作。不同处理器(诸如ARM和x86处理器)各自根据它们自己的机器语言来操作。计算机处理器可因而被编程为基于用特定机器语言编写的程序来执行任何数量的功能。因此,对于用一种机器语言编写的应用(即,被配置成在一种计算机处理器上运行的应用)而言可能难以在基于不同机器语言操作的处理器上被安装和运行。
概述
以下提供了简化概述,以提供对本文中描述的某些方面的基本理解。该概述不是权利要求主题的广泛概览。该概述不旨在标识所要求保护的主题的关键或决定性元素,也不旨在描述所要求保护的主题的范围。该概述的唯一目的是以简化的形式将所要求保护的主题的一些概念表达为下文表达的更详细说明的序言。
一实施例提供了一种用于转换原子读取-修改-写入访问的系统。该系统包括计算机处理器和计算机存储器。计算机存储器储存致使计算机处理器确定第一语言的机器指令指定原子读取-修改-写入访问的指令。此外,这些指令致使处理器生成第二语言的机器指令以在地址对齐的情况下执行针对地址的原子访问。如本文中所提到的对齐的地址包括存储器地址,该存储器地址是在访问中的字节数的倍数。此外,这些指令致使处理器生成第二语言的机器指令以在地址非对齐的情况下获取全局锁。如本文中所提到的非对齐的地址包括存储器地址,该存储器地址不是在访问中的字节数的倍数。附加地,这些指令致使处理器生成第二语言的机器指令以在地址非对齐的情况下执行针对地址的非原子访问。另外,这些指令致使处理器生成第二语言的机器指令以在地址非对齐的情况下释放全局锁。
一实施例提供了一种用于转换原子读取-修改-写入访问的方法。该方法包括确定第一语言的机器指令指定原子读取-修改-写入访问。该方法还包括生成第二语言的机器指令以在地址非对齐的情况下获取全局锁。该第一语言用于第一处理器,而该第二语言用于第二处理器。此外,该方法包括生成第二语言的机器指令以在地址对齐的情况下执行原子访问。附加地,该方法包括生成第二语言的机器指令以在地址非对齐的情况下执行非原子访问。另外,该方法包括生成第二语言的机器指令以在地址非对齐的情况下释放全局锁。
一实施例提供了一个或多个计算机可读存储设备。该计算机可读存储设备包括计算机可读指令,这些计算机可读指令在由一个或多个处理设备执行时致使该一个或多个处理设备确定第一语言的机器指令指定原子读取-修改-写入访问。另外,这些计算机可读指令致使该一个或多个处理设备生成第二语言的机器指令以在地址非对齐的情况下获取全局锁。该第一语言用于第一处理器,而该第二语言用于第二处理器。此外,这些计算机可读指令致使该一个或多个处理设备生成第二语言的机器指令以在地址对齐的情况下执行原子访问。此外,这些计算机可读指令致使该一个或多个处理设备生成第二语言的机器指令以在地址非对齐的情况下执行非原子访问。附加地,这些计算机可读指令致使该一个或多个处理设备生成第二语言的机器指令以在地址非对齐的情况下释放全局锁。
附图简述
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201780011521.9/2.html,转载请声明来源钻瓜专利网。





