[发明专利]多副本非原子写的存储序同步操作实现方法与实现装置有效
申请号: | 202111497698.9 | 申请日: | 2021-12-09 |
公开(公告)号: | CN113900968B | 公开(公告)日: | 2022-03-11 |
发明(设计)人: | 夏军;晏小波;蔡学武;霍泊帆;陈锞;陈杨阳 | 申请(专利权)人: | 南湖实验室 |
主分类号: | G06F12/0831 | 分类号: | G06F12/0831;G06F12/0842;G06F12/0888;G06F12/0811 |
代理公司: | 浙江永鼎律师事务所 33233 | 代理人: | 张晓英 |
地址: | 314000 浙江省*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 副本 原子 存储 同步 操作 实现 方法 装置 | ||
本发明公开了一种多副本非原子写的存储序同步操作实现方法与实现装置,包括采用非原子写实现方式的微处理器架构,微处理器架构包括若干Cache代理、若干目录代理和若干IO代理,若干Cache代理通过片上互联网络连接于若干目录代理和若干IO代理,片上互联网络具有至少三个消息通道供Cache一致性协议使用,若干Cache代理通过若干用于实现强同步的同步处理模块连接于片上互联网络,每个Cache代理对应一个同步处理模块。本发明能确保在硬件线程的强同步指令执行完成之时,前面发出的读写操作都已真正执行完毕,从而解决了Non‑MCAW的强同步语义实现问题,在Non‑MCAW基础上实现强同步,保持Non‑MCAW实现的微处理架构的优势,能够有效简化硬件设计。
技术领域
本发明属于非原子写的存储序同步操作技术领域,尤其是涉及一种多副本非原子写的存储序同步操作实现方法与实现装置。
背景技术
现代微处理器一般采用多核多线程共享存储架构,存储一致性是支撑并行程序在该架构下能正确运行的基础。存储一致性定义了对不同地址的存储访问操作的排序规则,根据其所允许的排序规则不同,存储一致性可以有多种存储一致性实现模型,例如顺序(Sequential)一致性模型、TSO(Total Store Order)模型、松弛(Relaxed)一致性模型等。由于不同的存储一致性模型定义了不同的合法存储序,因此软件编程人员必须清楚多核多线程共享存储架构所采用的存储一致性模型,才能在该架构上编写出正确的并行程序。
为了提高访存性能,现代多核多线程微处理器一般都会实现多级Cache。Cache的引入会导致相同地址多个数据副本之间的不一致性,为了解决该问题,多核多线程微处理器一般会采用Cache一致性协议来保证不同Cache中数据副本的一致性。Cache一致性协议的实现一般需要Cache代理(Cache Agent,CA)、目录代理(Home Agent,HA,现代多核多线程微处理器大都采用基于目录的Cache一致性协议)、IO代理(IO Agent,IA)。CA中的Cache可以缓存数据副本,能发出访问请求、接收数据响应和监听请求(用于作废数据副本或获取最新数据)。HA用于记录数据副本的状态,能接收访问请求、发出数据响应和监听请求。IA不能缓存数据副本,能发出访问请求和数据响应、接收访问请求、数据响应和监听请求(用于获取最新数据)。从上可看出,为了避免协议死锁,一致性协议的实现至少需要三个消息通道,即请求通道、响应通道和监听通道,分别用于传输访问请求、数据响应和监听请求。CA、HA和IA通过片上互连网络进行连接,且该网络一般是维序网络(即从相同源Agent发出的消息会顺序到达同一个目的Agent)。
多核多线程微处理器的处理器核到内存之间可能存在多级缓存,处理器核硬件线程发出的最新写数据需要经过多个缓存才能最终达到内存,这使得有些缓存中的数据是最新的数据副本,而有的缓存中的数据是旧的数据副本,这会引入写操作的原子性问题。存储一致性除了要定义合法的存储序规则,还需要定义写操作的原子属性,以描述写操作的原子性问题。根据不同硬件线程所能观察到的写数据的新值的时间不同,写操作的原子属性可以分为多副本原子写(multi-copy atomic write,MCAW)和多副本非原子写(non-multi-copy atomic write,Non-MCAW)两类。MCAW保证了当某个硬件线程观察到了某个写操作,且该硬件线程不是该写操作的发起者,则所有其它线程都能观测到该写操作。MCAW使得某个硬件线程的写数据要么能被其它硬件线程同时观察到(即都能读取新值),要么都不能被观察到(即都只能读取旧值),这说明写操作具有原子特性。Non-MCAW则无法保证写操作的原子特性,当某个硬件线程观察到了某个写操作时,其它线程不一定能观察到该写操作,即有的硬件线程能读取该写操作的新值,而有的线程只能读取该写操作的旧值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南湖实验室,未经南湖实验室许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111497698.9/2.html,转载请声明来源钻瓜专利网。