[发明专利]面向众核处理器的片上锁变量全局编址存储方法及装置有效
| 申请号: | 201210530854.1 | 申请日: | 2012-12-11 |
| 公开(公告)号: | CN103034593A | 公开(公告)日: | 2013-04-10 |
| 发明(设计)人: | 李春江;王永文;杨灿群;冯华;高军;唐滔 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
| 主分类号: | G06F12/08 | 分类号: | G06F12/08 |
| 代理公司: | 湖南兆弘专利事务所 43008 | 代理人: | 赵洪;谭武艺 |
| 地址: | 410073 湖南省长沙市砚瓦池正*** | 国省代码: | 湖南;43 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 面向 处理器 上锁 变量 全局 存储 方法 装置 | ||
技术领域
本发明涉及共享存储众核处理器体系结构设计领域,具体涉及一种面向众核处理器的片上锁变量全局编址存储方法及装置。
背景技术
一)共享存储片上众核处理器
近30多年来,随着集成电路实现工艺的进步,高性能通用微处理器芯片上晶体管的数目一直遵从摩尔定律接近每18个月左右翻一番。当前主流高端处理器芯片上的晶体管数目已经达到10亿量级。如何利用如此大量的晶体管资源设计实现高性能通用微处理器是当前学术界和产业界普遍关注的问题。共享多级存储层次的片上众核处理器体系结构,是当前及未来相当长时期内通用高性能微处理器的主流体系结构。这种高性能微处理器体系结构的抽象模型如图1所示。图1中将L3级高速缓存用虚框表示的原因是具体实现的时候,该级高速缓存不一定实现或者不一定实现在芯片内。
在这种处理器体系结构中,对于应用程序中的锁变量,作为一般的数据对待。对高并发应用的性能降低主要来自两个方面:
1)处理器对于锁变量的访问需要进入处理器的各级高速缓存(Cache),那么对于多个处理器核上的多个线程并发访问锁变量的时候,要频繁作废掉处理器核中的L1级高速缓存中的锁变量,对高并发的应用而言会引起较大的性能降低。例如,处理器核0上运行的线程对一个64位的锁变量加一(这在栅栏同步中非常常见),那么如果处理器核1上的线程也要接下来对锁变量加一,就必须等到处理器核0将最新的锁变量的值写入L2级高速缓存后再从L2级高速缓存读入处理器核1的L1级高速缓存,然后再读入寄存器完成写操作,同时作废掉其他处理器核的L1级高速缓存中的该变量。这在众多线程并发读写锁变量的时候会引起大量的L1级高速缓存作废操作,使高并发应用的性能降低。
2)将锁变量作为一般的数据变量对待,需要按照统一的虚存管理机制管理锁变量所处的虚存页面,那么,锁变量所处的虚存页面很可能会被换出处理器的主存储器,影响高并发应用并发访问锁变量的性能。而且,由于和普通数据采用同样的存储管理方式,对锁变量的访问也要经过和数据变量一样的虚实地址转换过程,在众多线程并发访问锁变量的时候会极大地降低性能。
二)锁变量访问是高并发环境下制约性能提升的重要因素
对于图1这种共享存储片上众核处理器,多线程并行是最直接最高效的并行执行模式,甚至其中的处理器核本身就可能在硬件层面上支持多线程。因此,该类处理器是一种高并发度的片上并行系统。基于锁的同步机制是共享存储片上众核处理器中最广泛使用的同步机制,有大量的遗留软件使用这种同步方式。锁是多线程并行程序在用户数据空间中定义的数据元素,各个并发的线程利用处理器提供的比较并交换指令完成加锁/解锁原子操作。因此在海量线程高度并发的条件下,大量线程对锁变量的并发访问开销是高并发并行程序同步开销的主体。在如图1所示的结构中,通常锁变量在所有处理器核共享的存储层次中维持一致性,目前的多核和众核处理器通常在所有处理器核共享的L2级高速缓存中维持锁变量的一致性。以最简单的锁变量为例,处理器核上执行的线程必须访问L2级高速缓存中的锁变量(如果该变量不在L2中则必须从主存储器中取)。那么,每个线程的加锁解锁过程几乎都会引发对L2级高速缓存甚至是主存储器的访问。
目前,在通用的高并发度程序中,锁变量和用户程序空间的数据变量采用同样的处理方式,这对于提高锁变量访问的性能有以下两点制约:1)锁变量不能总是在访问速度最快的共享存储层次中存在;2)锁变量和一般的数据变量访问频度不同,但是采用同样的存储管理机制,严重影响高并发应用的性能;例如按照L2级高速缓存替换策略,锁变量可能会经常替换出高速缓存进入主存储器,并且虚存管理策略也可能将锁变量所在的存储器页面替换到外存储器,因此会严重影响性能。
三)相关的研究和实现工作
提高锁变量并发访问的性能是硬件实现的分布共享存储系统和共享存储片上众核系统中共同关注的关键问题之一。例如美国2010年公示的专利申请《硬件存储器锁(Hardware Memory Locks)》(US 2010/0115195 A1)记载了用一个SOC(片上系统,System-On-Chip)协助管理对存储器中锁变量的访问、实现硬件支持的锁变量快速访问的技术方案,该技术方案适用于多处理器构成的分布共享存储器并行计算系统中。但是,该技术方案并不适用于片上众核的处理器体系结构,同时该专利并没有将锁变量存储器映射到全局地址空间中,因此在访问锁变量时还需要进行复杂的虚实地址转换,锁变量访问性能较低。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210530854.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种运动部分解耦型锻造操作机
- 下一篇:一种高温环境下使用的液位控制装置





