[发明专利]用于多核处理器的硬件锁实现方法及装置有效
申请号: | 201210493920.2 | 申请日: | 2012-11-28 |
公开(公告)号: | CN102937915A | 公开(公告)日: | 2013-02-20 |
发明(设计)人: | 任巨;张明;龚锐;邓宇;石伟;郭御风;窦强;罗莉;马爱永;王永文 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/50 |
代理公司: | 湖南兆弘专利事务所 43008 | 代理人: | 赵洪;谭武艺 |
地址: | 410073 湖南省长沙市砚瓦池正*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 多核 处理器 硬件 实现 方法 装置 | ||
技术领域
本发明涉及多核微处理器设计领域,具体涉及一种用于多核处理器的硬件锁实现方法及装置。
背景技术
锁同步是软件系统中多个任务间广泛使用的同步方法,而且现代软件对锁的访问频度很高,因此提高锁的访问效率,对于提高软件性能具有较大的好处。硬件锁通常是现代微处理器中提高锁访问效率的常用手段之一。硬件锁通常拥有一定容量的集成在处理器内的存储单元,访问速度快,而且与Cache等多层次存储系统隔离,因此避免了频繁的Cache失效、替换等操作,故相比利用存储系统实现的软件锁,硬件锁拥有更高的访问效率。
硬件锁的存储是集中式的,在处理器中位于一个固定的位置。在现代多核微处理器中,受物理布局和体系结构的限制,各个处理器核访问硬件锁时经过的路径是不同的,各个核访问同一硬件锁的执行速度通常是不平衡的,这会导致硬件锁的同步时间增长。
如图 1所示,现有技术含有硬件锁部件的多核处理器共有N+1个内核(Core0~CoreN),每两个内核共用一个路由器(Router),多级路由器将所有内核连接在一起,并共享同一个硬件锁。因为到硬件锁的路由器级数的不同,各个内核访问硬件锁的延迟是不一致的,例如Core2相对于Core0需要多经过一级路由器才能访问到硬件锁,其访问的绝对延迟必然大于Core0,这样的结构导致不同的处理器核之间访问硬件锁绝对延迟的不平衡。虽然软件上各个核发出锁访问的机率相同,但是硬件上绝对访问延迟的不同导致了锁访问不平衡,绝对访问延迟短的核(如Core0)能够频繁地访问锁,而绝对访问延迟长的核(如CoreN)则很难获取锁,而锁同步机制在各个核访问锁的次数均衡的情况下才能拥有最高的效率,故上述情况将导致锁同步的时间增大,降低硬件锁的应用效能。如何实现各个核对硬件锁的访问次数的平衡以提高锁同步应用的性能,成为了多核微处理器设计领域关于硬件锁设计的关键技术问题。
发明内容
本发明要解决的技术问题是提供一种能够使各处理器核获取硬件锁的机会均衡、硬件实现代价小、扩展性好、结构简单、易于实现的用于多核处理器的硬件锁实现方法及装置。
为了解决上述技术问题,本发明采用的技术方案为:
一种用于多核处理器的硬件锁实现方法,其实施步骤如下:
1)建立与处理器核一一对应的锁请求队列,初始化设置各个锁请求队列的权值,通过所述锁请求队列按照先入先出的原则分别缓存各处理器核发送的硬件锁访问请求;
2)获取锁请求队列的最小权值,选择最小权值对应的锁请求队列获得服务,将锁请求队列的权值在获得服务后递增,同时从获得服务的锁请求队列中选出最先进入的硬件锁访问请求执行锁存储空间访问操作并返回应答报文。
作为本发明用于多核处理器的硬件锁实现方法的进一步改进:
所述步骤1)中初始化设置各个锁请求队列的权值的详细步骤如下:
1.1)初始化设置各个锁请求队列的权值计数器和权值递增值;
1.2)将权值计数器的值初始化为权值递增值作为锁请求队列的权值。
所述步骤2)中获取锁请求队列的最小权值具体是指采用二叉树结构获取锁请求队列的最小权值。
所述采用二叉树结构获取锁请求队列的最小权值的详细步骤如下:
2.1)将各个锁请求队列的权值和权编号分别输入二叉树的末梢节点;
2.2)所述二叉树的每一个节点将子节点输入的权项的权值进行比较并选择权值较小的权项作为输出至父节点的权项,最终由所述二叉树的根节点将最终选择得到的权项作为最终选择得到的权值最小的锁请求队列;
2.3)选择最小权值对应的锁请求队列获得服务。
所述步骤2)中将锁请求队列的权值在获得服务后递增的详细步骤如下:将有效的锁请求队列的权值在获得服务后的下一个周期将权值递增值累加到对应的权值计数器作为新的权值;同时判断获得服务的锁请求队列的权值计数器的值是否等于权值计数器的最大计数值,如果是则将所有锁请求队列的权值计数器初始化为权值递增值。
本发明还提供一种用于多核处理器的硬件锁装置,包括:
锁请求队列单元,包含多个与处理器核一一对应的锁请求队列,所述锁请求队列按照先入先出的原则分别缓存各处理器核发送的硬件锁访问请求;
权值计数逻辑单元,用于初始化设置各个锁请求队列的权值,并将锁请求队列的权值在获得服务后递增;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210493920.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:网页呈现系统和方法
- 下一篇:一种管理默认应用程序的方法及装置