[發明專利]多副本非原子寫的存儲序同步操作實現方法與實現裝置有效
| 申請號: | 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.szxzyx.cn/pat/books/202111497698.9/2.html,轉載請聲明來源鉆瓜專利網。





