[发明专利]用于计算设备中的同步的方法、系统、设备和装置有效
申请号: | 201580061444.9 | 申请日: | 2015-11-13 |
公开(公告)号: | CN107003954B | 公开(公告)日: | 2020-09-08 |
发明(设计)人: | K·吴;J·陆;Y-F·李 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F13/16 | 分类号: | G06F13/16;G06F13/14 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 姬利永 |
地址: | 美国加利*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 计算 设备 中的 同步 方法 系统 装置 | ||
一个实施例提供了一种装置。所述装置包括处理器、芯片组、存储器、以及逻辑,所述存储器用于存储进程。所述处理器包括一个或多个核并且用于执行所述进程。所述逻辑用于:响应于平台处理器利用率参数(PUP)大于检测利用率阈值(UT)而获取性能监控数据;至少部分地基于所检测的热函数和/或所检测的热循环中的至少一者来标识自旋循环;使用二进制转换来修改所述所标识的自旋循环以创建经修改进程部分;以及实现从所述所标识的自旋循环到所述经修改进程部分的重新定向。
技术领域
本公开涉及一种计算设备,具体地涉及在所述计算设备中的同步。
背景技术
计算设备(诸如膝上型计算机、平板电脑和/或智能电话)通常包括处理器、存储器以及一个或多个外围设备。所述处理器可以包括被配置为用于执行一个或多个应用的一个或多个处理单元,例如(多个)核。进程(即执行应用)可以包括一个或多个线程。处理器可以被配置为用于通常并行地执行一个或多个进程和/或线程。所述(多个)进程和/或(多个)线程能够以例如包括在操作系统(OS)中的调度器管理的时间片方式共享所述(多个)处理单元。
所述OS(和/或与所述OS相关联的内核)可以被配置为用于通过多个线程使存储器访问同步,以防止第二线程访问第一线程已经启动了对其进行操作但尚未完成的存储器位置。同步被配置为用于防止在存储器位置的读取结果取决于所述多个线程的执行顺序的竞争状况。同步通常由被配置为用于确保相关联的操作是原子的锁函数(例如,自旋锁)来实现,即,相关联的操作一旦启动就完成和提交而没有另一线程访问目标存储器位置。
附图说明
要求保护的主题的特征和优点将从与其一致的实施例的以下详细描述中变得显而易见,应参照附图考虑所附描述,在附图中:
图1展示了与本公开的多个不同实施例一致的计算设备的函数框图;
图2是根据本发明的多个不同实施例的同步操作的流程图;并且
图3是根据本发明的多个不同实施例的自旋循环(spin loop)标识操作的流程图。
虽然以下具体实施方式将参考说明性实施例进行,但是许多替代方案、修改及其变体将对本领域的技术人员而言是明显的。
具体实施方式
当应用与第一线程相关联的锁并且第二线程正在执行时,内核可能导致第二线程尝试访问被锁定存储器单元失败。第二个线程可以执行自旋循环,直到与第一线程相关联的锁被释放。自旋循环被配置为用于重复地尝试存储器访问操作并且可以在多次尝试之间暂停。失败被配置为继续自旋循环,并且成功被配置为退出自旋循环。这样的自旋循环在等待成功执行存储器访问操作的同时消耗处理器周期和/或可以增加处理器功耗。
总体上,本公开涉及(多种)用于计算设备的同步方法(和系统)。所述(多种)方法和系统被配置为标识在计算设备上执行的进程中的(多个)自旋循环。所述(多种)方法和系统被进一步配置为用于在运行时使用二进制转换来修改所识别的自旋循环,以减轻自旋锁的影响,例如减少处理器资源的消耗。
如本文所使用的,进程对应于在处理器上执行的应用,并且线程对应于所述进程的实例。处理器可以包括一个或多个执行核。处理器可以被配置为可各自包括一个或多个执行核的一个或多个套接字。
可以至少部分地基于所检测的热函数(hot function)、所检测的热循环(hotloop)和/或所选择的热指令(hot instruction)中的一者或多者来标识自旋循环。所检测的热函数和/或热循环的执行可能消耗大于一个或多个阈值的处理器资源。热指令对处理器资源的消耗相对于包括在包括所述热指令的函数和/或循环中的其他指令而言可能较高。热函数、热循环和/或热指令可以或可以不与自旋循环相关。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201580061444.9/2.html,转载请声明来源钻瓜专利网。