[發明專利]一種事務性內存的實現方法有效
| 申請號: | 200810239010.5 | 申請日: | 2008-12-04 |
| 公開(公告)號: | CN101425052A | 公開(公告)日: | 2009-05-06 |
| 發明(設計)人: | 范彬;吳承勇 | 申請(專利權)人: | 中國科學院計算技術研究所 |
| 主分類號: | G06F13/42 | 分類號: | G06F13/42 |
| 代理公司: | 北京泛華偉業知識產權代理有限公司 | 代理人: | 王 勇 |
| 地址: | 100190北京*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 事務性 內存 實現 方法 | ||
1.一種事務性內存的實現方法,在具有多個處理器核的計算機上實現,所述處理器核包括私有的高速緩存,在所述計算機上有供所有處理器核訪問的共享內存,在所述處理器核的微指令控制器中還定義了TxLoad指令以及TxStore指令;在所述計算機上還安裝有軟件事務性內存庫;該方法包括:
步驟1)、將一段程序語句編譯成字節碼;
步驟2)、從所述字節碼中識別并提取與事務相關的字節碼,并對其中的共享對象進行標記;
步驟3)、即時編譯器將與事務相關的字節碼編譯成事務版本的本地代碼;在所述的編譯過程中,根據所述字節碼的語義在相應字節碼的編譯結果后添加TxLoad指令或TxStore指令或對軟件事務性內存庫接口的調用;其中,
所述的TxLoad指令命令執行該指令的處理器核向該處理器核的高速緩存控制器發送PrTxnRd消息,并從高速緩存中讀取一個指針長度的數據;所述的PrTxnRd消息用于根據數據塊的當前狀態對所述狀態進行調整,并向總線發送用于對TM狀態的塊做檢測沖突的BusTxnRd消息;
所述的TxStore指令命令執行該指令的處理器核向該處理器核的高速緩存控制器發送PrTxnWr消息,并將一個指針長度的數據寫入高速緩存;所述的PrTxnWr消息用于寫入數據,根據數據塊的當前狀態對所述狀態進行調整,并向總線發送用于對TM狀態和TS狀態的塊做沖突檢測的BusTxnWr消息。
2.根據權利要求1所述的事務性內存的實現方法,其特征在于,還包括:
步驟4)、計算機多個處理器核上的線程并行執行即時編譯器編譯后的本地代碼,對一個事務中的所述TxLoad指令或所述TxStore指令根據指令含義進行相應的操作,對所述操作造成的高速緩存塊沖突調用所述軟件事務性內存庫中的方法進行裁決、回退,并用FlushAllTxnCacheLineAbort指令維護高速緩存的狀態;
其中,所述的FlushAllTxnCacheLineAbort指令將所有高速緩存中的T標志位復位,將TS狀態修改為S狀態,將TM狀態修改為I狀態。
3.根據權利要求2所述的事務性內存的實現方法,其特征在于,在所述的步驟4)中還包括:對一個事務中的所述TxLoad指令或所述TxStore指令根據含義進行相應的操作沒有造成高速緩存塊的沖突,則在事務執行結束后,調用軟件事務性內存庫中的方法提交事務對內存的修改,使得修改后的結果對所有其他事務可見,并調用FlushAllTxnCacheLineCommit指令維護高速緩存的狀態;其中,所述的FlushAllTxnCacheLineCommit指令將所有高速緩存中的T標志位復位,TS狀態修改為S,TM狀態修改為M。
4.根據權利要求1或2或3所述的事務性內存的實現方法,其特征在于,所述的步驟3)還包括,為事務中調用的函數相關的字節碼同時編譯出事務版本的本地代碼和普通的本地代碼,在本地代碼執行的過程中,根據是否處于事務上下文確定執行的版本。
5.根據權利要求1或2或3所述的事務性內存的實現方法,其特征在于,在所述的步驟3)中,在將與事務相關的字節碼編譯成事務版本的本地代碼時,所述字節碼為讀操作指令,在所述讀操作指令的編譯結果后插入TxLoad指令,所述字節碼為寫操作指令,在所述寫操作指令的編譯結果后插入TxStore指令。
6.根據權利要求4所述的事務性內存的實現方法,其特征在于,在所述的步驟3)中,在將與事務相關的字節碼編譯成事務版本的本地代碼時,所述字節碼為讀操作指令,在所述讀操作指令的編譯結果后插入TxLoad指令,所述字節碼為寫操作指令,在所述寫操作指令的編譯結果后插入TxStore指令。
7.根據權利要求1或2或3所述的事務性內存的實現方法,其特征在于,在所述的步驟3)中,所述的高速緩存控制器收到所述的PrTxnRd消息后,若高速緩存命中,且相應數據塊的狀態為M或S,則將其狀態變更為TS,并且向總線上發送BusTxnRd消息;若高速緩存不命中或相應數據塊的狀態為I,則直接向總線上發送BusTxnRd消息,并等待從其他處理器核的高速緩存或共享內存中獲取所要讀取的數據以裝入自身的高速緩存,高速緩存獲取數據后將狀態置為TS。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國科學院計算技術研究所,未經中國科學院計算技術研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200810239010.5/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:易更換的模塊式電源防雷裝置
- 下一篇:用于空勤人員的呼吸裝置





