專利名稱::一種支持有條件部分回滾的硬件事務(wù)嵌套處理方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種屬于計算機系統(tǒng)結(jié)構(gòu)中的多線程并行編程手段,特別涉及一種支持有條件部分回滾的硬件事務(wù)嵌套處理方法。
背景技術(shù):
:隨著多核處理器的快速發(fā)展,程序需要更多地采用多線程機制以充分利用多核資源來提升程序性能。傳統(tǒng)的并發(fā)編程模式通過鎖、信號量等機制實現(xiàn)進程/線程間的同步和互斥,常常由于同步或互斥使用不當導(dǎo)致程序性能下降和死鎖,這使得面向多核的并發(fā)程序的編寫難度和調(diào)試復(fù)雜性相對于串行程序都要高得多。事務(wù)存儲(TransactionalMemory,TM)是一種旨在改善并行系統(tǒng)可編程性的技術(shù)。與傳統(tǒng)的編程模型相比,事務(wù)存儲技術(shù)的優(yōu)點包括程序員不必過多地考慮線程間的同步/互斥操作,而只需在程序中進行事務(wù)的劃分,因而并發(fā)程序的可編程性大大改善;事務(wù)間的互斥由系統(tǒng)自動完成,必要時可進行回滾,不會出現(xiàn)線程之間由于互斥不當導(dǎo)致死鎖的情形;多個事務(wù)可以并發(fā)地投機(speculative)運行,僅在沖突發(fā)生時才進行回滾操作,不會出現(xiàn)一個線程長時間獨占資源導(dǎo)致其他線程阻塞的情況,因而程序運行時性能得到了提升。根據(jù)實現(xiàn)方法的不同,事務(wù)存儲可以被分為硬件事務(wù)存儲(HardwareTra固ctionalMemory,HTM)禾口軟件事務(wù)存儲(SoftwareTransactionalMemory,STM)。硬件事務(wù)存儲系統(tǒng)通過硬件來支持事務(wù)的原子性,具有性能高、編程方便的優(yōu)點,缺點是需要對現(xiàn)有的處理器及存儲系統(tǒng)進行改動,實現(xiàn)較為復(fù)雜,并且受到硬件資源的限制。軟件事務(wù)存儲系統(tǒng)通過軟件來支持事務(wù)的原子性,優(yōu)點是可以在現(xiàn)有硬件平臺上實現(xiàn),缺點是由于事務(wù)管理和數(shù)據(jù)一致性維護的開銷較大,導(dǎo)致性能相對較低。目前硬件事務(wù)存儲面臨的挑戰(zhàn)性問題主要有硬件資源受限問題、事務(wù)嵌套處理、事務(wù)內(nèi)I/O處理等。事務(wù)嵌套是指在一個事務(wù)內(nèi)部存在一個或多個其他事務(wù),這通常出現(xiàn)在事務(wù)內(nèi)部進行子程序調(diào)用等場合。閉合嵌套方法(Closednesting)是目前事務(wù)嵌套的語義模型之一,在這種事務(wù)嵌套模型中,一個事務(wù)和它內(nèi)部嵌套的所有事務(wù)被視為一個整體以保證其原子性,即要么該事務(wù)及其所有嵌套事務(wù)全部提交,要么全部放棄回滾。硬件事務(wù)存儲系統(tǒng)中常用的處理方法是平面嵌套模型(flattenmodel),即事務(wù)及其內(nèi)層事務(wù)被當作一個事務(wù)處理,當最外層事務(wù)結(jié)束時才執(zhí)行提交操作,當嵌套事務(wù)發(fā)生沖突時,回滾至最外層事務(wù)的開始,這將對系統(tǒng)性能產(chǎn)生較大影響,尤其是當事務(wù)嵌套層次較多時,回滾開銷較大,同時沖突概率也較大。
發(fā)明內(nèi)容本發(fā)明的目的是提出一種支持有條件部分回滾的硬件事務(wù)嵌套處理方法,該方法是在閉合嵌套方法的基礎(chǔ)上加以改進獲得。本發(fā)明的方法縮小了閉合嵌套方式中事務(wù)回滾至最外層所需付出的巨大代價,在不大幅增加硬件復(fù)雜度的前提下有效提升了事務(wù)嵌套處理的性能。本發(fā)明是一種支持有條件部分回滾的硬件事務(wù)嵌套處理方法,該方法包括有下列處理步驟第一步仲裁判定回滾當處理器處理嵌套事務(wù)T二{1\,T2,T3,…,TJ時,一方面在事務(wù)嵌套寄存器中記錄下當前所執(zhí)行的事務(wù)的層數(shù)j;另一方面在事務(wù)緩沖區(qū)的讀/寫標志位中記錄下當前所執(zhí)行的事務(wù)的數(shù)據(jù)。若處理器中存在有兩個事務(wù)產(chǎn)生寫讀沖突、讀寫沖突或?qū)憣憶_突時,依據(jù)沖突仲裁機制處理來決定其中一個事務(wù)進行回滾;沖突仲裁機制是如果沖突發(fā)生在事務(wù)和非事務(wù)代碼之間,則事務(wù)放棄并回滾;如果沖突發(fā)生在兩個事務(wù)之間,則當前請求數(shù)據(jù)的事務(wù)繼續(xù),其他沖突事務(wù)放棄并回滾;第二步收到回滾通知的事務(wù)進行檢測當前事務(wù)所訪問的數(shù)據(jù)當事務(wù)發(fā)生沖突時需要回滾,根據(jù)事務(wù)嵌套寄存器中的層數(shù)和事務(wù)緩沖區(qū)中的寫標志位能夠得到當前事務(wù)所訪問過的數(shù)據(jù)塊,進而依據(jù)回滾條件關(guān)系RC判斷需要回滾到的事務(wù)層數(shù);回滾條件關(guān)系iC=M'"{V/Vy'[(Dcn£),-^"(Z^nDj=0>)]},且i=1,2,......,c,j=1,2,......,i-l;i表示每一個小于沖突層事務(wù)T。的層數(shù);c表示沖突層事務(wù)T。的所在層數(shù);j表示每一個小于i的層數(shù);D。表示沖突層事務(wù)T。的寫數(shù)據(jù)集合,表達形式為A:二^^,"^,…,^^J,A^表示沖突層事務(wù)T。中的第一個寫數(shù)據(jù),右"表示沖突層事務(wù)T。中的第二個寫數(shù)據(jù),《表示沖突層事務(wù)T。中的第0個寫數(shù)據(jù);Di表示事務(wù)層1\的寫數(shù)據(jù)集合,表達形式為A^…,4,j,^v表示事務(wù)層l中的第一個寫數(shù)據(jù),右"表示事務(wù)層1中的第二個寫數(shù)據(jù),右表示事務(wù)層1中的第P個寫數(shù)據(jù);①表示空集;Dj表示事務(wù)層Ti的寫數(shù)據(jù)集合,表達形式為",^^,,"^,…,^J,c^表示事務(wù)層Tj中的第一個寫數(shù)據(jù),^2表示事務(wù)層Tj中的第二個寫數(shù)據(jù),冉"表示事務(wù)層Tj中的第Q個寫數(shù)據(jù);第三步回滾結(jié)束后,清除事務(wù)緩存區(qū)中回滾到的層數(shù)與當前層之間所訪問的全部數(shù)據(jù)。本發(fā)明是基于現(xiàn)有的多核處理器結(jié)構(gòu),只需在處理器核內(nèi)增加少量硬件即可支持事務(wù)執(zhí)行,這些硬件包括一個事務(wù)緩沖區(qū)和一個事務(wù)嵌套寄存器。隨著嵌套層次增多以及處理器個數(shù)的增加,本發(fā)明的方法對閉合嵌套方法的性能提升表現(xiàn)更加明顯。本發(fā)明的支持有條件部分回滾的事務(wù)嵌套處理方法有效的提高了系統(tǒng)性能,從而極大的改善了并行系統(tǒng)的可編程性。圖1是事務(wù)回滾的結(jié)構(gòu)示意圖。圖中Trans-lbegin表示最外層事務(wù)開始;Trans-1end表示最外層事務(wù)結(jié)束;Trans-2begin表示第一過渡層事務(wù)開始;Trans-2end表示第一過渡層事務(wù)結(jié)束;Trans-cbegin表示沖突層事務(wù)開始;Trans-cend表示沖突層事務(wù)結(jié)束;Trans-nbegin表示最內(nèi)層事務(wù)開始;Trans-nend表示最內(nèi)層事務(wù)結(jié)束。圖2是本發(fā)明支持有條件部分回滾的事務(wù)硬件結(jié)構(gòu)示意圖。Tag表示編號,Data表示數(shù)據(jù),Old表示數(shù)據(jù)的原始版本,New表示數(shù)據(jù)的更新版本,State表示事務(wù)狀態(tài),Read表示讀標志位,Write表示寫標志位。圖3是本發(fā)明事務(wù)存儲的系統(tǒng)結(jié)構(gòu)圖。圖4是本發(fā)明方法與閉合嵌套方法在不同嵌套層數(shù)下的加速比圖。圖5是本發(fā)明方法與閉合嵌套方法在不同數(shù)據(jù)相關(guān)性下的加速比圖。具體實施例方式下面將結(jié)合附圖對本發(fā)明做進一步的詳細說明。在本發(fā)明中,嵌套事務(wù)由多個事務(wù)層嵌套組成。為了方便敘述,第一層事務(wù)記為L,第二層事務(wù)記為L,第三層事務(wù)記為T3,……,第n層事務(wù)記為Tn,則嵌套事務(wù)采用數(shù)學(xué)的集合表達形式為T二{1\,T2,T3,…,TJ。第一層事務(wù)1\也稱為最外層事務(wù)。第n層事務(wù)Tn也稱為最內(nèi)層事務(wù)。發(fā)生沖突的事務(wù)記為T。,簡稱為沖突層事務(wù)T。,c表示沖突層事務(wù)T。的所在層數(shù)。本發(fā)明是一種支持有條件部分回滾的硬件事務(wù)嵌套處理方法,該方法包括有下列處理步驟第一步仲裁判定回滾當處理器處理嵌套事務(wù)T={TpTyTs,*",!;}時,一方面在事務(wù)嵌套寄存器(TNR)中記錄下當前所執(zhí)行的事務(wù)的層數(shù)j;另一方面在事務(wù)緩沖區(qū)(TC)的讀/寫狀態(tài)標志位中記錄下當前所執(zhí)行的事務(wù)的數(shù)據(jù)。若處理器中存在有兩個事務(wù)產(chǎn)生寫讀沖突、讀寫沖突或?qū)憣憶_突時,依據(jù)沖突仲裁機制(CAM)處理來決定其中一個事務(wù)進行回滾;沖突仲裁機制(CAM)是如果沖突發(fā)生在事務(wù)和非事務(wù)代碼之間,則事務(wù)放棄并回滾;如果沖突發(fā)生在兩個事務(wù)之間,則當前請求數(shù)據(jù)的事務(wù)繼續(xù),其他沖突事務(wù)放棄并回滾;第二步收到回滾通知的事務(wù)進行檢測當前事務(wù)所訪問的數(shù)據(jù)當事務(wù)發(fā)生沖突時需要回滾,根據(jù)TNR中的層數(shù)和TC中的寫標志位能夠得到當前事務(wù)所訪問過的數(shù)據(jù)塊,進而依據(jù)回滾條件關(guān)系RC判斷需要回滾到的事務(wù)層數(shù);回滾條件關(guān)系iC-M/"(V/y/[(DcnD一0)A(D,np,=0)]},且i=1,2,……,c,j=l,2,……,i-l,求取回滾至的事務(wù)層的層數(shù),i表示每一個小于沖突層事務(wù)T。的層數(shù);c表示沖突層事務(wù)T。的所在層數(shù);j表示每一個小于i的層數(shù);De表示沖突層事務(wù)T。的寫數(shù)據(jù)集合,表達形式為A:=,"&,…,"化.。}W表示沖突層事務(wù)T。中的第一個寫數(shù)據(jù),"&表示沖突層事務(wù)T。中的第二個寫數(shù)據(jù),《表示沖突層事務(wù)T。中的第0個寫數(shù)據(jù);Di表示事務(wù)層Ti的寫數(shù)據(jù)集合,表達形式為",^^,^…,^j,^,表示事務(wù)層1\中的第一個寫數(shù)據(jù),4,2表示事務(wù)層1\中的第二個寫數(shù)據(jù),《表示事務(wù)層1\中的第P個寫數(shù)據(jù);①表示空集;Dj表示事務(wù)層Tj的寫數(shù)據(jù)集合,表達形式為^=^7>,,叱2廣',"7>」4^表示事務(wù)層Tj中的第一個寫數(shù)據(jù),^/2表示事務(wù)層Tj中的第二個寫數(shù)據(jù),""e表示事務(wù)層Tj中的第Q個寫數(shù)據(jù);第三步回滾結(jié)束后,清除事務(wù)緩沖區(qū)TC中回滾到的層數(shù)與當前層之間所訪問的全部數(shù)據(jù)。參見圖l所示,在本發(fā)明中,在閉合嵌套模型(圖l(a))中,當Trans-cbegin沖突層事務(wù)(或稱沖突層事務(wù)Te)發(fā)生沖突時,事務(wù)將回滾至Trans-lbegin最外層事務(wù)(或稱第一層事務(wù)T》;這種回滾方式造成了回滾開銷較大,且沖突概率也較大,即當出現(xiàn)回滾時將從沖突層返回至最外層(T。一1\)。在改進模型(圖1(b))中,如果Trans-cbegin沖突層事務(wù)訪問的數(shù)據(jù)集與這個Trans-cbegin沖突層事務(wù)之前的其它事務(wù)的數(shù)據(jù)集沒有重疊,則可以只回滾到該Trans-cbegin沖突層事務(wù)的開始位置(T。一T》。在改進模型(圖1(c))中,如果Trans-cbegin沖突層事務(wù)與其之前的事務(wù)的數(shù)據(jù)集有相同的沖突變量CM(conflictmember,CM),則回滾到有相同沖突變量CM第一次出現(xiàn)的事務(wù)的開始位置(T。一T2)。對于圖1的事務(wù)執(zhí)行過程,一方面在事務(wù)嵌套寄存器(TNR)中記錄下執(zhí)行的事務(wù);另一方面在事務(wù)緩沖區(qū)(TC)中記錄下執(zhí)行的事務(wù)的數(shù)據(jù)。在本發(fā)明中,可以用讀/寫操作進一步區(qū)分部分回滾的情形,如表1所示,僅當沖突事務(wù)與外層事務(wù)都寫過某一變量時,由于系統(tǒng)只維護一個全局數(shù)據(jù)集合,外層事務(wù)更新過的變量結(jié)果已經(jīng)被沖突事務(wù)的寫操作覆蓋,所以無法恢復(fù)到?jīng)_突事務(wù)的開始,需要回滾至外層事務(wù)的開始,其他情形下,均可以只回滾到?jīng)_突事務(wù)的開始。表l.內(nèi)/外層事務(wù)訪問沖突變量CM的四種情形<table>tableseeoriginaldocumentpage8</column></row><table>對于表1的內(nèi)容形式化描述如下當Trans-cbegin沖突層事務(wù)由于沖突需要回滾時,回滾至的層數(shù)應(yīng)當滿足的條件關(guān)系iC:M'"(V/y/[(DcnD一cD)A(Z),nZ),①)]1,且i=i,2,……,c,j=1,2,......,i-l。參見圖2、圖3所示,事務(wù)緩沖區(qū)主要用于緩沖事務(wù)執(zhí)行過程中對變量所做的修改,并保存相關(guān)狀態(tài),以便最終提交或回滾。事務(wù)緩沖區(qū)結(jié)構(gòu)與高速緩沖存儲器(cache)結(jié)構(gòu)相似,數(shù)據(jù)的存儲也以行(line)為單位,主要差異在于,對緩沖的數(shù)據(jù)保存新(new)、舊(old)兩個拷貝,其中舊拷貝是指事務(wù)開始前的數(shù)據(jù)拷貝,新拷貝則為事務(wù)執(zhí)行過程中的修改版本。每行數(shù)據(jù)還配有N位的讀標志位和N位的寫標志位,用于記錄該行數(shù)據(jù)在事務(wù)執(zhí)行過程中的讀/寫情況,每一位分別對應(yīng)各個不同層次嵌套事務(wù)讀、寫數(shù)據(jù)的情況。事務(wù)緩沖區(qū)與一級高速緩沖存儲器(LIcache)處于同一層次,兩者并列,當處理器執(zhí)行事務(wù)時(即事務(wù)狀態(tài)下)使用事務(wù)緩沖區(qū),而在非事務(wù)狀態(tài)下使用Llcache。事務(wù)狀態(tài)下,事務(wù)緩沖區(qū)取代LIcache,原有的cache—致性機制不做修改,但此時數(shù)據(jù)寫操作只局限于事務(wù)緩沖區(qū)。直到事務(wù)提交時,事務(wù)緩沖區(qū)中被更新過的行的狀態(tài)位被逐行清除,清除操作使得新數(shù)據(jù)對cache—致性機構(gòu)變?yōu)榭梢?。事?wù)支持硬件中設(shè)置一個事務(wù)嵌套寄存器(TransactionNestingRegister,TNR),用于記錄事務(wù)的嵌套層次,當處理器開始執(zhí)行最外層事務(wù)時,該寄存器最低位置l,之后每進入一個嵌套層次,寄存器左移1位,每當一個事務(wù)結(jié)束,寄存器右移1位,事務(wù)執(zhí)行過程中執(zhí)行寫操作時,使用該寄存器的位映像給事務(wù)緩沖區(qū)中的寫標志位置位。當事務(wù)結(jié)束且寄存器最低位為1,即最外層事務(wù)結(jié)束時,執(zhí)行事務(wù)提交操作。本發(fā)明可以方便地在該硬件結(jié)構(gòu)中實現(xiàn)。當事務(wù)需要回滾時,根據(jù)事務(wù)嵌套寄存器和事務(wù)緩沖區(qū)中的寫標志位可以得到該層事務(wù)及其他層嵌套事務(wù)寫過的數(shù)據(jù)塊,進而得到各層事務(wù)的寫數(shù)據(jù)集。參見圖3所示,實施本發(fā)明方法的事務(wù)存儲系統(tǒng)是基于現(xiàn)有的多核處理器結(jié)構(gòu),通過在處理器核內(nèi)增加事務(wù)存儲支持硬件,該事務(wù)存儲支持硬件包括有事務(wù)嵌套寄存器和事務(wù)緩沖區(qū)。事務(wù)存儲支持硬件能夠?qū)崿F(xiàn)對程序中事務(wù)的高效執(zhí)行。其中虛線框內(nèi)為專為事務(wù)存儲增加的硬件部件,處理器核的其他部分與傳統(tǒng)處理器基本一致。本發(fā)明的性能評價是基于系統(tǒng)結(jié)構(gòu)模擬器VirtutechSimics及多核處理器擴展包GEMS進行。模擬平臺采用執(zhí)行驅(qū)動execution-driven模擬方式,支持操作系統(tǒng)和應(yīng)用軟件的模擬運行。目標系統(tǒng)基于Sparc處理器,并擴展了事務(wù)存儲相關(guān)的硬件部件及指令系統(tǒng),處理器核的個數(shù)從216個,運行Solaris操作系統(tǒng)。表2給出了目標系統(tǒng)的硬件參數(shù)。表2.目標機硬件參數(shù)<table>tableseeoriginaldocumentpage9</column></row><table>使用了七個測試程序?qū)δ繕讼到y(tǒng)進行了性能評價,其中四個程序用于測試嵌套層數(shù)與性能的關(guān)系,另外三個程序用于測試同等嵌套層次間數(shù)據(jù)相關(guān)性大小與程序性能的關(guān)系。每個測試程序在具備和不具備本發(fā)明所提出嵌套支持硬件的系統(tǒng)中分別運行并獲取性能數(shù)據(jù)。具體測試結(jié)果如圖4、圖5所示。由圖4可知,當嵌套層次為1時(nest-1),加速比接近為1,此時本發(fā)明方法等同閉合嵌套方法;隨著嵌套層次增多以及處理器個數(shù)的增加,并行執(zhí)行的事務(wù)線程增多,導(dǎo)致事務(wù)之間沖突的概率增大,此時本發(fā)明方法的加速比也逐漸增大。當嵌套層次為2時(nest-2),加速比最大為1.2;當嵌套層次為3時(nest-3),加速比最大為1.7;在嵌套層次為4(nest-4)、處理器個數(shù)為16時,加速比達到2.8。由此可知,隨著嵌套層次的增加,本發(fā)明的方法與閉合嵌套方法的加速比逐漸提高,因此,本發(fā)明提高了嵌套事務(wù)處理的性能,在同等嵌套層次下隨著處理器個數(shù)的增加,本發(fā)明的方法對閉合嵌套方法的性能提升表現(xiàn)更加明顯。加速比是指分別采用本發(fā)明方法與閉合嵌套方法進行事務(wù)處理的時間的反比。數(shù)據(jù)相關(guān)性也是事務(wù)嵌套中一個重要的因素。由圖5可知,當數(shù)據(jù)相關(guān)性為高時,本發(fā)明方法進行部分回滾的可能性較小,此時本發(fā)明方法相對于閉合嵌套方法的加速比接近于1;而隨著數(shù)據(jù)相關(guān)性變小,本發(fā)明方法會更多地進行部分回滾,因而得到更高的加速比。當數(shù)據(jù)相關(guān)性為中時,加速比最大接近2.5;當數(shù)據(jù)相關(guān)性為無、處理器個數(shù)為16時,加速比可達到2.8。由此可知,嵌套事務(wù)之間的數(shù)據(jù)相關(guān)性越小,本發(fā)明方法的事務(wù)執(zhí)行效率越高,在同等相關(guān)性條件下隨著處理器個數(shù)的增加,本發(fā)明對閉合嵌套方法的性能提升表現(xiàn)更加明顯。權(quán)利要求一種支持有條件部分回滾的硬件事務(wù)嵌套處理方法,其特征在于該方法包括有下列處理步驟第一步仲裁判定回滾當處理器處理嵌套事務(wù)T={T1,T2,T3,…,Tn}時,一方面在事務(wù)嵌套寄存器中記錄下當前所執(zhí)行的事務(wù)的層數(shù)j;另一方面在事務(wù)緩沖區(qū)的讀/寫標志位中記錄下當前所執(zhí)行的事務(wù)的數(shù)據(jù)。若處理器中存在有兩個事務(wù)產(chǎn)生寫讀沖突、讀寫沖突或?qū)憣憶_突時,依據(jù)沖突仲裁機制處理來決定其中一個事務(wù)進行回滾;沖突仲裁機制是如果沖突發(fā)生在事務(wù)和非事務(wù)代碼之間,則事務(wù)放棄并回滾;如果沖突發(fā)生在兩個事務(wù)之間,則當前請求數(shù)據(jù)的事務(wù)繼續(xù),其他沖突事務(wù)放棄并回滾;第二步收到回滾通知的事務(wù)進行檢測當前事務(wù)所訪問的數(shù)據(jù)當事務(wù)發(fā)生沖突時需要回滾,根據(jù)事務(wù)嵌套寄存器中的層數(shù)和事務(wù)緩沖區(qū)中的寫標志位能夠得到當前事務(wù)所訪問過的數(shù)據(jù)塊,進而依據(jù)回滾條件關(guān)系RC判斷需要回滾到的事務(wù)層數(shù);回滾條件關(guān)系且i=1,2,……,c,j=1,2,……,i-1;i表示每一個小于沖突層事務(wù)Tc的層數(shù);c表示沖突層事務(wù)Tc的所在層數(shù);j表示每一個小于i的層數(shù);DC表示沖突層事務(wù)Tc的寫數(shù)據(jù)集合,表達形式為表示沖突層事務(wù)Tc中的第一個寫數(shù)據(jù),表示沖突層事務(wù)Tc中的第二個寫數(shù)據(jù),表示沖突層事務(wù)Tc中的第O個寫數(shù)據(jù);Di表示事務(wù)層Ti的寫數(shù)據(jù)集合,表達形式為表示事務(wù)層Ti中的第一個寫數(shù)據(jù),表示事務(wù)層Ti中的第二個寫數(shù)據(jù),表示事務(wù)層Ti中的第P個寫數(shù)據(jù);Φ表示空集;Dj表示事務(wù)層Tj的寫數(shù)據(jù)集合,表達形式為表示事務(wù)層Tj中的第一個寫數(shù)據(jù),表示事務(wù)層Tj中的第二個寫數(shù)據(jù),表示事務(wù)層Tj中的第Q個寫數(shù)據(jù);第三步回滾結(jié)束后,清除事務(wù)緩存區(qū)中回滾到的層數(shù)與當前層之間所訪問的全部數(shù)據(jù)。F2009102386462C0000011.tif,F2009102386462C0000012.tif,F2009102386462C0000013.tif,F2009102386462C0000014.tif,F2009102386462C0000015.tif,F2009102386462C0000016.tif,F2009102386462C0000017.tif,F2009102386462C0000018.tif,F2009102386462C0000019.tif,F2009102386462C00000110.tif,F2009102386462C00000111.tif,F2009102386462C00000112.tif,F2009102386462C00000113.tif2.根據(jù)權(quán)利要求1所述的支持有條件部分回滾的硬件事務(wù)嵌套處理方法,其特征在于如果沖突層事務(wù)訪問的數(shù)據(jù)集與該沖突層事務(wù)之前的其它事務(wù)的數(shù)據(jù)集沒有重疊,則可以只回滾到該沖突層事務(wù)的開始位置。3.根據(jù)權(quán)利要求1所述的支持有條件部分回滾的硬件事務(wù)嵌套處理方法,其特征在于如果沖突層事務(wù)與其之前的事務(wù)的數(shù)據(jù)集有相同的沖突變量,則回滾到有相同沖突變量第一次出現(xiàn)的事務(wù)的開始位置。4.根據(jù)權(quán)利要求1所述的支持有條件部分回滾的硬件事務(wù)嵌套處理方法,其特征在于在所述處理器內(nèi)增加了事務(wù)存儲支持硬件,該事務(wù)存儲支持硬件包括有事務(wù)嵌套寄存器和事務(wù)緩沖區(qū)。全文摘要本發(fā)明公開了一種支持有條件部分回滾的硬件事務(wù)嵌套處理方法,該方法以各層嵌套事務(wù)維護一個全局數(shù)據(jù)集合,在該集合中記錄各層事務(wù)對數(shù)據(jù)的訪問情況。在本發(fā)明中,如果沖突層事務(wù)訪問的數(shù)據(jù)集與這個沖突層事務(wù)之前的其它事務(wù)的數(shù)據(jù)集沒有重疊,則可以只回滾到該沖突層事務(wù)的開始位置;如果沖突層事務(wù)與其之前的事務(wù)的數(shù)據(jù)集有相同的沖突變量,則回滾到有相同沖突變量第一次出現(xiàn)的事務(wù)的開始位置。本發(fā)明的方法縮小了閉合嵌套方式中事務(wù)回滾至最外層所需付出的巨大代價,在不大幅增加硬件復(fù)雜度的前提下有效提升了事務(wù)嵌套處理的性能。文檔編號G06F9/46GK101739291SQ20091023864公開日2010年6月16日申請日期2009年12月2日優(yōu)先權(quán)日2009年12月2日發(fā)明者劉軼,吳名瑜,張翠,錢德沛申請人:北京航空航天大學(xué)