事務存儲結構的實現
但在執行沖突檢測的過程中也會存在錯誤的沖突,比如:當處理機Q請求訪問一個數據塊,該數據塊在目錄中的狀態為M@P,而處理機P已經執行到后續事務,同時也置了溢出位。P發送沖突信號給Q,但這個沖突并不是因處理機Q請求的數據正被其他占有而產生的沖突,是一種無關的沖突。所以必須采取一種機制將目錄狀態及時更新。
2.3 操作系統對LogTM的支持
由于事務的引入,傳統操作系統已經不能滿足要求,必須更改或擴展操作系統使事務能穩定高效的執行。
首先,基于LogTM系統,操作系統負責對日志進行創建和維護。它為每一個執行線程開辟一片日志區域,并將該區域入口地址寫到Log Base寄存器中,同時當某數據存入日志后使Log Pointer指針后移,用來存放新數據。當發生回滾,操作系統根據目前Log Pointer指針從后向前恢復數據直到Log Pointer與Log Base指向相同為止。
其次,當執行事務發生切換時,操作系統可以通過擴展目前的TCB(線程控制塊)來對事務相關寄存器內容等信息進行保存。
再次,當發生事務級線程切換時,操作系統判斷切換原因(包括其他線程搶占、時間片到達、事務之間沖突等而執行的切換),通知調度器采取不同的切換策略或沖突策略來完成切換。
最后,由于中斷內新創建的事務和被中斷事務沖突而導致活鎖(被中斷事務掛起得不到執行,中斷內新創建事務由于沖突策略一直回滾——重新執行——回滾,也得不到執行),操作系統必須能夠記錄回滾次數并設定一個門限值,如果同一事務回滾數超過此門限,操作系統可以強行中止該事務而調度其他事務。
3 結論及展望
本文介紹TM的基本原理,并對當前主流TM系統LogTM進行分析實現,得出以下結論:
⑴要實現高效的事務處理必須要有一個很好的基于事務模型的硬件結構。比如:LogTM,硬件專門為TM添加了LogBase、LogPointer等寄存器并改變了cache的結構,在cache中加入了讀(R)和寫(W)標志位;這樣對事務版本管理以及沖突管理都帶來了前所未有的作用,這也是此TM結構優越性的體現。
⑵要高效的進行事務處理必須要有TM操作系統的支持,上文中提到了一些操作系統對LogTM的相關支持,但如果要完美的支持事務還需要不斷更改和優化已有的操作系統,最終的目的是將操作系統事務化,并能很好的處理事務化的用戶級應用。
⑶目前TM系統(包括LogTM)雖然通過一些特有的結構和機制解決了事務處理的一些問題,但是面對今后的發展,像多級嵌套事務的復雜應用、中斷事務化(特別是外部設備的中斷)、掛起事物與執行事務沖突問題、被切換事務的執行選擇(重新調度后,被切換事務可能回滾也可能繼續接著執行)等問題都需要我們不斷的去研究,去尋找最優的解決辦法一一攻克,所以對TM的研究任重而道遠。
參考文獻
[1]Yen, L. and J. Bobba, et al. LogTM-SE:Decoupling Hardware Transactional Memory from Caches. In Proc. of Thirteenth Annual International Symp. on High-Performance Computer Architecture.Feb.2007
[2]Moravan, M. J. and J. Bobba, et al. Supporting Nested Transactional Memory in LogTM. In Proc. of the Twelfth International Conference on Architectural Support for Programming Languages and Operating Systems, pages 359-370,Oct.2006
[3]Moore, K. E. and J. Bobba, et al. LogTM: Log_based Transactional Memory. In Proc. of the Twelfth IEEE Symp. on High-Performance Computer Architecture, pages 258–269, Feb. 2006
[4]Herlihy, M. and J. E. B. Moss . Transactional Memory:Architectural Support for Lock-Free Data Structures. In Proc. of the 20th Annual International Symp. on Computer Architecture, pages 289–300, May 1993
[5]Hammond, L. and V. Wong, et al. Transactional Memory Coherence and Consistency. In Proc. of the 31st Annual Intl. Symp. on Computer Architecture, June 2004
[6]Hammond, L. and B. D. Carlstrom, et al. Programming with Transactional Coherence and Consistency(TCC), ASPLOS.04, October 7–13, 2004
更多計算機與外設信息請關注:21ic計算機與外設頻道


評論